aws-sdk-kinesis 1.108.0 → 1.109.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: fa0c7c9dd053dd91a458987b50bc140af825aa01d63001d19663b1b2a1654c00
4
- data.tar.gz: 2afeae6cbe69b218689abd8d2509923ebda46d29b9264a435187f525f0ccab43
3
+ metadata.gz: 9a238b3a30240e6b6cb0c0d9442b0ca10a20cc1cb5e31d94e3f6ad57cf9663cd
4
+ data.tar.gz: 5c0a5998d47fb8f4a8f5c3d514a45c7591294742a549b14eed5b2e80ca11244a
5
5
  SHA512:
6
- metadata.gz: 31472576b4ee9a6855d32519d19d2897c2b9ac43cbe55d8b524383a45b572a47a80a927e05ce3cd63eebda95b5c6591a6c9e7c3951ecade40d8ab98787b2cc5f
7
- data.tar.gz: 8353abf9f792f96d99f1337b8823009ee2524194496e768479873f8a935093546565d6b1344e2b2b70433fe7c0658b09d8cd0c0d7d6a67e1303fbb93aa2a6c76
6
+ metadata.gz: c25fe76ba4bfa8581982c210ff8a5f365841acbeb928f849ead5335e4a3b98d6977456a43b02d53fdeea738d73b8090f964ea9fb0d492c68571408cdfea9f15d
7
+ data.tar.gz: 897cdb5f5aa55f1ebd4765595fa645247499bfe39d54c3a96d3c33b688a4b44bf19dea5713ca1768c06d8bba33dff8bba4d2535d3b0ce0e0df487bf19e669366
data/CHANGELOG.md CHANGED
@@ -1,6 +1,11 @@
1
1
  Unreleased Changes
2
2
  ------------------
3
3
 
4
+ 1.109.0 (2026-09-23)
5
+ ------------------
6
+
7
+ * Feature - Amazon Kinesis Data Streams now supports service managed record distribution for on demand streams. Set the record distribution strategy to AUTO to evenly distribute records across shards. Configure it at stream creation with CreateStream or update anytime with UpdateStreamRecordDistributionStrategy
8
+
4
9
  1.108.0 (2026-09-11)
5
10
  ------------------
6
11
 
data/VERSION CHANGED
@@ -1 +1 @@
1
- 1.108.0
1
+ 1.109.0
@@ -761,7 +761,7 @@ module Aws::Kinesis
761
761
  tracer: tracer
762
762
  )
763
763
  context[:gem_name] = 'aws-sdk-kinesis'
764
- context[:gem_version] = '1.108.0'
764
+ context[:gem_version] = '1.109.0'
765
765
  Seahorse::Client::Request.new(handlers, context)
766
766
  end
767
767
 
@@ -592,14 +592,13 @@ module Aws::Kinesis
592
592
  #
593
593
  # @option params [Types::S3DestinationConfiguration] :s3_destination_configuration
594
594
  # The configuration for delivery to a general purpose Amazon S3 bucket.
595
- # You must specify either `S3DestinationConfiguration` or
596
- # `S3TablesDestinationConfiguration`, but not both.
595
+ # Specify this parameter when `S3TablesDestinationConfiguration` is not
596
+ # specified.
597
597
  #
598
598
  # @option params [Types::S3TablesDestinationConfiguration] :s3_tables_destination_configuration
599
599
  # The configuration for delivery to streaming tables on Apache Iceberg
600
- # in Amazon S3 Tables. You must specify either
601
- # `S3DestinationConfiguration` or `S3TablesDestinationConfiguration`,
602
- # but not both.
600
+ # in Amazon S3 Tables. Specify this parameter when
601
+ # `S3DestinationConfiguration` is not specified.
603
602
  #
604
603
  # @option params [Types::ChannelEncryptionConfiguration] :encryption_configuration
605
604
  # The server-side encryption configuration that uses an Amazon Web
@@ -1029,6 +1028,24 @@ module Aws::Kinesis
1029
1028
  # The maximum record size of a single record in kibibyte (KiB) that you
1030
1029
  # can write to, and read from a stream.
1031
1030
  #
1031
+ # @option params [String] :record_distribution_strategy
1032
+ # The record distribution strategy for the stream, which determines how
1033
+ # Amazon Kinesis Data Streams distributes records across shards. Specify
1034
+ # one of the following values:
1035
+ #
1036
+ # * `AUTO` – Amazon Kinesis Data Streams distributes records evenly
1037
+ # across shards and ignores any partition key and `ExplicitHashKey`
1038
+ # that producers supply. Use this value for stateless workloads that
1039
+ # do not require partition-key ordering.
1040
+ #
1041
+ # * `USER_PARTITION_KEY` – Producers must supply a partition key, which
1042
+ # Amazon Kinesis Data Streams uses to determine shard placement. This
1043
+ # is the default.
1044
+ #
1045
+ # The record distribution strategy is only supported for streams that
1046
+ # use the on-demand capacity mode. If you do not specify this parameter,
1047
+ # the stream uses `USER_PARTITION_KEY`.
1048
+ #
1032
1049
  # @return [Struct] Returns an empty {Seahorse::Client::Response response}.
1033
1050
  #
1034
1051
  # @example Request syntax with placeholder values
@@ -1044,6 +1061,7 @@ module Aws::Kinesis
1044
1061
  # },
1045
1062
  # warm_throughput_mi_bps: 1,
1046
1063
  # max_record_size_in_ki_b: 1,
1064
+ # record_distribution_strategy: "AUTO", # accepts AUTO, USER_PARTITION_KEY
1047
1065
  # })
1048
1066
  #
1049
1067
  # @see http://docs.aws.amazon.com/goto/WebAPI/kinesis-2013-12-02/CreateStream AWS API Documentation
@@ -1106,9 +1124,9 @@ module Aws::Kinesis
1106
1124
  # the source stream to the destination. Data already delivered to the
1107
1125
  # destination is not deleted.
1108
1126
  #
1109
- # A stream cannot be deleted while it has active channels. To delete the
1110
- # stream, first delete all channels attached to it. To find them, use
1111
- # ListChannels with a stream filter.
1127
+ # A stream cannot be deleted while it has active channels. Use
1128
+ # ListChannels with a stream filter to find the channels attached to a
1129
+ # stream before deleting it.
1112
1130
  #
1113
1131
  # This operation has a call limit of 5 transactions per second (TPS) for
1114
1132
  # each Amazon Web Services account. Exceeding 5 TPS results in a
@@ -1727,6 +1745,7 @@ module Aws::Kinesis
1727
1745
  # resp.stream_description_summary.warm_throughput.current_mi_bps #=> Integer
1728
1746
  # resp.stream_description_summary.max_record_size_in_ki_b #=> Integer
1729
1747
  # resp.stream_description_summary.channel_count #=> Integer
1748
+ # resp.stream_description_summary.record_distribution_strategy #=> String, one of "AUTO", "USER_PARTITION_KEY"
1730
1749
  #
1731
1750
  # @see http://docs.aws.amazon.com/goto/WebAPI/kinesis-2013-12-02/DescribeStreamSummary AWS API Documentation
1732
1751
  #
@@ -2294,8 +2313,7 @@ module Aws::Kinesis
2294
2313
  #
2295
2314
  # @option params [String] :next_token
2296
2315
  # The pagination token returned by a previous call. Specify this token
2297
- # to retrieve the next page of results. This value is `null` when there
2298
- # are no more results to return.
2316
+ # to retrieve the next page of results.
2299
2317
  #
2300
2318
  # @return [Types::ListChannelsOutput] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
2301
2319
  #
@@ -2983,7 +3001,7 @@ module Aws::Kinesis
2983
3001
  # base64-encoding) is added to the partition key size, the total size
2984
3002
  # must not exceed the maximum record size (10 MiB).
2985
3003
  #
2986
- # @option params [required, String] :partition_key
3004
+ # @option params [String] :partition_key
2987
3005
  # Determines which shard in the stream the data record is assigned to.
2988
3006
  # Partition keys are Unicode strings with a maximum length limit of 256
2989
3007
  # characters for each key. Amazon Kinesis Data Streams uses the
@@ -2994,6 +3012,15 @@ module Aws::Kinesis
2994
3012
  # mechanism, all data records with the same partition key map to the
2995
3013
  # same shard within the stream.
2996
3014
  #
3015
+ # If the stream uses the `USER_PARTITION_KEY` record distribution
3016
+ # strategy (the default), a partition key is required. If the stream
3017
+ # uses the `AUTO` record distribution strategy, the partition key is
3018
+ # optional and any value you provide is ignored, along with any
3019
+ # `ExplicitHashKey` you provide. In that case, Amazon Kinesis Data
3020
+ # Streams distributes the record across shards using service-managed
3021
+ # algorithms. For more information, see
3022
+ # `UpdateStreamRecordDistributionStrategy`.
3023
+ #
2997
3024
  # @option params [String] :explicit_hash_key
2998
3025
  # The hash value used to explicitly determine the shard the data record
2999
3026
  # is assigned to by overriding the partition key hash.
@@ -3027,7 +3054,7 @@ module Aws::Kinesis
3027
3054
  # resp = client.put_record({
3028
3055
  # stream_name: "StreamName",
3029
3056
  # data: "data", # required
3030
- # partition_key: "PartitionKey", # required
3057
+ # partition_key: "PartitionKey",
3031
3058
  # explicit_hash_key: "HashKey",
3032
3059
  # sequence_number_for_ordering: "SequenceNumber",
3033
3060
  # stream_arn: "StreamARN",
@@ -3166,7 +3193,7 @@ module Aws::Kinesis
3166
3193
  # {
3167
3194
  # data: "data", # required
3168
3195
  # explicit_hash_key: "HashKey",
3169
- # partition_key: "PartitionKey", # required
3196
+ # partition_key: "PartitionKey",
3170
3197
  # },
3171
3198
  # ],
3172
3199
  # stream_name: "StreamName",
@@ -3796,11 +3823,14 @@ module Aws::Kinesis
3796
3823
  #
3797
3824
  # @option params [Types::S3DestinationUpdateInput] :s3_destination_configuration
3798
3825
  # The updated configuration for a general purpose Amazon S3 destination.
3799
- # Only `DataFreshnessInSeconds` can be updated.
3826
+ # Specify this parameter when the channel delivers to a general purpose
3827
+ # Amazon S3 bucket. Only `DataFreshnessInSeconds` can be updated.
3800
3828
  #
3801
3829
  # @option params [Types::S3TablesDestinationUpdateInput] :s3_tables_destination_configuration
3802
- # The updated configuration for a streaming table destination. Only
3803
- # `DataFreshnessInSeconds` can be updated.
3830
+ # The updated configuration for a streaming table destination. Specify
3831
+ # this parameter when the channel delivers to streaming tables on Apache
3832
+ # Iceberg in Amazon S3 Tables. Only `DataFreshnessInSeconds` can be
3833
+ # updated.
3804
3834
  #
3805
3835
  # @option params [Types::ChannelLoggingUpdateInput] :logging_configuration
3806
3836
  # The updated Amazon CloudWatch Logs configuration for the channel.
@@ -4149,6 +4179,78 @@ module Aws::Kinesis
4149
4179
  req.send_request(options)
4150
4180
  end
4151
4181
 
4182
+ # Updates the record distribution strategy for the specified Amazon
4183
+ # Kinesis Data Streams on-demand data stream. The record distribution
4184
+ # strategy determines how Amazon Kinesis Data Streams distributes
4185
+ # records across the shards in a stream.
4186
+ #
4187
+ # <note markdown="1"> You must specify the stream using the `StreamARN` parameter.
4188
+ #
4189
+ # </note>
4190
+ #
4191
+ # The record distribution strategy is a stream-level setting. You can
4192
+ # switch between the following strategies at any time, and the change
4193
+ # takes effect immediately without downtime, data loss, or disruption to
4194
+ # producer or consumer applications:
4195
+ #
4196
+ # * `AUTO` – Amazon Kinesis Data Streams distributes records evenly
4197
+ # across shards using service-managed algorithms, and ignores any
4198
+ # partition key and `ExplicitHashKey` that a producer provides. Use
4199
+ # this strategy for stateless workloads that do not require
4200
+ # partition-key ordering.
4201
+ #
4202
+ # * `USER_PARTITION_KEY` – Producers must provide a partition key, and
4203
+ # Amazon Kinesis Data Streams uses the partition key to determine
4204
+ # shard placement. Records that share a partition key are sent to the
4205
+ # same shard. This is the default strategy.
4206
+ #
4207
+ # This operation is only supported for data streams that use the
4208
+ # on-demand capacity mode. Provisioned capacity mode streams do not
4209
+ # support the record distribution strategy setting. Attempting to set
4210
+ # `AUTO` on a provisioned stream results in an
4211
+ # `InvalidArgumentException`.
4212
+ #
4213
+ # New records that arrive after the change are distributed according to
4214
+ # the new strategy. Records already in the stream keep their original
4215
+ # shard assignments and are not redistributed.
4216
+ #
4217
+ # @option params [required, String] :stream_arn
4218
+ # The Amazon Resource Name (ARN) of the stream to update.
4219
+ #
4220
+ # @option params [String] :stream_id
4221
+ # Not Implemented. Reserved for future use.
4222
+ #
4223
+ # @option params [required, String] :record_distribution_strategy
4224
+ # The record distribution strategy to apply to the stream. Specify one
4225
+ # of the following values:
4226
+ #
4227
+ # * `AUTO` – Amazon Kinesis Data Streams distributes records evenly
4228
+ # across shards and ignores any partition key and `ExplicitHashKey`
4229
+ # that producers supply.
4230
+ #
4231
+ # * `USER_PARTITION_KEY` – Producers must supply a partition key, which
4232
+ # Amazon Kinesis Data Streams uses to determine shard placement. This
4233
+ # is the default.
4234
+ #
4235
+ # @return [Struct] Returns an empty {Seahorse::Client::Response response}.
4236
+ #
4237
+ # @example Request syntax with placeholder values
4238
+ #
4239
+ # resp = client.update_stream_record_distribution_strategy({
4240
+ # stream_arn: "StreamARN", # required
4241
+ # stream_id: "StreamId",
4242
+ # record_distribution_strategy: "AUTO", # required, accepts AUTO, USER_PARTITION_KEY
4243
+ # })
4244
+ #
4245
+ # @see http://docs.aws.amazon.com/goto/WebAPI/kinesis-2013-12-02/UpdateStreamRecordDistributionStrategy AWS API Documentation
4246
+ #
4247
+ # @overload update_stream_record_distribution_strategy(params = {})
4248
+ # @param [Hash] params ({})
4249
+ def update_stream_record_distribution_strategy(params = {}, options = {})
4250
+ req = build_request(:update_stream_record_distribution_strategy, params)
4251
+ req.send_request(options)
4252
+ end
4253
+
4152
4254
  # Updates the warm throughput configuration for the specified Amazon
4153
4255
  # Kinesis Data Streams on-demand data stream. Updates the warm
4154
4256
  # throughput configuration for the specified on-demand data stream. Use
@@ -4260,7 +4362,7 @@ module Aws::Kinesis
4260
4362
  tracer: tracer
4261
4363
  )
4262
4364
  context[:gem_name] = 'aws-sdk-kinesis'
4263
- context[:gem_version] = '1.108.0'
4365
+ context[:gem_version] = '1.109.0'
4264
4366
  Seahorse::Client::Request.new(handlers, context)
4265
4367
  end
4266
4368
 
@@ -158,6 +158,7 @@ module Aws::Kinesis
158
158
  PutResourcePolicyInput = Shapes::StructureShape.new(name: 'PutResourcePolicyInput')
159
159
  Record = Shapes::StructureShape.new(name: 'Record')
160
160
  RecordConfiguration = Shapes::StructureShape.new(name: 'RecordConfiguration')
161
+ RecordDistributionStrategy = Shapes::StringShape.new(name: 'RecordDistributionStrategy')
161
162
  RecordFormatType = Shapes::StringShape.new(name: 'RecordFormatType')
162
163
  RecordList = Shapes::ListShape.new(name: 'RecordList')
163
164
  RegisterStreamConsumerInput = Shapes::StructureShape.new(name: 'RegisterStreamConsumerInput')
@@ -235,6 +236,7 @@ module Aws::Kinesis
235
236
  UpdateShardCountInput = Shapes::StructureShape.new(name: 'UpdateShardCountInput')
236
237
  UpdateShardCountOutput = Shapes::StructureShape.new(name: 'UpdateShardCountOutput')
237
238
  UpdateStreamModeInput = Shapes::StructureShape.new(name: 'UpdateStreamModeInput')
239
+ UpdateStreamRecordDistributionStrategyInput = Shapes::StructureShape.new(name: 'UpdateStreamRecordDistributionStrategyInput')
238
240
  UpdateStreamWarmThroughputInput = Shapes::StructureShape.new(name: 'UpdateStreamWarmThroughputInput')
239
241
  UpdateStreamWarmThroughputOutput = Shapes::StructureShape.new(name: 'UpdateStreamWarmThroughputOutput')
240
242
  ValidationException = Shapes::StructureShape.new(name: 'ValidationException')
@@ -355,6 +357,7 @@ module Aws::Kinesis
355
357
  CreateStreamInput.add_member(:tags, Shapes::ShapeRef.new(shape: TagMap, location_name: "Tags"))
356
358
  CreateStreamInput.add_member(:warm_throughput_mi_bps, Shapes::ShapeRef.new(shape: NaturalIntegerObject, location_name: "WarmThroughputMiBps"))
357
359
  CreateStreamInput.add_member(:max_record_size_in_ki_b, Shapes::ShapeRef.new(shape: MaxRecordSizeInKiB, location_name: "MaxRecordSizeInKiB"))
360
+ CreateStreamInput.add_member(:record_distribution_strategy, Shapes::ShapeRef.new(shape: RecordDistributionStrategy, location_name: "RecordDistributionStrategy"))
358
361
  CreateStreamInput.struct_class = Types::CreateStreamInput
359
362
 
360
363
  DeadLetterQueueS3Configuration.add_member(:bucket_arn, Shapes::ShapeRef.new(shape: BucketARN, required: true, location_name: "BucketARN"))
@@ -632,7 +635,7 @@ module Aws::Kinesis
632
635
 
633
636
  PutRecordInput.add_member(:stream_name, Shapes::ShapeRef.new(shape: StreamName, location_name: "StreamName"))
634
637
  PutRecordInput.add_member(:data, Shapes::ShapeRef.new(shape: Data, required: true, location_name: "Data"))
635
- PutRecordInput.add_member(:partition_key, Shapes::ShapeRef.new(shape: PartitionKey, required: true, location_name: "PartitionKey"))
638
+ PutRecordInput.add_member(:partition_key, Shapes::ShapeRef.new(shape: PartitionKey, location_name: "PartitionKey"))
636
639
  PutRecordInput.add_member(:explicit_hash_key, Shapes::ShapeRef.new(shape: HashKey, location_name: "ExplicitHashKey"))
637
640
  PutRecordInput.add_member(:sequence_number_for_ordering, Shapes::ShapeRef.new(shape: SequenceNumber, location_name: "SequenceNumberForOrdering"))
638
641
  PutRecordInput.add_member(:stream_arn, Shapes::ShapeRef.new(shape: StreamARN, location_name: "StreamARN", metadata: {"contextParam" => {"name" => "StreamARN"}}))
@@ -659,7 +662,7 @@ module Aws::Kinesis
659
662
 
660
663
  PutRecordsRequestEntry.add_member(:data, Shapes::ShapeRef.new(shape: Data, required: true, location_name: "Data"))
661
664
  PutRecordsRequestEntry.add_member(:explicit_hash_key, Shapes::ShapeRef.new(shape: HashKey, location_name: "ExplicitHashKey"))
662
- PutRecordsRequestEntry.add_member(:partition_key, Shapes::ShapeRef.new(shape: PartitionKey, required: true, location_name: "PartitionKey"))
665
+ PutRecordsRequestEntry.add_member(:partition_key, Shapes::ShapeRef.new(shape: PartitionKey, location_name: "PartitionKey"))
663
666
  PutRecordsRequestEntry.struct_class = Types::PutRecordsRequestEntry
664
667
 
665
668
  PutRecordsRequestEntryList.member = Shapes::ShapeRef.new(shape: PutRecordsRequestEntry)
@@ -680,7 +683,7 @@ module Aws::Kinesis
680
683
  Record.add_member(:sequence_number, Shapes::ShapeRef.new(shape: SequenceNumber, required: true, location_name: "SequenceNumber"))
681
684
  Record.add_member(:approximate_arrival_timestamp, Shapes::ShapeRef.new(shape: Timestamp, location_name: "ApproximateArrivalTimestamp"))
682
685
  Record.add_member(:data, Shapes::ShapeRef.new(shape: Data, required: true, location_name: "Data"))
683
- Record.add_member(:partition_key, Shapes::ShapeRef.new(shape: PartitionKey, required: true, location_name: "PartitionKey"))
686
+ Record.add_member(:partition_key, Shapes::ShapeRef.new(shape: PartitionKey, location_name: "PartitionKey"))
684
687
  Record.add_member(:encryption_type, Shapes::ShapeRef.new(shape: EncryptionType, location_name: "EncryptionType"))
685
688
  Record.struct_class = Types::Record
686
689
 
@@ -827,6 +830,7 @@ module Aws::Kinesis
827
830
  StreamDescriptionSummary.add_member(:warm_throughput, Shapes::ShapeRef.new(shape: WarmThroughputObject, location_name: "WarmThroughput"))
828
831
  StreamDescriptionSummary.add_member(:max_record_size_in_ki_b, Shapes::ShapeRef.new(shape: MaxRecordSizeInKiB, location_name: "MaxRecordSizeInKiB"))
829
832
  StreamDescriptionSummary.add_member(:channel_count, Shapes::ShapeRef.new(shape: ChannelCountObject, location_name: "ChannelCount"))
833
+ StreamDescriptionSummary.add_member(:record_distribution_strategy, Shapes::ShapeRef.new(shape: RecordDistributionStrategy, location_name: "RecordDistributionStrategy"))
830
834
  StreamDescriptionSummary.struct_class = Types::StreamDescriptionSummary
831
835
 
832
836
  StreamFilter.add_member(:stream_arn, Shapes::ShapeRef.new(shape: StreamARN, required: true, location_name: "StreamARN"))
@@ -937,6 +941,11 @@ module Aws::Kinesis
937
941
  UpdateStreamModeInput.add_member(:warm_throughput_mi_bps, Shapes::ShapeRef.new(shape: NaturalIntegerObject, location_name: "WarmThroughputMiBps"))
938
942
  UpdateStreamModeInput.struct_class = Types::UpdateStreamModeInput
939
943
 
944
+ UpdateStreamRecordDistributionStrategyInput.add_member(:stream_arn, Shapes::ShapeRef.new(shape: StreamARN, required: true, location_name: "StreamARN", metadata: {"contextParam" => {"name" => "StreamARN"}}))
945
+ UpdateStreamRecordDistributionStrategyInput.add_member(:stream_id, Shapes::ShapeRef.new(shape: StreamId, location_name: "StreamId", metadata: {"contextParam" => {"name" => "StreamId"}}))
946
+ UpdateStreamRecordDistributionStrategyInput.add_member(:record_distribution_strategy, Shapes::ShapeRef.new(shape: RecordDistributionStrategy, required: true, location_name: "RecordDistributionStrategy"))
947
+ UpdateStreamRecordDistributionStrategyInput.struct_class = Types::UpdateStreamRecordDistributionStrategyInput
948
+
940
949
  UpdateStreamWarmThroughputInput.add_member(:stream_arn, Shapes::ShapeRef.new(shape: StreamARN, location_name: "StreamARN", metadata: {"contextParam" => {"name" => "StreamARN"}}))
941
950
  UpdateStreamWarmThroughputInput.add_member(:stream_name, Shapes::ShapeRef.new(shape: StreamName, location_name: "StreamName"))
942
951
  UpdateStreamWarmThroughputInput.add_member(:stream_id, Shapes::ShapeRef.new(shape: StreamId, location_name: "StreamId", metadata: {"contextParam" => {"name" => "StreamId"}}))
@@ -1585,6 +1594,20 @@ module Aws::Kinesis
1585
1594
  o.errors << Shapes::ShapeRef.new(shape: ValidationException)
1586
1595
  end)
1587
1596
 
1597
+ api.add_operation(:update_stream_record_distribution_strategy, Seahorse::Model::Operation.new.tap do |o|
1598
+ o.name = "UpdateStreamRecordDistributionStrategy"
1599
+ o.http_method = "POST"
1600
+ o.http_request_uri = "/"
1601
+ o.input = Shapes::ShapeRef.new(shape: UpdateStreamRecordDistributionStrategyInput)
1602
+ o.output = Shapes::ShapeRef.new(shape: Shapes::StructureShape.new(struct_class: Aws::EmptyStructure))
1603
+ o.errors << Shapes::ShapeRef.new(shape: ResourceNotFoundException)
1604
+ o.errors << Shapes::ShapeRef.new(shape: InvalidArgumentException)
1605
+ o.errors << Shapes::ShapeRef.new(shape: ResourceInUseException)
1606
+ o.errors << Shapes::ShapeRef.new(shape: LimitExceededException)
1607
+ o.errors << Shapes::ShapeRef.new(shape: AccessDeniedException)
1608
+ o.errors << Shapes::ShapeRef.new(shape: ValidationException)
1609
+ end)
1610
+
1588
1611
  api.add_operation(:update_stream_warm_throughput, Seahorse::Model::Operation.new.tap do |o|
1589
1612
  o.name = "UpdateStreamWarmThroughput"
1590
1613
  o.http_method = "POST"
@@ -470,6 +470,17 @@ module Aws::Kinesis
470
470
  end
471
471
  end
472
472
 
473
+ class UpdateStreamRecordDistributionStrategy
474
+ def self.build(context)
475
+ Aws::Kinesis::EndpointParameters.create(
476
+ context.config,
477
+ operation_type: "control",
478
+ stream_id: context.params[:stream_id],
479
+ stream_arn: context.params[:stream_arn],
480
+ )
481
+ end
482
+ end
483
+
473
484
  class UpdateStreamWarmThroughput
474
485
  def self.build(context)
475
486
  Aws::Kinesis::EndpointParameters.create(
@@ -570,6 +581,8 @@ module Aws::Kinesis
570
581
  UpdateShardCount.build(context)
571
582
  when :update_stream_mode
572
583
  UpdateStreamMode.build(context)
584
+ when :update_stream_record_distribution_strategy
585
+ UpdateStreamRecordDistributionStrategy.build(context)
573
586
  when :update_stream_warm_throughput
574
587
  UpdateStreamWarmThroughput.build(context)
575
588
  else
@@ -113,7 +113,9 @@ module Aws::Kinesis
113
113
  # @return [Types::S3TablesDestinationDescription]
114
114
  #
115
115
  # @!attribute [rw] encryption_configuration
116
- # The server-side encryption configuration for the channel.
116
+ # The Amazon Web Services KMS key configuration that Amazon Kinesis
117
+ # Data Streams uses to encrypt data delivered to the channel's
118
+ # destination.
117
119
  # @return [Types::ChannelEncryptionConfiguration]
118
120
  #
119
121
  # @!attribute [rw] logging_configuration
@@ -179,7 +181,8 @@ module Aws::Kinesis
179
181
  # in UpdateChannel.
180
182
  #
181
183
  # @!attribute [rw] cloud_watch_logs
182
- # The updated Amazon CloudWatch Logs settings for the channel.
184
+ # The updated Amazon CloudWatch Logs settings, including whether
185
+ # logging is enabled and the target log group and log stream.
183
186
  # @return [Types::CloudWatchLogsUpdateInput]
184
187
  #
185
188
  # @see http://docs.aws.amazon.com/goto/WebAPI/kinesis-2013-12-02/ChannelLoggingUpdateInput AWS API Documentation
@@ -488,15 +491,14 @@ module Aws::Kinesis
488
491
  #
489
492
  # @!attribute [rw] s3_destination_configuration
490
493
  # The configuration for delivery to a general purpose Amazon S3
491
- # bucket. You must specify either `S3DestinationConfiguration` or
492
- # `S3TablesDestinationConfiguration`, but not both.
494
+ # bucket. Specify this parameter when
495
+ # `S3TablesDestinationConfiguration` is not specified.
493
496
  # @return [Types::S3DestinationConfiguration]
494
497
  #
495
498
  # @!attribute [rw] s3_tables_destination_configuration
496
499
  # The configuration for delivery to streaming tables on Apache Iceberg
497
- # in Amazon S3 Tables. You must specify either
498
- # `S3DestinationConfiguration` or `S3TablesDestinationConfiguration`,
499
- # but not both.
500
+ # in Amazon S3 Tables. Specify this parameter when
501
+ # `S3DestinationConfiguration` is not specified.
500
502
  # @return [Types::S3TablesDestinationConfiguration]
501
503
  #
502
504
  # @!attribute [rw] encryption_configuration
@@ -529,7 +531,9 @@ module Aws::Kinesis
529
531
  end
530
532
 
531
533
  # @!attribute [rw] channel_description
532
- # The configuration and current status of the channel.
534
+ # The configuration and current status of the channel, including its
535
+ # ARN, destination configuration, and lifecycle state. Immediately
536
+ # after creation, the state is `CREATING`.
533
537
  # @return [Types::ChannelDescription]
534
538
  #
535
539
  # @see http://docs.aws.amazon.com/goto/WebAPI/kinesis-2013-12-02/CreateChannelOutput AWS API Documentation
@@ -580,6 +584,25 @@ module Aws::Kinesis
580
584
  # you can write to, and read from a stream.
581
585
  # @return [Integer]
582
586
  #
587
+ # @!attribute [rw] record_distribution_strategy
588
+ # The record distribution strategy for the stream, which determines
589
+ # how Amazon Kinesis Data Streams distributes records across shards.
590
+ # Specify one of the following values:
591
+ #
592
+ # * `AUTO` – Amazon Kinesis Data Streams distributes records evenly
593
+ # across shards and ignores any partition key and `ExplicitHashKey`
594
+ # that producers supply. Use this value for stateless workloads that
595
+ # do not require partition-key ordering.
596
+ #
597
+ # * `USER_PARTITION_KEY` – Producers must supply a partition key,
598
+ # which Amazon Kinesis Data Streams uses to determine shard
599
+ # placement. This is the default.
600
+ #
601
+ # The record distribution strategy is only supported for streams that
602
+ # use the on-demand capacity mode. If you do not specify this
603
+ # parameter, the stream uses `USER_PARTITION_KEY`.
604
+ # @return [String]
605
+ #
583
606
  # @see http://docs.aws.amazon.com/goto/WebAPI/kinesis-2013-12-02/CreateStreamInput AWS API Documentation
584
607
  #
585
608
  class CreateStreamInput < Struct.new(
@@ -588,7 +611,8 @@ module Aws::Kinesis
588
611
  :stream_mode_details,
589
612
  :tags,
590
613
  :warm_throughput_mi_bps,
591
- :max_record_size_in_ki_b)
614
+ :max_record_size_in_ki_b,
615
+ :record_distribution_strategy)
592
616
  SENSITIVE = []
593
617
  include Aws::Structure
594
618
  end
@@ -780,7 +804,8 @@ module Aws::Kinesis
780
804
  end
781
805
 
782
806
  # @!attribute [rw] channel_description
783
- # The configuration and current status of the channel.
807
+ # The configuration and current status of the channel, including its
808
+ # ARN, source stream, destination configuration, and lifecycle state.
784
809
  # @return [Types::ChannelDescription]
785
810
  #
786
811
  # @see http://docs.aws.amazon.com/goto/WebAPI/kinesis-2013-12-02/DescribeChannelOutput AWS API Documentation
@@ -1618,8 +1643,7 @@ module Aws::Kinesis
1618
1643
  #
1619
1644
  # @!attribute [rw] next_token
1620
1645
  # The pagination token returned by a previous call. Specify this token
1621
- # to retrieve the next page of results. This value is `null` when
1622
- # there are no more results to return.
1646
+ # to retrieve the next page of results.
1623
1647
  # @return [String]
1624
1648
  #
1625
1649
  # @see http://docs.aws.amazon.com/goto/WebAPI/kinesis-2013-12-02/ListChannelsInput AWS API Documentation
@@ -2226,6 +2250,15 @@ module Aws::Kinesis
2226
2250
  # values and to map associated data records to shards. As a result of
2227
2251
  # this hashing mechanism, all data records with the same partition key
2228
2252
  # map to the same shard within the stream.
2253
+ #
2254
+ # If the stream uses the `USER_PARTITION_KEY` record distribution
2255
+ # strategy (the default), a partition key is required. If the stream
2256
+ # uses the `AUTO` record distribution strategy, the partition key is
2257
+ # optional and any value you provide is ignored, along with any
2258
+ # `ExplicitHashKey` you provide. In that case, Amazon Kinesis Data
2259
+ # Streams distributes the record across shards using service-managed
2260
+ # algorithms. For more information, see
2261
+ # `UpdateStreamRecordDistributionStrategy`.
2229
2262
  # @return [String]
2230
2263
  #
2231
2264
  # @!attribute [rw] explicit_hash_key
@@ -2397,6 +2430,15 @@ module Aws::Kinesis
2397
2430
  # values and to map associated data records to shards. As a result of
2398
2431
  # this hashing mechanism, all data records with the same partition key
2399
2432
  # map to the same shard within the stream.
2433
+ #
2434
+ # If the stream uses the `USER_PARTITION_KEY` record distribution
2435
+ # strategy (the default), a partition key is required for each record.
2436
+ # If the stream uses the `AUTO` record distribution strategy, the
2437
+ # partition key is optional and any value you provide is ignored,
2438
+ # along with any `ExplicitHashKey` you provide. In that case, Amazon
2439
+ # Kinesis Data Streams distributes records across shards using
2440
+ # service-managed algorithms. For more information, see
2441
+ # `UpdateStreamRecordDistributionStrategy`.
2400
2442
  # @return [String]
2401
2443
  #
2402
2444
  # @see http://docs.aws.amazon.com/goto/WebAPI/kinesis-2013-12-02/PutRecordsRequestEntry AWS API Documentation
@@ -2493,6 +2535,12 @@ module Aws::Kinesis
2493
2535
  #
2494
2536
  # @!attribute [rw] partition_key
2495
2537
  # Identifies which shard in the stream the data record is assigned to.
2538
+ #
2539
+ # For a stream that uses the `AUTO` record distribution strategy, this
2540
+ # value is not returned if the producer did not provide a partition
2541
+ # key when writing the record. If the producer provided a partition
2542
+ # key, the original value is returned even though it was not used to
2543
+ # determine shard placement.
2496
2544
  # @return [String]
2497
2545
  #
2498
2546
  # @!attribute [rw] encryption_type
@@ -2538,8 +2586,7 @@ module Aws::Kinesis
2538
2586
  # @!attribute [rw] gsr_schema_arn
2539
2587
  # The Amazon Resource Name (ARN) of the Amazon Web Services Glue
2540
2588
  # Schema Registry schema used to validate records. Required when the
2541
- # channel destination is a streaming table (Amazon S3 Tables), for
2542
- # both the `JSON` and `GSR_JSON` record formats.
2589
+ # channel destination is a streaming table.
2543
2590
  # @return [String]
2544
2591
  #
2545
2592
  # @see http://docs.aws.amazon.com/goto/WebAPI/kinesis-2013-12-02/RecordConfiguration AWS API Documentation
@@ -2667,8 +2714,8 @@ module Aws::Kinesis
2667
2714
  # Used in CreateChannel.
2668
2715
  #
2669
2716
  # @!attribute [rw] data_freshness_in_seconds
2670
- # The maximum age, in seconds, of undelivered data. Valid range is 300
2671
- # to 900 seconds (5 to 15 minutes). The default value is 300 seconds.
2717
+ # The maximum age, in seconds, of undelivered data before the channel
2718
+ # delivers it to the destination. The default value is 300 seconds.
2672
2719
  # @return [Integer]
2673
2720
  #
2674
2721
  # @!attribute [rw] dead_letter_queue_s3_configuration
@@ -2722,8 +2769,8 @@ module Aws::Kinesis
2722
2769
  # Used in UpdateChannel. Only `DataFreshnessInSeconds` can be updated.
2723
2770
  #
2724
2771
  # @!attribute [rw] data_freshness_in_seconds
2725
- # The maximum age, in seconds, of undelivered data. Valid range is 300
2726
- # to 900 seconds (5 to 15 minutes).
2772
+ # The maximum age, in seconds, of undelivered data before the channel
2773
+ # delivers it to the destination.
2727
2774
  # @return [Integer]
2728
2775
  #
2729
2776
  # @see http://docs.aws.amazon.com/goto/WebAPI/kinesis-2013-12-02/S3DestinationUpdateInput AWS API Documentation
@@ -2755,8 +2802,8 @@ module Aws::Kinesis
2755
2802
  # @!attribute [rw] storage_class
2756
2803
  # The Amazon S3 storage class for delivered objects. Valid values:
2757
2804
  #
2758
- # * `STANDARD` - Default storage class for frequently accessed data.
2759
- # (default)
2805
+ # * `STANDARD` - The default storage class, for frequently accessed
2806
+ # data.
2760
2807
  #
2761
2808
  # * `INTELLIGENT_TIERING` - Automatically moves objects to the most
2762
2809
  # cost-effective access tier based on usage patterns.
@@ -2832,8 +2879,8 @@ module Aws::Kinesis
2832
2879
  # Used in CreateChannel.
2833
2880
  #
2834
2881
  # @!attribute [rw] data_freshness_in_seconds
2835
- # The maximum age, in seconds, of undelivered data. Valid range is 300
2836
- # to 900 seconds (5 to 15 minutes). The default value is 300 seconds.
2882
+ # The maximum age, in seconds, of undelivered data before the channel
2883
+ # delivers it to the destination. The default value is 300 seconds.
2837
2884
  # @return [Integer]
2838
2885
  #
2839
2886
  # @!attribute [rw] dead_letter_queue_s3_configuration
@@ -2886,8 +2933,8 @@ module Aws::Kinesis
2886
2933
  # UpdateChannel. Only `DataFreshnessInSeconds` can be updated.
2887
2934
  #
2888
2935
  # @!attribute [rw] data_freshness_in_seconds
2889
- # The maximum age, in seconds, of undelivered data. Valid range is 300
2890
- # to 900 seconds (5 to 15 minutes).
2936
+ # The maximum age, in seconds, of undelivered data before the channel
2937
+ # delivers it to the destination.
2891
2938
  # @return [Integer]
2892
2939
  #
2893
2940
  # @see http://docs.aws.amazon.com/goto/WebAPI/kinesis-2013-12-02/S3TablesDestinationUpdateInput AWS API Documentation
@@ -3416,6 +3463,15 @@ module Aws::Kinesis
3416
3463
  # The number of channels associated with the stream.
3417
3464
  # @return [Integer]
3418
3465
  #
3466
+ # @!attribute [rw] record_distribution_strategy
3467
+ # The record distribution strategy that the stream currently uses. A
3468
+ # value of `AUTO` indicates that Amazon Kinesis Data Streams
3469
+ # distributes records across shards using service-managed algorithms.
3470
+ # A value of `USER_PARTITION_KEY` indicates that shard placement is
3471
+ # determined by the partition key that producers supply. This field is
3472
+ # only present for streams that use the on-demand capacity mode.
3473
+ # @return [String]
3474
+ #
3419
3475
  # @see http://docs.aws.amazon.com/goto/WebAPI/kinesis-2013-12-02/StreamDescriptionSummary AWS API Documentation
3420
3476
  #
3421
3477
  class StreamDescriptionSummary < Struct.new(
@@ -3433,7 +3489,8 @@ module Aws::Kinesis
3433
3489
  :consumer_count,
3434
3490
  :warm_throughput,
3435
3491
  :max_record_size_in_ki_b,
3436
- :channel_count)
3492
+ :channel_count,
3493
+ :record_distribution_strategy)
3437
3494
  SENSITIVE = []
3438
3495
  include Aws::Structure
3439
3496
  end
@@ -3710,12 +3767,16 @@ module Aws::Kinesis
3710
3767
  #
3711
3768
  # @!attribute [rw] s3_destination_configuration
3712
3769
  # The updated configuration for a general purpose Amazon S3
3713
- # destination. Only `DataFreshnessInSeconds` can be updated.
3770
+ # destination. Specify this parameter when the channel delivers to a
3771
+ # general purpose Amazon S3 bucket. Only `DataFreshnessInSeconds` can
3772
+ # be updated.
3714
3773
  # @return [Types::S3DestinationUpdateInput]
3715
3774
  #
3716
3775
  # @!attribute [rw] s3_tables_destination_configuration
3717
- # The updated configuration for a streaming table destination. Only
3718
- # `DataFreshnessInSeconds` can be updated.
3776
+ # The updated configuration for a streaming table destination. Specify
3777
+ # this parameter when the channel delivers to streaming tables on
3778
+ # Apache Iceberg in Amazon S3 Tables. Only `DataFreshnessInSeconds`
3779
+ # can be updated.
3719
3780
  # @return [Types::S3TablesDestinationUpdateInput]
3720
3781
  #
3721
3782
  # @!attribute [rw] logging_configuration
@@ -3734,7 +3795,9 @@ module Aws::Kinesis
3734
3795
  end
3735
3796
 
3736
3797
  # @!attribute [rw] channel_description
3737
- # The configuration and current status of the updated channel.
3798
+ # The configuration and current status of the channel after the
3799
+ # update, including its ARN, destination configuration, and lifecycle
3800
+ # state. Immediately after the request, the state is `UPDATING`.
3738
3801
  # @return [Types::ChannelDescription]
3739
3802
  #
3740
3803
  # @see http://docs.aws.amazon.com/goto/WebAPI/kinesis-2013-12-02/UpdateChannelOutput AWS API Documentation
@@ -3877,6 +3940,37 @@ module Aws::Kinesis
3877
3940
  include Aws::Structure
3878
3941
  end
3879
3942
 
3943
+ # @!attribute [rw] stream_arn
3944
+ # The Amazon Resource Name (ARN) of the stream to update.
3945
+ # @return [String]
3946
+ #
3947
+ # @!attribute [rw] stream_id
3948
+ # Not Implemented. Reserved for future use.
3949
+ # @return [String]
3950
+ #
3951
+ # @!attribute [rw] record_distribution_strategy
3952
+ # The record distribution strategy to apply to the stream. Specify one
3953
+ # of the following values:
3954
+ #
3955
+ # * `AUTO` – Amazon Kinesis Data Streams distributes records evenly
3956
+ # across shards and ignores any partition key and `ExplicitHashKey`
3957
+ # that producers supply.
3958
+ #
3959
+ # * `USER_PARTITION_KEY` – Producers must supply a partition key,
3960
+ # which Amazon Kinesis Data Streams uses to determine shard
3961
+ # placement. This is the default.
3962
+ # @return [String]
3963
+ #
3964
+ # @see http://docs.aws.amazon.com/goto/WebAPI/kinesis-2013-12-02/UpdateStreamRecordDistributionStrategyInput AWS API Documentation
3965
+ #
3966
+ class UpdateStreamRecordDistributionStrategyInput < Struct.new(
3967
+ :stream_arn,
3968
+ :stream_id,
3969
+ :record_distribution_strategy)
3970
+ SENSITIVE = []
3971
+ include Aws::Structure
3972
+ end
3973
+
3880
3974
  # @!attribute [rw] stream_arn
3881
3975
  # The ARN of the stream to be updated.
3882
3976
  # @return [String]
@@ -73,7 +73,7 @@ module Aws::Kinesis
73
73
  autoload :AsyncClient, 'aws-sdk-kinesis/async_client'
74
74
  autoload :EventStreams, 'aws-sdk-kinesis/event_streams'
75
75
 
76
- GEM_VERSION = '1.108.0'
76
+ GEM_VERSION = '1.109.0'
77
77
 
78
78
  end
79
79
 
data/sig/client.rbs CHANGED
@@ -172,7 +172,8 @@ module Aws
172
172
  },
173
173
  ?tags: Hash[::String, ::String],
174
174
  ?warm_throughput_mi_bps: ::Integer,
175
- ?max_record_size_in_ki_b: ::Integer
175
+ ?max_record_size_in_ki_b: ::Integer,
176
+ ?record_distribution_strategy: ("AUTO" | "USER_PARTITION_KEY")
176
177
  ) -> ::Seahorse::Client::_ResponseSuccess[::Aws::EmptyStructure]
177
178
  | (Hash[Symbol, untyped] params, ?Hash[Symbol, untyped] options) -> ::Seahorse::Client::_ResponseSuccess[::Aws::EmptyStructure]
178
179
 
@@ -490,7 +491,7 @@ module Aws
490
491
  def put_record: (
491
492
  ?stream_name: ::String,
492
493
  data: ::String,
493
- partition_key: ::String,
494
+ ?partition_key: ::String,
494
495
  ?explicit_hash_key: ::String,
495
496
  ?sequence_number_for_ordering: ::String,
496
497
  ?stream_arn: ::String,
@@ -511,7 +512,7 @@ module Aws
511
512
  {
512
513
  data: ::String,
513
514
  explicit_hash_key: ::String?,
514
- partition_key: ::String
515
+ partition_key: ::String?
515
516
  }
516
517
  ],
517
518
  ?stream_name: ::String,
@@ -668,6 +669,14 @@ module Aws
668
669
  ) -> ::Seahorse::Client::_ResponseSuccess[::Aws::EmptyStructure]
669
670
  | (Hash[Symbol, untyped] params, ?Hash[Symbol, untyped] options) -> ::Seahorse::Client::_ResponseSuccess[::Aws::EmptyStructure]
670
671
 
672
+ # https://docs.aws.amazon.com/sdk-for-ruby/v3/api/Aws/Kinesis/Client.html#update_stream_record_distribution_strategy-instance_method
673
+ def update_stream_record_distribution_strategy: (
674
+ stream_arn: ::String,
675
+ ?stream_id: ::String,
676
+ record_distribution_strategy: ("AUTO" | "USER_PARTITION_KEY")
677
+ ) -> ::Seahorse::Client::_ResponseSuccess[::Aws::EmptyStructure]
678
+ | (Hash[Symbol, untyped] params, ?Hash[Symbol, untyped] options) -> ::Seahorse::Client::_ResponseSuccess[::Aws::EmptyStructure]
679
+
671
680
  interface _UpdateStreamWarmThroughputResponseSuccess
672
681
  include ::Seahorse::Client::_ResponseSuccess[Types::UpdateStreamWarmThroughputOutput]
673
682
  def stream_arn: () -> ::String
data/sig/types.rbs CHANGED
@@ -146,6 +146,7 @@ module Aws::Kinesis
146
146
  attr_accessor tags: ::Hash[::String, ::String]
147
147
  attr_accessor warm_throughput_mi_bps: ::Integer
148
148
  attr_accessor max_record_size_in_ki_b: ::Integer
149
+ attr_accessor record_distribution_strategy: ("AUTO" | "USER_PARTITION_KEY")
149
150
  SENSITIVE: []
150
151
  end
151
152
 
@@ -789,6 +790,7 @@ module Aws::Kinesis
789
790
  attr_accessor warm_throughput: Types::WarmThroughputObject
790
791
  attr_accessor max_record_size_in_ki_b: ::Integer
791
792
  attr_accessor channel_count: ::Integer
793
+ attr_accessor record_distribution_strategy: ("AUTO" | "USER_PARTITION_KEY")
792
794
  SENSITIVE: []
793
795
  end
794
796
 
@@ -910,6 +912,13 @@ module Aws::Kinesis
910
912
  SENSITIVE: []
911
913
  end
912
914
 
915
+ class UpdateStreamRecordDistributionStrategyInput
916
+ attr_accessor stream_arn: ::String
917
+ attr_accessor stream_id: ::String
918
+ attr_accessor record_distribution_strategy: ("AUTO" | "USER_PARTITION_KEY")
919
+ SENSITIVE: []
920
+ end
921
+
913
922
  class UpdateStreamWarmThroughputInput
914
923
  attr_accessor stream_arn: ::String
915
924
  attr_accessor stream_name: ::String
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: aws-sdk-kinesis
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.108.0
4
+ version: 1.109.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Amazon Web Services