aws-sdk-dsql 1.26.0 → 1.27.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: 0d94a9749c8a5979082a07fd9048ce2853cbc47fb2344ca732997fecc26e09fb
4
- data.tar.gz: 05e1c93ad76954ba47e854ffb6408dbc1179ce6db7712512f0ee871a5002e5d0
3
+ metadata.gz: b8c40b0761f330541facb32331e3498413895ea85d5c0e08f00b9009d3578f25
4
+ data.tar.gz: 9ca478dd56b93de4494ce9c13cf1cb77e5b1421edb53414cd06be74bef9e4184
5
5
  SHA512:
6
- metadata.gz: 6a899393714b094713bc60c65ad20dd4d577bdd6f78c44ace82d9398185a6a22f7456dd1dff352623733d37e909d1e6fec2e59d05b607743de7b2fbb8b92573b
7
- data.tar.gz: e702b3ab3dda4e0d5d012f86a3240ea62e8bd7bdf995a41b1b126457ec238ac548ae29caca938c8dc91afec43b7145f141e17ce1de835d70a263b873f0f169eb
6
+ metadata.gz: 4e49b409bc72b9ec69bea019af9ea090f17d614036029aefdc73e032e4343c9706a38ddea54537ff1de9d487c018c3ec89f611a79194a62fdf14feca7e26454f
7
+ data.tar.gz: 4cc6a8158fb0b7e97454a85ae32f926401a2b168cbc22661c0f0b49e92fa83c1ac886d793b53ee07b292aa1ef19b050a1d3c58a334e30e50aadbc1c9ed281b98
data/CHANGELOG.md CHANGED
@@ -1,6 +1,11 @@
1
1
  Unreleased Changes
2
2
  ------------------
3
3
 
4
+ 1.27.0 (2026-05-13)
5
+ ------------------
6
+
7
+ * Feature - Added support for Amazon Aurora DSQL change data capture (CDC) streams that deliver row-level database changes to Amazon Kinesis in JSON format. Includes CreateStream, GetStream, ListStreams, and DeleteStream operations.
8
+
4
9
  1.26.0 (2026-03-18)
5
10
  ------------------
6
11
 
data/VERSION CHANGED
@@ -1 +1 @@
1
- 1.26.0
1
+ 1.27.0
@@ -637,6 +637,111 @@ module Aws::DSQL
637
637
  req.send_request(options)
638
638
  end
639
639
 
640
+ # Creates a new change data capture (CDC) stream for a cluster. The
641
+ # stream captures database changes and delivers them to the specified
642
+ # target destination.
643
+ #
644
+ # **Required permissions**
645
+ #
646
+ # dsql:CreateStream
647
+ #
648
+ # : Permission to create a new stream.
649
+ #
650
+ # Resources: `arn:aws:dsql:region:account-id:cluster/cluster-id`
651
+ #
652
+ # iam:PassRole
653
+ #
654
+ # : Permission to pass the IAM role specified in the target definition
655
+ # to the service.
656
+ #
657
+ # Resources: ARN of the IAM role specified in
658
+ # `targetDefinition.kinesis.roleArn`
659
+ #
660
+ # kms:Decrypt
661
+ #
662
+ # : Required when the cluster uses a customer managed KMS key (CMK).
663
+ # Permission to decrypt data using the cluster's CMK.
664
+ #
665
+ # Resources: ARN of the KMS key used by the cluster
666
+ #
667
+ # @option params [required, String] :cluster_identifier
668
+ # The ID of the cluster for which to create the stream.
669
+ #
670
+ # @option params [required, Types::TargetDefinition] :target_definition
671
+ # The target destination configuration for the stream. Contains Kinesis
672
+ # stream configuration including stream ARN and IAM role ARN.
673
+ #
674
+ # @option params [required, String] :ordering
675
+ # The ordering mode for the stream. Determines how change events are
676
+ # ordered when delivered to the target.
677
+ #
678
+ # @option params [required, String] :format
679
+ # The format of the stream records.
680
+ #
681
+ # @option params [Hash<String,String>] :tags
682
+ # A map of key and value pairs to use to tag your stream.
683
+ #
684
+ # @option params [String] :client_token
685
+ # A unique, case-sensitive identifier that you provide to ensure the
686
+ # idempotency of the request. Idempotency ensures that an API request
687
+ # completes only once. With an idempotent request, if the original
688
+ # request completes successfully, the subsequent retries with the same
689
+ # client token return the result from the original successful request
690
+ # and they have no additional effect.
691
+ #
692
+ # If you don't specify a client token, the Amazon Web Services SDK
693
+ # automatically generates one.
694
+ #
695
+ # **A suitable default value is auto-generated.** You should normally
696
+ # not need to pass this option.**
697
+ #
698
+ # @return [Types::CreateStreamOutput] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
699
+ #
700
+ # * {Types::CreateStreamOutput#cluster_identifier #cluster_identifier} => String
701
+ # * {Types::CreateStreamOutput#stream_identifier #stream_identifier} => String
702
+ # * {Types::CreateStreamOutput#arn #arn} => String
703
+ # * {Types::CreateStreamOutput#status #status} => String
704
+ # * {Types::CreateStreamOutput#creation_time #creation_time} => Time
705
+ # * {Types::CreateStreamOutput#ordering #ordering} => String
706
+ # * {Types::CreateStreamOutput#format #format} => String
707
+ #
708
+ # @example Request syntax with placeholder values
709
+ #
710
+ # resp = client.create_stream({
711
+ # cluster_identifier: "ClusterId", # required
712
+ # target_definition: { # required
713
+ # kinesis: {
714
+ # stream_arn: "KinesisStreamArn", # required
715
+ # role_arn: "RoleArn", # required
716
+ # },
717
+ # },
718
+ # ordering: "UNORDERED", # required, accepts UNORDERED
719
+ # format: "JSON", # required, accepts JSON
720
+ # tags: {
721
+ # "TagKey" => "TagValue",
722
+ # },
723
+ # client_token: "ClientToken",
724
+ # })
725
+ #
726
+ # @example Response structure
727
+ #
728
+ # resp.cluster_identifier #=> String
729
+ # resp.stream_identifier #=> String
730
+ # resp.arn #=> String
731
+ # resp.status #=> String, one of "CREATING", "ACTIVE", "DELETING", "DELETED", "FAILED", "IMPAIRED"
732
+ # resp.creation_time #=> Time
733
+ # resp.ordering #=> String, one of "UNORDERED"
734
+ # resp.format #=> String, one of "JSON"
735
+ #
736
+ # @see http://docs.aws.amazon.com/goto/WebAPI/dsql-2018-05-10/CreateStream AWS API Documentation
737
+ #
738
+ # @overload create_stream(params = {})
739
+ # @param [Hash] params ({})
740
+ def create_stream(params = {}, options = {})
741
+ req = build_request(:create_stream, params)
742
+ req.send_request(options)
743
+ end
744
+
640
745
  # Deletes a cluster in Amazon Aurora DSQL.
641
746
  #
642
747
  # @option params [required, String] :identifier
@@ -736,6 +841,61 @@ module Aws::DSQL
736
841
  req.send_request(options)
737
842
  end
738
843
 
844
+ # Deletes a stream from a cluster.
845
+ #
846
+ # @option params [required, String] :cluster_identifier
847
+ # The ID of the cluster containing the stream to delete.
848
+ #
849
+ # @option params [required, String] :stream_identifier
850
+ # The ID of the stream to delete.
851
+ #
852
+ # @option params [String] :client_token
853
+ # A unique, case-sensitive identifier that you provide to ensure the
854
+ # idempotency of the request. Idempotency ensures that an API request
855
+ # completes only once. With an idempotent request, if the original
856
+ # request completes successfully, the subsequent retries with the same
857
+ # client token return the result from the original successful request
858
+ # and they have no additional effect.
859
+ #
860
+ # If you don't specify a client token, the Amazon Web Services SDK
861
+ # automatically generates one.
862
+ #
863
+ # **A suitable default value is auto-generated.** You should normally
864
+ # not need to pass this option.**
865
+ #
866
+ # @return [Types::DeleteStreamOutput] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
867
+ #
868
+ # * {Types::DeleteStreamOutput#cluster_identifier #cluster_identifier} => String
869
+ # * {Types::DeleteStreamOutput#stream_identifier #stream_identifier} => String
870
+ # * {Types::DeleteStreamOutput#arn #arn} => String
871
+ # * {Types::DeleteStreamOutput#status #status} => String
872
+ # * {Types::DeleteStreamOutput#creation_time #creation_time} => Time
873
+ #
874
+ # @example Request syntax with placeholder values
875
+ #
876
+ # resp = client.delete_stream({
877
+ # cluster_identifier: "ClusterId", # required
878
+ # stream_identifier: "StreamId", # required
879
+ # client_token: "ClientToken",
880
+ # })
881
+ #
882
+ # @example Response structure
883
+ #
884
+ # resp.cluster_identifier #=> String
885
+ # resp.stream_identifier #=> String
886
+ # resp.arn #=> String
887
+ # resp.status #=> String, one of "CREATING", "ACTIVE", "DELETING", "DELETED", "FAILED", "IMPAIRED"
888
+ # resp.creation_time #=> Time
889
+ #
890
+ # @see http://docs.aws.amazon.com/goto/WebAPI/dsql-2018-05-10/DeleteStream AWS API Documentation
891
+ #
892
+ # @overload delete_stream(params = {})
893
+ # @param [Hash] params ({})
894
+ def delete_stream(params = {}, options = {})
895
+ req = build_request(:delete_stream, params)
896
+ req.send_request(options)
897
+ end
898
+
739
899
  # Retrieves information about a cluster.
740
900
  #
741
901
  # @option params [required, String] :identifier
@@ -830,6 +990,65 @@ module Aws::DSQL
830
990
  req.send_request(options)
831
991
  end
832
992
 
993
+ # Retrieves information about a stream.
994
+ #
995
+ # @option params [required, String] :cluster_identifier
996
+ # The ID of the cluster containing the stream to retrieve.
997
+ #
998
+ # @option params [required, String] :stream_identifier
999
+ # The ID of the stream to retrieve.
1000
+ #
1001
+ # @return [Types::GetStreamOutput] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
1002
+ #
1003
+ # * {Types::GetStreamOutput#cluster_identifier #cluster_identifier} => String
1004
+ # * {Types::GetStreamOutput#stream_identifier #stream_identifier} => String
1005
+ # * {Types::GetStreamOutput#arn #arn} => String
1006
+ # * {Types::GetStreamOutput#status #status} => String
1007
+ # * {Types::GetStreamOutput#creation_time #creation_time} => Time
1008
+ # * {Types::GetStreamOutput#ordering #ordering} => String
1009
+ # * {Types::GetStreamOutput#format #format} => String
1010
+ # * {Types::GetStreamOutput#target_definition #target_definition} => Types::TargetDefinition
1011
+ # * {Types::GetStreamOutput#status_reason #status_reason} => Types::StatusReason
1012
+ # * {Types::GetStreamOutput#tags #tags} => Hash&lt;String,String&gt;
1013
+ #
1014
+ # @example Request syntax with placeholder values
1015
+ #
1016
+ # resp = client.get_stream({
1017
+ # cluster_identifier: "ClusterId", # required
1018
+ # stream_identifier: "StreamId", # required
1019
+ # })
1020
+ #
1021
+ # @example Response structure
1022
+ #
1023
+ # resp.cluster_identifier #=> String
1024
+ # resp.stream_identifier #=> String
1025
+ # resp.arn #=> String
1026
+ # resp.status #=> String, one of "CREATING", "ACTIVE", "DELETING", "DELETED", "FAILED", "IMPAIRED"
1027
+ # resp.creation_time #=> Time
1028
+ # resp.ordering #=> String, one of "UNORDERED"
1029
+ # resp.format #=> String, one of "JSON"
1030
+ # resp.target_definition.kinesis.stream_arn #=> String
1031
+ # resp.target_definition.kinesis.role_arn #=> String
1032
+ # resp.status_reason.error #=> String, one of "KINESIS_THROUGHPUT_EXCEEDED", "KINESIS_STREAM_NOT_FOUND", "ROLE_ACCESS_DENIED", "KINESIS_ACCESS_DENIED", "KINESIS_KMS_ACCESS_DENIED", "KINESIS_OVERSIZE_RECORD", "CLUSTER_CMK_INACCESSIBLE", "INTERNAL_ERROR"
1033
+ # resp.status_reason.updated_at #=> Time
1034
+ # resp.tags #=> Hash
1035
+ # resp.tags["TagKey"] #=> String
1036
+ #
1037
+ #
1038
+ # The following waiters are defined for this operation (see {Client#wait_until} for detailed usage):
1039
+ #
1040
+ # * stream_active
1041
+ # * stream_not_exists
1042
+ #
1043
+ # @see http://docs.aws.amazon.com/goto/WebAPI/dsql-2018-05-10/GetStream AWS API Documentation
1044
+ #
1045
+ # @overload get_stream(params = {})
1046
+ # @param [Hash] params ({})
1047
+ def get_stream(params = {}, options = {})
1048
+ req = build_request(:get_stream, params)
1049
+ req.send_request(options)
1050
+ end
1051
+
833
1052
  # Retrieves the VPC endpoint service name.
834
1053
  #
835
1054
  # @option params [required, String] :identifier
@@ -915,6 +1134,55 @@ module Aws::DSQL
915
1134
  req.send_request(options)
916
1135
  end
917
1136
 
1137
+ # Retrieves information about a list of streams for a cluster.
1138
+ #
1139
+ # @option params [required, String] :cluster_identifier
1140
+ # The ID of the cluster for which to list streams.
1141
+ #
1142
+ # @option params [Integer] :max_results
1143
+ # An optional parameter that specifies the maximum number of results to
1144
+ # return. You can use nextToken to display the next page of results.
1145
+ # Default: 10.
1146
+ #
1147
+ # @option params [String] :next_token
1148
+ # If your initial ListStreams operation returns a nextToken, you can
1149
+ # include the returned nextToken in following ListStreams operations,
1150
+ # which returns results in the next page.
1151
+ #
1152
+ # @return [Types::ListStreamsOutput] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
1153
+ #
1154
+ # * {Types::ListStreamsOutput#next_token #next_token} => String
1155
+ # * {Types::ListStreamsOutput#streams #streams} => Array&lt;Types::StreamSummary&gt;
1156
+ #
1157
+ # The returned {Seahorse::Client::Response response} is a pageable response and is Enumerable. For details on usage see {Aws::PageableResponse PageableResponse}.
1158
+ #
1159
+ # @example Request syntax with placeholder values
1160
+ #
1161
+ # resp = client.list_streams({
1162
+ # cluster_identifier: "ClusterId", # required
1163
+ # max_results: 1,
1164
+ # next_token: "NextToken",
1165
+ # })
1166
+ #
1167
+ # @example Response structure
1168
+ #
1169
+ # resp.next_token #=> String
1170
+ # resp.streams #=> Array
1171
+ # resp.streams[0].cluster_identifier #=> String
1172
+ # resp.streams[0].stream_identifier #=> String
1173
+ # resp.streams[0].arn #=> String
1174
+ # resp.streams[0].creation_time #=> Time
1175
+ # resp.streams[0].status #=> String, one of "CREATING", "ACTIVE", "DELETING", "DELETED", "FAILED", "IMPAIRED"
1176
+ #
1177
+ # @see http://docs.aws.amazon.com/goto/WebAPI/dsql-2018-05-10/ListStreams AWS API Documentation
1178
+ #
1179
+ # @overload list_streams(params = {})
1180
+ # @param [Hash] params ({})
1181
+ def list_streams(params = {}, options = {})
1182
+ req = build_request(:list_streams, params)
1183
+ req.send_request(options)
1184
+ end
1185
+
918
1186
  # Lists all of the tags for a resource.
919
1187
  #
920
1188
  # @option params [required, String] :resource_arn
@@ -1247,7 +1515,7 @@ module Aws::DSQL
1247
1515
  tracer: tracer
1248
1516
  )
1249
1517
  context[:gem_name] = 'aws-sdk-dsql'
1250
- context[:gem_version] = '1.26.0'
1518
+ context[:gem_version] = '1.27.0'
1251
1519
  Seahorse::Client::Request.new(handlers, context)
1252
1520
  end
1253
1521
 
@@ -1317,6 +1585,8 @@ module Aws::DSQL
1317
1585
  # | ------------------ | -------------------- | -------- | ------------- |
1318
1586
  # | cluster_active | {Client#get_cluster} | 2 | 60 |
1319
1587
  # | cluster_not_exists | {Client#get_cluster} | 2 | 60 |
1588
+ # | stream_active | {Client#get_stream} | 2 | 60 |
1589
+ # | stream_not_exists | {Client#get_stream} | 2 | 60 |
1320
1590
  #
1321
1591
  # @raise [Errors::FailureStateError] Raised when the waiter terminates
1322
1592
  # because the waiter has entered a state that it will not transition
@@ -1368,7 +1638,9 @@ module Aws::DSQL
1368
1638
  def waiters
1369
1639
  {
1370
1640
  cluster_active: Waiters::ClusterActive,
1371
- cluster_not_exists: Waiters::ClusterNotExists
1641
+ cluster_not_exists: Waiters::ClusterNotExists,
1642
+ stream_active: Waiters::StreamActive,
1643
+ stream_not_exists: Waiters::StreamNotExists
1372
1644
  }
1373
1645
  end
1374
1646
 
@@ -29,10 +29,14 @@ module Aws::DSQL
29
29
  ConflictException = Shapes::StructureShape.new(name: 'ConflictException')
30
30
  CreateClusterInput = Shapes::StructureShape.new(name: 'CreateClusterInput')
31
31
  CreateClusterOutput = Shapes::StructureShape.new(name: 'CreateClusterOutput')
32
+ CreateStreamInput = Shapes::StructureShape.new(name: 'CreateStreamInput')
33
+ CreateStreamOutput = Shapes::StructureShape.new(name: 'CreateStreamOutput')
32
34
  DeleteClusterInput = Shapes::StructureShape.new(name: 'DeleteClusterInput')
33
35
  DeleteClusterOutput = Shapes::StructureShape.new(name: 'DeleteClusterOutput')
34
36
  DeleteClusterPolicyInput = Shapes::StructureShape.new(name: 'DeleteClusterPolicyInput')
35
37
  DeleteClusterPolicyOutput = Shapes::StructureShape.new(name: 'DeleteClusterPolicyOutput')
38
+ DeleteStreamInput = Shapes::StructureShape.new(name: 'DeleteStreamInput')
39
+ DeleteStreamOutput = Shapes::StructureShape.new(name: 'DeleteStreamOutput')
36
40
  DeletionProtectionEnabled = Shapes::BooleanShape.new(name: 'DeletionProtectionEnabled')
37
41
  EncryptionDetails = Shapes::StructureShape.new(name: 'EncryptionDetails')
38
42
  EncryptionStatus = Shapes::StringShape.new(name: 'EncryptionStatus')
@@ -42,14 +46,20 @@ module Aws::DSQL
42
46
  GetClusterOutput = Shapes::StructureShape.new(name: 'GetClusterOutput')
43
47
  GetClusterPolicyInput = Shapes::StructureShape.new(name: 'GetClusterPolicyInput')
44
48
  GetClusterPolicyOutput = Shapes::StructureShape.new(name: 'GetClusterPolicyOutput')
49
+ GetStreamInput = Shapes::StructureShape.new(name: 'GetStreamInput')
50
+ GetStreamOutput = Shapes::StructureShape.new(name: 'GetStreamOutput')
45
51
  GetVpcEndpointServiceNameInput = Shapes::StructureShape.new(name: 'GetVpcEndpointServiceNameInput')
46
52
  GetVpcEndpointServiceNameOutput = Shapes::StructureShape.new(name: 'GetVpcEndpointServiceNameOutput')
47
53
  Integer = Shapes::IntegerShape.new(name: 'Integer')
48
54
  InternalServerException = Shapes::StructureShape.new(name: 'InternalServerException')
55
+ KinesisStreamArn = Shapes::StringShape.new(name: 'KinesisStreamArn')
56
+ KinesisTargetDefinition = Shapes::StructureShape.new(name: 'KinesisTargetDefinition')
49
57
  KmsEncryptionKey = Shapes::StringShape.new(name: 'KmsEncryptionKey')
50
58
  KmsKeyArn = Shapes::StringShape.new(name: 'KmsKeyArn')
51
59
  ListClustersInput = Shapes::StructureShape.new(name: 'ListClustersInput')
52
60
  ListClustersOutput = Shapes::StructureShape.new(name: 'ListClustersOutput')
61
+ ListStreamsInput = Shapes::StructureShape.new(name: 'ListStreamsInput')
62
+ ListStreamsOutput = Shapes::StructureShape.new(name: 'ListStreamsOutput')
53
63
  ListTagsForResourceInput = Shapes::StructureShape.new(name: 'ListTagsForResourceInput')
54
64
  ListTagsForResourceOutput = Shapes::StructureShape.new(name: 'ListTagsForResourceOutput')
55
65
  MaxResults = Shapes::IntegerShape.new(name: 'MaxResults')
@@ -61,15 +71,28 @@ module Aws::DSQL
61
71
  PutClusterPolicyOutput = Shapes::StructureShape.new(name: 'PutClusterPolicyOutput')
62
72
  Region = Shapes::StringShape.new(name: 'Region')
63
73
  ResourceNotFoundException = Shapes::StructureShape.new(name: 'ResourceNotFoundException')
74
+ RoleArn = Shapes::StringShape.new(name: 'RoleArn')
64
75
  ServiceName = Shapes::StringShape.new(name: 'ServiceName')
65
76
  ServiceQuotaExceededException = Shapes::StructureShape.new(name: 'ServiceQuotaExceededException')
77
+ StatusReason = Shapes::StructureShape.new(name: 'StatusReason')
78
+ StreamArn = Shapes::StringShape.new(name: 'StreamArn')
79
+ StreamCreationTime = Shapes::TimestampShape.new(name: 'StreamCreationTime')
80
+ StreamFailureErrorCode = Shapes::StringShape.new(name: 'StreamFailureErrorCode')
81
+ StreamFormat = Shapes::StringShape.new(name: 'StreamFormat')
82
+ StreamId = Shapes::StringShape.new(name: 'StreamId')
83
+ StreamList = Shapes::ListShape.new(name: 'StreamList')
84
+ StreamOrdering = Shapes::StringShape.new(name: 'StreamOrdering')
85
+ StreamStatus = Shapes::StringShape.new(name: 'StreamStatus')
86
+ StreamSummary = Shapes::StructureShape.new(name: 'StreamSummary')
66
87
  String = Shapes::StringShape.new(name: 'String')
67
88
  TagKey = Shapes::StringShape.new(name: 'TagKey')
68
89
  TagKeyList = Shapes::ListShape.new(name: 'TagKeyList')
69
90
  TagMap = Shapes::MapShape.new(name: 'TagMap')
70
91
  TagResourceInput = Shapes::StructureShape.new(name: 'TagResourceInput')
71
92
  TagValue = Shapes::StringShape.new(name: 'TagValue')
93
+ TargetDefinition = Shapes::UnionShape.new(name: 'TargetDefinition')
72
94
  ThrottlingException = Shapes::StructureShape.new(name: 'ThrottlingException')
95
+ Timestamp = Shapes::TimestampShape.new(name: 'Timestamp')
73
96
  UntagResourceInput = Shapes::StructureShape.new(name: 'UntagResourceInput')
74
97
  UpdateClusterInput = Shapes::StructureShape.new(name: 'UpdateClusterInput')
75
98
  UpdateClusterOutput = Shapes::StructureShape.new(name: 'UpdateClusterOutput')
@@ -113,6 +136,23 @@ module Aws::DSQL
113
136
  CreateClusterOutput.add_member(:endpoint, Shapes::ShapeRef.new(shape: Endpoint, location_name: "endpoint"))
114
137
  CreateClusterOutput.struct_class = Types::CreateClusterOutput
115
138
 
139
+ CreateStreamInput.add_member(:cluster_identifier, Shapes::ShapeRef.new(shape: ClusterId, required: true, location: "uri", location_name: "clusterIdentifier"))
140
+ CreateStreamInput.add_member(:target_definition, Shapes::ShapeRef.new(shape: TargetDefinition, required: true, location_name: "targetDefinition"))
141
+ CreateStreamInput.add_member(:ordering, Shapes::ShapeRef.new(shape: StreamOrdering, required: true, location_name: "ordering"))
142
+ CreateStreamInput.add_member(:format, Shapes::ShapeRef.new(shape: StreamFormat, required: true, location_name: "format"))
143
+ CreateStreamInput.add_member(:tags, Shapes::ShapeRef.new(shape: TagMap, location_name: "tags"))
144
+ CreateStreamInput.add_member(:client_token, Shapes::ShapeRef.new(shape: ClientToken, location_name: "clientToken", metadata: {"idempotencyToken" => true}))
145
+ CreateStreamInput.struct_class = Types::CreateStreamInput
146
+
147
+ CreateStreamOutput.add_member(:cluster_identifier, Shapes::ShapeRef.new(shape: ClusterId, required: true, location_name: "clusterIdentifier"))
148
+ CreateStreamOutput.add_member(:stream_identifier, Shapes::ShapeRef.new(shape: StreamId, required: true, location_name: "streamIdentifier"))
149
+ CreateStreamOutput.add_member(:arn, Shapes::ShapeRef.new(shape: StreamArn, required: true, location_name: "arn"))
150
+ CreateStreamOutput.add_member(:status, Shapes::ShapeRef.new(shape: StreamStatus, required: true, location_name: "status"))
151
+ CreateStreamOutput.add_member(:creation_time, Shapes::ShapeRef.new(shape: StreamCreationTime, required: true, location_name: "creationTime"))
152
+ CreateStreamOutput.add_member(:ordering, Shapes::ShapeRef.new(shape: StreamOrdering, required: true, location_name: "ordering"))
153
+ CreateStreamOutput.add_member(:format, Shapes::ShapeRef.new(shape: StreamFormat, required: true, location_name: "format"))
154
+ CreateStreamOutput.struct_class = Types::CreateStreamOutput
155
+
116
156
  DeleteClusterInput.add_member(:identifier, Shapes::ShapeRef.new(shape: ClusterId, required: true, location: "uri", location_name: "identifier"))
117
157
  DeleteClusterInput.add_member(:client_token, Shapes::ShapeRef.new(shape: ClientToken, location: "querystring", location_name: "client-token", metadata: {"idempotencyToken" => true}))
118
158
  DeleteClusterInput.struct_class = Types::DeleteClusterInput
@@ -131,6 +171,18 @@ module Aws::DSQL
131
171
  DeleteClusterPolicyOutput.add_member(:policy_version, Shapes::ShapeRef.new(shape: PolicyVersion, required: true, location_name: "policyVersion"))
132
172
  DeleteClusterPolicyOutput.struct_class = Types::DeleteClusterPolicyOutput
133
173
 
174
+ DeleteStreamInput.add_member(:cluster_identifier, Shapes::ShapeRef.new(shape: ClusterId, required: true, location: "uri", location_name: "clusterIdentifier"))
175
+ DeleteStreamInput.add_member(:stream_identifier, Shapes::ShapeRef.new(shape: StreamId, required: true, location: "uri", location_name: "streamIdentifier"))
176
+ DeleteStreamInput.add_member(:client_token, Shapes::ShapeRef.new(shape: ClientToken, location: "querystring", location_name: "client-token", metadata: {"idempotencyToken" => true}))
177
+ DeleteStreamInput.struct_class = Types::DeleteStreamInput
178
+
179
+ DeleteStreamOutput.add_member(:cluster_identifier, Shapes::ShapeRef.new(shape: ClusterId, required: true, location_name: "clusterIdentifier"))
180
+ DeleteStreamOutput.add_member(:stream_identifier, Shapes::ShapeRef.new(shape: StreamId, required: true, location_name: "streamIdentifier"))
181
+ DeleteStreamOutput.add_member(:arn, Shapes::ShapeRef.new(shape: StreamArn, required: true, location_name: "arn"))
182
+ DeleteStreamOutput.add_member(:status, Shapes::ShapeRef.new(shape: StreamStatus, required: true, location_name: "status"))
183
+ DeleteStreamOutput.add_member(:creation_time, Shapes::ShapeRef.new(shape: StreamCreationTime, required: true, location_name: "creationTime"))
184
+ DeleteStreamOutput.struct_class = Types::DeleteStreamOutput
185
+
134
186
  EncryptionDetails.add_member(:encryption_type, Shapes::ShapeRef.new(shape: EncryptionType, required: true, location_name: "encryptionType"))
135
187
  EncryptionDetails.add_member(:kms_key_arn, Shapes::ShapeRef.new(shape: KmsKeyArn, location_name: "kmsKeyArn"))
136
188
  EncryptionDetails.add_member(:encryption_status, Shapes::ShapeRef.new(shape: EncryptionStatus, required: true, location_name: "encryptionStatus"))
@@ -157,6 +209,22 @@ module Aws::DSQL
157
209
  GetClusterPolicyOutput.add_member(:policy_version, Shapes::ShapeRef.new(shape: PolicyVersion, required: true, location_name: "policyVersion"))
158
210
  GetClusterPolicyOutput.struct_class = Types::GetClusterPolicyOutput
159
211
 
212
+ GetStreamInput.add_member(:cluster_identifier, Shapes::ShapeRef.new(shape: ClusterId, required: true, location: "uri", location_name: "clusterIdentifier"))
213
+ GetStreamInput.add_member(:stream_identifier, Shapes::ShapeRef.new(shape: StreamId, required: true, location: "uri", location_name: "streamIdentifier"))
214
+ GetStreamInput.struct_class = Types::GetStreamInput
215
+
216
+ GetStreamOutput.add_member(:cluster_identifier, Shapes::ShapeRef.new(shape: ClusterId, required: true, location_name: "clusterIdentifier"))
217
+ GetStreamOutput.add_member(:stream_identifier, Shapes::ShapeRef.new(shape: StreamId, required: true, location_name: "streamIdentifier"))
218
+ GetStreamOutput.add_member(:arn, Shapes::ShapeRef.new(shape: StreamArn, required: true, location_name: "arn"))
219
+ GetStreamOutput.add_member(:status, Shapes::ShapeRef.new(shape: StreamStatus, required: true, location_name: "status"))
220
+ GetStreamOutput.add_member(:creation_time, Shapes::ShapeRef.new(shape: StreamCreationTime, required: true, location_name: "creationTime"))
221
+ GetStreamOutput.add_member(:ordering, Shapes::ShapeRef.new(shape: StreamOrdering, required: true, location_name: "ordering"))
222
+ GetStreamOutput.add_member(:format, Shapes::ShapeRef.new(shape: StreamFormat, required: true, location_name: "format"))
223
+ GetStreamOutput.add_member(:target_definition, Shapes::ShapeRef.new(shape: TargetDefinition, location_name: "targetDefinition"))
224
+ GetStreamOutput.add_member(:status_reason, Shapes::ShapeRef.new(shape: StatusReason, location_name: "statusReason"))
225
+ GetStreamOutput.add_member(:tags, Shapes::ShapeRef.new(shape: TagMap, location_name: "tags"))
226
+ GetStreamOutput.struct_class = Types::GetStreamOutput
227
+
160
228
  GetVpcEndpointServiceNameInput.add_member(:identifier, Shapes::ShapeRef.new(shape: ClusterId, required: true, location: "uri", location_name: "identifier"))
161
229
  GetVpcEndpointServiceNameInput.struct_class = Types::GetVpcEndpointServiceNameInput
162
230
 
@@ -168,6 +236,10 @@ module Aws::DSQL
168
236
  InternalServerException.add_member(:retry_after_seconds, Shapes::ShapeRef.new(shape: Integer, location: "header", location_name: "Retry-After"))
169
237
  InternalServerException.struct_class = Types::InternalServerException
170
238
 
239
+ KinesisTargetDefinition.add_member(:stream_arn, Shapes::ShapeRef.new(shape: KinesisStreamArn, required: true, location_name: "streamArn"))
240
+ KinesisTargetDefinition.add_member(:role_arn, Shapes::ShapeRef.new(shape: RoleArn, required: true, location_name: "roleArn"))
241
+ KinesisTargetDefinition.struct_class = Types::KinesisTargetDefinition
242
+
171
243
  ListClustersInput.add_member(:max_results, Shapes::ShapeRef.new(shape: MaxResults, location: "querystring", location_name: "max-results"))
172
244
  ListClustersInput.add_member(:next_token, Shapes::ShapeRef.new(shape: NextToken, location: "querystring", location_name: "next-token"))
173
245
  ListClustersInput.struct_class = Types::ListClustersInput
@@ -176,6 +248,15 @@ module Aws::DSQL
176
248
  ListClustersOutput.add_member(:clusters, Shapes::ShapeRef.new(shape: ClusterList, required: true, location_name: "clusters"))
177
249
  ListClustersOutput.struct_class = Types::ListClustersOutput
178
250
 
251
+ ListStreamsInput.add_member(:cluster_identifier, Shapes::ShapeRef.new(shape: ClusterId, required: true, location: "uri", location_name: "clusterIdentifier"))
252
+ ListStreamsInput.add_member(:max_results, Shapes::ShapeRef.new(shape: MaxResults, location: "querystring", location_name: "max-results"))
253
+ ListStreamsInput.add_member(:next_token, Shapes::ShapeRef.new(shape: NextToken, location: "querystring", location_name: "next-token"))
254
+ ListStreamsInput.struct_class = Types::ListStreamsInput
255
+
256
+ ListStreamsOutput.add_member(:next_token, Shapes::ShapeRef.new(shape: NextToken, location_name: "nextToken"))
257
+ ListStreamsOutput.add_member(:streams, Shapes::ShapeRef.new(shape: StreamList, required: true, location_name: "streams"))
258
+ ListStreamsOutput.struct_class = Types::ListStreamsOutput
259
+
179
260
  ListTagsForResourceInput.add_member(:resource_arn, Shapes::ShapeRef.new(shape: Arn, required: true, location: "uri", location_name: "resourceArn"))
180
261
  ListTagsForResourceInput.struct_class = Types::ListTagsForResourceInput
181
262
 
@@ -208,6 +289,19 @@ module Aws::DSQL
208
289
  ServiceQuotaExceededException.add_member(:quota_code, Shapes::ShapeRef.new(shape: String, required: true, location_name: "quotaCode"))
209
290
  ServiceQuotaExceededException.struct_class = Types::ServiceQuotaExceededException
210
291
 
292
+ StatusReason.add_member(:error, Shapes::ShapeRef.new(shape: StreamFailureErrorCode, required: true, location_name: "error"))
293
+ StatusReason.add_member(:updated_at, Shapes::ShapeRef.new(shape: Timestamp, required: true, location_name: "updatedAt"))
294
+ StatusReason.struct_class = Types::StatusReason
295
+
296
+ StreamList.member = Shapes::ShapeRef.new(shape: StreamSummary)
297
+
298
+ StreamSummary.add_member(:cluster_identifier, Shapes::ShapeRef.new(shape: ClusterId, required: true, location_name: "clusterIdentifier"))
299
+ StreamSummary.add_member(:stream_identifier, Shapes::ShapeRef.new(shape: StreamId, required: true, location_name: "streamIdentifier"))
300
+ StreamSummary.add_member(:arn, Shapes::ShapeRef.new(shape: StreamArn, required: true, location_name: "arn"))
301
+ StreamSummary.add_member(:creation_time, Shapes::ShapeRef.new(shape: StreamCreationTime, required: true, location_name: "creationTime"))
302
+ StreamSummary.add_member(:status, Shapes::ShapeRef.new(shape: StreamStatus, required: true, location_name: "status"))
303
+ StreamSummary.struct_class = Types::StreamSummary
304
+
211
305
  TagKeyList.member = Shapes::ShapeRef.new(shape: TagKey)
212
306
 
213
307
  TagMap.key = Shapes::ShapeRef.new(shape: TagKey)
@@ -217,6 +311,12 @@ module Aws::DSQL
217
311
  TagResourceInput.add_member(:tags, Shapes::ShapeRef.new(shape: TagMap, required: true, location_name: "tags"))
218
312
  TagResourceInput.struct_class = Types::TagResourceInput
219
313
 
314
+ TargetDefinition.add_member(:kinesis, Shapes::ShapeRef.new(shape: KinesisTargetDefinition, location_name: "kinesis"))
315
+ TargetDefinition.add_member(:unknown, Shapes::ShapeRef.new(shape: nil, location_name: 'unknown'))
316
+ TargetDefinition.add_member_subclass(:kinesis, Types::TargetDefinition::Kinesis)
317
+ TargetDefinition.add_member_subclass(:unknown, Types::TargetDefinition::Unknown)
318
+ TargetDefinition.struct_class = Types::TargetDefinition
319
+
220
320
  ThrottlingException.add_member(:message, Shapes::ShapeRef.new(shape: String, required: true, location_name: "message"))
221
321
  ThrottlingException.add_member(:service_code, Shapes::ShapeRef.new(shape: String, location_name: "serviceCode"))
222
322
  ThrottlingException.add_member(:quota_code, Shapes::ShapeRef.new(shape: String, location_name: "quotaCode"))
@@ -284,6 +384,21 @@ module Aws::DSQL
284
384
  o.errors << Shapes::ShapeRef.new(shape: ConflictException)
285
385
  end)
286
386
 
387
+ api.add_operation(:create_stream, Seahorse::Model::Operation.new.tap do |o|
388
+ o.name = "CreateStream"
389
+ o.http_method = "POST"
390
+ o.http_request_uri = "/stream/{clusterIdentifier}"
391
+ o.input = Shapes::ShapeRef.new(shape: CreateStreamInput)
392
+ o.output = Shapes::ShapeRef.new(shape: CreateStreamOutput)
393
+ o.errors << Shapes::ShapeRef.new(shape: ServiceQuotaExceededException)
394
+ o.errors << Shapes::ShapeRef.new(shape: ThrottlingException)
395
+ o.errors << Shapes::ShapeRef.new(shape: ValidationException)
396
+ o.errors << Shapes::ShapeRef.new(shape: AccessDeniedException)
397
+ o.errors << Shapes::ShapeRef.new(shape: InternalServerException)
398
+ o.errors << Shapes::ShapeRef.new(shape: ResourceNotFoundException)
399
+ o.errors << Shapes::ShapeRef.new(shape: ConflictException)
400
+ end)
401
+
287
402
  api.add_operation(:delete_cluster, Seahorse::Model::Operation.new.tap do |o|
288
403
  o.name = "DeleteCluster"
289
404
  o.http_method = "DELETE"
@@ -312,6 +427,20 @@ module Aws::DSQL
312
427
  o.errors << Shapes::ShapeRef.new(shape: ConflictException)
313
428
  end)
314
429
 
430
+ api.add_operation(:delete_stream, Seahorse::Model::Operation.new.tap do |o|
431
+ o.name = "DeleteStream"
432
+ o.http_method = "DELETE"
433
+ o.http_request_uri = "/stream/{clusterIdentifier}/{streamIdentifier}"
434
+ o.input = Shapes::ShapeRef.new(shape: DeleteStreamInput)
435
+ o.output = Shapes::ShapeRef.new(shape: DeleteStreamOutput)
436
+ o.errors << Shapes::ShapeRef.new(shape: ThrottlingException)
437
+ o.errors << Shapes::ShapeRef.new(shape: AccessDeniedException)
438
+ o.errors << Shapes::ShapeRef.new(shape: ValidationException)
439
+ o.errors << Shapes::ShapeRef.new(shape: InternalServerException)
440
+ o.errors << Shapes::ShapeRef.new(shape: ResourceNotFoundException)
441
+ o.errors << Shapes::ShapeRef.new(shape: ConflictException)
442
+ end)
443
+
315
444
  api.add_operation(:get_cluster, Seahorse::Model::Operation.new.tap do |o|
316
445
  o.name = "GetCluster"
317
446
  o.http_method = "GET"
@@ -338,6 +467,19 @@ module Aws::DSQL
338
467
  o.errors << Shapes::ShapeRef.new(shape: ResourceNotFoundException)
339
468
  end)
340
469
 
470
+ api.add_operation(:get_stream, Seahorse::Model::Operation.new.tap do |o|
471
+ o.name = "GetStream"
472
+ o.http_method = "GET"
473
+ o.http_request_uri = "/stream/{clusterIdentifier}/{streamIdentifier}"
474
+ o.input = Shapes::ShapeRef.new(shape: GetStreamInput)
475
+ o.output = Shapes::ShapeRef.new(shape: GetStreamOutput)
476
+ o.errors << Shapes::ShapeRef.new(shape: ThrottlingException)
477
+ o.errors << Shapes::ShapeRef.new(shape: AccessDeniedException)
478
+ o.errors << Shapes::ShapeRef.new(shape: ValidationException)
479
+ o.errors << Shapes::ShapeRef.new(shape: InternalServerException)
480
+ o.errors << Shapes::ShapeRef.new(shape: ResourceNotFoundException)
481
+ end)
482
+
341
483
  api.add_operation(:get_vpc_endpoint_service_name, Seahorse::Model::Operation.new.tap do |o|
342
484
  o.name = "GetVpcEndpointServiceName"
343
485
  o.http_method = "GET"
@@ -370,6 +512,25 @@ module Aws::DSQL
370
512
  )
371
513
  end)
372
514
 
515
+ api.add_operation(:list_streams, Seahorse::Model::Operation.new.tap do |o|
516
+ o.name = "ListStreams"
517
+ o.http_method = "GET"
518
+ o.http_request_uri = "/stream/{clusterIdentifier}"
519
+ o.input = Shapes::ShapeRef.new(shape: ListStreamsInput)
520
+ o.output = Shapes::ShapeRef.new(shape: ListStreamsOutput)
521
+ o.errors << Shapes::ShapeRef.new(shape: ThrottlingException)
522
+ o.errors << Shapes::ShapeRef.new(shape: AccessDeniedException)
523
+ o.errors << Shapes::ShapeRef.new(shape: ValidationException)
524
+ o.errors << Shapes::ShapeRef.new(shape: InternalServerException)
525
+ o.errors << Shapes::ShapeRef.new(shape: ResourceNotFoundException)
526
+ o[:pager] = Aws::Pager.new(
527
+ limit_key: "max_results",
528
+ tokens: {
529
+ "next_token" => "next_token"
530
+ }
531
+ )
532
+ end)
533
+
373
534
  api.add_operation(:list_tags_for_resource, Seahorse::Model::Operation.new.tap do |o|
374
535
  o.name = "ListTagsForResource"
375
536
  o.http_method = "GET"