CreateKxChangeset - Amazon FinSpace

End of support notice: On October 7, 2026, AWS will end support for Amazon FinSpace. After October 7, 2026, you will no longer be able to access the FinSpace console or FinSpace resources. For more information, see Amazon FinSpace end of support.

After careful consideration, we decided to end support for Amazon FinSpace, effective October 7, 2026. Amazon FinSpace will no longer accept new customers beginning October 7, 2025. As an existing customer with an Amazon FinSpace environment created before October 7, 2025, you can continue to use the service as normal. After October 7, 2026, you will no longer be able to use Amazon FinSpace. For more information, see Amazon FinSpace end of support.

CreateKxChangeset

Creates a changeset for a kdb database. A changeset allows you to add and delete existing files by using an ordered list of change requests.

Request Syntax

POST /kx/environments/environmentId/databases/databaseName/changesets HTTP/1.1 Content-type: application/json { "changeRequests": [ { "changeType": "string", "dbPath": "string", "s3Path": "string" } ], "clientToken": "string" }

URI Request Parameters

The request uses the following URI parameters.

databaseName

The name of the kdb database.

Length Constraints: Minimum length of 3. Maximum length of 63.

Pattern: ^[a-zA-Z0-9][a-zA-Z0-9-_]*[a-zA-Z0-9]$

Required: Yes

environmentId

A unique identifier of the kdb environment.

Length Constraints: Minimum length of 1. Maximum length of 32.

Pattern: .*\S.*

Required: Yes

Request Body

The request accepts the following data in JSON format.

changeRequests

A list of change request objects that are run in order. A change request object consists of changeType , s3Path, and dbPath. A changeType can have the following values:

  • PUT – Adds or updates files in a database.

  • DELETE – Deletes files in a database.

All the change requests require a mandatory dbPath attribute that defines the path within the database directory. All database paths must start with a leading / and end with a trailing /. The s3Path attribute defines the s3 source file path and is required for a PUT change type. The s3path must end with a trailing / if it is a directory and must end without a trailing / if it is a file.

Here are few examples of how you can use the change request object:

  1. This request adds a single sym file at database root location.

    { "changeType": "PUT", "s3Path":"s3://bucket/db/sym", "dbPath":"/"}

  2. This request adds files in the given s3Path under the 2020.01.02 partition of the database.

    { "changeType": "PUT", "s3Path":"s3://bucket/db/2020.01.02/", "dbPath":"/2020.01.02/"}

  3. This request adds files in the given s3Path under the taq table partition of the database.

    [ { "changeType": "PUT", "s3Path":"s3://bucket/db/2020.01.02/taq/", "dbPath":"/2020.01.02/taq/"}]

  4. This request deletes the 2020.01.02 partition of the database.

    [{ "changeType": "DELETE", "dbPath": "/2020.01.02/"} ]

  5. The DELETE request allows you to delete the existing files under the 2020.01.02 partition of the database, and the PUT request adds a new taq table under it.

    [ {"changeType": "DELETE", "dbPath":"/2020.01.02/"}, {"changeType": "PUT", "s3Path":"s3://bucket/db/2020.01.02/taq/", "dbPath":"/2020.01.02/taq/"}]

Type: Array of ChangeRequest objects

Array Members: Minimum number of 1 item. Maximum number of 32 items.

Required: Yes

clientToken

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

Type: String

Length Constraints: Minimum length of 1. Maximum length of 64.

Pattern: ^[a-zA-Z0-9-]+$

Required: Yes

Response Syntax

HTTP/1.1 200 Content-type: application/json { "changeRequests": [ { "changeType": "string", "dbPath": "string", "s3Path": "string" } ], "changesetId": "string", "createdTimestamp": number, "databaseName": "string", "environmentId": "string", "errorInfo": { "errorMessage": "string", "errorType": "string" }, "lastModifiedTimestamp": number, "status": "string" }

Response Elements

If the action is successful, the service sends back an HTTP 200 response.

The following data is returned in JSON format by the service.

changeRequests

A list of change requests.

Type: Array of ChangeRequest objects

Array Members: Minimum number of 1 item. Maximum number of 32 items.

changesetId

A unique identifier for the changeset.

Type: String

Length Constraints: Minimum length of 1. Maximum length of 26.

Pattern: ^[a-zA-Z0-9]+$

createdTimestamp

The timestamp at which the changeset was created in FinSpace. The value is determined as epoch time in milliseconds. For example, the value for Monday, November 1, 2021 12:00:00 PM UTC is specified as 1635768000000.

Type: Timestamp

databaseName

The name of the kdb database.

Type: String

Length Constraints: Minimum length of 3. Maximum length of 63.

Pattern: ^[a-zA-Z0-9][a-zA-Z0-9-_]*[a-zA-Z0-9]$

environmentId

A unique identifier for the kdb environment.

Type: String

Length Constraints: Minimum length of 1. Maximum length of 32.

Pattern: .*\S.*

errorInfo

The details of the error that you receive when creating a changeset. It consists of the type of error and the error message.

Type: ErrorInfo object

lastModifiedTimestamp

The timestamp at which the changeset was updated in FinSpace. The value is determined as epoch time in milliseconds. For example, the value for Monday, November 1, 2021 12:00:00 PM UTC is specified as 1635768000000.

Type: Timestamp

status

Status of the changeset creation process.

  • Pending – Changeset creation is pending.

  • Processing – Changeset creation is running.

  • Failed – Changeset creation has failed.

  • Complete – Changeset creation has succeeded.

Type: String

Valid Values: PENDING | PROCESSING | FAILED | COMPLETED

Errors

For information about the errors that are common to all actions, see Common Errors.

AccessDeniedException

You do not have sufficient access to perform this action.

HTTP Status Code: 403

ConflictException

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

reason

The reason for the conflict exception.

HTTP Status Code: 409

InternalServerException

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

HTTP Status Code: 500

LimitExceededException

A service limit or quota is exceeded.

HTTP Status Code: 400

ResourceNotFoundException

One or more resources can't be found.

HTTP Status Code: 404

ThrottlingException

The request was denied due to request throttling.

HTTP Status Code: 429

ValidationException

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

HTTP Status Code: 400

See Also

For more information about using this API in one of the language-specific AWS SDKs, see the following: