aws-sdk-transfer 1.38.0 → 1.42.0

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