aws-sdk-transfer 1.38.0 → 1.39.0

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