aws-sdk-transfer 1.38.0 → 1.39.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.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 0d6bd63fab08e6afb7db7c6a1ef2a3eba12e8868ed0e32afda783c6902c321b4
4
- data.tar.gz: 9e4b7b6962f5794bf92236567fa27ee20813270d8c707862685b0bb701f50558
3
+ metadata.gz: d4aeeabaf52b3d987de21775bdd72ddacde5c90a0d7f1316ada59222bfb5f7fb
4
+ data.tar.gz: a8f1d20e082b1c9affa8e0ebf7c73ea7b7a4133180e4ea481bee714f4fccb694
5
5
  SHA512:
6
- metadata.gz: 7da7b0ef67def7465551e0d2c31be6ba11c2bd4db4721cb5216b693993131974f86ed51964a0f6b195d3d85da353524df504039b62c2a6792c9e27064a48cde9
7
- data.tar.gz: ca9529ee834f5d3d8f52464a184dfc594a13095b0a6314c394c827da3579f77740c28225ef3269a007367659606509e54fa1e97d42b075d6f6228ebc3bcac723
6
+ metadata.gz: f3018d99924cd5937cb57926954b46f5afa49682784c5dca5e3f64c87e53876e51f76d79602e575284a71beb58a325a6882806720e14d6f0d32315685eb2a5ab
7
+ data.tar.gz: ab3a9813374212092f1b8d3d4c56557a3dc52becedd858678c71fb239d235a1e6c341e5642f31064b1e0f8ceb2d8f251c89243cd50ea9aa7169e27dd4464a074
data/CHANGELOG.md CHANGED
@@ -1,6 +1,11 @@
1
1
  Unreleased Changes
2
2
  ------------------
3
3
 
4
+ 1.39.0 (2021-09-02)
5
+ ------------------
6
+
7
+ * Feature - AWS Transfer Family introduces Managed Workflows for creating, executing, monitoring, and standardizing post file transfer processing
8
+
4
9
  1.38.0 (2021-09-01)
5
10
  ------------------
6
11
 
data/VERSION CHANGED
@@ -1 +1 @@
1
- 1.38.0
1
+ 1.39.0
@@ -356,9 +356,8 @@ module Aws::Transfer
356
356
  # directory to be when they log into the server. If you set it to
357
357
  # `PATH`, the user will see the absolute Amazon S3 bucket or EFS paths
358
358
  # as is in their file transfer protocol clients. If you set it
359
- # `LOGICAL`, you will need to provide mappings in the
360
- # `HomeDirectoryMappings` for how you want to make Amazon S3 or EFS
361
- # paths visible to your users.
359
+ # `LOGICAL`, you need to provide mappings in the `HomeDirectoryMappings`
360
+ # for how you want to make Amazon S3 or EFS paths visible to your users.
362
361
  #
363
362
  # @option params [Array<Types::HomeDirectoryMapEntry>] :home_directory_mappings
364
363
  # Logical directory mappings that specify what Amazon S3 or Amazon EFS
@@ -376,10 +375,10 @@ module Aws::Transfer
376
375
  # `[ \{ "Entry": "your-personal-report.pdf", "Target":
377
376
  # "/bucket3/customized-reports/$\{transfer:UserName\}.pdf" \} ]`
378
377
  #
379
- # In most cases, you can use this value instead of the scope-down policy
380
- # to lock down your user to the designated home directory
381
- # ("`chroot`"). To do this, you can set `Entry` to `/` and set
382
- # `Target` to the `HomeDirectory` parameter value.
378
+ # In most cases, you can use this value instead of the session policy to
379
+ # lock down your user to the designated home directory ("`chroot`").
380
+ # To do this, you can set `Entry` to `/` and set `Target` to the
381
+ # `HomeDirectory` parameter value.
383
382
  #
384
383
  # The following is an `Entry` and `Target` pair example for `chroot`.
385
384
  #
@@ -397,22 +396,21 @@ module Aws::Transfer
397
396
  # </note>
398
397
  #
399
398
  # @option params [String] :policy
400
- # A scope-down policy for your user so that you can use the same IAM
401
- # role across multiple users. This policy scopes down user access to
402
- # portions of their Amazon S3 bucket. Variables that you can use inside
403
- # this policy include `$\{Transfer:UserName\}`,
399
+ # A session policy for your user so that you can use the same IAM role
400
+ # across multiple users. This policy scopes down user access to portions
401
+ # of their Amazon S3 bucket. Variables that you can use inside this
402
+ # policy include `$\{Transfer:UserName\}`,
404
403
  # `$\{Transfer:HomeDirectory\}`, and `$\{Transfer:HomeBucket\}`.
405
404
  #
406
- # <note markdown="1"> This only applies when domain of `ServerId` is S3. Amazon EFS does not
407
- # use scope-down policies.
405
+ # <note markdown="1"> This only applies when the domain of `ServerId` is S3. EFS does not
406
+ # use session policies.
408
407
  #
409
- # For scope-down policies, Amazon Web Services Transfer Family stores
410
- # the policy as a JSON blob, instead of the Amazon Resource Name (ARN)
411
- # of the policy. You save the policy as a JSON blob and pass it in the
408
+ # For session policies, Amazon Web Services Transfer Family stores the
409
+ # policy as a JSON blob, instead of the Amazon Resource Name (ARN) of
410
+ # the policy. You save the policy as a JSON blob and pass it in the
412
411
  # `Policy` argument.
413
412
  #
414
- # For an example of a scope-down policy, see [Example scope-down
415
- # policy][1].
413
+ # For an example of a session policy, see [Example session policy][1].
416
414
  #
417
415
  # For more information, see [AssumeRole][2] in the *Amazon Web Services
418
416
  # Security Token Service API Reference*.
@@ -421,7 +419,7 @@ module Aws::Transfer
421
419
  #
422
420
  #
423
421
  #
424
- # [1]: https://docs.aws.amazon.com/transfer/latest/userguide/scope-down-policy.html
422
+ # [1]: https://docs.aws.amazon.com/transfer/latest/userguide/session-policy.html
425
423
  # [2]: https://docs.aws.amazon.com/STS/latest/APIReference/API_AssumeRole.html
426
424
  #
427
425
  # @option params [Types::PosixProfile] :posix_profile
@@ -677,6 +675,10 @@ module Aws::Transfer
677
675
  # @option params [Array<Types::Tag>] :tags
678
676
  # Key-value pairs that can be used to group and search for servers.
679
677
  #
678
+ # @option params [Types::WorkflowDetails] :workflow_details
679
+ # Specifies the workflow ID for the workflow to assign and the execution
680
+ # role used for executing the workflow.
681
+ #
680
682
  # @return [Types::CreateServerResponse] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
681
683
  #
682
684
  # * {Types::CreateServerResponse#server_id #server_id} => String
@@ -710,6 +712,14 @@ module Aws::Transfer
710
712
  # value: "TagValue", # required
711
713
  # },
712
714
  # ],
715
+ # workflow_details: {
716
+ # on_upload: [ # required
717
+ # {
718
+ # workflow_id: "WorkflowId", # required
719
+ # execution_role: "Role", # required
720
+ # },
721
+ # ],
722
+ # },
713
723
  # })
714
724
  #
715
725
  # @example Response structure
@@ -731,8 +741,8 @@ module Aws::Transfer
731
741
  # Using parameters for `CreateUser`, you can specify the user name, set
732
742
  # the home directory, store the user's public key, and assign the
733
743
  # user's Amazon Web Services Identity and Access Management (IAM) role.
734
- # You can also optionally add a scope-down policy, and assign metadata
735
- # with tags that can be used to group and search for users.
744
+ # You can also optionally add a session policy, and assign metadata with
745
+ # tags that can be used to group and search for users.
736
746
  #
737
747
  # @option params [String] :home_directory
738
748
  # The landing directory (folder) for a user when they log in to the
@@ -745,9 +755,8 @@ module Aws::Transfer
745
755
  # directory to be when they log into the server. If you set it to
746
756
  # `PATH`, the user will see the absolute Amazon S3 bucket or EFS paths
747
757
  # as is in their file transfer protocol clients. If you set it
748
- # `LOGICAL`, you will need to provide mappings in the
749
- # `HomeDirectoryMappings` for how you want to make Amazon S3 or EFS
750
- # paths visible to your users.
758
+ # `LOGICAL`, you need to provide mappings in the `HomeDirectoryMappings`
759
+ # for how you want to make Amazon S3 or EFS paths visible to your users.
751
760
  #
752
761
  # @option params [Array<Types::HomeDirectoryMapEntry>] :home_directory_mappings
753
762
  # Logical directory mappings that specify what Amazon S3 or Amazon EFS
@@ -765,10 +774,10 @@ module Aws::Transfer
765
774
  # `[ \{ "Entry": "your-personal-report.pdf", "Target":
766
775
  # "/bucket3/customized-reports/$\{transfer:UserName\}.pdf" \} ]`
767
776
  #
768
- # In most cases, you can use this value instead of the scope-down policy
769
- # to lock your user down to the designated home directory
770
- # ("`chroot`"). To do this, you can set `Entry` to `/` and set
771
- # `Target` to the HomeDirectory parameter value.
777
+ # In most cases, you can use this value instead of the session policy to
778
+ # lock your user down to the designated home directory ("`chroot`").
779
+ # To do this, you can set `Entry` to `/` and set `Target` to the
780
+ # HomeDirectory parameter value.
772
781
  #
773
782
  # The following is an `Entry` and `Target` pair example for `chroot`.
774
783
  #
@@ -786,22 +795,21 @@ module Aws::Transfer
786
795
  # </note>
787
796
  #
788
797
  # @option params [String] :policy
789
- # A scope-down policy for your user so that you can use the same IAM
790
- # role across multiple users. This policy scopes down user access to
791
- # portions of their Amazon S3 bucket. Variables that you can use inside
792
- # this policy include `$\{Transfer:UserName\}`,
798
+ # A session policy for your user so that you can use the same IAM role
799
+ # across multiple users. This policy scopes down user access to portions
800
+ # of their Amazon S3 bucket. Variables that you can use inside this
801
+ # policy include `$\{Transfer:UserName\}`,
793
802
  # `$\{Transfer:HomeDirectory\}`, and `$\{Transfer:HomeBucket\}`.
794
803
  #
795
- # <note markdown="1"> This only applies when domain of ServerId is S3. EFS does not use
796
- # scope down policy.
804
+ # <note markdown="1"> This only applies when the domain of `ServerId` is S3. EFS does not
805
+ # use session policies.
797
806
  #
798
- # For scope-down policies, Amazon Web Services Transfer Family stores
799
- # the policy as a JSON blob, instead of the Amazon Resource Name (ARN)
800
- # of the policy. You save the policy as a JSON blob and pass it in the
807
+ # For session policies, Amazon Web Services Transfer Family stores the
808
+ # policy as a JSON blob, instead of the Amazon Resource Name (ARN) of
809
+ # the policy. You save the policy as a JSON blob and pass it in the
801
810
  # `Policy` argument.
802
811
  #
803
- # For an example of a scope-down policy, see [Example scope-down
804
- # policy][1].
812
+ # For an example of a session policy, see [Example session policy][1].
805
813
  #
806
814
  # For more information, see [AssumeRole][2] in the *Amazon Web Services
807
815
  # Security Token Service API Reference*.
@@ -810,7 +818,7 @@ module Aws::Transfer
810
818
  #
811
819
  #
812
820
  #
813
- # [1]: https://docs.aws.amazon.com/transfer/latest/userguide/scope-down-policy.html
821
+ # [1]: https://docs.aws.amazon.com/transfer/latest/userguide/session-policy.html
814
822
  # [2]: https://docs.aws.amazon.com/STS/latest/APIReference/API_AssumeRole.html
815
823
  #
816
824
  # @option params [Types::PosixProfile] :posix_profile
@@ -843,12 +851,11 @@ module Aws::Transfer
843
851
  # are metadata attached to users for any purpose.
844
852
  #
845
853
  # @option params [required, String] :user_name
846
- # A unique string that identifies a user and is associated with a as
847
- # specified by the `ServerId`. This user name must be a minimum of 3 and
848
- # a maximum of 100 characters long. The following are valid characters:
849
- # a-z, A-Z, 0-9, underscore '\_', hyphen '-', period '.', and at
850
- # sign '@'. The user name can't start with a hyphen, period, or at
851
- # sign.
854
+ # A unique string that identifies a user and is associated with a
855
+ # `ServerId`. This user name must be a minimum of 3 and a maximum of 100
856
+ # characters long. The following are valid characters: a-z, A-Z, 0-9,
857
+ # underscore '\_', hyphen '-', period '.', and at sign '@'. The
858
+ # user name can't start with a hyphen, period, or at sign.
852
859
  #
853
860
  # @return [Types::CreateUserResponse] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
854
861
  #
@@ -898,6 +905,142 @@ module Aws::Transfer
898
905
  req.send_request(options)
899
906
  end
900
907
 
908
+ # Allows you to create a workflow with specified steps and step details
909
+ # the workflow invokes after file transfer completes. After creating a
910
+ # workflow, you can associate the workflow created with any transfer
911
+ # servers by specifying the `workflow-details` field in `CreateServer`
912
+ # and `UpdateServer` operations.
913
+ #
914
+ # @option params [String] :description
915
+ # A textual description for the workflow.
916
+ #
917
+ # @option params [required, Array<Types::WorkflowStep>] :steps
918
+ # Specifies the details for the steps that are in the specified
919
+ # workflow.
920
+ #
921
+ # The `TYPE` specifies which of the following actions is being taken for
922
+ # this step.
923
+ #
924
+ # * *Copy*\: copy the file to another location
925
+ #
926
+ # * *Custom*\: custom step with a lambda target
927
+ #
928
+ # * *Delete*\: delete the file
929
+ #
930
+ # * *Tag*\: add a tag to the file
931
+ #
932
+ # For file location, you specify either the S3 bucket and key, or the
933
+ # EFS filesystem ID and path.
934
+ #
935
+ # @option params [Array<Types::WorkflowStep>] :on_exception_steps
936
+ # Specifies the steps (actions) to take if any errors are encountered
937
+ # during execution of the workflow.
938
+ #
939
+ # @option params [Array<Types::Tag>] :tags
940
+ # Key-value pairs that can be used to group and search for workflows.
941
+ # Tags are metadata attached to workflows for any purpose.
942
+ #
943
+ # @return [Types::CreateWorkflowResponse] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
944
+ #
945
+ # * {Types::CreateWorkflowResponse#workflow_id #workflow_id} => String
946
+ #
947
+ # @example Request syntax with placeholder values
948
+ #
949
+ # resp = client.create_workflow({
950
+ # description: "WorkflowDescription",
951
+ # steps: [ # required
952
+ # {
953
+ # type: "COPY", # accepts COPY, CUSTOM, TAG, DELETE
954
+ # copy_step_details: {
955
+ # name: "WorkflowStepName",
956
+ # destination_file_location: {
957
+ # s3_file_location: {
958
+ # bucket: "S3Bucket",
959
+ # key: "S3Key",
960
+ # },
961
+ # efs_file_location: {
962
+ # file_system_id: "EfsFileSystemId",
963
+ # path: "EfsPath",
964
+ # },
965
+ # },
966
+ # overwrite_existing: "TRUE", # accepts TRUE, FALSE
967
+ # },
968
+ # custom_step_details: {
969
+ # name: "WorkflowStepName",
970
+ # target: "CustomStepTarget",
971
+ # timeout_seconds: 1,
972
+ # },
973
+ # delete_step_details: {
974
+ # name: "WorkflowStepName",
975
+ # },
976
+ # tag_step_details: {
977
+ # name: "WorkflowStepName",
978
+ # tags: [
979
+ # {
980
+ # key: "S3TagKey", # required
981
+ # value: "S3TagValue", # required
982
+ # },
983
+ # ],
984
+ # },
985
+ # },
986
+ # ],
987
+ # on_exception_steps: [
988
+ # {
989
+ # type: "COPY", # accepts COPY, CUSTOM, TAG, DELETE
990
+ # copy_step_details: {
991
+ # name: "WorkflowStepName",
992
+ # destination_file_location: {
993
+ # s3_file_location: {
994
+ # bucket: "S3Bucket",
995
+ # key: "S3Key",
996
+ # },
997
+ # efs_file_location: {
998
+ # file_system_id: "EfsFileSystemId",
999
+ # path: "EfsPath",
1000
+ # },
1001
+ # },
1002
+ # overwrite_existing: "TRUE", # accepts TRUE, FALSE
1003
+ # },
1004
+ # custom_step_details: {
1005
+ # name: "WorkflowStepName",
1006
+ # target: "CustomStepTarget",
1007
+ # timeout_seconds: 1,
1008
+ # },
1009
+ # delete_step_details: {
1010
+ # name: "WorkflowStepName",
1011
+ # },
1012
+ # tag_step_details: {
1013
+ # name: "WorkflowStepName",
1014
+ # tags: [
1015
+ # {
1016
+ # key: "S3TagKey", # required
1017
+ # value: "S3TagValue", # required
1018
+ # },
1019
+ # ],
1020
+ # },
1021
+ # },
1022
+ # ],
1023
+ # tags: [
1024
+ # {
1025
+ # key: "TagKey", # required
1026
+ # value: "TagValue", # required
1027
+ # },
1028
+ # ],
1029
+ # })
1030
+ #
1031
+ # @example Response structure
1032
+ #
1033
+ # resp.workflow_id #=> String
1034
+ #
1035
+ # @see http://docs.aws.amazon.com/goto/WebAPI/transfer-2018-11-05/CreateWorkflow AWS API Documentation
1036
+ #
1037
+ # @overload create_workflow(params = {})
1038
+ # @param [Hash] params ({})
1039
+ def create_workflow(params = {}, options = {})
1040
+ req = build_request(:create_workflow, params)
1041
+ req.send_request(options)
1042
+ end
1043
+
901
1044
  # Allows you to delete the access specified in the `ServerID` and
902
1045
  # `ExternalID` parameters.
903
1046
  #
@@ -968,8 +1111,6 @@ module Aws::Transfer
968
1111
 
969
1112
  # Deletes a user's Secure Shell (SSH) public key.
970
1113
  #
971
- # No response is returned from this operation.
972
- #
973
1114
  # @option params [required, String] :server_id
974
1115
  # A system-assigned unique identifier for a file transfer
975
1116
  # protocol-enabled server instance that has the user assigned to it.
@@ -1035,6 +1176,28 @@ module Aws::Transfer
1035
1176
  req.send_request(options)
1036
1177
  end
1037
1178
 
1179
+ # Deletes the specified workflow.
1180
+ #
1181
+ # @option params [required, String] :workflow_id
1182
+ # A unique identifier for the workflow.
1183
+ #
1184
+ # @return [Struct] Returns an empty {Seahorse::Client::Response response}.
1185
+ #
1186
+ # @example Request syntax with placeholder values
1187
+ #
1188
+ # resp = client.delete_workflow({
1189
+ # workflow_id: "WorkflowId", # required
1190
+ # })
1191
+ #
1192
+ # @see http://docs.aws.amazon.com/goto/WebAPI/transfer-2018-11-05/DeleteWorkflow AWS API Documentation
1193
+ #
1194
+ # @overload delete_workflow(params = {})
1195
+ # @param [Hash] params ({})
1196
+ def delete_workflow(params = {}, options = {})
1197
+ req = build_request(:delete_workflow, params)
1198
+ req.send_request(options)
1199
+ end
1200
+
1038
1201
  # Describes the access that is assigned to the specific file transfer
1039
1202
  # protocol-enabled server, as identified by its `ServerId` property and
1040
1203
  # its `ExternalID`.
@@ -1102,6 +1265,68 @@ module Aws::Transfer
1102
1265
  req.send_request(options)
1103
1266
  end
1104
1267
 
1268
+ # You can use `DescribeExecution` to check the details of the execution
1269
+ # of the specified workflow.
1270
+ #
1271
+ # @option params [required, String] :execution_id
1272
+ # A unique identifier for the execution of a workflow.
1273
+ #
1274
+ # @option params [required, String] :workflow_id
1275
+ # A unique identifier for the workflow.
1276
+ #
1277
+ # @return [Types::DescribeExecutionResponse] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
1278
+ #
1279
+ # * {Types::DescribeExecutionResponse#workflow_id #workflow_id} => String
1280
+ # * {Types::DescribeExecutionResponse#execution #execution} => Types::DescribedExecution
1281
+ #
1282
+ # @example Request syntax with placeholder values
1283
+ #
1284
+ # resp = client.describe_execution({
1285
+ # execution_id: "ExecutionId", # required
1286
+ # workflow_id: "WorkflowId", # required
1287
+ # })
1288
+ #
1289
+ # @example Response structure
1290
+ #
1291
+ # resp.workflow_id #=> String
1292
+ # resp.execution.execution_id #=> String
1293
+ # resp.execution.initial_file_location.s3_file_location.bucket #=> String
1294
+ # resp.execution.initial_file_location.s3_file_location.key #=> String
1295
+ # resp.execution.initial_file_location.s3_file_location.version_id #=> String
1296
+ # resp.execution.initial_file_location.s3_file_location.etag #=> String
1297
+ # resp.execution.initial_file_location.efs_file_location.file_system_id #=> String
1298
+ # resp.execution.initial_file_location.efs_file_location.path #=> String
1299
+ # resp.execution.service_metadata.user_details.user_name #=> String
1300
+ # resp.execution.service_metadata.user_details.server_id #=> String
1301
+ # resp.execution.service_metadata.user_details.session_id #=> String
1302
+ # resp.execution.execution_role #=> String
1303
+ # resp.execution.logging_configuration.logging_role #=> String
1304
+ # resp.execution.logging_configuration.log_group_name #=> String
1305
+ # resp.execution.posix_profile.uid #=> Integer
1306
+ # resp.execution.posix_profile.gid #=> Integer
1307
+ # resp.execution.posix_profile.secondary_gids #=> Array
1308
+ # resp.execution.posix_profile.secondary_gids[0] #=> Integer
1309
+ # resp.execution.status #=> String, one of "IN_PROGRESS", "COMPLETED", "EXCEPTION", "HANDLING_EXCEPTION"
1310
+ # resp.execution.results.steps #=> Array
1311
+ # resp.execution.results.steps[0].step_type #=> String, one of "COPY", "CUSTOM", "TAG", "DELETE"
1312
+ # resp.execution.results.steps[0].outputs #=> String
1313
+ # resp.execution.results.steps[0].error.type #=> String, one of "PERMISSION_DENIED"
1314
+ # resp.execution.results.steps[0].error.message #=> String
1315
+ # resp.execution.results.on_exception_steps #=> Array
1316
+ # resp.execution.results.on_exception_steps[0].step_type #=> String, one of "COPY", "CUSTOM", "TAG", "DELETE"
1317
+ # resp.execution.results.on_exception_steps[0].outputs #=> String
1318
+ # resp.execution.results.on_exception_steps[0].error.type #=> String, one of "PERMISSION_DENIED"
1319
+ # resp.execution.results.on_exception_steps[0].error.message #=> String
1320
+ #
1321
+ # @see http://docs.aws.amazon.com/goto/WebAPI/transfer-2018-11-05/DescribeExecution AWS API Documentation
1322
+ #
1323
+ # @overload describe_execution(params = {})
1324
+ # @param [Hash] params ({})
1325
+ def describe_execution(params = {}, options = {})
1326
+ req = build_request(:describe_execution, params)
1327
+ req.send_request(options)
1328
+ end
1329
+
1105
1330
  # Describes the security policy that is attached to your file transfer
1106
1331
  # protocol-enabled server. The response contains a description of the
1107
1332
  # security policy's properties. For more information about security
@@ -1197,6 +1422,9 @@ module Aws::Transfer
1197
1422
  # resp.server.tags[0].key #=> String
1198
1423
  # resp.server.tags[0].value #=> String
1199
1424
  # resp.server.user_count #=> Integer
1425
+ # resp.server.workflow_details.on_upload #=> Array
1426
+ # resp.server.workflow_details.on_upload[0].workflow_id #=> String
1427
+ # resp.server.workflow_details.on_upload[0].execution_role #=> String
1200
1428
  #
1201
1429
  # @see http://docs.aws.amazon.com/goto/WebAPI/transfer-2018-11-05/DescribeServer AWS API Documentation
1202
1430
  #
@@ -1267,6 +1495,71 @@ module Aws::Transfer
1267
1495
  req.send_request(options)
1268
1496
  end
1269
1497
 
1498
+ # Describes the specified workflow.
1499
+ #
1500
+ # @option params [required, String] :workflow_id
1501
+ # A unique identifier for the workflow.
1502
+ #
1503
+ # @return [Types::DescribeWorkflowResponse] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
1504
+ #
1505
+ # * {Types::DescribeWorkflowResponse#workflow #workflow} => Types::DescribedWorkflow
1506
+ #
1507
+ # @example Request syntax with placeholder values
1508
+ #
1509
+ # resp = client.describe_workflow({
1510
+ # workflow_id: "WorkflowId", # required
1511
+ # })
1512
+ #
1513
+ # @example Response structure
1514
+ #
1515
+ # resp.workflow.arn #=> String
1516
+ # resp.workflow.description #=> String
1517
+ # resp.workflow.steps #=> Array
1518
+ # resp.workflow.steps[0].type #=> String, one of "COPY", "CUSTOM", "TAG", "DELETE"
1519
+ # resp.workflow.steps[0].copy_step_details.name #=> String
1520
+ # resp.workflow.steps[0].copy_step_details.destination_file_location.s3_file_location.bucket #=> String
1521
+ # resp.workflow.steps[0].copy_step_details.destination_file_location.s3_file_location.key #=> String
1522
+ # resp.workflow.steps[0].copy_step_details.destination_file_location.efs_file_location.file_system_id #=> String
1523
+ # resp.workflow.steps[0].copy_step_details.destination_file_location.efs_file_location.path #=> String
1524
+ # resp.workflow.steps[0].copy_step_details.overwrite_existing #=> String, one of "TRUE", "FALSE"
1525
+ # resp.workflow.steps[0].custom_step_details.name #=> String
1526
+ # resp.workflow.steps[0].custom_step_details.target #=> String
1527
+ # resp.workflow.steps[0].custom_step_details.timeout_seconds #=> Integer
1528
+ # resp.workflow.steps[0].delete_step_details.name #=> String
1529
+ # resp.workflow.steps[0].tag_step_details.name #=> String
1530
+ # resp.workflow.steps[0].tag_step_details.tags #=> Array
1531
+ # resp.workflow.steps[0].tag_step_details.tags[0].key #=> String
1532
+ # resp.workflow.steps[0].tag_step_details.tags[0].value #=> String
1533
+ # resp.workflow.on_exception_steps #=> Array
1534
+ # resp.workflow.on_exception_steps[0].type #=> String, one of "COPY", "CUSTOM", "TAG", "DELETE"
1535
+ # resp.workflow.on_exception_steps[0].copy_step_details.name #=> String
1536
+ # resp.workflow.on_exception_steps[0].copy_step_details.destination_file_location.s3_file_location.bucket #=> String
1537
+ # resp.workflow.on_exception_steps[0].copy_step_details.destination_file_location.s3_file_location.key #=> String
1538
+ # resp.workflow.on_exception_steps[0].copy_step_details.destination_file_location.efs_file_location.file_system_id #=> String
1539
+ # resp.workflow.on_exception_steps[0].copy_step_details.destination_file_location.efs_file_location.path #=> String
1540
+ # resp.workflow.on_exception_steps[0].copy_step_details.overwrite_existing #=> String, one of "TRUE", "FALSE"
1541
+ # resp.workflow.on_exception_steps[0].custom_step_details.name #=> String
1542
+ # resp.workflow.on_exception_steps[0].custom_step_details.target #=> String
1543
+ # resp.workflow.on_exception_steps[0].custom_step_details.timeout_seconds #=> Integer
1544
+ # resp.workflow.on_exception_steps[0].delete_step_details.name #=> String
1545
+ # resp.workflow.on_exception_steps[0].tag_step_details.name #=> String
1546
+ # resp.workflow.on_exception_steps[0].tag_step_details.tags #=> Array
1547
+ # resp.workflow.on_exception_steps[0].tag_step_details.tags[0].key #=> String
1548
+ # resp.workflow.on_exception_steps[0].tag_step_details.tags[0].value #=> String
1549
+ # resp.workflow.workflow_id #=> String
1550
+ # resp.workflow.tags #=> Array
1551
+ # resp.workflow.tags[0].key #=> String
1552
+ # resp.workflow.tags[0].value #=> String
1553
+ #
1554
+ # @see http://docs.aws.amazon.com/goto/WebAPI/transfer-2018-11-05/DescribeWorkflow AWS API Documentation
1555
+ #
1556
+ # @overload describe_workflow(params = {})
1557
+ # @param [Hash] params ({})
1558
+ def describe_workflow(params = {}, options = {})
1559
+ req = build_request(:describe_workflow, params)
1560
+ req.send_request(options)
1561
+ end
1562
+
1270
1563
  # Adds a Secure Shell (SSH) public key to a user account identified by a
1271
1564
  # `UserName` value assigned to the specific file transfer
1272
1565
  # protocol-enabled server, identified by `ServerId`.
@@ -1362,6 +1655,78 @@ module Aws::Transfer
1362
1655
  req.send_request(options)
1363
1656
  end
1364
1657
 
1658
+ # Lists all executions for the specified workflow.
1659
+ #
1660
+ # @option params [Integer] :max_results
1661
+ # Specifies the aximum number of executions to return.
1662
+ #
1663
+ # @option params [String] :next_token
1664
+ # `ListExecutions` returns the `NextToken` parameter in the output. You
1665
+ # can then pass the `NextToken` parameter in a subsequent command to
1666
+ # continue listing additional executions.
1667
+ #
1668
+ # This is useful for pagination, for instance. If you have 100
1669
+ # executions for a workflow, you might only want to list first 10. If
1670
+ # so, callthe API by specifing the `max-results`\:
1671
+ #
1672
+ # `aws transfer list-executions --max-results 10`
1673
+ #
1674
+ # This returns details for the first 10 executions, as well as the
1675
+ # pointer (`NextToken`) to the eleventh execution. You can now call the
1676
+ # API again, suppling the `NextToken` value you received:
1677
+ #
1678
+ # `aws transfer list-executions --max-results 10 --next-token
1679
+ # $somePointerReturnedFromPreviousListResult`
1680
+ #
1681
+ # This call returns the next 10 executions, the 11th through the 20th.
1682
+ # You can then repeat the call until the details for all 100 executions
1683
+ # have been returned.
1684
+ #
1685
+ # @option params [required, String] :workflow_id
1686
+ # A unique identifier for the workflow.
1687
+ #
1688
+ # @return [Types::ListExecutionsResponse] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
1689
+ #
1690
+ # * {Types::ListExecutionsResponse#next_token #next_token} => String
1691
+ # * {Types::ListExecutionsResponse#workflow_id #workflow_id} => String
1692
+ # * {Types::ListExecutionsResponse#executions #executions} => Array&lt;Types::ListedExecution&gt;
1693
+ #
1694
+ # The returned {Seahorse::Client::Response response} is a pageable response and is Enumerable. For details on usage see {Aws::PageableResponse PageableResponse}.
1695
+ #
1696
+ # @example Request syntax with placeholder values
1697
+ #
1698
+ # resp = client.list_executions({
1699
+ # max_results: 1,
1700
+ # next_token: "NextToken",
1701
+ # workflow_id: "WorkflowId", # required
1702
+ # })
1703
+ #
1704
+ # @example Response structure
1705
+ #
1706
+ # resp.next_token #=> String
1707
+ # resp.workflow_id #=> String
1708
+ # resp.executions #=> Array
1709
+ # resp.executions[0].execution_id #=> String
1710
+ # resp.executions[0].initial_file_location.s3_file_location.bucket #=> String
1711
+ # resp.executions[0].initial_file_location.s3_file_location.key #=> String
1712
+ # resp.executions[0].initial_file_location.s3_file_location.version_id #=> String
1713
+ # resp.executions[0].initial_file_location.s3_file_location.etag #=> String
1714
+ # resp.executions[0].initial_file_location.efs_file_location.file_system_id #=> String
1715
+ # resp.executions[0].initial_file_location.efs_file_location.path #=> String
1716
+ # resp.executions[0].service_metadata.user_details.user_name #=> String
1717
+ # resp.executions[0].service_metadata.user_details.server_id #=> String
1718
+ # resp.executions[0].service_metadata.user_details.session_id #=> String
1719
+ # resp.executions[0].status #=> String, one of "IN_PROGRESS", "COMPLETED", "EXCEPTION", "HANDLING_EXCEPTION"
1720
+ #
1721
+ # @see http://docs.aws.amazon.com/goto/WebAPI/transfer-2018-11-05/ListExecutions AWS API Documentation
1722
+ #
1723
+ # @overload list_executions(params = {})
1724
+ # @param [Hash] params ({})
1725
+ def list_executions(params = {}, options = {})
1726
+ req = build_request(:list_executions, params)
1727
+ req.send_request(options)
1728
+ end
1729
+
1365
1730
  # Lists the security policies that are attached to your file transfer
1366
1731
  # protocol-enabled servers.
1367
1732
  #
@@ -1558,6 +1923,86 @@ module Aws::Transfer
1558
1923
  req.send_request(options)
1559
1924
  end
1560
1925
 
1926
+ # Lists all of your workflows.
1927
+ #
1928
+ # @option params [Integer] :max_results
1929
+ # Specifies the maximum number of workflows to return.
1930
+ #
1931
+ # @option params [String] :next_token
1932
+ # `ListWorkflows` returns the `NextToken` parameter in the output. You
1933
+ # can then pass the `NextToken` parameter in a subsequent command to
1934
+ # continue listing additional workflows.
1935
+ #
1936
+ # @return [Types::ListWorkflowsResponse] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
1937
+ #
1938
+ # * {Types::ListWorkflowsResponse#next_token #next_token} => String
1939
+ # * {Types::ListWorkflowsResponse#workflows #workflows} => Array&lt;Types::ListedWorkflow&gt;
1940
+ #
1941
+ # The returned {Seahorse::Client::Response response} is a pageable response and is Enumerable. For details on usage see {Aws::PageableResponse PageableResponse}.
1942
+ #
1943
+ # @example Request syntax with placeholder values
1944
+ #
1945
+ # resp = client.list_workflows({
1946
+ # max_results: 1,
1947
+ # next_token: "NextToken",
1948
+ # })
1949
+ #
1950
+ # @example Response structure
1951
+ #
1952
+ # resp.next_token #=> String
1953
+ # resp.workflows #=> Array
1954
+ # resp.workflows[0].workflow_id #=> String
1955
+ # resp.workflows[0].description #=> String
1956
+ # resp.workflows[0].arn #=> String
1957
+ #
1958
+ # @see http://docs.aws.amazon.com/goto/WebAPI/transfer-2018-11-05/ListWorkflows AWS API Documentation
1959
+ #
1960
+ # @overload list_workflows(params = {})
1961
+ # @param [Hash] params ({})
1962
+ def list_workflows(params = {}, options = {})
1963
+ req = build_request(:list_workflows, params)
1964
+ req.send_request(options)
1965
+ end
1966
+
1967
+ # Sends a callback for asynchronous custom steps.
1968
+ #
1969
+ # The `ExecutionId`, `WorkflowId`, and `Token` are passed to the target
1970
+ # resource during execution of a custom step of a workflow. You must
1971
+ # include those with their callback as well as providing a status.
1972
+ #
1973
+ # @option params [required, String] :workflow_id
1974
+ # A unique identifier for the workflow.
1975
+ #
1976
+ # @option params [required, String] :execution_id
1977
+ # A unique identifier for the execution of a workflow.
1978
+ #
1979
+ # @option params [required, String] :token
1980
+ # Used to distinguish between multiple callbacks for multiple Lambda
1981
+ # steps within the same execution.
1982
+ #
1983
+ # @option params [required, String] :status
1984
+ # Indicates whether the specified step succeeded or failed.
1985
+ #
1986
+ # @return [Struct] Returns an empty {Seahorse::Client::Response response}.
1987
+ #
1988
+ # @example Request syntax with placeholder values
1989
+ #
1990
+ # resp = client.send_workflow_step_state({
1991
+ # workflow_id: "WorkflowId", # required
1992
+ # execution_id: "ExecutionId", # required
1993
+ # token: "CallbackToken", # required
1994
+ # status: "SUCCESS", # required, accepts SUCCESS, FAILURE
1995
+ # })
1996
+ #
1997
+ # @see http://docs.aws.amazon.com/goto/WebAPI/transfer-2018-11-05/SendWorkflowStepState AWS API Documentation
1998
+ #
1999
+ # @overload send_workflow_step_state(params = {})
2000
+ # @param [Hash] params ({})
2001
+ def send_workflow_step_state(params = {}, options = {})
2002
+ req = build_request(:send_workflow_step_state, params)
2003
+ req.send_request(options)
2004
+ end
2005
+
1561
2006
  # Changes the state of a file transfer protocol-enabled server from
1562
2007
  # `OFFLINE` to `ONLINE`. It has no impact on a server that is already
1563
2008
  # `ONLINE`. An `ONLINE` server can accept and process file transfer
@@ -1672,6 +2117,31 @@ module Aws::Transfer
1672
2117
  # identity provider integration to ensure that your users can
1673
2118
  # successfully use the service.
1674
2119
  #
2120
+ # The `ServerId` and `UserName` parameters are required. The
2121
+ # `ServerProtocol`, `SourceIp`, and `UserPassword` are all optional.
2122
+ #
2123
+ # <note markdown="1"> You cannot use `TestIdentityProvider` if the `IdentityProviderType` of
2124
+ # your server is `SERVICE_MANAGED`.
2125
+ #
2126
+ # </note>
2127
+ #
2128
+ # * If you provide any incorrect values for any parameters, the
2129
+ # `Response` field is empty.
2130
+ #
2131
+ # * If you provide a server ID for a server that uses service-managed
2132
+ # users, you get an error:
2133
+ #
2134
+ # ` An error occurred (InvalidRequestException) when calling the
2135
+ # TestIdentityProvider operation: s-server-ID not configured for
2136
+ # external auth `
2137
+ #
2138
+ # * If you enter a Server ID for the `--server-id` parameter that does
2139
+ # not identify an actual Transfer server, you receive the following
2140
+ # error:
2141
+ #
2142
+ # `An error occurred (ResourceNotFoundException) when calling the
2143
+ # TestIdentityProvider operation: Unknown server`
2144
+ #
1675
2145
  # @option params [required, String] :server_id
1676
2146
  # A system-assigned identifier for a specific server. That server's
1677
2147
  # user authentication method is tested with a user name and password.
@@ -1777,9 +2247,8 @@ module Aws::Transfer
1777
2247
  # directory to be when they log into the server. If you set it to
1778
2248
  # `PATH`, the user will see the absolute Amazon S3 bucket or EFS paths
1779
2249
  # as is in their file transfer protocol clients. If you set it
1780
- # `LOGICAL`, you will need to provide mappings in the
1781
- # `HomeDirectoryMappings` for how you want to make Amazon S3 or EFS
1782
- # paths visible to your users.
2250
+ # `LOGICAL`, you need to provide mappings in the `HomeDirectoryMappings`
2251
+ # for how you want to make Amazon S3 or EFS paths visible to your users.
1783
2252
  #
1784
2253
  # @option params [Array<Types::HomeDirectoryMapEntry>] :home_directory_mappings
1785
2254
  # Logical directory mappings that specify what Amazon S3 or Amazon EFS
@@ -1797,10 +2266,10 @@ module Aws::Transfer
1797
2266
  # `[ \{ "Entry": "your-personal-report.pdf", "Target":
1798
2267
  # "/bucket3/customized-reports/$\{transfer:UserName\}.pdf" \} ]`
1799
2268
  #
1800
- # In most cases, you can use this value instead of the scope-down policy
1801
- # to lock down your user to the designated home directory
1802
- # ("`chroot`"). To do this, you can set `Entry` to `/` and set
1803
- # `Target` to the `HomeDirectory` parameter value.
2269
+ # In most cases, you can use this value instead of the session policy to
2270
+ # lock down your user to the designated home directory ("`chroot`").
2271
+ # To do this, you can set `Entry` to `/` and set `Target` to the
2272
+ # `HomeDirectory` parameter value.
1804
2273
  #
1805
2274
  # The following is an `Entry` and `Target` pair example for `chroot`.
1806
2275
  #
@@ -1818,22 +2287,21 @@ module Aws::Transfer
1818
2287
  # </note>
1819
2288
  #
1820
2289
  # @option params [String] :policy
1821
- # A scope-down policy for your user so that you can use the same IAM
1822
- # role across multiple users. This policy scopes down user access to
1823
- # portions of their Amazon S3 bucket. Variables that you can use inside
1824
- # this policy include `$\{Transfer:UserName\}`,
2290
+ # A session policy for your user so that you can use the same IAM role
2291
+ # across multiple users. This policy scopes down user access to portions
2292
+ # of their Amazon S3 bucket. Variables that you can use inside this
2293
+ # policy include `$\{Transfer:UserName\}`,
1825
2294
  # `$\{Transfer:HomeDirectory\}`, and `$\{Transfer:HomeBucket\}`.
1826
2295
  #
1827
- # <note markdown="1"> This only applies when domain of `ServerId` is S3. Amazon EFS does not
1828
- # use scope down policy.
2296
+ # <note markdown="1"> This only applies when the domain of `ServerId` is S3. EFS does not
2297
+ # use session policies.
1829
2298
  #
1830
- # For scope-down policies, Amazon Web ServicesTransfer Family stores the
2299
+ # For session policies, Amazon Web Services Transfer Family stores the
1831
2300
  # policy as a JSON blob, instead of the Amazon Resource Name (ARN) of
1832
2301
  # the policy. You save the policy as a JSON blob and pass it in the
1833
2302
  # `Policy` argument.
1834
2303
  #
1835
- # For an example of a scope-down policy, see [Example scope-down
1836
- # policy][1].
2304
+ # For an example of a session policy, see [Example session policy][1].
1837
2305
  #
1838
2306
  # For more information, see [AssumeRole][2] in the *Amazon Web
1839
2307
  # ServicesSecurity Token Service API Reference*.
@@ -1842,7 +2310,7 @@ module Aws::Transfer
1842
2310
  #
1843
2311
  #
1844
2312
  #
1845
- # [1]: https://docs.aws.amazon.com/transfer/latest/userguide/scope-down-policy.html
2313
+ # [1]: https://docs.aws.amazon.com/transfer/latest/userguide/session-policy.html
1846
2314
  # [2]: https://docs.aws.amazon.com/STS/latest/APIReference/API_AssumeRole.html
1847
2315
  #
1848
2316
  # @option params [Types::PosixProfile] :posix_profile
@@ -2077,6 +2545,10 @@ module Aws::Transfer
2077
2545
  # A system-assigned unique identifier for a server instance that the
2078
2546
  # user account is assigned to.
2079
2547
  #
2548
+ # @option params [Types::WorkflowDetails] :workflow_details
2549
+ # Specifies the workflow ID for the workflow to assign and the execution
2550
+ # role used for executing the workflow.
2551
+ #
2080
2552
  # @return [Types::UpdateServerResponse] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
2081
2553
  #
2082
2554
  # * {Types::UpdateServerResponse#server_id #server_id} => String
@@ -2106,6 +2578,14 @@ module Aws::Transfer
2106
2578
  # protocols: ["SFTP"], # accepts SFTP, FTP, FTPS
2107
2579
  # security_policy_name: "SecurityPolicyName",
2108
2580
  # server_id: "ServerId", # required
2581
+ # workflow_details: {
2582
+ # on_upload: [ # required
2583
+ # {
2584
+ # workflow_id: "WorkflowId", # required
2585
+ # execution_role: "Role", # required
2586
+ # },
2587
+ # ],
2588
+ # },
2109
2589
  # })
2110
2590
  #
2111
2591
  # @example Response structure
@@ -2139,9 +2619,8 @@ module Aws::Transfer
2139
2619
  # directory to be when they log into the server. If you set it to
2140
2620
  # `PATH`, the user will see the absolute Amazon S3 bucket or EFS paths
2141
2621
  # as is in their file transfer protocol clients. If you set it
2142
- # `LOGICAL`, you will need to provide mappings in the
2143
- # `HomeDirectoryMappings` for how you want to make Amazon S3 or EFS
2144
- # paths visible to your users.
2622
+ # `LOGICAL`, you need to provide mappings in the `HomeDirectoryMappings`
2623
+ # for how you want to make Amazon S3 or EFS paths visible to your users.
2145
2624
  #
2146
2625
  # @option params [Array<Types::HomeDirectoryMapEntry>] :home_directory_mappings
2147
2626
  # Logical directory mappings that specify what Amazon S3 or Amazon EFS
@@ -2159,10 +2638,10 @@ module Aws::Transfer
2159
2638
  # `[ \{ "Entry": "your-personal-report.pdf", "Target":
2160
2639
  # "/bucket3/customized-reports/$\{transfer:UserName\}.pdf" \} ]`
2161
2640
  #
2162
- # In most cases, you can use this value instead of the scope-down policy
2163
- # to lock down your user to the designated home directory
2164
- # ("`chroot`"). To do this, you can set `Entry` to '/' and set
2165
- # `Target` to the HomeDirectory parameter value.
2641
+ # In most cases, you can use this value instead of the session policy to
2642
+ # lock down your user to the designated home directory ("`chroot`").
2643
+ # To do this, you can set `Entry` to '/' and set `Target` to the
2644
+ # HomeDirectory parameter value.
2166
2645
  #
2167
2646
  # The following is an `Entry` and `Target` pair example for `chroot`.
2168
2647
  #
@@ -2180,21 +2659,21 @@ module Aws::Transfer
2180
2659
  # </note>
2181
2660
  #
2182
2661
  # @option params [String] :policy
2183
- # A scope-down policy for your user so that you can use the same IAM
2184
- # role across multiple users. This policy scopes down user access to
2185
- # portions of their Amazon S3 bucket. Variables that you can use inside
2186
- # this policy include `$\{Transfer:UserName\}`,
2662
+ # A session policy for your user so that you can use the same IAM role
2663
+ # across multiple users. This policy scopes down user access to portions
2664
+ # of their Amazon S3 bucket. Variables that you can use inside this
2665
+ # policy include `$\{Transfer:UserName\}`,
2187
2666
  # `$\{Transfer:HomeDirectory\}`, and `$\{Transfer:HomeBucket\}`.
2188
2667
  #
2189
- # <note markdown="1"> This only applies when domain of `ServerId` is S3. Amazon EFS does not
2190
- # use scope-down policies.
2668
+ # <note markdown="1"> This only applies when the domain of `ServerId` is S3. EFS does not
2669
+ # use session policies.
2191
2670
  #
2192
- # For scope-down policies, Amazon Web ServicesTransfer Family stores the
2671
+ # For session policies, Amazon Web Services Transfer Family stores the
2193
2672
  # policy as a JSON blob, instead of the Amazon Resource Name (ARN) of
2194
2673
  # the policy. You save the policy as a JSON blob and pass it in the
2195
2674
  # `Policy` argument.
2196
2675
  #
2197
- # For an example of a scope-down policy, see [Creating a scope-down
2676
+ # For an example of a session policy, see [Creating a session
2198
2677
  # policy][1].
2199
2678
  #
2200
2679
  # For more information, see [AssumeRole][2] in the *Amazon Web Services
@@ -2204,7 +2683,7 @@ module Aws::Transfer
2204
2683
  #
2205
2684
  #
2206
2685
  #
2207
- # [1]: https://docs.aws.amazon.com/transfer/latest/userguide/users.html#users-policies-scope-down
2686
+ # [1]: https://docs.aws.amazon.com/transfer/latest/userguide/session-policy
2208
2687
  # [2]: https://docs.aws.amazon.com/STS/latest/APIReference/API_AssumeRole.html
2209
2688
  #
2210
2689
  # @option params [Types::PosixProfile] :posix_profile
@@ -2290,7 +2769,7 @@ module Aws::Transfer
2290
2769
  params: params,
2291
2770
  config: config)
2292
2771
  context[:gem_name] = 'aws-sdk-transfer'
2293
- context[:gem_version] = '1.38.0'
2772
+ context[:gem_version] = '1.39.0'
2294
2773
  Seahorse::Client::Request.new(handlers, context)
2295
2774
  end
2296
2775