github.com/aavshr/aws-sdk-go@v1.41.3/service/transfer/api.go (about)

     1  // Code generated by private/model/cli/gen-api/main.go. DO NOT EDIT.
     2  
     3  package transfer
     4  
     5  import (
     6  	"fmt"
     7  	"time"
     8  
     9  	"github.com/aavshr/aws-sdk-go/aws"
    10  	"github.com/aavshr/aws-sdk-go/aws/awsutil"
    11  	"github.com/aavshr/aws-sdk-go/aws/request"
    12  	"github.com/aavshr/aws-sdk-go/private/protocol"
    13  	"github.com/aavshr/aws-sdk-go/private/protocol/jsonrpc"
    14  )
    15  
    16  const 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
    42  func (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
    94  func (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.
   108  func (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  
   115  const 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
   141  func (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
   199  func (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.
   213  func (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  
   220  const 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
   246  func (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
   299  func (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.
   313  func (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  
   320  const 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
   346  func (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
   400  func (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.
   414  func (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  
   421  const 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
   447  func (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
   493  func (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.
   507  func (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  
   514  const 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
   540  func (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
   590  func (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.
   604  func (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  
   611  const 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
   637  func (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
   687  func (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.
   701  func (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  
   708  const 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
   734  func (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
   784  func (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.
   798  func (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  
   805  const 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
   831  func (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
   879  func (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.
   893  func (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  
   900  const 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
   926  func (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
   974  func (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.
   988  func (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  
   995  const 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
  1021  func (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
  1066  func (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.
  1080  func (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  
  1087  const 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
  1113  func (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
  1160  func (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.
  1174  func (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  
  1181  const 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
  1207  func (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
  1255  func (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.
  1269  func (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  
  1276  const 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
  1302  func (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
  1350  func (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.
  1364  func (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  
  1371  const 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
  1397  func (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
  1441  func (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.
  1455  func (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  
  1462  const 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
  1488  func (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
  1545  func (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.
  1559  func (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  
  1566  const 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
  1592  func (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
  1645  func (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.
  1659  func (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  //
  1683  func (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.
  1694  func (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  
  1718  const 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
  1744  func (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
  1797  func (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.
  1811  func (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  //
  1835  func (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.
  1846  func (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  
  1870  const 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
  1896  func (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
  1946  func (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.
  1960  func (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  //
  1984  func (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.
  1995  func (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  
  2019  const 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
  2045  func (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
  2095  func (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.
  2109  func (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  //
  2133  func (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.
  2144  func (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  
  2168  const 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
  2194  func (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
  2244  func (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.
  2258  func (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  //
  2282  func (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.
  2293  func (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  
  2317  const 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
  2343  func (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
  2397  func (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.
  2411  func (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  //
  2435  func (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.
  2446  func (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  
  2470  const 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
  2496  func (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
  2545  func (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.
  2559  func (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  //
  2583  func (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.
  2594  func (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  
  2618  const 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
  2644  func (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
  2701  func (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.
  2715  func (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  
  2722  const 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
  2748  func (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
  2806  func (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.
  2820  func (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  
  2827  const 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
  2853  func (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
  2915  func (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.
  2929  func (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  
  2936  const 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
  2962  func (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
  3010  func (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.
  3024  func (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  
  3031  const 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
  3057  func (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
  3125  func (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.
  3139  func (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  
  3146  const 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
  3172  func (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
  3220  func (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.
  3234  func (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  
  3241  const 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
  3267  func (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
  3315  func (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.
  3329  func (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  
  3336  const 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
  3362  func (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
  3425  func (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.
  3439  func (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  
  3446  const 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
  3472  func (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
  3525  func (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.
  3539  func (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.
  3547  type 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.
  3555  //
  3556  // API parameter values that are decorated as "sensitive" in the API will not
  3557  // be included in the string output. The member name will be present, but the
  3558  // value will be replaced with "sensitive".
  3559  func (s AccessDeniedException) String() string {
  3560  	return awsutil.Prettify(s)
  3561  }
  3562  
  3563  // GoString returns the string representation.
  3564  //
  3565  // API parameter values that are decorated as "sensitive" in the API will not
  3566  // be included in the string output. The member name will be present, but the
  3567  // value will be replaced with "sensitive".
  3568  func (s AccessDeniedException) GoString() string {
  3569  	return s.String()
  3570  }
  3571  
  3572  func newErrorAccessDeniedException(v protocol.ResponseMetadata) error {
  3573  	return &AccessDeniedException{
  3574  		RespMetadata: v,
  3575  	}
  3576  }
  3577  
  3578  // Code returns the exception type name.
  3579  func (s *AccessDeniedException) Code() string {
  3580  	return "AccessDeniedException"
  3581  }
  3582  
  3583  // Message returns the exception's message.
  3584  func (s *AccessDeniedException) Message() string {
  3585  	if s.Message_ != nil {
  3586  		return *s.Message_
  3587  	}
  3588  	return ""
  3589  }
  3590  
  3591  // OrigErr always returns nil, satisfies awserr.Error interface.
  3592  func (s *AccessDeniedException) OrigErr() error {
  3593  	return nil
  3594  }
  3595  
  3596  func (s *AccessDeniedException) Error() string {
  3597  	return fmt.Sprintf("%s: %s", s.Code(), s.Message())
  3598  }
  3599  
  3600  // Status code returns the HTTP status code for the request's response error.
  3601  func (s *AccessDeniedException) StatusCode() int {
  3602  	return s.RespMetadata.StatusCode
  3603  }
  3604  
  3605  // RequestID returns the service's response RequestID for request.
  3606  func (s *AccessDeniedException) RequestID() string {
  3607  	return s.RespMetadata.RequestID
  3608  }
  3609  
  3610  // This exception is thrown when the UpdateServer is called for a file transfer
  3611  // protocol-enabled server that has VPC as the endpoint type and the server's
  3612  // VpcEndpointID is not in the available state.
  3613  type ConflictException struct {
  3614  	_            struct{}                  `type:"structure"`
  3615  	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
  3616  
  3617  	Message_ *string `locationName:"Message" type:"string"`
  3618  }
  3619  
  3620  // String returns the string representation.
  3621  //
  3622  // API parameter values that are decorated as "sensitive" in the API will not
  3623  // be included in the string output. The member name will be present, but the
  3624  // value will be replaced with "sensitive".
  3625  func (s ConflictException) String() string {
  3626  	return awsutil.Prettify(s)
  3627  }
  3628  
  3629  // GoString returns the string representation.
  3630  //
  3631  // API parameter values that are decorated as "sensitive" in the API will not
  3632  // be included in the string output. The member name will be present, but the
  3633  // value will be replaced with "sensitive".
  3634  func (s ConflictException) GoString() string {
  3635  	return s.String()
  3636  }
  3637  
  3638  func newErrorConflictException(v protocol.ResponseMetadata) error {
  3639  	return &ConflictException{
  3640  		RespMetadata: v,
  3641  	}
  3642  }
  3643  
  3644  // Code returns the exception type name.
  3645  func (s *ConflictException) Code() string {
  3646  	return "ConflictException"
  3647  }
  3648  
  3649  // Message returns the exception's message.
  3650  func (s *ConflictException) Message() string {
  3651  	if s.Message_ != nil {
  3652  		return *s.Message_
  3653  	}
  3654  	return ""
  3655  }
  3656  
  3657  // OrigErr always returns nil, satisfies awserr.Error interface.
  3658  func (s *ConflictException) OrigErr() error {
  3659  	return nil
  3660  }
  3661  
  3662  func (s *ConflictException) Error() string {
  3663  	return fmt.Sprintf("%s: %s", s.Code(), s.Message())
  3664  }
  3665  
  3666  // Status code returns the HTTP status code for the request's response error.
  3667  func (s *ConflictException) StatusCode() int {
  3668  	return s.RespMetadata.StatusCode
  3669  }
  3670  
  3671  // RequestID returns the service's response RequestID for request.
  3672  func (s *ConflictException) RequestID() string {
  3673  	return s.RespMetadata.RequestID
  3674  }
  3675  
  3676  // Each step type has its own StepDetails structure.
  3677  type CopyStepDetails struct {
  3678  	_ struct{} `type:"structure"`
  3679  
  3680  	// Specifies the location for the file being copied. Only applicable for the
  3681  	// Copy type of workflow steps.
  3682  	DestinationFileLocation *InputFileLocation `type:"structure"`
  3683  
  3684  	// The name of the step, used as an identifier.
  3685  	Name *string `type:"string"`
  3686  
  3687  	// A flag that indicates whether or not to overwrite an existing file of the
  3688  	// same name. The default is FALSE.
  3689  	OverwriteExisting *string `type:"string" enum:"OverwriteExisting"`
  3690  }
  3691  
  3692  // String returns the string representation.
  3693  //
  3694  // API parameter values that are decorated as "sensitive" in the API will not
  3695  // be included in the string output. The member name will be present, but the
  3696  // value will be replaced with "sensitive".
  3697  func (s CopyStepDetails) String() string {
  3698  	return awsutil.Prettify(s)
  3699  }
  3700  
  3701  // GoString returns the string representation.
  3702  //
  3703  // API parameter values that are decorated as "sensitive" in the API will not
  3704  // be included in the string output. The member name will be present, but the
  3705  // value will be replaced with "sensitive".
  3706  func (s CopyStepDetails) GoString() string {
  3707  	return s.String()
  3708  }
  3709  
  3710  // Validate inspects the fields of the type to determine if they are valid.
  3711  func (s *CopyStepDetails) Validate() error {
  3712  	invalidParams := request.ErrInvalidParams{Context: "CopyStepDetails"}
  3713  	if s.DestinationFileLocation != nil {
  3714  		if err := s.DestinationFileLocation.Validate(); err != nil {
  3715  			invalidParams.AddNested("DestinationFileLocation", err.(request.ErrInvalidParams))
  3716  		}
  3717  	}
  3718  
  3719  	if invalidParams.Len() > 0 {
  3720  		return invalidParams
  3721  	}
  3722  	return nil
  3723  }
  3724  
  3725  // SetDestinationFileLocation sets the DestinationFileLocation field's value.
  3726  func (s *CopyStepDetails) SetDestinationFileLocation(v *InputFileLocation) *CopyStepDetails {
  3727  	s.DestinationFileLocation = v
  3728  	return s
  3729  }
  3730  
  3731  // SetName sets the Name field's value.
  3732  func (s *CopyStepDetails) SetName(v string) *CopyStepDetails {
  3733  	s.Name = &v
  3734  	return s
  3735  }
  3736  
  3737  // SetOverwriteExisting sets the OverwriteExisting field's value.
  3738  func (s *CopyStepDetails) SetOverwriteExisting(v string) *CopyStepDetails {
  3739  	s.OverwriteExisting = &v
  3740  	return s
  3741  }
  3742  
  3743  type CreateAccessInput struct {
  3744  	_ struct{} `type:"structure"`
  3745  
  3746  	// A unique identifier that is required to identify specific groups within your
  3747  	// directory. The users of the group that you associate have access to your
  3748  	// Amazon S3 or Amazon EFS resources over the enabled protocols using Amazon
  3749  	// Web Services Transfer Family. If you know the group name, you can view the
  3750  	// SID values by running the following command using Windows PowerShell.
  3751  	//
  3752  	// Get-ADGroup -Filter {samAccountName -like "YourGroupName*"} -Properties *
  3753  	// | Select SamAccountName,ObjectSid
  3754  	//
  3755  	// In that command, replace YourGroupName with the name of your Active Directory
  3756  	// group.
  3757  	//
  3758  	// The regex used to validate this parameter is a string of characters consisting
  3759  	// of uppercase and lowercase alphanumeric characters with no spaces. You can
  3760  	// also include underscores or any of the following characters: =,.@:/-
  3761  	//
  3762  	// ExternalId is a required field
  3763  	ExternalId *string `min:"1" type:"string" required:"true"`
  3764  
  3765  	// The landing directory (folder) for a user when they log in to the server
  3766  	// using the client.
  3767  	//
  3768  	// A HomeDirectory example is /bucket_name/home/mydirectory.
  3769  	HomeDirectory *string `type:"string"`
  3770  
  3771  	// Logical directory mappings that specify what Amazon S3 or Amazon EFS paths
  3772  	// and keys should be visible to your user and how you want to make them visible.
  3773  	// You must specify the Entry and Target pair, where Entry shows how the path
  3774  	// is made visible and Target is the actual Amazon S3 or Amazon EFS path. If
  3775  	// you only specify a target, it is displayed as is. You also must ensure that
  3776  	// your Amazon Web Services Identity and Access Management (IAM) role provides
  3777  	// access to paths in Target. This value can only be set when HomeDirectoryType
  3778  	// is set to LOGICAL.
  3779  	//
  3780  	// The following is an Entry and Target pair example.
  3781  	//
  3782  	// [ { "Entry": "/directory1", "Target": "/bucket_name/home/mydirectory" } ]
  3783  	//
  3784  	// In most cases, you can use this value instead of the session policy to lock
  3785  	// down your user to the designated home directory ("chroot"). To do this, you
  3786  	// can set Entry to / and set Target to the HomeDirectory parameter value.
  3787  	//
  3788  	// The following is an Entry and Target pair example for chroot.
  3789  	//
  3790  	// [ { "Entry:": "/", "Target": "/bucket_name/home/mydirectory" } ]
  3791  	//
  3792  	// If the target of a logical directory entry does not exist in Amazon S3 or
  3793  	// EFS, the entry is ignored. As a workaround, you can use the Amazon S3 API
  3794  	// or EFS API to create 0 byte objects as place holders for your directory.
  3795  	// If using the CLI, use the s3api or efsapi call instead of s3 or efs so you
  3796  	// can use the put-object operation. For example, you use the following: aws
  3797  	// s3api put-object --bucket bucketname --key path/to/folder/. Make sure that
  3798  	// the end of the key name ends in a / for it to be considered a folder.
  3799  	HomeDirectoryMappings []*HomeDirectoryMapEntry `min:"1" type:"list"`
  3800  
  3801  	// The type of landing directory (folder) you want your users' home directory
  3802  	// to be when they log into the server. If you set it to PATH, the user will
  3803  	// see the absolute Amazon S3 bucket or EFS paths as is in their file transfer
  3804  	// protocol clients. If you set it LOGICAL, you need to provide mappings in
  3805  	// the HomeDirectoryMappings for how you want to make Amazon S3 or EFS paths
  3806  	// visible to your users.
  3807  	HomeDirectoryType *string `type:"string" enum:"HomeDirectoryType"`
  3808  
  3809  	// A session policy for your user so that you can use the same IAM role across
  3810  	// multiple users. This policy scopes down user access to portions of their
  3811  	// Amazon S3 bucket. Variables that you can use inside this policy include ${Transfer:UserName},
  3812  	// ${Transfer:HomeDirectory}, and ${Transfer:HomeBucket}.
  3813  	//
  3814  	// This only applies when the domain of ServerId is S3. EFS does not use session
  3815  	// policies.
  3816  	//
  3817  	// For session policies, Amazon Web Services Transfer Family stores the policy
  3818  	// as a JSON blob, instead of the Amazon Resource Name (ARN) of the policy.
  3819  	// You save the policy as a JSON blob and pass it in the Policy argument.
  3820  	//
  3821  	// For an example of a session policy, see Example session policy (https://docs.aws.amazon.com/transfer/latest/userguide/session-policy.html).
  3822  	//
  3823  	// For more information, see AssumeRole (https://docs.aws.amazon.com/STS/latest/APIReference/API_AssumeRole.html)
  3824  	// in the Amazon Web Services Security Token Service API Reference.
  3825  	Policy *string `type:"string"`
  3826  
  3827  	// The full POSIX identity, including user ID (Uid), group ID (Gid), and any
  3828  	// secondary groups IDs (SecondaryGids), that controls your users' access to
  3829  	// your Amazon EFS file systems. The POSIX permissions that are set on files
  3830  	// and directories in your file system determine the level of access your users
  3831  	// get when transferring files into and out of your Amazon EFS file systems.
  3832  	PosixProfile *PosixProfile `type:"structure"`
  3833  
  3834  	// Specifies the Amazon Resource Name (ARN) of the IAM role that controls your
  3835  	// users' access to your Amazon S3 bucket or EFS file system. The policies attached
  3836  	// to this role determine the level of access that you want to provide your
  3837  	// users when transferring files into and out of your Amazon S3 bucket or EFS
  3838  	// file system. The IAM role should also contain a trust relationship that allows
  3839  	// the server to access your resources when servicing your users' transfer requests.
  3840  	//
  3841  	// Role is a required field
  3842  	Role *string `min:"20" type:"string" required:"true"`
  3843  
  3844  	// A system-assigned unique identifier for a server instance. This is the specific
  3845  	// server that you added your user to.
  3846  	//
  3847  	// ServerId is a required field
  3848  	ServerId *string `min:"19" type:"string" required:"true"`
  3849  }
  3850  
  3851  // String returns the string representation.
  3852  //
  3853  // API parameter values that are decorated as "sensitive" in the API will not
  3854  // be included in the string output. The member name will be present, but the
  3855  // value will be replaced with "sensitive".
  3856  func (s CreateAccessInput) String() string {
  3857  	return awsutil.Prettify(s)
  3858  }
  3859  
  3860  // GoString returns the string representation.
  3861  //
  3862  // API parameter values that are decorated as "sensitive" in the API will not
  3863  // be included in the string output. The member name will be present, but the
  3864  // value will be replaced with "sensitive".
  3865  func (s CreateAccessInput) GoString() string {
  3866  	return s.String()
  3867  }
  3868  
  3869  // Validate inspects the fields of the type to determine if they are valid.
  3870  func (s *CreateAccessInput) Validate() error {
  3871  	invalidParams := request.ErrInvalidParams{Context: "CreateAccessInput"}
  3872  	if s.ExternalId == nil {
  3873  		invalidParams.Add(request.NewErrParamRequired("ExternalId"))
  3874  	}
  3875  	if s.ExternalId != nil && len(*s.ExternalId) < 1 {
  3876  		invalidParams.Add(request.NewErrParamMinLen("ExternalId", 1))
  3877  	}
  3878  	if s.HomeDirectoryMappings != nil && len(s.HomeDirectoryMappings) < 1 {
  3879  		invalidParams.Add(request.NewErrParamMinLen("HomeDirectoryMappings", 1))
  3880  	}
  3881  	if s.Role == nil {
  3882  		invalidParams.Add(request.NewErrParamRequired("Role"))
  3883  	}
  3884  	if s.Role != nil && len(*s.Role) < 20 {
  3885  		invalidParams.Add(request.NewErrParamMinLen("Role", 20))
  3886  	}
  3887  	if s.ServerId == nil {
  3888  		invalidParams.Add(request.NewErrParamRequired("ServerId"))
  3889  	}
  3890  	if s.ServerId != nil && len(*s.ServerId) < 19 {
  3891  		invalidParams.Add(request.NewErrParamMinLen("ServerId", 19))
  3892  	}
  3893  	if s.HomeDirectoryMappings != nil {
  3894  		for i, v := range s.HomeDirectoryMappings {
  3895  			if v == nil {
  3896  				continue
  3897  			}
  3898  			if err := v.Validate(); err != nil {
  3899  				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "HomeDirectoryMappings", i), err.(request.ErrInvalidParams))
  3900  			}
  3901  		}
  3902  	}
  3903  	if s.PosixProfile != nil {
  3904  		if err := s.PosixProfile.Validate(); err != nil {
  3905  			invalidParams.AddNested("PosixProfile", err.(request.ErrInvalidParams))
  3906  		}
  3907  	}
  3908  
  3909  	if invalidParams.Len() > 0 {
  3910  		return invalidParams
  3911  	}
  3912  	return nil
  3913  }
  3914  
  3915  // SetExternalId sets the ExternalId field's value.
  3916  func (s *CreateAccessInput) SetExternalId(v string) *CreateAccessInput {
  3917  	s.ExternalId = &v
  3918  	return s
  3919  }
  3920  
  3921  // SetHomeDirectory sets the HomeDirectory field's value.
  3922  func (s *CreateAccessInput) SetHomeDirectory(v string) *CreateAccessInput {
  3923  	s.HomeDirectory = &v
  3924  	return s
  3925  }
  3926  
  3927  // SetHomeDirectoryMappings sets the HomeDirectoryMappings field's value.
  3928  func (s *CreateAccessInput) SetHomeDirectoryMappings(v []*HomeDirectoryMapEntry) *CreateAccessInput {
  3929  	s.HomeDirectoryMappings = v
  3930  	return s
  3931  }
  3932  
  3933  // SetHomeDirectoryType sets the HomeDirectoryType field's value.
  3934  func (s *CreateAccessInput) SetHomeDirectoryType(v string) *CreateAccessInput {
  3935  	s.HomeDirectoryType = &v
  3936  	return s
  3937  }
  3938  
  3939  // SetPolicy sets the Policy field's value.
  3940  func (s *CreateAccessInput) SetPolicy(v string) *CreateAccessInput {
  3941  	s.Policy = &v
  3942  	return s
  3943  }
  3944  
  3945  // SetPosixProfile sets the PosixProfile field's value.
  3946  func (s *CreateAccessInput) SetPosixProfile(v *PosixProfile) *CreateAccessInput {
  3947  	s.PosixProfile = v
  3948  	return s
  3949  }
  3950  
  3951  // SetRole sets the Role field's value.
  3952  func (s *CreateAccessInput) SetRole(v string) *CreateAccessInput {
  3953  	s.Role = &v
  3954  	return s
  3955  }
  3956  
  3957  // SetServerId sets the ServerId field's value.
  3958  func (s *CreateAccessInput) SetServerId(v string) *CreateAccessInput {
  3959  	s.ServerId = &v
  3960  	return s
  3961  }
  3962  
  3963  type CreateAccessOutput struct {
  3964  	_ struct{} `type:"structure"`
  3965  
  3966  	// The external ID of the group whose users have access to your Amazon S3 or
  3967  	// Amazon EFS resources over the enabled protocols using Amazon Web Services
  3968  	// Transfer Family.
  3969  	//
  3970  	// ExternalId is a required field
  3971  	ExternalId *string `min:"1" type:"string" required:"true"`
  3972  
  3973  	// The ID of the server that the user is attached to.
  3974  	//
  3975  	// ServerId is a required field
  3976  	ServerId *string `min:"19" type:"string" required:"true"`
  3977  }
  3978  
  3979  // String returns the string representation.
  3980  //
  3981  // API parameter values that are decorated as "sensitive" in the API will not
  3982  // be included in the string output. The member name will be present, but the
  3983  // value will be replaced with "sensitive".
  3984  func (s CreateAccessOutput) String() string {
  3985  	return awsutil.Prettify(s)
  3986  }
  3987  
  3988  // GoString returns the string representation.
  3989  //
  3990  // API parameter values that are decorated as "sensitive" in the API will not
  3991  // be included in the string output. The member name will be present, but the
  3992  // value will be replaced with "sensitive".
  3993  func (s CreateAccessOutput) GoString() string {
  3994  	return s.String()
  3995  }
  3996  
  3997  // SetExternalId sets the ExternalId field's value.
  3998  func (s *CreateAccessOutput) SetExternalId(v string) *CreateAccessOutput {
  3999  	s.ExternalId = &v
  4000  	return s
  4001  }
  4002  
  4003  // SetServerId sets the ServerId field's value.
  4004  func (s *CreateAccessOutput) SetServerId(v string) *CreateAccessOutput {
  4005  	s.ServerId = &v
  4006  	return s
  4007  }
  4008  
  4009  type CreateServerInput struct {
  4010  	_ struct{} `type:"structure"`
  4011  
  4012  	// The Amazon Resource Name (ARN) of the Amazon Web Services Certificate Manager
  4013  	// (ACM) certificate. Required when Protocols is set to FTPS.
  4014  	//
  4015  	// To request a new public certificate, see Request a public certificate (https://docs.aws.amazon.com/acm/latest/userguide/gs-acm-request-public.html)
  4016  	// in the Amazon Web Services Certificate Manager User Guide.
  4017  	//
  4018  	// To import an existing certificate into ACM, see Importing certificates into
  4019  	// ACM (https://docs.aws.amazon.com/acm/latest/userguide/import-certificate.html)
  4020  	// in the Amazon Web Services Certificate Manager User Guide.
  4021  	//
  4022  	// To request a private certificate to use FTPS through private IP addresses,
  4023  	// see Request a private certificate (https://docs.aws.amazon.com/acm/latest/userguide/gs-acm-request-private.html)
  4024  	// in the Amazon Web Services Certificate Manager User Guide.
  4025  	//
  4026  	// Certificates with the following cryptographic algorithms and key sizes are
  4027  	// supported:
  4028  	//
  4029  	//    * 2048-bit RSA (RSA_2048)
  4030  	//
  4031  	//    * 4096-bit RSA (RSA_4096)
  4032  	//
  4033  	//    * Elliptic Prime Curve 256 bit (EC_prime256v1)
  4034  	//
  4035  	//    * Elliptic Prime Curve 384 bit (EC_secp384r1)
  4036  	//
  4037  	//    * Elliptic Prime Curve 521 bit (EC_secp521r1)
  4038  	//
  4039  	// The certificate must be a valid SSL/TLS X.509 version 3 certificate with
  4040  	// FQDN or IP address specified and information about the issuer.
  4041  	Certificate *string `type:"string"`
  4042  
  4043  	// The domain of the storage system that is used for file transfers. There are
  4044  	// two domains available: Amazon Simple Storage Service (Amazon S3) and Amazon
  4045  	// Elastic File System (Amazon EFS). The default value is S3.
  4046  	//
  4047  	// After the server is created, the domain cannot be changed.
  4048  	Domain *string `type:"string" enum:"Domain"`
  4049  
  4050  	// The virtual private cloud (VPC) endpoint settings that are configured for
  4051  	// your server. When you host your endpoint within your VPC, you can make it
  4052  	// accessible only to resources within your VPC, or you can attach Elastic IP
  4053  	// addresses and make it accessible to clients over the internet. Your VPC's
  4054  	// default security groups are automatically assigned to your endpoint.
  4055  	EndpointDetails *EndpointDetails `type:"structure"`
  4056  
  4057  	// The type of endpoint that you want your server to use. You can choose to
  4058  	// make your server's endpoint publicly accessible (PUBLIC) or host it inside
  4059  	// your VPC. With an endpoint that is hosted in a VPC, you can restrict access
  4060  	// to your server and resources only within your VPC or choose to make it internet
  4061  	// facing by attaching Elastic IP addresses directly to it.
  4062  	//
  4063  	// After May 19, 2021, you won't be able to create a server using EndpointType=VPC_ENDPOINT
  4064  	// in your Amazon Web Services account if your account hasn't already done so
  4065  	// before May 19, 2021. If you have already created servers with EndpointType=VPC_ENDPOINT
  4066  	// in your Amazon Web Services account on or before May 19, 2021, you will not
  4067  	// be affected. After this date, use EndpointType=VPC.
  4068  	//
  4069  	// For more information, see https://docs.aws.amazon.com/transfer/latest/userguide/create-server-in-vpc.html#deprecate-vpc-endpoint.
  4070  	//
  4071  	// It is recommended that you use VPC as the EndpointType. With this endpoint
  4072  	// type, you have the option to directly associate up to three Elastic IPv4
  4073  	// addresses (BYO IP included) with your server's endpoint and use VPC security
  4074  	// groups to restrict traffic by the client's public IP address. This is not
  4075  	// possible with EndpointType set to VPC_ENDPOINT.
  4076  	EndpointType *string `type:"string" enum:"EndpointType"`
  4077  
  4078  	// The RSA private key as generated by the ssh-keygen -N "" -m PEM -f my-new-server-key
  4079  	// command.
  4080  	//
  4081  	// If you aren't planning to migrate existing users from an existing SFTP-enabled
  4082  	// server to a new server, don't update the host key. Accidentally changing
  4083  	// a server's host key can be disruptive.
  4084  	//
  4085  	// For more information, see Change the host key for your SFTP-enabled server
  4086  	// (https://docs.aws.amazon.com/transfer/latest/userguide/edit-server-config.html#configuring-servers-change-host-key)
  4087  	// in the Amazon Web Services Transfer Family User Guide.
  4088  	//
  4089  	// HostKey is a sensitive parameter and its value will be
  4090  	// replaced with "sensitive" in string returned by CreateServerInput's
  4091  	// String and GoString methods.
  4092  	HostKey *string `type:"string" sensitive:"true"`
  4093  
  4094  	// Required when IdentityProviderType is set to AWS_DIRECTORY_SERVICE or API_GATEWAY.
  4095  	// Accepts an array containing all of the information required to use a directory
  4096  	// in AWS_DIRECTORY_SERVICE or invoke a customer-supplied authentication API,
  4097  	// including the API Gateway URL. Not required when IdentityProviderType is
  4098  	// set to SERVICE_MANAGED.
  4099  	IdentityProviderDetails *IdentityProviderDetails `type:"structure"`
  4100  
  4101  	// Specifies the mode of authentication for a server. The default value is SERVICE_MANAGED,
  4102  	// which allows you to store and access user credentials within the Amazon Web
  4103  	// Services Transfer Family service.
  4104  	//
  4105  	// Use AWS_DIRECTORY_SERVICE to provide access to Active Directory groups in
  4106  	// Amazon Web Services Managed Active Directory or Microsoft Active Directory
  4107  	// in your on-premises environment or in Amazon Web Services using AD Connectors.
  4108  	// This option also requires you to provide a Directory ID using the IdentityProviderDetails
  4109  	// parameter.
  4110  	//
  4111  	// Use the API_GATEWAY value to integrate with an identity provider of your
  4112  	// choosing. The API_GATEWAY setting requires you to provide an API Gateway
  4113  	// endpoint URL to call for authentication using the IdentityProviderDetails
  4114  	// parameter.
  4115  	IdentityProviderType *string `type:"string" enum:"IdentityProviderType"`
  4116  
  4117  	// Specifies the Amazon Resource Name (ARN) of the Amazon Web Services Identity
  4118  	// and Access Management (IAM) role that allows a server to turn on Amazon CloudWatch
  4119  	// logging for Amazon S3 or Amazon EFS events. When set, user activity can be
  4120  	// viewed in your CloudWatch logs.
  4121  	LoggingRole *string `min:"20" type:"string"`
  4122  
  4123  	// Specifies the file transfer protocol or protocols over which your file transfer
  4124  	// protocol client can connect to your server's endpoint. The available protocols
  4125  	// are:
  4126  	//
  4127  	//    * SFTP (Secure Shell (SSH) File Transfer Protocol): File transfer over
  4128  	//    SSH
  4129  	//
  4130  	//    * FTPS (File Transfer Protocol Secure): File transfer with TLS encryption
  4131  	//
  4132  	//    * FTP (File Transfer Protocol): Unencrypted file transfer
  4133  	//
  4134  	// If you select FTPS, you must choose a certificate stored in Amazon Web Services
  4135  	// Certificate Manager (ACM) which is used to identify your server when clients
  4136  	// connect to it over FTPS.
  4137  	//
  4138  	// If Protocol includes either FTP or FTPS, then the EndpointType must be VPC
  4139  	// and the IdentityProviderType must be AWS_DIRECTORY_SERVICE or API_GATEWAY.
  4140  	//
  4141  	// If Protocol includes FTP, then AddressAllocationIds cannot be associated.
  4142  	//
  4143  	// If Protocol is set only to SFTP, the EndpointType can be set to PUBLIC and
  4144  	// the IdentityProviderType can be set to SERVICE_MANAGED.
  4145  	Protocols []*string `min:"1" type:"list"`
  4146  
  4147  	// Specifies the name of the security policy that is attached to the server.
  4148  	SecurityPolicyName *string `type:"string"`
  4149  
  4150  	// Key-value pairs that can be used to group and search for servers.
  4151  	Tags []*Tag `min:"1" type:"list"`
  4152  
  4153  	// Specifies the workflow ID for the workflow to assign and the execution role
  4154  	// used for executing the workflow.
  4155  	WorkflowDetails *WorkflowDetails `type:"structure"`
  4156  }
  4157  
  4158  // String returns the string representation.
  4159  //
  4160  // API parameter values that are decorated as "sensitive" in the API will not
  4161  // be included in the string output. The member name will be present, but the
  4162  // value will be replaced with "sensitive".
  4163  func (s CreateServerInput) String() string {
  4164  	return awsutil.Prettify(s)
  4165  }
  4166  
  4167  // GoString returns the string representation.
  4168  //
  4169  // API parameter values that are decorated as "sensitive" in the API will not
  4170  // be included in the string output. The member name will be present, but the
  4171  // value will be replaced with "sensitive".
  4172  func (s CreateServerInput) GoString() string {
  4173  	return s.String()
  4174  }
  4175  
  4176  // Validate inspects the fields of the type to determine if they are valid.
  4177  func (s *CreateServerInput) Validate() error {
  4178  	invalidParams := request.ErrInvalidParams{Context: "CreateServerInput"}
  4179  	if s.LoggingRole != nil && len(*s.LoggingRole) < 20 {
  4180  		invalidParams.Add(request.NewErrParamMinLen("LoggingRole", 20))
  4181  	}
  4182  	if s.Protocols != nil && len(s.Protocols) < 1 {
  4183  		invalidParams.Add(request.NewErrParamMinLen("Protocols", 1))
  4184  	}
  4185  	if s.Tags != nil && len(s.Tags) < 1 {
  4186  		invalidParams.Add(request.NewErrParamMinLen("Tags", 1))
  4187  	}
  4188  	if s.EndpointDetails != nil {
  4189  		if err := s.EndpointDetails.Validate(); err != nil {
  4190  			invalidParams.AddNested("EndpointDetails", err.(request.ErrInvalidParams))
  4191  		}
  4192  	}
  4193  	if s.IdentityProviderDetails != nil {
  4194  		if err := s.IdentityProviderDetails.Validate(); err != nil {
  4195  			invalidParams.AddNested("IdentityProviderDetails", err.(request.ErrInvalidParams))
  4196  		}
  4197  	}
  4198  	if s.Tags != nil {
  4199  		for i, v := range s.Tags {
  4200  			if v == nil {
  4201  				continue
  4202  			}
  4203  			if err := v.Validate(); err != nil {
  4204  				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Tags", i), err.(request.ErrInvalidParams))
  4205  			}
  4206  		}
  4207  	}
  4208  	if s.WorkflowDetails != nil {
  4209  		if err := s.WorkflowDetails.Validate(); err != nil {
  4210  			invalidParams.AddNested("WorkflowDetails", err.(request.ErrInvalidParams))
  4211  		}
  4212  	}
  4213  
  4214  	if invalidParams.Len() > 0 {
  4215  		return invalidParams
  4216  	}
  4217  	return nil
  4218  }
  4219  
  4220  // SetCertificate sets the Certificate field's value.
  4221  func (s *CreateServerInput) SetCertificate(v string) *CreateServerInput {
  4222  	s.Certificate = &v
  4223  	return s
  4224  }
  4225  
  4226  // SetDomain sets the Domain field's value.
  4227  func (s *CreateServerInput) SetDomain(v string) *CreateServerInput {
  4228  	s.Domain = &v
  4229  	return s
  4230  }
  4231  
  4232  // SetEndpointDetails sets the EndpointDetails field's value.
  4233  func (s *CreateServerInput) SetEndpointDetails(v *EndpointDetails) *CreateServerInput {
  4234  	s.EndpointDetails = v
  4235  	return s
  4236  }
  4237  
  4238  // SetEndpointType sets the EndpointType field's value.
  4239  func (s *CreateServerInput) SetEndpointType(v string) *CreateServerInput {
  4240  	s.EndpointType = &v
  4241  	return s
  4242  }
  4243  
  4244  // SetHostKey sets the HostKey field's value.
  4245  func (s *CreateServerInput) SetHostKey(v string) *CreateServerInput {
  4246  	s.HostKey = &v
  4247  	return s
  4248  }
  4249  
  4250  // SetIdentityProviderDetails sets the IdentityProviderDetails field's value.
  4251  func (s *CreateServerInput) SetIdentityProviderDetails(v *IdentityProviderDetails) *CreateServerInput {
  4252  	s.IdentityProviderDetails = v
  4253  	return s
  4254  }
  4255  
  4256  // SetIdentityProviderType sets the IdentityProviderType field's value.
  4257  func (s *CreateServerInput) SetIdentityProviderType(v string) *CreateServerInput {
  4258  	s.IdentityProviderType = &v
  4259  	return s
  4260  }
  4261  
  4262  // SetLoggingRole sets the LoggingRole field's value.
  4263  func (s *CreateServerInput) SetLoggingRole(v string) *CreateServerInput {
  4264  	s.LoggingRole = &v
  4265  	return s
  4266  }
  4267  
  4268  // SetProtocols sets the Protocols field's value.
  4269  func (s *CreateServerInput) SetProtocols(v []*string) *CreateServerInput {
  4270  	s.Protocols = v
  4271  	return s
  4272  }
  4273  
  4274  // SetSecurityPolicyName sets the SecurityPolicyName field's value.
  4275  func (s *CreateServerInput) SetSecurityPolicyName(v string) *CreateServerInput {
  4276  	s.SecurityPolicyName = &v
  4277  	return s
  4278  }
  4279  
  4280  // SetTags sets the Tags field's value.
  4281  func (s *CreateServerInput) SetTags(v []*Tag) *CreateServerInput {
  4282  	s.Tags = v
  4283  	return s
  4284  }
  4285  
  4286  // SetWorkflowDetails sets the WorkflowDetails field's value.
  4287  func (s *CreateServerInput) SetWorkflowDetails(v *WorkflowDetails) *CreateServerInput {
  4288  	s.WorkflowDetails = v
  4289  	return s
  4290  }
  4291  
  4292  type CreateServerOutput struct {
  4293  	_ struct{} `type:"structure"`
  4294  
  4295  	// The service-assigned ID of the server that is created.
  4296  	//
  4297  	// ServerId is a required field
  4298  	ServerId *string `min:"19" type:"string" required:"true"`
  4299  }
  4300  
  4301  // String returns the string representation.
  4302  //
  4303  // API parameter values that are decorated as "sensitive" in the API will not
  4304  // be included in the string output. The member name will be present, but the
  4305  // value will be replaced with "sensitive".
  4306  func (s CreateServerOutput) String() string {
  4307  	return awsutil.Prettify(s)
  4308  }
  4309  
  4310  // GoString returns the string representation.
  4311  //
  4312  // API parameter values that are decorated as "sensitive" in the API will not
  4313  // be included in the string output. The member name will be present, but the
  4314  // value will be replaced with "sensitive".
  4315  func (s CreateServerOutput) GoString() string {
  4316  	return s.String()
  4317  }
  4318  
  4319  // SetServerId sets the ServerId field's value.
  4320  func (s *CreateServerOutput) SetServerId(v string) *CreateServerOutput {
  4321  	s.ServerId = &v
  4322  	return s
  4323  }
  4324  
  4325  type CreateUserInput struct {
  4326  	_ struct{} `type:"structure"`
  4327  
  4328  	// The landing directory (folder) for a user when they log in to the server
  4329  	// using the client.
  4330  	//
  4331  	// A HomeDirectory example is /bucket_name/home/mydirectory.
  4332  	HomeDirectory *string `type:"string"`
  4333  
  4334  	// Logical directory mappings that specify what Amazon S3 or Amazon EFS paths
  4335  	// and keys should be visible to your user and how you want to make them visible.
  4336  	// You must specify the Entry and Target pair, where Entry shows how the path
  4337  	// is made visible and Target is the actual Amazon S3 or Amazon EFS path. If
  4338  	// you only specify a target, it is displayed as is. You also must ensure that
  4339  	// your Amazon Web Services Identity and Access Management (IAM) role provides
  4340  	// access to paths in Target. This value can only be set when HomeDirectoryType
  4341  	// is set to LOGICAL.
  4342  	//
  4343  	// The following is an Entry and Target pair example.
  4344  	//
  4345  	// [ { "Entry": "/directory1", "Target": "/bucket_name/home/mydirectory" } ]
  4346  	//
  4347  	// In most cases, you can use this value instead of the session policy to lock
  4348  	// your user down to the designated home directory ("chroot"). To do this, you
  4349  	// can set Entry to / and set Target to the HomeDirectory parameter value.
  4350  	//
  4351  	// The following is an Entry and Target pair example for chroot.
  4352  	//
  4353  	// [ { "Entry:": "/", "Target": "/bucket_name/home/mydirectory" } ]
  4354  	//
  4355  	// If the target of a logical directory entry does not exist in Amazon S3 or
  4356  	// EFS, the entry is ignored. As a workaround, you can use the Amazon S3 API
  4357  	// or EFS API to create 0 byte objects as place holders for your directory.
  4358  	// If using the CLI, use the s3api or efsapi call instead of s3 or efs so you
  4359  	// can use the put-object operation. For example, you use the following: aws
  4360  	// s3api put-object --bucket bucketname --key path/to/folder/. Make sure that
  4361  	// the end of the key name ends in a / for it to be considered a folder.
  4362  	HomeDirectoryMappings []*HomeDirectoryMapEntry `min:"1" type:"list"`
  4363  
  4364  	// The type of landing directory (folder) you want your users' home directory
  4365  	// to be when they log into the server. If you set it to PATH, the user will
  4366  	// see the absolute Amazon S3 bucket or EFS paths as is in their file transfer
  4367  	// protocol clients. If you set it LOGICAL, you need to provide mappings in
  4368  	// the HomeDirectoryMappings for how you want to make Amazon S3 or EFS paths
  4369  	// visible to your users.
  4370  	HomeDirectoryType *string `type:"string" enum:"HomeDirectoryType"`
  4371  
  4372  	// A session policy for your user so that you can use the same IAM role across
  4373  	// multiple users. This policy scopes down user access to portions of their
  4374  	// Amazon S3 bucket. Variables that you can use inside this policy include ${Transfer:UserName},
  4375  	// ${Transfer:HomeDirectory}, and ${Transfer:HomeBucket}.
  4376  	//
  4377  	// This only applies when the domain of ServerId is S3. EFS does not use session
  4378  	// policies.
  4379  	//
  4380  	// For session policies, Amazon Web Services Transfer Family stores the policy
  4381  	// as a JSON blob, instead of the Amazon Resource Name (ARN) of the policy.
  4382  	// You save the policy as a JSON blob and pass it in the Policy argument.
  4383  	//
  4384  	// For an example of a session policy, see Example session policy (https://docs.aws.amazon.com/transfer/latest/userguide/session-policy.html).
  4385  	//
  4386  	// For more information, see AssumeRole (https://docs.aws.amazon.com/STS/latest/APIReference/API_AssumeRole.html)
  4387  	// in the Amazon Web Services Security Token Service API Reference.
  4388  	Policy *string `type:"string"`
  4389  
  4390  	// Specifies the full POSIX identity, including user ID (Uid), group ID (Gid),
  4391  	// and any secondary groups IDs (SecondaryGids), that controls your users' access
  4392  	// to your Amazon EFS file systems. The POSIX permissions that are set on files
  4393  	// and directories in Amazon EFS determine the level of access your users get
  4394  	// when transferring files into and out of your Amazon EFS file systems.
  4395  	PosixProfile *PosixProfile `type:"structure"`
  4396  
  4397  	// Specifies the Amazon Resource Name (ARN) of the IAM role that controls your
  4398  	// users' access to your Amazon S3 bucket or EFS file system. The policies attached
  4399  	// to this role determine the level of access that you want to provide your
  4400  	// users when transferring files into and out of your Amazon S3 bucket or EFS
  4401  	// file system. The IAM role should also contain a trust relationship that allows
  4402  	// the server to access your resources when servicing your users' transfer requests.
  4403  	//
  4404  	// Role is a required field
  4405  	Role *string `min:"20" type:"string" required:"true"`
  4406  
  4407  	// A system-assigned unique identifier for a server instance. This is the specific
  4408  	// server that you added your user to.
  4409  	//
  4410  	// ServerId is a required field
  4411  	ServerId *string `min:"19" type:"string" required:"true"`
  4412  
  4413  	// The public portion of the Secure Shell (SSH) key used to authenticate the
  4414  	// user to the server.
  4415  	SshPublicKeyBody *string `type:"string"`
  4416  
  4417  	// Key-value pairs that can be used to group and search for users. Tags are
  4418  	// metadata attached to users for any purpose.
  4419  	Tags []*Tag `min:"1" type:"list"`
  4420  
  4421  	// A unique string that identifies a user and is associated with a ServerId.
  4422  	// This user name must be a minimum of 3 and a maximum of 100 characters long.
  4423  	// The following are valid characters: a-z, A-Z, 0-9, underscore '_', hyphen
  4424  	// '-', period '.', and at sign '@'. The user name can't start with a hyphen,
  4425  	// period, or at sign.
  4426  	//
  4427  	// UserName is a required field
  4428  	UserName *string `min:"3" type:"string" required:"true"`
  4429  }
  4430  
  4431  // String returns the string representation.
  4432  //
  4433  // API parameter values that are decorated as "sensitive" in the API will not
  4434  // be included in the string output. The member name will be present, but the
  4435  // value will be replaced with "sensitive".
  4436  func (s CreateUserInput) String() string {
  4437  	return awsutil.Prettify(s)
  4438  }
  4439  
  4440  // GoString returns the string representation.
  4441  //
  4442  // API parameter values that are decorated as "sensitive" in the API will not
  4443  // be included in the string output. The member name will be present, but the
  4444  // value will be replaced with "sensitive".
  4445  func (s CreateUserInput) GoString() string {
  4446  	return s.String()
  4447  }
  4448  
  4449  // Validate inspects the fields of the type to determine if they are valid.
  4450  func (s *CreateUserInput) Validate() error {
  4451  	invalidParams := request.ErrInvalidParams{Context: "CreateUserInput"}
  4452  	if s.HomeDirectoryMappings != nil && len(s.HomeDirectoryMappings) < 1 {
  4453  		invalidParams.Add(request.NewErrParamMinLen("HomeDirectoryMappings", 1))
  4454  	}
  4455  	if s.Role == nil {
  4456  		invalidParams.Add(request.NewErrParamRequired("Role"))
  4457  	}
  4458  	if s.Role != nil && len(*s.Role) < 20 {
  4459  		invalidParams.Add(request.NewErrParamMinLen("Role", 20))
  4460  	}
  4461  	if s.ServerId == nil {
  4462  		invalidParams.Add(request.NewErrParamRequired("ServerId"))
  4463  	}
  4464  	if s.ServerId != nil && len(*s.ServerId) < 19 {
  4465  		invalidParams.Add(request.NewErrParamMinLen("ServerId", 19))
  4466  	}
  4467  	if s.Tags != nil && len(s.Tags) < 1 {
  4468  		invalidParams.Add(request.NewErrParamMinLen("Tags", 1))
  4469  	}
  4470  	if s.UserName == nil {
  4471  		invalidParams.Add(request.NewErrParamRequired("UserName"))
  4472  	}
  4473  	if s.UserName != nil && len(*s.UserName) < 3 {
  4474  		invalidParams.Add(request.NewErrParamMinLen("UserName", 3))
  4475  	}
  4476  	if s.HomeDirectoryMappings != nil {
  4477  		for i, v := range s.HomeDirectoryMappings {
  4478  			if v == nil {
  4479  				continue
  4480  			}
  4481  			if err := v.Validate(); err != nil {
  4482  				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "HomeDirectoryMappings", i), err.(request.ErrInvalidParams))
  4483  			}
  4484  		}
  4485  	}
  4486  	if s.PosixProfile != nil {
  4487  		if err := s.PosixProfile.Validate(); err != nil {
  4488  			invalidParams.AddNested("PosixProfile", err.(request.ErrInvalidParams))
  4489  		}
  4490  	}
  4491  	if s.Tags != nil {
  4492  		for i, v := range s.Tags {
  4493  			if v == nil {
  4494  				continue
  4495  			}
  4496  			if err := v.Validate(); err != nil {
  4497  				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Tags", i), err.(request.ErrInvalidParams))
  4498  			}
  4499  		}
  4500  	}
  4501  
  4502  	if invalidParams.Len() > 0 {
  4503  		return invalidParams
  4504  	}
  4505  	return nil
  4506  }
  4507  
  4508  // SetHomeDirectory sets the HomeDirectory field's value.
  4509  func (s *CreateUserInput) SetHomeDirectory(v string) *CreateUserInput {
  4510  	s.HomeDirectory = &v
  4511  	return s
  4512  }
  4513  
  4514  // SetHomeDirectoryMappings sets the HomeDirectoryMappings field's value.
  4515  func (s *CreateUserInput) SetHomeDirectoryMappings(v []*HomeDirectoryMapEntry) *CreateUserInput {
  4516  	s.HomeDirectoryMappings = v
  4517  	return s
  4518  }
  4519  
  4520  // SetHomeDirectoryType sets the HomeDirectoryType field's value.
  4521  func (s *CreateUserInput) SetHomeDirectoryType(v string) *CreateUserInput {
  4522  	s.HomeDirectoryType = &v
  4523  	return s
  4524  }
  4525  
  4526  // SetPolicy sets the Policy field's value.
  4527  func (s *CreateUserInput) SetPolicy(v string) *CreateUserInput {
  4528  	s.Policy = &v
  4529  	return s
  4530  }
  4531  
  4532  // SetPosixProfile sets the PosixProfile field's value.
  4533  func (s *CreateUserInput) SetPosixProfile(v *PosixProfile) *CreateUserInput {
  4534  	s.PosixProfile = v
  4535  	return s
  4536  }
  4537  
  4538  // SetRole sets the Role field's value.
  4539  func (s *CreateUserInput) SetRole(v string) *CreateUserInput {
  4540  	s.Role = &v
  4541  	return s
  4542  }
  4543  
  4544  // SetServerId sets the ServerId field's value.
  4545  func (s *CreateUserInput) SetServerId(v string) *CreateUserInput {
  4546  	s.ServerId = &v
  4547  	return s
  4548  }
  4549  
  4550  // SetSshPublicKeyBody sets the SshPublicKeyBody field's value.
  4551  func (s *CreateUserInput) SetSshPublicKeyBody(v string) *CreateUserInput {
  4552  	s.SshPublicKeyBody = &v
  4553  	return s
  4554  }
  4555  
  4556  // SetTags sets the Tags field's value.
  4557  func (s *CreateUserInput) SetTags(v []*Tag) *CreateUserInput {
  4558  	s.Tags = v
  4559  	return s
  4560  }
  4561  
  4562  // SetUserName sets the UserName field's value.
  4563  func (s *CreateUserInput) SetUserName(v string) *CreateUserInput {
  4564  	s.UserName = &v
  4565  	return s
  4566  }
  4567  
  4568  type CreateUserOutput struct {
  4569  	_ struct{} `type:"structure"`
  4570  
  4571  	// The ID of the server that the user is attached to.
  4572  	//
  4573  	// ServerId is a required field
  4574  	ServerId *string `min:"19" type:"string" required:"true"`
  4575  
  4576  	// A unique string that identifies a user account associated with a server.
  4577  	//
  4578  	// UserName is a required field
  4579  	UserName *string `min:"3" type:"string" required:"true"`
  4580  }
  4581  
  4582  // String returns the string representation.
  4583  //
  4584  // API parameter values that are decorated as "sensitive" in the API will not
  4585  // be included in the string output. The member name will be present, but the
  4586  // value will be replaced with "sensitive".
  4587  func (s CreateUserOutput) String() string {
  4588  	return awsutil.Prettify(s)
  4589  }
  4590  
  4591  // GoString returns the string representation.
  4592  //
  4593  // API parameter values that are decorated as "sensitive" in the API will not
  4594  // be included in the string output. The member name will be present, but the
  4595  // value will be replaced with "sensitive".
  4596  func (s CreateUserOutput) GoString() string {
  4597  	return s.String()
  4598  }
  4599  
  4600  // SetServerId sets the ServerId field's value.
  4601  func (s *CreateUserOutput) SetServerId(v string) *CreateUserOutput {
  4602  	s.ServerId = &v
  4603  	return s
  4604  }
  4605  
  4606  // SetUserName sets the UserName field's value.
  4607  func (s *CreateUserOutput) SetUserName(v string) *CreateUserOutput {
  4608  	s.UserName = &v
  4609  	return s
  4610  }
  4611  
  4612  type CreateWorkflowInput struct {
  4613  	_ struct{} `type:"structure"`
  4614  
  4615  	// A textual description for the workflow.
  4616  	Description *string `type:"string"`
  4617  
  4618  	// Specifies the steps (actions) to take if errors are encountered during execution
  4619  	// of the workflow.
  4620  	//
  4621  	// For custom steps, the lambda function needs to send FAILURE to the call back
  4622  	// API to kick off the exception steps. Additionally, if the lambda does not
  4623  	// send SUCCESS before it times out, the exception steps are executed.
  4624  	OnExceptionSteps []*WorkflowStep `type:"list"`
  4625  
  4626  	// Specifies the details for the steps that are in the specified workflow.
  4627  	//
  4628  	// The TYPE specifies which of the following actions is being taken for this
  4629  	// step.
  4630  	//
  4631  	//    * Copy: copy the file to another location
  4632  	//
  4633  	//    * Custom: custom step with a lambda target
  4634  	//
  4635  	//    * Delete: delete the file
  4636  	//
  4637  	//    * Tag: add a tag to the file
  4638  	//
  4639  	// Currently, copying and tagging are supported only on S3.
  4640  	//
  4641  	// For file location, you specify either the S3 bucket and key, or the EFS filesystem
  4642  	// ID and path.
  4643  	//
  4644  	// Steps is a required field
  4645  	Steps []*WorkflowStep `type:"list" required:"true"`
  4646  
  4647  	// Key-value pairs that can be used to group and search for workflows. Tags
  4648  	// are metadata attached to workflows for any purpose.
  4649  	Tags []*Tag `min:"1" type:"list"`
  4650  }
  4651  
  4652  // String returns the string representation.
  4653  //
  4654  // API parameter values that are decorated as "sensitive" in the API will not
  4655  // be included in the string output. The member name will be present, but the
  4656  // value will be replaced with "sensitive".
  4657  func (s CreateWorkflowInput) String() string {
  4658  	return awsutil.Prettify(s)
  4659  }
  4660  
  4661  // GoString returns the string representation.
  4662  //
  4663  // API parameter values that are decorated as "sensitive" in the API will not
  4664  // be included in the string output. The member name will be present, but the
  4665  // value will be replaced with "sensitive".
  4666  func (s CreateWorkflowInput) GoString() string {
  4667  	return s.String()
  4668  }
  4669  
  4670  // Validate inspects the fields of the type to determine if they are valid.
  4671  func (s *CreateWorkflowInput) Validate() error {
  4672  	invalidParams := request.ErrInvalidParams{Context: "CreateWorkflowInput"}
  4673  	if s.Steps == nil {
  4674  		invalidParams.Add(request.NewErrParamRequired("Steps"))
  4675  	}
  4676  	if s.Tags != nil && len(s.Tags) < 1 {
  4677  		invalidParams.Add(request.NewErrParamMinLen("Tags", 1))
  4678  	}
  4679  	if s.OnExceptionSteps != nil {
  4680  		for i, v := range s.OnExceptionSteps {
  4681  			if v == nil {
  4682  				continue
  4683  			}
  4684  			if err := v.Validate(); err != nil {
  4685  				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "OnExceptionSteps", i), err.(request.ErrInvalidParams))
  4686  			}
  4687  		}
  4688  	}
  4689  	if s.Steps != nil {
  4690  		for i, v := range s.Steps {
  4691  			if v == nil {
  4692  				continue
  4693  			}
  4694  			if err := v.Validate(); err != nil {
  4695  				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Steps", i), err.(request.ErrInvalidParams))
  4696  			}
  4697  		}
  4698  	}
  4699  	if s.Tags != nil {
  4700  		for i, v := range s.Tags {
  4701  			if v == nil {
  4702  				continue
  4703  			}
  4704  			if err := v.Validate(); err != nil {
  4705  				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Tags", i), err.(request.ErrInvalidParams))
  4706  			}
  4707  		}
  4708  	}
  4709  
  4710  	if invalidParams.Len() > 0 {
  4711  		return invalidParams
  4712  	}
  4713  	return nil
  4714  }
  4715  
  4716  // SetDescription sets the Description field's value.
  4717  func (s *CreateWorkflowInput) SetDescription(v string) *CreateWorkflowInput {
  4718  	s.Description = &v
  4719  	return s
  4720  }
  4721  
  4722  // SetOnExceptionSteps sets the OnExceptionSteps field's value.
  4723  func (s *CreateWorkflowInput) SetOnExceptionSteps(v []*WorkflowStep) *CreateWorkflowInput {
  4724  	s.OnExceptionSteps = v
  4725  	return s
  4726  }
  4727  
  4728  // SetSteps sets the Steps field's value.
  4729  func (s *CreateWorkflowInput) SetSteps(v []*WorkflowStep) *CreateWorkflowInput {
  4730  	s.Steps = v
  4731  	return s
  4732  }
  4733  
  4734  // SetTags sets the Tags field's value.
  4735  func (s *CreateWorkflowInput) SetTags(v []*Tag) *CreateWorkflowInput {
  4736  	s.Tags = v
  4737  	return s
  4738  }
  4739  
  4740  type CreateWorkflowOutput struct {
  4741  	_ struct{} `type:"structure"`
  4742  
  4743  	// A unique identifier for the workflow.
  4744  	//
  4745  	// WorkflowId is a required field
  4746  	WorkflowId *string `min:"19" type:"string" required:"true"`
  4747  }
  4748  
  4749  // String returns the string representation.
  4750  //
  4751  // API parameter values that are decorated as "sensitive" in the API will not
  4752  // be included in the string output. The member name will be present, but the
  4753  // value will be replaced with "sensitive".
  4754  func (s CreateWorkflowOutput) String() string {
  4755  	return awsutil.Prettify(s)
  4756  }
  4757  
  4758  // GoString returns the string representation.
  4759  //
  4760  // API parameter values that are decorated as "sensitive" in the API will not
  4761  // be included in the string output. The member name will be present, but the
  4762  // value will be replaced with "sensitive".
  4763  func (s CreateWorkflowOutput) GoString() string {
  4764  	return s.String()
  4765  }
  4766  
  4767  // SetWorkflowId sets the WorkflowId field's value.
  4768  func (s *CreateWorkflowOutput) SetWorkflowId(v string) *CreateWorkflowOutput {
  4769  	s.WorkflowId = &v
  4770  	return s
  4771  }
  4772  
  4773  // Each step type has its own StepDetails structure.
  4774  type CustomStepDetails struct {
  4775  	_ struct{} `type:"structure"`
  4776  
  4777  	// The name of the step, used as an identifier.
  4778  	Name *string `type:"string"`
  4779  
  4780  	// The ARN for the lambda function that is being called.
  4781  	Target *string `type:"string"`
  4782  
  4783  	// Timeout, in seconds, for the step.
  4784  	TimeoutSeconds *int64 `min:"1" type:"integer"`
  4785  }
  4786  
  4787  // String returns the string representation.
  4788  //
  4789  // API parameter values that are decorated as "sensitive" in the API will not
  4790  // be included in the string output. The member name will be present, but the
  4791  // value will be replaced with "sensitive".
  4792  func (s CustomStepDetails) String() string {
  4793  	return awsutil.Prettify(s)
  4794  }
  4795  
  4796  // GoString returns the string representation.
  4797  //
  4798  // API parameter values that are decorated as "sensitive" in the API will not
  4799  // be included in the string output. The member name will be present, but the
  4800  // value will be replaced with "sensitive".
  4801  func (s CustomStepDetails) GoString() string {
  4802  	return s.String()
  4803  }
  4804  
  4805  // Validate inspects the fields of the type to determine if they are valid.
  4806  func (s *CustomStepDetails) Validate() error {
  4807  	invalidParams := request.ErrInvalidParams{Context: "CustomStepDetails"}
  4808  	if s.TimeoutSeconds != nil && *s.TimeoutSeconds < 1 {
  4809  		invalidParams.Add(request.NewErrParamMinValue("TimeoutSeconds", 1))
  4810  	}
  4811  
  4812  	if invalidParams.Len() > 0 {
  4813  		return invalidParams
  4814  	}
  4815  	return nil
  4816  }
  4817  
  4818  // SetName sets the Name field's value.
  4819  func (s *CustomStepDetails) SetName(v string) *CustomStepDetails {
  4820  	s.Name = &v
  4821  	return s
  4822  }
  4823  
  4824  // SetTarget sets the Target field's value.
  4825  func (s *CustomStepDetails) SetTarget(v string) *CustomStepDetails {
  4826  	s.Target = &v
  4827  	return s
  4828  }
  4829  
  4830  // SetTimeoutSeconds sets the TimeoutSeconds field's value.
  4831  func (s *CustomStepDetails) SetTimeoutSeconds(v int64) *CustomStepDetails {
  4832  	s.TimeoutSeconds = &v
  4833  	return s
  4834  }
  4835  
  4836  type DeleteAccessInput struct {
  4837  	_ struct{} `type:"structure"`
  4838  
  4839  	// A unique identifier that is required to identify specific groups within your
  4840  	// directory. The users of the group that you associate have access to your
  4841  	// Amazon S3 or Amazon EFS resources over the enabled protocols using Amazon
  4842  	// Web Services Transfer Family. If you know the group name, you can view the
  4843  	// SID values by running the following command using Windows PowerShell.
  4844  	//
  4845  	// Get-ADGroup -Filter {samAccountName -like "YourGroupName*"} -Properties *
  4846  	// | Select SamAccountName,ObjectSid
  4847  	//
  4848  	// In that command, replace YourGroupName with the name of your Active Directory
  4849  	// group.
  4850  	//
  4851  	// The regex used to validate this parameter is a string of characters consisting
  4852  	// of uppercase and lowercase alphanumeric characters with no spaces. You can
  4853  	// also include underscores or any of the following characters: =,.@:/-
  4854  	//
  4855  	// ExternalId is a required field
  4856  	ExternalId *string `min:"1" type:"string" required:"true"`
  4857  
  4858  	// A system-assigned unique identifier for a server that has this user assigned.
  4859  	//
  4860  	// ServerId is a required field
  4861  	ServerId *string `min:"19" type:"string" required:"true"`
  4862  }
  4863  
  4864  // String returns the string representation.
  4865  //
  4866  // API parameter values that are decorated as "sensitive" in the API will not
  4867  // be included in the string output. The member name will be present, but the
  4868  // value will be replaced with "sensitive".
  4869  func (s DeleteAccessInput) String() string {
  4870  	return awsutil.Prettify(s)
  4871  }
  4872  
  4873  // GoString returns the string representation.
  4874  //
  4875  // API parameter values that are decorated as "sensitive" in the API will not
  4876  // be included in the string output. The member name will be present, but the
  4877  // value will be replaced with "sensitive".
  4878  func (s DeleteAccessInput) GoString() string {
  4879  	return s.String()
  4880  }
  4881  
  4882  // Validate inspects the fields of the type to determine if they are valid.
  4883  func (s *DeleteAccessInput) Validate() error {
  4884  	invalidParams := request.ErrInvalidParams{Context: "DeleteAccessInput"}
  4885  	if s.ExternalId == nil {
  4886  		invalidParams.Add(request.NewErrParamRequired("ExternalId"))
  4887  	}
  4888  	if s.ExternalId != nil && len(*s.ExternalId) < 1 {
  4889  		invalidParams.Add(request.NewErrParamMinLen("ExternalId", 1))
  4890  	}
  4891  	if s.ServerId == nil {
  4892  		invalidParams.Add(request.NewErrParamRequired("ServerId"))
  4893  	}
  4894  	if s.ServerId != nil && len(*s.ServerId) < 19 {
  4895  		invalidParams.Add(request.NewErrParamMinLen("ServerId", 19))
  4896  	}
  4897  
  4898  	if invalidParams.Len() > 0 {
  4899  		return invalidParams
  4900  	}
  4901  	return nil
  4902  }
  4903  
  4904  // SetExternalId sets the ExternalId field's value.
  4905  func (s *DeleteAccessInput) SetExternalId(v string) *DeleteAccessInput {
  4906  	s.ExternalId = &v
  4907  	return s
  4908  }
  4909  
  4910  // SetServerId sets the ServerId field's value.
  4911  func (s *DeleteAccessInput) SetServerId(v string) *DeleteAccessInput {
  4912  	s.ServerId = &v
  4913  	return s
  4914  }
  4915  
  4916  type DeleteAccessOutput struct {
  4917  	_ struct{} `type:"structure"`
  4918  }
  4919  
  4920  // String returns the string representation.
  4921  //
  4922  // API parameter values that are decorated as "sensitive" in the API will not
  4923  // be included in the string output. The member name will be present, but the
  4924  // value will be replaced with "sensitive".
  4925  func (s DeleteAccessOutput) String() string {
  4926  	return awsutil.Prettify(s)
  4927  }
  4928  
  4929  // GoString returns the string representation.
  4930  //
  4931  // API parameter values that are decorated as "sensitive" in the API will not
  4932  // be included in the string output. The member name will be present, but the
  4933  // value will be replaced with "sensitive".
  4934  func (s DeleteAccessOutput) GoString() string {
  4935  	return s.String()
  4936  }
  4937  
  4938  type DeleteServerInput struct {
  4939  	_ struct{} `type:"structure"`
  4940  
  4941  	// A unique system-assigned identifier for a server instance.
  4942  	//
  4943  	// ServerId is a required field
  4944  	ServerId *string `min:"19" type:"string" required:"true"`
  4945  }
  4946  
  4947  // String returns the string representation.
  4948  //
  4949  // API parameter values that are decorated as "sensitive" in the API will not
  4950  // be included in the string output. The member name will be present, but the
  4951  // value will be replaced with "sensitive".
  4952  func (s DeleteServerInput) String() string {
  4953  	return awsutil.Prettify(s)
  4954  }
  4955  
  4956  // GoString returns the string representation.
  4957  //
  4958  // API parameter values that are decorated as "sensitive" in the API will not
  4959  // be included in the string output. The member name will be present, but the
  4960  // value will be replaced with "sensitive".
  4961  func (s DeleteServerInput) GoString() string {
  4962  	return s.String()
  4963  }
  4964  
  4965  // Validate inspects the fields of the type to determine if they are valid.
  4966  func (s *DeleteServerInput) Validate() error {
  4967  	invalidParams := request.ErrInvalidParams{Context: "DeleteServerInput"}
  4968  	if s.ServerId == nil {
  4969  		invalidParams.Add(request.NewErrParamRequired("ServerId"))
  4970  	}
  4971  	if s.ServerId != nil && len(*s.ServerId) < 19 {
  4972  		invalidParams.Add(request.NewErrParamMinLen("ServerId", 19))
  4973  	}
  4974  
  4975  	if invalidParams.Len() > 0 {
  4976  		return invalidParams
  4977  	}
  4978  	return nil
  4979  }
  4980  
  4981  // SetServerId sets the ServerId field's value.
  4982  func (s *DeleteServerInput) SetServerId(v string) *DeleteServerInput {
  4983  	s.ServerId = &v
  4984  	return s
  4985  }
  4986  
  4987  type DeleteServerOutput struct {
  4988  	_ struct{} `type:"structure"`
  4989  }
  4990  
  4991  // String returns the string representation.
  4992  //
  4993  // API parameter values that are decorated as "sensitive" in the API will not
  4994  // be included in the string output. The member name will be present, but the
  4995  // value will be replaced with "sensitive".
  4996  func (s DeleteServerOutput) String() string {
  4997  	return awsutil.Prettify(s)
  4998  }
  4999  
  5000  // GoString returns the string representation.
  5001  //
  5002  // API parameter values that are decorated as "sensitive" in the API will not
  5003  // be included in the string output. The member name will be present, but the
  5004  // value will be replaced with "sensitive".
  5005  func (s DeleteServerOutput) GoString() string {
  5006  	return s.String()
  5007  }
  5008  
  5009  type DeleteSshPublicKeyInput struct {
  5010  	_ struct{} `type:"structure"`
  5011  
  5012  	// A system-assigned unique identifier for a file transfer protocol-enabled
  5013  	// server instance that has the user assigned to it.
  5014  	//
  5015  	// ServerId is a required field
  5016  	ServerId *string `min:"19" type:"string" required:"true"`
  5017  
  5018  	// A unique identifier used to reference your user's specific SSH key.
  5019  	//
  5020  	// SshPublicKeyId is a required field
  5021  	SshPublicKeyId *string `min:"21" type:"string" required:"true"`
  5022  
  5023  	// A unique string that identifies a user whose public key is being deleted.
  5024  	//
  5025  	// UserName is a required field
  5026  	UserName *string `min:"3" type:"string" required:"true"`
  5027  }
  5028  
  5029  // String returns the string representation.
  5030  //
  5031  // API parameter values that are decorated as "sensitive" in the API will not
  5032  // be included in the string output. The member name will be present, but the
  5033  // value will be replaced with "sensitive".
  5034  func (s DeleteSshPublicKeyInput) String() string {
  5035  	return awsutil.Prettify(s)
  5036  }
  5037  
  5038  // GoString returns the string representation.
  5039  //
  5040  // API parameter values that are decorated as "sensitive" in the API will not
  5041  // be included in the string output. The member name will be present, but the
  5042  // value will be replaced with "sensitive".
  5043  func (s DeleteSshPublicKeyInput) GoString() string {
  5044  	return s.String()
  5045  }
  5046  
  5047  // Validate inspects the fields of the type to determine if they are valid.
  5048  func (s *DeleteSshPublicKeyInput) Validate() error {
  5049  	invalidParams := request.ErrInvalidParams{Context: "DeleteSshPublicKeyInput"}
  5050  	if s.ServerId == nil {
  5051  		invalidParams.Add(request.NewErrParamRequired("ServerId"))
  5052  	}
  5053  	if s.ServerId != nil && len(*s.ServerId) < 19 {
  5054  		invalidParams.Add(request.NewErrParamMinLen("ServerId", 19))
  5055  	}
  5056  	if s.SshPublicKeyId == nil {
  5057  		invalidParams.Add(request.NewErrParamRequired("SshPublicKeyId"))
  5058  	}
  5059  	if s.SshPublicKeyId != nil && len(*s.SshPublicKeyId) < 21 {
  5060  		invalidParams.Add(request.NewErrParamMinLen("SshPublicKeyId", 21))
  5061  	}
  5062  	if s.UserName == nil {
  5063  		invalidParams.Add(request.NewErrParamRequired("UserName"))
  5064  	}
  5065  	if s.UserName != nil && len(*s.UserName) < 3 {
  5066  		invalidParams.Add(request.NewErrParamMinLen("UserName", 3))
  5067  	}
  5068  
  5069  	if invalidParams.Len() > 0 {
  5070  		return invalidParams
  5071  	}
  5072  	return nil
  5073  }
  5074  
  5075  // SetServerId sets the ServerId field's value.
  5076  func (s *DeleteSshPublicKeyInput) SetServerId(v string) *DeleteSshPublicKeyInput {
  5077  	s.ServerId = &v
  5078  	return s
  5079  }
  5080  
  5081  // SetSshPublicKeyId sets the SshPublicKeyId field's value.
  5082  func (s *DeleteSshPublicKeyInput) SetSshPublicKeyId(v string) *DeleteSshPublicKeyInput {
  5083  	s.SshPublicKeyId = &v
  5084  	return s
  5085  }
  5086  
  5087  // SetUserName sets the UserName field's value.
  5088  func (s *DeleteSshPublicKeyInput) SetUserName(v string) *DeleteSshPublicKeyInput {
  5089  	s.UserName = &v
  5090  	return s
  5091  }
  5092  
  5093  type DeleteSshPublicKeyOutput struct {
  5094  	_ struct{} `type:"structure"`
  5095  }
  5096  
  5097  // String returns the string representation.
  5098  //
  5099  // API parameter values that are decorated as "sensitive" in the API will not
  5100  // be included in the string output. The member name will be present, but the
  5101  // value will be replaced with "sensitive".
  5102  func (s DeleteSshPublicKeyOutput) String() string {
  5103  	return awsutil.Prettify(s)
  5104  }
  5105  
  5106  // GoString returns the string representation.
  5107  //
  5108  // API parameter values that are decorated as "sensitive" in the API will not
  5109  // be included in the string output. The member name will be present, but the
  5110  // value will be replaced with "sensitive".
  5111  func (s DeleteSshPublicKeyOutput) GoString() string {
  5112  	return s.String()
  5113  }
  5114  
  5115  // The name of the step, used to identify the delete step.
  5116  type DeleteStepDetails struct {
  5117  	_ struct{} `type:"structure"`
  5118  
  5119  	// The name of the step, used as an identifier.
  5120  	Name *string `type:"string"`
  5121  }
  5122  
  5123  // String returns the string representation.
  5124  //
  5125  // API parameter values that are decorated as "sensitive" in the API will not
  5126  // be included in the string output. The member name will be present, but the
  5127  // value will be replaced with "sensitive".
  5128  func (s DeleteStepDetails) String() string {
  5129  	return awsutil.Prettify(s)
  5130  }
  5131  
  5132  // GoString returns the string representation.
  5133  //
  5134  // API parameter values that are decorated as "sensitive" in the API will not
  5135  // be included in the string output. The member name will be present, but the
  5136  // value will be replaced with "sensitive".
  5137  func (s DeleteStepDetails) GoString() string {
  5138  	return s.String()
  5139  }
  5140  
  5141  // SetName sets the Name field's value.
  5142  func (s *DeleteStepDetails) SetName(v string) *DeleteStepDetails {
  5143  	s.Name = &v
  5144  	return s
  5145  }
  5146  
  5147  type DeleteUserInput struct {
  5148  	_ struct{} `type:"structure"`
  5149  
  5150  	// A system-assigned unique identifier for a server instance that has the user
  5151  	// assigned to it.
  5152  	//
  5153  	// ServerId is a required field
  5154  	ServerId *string `min:"19" type:"string" required:"true"`
  5155  
  5156  	// A unique string that identifies a user that is being deleted from a server.
  5157  	//
  5158  	// UserName is a required field
  5159  	UserName *string `min:"3" type:"string" required:"true"`
  5160  }
  5161  
  5162  // String returns the string representation.
  5163  //
  5164  // API parameter values that are decorated as "sensitive" in the API will not
  5165  // be included in the string output. The member name will be present, but the
  5166  // value will be replaced with "sensitive".
  5167  func (s DeleteUserInput) String() string {
  5168  	return awsutil.Prettify(s)
  5169  }
  5170  
  5171  // GoString returns the string representation.
  5172  //
  5173  // API parameter values that are decorated as "sensitive" in the API will not
  5174  // be included in the string output. The member name will be present, but the
  5175  // value will be replaced with "sensitive".
  5176  func (s DeleteUserInput) GoString() string {
  5177  	return s.String()
  5178  }
  5179  
  5180  // Validate inspects the fields of the type to determine if they are valid.
  5181  func (s *DeleteUserInput) Validate() error {
  5182  	invalidParams := request.ErrInvalidParams{Context: "DeleteUserInput"}
  5183  	if s.ServerId == nil {
  5184  		invalidParams.Add(request.NewErrParamRequired("ServerId"))
  5185  	}
  5186  	if s.ServerId != nil && len(*s.ServerId) < 19 {
  5187  		invalidParams.Add(request.NewErrParamMinLen("ServerId", 19))
  5188  	}
  5189  	if s.UserName == nil {
  5190  		invalidParams.Add(request.NewErrParamRequired("UserName"))
  5191  	}
  5192  	if s.UserName != nil && len(*s.UserName) < 3 {
  5193  		invalidParams.Add(request.NewErrParamMinLen("UserName", 3))
  5194  	}
  5195  
  5196  	if invalidParams.Len() > 0 {
  5197  		return invalidParams
  5198  	}
  5199  	return nil
  5200  }
  5201  
  5202  // SetServerId sets the ServerId field's value.
  5203  func (s *DeleteUserInput) SetServerId(v string) *DeleteUserInput {
  5204  	s.ServerId = &v
  5205  	return s
  5206  }
  5207  
  5208  // SetUserName sets the UserName field's value.
  5209  func (s *DeleteUserInput) SetUserName(v string) *DeleteUserInput {
  5210  	s.UserName = &v
  5211  	return s
  5212  }
  5213  
  5214  type DeleteUserOutput struct {
  5215  	_ struct{} `type:"structure"`
  5216  }
  5217  
  5218  // String returns the string representation.
  5219  //
  5220  // API parameter values that are decorated as "sensitive" in the API will not
  5221  // be included in the string output. The member name will be present, but the
  5222  // value will be replaced with "sensitive".
  5223  func (s DeleteUserOutput) String() string {
  5224  	return awsutil.Prettify(s)
  5225  }
  5226  
  5227  // GoString returns the string representation.
  5228  //
  5229  // API parameter values that are decorated as "sensitive" in the API will not
  5230  // be included in the string output. The member name will be present, but the
  5231  // value will be replaced with "sensitive".
  5232  func (s DeleteUserOutput) GoString() string {
  5233  	return s.String()
  5234  }
  5235  
  5236  type DeleteWorkflowInput struct {
  5237  	_ struct{} `type:"structure"`
  5238  
  5239  	// A unique identifier for the workflow.
  5240  	//
  5241  	// WorkflowId is a required field
  5242  	WorkflowId *string `min:"19" type:"string" required:"true"`
  5243  }
  5244  
  5245  // String returns the string representation.
  5246  //
  5247  // API parameter values that are decorated as "sensitive" in the API will not
  5248  // be included in the string output. The member name will be present, but the
  5249  // value will be replaced with "sensitive".
  5250  func (s DeleteWorkflowInput) String() string {
  5251  	return awsutil.Prettify(s)
  5252  }
  5253  
  5254  // GoString returns the string representation.
  5255  //
  5256  // API parameter values that are decorated as "sensitive" in the API will not
  5257  // be included in the string output. The member name will be present, but the
  5258  // value will be replaced with "sensitive".
  5259  func (s DeleteWorkflowInput) GoString() string {
  5260  	return s.String()
  5261  }
  5262  
  5263  // Validate inspects the fields of the type to determine if they are valid.
  5264  func (s *DeleteWorkflowInput) Validate() error {
  5265  	invalidParams := request.ErrInvalidParams{Context: "DeleteWorkflowInput"}
  5266  	if s.WorkflowId == nil {
  5267  		invalidParams.Add(request.NewErrParamRequired("WorkflowId"))
  5268  	}
  5269  	if s.WorkflowId != nil && len(*s.WorkflowId) < 19 {
  5270  		invalidParams.Add(request.NewErrParamMinLen("WorkflowId", 19))
  5271  	}
  5272  
  5273  	if invalidParams.Len() > 0 {
  5274  		return invalidParams
  5275  	}
  5276  	return nil
  5277  }
  5278  
  5279  // SetWorkflowId sets the WorkflowId field's value.
  5280  func (s *DeleteWorkflowInput) SetWorkflowId(v string) *DeleteWorkflowInput {
  5281  	s.WorkflowId = &v
  5282  	return s
  5283  }
  5284  
  5285  type DeleteWorkflowOutput struct {
  5286  	_ struct{} `type:"structure"`
  5287  }
  5288  
  5289  // String returns the string representation.
  5290  //
  5291  // API parameter values that are decorated as "sensitive" in the API will not
  5292  // be included in the string output. The member name will be present, but the
  5293  // value will be replaced with "sensitive".
  5294  func (s DeleteWorkflowOutput) String() string {
  5295  	return awsutil.Prettify(s)
  5296  }
  5297  
  5298  // GoString returns the string representation.
  5299  //
  5300  // API parameter values that are decorated as "sensitive" in the API will not
  5301  // be included in the string output. The member name will be present, but the
  5302  // value will be replaced with "sensitive".
  5303  func (s DeleteWorkflowOutput) GoString() string {
  5304  	return s.String()
  5305  }
  5306  
  5307  type DescribeAccessInput struct {
  5308  	_ struct{} `type:"structure"`
  5309  
  5310  	// A unique identifier that is required to identify specific groups within your
  5311  	// directory. The users of the group that you associate have access to your
  5312  	// Amazon S3 or Amazon EFS resources over the enabled protocols using Amazon
  5313  	// Web Services Transfer Family. If you know the group name, you can view the
  5314  	// SID values by running the following command using Windows PowerShell.
  5315  	//
  5316  	// Get-ADGroup -Filter {samAccountName -like "YourGroupName*"} -Properties *
  5317  	// | Select SamAccountName,ObjectSid
  5318  	//
  5319  	// In that command, replace YourGroupName with the name of your Active Directory
  5320  	// group.
  5321  	//
  5322  	// The regex used to validate this parameter is a string of characters consisting
  5323  	// of uppercase and lowercase alphanumeric characters with no spaces. You can
  5324  	// also include underscores or any of the following characters: =,.@:/-
  5325  	//
  5326  	// ExternalId is a required field
  5327  	ExternalId *string `min:"1" type:"string" required:"true"`
  5328  
  5329  	// A system-assigned unique identifier for a server that has this access assigned.
  5330  	//
  5331  	// ServerId is a required field
  5332  	ServerId *string `min:"19" type:"string" required:"true"`
  5333  }
  5334  
  5335  // String returns the string representation.
  5336  //
  5337  // API parameter values that are decorated as "sensitive" in the API will not
  5338  // be included in the string output. The member name will be present, but the
  5339  // value will be replaced with "sensitive".
  5340  func (s DescribeAccessInput) String() string {
  5341  	return awsutil.Prettify(s)
  5342  }
  5343  
  5344  // GoString returns the string representation.
  5345  //
  5346  // API parameter values that are decorated as "sensitive" in the API will not
  5347  // be included in the string output. The member name will be present, but the
  5348  // value will be replaced with "sensitive".
  5349  func (s DescribeAccessInput) GoString() string {
  5350  	return s.String()
  5351  }
  5352  
  5353  // Validate inspects the fields of the type to determine if they are valid.
  5354  func (s *DescribeAccessInput) Validate() error {
  5355  	invalidParams := request.ErrInvalidParams{Context: "DescribeAccessInput"}
  5356  	if s.ExternalId == nil {
  5357  		invalidParams.Add(request.NewErrParamRequired("ExternalId"))
  5358  	}
  5359  	if s.ExternalId != nil && len(*s.ExternalId) < 1 {
  5360  		invalidParams.Add(request.NewErrParamMinLen("ExternalId", 1))
  5361  	}
  5362  	if s.ServerId == nil {
  5363  		invalidParams.Add(request.NewErrParamRequired("ServerId"))
  5364  	}
  5365  	if s.ServerId != nil && len(*s.ServerId) < 19 {
  5366  		invalidParams.Add(request.NewErrParamMinLen("ServerId", 19))
  5367  	}
  5368  
  5369  	if invalidParams.Len() > 0 {
  5370  		return invalidParams
  5371  	}
  5372  	return nil
  5373  }
  5374  
  5375  // SetExternalId sets the ExternalId field's value.
  5376  func (s *DescribeAccessInput) SetExternalId(v string) *DescribeAccessInput {
  5377  	s.ExternalId = &v
  5378  	return s
  5379  }
  5380  
  5381  // SetServerId sets the ServerId field's value.
  5382  func (s *DescribeAccessInput) SetServerId(v string) *DescribeAccessInput {
  5383  	s.ServerId = &v
  5384  	return s
  5385  }
  5386  
  5387  type DescribeAccessOutput struct {
  5388  	_ struct{} `type:"structure"`
  5389  
  5390  	// The external ID of the server that the access is attached to.
  5391  	//
  5392  	// Access is a required field
  5393  	Access *DescribedAccess `type:"structure" required:"true"`
  5394  
  5395  	// A system-assigned unique identifier for a server that has this access assigned.
  5396  	//
  5397  	// ServerId is a required field
  5398  	ServerId *string `min:"19" type:"string" required:"true"`
  5399  }
  5400  
  5401  // String returns the string representation.
  5402  //
  5403  // API parameter values that are decorated as "sensitive" in the API will not
  5404  // be included in the string output. The member name will be present, but the
  5405  // value will be replaced with "sensitive".
  5406  func (s DescribeAccessOutput) String() string {
  5407  	return awsutil.Prettify(s)
  5408  }
  5409  
  5410  // GoString returns the string representation.
  5411  //
  5412  // API parameter values that are decorated as "sensitive" in the API will not
  5413  // be included in the string output. The member name will be present, but the
  5414  // value will be replaced with "sensitive".
  5415  func (s DescribeAccessOutput) GoString() string {
  5416  	return s.String()
  5417  }
  5418  
  5419  // SetAccess sets the Access field's value.
  5420  func (s *DescribeAccessOutput) SetAccess(v *DescribedAccess) *DescribeAccessOutput {
  5421  	s.Access = v
  5422  	return s
  5423  }
  5424  
  5425  // SetServerId sets the ServerId field's value.
  5426  func (s *DescribeAccessOutput) SetServerId(v string) *DescribeAccessOutput {
  5427  	s.ServerId = &v
  5428  	return s
  5429  }
  5430  
  5431  type DescribeExecutionInput struct {
  5432  	_ struct{} `type:"structure"`
  5433  
  5434  	// A unique identifier for the execution of a workflow.
  5435  	//
  5436  	// ExecutionId is a required field
  5437  	ExecutionId *string `min:"36" type:"string" required:"true"`
  5438  
  5439  	// A unique identifier for the workflow.
  5440  	//
  5441  	// WorkflowId is a required field
  5442  	WorkflowId *string `min:"19" type:"string" required:"true"`
  5443  }
  5444  
  5445  // String returns the string representation.
  5446  //
  5447  // API parameter values that are decorated as "sensitive" in the API will not
  5448  // be included in the string output. The member name will be present, but the
  5449  // value will be replaced with "sensitive".
  5450  func (s DescribeExecutionInput) String() string {
  5451  	return awsutil.Prettify(s)
  5452  }
  5453  
  5454  // GoString returns the string representation.
  5455  //
  5456  // API parameter values that are decorated as "sensitive" in the API will not
  5457  // be included in the string output. The member name will be present, but the
  5458  // value will be replaced with "sensitive".
  5459  func (s DescribeExecutionInput) GoString() string {
  5460  	return s.String()
  5461  }
  5462  
  5463  // Validate inspects the fields of the type to determine if they are valid.
  5464  func (s *DescribeExecutionInput) Validate() error {
  5465  	invalidParams := request.ErrInvalidParams{Context: "DescribeExecutionInput"}
  5466  	if s.ExecutionId == nil {
  5467  		invalidParams.Add(request.NewErrParamRequired("ExecutionId"))
  5468  	}
  5469  	if s.ExecutionId != nil && len(*s.ExecutionId) < 36 {
  5470  		invalidParams.Add(request.NewErrParamMinLen("ExecutionId", 36))
  5471  	}
  5472  	if s.WorkflowId == nil {
  5473  		invalidParams.Add(request.NewErrParamRequired("WorkflowId"))
  5474  	}
  5475  	if s.WorkflowId != nil && len(*s.WorkflowId) < 19 {
  5476  		invalidParams.Add(request.NewErrParamMinLen("WorkflowId", 19))
  5477  	}
  5478  
  5479  	if invalidParams.Len() > 0 {
  5480  		return invalidParams
  5481  	}
  5482  	return nil
  5483  }
  5484  
  5485  // SetExecutionId sets the ExecutionId field's value.
  5486  func (s *DescribeExecutionInput) SetExecutionId(v string) *DescribeExecutionInput {
  5487  	s.ExecutionId = &v
  5488  	return s
  5489  }
  5490  
  5491  // SetWorkflowId sets the WorkflowId field's value.
  5492  func (s *DescribeExecutionInput) SetWorkflowId(v string) *DescribeExecutionInput {
  5493  	s.WorkflowId = &v
  5494  	return s
  5495  }
  5496  
  5497  type DescribeExecutionOutput struct {
  5498  	_ struct{} `type:"structure"`
  5499  
  5500  	// The structure that contains the details of the workflow' execution.
  5501  	//
  5502  	// Execution is a required field
  5503  	Execution *DescribedExecution `type:"structure" required:"true"`
  5504  
  5505  	// A unique identifier for the workflow.
  5506  	//
  5507  	// WorkflowId is a required field
  5508  	WorkflowId *string `min:"19" type:"string" required:"true"`
  5509  }
  5510  
  5511  // String returns the string representation.
  5512  //
  5513  // API parameter values that are decorated as "sensitive" in the API will not
  5514  // be included in the string output. The member name will be present, but the
  5515  // value will be replaced with "sensitive".
  5516  func (s DescribeExecutionOutput) String() string {
  5517  	return awsutil.Prettify(s)
  5518  }
  5519  
  5520  // GoString returns the string representation.
  5521  //
  5522  // API parameter values that are decorated as "sensitive" in the API will not
  5523  // be included in the string output. The member name will be present, but the
  5524  // value will be replaced with "sensitive".
  5525  func (s DescribeExecutionOutput) GoString() string {
  5526  	return s.String()
  5527  }
  5528  
  5529  // SetExecution sets the Execution field's value.
  5530  func (s *DescribeExecutionOutput) SetExecution(v *DescribedExecution) *DescribeExecutionOutput {
  5531  	s.Execution = v
  5532  	return s
  5533  }
  5534  
  5535  // SetWorkflowId sets the WorkflowId field's value.
  5536  func (s *DescribeExecutionOutput) SetWorkflowId(v string) *DescribeExecutionOutput {
  5537  	s.WorkflowId = &v
  5538  	return s
  5539  }
  5540  
  5541  type DescribeSecurityPolicyInput struct {
  5542  	_ struct{} `type:"structure"`
  5543  
  5544  	// Specifies the name of the security policy that is attached to the server.
  5545  	//
  5546  	// SecurityPolicyName is a required field
  5547  	SecurityPolicyName *string `type:"string" required:"true"`
  5548  }
  5549  
  5550  // String returns the string representation.
  5551  //
  5552  // API parameter values that are decorated as "sensitive" in the API will not
  5553  // be included in the string output. The member name will be present, but the
  5554  // value will be replaced with "sensitive".
  5555  func (s DescribeSecurityPolicyInput) String() string {
  5556  	return awsutil.Prettify(s)
  5557  }
  5558  
  5559  // GoString returns the string representation.
  5560  //
  5561  // API parameter values that are decorated as "sensitive" in the API will not
  5562  // be included in the string output. The member name will be present, but the
  5563  // value will be replaced with "sensitive".
  5564  func (s DescribeSecurityPolicyInput) GoString() string {
  5565  	return s.String()
  5566  }
  5567  
  5568  // Validate inspects the fields of the type to determine if they are valid.
  5569  func (s *DescribeSecurityPolicyInput) Validate() error {
  5570  	invalidParams := request.ErrInvalidParams{Context: "DescribeSecurityPolicyInput"}
  5571  	if s.SecurityPolicyName == nil {
  5572  		invalidParams.Add(request.NewErrParamRequired("SecurityPolicyName"))
  5573  	}
  5574  
  5575  	if invalidParams.Len() > 0 {
  5576  		return invalidParams
  5577  	}
  5578  	return nil
  5579  }
  5580  
  5581  // SetSecurityPolicyName sets the SecurityPolicyName field's value.
  5582  func (s *DescribeSecurityPolicyInput) SetSecurityPolicyName(v string) *DescribeSecurityPolicyInput {
  5583  	s.SecurityPolicyName = &v
  5584  	return s
  5585  }
  5586  
  5587  type DescribeSecurityPolicyOutput struct {
  5588  	_ struct{} `type:"structure"`
  5589  
  5590  	// An array containing the properties of the security policy.
  5591  	//
  5592  	// SecurityPolicy is a required field
  5593  	SecurityPolicy *DescribedSecurityPolicy `type:"structure" required:"true"`
  5594  }
  5595  
  5596  // String returns the string representation.
  5597  //
  5598  // API parameter values that are decorated as "sensitive" in the API will not
  5599  // be included in the string output. The member name will be present, but the
  5600  // value will be replaced with "sensitive".
  5601  func (s DescribeSecurityPolicyOutput) String() string {
  5602  	return awsutil.Prettify(s)
  5603  }
  5604  
  5605  // GoString returns the string representation.
  5606  //
  5607  // API parameter values that are decorated as "sensitive" in the API will not
  5608  // be included in the string output. The member name will be present, but the
  5609  // value will be replaced with "sensitive".
  5610  func (s DescribeSecurityPolicyOutput) GoString() string {
  5611  	return s.String()
  5612  }
  5613  
  5614  // SetSecurityPolicy sets the SecurityPolicy field's value.
  5615  func (s *DescribeSecurityPolicyOutput) SetSecurityPolicy(v *DescribedSecurityPolicy) *DescribeSecurityPolicyOutput {
  5616  	s.SecurityPolicy = v
  5617  	return s
  5618  }
  5619  
  5620  type DescribeServerInput struct {
  5621  	_ struct{} `type:"structure"`
  5622  
  5623  	// A system-assigned unique identifier for a server.
  5624  	//
  5625  	// ServerId is a required field
  5626  	ServerId *string `min:"19" type:"string" required:"true"`
  5627  }
  5628  
  5629  // String returns the string representation.
  5630  //
  5631  // API parameter values that are decorated as "sensitive" in the API will not
  5632  // be included in the string output. The member name will be present, but the
  5633  // value will be replaced with "sensitive".
  5634  func (s DescribeServerInput) String() string {
  5635  	return awsutil.Prettify(s)
  5636  }
  5637  
  5638  // GoString returns the string representation.
  5639  //
  5640  // API parameter values that are decorated as "sensitive" in the API will not
  5641  // be included in the string output. The member name will be present, but the
  5642  // value will be replaced with "sensitive".
  5643  func (s DescribeServerInput) GoString() string {
  5644  	return s.String()
  5645  }
  5646  
  5647  // Validate inspects the fields of the type to determine if they are valid.
  5648  func (s *DescribeServerInput) Validate() error {
  5649  	invalidParams := request.ErrInvalidParams{Context: "DescribeServerInput"}
  5650  	if s.ServerId == nil {
  5651  		invalidParams.Add(request.NewErrParamRequired("ServerId"))
  5652  	}
  5653  	if s.ServerId != nil && len(*s.ServerId) < 19 {
  5654  		invalidParams.Add(request.NewErrParamMinLen("ServerId", 19))
  5655  	}
  5656  
  5657  	if invalidParams.Len() > 0 {
  5658  		return invalidParams
  5659  	}
  5660  	return nil
  5661  }
  5662  
  5663  // SetServerId sets the ServerId field's value.
  5664  func (s *DescribeServerInput) SetServerId(v string) *DescribeServerInput {
  5665  	s.ServerId = &v
  5666  	return s
  5667  }
  5668  
  5669  type DescribeServerOutput struct {
  5670  	_ struct{} `type:"structure"`
  5671  
  5672  	// An array containing the properties of a server with the ServerID you specified.
  5673  	//
  5674  	// Server is a required field
  5675  	Server *DescribedServer `type:"structure" required:"true"`
  5676  }
  5677  
  5678  // String returns the string representation.
  5679  //
  5680  // API parameter values that are decorated as "sensitive" in the API will not
  5681  // be included in the string output. The member name will be present, but the
  5682  // value will be replaced with "sensitive".
  5683  func (s DescribeServerOutput) String() string {
  5684  	return awsutil.Prettify(s)
  5685  }
  5686  
  5687  // GoString returns the string representation.
  5688  //
  5689  // API parameter values that are decorated as "sensitive" in the API will not
  5690  // be included in the string output. The member name will be present, but the
  5691  // value will be replaced with "sensitive".
  5692  func (s DescribeServerOutput) GoString() string {
  5693  	return s.String()
  5694  }
  5695  
  5696  // SetServer sets the Server field's value.
  5697  func (s *DescribeServerOutput) SetServer(v *DescribedServer) *DescribeServerOutput {
  5698  	s.Server = v
  5699  	return s
  5700  }
  5701  
  5702  type DescribeUserInput struct {
  5703  	_ struct{} `type:"structure"`
  5704  
  5705  	// A system-assigned unique identifier for a server that has this user assigned.
  5706  	//
  5707  	// ServerId is a required field
  5708  	ServerId *string `min:"19" type:"string" required:"true"`
  5709  
  5710  	// The name of the user assigned to one or more servers. User names are part
  5711  	// of the sign-in credentials to use the Amazon Web Services Transfer Family
  5712  	// service and perform file transfer tasks.
  5713  	//
  5714  	// UserName is a required field
  5715  	UserName *string `min:"3" type:"string" required:"true"`
  5716  }
  5717  
  5718  // String returns the string representation.
  5719  //
  5720  // API parameter values that are decorated as "sensitive" in the API will not
  5721  // be included in the string output. The member name will be present, but the
  5722  // value will be replaced with "sensitive".
  5723  func (s DescribeUserInput) String() string {
  5724  	return awsutil.Prettify(s)
  5725  }
  5726  
  5727  // GoString returns the string representation.
  5728  //
  5729  // API parameter values that are decorated as "sensitive" in the API will not
  5730  // be included in the string output. The member name will be present, but the
  5731  // value will be replaced with "sensitive".
  5732  func (s DescribeUserInput) GoString() string {
  5733  	return s.String()
  5734  }
  5735  
  5736  // Validate inspects the fields of the type to determine if they are valid.
  5737  func (s *DescribeUserInput) Validate() error {
  5738  	invalidParams := request.ErrInvalidParams{Context: "DescribeUserInput"}
  5739  	if s.ServerId == nil {
  5740  		invalidParams.Add(request.NewErrParamRequired("ServerId"))
  5741  	}
  5742  	if s.ServerId != nil && len(*s.ServerId) < 19 {
  5743  		invalidParams.Add(request.NewErrParamMinLen("ServerId", 19))
  5744  	}
  5745  	if s.UserName == nil {
  5746  		invalidParams.Add(request.NewErrParamRequired("UserName"))
  5747  	}
  5748  	if s.UserName != nil && len(*s.UserName) < 3 {
  5749  		invalidParams.Add(request.NewErrParamMinLen("UserName", 3))
  5750  	}
  5751  
  5752  	if invalidParams.Len() > 0 {
  5753  		return invalidParams
  5754  	}
  5755  	return nil
  5756  }
  5757  
  5758  // SetServerId sets the ServerId field's value.
  5759  func (s *DescribeUserInput) SetServerId(v string) *DescribeUserInput {
  5760  	s.ServerId = &v
  5761  	return s
  5762  }
  5763  
  5764  // SetUserName sets the UserName field's value.
  5765  func (s *DescribeUserInput) SetUserName(v string) *DescribeUserInput {
  5766  	s.UserName = &v
  5767  	return s
  5768  }
  5769  
  5770  type DescribeUserOutput struct {
  5771  	_ struct{} `type:"structure"`
  5772  
  5773  	// A system-assigned unique identifier for a server that has this user assigned.
  5774  	//
  5775  	// ServerId is a required field
  5776  	ServerId *string `min:"19" type:"string" required:"true"`
  5777  
  5778  	// An array containing the properties of the user account for the ServerID value
  5779  	// that you specified.
  5780  	//
  5781  	// User is a required field
  5782  	User *DescribedUser `type:"structure" required:"true"`
  5783  }
  5784  
  5785  // String returns the string representation.
  5786  //
  5787  // API parameter values that are decorated as "sensitive" in the API will not
  5788  // be included in the string output. The member name will be present, but the
  5789  // value will be replaced with "sensitive".
  5790  func (s DescribeUserOutput) String() string {
  5791  	return awsutil.Prettify(s)
  5792  }
  5793  
  5794  // GoString returns the string representation.
  5795  //
  5796  // API parameter values that are decorated as "sensitive" in the API will not
  5797  // be included in the string output. The member name will be present, but the
  5798  // value will be replaced with "sensitive".
  5799  func (s DescribeUserOutput) GoString() string {
  5800  	return s.String()
  5801  }
  5802  
  5803  // SetServerId sets the ServerId field's value.
  5804  func (s *DescribeUserOutput) SetServerId(v string) *DescribeUserOutput {
  5805  	s.ServerId = &v
  5806  	return s
  5807  }
  5808  
  5809  // SetUser sets the User field's value.
  5810  func (s *DescribeUserOutput) SetUser(v *DescribedUser) *DescribeUserOutput {
  5811  	s.User = v
  5812  	return s
  5813  }
  5814  
  5815  type DescribeWorkflowInput struct {
  5816  	_ struct{} `type:"structure"`
  5817  
  5818  	// A unique identifier for the workflow.
  5819  	//
  5820  	// WorkflowId is a required field
  5821  	WorkflowId *string `min:"19" type:"string" required:"true"`
  5822  }
  5823  
  5824  // String returns the string representation.
  5825  //
  5826  // API parameter values that are decorated as "sensitive" in the API will not
  5827  // be included in the string output. The member name will be present, but the
  5828  // value will be replaced with "sensitive".
  5829  func (s DescribeWorkflowInput) String() string {
  5830  	return awsutil.Prettify(s)
  5831  }
  5832  
  5833  // GoString returns the string representation.
  5834  //
  5835  // API parameter values that are decorated as "sensitive" in the API will not
  5836  // be included in the string output. The member name will be present, but the
  5837  // value will be replaced with "sensitive".
  5838  func (s DescribeWorkflowInput) GoString() string {
  5839  	return s.String()
  5840  }
  5841  
  5842  // Validate inspects the fields of the type to determine if they are valid.
  5843  func (s *DescribeWorkflowInput) Validate() error {
  5844  	invalidParams := request.ErrInvalidParams{Context: "DescribeWorkflowInput"}
  5845  	if s.WorkflowId == nil {
  5846  		invalidParams.Add(request.NewErrParamRequired("WorkflowId"))
  5847  	}
  5848  	if s.WorkflowId != nil && len(*s.WorkflowId) < 19 {
  5849  		invalidParams.Add(request.NewErrParamMinLen("WorkflowId", 19))
  5850  	}
  5851  
  5852  	if invalidParams.Len() > 0 {
  5853  		return invalidParams
  5854  	}
  5855  	return nil
  5856  }
  5857  
  5858  // SetWorkflowId sets the WorkflowId field's value.
  5859  func (s *DescribeWorkflowInput) SetWorkflowId(v string) *DescribeWorkflowInput {
  5860  	s.WorkflowId = &v
  5861  	return s
  5862  }
  5863  
  5864  type DescribeWorkflowOutput struct {
  5865  	_ struct{} `type:"structure"`
  5866  
  5867  	// The structure that contains the details of the workflow.
  5868  	//
  5869  	// Workflow is a required field
  5870  	Workflow *DescribedWorkflow `type:"structure" required:"true"`
  5871  }
  5872  
  5873  // String returns the string representation.
  5874  //
  5875  // API parameter values that are decorated as "sensitive" in the API will not
  5876  // be included in the string output. The member name will be present, but the
  5877  // value will be replaced with "sensitive".
  5878  func (s DescribeWorkflowOutput) String() string {
  5879  	return awsutil.Prettify(s)
  5880  }
  5881  
  5882  // GoString returns the string representation.
  5883  //
  5884  // API parameter values that are decorated as "sensitive" in the API will not
  5885  // be included in the string output. The member name will be present, but the
  5886  // value will be replaced with "sensitive".
  5887  func (s DescribeWorkflowOutput) GoString() string {
  5888  	return s.String()
  5889  }
  5890  
  5891  // SetWorkflow sets the Workflow field's value.
  5892  func (s *DescribeWorkflowOutput) SetWorkflow(v *DescribedWorkflow) *DescribeWorkflowOutput {
  5893  	s.Workflow = v
  5894  	return s
  5895  }
  5896  
  5897  // Describes the properties of the access that was specified.
  5898  type DescribedAccess struct {
  5899  	_ struct{} `type:"structure"`
  5900  
  5901  	// A unique identifier that is required to identify specific groups within your
  5902  	// directory. The users of the group that you associate have access to your
  5903  	// Amazon S3 or Amazon EFS resources over the enabled protocols using Amazon
  5904  	// Web Services Transfer Family. If you know the group name, you can view the
  5905  	// SID values by running the following command using Windows PowerShell.
  5906  	//
  5907  	// Get-ADGroup -Filter {samAccountName -like "YourGroupName*"} -Properties *
  5908  	// | Select SamAccountName,ObjectSid
  5909  	//
  5910  	// In that command, replace YourGroupName with the name of your Active Directory
  5911  	// group.
  5912  	//
  5913  	// The regex used to validate this parameter is a string of characters consisting
  5914  	// of uppercase and lowercase alphanumeric characters with no spaces. You can
  5915  	// also include underscores or any of the following characters: =,.@:/-
  5916  	ExternalId *string `min:"1" type:"string"`
  5917  
  5918  	// The landing directory (folder) for a user when they log in to the server
  5919  	// using the client.
  5920  	//
  5921  	// A HomeDirectory example is /bucket_name/home/mydirectory.
  5922  	HomeDirectory *string `type:"string"`
  5923  
  5924  	// Logical directory mappings that specify what Amazon S3 or Amazon EFS paths
  5925  	// and keys should be visible to your user and how you want to make them visible.
  5926  	// You must specify the Entry and Target pair, where Entry shows how the path
  5927  	// is made visible and Target is the actual Amazon S3 or Amazon EFS path. If
  5928  	// you only specify a target, it is displayed as is. You also must ensure that
  5929  	// your Amazon Web Services Identity and Access Management (IAM) role provides
  5930  	// access to paths in Target. This value can only be set when HomeDirectoryType
  5931  	// is set to LOGICAL.
  5932  	//
  5933  	// In most cases, you can use this value instead of the session policy to lock
  5934  	// down the associated access to the designated home directory ("chroot"). To
  5935  	// do this, you can set Entry to '/' and set Target to the HomeDirectory parameter
  5936  	// value.
  5937  	HomeDirectoryMappings []*HomeDirectoryMapEntry `min:"1" type:"list"`
  5938  
  5939  	// The type of landing directory (folder) you want your users' home directory
  5940  	// to be when they log into the server. If you set it to PATH, the user will
  5941  	// see the absolute Amazon S3 bucket or EFS paths as is in their file transfer
  5942  	// protocol clients. If you set it LOGICAL, you need to provide mappings in
  5943  	// the HomeDirectoryMappings for how you want to make Amazon S3 or EFS paths
  5944  	// visible to your users.
  5945  	HomeDirectoryType *string `type:"string" enum:"HomeDirectoryType"`
  5946  
  5947  	// A session policy for your user so that you can use the same IAM role across
  5948  	// multiple users. This policy scopes down user access to portions of their
  5949  	// Amazon S3 bucket. Variables that you can use inside this policy include ${Transfer:UserName},
  5950  	// ${Transfer:HomeDirectory}, and ${Transfer:HomeBucket}.
  5951  	Policy *string `type:"string"`
  5952  
  5953  	// The full POSIX identity, including user ID (Uid), group ID (Gid), and any
  5954  	// secondary groups IDs (SecondaryGids), that controls your users' access to
  5955  	// your Amazon EFS file systems. The POSIX permissions that are set on files
  5956  	// and directories in your file system determine the level of access your users
  5957  	// get when transferring files into and out of your Amazon EFS file systems.
  5958  	PosixProfile *PosixProfile `type:"structure"`
  5959  
  5960  	// Specifies the Amazon Resource Name (ARN) of the IAM role that controls your
  5961  	// users' access to your Amazon S3 bucket or EFS file system. The policies attached
  5962  	// to this role determine the level of access that you want to provide your
  5963  	// users when transferring files into and out of your Amazon S3 bucket or EFS
  5964  	// file system. The IAM role should also contain a trust relationship that allows
  5965  	// the server to access your resources when servicing your users' transfer requests.
  5966  	Role *string `min:"20" type:"string"`
  5967  }
  5968  
  5969  // String returns the string representation.
  5970  //
  5971  // API parameter values that are decorated as "sensitive" in the API will not
  5972  // be included in the string output. The member name will be present, but the
  5973  // value will be replaced with "sensitive".
  5974  func (s DescribedAccess) String() string {
  5975  	return awsutil.Prettify(s)
  5976  }
  5977  
  5978  // GoString returns the string representation.
  5979  //
  5980  // API parameter values that are decorated as "sensitive" in the API will not
  5981  // be included in the string output. The member name will be present, but the
  5982  // value will be replaced with "sensitive".
  5983  func (s DescribedAccess) GoString() string {
  5984  	return s.String()
  5985  }
  5986  
  5987  // SetExternalId sets the ExternalId field's value.
  5988  func (s *DescribedAccess) SetExternalId(v string) *DescribedAccess {
  5989  	s.ExternalId = &v
  5990  	return s
  5991  }
  5992  
  5993  // SetHomeDirectory sets the HomeDirectory field's value.
  5994  func (s *DescribedAccess) SetHomeDirectory(v string) *DescribedAccess {
  5995  	s.HomeDirectory = &v
  5996  	return s
  5997  }
  5998  
  5999  // SetHomeDirectoryMappings sets the HomeDirectoryMappings field's value.
  6000  func (s *DescribedAccess) SetHomeDirectoryMappings(v []*HomeDirectoryMapEntry) *DescribedAccess {
  6001  	s.HomeDirectoryMappings = v
  6002  	return s
  6003  }
  6004  
  6005  // SetHomeDirectoryType sets the HomeDirectoryType field's value.
  6006  func (s *DescribedAccess) SetHomeDirectoryType(v string) *DescribedAccess {
  6007  	s.HomeDirectoryType = &v
  6008  	return s
  6009  }
  6010  
  6011  // SetPolicy sets the Policy field's value.
  6012  func (s *DescribedAccess) SetPolicy(v string) *DescribedAccess {
  6013  	s.Policy = &v
  6014  	return s
  6015  }
  6016  
  6017  // SetPosixProfile sets the PosixProfile field's value.
  6018  func (s *DescribedAccess) SetPosixProfile(v *PosixProfile) *DescribedAccess {
  6019  	s.PosixProfile = v
  6020  	return s
  6021  }
  6022  
  6023  // SetRole sets the Role field's value.
  6024  func (s *DescribedAccess) SetRole(v string) *DescribedAccess {
  6025  	s.Role = &v
  6026  	return s
  6027  }
  6028  
  6029  // The details for an execution object.
  6030  type DescribedExecution struct {
  6031  	_ struct{} `type:"structure"`
  6032  
  6033  	// A unique identifier for the execution of a workflow.
  6034  	ExecutionId *string `min:"36" type:"string"`
  6035  
  6036  	// The IAM role associated with the execution.
  6037  	ExecutionRole *string `min:"20" type:"string"`
  6038  
  6039  	// A structure that describes the Amazon S3 or EFS file location. This is the
  6040  	// file location when the execution begins: if the file is being copied, this
  6041  	// is the initial (as opposed to destination) file location.
  6042  	InitialFileLocation *FileLocation `type:"structure"`
  6043  
  6044  	// The IAM logging role associated with the execution.
  6045  	LoggingConfiguration *LoggingConfiguration `type:"structure"`
  6046  
  6047  	// The full POSIX identity, including user ID (Uid), group ID (Gid), and any
  6048  	// secondary groups IDs (SecondaryGids), that controls your users' access to
  6049  	// your Amazon EFS file systems. The POSIX permissions that are set on files
  6050  	// and directories in your file system determine the level of access your users
  6051  	// get when transferring files into and out of your Amazon EFS file systems.
  6052  	PosixProfile *PosixProfile `type:"structure"`
  6053  
  6054  	// A structure that describes the execution results. This includes a list of
  6055  	// the steps along with the details of each step, error type and message (if
  6056  	// any), and the OnExceptionSteps structure.
  6057  	Results *ExecutionResults `type:"structure"`
  6058  
  6059  	// A container object for the session details associated with a workflow.
  6060  	ServiceMetadata *ServiceMetadata `type:"structure"`
  6061  
  6062  	// The status is one of the execution. Can be in progress, completed, exception
  6063  	// encountered, or handling the exception.
  6064  	Status *string `type:"string" enum:"ExecutionStatus"`
  6065  }
  6066  
  6067  // String returns the string representation.
  6068  //
  6069  // API parameter values that are decorated as "sensitive" in the API will not
  6070  // be included in the string output. The member name will be present, but the
  6071  // value will be replaced with "sensitive".
  6072  func (s DescribedExecution) String() string {
  6073  	return awsutil.Prettify(s)
  6074  }
  6075  
  6076  // GoString returns the string representation.
  6077  //
  6078  // API parameter values that are decorated as "sensitive" in the API will not
  6079  // be included in the string output. The member name will be present, but the
  6080  // value will be replaced with "sensitive".
  6081  func (s DescribedExecution) GoString() string {
  6082  	return s.String()
  6083  }
  6084  
  6085  // SetExecutionId sets the ExecutionId field's value.
  6086  func (s *DescribedExecution) SetExecutionId(v string) *DescribedExecution {
  6087  	s.ExecutionId = &v
  6088  	return s
  6089  }
  6090  
  6091  // SetExecutionRole sets the ExecutionRole field's value.
  6092  func (s *DescribedExecution) SetExecutionRole(v string) *DescribedExecution {
  6093  	s.ExecutionRole = &v
  6094  	return s
  6095  }
  6096  
  6097  // SetInitialFileLocation sets the InitialFileLocation field's value.
  6098  func (s *DescribedExecution) SetInitialFileLocation(v *FileLocation) *DescribedExecution {
  6099  	s.InitialFileLocation = v
  6100  	return s
  6101  }
  6102  
  6103  // SetLoggingConfiguration sets the LoggingConfiguration field's value.
  6104  func (s *DescribedExecution) SetLoggingConfiguration(v *LoggingConfiguration) *DescribedExecution {
  6105  	s.LoggingConfiguration = v
  6106  	return s
  6107  }
  6108  
  6109  // SetPosixProfile sets the PosixProfile field's value.
  6110  func (s *DescribedExecution) SetPosixProfile(v *PosixProfile) *DescribedExecution {
  6111  	s.PosixProfile = v
  6112  	return s
  6113  }
  6114  
  6115  // SetResults sets the Results field's value.
  6116  func (s *DescribedExecution) SetResults(v *ExecutionResults) *DescribedExecution {
  6117  	s.Results = v
  6118  	return s
  6119  }
  6120  
  6121  // SetServiceMetadata sets the ServiceMetadata field's value.
  6122  func (s *DescribedExecution) SetServiceMetadata(v *ServiceMetadata) *DescribedExecution {
  6123  	s.ServiceMetadata = v
  6124  	return s
  6125  }
  6126  
  6127  // SetStatus sets the Status field's value.
  6128  func (s *DescribedExecution) SetStatus(v string) *DescribedExecution {
  6129  	s.Status = &v
  6130  	return s
  6131  }
  6132  
  6133  // Describes the properties of a security policy that was specified. For more
  6134  // information about security policies, see Working with security policies (https://docs.aws.amazon.com/transfer/latest/userguide/security-policies.html).
  6135  type DescribedSecurityPolicy struct {
  6136  	_ struct{} `type:"structure"`
  6137  
  6138  	// Specifies whether this policy enables Federal Information Processing Standards
  6139  	// (FIPS).
  6140  	Fips *bool `type:"boolean"`
  6141  
  6142  	// Specifies the name of the security policy that is attached to the server.
  6143  	//
  6144  	// SecurityPolicyName is a required field
  6145  	SecurityPolicyName *string `type:"string" required:"true"`
  6146  
  6147  	// Specifies the enabled Secure Shell (SSH) cipher encryption algorithms in
  6148  	// the security policy that is attached to the server.
  6149  	SshCiphers []*string `type:"list"`
  6150  
  6151  	// Specifies the enabled SSH key exchange (KEX) encryption algorithms in the
  6152  	// security policy that is attached to the server.
  6153  	SshKexs []*string `type:"list"`
  6154  
  6155  	// Specifies the enabled SSH message authentication code (MAC) encryption algorithms
  6156  	// in the security policy that is attached to the server.
  6157  	SshMacs []*string `type:"list"`
  6158  
  6159  	// Specifies the enabled Transport Layer Security (TLS) cipher encryption algorithms
  6160  	// in the security policy that is attached to the server.
  6161  	TlsCiphers []*string `type:"list"`
  6162  }
  6163  
  6164  // String returns the string representation.
  6165  //
  6166  // API parameter values that are decorated as "sensitive" in the API will not
  6167  // be included in the string output. The member name will be present, but the
  6168  // value will be replaced with "sensitive".
  6169  func (s DescribedSecurityPolicy) String() string {
  6170  	return awsutil.Prettify(s)
  6171  }
  6172  
  6173  // GoString returns the string representation.
  6174  //
  6175  // API parameter values that are decorated as "sensitive" in the API will not
  6176  // be included in the string output. The member name will be present, but the
  6177  // value will be replaced with "sensitive".
  6178  func (s DescribedSecurityPolicy) GoString() string {
  6179  	return s.String()
  6180  }
  6181  
  6182  // SetFips sets the Fips field's value.
  6183  func (s *DescribedSecurityPolicy) SetFips(v bool) *DescribedSecurityPolicy {
  6184  	s.Fips = &v
  6185  	return s
  6186  }
  6187  
  6188  // SetSecurityPolicyName sets the SecurityPolicyName field's value.
  6189  func (s *DescribedSecurityPolicy) SetSecurityPolicyName(v string) *DescribedSecurityPolicy {
  6190  	s.SecurityPolicyName = &v
  6191  	return s
  6192  }
  6193  
  6194  // SetSshCiphers sets the SshCiphers field's value.
  6195  func (s *DescribedSecurityPolicy) SetSshCiphers(v []*string) *DescribedSecurityPolicy {
  6196  	s.SshCiphers = v
  6197  	return s
  6198  }
  6199  
  6200  // SetSshKexs sets the SshKexs field's value.
  6201  func (s *DescribedSecurityPolicy) SetSshKexs(v []*string) *DescribedSecurityPolicy {
  6202  	s.SshKexs = v
  6203  	return s
  6204  }
  6205  
  6206  // SetSshMacs sets the SshMacs field's value.
  6207  func (s *DescribedSecurityPolicy) SetSshMacs(v []*string) *DescribedSecurityPolicy {
  6208  	s.SshMacs = v
  6209  	return s
  6210  }
  6211  
  6212  // SetTlsCiphers sets the TlsCiphers field's value.
  6213  func (s *DescribedSecurityPolicy) SetTlsCiphers(v []*string) *DescribedSecurityPolicy {
  6214  	s.TlsCiphers = v
  6215  	return s
  6216  }
  6217  
  6218  // Describes the properties of a file transfer protocol-enabled server that
  6219  // was specified.
  6220  type DescribedServer struct {
  6221  	_ struct{} `type:"structure"`
  6222  
  6223  	// Specifies the unique Amazon Resource Name (ARN) of the server.
  6224  	//
  6225  	// Arn is a required field
  6226  	Arn *string `min:"20" type:"string" required:"true"`
  6227  
  6228  	// Specifies the ARN of the Amazon Web ServicesCertificate Manager (ACM) certificate.
  6229  	// Required when Protocols is set to FTPS.
  6230  	Certificate *string `type:"string"`
  6231  
  6232  	// Specifies the domain of the storage system that is used for file transfers.
  6233  	Domain *string `type:"string" enum:"Domain"`
  6234  
  6235  	// The virtual private cloud (VPC) endpoint settings that are configured for
  6236  	// your server. When you host your endpoint within your VPC, you can make it
  6237  	// accessible only to resources within your VPC, or you can attach Elastic IP
  6238  	// addresses and make it accessible to clients over the internet. Your VPC's
  6239  	// default security groups are automatically assigned to your endpoint.
  6240  	EndpointDetails *EndpointDetails `type:"structure"`
  6241  
  6242  	// Defines the type of endpoint that your server is connected to. If your server
  6243  	// is connected to a VPC endpoint, your server isn't accessible over the public
  6244  	// internet.
  6245  	EndpointType *string `type:"string" enum:"EndpointType"`
  6246  
  6247  	// Specifies the Base64-encoded SHA256 fingerprint of the server's host key.
  6248  	// This value is equivalent to the output of the ssh-keygen -l -f my-new-server-key
  6249  	// command.
  6250  	HostKeyFingerprint *string `type:"string"`
  6251  
  6252  	// Specifies information to call a customer-supplied authentication API. This
  6253  	// field is not populated when the IdentityProviderType of a server is AWS_DIRECTORY_SERVICE
  6254  	// or SERVICE_MANAGED.
  6255  	IdentityProviderDetails *IdentityProviderDetails `type:"structure"`
  6256  
  6257  	// Specifies the mode of authentication for a server. The default value is SERVICE_MANAGED,
  6258  	// which allows you to store and access user credentials within the Amazon Web
  6259  	// Services Transfer Family service.
  6260  	//
  6261  	// Use AWS_DIRECTORY_SERVICE to provide access to Active Directory groups in
  6262  	// Amazon Web Services Managed Active Directory or Microsoft Active Directory
  6263  	// in your on-premises environment or in Amazon Web Services using AD Connectors.
  6264  	// This option also requires you to provide a Directory ID using the IdentityProviderDetails
  6265  	// parameter.
  6266  	//
  6267  	// Use the API_GATEWAY value to integrate with an identity provider of your
  6268  	// choosing. The API_GATEWAY setting requires you to provide an API Gateway
  6269  	// endpoint URL to call for authentication using the IdentityProviderDetails
  6270  	// parameter.
  6271  	IdentityProviderType *string `type:"string" enum:"IdentityProviderType"`
  6272  
  6273  	// Specifies the Amazon Resource Name (ARN) of the Amazon Web Services Identity
  6274  	// and Access Management (IAM) role that allows a server to turn on Amazon CloudWatch
  6275  	// logging for Amazon S3 or Amazon EFS events. When set, user activity can be
  6276  	// viewed in your CloudWatch logs.
  6277  	LoggingRole *string `min:"20" type:"string"`
  6278  
  6279  	// The protocol settings that are configured for your server.
  6280  	//
  6281  	// Use the PassiveIp parameter to indicate passive mode. Enter a single dotted-quad
  6282  	// IPv4 address, such as the external IP address of a firewall, router, or load
  6283  	// balancer.
  6284  	ProtocolDetails *ProtocolDetails `type:"structure"`
  6285  
  6286  	// Specifies the file transfer protocol or protocols over which your file transfer
  6287  	// protocol client can connect to your server's endpoint. The available protocols
  6288  	// are:
  6289  	//
  6290  	//    * SFTP (Secure Shell (SSH) File Transfer Protocol): File transfer over
  6291  	//    SSH
  6292  	//
  6293  	//    * FTPS (File Transfer Protocol Secure): File transfer with TLS encryption
  6294  	//
  6295  	//    * FTP (File Transfer Protocol): Unencrypted file transfer
  6296  	Protocols []*string `min:"1" type:"list"`
  6297  
  6298  	// Specifies the name of the security policy that is attached to the server.
  6299  	SecurityPolicyName *string `type:"string"`
  6300  
  6301  	// Specifies the unique system-assigned identifier for a server that you instantiate.
  6302  	ServerId *string `min:"19" type:"string"`
  6303  
  6304  	// Specifies the condition of a server for the server that was described. A
  6305  	// value of ONLINE indicates that the server can accept jobs and transfer files.
  6306  	// A State value of OFFLINE means that the server cannot perform file transfer
  6307  	// operations.
  6308  	//
  6309  	// The states of STARTING and STOPPING indicate that the server is in an intermediate
  6310  	// state, either not fully able to respond, or not fully offline. The values
  6311  	// of START_FAILED or STOP_FAILED can indicate an error condition.
  6312  	State *string `type:"string" enum:"State"`
  6313  
  6314  	// Specifies the key-value pairs that you can use to search for and group servers
  6315  	// that were assigned to the server that was described.
  6316  	Tags []*Tag `min:"1" type:"list"`
  6317  
  6318  	// Specifies the number of users that are assigned to a server you specified
  6319  	// with the ServerId.
  6320  	UserCount *int64 `type:"integer"`
  6321  
  6322  	// Specifies the workflow ID for the workflow to assign and the execution role
  6323  	// used for executing the workflow.
  6324  	WorkflowDetails *WorkflowDetails `type:"structure"`
  6325  }
  6326  
  6327  // String returns the string representation.
  6328  //
  6329  // API parameter values that are decorated as "sensitive" in the API will not
  6330  // be included in the string output. The member name will be present, but the
  6331  // value will be replaced with "sensitive".
  6332  func (s DescribedServer) String() string {
  6333  	return awsutil.Prettify(s)
  6334  }
  6335  
  6336  // GoString returns the string representation.
  6337  //
  6338  // API parameter values that are decorated as "sensitive" in the API will not
  6339  // be included in the string output. The member name will be present, but the
  6340  // value will be replaced with "sensitive".
  6341  func (s DescribedServer) GoString() string {
  6342  	return s.String()
  6343  }
  6344  
  6345  // SetArn sets the Arn field's value.
  6346  func (s *DescribedServer) SetArn(v string) *DescribedServer {
  6347  	s.Arn = &v
  6348  	return s
  6349  }
  6350  
  6351  // SetCertificate sets the Certificate field's value.
  6352  func (s *DescribedServer) SetCertificate(v string) *DescribedServer {
  6353  	s.Certificate = &v
  6354  	return s
  6355  }
  6356  
  6357  // SetDomain sets the Domain field's value.
  6358  func (s *DescribedServer) SetDomain(v string) *DescribedServer {
  6359  	s.Domain = &v
  6360  	return s
  6361  }
  6362  
  6363  // SetEndpointDetails sets the EndpointDetails field's value.
  6364  func (s *DescribedServer) SetEndpointDetails(v *EndpointDetails) *DescribedServer {
  6365  	s.EndpointDetails = v
  6366  	return s
  6367  }
  6368  
  6369  // SetEndpointType sets the EndpointType field's value.
  6370  func (s *DescribedServer) SetEndpointType(v string) *DescribedServer {
  6371  	s.EndpointType = &v
  6372  	return s
  6373  }
  6374  
  6375  // SetHostKeyFingerprint sets the HostKeyFingerprint field's value.
  6376  func (s *DescribedServer) SetHostKeyFingerprint(v string) *DescribedServer {
  6377  	s.HostKeyFingerprint = &v
  6378  	return s
  6379  }
  6380  
  6381  // SetIdentityProviderDetails sets the IdentityProviderDetails field's value.
  6382  func (s *DescribedServer) SetIdentityProviderDetails(v *IdentityProviderDetails) *DescribedServer {
  6383  	s.IdentityProviderDetails = v
  6384  	return s
  6385  }
  6386  
  6387  // SetIdentityProviderType sets the IdentityProviderType field's value.
  6388  func (s *DescribedServer) SetIdentityProviderType(v string) *DescribedServer {
  6389  	s.IdentityProviderType = &v
  6390  	return s
  6391  }
  6392  
  6393  // SetLoggingRole sets the LoggingRole field's value.
  6394  func (s *DescribedServer) SetLoggingRole(v string) *DescribedServer {
  6395  	s.LoggingRole = &v
  6396  	return s
  6397  }
  6398  
  6399  // SetProtocolDetails sets the ProtocolDetails field's value.
  6400  func (s *DescribedServer) SetProtocolDetails(v *ProtocolDetails) *DescribedServer {
  6401  	s.ProtocolDetails = v
  6402  	return s
  6403  }
  6404  
  6405  // SetProtocols sets the Protocols field's value.
  6406  func (s *DescribedServer) SetProtocols(v []*string) *DescribedServer {
  6407  	s.Protocols = v
  6408  	return s
  6409  }
  6410  
  6411  // SetSecurityPolicyName sets the SecurityPolicyName field's value.
  6412  func (s *DescribedServer) SetSecurityPolicyName(v string) *DescribedServer {
  6413  	s.SecurityPolicyName = &v
  6414  	return s
  6415  }
  6416  
  6417  // SetServerId sets the ServerId field's value.
  6418  func (s *DescribedServer) SetServerId(v string) *DescribedServer {
  6419  	s.ServerId = &v
  6420  	return s
  6421  }
  6422  
  6423  // SetState sets the State field's value.
  6424  func (s *DescribedServer) SetState(v string) *DescribedServer {
  6425  	s.State = &v
  6426  	return s
  6427  }
  6428  
  6429  // SetTags sets the Tags field's value.
  6430  func (s *DescribedServer) SetTags(v []*Tag) *DescribedServer {
  6431  	s.Tags = v
  6432  	return s
  6433  }
  6434  
  6435  // SetUserCount sets the UserCount field's value.
  6436  func (s *DescribedServer) SetUserCount(v int64) *DescribedServer {
  6437  	s.UserCount = &v
  6438  	return s
  6439  }
  6440  
  6441  // SetWorkflowDetails sets the WorkflowDetails field's value.
  6442  func (s *DescribedServer) SetWorkflowDetails(v *WorkflowDetails) *DescribedServer {
  6443  	s.WorkflowDetails = v
  6444  	return s
  6445  }
  6446  
  6447  // Describes the properties of a user that was specified.
  6448  type DescribedUser struct {
  6449  	_ struct{} `type:"structure"`
  6450  
  6451  	// Specifies the unique Amazon Resource Name (ARN) for the user that was requested
  6452  	// to be described.
  6453  	//
  6454  	// Arn is a required field
  6455  	Arn *string `min:"20" type:"string" required:"true"`
  6456  
  6457  	// The landing directory (folder) for a user when they log in to the server
  6458  	// using the client.
  6459  	//
  6460  	// A HomeDirectory example is /bucket_name/home/mydirectory.
  6461  	HomeDirectory *string `type:"string"`
  6462  
  6463  	// Logical directory mappings that specify what Amazon S3 or Amazon EFS paths
  6464  	// and keys should be visible to your user and how you want to make them visible.
  6465  	// You must specify the Entry and Target pair, where Entry shows how the path
  6466  	// is made visible and Target is the actual Amazon S3 or Amazon EFS path. If
  6467  	// you only specify a target, it is displayed as is. You also must ensure that
  6468  	// your Amazon Web Services Identity and Access Management (IAM) role provides
  6469  	// access to paths in Target. This value can only be set when HomeDirectoryType
  6470  	// is set to LOGICAL.
  6471  	//
  6472  	// In most cases, you can use this value instead of the session policy to lock
  6473  	// your user down to the designated home directory ("chroot"). To do this, you
  6474  	// can set Entry to '/' and set Target to the HomeDirectory parameter value.
  6475  	HomeDirectoryMappings []*HomeDirectoryMapEntry `min:"1" type:"list"`
  6476  
  6477  	// The type of landing directory (folder) you want your users' home directory
  6478  	// to be when they log into the server. If you set it to PATH, the user will
  6479  	// see the absolute Amazon S3 bucket or EFS paths as is in their file transfer
  6480  	// protocol clients. If you set it LOGICAL, you need to provide mappings in
  6481  	// the HomeDirectoryMappings for how you want to make Amazon S3 or EFS paths
  6482  	// visible to your users.
  6483  	HomeDirectoryType *string `type:"string" enum:"HomeDirectoryType"`
  6484  
  6485  	// A session policy for your user so that you can use the same IAM role across
  6486  	// multiple users. This policy scopes down user access to portions of their
  6487  	// Amazon S3 bucket. Variables that you can use inside this policy include ${Transfer:UserName},
  6488  	// ${Transfer:HomeDirectory}, and ${Transfer:HomeBucket}.
  6489  	Policy *string `type:"string"`
  6490  
  6491  	// Specifies the full POSIX identity, including user ID (Uid), group ID (Gid),
  6492  	// and any secondary groups IDs (SecondaryGids), that controls your users' access
  6493  	// to your Amazon Elastic File System (Amazon EFS) file systems. The POSIX permissions
  6494  	// that are set on files and directories in your file system determine the level
  6495  	// of access your users get when transferring files into and out of your Amazon
  6496  	// EFS file systems.
  6497  	PosixProfile *PosixProfile `type:"structure"`
  6498  
  6499  	// Specifies the Amazon Resource Name (ARN) of the IAM role that controls your
  6500  	// users' access to your Amazon S3 bucket or EFS file system. The policies attached
  6501  	// to this role determine the level of access that you want to provide your
  6502  	// users when transferring files into and out of your Amazon S3 bucket or EFS
  6503  	// file system. The IAM role should also contain a trust relationship that allows
  6504  	// the server to access your resources when servicing your users' transfer requests.
  6505  	Role *string `min:"20" type:"string"`
  6506  
  6507  	// Specifies the public key portion of the Secure Shell (SSH) keys stored for
  6508  	// the described user.
  6509  	SshPublicKeys []*SshPublicKey `type:"list"`
  6510  
  6511  	// Specifies the key-value pairs for the user requested. Tag can be used to
  6512  	// search for and group users for a variety of purposes.
  6513  	Tags []*Tag `min:"1" type:"list"`
  6514  
  6515  	// Specifies the name of the user that was requested to be described. User names
  6516  	// are used for authentication purposes. This is the string that will be used
  6517  	// by your user when they log in to your server.
  6518  	UserName *string `min:"3" type:"string"`
  6519  }
  6520  
  6521  // String returns the string representation.
  6522  //
  6523  // API parameter values that are decorated as "sensitive" in the API will not
  6524  // be included in the string output. The member name will be present, but the
  6525  // value will be replaced with "sensitive".
  6526  func (s DescribedUser) String() string {
  6527  	return awsutil.Prettify(s)
  6528  }
  6529  
  6530  // GoString returns the string representation.
  6531  //
  6532  // API parameter values that are decorated as "sensitive" in the API will not
  6533  // be included in the string output. The member name will be present, but the
  6534  // value will be replaced with "sensitive".
  6535  func (s DescribedUser) GoString() string {
  6536  	return s.String()
  6537  }
  6538  
  6539  // SetArn sets the Arn field's value.
  6540  func (s *DescribedUser) SetArn(v string) *DescribedUser {
  6541  	s.Arn = &v
  6542  	return s
  6543  }
  6544  
  6545  // SetHomeDirectory sets the HomeDirectory field's value.
  6546  func (s *DescribedUser) SetHomeDirectory(v string) *DescribedUser {
  6547  	s.HomeDirectory = &v
  6548  	return s
  6549  }
  6550  
  6551  // SetHomeDirectoryMappings sets the HomeDirectoryMappings field's value.
  6552  func (s *DescribedUser) SetHomeDirectoryMappings(v []*HomeDirectoryMapEntry) *DescribedUser {
  6553  	s.HomeDirectoryMappings = v
  6554  	return s
  6555  }
  6556  
  6557  // SetHomeDirectoryType sets the HomeDirectoryType field's value.
  6558  func (s *DescribedUser) SetHomeDirectoryType(v string) *DescribedUser {
  6559  	s.HomeDirectoryType = &v
  6560  	return s
  6561  }
  6562  
  6563  // SetPolicy sets the Policy field's value.
  6564  func (s *DescribedUser) SetPolicy(v string) *DescribedUser {
  6565  	s.Policy = &v
  6566  	return s
  6567  }
  6568  
  6569  // SetPosixProfile sets the PosixProfile field's value.
  6570  func (s *DescribedUser) SetPosixProfile(v *PosixProfile) *DescribedUser {
  6571  	s.PosixProfile = v
  6572  	return s
  6573  }
  6574  
  6575  // SetRole sets the Role field's value.
  6576  func (s *DescribedUser) SetRole(v string) *DescribedUser {
  6577  	s.Role = &v
  6578  	return s
  6579  }
  6580  
  6581  // SetSshPublicKeys sets the SshPublicKeys field's value.
  6582  func (s *DescribedUser) SetSshPublicKeys(v []*SshPublicKey) *DescribedUser {
  6583  	s.SshPublicKeys = v
  6584  	return s
  6585  }
  6586  
  6587  // SetTags sets the Tags field's value.
  6588  func (s *DescribedUser) SetTags(v []*Tag) *DescribedUser {
  6589  	s.Tags = v
  6590  	return s
  6591  }
  6592  
  6593  // SetUserName sets the UserName field's value.
  6594  func (s *DescribedUser) SetUserName(v string) *DescribedUser {
  6595  	s.UserName = &v
  6596  	return s
  6597  }
  6598  
  6599  // Describes the properties of the specified workflow
  6600  type DescribedWorkflow struct {
  6601  	_ struct{} `type:"structure"`
  6602  
  6603  	// Specifies the unique Amazon Resource Name (ARN) for the workflow.
  6604  	//
  6605  	// Arn is a required field
  6606  	Arn *string `min:"20" type:"string" required:"true"`
  6607  
  6608  	// Specifies the text description for the workflow.
  6609  	Description *string `type:"string"`
  6610  
  6611  	// Specifies the steps (actions) to take if errors are encountered during execution
  6612  	// of the workflow.
  6613  	OnExceptionSteps []*WorkflowStep `type:"list"`
  6614  
  6615  	// Specifies the details for the steps that are in the specified workflow.
  6616  	Steps []*WorkflowStep `type:"list"`
  6617  
  6618  	// Key-value pairs that can be used to group and search for workflows. Tags
  6619  	// are metadata attached to workflows for any purpose.
  6620  	Tags []*Tag `min:"1" type:"list"`
  6621  
  6622  	// A unique identifier for the workflow.
  6623  	WorkflowId *string `min:"19" type:"string"`
  6624  }
  6625  
  6626  // String returns the string representation.
  6627  //
  6628  // API parameter values that are decorated as "sensitive" in the API will not
  6629  // be included in the string output. The member name will be present, but the
  6630  // value will be replaced with "sensitive".
  6631  func (s DescribedWorkflow) String() string {
  6632  	return awsutil.Prettify(s)
  6633  }
  6634  
  6635  // GoString returns the string representation.
  6636  //
  6637  // API parameter values that are decorated as "sensitive" in the API will not
  6638  // be included in the string output. The member name will be present, but the
  6639  // value will be replaced with "sensitive".
  6640  func (s DescribedWorkflow) GoString() string {
  6641  	return s.String()
  6642  }
  6643  
  6644  // SetArn sets the Arn field's value.
  6645  func (s *DescribedWorkflow) SetArn(v string) *DescribedWorkflow {
  6646  	s.Arn = &v
  6647  	return s
  6648  }
  6649  
  6650  // SetDescription sets the Description field's value.
  6651  func (s *DescribedWorkflow) SetDescription(v string) *DescribedWorkflow {
  6652  	s.Description = &v
  6653  	return s
  6654  }
  6655  
  6656  // SetOnExceptionSteps sets the OnExceptionSteps field's value.
  6657  func (s *DescribedWorkflow) SetOnExceptionSteps(v []*WorkflowStep) *DescribedWorkflow {
  6658  	s.OnExceptionSteps = v
  6659  	return s
  6660  }
  6661  
  6662  // SetSteps sets the Steps field's value.
  6663  func (s *DescribedWorkflow) SetSteps(v []*WorkflowStep) *DescribedWorkflow {
  6664  	s.Steps = v
  6665  	return s
  6666  }
  6667  
  6668  // SetTags sets the Tags field's value.
  6669  func (s *DescribedWorkflow) SetTags(v []*Tag) *DescribedWorkflow {
  6670  	s.Tags = v
  6671  	return s
  6672  }
  6673  
  6674  // SetWorkflowId sets the WorkflowId field's value.
  6675  func (s *DescribedWorkflow) SetWorkflowId(v string) *DescribedWorkflow {
  6676  	s.WorkflowId = &v
  6677  	return s
  6678  }
  6679  
  6680  // Reserved for future use.
  6681  type EfsFileLocation struct {
  6682  	_ struct{} `type:"structure"`
  6683  
  6684  	// The ID of the file system, assigned by Amazon EFS.
  6685  	FileSystemId *string `type:"string"`
  6686  
  6687  	// The pathname for the folder being used by a workflow.
  6688  	Path *string `min:"1" type:"string"`
  6689  }
  6690  
  6691  // String returns the string representation.
  6692  //
  6693  // API parameter values that are decorated as "sensitive" in the API will not
  6694  // be included in the string output. The member name will be present, but the
  6695  // value will be replaced with "sensitive".
  6696  func (s EfsFileLocation) String() string {
  6697  	return awsutil.Prettify(s)
  6698  }
  6699  
  6700  // GoString returns the string representation.
  6701  //
  6702  // API parameter values that are decorated as "sensitive" in the API will not
  6703  // be included in the string output. The member name will be present, but the
  6704  // value will be replaced with "sensitive".
  6705  func (s EfsFileLocation) GoString() string {
  6706  	return s.String()
  6707  }
  6708  
  6709  // Validate inspects the fields of the type to determine if they are valid.
  6710  func (s *EfsFileLocation) Validate() error {
  6711  	invalidParams := request.ErrInvalidParams{Context: "EfsFileLocation"}
  6712  	if s.Path != nil && len(*s.Path) < 1 {
  6713  		invalidParams.Add(request.NewErrParamMinLen("Path", 1))
  6714  	}
  6715  
  6716  	if invalidParams.Len() > 0 {
  6717  		return invalidParams
  6718  	}
  6719  	return nil
  6720  }
  6721  
  6722  // SetFileSystemId sets the FileSystemId field's value.
  6723  func (s *EfsFileLocation) SetFileSystemId(v string) *EfsFileLocation {
  6724  	s.FileSystemId = &v
  6725  	return s
  6726  }
  6727  
  6728  // SetPath sets the Path field's value.
  6729  func (s *EfsFileLocation) SetPath(v string) *EfsFileLocation {
  6730  	s.Path = &v
  6731  	return s
  6732  }
  6733  
  6734  // The virtual private cloud (VPC) endpoint settings that are configured for
  6735  // your file transfer protocol-enabled server. With a VPC endpoint, you can
  6736  // restrict access to your server and resources only within your VPC. To control
  6737  // incoming internet traffic, invoke the UpdateServer API and attach an Elastic
  6738  // IP address to your server's endpoint.
  6739  //
  6740  // After May 19, 2021, you won't be able to create a server using EndpointType=VPC_ENDPOINT
  6741  // in your Amazon Web Servicesaccount if your account hasn't already done so
  6742  // before May 19, 2021. If you have already created servers with EndpointType=VPC_ENDPOINT
  6743  // in your Amazon Web Servicesaccount on or before May 19, 2021, you will not
  6744  // be affected. After this date, use EndpointType=VPC.
  6745  //
  6746  // For more information, see https://docs.aws.amazon.com/transfer/latest/userguide/create-server-in-vpc.html#deprecate-vpc-endpoint.
  6747  type EndpointDetails struct {
  6748  	_ struct{} `type:"structure"`
  6749  
  6750  	// A list of address allocation IDs that are required to attach an Elastic IP
  6751  	// address to your server's endpoint.
  6752  	//
  6753  	// This property can only be set when EndpointType is set to VPC and it is only
  6754  	// valid in the UpdateServer API.
  6755  	AddressAllocationIds []*string `type:"list"`
  6756  
  6757  	// A list of security groups IDs that are available to attach to your server's
  6758  	// endpoint.
  6759  	//
  6760  	// This property can only be set when EndpointType is set to VPC.
  6761  	//
  6762  	// You can edit the SecurityGroupIds property in the UpdateServer (https://docs.aws.amazon.com/transfer/latest/userguide/API_UpdateServer.html)
  6763  	// API only if you are changing the EndpointType from PUBLIC or VPC_ENDPOINT
  6764  	// to VPC. To change security groups associated with your server's VPC endpoint
  6765  	// after creation, use the Amazon EC2 ModifyVpcEndpoint (https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_ModifyVpcEndpoint.html)
  6766  	// API.
  6767  	SecurityGroupIds []*string `type:"list"`
  6768  
  6769  	// A list of subnet IDs that are required to host your server endpoint in your
  6770  	// VPC.
  6771  	//
  6772  	// This property can only be set when EndpointType is set to VPC.
  6773  	SubnetIds []*string `type:"list"`
  6774  
  6775  	// The ID of the VPC endpoint.
  6776  	//
  6777  	// This property can only be set when EndpointType is set to VPC_ENDPOINT.
  6778  	//
  6779  	// For more information, see https://docs.aws.amazon.com/transfer/latest/userguide/create-server-in-vpc.html#deprecate-vpc-endpoint.
  6780  	VpcEndpointId *string `min:"22" type:"string"`
  6781  
  6782  	// The VPC ID of the VPC in which a server's endpoint will be hosted.
  6783  	//
  6784  	// This property can only be set when EndpointType is set to VPC.
  6785  	VpcId *string `type:"string"`
  6786  }
  6787  
  6788  // String returns the string representation.
  6789  //
  6790  // API parameter values that are decorated as "sensitive" in the API will not
  6791  // be included in the string output. The member name will be present, but the
  6792  // value will be replaced with "sensitive".
  6793  func (s EndpointDetails) String() string {
  6794  	return awsutil.Prettify(s)
  6795  }
  6796  
  6797  // GoString returns the string representation.
  6798  //
  6799  // API parameter values that are decorated as "sensitive" in the API will not
  6800  // be included in the string output. The member name will be present, but the
  6801  // value will be replaced with "sensitive".
  6802  func (s EndpointDetails) GoString() string {
  6803  	return s.String()
  6804  }
  6805  
  6806  // Validate inspects the fields of the type to determine if they are valid.
  6807  func (s *EndpointDetails) Validate() error {
  6808  	invalidParams := request.ErrInvalidParams{Context: "EndpointDetails"}
  6809  	if s.VpcEndpointId != nil && len(*s.VpcEndpointId) < 22 {
  6810  		invalidParams.Add(request.NewErrParamMinLen("VpcEndpointId", 22))
  6811  	}
  6812  
  6813  	if invalidParams.Len() > 0 {
  6814  		return invalidParams
  6815  	}
  6816  	return nil
  6817  }
  6818  
  6819  // SetAddressAllocationIds sets the AddressAllocationIds field's value.
  6820  func (s *EndpointDetails) SetAddressAllocationIds(v []*string) *EndpointDetails {
  6821  	s.AddressAllocationIds = v
  6822  	return s
  6823  }
  6824  
  6825  // SetSecurityGroupIds sets the SecurityGroupIds field's value.
  6826  func (s *EndpointDetails) SetSecurityGroupIds(v []*string) *EndpointDetails {
  6827  	s.SecurityGroupIds = v
  6828  	return s
  6829  }
  6830  
  6831  // SetSubnetIds sets the SubnetIds field's value.
  6832  func (s *EndpointDetails) SetSubnetIds(v []*string) *EndpointDetails {
  6833  	s.SubnetIds = v
  6834  	return s
  6835  }
  6836  
  6837  // SetVpcEndpointId sets the VpcEndpointId field's value.
  6838  func (s *EndpointDetails) SetVpcEndpointId(v string) *EndpointDetails {
  6839  	s.VpcEndpointId = &v
  6840  	return s
  6841  }
  6842  
  6843  // SetVpcId sets the VpcId field's value.
  6844  func (s *EndpointDetails) SetVpcId(v string) *EndpointDetails {
  6845  	s.VpcId = &v
  6846  	return s
  6847  }
  6848  
  6849  // Specifies the error message and type, for an error that occurs during the
  6850  // execution of the workflow.
  6851  type ExecutionError struct {
  6852  	_ struct{} `type:"structure"`
  6853  
  6854  	// Specifies the descriptive message that corresponds to the ErrorType.
  6855  	//
  6856  	// Message is a required field
  6857  	Message *string `type:"string" required:"true"`
  6858  
  6859  	// Specifies the error type: currently, the only valid value is PERMISSION_DENIED,
  6860  	// which occurs if your policy does not contain the correct permissions to complete
  6861  	// one or more of the steps in the workflow.
  6862  	//
  6863  	// Type is a required field
  6864  	Type *string `type:"string" required:"true" enum:"ExecutionErrorType"`
  6865  }
  6866  
  6867  // String returns the string representation.
  6868  //
  6869  // API parameter values that are decorated as "sensitive" in the API will not
  6870  // be included in the string output. The member name will be present, but the
  6871  // value will be replaced with "sensitive".
  6872  func (s ExecutionError) String() string {
  6873  	return awsutil.Prettify(s)
  6874  }
  6875  
  6876  // GoString returns the string representation.
  6877  //
  6878  // API parameter values that are decorated as "sensitive" in the API will not
  6879  // be included in the string output. The member name will be present, but the
  6880  // value will be replaced with "sensitive".
  6881  func (s ExecutionError) GoString() string {
  6882  	return s.String()
  6883  }
  6884  
  6885  // SetMessage sets the Message field's value.
  6886  func (s *ExecutionError) SetMessage(v string) *ExecutionError {
  6887  	s.Message = &v
  6888  	return s
  6889  }
  6890  
  6891  // SetType sets the Type field's value.
  6892  func (s *ExecutionError) SetType(v string) *ExecutionError {
  6893  	s.Type = &v
  6894  	return s
  6895  }
  6896  
  6897  // Specifies the steps in the workflow, as well as the steps to execute in case
  6898  // of any errors during workflow execution.
  6899  type ExecutionResults struct {
  6900  	_ struct{} `type:"structure"`
  6901  
  6902  	// Specifies the steps (actions) to take if errors are encountered during execution
  6903  	// of the workflow.
  6904  	OnExceptionSteps []*ExecutionStepResult `min:"1" type:"list"`
  6905  
  6906  	// Specifies the details for the steps that are in the specified workflow.
  6907  	Steps []*ExecutionStepResult `min:"1" type:"list"`
  6908  }
  6909  
  6910  // String returns the string representation.
  6911  //
  6912  // API parameter values that are decorated as "sensitive" in the API will not
  6913  // be included in the string output. The member name will be present, but the
  6914  // value will be replaced with "sensitive".
  6915  func (s ExecutionResults) String() string {
  6916  	return awsutil.Prettify(s)
  6917  }
  6918  
  6919  // GoString returns the string representation.
  6920  //
  6921  // API parameter values that are decorated as "sensitive" in the API will not
  6922  // be included in the string output. The member name will be present, but the
  6923  // value will be replaced with "sensitive".
  6924  func (s ExecutionResults) GoString() string {
  6925  	return s.String()
  6926  }
  6927  
  6928  // SetOnExceptionSteps sets the OnExceptionSteps field's value.
  6929  func (s *ExecutionResults) SetOnExceptionSteps(v []*ExecutionStepResult) *ExecutionResults {
  6930  	s.OnExceptionSteps = v
  6931  	return s
  6932  }
  6933  
  6934  // SetSteps sets the Steps field's value.
  6935  func (s *ExecutionResults) SetSteps(v []*ExecutionStepResult) *ExecutionResults {
  6936  	s.Steps = v
  6937  	return s
  6938  }
  6939  
  6940  // Specifies the following details for the step: error (if any), outputs (if
  6941  // any), and the step type.
  6942  type ExecutionStepResult struct {
  6943  	_ struct{} `type:"structure"`
  6944  
  6945  	// Specifies the details for an error, if it occurred during execution of the
  6946  	// specified workfow step.
  6947  	Error *ExecutionError `type:"structure"`
  6948  
  6949  	// The values for the key/value pair applied as a tag to the file. Only applicable
  6950  	// if the step type is TAG.
  6951  	Outputs *string `type:"string"`
  6952  
  6953  	// One of the available step types.
  6954  	//
  6955  	//    * Copy: copy the file to another location
  6956  	//
  6957  	//    * Custom: custom step with a lambda target
  6958  	//
  6959  	//    * Delete: delete the file
  6960  	//
  6961  	//    * Tag: add a tag to the file
  6962  	StepType *string `type:"string" enum:"WorkflowStepType"`
  6963  }
  6964  
  6965  // String returns the string representation.
  6966  //
  6967  // API parameter values that are decorated as "sensitive" in the API will not
  6968  // be included in the string output. The member name will be present, but the
  6969  // value will be replaced with "sensitive".
  6970  func (s ExecutionStepResult) String() string {
  6971  	return awsutil.Prettify(s)
  6972  }
  6973  
  6974  // GoString returns the string representation.
  6975  //
  6976  // API parameter values that are decorated as "sensitive" in the API will not
  6977  // be included in the string output. The member name will be present, but the
  6978  // value will be replaced with "sensitive".
  6979  func (s ExecutionStepResult) GoString() string {
  6980  	return s.String()
  6981  }
  6982  
  6983  // SetError sets the Error field's value.
  6984  func (s *ExecutionStepResult) SetError(v *ExecutionError) *ExecutionStepResult {
  6985  	s.Error = v
  6986  	return s
  6987  }
  6988  
  6989  // SetOutputs sets the Outputs field's value.
  6990  func (s *ExecutionStepResult) SetOutputs(v string) *ExecutionStepResult {
  6991  	s.Outputs = &v
  6992  	return s
  6993  }
  6994  
  6995  // SetStepType sets the StepType field's value.
  6996  func (s *ExecutionStepResult) SetStepType(v string) *ExecutionStepResult {
  6997  	s.StepType = &v
  6998  	return s
  6999  }
  7000  
  7001  // Specifies the Amazon S3 or EFS file details to be used in the step.
  7002  type FileLocation struct {
  7003  	_ struct{} `type:"structure"`
  7004  
  7005  	// Specifies the Amazon EFS ID and the path for the file being used.
  7006  	EfsFileLocation *EfsFileLocation `type:"structure"`
  7007  
  7008  	// Specifies the S3 details for the file being used, such as bucket, Etag, and
  7009  	// so forth.
  7010  	S3FileLocation *S3FileLocation `type:"structure"`
  7011  }
  7012  
  7013  // String returns the string representation.
  7014  //
  7015  // API parameter values that are decorated as "sensitive" in the API will not
  7016  // be included in the string output. The member name will be present, but the
  7017  // value will be replaced with "sensitive".
  7018  func (s FileLocation) String() string {
  7019  	return awsutil.Prettify(s)
  7020  }
  7021  
  7022  // GoString returns the string representation.
  7023  //
  7024  // API parameter values that are decorated as "sensitive" in the API will not
  7025  // be included in the string output. The member name will be present, but the
  7026  // value will be replaced with "sensitive".
  7027  func (s FileLocation) GoString() string {
  7028  	return s.String()
  7029  }
  7030  
  7031  // SetEfsFileLocation sets the EfsFileLocation field's value.
  7032  func (s *FileLocation) SetEfsFileLocation(v *EfsFileLocation) *FileLocation {
  7033  	s.EfsFileLocation = v
  7034  	return s
  7035  }
  7036  
  7037  // SetS3FileLocation sets the S3FileLocation field's value.
  7038  func (s *FileLocation) SetS3FileLocation(v *S3FileLocation) *FileLocation {
  7039  	s.S3FileLocation = v
  7040  	return s
  7041  }
  7042  
  7043  // Represents an object that contains entries and targets for HomeDirectoryMappings.
  7044  //
  7045  // The following is an Entry and Target pair example for chroot.
  7046  //
  7047  // [ { "Entry:": "/", "Target": "/bucket_name/home/mydirectory" } ]
  7048  //
  7049  // If the target of a logical directory entry does not exist in Amazon S3 or
  7050  // EFS, the entry is ignored. As a workaround, you can use the Amazon S3 API
  7051  // or EFS API to create 0 byte objects as place holders for your directory.
  7052  // If using the CLI, use the s3api or efsapi call instead of s3 or efs so you
  7053  // can use the put-object operation. For example, you use the following: aws
  7054  // s3api put-object --bucket bucketname --key path/to/folder/. Make sure that
  7055  // the end of the key name ends in a / for it to be considered a folder.
  7056  type HomeDirectoryMapEntry struct {
  7057  	_ struct{} `type:"structure"`
  7058  
  7059  	// Represents an entry for HomeDirectoryMappings.
  7060  	//
  7061  	// Entry is a required field
  7062  	Entry *string `type:"string" required:"true"`
  7063  
  7064  	// Represents the map target that is used in a HomeDirectorymapEntry.
  7065  	//
  7066  	// Target is a required field
  7067  	Target *string `type:"string" required:"true"`
  7068  }
  7069  
  7070  // String returns the string representation.
  7071  //
  7072  // API parameter values that are decorated as "sensitive" in the API will not
  7073  // be included in the string output. The member name will be present, but the
  7074  // value will be replaced with "sensitive".
  7075  func (s HomeDirectoryMapEntry) String() string {
  7076  	return awsutil.Prettify(s)
  7077  }
  7078  
  7079  // GoString returns the string representation.
  7080  //
  7081  // API parameter values that are decorated as "sensitive" in the API will not
  7082  // be included in the string output. The member name will be present, but the
  7083  // value will be replaced with "sensitive".
  7084  func (s HomeDirectoryMapEntry) GoString() string {
  7085  	return s.String()
  7086  }
  7087  
  7088  // Validate inspects the fields of the type to determine if they are valid.
  7089  func (s *HomeDirectoryMapEntry) Validate() error {
  7090  	invalidParams := request.ErrInvalidParams{Context: "HomeDirectoryMapEntry"}
  7091  	if s.Entry == nil {
  7092  		invalidParams.Add(request.NewErrParamRequired("Entry"))
  7093  	}
  7094  	if s.Target == nil {
  7095  		invalidParams.Add(request.NewErrParamRequired("Target"))
  7096  	}
  7097  
  7098  	if invalidParams.Len() > 0 {
  7099  		return invalidParams
  7100  	}
  7101  	return nil
  7102  }
  7103  
  7104  // SetEntry sets the Entry field's value.
  7105  func (s *HomeDirectoryMapEntry) SetEntry(v string) *HomeDirectoryMapEntry {
  7106  	s.Entry = &v
  7107  	return s
  7108  }
  7109  
  7110  // SetTarget sets the Target field's value.
  7111  func (s *HomeDirectoryMapEntry) SetTarget(v string) *HomeDirectoryMapEntry {
  7112  	s.Target = &v
  7113  	return s
  7114  }
  7115  
  7116  // Returns information related to the type of user authentication that is in
  7117  // use for a file transfer protocol-enabled server's users. A server can have
  7118  // only one method of authentication.
  7119  type IdentityProviderDetails struct {
  7120  	_ struct{} `type:"structure"`
  7121  
  7122  	// The identifier of the Amazon Web ServicesDirectory Service directory that
  7123  	// you want to stop sharing.
  7124  	DirectoryId *string `min:"12" type:"string"`
  7125  
  7126  	// Provides the type of InvocationRole used to authenticate the user account.
  7127  	InvocationRole *string `min:"20" type:"string"`
  7128  
  7129  	// Provides the location of the service endpoint used to authenticate users.
  7130  	Url *string `type:"string"`
  7131  }
  7132  
  7133  // String returns the string representation.
  7134  //
  7135  // API parameter values that are decorated as "sensitive" in the API will not
  7136  // be included in the string output. The member name will be present, but the
  7137  // value will be replaced with "sensitive".
  7138  func (s IdentityProviderDetails) String() string {
  7139  	return awsutil.Prettify(s)
  7140  }
  7141  
  7142  // GoString returns the string representation.
  7143  //
  7144  // API parameter values that are decorated as "sensitive" in the API will not
  7145  // be included in the string output. The member name will be present, but the
  7146  // value will be replaced with "sensitive".
  7147  func (s IdentityProviderDetails) GoString() string {
  7148  	return s.String()
  7149  }
  7150  
  7151  // Validate inspects the fields of the type to determine if they are valid.
  7152  func (s *IdentityProviderDetails) Validate() error {
  7153  	invalidParams := request.ErrInvalidParams{Context: "IdentityProviderDetails"}
  7154  	if s.DirectoryId != nil && len(*s.DirectoryId) < 12 {
  7155  		invalidParams.Add(request.NewErrParamMinLen("DirectoryId", 12))
  7156  	}
  7157  	if s.InvocationRole != nil && len(*s.InvocationRole) < 20 {
  7158  		invalidParams.Add(request.NewErrParamMinLen("InvocationRole", 20))
  7159  	}
  7160  
  7161  	if invalidParams.Len() > 0 {
  7162  		return invalidParams
  7163  	}
  7164  	return nil
  7165  }
  7166  
  7167  // SetDirectoryId sets the DirectoryId field's value.
  7168  func (s *IdentityProviderDetails) SetDirectoryId(v string) *IdentityProviderDetails {
  7169  	s.DirectoryId = &v
  7170  	return s
  7171  }
  7172  
  7173  // SetInvocationRole sets the InvocationRole field's value.
  7174  func (s *IdentityProviderDetails) SetInvocationRole(v string) *IdentityProviderDetails {
  7175  	s.InvocationRole = &v
  7176  	return s
  7177  }
  7178  
  7179  // SetUrl sets the Url field's value.
  7180  func (s *IdentityProviderDetails) SetUrl(v string) *IdentityProviderDetails {
  7181  	s.Url = &v
  7182  	return s
  7183  }
  7184  
  7185  type ImportSshPublicKeyInput struct {
  7186  	_ struct{} `type:"structure"`
  7187  
  7188  	// A system-assigned unique identifier for a server.
  7189  	//
  7190  	// ServerId is a required field
  7191  	ServerId *string `min:"19" type:"string" required:"true"`
  7192  
  7193  	// The public key portion of an SSH key pair.
  7194  	//
  7195  	// SshPublicKeyBody is a required field
  7196  	SshPublicKeyBody *string `type:"string" required:"true"`
  7197  
  7198  	// The name of the user account that is assigned to one or more servers.
  7199  	//
  7200  	// UserName is a required field
  7201  	UserName *string `min:"3" type:"string" required:"true"`
  7202  }
  7203  
  7204  // String returns the string representation.
  7205  //
  7206  // API parameter values that are decorated as "sensitive" in the API will not
  7207  // be included in the string output. The member name will be present, but the
  7208  // value will be replaced with "sensitive".
  7209  func (s ImportSshPublicKeyInput) String() string {
  7210  	return awsutil.Prettify(s)
  7211  }
  7212  
  7213  // GoString returns the string representation.
  7214  //
  7215  // API parameter values that are decorated as "sensitive" in the API will not
  7216  // be included in the string output. The member name will be present, but the
  7217  // value will be replaced with "sensitive".
  7218  func (s ImportSshPublicKeyInput) GoString() string {
  7219  	return s.String()
  7220  }
  7221  
  7222  // Validate inspects the fields of the type to determine if they are valid.
  7223  func (s *ImportSshPublicKeyInput) Validate() error {
  7224  	invalidParams := request.ErrInvalidParams{Context: "ImportSshPublicKeyInput"}
  7225  	if s.ServerId == nil {
  7226  		invalidParams.Add(request.NewErrParamRequired("ServerId"))
  7227  	}
  7228  	if s.ServerId != nil && len(*s.ServerId) < 19 {
  7229  		invalidParams.Add(request.NewErrParamMinLen("ServerId", 19))
  7230  	}
  7231  	if s.SshPublicKeyBody == nil {
  7232  		invalidParams.Add(request.NewErrParamRequired("SshPublicKeyBody"))
  7233  	}
  7234  	if s.UserName == nil {
  7235  		invalidParams.Add(request.NewErrParamRequired("UserName"))
  7236  	}
  7237  	if s.UserName != nil && len(*s.UserName) < 3 {
  7238  		invalidParams.Add(request.NewErrParamMinLen("UserName", 3))
  7239  	}
  7240  
  7241  	if invalidParams.Len() > 0 {
  7242  		return invalidParams
  7243  	}
  7244  	return nil
  7245  }
  7246  
  7247  // SetServerId sets the ServerId field's value.
  7248  func (s *ImportSshPublicKeyInput) SetServerId(v string) *ImportSshPublicKeyInput {
  7249  	s.ServerId = &v
  7250  	return s
  7251  }
  7252  
  7253  // SetSshPublicKeyBody sets the SshPublicKeyBody field's value.
  7254  func (s *ImportSshPublicKeyInput) SetSshPublicKeyBody(v string) *ImportSshPublicKeyInput {
  7255  	s.SshPublicKeyBody = &v
  7256  	return s
  7257  }
  7258  
  7259  // SetUserName sets the UserName field's value.
  7260  func (s *ImportSshPublicKeyInput) SetUserName(v string) *ImportSshPublicKeyInput {
  7261  	s.UserName = &v
  7262  	return s
  7263  }
  7264  
  7265  // Identifies the user, the server they belong to, and the identifier of the
  7266  // SSH public key associated with that user. A user can have more than one key
  7267  // on each server that they are associated with.
  7268  type ImportSshPublicKeyOutput struct {
  7269  	_ struct{} `type:"structure"`
  7270  
  7271  	// A system-assigned unique identifier for a server.
  7272  	//
  7273  	// ServerId is a required field
  7274  	ServerId *string `min:"19" type:"string" required:"true"`
  7275  
  7276  	// The name given to a public key by the system that was imported.
  7277  	//
  7278  	// SshPublicKeyId is a required field
  7279  	SshPublicKeyId *string `min:"21" type:"string" required:"true"`
  7280  
  7281  	// A user name assigned to the ServerID value that you specified.
  7282  	//
  7283  	// UserName is a required field
  7284  	UserName *string `min:"3" type:"string" required:"true"`
  7285  }
  7286  
  7287  // String returns the string representation.
  7288  //
  7289  // API parameter values that are decorated as "sensitive" in the API will not
  7290  // be included in the string output. The member name will be present, but the
  7291  // value will be replaced with "sensitive".
  7292  func (s ImportSshPublicKeyOutput) String() string {
  7293  	return awsutil.Prettify(s)
  7294  }
  7295  
  7296  // GoString returns the string representation.
  7297  //
  7298  // API parameter values that are decorated as "sensitive" in the API will not
  7299  // be included in the string output. The member name will be present, but the
  7300  // value will be replaced with "sensitive".
  7301  func (s ImportSshPublicKeyOutput) GoString() string {
  7302  	return s.String()
  7303  }
  7304  
  7305  // SetServerId sets the ServerId field's value.
  7306  func (s *ImportSshPublicKeyOutput) SetServerId(v string) *ImportSshPublicKeyOutput {
  7307  	s.ServerId = &v
  7308  	return s
  7309  }
  7310  
  7311  // SetSshPublicKeyId sets the SshPublicKeyId field's value.
  7312  func (s *ImportSshPublicKeyOutput) SetSshPublicKeyId(v string) *ImportSshPublicKeyOutput {
  7313  	s.SshPublicKeyId = &v
  7314  	return s
  7315  }
  7316  
  7317  // SetUserName sets the UserName field's value.
  7318  func (s *ImportSshPublicKeyOutput) SetUserName(v string) *ImportSshPublicKeyOutput {
  7319  	s.UserName = &v
  7320  	return s
  7321  }
  7322  
  7323  // Specifies the location for the file being copied. Only applicable for the
  7324  // Copy type of workflow steps.
  7325  type InputFileLocation struct {
  7326  	_ struct{} `type:"structure"`
  7327  
  7328  	// Reserved for future use.
  7329  	EfsFileLocation *EfsFileLocation `type:"structure"`
  7330  
  7331  	// Specifies the details for the S3 file being copied.
  7332  	S3FileLocation *S3InputFileLocation `type:"structure"`
  7333  }
  7334  
  7335  // String returns the string representation.
  7336  //
  7337  // API parameter values that are decorated as "sensitive" in the API will not
  7338  // be included in the string output. The member name will be present, but the
  7339  // value will be replaced with "sensitive".
  7340  func (s InputFileLocation) String() string {
  7341  	return awsutil.Prettify(s)
  7342  }
  7343  
  7344  // GoString returns the string representation.
  7345  //
  7346  // API parameter values that are decorated as "sensitive" in the API will not
  7347  // be included in the string output. The member name will be present, but the
  7348  // value will be replaced with "sensitive".
  7349  func (s InputFileLocation) GoString() string {
  7350  	return s.String()
  7351  }
  7352  
  7353  // Validate inspects the fields of the type to determine if they are valid.
  7354  func (s *InputFileLocation) Validate() error {
  7355  	invalidParams := request.ErrInvalidParams{Context: "InputFileLocation"}
  7356  	if s.EfsFileLocation != nil {
  7357  		if err := s.EfsFileLocation.Validate(); err != nil {
  7358  			invalidParams.AddNested("EfsFileLocation", err.(request.ErrInvalidParams))
  7359  		}
  7360  	}
  7361  	if s.S3FileLocation != nil {
  7362  		if err := s.S3FileLocation.Validate(); err != nil {
  7363  			invalidParams.AddNested("S3FileLocation", err.(request.ErrInvalidParams))
  7364  		}
  7365  	}
  7366  
  7367  	if invalidParams.Len() > 0 {
  7368  		return invalidParams
  7369  	}
  7370  	return nil
  7371  }
  7372  
  7373  // SetEfsFileLocation sets the EfsFileLocation field's value.
  7374  func (s *InputFileLocation) SetEfsFileLocation(v *EfsFileLocation) *InputFileLocation {
  7375  	s.EfsFileLocation = v
  7376  	return s
  7377  }
  7378  
  7379  // SetS3FileLocation sets the S3FileLocation field's value.
  7380  func (s *InputFileLocation) SetS3FileLocation(v *S3InputFileLocation) *InputFileLocation {
  7381  	s.S3FileLocation = v
  7382  	return s
  7383  }
  7384  
  7385  // This exception is thrown when an error occurs in the Amazon Web ServicesTransfer
  7386  // Family service.
  7387  type InternalServiceError struct {
  7388  	_            struct{}                  `type:"structure"`
  7389  	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
  7390  
  7391  	Message_ *string `locationName:"Message" type:"string"`
  7392  }
  7393  
  7394  // String returns the string representation.
  7395  //
  7396  // API parameter values that are decorated as "sensitive" in the API will not
  7397  // be included in the string output. The member name will be present, but the
  7398  // value will be replaced with "sensitive".
  7399  func (s InternalServiceError) String() string {
  7400  	return awsutil.Prettify(s)
  7401  }
  7402  
  7403  // GoString returns the string representation.
  7404  //
  7405  // API parameter values that are decorated as "sensitive" in the API will not
  7406  // be included in the string output. The member name will be present, but the
  7407  // value will be replaced with "sensitive".
  7408  func (s InternalServiceError) GoString() string {
  7409  	return s.String()
  7410  }
  7411  
  7412  func newErrorInternalServiceError(v protocol.ResponseMetadata) error {
  7413  	return &InternalServiceError{
  7414  		RespMetadata: v,
  7415  	}
  7416  }
  7417  
  7418  // Code returns the exception type name.
  7419  func (s *InternalServiceError) Code() string {
  7420  	return "InternalServiceError"
  7421  }
  7422  
  7423  // Message returns the exception's message.
  7424  func (s *InternalServiceError) Message() string {
  7425  	if s.Message_ != nil {
  7426  		return *s.Message_
  7427  	}
  7428  	return ""
  7429  }
  7430  
  7431  // OrigErr always returns nil, satisfies awserr.Error interface.
  7432  func (s *InternalServiceError) OrigErr() error {
  7433  	return nil
  7434  }
  7435  
  7436  func (s *InternalServiceError) Error() string {
  7437  	return fmt.Sprintf("%s: %s", s.Code(), s.Message())
  7438  }
  7439  
  7440  // Status code returns the HTTP status code for the request's response error.
  7441  func (s *InternalServiceError) StatusCode() int {
  7442  	return s.RespMetadata.StatusCode
  7443  }
  7444  
  7445  // RequestID returns the service's response RequestID for request.
  7446  func (s *InternalServiceError) RequestID() string {
  7447  	return s.RespMetadata.RequestID
  7448  }
  7449  
  7450  // The NextToken parameter that was passed is invalid.
  7451  type InvalidNextTokenException struct {
  7452  	_            struct{}                  `type:"structure"`
  7453  	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
  7454  
  7455  	Message_ *string `locationName:"Message" type:"string"`
  7456  }
  7457  
  7458  // String returns the string representation.
  7459  //
  7460  // API parameter values that are decorated as "sensitive" in the API will not
  7461  // be included in the string output. The member name will be present, but the
  7462  // value will be replaced with "sensitive".
  7463  func (s InvalidNextTokenException) String() string {
  7464  	return awsutil.Prettify(s)
  7465  }
  7466  
  7467  // GoString returns the string representation.
  7468  //
  7469  // API parameter values that are decorated as "sensitive" in the API will not
  7470  // be included in the string output. The member name will be present, but the
  7471  // value will be replaced with "sensitive".
  7472  func (s InvalidNextTokenException) GoString() string {
  7473  	return s.String()
  7474  }
  7475  
  7476  func newErrorInvalidNextTokenException(v protocol.ResponseMetadata) error {
  7477  	return &InvalidNextTokenException{
  7478  		RespMetadata: v,
  7479  	}
  7480  }
  7481  
  7482  // Code returns the exception type name.
  7483  func (s *InvalidNextTokenException) Code() string {
  7484  	return "InvalidNextTokenException"
  7485  }
  7486  
  7487  // Message returns the exception's message.
  7488  func (s *InvalidNextTokenException) Message() string {
  7489  	if s.Message_ != nil {
  7490  		return *s.Message_
  7491  	}
  7492  	return ""
  7493  }
  7494  
  7495  // OrigErr always returns nil, satisfies awserr.Error interface.
  7496  func (s *InvalidNextTokenException) OrigErr() error {
  7497  	return nil
  7498  }
  7499  
  7500  func (s *InvalidNextTokenException) Error() string {
  7501  	return fmt.Sprintf("%s: %s", s.Code(), s.Message())
  7502  }
  7503  
  7504  // Status code returns the HTTP status code for the request's response error.
  7505  func (s *InvalidNextTokenException) StatusCode() int {
  7506  	return s.RespMetadata.StatusCode
  7507  }
  7508  
  7509  // RequestID returns the service's response RequestID for request.
  7510  func (s *InvalidNextTokenException) RequestID() string {
  7511  	return s.RespMetadata.RequestID
  7512  }
  7513  
  7514  // This exception is thrown when the client submits a malformed request.
  7515  type InvalidRequestException struct {
  7516  	_            struct{}                  `type:"structure"`
  7517  	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
  7518  
  7519  	Message_ *string `locationName:"Message" type:"string"`
  7520  }
  7521  
  7522  // String returns the string representation.
  7523  //
  7524  // API parameter values that are decorated as "sensitive" in the API will not
  7525  // be included in the string output. The member name will be present, but the
  7526  // value will be replaced with "sensitive".
  7527  func (s InvalidRequestException) String() string {
  7528  	return awsutil.Prettify(s)
  7529  }
  7530  
  7531  // GoString returns the string representation.
  7532  //
  7533  // API parameter values that are decorated as "sensitive" in the API will not
  7534  // be included in the string output. The member name will be present, but the
  7535  // value will be replaced with "sensitive".
  7536  func (s InvalidRequestException) GoString() string {
  7537  	return s.String()
  7538  }
  7539  
  7540  func newErrorInvalidRequestException(v protocol.ResponseMetadata) error {
  7541  	return &InvalidRequestException{
  7542  		RespMetadata: v,
  7543  	}
  7544  }
  7545  
  7546  // Code returns the exception type name.
  7547  func (s *InvalidRequestException) Code() string {
  7548  	return "InvalidRequestException"
  7549  }
  7550  
  7551  // Message returns the exception's message.
  7552  func (s *InvalidRequestException) Message() string {
  7553  	if s.Message_ != nil {
  7554  		return *s.Message_
  7555  	}
  7556  	return ""
  7557  }
  7558  
  7559  // OrigErr always returns nil, satisfies awserr.Error interface.
  7560  func (s *InvalidRequestException) OrigErr() error {
  7561  	return nil
  7562  }
  7563  
  7564  func (s *InvalidRequestException) Error() string {
  7565  	return fmt.Sprintf("%s: %s", s.Code(), s.Message())
  7566  }
  7567  
  7568  // Status code returns the HTTP status code for the request's response error.
  7569  func (s *InvalidRequestException) StatusCode() int {
  7570  	return s.RespMetadata.StatusCode
  7571  }
  7572  
  7573  // RequestID returns the service's response RequestID for request.
  7574  func (s *InvalidRequestException) RequestID() string {
  7575  	return s.RespMetadata.RequestID
  7576  }
  7577  
  7578  type ListAccessesInput struct {
  7579  	_ struct{} `type:"structure"`
  7580  
  7581  	// Specifies the maximum number of access SIDs to return.
  7582  	MaxResults *int64 `min:"1" type:"integer"`
  7583  
  7584  	// When you can get additional results from the ListAccesses call, a NextToken
  7585  	// parameter is returned in the output. You can then pass in a subsequent command
  7586  	// to the NextToken parameter to continue listing additional accesses.
  7587  	NextToken *string `min:"1" type:"string"`
  7588  
  7589  	// A system-assigned unique identifier for a server that has users assigned
  7590  	// to it.
  7591  	//
  7592  	// ServerId is a required field
  7593  	ServerId *string `min:"19" type:"string" required:"true"`
  7594  }
  7595  
  7596  // String returns the string representation.
  7597  //
  7598  // API parameter values that are decorated as "sensitive" in the API will not
  7599  // be included in the string output. The member name will be present, but the
  7600  // value will be replaced with "sensitive".
  7601  func (s ListAccessesInput) String() string {
  7602  	return awsutil.Prettify(s)
  7603  }
  7604  
  7605  // GoString returns the string representation.
  7606  //
  7607  // API parameter values that are decorated as "sensitive" in the API will not
  7608  // be included in the string output. The member name will be present, but the
  7609  // value will be replaced with "sensitive".
  7610  func (s ListAccessesInput) GoString() string {
  7611  	return s.String()
  7612  }
  7613  
  7614  // Validate inspects the fields of the type to determine if they are valid.
  7615  func (s *ListAccessesInput) Validate() error {
  7616  	invalidParams := request.ErrInvalidParams{Context: "ListAccessesInput"}
  7617  	if s.MaxResults != nil && *s.MaxResults < 1 {
  7618  		invalidParams.Add(request.NewErrParamMinValue("MaxResults", 1))
  7619  	}
  7620  	if s.NextToken != nil && len(*s.NextToken) < 1 {
  7621  		invalidParams.Add(request.NewErrParamMinLen("NextToken", 1))
  7622  	}
  7623  	if s.ServerId == nil {
  7624  		invalidParams.Add(request.NewErrParamRequired("ServerId"))
  7625  	}
  7626  	if s.ServerId != nil && len(*s.ServerId) < 19 {
  7627  		invalidParams.Add(request.NewErrParamMinLen("ServerId", 19))
  7628  	}
  7629  
  7630  	if invalidParams.Len() > 0 {
  7631  		return invalidParams
  7632  	}
  7633  	return nil
  7634  }
  7635  
  7636  // SetMaxResults sets the MaxResults field's value.
  7637  func (s *ListAccessesInput) SetMaxResults(v int64) *ListAccessesInput {
  7638  	s.MaxResults = &v
  7639  	return s
  7640  }
  7641  
  7642  // SetNextToken sets the NextToken field's value.
  7643  func (s *ListAccessesInput) SetNextToken(v string) *ListAccessesInput {
  7644  	s.NextToken = &v
  7645  	return s
  7646  }
  7647  
  7648  // SetServerId sets the ServerId field's value.
  7649  func (s *ListAccessesInput) SetServerId(v string) *ListAccessesInput {
  7650  	s.ServerId = &v
  7651  	return s
  7652  }
  7653  
  7654  type ListAccessesOutput struct {
  7655  	_ struct{} `type:"structure"`
  7656  
  7657  	// Returns the accesses and their properties for the ServerId value that you
  7658  	// specify.
  7659  	//
  7660  	// Accesses is a required field
  7661  	Accesses []*ListedAccess `type:"list" required:"true"`
  7662  
  7663  	// When you can get additional results from the ListAccesses call, a NextToken
  7664  	// parameter is returned in the output. You can then pass in a subsequent command
  7665  	// to the NextToken parameter to continue listing additional accesses.
  7666  	NextToken *string `min:"1" type:"string"`
  7667  
  7668  	// A system-assigned unique identifier for a server that has users assigned
  7669  	// to it.
  7670  	//
  7671  	// ServerId is a required field
  7672  	ServerId *string `min:"19" type:"string" required:"true"`
  7673  }
  7674  
  7675  // String returns the string representation.
  7676  //
  7677  // API parameter values that are decorated as "sensitive" in the API will not
  7678  // be included in the string output. The member name will be present, but the
  7679  // value will be replaced with "sensitive".
  7680  func (s ListAccessesOutput) String() string {
  7681  	return awsutil.Prettify(s)
  7682  }
  7683  
  7684  // GoString returns the string representation.
  7685  //
  7686  // API parameter values that are decorated as "sensitive" in the API will not
  7687  // be included in the string output. The member name will be present, but the
  7688  // value will be replaced with "sensitive".
  7689  func (s ListAccessesOutput) GoString() string {
  7690  	return s.String()
  7691  }
  7692  
  7693  // SetAccesses sets the Accesses field's value.
  7694  func (s *ListAccessesOutput) SetAccesses(v []*ListedAccess) *ListAccessesOutput {
  7695  	s.Accesses = v
  7696  	return s
  7697  }
  7698  
  7699  // SetNextToken sets the NextToken field's value.
  7700  func (s *ListAccessesOutput) SetNextToken(v string) *ListAccessesOutput {
  7701  	s.NextToken = &v
  7702  	return s
  7703  }
  7704  
  7705  // SetServerId sets the ServerId field's value.
  7706  func (s *ListAccessesOutput) SetServerId(v string) *ListAccessesOutput {
  7707  	s.ServerId = &v
  7708  	return s
  7709  }
  7710  
  7711  type ListExecutionsInput struct {
  7712  	_ struct{} `type:"structure"`
  7713  
  7714  	// Specifies the aximum number of executions to return.
  7715  	MaxResults *int64 `min:"1" type:"integer"`
  7716  
  7717  	// ListExecutions returns the NextToken parameter in the output. You can then
  7718  	// pass the NextToken parameter in a subsequent command to continue listing
  7719  	// additional executions.
  7720  	//
  7721  	// This is useful for pagination, for instance. If you have 100 executions for
  7722  	// a workflow, you might only want to list first 10. If so, callthe API by specifing
  7723  	// the max-results:
  7724  	//
  7725  	// aws transfer list-executions --max-results 10
  7726  	//
  7727  	// This returns details for the first 10 executions, as well as the pointer
  7728  	// (NextToken) to the eleventh execution. You can now call the API again, suppling
  7729  	// the NextToken value you received:
  7730  	//
  7731  	// aws transfer list-executions --max-results 10 --next-token $somePointerReturnedFromPreviousListResult
  7732  	//
  7733  	// This call returns the next 10 executions, the 11th through the 20th. You
  7734  	// can then repeat the call until the details for all 100 executions have been
  7735  	// returned.
  7736  	NextToken *string `min:"1" type:"string"`
  7737  
  7738  	// A unique identifier for the workflow.
  7739  	//
  7740  	// WorkflowId is a required field
  7741  	WorkflowId *string `min:"19" type:"string" required:"true"`
  7742  }
  7743  
  7744  // String returns the string representation.
  7745  //
  7746  // API parameter values that are decorated as "sensitive" in the API will not
  7747  // be included in the string output. The member name will be present, but the
  7748  // value will be replaced with "sensitive".
  7749  func (s ListExecutionsInput) String() string {
  7750  	return awsutil.Prettify(s)
  7751  }
  7752  
  7753  // GoString returns the string representation.
  7754  //
  7755  // API parameter values that are decorated as "sensitive" in the API will not
  7756  // be included in the string output. The member name will be present, but the
  7757  // value will be replaced with "sensitive".
  7758  func (s ListExecutionsInput) GoString() string {
  7759  	return s.String()
  7760  }
  7761  
  7762  // Validate inspects the fields of the type to determine if they are valid.
  7763  func (s *ListExecutionsInput) Validate() error {
  7764  	invalidParams := request.ErrInvalidParams{Context: "ListExecutionsInput"}
  7765  	if s.MaxResults != nil && *s.MaxResults < 1 {
  7766  		invalidParams.Add(request.NewErrParamMinValue("MaxResults", 1))
  7767  	}
  7768  	if s.NextToken != nil && len(*s.NextToken) < 1 {
  7769  		invalidParams.Add(request.NewErrParamMinLen("NextToken", 1))
  7770  	}
  7771  	if s.WorkflowId == nil {
  7772  		invalidParams.Add(request.NewErrParamRequired("WorkflowId"))
  7773  	}
  7774  	if s.WorkflowId != nil && len(*s.WorkflowId) < 19 {
  7775  		invalidParams.Add(request.NewErrParamMinLen("WorkflowId", 19))
  7776  	}
  7777  
  7778  	if invalidParams.Len() > 0 {
  7779  		return invalidParams
  7780  	}
  7781  	return nil
  7782  }
  7783  
  7784  // SetMaxResults sets the MaxResults field's value.
  7785  func (s *ListExecutionsInput) SetMaxResults(v int64) *ListExecutionsInput {
  7786  	s.MaxResults = &v
  7787  	return s
  7788  }
  7789  
  7790  // SetNextToken sets the NextToken field's value.
  7791  func (s *ListExecutionsInput) SetNextToken(v string) *ListExecutionsInput {
  7792  	s.NextToken = &v
  7793  	return s
  7794  }
  7795  
  7796  // SetWorkflowId sets the WorkflowId field's value.
  7797  func (s *ListExecutionsInput) SetWorkflowId(v string) *ListExecutionsInput {
  7798  	s.WorkflowId = &v
  7799  	return s
  7800  }
  7801  
  7802  type ListExecutionsOutput struct {
  7803  	_ struct{} `type:"structure"`
  7804  
  7805  	// Returns the details for each execution.
  7806  	//
  7807  	//    * NextToken: returned from a call to several APIs, you can use pass it
  7808  	//    to a subsequent command to continue listing additional executions.
  7809  	//
  7810  	//    * StartTime: timestamp indicating when the execution began.
  7811  	//
  7812  	//    * Executions: details of the execution, including the execution ID, initial
  7813  	//    file location, and Service metadata.
  7814  	//
  7815  	//    * Status: one of the following values: IN_PROGRESS, COMPLETED, EXCEPTION,
  7816  	//    HANDLING_EXEPTION.
  7817  	//
  7818  	// Executions is a required field
  7819  	Executions []*ListedExecution `type:"list" required:"true"`
  7820  
  7821  	// ListExecutions returns the NextToken parameter in the output. You can then
  7822  	// pass the NextToken parameter in a subsequent command to continue listing
  7823  	// additional executions.
  7824  	NextToken *string `min:"1" type:"string"`
  7825  
  7826  	// A unique identifier for the workflow.
  7827  	//
  7828  	// WorkflowId is a required field
  7829  	WorkflowId *string `min:"19" type:"string" required:"true"`
  7830  }
  7831  
  7832  // String returns the string representation.
  7833  //
  7834  // API parameter values that are decorated as "sensitive" in the API will not
  7835  // be included in the string output. The member name will be present, but the
  7836  // value will be replaced with "sensitive".
  7837  func (s ListExecutionsOutput) String() string {
  7838  	return awsutil.Prettify(s)
  7839  }
  7840  
  7841  // GoString returns the string representation.
  7842  //
  7843  // API parameter values that are decorated as "sensitive" in the API will not
  7844  // be included in the string output. The member name will be present, but the
  7845  // value will be replaced with "sensitive".
  7846  func (s ListExecutionsOutput) GoString() string {
  7847  	return s.String()
  7848  }
  7849  
  7850  // SetExecutions sets the Executions field's value.
  7851  func (s *ListExecutionsOutput) SetExecutions(v []*ListedExecution) *ListExecutionsOutput {
  7852  	s.Executions = v
  7853  	return s
  7854  }
  7855  
  7856  // SetNextToken sets the NextToken field's value.
  7857  func (s *ListExecutionsOutput) SetNextToken(v string) *ListExecutionsOutput {
  7858  	s.NextToken = &v
  7859  	return s
  7860  }
  7861  
  7862  // SetWorkflowId sets the WorkflowId field's value.
  7863  func (s *ListExecutionsOutput) SetWorkflowId(v string) *ListExecutionsOutput {
  7864  	s.WorkflowId = &v
  7865  	return s
  7866  }
  7867  
  7868  type ListSecurityPoliciesInput struct {
  7869  	_ struct{} `type:"structure"`
  7870  
  7871  	// Specifies the number of security policies to return as a response to the
  7872  	// ListSecurityPolicies query.
  7873  	MaxResults *int64 `min:"1" type:"integer"`
  7874  
  7875  	// When additional results are obtained from the ListSecurityPolicies command,
  7876  	// a NextToken parameter is returned in the output. You can then pass the NextToken
  7877  	// parameter in a subsequent command to continue listing additional security
  7878  	// policies.
  7879  	NextToken *string `min:"1" type:"string"`
  7880  }
  7881  
  7882  // String returns the string representation.
  7883  //
  7884  // API parameter values that are decorated as "sensitive" in the API will not
  7885  // be included in the string output. The member name will be present, but the
  7886  // value will be replaced with "sensitive".
  7887  func (s ListSecurityPoliciesInput) String() string {
  7888  	return awsutil.Prettify(s)
  7889  }
  7890  
  7891  // GoString returns the string representation.
  7892  //
  7893  // API parameter values that are decorated as "sensitive" in the API will not
  7894  // be included in the string output. The member name will be present, but the
  7895  // value will be replaced with "sensitive".
  7896  func (s ListSecurityPoliciesInput) GoString() string {
  7897  	return s.String()
  7898  }
  7899  
  7900  // Validate inspects the fields of the type to determine if they are valid.
  7901  func (s *ListSecurityPoliciesInput) Validate() error {
  7902  	invalidParams := request.ErrInvalidParams{Context: "ListSecurityPoliciesInput"}
  7903  	if s.MaxResults != nil && *s.MaxResults < 1 {
  7904  		invalidParams.Add(request.NewErrParamMinValue("MaxResults", 1))
  7905  	}
  7906  	if s.NextToken != nil && len(*s.NextToken) < 1 {
  7907  		invalidParams.Add(request.NewErrParamMinLen("NextToken", 1))
  7908  	}
  7909  
  7910  	if invalidParams.Len() > 0 {
  7911  		return invalidParams
  7912  	}
  7913  	return nil
  7914  }
  7915  
  7916  // SetMaxResults sets the MaxResults field's value.
  7917  func (s *ListSecurityPoliciesInput) SetMaxResults(v int64) *ListSecurityPoliciesInput {
  7918  	s.MaxResults = &v
  7919  	return s
  7920  }
  7921  
  7922  // SetNextToken sets the NextToken field's value.
  7923  func (s *ListSecurityPoliciesInput) SetNextToken(v string) *ListSecurityPoliciesInput {
  7924  	s.NextToken = &v
  7925  	return s
  7926  }
  7927  
  7928  type ListSecurityPoliciesOutput struct {
  7929  	_ struct{} `type:"structure"`
  7930  
  7931  	// When you can get additional results from the ListSecurityPolicies operation,
  7932  	// a NextToken parameter is returned in the output. In a following command,
  7933  	// you can pass in the NextToken parameter to continue listing security policies.
  7934  	NextToken *string `min:"1" type:"string"`
  7935  
  7936  	// An array of security policies that were listed.
  7937  	//
  7938  	// SecurityPolicyNames is a required field
  7939  	SecurityPolicyNames []*string `type:"list" required:"true"`
  7940  }
  7941  
  7942  // String returns the string representation.
  7943  //
  7944  // API parameter values that are decorated as "sensitive" in the API will not
  7945  // be included in the string output. The member name will be present, but the
  7946  // value will be replaced with "sensitive".
  7947  func (s ListSecurityPoliciesOutput) String() string {
  7948  	return awsutil.Prettify(s)
  7949  }
  7950  
  7951  // GoString returns the string representation.
  7952  //
  7953  // API parameter values that are decorated as "sensitive" in the API will not
  7954  // be included in the string output. The member name will be present, but the
  7955  // value will be replaced with "sensitive".
  7956  func (s ListSecurityPoliciesOutput) GoString() string {
  7957  	return s.String()
  7958  }
  7959  
  7960  // SetNextToken sets the NextToken field's value.
  7961  func (s *ListSecurityPoliciesOutput) SetNextToken(v string) *ListSecurityPoliciesOutput {
  7962  	s.NextToken = &v
  7963  	return s
  7964  }
  7965  
  7966  // SetSecurityPolicyNames sets the SecurityPolicyNames field's value.
  7967  func (s *ListSecurityPoliciesOutput) SetSecurityPolicyNames(v []*string) *ListSecurityPoliciesOutput {
  7968  	s.SecurityPolicyNames = v
  7969  	return s
  7970  }
  7971  
  7972  type ListServersInput struct {
  7973  	_ struct{} `type:"structure"`
  7974  
  7975  	// Specifies the number of servers to return as a response to the ListServers
  7976  	// query.
  7977  	MaxResults *int64 `min:"1" type:"integer"`
  7978  
  7979  	// When additional results are obtained from the ListServers command, a NextToken
  7980  	// parameter is returned in the output. You can then pass the NextToken parameter
  7981  	// in a subsequent command to continue listing additional servers.
  7982  	NextToken *string `min:"1" type:"string"`
  7983  }
  7984  
  7985  // String returns the string representation.
  7986  //
  7987  // API parameter values that are decorated as "sensitive" in the API will not
  7988  // be included in the string output. The member name will be present, but the
  7989  // value will be replaced with "sensitive".
  7990  func (s ListServersInput) String() string {
  7991  	return awsutil.Prettify(s)
  7992  }
  7993  
  7994  // GoString returns the string representation.
  7995  //
  7996  // API parameter values that are decorated as "sensitive" in the API will not
  7997  // be included in the string output. The member name will be present, but the
  7998  // value will be replaced with "sensitive".
  7999  func (s ListServersInput) GoString() string {
  8000  	return s.String()
  8001  }
  8002  
  8003  // Validate inspects the fields of the type to determine if they are valid.
  8004  func (s *ListServersInput) Validate() error {
  8005  	invalidParams := request.ErrInvalidParams{Context: "ListServersInput"}
  8006  	if s.MaxResults != nil && *s.MaxResults < 1 {
  8007  		invalidParams.Add(request.NewErrParamMinValue("MaxResults", 1))
  8008  	}
  8009  	if s.NextToken != nil && len(*s.NextToken) < 1 {
  8010  		invalidParams.Add(request.NewErrParamMinLen("NextToken", 1))
  8011  	}
  8012  
  8013  	if invalidParams.Len() > 0 {
  8014  		return invalidParams
  8015  	}
  8016  	return nil
  8017  }
  8018  
  8019  // SetMaxResults sets the MaxResults field's value.
  8020  func (s *ListServersInput) SetMaxResults(v int64) *ListServersInput {
  8021  	s.MaxResults = &v
  8022  	return s
  8023  }
  8024  
  8025  // SetNextToken sets the NextToken field's value.
  8026  func (s *ListServersInput) SetNextToken(v string) *ListServersInput {
  8027  	s.NextToken = &v
  8028  	return s
  8029  }
  8030  
  8031  type ListServersOutput struct {
  8032  	_ struct{} `type:"structure"`
  8033  
  8034  	// When you can get additional results from the ListServers operation, a NextToken
  8035  	// parameter is returned in the output. In a following command, you can pass
  8036  	// in the NextToken parameter to continue listing additional servers.
  8037  	NextToken *string `min:"1" type:"string"`
  8038  
  8039  	// An array of servers that were listed.
  8040  	//
  8041  	// Servers is a required field
  8042  	Servers []*ListedServer `type:"list" required:"true"`
  8043  }
  8044  
  8045  // String returns the string representation.
  8046  //
  8047  // API parameter values that are decorated as "sensitive" in the API will not
  8048  // be included in the string output. The member name will be present, but the
  8049  // value will be replaced with "sensitive".
  8050  func (s ListServersOutput) String() string {
  8051  	return awsutil.Prettify(s)
  8052  }
  8053  
  8054  // GoString returns the string representation.
  8055  //
  8056  // API parameter values that are decorated as "sensitive" in the API will not
  8057  // be included in the string output. The member name will be present, but the
  8058  // value will be replaced with "sensitive".
  8059  func (s ListServersOutput) GoString() string {
  8060  	return s.String()
  8061  }
  8062  
  8063  // SetNextToken sets the NextToken field's value.
  8064  func (s *ListServersOutput) SetNextToken(v string) *ListServersOutput {
  8065  	s.NextToken = &v
  8066  	return s
  8067  }
  8068  
  8069  // SetServers sets the Servers field's value.
  8070  func (s *ListServersOutput) SetServers(v []*ListedServer) *ListServersOutput {
  8071  	s.Servers = v
  8072  	return s
  8073  }
  8074  
  8075  type ListTagsForResourceInput struct {
  8076  	_ struct{} `type:"structure"`
  8077  
  8078  	// Requests the tags associated with a particular Amazon Resource Name (ARN).
  8079  	// An ARN is an identifier for a specific Amazon Web Services resource, such
  8080  	// as a server, user, or role.
  8081  	//
  8082  	// Arn is a required field
  8083  	Arn *string `min:"20" type:"string" required:"true"`
  8084  
  8085  	// Specifies the number of tags to return as a response to the ListTagsForResource
  8086  	// request.
  8087  	MaxResults *int64 `min:"1" type:"integer"`
  8088  
  8089  	// When you request additional results from the ListTagsForResource operation,
  8090  	// a NextToken parameter is returned in the input. You can then pass in a subsequent
  8091  	// command to the NextToken parameter to continue listing additional tags.
  8092  	NextToken *string `min:"1" type:"string"`
  8093  }
  8094  
  8095  // String returns the string representation.
  8096  //
  8097  // API parameter values that are decorated as "sensitive" in the API will not
  8098  // be included in the string output. The member name will be present, but the
  8099  // value will be replaced with "sensitive".
  8100  func (s ListTagsForResourceInput) String() string {
  8101  	return awsutil.Prettify(s)
  8102  }
  8103  
  8104  // GoString returns the string representation.
  8105  //
  8106  // API parameter values that are decorated as "sensitive" in the API will not
  8107  // be included in the string output. The member name will be present, but the
  8108  // value will be replaced with "sensitive".
  8109  func (s ListTagsForResourceInput) GoString() string {
  8110  	return s.String()
  8111  }
  8112  
  8113  // Validate inspects the fields of the type to determine if they are valid.
  8114  func (s *ListTagsForResourceInput) Validate() error {
  8115  	invalidParams := request.ErrInvalidParams{Context: "ListTagsForResourceInput"}
  8116  	if s.Arn == nil {
  8117  		invalidParams.Add(request.NewErrParamRequired("Arn"))
  8118  	}
  8119  	if s.Arn != nil && len(*s.Arn) < 20 {
  8120  		invalidParams.Add(request.NewErrParamMinLen("Arn", 20))
  8121  	}
  8122  	if s.MaxResults != nil && *s.MaxResults < 1 {
  8123  		invalidParams.Add(request.NewErrParamMinValue("MaxResults", 1))
  8124  	}
  8125  	if s.NextToken != nil && len(*s.NextToken) < 1 {
  8126  		invalidParams.Add(request.NewErrParamMinLen("NextToken", 1))
  8127  	}
  8128  
  8129  	if invalidParams.Len() > 0 {
  8130  		return invalidParams
  8131  	}
  8132  	return nil
  8133  }
  8134  
  8135  // SetArn sets the Arn field's value.
  8136  func (s *ListTagsForResourceInput) SetArn(v string) *ListTagsForResourceInput {
  8137  	s.Arn = &v
  8138  	return s
  8139  }
  8140  
  8141  // SetMaxResults sets the MaxResults field's value.
  8142  func (s *ListTagsForResourceInput) SetMaxResults(v int64) *ListTagsForResourceInput {
  8143  	s.MaxResults = &v
  8144  	return s
  8145  }
  8146  
  8147  // SetNextToken sets the NextToken field's value.
  8148  func (s *ListTagsForResourceInput) SetNextToken(v string) *ListTagsForResourceInput {
  8149  	s.NextToken = &v
  8150  	return s
  8151  }
  8152  
  8153  type ListTagsForResourceOutput struct {
  8154  	_ struct{} `type:"structure"`
  8155  
  8156  	// The ARN you specified to list the tags of.
  8157  	Arn *string `min:"20" type:"string"`
  8158  
  8159  	// When you can get additional results from the ListTagsForResource call, a
  8160  	// NextToken parameter is returned in the output. You can then pass in a subsequent
  8161  	// command to the NextToken parameter to continue listing additional tags.
  8162  	NextToken *string `min:"1" type:"string"`
  8163  
  8164  	// Key-value pairs that are assigned to a resource, usually for the purpose
  8165  	// of grouping and searching for items. Tags are metadata that you define.
  8166  	Tags []*Tag `min:"1" type:"list"`
  8167  }
  8168  
  8169  // String returns the string representation.
  8170  //
  8171  // API parameter values that are decorated as "sensitive" in the API will not
  8172  // be included in the string output. The member name will be present, but the
  8173  // value will be replaced with "sensitive".
  8174  func (s ListTagsForResourceOutput) String() string {
  8175  	return awsutil.Prettify(s)
  8176  }
  8177  
  8178  // GoString returns the string representation.
  8179  //
  8180  // API parameter values that are decorated as "sensitive" in the API will not
  8181  // be included in the string output. The member name will be present, but the
  8182  // value will be replaced with "sensitive".
  8183  func (s ListTagsForResourceOutput) GoString() string {
  8184  	return s.String()
  8185  }
  8186  
  8187  // SetArn sets the Arn field's value.
  8188  func (s *ListTagsForResourceOutput) SetArn(v string) *ListTagsForResourceOutput {
  8189  	s.Arn = &v
  8190  	return s
  8191  }
  8192  
  8193  // SetNextToken sets the NextToken field's value.
  8194  func (s *ListTagsForResourceOutput) SetNextToken(v string) *ListTagsForResourceOutput {
  8195  	s.NextToken = &v
  8196  	return s
  8197  }
  8198  
  8199  // SetTags sets the Tags field's value.
  8200  func (s *ListTagsForResourceOutput) SetTags(v []*Tag) *ListTagsForResourceOutput {
  8201  	s.Tags = v
  8202  	return s
  8203  }
  8204  
  8205  type ListUsersInput struct {
  8206  	_ struct{} `type:"structure"`
  8207  
  8208  	// Specifies the number of users to return as a response to the ListUsers request.
  8209  	MaxResults *int64 `min:"1" type:"integer"`
  8210  
  8211  	// When you can get additional results from the ListUsers call, a NextToken
  8212  	// parameter is returned in the output. You can then pass in a subsequent command
  8213  	// to the NextToken parameter to continue listing additional users.
  8214  	NextToken *string `min:"1" type:"string"`
  8215  
  8216  	// A system-assigned unique identifier for a server that has users assigned
  8217  	// to it.
  8218  	//
  8219  	// ServerId is a required field
  8220  	ServerId *string `min:"19" type:"string" required:"true"`
  8221  }
  8222  
  8223  // String returns the string representation.
  8224  //
  8225  // API parameter values that are decorated as "sensitive" in the API will not
  8226  // be included in the string output. The member name will be present, but the
  8227  // value will be replaced with "sensitive".
  8228  func (s ListUsersInput) String() string {
  8229  	return awsutil.Prettify(s)
  8230  }
  8231  
  8232  // GoString returns the string representation.
  8233  //
  8234  // API parameter values that are decorated as "sensitive" in the API will not
  8235  // be included in the string output. The member name will be present, but the
  8236  // value will be replaced with "sensitive".
  8237  func (s ListUsersInput) GoString() string {
  8238  	return s.String()
  8239  }
  8240  
  8241  // Validate inspects the fields of the type to determine if they are valid.
  8242  func (s *ListUsersInput) Validate() error {
  8243  	invalidParams := request.ErrInvalidParams{Context: "ListUsersInput"}
  8244  	if s.MaxResults != nil && *s.MaxResults < 1 {
  8245  		invalidParams.Add(request.NewErrParamMinValue("MaxResults", 1))
  8246  	}
  8247  	if s.NextToken != nil && len(*s.NextToken) < 1 {
  8248  		invalidParams.Add(request.NewErrParamMinLen("NextToken", 1))
  8249  	}
  8250  	if s.ServerId == nil {
  8251  		invalidParams.Add(request.NewErrParamRequired("ServerId"))
  8252  	}
  8253  	if s.ServerId != nil && len(*s.ServerId) < 19 {
  8254  		invalidParams.Add(request.NewErrParamMinLen("ServerId", 19))
  8255  	}
  8256  
  8257  	if invalidParams.Len() > 0 {
  8258  		return invalidParams
  8259  	}
  8260  	return nil
  8261  }
  8262  
  8263  // SetMaxResults sets the MaxResults field's value.
  8264  func (s *ListUsersInput) SetMaxResults(v int64) *ListUsersInput {
  8265  	s.MaxResults = &v
  8266  	return s
  8267  }
  8268  
  8269  // SetNextToken sets the NextToken field's value.
  8270  func (s *ListUsersInput) SetNextToken(v string) *ListUsersInput {
  8271  	s.NextToken = &v
  8272  	return s
  8273  }
  8274  
  8275  // SetServerId sets the ServerId field's value.
  8276  func (s *ListUsersInput) SetServerId(v string) *ListUsersInput {
  8277  	s.ServerId = &v
  8278  	return s
  8279  }
  8280  
  8281  type ListUsersOutput struct {
  8282  	_ struct{} `type:"structure"`
  8283  
  8284  	// When you can get additional results from the ListUsers call, a NextToken
  8285  	// parameter is returned in the output. You can then pass in a subsequent command
  8286  	// to the NextToken parameter to continue listing additional users.
  8287  	NextToken *string `min:"1" type:"string"`
  8288  
  8289  	// A system-assigned unique identifier for a server that the users are assigned
  8290  	// to.
  8291  	//
  8292  	// ServerId is a required field
  8293  	ServerId *string `min:"19" type:"string" required:"true"`
  8294  
  8295  	// Returns the user accounts and their properties for the ServerId value that
  8296  	// you specify.
  8297  	//
  8298  	// Users is a required field
  8299  	Users []*ListedUser `type:"list" required:"true"`
  8300  }
  8301  
  8302  // String returns the string representation.
  8303  //
  8304  // API parameter values that are decorated as "sensitive" in the API will not
  8305  // be included in the string output. The member name will be present, but the
  8306  // value will be replaced with "sensitive".
  8307  func (s ListUsersOutput) String() string {
  8308  	return awsutil.Prettify(s)
  8309  }
  8310  
  8311  // GoString returns the string representation.
  8312  //
  8313  // API parameter values that are decorated as "sensitive" in the API will not
  8314  // be included in the string output. The member name will be present, but the
  8315  // value will be replaced with "sensitive".
  8316  func (s ListUsersOutput) GoString() string {
  8317  	return s.String()
  8318  }
  8319  
  8320  // SetNextToken sets the NextToken field's value.
  8321  func (s *ListUsersOutput) SetNextToken(v string) *ListUsersOutput {
  8322  	s.NextToken = &v
  8323  	return s
  8324  }
  8325  
  8326  // SetServerId sets the ServerId field's value.
  8327  func (s *ListUsersOutput) SetServerId(v string) *ListUsersOutput {
  8328  	s.ServerId = &v
  8329  	return s
  8330  }
  8331  
  8332  // SetUsers sets the Users field's value.
  8333  func (s *ListUsersOutput) SetUsers(v []*ListedUser) *ListUsersOutput {
  8334  	s.Users = v
  8335  	return s
  8336  }
  8337  
  8338  type ListWorkflowsInput struct {
  8339  	_ struct{} `type:"structure"`
  8340  
  8341  	// Specifies the maximum number of workflows to return.
  8342  	MaxResults *int64 `min:"1" type:"integer"`
  8343  
  8344  	// ListWorkflows returns the NextToken parameter in the output. You can then
  8345  	// pass the NextToken parameter in a subsequent command to continue listing
  8346  	// additional workflows.
  8347  	NextToken *string `min:"1" type:"string"`
  8348  }
  8349  
  8350  // String returns the string representation.
  8351  //
  8352  // API parameter values that are decorated as "sensitive" in the API will not
  8353  // be included in the string output. The member name will be present, but the
  8354  // value will be replaced with "sensitive".
  8355  func (s ListWorkflowsInput) String() string {
  8356  	return awsutil.Prettify(s)
  8357  }
  8358  
  8359  // GoString returns the string representation.
  8360  //
  8361  // API parameter values that are decorated as "sensitive" in the API will not
  8362  // be included in the string output. The member name will be present, but the
  8363  // value will be replaced with "sensitive".
  8364  func (s ListWorkflowsInput) GoString() string {
  8365  	return s.String()
  8366  }
  8367  
  8368  // Validate inspects the fields of the type to determine if they are valid.
  8369  func (s *ListWorkflowsInput) Validate() error {
  8370  	invalidParams := request.ErrInvalidParams{Context: "ListWorkflowsInput"}
  8371  	if s.MaxResults != nil && *s.MaxResults < 1 {
  8372  		invalidParams.Add(request.NewErrParamMinValue("MaxResults", 1))
  8373  	}
  8374  	if s.NextToken != nil && len(*s.NextToken) < 1 {
  8375  		invalidParams.Add(request.NewErrParamMinLen("NextToken", 1))
  8376  	}
  8377  
  8378  	if invalidParams.Len() > 0 {
  8379  		return invalidParams
  8380  	}
  8381  	return nil
  8382  }
  8383  
  8384  // SetMaxResults sets the MaxResults field's value.
  8385  func (s *ListWorkflowsInput) SetMaxResults(v int64) *ListWorkflowsInput {
  8386  	s.MaxResults = &v
  8387  	return s
  8388  }
  8389  
  8390  // SetNextToken sets the NextToken field's value.
  8391  func (s *ListWorkflowsInput) SetNextToken(v string) *ListWorkflowsInput {
  8392  	s.NextToken = &v
  8393  	return s
  8394  }
  8395  
  8396  type ListWorkflowsOutput struct {
  8397  	_ struct{} `type:"structure"`
  8398  
  8399  	// ListWorkflows returns the NextToken parameter in the output. You can then
  8400  	// pass the NextToken parameter in a subsequent command to continue listing
  8401  	// additional workflows.
  8402  	NextToken *string `min:"1" type:"string"`
  8403  
  8404  	// Returns the Arn, WorkflowId, and Description for each workflow.
  8405  	//
  8406  	// Workflows is a required field
  8407  	Workflows []*ListedWorkflow `type:"list" required:"true"`
  8408  }
  8409  
  8410  // String returns the string representation.
  8411  //
  8412  // API parameter values that are decorated as "sensitive" in the API will not
  8413  // be included in the string output. The member name will be present, but the
  8414  // value will be replaced with "sensitive".
  8415  func (s ListWorkflowsOutput) String() string {
  8416  	return awsutil.Prettify(s)
  8417  }
  8418  
  8419  // GoString returns the string representation.
  8420  //
  8421  // API parameter values that are decorated as "sensitive" in the API will not
  8422  // be included in the string output. The member name will be present, but the
  8423  // value will be replaced with "sensitive".
  8424  func (s ListWorkflowsOutput) GoString() string {
  8425  	return s.String()
  8426  }
  8427  
  8428  // SetNextToken sets the NextToken field's value.
  8429  func (s *ListWorkflowsOutput) SetNextToken(v string) *ListWorkflowsOutput {
  8430  	s.NextToken = &v
  8431  	return s
  8432  }
  8433  
  8434  // SetWorkflows sets the Workflows field's value.
  8435  func (s *ListWorkflowsOutput) SetWorkflows(v []*ListedWorkflow) *ListWorkflowsOutput {
  8436  	s.Workflows = v
  8437  	return s
  8438  }
  8439  
  8440  // Lists the properties for one or more specified associated accesses.
  8441  type ListedAccess struct {
  8442  	_ struct{} `type:"structure"`
  8443  
  8444  	// A unique identifier that is required to identify specific groups within your
  8445  	// directory. The users of the group that you associate have access to your
  8446  	// Amazon S3 or Amazon EFS resources over the enabled protocols using Amazon
  8447  	// Web Services Transfer Family. If you know the group name, you can view the
  8448  	// SID values by running the following command using Windows PowerShell.
  8449  	//
  8450  	// Get-ADGroup -Filter {samAccountName -like "YourGroupName*"} -Properties *
  8451  	// | Select SamAccountName,ObjectSid
  8452  	//
  8453  	// In that command, replace YourGroupName with the name of your Active Directory
  8454  	// group.
  8455  	//
  8456  	// The regex used to validate this parameter is a string of characters consisting
  8457  	// of uppercase and lowercase alphanumeric characters with no spaces. You can
  8458  	// also include underscores or any of the following characters: =,.@:/-
  8459  	ExternalId *string `min:"1" type:"string"`
  8460  
  8461  	// The landing directory (folder) for a user when they log in to the server
  8462  	// using the client.
  8463  	//
  8464  	// A HomeDirectory example is /bucket_name/home/mydirectory.
  8465  	HomeDirectory *string `type:"string"`
  8466  
  8467  	// The type of landing directory (folder) you want your users' home directory
  8468  	// to be when they log into the server. If you set it to PATH, the user will
  8469  	// see the absolute Amazon S3 bucket or EFS paths as is in their file transfer
  8470  	// protocol clients. If you set it LOGICAL, you need to provide mappings in
  8471  	// the HomeDirectoryMappings for how you want to make Amazon S3 or EFS paths
  8472  	// visible to your users.
  8473  	HomeDirectoryType *string `type:"string" enum:"HomeDirectoryType"`
  8474  
  8475  	// Specifies the Amazon Resource Name (ARN) of the IAM role that controls your
  8476  	// users' access to your Amazon S3 bucket or EFS file system. The policies attached
  8477  	// to this role determine the level of access that you want to provide your
  8478  	// users when transferring files into and out of your Amazon S3 bucket or EFS
  8479  	// file system. The IAM role should also contain a trust relationship that allows
  8480  	// the server to access your resources when servicing your users' transfer requests.
  8481  	Role *string `min:"20" type:"string"`
  8482  }
  8483  
  8484  // String returns the string representation.
  8485  //
  8486  // API parameter values that are decorated as "sensitive" in the API will not
  8487  // be included in the string output. The member name will be present, but the
  8488  // value will be replaced with "sensitive".
  8489  func (s ListedAccess) String() string {
  8490  	return awsutil.Prettify(s)
  8491  }
  8492  
  8493  // GoString returns the string representation.
  8494  //
  8495  // API parameter values that are decorated as "sensitive" in the API will not
  8496  // be included in the string output. The member name will be present, but the
  8497  // value will be replaced with "sensitive".
  8498  func (s ListedAccess) GoString() string {
  8499  	return s.String()
  8500  }
  8501  
  8502  // SetExternalId sets the ExternalId field's value.
  8503  func (s *ListedAccess) SetExternalId(v string) *ListedAccess {
  8504  	s.ExternalId = &v
  8505  	return s
  8506  }
  8507  
  8508  // SetHomeDirectory sets the HomeDirectory field's value.
  8509  func (s *ListedAccess) SetHomeDirectory(v string) *ListedAccess {
  8510  	s.HomeDirectory = &v
  8511  	return s
  8512  }
  8513  
  8514  // SetHomeDirectoryType sets the HomeDirectoryType field's value.
  8515  func (s *ListedAccess) SetHomeDirectoryType(v string) *ListedAccess {
  8516  	s.HomeDirectoryType = &v
  8517  	return s
  8518  }
  8519  
  8520  // SetRole sets the Role field's value.
  8521  func (s *ListedAccess) SetRole(v string) *ListedAccess {
  8522  	s.Role = &v
  8523  	return s
  8524  }
  8525  
  8526  // Returns properties of the execution that is specified.
  8527  type ListedExecution struct {
  8528  	_ struct{} `type:"structure"`
  8529  
  8530  	// A unique identifier for the execution of a workflow.
  8531  	ExecutionId *string `min:"36" type:"string"`
  8532  
  8533  	// A structure that describes the Amazon S3 or EFS file location. This is the
  8534  	// file location when the execution begins: if the file is being copied, this
  8535  	// is the initial (as opposed to destination) file location.
  8536  	InitialFileLocation *FileLocation `type:"structure"`
  8537  
  8538  	// A container object for the session details associated with a workflow.
  8539  	ServiceMetadata *ServiceMetadata `type:"structure"`
  8540  
  8541  	// The status is one of the execution. Can be in progress, completed, exception
  8542  	// encountered, or handling the exception.
  8543  	Status *string `type:"string" enum:"ExecutionStatus"`
  8544  }
  8545  
  8546  // String returns the string representation.
  8547  //
  8548  // API parameter values that are decorated as "sensitive" in the API will not
  8549  // be included in the string output. The member name will be present, but the
  8550  // value will be replaced with "sensitive".
  8551  func (s ListedExecution) String() string {
  8552  	return awsutil.Prettify(s)
  8553  }
  8554  
  8555  // GoString returns the string representation.
  8556  //
  8557  // API parameter values that are decorated as "sensitive" in the API will not
  8558  // be included in the string output. The member name will be present, but the
  8559  // value will be replaced with "sensitive".
  8560  func (s ListedExecution) GoString() string {
  8561  	return s.String()
  8562  }
  8563  
  8564  // SetExecutionId sets the ExecutionId field's value.
  8565  func (s *ListedExecution) SetExecutionId(v string) *ListedExecution {
  8566  	s.ExecutionId = &v
  8567  	return s
  8568  }
  8569  
  8570  // SetInitialFileLocation sets the InitialFileLocation field's value.
  8571  func (s *ListedExecution) SetInitialFileLocation(v *FileLocation) *ListedExecution {
  8572  	s.InitialFileLocation = v
  8573  	return s
  8574  }
  8575  
  8576  // SetServiceMetadata sets the ServiceMetadata field's value.
  8577  func (s *ListedExecution) SetServiceMetadata(v *ServiceMetadata) *ListedExecution {
  8578  	s.ServiceMetadata = v
  8579  	return s
  8580  }
  8581  
  8582  // SetStatus sets the Status field's value.
  8583  func (s *ListedExecution) SetStatus(v string) *ListedExecution {
  8584  	s.Status = &v
  8585  	return s
  8586  }
  8587  
  8588  // Returns properties of a file transfer protocol-enabled server that was specified.
  8589  type ListedServer struct {
  8590  	_ struct{} `type:"structure"`
  8591  
  8592  	// Specifies the unique Amazon Resource Name (ARN) for a server to be listed.
  8593  	//
  8594  	// Arn is a required field
  8595  	Arn *string `min:"20" type:"string" required:"true"`
  8596  
  8597  	// Specifies the domain of the storage system that is used for file transfers.
  8598  	Domain *string `type:"string" enum:"Domain"`
  8599  
  8600  	// Specifies the type of VPC endpoint that your server is connected to. If your
  8601  	// server is connected to a VPC endpoint, your server isn't accessible over
  8602  	// the public internet.
  8603  	EndpointType *string `type:"string" enum:"EndpointType"`
  8604  
  8605  	// Specifies the mode of authentication for a server. The default value is SERVICE_MANAGED,
  8606  	// which allows you to store and access user credentials within the Amazon Web
  8607  	// Services Transfer Family service.
  8608  	//
  8609  	// Use AWS_DIRECTORY_SERVICE to provide access to Active Directory groups in
  8610  	// Amazon Web Services Managed Active Directory or Microsoft Active Directory
  8611  	// in your on-premises environment or in Amazon Web Services using AD Connectors.
  8612  	// This option also requires you to provide a Directory ID using the IdentityProviderDetails
  8613  	// parameter.
  8614  	//
  8615  	// Use the API_GATEWAY value to integrate with an identity provider of your
  8616  	// choosing. The API_GATEWAY setting requires you to provide an API Gateway
  8617  	// endpoint URL to call for authentication using the IdentityProviderDetails
  8618  	// parameter.
  8619  	IdentityProviderType *string `type:"string" enum:"IdentityProviderType"`
  8620  
  8621  	// Specifies the Amazon Resource Name (ARN) of the Amazon Web Services Identity
  8622  	// and Access Management (IAM) role that allows a server to turn on Amazon CloudWatch
  8623  	// logging for Amazon S3 or Amazon EFS events. When set, user activity can be
  8624  	// viewed in your CloudWatch logs.
  8625  	LoggingRole *string `min:"20" type:"string"`
  8626  
  8627  	// Specifies the unique system assigned identifier for the servers that were
  8628  	// listed.
  8629  	ServerId *string `min:"19" type:"string"`
  8630  
  8631  	// Specifies the condition of a server for the server that was described. A
  8632  	// value of ONLINE indicates that the server can accept jobs and transfer files.
  8633  	// A State value of OFFLINE means that the server cannot perform file transfer
  8634  	// operations.
  8635  	//
  8636  	// The states of STARTING and STOPPING indicate that the server is in an intermediate
  8637  	// state, either not fully able to respond, or not fully offline. The values
  8638  	// of START_FAILED or STOP_FAILED can indicate an error condition.
  8639  	State *string `type:"string" enum:"State"`
  8640  
  8641  	// Specifies the number of users that are assigned to a server you specified
  8642  	// with the ServerId.
  8643  	UserCount *int64 `type:"integer"`
  8644  }
  8645  
  8646  // String returns the string representation.
  8647  //
  8648  // API parameter values that are decorated as "sensitive" in the API will not
  8649  // be included in the string output. The member name will be present, but the
  8650  // value will be replaced with "sensitive".
  8651  func (s ListedServer) String() string {
  8652  	return awsutil.Prettify(s)
  8653  }
  8654  
  8655  // GoString returns the string representation.
  8656  //
  8657  // API parameter values that are decorated as "sensitive" in the API will not
  8658  // be included in the string output. The member name will be present, but the
  8659  // value will be replaced with "sensitive".
  8660  func (s ListedServer) GoString() string {
  8661  	return s.String()
  8662  }
  8663  
  8664  // SetArn sets the Arn field's value.
  8665  func (s *ListedServer) SetArn(v string) *ListedServer {
  8666  	s.Arn = &v
  8667  	return s
  8668  }
  8669  
  8670  // SetDomain sets the Domain field's value.
  8671  func (s *ListedServer) SetDomain(v string) *ListedServer {
  8672  	s.Domain = &v
  8673  	return s
  8674  }
  8675  
  8676  // SetEndpointType sets the EndpointType field's value.
  8677  func (s *ListedServer) SetEndpointType(v string) *ListedServer {
  8678  	s.EndpointType = &v
  8679  	return s
  8680  }
  8681  
  8682  // SetIdentityProviderType sets the IdentityProviderType field's value.
  8683  func (s *ListedServer) SetIdentityProviderType(v string) *ListedServer {
  8684  	s.IdentityProviderType = &v
  8685  	return s
  8686  }
  8687  
  8688  // SetLoggingRole sets the LoggingRole field's value.
  8689  func (s *ListedServer) SetLoggingRole(v string) *ListedServer {
  8690  	s.LoggingRole = &v
  8691  	return s
  8692  }
  8693  
  8694  // SetServerId sets the ServerId field's value.
  8695  func (s *ListedServer) SetServerId(v string) *ListedServer {
  8696  	s.ServerId = &v
  8697  	return s
  8698  }
  8699  
  8700  // SetState sets the State field's value.
  8701  func (s *ListedServer) SetState(v string) *ListedServer {
  8702  	s.State = &v
  8703  	return s
  8704  }
  8705  
  8706  // SetUserCount sets the UserCount field's value.
  8707  func (s *ListedServer) SetUserCount(v int64) *ListedServer {
  8708  	s.UserCount = &v
  8709  	return s
  8710  }
  8711  
  8712  // Returns properties of the user that you specify.
  8713  type ListedUser struct {
  8714  	_ struct{} `type:"structure"`
  8715  
  8716  	// Provides the unique Amazon Resource Name (ARN) for the user that you want
  8717  	// to learn about.
  8718  	//
  8719  	// Arn is a required field
  8720  	Arn *string `min:"20" type:"string" required:"true"`
  8721  
  8722  	// The landing directory (folder) for a user when they log in to the server
  8723  	// using the client.
  8724  	//
  8725  	// A HomeDirectory example is /bucket_name/home/mydirectory.
  8726  	HomeDirectory *string `type:"string"`
  8727  
  8728  	// The type of landing directory (folder) you want your users' home directory
  8729  	// to be when they log into the server. If you set it to PATH, the user will
  8730  	// see the absolute Amazon S3 bucket or EFS paths as is in their file transfer
  8731  	// protocol clients. If you set it LOGICAL, you need to provide mappings in
  8732  	// the HomeDirectoryMappings for how you want to make Amazon S3 or EFS paths
  8733  	// visible to your users.
  8734  	HomeDirectoryType *string `type:"string" enum:"HomeDirectoryType"`
  8735  
  8736  	// Specifies the Amazon Resource Name (ARN) of the IAM role that controls your
  8737  	// users' access to your Amazon S3 bucket or EFS file system. The policies attached
  8738  	// to this role determine the level of access that you want to provide your
  8739  	// users when transferring files into and out of your Amazon S3 bucket or EFS
  8740  	// file system. The IAM role should also contain a trust relationship that allows
  8741  	// the server to access your resources when servicing your users' transfer requests.
  8742  	//
  8743  	// The IAM role that controls your users' access to your Amazon S3 bucket for
  8744  	// servers with Domain=S3, or your EFS file system for servers with Domain=EFS.
  8745  	//
  8746  	// The policies attached to this role determine the level of access you want
  8747  	// to provide your users when transferring files into and out of your S3 buckets
  8748  	// or EFS file systems.
  8749  	Role *string `min:"20" type:"string"`
  8750  
  8751  	// Specifies the number of SSH public keys stored for the user you specified.
  8752  	SshPublicKeyCount *int64 `type:"integer"`
  8753  
  8754  	// Specifies the name of the user whose ARN was specified. User names are used
  8755  	// for authentication purposes.
  8756  	UserName *string `min:"3" type:"string"`
  8757  }
  8758  
  8759  // String returns the string representation.
  8760  //
  8761  // API parameter values that are decorated as "sensitive" in the API will not
  8762  // be included in the string output. The member name will be present, but the
  8763  // value will be replaced with "sensitive".
  8764  func (s ListedUser) String() string {
  8765  	return awsutil.Prettify(s)
  8766  }
  8767  
  8768  // GoString returns the string representation.
  8769  //
  8770  // API parameter values that are decorated as "sensitive" in the API will not
  8771  // be included in the string output. The member name will be present, but the
  8772  // value will be replaced with "sensitive".
  8773  func (s ListedUser) GoString() string {
  8774  	return s.String()
  8775  }
  8776  
  8777  // SetArn sets the Arn field's value.
  8778  func (s *ListedUser) SetArn(v string) *ListedUser {
  8779  	s.Arn = &v
  8780  	return s
  8781  }
  8782  
  8783  // SetHomeDirectory sets the HomeDirectory field's value.
  8784  func (s *ListedUser) SetHomeDirectory(v string) *ListedUser {
  8785  	s.HomeDirectory = &v
  8786  	return s
  8787  }
  8788  
  8789  // SetHomeDirectoryType sets the HomeDirectoryType field's value.
  8790  func (s *ListedUser) SetHomeDirectoryType(v string) *ListedUser {
  8791  	s.HomeDirectoryType = &v
  8792  	return s
  8793  }
  8794  
  8795  // SetRole sets the Role field's value.
  8796  func (s *ListedUser) SetRole(v string) *ListedUser {
  8797  	s.Role = &v
  8798  	return s
  8799  }
  8800  
  8801  // SetSshPublicKeyCount sets the SshPublicKeyCount field's value.
  8802  func (s *ListedUser) SetSshPublicKeyCount(v int64) *ListedUser {
  8803  	s.SshPublicKeyCount = &v
  8804  	return s
  8805  }
  8806  
  8807  // SetUserName sets the UserName field's value.
  8808  func (s *ListedUser) SetUserName(v string) *ListedUser {
  8809  	s.UserName = &v
  8810  	return s
  8811  }
  8812  
  8813  // Contains the ID, text description, and Amazon Resource Name (ARN) for the
  8814  // workflow.
  8815  type ListedWorkflow struct {
  8816  	_ struct{} `type:"structure"`
  8817  
  8818  	// Specifies the unique Amazon Resource Name (ARN) for the workflow.
  8819  	Arn *string `min:"20" type:"string"`
  8820  
  8821  	// Specifies the text description for the workflow.
  8822  	Description *string `type:"string"`
  8823  
  8824  	// A unique identifier for the workflow.
  8825  	WorkflowId *string `min:"19" type:"string"`
  8826  }
  8827  
  8828  // String returns the string representation.
  8829  //
  8830  // API parameter values that are decorated as "sensitive" in the API will not
  8831  // be included in the string output. The member name will be present, but the
  8832  // value will be replaced with "sensitive".
  8833  func (s ListedWorkflow) String() string {
  8834  	return awsutil.Prettify(s)
  8835  }
  8836  
  8837  // GoString returns the string representation.
  8838  //
  8839  // API parameter values that are decorated as "sensitive" in the API will not
  8840  // be included in the string output. The member name will be present, but the
  8841  // value will be replaced with "sensitive".
  8842  func (s ListedWorkflow) GoString() string {
  8843  	return s.String()
  8844  }
  8845  
  8846  // SetArn sets the Arn field's value.
  8847  func (s *ListedWorkflow) SetArn(v string) *ListedWorkflow {
  8848  	s.Arn = &v
  8849  	return s
  8850  }
  8851  
  8852  // SetDescription sets the Description field's value.
  8853  func (s *ListedWorkflow) SetDescription(v string) *ListedWorkflow {
  8854  	s.Description = &v
  8855  	return s
  8856  }
  8857  
  8858  // SetWorkflowId sets the WorkflowId field's value.
  8859  func (s *ListedWorkflow) SetWorkflowId(v string) *ListedWorkflow {
  8860  	s.WorkflowId = &v
  8861  	return s
  8862  }
  8863  
  8864  // Consists of the logging role and the log group name.
  8865  type LoggingConfiguration struct {
  8866  	_ struct{} `type:"structure"`
  8867  
  8868  	// The name of the CloudWatch logging group for the Amazon Web Services Transfer
  8869  	// server to which this workflow belongs.
  8870  	LogGroupName *string `min:"1" type:"string"`
  8871  
  8872  	// Specifies the Amazon Resource Name (ARN) of the Amazon Web Services Identity
  8873  	// and Access Management (IAM) role that allows a server to turn on Amazon CloudWatch
  8874  	// logging for Amazon S3 or Amazon EFS events. When set, user activity can be
  8875  	// viewed in your CloudWatch logs.
  8876  	LoggingRole *string `min:"20" type:"string"`
  8877  }
  8878  
  8879  // String returns the string representation.
  8880  //
  8881  // API parameter values that are decorated as "sensitive" in the API will not
  8882  // be included in the string output. The member name will be present, but the
  8883  // value will be replaced with "sensitive".
  8884  func (s LoggingConfiguration) String() string {
  8885  	return awsutil.Prettify(s)
  8886  }
  8887  
  8888  // GoString returns the string representation.
  8889  //
  8890  // API parameter values that are decorated as "sensitive" in the API will not
  8891  // be included in the string output. The member name will be present, but the
  8892  // value will be replaced with "sensitive".
  8893  func (s LoggingConfiguration) GoString() string {
  8894  	return s.String()
  8895  }
  8896  
  8897  // SetLogGroupName sets the LogGroupName field's value.
  8898  func (s *LoggingConfiguration) SetLogGroupName(v string) *LoggingConfiguration {
  8899  	s.LogGroupName = &v
  8900  	return s
  8901  }
  8902  
  8903  // SetLoggingRole sets the LoggingRole field's value.
  8904  func (s *LoggingConfiguration) SetLoggingRole(v string) *LoggingConfiguration {
  8905  	s.LoggingRole = &v
  8906  	return s
  8907  }
  8908  
  8909  // The full POSIX identity, including user ID (Uid), group ID (Gid), and any
  8910  // secondary groups IDs (SecondaryGids), that controls your users' access to
  8911  // your Amazon EFS file systems. The POSIX permissions that are set on files
  8912  // and directories in your file system determine the level of access your users
  8913  // get when transferring files into and out of your Amazon EFS file systems.
  8914  type PosixProfile struct {
  8915  	_ struct{} `type:"structure"`
  8916  
  8917  	// The POSIX group ID used for all EFS operations by this user.
  8918  	//
  8919  	// Gid is a required field
  8920  	Gid *int64 `type:"long" required:"true"`
  8921  
  8922  	// The secondary POSIX group IDs used for all EFS operations by this user.
  8923  	SecondaryGids []*int64 `type:"list"`
  8924  
  8925  	// The POSIX user ID used for all EFS operations by this user.
  8926  	//
  8927  	// Uid is a required field
  8928  	Uid *int64 `type:"long" required:"true"`
  8929  }
  8930  
  8931  // String returns the string representation.
  8932  //
  8933  // API parameter values that are decorated as "sensitive" in the API will not
  8934  // be included in the string output. The member name will be present, but the
  8935  // value will be replaced with "sensitive".
  8936  func (s PosixProfile) String() string {
  8937  	return awsutil.Prettify(s)
  8938  }
  8939  
  8940  // GoString returns the string representation.
  8941  //
  8942  // API parameter values that are decorated as "sensitive" in the API will not
  8943  // be included in the string output. The member name will be present, but the
  8944  // value will be replaced with "sensitive".
  8945  func (s PosixProfile) GoString() string {
  8946  	return s.String()
  8947  }
  8948  
  8949  // Validate inspects the fields of the type to determine if they are valid.
  8950  func (s *PosixProfile) Validate() error {
  8951  	invalidParams := request.ErrInvalidParams{Context: "PosixProfile"}
  8952  	if s.Gid == nil {
  8953  		invalidParams.Add(request.NewErrParamRequired("Gid"))
  8954  	}
  8955  	if s.Uid == nil {
  8956  		invalidParams.Add(request.NewErrParamRequired("Uid"))
  8957  	}
  8958  
  8959  	if invalidParams.Len() > 0 {
  8960  		return invalidParams
  8961  	}
  8962  	return nil
  8963  }
  8964  
  8965  // SetGid sets the Gid field's value.
  8966  func (s *PosixProfile) SetGid(v int64) *PosixProfile {
  8967  	s.Gid = &v
  8968  	return s
  8969  }
  8970  
  8971  // SetSecondaryGids sets the SecondaryGids field's value.
  8972  func (s *PosixProfile) SetSecondaryGids(v []*int64) *PosixProfile {
  8973  	s.SecondaryGids = v
  8974  	return s
  8975  }
  8976  
  8977  // SetUid sets the Uid field's value.
  8978  func (s *PosixProfile) SetUid(v int64) *PosixProfile {
  8979  	s.Uid = &v
  8980  	return s
  8981  }
  8982  
  8983  // The protocol settings that are configured for your server.
  8984  //
  8985  // This type is only valid in the UpdateServer API.
  8986  type ProtocolDetails struct {
  8987  	_ struct{} `type:"structure"`
  8988  
  8989  	// Indicates passive mode, for FTP and FTPS protocols. Enter a single dotted-quad
  8990  	// IPv4 address, such as the external IP address of a firewall, router, or load
  8991  	// balancer. For example:
  8992  	//
  8993  	// aws transfer update-server --protocol-details PassiveIp=0.0.0.0
  8994  	//
  8995  	// Replace 0.0.0.0 in the example above with the actual IP address you want
  8996  	// to use.
  8997  	//
  8998  	// If you change the PassiveIp value, you must stop and then restart your Transfer
  8999  	// server for the change to take effect. For details on using Passive IP (PASV)
  9000  	// in a NAT environment, see Configuring your FTPS server behind a firewall
  9001  	// 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/).
  9002  	PassiveIp *string `type:"string"`
  9003  }
  9004  
  9005  // String returns the string representation.
  9006  //
  9007  // API parameter values that are decorated as "sensitive" in the API will not
  9008  // be included in the string output. The member name will be present, but the
  9009  // value will be replaced with "sensitive".
  9010  func (s ProtocolDetails) String() string {
  9011  	return awsutil.Prettify(s)
  9012  }
  9013  
  9014  // GoString returns the string representation.
  9015  //
  9016  // API parameter values that are decorated as "sensitive" in the API will not
  9017  // be included in the string output. The member name will be present, but the
  9018  // value will be replaced with "sensitive".
  9019  func (s ProtocolDetails) GoString() string {
  9020  	return s.String()
  9021  }
  9022  
  9023  // SetPassiveIp sets the PassiveIp field's value.
  9024  func (s *ProtocolDetails) SetPassiveIp(v string) *ProtocolDetails {
  9025  	s.PassiveIp = &v
  9026  	return s
  9027  }
  9028  
  9029  // The requested resource does not exist.
  9030  type ResourceExistsException struct {
  9031  	_            struct{}                  `type:"structure"`
  9032  	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
  9033  
  9034  	Message_ *string `locationName:"Message" type:"string"`
  9035  
  9036  	// Resource is a required field
  9037  	Resource *string `type:"string" required:"true"`
  9038  
  9039  	// ResourceType is a required field
  9040  	ResourceType *string `type:"string" required:"true"`
  9041  }
  9042  
  9043  // String returns the string representation.
  9044  //
  9045  // API parameter values that are decorated as "sensitive" in the API will not
  9046  // be included in the string output. The member name will be present, but the
  9047  // value will be replaced with "sensitive".
  9048  func (s ResourceExistsException) String() string {
  9049  	return awsutil.Prettify(s)
  9050  }
  9051  
  9052  // GoString returns the string representation.
  9053  //
  9054  // API parameter values that are decorated as "sensitive" in the API will not
  9055  // be included in the string output. The member name will be present, but the
  9056  // value will be replaced with "sensitive".
  9057  func (s ResourceExistsException) GoString() string {
  9058  	return s.String()
  9059  }
  9060  
  9061  func newErrorResourceExistsException(v protocol.ResponseMetadata) error {
  9062  	return &ResourceExistsException{
  9063  		RespMetadata: v,
  9064  	}
  9065  }
  9066  
  9067  // Code returns the exception type name.
  9068  func (s *ResourceExistsException) Code() string {
  9069  	return "ResourceExistsException"
  9070  }
  9071  
  9072  // Message returns the exception's message.
  9073  func (s *ResourceExistsException) Message() string {
  9074  	if s.Message_ != nil {
  9075  		return *s.Message_
  9076  	}
  9077  	return ""
  9078  }
  9079  
  9080  // OrigErr always returns nil, satisfies awserr.Error interface.
  9081  func (s *ResourceExistsException) OrigErr() error {
  9082  	return nil
  9083  }
  9084  
  9085  func (s *ResourceExistsException) Error() string {
  9086  	return fmt.Sprintf("%s: %s\n%s", s.Code(), s.Message(), s.String())
  9087  }
  9088  
  9089  // Status code returns the HTTP status code for the request's response error.
  9090  func (s *ResourceExistsException) StatusCode() int {
  9091  	return s.RespMetadata.StatusCode
  9092  }
  9093  
  9094  // RequestID returns the service's response RequestID for request.
  9095  func (s *ResourceExistsException) RequestID() string {
  9096  	return s.RespMetadata.RequestID
  9097  }
  9098  
  9099  // This exception is thrown when a resource is not found by the Amazon Web ServicesTransfer
  9100  // Family service.
  9101  type ResourceNotFoundException struct {
  9102  	_            struct{}                  `type:"structure"`
  9103  	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
  9104  
  9105  	Message_ *string `locationName:"Message" type:"string"`
  9106  
  9107  	// Resource is a required field
  9108  	Resource *string `type:"string" required:"true"`
  9109  
  9110  	// ResourceType is a required field
  9111  	ResourceType *string `type:"string" required:"true"`
  9112  }
  9113  
  9114  // String returns the string representation.
  9115  //
  9116  // API parameter values that are decorated as "sensitive" in the API will not
  9117  // be included in the string output. The member name will be present, but the
  9118  // value will be replaced with "sensitive".
  9119  func (s ResourceNotFoundException) String() string {
  9120  	return awsutil.Prettify(s)
  9121  }
  9122  
  9123  // GoString returns the string representation.
  9124  //
  9125  // API parameter values that are decorated as "sensitive" in the API will not
  9126  // be included in the string output. The member name will be present, but the
  9127  // value will be replaced with "sensitive".
  9128  func (s ResourceNotFoundException) GoString() string {
  9129  	return s.String()
  9130  }
  9131  
  9132  func newErrorResourceNotFoundException(v protocol.ResponseMetadata) error {
  9133  	return &ResourceNotFoundException{
  9134  		RespMetadata: v,
  9135  	}
  9136  }
  9137  
  9138  // Code returns the exception type name.
  9139  func (s *ResourceNotFoundException) Code() string {
  9140  	return "ResourceNotFoundException"
  9141  }
  9142  
  9143  // Message returns the exception's message.
  9144  func (s *ResourceNotFoundException) Message() string {
  9145  	if s.Message_ != nil {
  9146  		return *s.Message_
  9147  	}
  9148  	return ""
  9149  }
  9150  
  9151  // OrigErr always returns nil, satisfies awserr.Error interface.
  9152  func (s *ResourceNotFoundException) OrigErr() error {
  9153  	return nil
  9154  }
  9155  
  9156  func (s *ResourceNotFoundException) Error() string {
  9157  	return fmt.Sprintf("%s: %s\n%s", s.Code(), s.Message(), s.String())
  9158  }
  9159  
  9160  // Status code returns the HTTP status code for the request's response error.
  9161  func (s *ResourceNotFoundException) StatusCode() int {
  9162  	return s.RespMetadata.StatusCode
  9163  }
  9164  
  9165  // RequestID returns the service's response RequestID for request.
  9166  func (s *ResourceNotFoundException) RequestID() string {
  9167  	return s.RespMetadata.RequestID
  9168  }
  9169  
  9170  // Specifies the details for the file location for the file being used in the
  9171  // workflow. Only applicable if you are using S3 storage.
  9172  type S3FileLocation struct {
  9173  	_ struct{} `type:"structure"`
  9174  
  9175  	// Specifies the S3 bucket that contains the file being used.
  9176  	Bucket *string `min:"3" type:"string"`
  9177  
  9178  	// The entity tag is a hash of the object. The ETag reflects changes only to
  9179  	// the contents of an object, not its metadata.
  9180  	Etag *string `min:"1" type:"string"`
  9181  
  9182  	// The name assigned to the file when it was created in S3. You use the object
  9183  	// key to retrieve the object.
  9184  	Key *string `type:"string"`
  9185  
  9186  	// Specifies the file version.
  9187  	VersionId *string `min:"1" type:"string"`
  9188  }
  9189  
  9190  // String returns the string representation.
  9191  //
  9192  // API parameter values that are decorated as "sensitive" in the API will not
  9193  // be included in the string output. The member name will be present, but the
  9194  // value will be replaced with "sensitive".
  9195  func (s S3FileLocation) String() string {
  9196  	return awsutil.Prettify(s)
  9197  }
  9198  
  9199  // GoString returns the string representation.
  9200  //
  9201  // API parameter values that are decorated as "sensitive" in the API will not
  9202  // be included in the string output. The member name will be present, but the
  9203  // value will be replaced with "sensitive".
  9204  func (s S3FileLocation) GoString() string {
  9205  	return s.String()
  9206  }
  9207  
  9208  // SetBucket sets the Bucket field's value.
  9209  func (s *S3FileLocation) SetBucket(v string) *S3FileLocation {
  9210  	s.Bucket = &v
  9211  	return s
  9212  }
  9213  
  9214  // SetEtag sets the Etag field's value.
  9215  func (s *S3FileLocation) SetEtag(v string) *S3FileLocation {
  9216  	s.Etag = &v
  9217  	return s
  9218  }
  9219  
  9220  // SetKey sets the Key field's value.
  9221  func (s *S3FileLocation) SetKey(v string) *S3FileLocation {
  9222  	s.Key = &v
  9223  	return s
  9224  }
  9225  
  9226  // SetVersionId sets the VersionId field's value.
  9227  func (s *S3FileLocation) SetVersionId(v string) *S3FileLocation {
  9228  	s.VersionId = &v
  9229  	return s
  9230  }
  9231  
  9232  // Specifies the customer input S3 file location. If it is used inside copyStepDetails.DestinationFileLocation,
  9233  // it should be the S3 copy destination.
  9234  //
  9235  // You need to provide the bucket and key. The key can represent either a path
  9236  // or a file. This is determined by whether or not you end the key value with
  9237  // the forward slash (/) character. If the final character is "/", then your
  9238  // file is copied to the folder, and its name does not change. If, rather, the
  9239  // final character is alphanumeric, your uploaded file is renamed to the path
  9240  // value. In this case, if a file with that name already exists, it is overwritten.
  9241  //
  9242  // For example, if your path is shared-files/bob/, your uploaded files are copied
  9243  // to the shared-files/bob/, folder. If your path is shared-files/today, each
  9244  // uploaded file is copied to the shared-files folder and named today: each
  9245  // upload overwrites the previous version of the bob file.
  9246  type S3InputFileLocation struct {
  9247  	_ struct{} `type:"structure"`
  9248  
  9249  	// Specifies the S3 bucket for the customer input file.
  9250  	Bucket *string `min:"3" type:"string"`
  9251  
  9252  	// The name assigned to the file when it was created in S3. You use the object
  9253  	// key to retrieve the object.
  9254  	Key *string `type:"string"`
  9255  }
  9256  
  9257  // String returns the string representation.
  9258  //
  9259  // API parameter values that are decorated as "sensitive" in the API will not
  9260  // be included in the string output. The member name will be present, but the
  9261  // value will be replaced with "sensitive".
  9262  func (s S3InputFileLocation) String() string {
  9263  	return awsutil.Prettify(s)
  9264  }
  9265  
  9266  // GoString returns the string representation.
  9267  //
  9268  // API parameter values that are decorated as "sensitive" in the API will not
  9269  // be included in the string output. The member name will be present, but the
  9270  // value will be replaced with "sensitive".
  9271  func (s S3InputFileLocation) GoString() string {
  9272  	return s.String()
  9273  }
  9274  
  9275  // Validate inspects the fields of the type to determine if they are valid.
  9276  func (s *S3InputFileLocation) Validate() error {
  9277  	invalidParams := request.ErrInvalidParams{Context: "S3InputFileLocation"}
  9278  	if s.Bucket != nil && len(*s.Bucket) < 3 {
  9279  		invalidParams.Add(request.NewErrParamMinLen("Bucket", 3))
  9280  	}
  9281  
  9282  	if invalidParams.Len() > 0 {
  9283  		return invalidParams
  9284  	}
  9285  	return nil
  9286  }
  9287  
  9288  // SetBucket sets the Bucket field's value.
  9289  func (s *S3InputFileLocation) SetBucket(v string) *S3InputFileLocation {
  9290  	s.Bucket = &v
  9291  	return s
  9292  }
  9293  
  9294  // SetKey sets the Key field's value.
  9295  func (s *S3InputFileLocation) SetKey(v string) *S3InputFileLocation {
  9296  	s.Key = &v
  9297  	return s
  9298  }
  9299  
  9300  // Specifies the key-value pair that are assigned to a file during the execution
  9301  // of a Tagging step.
  9302  type S3Tag struct {
  9303  	_ struct{} `type:"structure"`
  9304  
  9305  	// The name assigned to the tag that you create.
  9306  	//
  9307  	// Key is a required field
  9308  	Key *string `min:"1" type:"string" required:"true"`
  9309  
  9310  	// The value that corresponds to the key.
  9311  	//
  9312  	// Value is a required field
  9313  	Value *string `type:"string" required:"true"`
  9314  }
  9315  
  9316  // String returns the string representation.
  9317  //
  9318  // API parameter values that are decorated as "sensitive" in the API will not
  9319  // be included in the string output. The member name will be present, but the
  9320  // value will be replaced with "sensitive".
  9321  func (s S3Tag) String() string {
  9322  	return awsutil.Prettify(s)
  9323  }
  9324  
  9325  // GoString returns the string representation.
  9326  //
  9327  // API parameter values that are decorated as "sensitive" in the API will not
  9328  // be included in the string output. The member name will be present, but the
  9329  // value will be replaced with "sensitive".
  9330  func (s S3Tag) GoString() string {
  9331  	return s.String()
  9332  }
  9333  
  9334  // Validate inspects the fields of the type to determine if they are valid.
  9335  func (s *S3Tag) Validate() error {
  9336  	invalidParams := request.ErrInvalidParams{Context: "S3Tag"}
  9337  	if s.Key == nil {
  9338  		invalidParams.Add(request.NewErrParamRequired("Key"))
  9339  	}
  9340  	if s.Key != nil && len(*s.Key) < 1 {
  9341  		invalidParams.Add(request.NewErrParamMinLen("Key", 1))
  9342  	}
  9343  	if s.Value == nil {
  9344  		invalidParams.Add(request.NewErrParamRequired("Value"))
  9345  	}
  9346  
  9347  	if invalidParams.Len() > 0 {
  9348  		return invalidParams
  9349  	}
  9350  	return nil
  9351  }
  9352  
  9353  // SetKey sets the Key field's value.
  9354  func (s *S3Tag) SetKey(v string) *S3Tag {
  9355  	s.Key = &v
  9356  	return s
  9357  }
  9358  
  9359  // SetValue sets the Value field's value.
  9360  func (s *S3Tag) SetValue(v string) *S3Tag {
  9361  	s.Value = &v
  9362  	return s
  9363  }
  9364  
  9365  type SendWorkflowStepStateInput struct {
  9366  	_ struct{} `type:"structure"`
  9367  
  9368  	// A unique identifier for the execution of a workflow.
  9369  	//
  9370  	// ExecutionId is a required field
  9371  	ExecutionId *string `min:"36" type:"string" required:"true"`
  9372  
  9373  	// Indicates whether the specified step succeeded or failed.
  9374  	//
  9375  	// Status is a required field
  9376  	Status *string `type:"string" required:"true" enum:"CustomStepStatus"`
  9377  
  9378  	// Used to distinguish between multiple callbacks for multiple Lambda steps
  9379  	// within the same execution.
  9380  	//
  9381  	// Token is a required field
  9382  	Token *string `min:"1" type:"string" required:"true"`
  9383  
  9384  	// A unique identifier for the workflow.
  9385  	//
  9386  	// WorkflowId is a required field
  9387  	WorkflowId *string `min:"19" type:"string" required:"true"`
  9388  }
  9389  
  9390  // String returns the string representation.
  9391  //
  9392  // API parameter values that are decorated as "sensitive" in the API will not
  9393  // be included in the string output. The member name will be present, but the
  9394  // value will be replaced with "sensitive".
  9395  func (s SendWorkflowStepStateInput) String() string {
  9396  	return awsutil.Prettify(s)
  9397  }
  9398  
  9399  // GoString returns the string representation.
  9400  //
  9401  // API parameter values that are decorated as "sensitive" in the API will not
  9402  // be included in the string output. The member name will be present, but the
  9403  // value will be replaced with "sensitive".
  9404  func (s SendWorkflowStepStateInput) GoString() string {
  9405  	return s.String()
  9406  }
  9407  
  9408  // Validate inspects the fields of the type to determine if they are valid.
  9409  func (s *SendWorkflowStepStateInput) Validate() error {
  9410  	invalidParams := request.ErrInvalidParams{Context: "SendWorkflowStepStateInput"}
  9411  	if s.ExecutionId == nil {
  9412  		invalidParams.Add(request.NewErrParamRequired("ExecutionId"))
  9413  	}
  9414  	if s.ExecutionId != nil && len(*s.ExecutionId) < 36 {
  9415  		invalidParams.Add(request.NewErrParamMinLen("ExecutionId", 36))
  9416  	}
  9417  	if s.Status == nil {
  9418  		invalidParams.Add(request.NewErrParamRequired("Status"))
  9419  	}
  9420  	if s.Token == nil {
  9421  		invalidParams.Add(request.NewErrParamRequired("Token"))
  9422  	}
  9423  	if s.Token != nil && len(*s.Token) < 1 {
  9424  		invalidParams.Add(request.NewErrParamMinLen("Token", 1))
  9425  	}
  9426  	if s.WorkflowId == nil {
  9427  		invalidParams.Add(request.NewErrParamRequired("WorkflowId"))
  9428  	}
  9429  	if s.WorkflowId != nil && len(*s.WorkflowId) < 19 {
  9430  		invalidParams.Add(request.NewErrParamMinLen("WorkflowId", 19))
  9431  	}
  9432  
  9433  	if invalidParams.Len() > 0 {
  9434  		return invalidParams
  9435  	}
  9436  	return nil
  9437  }
  9438  
  9439  // SetExecutionId sets the ExecutionId field's value.
  9440  func (s *SendWorkflowStepStateInput) SetExecutionId(v string) *SendWorkflowStepStateInput {
  9441  	s.ExecutionId = &v
  9442  	return s
  9443  }
  9444  
  9445  // SetStatus sets the Status field's value.
  9446  func (s *SendWorkflowStepStateInput) SetStatus(v string) *SendWorkflowStepStateInput {
  9447  	s.Status = &v
  9448  	return s
  9449  }
  9450  
  9451  // SetToken sets the Token field's value.
  9452  func (s *SendWorkflowStepStateInput) SetToken(v string) *SendWorkflowStepStateInput {
  9453  	s.Token = &v
  9454  	return s
  9455  }
  9456  
  9457  // SetWorkflowId sets the WorkflowId field's value.
  9458  func (s *SendWorkflowStepStateInput) SetWorkflowId(v string) *SendWorkflowStepStateInput {
  9459  	s.WorkflowId = &v
  9460  	return s
  9461  }
  9462  
  9463  type SendWorkflowStepStateOutput struct {
  9464  	_ struct{} `type:"structure"`
  9465  }
  9466  
  9467  // String returns the string representation.
  9468  //
  9469  // API parameter values that are decorated as "sensitive" in the API will not
  9470  // be included in the string output. The member name will be present, but the
  9471  // value will be replaced with "sensitive".
  9472  func (s SendWorkflowStepStateOutput) String() string {
  9473  	return awsutil.Prettify(s)
  9474  }
  9475  
  9476  // GoString returns the string representation.
  9477  //
  9478  // API parameter values that are decorated as "sensitive" in the API will not
  9479  // be included in the string output. The member name will be present, but the
  9480  // value will be replaced with "sensitive".
  9481  func (s SendWorkflowStepStateOutput) GoString() string {
  9482  	return s.String()
  9483  }
  9484  
  9485  // A container object for the session details associated with a workflow.
  9486  type ServiceMetadata struct {
  9487  	_ struct{} `type:"structure"`
  9488  
  9489  	// The Server ID (ServerId), Session ID (SessionId) and user (UserName) make
  9490  	// up the UserDetails.
  9491  	//
  9492  	// UserDetails is a required field
  9493  	UserDetails *UserDetails `type:"structure" required:"true"`
  9494  }
  9495  
  9496  // String returns the string representation.
  9497  //
  9498  // API parameter values that are decorated as "sensitive" in the API will not
  9499  // be included in the string output. The member name will be present, but the
  9500  // value will be replaced with "sensitive".
  9501  func (s ServiceMetadata) String() string {
  9502  	return awsutil.Prettify(s)
  9503  }
  9504  
  9505  // GoString returns the string representation.
  9506  //
  9507  // API parameter values that are decorated as "sensitive" in the API will not
  9508  // be included in the string output. The member name will be present, but the
  9509  // value will be replaced with "sensitive".
  9510  func (s ServiceMetadata) GoString() string {
  9511  	return s.String()
  9512  }
  9513  
  9514  // SetUserDetails sets the UserDetails field's value.
  9515  func (s *ServiceMetadata) SetUserDetails(v *UserDetails) *ServiceMetadata {
  9516  	s.UserDetails = v
  9517  	return s
  9518  }
  9519  
  9520  // The request has failed because the Amazon Web ServicesTransfer Family service
  9521  // is not available.
  9522  type ServiceUnavailableException struct {
  9523  	_            struct{}                  `type:"structure"`
  9524  	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
  9525  
  9526  	Message_ *string `locationName:"Message" type:"string"`
  9527  }
  9528  
  9529  // String returns the string representation.
  9530  //
  9531  // API parameter values that are decorated as "sensitive" in the API will not
  9532  // be included in the string output. The member name will be present, but the
  9533  // value will be replaced with "sensitive".
  9534  func (s ServiceUnavailableException) String() string {
  9535  	return awsutil.Prettify(s)
  9536  }
  9537  
  9538  // GoString returns the string representation.
  9539  //
  9540  // API parameter values that are decorated as "sensitive" in the API will not
  9541  // be included in the string output. The member name will be present, but the
  9542  // value will be replaced with "sensitive".
  9543  func (s ServiceUnavailableException) GoString() string {
  9544  	return s.String()
  9545  }
  9546  
  9547  func newErrorServiceUnavailableException(v protocol.ResponseMetadata) error {
  9548  	return &ServiceUnavailableException{
  9549  		RespMetadata: v,
  9550  	}
  9551  }
  9552  
  9553  // Code returns the exception type name.
  9554  func (s *ServiceUnavailableException) Code() string {
  9555  	return "ServiceUnavailableException"
  9556  }
  9557  
  9558  // Message returns the exception's message.
  9559  func (s *ServiceUnavailableException) Message() string {
  9560  	if s.Message_ != nil {
  9561  		return *s.Message_
  9562  	}
  9563  	return ""
  9564  }
  9565  
  9566  // OrigErr always returns nil, satisfies awserr.Error interface.
  9567  func (s *ServiceUnavailableException) OrigErr() error {
  9568  	return nil
  9569  }
  9570  
  9571  func (s *ServiceUnavailableException) Error() string {
  9572  	return fmt.Sprintf("%s: %s", s.Code(), s.Message())
  9573  }
  9574  
  9575  // Status code returns the HTTP status code for the request's response error.
  9576  func (s *ServiceUnavailableException) StatusCode() int {
  9577  	return s.RespMetadata.StatusCode
  9578  }
  9579  
  9580  // RequestID returns the service's response RequestID for request.
  9581  func (s *ServiceUnavailableException) RequestID() string {
  9582  	return s.RespMetadata.RequestID
  9583  }
  9584  
  9585  // Provides information about the public Secure Shell (SSH) key that is associated
  9586  // with a user account for the specific file transfer protocol-enabled server
  9587  // (as identified by ServerId). The information returned includes the date the
  9588  // key was imported, the public key contents, and the public key ID. A user
  9589  // can store more than one SSH public key associated with their user name on
  9590  // a specific server.
  9591  type SshPublicKey struct {
  9592  	_ struct{} `type:"structure"`
  9593  
  9594  	// Specifies the date that the public key was added to the user account.
  9595  	//
  9596  	// DateImported is a required field
  9597  	DateImported *time.Time `type:"timestamp" required:"true"`
  9598  
  9599  	// Specifies the content of the SSH public key as specified by the PublicKeyId.
  9600  	//
  9601  	// SshPublicKeyBody is a required field
  9602  	SshPublicKeyBody *string `type:"string" required:"true"`
  9603  
  9604  	// Specifies the SshPublicKeyId parameter contains the identifier of the public
  9605  	// key.
  9606  	//
  9607  	// SshPublicKeyId is a required field
  9608  	SshPublicKeyId *string `min:"21" type:"string" required:"true"`
  9609  }
  9610  
  9611  // String returns the string representation.
  9612  //
  9613  // API parameter values that are decorated as "sensitive" in the API will not
  9614  // be included in the string output. The member name will be present, but the
  9615  // value will be replaced with "sensitive".
  9616  func (s SshPublicKey) String() string {
  9617  	return awsutil.Prettify(s)
  9618  }
  9619  
  9620  // GoString returns the string representation.
  9621  //
  9622  // API parameter values that are decorated as "sensitive" in the API will not
  9623  // be included in the string output. The member name will be present, but the
  9624  // value will be replaced with "sensitive".
  9625  func (s SshPublicKey) GoString() string {
  9626  	return s.String()
  9627  }
  9628  
  9629  // SetDateImported sets the DateImported field's value.
  9630  func (s *SshPublicKey) SetDateImported(v time.Time) *SshPublicKey {
  9631  	s.DateImported = &v
  9632  	return s
  9633  }
  9634  
  9635  // SetSshPublicKeyBody sets the SshPublicKeyBody field's value.
  9636  func (s *SshPublicKey) SetSshPublicKeyBody(v string) *SshPublicKey {
  9637  	s.SshPublicKeyBody = &v
  9638  	return s
  9639  }
  9640  
  9641  // SetSshPublicKeyId sets the SshPublicKeyId field's value.
  9642  func (s *SshPublicKey) SetSshPublicKeyId(v string) *SshPublicKey {
  9643  	s.SshPublicKeyId = &v
  9644  	return s
  9645  }
  9646  
  9647  type StartServerInput struct {
  9648  	_ struct{} `type:"structure"`
  9649  
  9650  	// A system-assigned unique identifier for a server that you start.
  9651  	//
  9652  	// ServerId is a required field
  9653  	ServerId *string `min:"19" type:"string" required:"true"`
  9654  }
  9655  
  9656  // String returns the string representation.
  9657  //
  9658  // API parameter values that are decorated as "sensitive" in the API will not
  9659  // be included in the string output. The member name will be present, but the
  9660  // value will be replaced with "sensitive".
  9661  func (s StartServerInput) String() string {
  9662  	return awsutil.Prettify(s)
  9663  }
  9664  
  9665  // GoString returns the string representation.
  9666  //
  9667  // API parameter values that are decorated as "sensitive" in the API will not
  9668  // be included in the string output. The member name will be present, but the
  9669  // value will be replaced with "sensitive".
  9670  func (s StartServerInput) GoString() string {
  9671  	return s.String()
  9672  }
  9673  
  9674  // Validate inspects the fields of the type to determine if they are valid.
  9675  func (s *StartServerInput) Validate() error {
  9676  	invalidParams := request.ErrInvalidParams{Context: "StartServerInput"}
  9677  	if s.ServerId == nil {
  9678  		invalidParams.Add(request.NewErrParamRequired("ServerId"))
  9679  	}
  9680  	if s.ServerId != nil && len(*s.ServerId) < 19 {
  9681  		invalidParams.Add(request.NewErrParamMinLen("ServerId", 19))
  9682  	}
  9683  
  9684  	if invalidParams.Len() > 0 {
  9685  		return invalidParams
  9686  	}
  9687  	return nil
  9688  }
  9689  
  9690  // SetServerId sets the ServerId field's value.
  9691  func (s *StartServerInput) SetServerId(v string) *StartServerInput {
  9692  	s.ServerId = &v
  9693  	return s
  9694  }
  9695  
  9696  type StartServerOutput struct {
  9697  	_ struct{} `type:"structure"`
  9698  }
  9699  
  9700  // String returns the string representation.
  9701  //
  9702  // API parameter values that are decorated as "sensitive" in the API will not
  9703  // be included in the string output. The member name will be present, but the
  9704  // value will be replaced with "sensitive".
  9705  func (s StartServerOutput) String() string {
  9706  	return awsutil.Prettify(s)
  9707  }
  9708  
  9709  // GoString returns the string representation.
  9710  //
  9711  // API parameter values that are decorated as "sensitive" in the API will not
  9712  // be included in the string output. The member name will be present, but the
  9713  // value will be replaced with "sensitive".
  9714  func (s StartServerOutput) GoString() string {
  9715  	return s.String()
  9716  }
  9717  
  9718  type StopServerInput struct {
  9719  	_ struct{} `type:"structure"`
  9720  
  9721  	// A system-assigned unique identifier for a server that you stopped.
  9722  	//
  9723  	// ServerId is a required field
  9724  	ServerId *string `min:"19" type:"string" required:"true"`
  9725  }
  9726  
  9727  // String returns the string representation.
  9728  //
  9729  // API parameter values that are decorated as "sensitive" in the API will not
  9730  // be included in the string output. The member name will be present, but the
  9731  // value will be replaced with "sensitive".
  9732  func (s StopServerInput) String() string {
  9733  	return awsutil.Prettify(s)
  9734  }
  9735  
  9736  // GoString returns the string representation.
  9737  //
  9738  // API parameter values that are decorated as "sensitive" in the API will not
  9739  // be included in the string output. The member name will be present, but the
  9740  // value will be replaced with "sensitive".
  9741  func (s StopServerInput) GoString() string {
  9742  	return s.String()
  9743  }
  9744  
  9745  // Validate inspects the fields of the type to determine if they are valid.
  9746  func (s *StopServerInput) Validate() error {
  9747  	invalidParams := request.ErrInvalidParams{Context: "StopServerInput"}
  9748  	if s.ServerId == nil {
  9749  		invalidParams.Add(request.NewErrParamRequired("ServerId"))
  9750  	}
  9751  	if s.ServerId != nil && len(*s.ServerId) < 19 {
  9752  		invalidParams.Add(request.NewErrParamMinLen("ServerId", 19))
  9753  	}
  9754  
  9755  	if invalidParams.Len() > 0 {
  9756  		return invalidParams
  9757  	}
  9758  	return nil
  9759  }
  9760  
  9761  // SetServerId sets the ServerId field's value.
  9762  func (s *StopServerInput) SetServerId(v string) *StopServerInput {
  9763  	s.ServerId = &v
  9764  	return s
  9765  }
  9766  
  9767  type StopServerOutput struct {
  9768  	_ struct{} `type:"structure"`
  9769  }
  9770  
  9771  // String returns the string representation.
  9772  //
  9773  // API parameter values that are decorated as "sensitive" in the API will not
  9774  // be included in the string output. The member name will be present, but the
  9775  // value will be replaced with "sensitive".
  9776  func (s StopServerOutput) String() string {
  9777  	return awsutil.Prettify(s)
  9778  }
  9779  
  9780  // GoString returns the string representation.
  9781  //
  9782  // API parameter values that are decorated as "sensitive" in the API will not
  9783  // be included in the string output. The member name will be present, but the
  9784  // value will be replaced with "sensitive".
  9785  func (s StopServerOutput) GoString() string {
  9786  	return s.String()
  9787  }
  9788  
  9789  // Creates a key-value pair for a specific resource. Tags are metadata that
  9790  // you can use to search for and group a resource for various purposes. You
  9791  // can apply tags to servers, users, and roles. A tag key can take more than
  9792  // one value. For example, to group servers for accounting purposes, you might
  9793  // create a tag called Group and assign the values Research and Accounting to
  9794  // that group.
  9795  type Tag struct {
  9796  	_ struct{} `type:"structure"`
  9797  
  9798  	// The name assigned to the tag that you create.
  9799  	//
  9800  	// Key is a required field
  9801  	Key *string `type:"string" required:"true"`
  9802  
  9803  	// Contains one or more values that you assigned to the key name you create.
  9804  	//
  9805  	// Value is a required field
  9806  	Value *string `type:"string" required:"true"`
  9807  }
  9808  
  9809  // String returns the string representation.
  9810  //
  9811  // API parameter values that are decorated as "sensitive" in the API will not
  9812  // be included in the string output. The member name will be present, but the
  9813  // value will be replaced with "sensitive".
  9814  func (s Tag) String() string {
  9815  	return awsutil.Prettify(s)
  9816  }
  9817  
  9818  // GoString returns the string representation.
  9819  //
  9820  // API parameter values that are decorated as "sensitive" in the API will not
  9821  // be included in the string output. The member name will be present, but the
  9822  // value will be replaced with "sensitive".
  9823  func (s Tag) GoString() string {
  9824  	return s.String()
  9825  }
  9826  
  9827  // Validate inspects the fields of the type to determine if they are valid.
  9828  func (s *Tag) Validate() error {
  9829  	invalidParams := request.ErrInvalidParams{Context: "Tag"}
  9830  	if s.Key == nil {
  9831  		invalidParams.Add(request.NewErrParamRequired("Key"))
  9832  	}
  9833  	if s.Value == nil {
  9834  		invalidParams.Add(request.NewErrParamRequired("Value"))
  9835  	}
  9836  
  9837  	if invalidParams.Len() > 0 {
  9838  		return invalidParams
  9839  	}
  9840  	return nil
  9841  }
  9842  
  9843  // SetKey sets the Key field's value.
  9844  func (s *Tag) SetKey(v string) *Tag {
  9845  	s.Key = &v
  9846  	return s
  9847  }
  9848  
  9849  // SetValue sets the Value field's value.
  9850  func (s *Tag) SetValue(v string) *Tag {
  9851  	s.Value = &v
  9852  	return s
  9853  }
  9854  
  9855  type TagResourceInput struct {
  9856  	_ struct{} `type:"structure"`
  9857  
  9858  	// An Amazon Resource Name (ARN) for a specific Amazon Web Services resource,
  9859  	// such as a server, user, or role.
  9860  	//
  9861  	// Arn is a required field
  9862  	Arn *string `min:"20" type:"string" required:"true"`
  9863  
  9864  	// Key-value pairs assigned to ARNs that you can use to group and search for
  9865  	// resources by type. You can attach this metadata to user accounts for any
  9866  	// purpose.
  9867  	//
  9868  	// Tags is a required field
  9869  	Tags []*Tag `min:"1" type:"list" required:"true"`
  9870  }
  9871  
  9872  // String returns the string representation.
  9873  //
  9874  // API parameter values that are decorated as "sensitive" in the API will not
  9875  // be included in the string output. The member name will be present, but the
  9876  // value will be replaced with "sensitive".
  9877  func (s TagResourceInput) String() string {
  9878  	return awsutil.Prettify(s)
  9879  }
  9880  
  9881  // GoString returns the string representation.
  9882  //
  9883  // API parameter values that are decorated as "sensitive" in the API will not
  9884  // be included in the string output. The member name will be present, but the
  9885  // value will be replaced with "sensitive".
  9886  func (s TagResourceInput) GoString() string {
  9887  	return s.String()
  9888  }
  9889  
  9890  // Validate inspects the fields of the type to determine if they are valid.
  9891  func (s *TagResourceInput) Validate() error {
  9892  	invalidParams := request.ErrInvalidParams{Context: "TagResourceInput"}
  9893  	if s.Arn == nil {
  9894  		invalidParams.Add(request.NewErrParamRequired("Arn"))
  9895  	}
  9896  	if s.Arn != nil && len(*s.Arn) < 20 {
  9897  		invalidParams.Add(request.NewErrParamMinLen("Arn", 20))
  9898  	}
  9899  	if s.Tags == nil {
  9900  		invalidParams.Add(request.NewErrParamRequired("Tags"))
  9901  	}
  9902  	if s.Tags != nil && len(s.Tags) < 1 {
  9903  		invalidParams.Add(request.NewErrParamMinLen("Tags", 1))
  9904  	}
  9905  	if s.Tags != nil {
  9906  		for i, v := range s.Tags {
  9907  			if v == nil {
  9908  				continue
  9909  			}
  9910  			if err := v.Validate(); err != nil {
  9911  				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Tags", i), err.(request.ErrInvalidParams))
  9912  			}
  9913  		}
  9914  	}
  9915  
  9916  	if invalidParams.Len() > 0 {
  9917  		return invalidParams
  9918  	}
  9919  	return nil
  9920  }
  9921  
  9922  // SetArn sets the Arn field's value.
  9923  func (s *TagResourceInput) SetArn(v string) *TagResourceInput {
  9924  	s.Arn = &v
  9925  	return s
  9926  }
  9927  
  9928  // SetTags sets the Tags field's value.
  9929  func (s *TagResourceInput) SetTags(v []*Tag) *TagResourceInput {
  9930  	s.Tags = v
  9931  	return s
  9932  }
  9933  
  9934  type TagResourceOutput struct {
  9935  	_ struct{} `type:"structure"`
  9936  }
  9937  
  9938  // String returns the string representation.
  9939  //
  9940  // API parameter values that are decorated as "sensitive" in the API will not
  9941  // be included in the string output. The member name will be present, but the
  9942  // value will be replaced with "sensitive".
  9943  func (s TagResourceOutput) String() string {
  9944  	return awsutil.Prettify(s)
  9945  }
  9946  
  9947  // GoString returns the string representation.
  9948  //
  9949  // API parameter values that are decorated as "sensitive" in the API will not
  9950  // be included in the string output. The member name will be present, but the
  9951  // value will be replaced with "sensitive".
  9952  func (s TagResourceOutput) GoString() string {
  9953  	return s.String()
  9954  }
  9955  
  9956  // Each step type has its own StepDetails structure.
  9957  //
  9958  // The key/value pairs used to tag a file during the execution of a workflow
  9959  // step.
  9960  type TagStepDetails struct {
  9961  	_ struct{} `type:"structure"`
  9962  
  9963  	// The name of the step, used as an identifier.
  9964  	Name *string `type:"string"`
  9965  
  9966  	// Array that contains from 1 to 10 key/value pairs.
  9967  	Tags []*S3Tag `min:"1" type:"list"`
  9968  }
  9969  
  9970  // String returns the string representation.
  9971  //
  9972  // API parameter values that are decorated as "sensitive" in the API will not
  9973  // be included in the string output. The member name will be present, but the
  9974  // value will be replaced with "sensitive".
  9975  func (s TagStepDetails) String() string {
  9976  	return awsutil.Prettify(s)
  9977  }
  9978  
  9979  // GoString returns the string representation.
  9980  //
  9981  // API parameter values that are decorated as "sensitive" in the API will not
  9982  // be included in the string output. The member name will be present, but the
  9983  // value will be replaced with "sensitive".
  9984  func (s TagStepDetails) GoString() string {
  9985  	return s.String()
  9986  }
  9987  
  9988  // Validate inspects the fields of the type to determine if they are valid.
  9989  func (s *TagStepDetails) Validate() error {
  9990  	invalidParams := request.ErrInvalidParams{Context: "TagStepDetails"}
  9991  	if s.Tags != nil && len(s.Tags) < 1 {
  9992  		invalidParams.Add(request.NewErrParamMinLen("Tags", 1))
  9993  	}
  9994  	if s.Tags != nil {
  9995  		for i, v := range s.Tags {
  9996  			if v == nil {
  9997  				continue
  9998  			}
  9999  			if err := v.Validate(); err != nil {
 10000  				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Tags", i), err.(request.ErrInvalidParams))
 10001  			}
 10002  		}
 10003  	}
 10004  
 10005  	if invalidParams.Len() > 0 {
 10006  		return invalidParams
 10007  	}
 10008  	return nil
 10009  }
 10010  
 10011  // SetName sets the Name field's value.
 10012  func (s *TagStepDetails) SetName(v string) *TagStepDetails {
 10013  	s.Name = &v
 10014  	return s
 10015  }
 10016  
 10017  // SetTags sets the Tags field's value.
 10018  func (s *TagStepDetails) SetTags(v []*S3Tag) *TagStepDetails {
 10019  	s.Tags = v
 10020  	return s
 10021  }
 10022  
 10023  type TestIdentityProviderInput struct {
 10024  	_ struct{} `type:"structure"`
 10025  
 10026  	// A system-assigned identifier for a specific server. That server's user authentication
 10027  	// method is tested with a user name and password.
 10028  	//
 10029  	// ServerId is a required field
 10030  	ServerId *string `min:"19" type:"string" required:"true"`
 10031  
 10032  	// The type of file transfer protocol to be tested.
 10033  	//
 10034  	// The available protocols are:
 10035  	//
 10036  	//    * Secure Shell (SSH) File Transfer Protocol (SFTP)
 10037  	//
 10038  	//    * File Transfer Protocol Secure (FTPS)
 10039  	//
 10040  	//    * File Transfer Protocol (FTP)
 10041  	ServerProtocol *string `type:"string" enum:"Protocol"`
 10042  
 10043  	// The source IP address of the user account to be tested.
 10044  	SourceIp *string `type:"string"`
 10045  
 10046  	// The name of the user account to be tested.
 10047  	//
 10048  	// UserName is a required field
 10049  	UserName *string `min:"3" type:"string" required:"true"`
 10050  
 10051  	// The password of the user account to be tested.
 10052  	//
 10053  	// UserPassword is a sensitive parameter and its value will be
 10054  	// replaced with "sensitive" in string returned by TestIdentityProviderInput's
 10055  	// String and GoString methods.
 10056  	UserPassword *string `type:"string" sensitive:"true"`
 10057  }
 10058  
 10059  // String returns the string representation.
 10060  //
 10061  // API parameter values that are decorated as "sensitive" in the API will not
 10062  // be included in the string output. The member name will be present, but the
 10063  // value will be replaced with "sensitive".
 10064  func (s TestIdentityProviderInput) String() string {
 10065  	return awsutil.Prettify(s)
 10066  }
 10067  
 10068  // GoString returns the string representation.
 10069  //
 10070  // API parameter values that are decorated as "sensitive" in the API will not
 10071  // be included in the string output. The member name will be present, but the
 10072  // value will be replaced with "sensitive".
 10073  func (s TestIdentityProviderInput) GoString() string {
 10074  	return s.String()
 10075  }
 10076  
 10077  // Validate inspects the fields of the type to determine if they are valid.
 10078  func (s *TestIdentityProviderInput) Validate() error {
 10079  	invalidParams := request.ErrInvalidParams{Context: "TestIdentityProviderInput"}
 10080  	if s.ServerId == nil {
 10081  		invalidParams.Add(request.NewErrParamRequired("ServerId"))
 10082  	}
 10083  	if s.ServerId != nil && len(*s.ServerId) < 19 {
 10084  		invalidParams.Add(request.NewErrParamMinLen("ServerId", 19))
 10085  	}
 10086  	if s.UserName == nil {
 10087  		invalidParams.Add(request.NewErrParamRequired("UserName"))
 10088  	}
 10089  	if s.UserName != nil && len(*s.UserName) < 3 {
 10090  		invalidParams.Add(request.NewErrParamMinLen("UserName", 3))
 10091  	}
 10092  
 10093  	if invalidParams.Len() > 0 {
 10094  		return invalidParams
 10095  	}
 10096  	return nil
 10097  }
 10098  
 10099  // SetServerId sets the ServerId field's value.
 10100  func (s *TestIdentityProviderInput) SetServerId(v string) *TestIdentityProviderInput {
 10101  	s.ServerId = &v
 10102  	return s
 10103  }
 10104  
 10105  // SetServerProtocol sets the ServerProtocol field's value.
 10106  func (s *TestIdentityProviderInput) SetServerProtocol(v string) *TestIdentityProviderInput {
 10107  	s.ServerProtocol = &v
 10108  	return s
 10109  }
 10110  
 10111  // SetSourceIp sets the SourceIp field's value.
 10112  func (s *TestIdentityProviderInput) SetSourceIp(v string) *TestIdentityProviderInput {
 10113  	s.SourceIp = &v
 10114  	return s
 10115  }
 10116  
 10117  // SetUserName sets the UserName field's value.
 10118  func (s *TestIdentityProviderInput) SetUserName(v string) *TestIdentityProviderInput {
 10119  	s.UserName = &v
 10120  	return s
 10121  }
 10122  
 10123  // SetUserPassword sets the UserPassword field's value.
 10124  func (s *TestIdentityProviderInput) SetUserPassword(v string) *TestIdentityProviderInput {
 10125  	s.UserPassword = &v
 10126  	return s
 10127  }
 10128  
 10129  type TestIdentityProviderOutput struct {
 10130  	_ struct{} `type:"structure"`
 10131  
 10132  	// A message that indicates whether the test was successful or not.
 10133  	Message *string `type:"string"`
 10134  
 10135  	// The response that is returned from your API Gateway.
 10136  	Response *string `type:"string"`
 10137  
 10138  	// The HTTP status code that is the response from your API Gateway.
 10139  	//
 10140  	// StatusCode is a required field
 10141  	StatusCode *int64 `type:"integer" required:"true"`
 10142  
 10143  	// The endpoint of the service used to authenticate a user.
 10144  	//
 10145  	// Url is a required field
 10146  	Url *string `type:"string" required:"true"`
 10147  }
 10148  
 10149  // String returns the string representation.
 10150  //
 10151  // API parameter values that are decorated as "sensitive" in the API will not
 10152  // be included in the string output. The member name will be present, but the
 10153  // value will be replaced with "sensitive".
 10154  func (s TestIdentityProviderOutput) String() string {
 10155  	return awsutil.Prettify(s)
 10156  }
 10157  
 10158  // GoString returns the string representation.
 10159  //
 10160  // API parameter values that are decorated as "sensitive" in the API will not
 10161  // be included in the string output. The member name will be present, but the
 10162  // value will be replaced with "sensitive".
 10163  func (s TestIdentityProviderOutput) GoString() string {
 10164  	return s.String()
 10165  }
 10166  
 10167  // SetMessage sets the Message field's value.
 10168  func (s *TestIdentityProviderOutput) SetMessage(v string) *TestIdentityProviderOutput {
 10169  	s.Message = &v
 10170  	return s
 10171  }
 10172  
 10173  // SetResponse sets the Response field's value.
 10174  func (s *TestIdentityProviderOutput) SetResponse(v string) *TestIdentityProviderOutput {
 10175  	s.Response = &v
 10176  	return s
 10177  }
 10178  
 10179  // SetStatusCode sets the StatusCode field's value.
 10180  func (s *TestIdentityProviderOutput) SetStatusCode(v int64) *TestIdentityProviderOutput {
 10181  	s.StatusCode = &v
 10182  	return s
 10183  }
 10184  
 10185  // SetUrl sets the Url field's value.
 10186  func (s *TestIdentityProviderOutput) SetUrl(v string) *TestIdentityProviderOutput {
 10187  	s.Url = &v
 10188  	return s
 10189  }
 10190  
 10191  // The request was denied due to request throttling.
 10192  //
 10193  // HTTP Status Code: 400
 10194  type ThrottlingException struct {
 10195  	_            struct{}                  `type:"structure"`
 10196  	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
 10197  
 10198  	Message_ *string `locationName:"message" type:"string"`
 10199  
 10200  	RetryAfterSeconds *string `type:"string"`
 10201  }
 10202  
 10203  // String returns the string representation.
 10204  //
 10205  // API parameter values that are decorated as "sensitive" in the API will not
 10206  // be included in the string output. The member name will be present, but the
 10207  // value will be replaced with "sensitive".
 10208  func (s ThrottlingException) String() string {
 10209  	return awsutil.Prettify(s)
 10210  }
 10211  
 10212  // GoString returns the string representation.
 10213  //
 10214  // API parameter values that are decorated as "sensitive" in the API will not
 10215  // be included in the string output. The member name will be present, but the
 10216  // value will be replaced with "sensitive".
 10217  func (s ThrottlingException) GoString() string {
 10218  	return s.String()
 10219  }
 10220  
 10221  func newErrorThrottlingException(v protocol.ResponseMetadata) error {
 10222  	return &ThrottlingException{
 10223  		RespMetadata: v,
 10224  	}
 10225  }
 10226  
 10227  // Code returns the exception type name.
 10228  func (s *ThrottlingException) Code() string {
 10229  	return "ThrottlingException"
 10230  }
 10231  
 10232  // Message returns the exception's message.
 10233  func (s *ThrottlingException) Message() string {
 10234  	if s.Message_ != nil {
 10235  		return *s.Message_
 10236  	}
 10237  	return ""
 10238  }
 10239  
 10240  // OrigErr always returns nil, satisfies awserr.Error interface.
 10241  func (s *ThrottlingException) OrigErr() error {
 10242  	return nil
 10243  }
 10244  
 10245  func (s *ThrottlingException) Error() string {
 10246  	return fmt.Sprintf("%s: %s\n%s", s.Code(), s.Message(), s.String())
 10247  }
 10248  
 10249  // Status code returns the HTTP status code for the request's response error.
 10250  func (s *ThrottlingException) StatusCode() int {
 10251  	return s.RespMetadata.StatusCode
 10252  }
 10253  
 10254  // RequestID returns the service's response RequestID for request.
 10255  func (s *ThrottlingException) RequestID() string {
 10256  	return s.RespMetadata.RequestID
 10257  }
 10258  
 10259  type UntagResourceInput struct {
 10260  	_ struct{} `type:"structure"`
 10261  
 10262  	// The value of the resource that will have the tag removed. An Amazon Resource
 10263  	// Name (ARN) is an identifier for a specific Amazon Web Services resource,
 10264  	// such as a server, user, or role.
 10265  	//
 10266  	// Arn is a required field
 10267  	Arn *string `min:"20" type:"string" required:"true"`
 10268  
 10269  	// TagKeys are key-value pairs assigned to ARNs that can be used to group and
 10270  	// search for resources by type. This metadata can be attached to resources
 10271  	// for any purpose.
 10272  	//
 10273  	// TagKeys is a required field
 10274  	TagKeys []*string `min:"1" type:"list" required:"true"`
 10275  }
 10276  
 10277  // String returns the string representation.
 10278  //
 10279  // API parameter values that are decorated as "sensitive" in the API will not
 10280  // be included in the string output. The member name will be present, but the
 10281  // value will be replaced with "sensitive".
 10282  func (s UntagResourceInput) String() string {
 10283  	return awsutil.Prettify(s)
 10284  }
 10285  
 10286  // GoString returns the string representation.
 10287  //
 10288  // API parameter values that are decorated as "sensitive" in the API will not
 10289  // be included in the string output. The member name will be present, but the
 10290  // value will be replaced with "sensitive".
 10291  func (s UntagResourceInput) GoString() string {
 10292  	return s.String()
 10293  }
 10294  
 10295  // Validate inspects the fields of the type to determine if they are valid.
 10296  func (s *UntagResourceInput) Validate() error {
 10297  	invalidParams := request.ErrInvalidParams{Context: "UntagResourceInput"}
 10298  	if s.Arn == nil {
 10299  		invalidParams.Add(request.NewErrParamRequired("Arn"))
 10300  	}
 10301  	if s.Arn != nil && len(*s.Arn) < 20 {
 10302  		invalidParams.Add(request.NewErrParamMinLen("Arn", 20))
 10303  	}
 10304  	if s.TagKeys == nil {
 10305  		invalidParams.Add(request.NewErrParamRequired("TagKeys"))
 10306  	}
 10307  	if s.TagKeys != nil && len(s.TagKeys) < 1 {
 10308  		invalidParams.Add(request.NewErrParamMinLen("TagKeys", 1))
 10309  	}
 10310  
 10311  	if invalidParams.Len() > 0 {
 10312  		return invalidParams
 10313  	}
 10314  	return nil
 10315  }
 10316  
 10317  // SetArn sets the Arn field's value.
 10318  func (s *UntagResourceInput) SetArn(v string) *UntagResourceInput {
 10319  	s.Arn = &v
 10320  	return s
 10321  }
 10322  
 10323  // SetTagKeys sets the TagKeys field's value.
 10324  func (s *UntagResourceInput) SetTagKeys(v []*string) *UntagResourceInput {
 10325  	s.TagKeys = v
 10326  	return s
 10327  }
 10328  
 10329  type UntagResourceOutput struct {
 10330  	_ struct{} `type:"structure"`
 10331  }
 10332  
 10333  // String returns the string representation.
 10334  //
 10335  // API parameter values that are decorated as "sensitive" in the API will not
 10336  // be included in the string output. The member name will be present, but the
 10337  // value will be replaced with "sensitive".
 10338  func (s UntagResourceOutput) String() string {
 10339  	return awsutil.Prettify(s)
 10340  }
 10341  
 10342  // GoString returns the string representation.
 10343  //
 10344  // API parameter values that are decorated as "sensitive" in the API will not
 10345  // be included in the string output. The member name will be present, but the
 10346  // value will be replaced with "sensitive".
 10347  func (s UntagResourceOutput) GoString() string {
 10348  	return s.String()
 10349  }
 10350  
 10351  type UpdateAccessInput struct {
 10352  	_ struct{} `type:"structure"`
 10353  
 10354  	// A unique identifier that is required to identify specific groups within your
 10355  	// directory. The users of the group that you associate have access to your
 10356  	// Amazon S3 or Amazon EFS resources over the enabled protocols using Amazon
 10357  	// Web Services Transfer Family. If you know the group name, you can view the
 10358  	// SID values by running the following command using Windows PowerShell.
 10359  	//
 10360  	// Get-ADGroup -Filter {samAccountName -like "YourGroupName*"} -Properties *
 10361  	// | Select SamAccountName,ObjectSid
 10362  	//
 10363  	// In that command, replace YourGroupName with the name of your Active Directory
 10364  	// group.
 10365  	//
 10366  	// The regex used to validate this parameter is a string of characters consisting
 10367  	// of uppercase and lowercase alphanumeric characters with no spaces. You can
 10368  	// also include underscores or any of the following characters: =,.@:/-
 10369  	//
 10370  	// ExternalId is a required field
 10371  	ExternalId *string `min:"1" type:"string" required:"true"`
 10372  
 10373  	// The landing directory (folder) for a user when they log in to the server
 10374  	// using the client.
 10375  	//
 10376  	// A HomeDirectory example is /bucket_name/home/mydirectory.
 10377  	HomeDirectory *string `type:"string"`
 10378  
 10379  	// Logical directory mappings that specify what Amazon S3 or Amazon EFS paths
 10380  	// and keys should be visible to your user and how you want to make them visible.
 10381  	// You must specify the Entry and Target pair, where Entry shows how the path
 10382  	// is made visible and Target is the actual Amazon S3 or Amazon EFS path. If
 10383  	// you only specify a target, it is displayed as is. You also must ensure that
 10384  	// your Amazon Web Services Identity and Access Management (IAM) role provides
 10385  	// access to paths in Target. This value can only be set when HomeDirectoryType
 10386  	// is set to LOGICAL.
 10387  	//
 10388  	// The following is an Entry and Target pair example.
 10389  	//
 10390  	// [ { "Entry": "/directory1", "Target": "/bucket_name/home/mydirectory" } ]
 10391  	//
 10392  	// In most cases, you can use this value instead of the session policy to lock
 10393  	// down your user to the designated home directory ("chroot"). To do this, you
 10394  	// can set Entry to / and set Target to the HomeDirectory parameter value.
 10395  	//
 10396  	// The following is an Entry and Target pair example for chroot.
 10397  	//
 10398  	// [ { "Entry:": "/", "Target": "/bucket_name/home/mydirectory" } ]
 10399  	//
 10400  	// If the target of a logical directory entry does not exist in Amazon S3 or
 10401  	// EFS, the entry is ignored. As a workaround, you can use the Amazon S3 API
 10402  	// or EFS API to create 0 byte objects as place holders for your directory.
 10403  	// If using the CLI, use the s3api or efsapi call instead of s3 or efs so you
 10404  	// can use the put-object operation. For example, you use the following: aws
 10405  	// s3api put-object --bucket bucketname --key path/to/folder/. Make sure that
 10406  	// the end of the key name ends in a / for it to be considered a folder.
 10407  	HomeDirectoryMappings []*HomeDirectoryMapEntry `min:"1" type:"list"`
 10408  
 10409  	// The type of landing directory (folder) you want your users' home directory
 10410  	// to be when they log into the server. If you set it to PATH, the user will
 10411  	// see the absolute Amazon S3 bucket or EFS paths as is in their file transfer
 10412  	// protocol clients. If you set it LOGICAL, you need to provide mappings in
 10413  	// the HomeDirectoryMappings for how you want to make Amazon S3 or EFS paths
 10414  	// visible to your users.
 10415  	HomeDirectoryType *string `type:"string" enum:"HomeDirectoryType"`
 10416  
 10417  	// A session policy for your user so that you can use the same IAM role across
 10418  	// multiple users. This policy scopes down user access to portions of their
 10419  	// Amazon S3 bucket. Variables that you can use inside this policy include ${Transfer:UserName},
 10420  	// ${Transfer:HomeDirectory}, and ${Transfer:HomeBucket}.
 10421  	//
 10422  	// This only applies when the domain of ServerId is S3. EFS does not use session
 10423  	// policies.
 10424  	//
 10425  	// For session policies, Amazon Web Services Transfer Family stores the policy
 10426  	// as a JSON blob, instead of the Amazon Resource Name (ARN) of the policy.
 10427  	// You save the policy as a JSON blob and pass it in the Policy argument.
 10428  	//
 10429  	// For an example of a session policy, see Example session policy (https://docs.aws.amazon.com/transfer/latest/userguide/session-policy.html).
 10430  	//
 10431  	// For more information, see AssumeRole (https://docs.aws.amazon.com/STS/latest/APIReference/API_AssumeRole.html)
 10432  	// in the Amazon Web ServicesSecurity Token Service API Reference.
 10433  	Policy *string `type:"string"`
 10434  
 10435  	// The full POSIX identity, including user ID (Uid), group ID (Gid), and any
 10436  	// secondary groups IDs (SecondaryGids), that controls your users' access to
 10437  	// your Amazon EFS file systems. The POSIX permissions that are set on files
 10438  	// and directories in your file system determine the level of access your users
 10439  	// get when transferring files into and out of your Amazon EFS file systems.
 10440  	PosixProfile *PosixProfile `type:"structure"`
 10441  
 10442  	// Specifies the Amazon Resource Name (ARN) of the IAM role that controls your
 10443  	// users' access to your Amazon S3 bucket or EFS file system. The policies attached
 10444  	// to this role determine the level of access that you want to provide your
 10445  	// users when transferring files into and out of your Amazon S3 bucket or EFS
 10446  	// file system. The IAM role should also contain a trust relationship that allows
 10447  	// the server to access your resources when servicing your users' transfer requests.
 10448  	Role *string `min:"20" type:"string"`
 10449  
 10450  	// A system-assigned unique identifier for a server instance. This is the specific
 10451  	// server that you added your user to.
 10452  	//
 10453  	// ServerId is a required field
 10454  	ServerId *string `min:"19" type:"string" required:"true"`
 10455  }
 10456  
 10457  // String returns the string representation.
 10458  //
 10459  // API parameter values that are decorated as "sensitive" in the API will not
 10460  // be included in the string output. The member name will be present, but the
 10461  // value will be replaced with "sensitive".
 10462  func (s UpdateAccessInput) String() string {
 10463  	return awsutil.Prettify(s)
 10464  }
 10465  
 10466  // GoString returns the string representation.
 10467  //
 10468  // API parameter values that are decorated as "sensitive" in the API will not
 10469  // be included in the string output. The member name will be present, but the
 10470  // value will be replaced with "sensitive".
 10471  func (s UpdateAccessInput) GoString() string {
 10472  	return s.String()
 10473  }
 10474  
 10475  // Validate inspects the fields of the type to determine if they are valid.
 10476  func (s *UpdateAccessInput) Validate() error {
 10477  	invalidParams := request.ErrInvalidParams{Context: "UpdateAccessInput"}
 10478  	if s.ExternalId == nil {
 10479  		invalidParams.Add(request.NewErrParamRequired("ExternalId"))
 10480  	}
 10481  	if s.ExternalId != nil && len(*s.ExternalId) < 1 {
 10482  		invalidParams.Add(request.NewErrParamMinLen("ExternalId", 1))
 10483  	}
 10484  	if s.HomeDirectoryMappings != nil && len(s.HomeDirectoryMappings) < 1 {
 10485  		invalidParams.Add(request.NewErrParamMinLen("HomeDirectoryMappings", 1))
 10486  	}
 10487  	if s.Role != nil && len(*s.Role) < 20 {
 10488  		invalidParams.Add(request.NewErrParamMinLen("Role", 20))
 10489  	}
 10490  	if s.ServerId == nil {
 10491  		invalidParams.Add(request.NewErrParamRequired("ServerId"))
 10492  	}
 10493  	if s.ServerId != nil && len(*s.ServerId) < 19 {
 10494  		invalidParams.Add(request.NewErrParamMinLen("ServerId", 19))
 10495  	}
 10496  	if s.HomeDirectoryMappings != nil {
 10497  		for i, v := range s.HomeDirectoryMappings {
 10498  			if v == nil {
 10499  				continue
 10500  			}
 10501  			if err := v.Validate(); err != nil {
 10502  				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "HomeDirectoryMappings", i), err.(request.ErrInvalidParams))
 10503  			}
 10504  		}
 10505  	}
 10506  	if s.PosixProfile != nil {
 10507  		if err := s.PosixProfile.Validate(); err != nil {
 10508  			invalidParams.AddNested("PosixProfile", err.(request.ErrInvalidParams))
 10509  		}
 10510  	}
 10511  
 10512  	if invalidParams.Len() > 0 {
 10513  		return invalidParams
 10514  	}
 10515  	return nil
 10516  }
 10517  
 10518  // SetExternalId sets the ExternalId field's value.
 10519  func (s *UpdateAccessInput) SetExternalId(v string) *UpdateAccessInput {
 10520  	s.ExternalId = &v
 10521  	return s
 10522  }
 10523  
 10524  // SetHomeDirectory sets the HomeDirectory field's value.
 10525  func (s *UpdateAccessInput) SetHomeDirectory(v string) *UpdateAccessInput {
 10526  	s.HomeDirectory = &v
 10527  	return s
 10528  }
 10529  
 10530  // SetHomeDirectoryMappings sets the HomeDirectoryMappings field's value.
 10531  func (s *UpdateAccessInput) SetHomeDirectoryMappings(v []*HomeDirectoryMapEntry) *UpdateAccessInput {
 10532  	s.HomeDirectoryMappings = v
 10533  	return s
 10534  }
 10535  
 10536  // SetHomeDirectoryType sets the HomeDirectoryType field's value.
 10537  func (s *UpdateAccessInput) SetHomeDirectoryType(v string) *UpdateAccessInput {
 10538  	s.HomeDirectoryType = &v
 10539  	return s
 10540  }
 10541  
 10542  // SetPolicy sets the Policy field's value.
 10543  func (s *UpdateAccessInput) SetPolicy(v string) *UpdateAccessInput {
 10544  	s.Policy = &v
 10545  	return s
 10546  }
 10547  
 10548  // SetPosixProfile sets the PosixProfile field's value.
 10549  func (s *UpdateAccessInput) SetPosixProfile(v *PosixProfile) *UpdateAccessInput {
 10550  	s.PosixProfile = v
 10551  	return s
 10552  }
 10553  
 10554  // SetRole sets the Role field's value.
 10555  func (s *UpdateAccessInput) SetRole(v string) *UpdateAccessInput {
 10556  	s.Role = &v
 10557  	return s
 10558  }
 10559  
 10560  // SetServerId sets the ServerId field's value.
 10561  func (s *UpdateAccessInput) SetServerId(v string) *UpdateAccessInput {
 10562  	s.ServerId = &v
 10563  	return s
 10564  }
 10565  
 10566  type UpdateAccessOutput struct {
 10567  	_ struct{} `type:"structure"`
 10568  
 10569  	// The external ID of the group whose users have access to your Amazon S3 or
 10570  	// Amazon EFS resources over the enabled protocols using Amazon Web ServicesTransfer
 10571  	// Family.
 10572  	//
 10573  	// ExternalId is a required field
 10574  	ExternalId *string `min:"1" type:"string" required:"true"`
 10575  
 10576  	// The ID of the server that the user is attached to.
 10577  	//
 10578  	// ServerId is a required field
 10579  	ServerId *string `min:"19" type:"string" required:"true"`
 10580  }
 10581  
 10582  // String returns the string representation.
 10583  //
 10584  // API parameter values that are decorated as "sensitive" in the API will not
 10585  // be included in the string output. The member name will be present, but the
 10586  // value will be replaced with "sensitive".
 10587  func (s UpdateAccessOutput) String() string {
 10588  	return awsutil.Prettify(s)
 10589  }
 10590  
 10591  // GoString returns the string representation.
 10592  //
 10593  // API parameter values that are decorated as "sensitive" in the API will not
 10594  // be included in the string output. The member name will be present, but the
 10595  // value will be replaced with "sensitive".
 10596  func (s UpdateAccessOutput) GoString() string {
 10597  	return s.String()
 10598  }
 10599  
 10600  // SetExternalId sets the ExternalId field's value.
 10601  func (s *UpdateAccessOutput) SetExternalId(v string) *UpdateAccessOutput {
 10602  	s.ExternalId = &v
 10603  	return s
 10604  }
 10605  
 10606  // SetServerId sets the ServerId field's value.
 10607  func (s *UpdateAccessOutput) SetServerId(v string) *UpdateAccessOutput {
 10608  	s.ServerId = &v
 10609  	return s
 10610  }
 10611  
 10612  type UpdateServerInput struct {
 10613  	_ struct{} `type:"structure"`
 10614  
 10615  	// The Amazon Resource Name (ARN) of the Amazon Web ServicesCertificate Manager
 10616  	// (ACM) certificate. Required when Protocols is set to FTPS.
 10617  	//
 10618  	// To request a new public certificate, see Request a public certificate (https://docs.aws.amazon.com/acm/latest/userguide/gs-acm-request-public.html)
 10619  	// in the Amazon Web ServicesCertificate Manager User Guide.
 10620  	//
 10621  	// To import an existing certificate into ACM, see Importing certificates into
 10622  	// ACM (https://docs.aws.amazon.com/acm/latest/userguide/import-certificate.html)
 10623  	// in the Amazon Web ServicesCertificate Manager User Guide.
 10624  	//
 10625  	// To request a private certificate to use FTPS through private IP addresses,
 10626  	// see Request a private certificate (https://docs.aws.amazon.com/acm/latest/userguide/gs-acm-request-private.html)
 10627  	// in the Amazon Web ServicesCertificate Manager User Guide.
 10628  	//
 10629  	// Certificates with the following cryptographic algorithms and key sizes are
 10630  	// supported:
 10631  	//
 10632  	//    * 2048-bit RSA (RSA_2048)
 10633  	//
 10634  	//    * 4096-bit RSA (RSA_4096)
 10635  	//
 10636  	//    * Elliptic Prime Curve 256 bit (EC_prime256v1)
 10637  	//
 10638  	//    * Elliptic Prime Curve 384 bit (EC_secp384r1)
 10639  	//
 10640  	//    * Elliptic Prime Curve 521 bit (EC_secp521r1)
 10641  	//
 10642  	// The certificate must be a valid SSL/TLS X.509 version 3 certificate with
 10643  	// FQDN or IP address specified and information about the issuer.
 10644  	Certificate *string `type:"string"`
 10645  
 10646  	// The virtual private cloud (VPC) endpoint settings that are configured for
 10647  	// your server. When you host your endpoint within your VPC, you can make it
 10648  	// accessible only to resources within your VPC, or you can attach Elastic IP
 10649  	// addresses and make it accessible to clients over the internet. Your VPC's
 10650  	// default security groups are automatically assigned to your endpoint.
 10651  	EndpointDetails *EndpointDetails `type:"structure"`
 10652  
 10653  	// The type of endpoint that you want your server to use. You can choose to
 10654  	// make your server's endpoint publicly accessible (PUBLIC) or host it inside
 10655  	// your VPC. With an endpoint that is hosted in a VPC, you can restrict access
 10656  	// to your server and resources only within your VPC or choose to make it internet
 10657  	// facing by attaching Elastic IP addresses directly to it.
 10658  	//
 10659  	// After May 19, 2021, you won't be able to create a server using EndpointType=VPC_ENDPOINT
 10660  	// in your Amazon Web Servicesaccount if your account hasn't already done so
 10661  	// before May 19, 2021. If you have already created servers with EndpointType=VPC_ENDPOINT
 10662  	// in your Amazon Web Servicesaccount on or before May 19, 2021, you will not
 10663  	// be affected. After this date, use EndpointType=VPC.
 10664  	//
 10665  	// For more information, see https://docs.aws.amazon.com/transfer/latest/userguide/create-server-in-vpc.html#deprecate-vpc-endpoint.
 10666  	//
 10667  	// It is recommended that you use VPC as the EndpointType. With this endpoint
 10668  	// type, you have the option to directly associate up to three Elastic IPv4
 10669  	// addresses (BYO IP included) with your server's endpoint and use VPC security
 10670  	// groups to restrict traffic by the client's public IP address. This is not
 10671  	// possible with EndpointType set to VPC_ENDPOINT.
 10672  	EndpointType *string `type:"string" enum:"EndpointType"`
 10673  
 10674  	// The RSA private key as generated by ssh-keygen -N "" -m PEM -f my-new-server-key.
 10675  	//
 10676  	// If you aren't planning to migrate existing users from an existing server
 10677  	// to a new server, don't update the host key. Accidentally changing a server's
 10678  	// host key can be disruptive.
 10679  	//
 10680  	// For more information, see Change the host key for your SFTP-enabled server
 10681  	// (https://docs.aws.amazon.com/transfer/latest/userguide/edit-server-config.html#configuring-servers-change-host-key)
 10682  	// in the Amazon Web ServicesTransfer Family User Guide.
 10683  	//
 10684  	// HostKey is a sensitive parameter and its value will be
 10685  	// replaced with "sensitive" in string returned by UpdateServerInput's
 10686  	// String and GoString methods.
 10687  	HostKey *string `type:"string" sensitive:"true"`
 10688  
 10689  	// An array containing all of the information required to call a customer's
 10690  	// authentication API method.
 10691  	IdentityProviderDetails *IdentityProviderDetails `type:"structure"`
 10692  
 10693  	// Specifies the Amazon Resource Name (ARN) of the Amazon Web Services Identity
 10694  	// and Access Management (IAM) role that allows a server to turn on Amazon CloudWatch
 10695  	// logging for Amazon S3 or Amazon EFS events. When set, user activity can be
 10696  	// viewed in your CloudWatch logs.
 10697  	LoggingRole *string `type:"string"`
 10698  
 10699  	// The protocol settings that are configured for your server.
 10700  	//
 10701  	// Use the PassiveIp parameter to indicate passive mode (for FTP and FTPS protocols).
 10702  	// Enter a single dotted-quad IPv4 address, such as the external IP address
 10703  	// of a firewall, router, or load balancer.
 10704  	ProtocolDetails *ProtocolDetails `type:"structure"`
 10705  
 10706  	// Specifies the file transfer protocol or protocols over which your file transfer
 10707  	// protocol client can connect to your server's endpoint. The available protocols
 10708  	// are:
 10709  	//
 10710  	//    * Secure Shell (SSH) File Transfer Protocol (SFTP): File transfer over
 10711  	//    SSH
 10712  	//
 10713  	//    * File Transfer Protocol Secure (FTPS): File transfer with TLS encryption
 10714  	//
 10715  	//    * File Transfer Protocol (FTP): Unencrypted file transfer
 10716  	//
 10717  	// If you select FTPS, you must choose a certificate stored in Amazon Web ServicesCertificate
 10718  	// Manager (ACM) which will be used to identify your server when clients connect
 10719  	// to it over FTPS.
 10720  	//
 10721  	// If Protocol includes either FTP or FTPS, then the EndpointType must be VPC
 10722  	// and the IdentityProviderType must be AWS_DIRECTORY_SERVICE or API_GATEWAY.
 10723  	//
 10724  	// If Protocol includes FTP, then AddressAllocationIds cannot be associated.
 10725  	//
 10726  	// If Protocol is set only to SFTP, the EndpointType can be set to PUBLIC and
 10727  	// the IdentityProviderType can be set to SERVICE_MANAGED.
 10728  	Protocols []*string `min:"1" type:"list"`
 10729  
 10730  	// Specifies the name of the security policy that is attached to the server.
 10731  	SecurityPolicyName *string `type:"string"`
 10732  
 10733  	// A system-assigned unique identifier for a server instance that the user account
 10734  	// is assigned to.
 10735  	//
 10736  	// ServerId is a required field
 10737  	ServerId *string `min:"19" type:"string" required:"true"`
 10738  
 10739  	// Specifies the workflow ID for the workflow to assign and the execution role
 10740  	// used for executing the workflow.
 10741  	WorkflowDetails *WorkflowDetails `type:"structure"`
 10742  }
 10743  
 10744  // String returns the string representation.
 10745  //
 10746  // API parameter values that are decorated as "sensitive" in the API will not
 10747  // be included in the string output. The member name will be present, but the
 10748  // value will be replaced with "sensitive".
 10749  func (s UpdateServerInput) String() string {
 10750  	return awsutil.Prettify(s)
 10751  }
 10752  
 10753  // GoString returns the string representation.
 10754  //
 10755  // API parameter values that are decorated as "sensitive" in the API will not
 10756  // be included in the string output. The member name will be present, but the
 10757  // value will be replaced with "sensitive".
 10758  func (s UpdateServerInput) GoString() string {
 10759  	return s.String()
 10760  }
 10761  
 10762  // Validate inspects the fields of the type to determine if they are valid.
 10763  func (s *UpdateServerInput) Validate() error {
 10764  	invalidParams := request.ErrInvalidParams{Context: "UpdateServerInput"}
 10765  	if s.Protocols != nil && len(s.Protocols) < 1 {
 10766  		invalidParams.Add(request.NewErrParamMinLen("Protocols", 1))
 10767  	}
 10768  	if s.ServerId == nil {
 10769  		invalidParams.Add(request.NewErrParamRequired("ServerId"))
 10770  	}
 10771  	if s.ServerId != nil && len(*s.ServerId) < 19 {
 10772  		invalidParams.Add(request.NewErrParamMinLen("ServerId", 19))
 10773  	}
 10774  	if s.EndpointDetails != nil {
 10775  		if err := s.EndpointDetails.Validate(); err != nil {
 10776  			invalidParams.AddNested("EndpointDetails", err.(request.ErrInvalidParams))
 10777  		}
 10778  	}
 10779  	if s.IdentityProviderDetails != nil {
 10780  		if err := s.IdentityProviderDetails.Validate(); err != nil {
 10781  			invalidParams.AddNested("IdentityProviderDetails", err.(request.ErrInvalidParams))
 10782  		}
 10783  	}
 10784  	if s.WorkflowDetails != nil {
 10785  		if err := s.WorkflowDetails.Validate(); err != nil {
 10786  			invalidParams.AddNested("WorkflowDetails", err.(request.ErrInvalidParams))
 10787  		}
 10788  	}
 10789  
 10790  	if invalidParams.Len() > 0 {
 10791  		return invalidParams
 10792  	}
 10793  	return nil
 10794  }
 10795  
 10796  // SetCertificate sets the Certificate field's value.
 10797  func (s *UpdateServerInput) SetCertificate(v string) *UpdateServerInput {
 10798  	s.Certificate = &v
 10799  	return s
 10800  }
 10801  
 10802  // SetEndpointDetails sets the EndpointDetails field's value.
 10803  func (s *UpdateServerInput) SetEndpointDetails(v *EndpointDetails) *UpdateServerInput {
 10804  	s.EndpointDetails = v
 10805  	return s
 10806  }
 10807  
 10808  // SetEndpointType sets the EndpointType field's value.
 10809  func (s *UpdateServerInput) SetEndpointType(v string) *UpdateServerInput {
 10810  	s.EndpointType = &v
 10811  	return s
 10812  }
 10813  
 10814  // SetHostKey sets the HostKey field's value.
 10815  func (s *UpdateServerInput) SetHostKey(v string) *UpdateServerInput {
 10816  	s.HostKey = &v
 10817  	return s
 10818  }
 10819  
 10820  // SetIdentityProviderDetails sets the IdentityProviderDetails field's value.
 10821  func (s *UpdateServerInput) SetIdentityProviderDetails(v *IdentityProviderDetails) *UpdateServerInput {
 10822  	s.IdentityProviderDetails = v
 10823  	return s
 10824  }
 10825  
 10826  // SetLoggingRole sets the LoggingRole field's value.
 10827  func (s *UpdateServerInput) SetLoggingRole(v string) *UpdateServerInput {
 10828  	s.LoggingRole = &v
 10829  	return s
 10830  }
 10831  
 10832  // SetProtocolDetails sets the ProtocolDetails field's value.
 10833  func (s *UpdateServerInput) SetProtocolDetails(v *ProtocolDetails) *UpdateServerInput {
 10834  	s.ProtocolDetails = v
 10835  	return s
 10836  }
 10837  
 10838  // SetProtocols sets the Protocols field's value.
 10839  func (s *UpdateServerInput) SetProtocols(v []*string) *UpdateServerInput {
 10840  	s.Protocols = v
 10841  	return s
 10842  }
 10843  
 10844  // SetSecurityPolicyName sets the SecurityPolicyName field's value.
 10845  func (s *UpdateServerInput) SetSecurityPolicyName(v string) *UpdateServerInput {
 10846  	s.SecurityPolicyName = &v
 10847  	return s
 10848  }
 10849  
 10850  // SetServerId sets the ServerId field's value.
 10851  func (s *UpdateServerInput) SetServerId(v string) *UpdateServerInput {
 10852  	s.ServerId = &v
 10853  	return s
 10854  }
 10855  
 10856  // SetWorkflowDetails sets the WorkflowDetails field's value.
 10857  func (s *UpdateServerInput) SetWorkflowDetails(v *WorkflowDetails) *UpdateServerInput {
 10858  	s.WorkflowDetails = v
 10859  	return s
 10860  }
 10861  
 10862  type UpdateServerOutput struct {
 10863  	_ struct{} `type:"structure"`
 10864  
 10865  	// A system-assigned unique identifier for a server that the user account is
 10866  	// assigned to.
 10867  	//
 10868  	// ServerId is a required field
 10869  	ServerId *string `min:"19" type:"string" required:"true"`
 10870  }
 10871  
 10872  // String returns the string representation.
 10873  //
 10874  // API parameter values that are decorated as "sensitive" in the API will not
 10875  // be included in the string output. The member name will be present, but the
 10876  // value will be replaced with "sensitive".
 10877  func (s UpdateServerOutput) String() string {
 10878  	return awsutil.Prettify(s)
 10879  }
 10880  
 10881  // GoString returns the string representation.
 10882  //
 10883  // API parameter values that are decorated as "sensitive" in the API will not
 10884  // be included in the string output. The member name will be present, but the
 10885  // value will be replaced with "sensitive".
 10886  func (s UpdateServerOutput) GoString() string {
 10887  	return s.String()
 10888  }
 10889  
 10890  // SetServerId sets the ServerId field's value.
 10891  func (s *UpdateServerOutput) SetServerId(v string) *UpdateServerOutput {
 10892  	s.ServerId = &v
 10893  	return s
 10894  }
 10895  
 10896  type UpdateUserInput struct {
 10897  	_ struct{} `type:"structure"`
 10898  
 10899  	// The landing directory (folder) for a user when they log in to the server
 10900  	// using the client.
 10901  	//
 10902  	// A HomeDirectory example is /bucket_name/home/mydirectory.
 10903  	HomeDirectory *string `type:"string"`
 10904  
 10905  	// Logical directory mappings that specify what Amazon S3 or Amazon EFS paths
 10906  	// and keys should be visible to your user and how you want to make them visible.
 10907  	// You must specify the Entry and Target pair, where Entry shows how the path
 10908  	// is made visible and Target is the actual Amazon S3 or Amazon EFS path. If
 10909  	// you only specify a target, it is displayed as is. You also must ensure that
 10910  	// your Amazon Web Services Identity and Access Management (IAM) role provides
 10911  	// access to paths in Target. This value can only be set when HomeDirectoryType
 10912  	// is set to LOGICAL.
 10913  	//
 10914  	// The following is an Entry and Target pair example.
 10915  	//
 10916  	// [ { "Entry": "/directory1", "Target": "/bucket_name/home/mydirectory" } ]
 10917  	//
 10918  	// In most cases, you can use this value instead of the session policy to lock
 10919  	// down your user to the designated home directory ("chroot"). To do this, you
 10920  	// can set Entry to '/' and set Target to the HomeDirectory parameter value.
 10921  	//
 10922  	// The following is an Entry and Target pair example for chroot.
 10923  	//
 10924  	// [ { "Entry:": "/", "Target": "/bucket_name/home/mydirectory" } ]
 10925  	//
 10926  	// If the target of a logical directory entry does not exist in Amazon S3 or
 10927  	// EFS, the entry is ignored. As a workaround, you can use the Amazon S3 API
 10928  	// or EFS API to create 0 byte objects as place holders for your directory.
 10929  	// If using the CLI, use the s3api or efsapi call instead of s3 or efs so you
 10930  	// can use the put-object operation. For example, you use the following: aws
 10931  	// s3api put-object --bucket bucketname --key path/to/folder/. Make sure that
 10932  	// the end of the key name ends in a / for it to be considered a folder.
 10933  	HomeDirectoryMappings []*HomeDirectoryMapEntry `min:"1" type:"list"`
 10934  
 10935  	// The type of landing directory (folder) you want your users' home directory
 10936  	// to be when they log into the server. If you set it to PATH, the user will
 10937  	// see the absolute Amazon S3 bucket or EFS paths as is in their file transfer
 10938  	// protocol clients. If you set it LOGICAL, you need to provide mappings in
 10939  	// the HomeDirectoryMappings for how you want to make Amazon S3 or EFS paths
 10940  	// visible to your users.
 10941  	HomeDirectoryType *string `type:"string" enum:"HomeDirectoryType"`
 10942  
 10943  	// A session policy for your user so that you can use the same IAM role across
 10944  	// multiple users. This policy scopes down user access to portions of their
 10945  	// Amazon S3 bucket. Variables that you can use inside this policy include ${Transfer:UserName},
 10946  	// ${Transfer:HomeDirectory}, and ${Transfer:HomeBucket}.
 10947  	//
 10948  	// This only applies when the domain of ServerId is S3. EFS does not use session
 10949  	// policies.
 10950  	//
 10951  	// For session policies, Amazon Web Services Transfer Family stores the policy
 10952  	// as a JSON blob, instead of the Amazon Resource Name (ARN) of the policy.
 10953  	// You save the policy as a JSON blob and pass it in the Policy argument.
 10954  	//
 10955  	// For an example of a session policy, see Creating a session policy (https://docs.aws.amazon.com/transfer/latest/userguide/session-policy).
 10956  	//
 10957  	// For more information, see AssumeRole (https://docs.aws.amazon.com/STS/latest/APIReference/API_AssumeRole.html)
 10958  	// in the Amazon Web Services Security Token Service API Reference.
 10959  	Policy *string `type:"string"`
 10960  
 10961  	// Specifies the full POSIX identity, including user ID (Uid), group ID (Gid),
 10962  	// and any secondary groups IDs (SecondaryGids), that controls your users' access
 10963  	// to your Amazon Elastic File Systems (Amazon EFS). The POSIX permissions that
 10964  	// are set on files and directories in your file system determines the level
 10965  	// of access your users get when transferring files into and out of your Amazon
 10966  	// EFS file systems.
 10967  	PosixProfile *PosixProfile `type:"structure"`
 10968  
 10969  	// Specifies the Amazon Resource Name (ARN) of the IAM role that controls your
 10970  	// users' access to your Amazon S3 bucket or EFS file system. The policies attached
 10971  	// to this role determine the level of access that you want to provide your
 10972  	// users when transferring files into and out of your Amazon S3 bucket or EFS
 10973  	// file system. The IAM role should also contain a trust relationship that allows
 10974  	// the server to access your resources when servicing your users' transfer requests.
 10975  	Role *string `min:"20" type:"string"`
 10976  
 10977  	// A system-assigned unique identifier for a server instance that the user account
 10978  	// is assigned to.
 10979  	//
 10980  	// ServerId is a required field
 10981  	ServerId *string `min:"19" type:"string" required:"true"`
 10982  
 10983  	// A unique string that identifies a user and is associated with a server as
 10984  	// specified by the ServerId. This user name must be a minimum of 3 and a maximum
 10985  	// of 100 characters long. The following are valid characters: a-z, A-Z, 0-9,
 10986  	// underscore '_', hyphen '-', period '.', and at sign '@'. The user name can't
 10987  	// start with a hyphen, period, or at sign.
 10988  	//
 10989  	// UserName is a required field
 10990  	UserName *string `min:"3" type:"string" required:"true"`
 10991  }
 10992  
 10993  // String returns the string representation.
 10994  //
 10995  // API parameter values that are decorated as "sensitive" in the API will not
 10996  // be included in the string output. The member name will be present, but the
 10997  // value will be replaced with "sensitive".
 10998  func (s UpdateUserInput) String() string {
 10999  	return awsutil.Prettify(s)
 11000  }
 11001  
 11002  // GoString returns the string representation.
 11003  //
 11004  // API parameter values that are decorated as "sensitive" in the API will not
 11005  // be included in the string output. The member name will be present, but the
 11006  // value will be replaced with "sensitive".
 11007  func (s UpdateUserInput) GoString() string {
 11008  	return s.String()
 11009  }
 11010  
 11011  // Validate inspects the fields of the type to determine if they are valid.
 11012  func (s *UpdateUserInput) Validate() error {
 11013  	invalidParams := request.ErrInvalidParams{Context: "UpdateUserInput"}
 11014  	if s.HomeDirectoryMappings != nil && len(s.HomeDirectoryMappings) < 1 {
 11015  		invalidParams.Add(request.NewErrParamMinLen("HomeDirectoryMappings", 1))
 11016  	}
 11017  	if s.Role != nil && len(*s.Role) < 20 {
 11018  		invalidParams.Add(request.NewErrParamMinLen("Role", 20))
 11019  	}
 11020  	if s.ServerId == nil {
 11021  		invalidParams.Add(request.NewErrParamRequired("ServerId"))
 11022  	}
 11023  	if s.ServerId != nil && len(*s.ServerId) < 19 {
 11024  		invalidParams.Add(request.NewErrParamMinLen("ServerId", 19))
 11025  	}
 11026  	if s.UserName == nil {
 11027  		invalidParams.Add(request.NewErrParamRequired("UserName"))
 11028  	}
 11029  	if s.UserName != nil && len(*s.UserName) < 3 {
 11030  		invalidParams.Add(request.NewErrParamMinLen("UserName", 3))
 11031  	}
 11032  	if s.HomeDirectoryMappings != nil {
 11033  		for i, v := range s.HomeDirectoryMappings {
 11034  			if v == nil {
 11035  				continue
 11036  			}
 11037  			if err := v.Validate(); err != nil {
 11038  				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "HomeDirectoryMappings", i), err.(request.ErrInvalidParams))
 11039  			}
 11040  		}
 11041  	}
 11042  	if s.PosixProfile != nil {
 11043  		if err := s.PosixProfile.Validate(); err != nil {
 11044  			invalidParams.AddNested("PosixProfile", err.(request.ErrInvalidParams))
 11045  		}
 11046  	}
 11047  
 11048  	if invalidParams.Len() > 0 {
 11049  		return invalidParams
 11050  	}
 11051  	return nil
 11052  }
 11053  
 11054  // SetHomeDirectory sets the HomeDirectory field's value.
 11055  func (s *UpdateUserInput) SetHomeDirectory(v string) *UpdateUserInput {
 11056  	s.HomeDirectory = &v
 11057  	return s
 11058  }
 11059  
 11060  // SetHomeDirectoryMappings sets the HomeDirectoryMappings field's value.
 11061  func (s *UpdateUserInput) SetHomeDirectoryMappings(v []*HomeDirectoryMapEntry) *UpdateUserInput {
 11062  	s.HomeDirectoryMappings = v
 11063  	return s
 11064  }
 11065  
 11066  // SetHomeDirectoryType sets the HomeDirectoryType field's value.
 11067  func (s *UpdateUserInput) SetHomeDirectoryType(v string) *UpdateUserInput {
 11068  	s.HomeDirectoryType = &v
 11069  	return s
 11070  }
 11071  
 11072  // SetPolicy sets the Policy field's value.
 11073  func (s *UpdateUserInput) SetPolicy(v string) *UpdateUserInput {
 11074  	s.Policy = &v
 11075  	return s
 11076  }
 11077  
 11078  // SetPosixProfile sets the PosixProfile field's value.
 11079  func (s *UpdateUserInput) SetPosixProfile(v *PosixProfile) *UpdateUserInput {
 11080  	s.PosixProfile = v
 11081  	return s
 11082  }
 11083  
 11084  // SetRole sets the Role field's value.
 11085  func (s *UpdateUserInput) SetRole(v string) *UpdateUserInput {
 11086  	s.Role = &v
 11087  	return s
 11088  }
 11089  
 11090  // SetServerId sets the ServerId field's value.
 11091  func (s *UpdateUserInput) SetServerId(v string) *UpdateUserInput {
 11092  	s.ServerId = &v
 11093  	return s
 11094  }
 11095  
 11096  // SetUserName sets the UserName field's value.
 11097  func (s *UpdateUserInput) SetUserName(v string) *UpdateUserInput {
 11098  	s.UserName = &v
 11099  	return s
 11100  }
 11101  
 11102  // UpdateUserResponse returns the user name and identifier for the request to
 11103  // update a user's properties.
 11104  type UpdateUserOutput struct {
 11105  	_ struct{} `type:"structure"`
 11106  
 11107  	// A system-assigned unique identifier for a server instance that the user account
 11108  	// is assigned to.
 11109  	//
 11110  	// ServerId is a required field
 11111  	ServerId *string `min:"19" type:"string" required:"true"`
 11112  
 11113  	// The unique identifier for a user that is assigned to a server instance that
 11114  	// was specified in the request.
 11115  	//
 11116  	// UserName is a required field
 11117  	UserName *string `min:"3" type:"string" required:"true"`
 11118  }
 11119  
 11120  // String returns the string representation.
 11121  //
 11122  // API parameter values that are decorated as "sensitive" in the API will not
 11123  // be included in the string output. The member name will be present, but the
 11124  // value will be replaced with "sensitive".
 11125  func (s UpdateUserOutput) String() string {
 11126  	return awsutil.Prettify(s)
 11127  }
 11128  
 11129  // GoString returns the string representation.
 11130  //
 11131  // API parameter values that are decorated as "sensitive" in the API will not
 11132  // be included in the string output. The member name will be present, but the
 11133  // value will be replaced with "sensitive".
 11134  func (s UpdateUserOutput) GoString() string {
 11135  	return s.String()
 11136  }
 11137  
 11138  // SetServerId sets the ServerId field's value.
 11139  func (s *UpdateUserOutput) SetServerId(v string) *UpdateUserOutput {
 11140  	s.ServerId = &v
 11141  	return s
 11142  }
 11143  
 11144  // SetUserName sets the UserName field's value.
 11145  func (s *UpdateUserOutput) SetUserName(v string) *UpdateUserOutput {
 11146  	s.UserName = &v
 11147  	return s
 11148  }
 11149  
 11150  // Specifies the user name, server ID, and session ID for a workflow.
 11151  type UserDetails struct {
 11152  	_ struct{} `type:"structure"`
 11153  
 11154  	// The system-assigned unique identifier for a Transfer server instance.
 11155  	//
 11156  	// ServerId is a required field
 11157  	ServerId *string `min:"19" type:"string" required:"true"`
 11158  
 11159  	// The system-assigned unique identifier for a session that corresponds to the
 11160  	// workflow.
 11161  	SessionId *string `min:"3" type:"string"`
 11162  
 11163  	// A unique string that identifies a user account associated with a server.
 11164  	//
 11165  	// UserName is a required field
 11166  	UserName *string `min:"3" type:"string" required:"true"`
 11167  }
 11168  
 11169  // String returns the string representation.
 11170  //
 11171  // API parameter values that are decorated as "sensitive" in the API will not
 11172  // be included in the string output. The member name will be present, but the
 11173  // value will be replaced with "sensitive".
 11174  func (s UserDetails) String() string {
 11175  	return awsutil.Prettify(s)
 11176  }
 11177  
 11178  // GoString returns the string representation.
 11179  //
 11180  // API parameter values that are decorated as "sensitive" in the API will not
 11181  // be included in the string output. The member name will be present, but the
 11182  // value will be replaced with "sensitive".
 11183  func (s UserDetails) GoString() string {
 11184  	return s.String()
 11185  }
 11186  
 11187  // SetServerId sets the ServerId field's value.
 11188  func (s *UserDetails) SetServerId(v string) *UserDetails {
 11189  	s.ServerId = &v
 11190  	return s
 11191  }
 11192  
 11193  // SetSessionId sets the SessionId field's value.
 11194  func (s *UserDetails) SetSessionId(v string) *UserDetails {
 11195  	s.SessionId = &v
 11196  	return s
 11197  }
 11198  
 11199  // SetUserName sets the UserName field's value.
 11200  func (s *UserDetails) SetUserName(v string) *UserDetails {
 11201  	s.UserName = &v
 11202  	return s
 11203  }
 11204  
 11205  // Specifies the workflow ID for the workflow to assign and the execution role
 11206  // used for executing the workflow.
 11207  type WorkflowDetail struct {
 11208  	_ struct{} `type:"structure"`
 11209  
 11210  	// Includes the necessary permissions for S3, EFS, and Lambda operations that
 11211  	// Transfer can assume, so that all workflow steps can operate on the required
 11212  	// resources
 11213  	//
 11214  	// ExecutionRole is a required field
 11215  	ExecutionRole *string `min:"20" type:"string" required:"true"`
 11216  
 11217  	// A unique identifier for the workflow.
 11218  	//
 11219  	// WorkflowId is a required field
 11220  	WorkflowId *string `min:"19" type:"string" required:"true"`
 11221  }
 11222  
 11223  // String returns the string representation.
 11224  //
 11225  // API parameter values that are decorated as "sensitive" in the API will not
 11226  // be included in the string output. The member name will be present, but the
 11227  // value will be replaced with "sensitive".
 11228  func (s WorkflowDetail) String() string {
 11229  	return awsutil.Prettify(s)
 11230  }
 11231  
 11232  // GoString returns the string representation.
 11233  //
 11234  // API parameter values that are decorated as "sensitive" in the API will not
 11235  // be included in the string output. The member name will be present, but the
 11236  // value will be replaced with "sensitive".
 11237  func (s WorkflowDetail) GoString() string {
 11238  	return s.String()
 11239  }
 11240  
 11241  // Validate inspects the fields of the type to determine if they are valid.
 11242  func (s *WorkflowDetail) Validate() error {
 11243  	invalidParams := request.ErrInvalidParams{Context: "WorkflowDetail"}
 11244  	if s.ExecutionRole == nil {
 11245  		invalidParams.Add(request.NewErrParamRequired("ExecutionRole"))
 11246  	}
 11247  	if s.ExecutionRole != nil && len(*s.ExecutionRole) < 20 {
 11248  		invalidParams.Add(request.NewErrParamMinLen("ExecutionRole", 20))
 11249  	}
 11250  	if s.WorkflowId == nil {
 11251  		invalidParams.Add(request.NewErrParamRequired("WorkflowId"))
 11252  	}
 11253  	if s.WorkflowId != nil && len(*s.WorkflowId) < 19 {
 11254  		invalidParams.Add(request.NewErrParamMinLen("WorkflowId", 19))
 11255  	}
 11256  
 11257  	if invalidParams.Len() > 0 {
 11258  		return invalidParams
 11259  	}
 11260  	return nil
 11261  }
 11262  
 11263  // SetExecutionRole sets the ExecutionRole field's value.
 11264  func (s *WorkflowDetail) SetExecutionRole(v string) *WorkflowDetail {
 11265  	s.ExecutionRole = &v
 11266  	return s
 11267  }
 11268  
 11269  // SetWorkflowId sets the WorkflowId field's value.
 11270  func (s *WorkflowDetail) SetWorkflowId(v string) *WorkflowDetail {
 11271  	s.WorkflowId = &v
 11272  	return s
 11273  }
 11274  
 11275  // Container for the WorkflowDetail data type. It is used by actions that trigger
 11276  // a workflow to begin execution.
 11277  type WorkflowDetails struct {
 11278  	_ struct{} `type:"structure"`
 11279  
 11280  	// A trigger that starts a workflow: the workflow begins to execute after a
 11281  	// file is uploaded.
 11282  	//
 11283  	// OnUpload is a required field
 11284  	OnUpload []*WorkflowDetail `type:"list" required:"true"`
 11285  }
 11286  
 11287  // String returns the string representation.
 11288  //
 11289  // API parameter values that are decorated as "sensitive" in the API will not
 11290  // be included in the string output. The member name will be present, but the
 11291  // value will be replaced with "sensitive".
 11292  func (s WorkflowDetails) String() string {
 11293  	return awsutil.Prettify(s)
 11294  }
 11295  
 11296  // GoString returns the string representation.
 11297  //
 11298  // API parameter values that are decorated as "sensitive" in the API will not
 11299  // be included in the string output. The member name will be present, but the
 11300  // value will be replaced with "sensitive".
 11301  func (s WorkflowDetails) GoString() string {
 11302  	return s.String()
 11303  }
 11304  
 11305  // Validate inspects the fields of the type to determine if they are valid.
 11306  func (s *WorkflowDetails) Validate() error {
 11307  	invalidParams := request.ErrInvalidParams{Context: "WorkflowDetails"}
 11308  	if s.OnUpload == nil {
 11309  		invalidParams.Add(request.NewErrParamRequired("OnUpload"))
 11310  	}
 11311  	if s.OnUpload != nil {
 11312  		for i, v := range s.OnUpload {
 11313  			if v == nil {
 11314  				continue
 11315  			}
 11316  			if err := v.Validate(); err != nil {
 11317  				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "OnUpload", i), err.(request.ErrInvalidParams))
 11318  			}
 11319  		}
 11320  	}
 11321  
 11322  	if invalidParams.Len() > 0 {
 11323  		return invalidParams
 11324  	}
 11325  	return nil
 11326  }
 11327  
 11328  // SetOnUpload sets the OnUpload field's value.
 11329  func (s *WorkflowDetails) SetOnUpload(v []*WorkflowDetail) *WorkflowDetails {
 11330  	s.OnUpload = v
 11331  	return s
 11332  }
 11333  
 11334  // The basic building block of a workflow.
 11335  type WorkflowStep struct {
 11336  	_ struct{} `type:"structure"`
 11337  
 11338  	// Details for a step that performs a file copy.
 11339  	//
 11340  	// Consists of the following values:
 11341  	//
 11342  	//    * A description
 11343  	//
 11344  	//    * An S3 location for the destination of the file copy.
 11345  	//
 11346  	//    * A flag that indicates whether or not to overwrite an existing file of
 11347  	//    the same name. The default is FALSE.
 11348  	CopyStepDetails *CopyStepDetails `type:"structure"`
 11349  
 11350  	// Details for a step that invokes a lambda function.
 11351  	//
 11352  	// Consists of the lambda function name, target, and timeout (in seconds).
 11353  	CustomStepDetails *CustomStepDetails `type:"structure"`
 11354  
 11355  	// Details for a step that deletes the file.
 11356  	DeleteStepDetails *DeleteStepDetails `type:"structure"`
 11357  
 11358  	// Details for a step that creates one or more tags.
 11359  	//
 11360  	// You specify one or more tags: each tag contains a key/value pair.
 11361  	TagStepDetails *TagStepDetails `type:"structure"`
 11362  
 11363  	// Currently, the following step types are supported.
 11364  	//
 11365  	//    * Copy: copy the file to another location
 11366  	//
 11367  	//    * Custom: custom step with a lambda target
 11368  	//
 11369  	//    * Delete: delete the file
 11370  	//
 11371  	//    * Tag: add a tag to the file
 11372  	Type *string `type:"string" enum:"WorkflowStepType"`
 11373  }
 11374  
 11375  // String returns the string representation.
 11376  //
 11377  // API parameter values that are decorated as "sensitive" in the API will not
 11378  // be included in the string output. The member name will be present, but the
 11379  // value will be replaced with "sensitive".
 11380  func (s WorkflowStep) String() string {
 11381  	return awsutil.Prettify(s)
 11382  }
 11383  
 11384  // GoString returns the string representation.
 11385  //
 11386  // API parameter values that are decorated as "sensitive" in the API will not
 11387  // be included in the string output. The member name will be present, but the
 11388  // value will be replaced with "sensitive".
 11389  func (s WorkflowStep) GoString() string {
 11390  	return s.String()
 11391  }
 11392  
 11393  // Validate inspects the fields of the type to determine if they are valid.
 11394  func (s *WorkflowStep) Validate() error {
 11395  	invalidParams := request.ErrInvalidParams{Context: "WorkflowStep"}
 11396  	if s.CopyStepDetails != nil {
 11397  		if err := s.CopyStepDetails.Validate(); err != nil {
 11398  			invalidParams.AddNested("CopyStepDetails", err.(request.ErrInvalidParams))
 11399  		}
 11400  	}
 11401  	if s.CustomStepDetails != nil {
 11402  		if err := s.CustomStepDetails.Validate(); err != nil {
 11403  			invalidParams.AddNested("CustomStepDetails", err.(request.ErrInvalidParams))
 11404  		}
 11405  	}
 11406  	if s.TagStepDetails != nil {
 11407  		if err := s.TagStepDetails.Validate(); err != nil {
 11408  			invalidParams.AddNested("TagStepDetails", err.(request.ErrInvalidParams))
 11409  		}
 11410  	}
 11411  
 11412  	if invalidParams.Len() > 0 {
 11413  		return invalidParams
 11414  	}
 11415  	return nil
 11416  }
 11417  
 11418  // SetCopyStepDetails sets the CopyStepDetails field's value.
 11419  func (s *WorkflowStep) SetCopyStepDetails(v *CopyStepDetails) *WorkflowStep {
 11420  	s.CopyStepDetails = v
 11421  	return s
 11422  }
 11423  
 11424  // SetCustomStepDetails sets the CustomStepDetails field's value.
 11425  func (s *WorkflowStep) SetCustomStepDetails(v *CustomStepDetails) *WorkflowStep {
 11426  	s.CustomStepDetails = v
 11427  	return s
 11428  }
 11429  
 11430  // SetDeleteStepDetails sets the DeleteStepDetails field's value.
 11431  func (s *WorkflowStep) SetDeleteStepDetails(v *DeleteStepDetails) *WorkflowStep {
 11432  	s.DeleteStepDetails = v
 11433  	return s
 11434  }
 11435  
 11436  // SetTagStepDetails sets the TagStepDetails field's value.
 11437  func (s *WorkflowStep) SetTagStepDetails(v *TagStepDetails) *WorkflowStep {
 11438  	s.TagStepDetails = v
 11439  	return s
 11440  }
 11441  
 11442  // SetType sets the Type field's value.
 11443  func (s *WorkflowStep) SetType(v string) *WorkflowStep {
 11444  	s.Type = &v
 11445  	return s
 11446  }
 11447  
 11448  const (
 11449  	// CustomStepStatusSuccess is a CustomStepStatus enum value
 11450  	CustomStepStatusSuccess = "SUCCESS"
 11451  
 11452  	// CustomStepStatusFailure is a CustomStepStatus enum value
 11453  	CustomStepStatusFailure = "FAILURE"
 11454  )
 11455  
 11456  // CustomStepStatus_Values returns all elements of the CustomStepStatus enum
 11457  func CustomStepStatus_Values() []string {
 11458  	return []string{
 11459  		CustomStepStatusSuccess,
 11460  		CustomStepStatusFailure,
 11461  	}
 11462  }
 11463  
 11464  const (
 11465  	// DomainS3 is a Domain enum value
 11466  	DomainS3 = "S3"
 11467  
 11468  	// DomainEfs is a Domain enum value
 11469  	DomainEfs = "EFS"
 11470  )
 11471  
 11472  // Domain_Values returns all elements of the Domain enum
 11473  func Domain_Values() []string {
 11474  	return []string{
 11475  		DomainS3,
 11476  		DomainEfs,
 11477  	}
 11478  }
 11479  
 11480  const (
 11481  	// EndpointTypePublic is a EndpointType enum value
 11482  	EndpointTypePublic = "PUBLIC"
 11483  
 11484  	// EndpointTypeVpc is a EndpointType enum value
 11485  	EndpointTypeVpc = "VPC"
 11486  
 11487  	// EndpointTypeVpcEndpoint is a EndpointType enum value
 11488  	EndpointTypeVpcEndpoint = "VPC_ENDPOINT"
 11489  )
 11490  
 11491  // EndpointType_Values returns all elements of the EndpointType enum
 11492  func EndpointType_Values() []string {
 11493  	return []string{
 11494  		EndpointTypePublic,
 11495  		EndpointTypeVpc,
 11496  		EndpointTypeVpcEndpoint,
 11497  	}
 11498  }
 11499  
 11500  const (
 11501  	// ExecutionErrorTypePermissionDenied is a ExecutionErrorType enum value
 11502  	ExecutionErrorTypePermissionDenied = "PERMISSION_DENIED"
 11503  )
 11504  
 11505  // ExecutionErrorType_Values returns all elements of the ExecutionErrorType enum
 11506  func ExecutionErrorType_Values() []string {
 11507  	return []string{
 11508  		ExecutionErrorTypePermissionDenied,
 11509  	}
 11510  }
 11511  
 11512  const (
 11513  	// ExecutionStatusInProgress is a ExecutionStatus enum value
 11514  	ExecutionStatusInProgress = "IN_PROGRESS"
 11515  
 11516  	// ExecutionStatusCompleted is a ExecutionStatus enum value
 11517  	ExecutionStatusCompleted = "COMPLETED"
 11518  
 11519  	// ExecutionStatusException is a ExecutionStatus enum value
 11520  	ExecutionStatusException = "EXCEPTION"
 11521  
 11522  	// ExecutionStatusHandlingException is a ExecutionStatus enum value
 11523  	ExecutionStatusHandlingException = "HANDLING_EXCEPTION"
 11524  )
 11525  
 11526  // ExecutionStatus_Values returns all elements of the ExecutionStatus enum
 11527  func ExecutionStatus_Values() []string {
 11528  	return []string{
 11529  		ExecutionStatusInProgress,
 11530  		ExecutionStatusCompleted,
 11531  		ExecutionStatusException,
 11532  		ExecutionStatusHandlingException,
 11533  	}
 11534  }
 11535  
 11536  const (
 11537  	// HomeDirectoryTypePath is a HomeDirectoryType enum value
 11538  	HomeDirectoryTypePath = "PATH"
 11539  
 11540  	// HomeDirectoryTypeLogical is a HomeDirectoryType enum value
 11541  	HomeDirectoryTypeLogical = "LOGICAL"
 11542  )
 11543  
 11544  // HomeDirectoryType_Values returns all elements of the HomeDirectoryType enum
 11545  func HomeDirectoryType_Values() []string {
 11546  	return []string{
 11547  		HomeDirectoryTypePath,
 11548  		HomeDirectoryTypeLogical,
 11549  	}
 11550  }
 11551  
 11552  // Returns information related to the type of user authentication that is in
 11553  // use for a file transfer protocol-enabled server's users. For AWS_DIRECTORY_SERVICE
 11554  // or SERVICE_MANAGED authentication, the Secure Shell (SSH) public keys are
 11555  // stored with a user on the server instance. For API_GATEWAY authentication,
 11556  // your custom authentication method is implemented by using an API call. The
 11557  // server can have only one method of authentication.
 11558  const (
 11559  	// IdentityProviderTypeServiceManaged is a IdentityProviderType enum value
 11560  	IdentityProviderTypeServiceManaged = "SERVICE_MANAGED"
 11561  
 11562  	// IdentityProviderTypeApiGateway is a IdentityProviderType enum value
 11563  	IdentityProviderTypeApiGateway = "API_GATEWAY"
 11564  
 11565  	// IdentityProviderTypeAwsDirectoryService is a IdentityProviderType enum value
 11566  	IdentityProviderTypeAwsDirectoryService = "AWS_DIRECTORY_SERVICE"
 11567  )
 11568  
 11569  // IdentityProviderType_Values returns all elements of the IdentityProviderType enum
 11570  func IdentityProviderType_Values() []string {
 11571  	return []string{
 11572  		IdentityProviderTypeServiceManaged,
 11573  		IdentityProviderTypeApiGateway,
 11574  		IdentityProviderTypeAwsDirectoryService,
 11575  	}
 11576  }
 11577  
 11578  const (
 11579  	// OverwriteExistingTrue is a OverwriteExisting enum value
 11580  	OverwriteExistingTrue = "TRUE"
 11581  
 11582  	// OverwriteExistingFalse is a OverwriteExisting enum value
 11583  	OverwriteExistingFalse = "FALSE"
 11584  )
 11585  
 11586  // OverwriteExisting_Values returns all elements of the OverwriteExisting enum
 11587  func OverwriteExisting_Values() []string {
 11588  	return []string{
 11589  		OverwriteExistingTrue,
 11590  		OverwriteExistingFalse,
 11591  	}
 11592  }
 11593  
 11594  const (
 11595  	// ProtocolSftp is a Protocol enum value
 11596  	ProtocolSftp = "SFTP"
 11597  
 11598  	// ProtocolFtp is a Protocol enum value
 11599  	ProtocolFtp = "FTP"
 11600  
 11601  	// ProtocolFtps is a Protocol enum value
 11602  	ProtocolFtps = "FTPS"
 11603  )
 11604  
 11605  // Protocol_Values returns all elements of the Protocol enum
 11606  func Protocol_Values() []string {
 11607  	return []string{
 11608  		ProtocolSftp,
 11609  		ProtocolFtp,
 11610  		ProtocolFtps,
 11611  	}
 11612  }
 11613  
 11614  // Describes the condition of a file transfer protocol-enabled server with respect
 11615  // to its ability to perform file operations. There are six possible states:
 11616  // OFFLINE, ONLINE, STARTING, STOPPING, START_FAILED, and STOP_FAILED.
 11617  //
 11618  // OFFLINE indicates that the server exists, but that it is not available for
 11619  // file operations. ONLINE indicates that the server is available to perform
 11620  // file operations. STARTING indicates that the server's was instantiated, but
 11621  // the server is not yet available to perform file operations. Under normal
 11622  // conditions, it can take a couple of minutes for the server to be completely
 11623  // operational. Both START_FAILED and STOP_FAILED are error conditions.
 11624  const (
 11625  	// StateOffline is a State enum value
 11626  	StateOffline = "OFFLINE"
 11627  
 11628  	// StateOnline is a State enum value
 11629  	StateOnline = "ONLINE"
 11630  
 11631  	// StateStarting is a State enum value
 11632  	StateStarting = "STARTING"
 11633  
 11634  	// StateStopping is a State enum value
 11635  	StateStopping = "STOPPING"
 11636  
 11637  	// StateStartFailed is a State enum value
 11638  	StateStartFailed = "START_FAILED"
 11639  
 11640  	// StateStopFailed is a State enum value
 11641  	StateStopFailed = "STOP_FAILED"
 11642  )
 11643  
 11644  // State_Values returns all elements of the State enum
 11645  func State_Values() []string {
 11646  	return []string{
 11647  		StateOffline,
 11648  		StateOnline,
 11649  		StateStarting,
 11650  		StateStopping,
 11651  		StateStartFailed,
 11652  		StateStopFailed,
 11653  	}
 11654  }
 11655  
 11656  const (
 11657  	// WorkflowStepTypeCopy is a WorkflowStepType enum value
 11658  	WorkflowStepTypeCopy = "COPY"
 11659  
 11660  	// WorkflowStepTypeCustom is a WorkflowStepType enum value
 11661  	WorkflowStepTypeCustom = "CUSTOM"
 11662  
 11663  	// WorkflowStepTypeTag is a WorkflowStepType enum value
 11664  	WorkflowStepTypeTag = "TAG"
 11665  
 11666  	// WorkflowStepTypeDelete is a WorkflowStepType enum value
 11667  	WorkflowStepTypeDelete = "DELETE"
 11668  )
 11669  
 11670  // WorkflowStepType_Values returns all elements of the WorkflowStepType enum
 11671  func WorkflowStepType_Values() []string {
 11672  	return []string{
 11673  		WorkflowStepTypeCopy,
 11674  		WorkflowStepTypeCustom,
 11675  		WorkflowStepTypeTag,
 11676  		WorkflowStepTypeDelete,
 11677  	}
 11678  }