aws-sdk-transfer 1.38.0 → 1.39.0

Sign up to get free protection for your applications and to get access to all the features.
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