diff --git a/clients/client-redshift/README.md b/clients/client-redshift/README.md index d69639f5c530..052e2a4fea59 100644 --- a/clients/client-redshift/README.md +++ b/clients/client-redshift/README.md @@ -359,6 +359,14 @@ CreateClusterSubnetGroup [Command API Reference](https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/clients/client-redshift/classes/createclustersubnetgroupcommand.html) / [Input](https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/clients/client-redshift/interfaces/createclustersubnetgroupcommandinput.html) / [Output](https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/clients/client-redshift/interfaces/createclustersubnetgroupcommandoutput.html) + +
+ +CreateCustomDomainAssociation + + +[Command API Reference](https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/clients/client-redshift/classes/createcustomdomainassociationcommand.html) / [Input](https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/clients/client-redshift/interfaces/createcustomdomainassociationcommandinput.html) / [Output](https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/clients/client-redshift/interfaces/createcustomdomainassociationcommandoutput.html) +
@@ -487,6 +495,14 @@ DeleteClusterSubnetGroup [Command API Reference](https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/clients/client-redshift/classes/deleteclustersubnetgroupcommand.html) / [Input](https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/clients/client-redshift/interfaces/deleteclustersubnetgroupcommandinput.html) / [Output](https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/clients/client-redshift/interfaces/deleteclustersubnetgroupcommandoutput.html) +
+
+ +DeleteCustomDomainAssociation + + +[Command API Reference](https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/clients/client-redshift/classes/deletecustomdomainassociationcommand.html) / [Input](https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/clients/client-redshift/interfaces/deletecustomdomainassociationcommandinput.html) / [Output](https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/clients/client-redshift/interfaces/deletecustomdomainassociationcommandoutput.html) +
@@ -655,6 +671,14 @@ DescribeClusterVersions [Command API Reference](https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/clients/client-redshift/classes/describeclusterversionscommand.html) / [Input](https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/clients/client-redshift/interfaces/describeclusterversionscommandinput.html) / [Output](https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/clients/client-redshift/interfaces/describeclusterversionscommandoutput.html) +
+
+ +DescribeCustomDomainAssociations + + +[Command API Reference](https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/clients/client-redshift/classes/describecustomdomainassociationscommand.html) / [Input](https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/clients/client-redshift/interfaces/describecustomdomainassociationscommandinput.html) / [Output](https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/clients/client-redshift/interfaces/describecustomdomainassociationscommandoutput.html) +
@@ -1015,6 +1039,14 @@ ModifyClusterSubnetGroup [Command API Reference](https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/clients/client-redshift/classes/modifyclustersubnetgroupcommand.html) / [Input](https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/clients/client-redshift/interfaces/modifyclustersubnetgroupcommandinput.html) / [Output](https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/clients/client-redshift/interfaces/modifyclustersubnetgroupcommandoutput.html) +
+
+ +ModifyCustomDomainAssociation + + +[Command API Reference](https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/clients/client-redshift/classes/modifycustomdomainassociationcommand.html) / [Input](https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/clients/client-redshift/interfaces/modifycustomdomainassociationcommandinput.html) / [Output](https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/clients/client-redshift/interfaces/modifycustomdomainassociationcommandoutput.html) +
diff --git a/clients/client-redshift/src/Redshift.ts b/clients/client-redshift/src/Redshift.ts index 9929163e09fc..99a592a624bc 100644 --- a/clients/client-redshift/src/Redshift.ts +++ b/clients/client-redshift/src/Redshift.ts @@ -83,6 +83,11 @@ import { CreateClusterSubnetGroupCommandInput, CreateClusterSubnetGroupCommandOutput, } from "./commands/CreateClusterSubnetGroupCommand"; +import { + CreateCustomDomainAssociationCommand, + CreateCustomDomainAssociationCommandInput, + CreateCustomDomainAssociationCommandOutput, +} from "./commands/CreateCustomDomainAssociationCommand"; import { CreateEndpointAccessCommand, CreateEndpointAccessCommandInput, @@ -159,6 +164,11 @@ import { DeleteClusterSubnetGroupCommandInput, DeleteClusterSubnetGroupCommandOutput, } from "./commands/DeleteClusterSubnetGroupCommand"; +import { + DeleteCustomDomainAssociationCommand, + DeleteCustomDomainAssociationCommandInput, + DeleteCustomDomainAssociationCommandOutput, +} from "./commands/DeleteCustomDomainAssociationCommand"; import { DeleteEndpointAccessCommand, DeleteEndpointAccessCommandInput, @@ -260,6 +270,11 @@ import { DescribeClusterVersionsCommandInput, DescribeClusterVersionsCommandOutput, } from "./commands/DescribeClusterVersionsCommand"; +import { + DescribeCustomDomainAssociationsCommand, + DescribeCustomDomainAssociationsCommandInput, + DescribeCustomDomainAssociationsCommandOutput, +} from "./commands/DescribeCustomDomainAssociationsCommand"; import { DescribeDataSharesCommand, DescribeDataSharesCommandInput, @@ -485,6 +500,11 @@ import { ModifyClusterSubnetGroupCommandInput, ModifyClusterSubnetGroupCommandOutput, } from "./commands/ModifyClusterSubnetGroupCommand"; +import { + ModifyCustomDomainAssociationCommand, + ModifyCustomDomainAssociationCommandInput, + ModifyCustomDomainAssociationCommandOutput, +} from "./commands/ModifyCustomDomainAssociationCommand"; import { ModifyEndpointAccessCommand, ModifyEndpointAccessCommandInput, @@ -605,6 +625,7 @@ const commands = { CreateClusterSecurityGroupCommand, CreateClusterSnapshotCommand, CreateClusterSubnetGroupCommand, + CreateCustomDomainAssociationCommand, CreateEndpointAccessCommand, CreateEventSubscriptionCommand, CreateHsmClientCertificateCommand, @@ -621,6 +642,7 @@ const commands = { DeleteClusterSecurityGroupCommand, DeleteClusterSnapshotCommand, DeleteClusterSubnetGroupCommand, + DeleteCustomDomainAssociationCommand, DeleteEndpointAccessCommand, DeleteEventSubscriptionCommand, DeleteHsmClientCertificateCommand, @@ -642,6 +664,7 @@ const commands = { DescribeClusterSubnetGroupsCommand, DescribeClusterTracksCommand, DescribeClusterVersionsCommand, + DescribeCustomDomainAssociationsCommand, DescribeDataSharesCommand, DescribeDataSharesForConsumerCommand, DescribeDataSharesForProducerCommand, @@ -687,6 +710,7 @@ const commands = { ModifyClusterSnapshotCommand, ModifyClusterSnapshotScheduleCommand, ModifyClusterSubnetGroupCommand, + ModifyCustomDomainAssociationCommand, ModifyEndpointAccessCommand, ModifyEventSubscriptionCommand, ModifyScheduledActionCommand, @@ -981,6 +1005,23 @@ export interface Redshift { cb: (err: any, data?: CreateClusterSubnetGroupCommandOutput) => void ): void; + /** + * @see {@link CreateCustomDomainAssociationCommand} + */ + createCustomDomainAssociation( + args: CreateCustomDomainAssociationCommandInput, + options?: __HttpHandlerOptions + ): Promise; + createCustomDomainAssociation( + args: CreateCustomDomainAssociationCommandInput, + cb: (err: any, data?: CreateCustomDomainAssociationCommandOutput) => void + ): void; + createCustomDomainAssociation( + args: CreateCustomDomainAssociationCommandInput, + options: __HttpHandlerOptions, + cb: (err: any, data?: CreateCustomDomainAssociationCommandOutput) => void + ): void; + /** * @see {@link CreateEndpointAccessCommand} */ @@ -1241,6 +1282,23 @@ export interface Redshift { cb: (err: any, data?: DeleteClusterSubnetGroupCommandOutput) => void ): void; + /** + * @see {@link DeleteCustomDomainAssociationCommand} + */ + deleteCustomDomainAssociation( + args: DeleteCustomDomainAssociationCommandInput, + options?: __HttpHandlerOptions + ): Promise; + deleteCustomDomainAssociation( + args: DeleteCustomDomainAssociationCommandInput, + cb: (err: any, data?: DeleteCustomDomainAssociationCommandOutput) => void + ): void; + deleteCustomDomainAssociation( + args: DeleteCustomDomainAssociationCommandInput, + options: __HttpHandlerOptions, + cb: (err: any, data?: DeleteCustomDomainAssociationCommandOutput) => void + ): void; + /** * @see {@link DeleteEndpointAccessCommand} */ @@ -1586,6 +1644,23 @@ export interface Redshift { cb: (err: any, data?: DescribeClusterVersionsCommandOutput) => void ): void; + /** + * @see {@link DescribeCustomDomainAssociationsCommand} + */ + describeCustomDomainAssociations( + args: DescribeCustomDomainAssociationsCommandInput, + options?: __HttpHandlerOptions + ): Promise; + describeCustomDomainAssociations( + args: DescribeCustomDomainAssociationsCommandInput, + cb: (err: any, data?: DescribeCustomDomainAssociationsCommandOutput) => void + ): void; + describeCustomDomainAssociations( + args: DescribeCustomDomainAssociationsCommandInput, + options: __HttpHandlerOptions, + cb: (err: any, data?: DescribeCustomDomainAssociationsCommandOutput) => void + ): void; + /** * @see {@link DescribeDataSharesCommand} */ @@ -2321,6 +2396,23 @@ export interface Redshift { cb: (err: any, data?: ModifyClusterSubnetGroupCommandOutput) => void ): void; + /** + * @see {@link ModifyCustomDomainAssociationCommand} + */ + modifyCustomDomainAssociation( + args: ModifyCustomDomainAssociationCommandInput, + options?: __HttpHandlerOptions + ): Promise; + modifyCustomDomainAssociation( + args: ModifyCustomDomainAssociationCommandInput, + cb: (err: any, data?: ModifyCustomDomainAssociationCommandOutput) => void + ): void; + modifyCustomDomainAssociation( + args: ModifyCustomDomainAssociationCommandInput, + options: __HttpHandlerOptions, + cb: (err: any, data?: ModifyCustomDomainAssociationCommandOutput) => void + ): void; + /** * @see {@link ModifyEndpointAccessCommand} */ diff --git a/clients/client-redshift/src/RedshiftClient.ts b/clients/client-redshift/src/RedshiftClient.ts index 32240b7a0bae..691499837c80 100644 --- a/clients/client-redshift/src/RedshiftClient.ts +++ b/clients/client-redshift/src/RedshiftClient.ts @@ -107,6 +107,10 @@ import { CreateClusterSubnetGroupCommandInput, CreateClusterSubnetGroupCommandOutput, } from "./commands/CreateClusterSubnetGroupCommand"; +import { + CreateCustomDomainAssociationCommandInput, + CreateCustomDomainAssociationCommandOutput, +} from "./commands/CreateCustomDomainAssociationCommand"; import { CreateEndpointAccessCommandInput, CreateEndpointAccessCommandOutput, @@ -162,6 +166,10 @@ import { DeleteClusterSubnetGroupCommandInput, DeleteClusterSubnetGroupCommandOutput, } from "./commands/DeleteClusterSubnetGroupCommand"; +import { + DeleteCustomDomainAssociationCommandInput, + DeleteCustomDomainAssociationCommandOutput, +} from "./commands/DeleteCustomDomainAssociationCommand"; import { DeleteEndpointAccessCommandInput, DeleteEndpointAccessCommandOutput, @@ -234,6 +242,10 @@ import { DescribeClusterVersionsCommandInput, DescribeClusterVersionsCommandOutput, } from "./commands/DescribeClusterVersionsCommand"; +import { + DescribeCustomDomainAssociationsCommandInput, + DescribeCustomDomainAssociationsCommandOutput, +} from "./commands/DescribeCustomDomainAssociationsCommand"; import { DescribeDataSharesCommandInput, DescribeDataSharesCommandOutput } from "./commands/DescribeDataSharesCommand"; import { DescribeDataSharesForConsumerCommandInput, @@ -384,6 +396,10 @@ import { ModifyClusterSubnetGroupCommandInput, ModifyClusterSubnetGroupCommandOutput, } from "./commands/ModifyClusterSubnetGroupCommand"; +import { + ModifyCustomDomainAssociationCommandInput, + ModifyCustomDomainAssociationCommandOutput, +} from "./commands/ModifyCustomDomainAssociationCommand"; import { ModifyEndpointAccessCommandInput, ModifyEndpointAccessCommandOutput, @@ -477,6 +493,7 @@ export type ServiceInputTypes = | CreateClusterSecurityGroupCommandInput | CreateClusterSnapshotCommandInput | CreateClusterSubnetGroupCommandInput + | CreateCustomDomainAssociationCommandInput | CreateEndpointAccessCommandInput | CreateEventSubscriptionCommandInput | CreateHsmClientCertificateCommandInput @@ -493,6 +510,7 @@ export type ServiceInputTypes = | DeleteClusterSecurityGroupCommandInput | DeleteClusterSnapshotCommandInput | DeleteClusterSubnetGroupCommandInput + | DeleteCustomDomainAssociationCommandInput | DeleteEndpointAccessCommandInput | DeleteEventSubscriptionCommandInput | DeleteHsmClientCertificateCommandInput @@ -514,6 +532,7 @@ export type ServiceInputTypes = | DescribeClusterTracksCommandInput | DescribeClusterVersionsCommandInput | DescribeClustersCommandInput + | DescribeCustomDomainAssociationsCommandInput | DescribeDataSharesCommandInput | DescribeDataSharesForConsumerCommandInput | DescribeDataSharesForProducerCommandInput @@ -559,6 +578,7 @@ export type ServiceInputTypes = | ModifyClusterSnapshotCommandInput | ModifyClusterSnapshotScheduleCommandInput | ModifyClusterSubnetGroupCommandInput + | ModifyCustomDomainAssociationCommandInput | ModifyEndpointAccessCommandInput | ModifyEventSubscriptionCommandInput | ModifyScheduledActionCommandInput @@ -601,6 +621,7 @@ export type ServiceOutputTypes = | CreateClusterSecurityGroupCommandOutput | CreateClusterSnapshotCommandOutput | CreateClusterSubnetGroupCommandOutput + | CreateCustomDomainAssociationCommandOutput | CreateEndpointAccessCommandOutput | CreateEventSubscriptionCommandOutput | CreateHsmClientCertificateCommandOutput @@ -617,6 +638,7 @@ export type ServiceOutputTypes = | DeleteClusterSecurityGroupCommandOutput | DeleteClusterSnapshotCommandOutput | DeleteClusterSubnetGroupCommandOutput + | DeleteCustomDomainAssociationCommandOutput | DeleteEndpointAccessCommandOutput | DeleteEventSubscriptionCommandOutput | DeleteHsmClientCertificateCommandOutput @@ -638,6 +660,7 @@ export type ServiceOutputTypes = | DescribeClusterTracksCommandOutput | DescribeClusterVersionsCommandOutput | DescribeClustersCommandOutput + | DescribeCustomDomainAssociationsCommandOutput | DescribeDataSharesCommandOutput | DescribeDataSharesForConsumerCommandOutput | DescribeDataSharesForProducerCommandOutput @@ -683,6 +706,7 @@ export type ServiceOutputTypes = | ModifyClusterSnapshotCommandOutput | ModifyClusterSnapshotScheduleCommandOutput | ModifyClusterSubnetGroupCommandOutput + | ModifyCustomDomainAssociationCommandOutput | ModifyEndpointAccessCommandOutput | ModifyEventSubscriptionCommandOutput | ModifyScheduledActionCommandOutput diff --git a/clients/client-redshift/src/commands/CreateClusterCommand.ts b/clients/client-redshift/src/commands/CreateClusterCommand.ts index 541a48ea9e07..19985b14ec28 100644 --- a/clients/client-redshift/src/commands/CreateClusterCommand.ts +++ b/clients/client-redshift/src/commands/CreateClusterCommand.ts @@ -269,6 +269,9 @@ export interface CreateClusterCommandOutput extends CreateClusterResult, __Metad * // TargetReservedNodeType: "STRING_VALUE", * // TargetReservedNodeCount: Number("int"), * // }, + * // CustomDomainName: "STRING_VALUE", + * // CustomDomainCertificateArn: "STRING_VALUE", + * // CustomDomainCertificateExpiryDate: new Date("TIMESTAMP"), * // }, * // }; * diff --git a/clients/client-redshift/src/commands/CreateCustomDomainAssociationCommand.ts b/clients/client-redshift/src/commands/CreateCustomDomainAssociationCommand.ts new file mode 100644 index 000000000000..ca0653e1eff7 --- /dev/null +++ b/clients/client-redshift/src/commands/CreateCustomDomainAssociationCommand.ts @@ -0,0 +1,166 @@ +// smithy-typescript generated code +import { EndpointParameterInstructions, getEndpointPlugin } from "@aws-sdk/middleware-endpoint"; +import { getSerdePlugin } from "@aws-sdk/middleware-serde"; +import { Command as $Command } from "@aws-sdk/smithy-client"; +import { + FinalizeHandlerArguments, + Handler, + HandlerExecutionContext, + HttpHandlerOptions as __HttpHandlerOptions, + MetadataBearer as __MetadataBearer, + MiddlewareStack, +} from "@aws-sdk/types"; +import { HttpRequest as __HttpRequest, HttpResponse as __HttpResponse } from "@smithy/protocol-http"; +import { SerdeContext as __SerdeContext } from "@smithy/types"; + +import { CreateCustomDomainAssociationMessage, CreateCustomDomainAssociationResult } from "../models/models_0"; +import { + de_CreateCustomDomainAssociationCommand, + se_CreateCustomDomainAssociationCommand, +} from "../protocols/Aws_query"; +import { RedshiftClientResolvedConfig, ServiceInputTypes, ServiceOutputTypes } from "../RedshiftClient"; + +/** + * @public + */ +export { __MetadataBearer, $Command }; +/** + * @public + * + * The input for {@link CreateCustomDomainAssociationCommand}. + */ +export interface CreateCustomDomainAssociationCommandInput extends CreateCustomDomainAssociationMessage {} +/** + * @public + * + * The output of {@link CreateCustomDomainAssociationCommand}. + */ +export interface CreateCustomDomainAssociationCommandOutput + extends CreateCustomDomainAssociationResult, + __MetadataBearer {} + +/** + * @public + *

Used to create a custom domain name for a cluster. Properties include the custom domain name, the + * cluster the custom domain is associated with, and the certificate Amazon Resource Name (ARN).

+ * @example + * Use a bare-bones client and the command you need to make an API call. + * ```javascript + * import { RedshiftClient, CreateCustomDomainAssociationCommand } from "@aws-sdk/client-redshift"; // ES Modules import + * // const { RedshiftClient, CreateCustomDomainAssociationCommand } = require("@aws-sdk/client-redshift"); // CommonJS import + * const client = new RedshiftClient(config); + * const input = { // CreateCustomDomainAssociationMessage + * CustomDomainName: "STRING_VALUE", // required + * CustomDomainCertificateArn: "STRING_VALUE", // required + * ClusterIdentifier: "STRING_VALUE", // required + * }; + * const command = new CreateCustomDomainAssociationCommand(input); + * const response = await client.send(command); + * // { // CreateCustomDomainAssociationResult + * // CustomDomainName: "STRING_VALUE", + * // CustomDomainCertificateArn: "STRING_VALUE", + * // ClusterIdentifier: "STRING_VALUE", + * // CustomDomainCertExpiryTime: "STRING_VALUE", + * // }; + * + * ``` + * + * @param CreateCustomDomainAssociationCommandInput - {@link CreateCustomDomainAssociationCommandInput} + * @returns {@link CreateCustomDomainAssociationCommandOutput} + * @see {@link CreateCustomDomainAssociationCommandInput} for command's `input` shape. + * @see {@link CreateCustomDomainAssociationCommandOutput} for command's `response` shape. + * @see {@link RedshiftClientResolvedConfig | config} for RedshiftClient's `config` shape. + * + * @throws {@link ClusterNotFoundFault} (client fault) + *

The ClusterIdentifier parameter does not refer to an existing cluster. + *

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

An error occurred when an attempt was made to change the custom domain association.

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

The requested operation isn't supported.

+ * + * @throws {@link RedshiftServiceException} + *

Base exception class for all service exceptions from Redshift service.

+ * + */ +export class CreateCustomDomainAssociationCommand extends $Command< + CreateCustomDomainAssociationCommandInput, + CreateCustomDomainAssociationCommandOutput, + RedshiftClientResolvedConfig +> { + // Start section: command_properties + // End section: command_properties + + public static getEndpointParameterInstructions(): EndpointParameterInstructions { + return { + UseFIPS: { type: "builtInParams", name: "useFipsEndpoint" }, + Endpoint: { type: "builtInParams", name: "endpoint" }, + Region: { type: "builtInParams", name: "region" }, + UseDualStack: { type: "builtInParams", name: "useDualstackEndpoint" }, + }; + } + + /** + * @public + */ + constructor(readonly input: CreateCustomDomainAssociationCommandInput) { + // Start section: command_constructor + super(); + // End section: command_constructor + } + + /** + * @internal + */ + resolveMiddleware( + clientStack: MiddlewareStack, + configuration: RedshiftClientResolvedConfig, + options?: __HttpHandlerOptions + ): Handler { + this.middlewareStack.use(getSerdePlugin(configuration, this.serialize, this.deserialize)); + this.middlewareStack.use( + getEndpointPlugin(configuration, CreateCustomDomainAssociationCommand.getEndpointParameterInstructions()) + ); + + const stack = clientStack.concat(this.middlewareStack); + + const { logger } = configuration; + const clientName = "RedshiftClient"; + const commandName = "CreateCustomDomainAssociationCommand"; + const handlerExecutionContext: HandlerExecutionContext = { + logger, + clientName, + commandName, + inputFilterSensitiveLog: (_: any) => _, + outputFilterSensitiveLog: (_: any) => _, + }; + const { requestHandler } = configuration; + return stack.resolve( + (request: FinalizeHandlerArguments) => + requestHandler.handle(request.request as __HttpRequest, options || {}), + handlerExecutionContext + ); + } + + /** + * @internal + */ + private serialize(input: CreateCustomDomainAssociationCommandInput, context: __SerdeContext): Promise<__HttpRequest> { + return se_CreateCustomDomainAssociationCommand(input, context); + } + + /** + * @internal + */ + private deserialize( + output: __HttpResponse, + context: __SerdeContext + ): Promise { + return de_CreateCustomDomainAssociationCommand(output, context); + } + + // Start section: command_body_extra + // End section: command_body_extra +} diff --git a/clients/client-redshift/src/commands/DeleteClusterCommand.ts b/clients/client-redshift/src/commands/DeleteClusterCommand.ts index 9583780a421c..8f22cb8bd490 100644 --- a/clients/client-redshift/src/commands/DeleteClusterCommand.ts +++ b/clients/client-redshift/src/commands/DeleteClusterCommand.ts @@ -237,6 +237,9 @@ export interface DeleteClusterCommandOutput extends DeleteClusterResult, __Metad * // TargetReservedNodeType: "STRING_VALUE", * // TargetReservedNodeCount: Number("int"), * // }, + * // CustomDomainName: "STRING_VALUE", + * // CustomDomainCertificateArn: "STRING_VALUE", + * // CustomDomainCertificateExpiryDate: new Date("TIMESTAMP"), * // }, * // }; * diff --git a/clients/client-redshift/src/commands/DeleteCustomDomainAssociationCommand.ts b/clients/client-redshift/src/commands/DeleteCustomDomainAssociationCommand.ts new file mode 100644 index 000000000000..8969887efef4 --- /dev/null +++ b/clients/client-redshift/src/commands/DeleteCustomDomainAssociationCommand.ts @@ -0,0 +1,156 @@ +// smithy-typescript generated code +import { EndpointParameterInstructions, getEndpointPlugin } from "@aws-sdk/middleware-endpoint"; +import { getSerdePlugin } from "@aws-sdk/middleware-serde"; +import { Command as $Command } from "@aws-sdk/smithy-client"; +import { + FinalizeHandlerArguments, + Handler, + HandlerExecutionContext, + HttpHandlerOptions as __HttpHandlerOptions, + MetadataBearer as __MetadataBearer, + MiddlewareStack, +} from "@aws-sdk/types"; +import { HttpRequest as __HttpRequest, HttpResponse as __HttpResponse } from "@smithy/protocol-http"; +import { SerdeContext as __SerdeContext } from "@smithy/types"; + +import { DeleteCustomDomainAssociationMessage } from "../models/models_0"; +import { + de_DeleteCustomDomainAssociationCommand, + se_DeleteCustomDomainAssociationCommand, +} from "../protocols/Aws_query"; +import { RedshiftClientResolvedConfig, ServiceInputTypes, ServiceOutputTypes } from "../RedshiftClient"; + +/** + * @public + */ +export { __MetadataBearer, $Command }; +/** + * @public + * + * The input for {@link DeleteCustomDomainAssociationCommand}. + */ +export interface DeleteCustomDomainAssociationCommandInput extends DeleteCustomDomainAssociationMessage {} +/** + * @public + * + * The output of {@link DeleteCustomDomainAssociationCommand}. + */ +export interface DeleteCustomDomainAssociationCommandOutput extends __MetadataBearer {} + +/** + * @public + *

Contains information about deleting a custom domain association for a cluster.

+ * @example + * Use a bare-bones client and the command you need to make an API call. + * ```javascript + * import { RedshiftClient, DeleteCustomDomainAssociationCommand } from "@aws-sdk/client-redshift"; // ES Modules import + * // const { RedshiftClient, DeleteCustomDomainAssociationCommand } = require("@aws-sdk/client-redshift"); // CommonJS import + * const client = new RedshiftClient(config); + * const input = { // DeleteCustomDomainAssociationMessage + * ClusterIdentifier: "STRING_VALUE", // required + * }; + * const command = new DeleteCustomDomainAssociationCommand(input); + * const response = await client.send(command); + * // {}; + * + * ``` + * + * @param DeleteCustomDomainAssociationCommandInput - {@link DeleteCustomDomainAssociationCommandInput} + * @returns {@link DeleteCustomDomainAssociationCommandOutput} + * @see {@link DeleteCustomDomainAssociationCommandInput} for command's `input` shape. + * @see {@link DeleteCustomDomainAssociationCommandOutput} for command's `response` shape. + * @see {@link RedshiftClientResolvedConfig | config} for RedshiftClient's `config` shape. + * + * @throws {@link ClusterNotFoundFault} (client fault) + *

The ClusterIdentifier parameter does not refer to an existing cluster. + *

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

An error occurred when an attempt was made to change the custom domain association.

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

The requested operation isn't supported.

+ * + * @throws {@link RedshiftServiceException} + *

Base exception class for all service exceptions from Redshift service.

+ * + */ +export class DeleteCustomDomainAssociationCommand extends $Command< + DeleteCustomDomainAssociationCommandInput, + DeleteCustomDomainAssociationCommandOutput, + RedshiftClientResolvedConfig +> { + // Start section: command_properties + // End section: command_properties + + public static getEndpointParameterInstructions(): EndpointParameterInstructions { + return { + UseFIPS: { type: "builtInParams", name: "useFipsEndpoint" }, + Endpoint: { type: "builtInParams", name: "endpoint" }, + Region: { type: "builtInParams", name: "region" }, + UseDualStack: { type: "builtInParams", name: "useDualstackEndpoint" }, + }; + } + + /** + * @public + */ + constructor(readonly input: DeleteCustomDomainAssociationCommandInput) { + // Start section: command_constructor + super(); + // End section: command_constructor + } + + /** + * @internal + */ + resolveMiddleware( + clientStack: MiddlewareStack, + configuration: RedshiftClientResolvedConfig, + options?: __HttpHandlerOptions + ): Handler { + this.middlewareStack.use(getSerdePlugin(configuration, this.serialize, this.deserialize)); + this.middlewareStack.use( + getEndpointPlugin(configuration, DeleteCustomDomainAssociationCommand.getEndpointParameterInstructions()) + ); + + const stack = clientStack.concat(this.middlewareStack); + + const { logger } = configuration; + const clientName = "RedshiftClient"; + const commandName = "DeleteCustomDomainAssociationCommand"; + const handlerExecutionContext: HandlerExecutionContext = { + logger, + clientName, + commandName, + inputFilterSensitiveLog: (_: any) => _, + outputFilterSensitiveLog: (_: any) => _, + }; + const { requestHandler } = configuration; + return stack.resolve( + (request: FinalizeHandlerArguments) => + requestHandler.handle(request.request as __HttpRequest, options || {}), + handlerExecutionContext + ); + } + + /** + * @internal + */ + private serialize(input: DeleteCustomDomainAssociationCommandInput, context: __SerdeContext): Promise<__HttpRequest> { + return se_DeleteCustomDomainAssociationCommand(input, context); + } + + /** + * @internal + */ + private deserialize( + output: __HttpResponse, + context: __SerdeContext + ): Promise { + return de_DeleteCustomDomainAssociationCommand(output, context); + } + + // Start section: command_body_extra + // End section: command_body_extra +} diff --git a/clients/client-redshift/src/commands/DescribeClustersCommand.ts b/clients/client-redshift/src/commands/DescribeClustersCommand.ts index 26180794b572..08d0946fe209 100644 --- a/clients/client-redshift/src/commands/DescribeClustersCommand.ts +++ b/clients/client-redshift/src/commands/DescribeClustersCommand.ts @@ -241,6 +241,9 @@ export interface DescribeClustersCommandOutput extends ClustersMessage, __Metada * // TargetReservedNodeType: "STRING_VALUE", * // TargetReservedNodeCount: Number("int"), * // }, + * // CustomDomainName: "STRING_VALUE", + * // CustomDomainCertificateArn: "STRING_VALUE", + * // CustomDomainCertificateExpiryDate: new Date("TIMESTAMP"), * // }, * // ], * // }; diff --git a/clients/client-redshift/src/commands/DescribeCustomDomainAssociationsCommand.ts b/clients/client-redshift/src/commands/DescribeCustomDomainAssociationsCommand.ts new file mode 100644 index 000000000000..a894a20cbfa7 --- /dev/null +++ b/clients/client-redshift/src/commands/DescribeCustomDomainAssociationsCommand.ts @@ -0,0 +1,174 @@ +// smithy-typescript generated code +import { EndpointParameterInstructions, getEndpointPlugin } from "@aws-sdk/middleware-endpoint"; +import { getSerdePlugin } from "@aws-sdk/middleware-serde"; +import { Command as $Command } from "@aws-sdk/smithy-client"; +import { + FinalizeHandlerArguments, + Handler, + HandlerExecutionContext, + HttpHandlerOptions as __HttpHandlerOptions, + MetadataBearer as __MetadataBearer, + MiddlewareStack, +} from "@aws-sdk/types"; +import { HttpRequest as __HttpRequest, HttpResponse as __HttpResponse } from "@smithy/protocol-http"; +import { SerdeContext as __SerdeContext } from "@smithy/types"; + +import { CustomDomainAssociationsMessage, DescribeCustomDomainAssociationsMessage } from "../models/models_0"; +import { + de_DescribeCustomDomainAssociationsCommand, + se_DescribeCustomDomainAssociationsCommand, +} from "../protocols/Aws_query"; +import { RedshiftClientResolvedConfig, ServiceInputTypes, ServiceOutputTypes } from "../RedshiftClient"; + +/** + * @public + */ +export { __MetadataBearer, $Command }; +/** + * @public + * + * The input for {@link DescribeCustomDomainAssociationsCommand}. + */ +export interface DescribeCustomDomainAssociationsCommandInput extends DescribeCustomDomainAssociationsMessage {} +/** + * @public + * + * The output of {@link DescribeCustomDomainAssociationsCommand}. + */ +export interface DescribeCustomDomainAssociationsCommandOutput + extends CustomDomainAssociationsMessage, + __MetadataBearer {} + +/** + * @public + *

Contains information for custom domain associations for a cluster.

+ * @example + * Use a bare-bones client and the command you need to make an API call. + * ```javascript + * import { RedshiftClient, DescribeCustomDomainAssociationsCommand } from "@aws-sdk/client-redshift"; // ES Modules import + * // const { RedshiftClient, DescribeCustomDomainAssociationsCommand } = require("@aws-sdk/client-redshift"); // CommonJS import + * const client = new RedshiftClient(config); + * const input = { // DescribeCustomDomainAssociationsMessage + * CustomDomainName: "STRING_VALUE", + * CustomDomainCertificateArn: "STRING_VALUE", + * MaxRecords: Number("int"), + * Marker: "STRING_VALUE", + * }; + * const command = new DescribeCustomDomainAssociationsCommand(input); + * const response = await client.send(command); + * // { // CustomDomainAssociationsMessage + * // Marker: "STRING_VALUE", + * // Associations: [ // AssociationList + * // { // Association + * // CustomDomainCertificateArn: "STRING_VALUE", + * // CustomDomainCertificateExpiryDate: new Date("TIMESTAMP"), + * // CertificateAssociations: [ // CertificateAssociationList + * // { // CertificateAssociation + * // CustomDomainName: "STRING_VALUE", + * // ClusterIdentifier: "STRING_VALUE", + * // }, + * // ], + * // }, + * // ], + * // }; + * + * ``` + * + * @param DescribeCustomDomainAssociationsCommandInput - {@link DescribeCustomDomainAssociationsCommandInput} + * @returns {@link DescribeCustomDomainAssociationsCommandOutput} + * @see {@link DescribeCustomDomainAssociationsCommandInput} for command's `input` shape. + * @see {@link DescribeCustomDomainAssociationsCommandOutput} for command's `response` shape. + * @see {@link RedshiftClientResolvedConfig | config} for RedshiftClient's `config` shape. + * + * @throws {@link CustomDomainAssociationNotFoundFault} (client fault) + *

An error occurred. The custom domain name couldn't be found.

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

The requested operation isn't supported.

+ * + * @throws {@link RedshiftServiceException} + *

Base exception class for all service exceptions from Redshift service.

+ * + */ +export class DescribeCustomDomainAssociationsCommand extends $Command< + DescribeCustomDomainAssociationsCommandInput, + DescribeCustomDomainAssociationsCommandOutput, + RedshiftClientResolvedConfig +> { + // Start section: command_properties + // End section: command_properties + + public static getEndpointParameterInstructions(): EndpointParameterInstructions { + return { + UseFIPS: { type: "builtInParams", name: "useFipsEndpoint" }, + Endpoint: { type: "builtInParams", name: "endpoint" }, + Region: { type: "builtInParams", name: "region" }, + UseDualStack: { type: "builtInParams", name: "useDualstackEndpoint" }, + }; + } + + /** + * @public + */ + constructor(readonly input: DescribeCustomDomainAssociationsCommandInput) { + // Start section: command_constructor + super(); + // End section: command_constructor + } + + /** + * @internal + */ + resolveMiddleware( + clientStack: MiddlewareStack, + configuration: RedshiftClientResolvedConfig, + options?: __HttpHandlerOptions + ): Handler { + this.middlewareStack.use(getSerdePlugin(configuration, this.serialize, this.deserialize)); + this.middlewareStack.use( + getEndpointPlugin(configuration, DescribeCustomDomainAssociationsCommand.getEndpointParameterInstructions()) + ); + + const stack = clientStack.concat(this.middlewareStack); + + const { logger } = configuration; + const clientName = "RedshiftClient"; + const commandName = "DescribeCustomDomainAssociationsCommand"; + const handlerExecutionContext: HandlerExecutionContext = { + logger, + clientName, + commandName, + inputFilterSensitiveLog: (_: any) => _, + outputFilterSensitiveLog: (_: any) => _, + }; + const { requestHandler } = configuration; + return stack.resolve( + (request: FinalizeHandlerArguments) => + requestHandler.handle(request.request as __HttpRequest, options || {}), + handlerExecutionContext + ); + } + + /** + * @internal + */ + private serialize( + input: DescribeCustomDomainAssociationsCommandInput, + context: __SerdeContext + ): Promise<__HttpRequest> { + return se_DescribeCustomDomainAssociationsCommand(input, context); + } + + /** + * @internal + */ + private deserialize( + output: __HttpResponse, + context: __SerdeContext + ): Promise { + return de_DescribeCustomDomainAssociationsCommand(output, context); + } + + // Start section: command_body_extra + // End section: command_body_extra +} diff --git a/clients/client-redshift/src/commands/DescribeEventCategoriesCommand.ts b/clients/client-redshift/src/commands/DescribeEventCategoriesCommand.ts index 344999b36516..48bea435cb6a 100644 --- a/clients/client-redshift/src/commands/DescribeEventCategoriesCommand.ts +++ b/clients/client-redshift/src/commands/DescribeEventCategoriesCommand.ts @@ -13,7 +13,8 @@ import { import { HttpRequest as __HttpRequest, HttpResponse as __HttpResponse } from "@smithy/protocol-http"; import { SerdeContext as __SerdeContext } from "@smithy/types"; -import { DescribeEventCategoriesMessage, EventCategoriesMessage } from "../models/models_0"; +import { DescribeEventCategoriesMessage } from "../models/models_0"; +import { EventCategoriesMessage } from "../models/models_1"; import { de_DescribeEventCategoriesCommand, se_DescribeEventCategoriesCommand } from "../protocols/Aws_query"; import { RedshiftClientResolvedConfig, ServiceInputTypes, ServiceOutputTypes } from "../RedshiftClient"; diff --git a/clients/client-redshift/src/commands/DescribeEventSubscriptionsCommand.ts b/clients/client-redshift/src/commands/DescribeEventSubscriptionsCommand.ts index 93f7906b787f..8cf8dd829893 100644 --- a/clients/client-redshift/src/commands/DescribeEventSubscriptionsCommand.ts +++ b/clients/client-redshift/src/commands/DescribeEventSubscriptionsCommand.ts @@ -13,7 +13,7 @@ import { import { HttpRequest as __HttpRequest, HttpResponse as __HttpResponse } from "@smithy/protocol-http"; import { SerdeContext as __SerdeContext } from "@smithy/types"; -import { DescribeEventSubscriptionsMessage, EventSubscriptionsMessage } from "../models/models_0"; +import { DescribeEventSubscriptionsMessage, EventSubscriptionsMessage } from "../models/models_1"; import { de_DescribeEventSubscriptionsCommand, se_DescribeEventSubscriptionsCommand } from "../protocols/Aws_query"; import { RedshiftClientResolvedConfig, ServiceInputTypes, ServiceOutputTypes } from "../RedshiftClient"; diff --git a/clients/client-redshift/src/commands/DescribeEventsCommand.ts b/clients/client-redshift/src/commands/DescribeEventsCommand.ts index 2ddb9e8f0e02..eee0979202ac 100644 --- a/clients/client-redshift/src/commands/DescribeEventsCommand.ts +++ b/clients/client-redshift/src/commands/DescribeEventsCommand.ts @@ -13,7 +13,7 @@ import { import { HttpRequest as __HttpRequest, HttpResponse as __HttpResponse } from "@smithy/protocol-http"; import { SerdeContext as __SerdeContext } from "@smithy/types"; -import { DescribeEventsMessage, EventsMessage } from "../models/models_0"; +import { DescribeEventsMessage, EventsMessage } from "../models/models_1"; import { de_DescribeEventsCommand, se_DescribeEventsCommand } from "../protocols/Aws_query"; import { RedshiftClientResolvedConfig, ServiceInputTypes, ServiceOutputTypes } from "../RedshiftClient"; diff --git a/clients/client-redshift/src/commands/DescribeHsmClientCertificatesCommand.ts b/clients/client-redshift/src/commands/DescribeHsmClientCertificatesCommand.ts index f210dbbdddd1..39d54423d77e 100644 --- a/clients/client-redshift/src/commands/DescribeHsmClientCertificatesCommand.ts +++ b/clients/client-redshift/src/commands/DescribeHsmClientCertificatesCommand.ts @@ -13,7 +13,7 @@ import { import { HttpRequest as __HttpRequest, HttpResponse as __HttpResponse } from "@smithy/protocol-http"; import { SerdeContext as __SerdeContext } from "@smithy/types"; -import { DescribeHsmClientCertificatesMessage, HsmClientCertificateMessage } from "../models/models_0"; +import { DescribeHsmClientCertificatesMessage, HsmClientCertificateMessage } from "../models/models_1"; import { de_DescribeHsmClientCertificatesCommand, se_DescribeHsmClientCertificatesCommand, diff --git a/clients/client-redshift/src/commands/DisableSnapshotCopyCommand.ts b/clients/client-redshift/src/commands/DisableSnapshotCopyCommand.ts index e5bcd6a0ee30..bc6992d16f43 100644 --- a/clients/client-redshift/src/commands/DisableSnapshotCopyCommand.ts +++ b/clients/client-redshift/src/commands/DisableSnapshotCopyCommand.ts @@ -223,6 +223,9 @@ export interface DisableSnapshotCopyCommandOutput extends DisableSnapshotCopyRes * // TargetReservedNodeType: "STRING_VALUE", * // TargetReservedNodeCount: Number("int"), * // }, + * // CustomDomainName: "STRING_VALUE", + * // CustomDomainCertificateArn: "STRING_VALUE", + * // CustomDomainCertificateExpiryDate: new Date("TIMESTAMP"), * // }, * // }; * diff --git a/clients/client-redshift/src/commands/EnableSnapshotCopyCommand.ts b/clients/client-redshift/src/commands/EnableSnapshotCopyCommand.ts index 4045d6cf53bc..e2369959535f 100644 --- a/clients/client-redshift/src/commands/EnableSnapshotCopyCommand.ts +++ b/clients/client-redshift/src/commands/EnableSnapshotCopyCommand.ts @@ -224,6 +224,9 @@ export interface EnableSnapshotCopyCommandOutput extends EnableSnapshotCopyResul * // TargetReservedNodeType: "STRING_VALUE", * // TargetReservedNodeCount: Number("int"), * // }, + * // CustomDomainName: "STRING_VALUE", + * // CustomDomainCertificateArn: "STRING_VALUE", + * // CustomDomainCertificateExpiryDate: new Date("TIMESTAMP"), * // }, * // }; * diff --git a/clients/client-redshift/src/commands/GetClusterCredentialsCommand.ts b/clients/client-redshift/src/commands/GetClusterCredentialsCommand.ts index 062ea9f01198..938df06a9506 100644 --- a/clients/client-redshift/src/commands/GetClusterCredentialsCommand.ts +++ b/clients/client-redshift/src/commands/GetClusterCredentialsCommand.ts @@ -67,12 +67,13 @@ export interface GetClusterCredentialsCommandOutput extends ClusterCredentials, * const input = { // GetClusterCredentialsMessage * DbUser: "STRING_VALUE", // required * DbName: "STRING_VALUE", - * ClusterIdentifier: "STRING_VALUE", // required + * ClusterIdentifier: "STRING_VALUE", * DurationSeconds: Number("int"), * AutoCreate: true || false, * DbGroups: [ // DbGroupList * "STRING_VALUE", * ], + * CustomDomainName: "STRING_VALUE", * }; * const command = new GetClusterCredentialsCommand(input); * const response = await client.send(command); diff --git a/clients/client-redshift/src/commands/GetClusterCredentialsWithIAMCommand.ts b/clients/client-redshift/src/commands/GetClusterCredentialsWithIAMCommand.ts index ca854fe42731..09efa65a0856 100644 --- a/clients/client-redshift/src/commands/GetClusterCredentialsWithIAMCommand.ts +++ b/clients/client-redshift/src/commands/GetClusterCredentialsWithIAMCommand.ts @@ -55,8 +55,9 @@ export interface GetClusterCredentialsWithIAMCommandOutput extends ClusterExtend * const client = new RedshiftClient(config); * const input = { // GetClusterCredentialsWithIAMMessage * DbName: "STRING_VALUE", - * ClusterIdentifier: "STRING_VALUE", // required + * ClusterIdentifier: "STRING_VALUE", * DurationSeconds: Number("int"), + * CustomDomainName: "STRING_VALUE", * }; * const command = new GetClusterCredentialsWithIAMCommand(input); * const response = await client.send(command); diff --git a/clients/client-redshift/src/commands/ModifyClusterCommand.ts b/clients/client-redshift/src/commands/ModifyClusterCommand.ts index 600ac67676a0..86cbc6a9396c 100644 --- a/clients/client-redshift/src/commands/ModifyClusterCommand.ts +++ b/clients/client-redshift/src/commands/ModifyClusterCommand.ts @@ -255,6 +255,9 @@ export interface ModifyClusterCommandOutput extends ModifyClusterResult, __Metad * // TargetReservedNodeType: "STRING_VALUE", * // TargetReservedNodeCount: Number("int"), * // }, + * // CustomDomainName: "STRING_VALUE", + * // CustomDomainCertificateArn: "STRING_VALUE", + * // CustomDomainCertificateExpiryDate: new Date("TIMESTAMP"), * // }, * // }; * @@ -280,6 +283,9 @@ export interface ModifyClusterCommandOutput extends ModifyClusterResult, __Metad *

The cluster security group name does not refer to an existing cluster security * group.

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

An error occurred when an attempt was made to change the custom domain association.

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

The request cannot be completed because a dependent service is throttling requests * made by Amazon Redshift on your behalf. Wait and retry the request.

@@ -331,6 +337,9 @@ export interface ModifyClusterCommandOutput extends ModifyClusterResult, __Metad * @throws {@link UnauthorizedOperation} (client fault) *

Your account is not authorized to perform the requested operation.

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

The requested operation isn't supported.

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

A request option was specified that is not supported.

* diff --git a/clients/client-redshift/src/commands/ModifyClusterDbRevisionCommand.ts b/clients/client-redshift/src/commands/ModifyClusterDbRevisionCommand.ts index ea06bba2eeb3..895daa084ae0 100644 --- a/clients/client-redshift/src/commands/ModifyClusterDbRevisionCommand.ts +++ b/clients/client-redshift/src/commands/ModifyClusterDbRevisionCommand.ts @@ -221,6 +221,9 @@ export interface ModifyClusterDbRevisionCommandOutput extends ModifyClusterDbRev * // TargetReservedNodeType: "STRING_VALUE", * // TargetReservedNodeCount: Number("int"), * // }, + * // CustomDomainName: "STRING_VALUE", + * // CustomDomainCertificateArn: "STRING_VALUE", + * // CustomDomainCertificateExpiryDate: new Date("TIMESTAMP"), * // }, * // }; * diff --git a/clients/client-redshift/src/commands/ModifyClusterIamRolesCommand.ts b/clients/client-redshift/src/commands/ModifyClusterIamRolesCommand.ts index 08648b192a38..d79cde003293 100644 --- a/clients/client-redshift/src/commands/ModifyClusterIamRolesCommand.ts +++ b/clients/client-redshift/src/commands/ModifyClusterIamRolesCommand.ts @@ -230,6 +230,9 @@ export interface ModifyClusterIamRolesCommandOutput extends ModifyClusterIamRole * // TargetReservedNodeType: "STRING_VALUE", * // TargetReservedNodeCount: Number("int"), * // }, + * // CustomDomainName: "STRING_VALUE", + * // CustomDomainCertificateArn: "STRING_VALUE", + * // CustomDomainCertificateExpiryDate: new Date("TIMESTAMP"), * // }, * // }; * diff --git a/clients/client-redshift/src/commands/ModifyClusterMaintenanceCommand.ts b/clients/client-redshift/src/commands/ModifyClusterMaintenanceCommand.ts index 71b935a68297..94c98f8a0198 100644 --- a/clients/client-redshift/src/commands/ModifyClusterMaintenanceCommand.ts +++ b/clients/client-redshift/src/commands/ModifyClusterMaintenanceCommand.ts @@ -224,6 +224,9 @@ export interface ModifyClusterMaintenanceCommandOutput extends ModifyClusterMain * // TargetReservedNodeType: "STRING_VALUE", * // TargetReservedNodeCount: Number("int"), * // }, + * // CustomDomainName: "STRING_VALUE", + * // CustomDomainCertificateArn: "STRING_VALUE", + * // CustomDomainCertificateExpiryDate: new Date("TIMESTAMP"), * // }, * // }; * diff --git a/clients/client-redshift/src/commands/ModifyCustomDomainAssociationCommand.ts b/clients/client-redshift/src/commands/ModifyCustomDomainAssociationCommand.ts new file mode 100644 index 000000000000..70b052738c3c --- /dev/null +++ b/clients/client-redshift/src/commands/ModifyCustomDomainAssociationCommand.ts @@ -0,0 +1,165 @@ +// smithy-typescript generated code +import { EndpointParameterInstructions, getEndpointPlugin } from "@aws-sdk/middleware-endpoint"; +import { getSerdePlugin } from "@aws-sdk/middleware-serde"; +import { Command as $Command } from "@aws-sdk/smithy-client"; +import { + FinalizeHandlerArguments, + Handler, + HandlerExecutionContext, + HttpHandlerOptions as __HttpHandlerOptions, + MetadataBearer as __MetadataBearer, + MiddlewareStack, +} from "@aws-sdk/types"; +import { HttpRequest as __HttpRequest, HttpResponse as __HttpResponse } from "@smithy/protocol-http"; +import { SerdeContext as __SerdeContext } from "@smithy/types"; + +import { ModifyCustomDomainAssociationMessage, ModifyCustomDomainAssociationResult } from "../models/models_1"; +import { + de_ModifyCustomDomainAssociationCommand, + se_ModifyCustomDomainAssociationCommand, +} from "../protocols/Aws_query"; +import { RedshiftClientResolvedConfig, ServiceInputTypes, ServiceOutputTypes } from "../RedshiftClient"; + +/** + * @public + */ +export { __MetadataBearer, $Command }; +/** + * @public + * + * The input for {@link ModifyCustomDomainAssociationCommand}. + */ +export interface ModifyCustomDomainAssociationCommandInput extends ModifyCustomDomainAssociationMessage {} +/** + * @public + * + * The output of {@link ModifyCustomDomainAssociationCommand}. + */ +export interface ModifyCustomDomainAssociationCommandOutput + extends ModifyCustomDomainAssociationResult, + __MetadataBearer {} + +/** + * @public + *

Contains information for changing a custom domain association.

+ * @example + * Use a bare-bones client and the command you need to make an API call. + * ```javascript + * import { RedshiftClient, ModifyCustomDomainAssociationCommand } from "@aws-sdk/client-redshift"; // ES Modules import + * // const { RedshiftClient, ModifyCustomDomainAssociationCommand } = require("@aws-sdk/client-redshift"); // CommonJS import + * const client = new RedshiftClient(config); + * const input = { // ModifyCustomDomainAssociationMessage + * CustomDomainName: "STRING_VALUE", + * CustomDomainCertificateArn: "STRING_VALUE", + * ClusterIdentifier: "STRING_VALUE", // required + * }; + * const command = new ModifyCustomDomainAssociationCommand(input); + * const response = await client.send(command); + * // { // ModifyCustomDomainAssociationResult + * // CustomDomainName: "STRING_VALUE", + * // CustomDomainCertificateArn: "STRING_VALUE", + * // ClusterIdentifier: "STRING_VALUE", + * // CustomDomainCertExpiryTime: "STRING_VALUE", + * // }; + * + * ``` + * + * @param ModifyCustomDomainAssociationCommandInput - {@link ModifyCustomDomainAssociationCommandInput} + * @returns {@link ModifyCustomDomainAssociationCommandOutput} + * @see {@link ModifyCustomDomainAssociationCommandInput} for command's `input` shape. + * @see {@link ModifyCustomDomainAssociationCommandOutput} for command's `response` shape. + * @see {@link RedshiftClientResolvedConfig | config} for RedshiftClient's `config` shape. + * + * @throws {@link ClusterNotFoundFault} (client fault) + *

The ClusterIdentifier parameter does not refer to an existing cluster. + *

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

An error occurred when an attempt was made to change the custom domain association.

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

The requested operation isn't supported.

+ * + * @throws {@link RedshiftServiceException} + *

Base exception class for all service exceptions from Redshift service.

+ * + */ +export class ModifyCustomDomainAssociationCommand extends $Command< + ModifyCustomDomainAssociationCommandInput, + ModifyCustomDomainAssociationCommandOutput, + RedshiftClientResolvedConfig +> { + // Start section: command_properties + // End section: command_properties + + public static getEndpointParameterInstructions(): EndpointParameterInstructions { + return { + UseFIPS: { type: "builtInParams", name: "useFipsEndpoint" }, + Endpoint: { type: "builtInParams", name: "endpoint" }, + Region: { type: "builtInParams", name: "region" }, + UseDualStack: { type: "builtInParams", name: "useDualstackEndpoint" }, + }; + } + + /** + * @public + */ + constructor(readonly input: ModifyCustomDomainAssociationCommandInput) { + // Start section: command_constructor + super(); + // End section: command_constructor + } + + /** + * @internal + */ + resolveMiddleware( + clientStack: MiddlewareStack, + configuration: RedshiftClientResolvedConfig, + options?: __HttpHandlerOptions + ): Handler { + this.middlewareStack.use(getSerdePlugin(configuration, this.serialize, this.deserialize)); + this.middlewareStack.use( + getEndpointPlugin(configuration, ModifyCustomDomainAssociationCommand.getEndpointParameterInstructions()) + ); + + const stack = clientStack.concat(this.middlewareStack); + + const { logger } = configuration; + const clientName = "RedshiftClient"; + const commandName = "ModifyCustomDomainAssociationCommand"; + const handlerExecutionContext: HandlerExecutionContext = { + logger, + clientName, + commandName, + inputFilterSensitiveLog: (_: any) => _, + outputFilterSensitiveLog: (_: any) => _, + }; + const { requestHandler } = configuration; + return stack.resolve( + (request: FinalizeHandlerArguments) => + requestHandler.handle(request.request as __HttpRequest, options || {}), + handlerExecutionContext + ); + } + + /** + * @internal + */ + private serialize(input: ModifyCustomDomainAssociationCommandInput, context: __SerdeContext): Promise<__HttpRequest> { + return se_ModifyCustomDomainAssociationCommand(input, context); + } + + /** + * @internal + */ + private deserialize( + output: __HttpResponse, + context: __SerdeContext + ): Promise { + return de_ModifyCustomDomainAssociationCommand(output, context); + } + + // Start section: command_body_extra + // End section: command_body_extra +} diff --git a/clients/client-redshift/src/commands/ModifySnapshotCopyRetentionPeriodCommand.ts b/clients/client-redshift/src/commands/ModifySnapshotCopyRetentionPeriodCommand.ts index daff6f9560aa..fa6499470107 100644 --- a/clients/client-redshift/src/commands/ModifySnapshotCopyRetentionPeriodCommand.ts +++ b/clients/client-redshift/src/commands/ModifySnapshotCopyRetentionPeriodCommand.ts @@ -232,6 +232,9 @@ export interface ModifySnapshotCopyRetentionPeriodCommandOutput * // TargetReservedNodeType: "STRING_VALUE", * // TargetReservedNodeCount: Number("int"), * // }, + * // CustomDomainName: "STRING_VALUE", + * // CustomDomainCertificateArn: "STRING_VALUE", + * // CustomDomainCertificateExpiryDate: new Date("TIMESTAMP"), * // }, * // }; * diff --git a/clients/client-redshift/src/commands/PauseClusterCommand.ts b/clients/client-redshift/src/commands/PauseClusterCommand.ts index ed236e57e76c..6bd9d7872216 100644 --- a/clients/client-redshift/src/commands/PauseClusterCommand.ts +++ b/clients/client-redshift/src/commands/PauseClusterCommand.ts @@ -220,6 +220,9 @@ export interface PauseClusterCommandOutput extends PauseClusterResult, __Metadat * // TargetReservedNodeType: "STRING_VALUE", * // TargetReservedNodeCount: Number("int"), * // }, + * // CustomDomainName: "STRING_VALUE", + * // CustomDomainCertificateArn: "STRING_VALUE", + * // CustomDomainCertificateExpiryDate: new Date("TIMESTAMP"), * // }, * // }; * diff --git a/clients/client-redshift/src/commands/RebootClusterCommand.ts b/clients/client-redshift/src/commands/RebootClusterCommand.ts index 39e22f30f879..2daff8d6455f 100644 --- a/clients/client-redshift/src/commands/RebootClusterCommand.ts +++ b/clients/client-redshift/src/commands/RebootClusterCommand.ts @@ -226,6 +226,9 @@ export interface RebootClusterCommandOutput extends RebootClusterResult, __Metad * // TargetReservedNodeType: "STRING_VALUE", * // TargetReservedNodeCount: Number("int"), * // }, + * // CustomDomainName: "STRING_VALUE", + * // CustomDomainCertificateArn: "STRING_VALUE", + * // CustomDomainCertificateExpiryDate: new Date("TIMESTAMP"), * // }, * // }; * diff --git a/clients/client-redshift/src/commands/ResizeClusterCommand.ts b/clients/client-redshift/src/commands/ResizeClusterCommand.ts index 2e11f34d47a3..4be6ef908892 100644 --- a/clients/client-redshift/src/commands/ResizeClusterCommand.ts +++ b/clients/client-redshift/src/commands/ResizeClusterCommand.ts @@ -268,6 +268,9 @@ export interface ResizeClusterCommandOutput extends ResizeClusterResult, __Metad * // TargetReservedNodeType: "STRING_VALUE", * // TargetReservedNodeCount: Number("int"), * // }, + * // CustomDomainName: "STRING_VALUE", + * // CustomDomainCertificateArn: "STRING_VALUE", + * // CustomDomainCertificateExpiryDate: new Date("TIMESTAMP"), * // }, * // }; * diff --git a/clients/client-redshift/src/commands/RestoreFromClusterSnapshotCommand.ts b/clients/client-redshift/src/commands/RestoreFromClusterSnapshotCommand.ts index 7fd06f9ab3b4..05ec00693a8e 100644 --- a/clients/client-redshift/src/commands/RestoreFromClusterSnapshotCommand.ts +++ b/clients/client-redshift/src/commands/RestoreFromClusterSnapshotCommand.ts @@ -268,6 +268,9 @@ export interface RestoreFromClusterSnapshotCommandOutput extends RestoreFromClus * // TargetReservedNodeType: "STRING_VALUE", * // TargetReservedNodeCount: Number("int"), * // }, + * // CustomDomainName: "STRING_VALUE", + * // CustomDomainCertificateArn: "STRING_VALUE", + * // CustomDomainCertificateExpiryDate: new Date("TIMESTAMP"), * // }, * // }; * diff --git a/clients/client-redshift/src/commands/ResumeClusterCommand.ts b/clients/client-redshift/src/commands/ResumeClusterCommand.ts index beb5d722968a..06f3a319a739 100644 --- a/clients/client-redshift/src/commands/ResumeClusterCommand.ts +++ b/clients/client-redshift/src/commands/ResumeClusterCommand.ts @@ -220,6 +220,9 @@ export interface ResumeClusterCommandOutput extends ResumeClusterResult, __Metad * // TargetReservedNodeType: "STRING_VALUE", * // TargetReservedNodeCount: Number("int"), * // }, + * // CustomDomainName: "STRING_VALUE", + * // CustomDomainCertificateArn: "STRING_VALUE", + * // CustomDomainCertificateExpiryDate: new Date("TIMESTAMP"), * // }, * // }; * diff --git a/clients/client-redshift/src/commands/RotateEncryptionKeyCommand.ts b/clients/client-redshift/src/commands/RotateEncryptionKeyCommand.ts index 328f35ed5365..83e863ccd332 100644 --- a/clients/client-redshift/src/commands/RotateEncryptionKeyCommand.ts +++ b/clients/client-redshift/src/commands/RotateEncryptionKeyCommand.ts @@ -219,6 +219,9 @@ export interface RotateEncryptionKeyCommandOutput extends RotateEncryptionKeyRes * // TargetReservedNodeType: "STRING_VALUE", * // TargetReservedNodeCount: Number("int"), * // }, + * // CustomDomainName: "STRING_VALUE", + * // CustomDomainCertificateArn: "STRING_VALUE", + * // CustomDomainCertificateExpiryDate: new Date("TIMESTAMP"), * // }, * // }; * diff --git a/clients/client-redshift/src/commands/index.ts b/clients/client-redshift/src/commands/index.ts index 55dc1e4bee92..0da2c917b777 100644 --- a/clients/client-redshift/src/commands/index.ts +++ b/clients/client-redshift/src/commands/index.ts @@ -16,6 +16,7 @@ export * from "./CreateClusterParameterGroupCommand"; export * from "./CreateClusterSecurityGroupCommand"; export * from "./CreateClusterSnapshotCommand"; export * from "./CreateClusterSubnetGroupCommand"; +export * from "./CreateCustomDomainAssociationCommand"; export * from "./CreateEndpointAccessCommand"; export * from "./CreateEventSubscriptionCommand"; export * from "./CreateHsmClientCertificateCommand"; @@ -32,6 +33,7 @@ export * from "./DeleteClusterParameterGroupCommand"; export * from "./DeleteClusterSecurityGroupCommand"; export * from "./DeleteClusterSnapshotCommand"; export * from "./DeleteClusterSubnetGroupCommand"; +export * from "./DeleteCustomDomainAssociationCommand"; export * from "./DeleteEndpointAccessCommand"; export * from "./DeleteEventSubscriptionCommand"; export * from "./DeleteHsmClientCertificateCommand"; @@ -53,6 +55,7 @@ export * from "./DescribeClusterSubnetGroupsCommand"; export * from "./DescribeClusterTracksCommand"; export * from "./DescribeClusterVersionsCommand"; export * from "./DescribeClustersCommand"; +export * from "./DescribeCustomDomainAssociationsCommand"; export * from "./DescribeDataSharesCommand"; export * from "./DescribeDataSharesForConsumerCommand"; export * from "./DescribeDataSharesForProducerCommand"; @@ -98,6 +101,7 @@ export * from "./ModifyClusterParameterGroupCommand"; export * from "./ModifyClusterSnapshotCommand"; export * from "./ModifyClusterSnapshotScheduleCommand"; export * from "./ModifyClusterSubnetGroupCommand"; +export * from "./ModifyCustomDomainAssociationCommand"; export * from "./ModifyEndpointAccessCommand"; export * from "./ModifyEventSubscriptionCommand"; export * from "./ModifyScheduledActionCommand"; diff --git a/clients/client-redshift/src/endpoint/ruleset.ts b/clients/client-redshift/src/endpoint/ruleset.ts index a85d60618021..e458eedbbd48 100644 --- a/clients/client-redshift/src/endpoint/ruleset.ts +++ b/clients/client-redshift/src/endpoint/ruleset.ts @@ -6,29 +6,27 @@ import { RuleSetObject } from "@aws-sdk/util-endpoints"; or see "smithy.rules#endpointRuleSet" in codegen/sdk-codegen/aws-models/redshift.json */ -const u="required", -v="fn", -w="argv", -x="ref"; +const s="required", +t="fn", +u="argv", +v="ref"; const a="isSet", b="tree", c="error", d="endpoint", e="PartitionResult", f="getAttr", -g="stringEquals", -h={[u]:false,"type":"String"}, -i={[u]:true,"default":false,"type":"Boolean"}, -j={[x]:"Endpoint"}, -k={[v]:"booleanEquals",[w]:[{[x]:"UseFIPS"},true]}, -l={[v]:"booleanEquals",[w]:[{[x]:"UseDualStack"},true]}, -m={}, -n={[x]:"Region"}, -o={[v]:"booleanEquals",[w]:[true,{[v]:f,[w]:[{[x]:e},"supportsFIPS"]}]}, -p={[x]:e}, -q={[v]:"booleanEquals",[w]:[true,{[v]:f,[w]:[p,"supportsDualStack"]}]}, -r=[k], -s=[l], -t=[n]; -const _data={version:"1.0",parameters:{Region:h,UseDualStack:i,UseFIPS:i,Endpoint:h},rules:[{conditions:[{[v]:a,[w]:[j]}],type:b,rules:[{conditions:r,error:"Invalid Configuration: FIPS and custom endpoint are not supported",type:c},{type:b,rules:[{conditions:s,error:"Invalid Configuration: Dualstack and custom endpoint are not supported",type:c},{endpoint:{url:j,properties:m,headers:m},type:d}]}]},{type:b,rules:[{conditions:[{[v]:a,[w]:t}],type:b,rules:[{conditions:[{[v]:"aws.partition",[w]:t,assign:e}],type:b,rules:[{conditions:[k,l],type:b,rules:[{conditions:[o,q],type:b,rules:[{type:b,rules:[{endpoint:{url:"https://redshift-fips.{Region}.{PartitionResult#dualStackDnsSuffix}",properties:m,headers:m},type:d}]}]},{error:"FIPS and DualStack are enabled, but this partition does not support one or both",type:c}]},{conditions:r,type:b,rules:[{conditions:[o],type:b,rules:[{type:b,rules:[{conditions:[{[v]:g,[w]:["aws-us-gov",{[v]:f,[w]:[p,"name"]}]}],endpoint:{url:"https://redshift.{Region}.amazonaws.com",properties:m,headers:m},type:d},{endpoint:{url:"https://redshift-fips.{Region}.{PartitionResult#dnsSuffix}",properties:m,headers:m},type:d}]}]},{error:"FIPS is enabled but this partition does not support FIPS",type:c}]},{conditions:s,type:b,rules:[{conditions:[q],type:b,rules:[{type:b,rules:[{endpoint:{url:"https://redshift.{Region}.{PartitionResult#dualStackDnsSuffix}",properties:m,headers:m},type:d}]}]},{error:"DualStack is enabled but this partition does not support DualStack",type:c}]},{type:b,rules:[{conditions:[{[v]:g,[w]:[n,"us-gov-east-1"]}],endpoint:{url:"https://redshift.us-gov-east-1.amazonaws.com",properties:m,headers:m},type:d},{conditions:[{[v]:g,[w]:[n,"us-gov-west-1"]}],endpoint:{url:"https://redshift.us-gov-west-1.amazonaws.com",properties:m,headers:m},type:d},{endpoint:{url:"https://redshift.{Region}.{PartitionResult#dnsSuffix}",properties:m,headers:m},type:d}]}]}]},{error:"Invalid Configuration: Missing Region",type:c}]}]}; +g={[s]:false,"type":"String"}, +h={[s]:true,"default":false,"type":"Boolean"}, +i={[v]:"Endpoint"}, +j={[t]:"booleanEquals",[u]:[{[v]:"UseFIPS"},true]}, +k={[t]:"booleanEquals",[u]:[{[v]:"UseDualStack"},true]}, +l={}, +m={[t]:"booleanEquals",[u]:[true,{[t]:f,[u]:[{[v]:e},"supportsFIPS"]}]}, +n={[v]:e}, +o={[t]:"booleanEquals",[u]:[true,{[t]:f,[u]:[n,"supportsDualStack"]}]}, +p=[j], +q=[k], +r=[{[v]:"Region"}]; +const _data={version:"1.0",parameters:{Region:g,UseDualStack:h,UseFIPS:h,Endpoint:g},rules:[{conditions:[{[t]:a,[u]:[i]}],type:b,rules:[{conditions:p,error:"Invalid Configuration: FIPS and custom endpoint are not supported",type:c},{type:b,rules:[{conditions:q,error:"Invalid Configuration: Dualstack and custom endpoint are not supported",type:c},{endpoint:{url:i,properties:l,headers:l},type:d}]}]},{type:b,rules:[{conditions:[{[t]:a,[u]:r}],type:b,rules:[{conditions:[{[t]:"aws.partition",[u]:r,assign:e}],type:b,rules:[{conditions:[j,k],type:b,rules:[{conditions:[m,o],type:b,rules:[{type:b,rules:[{endpoint:{url:"https://redshift-fips.{Region}.{PartitionResult#dualStackDnsSuffix}",properties:l,headers:l},type:d}]}]},{error:"FIPS and DualStack are enabled, but this partition does not support one or both",type:c}]},{conditions:p,type:b,rules:[{conditions:[m],type:b,rules:[{type:b,rules:[{conditions:[{[t]:"stringEquals",[u]:["aws-us-gov",{[t]:f,[u]:[n,"name"]}]}],endpoint:{url:"https://redshift.{Region}.amazonaws.com",properties:l,headers:l},type:d},{endpoint:{url:"https://redshift-fips.{Region}.{PartitionResult#dnsSuffix}",properties:l,headers:l},type:d}]}]},{error:"FIPS is enabled but this partition does not support FIPS",type:c}]},{conditions:q,type:b,rules:[{conditions:[o],type:b,rules:[{type:b,rules:[{endpoint:{url:"https://redshift.{Region}.{PartitionResult#dualStackDnsSuffix}",properties:l,headers:l},type:d}]}]},{error:"DualStack is enabled but this partition does not support DualStack",type:c}]},{type:b,rules:[{endpoint:{url:"https://redshift.{Region}.{PartitionResult#dnsSuffix}",properties:l,headers:l},type:d}]}]}]},{error:"Invalid Configuration: Missing Region",type:c}]}]}; export const ruleSet: RuleSetObject = _data; diff --git a/clients/client-redshift/src/models/models_0.ts b/clients/client-redshift/src/models/models_0.ts index 87dd11d3b44a..2a44087f2ba1 100644 --- a/clients/client-redshift/src/models/models_0.ts +++ b/clients/client-redshift/src/models/models_0.ts @@ -735,6 +735,44 @@ export interface ClusterAssociatedToSchedule { ScheduleAssociationState?: ScheduleState | string; } +/** + * @public + *

A cluster ID and custom domain name tied to a specific certificate. These are typically + * returned in a list.

+ */ +export interface CertificateAssociation { + /** + *

The custom domain name for the certificate association.

+ */ + CustomDomainName?: string; + + /** + *

The cluster identifier for the certificate association.

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

Contains information about the custom domain name association.

+ */ +export interface Association { + /** + *

The Amazon Resource Name (ARN) for the certificate associated with the custom domain.

+ */ + CustomDomainCertificateArn?: string; + + /** + *

The expiration date for the certificate.

+ */ + CustomDomainCertificateExpiryDate?: Date; + + /** + *

A list of all associated clusters and domain names tied to a specific certificate.

+ */ + CertificateAssociations?: CertificateAssociation[]; +} + /** * @public *

Describes an authentication profile.

@@ -1253,7 +1291,7 @@ export interface AuthorizeSnapshotAccessMessage { /** *

The identifier of the cluster the snapshot was created from. This parameter is - * required if your IAM user or role has a policy containing a snapshot resource element that + * required if your IAM user has a policy containing a snapshot resource element that * specifies anything other than * for the cluster name.

*/ SnapshotClusterIdentifier?: string; @@ -1614,7 +1652,7 @@ export interface DeleteClusterSnapshotMessage { /** *

The unique identifier of the cluster the snapshot was created from. This parameter - * is required if your IAM user or role has a policy containing a snapshot resource element that + * is required if your IAM user has a policy containing a snapshot resource element that * specifies anything other than * for the cluster name.

*

Constraints: Must be the name of valid cluster.

*/ @@ -2954,6 +2992,21 @@ export interface Cluster { *

The status of the reserved-node exchange request. Statuses include in-progress and requested.

*/ ReservedNodeExchangeStatus?: ReservedNodeExchangeStatus; + + /** + *

The custom domain name associated with the cluster.

+ */ + CustomDomainName?: string; + + /** + *

The certificate Amazon Resource Name (ARN) for the custom domain name.

+ */ + CustomDomainCertificateArn?: string; + + /** + *

The expiration date for the certificate associated with the custom domain name.

+ */ + CustomDomainCertificateExpiryDate?: Date; } /** @@ -3724,7 +3777,7 @@ export interface CopyClusterSnapshotMessage { /** *

The identifier of the cluster the source snapshot was created from. This parameter - * is required if your IAM user or role has a policy containing a snapshot resource element that + * is required if your IAM user has a policy containing a snapshot resource element that * specifies anything other than * for the cluster name.

*

Constraints:

*
    @@ -3941,7 +3994,7 @@ export interface CreateClusterMessage { NodeType: string | undefined; /** - *

    The user name associated with the admin user for the cluster that is being + *

    The user name associated with the admin user account for the cluster that is being * created.

    *

    Constraints:

    *
      @@ -3967,7 +4020,7 @@ export interface CreateClusterMessage { MasterUsername: string | undefined; /** - *

      The password associated with the admin user for the cluster that is being + *

      The password associated with the admin user account for the cluster that is being * created.

      *

      Constraints:

      *
        @@ -4740,6 +4793,71 @@ export interface CreateClusterSubnetGroupResult { ClusterSubnetGroup?: ClusterSubnetGroup; } +/** + * @public + */ +export interface CreateCustomDomainAssociationMessage { + /** + *

        The custom domain name for a custom domain association.

        + */ + CustomDomainName: string | undefined; + + /** + *

        The certificate Amazon Resource Name (ARN) for the custom domain name association.

        + */ + CustomDomainCertificateArn: string | undefined; + + /** + *

        The cluster identifier that the custom domain is associated with.

        + */ + ClusterIdentifier: string | undefined; +} + +/** + * @public + */ +export interface CreateCustomDomainAssociationResult { + /** + *

        The custom domain name for the association result.

        + */ + CustomDomainName?: string; + + /** + *

        The Amazon Resource Name (ARN) for the certificate associated with the custom domain name.

        + */ + CustomDomainCertificateArn?: string; + + /** + *

        The identifier of the cluster that the custom domain is associated with.

        + */ + ClusterIdentifier?: string; + + /** + *

        The expiration time for the certificate for the custom domain.

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

        An error occurred when an attempt was made to change the custom domain association.

        + */ +export class CustomCnameAssociationFault extends __BaseException { + readonly name: "CustomCnameAssociationFault" = "CustomCnameAssociationFault"; + readonly $fault: "client" = "client"; + /** + * @internal + */ + constructor(opts: __ExceptionOptionType) { + super({ + name: "CustomCnameAssociationFault", + $fault: "client", + ...opts, + }); + Object.setPrototypeOf(this, CustomCnameAssociationFault.prototype); + } +} + /** * @public */ @@ -6320,6 +6438,41 @@ export class UsageLimitAlreadyExistsFault extends __BaseException { } } +/** + * @public + *

        An error occurred. The custom domain name couldn't be found.

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

        The marker for the custom domain association.

        + */ + Marker?: string; + + /** + *

        The associations for the custom domain.

        + */ + Associations?: Association[]; +} + /** * @public */ @@ -6600,6 +6753,16 @@ export class InvalidClusterSubnetStateFault extends __BaseException { } } +/** + * @public + */ +export interface DeleteCustomDomainAssociationMessage { + /** + *

        The identifier of the cluster to delete a custom domain association for.

        + */ + ClusterIdentifier: string | undefined; +} + /** * @public */ @@ -7300,7 +7463,7 @@ export interface DescribeClusterSnapshotsMessage { * set of records by retrying the command with the returned marker value.

        *

        Default: 100 *

        - *

        Constraints: minimum 20, maximum 500.

        + *

        Constraints: minimum 20, maximum 100.

        */ MaxRecords?: number; @@ -7603,6 +7766,31 @@ export interface DescribeClusterVersionsMessage { Marker?: string; } +/** + * @public + */ +export interface DescribeCustomDomainAssociationsMessage { + /** + *

        The custom domain name for the custom domain association.

        + */ + CustomDomainName?: string; + + /** + *

        The certificate Amazon Resource Name (ARN) for the custom domain association.

        + */ + CustomDomainCertificateArn?: string; + + /** + *

        The maximum records setting for the associated custom domain.

        + */ + MaxRecords?: number; + + /** + *

        The marker for the custom domain association.

        + */ + Marker?: string; +} + /** * @public */ @@ -7962,356 +8150,6 @@ export interface EventCategoriesMap { Events?: EventInfoMap[]; } -/** - * @public - *

        - */ -export interface EventCategoriesMessage { - /** - *

        A list of event categories descriptions.

        - */ - EventCategoriesMapList?: EventCategoriesMap[]; -} - -/** - * @public - * @enum - */ -export const SourceType = { - cluster: "cluster", - cluster_parameter_group: "cluster-parameter-group", - cluster_security_group: "cluster-security-group", - cluster_snapshot: "cluster-snapshot", - scheduled_action: "scheduled-action", -} as const; - -/** - * @public - */ -export type SourceType = (typeof SourceType)[keyof typeof SourceType]; - -/** - * @public - *

        - */ -export interface DescribeEventsMessage { - /** - *

        The identifier of the event source for which events will be returned. If this - * parameter is not specified, then all sources are included in the response.

        - *

        Constraints:

        - *

        If SourceIdentifier is supplied, - * SourceType must also be provided.

        - *
          - *
        • - *

          Specify a cluster identifier when SourceType is - * cluster.

          - *
        • - *
        • - *

          Specify a cluster security group name when SourceType - * is cluster-security-group.

          - *
        • - *
        • - *

          Specify a cluster parameter group name when SourceType - * is cluster-parameter-group.

          - *
        • - *
        • - *

          Specify a cluster snapshot identifier when SourceType - * is cluster-snapshot.

          - *
        • - *
        - */ - SourceIdentifier?: string; - - /** - *

        The event source to retrieve events for. If no value is specified, all events are - * returned.

        - *

        Constraints:

        - *

        If SourceType is supplied, - * SourceIdentifier must also be provided.

        - *
          - *
        • - *

          Specify cluster when SourceIdentifier is - * a cluster identifier.

          - *
        • - *
        • - *

          Specify cluster-security-group when - * SourceIdentifier is a cluster security group - * name.

          - *
        • - *
        • - *

          Specify cluster-parameter-group when - * SourceIdentifier is a cluster parameter group - * name.

          - *
        • - *
        • - *

          Specify cluster-snapshot when - * SourceIdentifier is a cluster snapshot - * identifier.

          - *
        • - *
        - */ - SourceType?: SourceType | string; - - /** - *

        The beginning of the time interval to retrieve events for, specified in ISO 8601 - * format. For more information about ISO 8601, go to the ISO8601 Wikipedia page. - *

        - *

        Example: 2009-07-08T18:00Z - *

        - */ - StartTime?: Date; - - /** - *

        The end of the time interval for which to retrieve events, specified in ISO 8601 - * format. For more information about ISO 8601, go to the ISO8601 Wikipedia page. - *

        - *

        Example: 2009-07-08T18:00Z - *

        - */ - EndTime?: Date; - - /** - *

        The number of minutes prior to the time of the request for which to retrieve - * events. For example, if the request is sent at 18:00 and you specify a duration of 60, - * then only events which have occurred after 17:00 will be returned.

        - *

        Default: 60 - *

        - */ - Duration?: number; - - /** - *

        The maximum number of response records to return in each call. If the number of - * remaining response records exceeds the specified MaxRecords value, a value - * is returned in a marker field of the response. You can retrieve the next - * set of records by retrying the command with the returned marker value.

        - *

        Default: 100 - *

        - *

        Constraints: minimum 20, maximum 100.

        - */ - MaxRecords?: number; - - /** - *

        An optional parameter that specifies the starting point to return a set of response - * records. When the results of a DescribeEvents request exceed the value - * specified in MaxRecords, Amazon Web Services returns a value in the Marker - * field of the response. You can retrieve the next set of response records by providing - * the returned marker value in the Marker parameter and retrying the request. - *

        - */ - Marker?: string; -} - -/** - * @public - *

        Describes an event.

        - */ -export interface Event { - /** - *

        The identifier for the source of the event.

        - */ - SourceIdentifier?: string; - - /** - *

        The source type for this event.

        - */ - SourceType?: SourceType | string; - - /** - *

        The text of this event.

        - */ - Message?: string; - - /** - *

        A list of the event categories.

        - *

        Values: Configuration, Management, Monitoring, Security, Pending

        - */ - EventCategories?: string[]; - - /** - *

        The severity of the event.

        - *

        Values: ERROR, INFO

        - */ - Severity?: string; - - /** - *

        The date and time of the event.

        - */ - Date?: Date; - - /** - *

        The identifier of the event.

        - */ - EventId?: string; -} - -/** - * @public - *

        - */ -export interface EventsMessage { - /** - *

        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 marker value in the Marker parameter - * and retrying the command. If the Marker field is empty, all response - * records have been retrieved for the request.

        - */ - Marker?: string; - - /** - *

        A list of Event instances.

        - */ - Events?: Event[]; -} - -/** - * @public - *

        - */ -export interface DescribeEventSubscriptionsMessage { - /** - *

        The name of the Amazon Redshift event notification subscription to be - * described.

        - */ - SubscriptionName?: string; - - /** - *

        The maximum number of response records to return in each call. If the number of - * remaining response records exceeds the specified MaxRecords value, a value - * is returned in a marker field of the response. You can retrieve the next - * set of records by retrying the command with the returned marker value.

        - *

        Default: 100 - *

        - *

        Constraints: minimum 20, maximum 100.

        - */ - MaxRecords?: number; - - /** - *

        An optional parameter that specifies the starting point to return a set of response - * records. When the results of a DescribeEventSubscriptions request exceed the value - * specified in MaxRecords, Amazon Web Services returns a value in the Marker - * field of the response. You can retrieve the next set of response records by providing - * the returned marker value in the Marker parameter and retrying the request. - *

        - */ - Marker?: string; - - /** - *

        A tag key or keys for which you want to return all matching event notification - * subscriptions that are associated with the specified key or keys. For example, suppose - * that you have subscriptions that are tagged with keys called owner and - * environment. If you specify both of these tag keys in the request, - * Amazon Redshift returns a response with the subscriptions that have either or both of these - * tag keys associated with them.

        - */ - TagKeys?: string[]; - - /** - *

        A tag value or values for which you want to return all matching event notification - * subscriptions that are associated with the specified tag value or values. For example, - * suppose that you have subscriptions that are tagged with values called - * admin and test. If you specify both of these tag values in - * the request, Amazon Redshift returns a response with the subscriptions that have either or - * both of these tag values associated with them.

        - */ - TagValues?: string[]; -} - -/** - * @public - *

        - */ -export interface EventSubscriptionsMessage { - /** - *

        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 marker value in the Marker parameter - * and retrying the command. If the Marker field is empty, all response - * records have been retrieved for the request.

        - */ - Marker?: string; - - /** - *

        A list of event subscriptions.

        - */ - EventSubscriptionsList?: EventSubscription[]; -} - -/** - * @public - *

        - */ -export interface DescribeHsmClientCertificatesMessage { - /** - *

        The identifier of a specific HSM client certificate for which you want information. - * If no identifier is specified, information is returned for all HSM client certificates - * owned by your Amazon Web Services account.

        - */ - HsmClientCertificateIdentifier?: string; - - /** - *

        The maximum number of response records to return in each call. If the number of - * remaining response records exceeds the specified MaxRecords value, a value - * is returned in a marker field of the response. You can retrieve the next - * set of records by retrying the command with the returned marker value.

        - *

        Default: 100 - *

        - *

        Constraints: minimum 20, maximum 100.

        - */ - MaxRecords?: number; - - /** - *

        An optional parameter that specifies the starting point to return a set of response - * records. When the results of a DescribeHsmClientCertificates request - * exceed the value specified in MaxRecords, Amazon Web Services returns a value in the - * Marker field of the response. You can retrieve the next set of response - * records by providing the returned marker value in the Marker parameter and - * retrying the request.

        - */ - Marker?: string; - - /** - *

        A tag key or keys for which you want to return all matching HSM client certificates - * that are associated with the specified key or keys. For example, suppose that you have - * HSM client certificates that are tagged with keys called owner and - * environment. If you specify both of these tag keys in the request, - * Amazon Redshift returns a response with the HSM client certificates that have either or both - * of these tag keys associated with them.

        - */ - TagKeys?: string[]; - - /** - *

        A tag value or values for which you want to return all matching HSM client - * certificates that are associated with the specified tag value or values. For example, - * suppose that you have HSM client certificates that are tagged with values called - * admin and test. If you specify both of these tag values in - * the request, Amazon Redshift returns a response with the HSM client certificates that have - * either or both of these tag values associated with them.

        - */ - TagValues?: string[]; -} - -/** - * @public - *

        - */ -export interface HsmClientCertificateMessage { - /** - *

        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 marker value in the Marker parameter - * and retrying the command. If the Marker field is empty, all response - * records have been retrieved for the request.

        - */ - Marker?: string; - - /** - *

        A list of the identifiers for one or more HSM client certificates used by Amazon Redshift - * clusters to store and retrieve database encryption keys in an HSM.

        - */ - HsmClientCertificates?: HsmClientCertificate[]; -} - /** * @internal */ diff --git a/clients/client-redshift/src/models/models_1.ts b/clients/client-redshift/src/models/models_1.ts index a01cc2f9ae0c..cd548d038939 100644 --- a/clients/client-redshift/src/models/models_1.ts +++ b/clients/client-redshift/src/models/models_1.ts @@ -9,7 +9,9 @@ import { Cluster, ClusterSecurityGroup, ClusterSubnetGroup, + EventCategoriesMap, EventSubscription, + HsmClientCertificate, HsmConfiguration, Parameter, RecurringCharge, @@ -28,6 +30,356 @@ import { } from "./models_0"; import { RedshiftServiceException as __BaseException } from "./RedshiftServiceException"; +/** + * @public + *

        + */ +export interface EventCategoriesMessage { + /** + *

        A list of event categories descriptions.

        + */ + EventCategoriesMapList?: EventCategoriesMap[]; +} + +/** + * @public + * @enum + */ +export const SourceType = { + cluster: "cluster", + cluster_parameter_group: "cluster-parameter-group", + cluster_security_group: "cluster-security-group", + cluster_snapshot: "cluster-snapshot", + scheduled_action: "scheduled-action", +} as const; + +/** + * @public + */ +export type SourceType = (typeof SourceType)[keyof typeof SourceType]; + +/** + * @public + *

        + */ +export interface DescribeEventsMessage { + /** + *

        The identifier of the event source for which events will be returned. If this + * parameter is not specified, then all sources are included in the response.

        + *

        Constraints:

        + *

        If SourceIdentifier is supplied, + * SourceType must also be provided.

        + *
          + *
        • + *

          Specify a cluster identifier when SourceType is + * cluster.

          + *
        • + *
        • + *

          Specify a cluster security group name when SourceType + * is cluster-security-group.

          + *
        • + *
        • + *

          Specify a cluster parameter group name when SourceType + * is cluster-parameter-group.

          + *
        • + *
        • + *

          Specify a cluster snapshot identifier when SourceType + * is cluster-snapshot.

          + *
        • + *
        + */ + SourceIdentifier?: string; + + /** + *

        The event source to retrieve events for. If no value is specified, all events are + * returned.

        + *

        Constraints:

        + *

        If SourceType is supplied, + * SourceIdentifier must also be provided.

        + *
          + *
        • + *

          Specify cluster when SourceIdentifier is + * a cluster identifier.

          + *
        • + *
        • + *

          Specify cluster-security-group when + * SourceIdentifier is a cluster security group + * name.

          + *
        • + *
        • + *

          Specify cluster-parameter-group when + * SourceIdentifier is a cluster parameter group + * name.

          + *
        • + *
        • + *

          Specify cluster-snapshot when + * SourceIdentifier is a cluster snapshot + * identifier.

          + *
        • + *
        + */ + SourceType?: SourceType | string; + + /** + *

        The beginning of the time interval to retrieve events for, specified in ISO 8601 + * format. For more information about ISO 8601, go to the ISO8601 Wikipedia page. + *

        + *

        Example: 2009-07-08T18:00Z + *

        + */ + StartTime?: Date; + + /** + *

        The end of the time interval for which to retrieve events, specified in ISO 8601 + * format. For more information about ISO 8601, go to the ISO8601 Wikipedia page. + *

        + *

        Example: 2009-07-08T18:00Z + *

        + */ + EndTime?: Date; + + /** + *

        The number of minutes prior to the time of the request for which to retrieve + * events. For example, if the request is sent at 18:00 and you specify a duration of 60, + * then only events which have occurred after 17:00 will be returned.

        + *

        Default: 60 + *

        + */ + Duration?: number; + + /** + *

        The maximum number of response records to return in each call. If the number of + * remaining response records exceeds the specified MaxRecords value, a value + * is returned in a marker field of the response. You can retrieve the next + * set of records by retrying the command with the returned marker value.

        + *

        Default: 100 + *

        + *

        Constraints: minimum 20, maximum 100.

        + */ + MaxRecords?: number; + + /** + *

        An optional parameter that specifies the starting point to return a set of response + * records. When the results of a DescribeEvents request exceed the value + * specified in MaxRecords, Amazon Web Services returns a value in the Marker + * field of the response. You can retrieve the next set of response records by providing + * the returned marker value in the Marker parameter and retrying the request. + *

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

        Describes an event.

        + */ +export interface Event { + /** + *

        The identifier for the source of the event.

        + */ + SourceIdentifier?: string; + + /** + *

        The source type for this event.

        + */ + SourceType?: SourceType | string; + + /** + *

        The text of this event.

        + */ + Message?: string; + + /** + *

        A list of the event categories.

        + *

        Values: Configuration, Management, Monitoring, Security, Pending

        + */ + EventCategories?: string[]; + + /** + *

        The severity of the event.

        + *

        Values: ERROR, INFO

        + */ + Severity?: string; + + /** + *

        The date and time of the event.

        + */ + Date?: Date; + + /** + *

        The identifier of the event.

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

        + */ +export interface EventsMessage { + /** + *

        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 marker value in the Marker parameter + * and retrying the command. If the Marker field is empty, all response + * records have been retrieved for the request.

        + */ + Marker?: string; + + /** + *

        A list of Event instances.

        + */ + Events?: Event[]; +} + +/** + * @public + *

        + */ +export interface DescribeEventSubscriptionsMessage { + /** + *

        The name of the Amazon Redshift event notification subscription to be + * described.

        + */ + SubscriptionName?: string; + + /** + *

        The maximum number of response records to return in each call. If the number of + * remaining response records exceeds the specified MaxRecords value, a value + * is returned in a marker field of the response. You can retrieve the next + * set of records by retrying the command with the returned marker value.

        + *

        Default: 100 + *

        + *

        Constraints: minimum 20, maximum 100.

        + */ + MaxRecords?: number; + + /** + *

        An optional parameter that specifies the starting point to return a set of response + * records. When the results of a DescribeEventSubscriptions request exceed the value + * specified in MaxRecords, Amazon Web Services returns a value in the Marker + * field of the response. You can retrieve the next set of response records by providing + * the returned marker value in the Marker parameter and retrying the request. + *

        + */ + Marker?: string; + + /** + *

        A tag key or keys for which you want to return all matching event notification + * subscriptions that are associated with the specified key or keys. For example, suppose + * that you have subscriptions that are tagged with keys called owner and + * environment. If you specify both of these tag keys in the request, + * Amazon Redshift returns a response with the subscriptions that have either or both of these + * tag keys associated with them.

        + */ + TagKeys?: string[]; + + /** + *

        A tag value or values for which you want to return all matching event notification + * subscriptions that are associated with the specified tag value or values. For example, + * suppose that you have subscriptions that are tagged with values called + * admin and test. If you specify both of these tag values in + * the request, Amazon Redshift returns a response with the subscriptions that have either or + * both of these tag values associated with them.

        + */ + TagValues?: string[]; +} + +/** + * @public + *

        + */ +export interface EventSubscriptionsMessage { + /** + *

        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 marker value in the Marker parameter + * and retrying the command. If the Marker field is empty, all response + * records have been retrieved for the request.

        + */ + Marker?: string; + + /** + *

        A list of event subscriptions.

        + */ + EventSubscriptionsList?: EventSubscription[]; +} + +/** + * @public + *

        + */ +export interface DescribeHsmClientCertificatesMessage { + /** + *

        The identifier of a specific HSM client certificate for which you want information. + * If no identifier is specified, information is returned for all HSM client certificates + * owned by your Amazon Web Services account.

        + */ + HsmClientCertificateIdentifier?: string; + + /** + *

        The maximum number of response records to return in each call. If the number of + * remaining response records exceeds the specified MaxRecords value, a value + * is returned in a marker field of the response. You can retrieve the next + * set of records by retrying the command with the returned marker value.

        + *

        Default: 100 + *

        + *

        Constraints: minimum 20, maximum 100.

        + */ + MaxRecords?: number; + + /** + *

        An optional parameter that specifies the starting point to return a set of response + * records. When the results of a DescribeHsmClientCertificates request + * exceed the value specified in MaxRecords, Amazon Web Services returns a value in the + * Marker field of the response. You can retrieve the next set of response + * records by providing the returned marker value in the Marker parameter and + * retrying the request.

        + */ + Marker?: string; + + /** + *

        A tag key or keys for which you want to return all matching HSM client certificates + * that are associated with the specified key or keys. For example, suppose that you have + * HSM client certificates that are tagged with keys called owner and + * environment. If you specify both of these tag keys in the request, + * Amazon Redshift returns a response with the HSM client certificates that have either or both + * of these tag keys associated with them.

        + */ + TagKeys?: string[]; + + /** + *

        A tag value or values for which you want to return all matching HSM client + * certificates that are associated with the specified tag value or values. For example, + * suppose that you have HSM client certificates that are tagged with values called + * admin and test. If you specify both of these tag values in + * the request, Amazon Redshift returns a response with the HSM client certificates that have + * either or both of these tag values associated with them.

        + */ + TagValues?: string[]; +} + +/** + * @public + *

        + */ +export interface HsmClientCertificateMessage { + /** + *

        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 marker value in the Marker parameter + * and retrying the command. If the Marker field is empty, all response + * records have been retrieved for the request.

        + */ + Marker?: string; + + /** + *

        A list of the identifiers for one or more HSM client certificates used by Amazon Redshift + * clusters to store and retrieve database encryption keys in an HSM.

        + */ + HsmClientCertificates?: HsmClientCertificate[]; +} + /** * @public *

        @@ -1876,7 +2228,7 @@ export interface GetClusterCredentialsMessage { *

        The unique identifier of the cluster that contains the database for which you are * requesting credentials. This parameter is case sensitive.

        */ - ClusterIdentifier: string | undefined; + ClusterIdentifier?: string; /** *

        The number of seconds until the returned temporary password expires.

        @@ -1918,6 +2270,11 @@ export interface GetClusterCredentialsMessage { *
      */ DbGroups?: string[]; + + /** + *

      The custom domain name for the cluster credentials.

      + */ + CustomDomainName?: string; } /** @@ -1935,13 +2292,18 @@ export interface GetClusterCredentialsWithIAMMessage { *

      The unique identifier of the cluster that contains the database for which you are * requesting credentials.

      */ - ClusterIdentifier: string | undefined; + ClusterIdentifier?: string; /** *

      The number of seconds until the returned temporary password expires.

      *

      Range: 900-3600. Default: 900.

      */ DurationSeconds?: number; + + /** + *

      The custom domain name for the IAM message cluster credentials.

      + */ + CustomDomainName?: string; } /** @@ -2282,7 +2644,7 @@ export interface ModifyClusterMessage { * PendingModifiedValues element of the operation response.

      * *

      Operations never return the password, so this operation provides a way to - * regain access to the admin user for a cluster if the password is + * regain access to the admin user account for a cluster if the password is * lost.

      *
      *

      Default: Uses existing setting.

      @@ -2774,6 +3136,51 @@ export class SubnetAlreadyInUse extends __BaseException { } } +/** + * @public + */ +export interface ModifyCustomDomainAssociationMessage { + /** + *

      The custom domain name for a changed custom domain association.

      + */ + CustomDomainName?: string; + + /** + *

      The certificate Amazon Resource Name (ARN) for the changed custom domain association.

      + */ + CustomDomainCertificateArn?: string; + + /** + *

      The identifier of the cluster to change a custom domain association for.

      + */ + ClusterIdentifier: string | undefined; +} + +/** + * @public + */ +export interface ModifyCustomDomainAssociationResult { + /** + *

      The custom domain name associated with the result for the changed custom domain association.

      + */ + CustomDomainName?: string; + + /** + *

      The certificate Amazon Resource Name (ARN) associated with the result for the changed custom domain association.

      + */ + CustomDomainCertificateArn?: string; + + /** + *

      The identifier of the cluster associated with the result for the changed custom domain association.

      + */ + ClusterIdentifier?: string; + + /** + *

      The certificate expiration time associated with the result for the changed custom domain association.

      + */ + CustomDomainCertExpiryTime?: string; +} + /** * @public */ @@ -3208,7 +3615,7 @@ export interface RestoreFromClusterSnapshotMessage { /** *

      The name of the cluster the source snapshot was created from. This parameter is - * required if your IAM user or role has a policy containing a snapshot resource element that + * required if your IAM user has a policy containing a snapshot resource element that * specifies anything other than * for the cluster name.

      */ SnapshotClusterIdentifier?: string; @@ -3618,7 +4025,7 @@ export interface RevokeSnapshotAccessMessage { /** *

      The identifier of the cluster the snapshot was created from. This parameter is - * required if your IAM user or role has a policy containing a snapshot resource element that + * required if your IAM user has a policy containing a snapshot resource element that * specifies anything other than * for the cluster name.

      */ SnapshotClusterIdentifier?: string; diff --git a/clients/client-redshift/src/pagination/DescribeCustomDomainAssociationsPaginator.ts b/clients/client-redshift/src/pagination/DescribeCustomDomainAssociationsPaginator.ts new file mode 100644 index 000000000000..710e26492493 --- /dev/null +++ b/clients/client-redshift/src/pagination/DescribeCustomDomainAssociationsPaginator.ts @@ -0,0 +1,50 @@ +// smithy-typescript generated code +import { Paginator } from "@aws-sdk/types"; + +import { + DescribeCustomDomainAssociationsCommand, + DescribeCustomDomainAssociationsCommandInput, + DescribeCustomDomainAssociationsCommandOutput, +} from "../commands/DescribeCustomDomainAssociationsCommand"; +import { RedshiftClient } from "../RedshiftClient"; +import { RedshiftPaginationConfiguration } from "./Interfaces"; + +/** + * @internal + */ +const makePagedClientRequest = async ( + client: RedshiftClient, + input: DescribeCustomDomainAssociationsCommandInput, + ...args: any +): Promise => { + // @ts-ignore + return await client.send(new DescribeCustomDomainAssociationsCommand(input), ...args); +}; +/** + * @public + */ +export async function* paginateDescribeCustomDomainAssociations( + config: RedshiftPaginationConfiguration, + input: DescribeCustomDomainAssociationsCommandInput, + ...additionalArguments: any +): Paginator { + // ToDo: replace with actual type instead of typeof input.Marker + let token: typeof input.Marker | undefined = config.startingToken || undefined; + let hasNext = true; + let page: DescribeCustomDomainAssociationsCommandOutput; + while (hasNext) { + input.Marker = token; + input["MaxRecords"] = config.pageSize; + if (config.client instanceof RedshiftClient) { + page = await makePagedClientRequest(config.client, input, ...additionalArguments); + } else { + throw new Error("Invalid client, expected Redshift | RedshiftClient"); + } + yield page; + const prevToken = token; + token = page.Marker; + hasNext = !!(token && (!config.stopOnSameToken || token !== prevToken)); + } + // @ts-ignore + return undefined; +} diff --git a/clients/client-redshift/src/pagination/index.ts b/clients/client-redshift/src/pagination/index.ts index f795a04c5242..7456a5662cd5 100644 --- a/clients/client-redshift/src/pagination/index.ts +++ b/clients/client-redshift/src/pagination/index.ts @@ -16,9 +16,10 @@ export * from "./DescribeClusterVersionsPaginator"; export * from "./DescribeClustersPaginator"; -export * from "./DescribeDataSharesForConsumerPaginator"; +export * from "./DescribeCustomDomainAssociationsPaginator"; // smithy-typescript generated code export * from "./Interfaces"; +export * from "./DescribeDataSharesForConsumerPaginator"; export * from "./DescribeDataSharesForProducerPaginator"; export * from "./DescribeDataSharesPaginator"; export * from "./DescribeDefaultClusterParametersPaginator"; diff --git a/clients/client-redshift/src/protocols/Aws_query.ts b/clients/client-redshift/src/protocols/Aws_query.ts index 2095d818edac..778b4289dad5 100644 --- a/clients/client-redshift/src/protocols/Aws_query.ts +++ b/clients/client-redshift/src/protocols/Aws_query.ts @@ -74,6 +74,10 @@ import { CreateClusterSubnetGroupCommandInput, CreateClusterSubnetGroupCommandOutput, } from "../commands/CreateClusterSubnetGroupCommand"; +import { + CreateCustomDomainAssociationCommandInput, + CreateCustomDomainAssociationCommandOutput, +} from "../commands/CreateCustomDomainAssociationCommand"; import { CreateEndpointAccessCommandInput, CreateEndpointAccessCommandOutput, @@ -129,6 +133,10 @@ import { DeleteClusterSubnetGroupCommandInput, DeleteClusterSubnetGroupCommandOutput, } from "../commands/DeleteClusterSubnetGroupCommand"; +import { + DeleteCustomDomainAssociationCommandInput, + DeleteCustomDomainAssociationCommandOutput, +} from "../commands/DeleteCustomDomainAssociationCommand"; import { DeleteEndpointAccessCommandInput, DeleteEndpointAccessCommandOutput, @@ -201,6 +209,10 @@ import { DescribeClusterVersionsCommandInput, DescribeClusterVersionsCommandOutput, } from "../commands/DescribeClusterVersionsCommand"; +import { + DescribeCustomDomainAssociationsCommandInput, + DescribeCustomDomainAssociationsCommandOutput, +} from "../commands/DescribeCustomDomainAssociationsCommand"; import { DescribeDataSharesCommandInput, DescribeDataSharesCommandOutput } from "../commands/DescribeDataSharesCommand"; import { DescribeDataSharesForConsumerCommandInput, @@ -351,6 +363,10 @@ import { ModifyClusterSubnetGroupCommandInput, ModifyClusterSubnetGroupCommandOutput, } from "../commands/ModifyClusterSubnetGroupCommand"; +import { + ModifyCustomDomainAssociationCommandInput, + ModifyCustomDomainAssociationCommandOutput, +} from "../commands/ModifyCustomDomainAssociationCommand"; import { ModifyEndpointAccessCommandInput, ModifyEndpointAccessCommandOutput, @@ -423,6 +439,7 @@ import { AccountWithRestoreAccess, AquaConfiguration, AssociateDataShareConsumerMessage, + Association, AttributeValueTarget, AuthenticationProfile, AuthenticationProfileAlreadyExistsFault, @@ -446,6 +463,7 @@ import { BatchModifyClusterSnapshotsOutputMessage, BucketNotFoundFault, CancelResizeMessage, + CertificateAssociation, Cluster, ClusterAlreadyExistsFault, ClusterAssociatedToSchedule, @@ -501,6 +519,8 @@ import { CreateClusterSnapshotResult, CreateClusterSubnetGroupMessage, CreateClusterSubnetGroupResult, + CreateCustomDomainAssociationMessage, + CreateCustomDomainAssociationResult, CreateEndpointAccessMessage, CreateEventSubscriptionMessage, CreateEventSubscriptionResult, @@ -514,6 +534,9 @@ import { CreateSnapshotScheduleMessage, CreateTagsMessage, CreateUsageLimitMessage, + CustomCnameAssociationFault, + CustomDomainAssociationNotFoundFault, + CustomDomainAssociationsMessage, CustomerStorageMessage, DataShare, DataShareAssociation, @@ -530,6 +553,7 @@ import { DeleteClusterSnapshotMessage, DeleteClusterSnapshotResult, DeleteClusterSubnetGroupMessage, + DeleteCustomDomainAssociationMessage, DeleteEndpointAccessMessage, DeleteEventSubscriptionMessage, DeleteHsmClientCertificateMessage, @@ -553,6 +577,7 @@ import { DescribeClusterSubnetGroupsMessage, DescribeClusterTracksMessage, DescribeClusterVersionsMessage, + DescribeCustomDomainAssociationsMessage, DescribeDataSharesForConsumerMessage, DescribeDataSharesForConsumerResult, DescribeDataSharesForProducerMessage, @@ -564,9 +589,6 @@ import { DescribeEndpointAccessMessage, DescribeEndpointAuthorizationMessage, DescribeEventCategoriesMessage, - DescribeEventsMessage, - DescribeEventSubscriptionsMessage, - DescribeHsmClientCertificatesMessage, EC2SecurityGroup, ElasticIpStatus, Endpoint, @@ -580,17 +602,12 @@ import { EndpointNotFoundFault, EndpointsPerAuthorizationLimitExceededFault, EndpointsPerClusterLimitExceededFault, - Event, EventCategoriesMap, - EventCategoriesMessage, EventInfoMap, - EventsMessage, EventSubscription, EventSubscriptionQuotaExceededFault, - EventSubscriptionsMessage, HsmClientCertificate, HsmClientCertificateAlreadyExistsFault, - HsmClientCertificateMessage, HsmClientCertificateNotFoundFault, HsmClientCertificateQuotaExceededFault, HsmConfiguration, @@ -697,6 +714,9 @@ import { VpcSecurityGroupMembership, } from "../models/models_0"; import { + DescribeEventsMessage, + DescribeEventSubscriptionsMessage, + DescribeHsmClientCertificatesMessage, DescribeHsmConfigurationsMessage, DescribeLoggingStatusMessage, DescribeNodeConfigurationOptionsMessage, @@ -723,12 +743,17 @@ import { EnableSnapshotCopyMessage, EnableSnapshotCopyResult, EndpointAuthorizationNotFoundFault, + Event, + EventCategoriesMessage, + EventsMessage, + EventSubscriptionsMessage, GetClusterCredentialsMessage, GetClusterCredentialsWithIAMMessage, GetReservedNodeExchangeConfigurationOptionsInputMessage, GetReservedNodeExchangeConfigurationOptionsOutputMessage, GetReservedNodeExchangeOfferingsInputMessage, GetReservedNodeExchangeOfferingsOutputMessage, + HsmClientCertificateMessage, HsmConfigurationMessage, IncompatibleOrderableOptions, InProgressTableRestoreQuotaExceededFault, @@ -756,6 +781,8 @@ import { ModifyClusterSnapshotScheduleMessage, ModifyClusterSubnetGroupMessage, ModifyClusterSubnetGroupResult, + ModifyCustomDomainAssociationMessage, + ModifyCustomDomainAssociationResult, ModifyEndpointAccessMessage, ModifyEventSubscriptionMessage, ModifyEventSubscriptionResult, @@ -1106,6 +1133,23 @@ export const se_CreateClusterSubnetGroupCommand = async ( return buildHttpRpcRequest(context, headers, "/", undefined, body); }; +/** + * serializeAws_queryCreateCustomDomainAssociationCommand + */ +export const se_CreateCustomDomainAssociationCommand = async ( + input: CreateCustomDomainAssociationCommandInput, + context: __SerdeContext +): Promise<__HttpRequest> => { + const headers: __HeaderBag = SHARED_HEADERS; + let body: any; + body = buildFormUrlencodedString({ + ...se_CreateCustomDomainAssociationMessage(input, context), + Action: "CreateCustomDomainAssociation", + Version: "2012-12-01", + }); + return buildHttpRpcRequest(context, headers, "/", undefined, body); +}; + /** * serializeAws_queryCreateEndpointAccessCommand */ @@ -1378,6 +1422,23 @@ export const se_DeleteClusterSubnetGroupCommand = async ( return buildHttpRpcRequest(context, headers, "/", undefined, body); }; +/** + * serializeAws_queryDeleteCustomDomainAssociationCommand + */ +export const se_DeleteCustomDomainAssociationCommand = async ( + input: DeleteCustomDomainAssociationCommandInput, + context: __SerdeContext +): Promise<__HttpRequest> => { + const headers: __HeaderBag = SHARED_HEADERS; + let body: any; + body = buildFormUrlencodedString({ + ...se_DeleteCustomDomainAssociationMessage(input, context), + Action: "DeleteCustomDomainAssociation", + Version: "2012-12-01", + }); + return buildHttpRpcRequest(context, headers, "/", undefined, body); +}; + /** * serializeAws_queryDeleteEndpointAccessCommand */ @@ -1735,6 +1796,23 @@ export const se_DescribeClusterVersionsCommand = async ( return buildHttpRpcRequest(context, headers, "/", undefined, body); }; +/** + * serializeAws_queryDescribeCustomDomainAssociationsCommand + */ +export const se_DescribeCustomDomainAssociationsCommand = async ( + input: DescribeCustomDomainAssociationsCommandInput, + context: __SerdeContext +): Promise<__HttpRequest> => { + const headers: __HeaderBag = SHARED_HEADERS; + let body: any; + body = buildFormUrlencodedString({ + ...se_DescribeCustomDomainAssociationsMessage(input, context), + Action: "DescribeCustomDomainAssociations", + Version: "2012-12-01", + }); + return buildHttpRpcRequest(context, headers, "/", undefined, body); +}; + /** * serializeAws_queryDescribeDataSharesCommand */ @@ -2498,6 +2576,23 @@ export const se_ModifyClusterSubnetGroupCommand = async ( return buildHttpRpcRequest(context, headers, "/", undefined, body); }; +/** + * serializeAws_queryModifyCustomDomainAssociationCommand + */ +export const se_ModifyCustomDomainAssociationCommand = async ( + input: ModifyCustomDomainAssociationCommandInput, + context: __SerdeContext +): Promise<__HttpRequest> => { + const headers: __HeaderBag = SHARED_HEADERS; + let body: any; + body = buildFormUrlencodedString({ + ...se_ModifyCustomDomainAssociationMessage(input, context), + Action: "ModifyCustomDomainAssociation", + Version: "2012-12-01", + }); + return buildHttpRpcRequest(context, headers, "/", undefined, body); +}; + /** * serializeAws_queryModifyEndpointAccessCommand */ @@ -3839,6 +3934,58 @@ const de_CreateClusterSubnetGroupCommandError = async ( } }; +/** + * deserializeAws_queryCreateCustomDomainAssociationCommand + */ +export const de_CreateCustomDomainAssociationCommand = async ( + output: __HttpResponse, + context: __SerdeContext +): Promise => { + if (output.statusCode >= 300) { + return de_CreateCustomDomainAssociationCommandError(output, context); + } + const data: any = await parseBody(output.body, context); + let contents: any = {}; + contents = de_CreateCustomDomainAssociationResult(data.CreateCustomDomainAssociationResult, context); + const response: CreateCustomDomainAssociationCommandOutput = { + $metadata: deserializeMetadata(output), + ...contents, + }; + return response; +}; + +/** + * deserializeAws_queryCreateCustomDomainAssociationCommandError + */ +const de_CreateCustomDomainAssociationCommandError = async ( + output: __HttpResponse, + context: __SerdeContext +): Promise => { + const parsedOutput: any = { + ...output, + body: await parseErrorBody(output.body, context), + }; + const errorCode = loadQueryErrorCode(output, parsedOutput.body); + switch (errorCode) { + case "ClusterNotFound": + case "com.amazonaws.redshift#ClusterNotFoundFault": + throw await de_ClusterNotFoundFaultRes(parsedOutput, context); + case "CustomCnameAssociationFault": + case "com.amazonaws.redshift#CustomCnameAssociationFault": + throw await de_CustomCnameAssociationFaultRes(parsedOutput, context); + case "UnsupportedOperation": + case "com.amazonaws.redshift#UnsupportedOperationFault": + throw await de_UnsupportedOperationFaultRes(parsedOutput, context); + default: + const parsedBody = parsedOutput.body; + return throwDefaultError({ + output, + parsedBody: parsedBody.Error, + errorCode, + }); + } +}; + /** * deserializeAws_queryCreateEndpointAccessCommand */ @@ -4740,6 +4887,55 @@ const de_DeleteClusterSubnetGroupCommandError = async ( } }; +/** + * deserializeAws_queryDeleteCustomDomainAssociationCommand + */ +export const de_DeleteCustomDomainAssociationCommand = async ( + output: __HttpResponse, + context: __SerdeContext +): Promise => { + if (output.statusCode >= 300) { + return de_DeleteCustomDomainAssociationCommandError(output, context); + } + await collectBody(output.body, context); + const response: DeleteCustomDomainAssociationCommandOutput = { + $metadata: deserializeMetadata(output), + }; + return response; +}; + +/** + * deserializeAws_queryDeleteCustomDomainAssociationCommandError + */ +const de_DeleteCustomDomainAssociationCommandError = async ( + output: __HttpResponse, + context: __SerdeContext +): Promise => { + const parsedOutput: any = { + ...output, + body: await parseErrorBody(output.body, context), + }; + const errorCode = loadQueryErrorCode(output, parsedOutput.body); + switch (errorCode) { + case "ClusterNotFound": + case "com.amazonaws.redshift#ClusterNotFoundFault": + throw await de_ClusterNotFoundFaultRes(parsedOutput, context); + case "CustomCnameAssociationFault": + case "com.amazonaws.redshift#CustomCnameAssociationFault": + throw await de_CustomCnameAssociationFaultRes(parsedOutput, context); + case "UnsupportedOperation": + case "com.amazonaws.redshift#UnsupportedOperationFault": + throw await de_UnsupportedOperationFaultRes(parsedOutput, context); + default: + const parsedBody = parsedOutput.body; + return throwDefaultError({ + output, + parsedBody: parsedBody.Error, + errorCode, + }); + } +}; + /** * deserializeAws_queryDeleteEndpointAccessCommand */ @@ -5742,6 +5938,55 @@ const de_DescribeClusterVersionsCommandError = async ( }); }; +/** + * deserializeAws_queryDescribeCustomDomainAssociationsCommand + */ +export const de_DescribeCustomDomainAssociationsCommand = async ( + output: __HttpResponse, + context: __SerdeContext +): Promise => { + if (output.statusCode >= 300) { + return de_DescribeCustomDomainAssociationsCommandError(output, context); + } + const data: any = await parseBody(output.body, context); + let contents: any = {}; + contents = de_CustomDomainAssociationsMessage(data.DescribeCustomDomainAssociationsResult, context); + const response: DescribeCustomDomainAssociationsCommandOutput = { + $metadata: deserializeMetadata(output), + ...contents, + }; + return response; +}; + +/** + * deserializeAws_queryDescribeCustomDomainAssociationsCommandError + */ +const de_DescribeCustomDomainAssociationsCommandError = async ( + output: __HttpResponse, + context: __SerdeContext +): Promise => { + const parsedOutput: any = { + ...output, + body: await parseErrorBody(output.body, context), + }; + const errorCode = loadQueryErrorCode(output, parsedOutput.body); + switch (errorCode) { + case "CustomDomainAssociationNotFoundFault": + case "com.amazonaws.redshift#CustomDomainAssociationNotFoundFault": + throw await de_CustomDomainAssociationNotFoundFaultRes(parsedOutput, context); + case "UnsupportedOperation": + case "com.amazonaws.redshift#UnsupportedOperationFault": + throw await de_UnsupportedOperationFaultRes(parsedOutput, context); + default: + const parsedBody = parsedOutput.body; + return throwDefaultError({ + output, + parsedBody: parsedBody.Error, + errorCode, + }); + } +}; + /** * deserializeAws_queryDescribeDataSharesCommand */ @@ -7636,6 +7881,9 @@ const de_ModifyClusterCommandError = async ( case "ClusterSecurityGroupNotFound": case "com.amazonaws.redshift#ClusterSecurityGroupNotFoundFault": throw await de_ClusterSecurityGroupNotFoundFaultRes(parsedOutput, context); + case "CustomCnameAssociationFault": + case "com.amazonaws.redshift#CustomCnameAssociationFault": + throw await de_CustomCnameAssociationFaultRes(parsedOutput, context); case "DependentServiceRequestThrottlingFault": case "com.amazonaws.redshift#DependentServiceRequestThrottlingFault": throw await de_DependentServiceRequestThrottlingFaultRes(parsedOutput, context); @@ -7678,6 +7926,9 @@ const de_ModifyClusterCommandError = async ( case "UnauthorizedOperation": case "com.amazonaws.redshift#UnauthorizedOperation": throw await de_UnauthorizedOperationRes(parsedOutput, context); + case "UnsupportedOperation": + case "com.amazonaws.redshift#UnsupportedOperationFault": + throw await de_UnsupportedOperationFaultRes(parsedOutput, context); case "UnsupportedOptionFault": case "com.amazonaws.redshift#UnsupportedOptionFault": throw await de_UnsupportedOptionFaultRes(parsedOutput, context); @@ -8052,6 +8303,58 @@ const de_ModifyClusterSubnetGroupCommandError = async ( } }; +/** + * deserializeAws_queryModifyCustomDomainAssociationCommand + */ +export const de_ModifyCustomDomainAssociationCommand = async ( + output: __HttpResponse, + context: __SerdeContext +): Promise => { + if (output.statusCode >= 300) { + return de_ModifyCustomDomainAssociationCommandError(output, context); + } + const data: any = await parseBody(output.body, context); + let contents: any = {}; + contents = de_ModifyCustomDomainAssociationResult(data.ModifyCustomDomainAssociationResult, context); + const response: ModifyCustomDomainAssociationCommandOutput = { + $metadata: deserializeMetadata(output), + ...contents, + }; + return response; +}; + +/** + * deserializeAws_queryModifyCustomDomainAssociationCommandError + */ +const de_ModifyCustomDomainAssociationCommandError = async ( + output: __HttpResponse, + context: __SerdeContext +): Promise => { + const parsedOutput: any = { + ...output, + body: await parseErrorBody(output.body, context), + }; + const errorCode = loadQueryErrorCode(output, parsedOutput.body); + switch (errorCode) { + case "ClusterNotFound": + case "com.amazonaws.redshift#ClusterNotFoundFault": + throw await de_ClusterNotFoundFaultRes(parsedOutput, context); + case "CustomCnameAssociationFault": + case "com.amazonaws.redshift#CustomCnameAssociationFault": + throw await de_CustomCnameAssociationFaultRes(parsedOutput, context); + case "UnsupportedOperation": + case "com.amazonaws.redshift#UnsupportedOperationFault": + throw await de_UnsupportedOperationFaultRes(parsedOutput, context); + default: + const parsedBody = parsedOutput.body; + return throwDefaultError({ + output, + parsedBody: parsedBody.Error, + errorCode, + }); + } +}; + /** * deserializeAws_queryModifyEndpointAccessCommand */ @@ -9730,6 +10033,38 @@ const de_CopyToRegionDisabledFaultRes = async ( return __decorateServiceException(exception, body); }; +/** + * deserializeAws_queryCustomCnameAssociationFaultRes + */ +const de_CustomCnameAssociationFaultRes = async ( + parsedOutput: any, + context: __SerdeContext +): Promise => { + const body = parsedOutput.body; + const deserialized: any = de_CustomCnameAssociationFault(body.Error, context); + const exception = new CustomCnameAssociationFault({ + $metadata: deserializeMetadata(parsedOutput), + ...deserialized, + }); + return __decorateServiceException(exception, body); +}; + +/** + * deserializeAws_queryCustomDomainAssociationNotFoundFaultRes + */ +const de_CustomDomainAssociationNotFoundFaultRes = async ( + parsedOutput: any, + context: __SerdeContext +): Promise => { + const body = parsedOutput.body; + const deserialized: any = de_CustomDomainAssociationNotFoundFault(body.Error, context); + const exception = new CustomDomainAssociationNotFoundFault({ + $metadata: deserializeMetadata(parsedOutput), + ...deserialized, + }); + return __decorateServiceException(exception, body); +}; + /** * deserializeAws_queryDependentServiceRequestThrottlingFaultRes */ @@ -11766,6 +12101,26 @@ const se_CreateClusterSubnetGroupMessage = (input: CreateClusterSubnetGroupMessa return entries; }; +/** + * serializeAws_queryCreateCustomDomainAssociationMessage + */ +const se_CreateCustomDomainAssociationMessage = ( + input: CreateCustomDomainAssociationMessage, + context: __SerdeContext +): any => { + const entries: any = {}; + if (input.CustomDomainName != null) { + entries["CustomDomainName"] = input.CustomDomainName; + } + if (input.CustomDomainCertificateArn != null) { + entries["CustomDomainCertificateArn"] = input.CustomDomainCertificateArn; + } + if (input.ClusterIdentifier != null) { + entries["ClusterIdentifier"] = input.ClusterIdentifier; + } + return entries; +}; + /** * serializeAws_queryCreateEndpointAccessMessage */ @@ -12202,6 +12557,20 @@ const se_DeleteClusterSubnetGroupMessage = (input: DeleteClusterSubnetGroupMessa return entries; }; +/** + * serializeAws_queryDeleteCustomDomainAssociationMessage + */ +const se_DeleteCustomDomainAssociationMessage = ( + input: DeleteCustomDomainAssociationMessage, + context: __SerdeContext +): any => { + const entries: any = {}; + if (input.ClusterIdentifier != null) { + entries["ClusterIdentifier"] = input.ClusterIdentifier; + } + return entries; +}; + /** * serializeAws_queryDeleteEndpointAccessMessage */ @@ -12648,6 +13017,29 @@ const se_DescribeClusterVersionsMessage = (input: DescribeClusterVersionsMessage return entries; }; +/** + * serializeAws_queryDescribeCustomDomainAssociationsMessage + */ +const se_DescribeCustomDomainAssociationsMessage = ( + input: DescribeCustomDomainAssociationsMessage, + context: __SerdeContext +): any => { + const entries: any = {}; + if (input.CustomDomainName != null) { + entries["CustomDomainName"] = input.CustomDomainName; + } + if (input.CustomDomainCertificateArn != null) { + entries["CustomDomainCertificateArn"] = input.CustomDomainCertificateArn; + } + if (input.MaxRecords != null) { + entries["MaxRecords"] = input.MaxRecords; + } + if (input.Marker != null) { + entries["Marker"] = input.Marker; + } + return entries; +}; + /** * serializeAws_queryDescribeDataSharesForConsumerMessage */ @@ -13476,6 +13868,9 @@ const se_GetClusterCredentialsMessage = (input: GetClusterCredentialsMessage, co entries[loc] = value; }); } + if (input.CustomDomainName != null) { + entries["CustomDomainName"] = input.CustomDomainName; + } return entries; }; @@ -13496,6 +13891,9 @@ const se_GetClusterCredentialsWithIAMMessage = ( if (input.DurationSeconds != null) { entries["DurationSeconds"] = input.DurationSeconds; } + if (input.CustomDomainName != null) { + entries["CustomDomainName"] = input.CustomDomainName; + } return entries; }; @@ -13864,6 +14262,26 @@ const se_ModifyClusterSubnetGroupMessage = (input: ModifyClusterSubnetGroupMessa return entries; }; +/** + * serializeAws_queryModifyCustomDomainAssociationMessage + */ +const se_ModifyCustomDomainAssociationMessage = ( + input: ModifyCustomDomainAssociationMessage, + context: __SerdeContext +): any => { + const entries: any = {}; + if (input.CustomDomainName != null) { + entries["CustomDomainName"] = input.CustomDomainName; + } + if (input.CustomDomainCertificateArn != null) { + entries["CustomDomainCertificateArn"] = input.CustomDomainCertificateArn; + } + if (input.ClusterIdentifier != null) { + entries["ClusterIdentifier"] = input.ClusterIdentifier; + } + return entries; +}; + /** * serializeAws_queryModifyEndpointAccessMessage */ @@ -14941,6 +15359,44 @@ const de_AssociatedClusterList = (output: any, context: __SerdeContext): Cluster }); }; +/** + * deserializeAws_queryAssociation + */ +const de_Association = (output: any, context: __SerdeContext): Association => { + const contents: any = {}; + if (output["CustomDomainCertificateArn"] !== undefined) { + contents.CustomDomainCertificateArn = __expectString(output["CustomDomainCertificateArn"]); + } + if (output["CustomDomainCertificateExpiryDate"] !== undefined) { + contents.CustomDomainCertificateExpiryDate = __expectNonNull( + __parseRfc3339DateTimeWithOffset(output["CustomDomainCertificateExpiryDate"]) + ); + } + if (output.CertificateAssociations === "") { + contents.CertificateAssociations = []; + } else if ( + output["CertificateAssociations"] !== undefined && + output["CertificateAssociations"]["CertificateAssociation"] !== undefined + ) { + contents.CertificateAssociations = de_CertificateAssociationList( + __getArrayIfSingleItem(output["CertificateAssociations"]["CertificateAssociation"]), + context + ); + } + return contents; +}; + +/** + * deserializeAws_queryAssociationList + */ +const de_AssociationList = (output: any, context: __SerdeContext): Association[] => { + return (output || []) + .filter((e: any) => e != null) + .map((entry: any) => { + return de_Association(entry, context); + }); +}; + /** * deserializeAws_queryAttributeList */ @@ -15241,6 +15697,31 @@ const de_BucketNotFoundFault = (output: any, context: __SerdeContext): BucketNot return contents; }; +/** + * deserializeAws_queryCertificateAssociation + */ +const de_CertificateAssociation = (output: any, context: __SerdeContext): CertificateAssociation => { + const contents: any = {}; + if (output["CustomDomainName"] !== undefined) { + contents.CustomDomainName = __expectString(output["CustomDomainName"]); + } + if (output["ClusterIdentifier"] !== undefined) { + contents.ClusterIdentifier = __expectString(output["ClusterIdentifier"]); + } + return contents; +}; + +/** + * deserializeAws_queryCertificateAssociationList + */ +const de_CertificateAssociationList = (output: any, context: __SerdeContext): CertificateAssociation[] => { + return (output || []) + .filter((e: any) => e != null) + .map((entry: any) => { + return de_CertificateAssociation(entry, context); + }); +}; + /** * deserializeAws_queryCluster */ @@ -15451,6 +15932,17 @@ const de_Cluster = (output: any, context: __SerdeContext): Cluster => { if (output["ReservedNodeExchangeStatus"] !== undefined) { contents.ReservedNodeExchangeStatus = de_ReservedNodeExchangeStatus(output["ReservedNodeExchangeStatus"], context); } + if (output["CustomDomainName"] !== undefined) { + contents.CustomDomainName = __expectString(output["CustomDomainName"]); + } + if (output["CustomDomainCertificateArn"] !== undefined) { + contents.CustomDomainCertificateArn = __expectString(output["CustomDomainCertificateArn"]); + } + if (output["CustomDomainCertificateExpiryDate"] !== undefined) { + contents.CustomDomainCertificateExpiryDate = __expectNonNull( + __parseRfc3339DateTimeWithOffset(output["CustomDomainCertificateExpiryDate"]) + ); + } return contents; }; @@ -16329,6 +16821,29 @@ const de_CreateClusterSubnetGroupResult = (output: any, context: __SerdeContext) return contents; }; +/** + * deserializeAws_queryCreateCustomDomainAssociationResult + */ +const de_CreateCustomDomainAssociationResult = ( + output: any, + context: __SerdeContext +): CreateCustomDomainAssociationResult => { + const contents: any = {}; + if (output["CustomDomainName"] !== undefined) { + contents.CustomDomainName = __expectString(output["CustomDomainName"]); + } + if (output["CustomDomainCertificateArn"] !== undefined) { + contents.CustomDomainCertificateArn = __expectString(output["CustomDomainCertificateArn"]); + } + if (output["ClusterIdentifier"] !== undefined) { + contents.ClusterIdentifier = __expectString(output["ClusterIdentifier"]); + } + if (output["CustomDomainCertExpiryTime"] !== undefined) { + contents.CustomDomainCertExpiryTime = __expectString(output["CustomDomainCertExpiryTime"]); + } + return contents; +}; + /** * deserializeAws_queryCreateEventSubscriptionResult */ @@ -16376,6 +16891,47 @@ const de_CreateSnapshotCopyGrantResult = (output: any, context: __SerdeContext): return contents; }; +/** + * deserializeAws_queryCustomCnameAssociationFault + */ +const de_CustomCnameAssociationFault = (output: any, context: __SerdeContext): CustomCnameAssociationFault => { + const contents: any = {}; + if (output["message"] !== undefined) { + contents.message = __expectString(output["message"]); + } + return contents; +}; + +/** + * deserializeAws_queryCustomDomainAssociationNotFoundFault + */ +const de_CustomDomainAssociationNotFoundFault = ( + output: any, + context: __SerdeContext +): CustomDomainAssociationNotFoundFault => { + const contents: any = {}; + if (output["message"] !== undefined) { + contents.message = __expectString(output["message"]); + } + return contents; +}; + +/** + * deserializeAws_queryCustomDomainAssociationsMessage + */ +const de_CustomDomainAssociationsMessage = (output: any, context: __SerdeContext): CustomDomainAssociationsMessage => { + const contents: any = {}; + if (output["Marker"] !== undefined) { + contents.Marker = __expectString(output["Marker"]); + } + if (output.Associations === "") { + contents.Associations = []; + } else if (output["Associations"] !== undefined && output["Associations"]["Association"] !== undefined) { + contents.Associations = de_AssociationList(__getArrayIfSingleItem(output["Associations"]["Association"]), context); + } + return contents; +}; + /** * deserializeAws_queryCustomerStorageMessage */ @@ -18268,6 +18824,29 @@ const de_ModifyClusterSubnetGroupResult = (output: any, context: __SerdeContext) return contents; }; +/** + * deserializeAws_queryModifyCustomDomainAssociationResult + */ +const de_ModifyCustomDomainAssociationResult = ( + output: any, + context: __SerdeContext +): ModifyCustomDomainAssociationResult => { + const contents: any = {}; + if (output["CustomDomainName"] !== undefined) { + contents.CustomDomainName = __expectString(output["CustomDomainName"]); + } + if (output["CustomDomainCertificateArn"] !== undefined) { + contents.CustomDomainCertificateArn = __expectString(output["CustomDomainCertificateArn"]); + } + if (output["ClusterIdentifier"] !== undefined) { + contents.ClusterIdentifier = __expectString(output["ClusterIdentifier"]); + } + if (output["CustomDomainCertExpiryTime"] !== undefined) { + contents.CustomDomainCertExpiryTime = __expectString(output["CustomDomainCertExpiryTime"]); + } + return contents; +}; + /** * deserializeAws_queryModifyEventSubscriptionResult */ @@ -20671,7 +21250,7 @@ const parseBody = (streamBody: any, context: __SerdeContext): any => ignoreDeclaration: true, parseTagValue: false, trimValues: false, - tagValueProcessor: (_, val) => (val.trim() === "" && val.includes("\n") ? "" : undefined), + tagValueProcessor: (_: any, val: any) => (val.trim() === "" && val.includes("\n") ? "" : undefined), }); parser.addEntity("#xD", "\r"); parser.addEntity("#10", "\n"); diff --git a/codegen/sdk-codegen/aws-models/redshift.json b/codegen/sdk-codegen/aws-models/redshift.json index dafe68356326..a380e08d1da5 100644 --- a/codegen/sdk-codegen/aws-models/redshift.json +++ b/codegen/sdk-codegen/aws-models/redshift.json @@ -359,6 +359,41 @@ } } }, + "com.amazonaws.redshift#Association": { + "type": "structure", + "members": { + "CustomDomainCertificateArn": { + "target": "com.amazonaws.redshift#String", + "traits": { + "smithy.api#documentation": "

      The Amazon Resource Name (ARN) for the certificate associated with the custom domain.

      " + } + }, + "CustomDomainCertificateExpiryDate": { + "target": "com.amazonaws.redshift#TStamp", + "traits": { + "smithy.api#documentation": "

      The expiration date for the certificate.

      " + } + }, + "CertificateAssociations": { + "target": "com.amazonaws.redshift#CertificateAssociationList", + "traits": { + "smithy.api#documentation": "

      A list of all associated clusters and domain names tied to a specific certificate.

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

      Contains information about the custom domain name association.

      " + } + }, + "com.amazonaws.redshift#AssociationList": { + "type": "list", + "member": { + "target": "com.amazonaws.redshift#Association", + "traits": { + "smithy.api#xmlName": "Association" + } + } + }, "com.amazonaws.redshift#AttributeList": { "type": "list", "member": { @@ -620,6 +655,9 @@ "ClusterSecurityGroup": { "target": "com.amazonaws.redshift#ClusterSecurityGroup" } + }, + "traits": { + "smithy.api#output": {} } }, "com.amazonaws.redshift#AuthorizeDataShare": { @@ -767,7 +805,7 @@ "SnapshotClusterIdentifier": { "target": "com.amazonaws.redshift#String", "traits": { - "smithy.api#documentation": "

      The identifier of the cluster the snapshot was created from. This parameter is\n required if your IAM user or role has a policy containing a snapshot resource element that\n specifies anything other than * for the cluster name.

      " + "smithy.api#documentation": "

      The identifier of the cluster the snapshot was created from. This parameter is\n required if your IAM user has a policy containing a snapshot resource element that\n specifies anything other than * for the cluster name.

      " } }, "AccountWithRestoreAccess": { @@ -788,6 +826,9 @@ "Snapshot": { "target": "com.amazonaws.redshift#Snapshot" } + }, + "traits": { + "smithy.api#output": {} } }, "com.amazonaws.redshift#AvailabilityZone": { @@ -866,6 +907,9 @@ "smithy.api#documentation": "

      A list of any errors returned.

      " } } + }, + "traits": { + "smithy.api#output": {} } }, "com.amazonaws.redshift#BatchDeleteRequestSizeExceededFault": { @@ -1046,6 +1090,35 @@ } } }, + "com.amazonaws.redshift#CertificateAssociation": { + "type": "structure", + "members": { + "CustomDomainName": { + "target": "com.amazonaws.redshift#String", + "traits": { + "smithy.api#documentation": "

      The custom domain name for the certificate association.

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

      The cluster identifier for the certificate association.

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

      A cluster ID and custom domain name tied to a specific certificate. These are typically \n returned in a list.

      " + } + }, + "com.amazonaws.redshift#CertificateAssociationList": { + "type": "list", + "member": { + "target": "com.amazonaws.redshift#CertificateAssociation", + "traits": { + "smithy.api#xmlName": "CertificateAssociation" + } + } + }, "com.amazonaws.redshift#Cluster": { "type": "structure", "members": { @@ -1367,6 +1440,24 @@ "traits": { "smithy.api#documentation": "

      The status of the reserved-node exchange request. Statuses include in-progress and requested.

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

      The custom domain name associated with the cluster.

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

      The certificate Amazon Resource Name (ARN) for the custom domain name.

      " + } + }, + "CustomDomainCertificateExpiryDate": { + "target": "com.amazonaws.redshift#TStamp", + "traits": { + "smithy.api#documentation": "

      The expiration date for the certificate associated with the custom domain name.

      " + } } }, "traits": { @@ -2353,7 +2444,7 @@ "SourceSnapshotClusterIdentifier": { "target": "com.amazonaws.redshift#String", "traits": { - "smithy.api#documentation": "

      The identifier of the cluster the source snapshot was created from. This parameter\n is required if your IAM user or role has a policy containing a snapshot resource element that\n specifies anything other than * for the cluster name.

      \n

      Constraints:

      \n
        \n
      • \n

        Must be the identifier for a valid cluster.

        \n
      • \n
      " + "smithy.api#documentation": "

      The identifier of the cluster the source snapshot was created from. This parameter\n is required if your IAM user has a policy containing a snapshot resource element that\n specifies anything other than * for the cluster name.

      \n

      Constraints:

      \n
        \n
      • \n

        Must be the identifier for a valid cluster.

        \n
      • \n
      " } }, "TargetSnapshotIdentifier": { @@ -2380,6 +2471,9 @@ "Snapshot": { "target": "com.amazonaws.redshift#Snapshot" } + }, + "traits": { + "smithy.api#output": {} } }, "com.amazonaws.redshift#CopyToRegionDisabledFault": { @@ -2456,6 +2550,9 @@ "smithy.api#documentation": "

      The content of the authentication profile in JSON format.

      " } } + }, + "traits": { + "smithy.api#output": {} } }, "com.amazonaws.redshift#CreateCluster": { @@ -2570,14 +2667,14 @@ "MasterUsername": { "target": "com.amazonaws.redshift#String", "traits": { - "smithy.api#documentation": "

      The user name associated with the admin user for the cluster that is being\n created.

      \n

      Constraints:

      \n
        \n
      • \n

        Must be 1 - 128 alphanumeric characters or hyphens. The user name can't be\n PUBLIC.

        \n
      • \n
      • \n

        Must contain only lowercase letters, numbers, underscore, plus sign, period (dot), at symbol (@), or hyphen.

        \n
      • \n
      • \n

        The first character must be a letter.

        \n
      • \n
      • \n

        Must not contain a colon (:) or a slash (/).

        \n
      • \n
      • \n

        Cannot be a reserved word. A list of reserved words can be found in Reserved\n Words in the Amazon Redshift Database Developer Guide.

        \n
      • \n
      ", + "smithy.api#documentation": "

      The user name associated with the admin user account for the cluster that is being\n created.

      \n

      Constraints:

      \n
        \n
      • \n

        Must be 1 - 128 alphanumeric characters or hyphens. The user name can't be\n PUBLIC.

        \n
      • \n
      • \n

        Must contain only lowercase letters, numbers, underscore, plus sign, period (dot), at symbol (@), or hyphen.

        \n
      • \n
      • \n

        The first character must be a letter.

        \n
      • \n
      • \n

        Must not contain a colon (:) or a slash (/).

        \n
      • \n
      • \n

        Cannot be a reserved word. A list of reserved words can be found in Reserved\n Words in the Amazon Redshift Database Developer Guide.

        \n
      • \n
      ", "smithy.api#required": {} } }, "MasterUserPassword": { "target": "com.amazonaws.redshift#String", "traits": { - "smithy.api#documentation": "

      The password associated with the admin user for the cluster that is being\n created.

      \n

      Constraints:

      \n
        \n
      • \n

        Must be between 8 and 64 characters in length.

        \n
      • \n
      • \n

        Must contain at least one uppercase letter.

        \n
      • \n
      • \n

        Must contain at least one lowercase letter.

        \n
      • \n
      • \n

        Must contain one number.

        \n
      • \n
      • \n

        Can be any printable ASCII character (ASCII code 33-126) except '\n (single quote), \" (double quote), \\, /, or @.

        \n
      • \n
      ", + "smithy.api#documentation": "

      The password associated with the admin user account for the cluster that is being\n created.

      \n

      Constraints:

      \n
        \n
      • \n

        Must be between 8 and 64 characters in length.

        \n
      • \n
      • \n

        Must contain at least one uppercase letter.

        \n
      • \n
      • \n

        Must contain at least one lowercase letter.

        \n
      • \n
      • \n

        Must contain one number.

        \n
      • \n
      • \n

        Can be any printable ASCII character (ASCII code 33-126) except '\n (single quote), \" (double quote), \\, /, or @.

        \n
      • \n
      ", "smithy.api#required": {} } }, @@ -2821,6 +2918,9 @@ "ClusterParameterGroup": { "target": "com.amazonaws.redshift#ClusterParameterGroup" } + }, + "traits": { + "smithy.api#output": {} } }, "com.amazonaws.redshift#CreateClusterResult": { @@ -2829,6 +2929,9 @@ "Cluster": { "target": "com.amazonaws.redshift#Cluster" } + }, + "traits": { + "smithy.api#output": {} } }, "com.amazonaws.redshift#CreateClusterSecurityGroup": { @@ -2891,6 +2994,9 @@ "ClusterSecurityGroup": { "target": "com.amazonaws.redshift#ClusterSecurityGroup" } + }, + "traits": { + "smithy.api#output": {} } }, "com.amazonaws.redshift#CreateClusterSnapshot": { @@ -2968,6 +3074,9 @@ "Snapshot": { "target": "com.amazonaws.redshift#Snapshot" } + }, + "traits": { + "smithy.api#output": {} } }, "com.amazonaws.redshift#CreateClusterSubnetGroup": { @@ -3049,6 +3158,90 @@ "ClusterSubnetGroup": { "target": "com.amazonaws.redshift#ClusterSubnetGroup" } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.redshift#CreateCustomDomainAssociation": { + "type": "operation", + "input": { + "target": "com.amazonaws.redshift#CreateCustomDomainAssociationMessage" + }, + "output": { + "target": "com.amazonaws.redshift#CreateCustomDomainAssociationResult" + }, + "errors": [ + { + "target": "com.amazonaws.redshift#ClusterNotFoundFault" + }, + { + "target": "com.amazonaws.redshift#CustomCnameAssociationFault" + }, + { + "target": "com.amazonaws.redshift#UnsupportedOperationFault" + } + ], + "traits": { + "smithy.api#documentation": "

      Used to create a custom domain name for a cluster. Properties include the custom domain name, the \n cluster the custom domain is associated with, and the certificate Amazon Resource Name (ARN).

      " + } + }, + "com.amazonaws.redshift#CreateCustomDomainAssociationMessage": { + "type": "structure", + "members": { + "CustomDomainName": { + "target": "com.amazonaws.redshift#CustomDomainNameString", + "traits": { + "smithy.api#documentation": "

      The custom domain name for a custom domain association.

      ", + "smithy.api#required": {} + } + }, + "CustomDomainCertificateArn": { + "target": "com.amazonaws.redshift#CustomDomainCertificateArnString", + "traits": { + "smithy.api#documentation": "

      The certificate Amazon Resource Name (ARN) for the custom domain name association.

      ", + "smithy.api#required": {} + } + }, + "ClusterIdentifier": { + "target": "com.amazonaws.redshift#String", + "traits": { + "smithy.api#documentation": "

      The cluster identifier that the custom domain is associated with.

      ", + "smithy.api#required": {} + } + } + } + }, + "com.amazonaws.redshift#CreateCustomDomainAssociationResult": { + "type": "structure", + "members": { + "CustomDomainName": { + "target": "com.amazonaws.redshift#CustomDomainNameString", + "traits": { + "smithy.api#documentation": "

      The custom domain name for the association result.

      " + } + }, + "CustomDomainCertificateArn": { + "target": "com.amazonaws.redshift#CustomDomainCertificateArnString", + "traits": { + "smithy.api#documentation": "

      The Amazon Resource Name (ARN) for the certificate associated with the custom domain name.

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

      The identifier of the cluster that the custom domain is associated with.

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

      The expiration time for the certificate for the custom domain.

      " + } + } + }, + "traits": { + "smithy.api#output": {} } }, "com.amazonaws.redshift#CreateEndpointAccess": { @@ -3243,6 +3436,9 @@ "EventSubscription": { "target": "com.amazonaws.redshift#EventSubscription" } + }, + "traits": { + "smithy.api#output": {} } }, "com.amazonaws.redshift#CreateHsmClientCertificate": { @@ -3298,6 +3494,9 @@ "HsmClientCertificate": { "target": "com.amazonaws.redshift#HsmClientCertificate" } + }, + "traits": { + "smithy.api#output": {} } }, "com.amazonaws.redshift#CreateHsmConfiguration": { @@ -3388,6 +3587,9 @@ "HsmConfiguration": { "target": "com.amazonaws.redshift#HsmConfiguration" } + }, + "traits": { + "smithy.api#output": {} } }, "com.amazonaws.redshift#CreateScheduledAction": { @@ -3544,6 +3746,9 @@ "SnapshotCopyGrant": { "target": "com.amazonaws.redshift#SnapshotCopyGrant" } + }, + "traits": { + "smithy.api#output": {} } }, "com.amazonaws.redshift#CreateSnapshotSchedule": { @@ -3754,6 +3959,77 @@ } } }, + "com.amazonaws.redshift#CustomCnameAssociationFault": { + "type": "structure", + "members": { + "message": { + "target": "com.amazonaws.redshift#ExceptionMessage" + } + }, + "traits": { + "aws.protocols#awsQueryError": { + "code": "CustomCnameAssociationFault", + "httpResponseCode": 400 + }, + "smithy.api#documentation": "

      An error occurred when an attempt was made to change the custom domain association.

      ", + "smithy.api#error": "client", + "smithy.api#httpError": 400 + } + }, + "com.amazonaws.redshift#CustomDomainAssociationNotFoundFault": { + "type": "structure", + "members": { + "message": { + "target": "com.amazonaws.redshift#ExceptionMessage" + } + }, + "traits": { + "aws.protocols#awsQueryError": { + "code": "CustomDomainAssociationNotFoundFault", + "httpResponseCode": 404 + }, + "smithy.api#documentation": "

      An error occurred. The custom domain name couldn't be found.

      ", + "smithy.api#error": "client", + "smithy.api#httpError": 404 + } + }, + "com.amazonaws.redshift#CustomDomainAssociationsMessage": { + "type": "structure", + "members": { + "Marker": { + "target": "com.amazonaws.redshift#String", + "traits": { + "smithy.api#documentation": "

      The marker for the custom domain association.

      " + } + }, + "Associations": { + "target": "com.amazonaws.redshift#AssociationList", + "traits": { + "smithy.api#documentation": "

      The associations for the custom domain.

      " + } + } + } + }, + "com.amazonaws.redshift#CustomDomainCertificateArnString": { + "type": "string", + "traits": { + "smithy.api#length": { + "min": 20, + "max": 2048 + }, + "smithy.api#pattern": "^arn:[\\w+=/,.@-]+:acm:[\\w+=/,.@-]*:[0-9]+:[\\w+=,.@-]+(/[\\w+=,.@-]+)*$" + } + }, + "com.amazonaws.redshift#CustomDomainNameString": { + "type": "string", + "traits": { + "smithy.api#length": { + "min": 1, + "max": 253 + }, + "smithy.api#pattern": "^((?!-)[A-Za-z0-9-]{1,63}(?The name of the authentication profile that was deleted.

      " } } + }, + "traits": { + "smithy.api#output": {} } }, "com.amazonaws.redshift#DeleteCluster": { @@ -4251,6 +4530,9 @@ "Cluster": { "target": "com.amazonaws.redshift#Cluster" } + }, + "traits": { + "smithy.api#output": {} } }, "com.amazonaws.redshift#DeleteClusterSecurityGroup": { @@ -4321,7 +4603,7 @@ "SnapshotClusterIdentifier": { "target": "com.amazonaws.redshift#String", "traits": { - "smithy.api#documentation": "

      The unique identifier of the cluster the snapshot was created from. This parameter\n is required if your IAM user or role has a policy containing a snapshot resource element that\n specifies anything other than * for the cluster name.

      \n

      Constraints: Must be the name of valid cluster.

      " + "smithy.api#documentation": "

      The unique identifier of the cluster the snapshot was created from. This parameter\n is required if your IAM user has a policy containing a snapshot resource element that\n specifies anything other than * for the cluster name.

      \n

      Constraints: Must be the name of valid cluster.

      " } } }, @@ -4344,6 +4626,9 @@ "Snapshot": { "target": "com.amazonaws.redshift#Snapshot" } + }, + "traits": { + "smithy.api#output": {} } }, "com.amazonaws.redshift#DeleteClusterSubnetGroup": { @@ -4384,6 +4669,41 @@ "smithy.api#documentation": "

      " } }, + "com.amazonaws.redshift#DeleteCustomDomainAssociation": { + "type": "operation", + "input": { + "target": "com.amazonaws.redshift#DeleteCustomDomainAssociationMessage" + }, + "output": { + "target": "smithy.api#Unit" + }, + "errors": [ + { + "target": "com.amazonaws.redshift#ClusterNotFoundFault" + }, + { + "target": "com.amazonaws.redshift#CustomCnameAssociationFault" + }, + { + "target": "com.amazonaws.redshift#UnsupportedOperationFault" + } + ], + "traits": { + "smithy.api#documentation": "

      Contains information about deleting a custom domain association for a cluster.

      " + } + }, + "com.amazonaws.redshift#DeleteCustomDomainAssociationMessage": { + "type": "structure", + "members": { + "ClusterIdentifier": { + "target": "com.amazonaws.redshift#String", + "traits": { + "smithy.api#documentation": "

      The identifier of the cluster to delete a custom domain association for.

      ", + "smithy.api#required": {} + } + } + } + }, "com.amazonaws.redshift#DeleteEndpointAccess": { "type": "operation", "input": { @@ -4823,6 +5143,9 @@ "smithy.api#documentation": "

      The list of authentication profiles.

      " } } + }, + "traits": { + "smithy.api#output": {} } }, "com.amazonaws.redshift#DescribeClusterDbRevisions": { @@ -5169,7 +5492,7 @@ "MaxRecords": { "target": "com.amazonaws.redshift#IntegerOptional", "traits": { - "smithy.api#documentation": "

      The maximum number of response records to return in each call. If the number of\n remaining response records exceeds the specified MaxRecords value, a value\n is returned in a marker field of the response. You can retrieve the next\n set of records by retrying the command with the returned marker value.

      \n

      Default: 100\n

      \n

      Constraints: minimum 20, maximum 500.

      " + "smithy.api#documentation": "

      The maximum number of response records to return in each call. If the number of\n remaining response records exceeds the specified MaxRecords value, a value\n is returned in a marker field of the response. You can retrieve the next\n set of records by retrying the command with the returned marker value.

      \n

      Default: 100\n

      \n

      Constraints: minimum 20, maximum 100.

      " } }, "Marker": { @@ -5525,9 +5848,64 @@ "smithy.api#documentation": "

      A tag value or values for which you want to return all matching clusters that are\n associated with the specified tag value or values. For example, suppose that you have\n clusters that are tagged with values called admin and test. If\n you specify both of these tag values in the request, Amazon Redshift returns a response with\n the clusters that have either or both of these tag values associated with\n them.

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

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

      " + } + }, + "com.amazonaws.redshift#DescribeCustomDomainAssociations": { + "type": "operation", + "input": { + "target": "com.amazonaws.redshift#DescribeCustomDomainAssociationsMessage" + }, + "output": { + "target": "com.amazonaws.redshift#CustomDomainAssociationsMessage" + }, + "errors": [ + { + "target": "com.amazonaws.redshift#CustomDomainAssociationNotFoundFault" + }, + { + "target": "com.amazonaws.redshift#UnsupportedOperationFault" + } + ], + "traits": { + "smithy.api#documentation": "

      Contains information for custom domain associations for a cluster.

      ", + "smithy.api#paginated": { + "inputToken": "Marker", + "outputToken": "Marker", + "items": "Associations", + "pageSize": "MaxRecords" + } + } + }, + "com.amazonaws.redshift#DescribeCustomDomainAssociationsMessage": { + "type": "structure", + "members": { + "CustomDomainName": { + "target": "com.amazonaws.redshift#CustomDomainNameString", + "traits": { + "smithy.api#documentation": "

      The custom domain name for the custom domain association.

      " + } + }, + "CustomDomainCertificateArn": { + "target": "com.amazonaws.redshift#CustomDomainCertificateArnString", + "traits": { + "smithy.api#documentation": "

      The certificate Amazon Resource Name (ARN) for the custom domain association.

      " + } + }, + "MaxRecords": { + "target": "com.amazonaws.redshift#IntegerOptional", + "traits": { + "smithy.api#documentation": "

      The maximum records setting for the associated custom domain.

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

      The marker for the custom domain association.

      " + } + } } }, "com.amazonaws.redshift#DescribeDataShares": { @@ -5620,6 +5998,9 @@ "smithy.api#documentation": "

      An optional parameter that specifies the starting point to return a set of response\n records. When the results of a DescribeDataSharesForConsumer request\n exceed the value specified in MaxRecords, Amazon Web Services returns a value in the\n Marker field of the response. You can retrieve the next set of response\n records by providing the returned marker value in the Marker parameter and\n retrying the request.

      " } } + }, + "traits": { + "smithy.api#output": {} } }, "com.amazonaws.redshift#DescribeDataSharesForProducer": { @@ -5689,6 +6070,9 @@ "smithy.api#documentation": "

      An optional parameter that specifies the starting point to return a set of response\n records. When the results of a DescribeDataSharesForProducer request\n exceed the value specified in MaxRecords, Amazon Web Services returns a value in the\n Marker field of the response. You can retrieve the next set of response\n records by providing the returned marker value in the Marker parameter and\n retrying the request.

      " } } + }, + "traits": { + "smithy.api#output": {} } }, "com.amazonaws.redshift#DescribeDataSharesMessage": { @@ -5729,6 +6113,9 @@ "smithy.api#documentation": "

      An optional parameter that specifies the starting point to return a set of response records. When the results of a DescribeDataShares request exceed the value specified in MaxRecords, Amazon Web Services returns a value in the Marker field of the response. You can retrieve the next set of response records by providing the returned marker value in the Marker parameter and retrying the request.

      " } } + }, + "traits": { + "smithy.api#output": {} } }, "com.amazonaws.redshift#DescribeDefaultClusterParameters": { @@ -5782,6 +6169,9 @@ "DefaultClusterParameters": { "target": "com.amazonaws.redshift#DefaultClusterParameters" } + }, + "traits": { + "smithy.api#output": {} } }, "com.amazonaws.redshift#DescribeEndpointAccess": { @@ -7166,6 +7556,9 @@ "Cluster": { "target": "com.amazonaws.redshift#Cluster" } + }, + "traits": { + "smithy.api#output": {} } }, "com.amazonaws.redshift#DisassociateDataShareConsumer": { @@ -7461,6 +7854,9 @@ "Cluster": { "target": "com.amazonaws.redshift#Cluster" } + }, + "traits": { + "smithy.api#output": {} } }, "com.amazonaws.redshift#Endpoint": { @@ -8120,8 +8516,7 @@ "ClusterIdentifier": { "target": "com.amazonaws.redshift#String", "traits": { - "smithy.api#documentation": "

      The unique identifier of the cluster that contains the database for which you are\n requesting credentials. This parameter is case sensitive.

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

      The unique identifier of the cluster that contains the database for which you are\n requesting credentials. This parameter is case sensitive.

      " } }, "DurationSeconds": { @@ -8141,6 +8536,12 @@ "traits": { "smithy.api#documentation": "

      A list of the names of existing database groups that the user named in\n DbUser will join for the current session, in addition to any group\n memberships for an existing user. If not specified, a new user is added only to\n PUBLIC.

      \n

      Database group name constraints

      \n
        \n
      • \n

        Must be 1 to 64 alphanumeric characters or hyphens

        \n
      • \n
      • \n

        Must contain only lowercase letters, numbers, underscore, plus sign, period\n (dot), at symbol (@), or hyphen.

        \n
      • \n
      • \n

        First character must be a letter.

        \n
      • \n
      • \n

        Must not contain a colon ( : ) or slash ( / ).

        \n
      • \n
      • \n

        Cannot be a reserved word. A list of reserved words can be found in Reserved Words in the Amazon\n Redshift Database Developer Guide.

        \n
      • \n
      " } + }, + "CustomDomainName": { + "target": "com.amazonaws.redshift#String", + "traits": { + "smithy.api#documentation": "

      The custom domain name for the cluster credentials.

      " + } } }, "traits": { @@ -8179,8 +8580,7 @@ "ClusterIdentifier": { "target": "com.amazonaws.redshift#String", "traits": { - "smithy.api#documentation": "

      The unique identifier of the cluster that contains the database for which you are\n requesting credentials.

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

      The unique identifier of the cluster that contains the database for which you are\n requesting credentials.

      " } }, "DurationSeconds": { @@ -8188,6 +8588,12 @@ "traits": { "smithy.api#documentation": "

      The number of seconds until the returned temporary password expires.

      \n

      Range: 900-3600. Default: 900.

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

      The custom domain name for the IAM message cluster credentials.

      " + } } } }, @@ -9527,6 +9933,9 @@ "smithy.api#documentation": "

      The updated content of the authentication profile in JSON format.

      " } } + }, + "traits": { + "smithy.api#output": {} } }, "com.amazonaws.redshift#ModifyCluster": { @@ -9550,6 +9959,9 @@ { "target": "com.amazonaws.redshift#ClusterSecurityGroupNotFoundFault" }, + { + "target": "com.amazonaws.redshift#CustomCnameAssociationFault" + }, { "target": "com.amazonaws.redshift#DependentServiceRequestThrottlingFault" }, @@ -9592,6 +10004,9 @@ { "target": "com.amazonaws.redshift#UnauthorizedOperation" }, + { + "target": "com.amazonaws.redshift#UnsupportedOperationFault" + }, { "target": "com.amazonaws.redshift#UnsupportedOptionFault" } @@ -9648,6 +10063,9 @@ "Cluster": { "target": "com.amazonaws.redshift#Cluster" } + }, + "traits": { + "smithy.api#output": {} } }, "com.amazonaws.redshift#ModifyClusterIamRoles": { @@ -9709,6 +10127,9 @@ "Cluster": { "target": "com.amazonaws.redshift#Cluster" } + }, + "traits": { + "smithy.api#output": {} } }, "com.amazonaws.redshift#ModifyClusterMaintenance": { @@ -9779,6 +10200,9 @@ "Cluster": { "target": "com.amazonaws.redshift#Cluster" } + }, + "traits": { + "smithy.api#output": {} } }, "com.amazonaws.redshift#ModifyClusterMessage": { @@ -9824,7 +10248,7 @@ "MasterUserPassword": { "target": "com.amazonaws.redshift#String", "traits": { - "smithy.api#documentation": "

      The new password for the cluster admin user. This change is asynchronously applied\n as soon as possible. Between the time of the request and the completion of the request,\n the MasterUserPassword element exists in the\n PendingModifiedValues element of the operation response.

      \n \n

      Operations never return the password, so this operation provides a way to\n regain access to the admin user for a cluster if the password is\n lost.

      \n
      \n

      Default: Uses existing setting.

      \n

      Constraints:

      \n
        \n
      • \n

        Must be between 8 and 64 characters in length.

        \n
      • \n
      • \n

        Must contain at least one uppercase letter.

        \n
      • \n
      • \n

        Must contain at least one lowercase letter.

        \n
      • \n
      • \n

        Must contain one number.

        \n
      • \n
      • \n

        Can be any printable ASCII character (ASCII code 33-126) except '\n (single quote), \" (double quote), \\, /, or @.

        \n
      • \n
      " + "smithy.api#documentation": "

      The new password for the cluster admin user. This change is asynchronously applied\n as soon as possible. Between the time of the request and the completion of the request,\n the MasterUserPassword element exists in the\n PendingModifiedValues element of the operation response.

      \n \n

      Operations never return the password, so this operation provides a way to\n regain access to the admin user account for a cluster if the password is\n lost.

      \n
      \n

      Default: Uses existing setting.

      \n

      Constraints:

      \n
        \n
      • \n

        Must be between 8 and 64 characters in length.

        \n
      • \n
      • \n

        Must contain at least one uppercase letter.

        \n
      • \n
      • \n

        Must contain at least one lowercase letter.

        \n
      • \n
      • \n

        Must contain one number.

        \n
      • \n
      • \n

        Can be any printable ASCII character (ASCII code 33-126) except '\n (single quote), \" (double quote), \\, /, or @.

        \n
      • \n
      " } }, "ClusterParameterGroupName": { @@ -9988,6 +10412,9 @@ "Cluster": { "target": "com.amazonaws.redshift#Cluster" } + }, + "traits": { + "smithy.api#output": {} } }, "com.amazonaws.redshift#ModifyClusterSnapshot": { @@ -10044,6 +10471,9 @@ "Snapshot": { "target": "com.amazonaws.redshift#Snapshot" } + }, + "traits": { + "smithy.api#output": {} } }, "com.amazonaws.redshift#ModifyClusterSnapshotSchedule": { @@ -10159,6 +10589,88 @@ "ClusterSubnetGroup": { "target": "com.amazonaws.redshift#ClusterSubnetGroup" } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.redshift#ModifyCustomDomainAssociation": { + "type": "operation", + "input": { + "target": "com.amazonaws.redshift#ModifyCustomDomainAssociationMessage" + }, + "output": { + "target": "com.amazonaws.redshift#ModifyCustomDomainAssociationResult" + }, + "errors": [ + { + "target": "com.amazonaws.redshift#ClusterNotFoundFault" + }, + { + "target": "com.amazonaws.redshift#CustomCnameAssociationFault" + }, + { + "target": "com.amazonaws.redshift#UnsupportedOperationFault" + } + ], + "traits": { + "smithy.api#documentation": "

      Contains information for changing a custom domain association.

      " + } + }, + "com.amazonaws.redshift#ModifyCustomDomainAssociationMessage": { + "type": "structure", + "members": { + "CustomDomainName": { + "target": "com.amazonaws.redshift#CustomDomainNameString", + "traits": { + "smithy.api#documentation": "

      The custom domain name for a changed custom domain association.

      " + } + }, + "CustomDomainCertificateArn": { + "target": "com.amazonaws.redshift#CustomDomainCertificateArnString", + "traits": { + "smithy.api#documentation": "

      The certificate Amazon Resource Name (ARN) for the changed custom domain association.

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

      The identifier of the cluster to change a custom domain association for.

      ", + "smithy.api#required": {} + } + } + } + }, + "com.amazonaws.redshift#ModifyCustomDomainAssociationResult": { + "type": "structure", + "members": { + "CustomDomainName": { + "target": "com.amazonaws.redshift#CustomDomainNameString", + "traits": { + "smithy.api#documentation": "

      The custom domain name associated with the result for the changed custom domain association.

      " + } + }, + "CustomDomainCertificateArn": { + "target": "com.amazonaws.redshift#CustomDomainCertificateArnString", + "traits": { + "smithy.api#documentation": "

      The certificate Amazon Resource Name (ARN) associated with the result for the changed custom domain association.

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

      The identifier of the cluster associated with the result for the changed custom domain association.

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

      The certificate expiration time associated with the result for the changed custom domain association.

      " + } + } + }, + "traits": { + "smithy.api#output": {} } }, "com.amazonaws.redshift#ModifyEndpointAccess": { @@ -10309,6 +10821,9 @@ "EventSubscription": { "target": "com.amazonaws.redshift#EventSubscription" } + }, + "traits": { + "smithy.api#output": {} } }, "com.amazonaws.redshift#ModifyScheduledAction": { @@ -10459,6 +10974,9 @@ "Cluster": { "target": "com.amazonaws.redshift#Cluster" } + }, + "traits": { + "smithy.api#output": {} } }, "com.amazonaws.redshift#ModifySnapshotSchedule": { @@ -11195,6 +11713,9 @@ "Cluster": { "target": "com.amazonaws.redshift#Cluster" } + }, + "traits": { + "smithy.api#output": {} } }, "com.amazonaws.redshift#PendingActionsList": { @@ -11330,6 +11851,9 @@ "ReservedNode": { "target": "com.amazonaws.redshift#ReservedNode" } + }, + "traits": { + "smithy.api#output": {} } }, "com.amazonaws.redshift#RebootCluster": { @@ -11373,6 +11897,9 @@ "Cluster": { "target": "com.amazonaws.redshift#Cluster" } + }, + "traits": { + "smithy.api#output": {} } }, "com.amazonaws.redshift#RecurringCharge": { @@ -11460,6 +11987,9 @@ { "target": "com.amazonaws.redshift#CreateClusterSubnetGroup" }, + { + "target": "com.amazonaws.redshift#CreateCustomDomainAssociation" + }, { "target": "com.amazonaws.redshift#CreateEndpointAccess" }, @@ -11508,6 +12038,9 @@ { "target": "com.amazonaws.redshift#DeleteClusterSubnetGroup" }, + { + "target": "com.amazonaws.redshift#DeleteCustomDomainAssociation" + }, { "target": "com.amazonaws.redshift#DeleteEndpointAccess" }, @@ -11571,6 +12104,9 @@ { "target": "com.amazonaws.redshift#DescribeClusterVersions" }, + { + "target": "com.amazonaws.redshift#DescribeCustomDomainAssociations" + }, { "target": "com.amazonaws.redshift#DescribeDataShares" }, @@ -11706,6 +12242,9 @@ { "target": "com.amazonaws.redshift#ModifyClusterSubnetGroup" }, + { + "target": "com.amazonaws.redshift#ModifyCustomDomainAssociation" + }, { "target": "com.amazonaws.redshift#ModifyEndpointAccess" }, @@ -12135,44 +12674,6 @@ "conditions": [], "type": "tree", "rules": [ - { - "conditions": [ - { - "fn": "stringEquals", - "argv": [ - { - "ref": "Region" - }, - "us-gov-east-1" - ] - } - ], - "endpoint": { - "url": "https://redshift.us-gov-east-1.amazonaws.com", - "properties": {}, - "headers": {} - }, - "type": "endpoint" - }, - { - "conditions": [ - { - "fn": "stringEquals", - "argv": [ - { - "ref": "Region" - }, - "us-gov-west-1" - ] - } - ], - "endpoint": { - "url": "https://redshift.us-gov-west-1.amazonaws.com", - "properties": {}, - "headers": {} - }, - "type": "endpoint" - }, { "conditions": [], "endpoint": { @@ -12207,9 +12708,9 @@ } }, "params": { - "UseDualStack": false, + "Region": "af-south-1", "UseFIPS": false, - "Region": "af-south-1" + "UseDualStack": false } }, { @@ -12220,9 +12721,9 @@ } }, "params": { - "UseDualStack": false, + "Region": "ap-east-1", "UseFIPS": false, - "Region": "ap-east-1" + "UseDualStack": false } }, { @@ -12233,9 +12734,9 @@ } }, "params": { - "UseDualStack": false, + "Region": "ap-northeast-1", "UseFIPS": false, - "Region": "ap-northeast-1" + "UseDualStack": false } }, { @@ -12246,9 +12747,9 @@ } }, "params": { - "UseDualStack": false, + "Region": "ap-northeast-2", "UseFIPS": false, - "Region": "ap-northeast-2" + "UseDualStack": false } }, { @@ -12259,9 +12760,9 @@ } }, "params": { - "UseDualStack": false, + "Region": "ap-northeast-3", "UseFIPS": false, - "Region": "ap-northeast-3" + "UseDualStack": false } }, { @@ -12272,9 +12773,9 @@ } }, "params": { - "UseDualStack": false, + "Region": "ap-south-1", "UseFIPS": false, - "Region": "ap-south-1" + "UseDualStack": false } }, { @@ -12285,9 +12786,9 @@ } }, "params": { - "UseDualStack": false, + "Region": "ap-southeast-1", "UseFIPS": false, - "Region": "ap-southeast-1" + "UseDualStack": false } }, { @@ -12298,9 +12799,9 @@ } }, "params": { - "UseDualStack": false, + "Region": "ap-southeast-2", "UseFIPS": false, - "Region": "ap-southeast-2" + "UseDualStack": false } }, { @@ -12311,9 +12812,9 @@ } }, "params": { - "UseDualStack": false, + "Region": "ap-southeast-3", "UseFIPS": false, - "Region": "ap-southeast-3" + "UseDualStack": false } }, { @@ -12324,9 +12825,9 @@ } }, "params": { - "UseDualStack": false, + "Region": "ca-central-1", "UseFIPS": false, - "Region": "ca-central-1" + "UseDualStack": false } }, { @@ -12337,9 +12838,9 @@ } }, "params": { - "UseDualStack": false, + "Region": "ca-central-1", "UseFIPS": true, - "Region": "ca-central-1" + "UseDualStack": false } }, { @@ -12350,9 +12851,9 @@ } }, "params": { - "UseDualStack": false, + "Region": "eu-central-1", "UseFIPS": false, - "Region": "eu-central-1" + "UseDualStack": false } }, { @@ -12363,9 +12864,9 @@ } }, "params": { - "UseDualStack": false, + "Region": "eu-north-1", "UseFIPS": false, - "Region": "eu-north-1" + "UseDualStack": false } }, { @@ -12376,9 +12877,9 @@ } }, "params": { - "UseDualStack": false, + "Region": "eu-south-1", "UseFIPS": false, - "Region": "eu-south-1" + "UseDualStack": false } }, { @@ -12389,9 +12890,9 @@ } }, "params": { - "UseDualStack": false, + "Region": "eu-west-1", "UseFIPS": false, - "Region": "eu-west-1" + "UseDualStack": false } }, { @@ -12402,9 +12903,9 @@ } }, "params": { - "UseDualStack": false, + "Region": "eu-west-2", "UseFIPS": false, - "Region": "eu-west-2" + "UseDualStack": false } }, { @@ -12415,9 +12916,9 @@ } }, "params": { - "UseDualStack": false, + "Region": "eu-west-3", "UseFIPS": false, - "Region": "eu-west-3" + "UseDualStack": false } }, { @@ -12428,9 +12929,9 @@ } }, "params": { - "UseDualStack": false, + "Region": "me-south-1", "UseFIPS": false, - "Region": "me-south-1" + "UseDualStack": false } }, { @@ -12441,9 +12942,9 @@ } }, "params": { - "UseDualStack": false, + "Region": "sa-east-1", "UseFIPS": false, - "Region": "sa-east-1" + "UseDualStack": false } }, { @@ -12454,9 +12955,9 @@ } }, "params": { - "UseDualStack": false, + "Region": "us-east-1", "UseFIPS": false, - "Region": "us-east-1" + "UseDualStack": false } }, { @@ -12467,9 +12968,9 @@ } }, "params": { - "UseDualStack": false, + "Region": "us-east-1", "UseFIPS": true, - "Region": "us-east-1" + "UseDualStack": false } }, { @@ -12480,9 +12981,9 @@ } }, "params": { - "UseDualStack": false, + "Region": "us-east-2", "UseFIPS": false, - "Region": "us-east-2" + "UseDualStack": false } }, { @@ -12493,9 +12994,9 @@ } }, "params": { - "UseDualStack": false, + "Region": "us-east-2", "UseFIPS": true, - "Region": "us-east-2" + "UseDualStack": false } }, { @@ -12506,9 +13007,9 @@ } }, "params": { - "UseDualStack": false, + "Region": "us-west-1", "UseFIPS": false, - "Region": "us-west-1" + "UseDualStack": false } }, { @@ -12519,9 +13020,9 @@ } }, "params": { - "UseDualStack": false, + "Region": "us-west-1", "UseFIPS": true, - "Region": "us-west-1" + "UseDualStack": false } }, { @@ -12532,9 +13033,9 @@ } }, "params": { - "UseDualStack": false, + "Region": "us-west-2", "UseFIPS": false, - "Region": "us-west-2" + "UseDualStack": false } }, { @@ -12545,9 +13046,9 @@ } }, "params": { - "UseDualStack": false, + "Region": "us-west-2", "UseFIPS": true, - "Region": "us-west-2" + "UseDualStack": false } }, { @@ -12558,9 +13059,9 @@ } }, "params": { - "UseDualStack": true, + "Region": "us-east-1", "UseFIPS": true, - "Region": "us-east-1" + "UseDualStack": true } }, { @@ -12571,9 +13072,9 @@ } }, "params": { - "UseDualStack": true, + "Region": "us-east-1", "UseFIPS": false, - "Region": "us-east-1" + "UseDualStack": true } }, { @@ -12584,9 +13085,9 @@ } }, "params": { - "UseDualStack": false, + "Region": "cn-north-1", "UseFIPS": false, - "Region": "cn-north-1" + "UseDualStack": false } }, { @@ -12597,9 +13098,9 @@ } }, "params": { - "UseDualStack": false, + "Region": "cn-northwest-1", "UseFIPS": false, - "Region": "cn-northwest-1" + "UseDualStack": false } }, { @@ -12610,9 +13111,9 @@ } }, "params": { - "UseDualStack": true, + "Region": "cn-north-1", "UseFIPS": true, - "Region": "cn-north-1" + "UseDualStack": true } }, { @@ -12623,9 +13124,9 @@ } }, "params": { - "UseDualStack": false, + "Region": "cn-north-1", "UseFIPS": true, - "Region": "cn-north-1" + "UseDualStack": false } }, { @@ -12636,9 +13137,9 @@ } }, "params": { - "UseDualStack": true, + "Region": "cn-north-1", "UseFIPS": false, - "Region": "cn-north-1" + "UseDualStack": true } }, { @@ -12649,9 +13150,9 @@ } }, "params": { - "UseDualStack": false, + "Region": "us-gov-east-1", "UseFIPS": false, - "Region": "us-gov-east-1" + "UseDualStack": false } }, { @@ -12662,9 +13163,9 @@ } }, "params": { - "UseDualStack": false, + "Region": "us-gov-east-1", "UseFIPS": true, - "Region": "us-gov-east-1" + "UseDualStack": false } }, { @@ -12675,9 +13176,9 @@ } }, "params": { - "UseDualStack": false, + "Region": "us-gov-west-1", "UseFIPS": false, - "Region": "us-gov-west-1" + "UseDualStack": false } }, { @@ -12688,9 +13189,9 @@ } }, "params": { - "UseDualStack": false, + "Region": "us-gov-west-1", "UseFIPS": true, - "Region": "us-gov-west-1" + "UseDualStack": false } }, { @@ -12701,9 +13202,9 @@ } }, "params": { - "UseDualStack": true, + "Region": "us-gov-east-1", "UseFIPS": true, - "Region": "us-gov-east-1" + "UseDualStack": true } }, { @@ -12714,9 +13215,9 @@ } }, "params": { - "UseDualStack": true, + "Region": "us-gov-east-1", "UseFIPS": false, - "Region": "us-gov-east-1" + "UseDualStack": true } }, { @@ -12727,9 +13228,9 @@ } }, "params": { - "UseDualStack": false, + "Region": "us-iso-east-1", "UseFIPS": false, - "Region": "us-iso-east-1" + "UseDualStack": false } }, { @@ -12740,9 +13241,20 @@ } }, "params": { - "UseDualStack": false, + "Region": "us-iso-west-1", "UseFIPS": false, - "Region": "us-iso-west-1" + "UseDualStack": false + } + }, + { + "documentation": "For region us-iso-east-1 with FIPS enabled and DualStack enabled", + "expect": { + "error": "FIPS and DualStack are enabled, but this partition does not support one or both" + }, + "params": { + "Region": "us-iso-east-1", + "UseFIPS": true, + "UseDualStack": true } }, { @@ -12753,9 +13265,20 @@ } }, "params": { - "UseDualStack": false, + "Region": "us-iso-east-1", "UseFIPS": true, - "Region": "us-iso-east-1" + "UseDualStack": false + } + }, + { + "documentation": "For region us-iso-east-1 with FIPS disabled and DualStack enabled", + "expect": { + "error": "DualStack is enabled but this partition does not support DualStack" + }, + "params": { + "Region": "us-iso-east-1", + "UseFIPS": false, + "UseDualStack": true } }, { @@ -12766,9 +13289,20 @@ } }, "params": { - "UseDualStack": false, + "Region": "us-isob-east-1", "UseFIPS": false, - "Region": "us-isob-east-1" + "UseDualStack": false + } + }, + { + "documentation": "For region us-isob-east-1 with FIPS enabled and DualStack enabled", + "expect": { + "error": "FIPS and DualStack are enabled, but this partition does not support one or both" + }, + "params": { + "Region": "us-isob-east-1", + "UseFIPS": true, + "UseDualStack": true } }, { @@ -12779,9 +13313,20 @@ } }, "params": { - "UseDualStack": false, + "Region": "us-isob-east-1", "UseFIPS": true, - "Region": "us-isob-east-1" + "UseDualStack": false + } + }, + { + "documentation": "For region us-isob-east-1 with FIPS disabled and DualStack enabled", + "expect": { + "error": "DualStack is enabled but this partition does not support DualStack" + }, + "params": { + "Region": "us-isob-east-1", + "UseFIPS": false, + "UseDualStack": true } }, { @@ -12792,9 +13337,9 @@ } }, "params": { - "UseDualStack": false, - "UseFIPS": false, "Region": "us-east-1", + "UseFIPS": false, + "UseDualStack": false, "Endpoint": "https://example.com" } }, @@ -12806,8 +13351,8 @@ } }, "params": { - "UseDualStack": false, "UseFIPS": false, + "UseDualStack": false, "Endpoint": "https://example.com" } }, @@ -12817,9 +13362,9 @@ "error": "Invalid Configuration: FIPS and custom endpoint are not supported" }, "params": { - "UseDualStack": false, - "UseFIPS": true, "Region": "us-east-1", + "UseFIPS": true, + "UseDualStack": false, "Endpoint": "https://example.com" } }, @@ -12829,11 +13374,17 @@ "error": "Invalid Configuration: Dualstack and custom endpoint are not supported" }, "params": { - "UseDualStack": true, - "UseFIPS": false, "Region": "us-east-1", + "UseFIPS": false, + "UseDualStack": true, "Endpoint": "https://example.com" } + }, + { + "documentation": "Missing region", + "expect": { + "error": "Invalid Configuration: Missing Region" + } } ], "version": "1.0" @@ -13526,6 +14077,9 @@ "Cluster": { "target": "com.amazonaws.redshift#Cluster" } + }, + "traits": { + "smithy.api#output": {} } }, "com.amazonaws.redshift#ResizeInfo": { @@ -13831,7 +14385,7 @@ "SnapshotClusterIdentifier": { "target": "com.amazonaws.redshift#String", "traits": { - "smithy.api#documentation": "

      The name of the cluster the source snapshot was created from. This parameter is\n required if your IAM user or role has a policy containing a snapshot resource element that\n specifies anything other than * for the cluster name.

      " + "smithy.api#documentation": "

      The name of the cluster the source snapshot was created from. This parameter is\n required if your IAM user has a policy containing a snapshot resource element that\n specifies anything other than * for the cluster name.

      " } }, "Port": { @@ -14019,6 +14573,9 @@ "Cluster": { "target": "com.amazonaws.redshift#Cluster" } + }, + "traits": { + "smithy.api#output": {} } }, "com.amazonaws.redshift#RestoreStatus": { @@ -14178,6 +14735,9 @@ "TableRestoreStatus": { "target": "com.amazonaws.redshift#TableRestoreStatus" } + }, + "traits": { + "smithy.api#output": {} } }, "com.amazonaws.redshift#ResumeCluster": { @@ -14224,6 +14784,9 @@ "Cluster": { "target": "com.amazonaws.redshift#Cluster" } + }, + "traits": { + "smithy.api#output": {} } }, "com.amazonaws.redshift#RevisionTarget": { @@ -14323,6 +14886,9 @@ "ClusterSecurityGroup": { "target": "com.amazonaws.redshift#ClusterSecurityGroup" } + }, + "traits": { + "smithy.api#output": {} } }, "com.amazonaws.redshift#RevokeEndpointAccess": { @@ -14434,7 +15000,7 @@ "SnapshotClusterIdentifier": { "target": "com.amazonaws.redshift#String", "traits": { - "smithy.api#documentation": "

      The identifier of the cluster the snapshot was created from. This parameter is\n required if your IAM user or role has a policy containing a snapshot resource element that\n specifies anything other than * for the cluster name.

      " + "smithy.api#documentation": "

      The identifier of the cluster the snapshot was created from. This parameter is\n required if your IAM user has a policy containing a snapshot resource element that\n specifies anything other than * for the cluster name.

      " } }, "AccountWithRestoreAccess": { @@ -14455,6 +15021,9 @@ "Snapshot": { "target": "com.amazonaws.redshift#Snapshot" } + }, + "traits": { + "smithy.api#output": {} } }, "com.amazonaws.redshift#RotateEncryptionKey": { @@ -14501,6 +15070,9 @@ "Cluster": { "target": "com.amazonaws.redshift#Cluster" } + }, + "traits": { + "smithy.api#output": {} } }, "com.amazonaws.redshift#SNSInvalidTopicFault": {