+ * 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: MiddlewareStackThe 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.
+ * 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.
+ *+ * 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
.
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.
The type of cache storage . The valid values are:
\nCACHE_1000 – This type provides at least 1000 MB/s disk access throughput.
\nThe type of cache storage. The valid values are:
\nCACHE_1000 – This type provides at least 1000 MB/s disk access throughput.
\nCACHE_250 – This type provides at least 250 MB/s disk access throughput.
\nCACHE_12 – This type provides at least 12 MB/s disk access throughput.
\nFor 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.
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
\nROLLING – This options updates the cluster by stopping the exiting q process and starting a new q process with updated configuration.
\nFORCE – This option updates the cluster by immediately stopping all the running processes before starting up new ones with the updated configuration.
\n\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
\nROLLING – This options loads the updated database by stopping the exiting q process and starting a new q process with updated configuration.
\nNO_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 The type of deployment that you want on a cluster.\n \n
\nROLLING – This options updates the cluster by stopping the exiting q process and starting a new q process with updated configuration.
\nNO_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.
\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
.
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": {