Skip to content

Commit 31a3534

Browse files
author
awstools
committed
feat(client-rds): Adds support for end-to-end IAM authentication in RDS Proxy for MySQL, MariaDB, and PostgreSQL engines.
1 parent 4312d5b commit 31a3534

File tree

9 files changed

+116
-18
lines changed

9 files changed

+116
-18
lines changed

clients/client-rds/src/commands/CreateDBProxyCommand.ts

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -38,7 +38,8 @@ export interface CreateDBProxyCommandOutput extends CreateDBProxyResponse, __Met
3838
* const input = { // CreateDBProxyRequest
3939
* DBProxyName: "STRING_VALUE", // required
4040
* EngineFamily: "MYSQL" || "POSTGRESQL" || "SQLSERVER", // required
41-
* Auth: [ // UserAuthConfigList // required
41+
* DefaultAuthScheme: "IAM_AUTH" || "NONE",
42+
* Auth: [ // UserAuthConfigList
4243
* { // UserAuthConfig
4344
* Description: "STRING_VALUE",
4445
* UserName: "STRING_VALUE",
@@ -82,6 +83,7 @@ export interface CreateDBProxyCommandOutput extends CreateDBProxyResponse, __Met
8283
* // VpcSubnetIds: [
8384
* // "STRING_VALUE",
8485
* // ],
86+
* // DefaultAuthScheme: "STRING_VALUE",
8587
* // Auth: [ // UserAuthConfigInfoList
8688
* // { // UserAuthConfigInfo
8789
* // Description: "STRING_VALUE",

clients/client-rds/src/commands/DeleteDBProxyCommand.ts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -53,6 +53,7 @@ export interface DeleteDBProxyCommandOutput extends DeleteDBProxyResponse, __Met
5353
* // VpcSubnetIds: [
5454
* // "STRING_VALUE",
5555
* // ],
56+
* // DefaultAuthScheme: "STRING_VALUE",
5657
* // Auth: [ // UserAuthConfigInfoList
5758
* // { // UserAuthConfigInfo
5859
* // Description: "STRING_VALUE",

clients/client-rds/src/commands/DeleteGlobalClusterCommand.ts

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,8 @@ import { Command as $Command } from "@smithy/smithy-client";
55
import { MetadataBearer as __MetadataBearer } from "@smithy/types";
66

77
import { commonParams } from "../endpoint/EndpointParameters";
8-
import { DeleteGlobalClusterMessage, DeleteGlobalClusterResult } from "../models/models_0";
8+
import { DeleteGlobalClusterMessage } from "../models/models_0";
9+
import { DeleteGlobalClusterResult } from "../models/models_1";
910
import { de_DeleteGlobalClusterCommand, se_DeleteGlobalClusterCommand } from "../protocols/Aws_query";
1011
import { RDSClientResolvedConfig, ServiceInputTypes, ServiceOutputTypes } from "../RDSClient";
1112

clients/client-rds/src/commands/DescribeDBProxiesCommand.ts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -64,6 +64,7 @@ export interface DescribeDBProxiesCommandOutput extends DescribeDBProxiesRespons
6464
* // VpcSubnetIds: [
6565
* // "STRING_VALUE",
6666
* // ],
67+
* // DefaultAuthScheme: "STRING_VALUE",
6768
* // Auth: [ // UserAuthConfigInfoList
6869
* // { // UserAuthConfigInfo
6970
* // Description: "STRING_VALUE",

clients/client-rds/src/commands/ModifyDBProxyCommand.ts

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -38,6 +38,7 @@ export interface ModifyDBProxyCommandOutput extends ModifyDBProxyResponse, __Met
3838
* const input = { // ModifyDBProxyRequest
3939
* DBProxyName: "STRING_VALUE", // required
4040
* NewDBProxyName: "STRING_VALUE",
41+
* DefaultAuthScheme: "IAM_AUTH" || "NONE",
4142
* Auth: [ // UserAuthConfigList
4243
* { // UserAuthConfig
4344
* Description: "STRING_VALUE",
@@ -71,6 +72,7 @@ export interface ModifyDBProxyCommandOutput extends ModifyDBProxyResponse, __Met
7172
* // VpcSubnetIds: [
7273
* // "STRING_VALUE",
7374
* // ],
75+
* // DefaultAuthScheme: "STRING_VALUE",
7476
* // Auth: [ // UserAuthConfigInfoList
7577
* // { // UserAuthConfigInfo
7678
* // Description: "STRING_VALUE",

clients/client-rds/src/models/models_0.ts

Lines changed: 34 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -11177,6 +11177,20 @@ export interface UserAuthConfig {
1117711177
ClientPasswordAuthType?: ClientPasswordAuthType | undefined;
1117811178
}
1117911179

11180+
/**
11181+
* @public
11182+
* @enum
11183+
*/
11184+
export const DefaultAuthScheme = {
11185+
IAM_AUTH: "IAM_AUTH",
11186+
NONE: "NONE",
11187+
} as const;
11188+
11189+
/**
11190+
* @public
11191+
*/
11192+
export type DefaultAuthScheme = (typeof DefaultAuthScheme)[keyof typeof DefaultAuthScheme];
11193+
1118011194
/**
1118111195
* @public
1118211196
* @enum
@@ -11242,11 +11256,21 @@ export interface CreateDBProxyRequest {
1124211256
*/
1124311257
EngineFamily: EngineFamily | undefined;
1124411258

11259+
/**
11260+
* <p>The default authentication scheme that the proxy uses for client connections to the proxy and connections from the proxy to the underlying database.
11261+
* Valid values are <code>NONE</code> and <code>IAM_AUTH</code>.
11262+
* When set to <code>IAM_AUTH</code>, the proxy uses end-to-end IAM authentication to connect to the database.
11263+
* If you don't specify <code>DefaultAuthScheme</code> or specify this parameter
11264+
* as <code>NONE</code>, you must specify the <code>Auth</code> option.</p>
11265+
* @public
11266+
*/
11267+
DefaultAuthScheme?: DefaultAuthScheme | undefined;
11268+
1124511269
/**
1124611270
* <p>The authorization mechanism that the proxy uses.</p>
1124711271
* @public
1124811272
*/
11249-
Auth: UserAuthConfig[] | undefined;
11273+
Auth?: UserAuthConfig[] | undefined;
1125011274

1125111275
/**
1125211276
* <p>The Amazon Resource Name (ARN) of the IAM role that the proxy uses to access secrets in Amazon Web Services Secrets Manager.</p>
@@ -11474,6 +11498,15 @@ export interface DBProxy {
1147411498
*/
1147511499
VpcSubnetIds?: string[] | undefined;
1147611500

11501+
/**
11502+
* <p>The default authentication scheme that the proxy uses for client connections to the proxy and connections from the proxy to the underlying database.
11503+
* Valid values are <code>NONE</code> and <code>IAM_AUTH</code>.
11504+
* When set to <code>IAM_AUTH</code>, the proxy uses end-to-end IAM authentication to connect to the database.
11505+
* </p>
11506+
* @public
11507+
*/
11508+
DefaultAuthScheme?: string | undefined;
11509+
1147711510
/**
1147811511
* <p>One or more data structures specifying the authorization mechanism to connect to the associated RDS DB instance
1147911512
* or Aurora DB cluster.</p>
@@ -15080,17 +15113,6 @@ export interface DeleteGlobalClusterMessage {
1508015113
GlobalClusterIdentifier: string | undefined;
1508115114
}
1508215115

15083-
/**
15084-
* @public
15085-
*/
15086-
export interface DeleteGlobalClusterResult {
15087-
/**
15088-
* <p>A data type representing an Aurora global database.</p>
15089-
* @public
15090-
*/
15091-
GlobalCluster?: GlobalCluster | undefined;
15092-
}
15093-
1509415116
/**
1509515117
* @internal
1509615118
*/

clients/client-rds/src/models/models_1.ts

Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -25,6 +25,7 @@ import {
2525
DBShardGroup,
2626
DBSnapshot,
2727
DBSubnetGroup,
28+
DefaultAuthScheme,
2829
EventSubscription,
2930
ExportSourceType,
3031
ExportTask,
@@ -47,6 +48,17 @@ import {
4748

4849
import { RDSServiceException as __BaseException } from "./RDSServiceException";
4950

51+
/**
52+
* @public
53+
*/
54+
export interface DeleteGlobalClusterResult {
55+
/**
56+
* <p>A data type representing an Aurora global database.</p>
57+
* @public
58+
*/
59+
GlobalCluster?: GlobalCluster | undefined;
60+
}
61+
5062
/**
5163
* @public
5264
*/
@@ -9948,6 +9960,14 @@ export interface ModifyDBProxyRequest {
99489960
*/
99499961
NewDBProxyName?: string | undefined;
99509962

9963+
/**
9964+
* <p>The default authentication scheme that the proxy uses for client connections to the proxy and connections from the proxy to the underlying database.
9965+
* Valid values are <code>NONE</code> and <code>IAM_AUTH</code>.
9966+
* When set to <code>IAM_AUTH</code>, the proxy uses end-to-end IAM authentication to connect to the database.</p>
9967+
* @public
9968+
*/
9969+
DefaultAuthScheme?: DefaultAuthScheme | undefined;
9970+
99519971
/**
99529972
* <p>The new authentication settings for the <code>DBProxy</code>.</p>
99539973
* @public

clients/client-rds/src/protocols/Aws_query.ts

Lines changed: 11 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -720,7 +720,6 @@ import {
720720
DeleteEventSubscriptionMessage,
721721
DeleteEventSubscriptionResult,
722722
DeleteGlobalClusterMessage,
723-
DeleteGlobalClusterResult,
724723
DomainMembership,
725724
DomainNotFoundFault,
726725
Ec2ImagePropertiesNotSupportedFault,
@@ -868,6 +867,7 @@ import {
868867
DBSnapshotTenantDatabasesMessage,
869868
DBSubnetGroupMessage,
870869
DBUpgradeDependencyFailureFault,
870+
DeleteGlobalClusterResult,
871871
DeleteIntegrationMessage,
872872
DeleteOptionGroupMessage,
873873
DeleteTenantDatabaseMessage,
@@ -11234,6 +11234,9 @@ const se_CreateDBProxyRequest = (input: CreateDBProxyRequest, context: __SerdeCo
1123411234
if (input[_EF] != null) {
1123511235
entries[_EF] = input[_EF];
1123611236
}
11237+
if (input[_DAS] != null) {
11238+
entries[_DAS] = input[_DAS];
11239+
}
1123711240
if (input[_Au] != null) {
1123811241
const memberEntries = se_UserAuthConfigList(input[_Au], context);
1123911242
if (input[_Au]?.length === 0) {
@@ -14225,6 +14228,9 @@ const se_ModifyDBProxyRequest = (input: ModifyDBProxyRequest, context: __SerdeCo
1422514228
if (input[_NDBPN] != null) {
1422614229
entries[_NDBPN] = input[_NDBPN];
1422714230
}
14231+
if (input[_DAS] != null) {
14232+
entries[_DAS] = input[_DAS];
14233+
}
1422814234
if (input[_Au] != null) {
1422914235
const memberEntries = se_UserAuthConfigList(input[_Au], context);
1423014236
if (input[_Au]?.length === 0) {
@@ -19505,6 +19511,9 @@ const de_DBProxy = (output: any, context: __SerdeContext): DBProxy => {
1950519511
} else if (output[_VSI] != null && output[_VSI][_me] != null) {
1950619512
contents[_VSI] = de_StringList(__getArrayIfSingleItem(output[_VSI][_me]), context);
1950719513
}
19514+
if (output[_DAS] != null) {
19515+
contents[_DAS] = __expectString(output[_DAS]);
19516+
}
1950819517
if (output.Auth === "") {
1950919518
contents[_Au] = [];
1951019519
} else if (output[_Au] != null && output[_Au][_me] != null) {
@@ -25428,6 +25437,7 @@ const _Cer = "Certificate";
2542825437
const _D = "Description";
2542925438
const _DAA = "DescribeAccountAttributes";
2543025439
const _DAB = "DeleteAutomatedBackups";
25440+
const _DAS = "DefaultAuthScheme";
2543125441
const _DASA = "DomainAuthSecretArn";
2543225442
const _DBC = "DBCluster";
2543325443
const _DBCA = "DBClusterArn";

codegen/sdk-codegen/aws-models/rds.json

Lines changed: 42 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -5949,12 +5949,16 @@
59495949
"smithy.api#required": {}
59505950
}
59515951
},
5952+
"DefaultAuthScheme": {
5953+
"target": "com.amazonaws.rds#DefaultAuthScheme",
5954+
"traits": {
5955+
"smithy.api#documentation": "<p>The default authentication scheme that the proxy uses for client connections to the proxy and connections from the proxy to the underlying database. \n Valid values are <code>NONE</code> and <code>IAM_AUTH</code>. \n When set to <code>IAM_AUTH</code>, the proxy uses end-to-end IAM authentication to connect to the database. \n If you don't specify <code>DefaultAuthScheme</code> or specify this parameter \n as <code>NONE</code>, you must specify the <code>Auth</code> option.</p>"
5956+
}
5957+
},
59525958
"Auth": {
59535959
"target": "com.amazonaws.rds#UserAuthConfigList",
59545960
"traits": {
5955-
"smithy.api#clientOptional": {},
5956-
"smithy.api#documentation": "<p>The authorization mechanism that the proxy uses.</p>",
5957-
"smithy.api#required": {}
5961+
"smithy.api#documentation": "<p>The authorization mechanism that the proxy uses.</p>"
59585962
}
59595963
},
59605964
"RoleArn": {
@@ -10329,6 +10333,12 @@
1032910333
"smithy.api#documentation": "<p>The EC2 subnet IDs for the proxy.</p>"
1033010334
}
1033110335
},
10336+
"DefaultAuthScheme": {
10337+
"target": "com.amazonaws.rds#String",
10338+
"traits": {
10339+
"smithy.api#documentation": "<p>The default authentication scheme that the proxy uses for client connections to the proxy and connections from the proxy to the underlying database. \n Valid values are <code>NONE</code> and <code>IAM_AUTH</code>. \n When set to <code>IAM_AUTH</code>, the proxy uses end-to-end IAM authentication to connect to the database. \n </p>"
10340+
}
10341+
},
1033210342
"Auth": {
1033310343
"target": "com.amazonaws.rds#UserAuthConfigInfoList",
1033410344
"traits": {
@@ -12068,6 +12078,23 @@
1206812078
}
1206912079
}
1207012080
},
12081+
"com.amazonaws.rds#DefaultAuthScheme": {
12082+
"type": "enum",
12083+
"members": {
12084+
"IAM_AUTH": {
12085+
"target": "smithy.api#Unit",
12086+
"traits": {
12087+
"smithy.api#enumValue": "IAM_AUTH"
12088+
}
12089+
},
12090+
"NONE": {
12091+
"target": "smithy.api#Unit",
12092+
"traits": {
12093+
"smithy.api#enumValue": "NONE"
12094+
}
12095+
}
12096+
}
12097+
},
1207112098
"com.amazonaws.rds#DeleteBlueGreenDeployment": {
1207212099
"type": "operation",
1207312100
"input": {
@@ -22961,6 +22988,12 @@
2296122988
"smithy.api#documentation": "<p>The new identifier for the <code>DBProxy</code>. An identifier must begin with a letter and must contain only ASCII letters, digits, and hyphens; it can't end with a hyphen or contain two consecutive hyphens.</p>"
2296222989
}
2296322990
},
22991+
"DefaultAuthScheme": {
22992+
"target": "com.amazonaws.rds#DefaultAuthScheme",
22993+
"traits": {
22994+
"smithy.api#documentation": "<p>The default authentication scheme that the proxy uses for client connections to the proxy and connections from the proxy to the underlying database. \n Valid values are <code>NONE</code> and <code>IAM_AUTH</code>. \n When set to <code>IAM_AUTH</code>, the proxy uses end-to-end IAM authentication to connect to the database.</p>"
22995+
}
22996+
},
2296422997
"Auth": {
2296522998
"target": "com.amazonaws.rds#UserAuthConfigList",
2296622999
"traits": {
@@ -31867,6 +31900,12 @@
3186731900
"type": "list",
3186831901
"member": {
3186931902
"target": "com.amazonaws.rds#UserAuthConfig"
31903+
},
31904+
"traits": {
31905+
"smithy.api#length": {
31906+
"min": 0,
31907+
"max": 200
31908+
}
3187031909
}
3187131910
},
3187231911
"com.amazonaws.rds#ValidDBInstanceModificationsMessage": {

0 commit comments

Comments
 (0)