diff --git a/clients/client-finspace/README.md b/clients/client-finspace/README.md index a87c1ba901ce8..d1c1a51b0dde0 100644 --- a/clients/client-finspace/README.md +++ b/clients/client-finspace/README.md @@ -434,6 +434,14 @@ UpdateEnvironment [Command API Reference](https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/clients/client-finspace/classes/updateenvironmentcommand.html) / [Input](https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/clients/client-finspace/interfaces/updateenvironmentcommandinput.html) / [Output](https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/clients/client-finspace/interfaces/updateenvironmentcommandoutput.html) + +
+ +UpdateKxClusterCodeConfiguration + + +[Command API Reference](https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/clients/client-finspace/classes/updatekxclustercodeconfigurationcommand.html) / [Input](https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/clients/client-finspace/interfaces/updatekxclustercodeconfigurationcommandinput.html) / [Output](https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/clients/client-finspace/interfaces/updatekxclustercodeconfigurationcommandoutput.html) +
diff --git a/clients/client-finspace/src/Finspace.ts b/clients/client-finspace/src/Finspace.ts index e1d7f3e1fbfa7..40ec4df0194e6 100644 --- a/clients/client-finspace/src/Finspace.ts +++ b/clients/client-finspace/src/Finspace.ts @@ -135,6 +135,11 @@ import { UpdateEnvironmentCommandInput, UpdateEnvironmentCommandOutput, } from "./commands/UpdateEnvironmentCommand"; +import { + UpdateKxClusterCodeConfigurationCommand, + UpdateKxClusterCodeConfigurationCommandInput, + UpdateKxClusterCodeConfigurationCommandOutput, +} from "./commands/UpdateKxClusterCodeConfigurationCommand"; import { UpdateKxClusterDatabasesCommand, UpdateKxClusterDatabasesCommandInput, @@ -192,6 +197,7 @@ const commands = { TagResourceCommand, UntagResourceCommand, UpdateEnvironmentCommand, + UpdateKxClusterCodeConfigurationCommand, UpdateKxClusterDatabasesCommand, UpdateKxDatabaseCommand, UpdateKxEnvironmentCommand, @@ -627,6 +633,23 @@ export interface Finspace { cb: (err: any, data?: UpdateEnvironmentCommandOutput) => void ): void; + /** + * @see {@link UpdateKxClusterCodeConfigurationCommand} + */ + updateKxClusterCodeConfiguration( + args: UpdateKxClusterCodeConfigurationCommandInput, + options?: __HttpHandlerOptions + ): Promise; + updateKxClusterCodeConfiguration( + args: UpdateKxClusterCodeConfigurationCommandInput, + cb: (err: any, data?: UpdateKxClusterCodeConfigurationCommandOutput) => void + ): void; + updateKxClusterCodeConfiguration( + args: UpdateKxClusterCodeConfigurationCommandInput, + options: __HttpHandlerOptions, + cb: (err: any, data?: UpdateKxClusterCodeConfigurationCommandOutput) => void + ): void; + /** * @see {@link UpdateKxClusterDatabasesCommand} */ diff --git a/clients/client-finspace/src/FinspaceClient.ts b/clients/client-finspace/src/FinspaceClient.ts index 3a65e3717e99e..45bbcdf19c3d0 100644 --- a/clients/client-finspace/src/FinspaceClient.ts +++ b/clients/client-finspace/src/FinspaceClient.ts @@ -91,6 +91,10 @@ import { import { TagResourceCommandInput, TagResourceCommandOutput } from "./commands/TagResourceCommand"; import { UntagResourceCommandInput, UntagResourceCommandOutput } from "./commands/UntagResourceCommand"; import { UpdateEnvironmentCommandInput, UpdateEnvironmentCommandOutput } from "./commands/UpdateEnvironmentCommand"; +import { + UpdateKxClusterCodeConfigurationCommandInput, + UpdateKxClusterCodeConfigurationCommandOutput, +} from "./commands/UpdateKxClusterCodeConfigurationCommand"; import { UpdateKxClusterDatabasesCommandInput, UpdateKxClusterDatabasesCommandOutput, @@ -149,6 +153,7 @@ export type ServiceInputTypes = | TagResourceCommandInput | UntagResourceCommandInput | UpdateEnvironmentCommandInput + | UpdateKxClusterCodeConfigurationCommandInput | UpdateKxClusterDatabasesCommandInput | UpdateKxDatabaseCommandInput | UpdateKxEnvironmentCommandInput @@ -188,6 +193,7 @@ export type ServiceOutputTypes = | TagResourceCommandOutput | UntagResourceCommandOutput | UpdateEnvironmentCommandOutput + | UpdateKxClusterCodeConfigurationCommandOutput | UpdateKxClusterDatabasesCommandOutput | UpdateKxDatabaseCommandOutput | UpdateKxEnvironmentCommandOutput diff --git a/clients/client-finspace/src/commands/UpdateKxClusterCodeConfigurationCommand.ts b/clients/client-finspace/src/commands/UpdateKxClusterCodeConfigurationCommand.ts new file mode 100644 index 0000000000000..9c5f09ff262bd --- /dev/null +++ b/clients/client-finspace/src/commands/UpdateKxClusterCodeConfigurationCommand.ts @@ -0,0 +1,198 @@ +// smithy-typescript generated code +import { EndpointParameterInstructions, getEndpointPlugin } from "@smithy/middleware-endpoint"; +import { getSerdePlugin } from "@smithy/middleware-serde"; +import { HttpRequest as __HttpRequest, HttpResponse as __HttpResponse } from "@smithy/protocol-http"; +import { Command as $Command } from "@smithy/smithy-client"; +import { + FinalizeHandlerArguments, + Handler, + HandlerExecutionContext, + HttpHandlerOptions as __HttpHandlerOptions, + MetadataBearer as __MetadataBearer, + MiddlewareStack, + SerdeContext as __SerdeContext, + SMITHY_CONTEXT_KEY, +} from "@smithy/types"; + +import { FinspaceClientResolvedConfig, ServiceInputTypes, ServiceOutputTypes } from "../FinspaceClient"; +import { UpdateKxClusterCodeConfigurationRequest, UpdateKxClusterCodeConfigurationResponse } from "../models/models_0"; +import { + de_UpdateKxClusterCodeConfigurationCommand, + se_UpdateKxClusterCodeConfigurationCommand, +} from "../protocols/Aws_restJson1"; + +/** + * @public + */ +export { __MetadataBearer, $Command }; +/** + * @public + * + * The input for {@link UpdateKxClusterCodeConfigurationCommand}. + */ +export interface UpdateKxClusterCodeConfigurationCommandInput extends UpdateKxClusterCodeConfigurationRequest {} +/** + * @public + * + * The output of {@link UpdateKxClusterCodeConfigurationCommand}. + */ +export interface UpdateKxClusterCodeConfigurationCommandOutput + extends UpdateKxClusterCodeConfigurationResponse, + __MetadataBearer {} + +/** + * @public + *

+ * Allows you to update code configuration on a running cluster. By using this API you can update the code, the initialization script path, and the command line arguments for a specific cluster. + * The configuration that you want to update will override any existing configurations on the cluster. + *

+ * @example + * Use a bare-bones client and the command you need to make an API call. + * ```javascript + * import { FinspaceClient, UpdateKxClusterCodeConfigurationCommand } from "@aws-sdk/client-finspace"; // ES Modules import + * // const { FinspaceClient, UpdateKxClusterCodeConfigurationCommand } = require("@aws-sdk/client-finspace"); // CommonJS import + * const client = new FinspaceClient(config); + * const input = { // UpdateKxClusterCodeConfigurationRequest + * environmentId: "STRING_VALUE", // required + * clusterName: "STRING_VALUE", // required + * clientToken: "STRING_VALUE", + * code: { // CodeConfiguration + * s3Bucket: "STRING_VALUE", + * s3Key: "STRING_VALUE", + * s3ObjectVersion: "STRING_VALUE", + * }, + * initializationScript: "STRING_VALUE", + * commandLineArguments: [ // KxCommandLineArguments + * { // KxCommandLineArgument + * key: "STRING_VALUE", + * value: "STRING_VALUE", + * }, + * ], + * deploymentConfiguration: { // KxClusterCodeDeploymentConfiguration + * deploymentStrategy: "ROLLING" || "FORCE", // required + * }, + * }; + * const command = new UpdateKxClusterCodeConfigurationCommand(input); + * const response = await client.send(command); + * // {}; + * + * ``` + * + * @param UpdateKxClusterCodeConfigurationCommandInput - {@link UpdateKxClusterCodeConfigurationCommandInput} + * @returns {@link UpdateKxClusterCodeConfigurationCommandOutput} + * @see {@link UpdateKxClusterCodeConfigurationCommandInput} for command's `input` shape. + * @see {@link UpdateKxClusterCodeConfigurationCommandOutput} for command's `response` shape. + * @see {@link FinspaceClientResolvedConfig | config} for FinspaceClient's `config` shape. + * + * @throws {@link AccessDeniedException} (client fault) + *

You do not have sufficient access to perform this action.

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

There was a conflict with this action, and it could not be completed.

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

The request processing has failed because of an unknown error, exception or + * failure.

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

A service limit or quota is exceeded.

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

One or more resources can't be found.

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

The request was denied due to request throttling.

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

The input fails to satisfy the constraints specified by an AWS service.

+ * + * @throws {@link FinspaceServiceException} + *

Base exception class for all service exceptions from Finspace service.

+ * + */ +export class UpdateKxClusterCodeConfigurationCommand extends $Command< + UpdateKxClusterCodeConfigurationCommandInput, + UpdateKxClusterCodeConfigurationCommandOutput, + FinspaceClientResolvedConfig +> { + // 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: UpdateKxClusterCodeConfigurationCommandInput) { + // Start section: command_constructor + super(); + // End section: command_constructor + } + + /** + * @internal + */ + resolveMiddleware( + clientStack: MiddlewareStack, + configuration: FinspaceClientResolvedConfig, + options?: __HttpHandlerOptions + ): Handler { + this.middlewareStack.use(getSerdePlugin(configuration, this.serialize, this.deserialize)); + this.middlewareStack.use( + getEndpointPlugin(configuration, UpdateKxClusterCodeConfigurationCommand.getEndpointParameterInstructions()) + ); + + const stack = clientStack.concat(this.middlewareStack); + + const { logger } = configuration; + const clientName = "FinspaceClient"; + const commandName = "UpdateKxClusterCodeConfigurationCommand"; + const handlerExecutionContext: HandlerExecutionContext = { + logger, + clientName, + commandName, + inputFilterSensitiveLog: (_: any) => _, + outputFilterSensitiveLog: (_: any) => _, + [SMITHY_CONTEXT_KEY]: { + service: "AWSHabaneroManagementService", + operation: "UpdateKxClusterCodeConfiguration", + }, + }; + const { requestHandler } = configuration; + return stack.resolve( + (request: FinalizeHandlerArguments) => + requestHandler.handle(request.request as __HttpRequest, options || {}), + handlerExecutionContext + ); + } + + /** + * @internal + */ + private serialize( + input: UpdateKxClusterCodeConfigurationCommandInput, + context: __SerdeContext + ): Promise<__HttpRequest> { + return se_UpdateKxClusterCodeConfigurationCommand(input, context); + } + + /** + * @internal + */ + private deserialize( + output: __HttpResponse, + context: __SerdeContext + ): Promise { + return de_UpdateKxClusterCodeConfigurationCommand(output, context); + } + + // Start section: command_body_extra + // End section: command_body_extra +} diff --git a/clients/client-finspace/src/commands/index.ts b/clients/client-finspace/src/commands/index.ts index e0ddf91ce09f1..33e18fdd73d2c 100644 --- a/clients/client-finspace/src/commands/index.ts +++ b/clients/client-finspace/src/commands/index.ts @@ -28,6 +28,7 @@ export * from "./ListTagsForResourceCommand"; export * from "./TagResourceCommand"; export * from "./UntagResourceCommand"; export * from "./UpdateEnvironmentCommand"; +export * from "./UpdateKxClusterCodeConfigurationCommand"; export * from "./UpdateKxClusterDatabasesCommand"; export * from "./UpdateKxDatabaseCommand"; export * from "./UpdateKxEnvironmentCommand"; diff --git a/clients/client-finspace/src/models/models_0.ts b/clients/client-finspace/src/models/models_0.ts index 98677462d64b7..d1fa82103495b 100644 --- a/clients/client-finspace/src/models/models_0.ts +++ b/clients/client-finspace/src/models/models_0.ts @@ -651,12 +651,19 @@ export type KxAzMode = (typeof KxAzMode)[keyof typeof KxAzMode]; export interface KxCacheStorageConfiguration { /** * @public - *

The type of cache storage . The valid values are:

+ *

The type of cache storage. The valid values are:

*
    *
  • *

    CACHE_1000 – This type provides at least 1000 MB/s disk access throughput.

    *
  • + *
  • + *

    CACHE_250 – This type provides at least 250 MB/s disk access throughput.

    + *
  • + *
  • + *

    CACHE_12 – This type provides at least 12 MB/s disk access throughput.

    + *
  • *
+ *

For cache type CACHE_1000 and CACHE_250 you can select cache size as 1200 GB or increments of 2400 GB. For cache type CACHE_12 you can select the cache size in increments of 6000 GB.

*/ type: string | undefined; @@ -3359,6 +3366,105 @@ export interface UpdateEnvironmentResponse { environment?: Environment; } +/** + * @public + * @enum + */ +export const KxClusterCodeDeploymentStrategy = { + FORCE: "FORCE", + ROLLING: "ROLLING", +} as const; + +/** + * @public + */ +export type KxClusterCodeDeploymentStrategy = + (typeof KxClusterCodeDeploymentStrategy)[keyof typeof KxClusterCodeDeploymentStrategy]; + +/** + * @public + *

+ * The configuration that allows you to choose how you want to update code on a cluster. Depending on the option you choose, you can reduce the time it takes to update the cluster. + *

+ */ +export interface KxClusterCodeDeploymentConfiguration { + /** + * @public + *

+ * The type of deployment that you want on a cluster. + * + *

+ *
    + *
  • + *

    ROLLING – This options updates the cluster by stopping the exiting q process and starting a new q process with updated configuration.

    + *
  • + *
  • + *

    FORCE – This option updates the cluster by immediately stopping all the running processes before starting up new ones with the updated configuration.

    + *
  • + *
+ */ + deploymentStrategy: KxClusterCodeDeploymentStrategy | undefined; +} + +/** + * @public + */ +export interface UpdateKxClusterCodeConfigurationRequest { + /** + * @public + *

+ * A unique identifier of the kdb environment. + *

+ */ + environmentId: string | undefined; + + /** + * @public + *

The name of the cluster.

+ */ + clusterName: string | undefined; + + /** + * @public + *

A token that ensures idempotency. This token expires in 10 minutes.

+ */ + clientToken?: string; + + /** + * @public + *

The structure of the customer code available within the running cluster.

+ */ + code: CodeConfiguration | undefined; + + /** + * @public + *

Specifies a Q program that will be run at launch of a cluster. It is a relative path within + * .zip file that contains the custom code, which will be loaded on + * the cluster. It must include the file name itself. For example, + * somedir/init.q.

+ */ + initializationScript?: string; + + /** + * @public + *

Specifies the key-value pairs to make them available inside the cluster.

+ */ + commandLineArguments?: KxCommandLineArgument[]; + + /** + * @public + *

+ * The configuration that allows you to choose how you want to update the code on a cluster. + *

+ */ + deploymentConfiguration?: KxClusterCodeDeploymentConfiguration; +} + +/** + * @public + */ +export interface UpdateKxClusterCodeConfigurationResponse {} + /** * @public * @enum @@ -3376,22 +3482,23 @@ export type KxDeploymentStrategy = (typeof KxDeploymentStrategy)[keyof typeof Kx /** * @public *

- * The configuration that allows you to choose how you want to update the databases on a cluster. Depending on the option you choose, you can reduce the time it takes to update the database changesets on to a cluster. + * The configuration that allows you to choose how you want to update the databases on a cluster. Depending on the option you choose, you can reduce the time it takes to update the cluster. *

*/ export interface KxDeploymentConfiguration { /** * @public *

- * The type of deployment that you want on a cluster. + * The type of deployment that you want on a cluster. * *

*
    *
  • - *

    ROLLING – This options loads the updated database by stopping the exiting q process and starting a new q process with updated configuration.

    + *

    ROLLING – This options updates the cluster by stopping the exiting q process and starting a new q process with updated configuration.

    *
  • *
  • - *

    NO_RESTART – This option loads the updated database on the running q process without stopping it. This option is quicker as it reduces the turn around time to update a kdb database changeset configuration on a cluster.

    + *

    NO_RESTART – This option updates the cluster without stopping the running q process. It is only available for HDB type cluster. This option is quicker as it reduces the turn around time to update configuration on a cluster.

    + *

    With this deployment mode, you cannot update the initializationScript and commandLineArguments parameters.

    *
  • *
*/ diff --git a/clients/client-finspace/src/protocols/Aws_restJson1.ts b/clients/client-finspace/src/protocols/Aws_restJson1.ts index 6f076bc86a00c..881708a561666 100644 --- a/clients/client-finspace/src/protocols/Aws_restJson1.ts +++ b/clients/client-finspace/src/protocols/Aws_restJson1.ts @@ -67,6 +67,10 @@ import { import { TagResourceCommandInput, TagResourceCommandOutput } from "../commands/TagResourceCommand"; import { UntagResourceCommandInput, UntagResourceCommandOutput } from "../commands/UntagResourceCommand"; import { UpdateEnvironmentCommandInput, UpdateEnvironmentCommandOutput } from "../commands/UpdateEnvironmentCommand"; +import { + UpdateKxClusterCodeConfigurationCommandInput, + UpdateKxClusterCodeConfigurationCommandOutput, +} from "../commands/UpdateKxClusterCodeConfigurationCommand"; import { UpdateKxClusterDatabasesCommandInput, UpdateKxClusterDatabasesCommandOutput, @@ -97,6 +101,7 @@ import { KxCacheStorageConfiguration, KxChangesetListEntry, KxCluster, + KxClusterCodeDeploymentConfiguration, KxCommandLineArgument, KxDatabaseCacheConfiguration, KxDatabaseConfiguration, @@ -1167,6 +1172,50 @@ export const se_UpdateEnvironmentCommand = async ( }); }; +/** + * serializeAws_restJson1UpdateKxClusterCodeConfigurationCommand + */ +export const se_UpdateKxClusterCodeConfigurationCommand = async ( + input: UpdateKxClusterCodeConfigurationCommandInput, + context: __SerdeContext +): Promise<__HttpRequest> => { + const { hostname, protocol = "https", port, path: basePath } = await context.endpoint(); + const headers: any = { + "content-type": "application/json", + }; + let resolvedPath = + `${basePath?.endsWith("/") ? basePath.slice(0, -1) : basePath || ""}` + + "/kx/environments/{environmentId}/clusters/{clusterName}/configuration/code"; + resolvedPath = __resolvedPath( + resolvedPath, + input, + "environmentId", + () => input.environmentId!, + "{environmentId}", + false + ); + resolvedPath = __resolvedPath(resolvedPath, input, "clusterName", () => input.clusterName!, "{clusterName}", false); + let body: any; + body = JSON.stringify( + take(input, { + clientToken: [true, (_) => _ ?? generateIdempotencyToken()], + code: (_) => _json(_), + commandLineArguments: (_) => _json(_), + deploymentConfiguration: (_) => _json(_), + initializationScript: [], + }) + ); + return new __HttpRequest({ + protocol, + hostname, + port, + method: "PUT", + headers, + path: resolvedPath, + body, + }); +}; + /** * serializeAws_restJson1UpdateKxClusterDatabasesCommand */ @@ -3187,6 +3236,67 @@ const de_UpdateEnvironmentCommandError = async ( } }; +/** + * deserializeAws_restJson1UpdateKxClusterCodeConfigurationCommand + */ +export const de_UpdateKxClusterCodeConfigurationCommand = async ( + output: __HttpResponse, + context: __SerdeContext +): Promise => { + if (output.statusCode !== 200 && output.statusCode >= 300) { + return de_UpdateKxClusterCodeConfigurationCommandError(output, context); + } + const contents: any = map({ + $metadata: deserializeMetadata(output), + }); + await collectBody(output.body, context); + return contents; +}; + +/** + * deserializeAws_restJson1UpdateKxClusterCodeConfigurationCommandError + */ +const de_UpdateKxClusterCodeConfigurationCommandError = async ( + output: __HttpResponse, + context: __SerdeContext +): Promise => { + const parsedOutput: any = { + ...output, + body: await parseErrorBody(output.body, context), + }; + const errorCode = loadRestJsonErrorCode(output, parsedOutput.body); + switch (errorCode) { + case "AccessDeniedException": + case "com.amazonaws.finspace#AccessDeniedException": + throw await de_AccessDeniedExceptionRes(parsedOutput, context); + case "ConflictException": + case "com.amazonaws.finspace#ConflictException": + throw await de_ConflictExceptionRes(parsedOutput, context); + case "InternalServerException": + case "com.amazonaws.finspace#InternalServerException": + throw await de_InternalServerExceptionRes(parsedOutput, context); + case "LimitExceededException": + case "com.amazonaws.finspace#LimitExceededException": + throw await de_LimitExceededExceptionRes(parsedOutput, context); + case "ResourceNotFoundException": + case "com.amazonaws.finspace#ResourceNotFoundException": + throw await de_ResourceNotFoundExceptionRes(parsedOutput, context); + case "ThrottlingException": + case "com.amazonaws.finspace#ThrottlingException": + throw await de_ThrottlingExceptionRes(parsedOutput, context); + case "ValidationException": + case "com.amazonaws.finspace#ValidationException": + throw await de_ValidationExceptionRes(parsedOutput, context); + default: + const parsedBody = parsedOutput.body; + return throwDefaultError({ + output, + parsedBody, + errorCode, + }); + } +}; + /** * deserializeAws_restJson1UpdateKxClusterDatabasesCommand */ @@ -3768,6 +3878,8 @@ const se_AutoScalingConfiguration = (input: AutoScalingConfiguration, context: _ // se_KxCacheStorageConfigurations omitted. +// se_KxClusterCodeDeploymentConfiguration omitted. + // se_KxCommandLineArgument omitted. // se_KxCommandLineArguments omitted. diff --git a/codegen/sdk-codegen/aws-models/finspace.json b/codegen/sdk-codegen/aws-models/finspace.json index 4864a23599f37..f40ad42381387 100644 --- a/codegen/sdk-codegen/aws-models/finspace.json +++ b/codegen/sdk-codegen/aws-models/finspace.json @@ -120,6 +120,9 @@ { "target": "com.amazonaws.finspace#UpdateEnvironment" }, + { + "target": "com.amazonaws.finspace#UpdateKxClusterCodeConfiguration" + }, { "target": "com.amazonaws.finspace#UpdateKxClusterDatabases" }, @@ -3854,7 +3857,7 @@ "type": { "target": "com.amazonaws.finspace#KxCacheStorageType", "traits": { - "smithy.api#documentation": "

The type of cache storage . The valid values are:

\n
    \n
  • \n

    CACHE_1000 – This type provides at least 1000 MB/s disk access throughput.

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

The type of cache storage. The valid values are:

\n
    \n
  • \n

    CACHE_1000 – This type provides at least 1000 MB/s disk access throughput.

    \n
  • \n
  • \n

    CACHE_250 – This type provides at least 250 MB/s disk access throughput.

    \n
  • \n
  • \n

    CACHE_12 – This type provides at least 12 MB/s disk access throughput.

    \n
  • \n
\n

For cache type CACHE_1000 and CACHE_250 you can select cache size as 1200 GB or increments of 2400 GB. For cache type CACHE_12 you can select the cache size in increments of 6000 GB.

", "smithy.api#required": {} } }, @@ -4018,6 +4021,38 @@ "smithy.api#documentation": "

The details of a kdb cluster.

" } }, + "com.amazonaws.finspace#KxClusterCodeDeploymentConfiguration": { + "type": "structure", + "members": { + "deploymentStrategy": { + "target": "com.amazonaws.finspace#KxClusterCodeDeploymentStrategy", + "traits": { + "smithy.api#documentation": "

\n The type of deployment that you want on a cluster.\n \n

\n
    \n
  • \n

    ROLLING – This options updates the cluster by stopping the exiting q process and starting a new q process with updated configuration.

    \n
  • \n
  • \n

    FORCE – This option updates the cluster by immediately stopping all the running processes before starting up new ones with the updated configuration.

    \n
  • \n
", + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#documentation": "

\n The configuration that allows you to choose how you want to update code on a cluster. Depending on the option you choose, you can reduce the time it takes to update the cluster.\n

" + } + }, + "com.amazonaws.finspace#KxClusterCodeDeploymentStrategy": { + "type": "enum", + "members": { + "ROLLING": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "ROLLING" + } + }, + "FORCE": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "FORCE" + } + } + } + }, "com.amazonaws.finspace#KxClusterDescription": { "type": "string", "traits": { @@ -4284,13 +4319,13 @@ "deploymentStrategy": { "target": "com.amazonaws.finspace#KxDeploymentStrategy", "traits": { - "smithy.api#documentation": "

\n The type of deployment that you want on a cluster.\n \n

\n
    \n
  • \n

    ROLLING – This options loads the updated database by stopping the exiting q process and starting a new q process with updated configuration.

    \n
  • \n
  • \n

    NO_RESTART – This option loads the updated database on the running q process without stopping it. This option is quicker as it reduces the turn around time to update a kdb database changeset configuration on a cluster.

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

\n The type of deployment that you want on a cluster.\n \n

\n
    \n
  • \n

    ROLLING – This options updates the cluster by stopping the exiting q process and starting a new q process with updated configuration.

    \n
  • \n
  • \n

    NO_RESTART – This option updates the cluster without stopping the running q process. It is only available for HDB type cluster. This option is quicker as it reduces the turn around time to update configuration on a cluster.

    \n

    With this deployment mode, you cannot update the initializationScript and commandLineArguments parameters.

    \n
  • \n
", "smithy.api#required": {} } } }, "traits": { - "smithy.api#documentation": "

\n The configuration that allows you to choose how you want to update the databases on a cluster. Depending on the option you choose, you can reduce the time it takes to update the database changesets on to a cluster.\n

" + "smithy.api#documentation": "

\n The configuration that allows you to choose how you want to update the databases on a cluster. Depending on the option you choose, you can reduce the time it takes to update the cluster.\n

" } }, "com.amazonaws.finspace#KxDeploymentStrategy": { @@ -5948,6 +5983,108 @@ "smithy.api#output": {} } }, + "com.amazonaws.finspace#UpdateKxClusterCodeConfiguration": { + "type": "operation", + "input": { + "target": "com.amazonaws.finspace#UpdateKxClusterCodeConfigurationRequest" + }, + "output": { + "target": "com.amazonaws.finspace#UpdateKxClusterCodeConfigurationResponse" + }, + "errors": [ + { + "target": "com.amazonaws.finspace#AccessDeniedException" + }, + { + "target": "com.amazonaws.finspace#ConflictException" + }, + { + "target": "com.amazonaws.finspace#InternalServerException" + }, + { + "target": "com.amazonaws.finspace#LimitExceededException" + }, + { + "target": "com.amazonaws.finspace#ResourceNotFoundException" + }, + { + "target": "com.amazonaws.finspace#ThrottlingException" + }, + { + "target": "com.amazonaws.finspace#ValidationException" + } + ], + "traits": { + "smithy.api#documentation": "

\n Allows you to update code configuration on a running cluster. By using this API you can update the code, the initialization script path, and the command line arguments for a specific cluster. \n The configuration that you want to update will override any existing configurations on the cluster. \n

", + "smithy.api#http": { + "method": "PUT", + "uri": "/kx/environments/{environmentId}/clusters/{clusterName}/configuration/code", + "code": 200 + } + } + }, + "com.amazonaws.finspace#UpdateKxClusterCodeConfigurationRequest": { + "type": "structure", + "members": { + "environmentId": { + "target": "com.amazonaws.finspace#KxEnvironmentId", + "traits": { + "smithy.api#documentation": "

\n A unique identifier of the kdb environment.\n

", + "smithy.api#httpLabel": {}, + "smithy.api#required": {} + } + }, + "clusterName": { + "target": "com.amazonaws.finspace#KxClusterName", + "traits": { + "smithy.api#documentation": "

The name of the cluster.

", + "smithy.api#httpLabel": {}, + "smithy.api#required": {} + } + }, + "clientToken": { + "target": "com.amazonaws.finspace#ClientTokenString", + "traits": { + "smithy.api#documentation": "

A token that ensures idempotency. This token expires in 10 minutes.

", + "smithy.api#idempotencyToken": {} + } + }, + "code": { + "target": "com.amazonaws.finspace#CodeConfiguration", + "traits": { + "smithy.api#required": {} + } + }, + "initializationScript": { + "target": "com.amazonaws.finspace#InitializationScriptFilePath", + "traits": { + "smithy.api#documentation": "

Specifies a Q program that will be run at launch of a cluster. It is a relative path within\n .zip file that contains the custom code, which will be loaded on\n the cluster. It must include the file name itself. For example,\n somedir/init.q.

" + } + }, + "commandLineArguments": { + "target": "com.amazonaws.finspace#KxCommandLineArguments", + "traits": { + "smithy.api#documentation": "

Specifies the key-value pairs to make them available inside the cluster.

" + } + }, + "deploymentConfiguration": { + "target": "com.amazonaws.finspace#KxClusterCodeDeploymentConfiguration", + "traits": { + "smithy.api#documentation": "

\n The configuration that allows you to choose how you want to update the code on a cluster.\n

" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.finspace#UpdateKxClusterCodeConfigurationResponse": { + "type": "structure", + "members": {}, + "traits": { + "smithy.api#output": {} + } + }, "com.amazonaws.finspace#UpdateKxClusterDatabases": { "type": "operation", "input": {