aws-sdk-transfer 1.47.0 → 1.50.0

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: e506a67cabd21108c149c0bcd0fcd2b078d49cc9706bfcbcb7cff4c727687626
4
- data.tar.gz: 950a4529cc3a61dcb02e761a93fd3636339220db7e0c5d2b01b8beb448015a2f
3
+ metadata.gz: 4e4409d8646c52571f98d0f73d469176b53d7a405abb734576d1246d449c4852
4
+ data.tar.gz: 79ab9afb3e5e42cd699384918c77c6e93f04d65e509c9482cf3364d9b7a26919
5
5
  SHA512:
6
- metadata.gz: 1b9be93382ef08bd87c6951222ab0cea50b78ce5088b097cb585bd1510db87ab132313f53f7f89981441c82f95e8b3d8c70b1fb086823e2991e47f267ec2c977
7
- data.tar.gz: d139c6ffe449b8aed1f1af7d6cca4957b8092fcf22d56385cc8c8321aa7c1216713d97dcb45bcf4c851ce803e0cf2f545c26538a742cb2e5f992efc6ea139d73
6
+ metadata.gz: 407fc4c5de4a8347616dde8a71db841ccd4193a6e7b38cc42e2b8df41df3350d7fe1eb03d6d996a3d9589f1e2cd215165c9e8078160fc8ae610ed19e9ace6bd1
7
+ data.tar.gz: ffc9a729b8a42a08d0e4d74b5e3b47c96a1c008bfcb5188b31df56ce5a3bd7608409432f116bd6c59e0a7ce8438d2035ee28a26fa2114c6158c15cdeadfb9282
data/CHANGELOG.md CHANGED
@@ -1,6 +1,21 @@
1
1
  Unreleased Changes
2
2
  ------------------
3
3
 
4
+ 1.50.0 (2022-03-04)
5
+ ------------------
6
+
7
+ * Feature - Add waiters for server online and offline.
8
+
9
+ 1.49.0 (2022-02-24)
10
+ ------------------
11
+
12
+ * Feature - Support automatic pagination when listing AWS Transfer Family resources.
13
+
14
+ 1.48.0 (2022-02-23)
15
+ ------------------
16
+
17
+ * Feature - The file input selection feature provides the ability to use either the originally uploaded file or the output file from the previous workflow step, enabling customers to make multiple copies of the original file while keeping the source file intact for file archival.
18
+
4
19
  1.47.0 (2022-02-18)
5
20
  ------------------
6
21
 
data/VERSION CHANGED
@@ -1 +1 @@
1
- 1.47.0
1
+ 1.50.0
@@ -27,6 +27,7 @@ require 'aws-sdk-core/plugins/client_metrics_plugin.rb'
27
27
  require 'aws-sdk-core/plugins/client_metrics_send_plugin.rb'
28
28
  require 'aws-sdk-core/plugins/transfer_encoding.rb'
29
29
  require 'aws-sdk-core/plugins/http_checksum.rb'
30
+ require 'aws-sdk-core/plugins/checksum_algorithm.rb'
30
31
  require 'aws-sdk-core/plugins/defaults_mode.rb'
31
32
  require 'aws-sdk-core/plugins/recursion_detection.rb'
32
33
  require 'aws-sdk-core/plugins/signature_v4.rb'
@@ -75,6 +76,7 @@ module Aws::Transfer
75
76
  add_plugin(Aws::Plugins::ClientMetricsSendPlugin)
76
77
  add_plugin(Aws::Plugins::TransferEncoding)
77
78
  add_plugin(Aws::Plugins::HttpChecksum)
79
+ add_plugin(Aws::Plugins::ChecksumAlgorithm)
78
80
  add_plugin(Aws::Plugins::DefaultsMode)
79
81
  add_plugin(Aws::Plugins::RecursionDetection)
80
82
  add_plugin(Aws::Plugins::SignatureV4)
@@ -406,17 +408,6 @@ module Aws::Transfer
406
408
  #
407
409
  # `[ \{ "Entry:": "/", "Target": "/bucket_name/home/mydirectory" \} ]`
408
410
  #
409
- # <note markdown="1"> If the target of a logical directory entry does not exist in Amazon S3
410
- # or EFS, the entry is ignored. As a workaround, you can use the Amazon
411
- # S3 API or EFS API to create 0 byte objects as place holders for your
412
- # directory. If using the CLI, use the `s3api` or `efsapi` call instead
413
- # of `s3` or `efs` so you can use the put-object operation. For example,
414
- # you use the following: `aws s3api put-object --bucket bucketname --key
415
- # path/to/folder/`. Make sure that the end of the key name ends in a `/`
416
- # for it to be considered a folder.
417
- #
418
- # </note>
419
- #
420
411
  # @option params [String] :policy
421
412
  # A session policy for your user so that you can use the same IAM role
422
413
  # across multiple users. This policy scopes down user access to portions
@@ -832,17 +823,6 @@ module Aws::Transfer
832
823
  #
833
824
  # `[ \{ "Entry:": "/", "Target": "/bucket_name/home/mydirectory" \} ]`
834
825
  #
835
- # <note markdown="1"> If the target of a logical directory entry does not exist in Amazon S3
836
- # or EFS, the entry is ignored. As a workaround, you can use the Amazon
837
- # S3 API or EFS API to create 0 byte objects as place holders for your
838
- # directory. If using the CLI, use the `s3api` or `efsapi` call instead
839
- # of `s3` or `efs` so you can use the put-object operation. For example,
840
- # you use the following: `aws s3api put-object --bucket bucketname --key
841
- # path/to/folder/`. Make sure that the end of the key name ends in a `/`
842
- # for it to be considered a folder.
843
- #
844
- # </note>
845
- #
846
826
  # @option params [String] :policy
847
827
  # A session policy for your user so that you can use the same IAM role
848
828
  # across multiple users. This policy scopes down user access to portions
@@ -1029,14 +1009,17 @@ module Aws::Transfer
1029
1009
  # },
1030
1010
  # },
1031
1011
  # overwrite_existing: "TRUE", # accepts TRUE, FALSE
1012
+ # source_file_location: "SourceFileLocation",
1032
1013
  # },
1033
1014
  # custom_step_details: {
1034
1015
  # name: "WorkflowStepName",
1035
1016
  # target: "CustomStepTarget",
1036
1017
  # timeout_seconds: 1,
1018
+ # source_file_location: "SourceFileLocation",
1037
1019
  # },
1038
1020
  # delete_step_details: {
1039
1021
  # name: "WorkflowStepName",
1022
+ # source_file_location: "SourceFileLocation",
1040
1023
  # },
1041
1024
  # tag_step_details: {
1042
1025
  # name: "WorkflowStepName",
@@ -1046,6 +1029,7 @@ module Aws::Transfer
1046
1029
  # value: "S3TagValue", # required
1047
1030
  # },
1048
1031
  # ],
1032
+ # source_file_location: "SourceFileLocation",
1049
1033
  # },
1050
1034
  # },
1051
1035
  # ],
@@ -1065,14 +1049,17 @@ module Aws::Transfer
1065
1049
  # },
1066
1050
  # },
1067
1051
  # overwrite_existing: "TRUE", # accepts TRUE, FALSE
1052
+ # source_file_location: "SourceFileLocation",
1068
1053
  # },
1069
1054
  # custom_step_details: {
1070
1055
  # name: "WorkflowStepName",
1071
1056
  # target: "CustomStepTarget",
1072
1057
  # timeout_seconds: 1,
1058
+ # source_file_location: "SourceFileLocation",
1073
1059
  # },
1074
1060
  # delete_step_details: {
1075
1061
  # name: "WorkflowStepName",
1062
+ # source_file_location: "SourceFileLocation",
1076
1063
  # },
1077
1064
  # tag_step_details: {
1078
1065
  # name: "WorkflowStepName",
@@ -1082,6 +1069,7 @@ module Aws::Transfer
1082
1069
  # value: "S3TagValue", # required
1083
1070
  # },
1084
1071
  # ],
1072
+ # source_file_location: "SourceFileLocation",
1085
1073
  # },
1086
1074
  # },
1087
1075
  # ],
@@ -1495,6 +1483,12 @@ module Aws::Transfer
1495
1483
  # resp.server.workflow_details.on_upload[0].workflow_id #=> String
1496
1484
  # resp.server.workflow_details.on_upload[0].execution_role #=> String
1497
1485
  #
1486
+ #
1487
+ # The following waiters are defined for this operation (see {Client#wait_until} for detailed usage):
1488
+ #
1489
+ # * server_offline
1490
+ # * server_online
1491
+ #
1498
1492
  # @see http://docs.aws.amazon.com/goto/WebAPI/transfer-2018-11-05/DescribeServer AWS API Documentation
1499
1493
  #
1500
1494
  # @overload describe_server(params = {})
@@ -1591,14 +1585,18 @@ module Aws::Transfer
1591
1585
  # resp.workflow.steps[0].copy_step_details.destination_file_location.efs_file_location.file_system_id #=> String
1592
1586
  # resp.workflow.steps[0].copy_step_details.destination_file_location.efs_file_location.path #=> String
1593
1587
  # resp.workflow.steps[0].copy_step_details.overwrite_existing #=> String, one of "TRUE", "FALSE"
1588
+ # resp.workflow.steps[0].copy_step_details.source_file_location #=> String
1594
1589
  # resp.workflow.steps[0].custom_step_details.name #=> String
1595
1590
  # resp.workflow.steps[0].custom_step_details.target #=> String
1596
1591
  # resp.workflow.steps[0].custom_step_details.timeout_seconds #=> Integer
1592
+ # resp.workflow.steps[0].custom_step_details.source_file_location #=> String
1597
1593
  # resp.workflow.steps[0].delete_step_details.name #=> String
1594
+ # resp.workflow.steps[0].delete_step_details.source_file_location #=> String
1598
1595
  # resp.workflow.steps[0].tag_step_details.name #=> String
1599
1596
  # resp.workflow.steps[0].tag_step_details.tags #=> Array
1600
1597
  # resp.workflow.steps[0].tag_step_details.tags[0].key #=> String
1601
1598
  # resp.workflow.steps[0].tag_step_details.tags[0].value #=> String
1599
+ # resp.workflow.steps[0].tag_step_details.source_file_location #=> String
1602
1600
  # resp.workflow.on_exception_steps #=> Array
1603
1601
  # resp.workflow.on_exception_steps[0].type #=> String, one of "COPY", "CUSTOM", "TAG", "DELETE"
1604
1602
  # resp.workflow.on_exception_steps[0].copy_step_details.name #=> String
@@ -1607,14 +1605,18 @@ module Aws::Transfer
1607
1605
  # resp.workflow.on_exception_steps[0].copy_step_details.destination_file_location.efs_file_location.file_system_id #=> String
1608
1606
  # resp.workflow.on_exception_steps[0].copy_step_details.destination_file_location.efs_file_location.path #=> String
1609
1607
  # resp.workflow.on_exception_steps[0].copy_step_details.overwrite_existing #=> String, one of "TRUE", "FALSE"
1608
+ # resp.workflow.on_exception_steps[0].copy_step_details.source_file_location #=> String
1610
1609
  # resp.workflow.on_exception_steps[0].custom_step_details.name #=> String
1611
1610
  # resp.workflow.on_exception_steps[0].custom_step_details.target #=> String
1612
1611
  # resp.workflow.on_exception_steps[0].custom_step_details.timeout_seconds #=> Integer
1612
+ # resp.workflow.on_exception_steps[0].custom_step_details.source_file_location #=> String
1613
1613
  # resp.workflow.on_exception_steps[0].delete_step_details.name #=> String
1614
+ # resp.workflow.on_exception_steps[0].delete_step_details.source_file_location #=> String
1614
1615
  # resp.workflow.on_exception_steps[0].tag_step_details.name #=> String
1615
1616
  # resp.workflow.on_exception_steps[0].tag_step_details.tags #=> Array
1616
1617
  # resp.workflow.on_exception_steps[0].tag_step_details.tags[0].key #=> String
1617
1618
  # resp.workflow.on_exception_steps[0].tag_step_details.tags[0].value #=> String
1619
+ # resp.workflow.on_exception_steps[0].tag_step_details.source_file_location #=> String
1618
1620
  # resp.workflow.workflow_id #=> String
1619
1621
  # resp.workflow.tags #=> Array
1620
1622
  # resp.workflow.tags[0].key #=> String
@@ -2344,17 +2346,6 @@ module Aws::Transfer
2344
2346
  #
2345
2347
  # `[ \{ "Entry:": "/", "Target": "/bucket_name/home/mydirectory" \} ]`
2346
2348
  #
2347
- # <note markdown="1"> If the target of a logical directory entry does not exist in Amazon S3
2348
- # or EFS, the entry is ignored. As a workaround, you can use the Amazon
2349
- # S3 API or EFS API to create 0 byte objects as place holders for your
2350
- # directory. If using the CLI, use the `s3api` or `efsapi` call instead
2351
- # of `s3` or `efs` so you can use the put-object operation. For example,
2352
- # you use the following: `aws s3api put-object --bucket bucketname --key
2353
- # path/to/folder/`. Make sure that the end of the key name ends in a `/`
2354
- # for it to be considered a folder.
2355
- #
2356
- # </note>
2357
- #
2358
2349
  # @option params [String] :policy
2359
2350
  # A session policy for your user so that you can use the same IAM role
2360
2351
  # across multiple users. This policy scopes down user access to portions
@@ -2728,17 +2719,6 @@ module Aws::Transfer
2728
2719
  #
2729
2720
  # `[ \{ "Entry:": "/", "Target": "/bucket_name/home/mydirectory" \} ]`
2730
2721
  #
2731
- # <note markdown="1"> If the target of a logical directory entry does not exist in Amazon S3
2732
- # or EFS, the entry is ignored. As a workaround, you can use the Amazon
2733
- # S3 API or EFS API to create 0 byte objects as place holders for your
2734
- # directory. If using the CLI, use the `s3api` or `efsapi` call instead
2735
- # of `s3` or `efs` so you can use the put-object operation. For example,
2736
- # you use the following: `aws s3api put-object --bucket bucketname --key
2737
- # path/to/folder/`. Make sure that the end of the key name ends in a `/`
2738
- # for it to be considered a folder.
2739
- #
2740
- # </note>
2741
- #
2742
2722
  # @option params [String] :policy
2743
2723
  # A session policy for your user so that you can use the same IAM role
2744
2724
  # across multiple users. This policy scopes down user access to portions
@@ -2850,14 +2830,129 @@ module Aws::Transfer
2850
2830
  params: params,
2851
2831
  config: config)
2852
2832
  context[:gem_name] = 'aws-sdk-transfer'
2853
- context[:gem_version] = '1.47.0'
2833
+ context[:gem_version] = '1.50.0'
2854
2834
  Seahorse::Client::Request.new(handlers, context)
2855
2835
  end
2856
2836
 
2837
+ # Polls an API operation until a resource enters a desired state.
2838
+ #
2839
+ # ## Basic Usage
2840
+ #
2841
+ # A waiter will call an API operation until:
2842
+ #
2843
+ # * It is successful
2844
+ # * It enters a terminal state
2845
+ # * It makes the maximum number of attempts
2846
+ #
2847
+ # In between attempts, the waiter will sleep.
2848
+ #
2849
+ # # polls in a loop, sleeping between attempts
2850
+ # client.wait_until(waiter_name, params)
2851
+ #
2852
+ # ## Configuration
2853
+ #
2854
+ # You can configure the maximum number of polling attempts, and the
2855
+ # delay (in seconds) between each polling attempt. You can pass
2856
+ # configuration as the final arguments hash.
2857
+ #
2858
+ # # poll for ~25 seconds
2859
+ # client.wait_until(waiter_name, params, {
2860
+ # max_attempts: 5,
2861
+ # delay: 5,
2862
+ # })
2863
+ #
2864
+ # ## Callbacks
2865
+ #
2866
+ # You can be notified before each polling attempt and before each
2867
+ # delay. If you throw `:success` or `:failure` from these callbacks,
2868
+ # it will terminate the waiter.
2869
+ #
2870
+ # started_at = Time.now
2871
+ # client.wait_until(waiter_name, params, {
2872
+ #
2873
+ # # disable max attempts
2874
+ # max_attempts: nil,
2875
+ #
2876
+ # # poll for 1 hour, instead of a number of attempts
2877
+ # before_wait: -> (attempts, response) do
2878
+ # throw :failure if Time.now - started_at > 3600
2879
+ # end
2880
+ # })
2881
+ #
2882
+ # ## Handling Errors
2883
+ #
2884
+ # When a waiter is unsuccessful, it will raise an error.
2885
+ # All of the failure errors extend from
2886
+ # {Aws::Waiters::Errors::WaiterFailed}.
2887
+ #
2888
+ # begin
2889
+ # client.wait_until(...)
2890
+ # rescue Aws::Waiters::Errors::WaiterFailed
2891
+ # # resource did not enter the desired state in time
2892
+ # end
2893
+ #
2894
+ # ## Valid Waiters
2895
+ #
2896
+ # The following table lists the valid waiter names, the operations they call,
2897
+ # and the default `:delay` and `:max_attempts` values.
2898
+ #
2899
+ # | waiter_name | params | :delay | :max_attempts |
2900
+ # | -------------- | ------------------------ | -------- | ------------- |
2901
+ # | server_offline | {Client#describe_server} | 30 | 120 |
2902
+ # | server_online | {Client#describe_server} | 30 | 120 |
2903
+ #
2904
+ # @raise [Errors::FailureStateError] Raised when the waiter terminates
2905
+ # because the waiter has entered a state that it will not transition
2906
+ # out of, preventing success.
2907
+ #
2908
+ # @raise [Errors::TooManyAttemptsError] Raised when the configured
2909
+ # maximum number of attempts have been made, and the waiter is not
2910
+ # yet successful.
2911
+ #
2912
+ # @raise [Errors::UnexpectedError] Raised when an error is encounted
2913
+ # while polling for a resource that is not expected.
2914
+ #
2915
+ # @raise [Errors::NoSuchWaiterError] Raised when you request to wait
2916
+ # for an unknown state.
2917
+ #
2918
+ # @return [Boolean] Returns `true` if the waiter was successful.
2919
+ # @param [Symbol] waiter_name
2920
+ # @param [Hash] params ({})
2921
+ # @param [Hash] options ({})
2922
+ # @option options [Integer] :max_attempts
2923
+ # @option options [Integer] :delay
2924
+ # @option options [Proc] :before_attempt
2925
+ # @option options [Proc] :before_wait
2926
+ def wait_until(waiter_name, params = {}, options = {})
2927
+ w = waiter(waiter_name, options)
2928
+ yield(w.waiter) if block_given? # deprecated
2929
+ w.wait(params)
2930
+ end
2931
+
2857
2932
  # @api private
2858
2933
  # @deprecated
2859
2934
  def waiter_names
2860
- []
2935
+ waiters.keys
2936
+ end
2937
+
2938
+ private
2939
+
2940
+ # @param [Symbol] waiter_name
2941
+ # @param [Hash] options ({})
2942
+ def waiter(waiter_name, options = {})
2943
+ waiter_class = waiters[waiter_name]
2944
+ if waiter_class
2945
+ waiter_class.new(options.merge(client: self))
2946
+ else
2947
+ raise Aws::Waiters::Errors::NoSuchWaiterError.new(waiter_name, waiters.keys)
2948
+ end
2949
+ end
2950
+
2951
+ def waiters
2952
+ {
2953
+ server_offline: Waiters::ServerOffline,
2954
+ server_online: Waiters::ServerOnline
2955
+ }
2861
2956
  end
2862
2957
 
2863
2958
  class << self
@@ -165,6 +165,7 @@ module Aws::Transfer
165
165
  ServiceMetadata = Shapes::StructureShape.new(name: 'ServiceMetadata')
166
166
  ServiceUnavailableException = Shapes::StructureShape.new(name: 'ServiceUnavailableException')
167
167
  SessionId = Shapes::StringShape.new(name: 'SessionId')
168
+ SourceFileLocation = Shapes::StringShape.new(name: 'SourceFileLocation')
168
169
  SourceIp = Shapes::StringShape.new(name: 'SourceIp')
169
170
  SshPublicKey = Shapes::StructureShape.new(name: 'SshPublicKey')
170
171
  SshPublicKeyBody = Shapes::StringShape.new(name: 'SshPublicKeyBody')
@@ -223,6 +224,7 @@ module Aws::Transfer
223
224
  CopyStepDetails.add_member(:name, Shapes::ShapeRef.new(shape: WorkflowStepName, location_name: "Name"))
224
225
  CopyStepDetails.add_member(:destination_file_location, Shapes::ShapeRef.new(shape: InputFileLocation, location_name: "DestinationFileLocation"))
225
226
  CopyStepDetails.add_member(:overwrite_existing, Shapes::ShapeRef.new(shape: OverwriteExisting, location_name: "OverwriteExisting"))
227
+ CopyStepDetails.add_member(:source_file_location, Shapes::ShapeRef.new(shape: SourceFileLocation, location_name: "SourceFileLocation"))
226
228
  CopyStepDetails.struct_class = Types::CopyStepDetails
227
229
 
228
230
  CreateAccessRequest.add_member(:home_directory, Shapes::ShapeRef.new(shape: HomeDirectory, location_name: "HomeDirectory"))
@@ -287,6 +289,7 @@ module Aws::Transfer
287
289
  CustomStepDetails.add_member(:name, Shapes::ShapeRef.new(shape: WorkflowStepName, location_name: "Name"))
288
290
  CustomStepDetails.add_member(:target, Shapes::ShapeRef.new(shape: CustomStepTarget, location_name: "Target"))
289
291
  CustomStepDetails.add_member(:timeout_seconds, Shapes::ShapeRef.new(shape: CustomStepTimeoutSeconds, location_name: "TimeoutSeconds"))
292
+ CustomStepDetails.add_member(:source_file_location, Shapes::ShapeRef.new(shape: SourceFileLocation, location_name: "SourceFileLocation"))
290
293
  CustomStepDetails.struct_class = Types::CustomStepDetails
291
294
 
292
295
  DeleteAccessRequest.add_member(:server_id, Shapes::ShapeRef.new(shape: ServerId, required: true, location_name: "ServerId"))
@@ -302,6 +305,7 @@ module Aws::Transfer
302
305
  DeleteSshPublicKeyRequest.struct_class = Types::DeleteSshPublicKeyRequest
303
306
 
304
307
  DeleteStepDetails.add_member(:name, Shapes::ShapeRef.new(shape: WorkflowStepName, location_name: "Name"))
308
+ DeleteStepDetails.add_member(:source_file_location, Shapes::ShapeRef.new(shape: SourceFileLocation, location_name: "SourceFileLocation"))
305
309
  DeleteStepDetails.struct_class = Types::DeleteStepDetails
306
310
 
307
311
  DeleteUserRequest.add_member(:server_id, Shapes::ShapeRef.new(shape: ServerId, required: true, location_name: "ServerId"))
@@ -687,6 +691,7 @@ module Aws::Transfer
687
691
 
688
692
  TagStepDetails.add_member(:name, Shapes::ShapeRef.new(shape: WorkflowStepName, location_name: "Name"))
689
693
  TagStepDetails.add_member(:tags, Shapes::ShapeRef.new(shape: S3Tags, location_name: "Tags"))
694
+ TagStepDetails.add_member(:source_file_location, Shapes::ShapeRef.new(shape: SourceFileLocation, location_name: "SourceFileLocation"))
690
695
  TagStepDetails.struct_class = Types::TagStepDetails
691
696
 
692
697
  Tags.member = Shapes::ShapeRef.new(shape: Tag)
@@ -56,6 +56,7 @@ module Aws::Transfer
56
56
  # },
57
57
  # },
58
58
  # overwrite_existing: "TRUE", # accepts TRUE, FALSE
59
+ # source_file_location: "SourceFileLocation",
59
60
  # }
60
61
  #
61
62
  # @!attribute [rw] name
@@ -64,7 +65,8 @@ module Aws::Transfer
64
65
  #
65
66
  # @!attribute [rw] destination_file_location
66
67
  # Specifies the location for the file being copied. Only applicable
67
- # for the Copy type of workflow steps.
68
+ # for Copy type workflow steps. Use `$\{Transfer:username\}` in this
69
+ # field to parametrize the destination prefix by username.
68
70
  # @return [Types::InputFileLocation]
69
71
  #
70
72
  # @!attribute [rw] overwrite_existing
@@ -72,12 +74,26 @@ module Aws::Transfer
72
74
  # of the same name. The default is `FALSE`.
73
75
  # @return [String]
74
76
  #
77
+ # @!attribute [rw] source_file_location
78
+ # Specifies which file to use as input to the workflow step: either
79
+ # the output from the previous step, or the originally uploaded file
80
+ # for the workflow.
81
+ #
82
+ # * Enter `$\{previous.file\}` to use the previous file as the input.
83
+ # In this case, this workflow step uses the output file from the
84
+ # previous workflow step as input. This is the default value.
85
+ #
86
+ # * Enter `$\{original.file\}` to use the originally-uploaded file
87
+ # location as input for this step.
88
+ # @return [String]
89
+ #
75
90
  # @see http://docs.aws.amazon.com/goto/WebAPI/transfer-2018-11-05/CopyStepDetails AWS API Documentation
76
91
  #
77
92
  class CopyStepDetails < Struct.new(
78
93
  :name,
79
94
  :destination_file_location,
80
- :overwrite_existing)
95
+ :overwrite_existing,
96
+ :source_file_location)
81
97
  SENSITIVE = []
82
98
  include Aws::Structure
83
99
  end
@@ -146,17 +162,6 @@ module Aws::Transfer
146
162
  # The following is an `Entry` and `Target` pair example for `chroot`.
147
163
  #
148
164
  # `[ \{ "Entry:": "/", "Target": "/bucket_name/home/mydirectory" \} ]`
149
- #
150
- # <note markdown="1"> If the target of a logical directory entry does not exist in Amazon
151
- # S3 or EFS, the entry is ignored. As a workaround, you can use the
152
- # Amazon S3 API or EFS API to create 0 byte objects as place holders
153
- # for your directory. If using the CLI, use the `s3api` or `efsapi`
154
- # call instead of `s3` or `efs` so you can use the put-object
155
- # operation. For example, you use the following: `aws s3api put-object
156
- # --bucket bucketname --key path/to/folder/`. Make sure that the end
157
- # of the key name ends in a `/` for it to be considered a folder.
158
- #
159
- # </note>
160
165
  # @return [Array<Types::HomeDirectoryMapEntry>]
161
166
  #
162
167
  # @!attribute [rw] policy
@@ -627,17 +632,6 @@ module Aws::Transfer
627
632
  # The following is an `Entry` and `Target` pair example for `chroot`.
628
633
  #
629
634
  # `[ \{ "Entry:": "/", "Target": "/bucket_name/home/mydirectory" \} ]`
630
- #
631
- # <note markdown="1"> If the target of a logical directory entry does not exist in Amazon
632
- # S3 or EFS, the entry is ignored. As a workaround, you can use the
633
- # Amazon S3 API or EFS API to create 0 byte objects as place holders
634
- # for your directory. If using the CLI, use the `s3api` or `efsapi`
635
- # call instead of `s3` or `efs` so you can use the put-object
636
- # operation. For example, you use the following: `aws s3api put-object
637
- # --bucket bucketname --key path/to/folder/`. Make sure that the end
638
- # of the key name ends in a `/` for it to be considered a folder.
639
- #
640
- # </note>
641
635
  # @return [Array<Types::HomeDirectoryMapEntry>]
642
636
  #
643
637
  # @!attribute [rw] policy
@@ -772,14 +766,17 @@ module Aws::Transfer
772
766
  # },
773
767
  # },
774
768
  # overwrite_existing: "TRUE", # accepts TRUE, FALSE
769
+ # source_file_location: "SourceFileLocation",
775
770
  # },
776
771
  # custom_step_details: {
777
772
  # name: "WorkflowStepName",
778
773
  # target: "CustomStepTarget",
779
774
  # timeout_seconds: 1,
775
+ # source_file_location: "SourceFileLocation",
780
776
  # },
781
777
  # delete_step_details: {
782
778
  # name: "WorkflowStepName",
779
+ # source_file_location: "SourceFileLocation",
783
780
  # },
784
781
  # tag_step_details: {
785
782
  # name: "WorkflowStepName",
@@ -789,6 +786,7 @@ module Aws::Transfer
789
786
  # value: "S3TagValue", # required
790
787
  # },
791
788
  # ],
789
+ # source_file_location: "SourceFileLocation",
792
790
  # },
793
791
  # },
794
792
  # ],
@@ -808,14 +806,17 @@ module Aws::Transfer
808
806
  # },
809
807
  # },
810
808
  # overwrite_existing: "TRUE", # accepts TRUE, FALSE
809
+ # source_file_location: "SourceFileLocation",
811
810
  # },
812
811
  # custom_step_details: {
813
812
  # name: "WorkflowStepName",
814
813
  # target: "CustomStepTarget",
815
814
  # timeout_seconds: 1,
815
+ # source_file_location: "SourceFileLocation",
816
816
  # },
817
817
  # delete_step_details: {
818
818
  # name: "WorkflowStepName",
819
+ # source_file_location: "SourceFileLocation",
819
820
  # },
820
821
  # tag_step_details: {
821
822
  # name: "WorkflowStepName",
@@ -825,6 +826,7 @@ module Aws::Transfer
825
826
  # value: "S3TagValue", # required
826
827
  # },
827
828
  # ],
829
+ # source_file_location: "SourceFileLocation",
828
830
  # },
829
831
  # },
830
832
  # ],
@@ -912,6 +914,7 @@ module Aws::Transfer
912
914
  # name: "WorkflowStepName",
913
915
  # target: "CustomStepTarget",
914
916
  # timeout_seconds: 1,
917
+ # source_file_location: "SourceFileLocation",
915
918
  # }
916
919
  #
917
920
  # @!attribute [rw] name
@@ -926,12 +929,26 @@ module Aws::Transfer
926
929
  # Timeout, in seconds, for the step.
927
930
  # @return [Integer]
928
931
  #
932
+ # @!attribute [rw] source_file_location
933
+ # Specifies which file to use as input to the workflow step: either
934
+ # the output from the previous step, or the originally uploaded file
935
+ # for the workflow.
936
+ #
937
+ # * Enter `$\{previous.file\}` to use the previous file as the input.
938
+ # In this case, this workflow step uses the output file from the
939
+ # previous workflow step as input. This is the default value.
940
+ #
941
+ # * Enter `$\{original.file\}` to use the originally-uploaded file
942
+ # location as input for this step.
943
+ # @return [String]
944
+ #
929
945
  # @see http://docs.aws.amazon.com/goto/WebAPI/transfer-2018-11-05/CustomStepDetails AWS API Documentation
930
946
  #
931
947
  class CustomStepDetails < Struct.new(
932
948
  :name,
933
949
  :target,
934
- :timeout_seconds)
950
+ :timeout_seconds,
951
+ :source_file_location)
935
952
  SENSITIVE = []
936
953
  include Aws::Structure
937
954
  end
@@ -1037,16 +1054,31 @@ module Aws::Transfer
1037
1054
  #
1038
1055
  # {
1039
1056
  # name: "WorkflowStepName",
1057
+ # source_file_location: "SourceFileLocation",
1040
1058
  # }
1041
1059
  #
1042
1060
  # @!attribute [rw] name
1043
1061
  # The name of the step, used as an identifier.
1044
1062
  # @return [String]
1045
1063
  #
1064
+ # @!attribute [rw] source_file_location
1065
+ # Specifies which file to use as input to the workflow step: either
1066
+ # the output from the previous step, or the originally uploaded file
1067
+ # for the workflow.
1068
+ #
1069
+ # * Enter `$\{previous.file\}` to use the previous file as the input.
1070
+ # In this case, this workflow step uses the output file from the
1071
+ # previous workflow step as input. This is the default value.
1072
+ #
1073
+ # * Enter `$\{original.file\}` to use the originally-uploaded file
1074
+ # location as input for this step.
1075
+ # @return [String]
1076
+ #
1046
1077
  # @see http://docs.aws.amazon.com/goto/WebAPI/transfer-2018-11-05/DeleteStepDetails AWS API Documentation
1047
1078
  #
1048
1079
  class DeleteStepDetails < Struct.new(
1049
- :name)
1080
+ :name,
1081
+ :source_file_location)
1050
1082
  SENSITIVE = []
1051
1083
  include Aws::Structure
1052
1084
  end
@@ -2099,17 +2131,6 @@ module Aws::Transfer
2099
2131
  #
2100
2132
  # `[ \{ "Entry:": "/", "Target": "/bucket_name/home/mydirectory" \} ]`
2101
2133
  #
2102
- # <note markdown="1"> If the target of a logical directory entry does not exist in Amazon S3
2103
- # or EFS, the entry is ignored. As a workaround, you can use the Amazon
2104
- # S3 API or EFS API to create 0 byte objects as place holders for your
2105
- # directory. If using the CLI, use the `s3api` or `efsapi` call instead
2106
- # of `s3` or `efs` so you can use the put-object operation. For example,
2107
- # you use the following: `aws s3api put-object --bucket bucketname --key
2108
- # path/to/folder/`. Make sure that the end of the key name ends in a `/`
2109
- # for it to be considered a folder.
2110
- #
2111
- # </note>
2112
- #
2113
2134
  # @note When making an API call, you may pass HomeDirectoryMapEntry
2114
2135
  # data as a hash:
2115
2136
  #
@@ -3514,6 +3535,7 @@ module Aws::Transfer
3514
3535
  # value: "S3TagValue", # required
3515
3536
  # },
3516
3537
  # ],
3538
+ # source_file_location: "SourceFileLocation",
3517
3539
  # }
3518
3540
  #
3519
3541
  # @!attribute [rw] name
@@ -3524,11 +3546,25 @@ module Aws::Transfer
3524
3546
  # Array that contains from 1 to 10 key/value pairs.
3525
3547
  # @return [Array<Types::S3Tag>]
3526
3548
  #
3549
+ # @!attribute [rw] source_file_location
3550
+ # Specifies which file to use as input to the workflow step: either
3551
+ # the output from the previous step, or the originally uploaded file
3552
+ # for the workflow.
3553
+ #
3554
+ # * Enter `$\{previous.file\}` to use the previous file as the input.
3555
+ # In this case, this workflow step uses the output file from the
3556
+ # previous workflow step as input. This is the default value.
3557
+ #
3558
+ # * Enter `$\{original.file\}` to use the originally-uploaded file
3559
+ # location as input for this step.
3560
+ # @return [String]
3561
+ #
3527
3562
  # @see http://docs.aws.amazon.com/goto/WebAPI/transfer-2018-11-05/TagStepDetails AWS API Documentation
3528
3563
  #
3529
3564
  class TagStepDetails < Struct.new(
3530
3565
  :name,
3531
- :tags)
3566
+ :tags,
3567
+ :source_file_location)
3532
3568
  SENSITIVE = []
3533
3569
  include Aws::Structure
3534
3570
  end
@@ -3595,6 +3631,11 @@ module Aws::Transfer
3595
3631
  #
3596
3632
  # @!attribute [rw] message
3597
3633
  # A message that indicates whether the test was successful or not.
3634
+ #
3635
+ # <note markdown="1"> If an empty string is returned, the most likely cause is that the
3636
+ # authentication failed due to an incorrect username or password.
3637
+ #
3638
+ # </note>
3598
3639
  # @return [String]
3599
3640
  #
3600
3641
  # @!attribute [rw] url
@@ -3720,17 +3761,6 @@ module Aws::Transfer
3720
3761
  # The following is an `Entry` and `Target` pair example for `chroot`.
3721
3762
  #
3722
3763
  # `[ \{ "Entry:": "/", "Target": "/bucket_name/home/mydirectory" \} ]`
3723
- #
3724
- # <note markdown="1"> If the target of a logical directory entry does not exist in Amazon
3725
- # S3 or EFS, the entry is ignored. As a workaround, you can use the
3726
- # Amazon S3 API or EFS API to create 0 byte objects as place holders
3727
- # for your directory. If using the CLI, use the `s3api` or `efsapi`
3728
- # call instead of `s3` or `efs` so you can use the put-object
3729
- # operation. For example, you use the following: `aws s3api put-object
3730
- # --bucket bucketname --key path/to/folder/`. Make sure that the end
3731
- # of the key name ends in a `/` for it to be considered a folder.
3732
- #
3733
- # </note>
3734
3764
  # @return [Array<Types::HomeDirectoryMapEntry>]
3735
3765
  #
3736
3766
  # @!attribute [rw] policy
@@ -4149,17 +4179,6 @@ module Aws::Transfer
4149
4179
  # The following is an `Entry` and `Target` pair example for `chroot`.
4150
4180
  #
4151
4181
  # `[ \{ "Entry:": "/", "Target": "/bucket_name/home/mydirectory" \} ]`
4152
- #
4153
- # <note markdown="1"> If the target of a logical directory entry does not exist in Amazon
4154
- # S3 or EFS, the entry is ignored. As a workaround, you can use the
4155
- # Amazon S3 API or EFS API to create 0 byte objects as place holders
4156
- # for your directory. If using the CLI, use the `s3api` or `efsapi`
4157
- # call instead of `s3` or `efs` so you can use the put-object
4158
- # operation. For example, you use the following: `aws s3api put-object
4159
- # --bucket bucketname --key path/to/folder/`. Make sure that the end
4160
- # of the key name ends in a `/` for it to be considered a folder.
4161
- #
4162
- # </note>
4163
4182
  # @return [Array<Types::HomeDirectoryMapEntry>]
4164
4183
  #
4165
4184
  # @!attribute [rw] policy
@@ -4368,14 +4387,17 @@ module Aws::Transfer
4368
4387
  # },
4369
4388
  # },
4370
4389
  # overwrite_existing: "TRUE", # accepts TRUE, FALSE
4390
+ # source_file_location: "SourceFileLocation",
4371
4391
  # },
4372
4392
  # custom_step_details: {
4373
4393
  # name: "WorkflowStepName",
4374
4394
  # target: "CustomStepTarget",
4375
4395
  # timeout_seconds: 1,
4396
+ # source_file_location: "SourceFileLocation",
4376
4397
  # },
4377
4398
  # delete_step_details: {
4378
4399
  # name: "WorkflowStepName",
4400
+ # source_file_location: "SourceFileLocation",
4379
4401
  # },
4380
4402
  # tag_step_details: {
4381
4403
  # name: "WorkflowStepName",
@@ -4385,6 +4407,7 @@ module Aws::Transfer
4385
4407
  # value: "S3TagValue", # required
4386
4408
  # },
4387
4409
  # ],
4410
+ # source_file_location: "SourceFileLocation",
4388
4411
  # },
4389
4412
  # }
4390
4413
  #
@@ -0,0 +1,165 @@
1
+ # frozen_string_literal: true
2
+
3
+ # WARNING ABOUT GENERATED CODE
4
+ #
5
+ # This file is generated. See the contributing guide for more information:
6
+ # https://github.com/aws/aws-sdk-ruby/blob/version-3/CONTRIBUTING.md
7
+ #
8
+ # WARNING ABOUT GENERATED CODE
9
+
10
+ require 'aws-sdk-core/waiters'
11
+
12
+ module Aws::Transfer
13
+ # Waiters are utility methods that poll for a particular state to occur
14
+ # on a client. Waiters can fail after a number of attempts at a polling
15
+ # interval defined for the service client.
16
+ #
17
+ # For a list of operations that can be waited for and the
18
+ # client methods called for each operation, see the table below or the
19
+ # {Client#wait_until} field documentation for the {Client}.
20
+ #
21
+ # # Invoking a Waiter
22
+ # To invoke a waiter, call #wait_until on a {Client}. The first parameter
23
+ # is the waiter name, which is specific to the service client and indicates
24
+ # which operation is being waited for. The second parameter is a hash of
25
+ # parameters that are passed to the client method called by the waiter,
26
+ # which varies according to the waiter name.
27
+ #
28
+ # # Wait Failures
29
+ # To catch errors in a waiter, use WaiterFailed,
30
+ # as shown in the following example.
31
+ #
32
+ # rescue rescue Aws::Waiters::Errors::WaiterFailed => error
33
+ # puts "failed waiting for instance running: #{error.message}
34
+ # end
35
+ #
36
+ # # Configuring a Waiter
37
+ # Each waiter has a default polling interval and a maximum number of
38
+ # attempts it will make before returning control to your program.
39
+ # To set these values, use the `max_attempts` and `delay` parameters
40
+ # in your `#wait_until` call.
41
+ # The following example waits for up to 25 seconds, polling every five seconds.
42
+ #
43
+ # client.wait_until(...) do |w|
44
+ # w.max_attempts = 5
45
+ # w.delay = 5
46
+ # end
47
+ #
48
+ # To disable wait failures, set the value of either of these parameters
49
+ # to `nil`.
50
+ #
51
+ # # Extending a Waiter
52
+ # To modify the behavior of waiters, you can register callbacks that are
53
+ # triggered before each polling attempt and before waiting.
54
+ #
55
+ # The following example implements an exponential backoff in a waiter
56
+ # by doubling the amount of time to wait on every attempt.
57
+ #
58
+ # client.wait_until(...) do |w|
59
+ # w.interval = 0 # disable normal sleep
60
+ # w.before_wait do |n, resp|
61
+ # sleep(n ** 2)
62
+ # end
63
+ # end
64
+ #
65
+ # # Available Waiters
66
+ #
67
+ # The following table lists the valid waiter names, the operations they call,
68
+ # and the default `:delay` and `:max_attempts` values.
69
+ #
70
+ # | waiter_name | params | :delay | :max_attempts |
71
+ # | -------------- | ------------------------ | -------- | ------------- |
72
+ # | server_offline | {Client#describe_server} | 30 | 120 |
73
+ # | server_online | {Client#describe_server} | 30 | 120 |
74
+ #
75
+ module Waiters
76
+
77
+ class ServerOffline
78
+
79
+ # @param [Hash] options
80
+ # @option options [required, Client] :client
81
+ # @option options [Integer] :max_attempts (120)
82
+ # @option options [Integer] :delay (30)
83
+ # @option options [Proc] :before_attempt
84
+ # @option options [Proc] :before_wait
85
+ def initialize(options)
86
+ @client = options.fetch(:client)
87
+ @waiter = Aws::Waiters::Waiter.new({
88
+ max_attempts: 120,
89
+ delay: 30,
90
+ poller: Aws::Waiters::Poller.new(
91
+ operation_name: :describe_server,
92
+ acceptors: [
93
+ {
94
+ "argument" => "server.state",
95
+ "expected" => "OFFLINE",
96
+ "matcher" => "path",
97
+ "state" => "success"
98
+ },
99
+ {
100
+ "argument" => "server.state",
101
+ "expected" => "STOP_FAILED",
102
+ "matcher" => "path",
103
+ "state" => "failure"
104
+ }
105
+ ]
106
+ )
107
+ }.merge(options))
108
+ end
109
+
110
+ # @option (see Client#describe_server)
111
+ # @return (see Client#describe_server)
112
+ def wait(params = {})
113
+ @waiter.wait(client: @client, params: params)
114
+ end
115
+
116
+ # @api private
117
+ attr_reader :waiter
118
+
119
+ end
120
+
121
+ class ServerOnline
122
+
123
+ # @param [Hash] options
124
+ # @option options [required, Client] :client
125
+ # @option options [Integer] :max_attempts (120)
126
+ # @option options [Integer] :delay (30)
127
+ # @option options [Proc] :before_attempt
128
+ # @option options [Proc] :before_wait
129
+ def initialize(options)
130
+ @client = options.fetch(:client)
131
+ @waiter = Aws::Waiters::Waiter.new({
132
+ max_attempts: 120,
133
+ delay: 30,
134
+ poller: Aws::Waiters::Poller.new(
135
+ operation_name: :describe_server,
136
+ acceptors: [
137
+ {
138
+ "argument" => "server.state",
139
+ "expected" => "ONLINE",
140
+ "matcher" => "path",
141
+ "state" => "success"
142
+ },
143
+ {
144
+ "argument" => "server.state",
145
+ "expected" => "START_FAILED",
146
+ "matcher" => "path",
147
+ "state" => "failure"
148
+ }
149
+ ]
150
+ )
151
+ }.merge(options))
152
+ end
153
+
154
+ # @option (see Client#describe_server)
155
+ # @return (see Client#describe_server)
156
+ def wait(params = {})
157
+ @waiter.wait(client: @client, params: params)
158
+ end
159
+
160
+ # @api private
161
+ attr_reader :waiter
162
+
163
+ end
164
+ end
165
+ end
@@ -15,6 +15,7 @@ require_relative 'aws-sdk-transfer/types'
15
15
  require_relative 'aws-sdk-transfer/client_api'
16
16
  require_relative 'aws-sdk-transfer/client'
17
17
  require_relative 'aws-sdk-transfer/errors'
18
+ require_relative 'aws-sdk-transfer/waiters'
18
19
  require_relative 'aws-sdk-transfer/resource'
19
20
  require_relative 'aws-sdk-transfer/customizations'
20
21
 
@@ -48,6 +49,6 @@ require_relative 'aws-sdk-transfer/customizations'
48
49
  # @!group service
49
50
  module Aws::Transfer
50
51
 
51
- GEM_VERSION = '1.47.0'
52
+ GEM_VERSION = '1.50.0'
52
53
 
53
54
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: aws-sdk-transfer
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.47.0
4
+ version: 1.50.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Amazon Web Services
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2022-02-18 00:00:00.000000000 Z
11
+ date: 2022-03-04 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: aws-sdk-core
@@ -19,7 +19,7 @@ dependencies:
19
19
  version: '3'
20
20
  - - ">="
21
21
  - !ruby/object:Gem::Version
22
- version: 3.126.0
22
+ version: 3.127.0
23
23
  type: :runtime
24
24
  prerelease: false
25
25
  version_requirements: !ruby/object:Gem::Requirement
@@ -29,7 +29,7 @@ dependencies:
29
29
  version: '3'
30
30
  - - ">="
31
31
  - !ruby/object:Gem::Version
32
- version: 3.126.0
32
+ version: 3.127.0
33
33
  - !ruby/object:Gem::Dependency
34
34
  name: aws-sigv4
35
35
  requirement: !ruby/object:Gem::Requirement
@@ -62,6 +62,7 @@ files:
62
62
  - lib/aws-sdk-transfer/errors.rb
63
63
  - lib/aws-sdk-transfer/resource.rb
64
64
  - lib/aws-sdk-transfer/types.rb
65
+ - lib/aws-sdk-transfer/waiters.rb
65
66
  homepage: https://github.com/aws/aws-sdk-ruby
66
67
  licenses:
67
68
  - Apache-2.0