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.
@@ -23,7 +23,7 @@ module Aws::Transfer
23
23
  include Aws::Structure
24
24
  end
25
25
 
26
- # This exception is thrown when the `UpdatServer` is called for a file
26
+ # This exception is thrown when the `UpdateServer` is called for a file
27
27
  # transfer protocol-enabled server that has VPC as the endpoint type and
28
28
  # the server's `VpcEndpointID` is not in the available state.
29
29
  #
@@ -38,6 +38,50 @@ module Aws::Transfer
38
38
  include Aws::Structure
39
39
  end
40
40
 
41
+ # Each step type has its own `StepDetails` structure.
42
+ #
43
+ # @note When making an API call, you may pass CopyStepDetails
44
+ # data as a hash:
45
+ #
46
+ # {
47
+ # name: "WorkflowStepName",
48
+ # destination_file_location: {
49
+ # s3_file_location: {
50
+ # bucket: "S3Bucket",
51
+ # key: "S3Key",
52
+ # },
53
+ # efs_file_location: {
54
+ # file_system_id: "EfsFileSystemId",
55
+ # path: "EfsPath",
56
+ # },
57
+ # },
58
+ # overwrite_existing: "TRUE", # accepts TRUE, FALSE
59
+ # }
60
+ #
61
+ # @!attribute [rw] name
62
+ # The name of the step, used as an identifier.
63
+ # @return [String]
64
+ #
65
+ # @!attribute [rw] destination_file_location
66
+ # Specifies the location for the file being copied. Only applicable
67
+ # for the Copy type of workflow steps.
68
+ # @return [Types::InputFileLocation]
69
+ #
70
+ # @!attribute [rw] overwrite_existing
71
+ # A flag that indicates whether or not to overwrite an existing file
72
+ # of the same name. The default is `FALSE`.
73
+ # @return [String]
74
+ #
75
+ # @see http://docs.aws.amazon.com/goto/WebAPI/transfer-2018-11-05/CopyStepDetails AWS API Documentation
76
+ #
77
+ class CopyStepDetails < Struct.new(
78
+ :name,
79
+ :destination_file_location,
80
+ :overwrite_existing)
81
+ SENSITIVE = []
82
+ include Aws::Structure
83
+ end
84
+
41
85
  # @note When making an API call, you may pass CreateAccessRequest
42
86
  # data as a hash:
43
87
  #
@@ -73,7 +117,7 @@ module Aws::Transfer
73
117
  # directory to be when they log into the server. If you set it to
74
118
  # `PATH`, the user will see the absolute Amazon S3 bucket or EFS paths
75
119
  # as is in their file transfer protocol clients. If you set it
76
- # `LOGICAL`, you will need to provide mappings in the
120
+ # `LOGICAL`, you need to provide mappings in the
77
121
  # `HomeDirectoryMappings` for how you want to make Amazon S3 or EFS
78
122
  # paths visible to your users.
79
123
  # @return [String]
@@ -94,8 +138,8 @@ module Aws::Transfer
94
138
  # `[ \{ "Entry": "your-personal-report.pdf", "Target":
95
139
  # "/bucket3/customized-reports/$\{transfer:UserName\}.pdf" \} ]`
96
140
  #
97
- # In most cases, you can use this value instead of the scope-down
98
- # policy to lock down your user to the designated home directory
141
+ # In most cases, you can use this value instead of the session policy
142
+ # to lock down your user to the designated home directory
99
143
  # ("`chroot`"). To do this, you can set `Entry` to `/` and set
100
144
  # `Target` to the `HomeDirectory` parameter value.
101
145
  #
@@ -116,22 +160,21 @@ module Aws::Transfer
116
160
  # @return [Array<Types::HomeDirectoryMapEntry>]
117
161
  #
118
162
  # @!attribute [rw] policy
119
- # A scope-down policy for your user so that you can use the same IAM
120
- # role across multiple users. This policy scopes down user access to
163
+ # A session policy for your user so that you can use the same IAM role
164
+ # across multiple users. This policy scopes down user access to
121
165
  # portions of their Amazon S3 bucket. Variables that you can use
122
166
  # inside this policy include `$\{Transfer:UserName\}`,
123
167
  # `$\{Transfer:HomeDirectory\}`, and `$\{Transfer:HomeBucket\}`.
124
168
  #
125
- # <note markdown="1"> This only applies when domain of `ServerId` is S3. Amazon EFS does
126
- # not use scope-down policies.
169
+ # <note markdown="1"> This only applies when the domain of `ServerId` is S3. EFS does not
170
+ # use session policies.
127
171
  #
128
- # For scope-down policies, Amazon Web Services Transfer Family stores
129
- # the policy as a JSON blob, instead of the Amazon Resource Name (ARN)
130
- # of the policy. You save the policy as a JSON blob and pass it in the
172
+ # For session policies, Amazon Web Services Transfer Family stores the
173
+ # policy as a JSON blob, instead of the Amazon Resource Name (ARN) of
174
+ # the policy. You save the policy as a JSON blob and pass it in the
131
175
  # `Policy` argument.
132
176
  #
133
- # For an example of a scope-down policy, see [Example scope-down
134
- # policy][1].
177
+ # For an example of a session policy, see [Example session policy][1].
135
178
  #
136
179
  # For more information, see [AssumeRole][2] in the *Amazon Web
137
180
  # Services Security Token Service API Reference*.
@@ -140,7 +183,7 @@ module Aws::Transfer
140
183
  #
141
184
  #
142
185
  #
143
- # [1]: https://docs.aws.amazon.com/transfer/latest/userguide/scope-down-policy.html
186
+ # [1]: https://docs.aws.amazon.com/transfer/latest/userguide/session-policy.html
144
187
  # [2]: https://docs.aws.amazon.com/STS/latest/APIReference/API_AssumeRole.html
145
188
  # @return [String]
146
189
  #
@@ -253,6 +296,14 @@ module Aws::Transfer
253
296
  # value: "TagValue", # required
254
297
  # },
255
298
  # ],
299
+ # workflow_details: {
300
+ # on_upload: [ # required
301
+ # {
302
+ # workflow_id: "WorkflowId", # required
303
+ # execution_role: "Role", # required
304
+ # },
305
+ # ],
306
+ # },
256
307
  # }
257
308
  #
258
309
  # @!attribute [rw] certificate
@@ -436,6 +487,11 @@ module Aws::Transfer
436
487
  # Key-value pairs that can be used to group and search for servers.
437
488
  # @return [Array<Types::Tag>]
438
489
  #
490
+ # @!attribute [rw] workflow_details
491
+ # Specifies the workflow ID for the workflow to assign and the
492
+ # execution role used for executing the workflow.
493
+ # @return [Types::WorkflowDetails]
494
+ #
439
495
  # @see http://docs.aws.amazon.com/goto/WebAPI/transfer-2018-11-05/CreateServerRequest AWS API Documentation
440
496
  #
441
497
  class CreateServerRequest < Struct.new(
@@ -449,7 +505,8 @@ module Aws::Transfer
449
505
  :logging_role,
450
506
  :protocols,
451
507
  :security_policy_name,
452
- :tags)
508
+ :tags,
509
+ :workflow_details)
453
510
  SENSITIVE = [:host_key]
454
511
  include Aws::Structure
455
512
  end
@@ -508,7 +565,7 @@ module Aws::Transfer
508
565
  # directory to be when they log into the server. If you set it to
509
566
  # `PATH`, the user will see the absolute Amazon S3 bucket or EFS paths
510
567
  # as is in their file transfer protocol clients. If you set it
511
- # `LOGICAL`, you will need to provide mappings in the
568
+ # `LOGICAL`, you need to provide mappings in the
512
569
  # `HomeDirectoryMappings` for how you want to make Amazon S3 or EFS
513
570
  # paths visible to your users.
514
571
  # @return [String]
@@ -529,8 +586,8 @@ module Aws::Transfer
529
586
  # `[ \{ "Entry": "your-personal-report.pdf", "Target":
530
587
  # "/bucket3/customized-reports/$\{transfer:UserName\}.pdf" \} ]`
531
588
  #
532
- # In most cases, you can use this value instead of the scope-down
533
- # policy to lock your user down to the designated home directory
589
+ # In most cases, you can use this value instead of the session policy
590
+ # to lock your user down to the designated home directory
534
591
  # ("`chroot`"). To do this, you can set `Entry` to `/` and set
535
592
  # `Target` to the HomeDirectory parameter value.
536
593
  #
@@ -551,22 +608,21 @@ module Aws::Transfer
551
608
  # @return [Array<Types::HomeDirectoryMapEntry>]
552
609
  #
553
610
  # @!attribute [rw] policy
554
- # A scope-down policy for your user so that you can use the same IAM
555
- # role across multiple users. This policy scopes down user access to
611
+ # A session policy for your user so that you can use the same IAM role
612
+ # across multiple users. This policy scopes down user access to
556
613
  # portions of their Amazon S3 bucket. Variables that you can use
557
614
  # inside this policy include `$\{Transfer:UserName\}`,
558
615
  # `$\{Transfer:HomeDirectory\}`, and `$\{Transfer:HomeBucket\}`.
559
616
  #
560
- # <note markdown="1"> This only applies when domain of ServerId is S3. EFS does not use
561
- # scope down policy.
617
+ # <note markdown="1"> This only applies when the domain of `ServerId` is S3. EFS does not
618
+ # use session policies.
562
619
  #
563
- # For scope-down policies, Amazon Web Services Transfer Family stores
564
- # the policy as a JSON blob, instead of the Amazon Resource Name (ARN)
565
- # of the policy. You save the policy as a JSON blob and pass it in the
620
+ # For session policies, Amazon Web Services Transfer Family stores the
621
+ # policy as a JSON blob, instead of the Amazon Resource Name (ARN) of
622
+ # the policy. You save the policy as a JSON blob and pass it in the
566
623
  # `Policy` argument.
567
624
  #
568
- # For an example of a scope-down policy, see [Example scope-down
569
- # policy][1].
625
+ # For an example of a session policy, see [Example session policy][1].
570
626
  #
571
627
  # For more information, see [AssumeRole][2] in the *Amazon Web
572
628
  # Services Security Token Service API Reference*.
@@ -575,7 +631,7 @@ module Aws::Transfer
575
631
  #
576
632
  #
577
633
  #
578
- # [1]: https://docs.aws.amazon.com/transfer/latest/userguide/scope-down-policy.html
634
+ # [1]: https://docs.aws.amazon.com/transfer/latest/userguide/session-policy.html
579
635
  # [2]: https://docs.aws.amazon.com/STS/latest/APIReference/API_AssumeRole.html
580
636
  # @return [String]
581
637
  #
@@ -615,12 +671,11 @@ module Aws::Transfer
615
671
  # @return [Array<Types::Tag>]
616
672
  #
617
673
  # @!attribute [rw] user_name
618
- # A unique string that identifies a user and is associated with a as
619
- # specified by the `ServerId`. This user name must be a minimum of 3
620
- # and a maximum of 100 characters long. The following are valid
621
- # characters: a-z, A-Z, 0-9, underscore '\_', hyphen '-', period
622
- # '.', and at sign '@'. The user name can't start with a hyphen,
623
- # period, or at sign.
674
+ # A unique string that identifies a user and is associated with a
675
+ # `ServerId`. This user name must be a minimum of 3 and a maximum of
676
+ # 100 characters long. The following are valid characters: a-z, A-Z,
677
+ # 0-9, underscore '\_', hyphen '-', period '.', and at sign
678
+ # '@'. The user name can't start with a hyphen, period, or at sign.
624
679
  # @return [String]
625
680
  #
626
681
  # @see http://docs.aws.amazon.com/goto/WebAPI/transfer-2018-11-05/CreateUserRequest AWS API Documentation
@@ -658,6 +713,180 @@ module Aws::Transfer
658
713
  include Aws::Structure
659
714
  end
660
715
 
716
+ # @note When making an API call, you may pass CreateWorkflowRequest
717
+ # data as a hash:
718
+ #
719
+ # {
720
+ # description: "WorkflowDescription",
721
+ # steps: [ # required
722
+ # {
723
+ # type: "COPY", # accepts COPY, CUSTOM, TAG, DELETE
724
+ # copy_step_details: {
725
+ # name: "WorkflowStepName",
726
+ # destination_file_location: {
727
+ # s3_file_location: {
728
+ # bucket: "S3Bucket",
729
+ # key: "S3Key",
730
+ # },
731
+ # efs_file_location: {
732
+ # file_system_id: "EfsFileSystemId",
733
+ # path: "EfsPath",
734
+ # },
735
+ # },
736
+ # overwrite_existing: "TRUE", # accepts TRUE, FALSE
737
+ # },
738
+ # custom_step_details: {
739
+ # name: "WorkflowStepName",
740
+ # target: "CustomStepTarget",
741
+ # timeout_seconds: 1,
742
+ # },
743
+ # delete_step_details: {
744
+ # name: "WorkflowStepName",
745
+ # },
746
+ # tag_step_details: {
747
+ # name: "WorkflowStepName",
748
+ # tags: [
749
+ # {
750
+ # key: "S3TagKey", # required
751
+ # value: "S3TagValue", # required
752
+ # },
753
+ # ],
754
+ # },
755
+ # },
756
+ # ],
757
+ # on_exception_steps: [
758
+ # {
759
+ # type: "COPY", # accepts COPY, CUSTOM, TAG, DELETE
760
+ # copy_step_details: {
761
+ # name: "WorkflowStepName",
762
+ # destination_file_location: {
763
+ # s3_file_location: {
764
+ # bucket: "S3Bucket",
765
+ # key: "S3Key",
766
+ # },
767
+ # efs_file_location: {
768
+ # file_system_id: "EfsFileSystemId",
769
+ # path: "EfsPath",
770
+ # },
771
+ # },
772
+ # overwrite_existing: "TRUE", # accepts TRUE, FALSE
773
+ # },
774
+ # custom_step_details: {
775
+ # name: "WorkflowStepName",
776
+ # target: "CustomStepTarget",
777
+ # timeout_seconds: 1,
778
+ # },
779
+ # delete_step_details: {
780
+ # name: "WorkflowStepName",
781
+ # },
782
+ # tag_step_details: {
783
+ # name: "WorkflowStepName",
784
+ # tags: [
785
+ # {
786
+ # key: "S3TagKey", # required
787
+ # value: "S3TagValue", # required
788
+ # },
789
+ # ],
790
+ # },
791
+ # },
792
+ # ],
793
+ # tags: [
794
+ # {
795
+ # key: "TagKey", # required
796
+ # value: "TagValue", # required
797
+ # },
798
+ # ],
799
+ # }
800
+ #
801
+ # @!attribute [rw] description
802
+ # A textual description for the workflow.
803
+ # @return [String]
804
+ #
805
+ # @!attribute [rw] steps
806
+ # Specifies the details for the steps that are in the specified
807
+ # workflow.
808
+ #
809
+ # The `TYPE` specifies which of the following actions is being taken
810
+ # for this step.
811
+ #
812
+ # * *Copy*\: copy the file to another location
813
+ #
814
+ # * *Custom*\: custom step with a lambda target
815
+ #
816
+ # * *Delete*\: delete the file
817
+ #
818
+ # * *Tag*\: add a tag to the file
819
+ #
820
+ # For file location, you specify either the S3 bucket and key, or the
821
+ # EFS filesystem ID and path.
822
+ # @return [Array<Types::WorkflowStep>]
823
+ #
824
+ # @!attribute [rw] on_exception_steps
825
+ # Specifies the steps (actions) to take if any errors are encountered
826
+ # during execution of the workflow.
827
+ # @return [Array<Types::WorkflowStep>]
828
+ #
829
+ # @!attribute [rw] tags
830
+ # Key-value pairs that can be used to group and search for workflows.
831
+ # Tags are metadata attached to workflows for any purpose.
832
+ # @return [Array<Types::Tag>]
833
+ #
834
+ # @see http://docs.aws.amazon.com/goto/WebAPI/transfer-2018-11-05/CreateWorkflowRequest AWS API Documentation
835
+ #
836
+ class CreateWorkflowRequest < Struct.new(
837
+ :description,
838
+ :steps,
839
+ :on_exception_steps,
840
+ :tags)
841
+ SENSITIVE = []
842
+ include Aws::Structure
843
+ end
844
+
845
+ # @!attribute [rw] workflow_id
846
+ # A unique identifier for the workflow.
847
+ # @return [String]
848
+ #
849
+ # @see http://docs.aws.amazon.com/goto/WebAPI/transfer-2018-11-05/CreateWorkflowResponse AWS API Documentation
850
+ #
851
+ class CreateWorkflowResponse < Struct.new(
852
+ :workflow_id)
853
+ SENSITIVE = []
854
+ include Aws::Structure
855
+ end
856
+
857
+ # Each step type has its own `StepDetails` structure.
858
+ #
859
+ # @note When making an API call, you may pass CustomStepDetails
860
+ # data as a hash:
861
+ #
862
+ # {
863
+ # name: "WorkflowStepName",
864
+ # target: "CustomStepTarget",
865
+ # timeout_seconds: 1,
866
+ # }
867
+ #
868
+ # @!attribute [rw] name
869
+ # The name of the step, used as an identifier.
870
+ # @return [String]
871
+ #
872
+ # @!attribute [rw] target
873
+ # The ARN for the lambda function that is being called.
874
+ # @return [String]
875
+ #
876
+ # @!attribute [rw] timeout_seconds
877
+ # Timeout, in seconds, for the step.
878
+ # @return [Integer]
879
+ #
880
+ # @see http://docs.aws.amazon.com/goto/WebAPI/transfer-2018-11-05/CustomStepDetails AWS API Documentation
881
+ #
882
+ class CustomStepDetails < Struct.new(
883
+ :name,
884
+ :target,
885
+ :timeout_seconds)
886
+ SENSITIVE = []
887
+ include Aws::Structure
888
+ end
889
+
661
890
  # @note When making an API call, you may pass DeleteAccessRequest
662
891
  # data as a hash:
663
892
  #
@@ -752,6 +981,27 @@ module Aws::Transfer
752
981
  include Aws::Structure
753
982
  end
754
983
 
984
+ # The name of the step, used to identify the step that is being deleted.
985
+ #
986
+ # @note When making an API call, you may pass DeleteStepDetails
987
+ # data as a hash:
988
+ #
989
+ # {
990
+ # name: "WorkflowStepName",
991
+ # }
992
+ #
993
+ # @!attribute [rw] name
994
+ # The name of the step, used as an identifier.
995
+ # @return [String]
996
+ #
997
+ # @see http://docs.aws.amazon.com/goto/WebAPI/transfer-2018-11-05/DeleteStepDetails AWS API Documentation
998
+ #
999
+ class DeleteStepDetails < Struct.new(
1000
+ :name)
1001
+ SENSITIVE = []
1002
+ include Aws::Structure
1003
+ end
1004
+
755
1005
  # @note When making an API call, you may pass DeleteUserRequest
756
1006
  # data as a hash:
757
1007
  #
@@ -779,6 +1029,25 @@ module Aws::Transfer
779
1029
  include Aws::Structure
780
1030
  end
781
1031
 
1032
+ # @note When making an API call, you may pass DeleteWorkflowRequest
1033
+ # data as a hash:
1034
+ #
1035
+ # {
1036
+ # workflow_id: "WorkflowId", # required
1037
+ # }
1038
+ #
1039
+ # @!attribute [rw] workflow_id
1040
+ # A unique identifier for the workflow.
1041
+ # @return [String]
1042
+ #
1043
+ # @see http://docs.aws.amazon.com/goto/WebAPI/transfer-2018-11-05/DeleteWorkflowRequest AWS API Documentation
1044
+ #
1045
+ class DeleteWorkflowRequest < Struct.new(
1046
+ :workflow_id)
1047
+ SENSITIVE = []
1048
+ include Aws::Structure
1049
+ end
1050
+
782
1051
  # @note When making an API call, you may pass DescribeAccessRequest
783
1052
  # data as a hash:
784
1053
  #
@@ -839,6 +1108,48 @@ module Aws::Transfer
839
1108
  include Aws::Structure
840
1109
  end
841
1110
 
1111
+ # @note When making an API call, you may pass DescribeExecutionRequest
1112
+ # data as a hash:
1113
+ #
1114
+ # {
1115
+ # execution_id: "ExecutionId", # required
1116
+ # workflow_id: "WorkflowId", # required
1117
+ # }
1118
+ #
1119
+ # @!attribute [rw] execution_id
1120
+ # A unique identifier for the execution of a workflow.
1121
+ # @return [String]
1122
+ #
1123
+ # @!attribute [rw] workflow_id
1124
+ # A unique identifier for the workflow.
1125
+ # @return [String]
1126
+ #
1127
+ # @see http://docs.aws.amazon.com/goto/WebAPI/transfer-2018-11-05/DescribeExecutionRequest AWS API Documentation
1128
+ #
1129
+ class DescribeExecutionRequest < Struct.new(
1130
+ :execution_id,
1131
+ :workflow_id)
1132
+ SENSITIVE = []
1133
+ include Aws::Structure
1134
+ end
1135
+
1136
+ # @!attribute [rw] workflow_id
1137
+ # A unique identifier for the workflow.
1138
+ # @return [String]
1139
+ #
1140
+ # @!attribute [rw] execution
1141
+ # The structure that contains the details of the workflow' execution.
1142
+ # @return [Types::DescribedExecution]
1143
+ #
1144
+ # @see http://docs.aws.amazon.com/goto/WebAPI/transfer-2018-11-05/DescribeExecutionResponse AWS API Documentation
1145
+ #
1146
+ class DescribeExecutionResponse < Struct.new(
1147
+ :workflow_id,
1148
+ :execution)
1149
+ SENSITIVE = []
1150
+ include Aws::Structure
1151
+ end
1152
+
842
1153
  # @note When making an API call, you may pass DescribeSecurityPolicyRequest
843
1154
  # data as a hash:
844
1155
  #
@@ -950,6 +1261,37 @@ module Aws::Transfer
950
1261
  include Aws::Structure
951
1262
  end
952
1263
 
1264
+ # @note When making an API call, you may pass DescribeWorkflowRequest
1265
+ # data as a hash:
1266
+ #
1267
+ # {
1268
+ # workflow_id: "WorkflowId", # required
1269
+ # }
1270
+ #
1271
+ # @!attribute [rw] workflow_id
1272
+ # A unique identifier for the workflow.
1273
+ # @return [String]
1274
+ #
1275
+ # @see http://docs.aws.amazon.com/goto/WebAPI/transfer-2018-11-05/DescribeWorkflowRequest AWS API Documentation
1276
+ #
1277
+ class DescribeWorkflowRequest < Struct.new(
1278
+ :workflow_id)
1279
+ SENSITIVE = []
1280
+ include Aws::Structure
1281
+ end
1282
+
1283
+ # @!attribute [rw] workflow
1284
+ # The structure that contains the details of the workflow.
1285
+ # @return [Types::DescribedWorkflow]
1286
+ #
1287
+ # @see http://docs.aws.amazon.com/goto/WebAPI/transfer-2018-11-05/DescribeWorkflowResponse AWS API Documentation
1288
+ #
1289
+ class DescribeWorkflowResponse < Struct.new(
1290
+ :workflow)
1291
+ SENSITIVE = []
1292
+ include Aws::Structure
1293
+ end
1294
+
953
1295
  # Describes the properties of the access that was specified.
954
1296
  #
955
1297
  # @!attribute [rw] home_directory
@@ -970,10 +1312,10 @@ module Aws::Transfer
970
1312
  # to paths in `Target`. This value can only be set when
971
1313
  # `HomeDirectoryType` is set to *LOGICAL*.
972
1314
  #
973
- # In most cases, you can use this value instead of the scope-down
974
- # policy to lock down the associated access to the designated home
975
- # directory ("`chroot`"). To do this, you can set `Entry` to '/'
976
- # and set `Target` to the `HomeDirectory` parameter value.
1315
+ # In most cases, you can use this value instead of the session policy
1316
+ # to lock down the associated access to the designated home directory
1317
+ # ("`chroot`"). To do this, you can set `Entry` to '/' and set
1318
+ # `Target` to the `HomeDirectory` parameter value.
977
1319
  # @return [Array<Types::HomeDirectoryMapEntry>]
978
1320
  #
979
1321
  # @!attribute [rw] home_directory_type
@@ -981,14 +1323,14 @@ module Aws::Transfer
981
1323
  # directory to be when they log into the server. If you set it to
982
1324
  # `PATH`, the user will see the absolute Amazon S3 bucket or EFS paths
983
1325
  # as is in their file transfer protocol clients. If you set it
984
- # `LOGICAL`, you will need to provide mappings in the
1326
+ # `LOGICAL`, you need to provide mappings in the
985
1327
  # `HomeDirectoryMappings` for how you want to make Amazon S3 or EFS
986
1328
  # paths visible to your users.
987
1329
  # @return [String]
988
1330
  #
989
1331
  # @!attribute [rw] policy
990
- # A scope-down policy for your user so that you can use the same IAM
991
- # role across multiple users. This policy scopes down user access to
1332
+ # A session policy for your user so that you can use the same IAM role
1333
+ # across multiple users. This policy scopes down user access to
992
1334
  # portions of their Amazon S3 bucket. Variables that you can use
993
1335
  # inside this policy include `$\{Transfer:UserName\}`,
994
1336
  # `$\{Transfer:HomeDirectory\}`, and `$\{Transfer:HomeBucket\}`.
@@ -1048,6 +1390,67 @@ module Aws::Transfer
1048
1390
  include Aws::Structure
1049
1391
  end
1050
1392
 
1393
+ # The details for an execution object.
1394
+ #
1395
+ # @!attribute [rw] execution_id
1396
+ # A unique identifier for the execution of a workflow.
1397
+ # @return [String]
1398
+ #
1399
+ # @!attribute [rw] initial_file_location
1400
+ # A structure that describes the Amazon S3 or EFS file location. This
1401
+ # is the file location when the execution begins: if the file is being
1402
+ # copied, this is the initial (as opposed to destination) file
1403
+ # location.
1404
+ # @return [Types::FileLocation]
1405
+ #
1406
+ # @!attribute [rw] service_metadata
1407
+ # A container object for the session details associated with a
1408
+ # workflow.
1409
+ # @return [Types::ServiceMetadata]
1410
+ #
1411
+ # @!attribute [rw] execution_role
1412
+ # The IAM role associated with the execution.
1413
+ # @return [String]
1414
+ #
1415
+ # @!attribute [rw] logging_configuration
1416
+ # The IAM logging role associated with the execution.
1417
+ # @return [Types::LoggingConfiguration]
1418
+ #
1419
+ # @!attribute [rw] posix_profile
1420
+ # The full POSIX identity, including user ID (`Uid`), group ID
1421
+ # (`Gid`), and any secondary groups IDs (`SecondaryGids`), that
1422
+ # controls your users' access to your Amazon EFS file systems. The
1423
+ # POSIX permissions that are set on files and directories in your file
1424
+ # system determine the level of access your users get when
1425
+ # transferring files into and out of your Amazon EFS file systems.
1426
+ # @return [Types::PosixProfile]
1427
+ #
1428
+ # @!attribute [rw] status
1429
+ # The status is one of the execution. Can be in progress, completed,
1430
+ # exception encountered, or handling the exception.
1431
+ # @return [String]
1432
+ #
1433
+ # @!attribute [rw] results
1434
+ # A structure that describes the execution results. This includes a
1435
+ # list of the steps along with the details of each step, error type
1436
+ # and message (if any), and the `OnExceptionSteps` structure.
1437
+ # @return [Types::ExecutionResults]
1438
+ #
1439
+ # @see http://docs.aws.amazon.com/goto/WebAPI/transfer-2018-11-05/DescribedExecution AWS API Documentation
1440
+ #
1441
+ class DescribedExecution < Struct.new(
1442
+ :execution_id,
1443
+ :initial_file_location,
1444
+ :service_metadata,
1445
+ :execution_role,
1446
+ :logging_configuration,
1447
+ :posix_profile,
1448
+ :status,
1449
+ :results)
1450
+ SENSITIVE = []
1451
+ include Aws::Structure
1452
+ end
1453
+
1051
1454
  # Describes the properties of a security policy that was specified. For
1052
1455
  # more information about security policies, see [Working with security
1053
1456
  # policies][1].
@@ -1225,6 +1628,11 @@ module Aws::Transfer
1225
1628
  # specified with the `ServerId`.
1226
1629
  # @return [Integer]
1227
1630
  #
1631
+ # @!attribute [rw] workflow_details
1632
+ # Specifies the workflow ID for the workflow to assign and the
1633
+ # execution role used for executing the workflow.
1634
+ # @return [Types::WorkflowDetails]
1635
+ #
1228
1636
  # @see http://docs.aws.amazon.com/goto/WebAPI/transfer-2018-11-05/DescribedServer AWS API Documentation
1229
1637
  #
1230
1638
  class DescribedServer < Struct.new(
@@ -1243,7 +1651,8 @@ module Aws::Transfer
1243
1651
  :server_id,
1244
1652
  :state,
1245
1653
  :tags,
1246
- :user_count)
1654
+ :user_count,
1655
+ :workflow_details)
1247
1656
  SENSITIVE = []
1248
1657
  include Aws::Structure
1249
1658
  end
@@ -1273,8 +1682,8 @@ module Aws::Transfer
1273
1682
  # to paths in `Target`. This value can only be set when
1274
1683
  # `HomeDirectoryType` is set to *LOGICAL*.
1275
1684
  #
1276
- # In most cases, you can use this value instead of the scope-down
1277
- # policy to lock your user down to the designated home directory
1685
+ # In most cases, you can use this value instead of the session policy
1686
+ # to lock your user down to the designated home directory
1278
1687
  # ("`chroot`"). To do this, you can set `Entry` to '/' and set
1279
1688
  # `Target` to the HomeDirectory parameter value.
1280
1689
  # @return [Array<Types::HomeDirectoryMapEntry>]
@@ -1284,14 +1693,14 @@ module Aws::Transfer
1284
1693
  # directory to be when they log into the server. If you set it to
1285
1694
  # `PATH`, the user will see the absolute Amazon S3 bucket or EFS paths
1286
1695
  # as is in their file transfer protocol clients. If you set it
1287
- # `LOGICAL`, you will need to provide mappings in the
1696
+ # `LOGICAL`, you need to provide mappings in the
1288
1697
  # `HomeDirectoryMappings` for how you want to make Amazon S3 or EFS
1289
1698
  # paths visible to your users.
1290
1699
  # @return [String]
1291
1700
  #
1292
1701
  # @!attribute [rw] policy
1293
- # A scope-down policy for your user so that you can use the same IAM
1294
- # role across multiple users. This policy scopes down user access to
1702
+ # A session policy for your user so that you can use the same IAM role
1703
+ # across multiple users. This policy scopes down user access to
1295
1704
  # portions of their Amazon S3 bucket. Variables that you can use
1296
1705
  # inside this policy include `$\{Transfer:UserName\}`,
1297
1706
  # `$\{Transfer:HomeDirectory\}`, and `$\{Transfer:HomeBucket\}`.
@@ -1351,6 +1760,90 @@ module Aws::Transfer
1351
1760
  include Aws::Structure
1352
1761
  end
1353
1762
 
1763
+ # Describes the properties of the specified workflow
1764
+ #
1765
+ # @!attribute [rw] arn
1766
+ # Specifies the unique Amazon Resource Name (ARN) for the workflow.
1767
+ # @return [String]
1768
+ #
1769
+ # @!attribute [rw] description
1770
+ # Specifies the text description for the workflow.
1771
+ # @return [String]
1772
+ #
1773
+ # @!attribute [rw] steps
1774
+ # Specifies the details for the steps that are in the specified
1775
+ # workflow.
1776
+ # @return [Array<Types::WorkflowStep>]
1777
+ #
1778
+ # @!attribute [rw] on_exception_steps
1779
+ # Specifies the steps (actions) to take if any errors are encountered
1780
+ # during execution of the workflow.
1781
+ # @return [Array<Types::WorkflowStep>]
1782
+ #
1783
+ # @!attribute [rw] workflow_id
1784
+ # A unique identifier for the workflow.
1785
+ # @return [String]
1786
+ #
1787
+ # @!attribute [rw] tags
1788
+ # Key-value pairs that can be used to group and search for workflows.
1789
+ # Tags are metadata attached to workflows for any purpose.
1790
+ # @return [Array<Types::Tag>]
1791
+ #
1792
+ # @see http://docs.aws.amazon.com/goto/WebAPI/transfer-2018-11-05/DescribedWorkflow AWS API Documentation
1793
+ #
1794
+ class DescribedWorkflow < Struct.new(
1795
+ :arn,
1796
+ :description,
1797
+ :steps,
1798
+ :on_exception_steps,
1799
+ :workflow_id,
1800
+ :tags)
1801
+ SENSITIVE = []
1802
+ include Aws::Structure
1803
+ end
1804
+
1805
+ # Specifies the details for the file location for the file being used in
1806
+ # the workflow. Only applicable if you are using Amazon EFS for storage.
1807
+ #
1808
+ # You need to provide the file system ID and the pathname. The pathname
1809
+ # can represent either a path or a file. This is determined by whether
1810
+ # or not you end the path value with the forward slash (/) character. If
1811
+ # the final character is "/", then your file is copied to the folder,
1812
+ # and its name does not change. If, rather, the final character is
1813
+ # alphanumeric, your uploaded file is renamed to the path value. In this
1814
+ # case, if a file with that name already exists, it is overwritten.
1815
+ #
1816
+ # For example, if your path is `shared-files/bob/`, your uploaded files
1817
+ # are copied to the `shared-files/bob/`, folder. If your path is
1818
+ # `shared-files/today`, each uploaded file is copied to the
1819
+ # `shared-files` folder and named `today`\: each upload overwrites the
1820
+ # previous version of the `bob` file.
1821
+ #
1822
+ # @note When making an API call, you may pass EfsFileLocation
1823
+ # data as a hash:
1824
+ #
1825
+ # {
1826
+ # file_system_id: "EfsFileSystemId",
1827
+ # path: "EfsPath",
1828
+ # }
1829
+ #
1830
+ # @!attribute [rw] file_system_id
1831
+ # The ID of the file system, assigned by Amazon EFS.
1832
+ # @return [String]
1833
+ #
1834
+ # @!attribute [rw] path
1835
+ # The pathname for the folder being used by a workflow.
1836
+ # @return [String]
1837
+ #
1838
+ # @see http://docs.aws.amazon.com/goto/WebAPI/transfer-2018-11-05/EfsFileLocation AWS API Documentation
1839
+ #
1840
+ class EfsFileLocation < Struct.new(
1841
+ :file_system_id,
1842
+ :path)
1843
+ SENSITIVE = []
1844
+ include Aws::Structure
1845
+ end
1846
+
1354
1847
  # The virtual private cloud (VPC) endpoint settings that are configured
1355
1848
  # for your file transfer protocol-enabled server. With a VPC endpoint,
1356
1849
  # you can restrict access to your server and resources only within your
@@ -1451,55 +1944,156 @@ module Aws::Transfer
1451
1944
  include Aws::Structure
1452
1945
  end
1453
1946
 
1454
- # Represents an object that contains entries and targets for
1455
- # `HomeDirectoryMappings`.
1456
- #
1457
- # The following is an `Entry` and `Target` pair example for `chroot`.
1458
- #
1459
- # `[ \{ "Entry:": "/", "Target": "/bucket_name/home/mydirectory" \} ]`
1460
- #
1461
- # <note markdown="1"> If the target of a logical directory entry does not exist in Amazon S3
1462
- # or EFS, the entry is ignored. As a workaround, you can use the Amazon
1463
- # S3 API or EFS API to create 0 byte objects as place holders for your
1464
- # directory. If using the CLI, use the `s3api` or `efsapi` call instead
1465
- # of `s3` or `efs` so you can use the put-object operation. For example,
1466
- # you use the following: `aws s3api put-object --bucket bucketname --key
1467
- # path/to/folder/`. Make sure that the end of the key name ends in a `/`
1468
- # for it to be considered a folder.
1469
- #
1470
- # </note>
1471
- #
1472
- # @note When making an API call, you may pass HomeDirectoryMapEntry
1473
- # data as a hash:
1474
- #
1475
- # {
1476
- # entry: "MapEntry", # required
1477
- # target: "MapTarget", # required
1478
- # }
1947
+ # Specifies the error message and type, for an error that occurs during
1948
+ # the execution of the workflow.
1479
1949
  #
1480
- # @!attribute [rw] entry
1481
- # Represents an entry for `HomeDirectoryMappings`.
1950
+ # @!attribute [rw] type
1951
+ # Specifies the error type: currently, the only valid value is
1952
+ # `PERMISSION_DENIED`, which occurs if your policy does not contain
1953
+ # the correct permissions to complete one or more of the steps in the
1954
+ # workflow.
1482
1955
  # @return [String]
1483
1956
  #
1484
- # @!attribute [rw] target
1485
- # Represents the map target that is used in a `HomeDirectorymapEntry`.
1957
+ # @!attribute [rw] message
1958
+ # Specifies the descriptive message that corresponds to the
1959
+ # `ErrorType`.
1486
1960
  # @return [String]
1487
1961
  #
1488
- # @see http://docs.aws.amazon.com/goto/WebAPI/transfer-2018-11-05/HomeDirectoryMapEntry AWS API Documentation
1962
+ # @see http://docs.aws.amazon.com/goto/WebAPI/transfer-2018-11-05/ExecutionError AWS API Documentation
1489
1963
  #
1490
- class HomeDirectoryMapEntry < Struct.new(
1491
- :entry,
1492
- :target)
1964
+ class ExecutionError < Struct.new(
1965
+ :type,
1966
+ :message)
1493
1967
  SENSITIVE = []
1494
1968
  include Aws::Structure
1495
1969
  end
1496
1970
 
1497
- # Returns information related to the type of user authentication that is
1498
- # in use for a file transfer protocol-enabled server's users. A server
1499
- # can have only one method of authentication.
1971
+ # Specifies the steps in the workflow, as well as the steps to execute
1972
+ # in case of any errors during workflow execution.
1500
1973
  #
1501
- # @note When making an API call, you may pass IdentityProviderDetails
1502
- # data as a hash:
1974
+ # @!attribute [rw] steps
1975
+ # Specifies the details for the steps that are in the specified
1976
+ # workflow.
1977
+ # @return [Array<Types::ExecutionStepResult>]
1978
+ #
1979
+ # @!attribute [rw] on_exception_steps
1980
+ # Specifies the steps (actions) to take if any errors are encountered
1981
+ # during execution of the workflow.
1982
+ # @return [Array<Types::ExecutionStepResult>]
1983
+ #
1984
+ # @see http://docs.aws.amazon.com/goto/WebAPI/transfer-2018-11-05/ExecutionResults AWS API Documentation
1985
+ #
1986
+ class ExecutionResults < Struct.new(
1987
+ :steps,
1988
+ :on_exception_steps)
1989
+ SENSITIVE = []
1990
+ include Aws::Structure
1991
+ end
1992
+
1993
+ # Specifies the following details for the step: error (if any), outputs
1994
+ # (if any), and the step type.
1995
+ #
1996
+ # @!attribute [rw] step_type
1997
+ # One of the available step types.
1998
+ #
1999
+ # * *Copy*\: copy the file to another location
2000
+ #
2001
+ # * *Custom*\: custom step with a lambda target
2002
+ #
2003
+ # * *Delete*\: delete the file
2004
+ #
2005
+ # * *Tag*\: add a tag to the file
2006
+ # @return [String]
2007
+ #
2008
+ # @!attribute [rw] outputs
2009
+ # The values for the key/value pair applied as a tag to the file. Only
2010
+ # applicable if the step type is `TAG`.
2011
+ # @return [String]
2012
+ #
2013
+ # @!attribute [rw] error
2014
+ # Specifies the details for an error, if it occurred during execution
2015
+ # of the specified workfow step.
2016
+ # @return [Types::ExecutionError]
2017
+ #
2018
+ # @see http://docs.aws.amazon.com/goto/WebAPI/transfer-2018-11-05/ExecutionStepResult AWS API Documentation
2019
+ #
2020
+ class ExecutionStepResult < Struct.new(
2021
+ :step_type,
2022
+ :outputs,
2023
+ :error)
2024
+ SENSITIVE = []
2025
+ include Aws::Structure
2026
+ end
2027
+
2028
+ # Specifies the Amazon S3 or EFS file details to be used in the step.
2029
+ #
2030
+ # @!attribute [rw] s3_file_location
2031
+ # Specifies the S3 details for the file being used, such as bucket,
2032
+ # Etag, and so forth.
2033
+ # @return [Types::S3FileLocation]
2034
+ #
2035
+ # @!attribute [rw] efs_file_location
2036
+ # Specifies the Amazon EFS ID and the path for the file being used.
2037
+ # @return [Types::EfsFileLocation]
2038
+ #
2039
+ # @see http://docs.aws.amazon.com/goto/WebAPI/transfer-2018-11-05/FileLocation AWS API Documentation
2040
+ #
2041
+ class FileLocation < Struct.new(
2042
+ :s3_file_location,
2043
+ :efs_file_location)
2044
+ SENSITIVE = []
2045
+ include Aws::Structure
2046
+ end
2047
+
2048
+ # Represents an object that contains entries and targets for
2049
+ # `HomeDirectoryMappings`.
2050
+ #
2051
+ # The following is an `Entry` and `Target` pair example for `chroot`.
2052
+ #
2053
+ # `[ \{ "Entry:": "/", "Target": "/bucket_name/home/mydirectory" \} ]`
2054
+ #
2055
+ # <note markdown="1"> If the target of a logical directory entry does not exist in Amazon S3
2056
+ # or EFS, the entry is ignored. As a workaround, you can use the Amazon
2057
+ # S3 API or EFS API to create 0 byte objects as place holders for your
2058
+ # directory. If using the CLI, use the `s3api` or `efsapi` call instead
2059
+ # of `s3` or `efs` so you can use the put-object operation. For example,
2060
+ # you use the following: `aws s3api put-object --bucket bucketname --key
2061
+ # path/to/folder/`. Make sure that the end of the key name ends in a `/`
2062
+ # for it to be considered a folder.
2063
+ #
2064
+ # </note>
2065
+ #
2066
+ # @note When making an API call, you may pass HomeDirectoryMapEntry
2067
+ # data as a hash:
2068
+ #
2069
+ # {
2070
+ # entry: "MapEntry", # required
2071
+ # target: "MapTarget", # required
2072
+ # }
2073
+ #
2074
+ # @!attribute [rw] entry
2075
+ # Represents an entry for `HomeDirectoryMappings`.
2076
+ # @return [String]
2077
+ #
2078
+ # @!attribute [rw] target
2079
+ # Represents the map target that is used in a `HomeDirectorymapEntry`.
2080
+ # @return [String]
2081
+ #
2082
+ # @see http://docs.aws.amazon.com/goto/WebAPI/transfer-2018-11-05/HomeDirectoryMapEntry AWS API Documentation
2083
+ #
2084
+ class HomeDirectoryMapEntry < Struct.new(
2085
+ :entry,
2086
+ :target)
2087
+ SENSITIVE = []
2088
+ include Aws::Structure
2089
+ end
2090
+
2091
+ # Returns information related to the type of user authentication that is
2092
+ # in use for a file transfer protocol-enabled server's users. A server
2093
+ # can have only one method of authentication.
2094
+ #
2095
+ # @note When making an API call, you may pass IdentityProviderDetails
2096
+ # data as a hash:
1503
2097
  #
1504
2098
  # {
1505
2099
  # url: "Url",
@@ -1590,6 +2184,40 @@ module Aws::Transfer
1590
2184
  include Aws::Structure
1591
2185
  end
1592
2186
 
2187
+ # Specifies the location for the file being copied. Only applicable for
2188
+ # the Copy type of workflow steps.
2189
+ #
2190
+ # @note When making an API call, you may pass InputFileLocation
2191
+ # data as a hash:
2192
+ #
2193
+ # {
2194
+ # s3_file_location: {
2195
+ # bucket: "S3Bucket",
2196
+ # key: "S3Key",
2197
+ # },
2198
+ # efs_file_location: {
2199
+ # file_system_id: "EfsFileSystemId",
2200
+ # path: "EfsPath",
2201
+ # },
2202
+ # }
2203
+ #
2204
+ # @!attribute [rw] s3_file_location
2205
+ # Specifies the details for the S3 file being copied.
2206
+ # @return [Types::S3InputFileLocation]
2207
+ #
2208
+ # @!attribute [rw] efs_file_location
2209
+ # Specifies the details for the Amazon EFS file being copied.
2210
+ # @return [Types::EfsFileLocation]
2211
+ #
2212
+ # @see http://docs.aws.amazon.com/goto/WebAPI/transfer-2018-11-05/InputFileLocation AWS API Documentation
2213
+ #
2214
+ class InputFileLocation < Struct.new(
2215
+ :s3_file_location,
2216
+ :efs_file_location)
2217
+ SENSITIVE = []
2218
+ include Aws::Structure
2219
+ end
2220
+
1593
2221
  # This exception is thrown when an error occurs in the Amazon Web
1594
2222
  # ServicesTransfer Family service.
1595
2223
  #
@@ -1692,6 +2320,92 @@ module Aws::Transfer
1692
2320
  include Aws::Structure
1693
2321
  end
1694
2322
 
2323
+ # @note When making an API call, you may pass ListExecutionsRequest
2324
+ # data as a hash:
2325
+ #
2326
+ # {
2327
+ # max_results: 1,
2328
+ # next_token: "NextToken",
2329
+ # workflow_id: "WorkflowId", # required
2330
+ # }
2331
+ #
2332
+ # @!attribute [rw] max_results
2333
+ # Specifies the aximum number of executions to return.
2334
+ # @return [Integer]
2335
+ #
2336
+ # @!attribute [rw] next_token
2337
+ # `ListExecutions` returns the `NextToken` parameter in the output.
2338
+ # You can then pass the `NextToken` parameter in a subsequent command
2339
+ # to continue listing additional executions.
2340
+ #
2341
+ # This is useful for pagination, for instance. If you have 100
2342
+ # executions for a workflow, you might only want to list first 10. If
2343
+ # so, callthe API by specifing the `max-results`\:
2344
+ #
2345
+ # `aws transfer list-executions --max-results 10`
2346
+ #
2347
+ # This returns details for the first 10 executions, as well as the
2348
+ # pointer (`NextToken`) to the eleventh execution. You can now call
2349
+ # the API again, suppling the `NextToken` value you received:
2350
+ #
2351
+ # `aws transfer list-executions --max-results 10 --next-token
2352
+ # $somePointerReturnedFromPreviousListResult`
2353
+ #
2354
+ # This call returns the next 10 executions, the 11th through the 20th.
2355
+ # You can then repeat the call until the details for all 100
2356
+ # executions have been returned.
2357
+ # @return [String]
2358
+ #
2359
+ # @!attribute [rw] workflow_id
2360
+ # A unique identifier for the workflow.
2361
+ # @return [String]
2362
+ #
2363
+ # @see http://docs.aws.amazon.com/goto/WebAPI/transfer-2018-11-05/ListExecutionsRequest AWS API Documentation
2364
+ #
2365
+ class ListExecutionsRequest < Struct.new(
2366
+ :max_results,
2367
+ :next_token,
2368
+ :workflow_id)
2369
+ SENSITIVE = []
2370
+ include Aws::Structure
2371
+ end
2372
+
2373
+ # @!attribute [rw] next_token
2374
+ # `ListExecutions` returns the `NextToken` parameter in the output.
2375
+ # You can then pass the `NextToken` parameter in a subsequent command
2376
+ # to continue listing additional executions.
2377
+ # @return [String]
2378
+ #
2379
+ # @!attribute [rw] workflow_id
2380
+ # A unique identifier for the workflow.
2381
+ # @return [String]
2382
+ #
2383
+ # @!attribute [rw] executions
2384
+ # Returns the details for each execution.
2385
+ #
2386
+ # * **NextToken**\: returned from a call to several APIs, you can use
2387
+ # pass it to a subsequent command to continue listing additional
2388
+ # executions.
2389
+ #
2390
+ # * **StartTime**\: timestamp indicating when the execution began.
2391
+ #
2392
+ # * **Executions**\: details of the execution, including the execution
2393
+ # ID, initial file location, and Service metadata.
2394
+ #
2395
+ # * **Status**\: one of the following values: `IN_PROGRESS`,
2396
+ # `COMPLETED`, `EXCEPTION`, `HANDLING_EXEPTION`.
2397
+ # @return [Array<Types::ListedExecution>]
2398
+ #
2399
+ # @see http://docs.aws.amazon.com/goto/WebAPI/transfer-2018-11-05/ListExecutionsResponse AWS API Documentation
2400
+ #
2401
+ class ListExecutionsResponse < Struct.new(
2402
+ :next_token,
2403
+ :workflow_id,
2404
+ :executions)
2405
+ SENSITIVE = []
2406
+ include Aws::Structure
2407
+ end
2408
+
1695
2409
  # @note When making an API call, you may pass ListSecurityPoliciesRequest
1696
2410
  # data as a hash:
1697
2411
  #
@@ -1917,6 +2631,53 @@ module Aws::Transfer
1917
2631
  include Aws::Structure
1918
2632
  end
1919
2633
 
2634
+ # @note When making an API call, you may pass ListWorkflowsRequest
2635
+ # data as a hash:
2636
+ #
2637
+ # {
2638
+ # max_results: 1,
2639
+ # next_token: "NextToken",
2640
+ # }
2641
+ #
2642
+ # @!attribute [rw] max_results
2643
+ # Specifies the maximum number of workflows to return.
2644
+ # @return [Integer]
2645
+ #
2646
+ # @!attribute [rw] next_token
2647
+ # `ListWorkflows` returns the `NextToken` parameter in the output. You
2648
+ # can then pass the `NextToken` parameter in a subsequent command to
2649
+ # continue listing additional workflows.
2650
+ # @return [String]
2651
+ #
2652
+ # @see http://docs.aws.amazon.com/goto/WebAPI/transfer-2018-11-05/ListWorkflowsRequest AWS API Documentation
2653
+ #
2654
+ class ListWorkflowsRequest < Struct.new(
2655
+ :max_results,
2656
+ :next_token)
2657
+ SENSITIVE = []
2658
+ include Aws::Structure
2659
+ end
2660
+
2661
+ # @!attribute [rw] next_token
2662
+ # `ListWorkflows` returns the `NextToken` parameter in the output. You
2663
+ # can then pass the `NextToken` parameter in a subsequent command to
2664
+ # continue listing additional workflows.
2665
+ # @return [String]
2666
+ #
2667
+ # @!attribute [rw] workflows
2668
+ # Returns the `Arn`, `WorkflowId`, and `Description` for each
2669
+ # workflow.
2670
+ # @return [Array<Types::ListedWorkflow>]
2671
+ #
2672
+ # @see http://docs.aws.amazon.com/goto/WebAPI/transfer-2018-11-05/ListWorkflowsResponse AWS API Documentation
2673
+ #
2674
+ class ListWorkflowsResponse < Struct.new(
2675
+ :next_token,
2676
+ :workflows)
2677
+ SENSITIVE = []
2678
+ include Aws::Structure
2679
+ end
2680
+
1920
2681
  # Lists the properties for one or more specified associated accesses.
1921
2682
  #
1922
2683
  # @!attribute [rw] home_directory
@@ -1931,7 +2692,7 @@ module Aws::Transfer
1931
2692
  # directory to be when they log into the server. If you set it to
1932
2693
  # `PATH`, the user will see the absolute Amazon S3 bucket or EFS paths
1933
2694
  # as is in their file transfer protocol clients. If you set it
1934
- # `LOGICAL`, you will need to provide mappings in the
2695
+ # `LOGICAL`, you need to provide mappings in the
1935
2696
  # `HomeDirectoryMappings` for how you want to make Amazon S3 or EFS
1936
2697
  # paths visible to your users.
1937
2698
  # @return [String]
@@ -1978,6 +2739,40 @@ module Aws::Transfer
1978
2739
  include Aws::Structure
1979
2740
  end
1980
2741
 
2742
+ # Returns properties of the execution that is specified.
2743
+ #
2744
+ # @!attribute [rw] execution_id
2745
+ # A unique identifier for the execution of a workflow.
2746
+ # @return [String]
2747
+ #
2748
+ # @!attribute [rw] initial_file_location
2749
+ # A structure that describes the Amazon S3 or EFS file location. This
2750
+ # is the file location when the execution begins: if the file is being
2751
+ # copied, this is the initial (as opposed to destination) file
2752
+ # location.
2753
+ # @return [Types::FileLocation]
2754
+ #
2755
+ # @!attribute [rw] service_metadata
2756
+ # A container object for the session details associated with a
2757
+ # workflow.
2758
+ # @return [Types::ServiceMetadata]
2759
+ #
2760
+ # @!attribute [rw] status
2761
+ # The status is one of the execution. Can be in progress, completed,
2762
+ # exception encountered, or handling the exception.
2763
+ # @return [String]
2764
+ #
2765
+ # @see http://docs.aws.amazon.com/goto/WebAPI/transfer-2018-11-05/ListedExecution AWS API Documentation
2766
+ #
2767
+ class ListedExecution < Struct.new(
2768
+ :execution_id,
2769
+ :initial_file_location,
2770
+ :service_metadata,
2771
+ :status)
2772
+ SENSITIVE = []
2773
+ include Aws::Structure
2774
+ end
2775
+
1981
2776
  # Returns properties of a file transfer protocol-enabled server that was
1982
2777
  # specified.
1983
2778
  #
@@ -2079,7 +2874,7 @@ module Aws::Transfer
2079
2874
  # directory to be when they log into the server. If you set it to
2080
2875
  # `PATH`, the user will see the absolute Amazon S3 bucket or EFS paths
2081
2876
  # as is in their file transfer protocol clients. If you set it
2082
- # `LOGICAL`, you will need to provide mappings in the
2877
+ # `LOGICAL`, you need to provide mappings in the
2083
2878
  # `HomeDirectoryMappings` for how you want to make Amazon S3 or EFS
2084
2879
  # paths visible to your users.
2085
2880
  # @return [String]
@@ -2128,6 +2923,55 @@ module Aws::Transfer
2128
2923
  include Aws::Structure
2129
2924
  end
2130
2925
 
2926
+ # Contains the ID, text description, and Amazon Resource Name (ARN) for
2927
+ # the workflow.
2928
+ #
2929
+ # @!attribute [rw] workflow_id
2930
+ # A unique identifier for the workflow.
2931
+ # @return [String]
2932
+ #
2933
+ # @!attribute [rw] description
2934
+ # Specifies the text description for the workflow.
2935
+ # @return [String]
2936
+ #
2937
+ # @!attribute [rw] arn
2938
+ # Specifies the unique Amazon Resource Name (ARN) for the workflow.
2939
+ # @return [String]
2940
+ #
2941
+ # @see http://docs.aws.amazon.com/goto/WebAPI/transfer-2018-11-05/ListedWorkflow AWS API Documentation
2942
+ #
2943
+ class ListedWorkflow < Struct.new(
2944
+ :workflow_id,
2945
+ :description,
2946
+ :arn)
2947
+ SENSITIVE = []
2948
+ include Aws::Structure
2949
+ end
2950
+
2951
+ # Consists of the logging role and the log group name.
2952
+ #
2953
+ # @!attribute [rw] logging_role
2954
+ # Specifies the Amazon Resource Name (ARN) of the Amazon Web Services
2955
+ # Identity and Access Management (IAM) role that allows a server to
2956
+ # turn on Amazon CloudWatch logging for Amazon S3 or Amazon EFS
2957
+ # events. When set, user activity can be viewed in your CloudWatch
2958
+ # logs.
2959
+ # @return [String]
2960
+ #
2961
+ # @!attribute [rw] log_group_name
2962
+ # The name of the CloudWatch logging group for the Amazon Web Services
2963
+ # Transfer server to which this workflow belongs.
2964
+ # @return [String]
2965
+ #
2966
+ # @see http://docs.aws.amazon.com/goto/WebAPI/transfer-2018-11-05/LoggingConfiguration AWS API Documentation
2967
+ #
2968
+ class LoggingConfiguration < Struct.new(
2969
+ :logging_role,
2970
+ :log_group_name)
2971
+ SENSITIVE = []
2972
+ include Aws::Structure
2973
+ end
2974
+
2131
2975
  # The full POSIX identity, including user ID (`Uid`), group ID (`Gid`),
2132
2976
  # and any secondary groups IDs (`SecondaryGids`), that controls your
2133
2977
  # users' access to your Amazon EFS file systems. The POSIX permissions
@@ -2189,6 +3033,18 @@ module Aws::Transfer
2189
3033
  #
2190
3034
  # Replace ` 0.0.0.0 ` in the example above with the actual IP address
2191
3035
  # you want to use.
3036
+ #
3037
+ # <note markdown="1"> If you change the `PassiveIp` value, you must stop and then restart
3038
+ # your Transfer server for the change to take effect. For details on
3039
+ # using Passive IP (PASV) in a NAT environment, see [Configuring your
3040
+ # FTPS server behind a firewall or NAT with Amazon Web Services
3041
+ # Transfer Family][1].
3042
+ #
3043
+ # </note>
3044
+ #
3045
+ #
3046
+ #
3047
+ # [1]: http://aws.amazon.com/blogs/storage/configuring-your-ftps-server-behind-a-firewall-or-nat-with-aws-transfer-family/
2192
3048
  # @return [String]
2193
3049
  #
2194
3050
  # @see http://docs.aws.amazon.com/goto/WebAPI/transfer-2018-11-05/ProtocolDetails AWS API Documentation
@@ -2242,6 +3098,165 @@ module Aws::Transfer
2242
3098
  include Aws::Structure
2243
3099
  end
2244
3100
 
3101
+ # Specifies the details for the file location for the file being used in
3102
+ # the workflow. Only applicable if you are using S3 storage.
3103
+ #
3104
+ # You need to provide the bucket and key. The key can represent either a
3105
+ # path or a file. This is determined by whether or not you end the key
3106
+ # value with the forward slash (/) character. If the final character is
3107
+ # "/", then your file is copied to the folder, and its name does not
3108
+ # change. If, rather, the final character is alphanumeric, your uploaded
3109
+ # file is renamed to the path value. In this case, if a file with that
3110
+ # name already exists, it is overwritten.
3111
+ #
3112
+ # For example, if your path is `shared-files/bob/`, your uploaded files
3113
+ # are copied to the `shared-files/bob/`, folder. If your path is
3114
+ # `shared-files/today`, each uploaded file is copied to the
3115
+ # `shared-files` folder and named `today`\: each upload overwrites the
3116
+ # previous version of the *bob* file.
3117
+ #
3118
+ # @!attribute [rw] bucket
3119
+ # Specifies the S3 bucket that contains the file being used.
3120
+ # @return [String]
3121
+ #
3122
+ # @!attribute [rw] key
3123
+ # The name assigned to the file when it was created in S3. You use the
3124
+ # object key to retrieve the object.
3125
+ # @return [String]
3126
+ #
3127
+ # @!attribute [rw] version_id
3128
+ # Specifies the file version.
3129
+ # @return [String]
3130
+ #
3131
+ # @!attribute [rw] etag
3132
+ # The entity tag is a hash of the object. The ETag reflects changes
3133
+ # only to the contents of an object, not its metadata.
3134
+ # @return [String]
3135
+ #
3136
+ # @see http://docs.aws.amazon.com/goto/WebAPI/transfer-2018-11-05/S3FileLocation AWS API Documentation
3137
+ #
3138
+ class S3FileLocation < Struct.new(
3139
+ :bucket,
3140
+ :key,
3141
+ :version_id,
3142
+ :etag)
3143
+ SENSITIVE = []
3144
+ include Aws::Structure
3145
+ end
3146
+
3147
+ # Specifies the details for the S3 file being copied.
3148
+ #
3149
+ # @note When making an API call, you may pass S3InputFileLocation
3150
+ # data as a hash:
3151
+ #
3152
+ # {
3153
+ # bucket: "S3Bucket",
3154
+ # key: "S3Key",
3155
+ # }
3156
+ #
3157
+ # @!attribute [rw] bucket
3158
+ # Specifies the S3 bucket that contains the file being copied.
3159
+ # @return [String]
3160
+ #
3161
+ # @!attribute [rw] key
3162
+ # The name assigned to the file when it was created in S3. You use the
3163
+ # object key to retrieve the object.
3164
+ # @return [String]
3165
+ #
3166
+ # @see http://docs.aws.amazon.com/goto/WebAPI/transfer-2018-11-05/S3InputFileLocation AWS API Documentation
3167
+ #
3168
+ class S3InputFileLocation < Struct.new(
3169
+ :bucket,
3170
+ :key)
3171
+ SENSITIVE = []
3172
+ include Aws::Structure
3173
+ end
3174
+
3175
+ # Specifies the key-value pair that are assigned to a file during the
3176
+ # execution of a Tagging step.
3177
+ #
3178
+ # @note When making an API call, you may pass S3Tag
3179
+ # data as a hash:
3180
+ #
3181
+ # {
3182
+ # key: "S3TagKey", # required
3183
+ # value: "S3TagValue", # required
3184
+ # }
3185
+ #
3186
+ # @!attribute [rw] key
3187
+ # The name assigned to the tag that you create.
3188
+ # @return [String]
3189
+ #
3190
+ # @!attribute [rw] value
3191
+ # The value that corresponds to the key.
3192
+ # @return [String]
3193
+ #
3194
+ # @see http://docs.aws.amazon.com/goto/WebAPI/transfer-2018-11-05/S3Tag AWS API Documentation
3195
+ #
3196
+ class S3Tag < Struct.new(
3197
+ :key,
3198
+ :value)
3199
+ SENSITIVE = []
3200
+ include Aws::Structure
3201
+ end
3202
+
3203
+ # @note When making an API call, you may pass SendWorkflowStepStateRequest
3204
+ # data as a hash:
3205
+ #
3206
+ # {
3207
+ # workflow_id: "WorkflowId", # required
3208
+ # execution_id: "ExecutionId", # required
3209
+ # token: "CallbackToken", # required
3210
+ # status: "SUCCESS", # required, accepts SUCCESS, FAILURE
3211
+ # }
3212
+ #
3213
+ # @!attribute [rw] workflow_id
3214
+ # A unique identifier for the workflow.
3215
+ # @return [String]
3216
+ #
3217
+ # @!attribute [rw] execution_id
3218
+ # A unique identifier for the execution of a workflow.
3219
+ # @return [String]
3220
+ #
3221
+ # @!attribute [rw] token
3222
+ # Used to distinguish between multiple callbacks for multiple Lambda
3223
+ # steps within the same execution.
3224
+ # @return [String]
3225
+ #
3226
+ # @!attribute [rw] status
3227
+ # Indicates whether the specified step succeeded or failed.
3228
+ # @return [String]
3229
+ #
3230
+ # @see http://docs.aws.amazon.com/goto/WebAPI/transfer-2018-11-05/SendWorkflowStepStateRequest AWS API Documentation
3231
+ #
3232
+ class SendWorkflowStepStateRequest < Struct.new(
3233
+ :workflow_id,
3234
+ :execution_id,
3235
+ :token,
3236
+ :status)
3237
+ SENSITIVE = []
3238
+ include Aws::Structure
3239
+ end
3240
+
3241
+ # @see http://docs.aws.amazon.com/goto/WebAPI/transfer-2018-11-05/SendWorkflowStepStateResponse AWS API Documentation
3242
+ #
3243
+ class SendWorkflowStepStateResponse < Aws::EmptyStructure; end
3244
+
3245
+ # A container object for the session details associated with a workflow.
3246
+ #
3247
+ # @!attribute [rw] user_details
3248
+ # The Server ID (`ServerId`), Session ID (`SessionId`) and user
3249
+ # (`UserName`) make up the `UserDetails`.
3250
+ # @return [Types::UserDetails]
3251
+ #
3252
+ # @see http://docs.aws.amazon.com/goto/WebAPI/transfer-2018-11-05/ServiceMetadata AWS API Documentation
3253
+ #
3254
+ class ServiceMetadata < Struct.new(
3255
+ :user_details)
3256
+ SENSITIVE = []
3257
+ include Aws::Structure
3258
+ end
3259
+
2245
3260
  # The request has failed because the Amazon Web ServicesTransfer Family
2246
3261
  # service is not available.
2247
3262
  #
@@ -2392,6 +3407,41 @@ module Aws::Transfer
2392
3407
  include Aws::Structure
2393
3408
  end
2394
3409
 
3410
+ # Each step type has its own `StepDetails` structure.
3411
+ #
3412
+ # The key/value pairs used to tag a file during the execution of a
3413
+ # workflow step.
3414
+ #
3415
+ # @note When making an API call, you may pass TagStepDetails
3416
+ # data as a hash:
3417
+ #
3418
+ # {
3419
+ # name: "WorkflowStepName",
3420
+ # tags: [
3421
+ # {
3422
+ # key: "S3TagKey", # required
3423
+ # value: "S3TagValue", # required
3424
+ # },
3425
+ # ],
3426
+ # }
3427
+ #
3428
+ # @!attribute [rw] name
3429
+ # The name of the step, used as an identifier.
3430
+ # @return [String]
3431
+ #
3432
+ # @!attribute [rw] tags
3433
+ # Array that contains from 1 to 10 key/value pairs.
3434
+ # @return [Array<Types::S3Tag>]
3435
+ #
3436
+ # @see http://docs.aws.amazon.com/goto/WebAPI/transfer-2018-11-05/TagStepDetails AWS API Documentation
3437
+ #
3438
+ class TagStepDetails < Struct.new(
3439
+ :name,
3440
+ :tags)
3441
+ SENSITIVE = []
3442
+ include Aws::Structure
3443
+ end
3444
+
2395
3445
  # @note When making an API call, you may pass TestIdentityProviderRequest
2396
3446
  # data as a hash:
2397
3447
  #
@@ -2550,7 +3600,7 @@ module Aws::Transfer
2550
3600
  # directory to be when they log into the server. If you set it to
2551
3601
  # `PATH`, the user will see the absolute Amazon S3 bucket or EFS paths
2552
3602
  # as is in their file transfer protocol clients. If you set it
2553
- # `LOGICAL`, you will need to provide mappings in the
3603
+ # `LOGICAL`, you need to provide mappings in the
2554
3604
  # `HomeDirectoryMappings` for how you want to make Amazon S3 or EFS
2555
3605
  # paths visible to your users.
2556
3606
  # @return [String]
@@ -2571,8 +3621,8 @@ module Aws::Transfer
2571
3621
  # `[ \{ "Entry": "your-personal-report.pdf", "Target":
2572
3622
  # "/bucket3/customized-reports/$\{transfer:UserName\}.pdf" \} ]`
2573
3623
  #
2574
- # In most cases, you can use this value instead of the scope-down
2575
- # policy to lock down your user to the designated home directory
3624
+ # In most cases, you can use this value instead of the session policy
3625
+ # to lock down your user to the designated home directory
2576
3626
  # ("`chroot`"). To do this, you can set `Entry` to `/` and set
2577
3627
  # `Target` to the `HomeDirectory` parameter value.
2578
3628
  #
@@ -2593,22 +3643,21 @@ module Aws::Transfer
2593
3643
  # @return [Array<Types::HomeDirectoryMapEntry>]
2594
3644
  #
2595
3645
  # @!attribute [rw] policy
2596
- # A scope-down policy for your user so that you can use the same IAM
2597
- # role across multiple users. This policy scopes down user access to
3646
+ # A session policy for your user so that you can use the same IAM role
3647
+ # across multiple users. This policy scopes down user access to
2598
3648
  # portions of their Amazon S3 bucket. Variables that you can use
2599
3649
  # inside this policy include `$\{Transfer:UserName\}`,
2600
3650
  # `$\{Transfer:HomeDirectory\}`, and `$\{Transfer:HomeBucket\}`.
2601
3651
  #
2602
- # <note markdown="1"> This only applies when domain of `ServerId` is S3. Amazon EFS does
2603
- # not use scope down policy.
3652
+ # <note markdown="1"> This only applies when the domain of `ServerId` is S3. EFS does not
3653
+ # use session policies.
2604
3654
  #
2605
- # For scope-down policies, Amazon Web ServicesTransfer Family stores
2606
- # the policy as a JSON blob, instead of the Amazon Resource Name (ARN)
2607
- # of the policy. You save the policy as a JSON blob and pass it in the
3655
+ # For session policies, Amazon Web Services Transfer Family stores the
3656
+ # policy as a JSON blob, instead of the Amazon Resource Name (ARN) of
3657
+ # the policy. You save the policy as a JSON blob and pass it in the
2608
3658
  # `Policy` argument.
2609
3659
  #
2610
- # For an example of a scope-down policy, see [Example scope-down
2611
- # policy][1].
3660
+ # For an example of a session policy, see [Example session policy][1].
2612
3661
  #
2613
3662
  # For more information, see [AssumeRole][2] in the *Amazon Web
2614
3663
  # ServicesSecurity Token Service API Reference*.
@@ -2617,7 +3666,7 @@ module Aws::Transfer
2617
3666
  #
2618
3667
  #
2619
3668
  #
2620
- # [1]: https://docs.aws.amazon.com/transfer/latest/userguide/scope-down-policy.html
3669
+ # [1]: https://docs.aws.amazon.com/transfer/latest/userguide/session-policy.html
2621
3670
  # [2]: https://docs.aws.amazon.com/STS/latest/APIReference/API_AssumeRole.html
2622
3671
  # @return [String]
2623
3672
  #
@@ -2726,6 +3775,14 @@ module Aws::Transfer
2726
3775
  # protocols: ["SFTP"], # accepts SFTP, FTP, FTPS
2727
3776
  # security_policy_name: "SecurityPolicyName",
2728
3777
  # server_id: "ServerId", # required
3778
+ # workflow_details: {
3779
+ # on_upload: [ # required
3780
+ # {
3781
+ # workflow_id: "WorkflowId", # required
3782
+ # execution_role: "Role", # required
3783
+ # },
3784
+ # ],
3785
+ # },
2729
3786
  # }
2730
3787
  #
2731
3788
  # @!attribute [rw] certificate
@@ -2885,6 +3942,11 @@ module Aws::Transfer
2885
3942
  # user account is assigned to.
2886
3943
  # @return [String]
2887
3944
  #
3945
+ # @!attribute [rw] workflow_details
3946
+ # Specifies the workflow ID for the workflow to assign and the
3947
+ # execution role used for executing the workflow.
3948
+ # @return [Types::WorkflowDetails]
3949
+ #
2888
3950
  # @see http://docs.aws.amazon.com/goto/WebAPI/transfer-2018-11-05/UpdateServerRequest AWS API Documentation
2889
3951
  #
2890
3952
  class UpdateServerRequest < Struct.new(
@@ -2897,7 +3959,8 @@ module Aws::Transfer
2897
3959
  :logging_role,
2898
3960
  :protocols,
2899
3961
  :security_policy_name,
2900
- :server_id)
3962
+ :server_id,
3963
+ :workflow_details)
2901
3964
  SENSITIVE = [:host_key]
2902
3965
  include Aws::Structure
2903
3966
  end
@@ -2950,7 +4013,7 @@ module Aws::Transfer
2950
4013
  # directory to be when they log into the server. If you set it to
2951
4014
  # `PATH`, the user will see the absolute Amazon S3 bucket or EFS paths
2952
4015
  # as is in their file transfer protocol clients. If you set it
2953
- # `LOGICAL`, you will need to provide mappings in the
4016
+ # `LOGICAL`, you need to provide mappings in the
2954
4017
  # `HomeDirectoryMappings` for how you want to make Amazon S3 or EFS
2955
4018
  # paths visible to your users.
2956
4019
  # @return [String]
@@ -2971,8 +4034,8 @@ module Aws::Transfer
2971
4034
  # `[ \{ "Entry": "your-personal-report.pdf", "Target":
2972
4035
  # "/bucket3/customized-reports/$\{transfer:UserName\}.pdf" \} ]`
2973
4036
  #
2974
- # In most cases, you can use this value instead of the scope-down
2975
- # policy to lock down your user to the designated home directory
4037
+ # In most cases, you can use this value instead of the session policy
4038
+ # to lock down your user to the designated home directory
2976
4039
  # ("`chroot`"). To do this, you can set `Entry` to '/' and set
2977
4040
  # `Target` to the HomeDirectory parameter value.
2978
4041
  #
@@ -2993,21 +4056,21 @@ module Aws::Transfer
2993
4056
  # @return [Array<Types::HomeDirectoryMapEntry>]
2994
4057
  #
2995
4058
  # @!attribute [rw] policy
2996
- # A scope-down policy for your user so that you can use the same IAM
2997
- # role across multiple users. This policy scopes down user access to
4059
+ # A session policy for your user so that you can use the same IAM role
4060
+ # across multiple users. This policy scopes down user access to
2998
4061
  # portions of their Amazon S3 bucket. Variables that you can use
2999
4062
  # inside this policy include `$\{Transfer:UserName\}`,
3000
4063
  # `$\{Transfer:HomeDirectory\}`, and `$\{Transfer:HomeBucket\}`.
3001
4064
  #
3002
- # <note markdown="1"> This only applies when domain of `ServerId` is S3. Amazon EFS does
3003
- # not use scope-down policies.
4065
+ # <note markdown="1"> This only applies when the domain of `ServerId` is S3. EFS does not
4066
+ # use session policies.
3004
4067
  #
3005
- # For scope-down policies, Amazon Web ServicesTransfer Family stores
3006
- # the policy as a JSON blob, instead of the Amazon Resource Name (ARN)
3007
- # of the policy. You save the policy as a JSON blob and pass it in the
4068
+ # For session policies, Amazon Web Services Transfer Family stores the
4069
+ # policy as a JSON blob, instead of the Amazon Resource Name (ARN) of
4070
+ # the policy. You save the policy as a JSON blob and pass it in the
3008
4071
  # `Policy` argument.
3009
4072
  #
3010
- # For an example of a scope-down policy, see [Creating a scope-down
4073
+ # For an example of a session policy, see [Creating a session
3011
4074
  # policy][1].
3012
4075
  #
3013
4076
  # For more information, see [AssumeRole][2] in the *Amazon Web
@@ -3017,7 +4080,7 @@ module Aws::Transfer
3017
4080
  #
3018
4081
  #
3019
4082
  #
3020
- # [1]: https://docs.aws.amazon.com/transfer/latest/userguide/users.html#users-policies-scope-down
4083
+ # [1]: https://docs.aws.amazon.com/transfer/latest/userguide/session-policy
3021
4084
  # [2]: https://docs.aws.amazon.com/STS/latest/APIReference/API_AssumeRole.html
3022
4085
  # @return [String]
3023
4086
  #
@@ -3093,5 +4156,184 @@ module Aws::Transfer
3093
4156
  include Aws::Structure
3094
4157
  end
3095
4158
 
4159
+ # Specifies the user name, server ID, and session ID for a workflow.
4160
+ #
4161
+ # @!attribute [rw] user_name
4162
+ # A unique string that identifies a user account associated with a
4163
+ # server.
4164
+ # @return [String]
4165
+ #
4166
+ # @!attribute [rw] server_id
4167
+ # The system-assigned unique identifier for a Transfer server
4168
+ # instance.
4169
+ # @return [String]
4170
+ #
4171
+ # @!attribute [rw] session_id
4172
+ # The system-assigned unique identifier for a session that corresponds
4173
+ # to the workflow.
4174
+ # @return [String]
4175
+ #
4176
+ # @see http://docs.aws.amazon.com/goto/WebAPI/transfer-2018-11-05/UserDetails AWS API Documentation
4177
+ #
4178
+ class UserDetails < Struct.new(
4179
+ :user_name,
4180
+ :server_id,
4181
+ :session_id)
4182
+ SENSITIVE = []
4183
+ include Aws::Structure
4184
+ end
4185
+
4186
+ # Specifies the workflow ID for the workflow to assign and the execution
4187
+ # role used for executing the workflow.
4188
+ #
4189
+ # @note When making an API call, you may pass WorkflowDetail
4190
+ # data as a hash:
4191
+ #
4192
+ # {
4193
+ # workflow_id: "WorkflowId", # required
4194
+ # execution_role: "Role", # required
4195
+ # }
4196
+ #
4197
+ # @!attribute [rw] workflow_id
4198
+ # A unique identifier for the workflow.
4199
+ # @return [String]
4200
+ #
4201
+ # @!attribute [rw] execution_role
4202
+ # Includes the necessary permissions for S3, EFS, and Lambda
4203
+ # operations that Transfer can assume, so that all workflow steps can
4204
+ # operate on the required resources
4205
+ # @return [String]
4206
+ #
4207
+ # @see http://docs.aws.amazon.com/goto/WebAPI/transfer-2018-11-05/WorkflowDetail AWS API Documentation
4208
+ #
4209
+ class WorkflowDetail < Struct.new(
4210
+ :workflow_id,
4211
+ :execution_role)
4212
+ SENSITIVE = []
4213
+ include Aws::Structure
4214
+ end
4215
+
4216
+ # Container for the `WorkflowDetail` data type. It is used by actions
4217
+ # that trigger a workflow to begin execution.
4218
+ #
4219
+ # @note When making an API call, you may pass WorkflowDetails
4220
+ # data as a hash:
4221
+ #
4222
+ # {
4223
+ # on_upload: [ # required
4224
+ # {
4225
+ # workflow_id: "WorkflowId", # required
4226
+ # execution_role: "Role", # required
4227
+ # },
4228
+ # ],
4229
+ # }
4230
+ #
4231
+ # @!attribute [rw] on_upload
4232
+ # A trigger that starts a workflow: the workflow begins to execute
4233
+ # after a file is uploaded.
4234
+ # @return [Array<Types::WorkflowDetail>]
4235
+ #
4236
+ # @see http://docs.aws.amazon.com/goto/WebAPI/transfer-2018-11-05/WorkflowDetails AWS API Documentation
4237
+ #
4238
+ class WorkflowDetails < Struct.new(
4239
+ :on_upload)
4240
+ SENSITIVE = []
4241
+ include Aws::Structure
4242
+ end
4243
+
4244
+ # The basic building block of a workflow.
4245
+ #
4246
+ # @note When making an API call, you may pass WorkflowStep
4247
+ # data as a hash:
4248
+ #
4249
+ # {
4250
+ # type: "COPY", # accepts COPY, CUSTOM, TAG, DELETE
4251
+ # copy_step_details: {
4252
+ # name: "WorkflowStepName",
4253
+ # destination_file_location: {
4254
+ # s3_file_location: {
4255
+ # bucket: "S3Bucket",
4256
+ # key: "S3Key",
4257
+ # },
4258
+ # efs_file_location: {
4259
+ # file_system_id: "EfsFileSystemId",
4260
+ # path: "EfsPath",
4261
+ # },
4262
+ # },
4263
+ # overwrite_existing: "TRUE", # accepts TRUE, FALSE
4264
+ # },
4265
+ # custom_step_details: {
4266
+ # name: "WorkflowStepName",
4267
+ # target: "CustomStepTarget",
4268
+ # timeout_seconds: 1,
4269
+ # },
4270
+ # delete_step_details: {
4271
+ # name: "WorkflowStepName",
4272
+ # },
4273
+ # tag_step_details: {
4274
+ # name: "WorkflowStepName",
4275
+ # tags: [
4276
+ # {
4277
+ # key: "S3TagKey", # required
4278
+ # value: "S3TagValue", # required
4279
+ # },
4280
+ # ],
4281
+ # },
4282
+ # }
4283
+ #
4284
+ # @!attribute [rw] type
4285
+ # Currently, the following step types are supported.
4286
+ #
4287
+ # * *Copy*\: copy the file to another location
4288
+ #
4289
+ # * *Custom*\: custom step with a lambda target
4290
+ #
4291
+ # * *Delete*\: delete the file
4292
+ #
4293
+ # * *Tag*\: add a tag to the file
4294
+ # @return [String]
4295
+ #
4296
+ # @!attribute [rw] copy_step_details
4297
+ # Details for a step that performs a file copy.
4298
+ #
4299
+ # Consists of the following values:
4300
+ #
4301
+ # * A description
4302
+ #
4303
+ # * An S3 or EFS location for the destination of the file copy.
4304
+ #
4305
+ # * A flag that indicates whether or not to overwrite an existing file
4306
+ # of the same name. The default is `FALSE`.
4307
+ # @return [Types::CopyStepDetails]
4308
+ #
4309
+ # @!attribute [rw] custom_step_details
4310
+ # Details for a step that invokes a lambda function.
4311
+ #
4312
+ # Consists of the lambda function name, target, and timeout (in
4313
+ # seconds).
4314
+ # @return [Types::CustomStepDetails]
4315
+ #
4316
+ # @!attribute [rw] delete_step_details
4317
+ # You need to specify the name of the file to be deleted.
4318
+ # @return [Types::DeleteStepDetails]
4319
+ #
4320
+ # @!attribute [rw] tag_step_details
4321
+ # Details for a step that creates one or more tags.
4322
+ #
4323
+ # You specify one or more tags: each tag contains a key/value pair.
4324
+ # @return [Types::TagStepDetails]
4325
+ #
4326
+ # @see http://docs.aws.amazon.com/goto/WebAPI/transfer-2018-11-05/WorkflowStep AWS API Documentation
4327
+ #
4328
+ class WorkflowStep < Struct.new(
4329
+ :type,
4330
+ :copy_step_details,
4331
+ :custom_step_details,
4332
+ :delete_step_details,
4333
+ :tag_step_details)
4334
+ SENSITIVE = []
4335
+ include Aws::Structure
4336
+ end
4337
+
3096
4338
  end
3097
4339
  end