diff --git a/clients/client-redshift-data/src/commands/BatchExecuteStatementCommand.ts b/clients/client-redshift-data/src/commands/BatchExecuteStatementCommand.ts index 180ca612e7aa..193e46a8b465 100644 --- a/clients/client-redshift-data/src/commands/BatchExecuteStatementCommand.ts +++ b/clients/client-redshift-data/src/commands/BatchExecuteStatementCommand.ts @@ -78,11 +78,13 @@ export interface BatchExecuteStatementCommandOutput extends BatchExecuteStatemen * ClusterIdentifier: "STRING_VALUE", * SecretArn: "STRING_VALUE", * DbUser: "STRING_VALUE", - * Database: "STRING_VALUE", // required + * Database: "STRING_VALUE", * WithEvent: true || false, * StatementName: "STRING_VALUE", * WorkgroupName: "STRING_VALUE", * ClientToken: "STRING_VALUE", + * SessionKeepAliveSeconds: Number("int"), + * SessionId: "STRING_VALUE", * }; * const command = new BatchExecuteStatementCommand(input); * const response = await client.send(command); @@ -91,9 +93,13 @@ export interface BatchExecuteStatementCommandOutput extends BatchExecuteStatemen * // CreatedAt: new Date("TIMESTAMP"), * // ClusterIdentifier: "STRING_VALUE", * // DbUser: "STRING_VALUE", + * // DbGroups: [ // DbGroupList + * // "STRING_VALUE", + * // ], * // Database: "STRING_VALUE", * // SecretArn: "STRING_VALUE", * // WorkgroupName: "STRING_VALUE", + * // SessionId: "STRING_VALUE", * // }; * * ``` @@ -104,12 +110,18 @@ export interface BatchExecuteStatementCommandOutput extends BatchExecuteStatemen * @see {@link BatchExecuteStatementCommandOutput} for command's `response` shape. * @see {@link RedshiftDataClientResolvedConfig | config} for RedshiftDataClient's `config` shape. * + * @throws {@link ActiveSessionsExceededException} (client fault) + *

The Amazon Redshift Data API operation failed because the maximum number of active sessions exceeded.

+ * * @throws {@link ActiveStatementsExceededException} (client fault) *

The number of active statements exceeds the limit.

* * @throws {@link BatchExecuteStatementException} (server fault) *

An SQL statement encountered an environmental error while running.

* + * @throws {@link InternalServerException} (server fault) + *

The Amazon Redshift Data API operation failed due to invalid input.

+ * * @throws {@link ValidationException} (client fault) *

The Amazon Redshift Data API operation failed due to invalid input.

* diff --git a/clients/client-redshift-data/src/commands/DescribeStatementCommand.ts b/clients/client-redshift-data/src/commands/DescribeStatementCommand.ts index 6264ecfe9b7a..9b1c7dd2329c 100644 --- a/clients/client-redshift-data/src/commands/DescribeStatementCommand.ts +++ b/clients/client-redshift-data/src/commands/DescribeStatementCommand.ts @@ -84,6 +84,7 @@ export interface DescribeStatementCommandOutput extends DescribeStatementRespons * // }, * // ], * // WorkgroupName: "STRING_VALUE", + * // SessionId: "STRING_VALUE", * // }; * * ``` diff --git a/clients/client-redshift-data/src/commands/DescribeTableCommand.ts b/clients/client-redshift-data/src/commands/DescribeTableCommand.ts index 36528a91af59..bb7b06b71d28 100644 --- a/clients/client-redshift-data/src/commands/DescribeTableCommand.ts +++ b/clients/client-redshift-data/src/commands/DescribeTableCommand.ts @@ -122,6 +122,9 @@ export interface DescribeTableCommandOutput extends DescribeTableResponse, __Met * @throws {@link InternalServerException} (server fault) *

The Amazon Redshift Data API operation failed due to invalid input.

* + * @throws {@link QueryTimeoutException} (client fault) + *

The Amazon Redshift Data API operation failed due to timeout.

+ * * @throws {@link ValidationException} (client fault) *

The Amazon Redshift Data API operation failed due to invalid input.

* diff --git a/clients/client-redshift-data/src/commands/ExecuteStatementCommand.ts b/clients/client-redshift-data/src/commands/ExecuteStatementCommand.ts index 7b09e01d8808..44f6c58d70bd 100644 --- a/clients/client-redshift-data/src/commands/ExecuteStatementCommand.ts +++ b/clients/client-redshift-data/src/commands/ExecuteStatementCommand.ts @@ -76,7 +76,7 @@ export interface ExecuteStatementCommandOutput extends ExecuteStatementOutput, _ * ClusterIdentifier: "STRING_VALUE", * SecretArn: "STRING_VALUE", * DbUser: "STRING_VALUE", - * Database: "STRING_VALUE", // required + * Database: "STRING_VALUE", * WithEvent: true || false, * StatementName: "STRING_VALUE", * Parameters: [ // SqlParametersList @@ -87,6 +87,8 @@ export interface ExecuteStatementCommandOutput extends ExecuteStatementOutput, _ * ], * WorkgroupName: "STRING_VALUE", * ClientToken: "STRING_VALUE", + * SessionKeepAliveSeconds: Number("int"), + * SessionId: "STRING_VALUE", * }; * const command = new ExecuteStatementCommand(input); * const response = await client.send(command); @@ -95,9 +97,13 @@ export interface ExecuteStatementCommandOutput extends ExecuteStatementOutput, _ * // CreatedAt: new Date("TIMESTAMP"), * // ClusterIdentifier: "STRING_VALUE", * // DbUser: "STRING_VALUE", + * // DbGroups: [ // DbGroupList + * // "STRING_VALUE", + * // ], * // Database: "STRING_VALUE", * // SecretArn: "STRING_VALUE", * // WorkgroupName: "STRING_VALUE", + * // SessionId: "STRING_VALUE", * // }; * * ``` @@ -108,12 +114,18 @@ export interface ExecuteStatementCommandOutput extends ExecuteStatementOutput, _ * @see {@link ExecuteStatementCommandOutput} for command's `response` shape. * @see {@link RedshiftDataClientResolvedConfig | config} for RedshiftDataClient's `config` shape. * + * @throws {@link ActiveSessionsExceededException} (client fault) + *

The Amazon Redshift Data API operation failed because the maximum number of active sessions exceeded.

+ * * @throws {@link ActiveStatementsExceededException} (client fault) *

The number of active statements exceeds the limit.

* * @throws {@link ExecuteStatementException} (server fault) *

The SQL statement encountered an environmental error while running.

* + * @throws {@link InternalServerException} (server fault) + *

The Amazon Redshift Data API operation failed due to invalid input.

+ * * @throws {@link ValidationException} (client fault) *

The Amazon Redshift Data API operation failed due to invalid input.

* diff --git a/clients/client-redshift-data/src/commands/ListDatabasesCommand.ts b/clients/client-redshift-data/src/commands/ListDatabasesCommand.ts index d17fb38cc9f3..a0dd5363d191 100644 --- a/clients/client-redshift-data/src/commands/ListDatabasesCommand.ts +++ b/clients/client-redshift-data/src/commands/ListDatabasesCommand.ts @@ -103,6 +103,9 @@ export interface ListDatabasesCommandOutput extends ListDatabasesResponse, __Met * @throws {@link InternalServerException} (server fault) *

The Amazon Redshift Data API operation failed due to invalid input.

* + * @throws {@link QueryTimeoutException} (client fault) + *

The Amazon Redshift Data API operation failed due to timeout.

+ * * @throws {@link ValidationException} (client fault) *

The Amazon Redshift Data API operation failed due to invalid input.

* diff --git a/clients/client-redshift-data/src/commands/ListSchemasCommand.ts b/clients/client-redshift-data/src/commands/ListSchemasCommand.ts index b1a2da544244..8d851dd336c7 100644 --- a/clients/client-redshift-data/src/commands/ListSchemasCommand.ts +++ b/clients/client-redshift-data/src/commands/ListSchemasCommand.ts @@ -105,6 +105,9 @@ export interface ListSchemasCommandOutput extends ListSchemasResponse, __Metadat * @throws {@link InternalServerException} (server fault) *

The Amazon Redshift Data API operation failed due to invalid input.

* + * @throws {@link QueryTimeoutException} (client fault) + *

The Amazon Redshift Data API operation failed due to timeout.

+ * * @throws {@link ValidationException} (client fault) *

The Amazon Redshift Data API operation failed due to invalid input.

* diff --git a/clients/client-redshift-data/src/commands/ListStatementsCommand.ts b/clients/client-redshift-data/src/commands/ListStatementsCommand.ts index bf5f15e25afa..bc74f3023f64 100644 --- a/clients/client-redshift-data/src/commands/ListStatementsCommand.ts +++ b/clients/client-redshift-data/src/commands/ListStatementsCommand.ts @@ -68,6 +68,7 @@ export interface ListStatementsCommandOutput extends ListStatementsResponse, __M * // }, * // ], * // IsBatchStatement: true || false, + * // SessionId: "STRING_VALUE", * // }, * // ], * // NextToken: "STRING_VALUE", diff --git a/clients/client-redshift-data/src/commands/ListTablesCommand.ts b/clients/client-redshift-data/src/commands/ListTablesCommand.ts index dc080d9ab2d3..3735c2f30802 100644 --- a/clients/client-redshift-data/src/commands/ListTablesCommand.ts +++ b/clients/client-redshift-data/src/commands/ListTablesCommand.ts @@ -111,6 +111,9 @@ export interface ListTablesCommandOutput extends ListTablesResponse, __MetadataB * @throws {@link InternalServerException} (server fault) *

The Amazon Redshift Data API operation failed due to invalid input.

* + * @throws {@link QueryTimeoutException} (client fault) + *

The Amazon Redshift Data API operation failed due to timeout.

+ * * @throws {@link ValidationException} (client fault) *

The Amazon Redshift Data API operation failed due to invalid input.

* diff --git a/clients/client-redshift-data/src/models/models_0.ts b/clients/client-redshift-data/src/models/models_0.ts index 5246ad9a5282..1aaa833923b9 100644 --- a/clients/client-redshift-data/src/models/models_0.ts +++ b/clients/client-redshift-data/src/models/models_0.ts @@ -3,6 +3,28 @@ import { ExceptionOptionType as __ExceptionOptionType } from "@smithy/smithy-cli import { RedshiftDataServiceException as __BaseException } from "./RedshiftDataServiceException"; +/** + *

The Amazon Redshift Data API operation failed because the maximum number of active sessions exceeded.

+ * @public + */ +export class ActiveSessionsExceededException extends __BaseException { + readonly name: "ActiveSessionsExceededException" = "ActiveSessionsExceededException"; + readonly $fault: "client" = "client"; + Message?: string; + /** + * @internal + */ + constructor(opts: __ExceptionOptionType) { + super({ + name: "ActiveSessionsExceededException", + $fault: "client", + ...opts, + }); + Object.setPrototypeOf(this, ActiveSessionsExceededException.prototype); + this.Message = opts.Message; + } +} + /** *

The number of active statements exceeds the limit.

* @public @@ -89,7 +111,7 @@ export interface BatchExecuteStatementInput { *

The name of the database. This parameter is required when authenticating using either Secrets Manager or temporary credentials.

* @public */ - Database: string | undefined; + Database?: string; /** *

A value that indicates whether to send an event to the Amazon EventBridge event bus after the SQL statements run.

@@ -114,6 +136,18 @@ export interface BatchExecuteStatementInput { * @public */ ClientToken?: string; + + /** + *

The number of seconds to keep the session alive after the query finishes. The maximum time a session can keep alive is 24 hours. After 24 hours, the session is forced closed and the query is terminated.

+ * @public + */ + SessionKeepAliveSeconds?: number; + + /** + *

The session identifier of the query.

+ * @public + */ + SessionId?: string; } /** @@ -145,6 +179,12 @@ export interface BatchExecuteStatementOutput { */ DbUser?: string; + /** + *

A list of colon (:) separated names of database groups.

+ * @public + */ + DbGroups?: string[]; + /** *

The name of the database.

* @public @@ -162,6 +202,38 @@ export interface BatchExecuteStatementOutput { * @public */ WorkgroupName?: string; + + /** + *

The session identifier of the query.

+ * @public + */ + SessionId?: string; +} + +/** + *

The Amazon Redshift Data API operation failed due to invalid input.

+ * @public + */ +export class InternalServerException extends __BaseException { + readonly name: "InternalServerException" = "InternalServerException"; + readonly $fault: "server" = "server"; + /** + *

The exception message.

+ * @public + */ + Message: string | undefined; + /** + * @internal + */ + constructor(opts: __ExceptionOptionType) { + super({ + name: "InternalServerException", + $fault: "server", + ...opts, + }); + Object.setPrototypeOf(this, InternalServerException.prototype); + this.Message = opts.Message; + } } /** @@ -235,32 +307,6 @@ export class DatabaseConnectionException extends __BaseException { } } -/** - *

The Amazon Redshift Data API operation failed due to invalid input.

- * @public - */ -export class InternalServerException extends __BaseException { - readonly name: "InternalServerException" = "InternalServerException"; - readonly $fault: "server" = "server"; - /** - *

The exception message.

- * @public - */ - Message: string | undefined; - /** - * @internal - */ - constructor(opts: __ExceptionOptionType) { - super({ - name: "InternalServerException", - $fault: "server", - ...opts, - }); - Object.setPrototypeOf(this, InternalServerException.prototype); - this.Message = opts.Message; - } -} - /** *

The Amazon Redshift Data API operation failed due to a missing resource.

* @public @@ -673,6 +719,12 @@ export interface DescribeStatementResponse { * @public */ WorkgroupName?: string; + + /** + *

The session identifier of the query.

+ * @public + */ + SessionId?: string; } /** @@ -766,6 +818,28 @@ export interface DescribeTableResponse { NextToken?: string; } +/** + *

The Amazon Redshift Data API operation failed due to timeout.

+ * @public + */ +export class QueryTimeoutException extends __BaseException { + readonly name: "QueryTimeoutException" = "QueryTimeoutException"; + readonly $fault: "client" = "client"; + Message?: string; + /** + * @internal + */ + constructor(opts: __ExceptionOptionType) { + super({ + name: "QueryTimeoutException", + $fault: "client", + ...opts, + }); + Object.setPrototypeOf(this, QueryTimeoutException.prototype); + this.Message = opts.Message; + } +} + /** *

The SQL statement encountered an environmental error while running.

* @public @@ -831,7 +905,7 @@ export interface ExecuteStatementInput { *

The name of the database. This parameter is required when authenticating using either Secrets Manager or temporary credentials.

* @public */ - Database: string | undefined; + Database?: string; /** *

A value that indicates whether to send an event to the Amazon EventBridge event bus after the SQL statement runs.

@@ -862,6 +936,18 @@ export interface ExecuteStatementInput { * @public */ ClientToken?: string; + + /** + *

The number of seconds to keep the session alive after the query finishes. The maximum time a session can keep alive is 24 hours. After 24 hours, the session is forced closed and the query is terminated.

+ * @public + */ + SessionKeepAliveSeconds?: number; + + /** + *

The session identifier of the query.

+ * @public + */ + SessionId?: string; } /** @@ -892,6 +978,12 @@ export interface ExecuteStatementOutput { */ DbUser?: string; + /** + *

A list of colon (:) separated names of database groups.

+ * @public + */ + DbGroups?: string[]; + /** *

The name of the database.

* @public @@ -909,6 +1001,12 @@ export interface ExecuteStatementOutput { * @public */ WorkgroupName?: string; + + /** + *

The session identifier of the query.

+ * @public + */ + SessionId?: string; } /** @@ -1370,6 +1468,12 @@ export interface StatementData { * @public */ IsBatchStatement?: boolean; + + /** + *

The session identifier of the query.

+ * @public + */ + SessionId?: string; } /** diff --git a/clients/client-redshift-data/src/protocols/Aws_json1_1.ts b/clients/client-redshift-data/src/protocols/Aws_json1_1.ts index d806af1a2f3a..39790608efe7 100644 --- a/clients/client-redshift-data/src/protocols/Aws_json1_1.ts +++ b/clients/client-redshift-data/src/protocols/Aws_json1_1.ts @@ -42,6 +42,7 @@ import { ListSchemasCommandInput, ListSchemasCommandOutput } from "../commands/L import { ListStatementsCommandInput, ListStatementsCommandOutput } from "../commands/ListStatementsCommand"; import { ListTablesCommandInput, ListTablesCommandOutput } from "../commands/ListTablesCommand"; import { + ActiveSessionsExceededException, ActiveStatementsExceededException, BatchExecuteStatementException, BatchExecuteStatementInput, @@ -63,6 +64,7 @@ import { ListStatementsRequest, ListStatementsResponse, ListTablesRequest, + QueryTimeoutException, ResourceNotFoundException, SqlParameter, StatementData, @@ -411,24 +413,30 @@ const de_CommandError = async (output: __HttpResponse, context: __SerdeContext): }; const errorCode = loadRestJsonErrorCode(output, parsedOutput.body); switch (errorCode) { + case "ActiveSessionsExceededException": + case "com.amazonaws.redshiftdata#ActiveSessionsExceededException": + throw await de_ActiveSessionsExceededExceptionRes(parsedOutput, context); case "ActiveStatementsExceededException": case "com.amazonaws.redshiftdata#ActiveStatementsExceededException": throw await de_ActiveStatementsExceededExceptionRes(parsedOutput, context); case "BatchExecuteStatementException": case "com.amazonaws.redshiftdata#BatchExecuteStatementException": throw await de_BatchExecuteStatementExceptionRes(parsedOutput, context); + case "InternalServerException": + case "com.amazonaws.redshiftdata#InternalServerException": + throw await de_InternalServerExceptionRes(parsedOutput, context); case "ValidationException": case "com.amazonaws.redshiftdata#ValidationException": throw await de_ValidationExceptionRes(parsedOutput, context); case "DatabaseConnectionException": case "com.amazonaws.redshiftdata#DatabaseConnectionException": throw await de_DatabaseConnectionExceptionRes(parsedOutput, context); - case "InternalServerException": - case "com.amazonaws.redshiftdata#InternalServerException": - throw await de_InternalServerExceptionRes(parsedOutput, context); case "ResourceNotFoundException": case "com.amazonaws.redshiftdata#ResourceNotFoundException": throw await de_ResourceNotFoundExceptionRes(parsedOutput, context); + case "QueryTimeoutException": + case "com.amazonaws.redshiftdata#QueryTimeoutException": + throw await de_QueryTimeoutExceptionRes(parsedOutput, context); case "ExecuteStatementException": case "com.amazonaws.redshiftdata#ExecuteStatementException": throw await de_ExecuteStatementExceptionRes(parsedOutput, context); @@ -442,6 +450,22 @@ const de_CommandError = async (output: __HttpResponse, context: __SerdeContext): } }; +/** + * deserializeAws_json1_1ActiveSessionsExceededExceptionRes + */ +const de_ActiveSessionsExceededExceptionRes = async ( + parsedOutput: any, + context: __SerdeContext +): Promise => { + const body = parsedOutput.body; + const deserialized: any = _json(body); + const exception = new ActiveSessionsExceededException({ + $metadata: deserializeMetadata(parsedOutput), + ...deserialized, + }); + return __decorateServiceException(exception, body); +}; + /** * deserializeAws_json1_1ActiveStatementsExceededExceptionRes */ @@ -522,6 +546,22 @@ const de_InternalServerExceptionRes = async ( return __decorateServiceException(exception, body); }; +/** + * deserializeAws_json1_1QueryTimeoutExceptionRes + */ +const de_QueryTimeoutExceptionRes = async ( + parsedOutput: any, + context: __SerdeContext +): Promise => { + const body = parsedOutput.body; + const deserialized: any = _json(body); + const exception = new QueryTimeoutException({ + $metadata: deserializeMetadata(parsedOutput), + ...deserialized, + }); + return __decorateServiceException(exception, body); +}; + /** * deserializeAws_json1_1ResourceNotFoundExceptionRes */ @@ -561,6 +601,8 @@ const se_BatchExecuteStatementInput = (input: BatchExecuteStatementInput, contex Database: [], DbUser: [], SecretArn: [], + SessionId: [], + SessionKeepAliveSeconds: [], Sqls: _json, StatementName: [], WithEvent: [], @@ -585,6 +627,8 @@ const se_ExecuteStatementInput = (input: ExecuteStatementInput, context: __Serde DbUser: [], Parameters: _json, SecretArn: [], + SessionId: [], + SessionKeepAliveSeconds: [], Sql: [], StatementName: [], WithEvent: [], @@ -608,6 +652,8 @@ const se_ExecuteStatementInput = (input: ExecuteStatementInput, context: __Serde // se_SqlParametersList omitted. +// de_ActiveSessionsExceededException omitted. + // de_ActiveStatementsExceededException omitted. // de_BatchExecuteStatementException omitted. @@ -620,9 +666,11 @@ const de_BatchExecuteStatementOutput = (output: any, context: __SerdeContext): B ClusterIdentifier: __expectString, CreatedAt: (_: any) => __expectNonNull(__parseEpochTimestamp(__expectNumber(_))), Database: __expectString, + DbGroups: _json, DbUser: __expectString, Id: __expectString, SecretArn: __expectString, + SessionId: __expectString, WorkgroupName: __expectString, }) as any; }; @@ -639,6 +687,8 @@ const de_BatchExecuteStatementOutput = (output: any, context: __SerdeContext): B // de_DatabaseList omitted. +// de_DbGroupList omitted. + /** * deserializeAws_json1_1DescribeStatementResponse */ @@ -659,6 +709,7 @@ const de_DescribeStatementResponse = (output: any, context: __SerdeContext): Des ResultRows: __expectLong, ResultSize: __expectLong, SecretArn: __expectString, + SessionId: __expectString, Status: __expectString, SubStatements: (_: any) => de_SubStatementList(_, context), UpdatedAt: (_: any) => __expectNonNull(__parseEpochTimestamp(__expectNumber(_))), @@ -678,9 +729,11 @@ const de_ExecuteStatementOutput = (output: any, context: __SerdeContext): Execut ClusterIdentifier: __expectString, CreatedAt: (_: any) => __expectNonNull(__parseEpochTimestamp(__expectNumber(_))), Database: __expectString, + DbGroups: _json, DbUser: __expectString, Id: __expectString, SecretArn: __expectString, + SessionId: __expectString, WorkgroupName: __expectString, }) as any; }; @@ -754,6 +807,8 @@ const de_ListStatementsResponse = (output: any, context: __SerdeContext): ListSt // de_ListTablesResponse omitted. +// de_QueryTimeoutException omitted. + // de_ResourceNotFoundException omitted. // de_SchemaList omitted. @@ -786,6 +841,7 @@ const de_StatementData = (output: any, context: __SerdeContext): StatementData = QueryString: __expectString, QueryStrings: _json, SecretArn: __expectString, + SessionId: __expectString, StatementName: __expectString, Status: __expectString, UpdatedAt: (_: any) => __expectNonNull(__parseEpochTimestamp(__expectNumber(_))), diff --git a/codegen/sdk-codegen/aws-models/redshift-data.json b/codegen/sdk-codegen/aws-models/redshift-data.json index e748cf9cc9c4..69ac3e7cf3c0 100644 --- a/codegen/sdk-codegen/aws-models/redshift-data.json +++ b/codegen/sdk-codegen/aws-models/redshift-data.json @@ -1,6 +1,19 @@ { "smithy": "2.0", "shapes": { + "com.amazonaws.redshiftdata#ActiveSessionsExceededException": { + "type": "structure", + "members": { + "Message": { + "target": "com.amazonaws.redshiftdata#String" + } + }, + "traits": { + "smithy.api#documentation": "

The Amazon Redshift Data API operation failed because the maximum number of active sessions exceeded.

", + "smithy.api#error": "client", + "smithy.api#httpError": 400 + } + }, "com.amazonaws.redshiftdata#ActiveStatementsExceededException": { "type": "structure", "members": { @@ -23,12 +36,18 @@ "target": "com.amazonaws.redshiftdata#BatchExecuteStatementOutput" }, "errors": [ + { + "target": "com.amazonaws.redshiftdata#ActiveSessionsExceededException" + }, { "target": "com.amazonaws.redshiftdata#ActiveStatementsExceededException" }, { "target": "com.amazonaws.redshiftdata#BatchExecuteStatementException" }, + { + "target": "com.amazonaws.redshiftdata#InternalServerException" + }, { "target": "com.amazonaws.redshiftdata#ValidationException" } @@ -71,7 +90,7 @@ } }, "ClusterIdentifier": { - "target": "com.amazonaws.redshiftdata#Location", + "target": "com.amazonaws.redshiftdata#ClusterIdentifierString", "traits": { "smithy.api#documentation": "

The cluster identifier. This parameter is required when connecting to a cluster and authenticating using either Secrets Manager or temporary credentials.

" } @@ -91,8 +110,7 @@ "Database": { "target": "com.amazonaws.redshiftdata#String", "traits": { - "smithy.api#documentation": "

The name of the database. This parameter is required when authenticating using either Secrets Manager or temporary credentials.

", - "smithy.api#required": {} + "smithy.api#documentation": "

The name of the database. This parameter is required when authenticating using either Secrets Manager or temporary credentials.

" } }, "WithEvent": { @@ -119,14 +137,29 @@ "smithy.api#documentation": "

A unique, case-sensitive identifier that you provide to ensure the idempotency of the request.

", "smithy.api#idempotencyToken": {} } + }, + "SessionKeepAliveSeconds": { + "target": "com.amazonaws.redshiftdata#SessionAliveSeconds", + "traits": { + "smithy.api#documentation": "

The number of seconds to keep the session alive after the query finishes. The maximum time a session can keep alive is 24 hours. After 24 hours, the session is forced closed and the query is terminated.

" + } + }, + "SessionId": { + "target": "com.amazonaws.redshiftdata#UUID", + "traits": { + "smithy.api#documentation": "

The session identifier of the query.

" + } } + }, + "traits": { + "smithy.api#input": {} } }, "com.amazonaws.redshiftdata#BatchExecuteStatementOutput": { "type": "structure", "members": { "Id": { - "target": "com.amazonaws.redshiftdata#StatementId", + "target": "com.amazonaws.redshiftdata#UUID", "traits": { "smithy.api#documentation": "

The identifier of the SQL statement whose results are to be fetched. This value is a universally unique identifier (UUID) generated by Amazon Redshift Data API. \n This identifier is returned by BatchExecuteStatment.

" } @@ -138,7 +171,7 @@ } }, "ClusterIdentifier": { - "target": "com.amazonaws.redshiftdata#Location", + "target": "com.amazonaws.redshiftdata#ClusterIdentifierString", "traits": { "smithy.api#documentation": "

The cluster identifier. This element is not returned when connecting to a serverless workgroup.

" } @@ -149,6 +182,12 @@ "smithy.api#documentation": "

The database user name.

" } }, + "DbGroups": { + "target": "com.amazonaws.redshiftdata#DbGroupList", + "traits": { + "smithy.api#documentation": "

A list of colon (:) separated names of database groups.

" + } + }, "Database": { "target": "com.amazonaws.redshiftdata#String", "traits": { @@ -166,7 +205,16 @@ "traits": { "smithy.api#documentation": "

The serverless workgroup name or Amazon Resource Name (ARN). This element is not returned when connecting to a provisioned cluster.

" } + }, + "SessionId": { + "target": "com.amazonaws.redshiftdata#UUID", + "traits": { + "smithy.api#documentation": "

The session identifier of the query.

" + } } + }, + "traits": { + "smithy.api#output": {} } }, "com.amazonaws.redshiftdata#Blob": { @@ -211,12 +259,15 @@ "type": "structure", "members": { "Id": { - "target": "com.amazonaws.redshiftdata#StatementId", + "target": "com.amazonaws.redshiftdata#UUID", "traits": { "smithy.api#documentation": "

The identifier of the SQL statement to cancel. This value is a universally unique identifier (UUID) generated by Amazon Redshift Data API. \n This identifier is returned by BatchExecuteStatment, ExecuteStatment, and ListStatements.

", "smithy.api#required": {} } } + }, + "traits": { + "smithy.api#input": {} } }, "com.amazonaws.redshiftdata#CancelStatementResponse": { @@ -228,6 +279,9 @@ "smithy.api#documentation": "

A value that indicates whether the cancel statement succeeded (true).

" } } + }, + "traits": { + "smithy.api#output": {} } }, "com.amazonaws.redshiftdata#ClientToken": { @@ -239,6 +293,16 @@ } } }, + "com.amazonaws.redshiftdata#ClusterIdentifierString": { + "type": "string", + "traits": { + "smithy.api#length": { + "min": 1, + "max": 63 + }, + "smithy.api#pattern": "^[a-z]([a-z0-9]|-[a-z0-9])*$" + } + }, "com.amazonaws.redshiftdata#ColumnList": { "type": "list", "member": { @@ -366,6 +430,12 @@ "target": "com.amazonaws.redshiftdata#String" } }, + "com.amazonaws.redshiftdata#DbGroupList": { + "type": "list", + "member": { + "target": "com.amazonaws.redshiftdata#String" + } + }, "com.amazonaws.redshiftdata#DescribeStatement": { "type": "operation", "input": { @@ -394,19 +464,22 @@ "type": "structure", "members": { "Id": { - "target": "com.amazonaws.redshiftdata#StatementId", + "target": "com.amazonaws.redshiftdata#UUID", "traits": { "smithy.api#documentation": "

The identifier of the SQL statement to describe. This value is a universally unique identifier (UUID) generated by Amazon Redshift Data API. \n A suffix indicates the number of the SQL statement.\n For example, d9b6c0c9-0747-4bf4-b142-e8883122f766:2 has a suffix of :2 that indicates the second SQL statement of a batch query.\n This identifier is returned by BatchExecuteStatment, ExecuteStatement, and ListStatements.

", "smithy.api#required": {} } } + }, + "traits": { + "smithy.api#input": {} } }, "com.amazonaws.redshiftdata#DescribeStatementResponse": { "type": "structure", "members": { "Id": { - "target": "com.amazonaws.redshiftdata#StatementId", + "target": "com.amazonaws.redshiftdata#UUID", "traits": { "smithy.api#documentation": "

The identifier of the SQL statement described. This value is a universally unique identifier (UUID) generated by Amazon Redshift Data API.

", "smithy.api#required": {} @@ -524,7 +597,16 @@ "traits": { "smithy.api#documentation": "

The serverless workgroup name or Amazon Resource Name (ARN).

" } + }, + "SessionId": { + "target": "com.amazonaws.redshiftdata#String", + "traits": { + "smithy.api#documentation": "

The session identifier of the query.

" + } } + }, + "traits": { + "smithy.api#output": {} } }, "com.amazonaws.redshiftdata#DescribeTable": { @@ -542,6 +624,9 @@ { "target": "com.amazonaws.redshiftdata#InternalServerException" }, + { + "target": "com.amazonaws.redshiftdata#QueryTimeoutException" + }, { "target": "com.amazonaws.redshiftdata#ValidationException" } @@ -561,7 +646,7 @@ "type": "structure", "members": { "ClusterIdentifier": { - "target": "com.amazonaws.redshiftdata#Location", + "target": "com.amazonaws.redshiftdata#ClusterIdentifierString", "traits": { "smithy.api#documentation": "

The cluster identifier. This parameter is required when connecting to a cluster and authenticating using either Secrets Manager or temporary credentials.

" } @@ -622,6 +707,9 @@ "smithy.api#documentation": "

The serverless workgroup name or Amazon Resource Name (ARN). This parameter is required when connecting to a serverless workgroup and authenticating using either Secrets Manager or temporary credentials.

" } } + }, + "traits": { + "smithy.api#input": {} } }, "com.amazonaws.redshiftdata#DescribeTableResponse": { @@ -645,6 +733,9 @@ "smithy.api#documentation": "

A value that indicates the starting point for the next set of response records in a subsequent request. If a value is returned in a response, you can retrieve the next set of records by providing this returned NextToken value in the next NextToken parameter and retrying the command. If the NextToken field is empty, all response records have been retrieved for the request.

" } } + }, + "traits": { + "smithy.api#output": {} } }, "com.amazonaws.redshiftdata#ExecuteStatement": { @@ -656,12 +747,18 @@ "target": "com.amazonaws.redshiftdata#ExecuteStatementOutput" }, "errors": [ + { + "target": "com.amazonaws.redshiftdata#ActiveSessionsExceededException" + }, { "target": "com.amazonaws.redshiftdata#ActiveStatementsExceededException" }, { "target": "com.amazonaws.redshiftdata#ExecuteStatementException" }, + { + "target": "com.amazonaws.redshiftdata#InternalServerException" + }, { "target": "com.amazonaws.redshiftdata#ValidationException" } @@ -705,7 +802,7 @@ } }, "ClusterIdentifier": { - "target": "com.amazonaws.redshiftdata#Location", + "target": "com.amazonaws.redshiftdata#ClusterIdentifierString", "traits": { "smithy.api#documentation": "

The cluster identifier. This parameter is required when connecting to a cluster and authenticating using either Secrets Manager or temporary credentials.

" } @@ -725,8 +822,7 @@ "Database": { "target": "com.amazonaws.redshiftdata#String", "traits": { - "smithy.api#documentation": "

The name of the database. This parameter is required when authenticating using either Secrets Manager or temporary credentials.

", - "smithy.api#required": {} + "smithy.api#documentation": "

The name of the database. This parameter is required when authenticating using either Secrets Manager or temporary credentials.

" } }, "WithEvent": { @@ -759,14 +855,29 @@ "smithy.api#documentation": "

A unique, case-sensitive identifier that you provide to ensure the idempotency of the request.

", "smithy.api#idempotencyToken": {} } + }, + "SessionKeepAliveSeconds": { + "target": "com.amazonaws.redshiftdata#SessionAliveSeconds", + "traits": { + "smithy.api#documentation": "

The number of seconds to keep the session alive after the query finishes. The maximum time a session can keep alive is 24 hours. After 24 hours, the session is forced closed and the query is terminated.

" + } + }, + "SessionId": { + "target": "com.amazonaws.redshiftdata#UUID", + "traits": { + "smithy.api#documentation": "

The session identifier of the query.

" + } } + }, + "traits": { + "smithy.api#input": {} } }, "com.amazonaws.redshiftdata#ExecuteStatementOutput": { "type": "structure", "members": { "Id": { - "target": "com.amazonaws.redshiftdata#StatementId", + "target": "com.amazonaws.redshiftdata#UUID", "traits": { "smithy.api#documentation": "

The identifier of the SQL statement whose results are to be fetched. This value is a universally unique identifier (UUID) generated by Amazon Redshift Data API.

" } @@ -778,7 +889,7 @@ } }, "ClusterIdentifier": { - "target": "com.amazonaws.redshiftdata#Location", + "target": "com.amazonaws.redshiftdata#ClusterIdentifierString", "traits": { "smithy.api#documentation": "

The cluster identifier. This element is not returned when connecting to a serverless workgroup.

" } @@ -789,6 +900,12 @@ "smithy.api#documentation": "

The database user name.

" } }, + "DbGroups": { + "target": "com.amazonaws.redshiftdata#DbGroupList", + "traits": { + "smithy.api#documentation": "

A list of colon (:) separated names of database groups.

" + } + }, "Database": { "target": "com.amazonaws.redshiftdata#String", "traits": { @@ -806,7 +923,16 @@ "traits": { "smithy.api#documentation": "

The serverless workgroup name or Amazon Resource Name (ARN). This element is not returned when connecting to a provisioned cluster.

" } + }, + "SessionId": { + "target": "com.amazonaws.redshiftdata#UUID", + "traits": { + "smithy.api#documentation": "

The session identifier of the query.

" + } } + }, + "traits": { + "smithy.api#output": {} } }, "com.amazonaws.redshiftdata#Field": { @@ -892,7 +1018,7 @@ "type": "structure", "members": { "Id": { - "target": "com.amazonaws.redshiftdata#StatementId", + "target": "com.amazonaws.redshiftdata#UUID", "traits": { "smithy.api#documentation": "

The identifier of the SQL statement whose results are to be fetched. This value is a universally unique identifier (UUID) generated by Amazon Redshift Data API. \n A suffix indicates then number of the SQL statement.\n For example, d9b6c0c9-0747-4bf4-b142-e8883122f766:2 has a suffix of :2 that indicates the second SQL statement of a batch query.\n This identifier is returned by BatchExecuteStatment, ExecuteStatment, and ListStatements.

", "smithy.api#required": {} @@ -904,6 +1030,9 @@ "smithy.api#documentation": "

A value that indicates the starting point for the next set of response records in a subsequent request. If a value is returned in a response, you can retrieve the next set of records by providing this returned NextToken value in the next NextToken parameter and retrying the command. If the NextToken field is empty, all response records have been retrieved for the request.

" } } + }, + "traits": { + "smithy.api#input": {} } }, "com.amazonaws.redshiftdata#GetStatementResultResponse": { @@ -935,6 +1064,9 @@ "smithy.api#documentation": "

A value that indicates the starting point for the next set of response records in a subsequent request. If a value is returned in a response, you can retrieve the next set of records by providing this returned NextToken value in the next NextToken parameter and retrying the command. If the NextToken field is empty, all response records have been retrieved for the request.

" } } + }, + "traits": { + "smithy.api#output": {} } }, "com.amazonaws.redshiftdata#Integer": { @@ -975,6 +1107,9 @@ { "target": "com.amazonaws.redshiftdata#InternalServerException" }, + { + "target": "com.amazonaws.redshiftdata#QueryTimeoutException" + }, { "target": "com.amazonaws.redshiftdata#ValidationException" } @@ -994,7 +1129,7 @@ "type": "structure", "members": { "ClusterIdentifier": { - "target": "com.amazonaws.redshiftdata#Location", + "target": "com.amazonaws.redshiftdata#ClusterIdentifierString", "traits": { "smithy.api#documentation": "

The cluster identifier. This parameter is required when connecting to a cluster and authenticating using either Secrets Manager or temporary credentials.

" } @@ -1037,6 +1172,9 @@ "smithy.api#documentation": "

The serverless workgroup name or Amazon Resource Name (ARN). This parameter is required when connecting to a serverless workgroup and authenticating using either Secrets Manager or temporary credentials.

" } } + }, + "traits": { + "smithy.api#input": {} } }, "com.amazonaws.redshiftdata#ListDatabasesResponse": { @@ -1054,6 +1192,9 @@ "smithy.api#documentation": "

A value that indicates the starting point for the next set of response records in a subsequent request. If a value is returned in a response, you can retrieve the next set of records by providing this returned NextToken value in the next NextToken parameter and retrying the command. If the NextToken field is empty, all response records have been retrieved for the request.

" } } + }, + "traits": { + "smithy.api#output": {} } }, "com.amazonaws.redshiftdata#ListSchemas": { @@ -1071,6 +1212,9 @@ { "target": "com.amazonaws.redshiftdata#InternalServerException" }, + { + "target": "com.amazonaws.redshiftdata#QueryTimeoutException" + }, { "target": "com.amazonaws.redshiftdata#ValidationException" } @@ -1090,7 +1234,7 @@ "type": "structure", "members": { "ClusterIdentifier": { - "target": "com.amazonaws.redshiftdata#Location", + "target": "com.amazonaws.redshiftdata#ClusterIdentifierString", "traits": { "smithy.api#documentation": "

The cluster identifier. This parameter is required when connecting to a cluster and authenticating using either Secrets Manager or temporary credentials.

" } @@ -1145,6 +1289,9 @@ "smithy.api#documentation": "

The serverless workgroup name or Amazon Resource Name (ARN). This parameter is required when connecting to a serverless workgroup and authenticating using either Secrets Manager or temporary credentials.

" } } + }, + "traits": { + "smithy.api#input": {} } }, "com.amazonaws.redshiftdata#ListSchemasResponse": { @@ -1162,6 +1309,9 @@ "smithy.api#documentation": "

A value that indicates the starting point for the next set of response records in a subsequent request. If a value is returned in a response, you can retrieve the next set of records by providing this returned NextToken value in the next NextToken parameter and retrying the command. If the NextToken field is empty, all response records have been retrieved for the request.

" } } + }, + "traits": { + "smithy.api#output": {} } }, "com.amazonaws.redshiftdata#ListStatements": { @@ -1235,6 +1385,9 @@ "smithy.api#documentation": "

A value that filters which statements to return in the response. If true, all statements run by the caller's IAM role are returned. \n If false, only statements run by the caller's IAM role in the current IAM session are returned. The default is true.

" } } + }, + "traits": { + "smithy.api#input": {} } }, "com.amazonaws.redshiftdata#ListStatementsResponse": { @@ -1253,6 +1406,9 @@ "smithy.api#documentation": "

A value that indicates the starting point for the next set of response records in a subsequent request. If a value is returned in a response, you can retrieve the next set of records by providing this returned NextToken value in the next NextToken parameter and retrying the command. If the NextToken field is empty, all response records have been retrieved for the request.

" } } + }, + "traits": { + "smithy.api#output": {} } }, "com.amazonaws.redshiftdata#ListTables": { @@ -1270,6 +1426,9 @@ { "target": "com.amazonaws.redshiftdata#InternalServerException" }, + { + "target": "com.amazonaws.redshiftdata#QueryTimeoutException" + }, { "target": "com.amazonaws.redshiftdata#ValidationException" } @@ -1289,7 +1448,7 @@ "type": "structure", "members": { "ClusterIdentifier": { - "target": "com.amazonaws.redshiftdata#Location", + "target": "com.amazonaws.redshiftdata#ClusterIdentifierString", "traits": { "smithy.api#documentation": "

The cluster identifier. This parameter is required when connecting to a cluster and authenticating using either Secrets Manager or temporary credentials.

" } @@ -1350,6 +1509,9 @@ "smithy.api#documentation": "

The serverless workgroup name or Amazon Resource Name (ARN). This parameter is required when connecting to a serverless workgroup and authenticating using either Secrets Manager or temporary credentials.

" } } + }, + "traits": { + "smithy.api#input": {} } }, "com.amazonaws.redshiftdata#ListTablesResponse": { @@ -1367,11 +1529,11 @@ "smithy.api#documentation": "

A value that indicates the starting point for the next set of response records in a subsequent request. If a value is returned in a response, you can retrieve the next set of records by providing this returned NextToken value in the next NextToken parameter and retrying the command. If the NextToken field is empty, all response records have been retrieved for the request.

" } } + }, + "traits": { + "smithy.api#output": {} } }, - "com.amazonaws.redshiftdata#Location": { - "type": "string" - }, "com.amazonaws.redshiftdata#Long": { "type": "long", "traits": { @@ -1402,6 +1564,19 @@ } } }, + "com.amazonaws.redshiftdata#QueryTimeoutException": { + "type": "structure", + "members": { + "Message": { + "target": "com.amazonaws.redshiftdata#String" + } + }, + "traits": { + "smithy.api#documentation": "

The Amazon Redshift Data API operation failed due to timeout.

", + "smithy.api#error": "client", + "smithy.api#httpError": 400 + } + }, "com.amazonaws.redshiftdata#RedshiftData": { "type": "service", "version": "2019-12-20", @@ -2112,6 +2287,15 @@ "com.amazonaws.redshiftdata#SecretArn": { "type": "string" }, + "com.amazonaws.redshiftdata#SessionAliveSeconds": { + "type": "integer", + "traits": { + "smithy.api#range": { + "min": 0, + "max": 86400 + } + } + }, "com.amazonaws.redshiftdata#SqlList": { "type": "list", "member": { @@ -2167,7 +2351,7 @@ "type": "structure", "members": { "Id": { - "target": "com.amazonaws.redshiftdata#StatementId", + "target": "com.amazonaws.redshiftdata#UUID", "traits": { "smithy.api#documentation": "

The SQL statement identifier. This value is a universally unique identifier (UUID) generated by Amazon Redshift Data API.

", "smithy.api#required": {} @@ -2226,18 +2410,18 @@ "traits": { "smithy.api#documentation": "

A value that indicates whether the statement is a batch query request.

" } + }, + "SessionId": { + "target": "com.amazonaws.redshiftdata#UUID", + "traits": { + "smithy.api#documentation": "

The session identifier of the query.

" + } } }, "traits": { "smithy.api#documentation": "

The SQL statement to run.

" } }, - "com.amazonaws.redshiftdata#StatementId": { - "type": "string", - "traits": { - "smithy.api#pattern": "^[a-z0-9]{8}(-[a-z0-9]{4}){3}-[a-z0-9]{12}(:\\d+)?$" - } - }, "com.amazonaws.redshiftdata#StatementList": { "type": "list", "member": { @@ -2334,7 +2518,7 @@ "type": "structure", "members": { "Id": { - "target": "com.amazonaws.redshiftdata#StatementId", + "target": "com.amazonaws.redshiftdata#UUID", "traits": { "smithy.api#documentation": "

The identifier of the SQL statement. This value is a universally unique identifier (UUID) generated by Amazon Redshift Data API. \n A suffix indicates the number of the SQL statement.\n For example, d9b6c0c9-0747-4bf4-b142-e8883122f766:2 has a suffix of :2 that indicates the second SQL statement of a batch query.

", "smithy.api#required": {} @@ -2447,6 +2631,12 @@ "smithy.api#documentation": "

The properties of a table.

" } }, + "com.amazonaws.redshiftdata#UUID": { + "type": "string", + "traits": { + "smithy.api#pattern": "^[a-z0-9]{8}(-[a-z0-9]{4}){3}-[a-z0-9]{12}(:\\d+)?$" + } + }, "com.amazonaws.redshiftdata#ValidationException": { "type": "structure", "members": {