aws-sdk 2.981.0 → 2.982.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -28,13 +28,21 @@ declare class Transfer extends Service {
28
28
  */
29
29
  createServer(callback?: (err: AWSError, data: Transfer.Types.CreateServerResponse) => void): Request<Transfer.Types.CreateServerResponse, AWSError>;
30
30
  /**
31
- * Creates a user and associates them with an existing file transfer protocol-enabled server. You can only create and associate users with servers that have the IdentityProviderType set to SERVICE_MANAGED. Using parameters for CreateUser, you can specify the user name, set the home directory, store the user's public key, and assign the user's Amazon Web Services Identity and Access Management (IAM) role. You can also optionally add a scope-down policy, and assign metadata with tags that can be used to group and search for users.
31
+ * Creates a user and associates them with an existing file transfer protocol-enabled server. You can only create and associate users with servers that have the IdentityProviderType set to SERVICE_MANAGED. Using parameters for CreateUser, you can specify the user name, set the home directory, store the user's public key, and assign the user's Amazon Web Services Identity and Access Management (IAM) role. You can also optionally add a session policy, and assign metadata with tags that can be used to group and search for users.
32
32
  */
33
33
  createUser(params: Transfer.Types.CreateUserRequest, callback?: (err: AWSError, data: Transfer.Types.CreateUserResponse) => void): Request<Transfer.Types.CreateUserResponse, AWSError>;
34
34
  /**
35
- * Creates a user and associates them with an existing file transfer protocol-enabled server. You can only create and associate users with servers that have the IdentityProviderType set to SERVICE_MANAGED. Using parameters for CreateUser, you can specify the user name, set the home directory, store the user's public key, and assign the user's Amazon Web Services Identity and Access Management (IAM) role. You can also optionally add a scope-down policy, and assign metadata with tags that can be used to group and search for users.
35
+ * Creates a user and associates them with an existing file transfer protocol-enabled server. You can only create and associate users with servers that have the IdentityProviderType set to SERVICE_MANAGED. Using parameters for CreateUser, you can specify the user name, set the home directory, store the user's public key, and assign the user's Amazon Web Services Identity and Access Management (IAM) role. You can also optionally add a session policy, and assign metadata with tags that can be used to group and search for users.
36
36
  */
37
37
  createUser(callback?: (err: AWSError, data: Transfer.Types.CreateUserResponse) => void): Request<Transfer.Types.CreateUserResponse, AWSError>;
38
+ /**
39
+ * Allows you to create a workflow with specified steps and step details the workflow invokes after file transfer completes. After creating a workflow, you can associate the workflow created with any transfer servers by specifying the workflow-details field in CreateServer and UpdateServer operations.
40
+ */
41
+ createWorkflow(params: Transfer.Types.CreateWorkflowRequest, callback?: (err: AWSError, data: Transfer.Types.CreateWorkflowResponse) => void): Request<Transfer.Types.CreateWorkflowResponse, AWSError>;
42
+ /**
43
+ * Allows you to create a workflow with specified steps and step details the workflow invokes after file transfer completes. After creating a workflow, you can associate the workflow created with any transfer servers by specifying the workflow-details field in CreateServer and UpdateServer operations.
44
+ */
45
+ createWorkflow(callback?: (err: AWSError, data: Transfer.Types.CreateWorkflowResponse) => void): Request<Transfer.Types.CreateWorkflowResponse, AWSError>;
38
46
  /**
39
47
  * Allows you to delete the access specified in the ServerID and ExternalID parameters.
40
48
  */
@@ -52,11 +60,11 @@ declare class Transfer extends Service {
52
60
  */
53
61
  deleteServer(callback?: (err: AWSError, data: {}) => void): Request<{}, AWSError>;
54
62
  /**
55
- * Deletes a user's Secure Shell (SSH) public key. No response is returned from this operation.
63
+ * Deletes a user's Secure Shell (SSH) public key.
56
64
  */
57
65
  deleteSshPublicKey(params: Transfer.Types.DeleteSshPublicKeyRequest, callback?: (err: AWSError, data: {}) => void): Request<{}, AWSError>;
58
66
  /**
59
- * Deletes a user's Secure Shell (SSH) public key. No response is returned from this operation.
67
+ * Deletes a user's Secure Shell (SSH) public key.
60
68
  */
61
69
  deleteSshPublicKey(callback?: (err: AWSError, data: {}) => void): Request<{}, AWSError>;
62
70
  /**
@@ -67,6 +75,14 @@ declare class Transfer extends Service {
67
75
  * Deletes the user belonging to a file transfer protocol-enabled server you specify. No response returns from this operation. When you delete a user from a server, the user's information is lost.
68
76
  */
69
77
  deleteUser(callback?: (err: AWSError, data: {}) => void): Request<{}, AWSError>;
78
+ /**
79
+ * Deletes the specified workflow.
80
+ */
81
+ deleteWorkflow(params: Transfer.Types.DeleteWorkflowRequest, callback?: (err: AWSError, data: {}) => void): Request<{}, AWSError>;
82
+ /**
83
+ * Deletes the specified workflow.
84
+ */
85
+ deleteWorkflow(callback?: (err: AWSError, data: {}) => void): Request<{}, AWSError>;
70
86
  /**
71
87
  * Describes the access that is assigned to the specific file transfer protocol-enabled server, as identified by its ServerId property and its ExternalID. The response from this call returns the properties of the access that is associated with the ServerId value that was specified.
72
88
  */
@@ -75,6 +91,14 @@ declare class Transfer extends Service {
75
91
  * Describes the access that is assigned to the specific file transfer protocol-enabled server, as identified by its ServerId property and its ExternalID. The response from this call returns the properties of the access that is associated with the ServerId value that was specified.
76
92
  */
77
93
  describeAccess(callback?: (err: AWSError, data: Transfer.Types.DescribeAccessResponse) => void): Request<Transfer.Types.DescribeAccessResponse, AWSError>;
94
+ /**
95
+ * You can use DescribeExecution to check the details of the execution of the specified workflow.
96
+ */
97
+ describeExecution(params: Transfer.Types.DescribeExecutionRequest, callback?: (err: AWSError, data: Transfer.Types.DescribeExecutionResponse) => void): Request<Transfer.Types.DescribeExecutionResponse, AWSError>;
98
+ /**
99
+ * You can use DescribeExecution to check the details of the execution of the specified workflow.
100
+ */
101
+ describeExecution(callback?: (err: AWSError, data: Transfer.Types.DescribeExecutionResponse) => void): Request<Transfer.Types.DescribeExecutionResponse, AWSError>;
78
102
  /**
79
103
  * Describes the security policy that is attached to your file transfer protocol-enabled server. The response contains a description of the security policy's properties. For more information about security policies, see Working with security policies.
80
104
  */
@@ -99,6 +123,14 @@ declare class Transfer extends Service {
99
123
  * Describes the user assigned to the specific file transfer protocol-enabled server, as identified by its ServerId property. The response from this call returns the properties of the user associated with the ServerId value that was specified.
100
124
  */
101
125
  describeUser(callback?: (err: AWSError, data: Transfer.Types.DescribeUserResponse) => void): Request<Transfer.Types.DescribeUserResponse, AWSError>;
126
+ /**
127
+ * Describes the specified workflow.
128
+ */
129
+ describeWorkflow(params: Transfer.Types.DescribeWorkflowRequest, callback?: (err: AWSError, data: Transfer.Types.DescribeWorkflowResponse) => void): Request<Transfer.Types.DescribeWorkflowResponse, AWSError>;
130
+ /**
131
+ * Describes the specified workflow.
132
+ */
133
+ describeWorkflow(callback?: (err: AWSError, data: Transfer.Types.DescribeWorkflowResponse) => void): Request<Transfer.Types.DescribeWorkflowResponse, AWSError>;
102
134
  /**
103
135
  * Adds a Secure Shell (SSH) public key to a user account identified by a UserName value assigned to the specific file transfer protocol-enabled server, identified by ServerId. The response returns the UserName value, the ServerId value, and the name of the SshPublicKeyId.
104
136
  */
@@ -115,6 +147,14 @@ declare class Transfer extends Service {
115
147
  * Lists the details for all the accesses you have on your server.
116
148
  */
117
149
  listAccesses(callback?: (err: AWSError, data: Transfer.Types.ListAccessesResponse) => void): Request<Transfer.Types.ListAccessesResponse, AWSError>;
150
+ /**
151
+ * Lists all executions for the specified workflow.
152
+ */
153
+ listExecutions(params: Transfer.Types.ListExecutionsRequest, callback?: (err: AWSError, data: Transfer.Types.ListExecutionsResponse) => void): Request<Transfer.Types.ListExecutionsResponse, AWSError>;
154
+ /**
155
+ * Lists all executions for the specified workflow.
156
+ */
157
+ listExecutions(callback?: (err: AWSError, data: Transfer.Types.ListExecutionsResponse) => void): Request<Transfer.Types.ListExecutionsResponse, AWSError>;
118
158
  /**
119
159
  * Lists the security policies that are attached to your file transfer protocol-enabled servers.
120
160
  */
@@ -147,6 +187,22 @@ declare class Transfer extends Service {
147
187
  * Lists the users for a file transfer protocol-enabled server that you specify by passing the ServerId parameter.
148
188
  */
149
189
  listUsers(callback?: (err: AWSError, data: Transfer.Types.ListUsersResponse) => void): Request<Transfer.Types.ListUsersResponse, AWSError>;
190
+ /**
191
+ * Lists all of your workflows.
192
+ */
193
+ listWorkflows(params: Transfer.Types.ListWorkflowsRequest, callback?: (err: AWSError, data: Transfer.Types.ListWorkflowsResponse) => void): Request<Transfer.Types.ListWorkflowsResponse, AWSError>;
194
+ /**
195
+ * Lists all of your workflows.
196
+ */
197
+ listWorkflows(callback?: (err: AWSError, data: Transfer.Types.ListWorkflowsResponse) => void): Request<Transfer.Types.ListWorkflowsResponse, AWSError>;
198
+ /**
199
+ * Sends a callback for asynchronous custom steps. The ExecutionId, WorkflowId, and Token are passed to the target resource during execution of a custom step of a workflow. You must include those with their callback as well as providing a status.
200
+ */
201
+ sendWorkflowStepState(params: Transfer.Types.SendWorkflowStepStateRequest, callback?: (err: AWSError, data: Transfer.Types.SendWorkflowStepStateResponse) => void): Request<Transfer.Types.SendWorkflowStepStateResponse, AWSError>;
202
+ /**
203
+ * Sends a callback for asynchronous custom steps. The ExecutionId, WorkflowId, and Token are passed to the target resource during execution of a custom step of a workflow. You must include those with their callback as well as providing a status.
204
+ */
205
+ sendWorkflowStepState(callback?: (err: AWSError, data: Transfer.Types.SendWorkflowStepStateResponse) => void): Request<Transfer.Types.SendWorkflowStepStateResponse, AWSError>;
150
206
  /**
151
207
  * Changes the state of a file transfer protocol-enabled server from OFFLINE to ONLINE. It has no impact on a server that is already ONLINE. An ONLINE server can accept and process file transfer jobs. The state of STARTING indicates that the server is in an intermediate state, either not fully able to respond, or not fully online. The values of START_FAILED can indicate an error condition. No response is returned from this call.
152
208
  */
@@ -172,11 +228,11 @@ declare class Transfer extends Service {
172
228
  */
173
229
  tagResource(callback?: (err: AWSError, data: {}) => void): Request<{}, AWSError>;
174
230
  /**
175
- * If the IdentityProviderType of a file transfer protocol-enabled server is AWS_DIRECTORY_SERVICE or API_Gateway, tests whether your identity provider is set up successfully. We highly recommend that you call this operation to test your authentication method as soon as you create your server. By doing so, you can troubleshoot issues with the identity provider integration to ensure that your users can successfully use the service.
231
+ * If the IdentityProviderType of a file transfer protocol-enabled server is AWS_DIRECTORY_SERVICE or API_Gateway, tests whether your identity provider is set up successfully. We highly recommend that you call this operation to test your authentication method as soon as you create your server. By doing so, you can troubleshoot issues with the identity provider integration to ensure that your users can successfully use the service. The ServerId and UserName parameters are required. The ServerProtocol, SourceIp, and UserPassword are all optional. You cannot use TestIdentityProvider if the IdentityProviderType of your server is SERVICE_MANAGED. If you provide any incorrect values for any parameters, the Response field is empty. If you provide a server ID for a server that uses service-managed users, you get an error: An error occurred (InvalidRequestException) when calling the TestIdentityProvider operation: s-server-ID not configured for external auth If you enter a Server ID for the --server-id parameter that does not identify an actual Transfer server, you receive the following error: An error occurred (ResourceNotFoundException) when calling the TestIdentityProvider operation: Unknown server
176
232
  */
177
233
  testIdentityProvider(params: Transfer.Types.TestIdentityProviderRequest, callback?: (err: AWSError, data: Transfer.Types.TestIdentityProviderResponse) => void): Request<Transfer.Types.TestIdentityProviderResponse, AWSError>;
178
234
  /**
179
- * If the IdentityProviderType of a file transfer protocol-enabled server is AWS_DIRECTORY_SERVICE or API_Gateway, tests whether your identity provider is set up successfully. We highly recommend that you call this operation to test your authentication method as soon as you create your server. By doing so, you can troubleshoot issues with the identity provider integration to ensure that your users can successfully use the service.
235
+ * If the IdentityProviderType of a file transfer protocol-enabled server is AWS_DIRECTORY_SERVICE or API_Gateway, tests whether your identity provider is set up successfully. We highly recommend that you call this operation to test your authentication method as soon as you create your server. By doing so, you can troubleshoot issues with the identity provider integration to ensure that your users can successfully use the service. The ServerId and UserName parameters are required. The ServerProtocol, SourceIp, and UserPassword are all optional. You cannot use TestIdentityProvider if the IdentityProviderType of your server is SERVICE_MANAGED. If you provide any incorrect values for any parameters, the Response field is empty. If you provide a server ID for a server that uses service-managed users, you get an error: An error occurred (InvalidRequestException) when calling the TestIdentityProvider operation: s-server-ID not configured for external auth If you enter a Server ID for the --server-id parameter that does not identify an actual Transfer server, you receive the following error: An error occurred (ResourceNotFoundException) when calling the TestIdentityProvider operation: Unknown server
180
236
  */
181
237
  testIdentityProvider(callback?: (err: AWSError, data: Transfer.Types.TestIdentityProviderResponse) => void): Request<Transfer.Types.TestIdentityProviderResponse, AWSError>;
182
238
  /**
@@ -216,22 +272,34 @@ declare namespace Transfer {
216
272
  export type AddressAllocationId = string;
217
273
  export type AddressAllocationIds = AddressAllocationId[];
218
274
  export type Arn = string;
275
+ export type CallbackToken = string;
219
276
  export type Certificate = string;
277
+ export interface CopyStepDetails {
278
+ /**
279
+ * The name of the step, used as an identifier.
280
+ */
281
+ Name?: WorkflowStepName;
282
+ DestinationFileLocation?: InputFileLocation;
283
+ /**
284
+ * A flag that indicates whether or not to overwrite an existing file of the same name. The default is FALSE.
285
+ */
286
+ OverwriteExisting?: OverwriteExisting;
287
+ }
220
288
  export interface CreateAccessRequest {
221
289
  /**
222
290
  * The landing directory (folder) for a user when they log in to the server using the client. A HomeDirectory example is /bucket_name/home/mydirectory.
223
291
  */
224
292
  HomeDirectory?: HomeDirectory;
225
293
  /**
226
- * The type of landing directory (folder) you want your users' home directory to be when they log into the server. If you set it to PATH, the user will see the absolute Amazon S3 bucket or EFS paths as is in their file transfer protocol clients. If you set it LOGICAL, you will need to provide mappings in the HomeDirectoryMappings for how you want to make Amazon S3 or EFS paths visible to your users.
294
+ * The type of landing directory (folder) you want your users' home directory to be when they log into the server. If you set it to PATH, the user will see the absolute Amazon S3 bucket or EFS paths as is in their file transfer protocol clients. If you set it LOGICAL, you need to provide mappings in the HomeDirectoryMappings for how you want to make Amazon S3 or EFS paths visible to your users.
227
295
  */
228
296
  HomeDirectoryType?: HomeDirectoryType;
229
297
  /**
230
- * Logical directory mappings that specify what Amazon S3 or Amazon EFS paths and keys should be visible to your user and how you want to make them visible. You must specify the Entry and Target pair, where Entry shows how the path is made visible and Target is the actual Amazon S3 or Amazon EFS path. If you only specify a target, it is displayed as is. You also must ensure that your Amazon Web Services Identity and Access Management (IAM) role provides access to paths in Target. This value can only be set when HomeDirectoryType is set to LOGICAL. The following is an Entry and Target pair example. [ { "Entry": "your-personal-report.pdf", "Target": "/bucket3/customized-reports/${transfer:UserName}.pdf" } ] In most cases, you can use this value instead of the scope-down policy to lock down your user to the designated home directory ("chroot"). To do this, you can set Entry to / and set Target to the HomeDirectory parameter value. The following is an Entry and Target pair example for chroot. [ { "Entry:": "/", "Target": "/bucket_name/home/mydirectory" } ] If the target of a logical directory entry does not exist in Amazon S3 or EFS, the entry is ignored. As a workaround, you can use the Amazon S3 API or EFS API to create 0 byte objects as place holders for your directory. If using the CLI, use the s3api or efsapi call instead of s3 or efs so you can use the put-object operation. For example, you use the following: aws s3api put-object --bucket bucketname --key path/to/folder/. Make sure that the end of the key name ends in a / for it to be considered a folder.
298
+ * Logical directory mappings that specify what Amazon S3 or Amazon EFS paths and keys should be visible to your user and how you want to make them visible. You must specify the Entry and Target pair, where Entry shows how the path is made visible and Target is the actual Amazon S3 or Amazon EFS path. If you only specify a target, it is displayed as is. You also must ensure that your Amazon Web Services Identity and Access Management (IAM) role provides access to paths in Target. This value can only be set when HomeDirectoryType is set to LOGICAL. The following is an Entry and Target pair example. [ { "Entry": "your-personal-report.pdf", "Target": "/bucket3/customized-reports/${transfer:UserName}.pdf" } ] In most cases, you can use this value instead of the session policy to lock down your user to the designated home directory ("chroot"). To do this, you can set Entry to / and set Target to the HomeDirectory parameter value. The following is an Entry and Target pair example for chroot. [ { "Entry:": "/", "Target": "/bucket_name/home/mydirectory" } ] If the target of a logical directory entry does not exist in Amazon S3 or EFS, the entry is ignored. As a workaround, you can use the Amazon S3 API or EFS API to create 0 byte objects as place holders for your directory. If using the CLI, use the s3api or efsapi call instead of s3 or efs so you can use the put-object operation. For example, you use the following: aws s3api put-object --bucket bucketname --key path/to/folder/. Make sure that the end of the key name ends in a / for it to be considered a folder.
231
299
  */
232
300
  HomeDirectoryMappings?: HomeDirectoryMappings;
233
301
  /**
234
- * A scope-down policy for your user so that you can use the same IAM role across multiple users. This policy scopes down user access to portions of their Amazon S3 bucket. Variables that you can use inside this policy include ${Transfer:UserName}, ${Transfer:HomeDirectory}, and ${Transfer:HomeBucket}. This only applies when domain of ServerId is S3. Amazon EFS does not use scope-down policies. For scope-down policies, Amazon Web Services Transfer Family stores the policy as a JSON blob, instead of the Amazon Resource Name (ARN) of the policy. You save the policy as a JSON blob and pass it in the Policy argument. For an example of a scope-down policy, see Example scope-down policy. For more information, see AssumeRole in the Amazon Web Services Security Token Service API Reference.
302
+ * A session policy for your user so that you can use the same IAM role across multiple users. This policy scopes down user access to portions of their Amazon S3 bucket. Variables that you can use inside this policy include ${Transfer:UserName}, ${Transfer:HomeDirectory}, and ${Transfer:HomeBucket}. This only applies when the domain of ServerId is S3. EFS does not use session policies. For session policies, Amazon Web Services Transfer Family stores the policy as a JSON blob, instead of the Amazon Resource Name (ARN) of the policy. You save the policy as a JSON blob and pass it in the Policy argument. For an example of a session policy, see Example session policy. For more information, see AssumeRole in the Amazon Web Services Security Token Service API Reference.
235
303
  */
236
304
  Policy?: Policy;
237
305
  PosixProfile?: PosixProfile;
@@ -303,6 +371,10 @@ declare namespace Transfer {
303
371
  * Key-value pairs that can be used to group and search for servers.
304
372
  */
305
373
  Tags?: Tags;
374
+ /**
375
+ * Specifies the workflow ID for the workflow to assign and the execution role used for executing the workflow.
376
+ */
377
+ WorkflowDetails?: WorkflowDetails;
306
378
  }
307
379
  export interface CreateServerResponse {
308
380
  /**
@@ -316,15 +388,15 @@ declare namespace Transfer {
316
388
  */
317
389
  HomeDirectory?: HomeDirectory;
318
390
  /**
319
- * The type of landing directory (folder) you want your users' home directory to be when they log into the server. If you set it to PATH, the user will see the absolute Amazon S3 bucket or EFS paths as is in their file transfer protocol clients. If you set it LOGICAL, you will need to provide mappings in the HomeDirectoryMappings for how you want to make Amazon S3 or EFS paths visible to your users.
391
+ * The type of landing directory (folder) you want your users' home directory to be when they log into the server. If you set it to PATH, the user will see the absolute Amazon S3 bucket or EFS paths as is in their file transfer protocol clients. If you set it LOGICAL, you need to provide mappings in the HomeDirectoryMappings for how you want to make Amazon S3 or EFS paths visible to your users.
320
392
  */
321
393
  HomeDirectoryType?: HomeDirectoryType;
322
394
  /**
323
- * Logical directory mappings that specify what Amazon S3 or Amazon EFS paths and keys should be visible to your user and how you want to make them visible. You must specify the Entry and Target pair, where Entry shows how the path is made visible and Target is the actual Amazon S3 or Amazon EFS path. If you only specify a target, it is displayed as is. You also must ensure that your Amazon Web Services Identity and Access Management (IAM) role provides access to paths in Target. This value can only be set when HomeDirectoryType is set to LOGICAL. The following is an Entry and Target pair example. [ { "Entry": "your-personal-report.pdf", "Target": "/bucket3/customized-reports/${transfer:UserName}.pdf" } ] In most cases, you can use this value instead of the scope-down policy to lock your user down to the designated home directory ("chroot"). To do this, you can set Entry to / and set Target to the HomeDirectory parameter value. The following is an Entry and Target pair example for chroot. [ { "Entry:": "/", "Target": "/bucket_name/home/mydirectory" } ] If the target of a logical directory entry does not exist in Amazon S3 or EFS, the entry is ignored. As a workaround, you can use the Amazon S3 API or EFS API to create 0 byte objects as place holders for your directory. If using the CLI, use the s3api or efsapi call instead of s3 or efs so you can use the put-object operation. For example, you use the following: aws s3api put-object --bucket bucketname --key path/to/folder/. Make sure that the end of the key name ends in a / for it to be considered a folder.
395
+ * Logical directory mappings that specify what Amazon S3 or Amazon EFS paths and keys should be visible to your user and how you want to make them visible. You must specify the Entry and Target pair, where Entry shows how the path is made visible and Target is the actual Amazon S3 or Amazon EFS path. If you only specify a target, it is displayed as is. You also must ensure that your Amazon Web Services Identity and Access Management (IAM) role provides access to paths in Target. This value can only be set when HomeDirectoryType is set to LOGICAL. The following is an Entry and Target pair example. [ { "Entry": "your-personal-report.pdf", "Target": "/bucket3/customized-reports/${transfer:UserName}.pdf" } ] In most cases, you can use this value instead of the session policy to lock your user down to the designated home directory ("chroot"). To do this, you can set Entry to / and set Target to the HomeDirectory parameter value. The following is an Entry and Target pair example for chroot. [ { "Entry:": "/", "Target": "/bucket_name/home/mydirectory" } ] If the target of a logical directory entry does not exist in Amazon S3 or EFS, the entry is ignored. As a workaround, you can use the Amazon S3 API or EFS API to create 0 byte objects as place holders for your directory. If using the CLI, use the s3api or efsapi call instead of s3 or efs so you can use the put-object operation. For example, you use the following: aws s3api put-object --bucket bucketname --key path/to/folder/. Make sure that the end of the key name ends in a / for it to be considered a folder.
324
396
  */
325
397
  HomeDirectoryMappings?: HomeDirectoryMappings;
326
398
  /**
327
- * A scope-down policy for your user so that you can use the same IAM role across multiple users. This policy scopes down user access to portions of their Amazon S3 bucket. Variables that you can use inside this policy include ${Transfer:UserName}, ${Transfer:HomeDirectory}, and ${Transfer:HomeBucket}. This only applies when domain of ServerId is S3. EFS does not use scope down policy. For scope-down policies, Amazon Web Services Transfer Family stores the policy as a JSON blob, instead of the Amazon Resource Name (ARN) of the policy. You save the policy as a JSON blob and pass it in the Policy argument. For an example of a scope-down policy, see Example scope-down policy. For more information, see AssumeRole in the Amazon Web Services Security Token Service API Reference.
399
+ * A session policy for your user so that you can use the same IAM role across multiple users. This policy scopes down user access to portions of their Amazon S3 bucket. Variables that you can use inside this policy include ${Transfer:UserName}, ${Transfer:HomeDirectory}, and ${Transfer:HomeBucket}. This only applies when the domain of ServerId is S3. EFS does not use session policies. For session policies, Amazon Web Services Transfer Family stores the policy as a JSON blob, instead of the Amazon Resource Name (ARN) of the policy. You save the policy as a JSON blob and pass it in the Policy argument. For an example of a session policy, see Example session policy. For more information, see AssumeRole in the Amazon Web Services Security Token Service API Reference.
328
400
  */
329
401
  Policy?: Policy;
330
402
  /**
@@ -348,7 +420,7 @@ declare namespace Transfer {
348
420
  */
349
421
  Tags?: Tags;
350
422
  /**
351
- * A unique string that identifies a user and is associated with a as specified by the ServerId. This user name must be a minimum of 3 and a maximum of 100 characters long. The following are valid characters: a-z, A-Z, 0-9, underscore '_', hyphen '-', period '.', and at sign '@'. The user name can't start with a hyphen, period, or at sign.
423
+ * A unique string that identifies a user and is associated with a ServerId. This user name must be a minimum of 3 and a maximum of 100 characters long. The following are valid characters: a-z, A-Z, 0-9, underscore '_', hyphen '-', period '.', and at sign '@'. The user name can't start with a hyphen, period, or at sign.
352
424
  */
353
425
  UserName: UserName;
354
426
  }
@@ -362,6 +434,47 @@ declare namespace Transfer {
362
434
  */
363
435
  UserName: UserName;
364
436
  }
437
+ export interface CreateWorkflowRequest {
438
+ /**
439
+ * A textual description for the workflow.
440
+ */
441
+ Description?: WorkflowDescription;
442
+ /**
443
+ * Specifies the details for the steps that are in the specified workflow. The TYPE specifies which of the following actions is being taken for this step. Copy: copy the file to another location Custom: custom step with a lambda target Delete: delete the file Tag: add a tag to the file For file location, you specify either the S3 bucket and key, or the EFS filesystem ID and path.
444
+ */
445
+ Steps: WorkflowSteps;
446
+ /**
447
+ * Specifies the steps (actions) to take if any errors are encountered during execution of the workflow.
448
+ */
449
+ OnExceptionSteps?: WorkflowSteps;
450
+ /**
451
+ * Key-value pairs that can be used to group and search for workflows. Tags are metadata attached to workflows for any purpose.
452
+ */
453
+ Tags?: Tags;
454
+ }
455
+ export interface CreateWorkflowResponse {
456
+ /**
457
+ * A unique identifier for the workflow.
458
+ */
459
+ WorkflowId: WorkflowId;
460
+ }
461
+ export interface CustomStepDetails {
462
+ /**
463
+ * The name of the step, used as an identifier.
464
+ */
465
+ Name?: WorkflowStepName;
466
+ /**
467
+ * The ARN for the lambda function that is being called.
468
+ */
469
+ Target?: CustomStepTarget;
470
+ /**
471
+ * Timeout, in seconds, for the step.
472
+ */
473
+ TimeoutSeconds?: CustomStepTimeoutSeconds;
474
+ }
475
+ export type CustomStepStatus = "SUCCESS"|"FAILURE"|string;
476
+ export type CustomStepTarget = string;
477
+ export type CustomStepTimeoutSeconds = number;
365
478
  export type DateImported = Date;
366
479
  export interface DeleteAccessRequest {
367
480
  /**
@@ -393,6 +506,12 @@ declare namespace Transfer {
393
506
  */
394
507
  UserName: UserName;
395
508
  }
509
+ export interface DeleteStepDetails {
510
+ /**
511
+ * The name of the step, used as an identifier.
512
+ */
513
+ Name?: WorkflowStepName;
514
+ }
396
515
  export interface DeleteUserRequest {
397
516
  /**
398
517
  * A system-assigned unique identifier for a server instance that has the user assigned to it.
@@ -403,6 +522,12 @@ declare namespace Transfer {
403
522
  */
404
523
  UserName: UserName;
405
524
  }
525
+ export interface DeleteWorkflowRequest {
526
+ /**
527
+ * A unique identifier for the workflow.
528
+ */
529
+ WorkflowId: WorkflowId;
530
+ }
406
531
  export interface DescribeAccessRequest {
407
532
  /**
408
533
  * A system-assigned unique identifier for a server that has this access assigned.
@@ -423,6 +548,26 @@ declare namespace Transfer {
423
548
  */
424
549
  Access: DescribedAccess;
425
550
  }
551
+ export interface DescribeExecutionRequest {
552
+ /**
553
+ * A unique identifier for the execution of a workflow.
554
+ */
555
+ ExecutionId: ExecutionId;
556
+ /**
557
+ * A unique identifier for the workflow.
558
+ */
559
+ WorkflowId: WorkflowId;
560
+ }
561
+ export interface DescribeExecutionResponse {
562
+ /**
563
+ * A unique identifier for the workflow.
564
+ */
565
+ WorkflowId: WorkflowId;
566
+ /**
567
+ * The structure that contains the details of the workflow' execution.
568
+ */
569
+ Execution: DescribedExecution;
570
+ }
426
571
  export interface DescribeSecurityPolicyRequest {
427
572
  /**
428
573
  * Specifies the name of the security policy that is attached to the server.
@@ -467,21 +612,33 @@ declare namespace Transfer {
467
612
  */
468
613
  User: DescribedUser;
469
614
  }
615
+ export interface DescribeWorkflowRequest {
616
+ /**
617
+ * A unique identifier for the workflow.
618
+ */
619
+ WorkflowId: WorkflowId;
620
+ }
621
+ export interface DescribeWorkflowResponse {
622
+ /**
623
+ * The structure that contains the details of the workflow.
624
+ */
625
+ Workflow: DescribedWorkflow;
626
+ }
470
627
  export interface DescribedAccess {
471
628
  /**
472
629
  * The landing directory (folder) for a user when they log in to the server using the client. A HomeDirectory example is /bucket_name/home/mydirectory.
473
630
  */
474
631
  HomeDirectory?: HomeDirectory;
475
632
  /**
476
- * Logical directory mappings that specify what Amazon S3 or Amazon EFS paths and keys should be visible to your user and how you want to make them visible. You must specify the Entry and Target pair, where Entry shows how the path is made visible and Target is the actual Amazon S3 or Amazon EFS path. If you only specify a target, it is displayed as is. You also must ensure that your Amazon Web Services Identity and Access Management (IAM) role provides access to paths in Target. This value can only be set when HomeDirectoryType is set to LOGICAL. In most cases, you can use this value instead of the scope-down policy to lock down the associated access to the designated home directory ("chroot"). To do this, you can set Entry to '/' and set Target to the HomeDirectory parameter value.
633
+ * Logical directory mappings that specify what Amazon S3 or Amazon EFS paths and keys should be visible to your user and how you want to make them visible. You must specify the Entry and Target pair, where Entry shows how the path is made visible and Target is the actual Amazon S3 or Amazon EFS path. If you only specify a target, it is displayed as is. You also must ensure that your Amazon Web Services Identity and Access Management (IAM) role provides access to paths in Target. This value can only be set when HomeDirectoryType is set to LOGICAL. In most cases, you can use this value instead of the session policy to lock down the associated access to the designated home directory ("chroot"). To do this, you can set Entry to '/' and set Target to the HomeDirectory parameter value.
477
634
  */
478
635
  HomeDirectoryMappings?: HomeDirectoryMappings;
479
636
  /**
480
- * The type of landing directory (folder) you want your users' home directory to be when they log into the server. If you set it to PATH, the user will see the absolute Amazon S3 bucket or EFS paths as is in their file transfer protocol clients. If you set it LOGICAL, you will need to provide mappings in the HomeDirectoryMappings for how you want to make Amazon S3 or EFS paths visible to your users.
637
+ * The type of landing directory (folder) you want your users' home directory to be when they log into the server. If you set it to PATH, the user will see the absolute Amazon S3 bucket or EFS paths as is in their file transfer protocol clients. If you set it LOGICAL, you need to provide mappings in the HomeDirectoryMappings for how you want to make Amazon S3 or EFS paths visible to your users.
481
638
  */
482
639
  HomeDirectoryType?: HomeDirectoryType;
483
640
  /**
484
- * A scope-down policy for your user so that you can use the same IAM role across multiple users. This policy scopes down user access to portions of their Amazon S3 bucket. Variables that you can use inside this policy include ${Transfer:UserName}, ${Transfer:HomeDirectory}, and ${Transfer:HomeBucket}.
641
+ * A session policy for your user so that you can use the same IAM role across multiple users. This policy scopes down user access to portions of their Amazon S3 bucket. Variables that you can use inside this policy include ${Transfer:UserName}, ${Transfer:HomeDirectory}, and ${Transfer:HomeBucket}.
485
642
  */
486
643
  Policy?: Policy;
487
644
  PosixProfile?: PosixProfile;
@@ -494,6 +651,37 @@ declare namespace Transfer {
494
651
  */
495
652
  ExternalId?: ExternalId;
496
653
  }
654
+ export interface DescribedExecution {
655
+ /**
656
+ * A unique identifier for the execution of a workflow.
657
+ */
658
+ ExecutionId?: ExecutionId;
659
+ /**
660
+ * A structure that describes the Amazon S3 or EFS file location. This is the file location when the execution begins: if the file is being copied, this is the initial (as opposed to destination) file location.
661
+ */
662
+ InitialFileLocation?: FileLocation;
663
+ /**
664
+ * A container object for the session details associated with a workflow.
665
+ */
666
+ ServiceMetadata?: ServiceMetadata;
667
+ /**
668
+ * The IAM role associated with the execution.
669
+ */
670
+ ExecutionRole?: Role;
671
+ /**
672
+ * The IAM logging role associated with the execution.
673
+ */
674
+ LoggingConfiguration?: LoggingConfiguration;
675
+ PosixProfile?: PosixProfile;
676
+ /**
677
+ * The status is one of the execution. Can be in progress, completed, exception encountered, or handling the exception.
678
+ */
679
+ Status?: ExecutionStatus;
680
+ /**
681
+ * A structure that describes the execution results. This includes a list of the steps along with the details of each step, error type and message (if any), and the OnExceptionSteps structure.
682
+ */
683
+ Results?: ExecutionResults;
684
+ }
497
685
  export interface DescribedSecurityPolicy {
498
686
  /**
499
687
  * Specifies whether this policy enables Federal Information Processing Standards (FIPS).
@@ -585,6 +773,10 @@ declare namespace Transfer {
585
773
  * Specifies the number of users that are assigned to a server you specified with the ServerId.
586
774
  */
587
775
  UserCount?: UserCount;
776
+ /**
777
+ * Specifies the workflow ID for the workflow to assign and the execution role used for executing the workflow.
778
+ */
779
+ WorkflowDetails?: WorkflowDetails;
588
780
  }
589
781
  export interface DescribedUser {
590
782
  /**
@@ -596,15 +788,15 @@ declare namespace Transfer {
596
788
  */
597
789
  HomeDirectory?: HomeDirectory;
598
790
  /**
599
- * Logical directory mappings that specify what Amazon S3 or Amazon EFS paths and keys should be visible to your user and how you want to make them visible. You must specify the Entry and Target pair, where Entry shows how the path is made visible and Target is the actual Amazon S3 or Amazon EFS path. If you only specify a target, it is displayed as is. You also must ensure that your Amazon Web Services Identity and Access Management (IAM) role provides access to paths in Target. This value can only be set when HomeDirectoryType is set to LOGICAL. In most cases, you can use this value instead of the scope-down policy to lock your user down to the designated home directory ("chroot"). To do this, you can set Entry to '/' and set Target to the HomeDirectory parameter value.
791
+ * Logical directory mappings that specify what Amazon S3 or Amazon EFS paths and keys should be visible to your user and how you want to make them visible. You must specify the Entry and Target pair, where Entry shows how the path is made visible and Target is the actual Amazon S3 or Amazon EFS path. If you only specify a target, it is displayed as is. You also must ensure that your Amazon Web Services Identity and Access Management (IAM) role provides access to paths in Target. This value can only be set when HomeDirectoryType is set to LOGICAL. In most cases, you can use this value instead of the session policy to lock your user down to the designated home directory ("chroot"). To do this, you can set Entry to '/' and set Target to the HomeDirectory parameter value.
600
792
  */
601
793
  HomeDirectoryMappings?: HomeDirectoryMappings;
602
794
  /**
603
- * The type of landing directory (folder) you want your users' home directory to be when they log into the server. If you set it to PATH, the user will see the absolute Amazon S3 bucket or EFS paths as is in their file transfer protocol clients. If you set it LOGICAL, you will need to provide mappings in the HomeDirectoryMappings for how you want to make Amazon S3 or EFS paths visible to your users.
795
+ * The type of landing directory (folder) you want your users' home directory to be when they log into the server. If you set it to PATH, the user will see the absolute Amazon S3 bucket or EFS paths as is in their file transfer protocol clients. If you set it LOGICAL, you need to provide mappings in the HomeDirectoryMappings for how you want to make Amazon S3 or EFS paths visible to your users.
604
796
  */
605
797
  HomeDirectoryType?: HomeDirectoryType;
606
798
  /**
607
- * A scope-down policy for your user so that you can use the same IAM role across multiple users. This policy scopes down user access to portions of their Amazon S3 bucket. Variables that you can use inside this policy include ${Transfer:UserName}, ${Transfer:HomeDirectory}, and ${Transfer:HomeBucket}.
799
+ * A session policy for your user so that you can use the same IAM role across multiple users. This policy scopes down user access to portions of their Amazon S3 bucket. Variables that you can use inside this policy include ${Transfer:UserName}, ${Transfer:HomeDirectory}, and ${Transfer:HomeBucket}.
608
800
  */
609
801
  Policy?: Policy;
610
802
  /**
@@ -628,8 +820,46 @@ declare namespace Transfer {
628
820
  */
629
821
  UserName?: UserName;
630
822
  }
823
+ export interface DescribedWorkflow {
824
+ /**
825
+ * Specifies the unique Amazon Resource Name (ARN) for the workflow.
826
+ */
827
+ Arn: Arn;
828
+ /**
829
+ * Specifies the text description for the workflow.
830
+ */
831
+ Description?: WorkflowDescription;
832
+ /**
833
+ * Specifies the details for the steps that are in the specified workflow.
834
+ */
835
+ Steps?: WorkflowSteps;
836
+ /**
837
+ * Specifies the steps (actions) to take if any errors are encountered during execution of the workflow.
838
+ */
839
+ OnExceptionSteps?: WorkflowSteps;
840
+ /**
841
+ * A unique identifier for the workflow.
842
+ */
843
+ WorkflowId?: WorkflowId;
844
+ /**
845
+ * Key-value pairs that can be used to group and search for workflows. Tags are metadata attached to workflows for any purpose.
846
+ */
847
+ Tags?: Tags;
848
+ }
631
849
  export type DirectoryId = string;
632
850
  export type Domain = "S3"|"EFS"|string;
851
+ export interface EfsFileLocation {
852
+ /**
853
+ * The ID of the file system, assigned by Amazon EFS.
854
+ */
855
+ FileSystemId?: EfsFileSystemId;
856
+ /**
857
+ * The pathname for the folder being used by a workflow.
858
+ */
859
+ Path?: EfsPath;
860
+ }
861
+ export type EfsFileSystemId = string;
862
+ export type EfsPath = string;
633
863
  export interface EndpointDetails {
634
864
  /**
635
865
  * A list of address allocation IDs that are required to attach an Elastic IP address to your server's endpoint. This property can only be set when EndpointType is set to VPC and it is only valid in the UpdateServer API.
@@ -653,7 +883,56 @@ declare namespace Transfer {
653
883
  SecurityGroupIds?: SecurityGroupIds;
654
884
  }
655
885
  export type EndpointType = "PUBLIC"|"VPC"|"VPC_ENDPOINT"|string;
886
+ export interface ExecutionError {
887
+ /**
888
+ * Specifies the error type: currently, the only valid value is PERMISSION_DENIED, which occurs if your policy does not contain the correct permissions to complete one or more of the steps in the workflow.
889
+ */
890
+ Type: ExecutionErrorType;
891
+ /**
892
+ * Specifies the descriptive message that corresponds to the ErrorType.
893
+ */
894
+ Message: ExecutionErrorMessage;
895
+ }
896
+ export type ExecutionErrorMessage = string;
897
+ export type ExecutionErrorType = "PERMISSION_DENIED"|string;
898
+ export type ExecutionId = string;
899
+ export interface ExecutionResults {
900
+ /**
901
+ * Specifies the details for the steps that are in the specified workflow.
902
+ */
903
+ Steps?: ExecutionStepResults;
904
+ /**
905
+ * Specifies the steps (actions) to take if any errors are encountered during execution of the workflow.
906
+ */
907
+ OnExceptionSteps?: ExecutionStepResults;
908
+ }
909
+ export type ExecutionStatus = "IN_PROGRESS"|"COMPLETED"|"EXCEPTION"|"HANDLING_EXCEPTION"|string;
910
+ export interface ExecutionStepResult {
911
+ /**
912
+ * One of the available step types. Copy: copy the file to another location Custom: custom step with a lambda target Delete: delete the file Tag: add a tag to the file
913
+ */
914
+ StepType?: WorkflowStepType;
915
+ /**
916
+ * The values for the key/value pair applied as a tag to the file. Only applicable if the step type is TAG.
917
+ */
918
+ Outputs?: StepResultOutputsJson;
919
+ /**
920
+ * Specifies the details for an error, if it occurred during execution of the specified workfow step.
921
+ */
922
+ Error?: ExecutionError;
923
+ }
924
+ export type ExecutionStepResults = ExecutionStepResult[];
656
925
  export type ExternalId = string;
926
+ export interface FileLocation {
927
+ /**
928
+ * Specifies the S3 details for the file being used, such as bucket, Etag, and so forth.
929
+ */
930
+ S3FileLocation?: S3FileLocation;
931
+ /**
932
+ * Specifies the Amazon EFS ID and the path for the file being used.
933
+ */
934
+ EfsFileLocation?: EfsFileLocation;
935
+ }
657
936
  export type Fips = boolean;
658
937
  export type HomeDirectory = string;
659
938
  export interface HomeDirectoryMapEntry {
@@ -713,6 +992,16 @@ declare namespace Transfer {
713
992
  */
714
993
  UserName: UserName;
715
994
  }
995
+ export interface InputFileLocation {
996
+ /**
997
+ * Specifies the details for the S3 file being copied.
998
+ */
999
+ S3FileLocation?: S3InputFileLocation;
1000
+ /**
1001
+ * Specifies the details for the Amazon EFS file being copied.
1002
+ */
1003
+ EfsFileLocation?: EfsFileLocation;
1004
+ }
716
1005
  export interface ListAccessesRequest {
717
1006
  /**
718
1007
  * Specifies the maximum number of access SIDs to return.
@@ -741,6 +1030,34 @@ declare namespace Transfer {
741
1030
  */
742
1031
  Accesses: ListedAccesses;
743
1032
  }
1033
+ export interface ListExecutionsRequest {
1034
+ /**
1035
+ * Specifies the aximum number of executions to return.
1036
+ */
1037
+ MaxResults?: MaxResults;
1038
+ /**
1039
+ * ListExecutions returns the NextToken parameter in the output. You can then pass the NextToken parameter in a subsequent command to continue listing additional executions. This is useful for pagination, for instance. If you have 100 executions for a workflow, you might only want to list first 10. If so, callthe API by specifing the max-results: aws transfer list-executions --max-results 10 This returns details for the first 10 executions, as well as the pointer (NextToken) to the eleventh execution. You can now call the API again, suppling the NextToken value you received: aws transfer list-executions --max-results 10 --next-token $somePointerReturnedFromPreviousListResult This call returns the next 10 executions, the 11th through the 20th. You can then repeat the call until the details for all 100 executions have been returned.
1040
+ */
1041
+ NextToken?: NextToken;
1042
+ /**
1043
+ * A unique identifier for the workflow.
1044
+ */
1045
+ WorkflowId: WorkflowId;
1046
+ }
1047
+ export interface ListExecutionsResponse {
1048
+ /**
1049
+ * ListExecutions returns the NextToken parameter in the output. You can then pass the NextToken parameter in a subsequent command to continue listing additional executions.
1050
+ */
1051
+ NextToken?: NextToken;
1052
+ /**
1053
+ * A unique identifier for the workflow.
1054
+ */
1055
+ WorkflowId: WorkflowId;
1056
+ /**
1057
+ * Returns the details for each execution. NextToken: returned from a call to several APIs, you can use pass it to a subsequent command to continue listing additional executions. StartTime: timestamp indicating when the execution began. Executions: details of the execution, including the execution ID, initial file location, and Service metadata. Status: one of the following values: IN_PROGRESS, COMPLETED, EXCEPTION, HANDLING_EXEPTION.
1058
+ */
1059
+ Executions: ListedExecutions;
1060
+ }
744
1061
  export interface ListSecurityPoliciesRequest {
745
1062
  /**
746
1063
  * Specifies the number of security policies to return as a response to the ListSecurityPolicies query.
@@ -837,13 +1154,33 @@ declare namespace Transfer {
837
1154
  */
838
1155
  Users: ListedUsers;
839
1156
  }
1157
+ export interface ListWorkflowsRequest {
1158
+ /**
1159
+ * Specifies the maximum number of workflows to return.
1160
+ */
1161
+ MaxResults?: MaxResults;
1162
+ /**
1163
+ * ListWorkflows returns the NextToken parameter in the output. You can then pass the NextToken parameter in a subsequent command to continue listing additional workflows.
1164
+ */
1165
+ NextToken?: NextToken;
1166
+ }
1167
+ export interface ListWorkflowsResponse {
1168
+ /**
1169
+ * ListWorkflows returns the NextToken parameter in the output. You can then pass the NextToken parameter in a subsequent command to continue listing additional workflows.
1170
+ */
1171
+ NextToken?: NextToken;
1172
+ /**
1173
+ * Returns the Arn, WorkflowId, and Description for each workflow.
1174
+ */
1175
+ Workflows: ListedWorkflows;
1176
+ }
840
1177
  export interface ListedAccess {
841
1178
  /**
842
1179
  * The landing directory (folder) for a user when they log in to the server using the client. A HomeDirectory example is /bucket_name/home/mydirectory.
843
1180
  */
844
1181
  HomeDirectory?: HomeDirectory;
845
1182
  /**
846
- * The type of landing directory (folder) you want your users' home directory to be when they log into the server. If you set it to PATH, the user will see the absolute Amazon S3 bucket or EFS paths as is in their file transfer protocol clients. If you set it LOGICAL, you will need to provide mappings in the HomeDirectoryMappings for how you want to make Amazon S3 or EFS paths visible to your users.
1183
+ * The type of landing directory (folder) you want your users' home directory to be when they log into the server. If you set it to PATH, the user will see the absolute Amazon S3 bucket or EFS paths as is in their file transfer protocol clients. If you set it LOGICAL, you need to provide mappings in the HomeDirectoryMappings for how you want to make Amazon S3 or EFS paths visible to your users.
847
1184
  */
848
1185
  HomeDirectoryType?: HomeDirectoryType;
849
1186
  /**
@@ -856,6 +1193,25 @@ declare namespace Transfer {
856
1193
  ExternalId?: ExternalId;
857
1194
  }
858
1195
  export type ListedAccesses = ListedAccess[];
1196
+ export interface ListedExecution {
1197
+ /**
1198
+ * A unique identifier for the execution of a workflow.
1199
+ */
1200
+ ExecutionId?: ExecutionId;
1201
+ /**
1202
+ * A structure that describes the Amazon S3 or EFS file location. This is the file location when the execution begins: if the file is being copied, this is the initial (as opposed to destination) file location.
1203
+ */
1204
+ InitialFileLocation?: FileLocation;
1205
+ /**
1206
+ * A container object for the session details associated with a workflow.
1207
+ */
1208
+ ServiceMetadata?: ServiceMetadata;
1209
+ /**
1210
+ * The status is one of the execution. Can be in progress, completed, exception encountered, or handling the exception.
1211
+ */
1212
+ Status?: ExecutionStatus;
1213
+ }
1214
+ export type ListedExecutions = ListedExecution[];
859
1215
  export interface ListedServer {
860
1216
  /**
861
1217
  * Specifies the unique Amazon Resource Name (ARN) for a server to be listed.
@@ -901,7 +1257,7 @@ declare namespace Transfer {
901
1257
  */
902
1258
  HomeDirectory?: HomeDirectory;
903
1259
  /**
904
- * The type of landing directory (folder) you want your users' home directory to be when they log into the server. If you set it to PATH, the user will see the absolute Amazon S3 bucket or EFS paths as is in their file transfer protocol clients. If you set it LOGICAL, you will need to provide mappings in the HomeDirectoryMappings for how you want to make Amazon S3 or EFS paths visible to your users.
1260
+ * The type of landing directory (folder) you want your users' home directory to be when they log into the server. If you set it to PATH, the user will see the absolute Amazon S3 bucket or EFS paths as is in their file transfer protocol clients. If you set it LOGICAL, you need to provide mappings in the HomeDirectoryMappings for how you want to make Amazon S3 or EFS paths visible to your users.
905
1261
  */
906
1262
  HomeDirectoryType?: HomeDirectoryType;
907
1263
  /**
@@ -918,12 +1274,40 @@ declare namespace Transfer {
918
1274
  UserName?: UserName;
919
1275
  }
920
1276
  export type ListedUsers = ListedUser[];
1277
+ export interface ListedWorkflow {
1278
+ /**
1279
+ * A unique identifier for the workflow.
1280
+ */
1281
+ WorkflowId?: WorkflowId;
1282
+ /**
1283
+ * Specifies the text description for the workflow.
1284
+ */
1285
+ Description?: WorkflowDescription;
1286
+ /**
1287
+ * Specifies the unique Amazon Resource Name (ARN) for the workflow.
1288
+ */
1289
+ Arn?: Arn;
1290
+ }
1291
+ export type ListedWorkflows = ListedWorkflow[];
1292
+ export type LogGroupName = string;
1293
+ export interface LoggingConfiguration {
1294
+ /**
1295
+ * Specifies the Amazon Resource Name (ARN) of the Amazon Web Services Identity and Access Management (IAM) role that allows a server to turn on Amazon CloudWatch logging for Amazon S3 or Amazon EFS events. When set, user activity can be viewed in your CloudWatch logs.
1296
+ */
1297
+ LoggingRole?: Role;
1298
+ /**
1299
+ * The name of the CloudWatch logging group for the Amazon Web Services Transfer server to which this workflow belongs.
1300
+ */
1301
+ LogGroupName?: LogGroupName;
1302
+ }
921
1303
  export type MapEntry = string;
922
1304
  export type MapTarget = string;
923
1305
  export type MaxResults = number;
924
1306
  export type Message = string;
925
1307
  export type NextToken = string;
926
1308
  export type NullableRole = string;
1309
+ export type OnUploadWorkflowDetails = WorkflowDetail[];
1310
+ export type OverwriteExisting = "TRUE"|"FALSE"|string;
927
1311
  export type PassiveIp = string;
928
1312
  export type Policy = string;
929
1313
  export type PosixId = number;
@@ -944,13 +1328,58 @@ declare namespace Transfer {
944
1328
  export type Protocol = "SFTP"|"FTP"|"FTPS"|string;
945
1329
  export interface ProtocolDetails {
946
1330
  /**
947
- * Indicates passive mode, for FTP and FTPS protocols. Enter a single dotted-quad IPv4 address, such as the external IP address of a firewall, router, or load balancer. For example: aws transfer update-server --protocol-details PassiveIp=0.0.0.0 Replace 0.0.0.0 in the example above with the actual IP address you want to use.
1331
+ * Indicates passive mode, for FTP and FTPS protocols. Enter a single dotted-quad IPv4 address, such as the external IP address of a firewall, router, or load balancer. For example: aws transfer update-server --protocol-details PassiveIp=0.0.0.0 Replace 0.0.0.0 in the example above with the actual IP address you want to use. If you change the PassiveIp value, you must stop and then restart your Transfer server for the change to take effect. For details on using Passive IP (PASV) in a NAT environment, see Configuring your FTPS server behind a firewall or NAT with Amazon Web Services Transfer Family.
948
1332
  */
949
1333
  PassiveIp?: PassiveIp;
950
1334
  }
951
1335
  export type Protocols = Protocol[];
952
1336
  export type Response = string;
953
1337
  export type Role = string;
1338
+ export type S3Bucket = string;
1339
+ export type S3Etag = string;
1340
+ export interface S3FileLocation {
1341
+ /**
1342
+ * Specifies the S3 bucket that contains the file being used.
1343
+ */
1344
+ Bucket?: S3Bucket;
1345
+ /**
1346
+ * The name assigned to the file when it was created in S3. You use the object key to retrieve the object.
1347
+ */
1348
+ Key?: S3Key;
1349
+ /**
1350
+ * Specifies the file version.
1351
+ */
1352
+ VersionId?: S3VersionId;
1353
+ /**
1354
+ * The entity tag is a hash of the object. The ETag reflects changes only to the contents of an object, not its metadata.
1355
+ */
1356
+ Etag?: S3Etag;
1357
+ }
1358
+ export interface S3InputFileLocation {
1359
+ /**
1360
+ * Specifies the S3 bucket that contains the file being copied.
1361
+ */
1362
+ Bucket?: S3Bucket;
1363
+ /**
1364
+ * The name assigned to the file when it was created in S3. You use the object key to retrieve the object.
1365
+ */
1366
+ Key?: S3Key;
1367
+ }
1368
+ export type S3Key = string;
1369
+ export interface S3Tag {
1370
+ /**
1371
+ * The name assigned to the tag that you create.
1372
+ */
1373
+ Key: S3TagKey;
1374
+ /**
1375
+ * The value that corresponds to the key.
1376
+ */
1377
+ Value: S3TagValue;
1378
+ }
1379
+ export type S3TagKey = string;
1380
+ export type S3TagValue = string;
1381
+ export type S3Tags = S3Tag[];
1382
+ export type S3VersionId = string;
954
1383
  export type SecondaryGids = PosixId[];
955
1384
  export type SecurityGroupId = string;
956
1385
  export type SecurityGroupIds = SecurityGroupId[];
@@ -958,7 +1387,34 @@ declare namespace Transfer {
958
1387
  export type SecurityPolicyNames = SecurityPolicyName[];
959
1388
  export type SecurityPolicyOption = string;
960
1389
  export type SecurityPolicyOptions = SecurityPolicyOption[];
1390
+ export interface SendWorkflowStepStateRequest {
1391
+ /**
1392
+ * A unique identifier for the workflow.
1393
+ */
1394
+ WorkflowId: WorkflowId;
1395
+ /**
1396
+ * A unique identifier for the execution of a workflow.
1397
+ */
1398
+ ExecutionId: ExecutionId;
1399
+ /**
1400
+ * Used to distinguish between multiple callbacks for multiple Lambda steps within the same execution.
1401
+ */
1402
+ Token: CallbackToken;
1403
+ /**
1404
+ * Indicates whether the specified step succeeded or failed.
1405
+ */
1406
+ Status: CustomStepStatus;
1407
+ }
1408
+ export interface SendWorkflowStepStateResponse {
1409
+ }
961
1410
  export type ServerId = string;
1411
+ export interface ServiceMetadata {
1412
+ /**
1413
+ * The Server ID (ServerId), Session ID (SessionId) and user (UserName) make up the UserDetails.
1414
+ */
1415
+ UserDetails: UserDetails;
1416
+ }
1417
+ export type SessionId = string;
962
1418
  export type SourceIp = string;
963
1419
  export interface SshPublicKey {
964
1420
  /**
@@ -986,6 +1442,7 @@ declare namespace Transfer {
986
1442
  }
987
1443
  export type State = "OFFLINE"|"ONLINE"|"STARTING"|"STOPPING"|"START_FAILED"|"STOP_FAILED"|string;
988
1444
  export type StatusCode = number;
1445
+ export type StepResultOutputsJson = string;
989
1446
  export interface StopServerRequest {
990
1447
  /**
991
1448
  * A system-assigned unique identifier for a server that you stopped.
@@ -1016,6 +1473,16 @@ declare namespace Transfer {
1016
1473
  */
1017
1474
  Tags: Tags;
1018
1475
  }
1476
+ export interface TagStepDetails {
1477
+ /**
1478
+ * The name of the step, used as an identifier.
1479
+ */
1480
+ Name?: WorkflowStepName;
1481
+ /**
1482
+ * Array that contains from 1 to 10 key/value pairs.
1483
+ */
1484
+ Tags?: S3Tags;
1485
+ }
1019
1486
  export type TagValue = string;
1020
1487
  export type Tags = Tag[];
1021
1488
  export interface TestIdentityProviderRequest {
@@ -1074,15 +1541,15 @@ declare namespace Transfer {
1074
1541
  */
1075
1542
  HomeDirectory?: HomeDirectory;
1076
1543
  /**
1077
- * The type of landing directory (folder) you want your users' home directory to be when they log into the server. If you set it to PATH, the user will see the absolute Amazon S3 bucket or EFS paths as is in their file transfer protocol clients. If you set it LOGICAL, you will need to provide mappings in the HomeDirectoryMappings for how you want to make Amazon S3 or EFS paths visible to your users.
1544
+ * The type of landing directory (folder) you want your users' home directory to be when they log into the server. If you set it to PATH, the user will see the absolute Amazon S3 bucket or EFS paths as is in their file transfer protocol clients. If you set it LOGICAL, you need to provide mappings in the HomeDirectoryMappings for how you want to make Amazon S3 or EFS paths visible to your users.
1078
1545
  */
1079
1546
  HomeDirectoryType?: HomeDirectoryType;
1080
1547
  /**
1081
- * Logical directory mappings that specify what Amazon S3 or Amazon EFS paths and keys should be visible to your user and how you want to make them visible. You must specify the Entry and Target pair, where Entry shows how the path is made visible and Target is the actual Amazon S3 or Amazon EFS path. If you only specify a target, it is displayed as is. You also must ensure that your Amazon Web Services Identity and Access Management (IAM) role provides access to paths in Target. This value can only be set when HomeDirectoryType is set to LOGICAL. The following is an Entry and Target pair example. [ { "Entry": "your-personal-report.pdf", "Target": "/bucket3/customized-reports/${transfer:UserName}.pdf" } ] In most cases, you can use this value instead of the scope-down policy to lock down your user to the designated home directory ("chroot"). To do this, you can set Entry to / and set Target to the HomeDirectory parameter value. The following is an Entry and Target pair example for chroot. [ { "Entry:": "/", "Target": "/bucket_name/home/mydirectory" } ] If the target of a logical directory entry does not exist in Amazon S3 or EFS, the entry is ignored. As a workaround, you can use the Amazon S3 API or EFS API to create 0 byte objects as place holders for your directory. If using the CLI, use the s3api or efsapi call instead of s3 or efs so you can use the put-object operation. For example, you use the following: aws s3api put-object --bucket bucketname --key path/to/folder/. Make sure that the end of the key name ends in a / for it to be considered a folder.
1548
+ * Logical directory mappings that specify what Amazon S3 or Amazon EFS paths and keys should be visible to your user and how you want to make them visible. You must specify the Entry and Target pair, where Entry shows how the path is made visible and Target is the actual Amazon S3 or Amazon EFS path. If you only specify a target, it is displayed as is. You also must ensure that your Amazon Web Services Identity and Access Management (IAM) role provides access to paths in Target. This value can only be set when HomeDirectoryType is set to LOGICAL. The following is an Entry and Target pair example. [ { "Entry": "your-personal-report.pdf", "Target": "/bucket3/customized-reports/${transfer:UserName}.pdf" } ] In most cases, you can use this value instead of the session policy to lock down your user to the designated home directory ("chroot"). To do this, you can set Entry to / and set Target to the HomeDirectory parameter value. The following is an Entry and Target pair example for chroot. [ { "Entry:": "/", "Target": "/bucket_name/home/mydirectory" } ] If the target of a logical directory entry does not exist in Amazon S3 or EFS, the entry is ignored. As a workaround, you can use the Amazon S3 API or EFS API to create 0 byte objects as place holders for your directory. If using the CLI, use the s3api or efsapi call instead of s3 or efs so you can use the put-object operation. For example, you use the following: aws s3api put-object --bucket bucketname --key path/to/folder/. Make sure that the end of the key name ends in a / for it to be considered a folder.
1082
1549
  */
1083
1550
  HomeDirectoryMappings?: HomeDirectoryMappings;
1084
1551
  /**
1085
- * A scope-down policy for your user so that you can use the same IAM role across multiple users. This policy scopes down user access to portions of their Amazon S3 bucket. Variables that you can use inside this policy include ${Transfer:UserName}, ${Transfer:HomeDirectory}, and ${Transfer:HomeBucket}. This only applies when domain of ServerId is S3. Amazon EFS does not use scope down policy. For scope-down policies, Amazon Web ServicesTransfer Family stores the policy as a JSON blob, instead of the Amazon Resource Name (ARN) of the policy. You save the policy as a JSON blob and pass it in the Policy argument. For an example of a scope-down policy, see Example scope-down policy. For more information, see AssumeRole in the Amazon Web ServicesSecurity Token Service API Reference.
1552
+ * A session policy for your user so that you can use the same IAM role across multiple users. This policy scopes down user access to portions of their Amazon S3 bucket. Variables that you can use inside this policy include ${Transfer:UserName}, ${Transfer:HomeDirectory}, and ${Transfer:HomeBucket}. This only applies when the domain of ServerId is S3. EFS does not use session policies. For session policies, Amazon Web Services Transfer Family stores the policy as a JSON blob, instead of the Amazon Resource Name (ARN) of the policy. You save the policy as a JSON blob and pass it in the Policy argument. For an example of a session policy, see Example session policy. For more information, see AssumeRole in the Amazon Web ServicesSecurity Token Service API Reference.
1086
1553
  */
1087
1554
  Policy?: Policy;
1088
1555
  PosixProfile?: PosixProfile;
@@ -1150,6 +1617,10 @@ declare namespace Transfer {
1150
1617
  * A system-assigned unique identifier for a server instance that the user account is assigned to.
1151
1618
  */
1152
1619
  ServerId: ServerId;
1620
+ /**
1621
+ * Specifies the workflow ID for the workflow to assign and the execution role used for executing the workflow.
1622
+ */
1623
+ WorkflowDetails?: WorkflowDetails;
1153
1624
  }
1154
1625
  export interface UpdateServerResponse {
1155
1626
  /**
@@ -1163,15 +1634,15 @@ declare namespace Transfer {
1163
1634
  */
1164
1635
  HomeDirectory?: HomeDirectory;
1165
1636
  /**
1166
- * The type of landing directory (folder) you want your users' home directory to be when they log into the server. If you set it to PATH, the user will see the absolute Amazon S3 bucket or EFS paths as is in their file transfer protocol clients. If you set it LOGICAL, you will need to provide mappings in the HomeDirectoryMappings for how you want to make Amazon S3 or EFS paths visible to your users.
1637
+ * The type of landing directory (folder) you want your users' home directory to be when they log into the server. If you set it to PATH, the user will see the absolute Amazon S3 bucket or EFS paths as is in their file transfer protocol clients. If you set it LOGICAL, you need to provide mappings in the HomeDirectoryMappings for how you want to make Amazon S3 or EFS paths visible to your users.
1167
1638
  */
1168
1639
  HomeDirectoryType?: HomeDirectoryType;
1169
1640
  /**
1170
- * Logical directory mappings that specify what Amazon S3 or Amazon EFS paths and keys should be visible to your user and how you want to make them visible. You must specify the Entry and Target pair, where Entry shows how the path is made visible and Target is the actual Amazon S3 or Amazon EFS path. If you only specify a target, it is displayed as is. You also must ensure that your Amazon Web Services Identity and Access Management (IAM) role provides access to paths in Target. This value can only be set when HomeDirectoryType is set to LOGICAL. The following is an Entry and Target pair example. [ { "Entry": "your-personal-report.pdf", "Target": "/bucket3/customized-reports/${transfer:UserName}.pdf" } ] In most cases, you can use this value instead of the scope-down policy to lock down your user to the designated home directory ("chroot"). To do this, you can set Entry to '/' and set Target to the HomeDirectory parameter value. The following is an Entry and Target pair example for chroot. [ { "Entry:": "/", "Target": "/bucket_name/home/mydirectory" } ] If the target of a logical directory entry does not exist in Amazon S3 or EFS, the entry is ignored. As a workaround, you can use the Amazon S3 API or EFS API to create 0 byte objects as place holders for your directory. If using the CLI, use the s3api or efsapi call instead of s3 or efs so you can use the put-object operation. For example, you use the following: aws s3api put-object --bucket bucketname --key path/to/folder/. Make sure that the end of the key name ends in a / for it to be considered a folder.
1641
+ * Logical directory mappings that specify what Amazon S3 or Amazon EFS paths and keys should be visible to your user and how you want to make them visible. You must specify the Entry and Target pair, where Entry shows how the path is made visible and Target is the actual Amazon S3 or Amazon EFS path. If you only specify a target, it is displayed as is. You also must ensure that your Amazon Web Services Identity and Access Management (IAM) role provides access to paths in Target. This value can only be set when HomeDirectoryType is set to LOGICAL. The following is an Entry and Target pair example. [ { "Entry": "your-personal-report.pdf", "Target": "/bucket3/customized-reports/${transfer:UserName}.pdf" } ] In most cases, you can use this value instead of the session policy to lock down your user to the designated home directory ("chroot"). To do this, you can set Entry to '/' and set Target to the HomeDirectory parameter value. The following is an Entry and Target pair example for chroot. [ { "Entry:": "/", "Target": "/bucket_name/home/mydirectory" } ] If the target of a logical directory entry does not exist in Amazon S3 or EFS, the entry is ignored. As a workaround, you can use the Amazon S3 API or EFS API to create 0 byte objects as place holders for your directory. If using the CLI, use the s3api or efsapi call instead of s3 or efs so you can use the put-object operation. For example, you use the following: aws s3api put-object --bucket bucketname --key path/to/folder/. Make sure that the end of the key name ends in a / for it to be considered a folder.
1171
1642
  */
1172
1643
  HomeDirectoryMappings?: HomeDirectoryMappings;
1173
1644
  /**
1174
- * A scope-down policy for your user so that you can use the same IAM role across multiple users. This policy scopes down user access to portions of their Amazon S3 bucket. Variables that you can use inside this policy include ${Transfer:UserName}, ${Transfer:HomeDirectory}, and ${Transfer:HomeBucket}. This only applies when domain of ServerId is S3. Amazon EFS does not use scope-down policies. For scope-down policies, Amazon Web ServicesTransfer Family stores the policy as a JSON blob, instead of the Amazon Resource Name (ARN) of the policy. You save the policy as a JSON blob and pass it in the Policy argument. For an example of a scope-down policy, see Creating a scope-down policy. For more information, see AssumeRole in the Amazon Web Services Security Token Service API Reference.
1645
+ * A session policy for your user so that you can use the same IAM role across multiple users. This policy scopes down user access to portions of their Amazon S3 bucket. Variables that you can use inside this policy include ${Transfer:UserName}, ${Transfer:HomeDirectory}, and ${Transfer:HomeBucket}. This only applies when the domain of ServerId is S3. EFS does not use session policies. For session policies, Amazon Web Services Transfer Family stores the policy as a JSON blob, instead of the Amazon Resource Name (ARN) of the policy. You save the policy as a JSON blob and pass it in the Policy argument. For an example of a session policy, see Creating a session policy. For more information, see AssumeRole in the Amazon Web Services Security Token Service API Reference.
1175
1646
  */
1176
1647
  Policy?: Policy;
1177
1648
  /**
@@ -1203,10 +1674,67 @@ declare namespace Transfer {
1203
1674
  }
1204
1675
  export type Url = string;
1205
1676
  export type UserCount = number;
1677
+ export interface UserDetails {
1678
+ /**
1679
+ * A unique string that identifies a user account associated with a server.
1680
+ */
1681
+ UserName: UserName;
1682
+ /**
1683
+ * The system-assigned unique identifier for a Transfer server instance.
1684
+ */
1685
+ ServerId: ServerId;
1686
+ /**
1687
+ * The system-assigned unique identifier for a session that corresponds to the workflow.
1688
+ */
1689
+ SessionId?: SessionId;
1690
+ }
1206
1691
  export type UserName = string;
1207
1692
  export type UserPassword = string;
1208
1693
  export type VpcEndpointId = string;
1209
1694
  export type VpcId = string;
1695
+ export type WorkflowDescription = string;
1696
+ export interface WorkflowDetail {
1697
+ /**
1698
+ * A unique identifier for the workflow.
1699
+ */
1700
+ WorkflowId: WorkflowId;
1701
+ /**
1702
+ * Includes the necessary permissions for S3, EFS, and Lambda operations that Transfer can assume, so that all workflow steps can operate on the required resources
1703
+ */
1704
+ ExecutionRole: Role;
1705
+ }
1706
+ export interface WorkflowDetails {
1707
+ /**
1708
+ * A trigger that starts a workflow: the workflow begins to execute after a file is uploaded.
1709
+ */
1710
+ OnUpload: OnUploadWorkflowDetails;
1711
+ }
1712
+ export type WorkflowId = string;
1713
+ export interface WorkflowStep {
1714
+ /**
1715
+ * Currently, the following step types are supported. Copy: copy the file to another location Custom: custom step with a lambda target Delete: delete the file Tag: add a tag to the file
1716
+ */
1717
+ Type?: WorkflowStepType;
1718
+ /**
1719
+ * Details for a step that performs a file copy. Consists of the following values: A description An S3 or EFS location for the destination of the file copy. A flag that indicates whether or not to overwrite an existing file of the same name. The default is FALSE.
1720
+ */
1721
+ CopyStepDetails?: CopyStepDetails;
1722
+ /**
1723
+ * Details for a step that invokes a lambda function. Consists of the lambda function name, target, and timeout (in seconds).
1724
+ */
1725
+ CustomStepDetails?: CustomStepDetails;
1726
+ /**
1727
+ * You need to specify the name of the file to be deleted.
1728
+ */
1729
+ DeleteStepDetails?: DeleteStepDetails;
1730
+ /**
1731
+ * Details for a step that creates one or more tags. You specify one or more tags: each tag contains a key/value pair.
1732
+ */
1733
+ TagStepDetails?: TagStepDetails;
1734
+ }
1735
+ export type WorkflowStepName = string;
1736
+ export type WorkflowStepType = "COPY"|"CUSTOM"|"TAG"|"DELETE"|string;
1737
+ export type WorkflowSteps = WorkflowStep[];
1210
1738
  /**
1211
1739
  * A string in YYYY-MM-DD format that represents the latest possible API version that can be used in this service. Specify 'latest' to use the latest possible version.
1212
1740
  */