aws-sdk-transfer 1.38.0 → 1.42.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]
@@ -91,11 +135,11 @@ module Aws::Transfer
91
135
  #
92
136
  # The following is an `Entry` and `Target` pair example.
93
137
  #
94
- # `[ \{ "Entry": "your-personal-report.pdf", "Target":
95
- # "/bucket3/customized-reports/$\{transfer:UserName\}.pdf" \} ]`
138
+ # `[ \{ "Entry": "/directory1", "Target":
139
+ # "/bucket_name/home/mydirectory" \} ]`
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]
@@ -526,11 +583,11 @@ module Aws::Transfer
526
583
  #
527
584
  # The following is an `Entry` and `Target` pair example.
528
585
  #
529
- # `[ \{ "Entry": "your-personal-report.pdf", "Target":
530
- # "/bucket3/customized-reports/$\{transfer:UserName\}.pdf" \} ]`
586
+ # `[ \{ "Entry": "/directory1", "Target":
587
+ # "/bucket_name/home/mydirectory" \} ]`
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,191 @@ 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
+ # <note markdown="1"> Currently, copying and tagging are supported only on S3.
821
+ #
822
+ # </note>
823
+ #
824
+ # For file location, you specify either the S3 bucket and key, or the
825
+ # EFS filesystem ID and path.
826
+ # @return [Array<Types::WorkflowStep>]
827
+ #
828
+ # @!attribute [rw] on_exception_steps
829
+ # Specifies the steps (actions) to take if errors are encountered
830
+ # during execution of the workflow.
831
+ #
832
+ # <note markdown="1"> For custom steps, the lambda function needs to send `FAILURE` to the
833
+ # call back API to kick off the exception steps. Additionally, if the
834
+ # lambda does not send `SUCCESS` before it times out, the exception
835
+ # steps are executed.
836
+ #
837
+ # </note>
838
+ # @return [Array<Types::WorkflowStep>]
839
+ #
840
+ # @!attribute [rw] tags
841
+ # Key-value pairs that can be used to group and search for workflows.
842
+ # Tags are metadata attached to workflows for any purpose.
843
+ # @return [Array<Types::Tag>]
844
+ #
845
+ # @see http://docs.aws.amazon.com/goto/WebAPI/transfer-2018-11-05/CreateWorkflowRequest AWS API Documentation
846
+ #
847
+ class CreateWorkflowRequest < Struct.new(
848
+ :description,
849
+ :steps,
850
+ :on_exception_steps,
851
+ :tags)
852
+ SENSITIVE = []
853
+ include Aws::Structure
854
+ end
855
+
856
+ # @!attribute [rw] workflow_id
857
+ # A unique identifier for the workflow.
858
+ # @return [String]
859
+ #
860
+ # @see http://docs.aws.amazon.com/goto/WebAPI/transfer-2018-11-05/CreateWorkflowResponse AWS API Documentation
861
+ #
862
+ class CreateWorkflowResponse < Struct.new(
863
+ :workflow_id)
864
+ SENSITIVE = []
865
+ include Aws::Structure
866
+ end
867
+
868
+ # Each step type has its own `StepDetails` structure.
869
+ #
870
+ # @note When making an API call, you may pass CustomStepDetails
871
+ # data as a hash:
872
+ #
873
+ # {
874
+ # name: "WorkflowStepName",
875
+ # target: "CustomStepTarget",
876
+ # timeout_seconds: 1,
877
+ # }
878
+ #
879
+ # @!attribute [rw] name
880
+ # The name of the step, used as an identifier.
881
+ # @return [String]
882
+ #
883
+ # @!attribute [rw] target
884
+ # The ARN for the lambda function that is being called.
885
+ # @return [String]
886
+ #
887
+ # @!attribute [rw] timeout_seconds
888
+ # Timeout, in seconds, for the step.
889
+ # @return [Integer]
890
+ #
891
+ # @see http://docs.aws.amazon.com/goto/WebAPI/transfer-2018-11-05/CustomStepDetails AWS API Documentation
892
+ #
893
+ class CustomStepDetails < Struct.new(
894
+ :name,
895
+ :target,
896
+ :timeout_seconds)
897
+ SENSITIVE = []
898
+ include Aws::Structure
899
+ end
900
+
661
901
  # @note When making an API call, you may pass DeleteAccessRequest
662
902
  # data as a hash:
663
903
  #
@@ -752,6 +992,27 @@ module Aws::Transfer
752
992
  include Aws::Structure
753
993
  end
754
994
 
995
+ # The name of the step, used to identify the delete step.
996
+ #
997
+ # @note When making an API call, you may pass DeleteStepDetails
998
+ # data as a hash:
999
+ #
1000
+ # {
1001
+ # name: "WorkflowStepName",
1002
+ # }
1003
+ #
1004
+ # @!attribute [rw] name
1005
+ # The name of the step, used as an identifier.
1006
+ # @return [String]
1007
+ #
1008
+ # @see http://docs.aws.amazon.com/goto/WebAPI/transfer-2018-11-05/DeleteStepDetails AWS API Documentation
1009
+ #
1010
+ class DeleteStepDetails < Struct.new(
1011
+ :name)
1012
+ SENSITIVE = []
1013
+ include Aws::Structure
1014
+ end
1015
+
755
1016
  # @note When making an API call, you may pass DeleteUserRequest
756
1017
  # data as a hash:
757
1018
  #
@@ -779,6 +1040,25 @@ module Aws::Transfer
779
1040
  include Aws::Structure
780
1041
  end
781
1042
 
1043
+ # @note When making an API call, you may pass DeleteWorkflowRequest
1044
+ # data as a hash:
1045
+ #
1046
+ # {
1047
+ # workflow_id: "WorkflowId", # required
1048
+ # }
1049
+ #
1050
+ # @!attribute [rw] workflow_id
1051
+ # A unique identifier for the workflow.
1052
+ # @return [String]
1053
+ #
1054
+ # @see http://docs.aws.amazon.com/goto/WebAPI/transfer-2018-11-05/DeleteWorkflowRequest AWS API Documentation
1055
+ #
1056
+ class DeleteWorkflowRequest < Struct.new(
1057
+ :workflow_id)
1058
+ SENSITIVE = []
1059
+ include Aws::Structure
1060
+ end
1061
+
782
1062
  # @note When making an API call, you may pass DescribeAccessRequest
783
1063
  # data as a hash:
784
1064
  #
@@ -839,6 +1119,48 @@ module Aws::Transfer
839
1119
  include Aws::Structure
840
1120
  end
841
1121
 
1122
+ # @note When making an API call, you may pass DescribeExecutionRequest
1123
+ # data as a hash:
1124
+ #
1125
+ # {
1126
+ # execution_id: "ExecutionId", # required
1127
+ # workflow_id: "WorkflowId", # required
1128
+ # }
1129
+ #
1130
+ # @!attribute [rw] execution_id
1131
+ # A unique identifier for the execution of a workflow.
1132
+ # @return [String]
1133
+ #
1134
+ # @!attribute [rw] workflow_id
1135
+ # A unique identifier for the workflow.
1136
+ # @return [String]
1137
+ #
1138
+ # @see http://docs.aws.amazon.com/goto/WebAPI/transfer-2018-11-05/DescribeExecutionRequest AWS API Documentation
1139
+ #
1140
+ class DescribeExecutionRequest < Struct.new(
1141
+ :execution_id,
1142
+ :workflow_id)
1143
+ SENSITIVE = []
1144
+ include Aws::Structure
1145
+ end
1146
+
1147
+ # @!attribute [rw] workflow_id
1148
+ # A unique identifier for the workflow.
1149
+ # @return [String]
1150
+ #
1151
+ # @!attribute [rw] execution
1152
+ # The structure that contains the details of the workflow' execution.
1153
+ # @return [Types::DescribedExecution]
1154
+ #
1155
+ # @see http://docs.aws.amazon.com/goto/WebAPI/transfer-2018-11-05/DescribeExecutionResponse AWS API Documentation
1156
+ #
1157
+ class DescribeExecutionResponse < Struct.new(
1158
+ :workflow_id,
1159
+ :execution)
1160
+ SENSITIVE = []
1161
+ include Aws::Structure
1162
+ end
1163
+
842
1164
  # @note When making an API call, you may pass DescribeSecurityPolicyRequest
843
1165
  # data as a hash:
844
1166
  #
@@ -950,6 +1272,37 @@ module Aws::Transfer
950
1272
  include Aws::Structure
951
1273
  end
952
1274
 
1275
+ # @note When making an API call, you may pass DescribeWorkflowRequest
1276
+ # data as a hash:
1277
+ #
1278
+ # {
1279
+ # workflow_id: "WorkflowId", # required
1280
+ # }
1281
+ #
1282
+ # @!attribute [rw] workflow_id
1283
+ # A unique identifier for the workflow.
1284
+ # @return [String]
1285
+ #
1286
+ # @see http://docs.aws.amazon.com/goto/WebAPI/transfer-2018-11-05/DescribeWorkflowRequest AWS API Documentation
1287
+ #
1288
+ class DescribeWorkflowRequest < Struct.new(
1289
+ :workflow_id)
1290
+ SENSITIVE = []
1291
+ include Aws::Structure
1292
+ end
1293
+
1294
+ # @!attribute [rw] workflow
1295
+ # The structure that contains the details of the workflow.
1296
+ # @return [Types::DescribedWorkflow]
1297
+ #
1298
+ # @see http://docs.aws.amazon.com/goto/WebAPI/transfer-2018-11-05/DescribeWorkflowResponse AWS API Documentation
1299
+ #
1300
+ class DescribeWorkflowResponse < Struct.new(
1301
+ :workflow)
1302
+ SENSITIVE = []
1303
+ include Aws::Structure
1304
+ end
1305
+
953
1306
  # Describes the properties of the access that was specified.
954
1307
  #
955
1308
  # @!attribute [rw] home_directory
@@ -970,10 +1323,10 @@ module Aws::Transfer
970
1323
  # to paths in `Target`. This value can only be set when
971
1324
  # `HomeDirectoryType` is set to *LOGICAL*.
972
1325
  #
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.
1326
+ # In most cases, you can use this value instead of the session policy
1327
+ # to lock down the associated access to the designated home directory
1328
+ # ("`chroot`"). To do this, you can set `Entry` to '/' and set
1329
+ # `Target` to the `HomeDirectory` parameter value.
977
1330
  # @return [Array<Types::HomeDirectoryMapEntry>]
978
1331
  #
979
1332
  # @!attribute [rw] home_directory_type
@@ -981,14 +1334,14 @@ module Aws::Transfer
981
1334
  # directory to be when they log into the server. If you set it to
982
1335
  # `PATH`, the user will see the absolute Amazon S3 bucket or EFS paths
983
1336
  # as is in their file transfer protocol clients. If you set it
984
- # `LOGICAL`, you will need to provide mappings in the
1337
+ # `LOGICAL`, you need to provide mappings in the
985
1338
  # `HomeDirectoryMappings` for how you want to make Amazon S3 or EFS
986
1339
  # paths visible to your users.
987
1340
  # @return [String]
988
1341
  #
989
1342
  # @!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
1343
+ # A session policy for your user so that you can use the same IAM role
1344
+ # across multiple users. This policy scopes down user access to
992
1345
  # portions of their Amazon S3 bucket. Variables that you can use
993
1346
  # inside this policy include `$\{Transfer:UserName\}`,
994
1347
  # `$\{Transfer:HomeDirectory\}`, and `$\{Transfer:HomeBucket\}`.
@@ -1048,6 +1401,67 @@ module Aws::Transfer
1048
1401
  include Aws::Structure
1049
1402
  end
1050
1403
 
1404
+ # The details for an execution object.
1405
+ #
1406
+ # @!attribute [rw] execution_id
1407
+ # A unique identifier for the execution of a workflow.
1408
+ # @return [String]
1409
+ #
1410
+ # @!attribute [rw] initial_file_location
1411
+ # A structure that describes the Amazon S3 or EFS file location. This
1412
+ # is the file location when the execution begins: if the file is being
1413
+ # copied, this is the initial (as opposed to destination) file
1414
+ # location.
1415
+ # @return [Types::FileLocation]
1416
+ #
1417
+ # @!attribute [rw] service_metadata
1418
+ # A container object for the session details associated with a
1419
+ # workflow.
1420
+ # @return [Types::ServiceMetadata]
1421
+ #
1422
+ # @!attribute [rw] execution_role
1423
+ # The IAM role associated with the execution.
1424
+ # @return [String]
1425
+ #
1426
+ # @!attribute [rw] logging_configuration
1427
+ # The IAM logging role associated with the execution.
1428
+ # @return [Types::LoggingConfiguration]
1429
+ #
1430
+ # @!attribute [rw] posix_profile
1431
+ # The full POSIX identity, including user ID (`Uid`), group ID
1432
+ # (`Gid`), and any secondary groups IDs (`SecondaryGids`), that
1433
+ # controls your users' access to your Amazon EFS file systems. The
1434
+ # POSIX permissions that are set on files and directories in your file
1435
+ # system determine the level of access your users get when
1436
+ # transferring files into and out of your Amazon EFS file systems.
1437
+ # @return [Types::PosixProfile]
1438
+ #
1439
+ # @!attribute [rw] status
1440
+ # The status is one of the execution. Can be in progress, completed,
1441
+ # exception encountered, or handling the exception.
1442
+ # @return [String]
1443
+ #
1444
+ # @!attribute [rw] results
1445
+ # A structure that describes the execution results. This includes a
1446
+ # list of the steps along with the details of each step, error type
1447
+ # and message (if any), and the `OnExceptionSteps` structure.
1448
+ # @return [Types::ExecutionResults]
1449
+ #
1450
+ # @see http://docs.aws.amazon.com/goto/WebAPI/transfer-2018-11-05/DescribedExecution AWS API Documentation
1451
+ #
1452
+ class DescribedExecution < Struct.new(
1453
+ :execution_id,
1454
+ :initial_file_location,
1455
+ :service_metadata,
1456
+ :execution_role,
1457
+ :logging_configuration,
1458
+ :posix_profile,
1459
+ :status,
1460
+ :results)
1461
+ SENSITIVE = []
1462
+ include Aws::Structure
1463
+ end
1464
+
1051
1465
  # Describes the properties of a security policy that was specified. For
1052
1466
  # more information about security policies, see [Working with security
1053
1467
  # policies][1].
@@ -1225,6 +1639,11 @@ module Aws::Transfer
1225
1639
  # specified with the `ServerId`.
1226
1640
  # @return [Integer]
1227
1641
  #
1642
+ # @!attribute [rw] workflow_details
1643
+ # Specifies the workflow ID for the workflow to assign and the
1644
+ # execution role used for executing the workflow.
1645
+ # @return [Types::WorkflowDetails]
1646
+ #
1228
1647
  # @see http://docs.aws.amazon.com/goto/WebAPI/transfer-2018-11-05/DescribedServer AWS API Documentation
1229
1648
  #
1230
1649
  class DescribedServer < Struct.new(
@@ -1243,7 +1662,8 @@ module Aws::Transfer
1243
1662
  :server_id,
1244
1663
  :state,
1245
1664
  :tags,
1246
- :user_count)
1665
+ :user_count,
1666
+ :workflow_details)
1247
1667
  SENSITIVE = []
1248
1668
  include Aws::Structure
1249
1669
  end
@@ -1273,8 +1693,8 @@ module Aws::Transfer
1273
1693
  # to paths in `Target`. This value can only be set when
1274
1694
  # `HomeDirectoryType` is set to *LOGICAL*.
1275
1695
  #
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
1696
+ # In most cases, you can use this value instead of the session policy
1697
+ # to lock your user down to the designated home directory
1278
1698
  # ("`chroot`"). To do this, you can set `Entry` to '/' and set
1279
1699
  # `Target` to the HomeDirectory parameter value.
1280
1700
  # @return [Array<Types::HomeDirectoryMapEntry>]
@@ -1284,14 +1704,14 @@ module Aws::Transfer
1284
1704
  # directory to be when they log into the server. If you set it to
1285
1705
  # `PATH`, the user will see the absolute Amazon S3 bucket or EFS paths
1286
1706
  # as is in their file transfer protocol clients. If you set it
1287
- # `LOGICAL`, you will need to provide mappings in the
1707
+ # `LOGICAL`, you need to provide mappings in the
1288
1708
  # `HomeDirectoryMappings` for how you want to make Amazon S3 or EFS
1289
1709
  # paths visible to your users.
1290
1710
  # @return [String]
1291
1711
  #
1292
1712
  # @!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
1713
+ # A session policy for your user so that you can use the same IAM role
1714
+ # across multiple users. This policy scopes down user access to
1295
1715
  # portions of their Amazon S3 bucket. Variables that you can use
1296
1716
  # inside this policy include `$\{Transfer:UserName\}`,
1297
1717
  # `$\{Transfer:HomeDirectory\}`, and `$\{Transfer:HomeBucket\}`.
@@ -1351,6 +1771,75 @@ module Aws::Transfer
1351
1771
  include Aws::Structure
1352
1772
  end
1353
1773
 
1774
+ # Describes the properties of the specified workflow
1775
+ #
1776
+ # @!attribute [rw] arn
1777
+ # Specifies the unique Amazon Resource Name (ARN) for the workflow.
1778
+ # @return [String]
1779
+ #
1780
+ # @!attribute [rw] description
1781
+ # Specifies the text description for the workflow.
1782
+ # @return [String]
1783
+ #
1784
+ # @!attribute [rw] steps
1785
+ # Specifies the details for the steps that are in the specified
1786
+ # workflow.
1787
+ # @return [Array<Types::WorkflowStep>]
1788
+ #
1789
+ # @!attribute [rw] on_exception_steps
1790
+ # Specifies the steps (actions) to take if errors are encountered
1791
+ # during execution of the workflow.
1792
+ # @return [Array<Types::WorkflowStep>]
1793
+ #
1794
+ # @!attribute [rw] workflow_id
1795
+ # A unique identifier for the workflow.
1796
+ # @return [String]
1797
+ #
1798
+ # @!attribute [rw] tags
1799
+ # Key-value pairs that can be used to group and search for workflows.
1800
+ # Tags are metadata attached to workflows for any purpose.
1801
+ # @return [Array<Types::Tag>]
1802
+ #
1803
+ # @see http://docs.aws.amazon.com/goto/WebAPI/transfer-2018-11-05/DescribedWorkflow AWS API Documentation
1804
+ #
1805
+ class DescribedWorkflow < Struct.new(
1806
+ :arn,
1807
+ :description,
1808
+ :steps,
1809
+ :on_exception_steps,
1810
+ :workflow_id,
1811
+ :tags)
1812
+ SENSITIVE = []
1813
+ include Aws::Structure
1814
+ end
1815
+
1816
+ # Reserved for future use.
1817
+ #
1818
+ # @note When making an API call, you may pass EfsFileLocation
1819
+ # data as a hash:
1820
+ #
1821
+ # {
1822
+ # file_system_id: "EfsFileSystemId",
1823
+ # path: "EfsPath",
1824
+ # }
1825
+ #
1826
+ # @!attribute [rw] file_system_id
1827
+ # The ID of the file system, assigned by Amazon EFS.
1828
+ # @return [String]
1829
+ #
1830
+ # @!attribute [rw] path
1831
+ # The pathname for the folder being used by a workflow.
1832
+ # @return [String]
1833
+ #
1834
+ # @see http://docs.aws.amazon.com/goto/WebAPI/transfer-2018-11-05/EfsFileLocation AWS API Documentation
1835
+ #
1836
+ class EfsFileLocation < Struct.new(
1837
+ :file_system_id,
1838
+ :path)
1839
+ SENSITIVE = []
1840
+ include Aws::Structure
1841
+ end
1842
+
1354
1843
  # The virtual private cloud (VPC) endpoint settings that are configured
1355
1844
  # for your file transfer protocol-enabled server. With a VPC endpoint,
1356
1845
  # you can restrict access to your server and resources only within your
@@ -1451,39 +1940,140 @@ module Aws::Transfer
1451
1940
  include Aws::Structure
1452
1941
  end
1453
1942
 
1454
- # Represents an object that contains entries and targets for
1455
- # `HomeDirectoryMappings`.
1943
+ # Specifies the error message and type, for an error that occurs during
1944
+ # the execution of the workflow.
1456
1945
  #
1457
- # The following is an `Entry` and `Target` pair example for `chroot`.
1946
+ # @!attribute [rw] type
1947
+ # Specifies the error type: currently, the only valid value is
1948
+ # `PERMISSION_DENIED`, which occurs if your policy does not contain
1949
+ # the correct permissions to complete one or more of the steps in the
1950
+ # workflow.
1951
+ # @return [String]
1458
1952
  #
1459
- # `[ \{ "Entry:": "/", "Target": "/bucket_name/home/mydirectory" \} ]`
1953
+ # @!attribute [rw] message
1954
+ # Specifies the descriptive message that corresponds to the
1955
+ # `ErrorType`.
1956
+ # @return [String]
1460
1957
  #
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.
1958
+ # @see http://docs.aws.amazon.com/goto/WebAPI/transfer-2018-11-05/ExecutionError AWS API Documentation
1469
1959
  #
1470
- # </note>
1960
+ class ExecutionError < Struct.new(
1961
+ :type,
1962
+ :message)
1963
+ SENSITIVE = []
1964
+ include Aws::Structure
1965
+ end
1966
+
1967
+ # Specifies the steps in the workflow, as well as the steps to execute
1968
+ # in case of any errors during workflow execution.
1471
1969
  #
1472
- # @note When making an API call, you may pass HomeDirectoryMapEntry
1473
- # data as a hash:
1970
+ # @!attribute [rw] steps
1971
+ # Specifies the details for the steps that are in the specified
1972
+ # workflow.
1973
+ # @return [Array<Types::ExecutionStepResult>]
1474
1974
  #
1475
- # {
1476
- # entry: "MapEntry", # required
1477
- # target: "MapTarget", # required
1478
- # }
1975
+ # @!attribute [rw] on_exception_steps
1976
+ # Specifies the steps (actions) to take if errors are encountered
1977
+ # during execution of the workflow.
1978
+ # @return [Array<Types::ExecutionStepResult>]
1479
1979
  #
1480
- # @!attribute [rw] entry
1481
- # Represents an entry for `HomeDirectoryMappings`.
1482
- # @return [String]
1980
+ # @see http://docs.aws.amazon.com/goto/WebAPI/transfer-2018-11-05/ExecutionResults AWS API Documentation
1483
1981
  #
1484
- # @!attribute [rw] target
1485
- # Represents the map target that is used in a `HomeDirectorymapEntry`.
1486
- # @return [String]
1982
+ class ExecutionResults < Struct.new(
1983
+ :steps,
1984
+ :on_exception_steps)
1985
+ SENSITIVE = []
1986
+ include Aws::Structure
1987
+ end
1988
+
1989
+ # Specifies the following details for the step: error (if any), outputs
1990
+ # (if any), and the step type.
1991
+ #
1992
+ # @!attribute [rw] step_type
1993
+ # One of the available step types.
1994
+ #
1995
+ # * *Copy*\: copy the file to another location
1996
+ #
1997
+ # * *Custom*\: custom step with a lambda target
1998
+ #
1999
+ # * *Delete*\: delete the file
2000
+ #
2001
+ # * *Tag*\: add a tag to the file
2002
+ # @return [String]
2003
+ #
2004
+ # @!attribute [rw] outputs
2005
+ # The values for the key/value pair applied as a tag to the file. Only
2006
+ # applicable if the step type is `TAG`.
2007
+ # @return [String]
2008
+ #
2009
+ # @!attribute [rw] error
2010
+ # Specifies the details for an error, if it occurred during execution
2011
+ # of the specified workfow step.
2012
+ # @return [Types::ExecutionError]
2013
+ #
2014
+ # @see http://docs.aws.amazon.com/goto/WebAPI/transfer-2018-11-05/ExecutionStepResult AWS API Documentation
2015
+ #
2016
+ class ExecutionStepResult < Struct.new(
2017
+ :step_type,
2018
+ :outputs,
2019
+ :error)
2020
+ SENSITIVE = []
2021
+ include Aws::Structure
2022
+ end
2023
+
2024
+ # Specifies the Amazon S3 or EFS file details to be used in the step.
2025
+ #
2026
+ # @!attribute [rw] s3_file_location
2027
+ # Specifies the S3 details for the file being used, such as bucket,
2028
+ # Etag, and so forth.
2029
+ # @return [Types::S3FileLocation]
2030
+ #
2031
+ # @!attribute [rw] efs_file_location
2032
+ # Specifies the Amazon EFS ID and the path for the file being used.
2033
+ # @return [Types::EfsFileLocation]
2034
+ #
2035
+ # @see http://docs.aws.amazon.com/goto/WebAPI/transfer-2018-11-05/FileLocation AWS API Documentation
2036
+ #
2037
+ class FileLocation < Struct.new(
2038
+ :s3_file_location,
2039
+ :efs_file_location)
2040
+ SENSITIVE = []
2041
+ include Aws::Structure
2042
+ end
2043
+
2044
+ # Represents an object that contains entries and targets for
2045
+ # `HomeDirectoryMappings`.
2046
+ #
2047
+ # The following is an `Entry` and `Target` pair example for `chroot`.
2048
+ #
2049
+ # `[ \{ "Entry:": "/", "Target": "/bucket_name/home/mydirectory" \} ]`
2050
+ #
2051
+ # <note markdown="1"> If the target of a logical directory entry does not exist in Amazon S3
2052
+ # or EFS, the entry is ignored. As a workaround, you can use the Amazon
2053
+ # S3 API or EFS API to create 0 byte objects as place holders for your
2054
+ # directory. If using the CLI, use the `s3api` or `efsapi` call instead
2055
+ # of `s3` or `efs` so you can use the put-object operation. For example,
2056
+ # you use the following: `aws s3api put-object --bucket bucketname --key
2057
+ # path/to/folder/`. Make sure that the end of the key name ends in a `/`
2058
+ # for it to be considered a folder.
2059
+ #
2060
+ # </note>
2061
+ #
2062
+ # @note When making an API call, you may pass HomeDirectoryMapEntry
2063
+ # data as a hash:
2064
+ #
2065
+ # {
2066
+ # entry: "MapEntry", # required
2067
+ # target: "MapTarget", # required
2068
+ # }
2069
+ #
2070
+ # @!attribute [rw] entry
2071
+ # Represents an entry for `HomeDirectoryMappings`.
2072
+ # @return [String]
2073
+ #
2074
+ # @!attribute [rw] target
2075
+ # Represents the map target that is used in a `HomeDirectorymapEntry`.
2076
+ # @return [String]
1487
2077
  #
1488
2078
  # @see http://docs.aws.amazon.com/goto/WebAPI/transfer-2018-11-05/HomeDirectoryMapEntry AWS API Documentation
1489
2079
  #
@@ -1590,6 +2180,40 @@ module Aws::Transfer
1590
2180
  include Aws::Structure
1591
2181
  end
1592
2182
 
2183
+ # Specifies the location for the file being copied. Only applicable for
2184
+ # the Copy type of workflow steps.
2185
+ #
2186
+ # @note When making an API call, you may pass InputFileLocation
2187
+ # data as a hash:
2188
+ #
2189
+ # {
2190
+ # s3_file_location: {
2191
+ # bucket: "S3Bucket",
2192
+ # key: "S3Key",
2193
+ # },
2194
+ # efs_file_location: {
2195
+ # file_system_id: "EfsFileSystemId",
2196
+ # path: "EfsPath",
2197
+ # },
2198
+ # }
2199
+ #
2200
+ # @!attribute [rw] s3_file_location
2201
+ # Specifies the details for the S3 file being copied.
2202
+ # @return [Types::S3InputFileLocation]
2203
+ #
2204
+ # @!attribute [rw] efs_file_location
2205
+ # Reserved for future use.
2206
+ # @return [Types::EfsFileLocation]
2207
+ #
2208
+ # @see http://docs.aws.amazon.com/goto/WebAPI/transfer-2018-11-05/InputFileLocation AWS API Documentation
2209
+ #
2210
+ class InputFileLocation < Struct.new(
2211
+ :s3_file_location,
2212
+ :efs_file_location)
2213
+ SENSITIVE = []
2214
+ include Aws::Structure
2215
+ end
2216
+
1593
2217
  # This exception is thrown when an error occurs in the Amazon Web
1594
2218
  # ServicesTransfer Family service.
1595
2219
  #
@@ -1692,6 +2316,92 @@ module Aws::Transfer
1692
2316
  include Aws::Structure
1693
2317
  end
1694
2318
 
2319
+ # @note When making an API call, you may pass ListExecutionsRequest
2320
+ # data as a hash:
2321
+ #
2322
+ # {
2323
+ # max_results: 1,
2324
+ # next_token: "NextToken",
2325
+ # workflow_id: "WorkflowId", # required
2326
+ # }
2327
+ #
2328
+ # @!attribute [rw] max_results
2329
+ # Specifies the aximum number of executions to return.
2330
+ # @return [Integer]
2331
+ #
2332
+ # @!attribute [rw] next_token
2333
+ # `ListExecutions` returns the `NextToken` parameter in the output.
2334
+ # You can then pass the `NextToken` parameter in a subsequent command
2335
+ # to continue listing additional executions.
2336
+ #
2337
+ # This is useful for pagination, for instance. If you have 100
2338
+ # executions for a workflow, you might only want to list first 10. If
2339
+ # so, callthe API by specifing the `max-results`\:
2340
+ #
2341
+ # `aws transfer list-executions --max-results 10`
2342
+ #
2343
+ # This returns details for the first 10 executions, as well as the
2344
+ # pointer (`NextToken`) to the eleventh execution. You can now call
2345
+ # the API again, suppling the `NextToken` value you received:
2346
+ #
2347
+ # `aws transfer list-executions --max-results 10 --next-token
2348
+ # $somePointerReturnedFromPreviousListResult`
2349
+ #
2350
+ # This call returns the next 10 executions, the 11th through the 20th.
2351
+ # You can then repeat the call until the details for all 100
2352
+ # executions have been returned.
2353
+ # @return [String]
2354
+ #
2355
+ # @!attribute [rw] workflow_id
2356
+ # A unique identifier for the workflow.
2357
+ # @return [String]
2358
+ #
2359
+ # @see http://docs.aws.amazon.com/goto/WebAPI/transfer-2018-11-05/ListExecutionsRequest AWS API Documentation
2360
+ #
2361
+ class ListExecutionsRequest < Struct.new(
2362
+ :max_results,
2363
+ :next_token,
2364
+ :workflow_id)
2365
+ SENSITIVE = []
2366
+ include Aws::Structure
2367
+ end
2368
+
2369
+ # @!attribute [rw] next_token
2370
+ # `ListExecutions` returns the `NextToken` parameter in the output.
2371
+ # You can then pass the `NextToken` parameter in a subsequent command
2372
+ # to continue listing additional executions.
2373
+ # @return [String]
2374
+ #
2375
+ # @!attribute [rw] workflow_id
2376
+ # A unique identifier for the workflow.
2377
+ # @return [String]
2378
+ #
2379
+ # @!attribute [rw] executions
2380
+ # Returns the details for each execution.
2381
+ #
2382
+ # * **NextToken**\: returned from a call to several APIs, you can use
2383
+ # pass it to a subsequent command to continue listing additional
2384
+ # executions.
2385
+ #
2386
+ # * **StartTime**\: timestamp indicating when the execution began.
2387
+ #
2388
+ # * **Executions**\: details of the execution, including the execution
2389
+ # ID, initial file location, and Service metadata.
2390
+ #
2391
+ # * **Status**\: one of the following values: `IN_PROGRESS`,
2392
+ # `COMPLETED`, `EXCEPTION`, `HANDLING_EXEPTION`.
2393
+ # @return [Array<Types::ListedExecution>]
2394
+ #
2395
+ # @see http://docs.aws.amazon.com/goto/WebAPI/transfer-2018-11-05/ListExecutionsResponse AWS API Documentation
2396
+ #
2397
+ class ListExecutionsResponse < Struct.new(
2398
+ :next_token,
2399
+ :workflow_id,
2400
+ :executions)
2401
+ SENSITIVE = []
2402
+ include Aws::Structure
2403
+ end
2404
+
1695
2405
  # @note When making an API call, you may pass ListSecurityPoliciesRequest
1696
2406
  # data as a hash:
1697
2407
  #
@@ -1917,6 +2627,53 @@ module Aws::Transfer
1917
2627
  include Aws::Structure
1918
2628
  end
1919
2629
 
2630
+ # @note When making an API call, you may pass ListWorkflowsRequest
2631
+ # data as a hash:
2632
+ #
2633
+ # {
2634
+ # max_results: 1,
2635
+ # next_token: "NextToken",
2636
+ # }
2637
+ #
2638
+ # @!attribute [rw] max_results
2639
+ # Specifies the maximum number of workflows to return.
2640
+ # @return [Integer]
2641
+ #
2642
+ # @!attribute [rw] next_token
2643
+ # `ListWorkflows` returns the `NextToken` parameter in the output. You
2644
+ # can then pass the `NextToken` parameter in a subsequent command to
2645
+ # continue listing additional workflows.
2646
+ # @return [String]
2647
+ #
2648
+ # @see http://docs.aws.amazon.com/goto/WebAPI/transfer-2018-11-05/ListWorkflowsRequest AWS API Documentation
2649
+ #
2650
+ class ListWorkflowsRequest < Struct.new(
2651
+ :max_results,
2652
+ :next_token)
2653
+ SENSITIVE = []
2654
+ include Aws::Structure
2655
+ end
2656
+
2657
+ # @!attribute [rw] next_token
2658
+ # `ListWorkflows` returns the `NextToken` parameter in the output. You
2659
+ # can then pass the `NextToken` parameter in a subsequent command to
2660
+ # continue listing additional workflows.
2661
+ # @return [String]
2662
+ #
2663
+ # @!attribute [rw] workflows
2664
+ # Returns the `Arn`, `WorkflowId`, and `Description` for each
2665
+ # workflow.
2666
+ # @return [Array<Types::ListedWorkflow>]
2667
+ #
2668
+ # @see http://docs.aws.amazon.com/goto/WebAPI/transfer-2018-11-05/ListWorkflowsResponse AWS API Documentation
2669
+ #
2670
+ class ListWorkflowsResponse < Struct.new(
2671
+ :next_token,
2672
+ :workflows)
2673
+ SENSITIVE = []
2674
+ include Aws::Structure
2675
+ end
2676
+
1920
2677
  # Lists the properties for one or more specified associated accesses.
1921
2678
  #
1922
2679
  # @!attribute [rw] home_directory
@@ -1931,7 +2688,7 @@ module Aws::Transfer
1931
2688
  # directory to be when they log into the server. If you set it to
1932
2689
  # `PATH`, the user will see the absolute Amazon S3 bucket or EFS paths
1933
2690
  # as is in their file transfer protocol clients. If you set it
1934
- # `LOGICAL`, you will need to provide mappings in the
2691
+ # `LOGICAL`, you need to provide mappings in the
1935
2692
  # `HomeDirectoryMappings` for how you want to make Amazon S3 or EFS
1936
2693
  # paths visible to your users.
1937
2694
  # @return [String]
@@ -1978,6 +2735,40 @@ module Aws::Transfer
1978
2735
  include Aws::Structure
1979
2736
  end
1980
2737
 
2738
+ # Returns properties of the execution that is specified.
2739
+ #
2740
+ # @!attribute [rw] execution_id
2741
+ # A unique identifier for the execution of a workflow.
2742
+ # @return [String]
2743
+ #
2744
+ # @!attribute [rw] initial_file_location
2745
+ # A structure that describes the Amazon S3 or EFS file location. This
2746
+ # is the file location when the execution begins: if the file is being
2747
+ # copied, this is the initial (as opposed to destination) file
2748
+ # location.
2749
+ # @return [Types::FileLocation]
2750
+ #
2751
+ # @!attribute [rw] service_metadata
2752
+ # A container object for the session details associated with a
2753
+ # workflow.
2754
+ # @return [Types::ServiceMetadata]
2755
+ #
2756
+ # @!attribute [rw] status
2757
+ # The status is one of the execution. Can be in progress, completed,
2758
+ # exception encountered, or handling the exception.
2759
+ # @return [String]
2760
+ #
2761
+ # @see http://docs.aws.amazon.com/goto/WebAPI/transfer-2018-11-05/ListedExecution AWS API Documentation
2762
+ #
2763
+ class ListedExecution < Struct.new(
2764
+ :execution_id,
2765
+ :initial_file_location,
2766
+ :service_metadata,
2767
+ :status)
2768
+ SENSITIVE = []
2769
+ include Aws::Structure
2770
+ end
2771
+
1981
2772
  # Returns properties of a file transfer protocol-enabled server that was
1982
2773
  # specified.
1983
2774
  #
@@ -2079,7 +2870,7 @@ module Aws::Transfer
2079
2870
  # directory to be when they log into the server. If you set it to
2080
2871
  # `PATH`, the user will see the absolute Amazon S3 bucket or EFS paths
2081
2872
  # as is in their file transfer protocol clients. If you set it
2082
- # `LOGICAL`, you will need to provide mappings in the
2873
+ # `LOGICAL`, you need to provide mappings in the
2083
2874
  # `HomeDirectoryMappings` for how you want to make Amazon S3 or EFS
2084
2875
  # paths visible to your users.
2085
2876
  # @return [String]
@@ -2128,6 +2919,55 @@ module Aws::Transfer
2128
2919
  include Aws::Structure
2129
2920
  end
2130
2921
 
2922
+ # Contains the ID, text description, and Amazon Resource Name (ARN) for
2923
+ # the workflow.
2924
+ #
2925
+ # @!attribute [rw] workflow_id
2926
+ # A unique identifier for the workflow.
2927
+ # @return [String]
2928
+ #
2929
+ # @!attribute [rw] description
2930
+ # Specifies the text description for the workflow.
2931
+ # @return [String]
2932
+ #
2933
+ # @!attribute [rw] arn
2934
+ # Specifies the unique Amazon Resource Name (ARN) for the workflow.
2935
+ # @return [String]
2936
+ #
2937
+ # @see http://docs.aws.amazon.com/goto/WebAPI/transfer-2018-11-05/ListedWorkflow AWS API Documentation
2938
+ #
2939
+ class ListedWorkflow < Struct.new(
2940
+ :workflow_id,
2941
+ :description,
2942
+ :arn)
2943
+ SENSITIVE = []
2944
+ include Aws::Structure
2945
+ end
2946
+
2947
+ # Consists of the logging role and the log group name.
2948
+ #
2949
+ # @!attribute [rw] logging_role
2950
+ # Specifies the Amazon Resource Name (ARN) of the Amazon Web Services
2951
+ # Identity and Access Management (IAM) role that allows a server to
2952
+ # turn on Amazon CloudWatch logging for Amazon S3 or Amazon EFS
2953
+ # events. When set, user activity can be viewed in your CloudWatch
2954
+ # logs.
2955
+ # @return [String]
2956
+ #
2957
+ # @!attribute [rw] log_group_name
2958
+ # The name of the CloudWatch logging group for the Amazon Web Services
2959
+ # Transfer server to which this workflow belongs.
2960
+ # @return [String]
2961
+ #
2962
+ # @see http://docs.aws.amazon.com/goto/WebAPI/transfer-2018-11-05/LoggingConfiguration AWS API Documentation
2963
+ #
2964
+ class LoggingConfiguration < Struct.new(
2965
+ :logging_role,
2966
+ :log_group_name)
2967
+ SENSITIVE = []
2968
+ include Aws::Structure
2969
+ end
2970
+
2131
2971
  # The full POSIX identity, including user ID (`Uid`), group ID (`Gid`),
2132
2972
  # and any secondary groups IDs (`SecondaryGids`), that controls your
2133
2973
  # users' access to your Amazon EFS file systems. The POSIX permissions
@@ -2189,6 +3029,18 @@ module Aws::Transfer
2189
3029
  #
2190
3030
  # Replace ` 0.0.0.0 ` in the example above with the actual IP address
2191
3031
  # you want to use.
3032
+ #
3033
+ # <note markdown="1"> If you change the `PassiveIp` value, you must stop and then restart
3034
+ # your Transfer server for the change to take effect. For details on
3035
+ # using Passive IP (PASV) in a NAT environment, see [Configuring your
3036
+ # FTPS server behind a firewall or NAT with Amazon Web Services
3037
+ # Transfer Family][1].
3038
+ #
3039
+ # </note>
3040
+ #
3041
+ #
3042
+ #
3043
+ # [1]: http://aws.amazon.com/blogs/storage/configuring-your-ftps-server-behind-a-firewall-or-nat-with-aws-transfer-family/
2192
3044
  # @return [String]
2193
3045
  #
2194
3046
  # @see http://docs.aws.amazon.com/goto/WebAPI/transfer-2018-11-05/ProtocolDetails AWS API Documentation
@@ -2242,6 +3094,167 @@ module Aws::Transfer
2242
3094
  include Aws::Structure
2243
3095
  end
2244
3096
 
3097
+ # Specifies the details for the file location for the file being used in
3098
+ # the workflow. Only applicable if you are using S3 storage.
3099
+ #
3100
+ # @!attribute [rw] bucket
3101
+ # Specifies the S3 bucket that contains the file being used.
3102
+ # @return [String]
3103
+ #
3104
+ # @!attribute [rw] key
3105
+ # The name assigned to the file when it was created in S3. You use the
3106
+ # object key to retrieve the object.
3107
+ # @return [String]
3108
+ #
3109
+ # @!attribute [rw] version_id
3110
+ # Specifies the file version.
3111
+ # @return [String]
3112
+ #
3113
+ # @!attribute [rw] etag
3114
+ # The entity tag is a hash of the object. The ETag reflects changes
3115
+ # only to the contents of an object, not its metadata.
3116
+ # @return [String]
3117
+ #
3118
+ # @see http://docs.aws.amazon.com/goto/WebAPI/transfer-2018-11-05/S3FileLocation AWS API Documentation
3119
+ #
3120
+ class S3FileLocation < Struct.new(
3121
+ :bucket,
3122
+ :key,
3123
+ :version_id,
3124
+ :etag)
3125
+ SENSITIVE = []
3126
+ include Aws::Structure
3127
+ end
3128
+
3129
+ # Specifies the customer input S3 file location. If it is used inside
3130
+ # `copyStepDetails.DestinationFileLocation`, it should be the S3 copy
3131
+ # destination.
3132
+ #
3133
+ # You need to provide the bucket and key. The key can represent either a
3134
+ # path or a file. This is determined by whether or not you end the key
3135
+ # value with the forward slash (/) character. If the final character is
3136
+ # "/", then your file is copied to the folder, and its name does not
3137
+ # change. If, rather, the final character is alphanumeric, your uploaded
3138
+ # file is renamed to the path value. In this case, if a file with that
3139
+ # name already exists, it is overwritten.
3140
+ #
3141
+ # For example, if your path is `shared-files/bob/`, your uploaded files
3142
+ # are copied to the `shared-files/bob/`, folder. If your path is
3143
+ # `shared-files/today`, each uploaded file is copied to the
3144
+ # `shared-files` folder and named `today`\: each upload overwrites the
3145
+ # previous version of the *bob* file.
3146
+ #
3147
+ # @note When making an API call, you may pass S3InputFileLocation
3148
+ # data as a hash:
3149
+ #
3150
+ # {
3151
+ # bucket: "S3Bucket",
3152
+ # key: "S3Key",
3153
+ # }
3154
+ #
3155
+ # @!attribute [rw] bucket
3156
+ # Specifies the S3 bucket for the customer input file.
3157
+ # @return [String]
3158
+ #
3159
+ # @!attribute [rw] key
3160
+ # The name assigned to the file when it was created in S3. You use the
3161
+ # object key to retrieve the object.
3162
+ # @return [String]
3163
+ #
3164
+ # @see http://docs.aws.amazon.com/goto/WebAPI/transfer-2018-11-05/S3InputFileLocation AWS API Documentation
3165
+ #
3166
+ class S3InputFileLocation < Struct.new(
3167
+ :bucket,
3168
+ :key)
3169
+ SENSITIVE = []
3170
+ include Aws::Structure
3171
+ end
3172
+
3173
+ # Specifies the key-value pair that are assigned to a file during the
3174
+ # execution of a Tagging step.
3175
+ #
3176
+ # @note When making an API call, you may pass S3Tag
3177
+ # data as a hash:
3178
+ #
3179
+ # {
3180
+ # key: "S3TagKey", # required
3181
+ # value: "S3TagValue", # required
3182
+ # }
3183
+ #
3184
+ # @!attribute [rw] key
3185
+ # The name assigned to the tag that you create.
3186
+ # @return [String]
3187
+ #
3188
+ # @!attribute [rw] value
3189
+ # The value that corresponds to the key.
3190
+ # @return [String]
3191
+ #
3192
+ # @see http://docs.aws.amazon.com/goto/WebAPI/transfer-2018-11-05/S3Tag AWS API Documentation
3193
+ #
3194
+ class S3Tag < Struct.new(
3195
+ :key,
3196
+ :value)
3197
+ SENSITIVE = []
3198
+ include Aws::Structure
3199
+ end
3200
+
3201
+ # @note When making an API call, you may pass SendWorkflowStepStateRequest
3202
+ # data as a hash:
3203
+ #
3204
+ # {
3205
+ # workflow_id: "WorkflowId", # required
3206
+ # execution_id: "ExecutionId", # required
3207
+ # token: "CallbackToken", # required
3208
+ # status: "SUCCESS", # required, accepts SUCCESS, FAILURE
3209
+ # }
3210
+ #
3211
+ # @!attribute [rw] workflow_id
3212
+ # A unique identifier for the workflow.
3213
+ # @return [String]
3214
+ #
3215
+ # @!attribute [rw] execution_id
3216
+ # A unique identifier for the execution of a workflow.
3217
+ # @return [String]
3218
+ #
3219
+ # @!attribute [rw] token
3220
+ # Used to distinguish between multiple callbacks for multiple Lambda
3221
+ # steps within the same execution.
3222
+ # @return [String]
3223
+ #
3224
+ # @!attribute [rw] status
3225
+ # Indicates whether the specified step succeeded or failed.
3226
+ # @return [String]
3227
+ #
3228
+ # @see http://docs.aws.amazon.com/goto/WebAPI/transfer-2018-11-05/SendWorkflowStepStateRequest AWS API Documentation
3229
+ #
3230
+ class SendWorkflowStepStateRequest < Struct.new(
3231
+ :workflow_id,
3232
+ :execution_id,
3233
+ :token,
3234
+ :status)
3235
+ SENSITIVE = []
3236
+ include Aws::Structure
3237
+ end
3238
+
3239
+ # @see http://docs.aws.amazon.com/goto/WebAPI/transfer-2018-11-05/SendWorkflowStepStateResponse AWS API Documentation
3240
+ #
3241
+ class SendWorkflowStepStateResponse < Aws::EmptyStructure; end
3242
+
3243
+ # A container object for the session details associated with a workflow.
3244
+ #
3245
+ # @!attribute [rw] user_details
3246
+ # The Server ID (`ServerId`), Session ID (`SessionId`) and user
3247
+ # (`UserName`) make up the `UserDetails`.
3248
+ # @return [Types::UserDetails]
3249
+ #
3250
+ # @see http://docs.aws.amazon.com/goto/WebAPI/transfer-2018-11-05/ServiceMetadata AWS API Documentation
3251
+ #
3252
+ class ServiceMetadata < Struct.new(
3253
+ :user_details)
3254
+ SENSITIVE = []
3255
+ include Aws::Structure
3256
+ end
3257
+
2245
3258
  # The request has failed because the Amazon Web ServicesTransfer Family
2246
3259
  # service is not available.
2247
3260
  #
@@ -2392,6 +3405,41 @@ module Aws::Transfer
2392
3405
  include Aws::Structure
2393
3406
  end
2394
3407
 
3408
+ # Each step type has its own `StepDetails` structure.
3409
+ #
3410
+ # The key/value pairs used to tag a file during the execution of a
3411
+ # workflow step.
3412
+ #
3413
+ # @note When making an API call, you may pass TagStepDetails
3414
+ # data as a hash:
3415
+ #
3416
+ # {
3417
+ # name: "WorkflowStepName",
3418
+ # tags: [
3419
+ # {
3420
+ # key: "S3TagKey", # required
3421
+ # value: "S3TagValue", # required
3422
+ # },
3423
+ # ],
3424
+ # }
3425
+ #
3426
+ # @!attribute [rw] name
3427
+ # The name of the step, used as an identifier.
3428
+ # @return [String]
3429
+ #
3430
+ # @!attribute [rw] tags
3431
+ # Array that contains from 1 to 10 key/value pairs.
3432
+ # @return [Array<Types::S3Tag>]
3433
+ #
3434
+ # @see http://docs.aws.amazon.com/goto/WebAPI/transfer-2018-11-05/TagStepDetails AWS API Documentation
3435
+ #
3436
+ class TagStepDetails < Struct.new(
3437
+ :name,
3438
+ :tags)
3439
+ SENSITIVE = []
3440
+ include Aws::Structure
3441
+ end
3442
+
2395
3443
  # @note When making an API call, you may pass TestIdentityProviderRequest
2396
3444
  # data as a hash:
2397
3445
  #
@@ -2550,7 +3598,7 @@ module Aws::Transfer
2550
3598
  # directory to be when they log into the server. If you set it to
2551
3599
  # `PATH`, the user will see the absolute Amazon S3 bucket or EFS paths
2552
3600
  # as is in their file transfer protocol clients. If you set it
2553
- # `LOGICAL`, you will need to provide mappings in the
3601
+ # `LOGICAL`, you need to provide mappings in the
2554
3602
  # `HomeDirectoryMappings` for how you want to make Amazon S3 or EFS
2555
3603
  # paths visible to your users.
2556
3604
  # @return [String]
@@ -2568,11 +3616,11 @@ module Aws::Transfer
2568
3616
  #
2569
3617
  # The following is an `Entry` and `Target` pair example.
2570
3618
  #
2571
- # `[ \{ "Entry": "your-personal-report.pdf", "Target":
2572
- # "/bucket3/customized-reports/$\{transfer:UserName\}.pdf" \} ]`
3619
+ # `[ \{ "Entry": "/directory1", "Target":
3620
+ # "/bucket_name/home/mydirectory" \} ]`
2573
3621
  #
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
3622
+ # In most cases, you can use this value instead of the session policy
3623
+ # to lock down your user to the designated home directory
2576
3624
  # ("`chroot`"). To do this, you can set `Entry` to `/` and set
2577
3625
  # `Target` to the `HomeDirectory` parameter value.
2578
3626
  #
@@ -2593,22 +3641,21 @@ module Aws::Transfer
2593
3641
  # @return [Array<Types::HomeDirectoryMapEntry>]
2594
3642
  #
2595
3643
  # @!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
3644
+ # A session policy for your user so that you can use the same IAM role
3645
+ # across multiple users. This policy scopes down user access to
2598
3646
  # portions of their Amazon S3 bucket. Variables that you can use
2599
3647
  # inside this policy include `$\{Transfer:UserName\}`,
2600
3648
  # `$\{Transfer:HomeDirectory\}`, and `$\{Transfer:HomeBucket\}`.
2601
3649
  #
2602
- # <note markdown="1"> This only applies when domain of `ServerId` is S3. Amazon EFS does
2603
- # not use scope down policy.
3650
+ # <note markdown="1"> This only applies when the domain of `ServerId` is S3. EFS does not
3651
+ # use session policies.
2604
3652
  #
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
3653
+ # For session policies, Amazon Web Services Transfer Family stores the
3654
+ # policy as a JSON blob, instead of the Amazon Resource Name (ARN) of
3655
+ # the policy. You save the policy as a JSON blob and pass it in the
2608
3656
  # `Policy` argument.
2609
3657
  #
2610
- # For an example of a scope-down policy, see [Example scope-down
2611
- # policy][1].
3658
+ # For an example of a session policy, see [Example session policy][1].
2612
3659
  #
2613
3660
  # For more information, see [AssumeRole][2] in the *Amazon Web
2614
3661
  # ServicesSecurity Token Service API Reference*.
@@ -2617,7 +3664,7 @@ module Aws::Transfer
2617
3664
  #
2618
3665
  #
2619
3666
  #
2620
- # [1]: https://docs.aws.amazon.com/transfer/latest/userguide/scope-down-policy.html
3667
+ # [1]: https://docs.aws.amazon.com/transfer/latest/userguide/session-policy.html
2621
3668
  # [2]: https://docs.aws.amazon.com/STS/latest/APIReference/API_AssumeRole.html
2622
3669
  # @return [String]
2623
3670
  #
@@ -2726,6 +3773,14 @@ module Aws::Transfer
2726
3773
  # protocols: ["SFTP"], # accepts SFTP, FTP, FTPS
2727
3774
  # security_policy_name: "SecurityPolicyName",
2728
3775
  # server_id: "ServerId", # required
3776
+ # workflow_details: {
3777
+ # on_upload: [ # required
3778
+ # {
3779
+ # workflow_id: "WorkflowId", # required
3780
+ # execution_role: "Role", # required
3781
+ # },
3782
+ # ],
3783
+ # },
2729
3784
  # }
2730
3785
  #
2731
3786
  # @!attribute [rw] certificate
@@ -2885,6 +3940,11 @@ module Aws::Transfer
2885
3940
  # user account is assigned to.
2886
3941
  # @return [String]
2887
3942
  #
3943
+ # @!attribute [rw] workflow_details
3944
+ # Specifies the workflow ID for the workflow to assign and the
3945
+ # execution role used for executing the workflow.
3946
+ # @return [Types::WorkflowDetails]
3947
+ #
2888
3948
  # @see http://docs.aws.amazon.com/goto/WebAPI/transfer-2018-11-05/UpdateServerRequest AWS API Documentation
2889
3949
  #
2890
3950
  class UpdateServerRequest < Struct.new(
@@ -2897,7 +3957,8 @@ module Aws::Transfer
2897
3957
  :logging_role,
2898
3958
  :protocols,
2899
3959
  :security_policy_name,
2900
- :server_id)
3960
+ :server_id,
3961
+ :workflow_details)
2901
3962
  SENSITIVE = [:host_key]
2902
3963
  include Aws::Structure
2903
3964
  end
@@ -2950,7 +4011,7 @@ module Aws::Transfer
2950
4011
  # directory to be when they log into the server. If you set it to
2951
4012
  # `PATH`, the user will see the absolute Amazon S3 bucket or EFS paths
2952
4013
  # as is in their file transfer protocol clients. If you set it
2953
- # `LOGICAL`, you will need to provide mappings in the
4014
+ # `LOGICAL`, you need to provide mappings in the
2954
4015
  # `HomeDirectoryMappings` for how you want to make Amazon S3 or EFS
2955
4016
  # paths visible to your users.
2956
4017
  # @return [String]
@@ -2968,11 +4029,11 @@ module Aws::Transfer
2968
4029
  #
2969
4030
  # The following is an `Entry` and `Target` pair example.
2970
4031
  #
2971
- # `[ \{ "Entry": "your-personal-report.pdf", "Target":
2972
- # "/bucket3/customized-reports/$\{transfer:UserName\}.pdf" \} ]`
4032
+ # `[ \{ "Entry": "/directory1", "Target":
4033
+ # "/bucket_name/home/mydirectory" \} ]`
2973
4034
  #
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
4035
+ # In most cases, you can use this value instead of the session policy
4036
+ # to lock down your user to the designated home directory
2976
4037
  # ("`chroot`"). To do this, you can set `Entry` to '/' and set
2977
4038
  # `Target` to the HomeDirectory parameter value.
2978
4039
  #
@@ -2993,21 +4054,21 @@ module Aws::Transfer
2993
4054
  # @return [Array<Types::HomeDirectoryMapEntry>]
2994
4055
  #
2995
4056
  # @!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
4057
+ # A session policy for your user so that you can use the same IAM role
4058
+ # across multiple users. This policy scopes down user access to
2998
4059
  # portions of their Amazon S3 bucket. Variables that you can use
2999
4060
  # inside this policy include `$\{Transfer:UserName\}`,
3000
4061
  # `$\{Transfer:HomeDirectory\}`, and `$\{Transfer:HomeBucket\}`.
3001
4062
  #
3002
- # <note markdown="1"> This only applies when domain of `ServerId` is S3. Amazon EFS does
3003
- # not use scope-down policies.
4063
+ # <note markdown="1"> This only applies when the domain of `ServerId` is S3. EFS does not
4064
+ # use session policies.
3004
4065
  #
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
4066
+ # For session policies, Amazon Web Services Transfer Family stores the
4067
+ # policy as a JSON blob, instead of the Amazon Resource Name (ARN) of
4068
+ # the policy. You save the policy as a JSON blob and pass it in the
3008
4069
  # `Policy` argument.
3009
4070
  #
3010
- # For an example of a scope-down policy, see [Creating a scope-down
4071
+ # For an example of a session policy, see [Creating a session
3011
4072
  # policy][1].
3012
4073
  #
3013
4074
  # For more information, see [AssumeRole][2] in the *Amazon Web
@@ -3017,7 +4078,7 @@ module Aws::Transfer
3017
4078
  #
3018
4079
  #
3019
4080
  #
3020
- # [1]: https://docs.aws.amazon.com/transfer/latest/userguide/users.html#users-policies-scope-down
4081
+ # [1]: https://docs.aws.amazon.com/transfer/latest/userguide/session-policy
3021
4082
  # [2]: https://docs.aws.amazon.com/STS/latest/APIReference/API_AssumeRole.html
3022
4083
  # @return [String]
3023
4084
  #
@@ -3093,5 +4154,184 @@ module Aws::Transfer
3093
4154
  include Aws::Structure
3094
4155
  end
3095
4156
 
4157
+ # Specifies the user name, server ID, and session ID for a workflow.
4158
+ #
4159
+ # @!attribute [rw] user_name
4160
+ # A unique string that identifies a user account associated with a
4161
+ # server.
4162
+ # @return [String]
4163
+ #
4164
+ # @!attribute [rw] server_id
4165
+ # The system-assigned unique identifier for a Transfer server
4166
+ # instance.
4167
+ # @return [String]
4168
+ #
4169
+ # @!attribute [rw] session_id
4170
+ # The system-assigned unique identifier for a session that corresponds
4171
+ # to the workflow.
4172
+ # @return [String]
4173
+ #
4174
+ # @see http://docs.aws.amazon.com/goto/WebAPI/transfer-2018-11-05/UserDetails AWS API Documentation
4175
+ #
4176
+ class UserDetails < Struct.new(
4177
+ :user_name,
4178
+ :server_id,
4179
+ :session_id)
4180
+ SENSITIVE = []
4181
+ include Aws::Structure
4182
+ end
4183
+
4184
+ # Specifies the workflow ID for the workflow to assign and the execution
4185
+ # role used for executing the workflow.
4186
+ #
4187
+ # @note When making an API call, you may pass WorkflowDetail
4188
+ # data as a hash:
4189
+ #
4190
+ # {
4191
+ # workflow_id: "WorkflowId", # required
4192
+ # execution_role: "Role", # required
4193
+ # }
4194
+ #
4195
+ # @!attribute [rw] workflow_id
4196
+ # A unique identifier for the workflow.
4197
+ # @return [String]
4198
+ #
4199
+ # @!attribute [rw] execution_role
4200
+ # Includes the necessary permissions for S3, EFS, and Lambda
4201
+ # operations that Transfer can assume, so that all workflow steps can
4202
+ # operate on the required resources
4203
+ # @return [String]
4204
+ #
4205
+ # @see http://docs.aws.amazon.com/goto/WebAPI/transfer-2018-11-05/WorkflowDetail AWS API Documentation
4206
+ #
4207
+ class WorkflowDetail < Struct.new(
4208
+ :workflow_id,
4209
+ :execution_role)
4210
+ SENSITIVE = []
4211
+ include Aws::Structure
4212
+ end
4213
+
4214
+ # Container for the `WorkflowDetail` data type. It is used by actions
4215
+ # that trigger a workflow to begin execution.
4216
+ #
4217
+ # @note When making an API call, you may pass WorkflowDetails
4218
+ # data as a hash:
4219
+ #
4220
+ # {
4221
+ # on_upload: [ # required
4222
+ # {
4223
+ # workflow_id: "WorkflowId", # required
4224
+ # execution_role: "Role", # required
4225
+ # },
4226
+ # ],
4227
+ # }
4228
+ #
4229
+ # @!attribute [rw] on_upload
4230
+ # A trigger that starts a workflow: the workflow begins to execute
4231
+ # after a file is uploaded.
4232
+ # @return [Array<Types::WorkflowDetail>]
4233
+ #
4234
+ # @see http://docs.aws.amazon.com/goto/WebAPI/transfer-2018-11-05/WorkflowDetails AWS API Documentation
4235
+ #
4236
+ class WorkflowDetails < Struct.new(
4237
+ :on_upload)
4238
+ SENSITIVE = []
4239
+ include Aws::Structure
4240
+ end
4241
+
4242
+ # The basic building block of a workflow.
4243
+ #
4244
+ # @note When making an API call, you may pass WorkflowStep
4245
+ # data as a hash:
4246
+ #
4247
+ # {
4248
+ # type: "COPY", # accepts COPY, CUSTOM, TAG, DELETE
4249
+ # copy_step_details: {
4250
+ # name: "WorkflowStepName",
4251
+ # destination_file_location: {
4252
+ # s3_file_location: {
4253
+ # bucket: "S3Bucket",
4254
+ # key: "S3Key",
4255
+ # },
4256
+ # efs_file_location: {
4257
+ # file_system_id: "EfsFileSystemId",
4258
+ # path: "EfsPath",
4259
+ # },
4260
+ # },
4261
+ # overwrite_existing: "TRUE", # accepts TRUE, FALSE
4262
+ # },
4263
+ # custom_step_details: {
4264
+ # name: "WorkflowStepName",
4265
+ # target: "CustomStepTarget",
4266
+ # timeout_seconds: 1,
4267
+ # },
4268
+ # delete_step_details: {
4269
+ # name: "WorkflowStepName",
4270
+ # },
4271
+ # tag_step_details: {
4272
+ # name: "WorkflowStepName",
4273
+ # tags: [
4274
+ # {
4275
+ # key: "S3TagKey", # required
4276
+ # value: "S3TagValue", # required
4277
+ # },
4278
+ # ],
4279
+ # },
4280
+ # }
4281
+ #
4282
+ # @!attribute [rw] type
4283
+ # Currently, the following step types are supported.
4284
+ #
4285
+ # * *Copy*\: copy the file to another location
4286
+ #
4287
+ # * *Custom*\: custom step with a lambda target
4288
+ #
4289
+ # * *Delete*\: delete the file
4290
+ #
4291
+ # * *Tag*\: add a tag to the file
4292
+ # @return [String]
4293
+ #
4294
+ # @!attribute [rw] copy_step_details
4295
+ # Details for a step that performs a file copy.
4296
+ #
4297
+ # Consists of the following values:
4298
+ #
4299
+ # * A description
4300
+ #
4301
+ # * An S3 location for the destination of the file copy.
4302
+ #
4303
+ # * A flag that indicates whether or not to overwrite an existing file
4304
+ # of the same name. The default is `FALSE`.
4305
+ # @return [Types::CopyStepDetails]
4306
+ #
4307
+ # @!attribute [rw] custom_step_details
4308
+ # Details for a step that invokes a lambda function.
4309
+ #
4310
+ # Consists of the lambda function name, target, and timeout (in
4311
+ # seconds).
4312
+ # @return [Types::CustomStepDetails]
4313
+ #
4314
+ # @!attribute [rw] delete_step_details
4315
+ # Details for a step that deletes the file.
4316
+ # @return [Types::DeleteStepDetails]
4317
+ #
4318
+ # @!attribute [rw] tag_step_details
4319
+ # Details for a step that creates one or more tags.
4320
+ #
4321
+ # You specify one or more tags: each tag contains a key/value pair.
4322
+ # @return [Types::TagStepDetails]
4323
+ #
4324
+ # @see http://docs.aws.amazon.com/goto/WebAPI/transfer-2018-11-05/WorkflowStep AWS API Documentation
4325
+ #
4326
+ class WorkflowStep < Struct.new(
4327
+ :type,
4328
+ :copy_step_details,
4329
+ :custom_step_details,
4330
+ :delete_step_details,
4331
+ :tag_step_details)
4332
+ SENSITIVE = []
4333
+ include Aws::Structure
4334
+ end
4335
+
3096
4336
  end
3097
4337
  end