Skip to content

Commit 9933561

Browse files
author
awstools
committed
feat(client-firehose): Amazon Data Firehose / Features : Adds support for a new DeliveryStreamType, DatabaseAsSource. DatabaseAsSource hoses allow customers to stream CDC events from their RDS and Amazon EC2 hosted databases, running MySQL and PostgreSQL database engines, to Iceberg Table destinations.
1 parent 88e1c21 commit 9933561

15 files changed

+2002
-582
lines changed

clients/client-firehose/src/commands/CreateDeliveryStreamCommand.ts

+70-12
Original file line numberDiff line numberDiff line change
@@ -32,30 +32,30 @@ export interface CreateDeliveryStreamCommandInput extends CreateDeliveryStreamIn
3232
export interface CreateDeliveryStreamCommandOutput extends CreateDeliveryStreamOutput, __MetadataBearer {}
3333

3434
/**
35-
* <p>Creates a Firehose delivery stream.</p>
36-
* <p>By default, you can create up to 50 delivery streams per Amazon Web Services
35+
* <p>Creates a Firehose stream.</p>
36+
* <p>By default, you can create up to 50 Firehose streams per Amazon Web Services
3737
* Region.</p>
3838
* <p>This is an asynchronous operation that immediately returns. The initial status of the
39-
* delivery stream is <code>CREATING</code>. After the delivery stream is created, its status
40-
* is <code>ACTIVE</code> and it now accepts data. If the delivery stream creation fails, the
39+
* Firehose stream is <code>CREATING</code>. After the Firehose stream is created, its status
40+
* is <code>ACTIVE</code> and it now accepts data. If the Firehose stream creation fails, the
4141
* status transitions to <code>CREATING_FAILED</code>. Attempts to send data to a delivery
4242
* stream that is not in the <code>ACTIVE</code> state cause an exception. To check the state
43-
* of a delivery stream, use <a>DescribeDeliveryStream</a>.</p>
44-
* <p>If the status of a delivery stream is <code>CREATING_FAILED</code>, this status
43+
* of a Firehose stream, use <a>DescribeDeliveryStream</a>.</p>
44+
* <p>If the status of a Firehose stream is <code>CREATING_FAILED</code>, this status
4545
* doesn't change, and you can't invoke <code>CreateDeliveryStream</code> again on it.
4646
* However, you can invoke the <a>DeleteDeliveryStream</a> operation to delete
4747
* it.</p>
48-
* <p>A Firehose delivery stream can be configured to receive records directly
48+
* <p>A Firehose stream can be configured to receive records directly
4949
* from providers using <a>PutRecord</a> or <a>PutRecordBatch</a>, or it
5050
* can be configured to use an existing Kinesis stream as its source. To specify a Kinesis
5151
* data stream as input, set the <code>DeliveryStreamType</code> parameter to
5252
* <code>KinesisStreamAsSource</code>, and provide the Kinesis stream Amazon Resource Name
5353
* (ARN) and role ARN in the <code>KinesisStreamSourceConfiguration</code>
5454
* parameter.</p>
55-
* <p>To create a delivery stream with server-side encryption (SSE) enabled, include <a>DeliveryStreamEncryptionConfigurationInput</a> in your request. This is
55+
* <p>To create a Firehose stream with server-side encryption (SSE) enabled, include <a>DeliveryStreamEncryptionConfigurationInput</a> in your request. This is
5656
* optional. You can also invoke <a>StartDeliveryStreamEncryption</a> to turn on
57-
* SSE for an existing delivery stream that doesn't have SSE enabled.</p>
58-
* <p>A delivery stream is configured with a single destination, such as Amazon Simple
57+
* SSE for an existing Firehose stream that doesn't have SSE enabled.</p>
58+
* <p>A Firehose stream is configured with a single destination, such as Amazon Simple
5959
* Storage Service (Amazon S3), Amazon Redshift, Amazon OpenSearch Service, Amazon OpenSearch
6060
* Serverless, Splunk, and any custom HTTP endpoint or HTTP endpoints owned by or supported by
6161
* third-party service providers, including Datadog, Dynatrace, LogicMonitor, MongoDB, New
@@ -107,7 +107,7 @@ export interface CreateDeliveryStreamCommandOutput extends CreateDeliveryStreamO
107107
* const client = new FirehoseClient(config);
108108
* const input = { // CreateDeliveryStreamInput
109109
* DeliveryStreamName: "STRING_VALUE", // required
110-
* DeliveryStreamType: "DirectPut" || "KinesisStreamAsSource" || "MSKAsSource",
110+
* DeliveryStreamType: "DirectPut" || "KinesisStreamAsSource" || "MSKAsSource" || "DatabaseAsSource",
111111
* KinesisStreamSourceConfiguration: { // KinesisStreamSourceConfiguration
112112
* KinesisStreamARN: "STRING_VALUE", // required
113113
* RoleARN: "STRING_VALUE", // required
@@ -586,9 +586,22 @@ export interface CreateDeliveryStreamCommandOutput extends CreateDeliveryStreamO
586586
* UniqueKeys: [
587587
* "STRING_VALUE",
588588
* ],
589+
* PartitionSpec: { // PartitionSpec
590+
* Identity: [ // PartitionFields
591+
* { // PartitionField
592+
* SourceName: "STRING_VALUE", // required
593+
* },
594+
* ],
595+
* },
589596
* S3ErrorOutputPrefix: "STRING_VALUE",
590597
* },
591598
* ],
599+
* SchemaEvolutionConfiguration: { // SchemaEvolutionConfiguration
600+
* Enabled: true || false, // required
601+
* },
602+
* TableCreationConfiguration: { // TableCreationConfiguration
603+
* Enabled: true || false, // required
604+
* },
592605
* BufferingHints: "<BufferingHints>",
593606
* CloudWatchLoggingOptions: "<CloudWatchLoggingOptions>",
594607
* ProcessingConfiguration: "<ProcessingConfiguration>",
@@ -599,9 +612,54 @@ export interface CreateDeliveryStreamCommandOutput extends CreateDeliveryStreamO
599612
* RoleARN: "STRING_VALUE", // required
600613
* CatalogConfiguration: { // CatalogConfiguration
601614
* CatalogARN: "STRING_VALUE",
615+
* WarehouseLocation: "STRING_VALUE",
602616
* },
603617
* S3Configuration: "<S3DestinationConfiguration>", // required
604618
* },
619+
* DatabaseSourceConfiguration: { // DatabaseSourceConfiguration
620+
* Type: "MySQL" || "PostgreSQL", // required
621+
* Endpoint: "STRING_VALUE", // required
622+
* Port: Number("int"), // required
623+
* SSLMode: "Disabled" || "Enabled",
624+
* Databases: { // DatabaseList
625+
* Include: [ // DatabaseIncludeOrExcludeList
626+
* "STRING_VALUE",
627+
* ],
628+
* Exclude: [
629+
* "STRING_VALUE",
630+
* ],
631+
* },
632+
* Tables: { // DatabaseTableList
633+
* Include: [ // DatabaseTableIncludeOrExcludeList
634+
* "STRING_VALUE",
635+
* ],
636+
* Exclude: [
637+
* "STRING_VALUE",
638+
* ],
639+
* },
640+
* Columns: { // DatabaseColumnList
641+
* Include: [ // DatabaseColumnIncludeOrExcludeList
642+
* "STRING_VALUE",
643+
* ],
644+
* Exclude: [
645+
* "STRING_VALUE",
646+
* ],
647+
* },
648+
* SurrogateKeys: [ // DatabaseSurrogateKeyList
649+
* "STRING_VALUE",
650+
* ],
651+
* SnapshotWatermarkTable: "STRING_VALUE", // required
652+
* DatabaseSourceAuthenticationConfiguration: { // DatabaseSourceAuthenticationConfiguration
653+
* SecretsManagerConfiguration: {
654+
* SecretARN: "STRING_VALUE",
655+
* RoleARN: "STRING_VALUE",
656+
* Enabled: true || false, // required
657+
* },
658+
* },
659+
* DatabaseSourceVPCConfiguration: { // DatabaseSourceVPCConfiguration
660+
* VpcEndpointServiceName: "STRING_VALUE", // required
661+
* },
662+
* },
605663
* };
606664
* const command = new CreateDeliveryStreamCommand(input);
607665
* const response = await client.send(command);
@@ -622,7 +680,7 @@ export interface CreateDeliveryStreamCommandOutput extends CreateDeliveryStreamO
622680
*
623681
* @throws {@link InvalidKMSResourceException} (client fault)
624682
* <p>Firehose throws this exception when an attempt to put records or to start
625-
* or stop delivery stream encryption fails. This happens when the KMS service throws one of
683+
* or stop Firehose stream encryption fails. This happens when the KMS service throws one of
626684
* the following exception types: <code>AccessDeniedException</code>,
627685
* <code>InvalidStateException</code>, <code>DisabledException</code>, or
628686
* <code>NotFoundException</code>.</p>

clients/client-firehose/src/commands/DeleteDeliveryStreamCommand.ts

+8-8
Original file line numberDiff line numberDiff line change
@@ -28,17 +28,17 @@ export interface DeleteDeliveryStreamCommandInput extends DeleteDeliveryStreamIn
2828
export interface DeleteDeliveryStreamCommandOutput extends DeleteDeliveryStreamOutput, __MetadataBearer {}
2929

3030
/**
31-
* <p>Deletes a delivery stream and its data.</p>
32-
* <p>You can delete a delivery stream only if it is in one of the following states:
31+
* <p>Deletes a Firehose stream and its data.</p>
32+
* <p>You can delete a Firehose stream only if it is in one of the following states:
3333
* <code>ACTIVE</code>, <code>DELETING</code>, <code>CREATING_FAILED</code>, or
34-
* <code>DELETING_FAILED</code>. You can't delete a delivery stream that is in the
35-
* <code>CREATING</code> state. To check the state of a delivery stream, use <a>DescribeDeliveryStream</a>. </p>
36-
* <p>DeleteDeliveryStream is an asynchronous API. When an API request to DeleteDeliveryStream succeeds, the delivery stream is marked for deletion, and it goes into the
37-
* <code>DELETING</code> state.While the delivery stream is in the <code>DELETING</code> state, the service might
34+
* <code>DELETING_FAILED</code>. You can't delete a Firehose stream that is in the
35+
* <code>CREATING</code> state. To check the state of a Firehose stream, use <a>DescribeDeliveryStream</a>. </p>
36+
* <p>DeleteDeliveryStream is an asynchronous API. When an API request to DeleteDeliveryStream succeeds, the Firehose stream is marked for deletion, and it goes into the
37+
* <code>DELETING</code> state.While the Firehose stream is in the <code>DELETING</code> state, the service might
3838
* continue to accept records, but it doesn't make any guarantees with respect to delivering
3939
* the data. Therefore, as a best practice, first stop any applications that are sending
40-
* records before you delete a delivery stream.</p>
41-
* <p>Removal of a delivery stream that is in the <code>DELETING</code> state is a low priority operation for the service. A stream may remain in the
40+
* records before you delete a Firehose stream.</p>
41+
* <p>Removal of a Firehose stream that is in the <code>DELETING</code> state is a low priority operation for the service. A stream may remain in the
4242
* <code>DELETING</code> state for several minutes. Therefore, as a best practice, applications should not wait for streams in the <code>DELETING</code> state
4343
* to be removed. </p>
4444
* @example

clients/client-firehose/src/commands/DescribeDeliveryStreamCommand.ts

+76-8
Original file line numberDiff line numberDiff line change
@@ -32,10 +32,10 @@ export interface DescribeDeliveryStreamCommandInput extends DescribeDeliveryStre
3232
export interface DescribeDeliveryStreamCommandOutput extends DescribeDeliveryStreamOutput, __MetadataBearer {}
3333

3434
/**
35-
* <p>Describes the specified delivery stream and its status. For example, after your
36-
* delivery stream is created, call <code>DescribeDeliveryStream</code> to see whether the
37-
* delivery stream is <code>ACTIVE</code> and therefore ready for data to be sent to it. </p>
38-
* <p>If the status of a delivery stream is <code>CREATING_FAILED</code>, this status
35+
* <p>Describes the specified Firehose stream and its status. For example, after your
36+
* Firehose stream is created, call <code>DescribeDeliveryStream</code> to see whether the
37+
* Firehose stream is <code>ACTIVE</code> and therefore ready for data to be sent to it. </p>
38+
* <p>If the status of a Firehose stream is <code>CREATING_FAILED</code>, this status
3939
* doesn't change, and you can't invoke <a>CreateDeliveryStream</a> again on it.
4040
* However, you can invoke the <a>DeleteDeliveryStream</a> operation to delete it.
4141
* If the status is <code>DELETING_FAILED</code>, you can force deletion by invoking <a>DeleteDeliveryStream</a> again but with <a>DeleteDeliveryStreamInput$AllowForceDelete</a> set to true.</p>
@@ -58,19 +58,19 @@ export interface DescribeDeliveryStreamCommandOutput extends DescribeDeliveryStr
5858
* // DeliveryStreamARN: "STRING_VALUE", // required
5959
* // DeliveryStreamStatus: "CREATING" || "CREATING_FAILED" || "DELETING" || "DELETING_FAILED" || "ACTIVE", // required
6060
* // FailureDescription: { // FailureDescription
61-
* // Type: "RETIRE_KMS_GRANT_FAILED" || "CREATE_KMS_GRANT_FAILED" || "KMS_ACCESS_DENIED" || "DISABLED_KMS_KEY" || "INVALID_KMS_KEY" || "KMS_KEY_NOT_FOUND" || "KMS_OPT_IN_REQUIRED" || "CREATE_ENI_FAILED" || "DELETE_ENI_FAILED" || "SUBNET_NOT_FOUND" || "SECURITY_GROUP_NOT_FOUND" || "ENI_ACCESS_DENIED" || "SUBNET_ACCESS_DENIED" || "SECURITY_GROUP_ACCESS_DENIED" || "UNKNOWN_ERROR", // required
61+
* // Type: "VPC_ENDPOINT_SERVICE_NAME_NOT_FOUND" || "VPC_INTERFACE_ENDPOINT_SERVICE_ACCESS_DENIED" || "RETIRE_KMS_GRANT_FAILED" || "CREATE_KMS_GRANT_FAILED" || "KMS_ACCESS_DENIED" || "DISABLED_KMS_KEY" || "INVALID_KMS_KEY" || "KMS_KEY_NOT_FOUND" || "KMS_OPT_IN_REQUIRED" || "CREATE_ENI_FAILED" || "DELETE_ENI_FAILED" || "SUBNET_NOT_FOUND" || "SECURITY_GROUP_NOT_FOUND" || "ENI_ACCESS_DENIED" || "SUBNET_ACCESS_DENIED" || "SECURITY_GROUP_ACCESS_DENIED" || "UNKNOWN_ERROR", // required
6262
* // Details: "STRING_VALUE", // required
6363
* // },
6464
* // DeliveryStreamEncryptionConfiguration: { // DeliveryStreamEncryptionConfiguration
6565
* // KeyARN: "STRING_VALUE",
6666
* // KeyType: "AWS_OWNED_CMK" || "CUSTOMER_MANAGED_CMK",
6767
* // Status: "ENABLED" || "ENABLING" || "ENABLING_FAILED" || "DISABLED" || "DISABLING" || "DISABLING_FAILED",
6868
* // FailureDescription: {
69-
* // Type: "RETIRE_KMS_GRANT_FAILED" || "CREATE_KMS_GRANT_FAILED" || "KMS_ACCESS_DENIED" || "DISABLED_KMS_KEY" || "INVALID_KMS_KEY" || "KMS_KEY_NOT_FOUND" || "KMS_OPT_IN_REQUIRED" || "CREATE_ENI_FAILED" || "DELETE_ENI_FAILED" || "SUBNET_NOT_FOUND" || "SECURITY_GROUP_NOT_FOUND" || "ENI_ACCESS_DENIED" || "SUBNET_ACCESS_DENIED" || "SECURITY_GROUP_ACCESS_DENIED" || "UNKNOWN_ERROR", // required
69+
* // Type: "VPC_ENDPOINT_SERVICE_NAME_NOT_FOUND" || "VPC_INTERFACE_ENDPOINT_SERVICE_ACCESS_DENIED" || "RETIRE_KMS_GRANT_FAILED" || "CREATE_KMS_GRANT_FAILED" || "KMS_ACCESS_DENIED" || "DISABLED_KMS_KEY" || "INVALID_KMS_KEY" || "KMS_KEY_NOT_FOUND" || "KMS_OPT_IN_REQUIRED" || "CREATE_ENI_FAILED" || "DELETE_ENI_FAILED" || "SUBNET_NOT_FOUND" || "SECURITY_GROUP_NOT_FOUND" || "ENI_ACCESS_DENIED" || "SUBNET_ACCESS_DENIED" || "SECURITY_GROUP_ACCESS_DENIED" || "UNKNOWN_ERROR", // required
7070
* // Details: "STRING_VALUE", // required
7171
* // },
7272
* // },
73-
* // DeliveryStreamType: "DirectPut" || "KinesisStreamAsSource" || "MSKAsSource", // required
73+
* // DeliveryStreamType: "DirectPut" || "KinesisStreamAsSource" || "MSKAsSource" || "DatabaseAsSource", // required
7474
* // VersionId: "STRING_VALUE", // required
7575
* // CreateTimestamp: new Date("TIMESTAMP"),
7676
* // LastUpdateTimestamp: new Date("TIMESTAMP"),
@@ -90,6 +90,60 @@ export interface DescribeDeliveryStreamCommandOutput extends DescribeDeliveryStr
9090
* // DeliveryStartTimestamp: new Date("TIMESTAMP"),
9191
* // ReadFromTimestamp: new Date("TIMESTAMP"),
9292
* // },
93+
* // DatabaseSourceDescription: { // DatabaseSourceDescription
94+
* // Type: "MySQL" || "PostgreSQL",
95+
* // Endpoint: "STRING_VALUE",
96+
* // Port: Number("int"),
97+
* // SSLMode: "Disabled" || "Enabled",
98+
* // Databases: { // DatabaseList
99+
* // Include: [ // DatabaseIncludeOrExcludeList
100+
* // "STRING_VALUE",
101+
* // ],
102+
* // Exclude: [
103+
* // "STRING_VALUE",
104+
* // ],
105+
* // },
106+
* // Tables: { // DatabaseTableList
107+
* // Include: [ // DatabaseTableIncludeOrExcludeList
108+
* // "STRING_VALUE",
109+
* // ],
110+
* // Exclude: [
111+
* // "STRING_VALUE",
112+
* // ],
113+
* // },
114+
* // Columns: { // DatabaseColumnList
115+
* // Include: [ // DatabaseColumnIncludeOrExcludeList
116+
* // "STRING_VALUE",
117+
* // ],
118+
* // Exclude: [
119+
* // "STRING_VALUE",
120+
* // ],
121+
* // },
122+
* // SurrogateKeys: [
123+
* // "STRING_VALUE",
124+
* // ],
125+
* // SnapshotWatermarkTable: "STRING_VALUE",
126+
* // SnapshotInfo: [ // DatabaseSnapshotInfoList
127+
* // { // DatabaseSnapshotInfo
128+
* // Id: "STRING_VALUE", // required
129+
* // Table: "STRING_VALUE", // required
130+
* // RequestTimestamp: new Date("TIMESTAMP"), // required
131+
* // RequestedBy: "USER" || "FIREHOSE", // required
132+
* // Status: "IN_PROGRESS" || "COMPLETE" || "SUSPENDED", // required
133+
* // FailureDescription: "<FailureDescription>",
134+
* // },
135+
* // ],
136+
* // DatabaseSourceAuthenticationConfiguration: { // DatabaseSourceAuthenticationConfiguration
137+
* // SecretsManagerConfiguration: { // SecretsManagerConfiguration
138+
* // SecretARN: "STRING_VALUE",
139+
* // RoleARN: "STRING_VALUE",
140+
* // Enabled: true || false, // required
141+
* // },
142+
* // },
143+
* // DatabaseSourceVPCConfiguration: { // DatabaseSourceVPCConfiguration
144+
* // VpcEndpointServiceName: "STRING_VALUE", // required
145+
* // },
146+
* // },
93147
* // },
94148
* // Destinations: [ // DestinationDescriptionList // required
95149
* // { // DestinationDescription
@@ -308,7 +362,7 @@ export interface DescribeDeliveryStreamCommandOutput extends DescribeDeliveryStr
308362
* // },
309363
* // },
310364
* // CloudWatchLoggingOptions: "<CloudWatchLoggingOptions>",
311-
* // SecretsManagerConfiguration: { // SecretsManagerConfiguration
365+
* // SecretsManagerConfiguration: {
312366
* // SecretARN: "STRING_VALUE",
313367
* // RoleARN: "STRING_VALUE",
314368
* // Enabled: true || false, // required
@@ -548,9 +602,22 @@ export interface DescribeDeliveryStreamCommandOutput extends DescribeDeliveryStr
548602
* // UniqueKeys: [
549603
* // "STRING_VALUE",
550604
* // ],
605+
* // PartitionSpec: { // PartitionSpec
606+
* // Identity: [ // PartitionFields
607+
* // { // PartitionField
608+
* // SourceName: "STRING_VALUE", // required
609+
* // },
610+
* // ],
611+
* // },
551612
* // S3ErrorOutputPrefix: "STRING_VALUE",
552613
* // },
553614
* // ],
615+
* // SchemaEvolutionConfiguration: { // SchemaEvolutionConfiguration
616+
* // Enabled: true || false, // required
617+
* // },
618+
* // TableCreationConfiguration: { // TableCreationConfiguration
619+
* // Enabled: true || false, // required
620+
* // },
554621
* // BufferingHints: "<BufferingHints>",
555622
* // CloudWatchLoggingOptions: "<CloudWatchLoggingOptions>",
556623
* // ProcessingConfiguration: "<ProcessingConfiguration>",
@@ -561,6 +628,7 @@ export interface DescribeDeliveryStreamCommandOutput extends DescribeDeliveryStr
561628
* // RoleARN: "STRING_VALUE",
562629
* // CatalogConfiguration: { // CatalogConfiguration
563630
* // CatalogARN: "STRING_VALUE",
631+
* // WarehouseLocation: "STRING_VALUE",
564632
* // },
565633
* // S3DestinationDescription: "<S3DestinationDescription>",
566634
* // },

0 commit comments

Comments
 (0)