aws-sdk-lambda 1.92.0 → 1.94.0

Sign up to get free protection for your applications and to get access to all the features.
@@ -32,6 +32,7 @@ require 'aws-sdk-core/plugins/defaults_mode.rb'
32
32
  require 'aws-sdk-core/plugins/recursion_detection.rb'
33
33
  require 'aws-sdk-core/plugins/sign.rb'
34
34
  require 'aws-sdk-core/plugins/protocols/rest_json.rb'
35
+ require 'aws-sdk-core/plugins/event_stream_configuration.rb'
35
36
 
36
37
  Aws::Plugins::GlobalConfiguration.add_identifier(:lambda)
37
38
 
@@ -81,6 +82,7 @@ module Aws::Lambda
81
82
  add_plugin(Aws::Plugins::RecursionDetection)
82
83
  add_plugin(Aws::Plugins::Sign)
83
84
  add_plugin(Aws::Plugins::Protocols::RestJson)
85
+ add_plugin(Aws::Plugins::EventStreamConfiguration)
84
86
  add_plugin(Aws::Lambda::Plugins::Endpoints)
85
87
 
86
88
  # @overload initialize(options)
@@ -210,6 +212,12 @@ module Aws::Lambda
210
212
  # @option options [Boolean] :endpoint_discovery (false)
211
213
  # When set to `true`, endpoint discovery will be enabled for operations when available.
212
214
  #
215
+ # @option options [Proc] :event_stream_handler
216
+ # When an EventStream or Proc object is provided, it will be used as callback for each chunk of event stream response received along the way.
217
+ #
218
+ # @option options [Proc] :input_event_stream_handler
219
+ # When an EventStream or Proc object is provided, it can be used for sending events for the event stream.
220
+ #
213
221
  # @option options [Aws::Log::Formatter] :log_formatter (Aws::Log::Formatter.default)
214
222
  # The log formatter.
215
223
  #
@@ -226,6 +234,9 @@ module Aws::Lambda
226
234
  # setting this value to 5 will result in a request being retried up to
227
235
  # 4 times. Used in `standard` and `adaptive` retry modes.
228
236
  #
237
+ # @option options [Proc] :output_event_stream_handler
238
+ # When an EventStream or Proc object is provided, it will be used as callback for each chunk of event stream response received along the way.
239
+ #
229
240
  # @option options [String] :profile ("default")
230
241
  # Used when loading credentials from the shared credentials file
231
242
  # at HOME/.aws/credentials. When not specified, 'default' is used.
@@ -730,6 +741,8 @@ module Aws::Lambda
730
741
  #
731
742
  # * [ Apache Kafka][6]
732
743
  #
744
+ # * [ Amazon DocumentDB][7]
745
+ #
733
746
  # The following error handling options are available only for stream
734
747
  # sources (DynamoDB and Kinesis):
735
748
  #
@@ -753,17 +766,19 @@ module Aws::Lambda
753
766
  # For information about which configuration parameters apply to each
754
767
  # event source, see the following topics.
755
768
  #
756
- # * [ Amazon DynamoDB Streams][7]
769
+ # * [ Amazon DynamoDB Streams][8]
770
+ #
771
+ # * [ Amazon Kinesis][9]
757
772
  #
758
- # * [ Amazon Kinesis][8]
773
+ # * [ Amazon SQS][10]
759
774
  #
760
- # * [ Amazon SQS][9]
775
+ # * [ Amazon MQ and RabbitMQ][11]
761
776
  #
762
- # * [ Amazon MQ and RabbitMQ][10]
777
+ # * [ Amazon MSK][12]
763
778
  #
764
- # * [ Amazon MSK][11]
779
+ # * [ Apache Kafka][13]
765
780
  #
766
- # * [ Apache Kafka][12]
781
+ # * [ Amazon DocumentDB][14]
767
782
  #
768
783
  #
769
784
  #
@@ -773,12 +788,14 @@ module Aws::Lambda
773
788
  # [4]: https://docs.aws.amazon.com/lambda/latest/dg/with-mq.html#services-mq-eventsourcemapping
774
789
  # [5]: https://docs.aws.amazon.com/lambda/latest/dg/with-msk.html
775
790
  # [6]: https://docs.aws.amazon.com/lambda/latest/dg/kafka-smaa.html
776
- # [7]: https://docs.aws.amazon.com/lambda/latest/dg/with-ddb.html#services-ddb-params
777
- # [8]: https://docs.aws.amazon.com/lambda/latest/dg/with-kinesis.html#services-kinesis-params
778
- # [9]: https://docs.aws.amazon.com/lambda/latest/dg/with-sqs.html#services-sqs-params
779
- # [10]: https://docs.aws.amazon.com/lambda/latest/dg/with-mq.html#services-mq-params
780
- # [11]: https://docs.aws.amazon.com/lambda/latest/dg/with-msk.html#services-msk-parms
781
- # [12]: https://docs.aws.amazon.com/lambda/latest/dg/with-kafka.html#services-kafka-parms
791
+ # [7]: https://docs.aws.amazon.com/lambda/latest/dg/with-documentdb.html
792
+ # [8]: https://docs.aws.amazon.com/lambda/latest/dg/with-ddb.html#services-ddb-params
793
+ # [9]: https://docs.aws.amazon.com/lambda/latest/dg/with-kinesis.html#services-kinesis-params
794
+ # [10]: https://docs.aws.amazon.com/lambda/latest/dg/with-sqs.html#services-sqs-params
795
+ # [11]: https://docs.aws.amazon.com/lambda/latest/dg/with-mq.html#services-mq-params
796
+ # [12]: https://docs.aws.amazon.com/lambda/latest/dg/with-msk.html#services-msk-parms
797
+ # [13]: https://docs.aws.amazon.com/lambda/latest/dg/with-kafka.html#services-kafka-parms
798
+ # [14]: https://docs.aws.amazon.com/lambda/latest/dg/with-documentdb.html#docdb-configuration
782
799
  #
783
800
  # @option params [String] :event_source_arn
784
801
  # The Amazon Resource Name (ARN) of the event source.
@@ -795,6 +812,8 @@ module Aws::Lambda
795
812
  #
796
813
  # * **Amazon MQ** – The ARN of the broker.
797
814
  #
815
+ # * **Amazon DocumentDB** – The ARN of the DocumentDB change stream.
816
+ #
798
817
  # @option params [required, String] :function_name
799
818
  # The name of the Lambda function.
800
819
  #
@@ -839,6 +858,8 @@ module Aws::Lambda
839
858
  #
840
859
  # * **Amazon MQ (ActiveMQ and RabbitMQ)** – Default 100. Max 10,000.
841
860
  #
861
+ # * **DocumentDB** – Default 100. Max 10,000.
862
+ #
842
863
  # @option params [Types::FilterCriteria] :filter_criteria
843
864
  # An object that defines the filter criteria that determine whether
844
865
  # Lambda should process an event. For more information, see [Lambda
@@ -855,10 +876,10 @@ module Aws::Lambda
855
876
  # seconds in increments of seconds.
856
877
  #
857
878
  # For streams and Amazon SQS event sources, the default batching window
858
- # is 0 seconds. For Amazon MSK, Self-managed Apache Kafka, and Amazon MQ
859
- # event sources, the default batching window is 500 ms. Note that
860
- # because you can only change `MaximumBatchingWindowInSeconds` in
861
- # increments of seconds, you cannot revert back to the 500 ms default
879
+ # is 0 seconds. For Amazon MSK, Self-managed Apache Kafka, Amazon MQ,
880
+ # and DocumentDB event sources, the default batching window is 500 ms.
881
+ # Note that because you can only change `MaximumBatchingWindowInSeconds`
882
+ # in increments of seconds, you cannot revert back to the 500 ms default
862
883
  # batching window after you have changed it. To restore the default
863
884
  # batching window, you must create a new event source mapping.
864
885
  #
@@ -867,38 +888,41 @@ module Aws::Lambda
867
888
  # `MaximumBatchingWindowInSeconds` to at least 1.
868
889
  #
869
890
  # @option params [Integer] :parallelization_factor
870
- # (Streams only) The number of batches to process from each shard
871
- # concurrently.
891
+ # (Kinesis and DynamoDB Streams only) The number of batches to process
892
+ # from each shard concurrently.
872
893
  #
873
894
  # @option params [String] :starting_position
874
895
  # The position in a stream from which to start reading. Required for
875
896
  # Amazon Kinesis, Amazon DynamoDB, and Amazon MSK Streams sources.
876
- # `AT_TIMESTAMP` is supported only for Amazon Kinesis streams.
897
+ # `AT_TIMESTAMP` is supported only for Amazon Kinesis streams and Amazon
898
+ # DocumentDB.
877
899
  #
878
900
  # @option params [Time,DateTime,Date,Integer,String] :starting_position_timestamp
879
901
  # With `StartingPosition` set to `AT_TIMESTAMP`, the time from which to
880
902
  # start reading.
881
903
  #
882
904
  # @option params [Types::DestinationConfig] :destination_config
883
- # (Streams only) An Amazon SQS queue or Amazon SNS topic destination for
884
- # discarded records.
905
+ # (Kinesis and DynamoDB Streams only) A standard Amazon SQS queue or
906
+ # standard Amazon SNS topic destination for discarded records.
885
907
  #
886
908
  # @option params [Integer] :maximum_record_age_in_seconds
887
- # (Streams only) Discard records older than the specified age. The
888
- # default value is infinite (-1).
909
+ # (Kinesis and DynamoDB Streams only) Discard records older than the
910
+ # specified age. The default value is infinite (-1).
889
911
  #
890
912
  # @option params [Boolean] :bisect_batch_on_function_error
891
- # (Streams only) If the function returns an error, split the batch in
892
- # two and retry.
913
+ # (Kinesis and DynamoDB Streams only) If the function returns an error,
914
+ # split the batch in two and retry.
893
915
  #
894
916
  # @option params [Integer] :maximum_retry_attempts
895
- # (Streams only) Discard records after the specified number of retries.
896
- # The default value is infinite (-1). When set to infinite (-1), failed
897
- # records are retried until the record expires.
917
+ # (Kinesis and DynamoDB Streams only) Discard records after the
918
+ # specified number of retries. The default value is infinite (-1). When
919
+ # set to infinite (-1), failed records are retried until the record
920
+ # expires.
898
921
  #
899
922
  # @option params [Integer] :tumbling_window_in_seconds
900
- # (Streams only) The duration in seconds of a processing window. The
901
- # range is between 1 second and 900 seconds.
923
+ # (Kinesis and DynamoDB Streams only) The duration in seconds of a
924
+ # processing window for DynamoDB and Kinesis Streams event sources. A
925
+ # value of 0 seconds indicates no tumbling window.
902
926
  #
903
927
  # @option params [Array<String>] :topics
904
928
  # The name of the Kafka topic.
@@ -914,8 +938,8 @@ module Aws::Lambda
914
938
  # The self-managed Apache Kafka cluster to receive records from.
915
939
  #
916
940
  # @option params [Array<String>] :function_response_types
917
- # (Streams and Amazon SQS) A list of current response type enums applied
918
- # to the event source mapping.
941
+ # (Kinesis, DynamoDB Streams, and Amazon SQS) A list of current response
942
+ # type enums applied to the event source mapping.
919
943
  #
920
944
  # @option params [Types::AmazonManagedKafkaEventSourceConfig] :amazon_managed_kafka_event_source_config
921
945
  # Specific configuration settings for an Amazon Managed Streaming for
@@ -1524,6 +1548,24 @@ module Aws::Lambda
1524
1548
  #
1525
1549
  # [1]: https://developer.mozilla.org/en-US/docs/Web/HTTP/CORS
1526
1550
  #
1551
+ # @option params [String] :invoke_mode
1552
+ # Use one of the following options:
1553
+ #
1554
+ # * `BUFFERED` – This is the default option. Lambda invokes your
1555
+ # function using the `Invoke` API operation. Invocation results are
1556
+ # available when the payload is complete. The maximum payload size is
1557
+ # 6 MB.
1558
+ #
1559
+ # * `RESPONSE_STREAM` – Your function streams payload results as they
1560
+ # become available. Lambda invokes your function using the
1561
+ # `InvokeWithResponseStream` API operation. The maximum response
1562
+ # payload size is 20 MB, however, you can [request a quota
1563
+ # increase][1].
1564
+ #
1565
+ #
1566
+ #
1567
+ # [1]: https://docs.aws.amazon.com/servicequotas/latest/userguide/request-quota-increase.html
1568
+ #
1527
1569
  # @return [Types::CreateFunctionUrlConfigResponse] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
1528
1570
  #
1529
1571
  # * {Types::CreateFunctionUrlConfigResponse#function_url #function_url} => String
@@ -1531,6 +1573,7 @@ module Aws::Lambda
1531
1573
  # * {Types::CreateFunctionUrlConfigResponse#auth_type #auth_type} => String
1532
1574
  # * {Types::CreateFunctionUrlConfigResponse#cors #cors} => Types::Cors
1533
1575
  # * {Types::CreateFunctionUrlConfigResponse#creation_time #creation_time} => Time
1576
+ # * {Types::CreateFunctionUrlConfigResponse#invoke_mode #invoke_mode} => String
1534
1577
  #
1535
1578
  # @example Request syntax with placeholder values
1536
1579
  #
@@ -1546,6 +1589,7 @@ module Aws::Lambda
1546
1589
  # expose_headers: ["Header"],
1547
1590
  # max_age: 1,
1548
1591
  # },
1592
+ # invoke_mode: "BUFFERED", # accepts BUFFERED, RESPONSE_STREAM
1549
1593
  # })
1550
1594
  #
1551
1595
  # @example Response structure
@@ -1564,6 +1608,7 @@ module Aws::Lambda
1564
1608
  # resp.cors.expose_headers[0] #=> String
1565
1609
  # resp.cors.max_age #=> Integer
1566
1610
  # resp.creation_time #=> Time
1611
+ # resp.invoke_mode #=> String, one of "BUFFERED", "RESPONSE_STREAM"
1567
1612
  #
1568
1613
  # @see http://docs.aws.amazon.com/goto/WebAPI/lambda-2015-03-31/CreateFunctionUrlConfig AWS API Documentation
1569
1614
  #
@@ -2669,6 +2714,7 @@ module Aws::Lambda
2669
2714
  # * {Types::GetFunctionUrlConfigResponse#cors #cors} => Types::Cors
2670
2715
  # * {Types::GetFunctionUrlConfigResponse#creation_time #creation_time} => Time
2671
2716
  # * {Types::GetFunctionUrlConfigResponse#last_modified_time #last_modified_time} => Time
2717
+ # * {Types::GetFunctionUrlConfigResponse#invoke_mode #invoke_mode} => String
2672
2718
  #
2673
2719
  # @example Request syntax with placeholder values
2674
2720
  #
@@ -2694,6 +2740,7 @@ module Aws::Lambda
2694
2740
  # resp.cors.max_age #=> Integer
2695
2741
  # resp.creation_time #=> Time
2696
2742
  # resp.last_modified_time #=> Time
2743
+ # resp.invoke_mode #=> String, one of "BUFFERED", "RESPONSE_STREAM"
2697
2744
  #
2698
2745
  # @see http://docs.aws.amazon.com/goto/WebAPI/lambda-2015-03-31/GetFunctionUrlConfig AWS API Documentation
2699
2746
  #
@@ -3210,6 +3257,220 @@ module Aws::Lambda
3210
3257
  req.send_request(options)
3211
3258
  end
3212
3259
 
3260
+ # Configure your Lambda functions to stream response payloads back to
3261
+ # clients. For more information, see [Configuring a Lambda function to
3262
+ # stream responses][1].
3263
+ #
3264
+ # This operation requires permission for the [lambda:InvokeFunction][2]
3265
+ # action. For details on how to set up permissions for cross-account
3266
+ # invocations, see [Granting function access to other accounts][3].
3267
+ #
3268
+ #
3269
+ #
3270
+ # [1]: https://docs.aws.amazon.com/lambda/latest/dg/configuration-response-streaming.html
3271
+ # [2]: https://docs.aws.amazon.com/IAM/latest/UserGuide/list_awslambda.html
3272
+ # [3]: https://docs.aws.amazon.com/lambda/latest/dg/access-control-resource-based.html#permissions-resource-xaccountinvoke
3273
+ #
3274
+ # @option params [required, String] :function_name
3275
+ # The name of the Lambda function.
3276
+ #
3277
+ # **Name formats**
3278
+ #
3279
+ # * **Function name** – `my-function`.
3280
+ #
3281
+ # * **Function ARN** –
3282
+ # `arn:aws:lambda:us-west-2:123456789012:function:my-function`.
3283
+ #
3284
+ # * **Partial ARN** – `123456789012:function:my-function`.
3285
+ #
3286
+ # The length constraint applies only to the full ARN. If you specify
3287
+ # only the function name, it is limited to 64 characters in length.
3288
+ #
3289
+ # @option params [String] :invocation_type
3290
+ # Use one of the following options:
3291
+ #
3292
+ # * `RequestResponse` (default) – Invoke the function synchronously.
3293
+ # Keep the connection open until the function returns a response or
3294
+ # times out. The API operation response includes the function response
3295
+ # and additional data.
3296
+ #
3297
+ # * `DryRun` – Validate parameter values and verify that the IAM user or
3298
+ # role has permission to invoke the function.
3299
+ #
3300
+ # @option params [String] :log_type
3301
+ # Set to `Tail` to include the execution log in the response. Applies to
3302
+ # synchronously invoked functions only.
3303
+ #
3304
+ # @option params [String] :client_context
3305
+ # Up to 3,583 bytes of base64-encoded data about the invoking client to
3306
+ # pass to the function in the context object.
3307
+ #
3308
+ # @option params [String] :qualifier
3309
+ # The alias name.
3310
+ #
3311
+ # @option params [String, StringIO, File] :payload
3312
+ # The JSON that you want to provide to your Lambda function as input.
3313
+ #
3314
+ # You can enter the JSON directly. For example, `--payload '\{ "key":
3315
+ # "value" \}'`. You can also specify a file path. For example,
3316
+ # `--payload file://payload.json`.
3317
+ #
3318
+ # @return [Types::InvokeWithResponseStreamResponse] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
3319
+ #
3320
+ # * {Types::InvokeWithResponseStreamResponse#status_code #status_code} => Integer
3321
+ # * {Types::InvokeWithResponseStreamResponse#executed_version #executed_version} => String
3322
+ # * {Types::InvokeWithResponseStreamResponse#event_stream #event_stream} => Types::InvokeWithResponseStreamResponseEvent
3323
+ # * {Types::InvokeWithResponseStreamResponse#response_stream_content_type #response_stream_content_type} => String
3324
+ #
3325
+ # @example EventStream Operation Example
3326
+ #
3327
+ # You can process event once it arrives immediately, or wait until
3328
+ # full response complete and iterate through eventstream enumerator.
3329
+ #
3330
+ # To interact with event immediately, you need to register #invoke_with_response_stream
3331
+ # with callbacks, callbacks can be register for specifc events or for all events,
3332
+ # callback for errors in the event stream is also available for register.
3333
+ #
3334
+ # Callbacks can be passed in by `:event_stream_handler` option or within block
3335
+ # statement attached to #invoke_with_response_stream call directly. Hybrid pattern of both
3336
+ # is also supported.
3337
+ #
3338
+ # `:event_stream_handler` option takes in either Proc object or
3339
+ # Aws::Lambda::EventStreams::InvokeWithResponseStreamResponseEvent object.
3340
+ #
3341
+ # Usage pattern a): callbacks with a block attached to #invoke_with_response_stream
3342
+ # Example for registering callbacks for all event types and error event
3343
+ #
3344
+ # client.invoke_with_response_stream( # params input# ) do |stream|
3345
+ # stream.on_error_event do |event|
3346
+ # # catch unmodeled error event in the stream
3347
+ # raise event
3348
+ # # => Aws::Errors::EventError
3349
+ # # event.event_type => :error
3350
+ # # event.error_code => String
3351
+ # # event.error_message => String
3352
+ # end
3353
+ #
3354
+ # stream.on_event do |event|
3355
+ # # process all events arrive
3356
+ # puts event.event_type
3357
+ # ...
3358
+ # end
3359
+ #
3360
+ # end
3361
+ #
3362
+ # Usage pattern b): pass in `:event_stream_handler` for #invoke_with_response_stream
3363
+ #
3364
+ # 1) create a Aws::Lambda::EventStreams::InvokeWithResponseStreamResponseEvent object
3365
+ # Example for registering callbacks with specific events
3366
+ #
3367
+ # handler = Aws::Lambda::EventStreams::InvokeWithResponseStreamResponseEvent.new
3368
+ # handler.on_payload_chunk_event do |event|
3369
+ # event # => Aws::Lambda::Types::PayloadChunk
3370
+ # end
3371
+ # handler.on_invoke_complete_event do |event|
3372
+ # event # => Aws::Lambda::Types::InvokeComplete
3373
+ # end
3374
+ #
3375
+ # client.invoke_with_response_stream( # params input #, event_stream_handler: handler)
3376
+ #
3377
+ # 2) use a Ruby Proc object
3378
+ # Example for registering callbacks with specific events
3379
+ #
3380
+ # handler = Proc.new do |stream|
3381
+ # stream.on_payload_chunk_event do |event|
3382
+ # event # => Aws::Lambda::Types::PayloadChunk
3383
+ # end
3384
+ # stream.on_invoke_complete_event do |event|
3385
+ # event # => Aws::Lambda::Types::InvokeComplete
3386
+ # end
3387
+ # end
3388
+ #
3389
+ # client.invoke_with_response_stream( # params input #, event_stream_handler: handler)
3390
+ #
3391
+ # Usage pattern c): hybird pattern of a) and b)
3392
+ #
3393
+ # handler = Aws::Lambda::EventStreams::InvokeWithResponseStreamResponseEvent.new
3394
+ # handler.on_payload_chunk_event do |event|
3395
+ # event # => Aws::Lambda::Types::PayloadChunk
3396
+ # end
3397
+ # handler.on_invoke_complete_event do |event|
3398
+ # event # => Aws::Lambda::Types::InvokeComplete
3399
+ # end
3400
+ #
3401
+ # client.invoke_with_response_stream( # params input #, event_stream_handler: handler) do |stream|
3402
+ # stream.on_error_event do |event|
3403
+ # # catch unmodeled error event in the stream
3404
+ # raise event
3405
+ # # => Aws::Errors::EventError
3406
+ # # event.event_type => :error
3407
+ # # event.error_code => String
3408
+ # # event.error_message => String
3409
+ # end
3410
+ # end
3411
+ #
3412
+ # Besides above usage patterns for process events when they arrive immediately, you can also
3413
+ # iterate through events after response complete.
3414
+ #
3415
+ # Events are available at resp.event_stream # => Enumerator
3416
+ # For parameter input example, please refer to following request syntax
3417
+ #
3418
+ # @example Request syntax with placeholder values
3419
+ #
3420
+ # resp = client.invoke_with_response_stream({
3421
+ # function_name: "NamespacedFunctionName", # required
3422
+ # invocation_type: "RequestResponse", # accepts RequestResponse, DryRun
3423
+ # log_type: "None", # accepts None, Tail
3424
+ # client_context: "String",
3425
+ # qualifier: "Qualifier",
3426
+ # payload: "data",
3427
+ # })
3428
+ #
3429
+ # @example Response structure
3430
+ #
3431
+ # resp.status_code #=> Integer
3432
+ # resp.executed_version #=> String
3433
+ # All events are available at resp.event_stream:
3434
+ # resp.event_stream #=> Enumerator
3435
+ # resp.event_stream.event_types #=> [:payload_chunk, :invoke_complete]
3436
+ #
3437
+ # For :payload_chunk event available at #on_payload_chunk_event callback and response eventstream enumerator:
3438
+ # event.payload #=> String
3439
+ #
3440
+ # For :invoke_complete event available at #on_invoke_complete_event callback and response eventstream enumerator:
3441
+ # event.error_code #=> String
3442
+ # event.error_details #=> String
3443
+ # event.log_result #=> String
3444
+ #
3445
+ # resp.response_stream_content_type #=> String
3446
+ #
3447
+ # @see http://docs.aws.amazon.com/goto/WebAPI/lambda-2015-03-31/InvokeWithResponseStream AWS API Documentation
3448
+ #
3449
+ # @overload invoke_with_response_stream(params = {})
3450
+ # @param [Hash] params ({})
3451
+ def invoke_with_response_stream(params = {}, options = {}, &block)
3452
+ params = params.dup
3453
+ event_stream_handler = case handler = params.delete(:event_stream_handler)
3454
+ when EventStreams::InvokeWithResponseStreamResponseEvent then handler
3455
+ when Proc then EventStreams::InvokeWithResponseStreamResponseEvent.new.tap(&handler)
3456
+ when nil then EventStreams::InvokeWithResponseStreamResponseEvent.new
3457
+ else
3458
+ msg = "expected :event_stream_handler to be a block or "\
3459
+ "instance of Aws::Lambda::EventStreams::InvokeWithResponseStreamResponseEvent"\
3460
+ ", got `#{handler.inspect}` instead"
3461
+ raise ArgumentError, msg
3462
+ end
3463
+
3464
+ yield(event_stream_handler) if block_given?
3465
+
3466
+ req = build_request(:invoke_with_response_stream, params)
3467
+
3468
+ req.context[:event_stream_handler] = event_stream_handler
3469
+ req.handlers.add(Aws::Binary::DecodeHandler, priority: 95)
3470
+
3471
+ req.send_request(options, &block)
3472
+ end
3473
+
3213
3474
  # Returns a list of [aliases][1] for a Lambda function.
3214
3475
  #
3215
3476
  #
@@ -3347,6 +3608,8 @@ module Aws::Lambda
3347
3608
  #
3348
3609
  # * **Amazon MQ** – The ARN of the broker.
3349
3610
  #
3611
+ # * **Amazon DocumentDB** – The ARN of the DocumentDB change stream.
3612
+ #
3350
3613
  # @option params [String] :function_name
3351
3614
  # The name of the Lambda function.
3352
3615
  #
@@ -3563,6 +3826,7 @@ module Aws::Lambda
3563
3826
  # resp.function_url_configs[0].cors.expose_headers[0] #=> String
3564
3827
  # resp.function_url_configs[0].cors.max_age #=> Integer
3565
3828
  # resp.function_url_configs[0].auth_type #=> String, one of "NONE", "AWS_IAM"
3829
+ # resp.function_url_configs[0].invoke_mode #=> String, one of "BUFFERED", "RESPONSE_STREAM"
3566
3830
  # resp.next_marker #=> String
3567
3831
  #
3568
3832
  # @see http://docs.aws.amazon.com/goto/WebAPI/lambda-2015-03-31/ListFunctionUrlConfigs AWS API Documentation
@@ -4531,9 +4795,9 @@ module Aws::Lambda
4531
4795
  #
4532
4796
  # * **Function** - The Amazon Resource Name (ARN) of a Lambda function.
4533
4797
  #
4534
- # * **Queue** - The ARN of an SQS queue.
4798
+ # * **Queue** - The ARN of a standard SQS queue.
4535
4799
  #
4536
- # * **Topic** - The ARN of an SNS topic.
4800
+ # * **Topic** - The ARN of a standard SNS topic.
4537
4801
  #
4538
4802
  # * **Event Bus** - The ARN of an Amazon EventBridge event bus.
4539
4803
  #
@@ -5046,6 +5310,8 @@ module Aws::Lambda
5046
5310
  #
5047
5311
  # * [ Apache Kafka][6]
5048
5312
  #
5313
+ # * [ Amazon DocumentDB][7]
5314
+ #
5049
5315
  # The following error handling options are available only for stream
5050
5316
  # sources (DynamoDB and Kinesis):
5051
5317
  #
@@ -5069,17 +5335,19 @@ module Aws::Lambda
5069
5335
  # For information about which configuration parameters apply to each
5070
5336
  # event source, see the following topics.
5071
5337
  #
5072
- # * [ Amazon DynamoDB Streams][7]
5338
+ # * [ Amazon DynamoDB Streams][8]
5073
5339
  #
5074
- # * [ Amazon Kinesis][8]
5340
+ # * [ Amazon Kinesis][9]
5075
5341
  #
5076
- # * [ Amazon SQS][9]
5342
+ # * [ Amazon SQS][10]
5077
5343
  #
5078
- # * [ Amazon MQ and RabbitMQ][10]
5344
+ # * [ Amazon MQ and RabbitMQ][11]
5079
5345
  #
5080
- # * [ Amazon MSK][11]
5346
+ # * [ Amazon MSK][12]
5081
5347
  #
5082
- # * [ Apache Kafka][12]
5348
+ # * [ Apache Kafka][13]
5349
+ #
5350
+ # * [ Amazon DocumentDB][14]
5083
5351
  #
5084
5352
  #
5085
5353
  #
@@ -5089,12 +5357,14 @@ module Aws::Lambda
5089
5357
  # [4]: https://docs.aws.amazon.com/lambda/latest/dg/with-mq.html#services-mq-eventsourcemapping
5090
5358
  # [5]: https://docs.aws.amazon.com/lambda/latest/dg/with-msk.html
5091
5359
  # [6]: https://docs.aws.amazon.com/lambda/latest/dg/kafka-smaa.html
5092
- # [7]: https://docs.aws.amazon.com/lambda/latest/dg/with-ddb.html#services-ddb-params
5093
- # [8]: https://docs.aws.amazon.com/lambda/latest/dg/with-kinesis.html#services-kinesis-params
5094
- # [9]: https://docs.aws.amazon.com/lambda/latest/dg/with-sqs.html#services-sqs-params
5095
- # [10]: https://docs.aws.amazon.com/lambda/latest/dg/with-mq.html#services-mq-params
5096
- # [11]: https://docs.aws.amazon.com/lambda/latest/dg/with-msk.html#services-msk-parms
5097
- # [12]: https://docs.aws.amazon.com/lambda/latest/dg/with-kafka.html#services-kafka-parms
5360
+ # [7]: https://docs.aws.amazon.com/lambda/latest/dg/with-documentdb.html
5361
+ # [8]: https://docs.aws.amazon.com/lambda/latest/dg/with-ddb.html#services-ddb-params
5362
+ # [9]: https://docs.aws.amazon.com/lambda/latest/dg/with-kinesis.html#services-kinesis-params
5363
+ # [10]: https://docs.aws.amazon.com/lambda/latest/dg/with-sqs.html#services-sqs-params
5364
+ # [11]: https://docs.aws.amazon.com/lambda/latest/dg/with-mq.html#services-mq-params
5365
+ # [12]: https://docs.aws.amazon.com/lambda/latest/dg/with-msk.html#services-msk-parms
5366
+ # [13]: https://docs.aws.amazon.com/lambda/latest/dg/with-kafka.html#services-kafka-parms
5367
+ # [14]: https://docs.aws.amazon.com/lambda/latest/dg/with-documentdb.html#docdb-configuration
5098
5368
  #
5099
5369
  # @option params [required, String] :uuid
5100
5370
  # The identifier of the event source mapping.
@@ -5143,6 +5413,8 @@ module Aws::Lambda
5143
5413
  #
5144
5414
  # * **Amazon MQ (ActiveMQ and RabbitMQ)** – Default 100. Max 10,000.
5145
5415
  #
5416
+ # * **DocumentDB** – Default 100. Max 10,000.
5417
+ #
5146
5418
  # @option params [Types::FilterCriteria] :filter_criteria
5147
5419
  # An object that defines the filter criteria that determine whether
5148
5420
  # Lambda should process an event. For more information, see [Lambda
@@ -5159,10 +5431,10 @@ module Aws::Lambda
5159
5431
  # seconds in increments of seconds.
5160
5432
  #
5161
5433
  # For streams and Amazon SQS event sources, the default batching window
5162
- # is 0 seconds. For Amazon MSK, Self-managed Apache Kafka, and Amazon MQ
5163
- # event sources, the default batching window is 500 ms. Note that
5164
- # because you can only change `MaximumBatchingWindowInSeconds` in
5165
- # increments of seconds, you cannot revert back to the 500 ms default
5434
+ # is 0 seconds. For Amazon MSK, Self-managed Apache Kafka, Amazon MQ,
5435
+ # and DocumentDB event sources, the default batching window is 500 ms.
5436
+ # Note that because you can only change `MaximumBatchingWindowInSeconds`
5437
+ # in increments of seconds, you cannot revert back to the 500 ms default
5166
5438
  # batching window after you have changed it. To restore the default
5167
5439
  # batching window, you must create a new event source mapping.
5168
5440
  #
@@ -5171,37 +5443,39 @@ module Aws::Lambda
5171
5443
  # `MaximumBatchingWindowInSeconds` to at least 1.
5172
5444
  #
5173
5445
  # @option params [Types::DestinationConfig] :destination_config
5174
- # (Streams only) An Amazon SQS queue or Amazon SNS topic destination for
5175
- # discarded records.
5446
+ # (Kinesis and DynamoDB Streams only) A standard Amazon SQS queue or
5447
+ # standard Amazon SNS topic destination for discarded records.
5176
5448
  #
5177
5449
  # @option params [Integer] :maximum_record_age_in_seconds
5178
- # (Streams only) Discard records older than the specified age. The
5179
- # default value is infinite (-1).
5450
+ # (Kinesis and DynamoDB Streams only) Discard records older than the
5451
+ # specified age. The default value is infinite (-1).
5180
5452
  #
5181
5453
  # @option params [Boolean] :bisect_batch_on_function_error
5182
- # (Streams only) If the function returns an error, split the batch in
5183
- # two and retry.
5454
+ # (Kinesis and DynamoDB Streams only) If the function returns an error,
5455
+ # split the batch in two and retry.
5184
5456
  #
5185
5457
  # @option params [Integer] :maximum_retry_attempts
5186
- # (Streams only) Discard records after the specified number of retries.
5187
- # The default value is infinite (-1). When set to infinite (-1), failed
5188
- # records are retried until the record expires.
5458
+ # (Kinesis and DynamoDB Streams only) Discard records after the
5459
+ # specified number of retries. The default value is infinite (-1). When
5460
+ # set to infinite (-1), failed records are retried until the record
5461
+ # expires.
5189
5462
  #
5190
5463
  # @option params [Integer] :parallelization_factor
5191
- # (Streams only) The number of batches to process from each shard
5192
- # concurrently.
5464
+ # (Kinesis and DynamoDB Streams only) The number of batches to process
5465
+ # from each shard concurrently.
5193
5466
  #
5194
5467
  # @option params [Array<Types::SourceAccessConfiguration>] :source_access_configurations
5195
5468
  # An array of authentication protocols or VPC components required to
5196
5469
  # secure your event source.
5197
5470
  #
5198
5471
  # @option params [Integer] :tumbling_window_in_seconds
5199
- # (Streams only) The duration in seconds of a processing window. The
5200
- # range is between 1 second and 900 seconds.
5472
+ # (Kinesis and DynamoDB Streams only) The duration in seconds of a
5473
+ # processing window for DynamoDB and Kinesis Streams event sources. A
5474
+ # value of 0 seconds indicates no tumbling window.
5201
5475
  #
5202
5476
  # @option params [Array<String>] :function_response_types
5203
- # (Streams and Amazon SQS) A list of current response type enums applied
5204
- # to the event source mapping.
5477
+ # (Kinesis, DynamoDB Streams, and Amazon SQS) A list of current response
5478
+ # type enums applied to the event source mapping.
5205
5479
  #
5206
5480
  # @option params [Types::ScalingConfig] :scaling_config
5207
5481
  # (Amazon SQS only) The scaling configuration for the event source. For
@@ -5914,9 +6188,9 @@ module Aws::Lambda
5914
6188
  #
5915
6189
  # * **Function** - The Amazon Resource Name (ARN) of a Lambda function.
5916
6190
  #
5917
- # * **Queue** - The ARN of an SQS queue.
6191
+ # * **Queue** - The ARN of a standard SQS queue.
5918
6192
  #
5919
- # * **Topic** - The ARN of an SNS topic.
6193
+ # * **Topic** - The ARN of a standard SNS topic.
5920
6194
  #
5921
6195
  # * **Event Bus** - The ARN of an Amazon EventBridge event bus.
5922
6196
  #
@@ -6002,6 +6276,24 @@ module Aws::Lambda
6002
6276
  #
6003
6277
  # [1]: https://developer.mozilla.org/en-US/docs/Web/HTTP/CORS
6004
6278
  #
6279
+ # @option params [String] :invoke_mode
6280
+ # Use one of the following options:
6281
+ #
6282
+ # * `BUFFERED` – This is the default option. Lambda invokes your
6283
+ # function using the `Invoke` API operation. Invocation results are
6284
+ # available when the payload is complete. The maximum payload size is
6285
+ # 6 MB.
6286
+ #
6287
+ # * `RESPONSE_STREAM` – Your function streams payload results as they
6288
+ # become available. Lambda invokes your function using the
6289
+ # `InvokeWithResponseStream` API operation. The maximum response
6290
+ # payload size is 20 MB, however, you can [request a quota
6291
+ # increase][1].
6292
+ #
6293
+ #
6294
+ #
6295
+ # [1]: https://docs.aws.amazon.com/servicequotas/latest/userguide/request-quota-increase.html
6296
+ #
6005
6297
  # @return [Types::UpdateFunctionUrlConfigResponse] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
6006
6298
  #
6007
6299
  # * {Types::UpdateFunctionUrlConfigResponse#function_url #function_url} => String
@@ -6010,6 +6302,7 @@ module Aws::Lambda
6010
6302
  # * {Types::UpdateFunctionUrlConfigResponse#cors #cors} => Types::Cors
6011
6303
  # * {Types::UpdateFunctionUrlConfigResponse#creation_time #creation_time} => Time
6012
6304
  # * {Types::UpdateFunctionUrlConfigResponse#last_modified_time #last_modified_time} => Time
6305
+ # * {Types::UpdateFunctionUrlConfigResponse#invoke_mode #invoke_mode} => String
6013
6306
  #
6014
6307
  # @example Request syntax with placeholder values
6015
6308
  #
@@ -6025,6 +6318,7 @@ module Aws::Lambda
6025
6318
  # expose_headers: ["Header"],
6026
6319
  # max_age: 1,
6027
6320
  # },
6321
+ # invoke_mode: "BUFFERED", # accepts BUFFERED, RESPONSE_STREAM
6028
6322
  # })
6029
6323
  #
6030
6324
  # @example Response structure
@@ -6044,6 +6338,7 @@ module Aws::Lambda
6044
6338
  # resp.cors.max_age #=> Integer
6045
6339
  # resp.creation_time #=> Time
6046
6340
  # resp.last_modified_time #=> Time
6341
+ # resp.invoke_mode #=> String, one of "BUFFERED", "RESPONSE_STREAM"
6047
6342
  #
6048
6343
  # @see http://docs.aws.amazon.com/goto/WebAPI/lambda-2015-03-31/UpdateFunctionUrlConfig AWS API Documentation
6049
6344
  #
@@ -6067,7 +6362,7 @@ module Aws::Lambda
6067
6362
  params: params,
6068
6363
  config: config)
6069
6364
  context[:gem_name] = 'aws-sdk-lambda'
6070
- context[:gem_version] = '1.92.0'
6365
+ context[:gem_version] = '1.94.0'
6071
6366
  Seahorse::Client::Request.new(handlers, context)
6072
6367
  end
6073
6368