Keyspaces / Client / update_keyspace
update_keyspace#
- Keyspaces.Client.update_keyspace(**kwargs)#
Adds a new Amazon Web Services Region to the keyspace. You can add a new Region to a keyspace that is either a single or a multi-Region keyspace. Amazon Keyspaces is going to replicate all tables in the keyspace to the new Region. To successfully replicate all tables to the new Region, they must use client-side timestamps for conflict resolution. To enable client-side timestamps, specify
clientSideTimestamps.status = enabled
when invoking the API. For more information about client-side timestamps, see Client-side timestamps in Amazon Keyspaces in the Amazon Keyspaces Developer Guide.To add a Region to a keyspace using the
UpdateKeyspace
API, the IAM principal needs permissions for the following IAM actions:cassandra:Alter
cassandra:AlterMultiRegionResource
cassandra:Create
cassandra:CreateMultiRegionResource
cassandra:Select
cassandra:SelectMultiRegionResource
cassandra:Modify
cassandra:ModifyMultiRegionResource
If the keyspace contains a table that is configured in provisioned mode with auto scaling enabled, the following additional IAM actions need to be allowed.
application-autoscaling:RegisterScalableTarget
application-autoscaling:DeregisterScalableTarget
application-autoscaling:DescribeScalableTargets
application-autoscaling:PutScalingPolicy
application-autoscaling:DescribeScalingPolicies
To use the
UpdateKeyspace
API, the IAM principal also needs permissions to create a service-linked role with the following elements:iam:CreateServiceLinkedRole
- The action the principal can perform.arn:aws:iam::*:role/aws-service-role/replication.cassandra.amazonaws.com/AWSServiceRoleForKeyspacesReplication
- The resource that the action can be performed on.iam:AWSServiceName: replication.cassandra.amazonaws.com
- The only Amazon Web Services service that this role can be attached to is Amazon Keyspaces.
For more information, see Configure the IAM permissions required to add an Amazon Web Services Region to a keyspace in the Amazon Keyspaces Developer Guide.
See also: AWS API Documentation
Request Syntax
response = client.update_keyspace( keyspaceName='string', replicationSpecification={ 'replicationStrategy': 'SINGLE_REGION'|'MULTI_REGION', 'regionList': [ 'string', ] }, clientSideTimestamps={ 'status': 'ENABLED' } )
- Parameters:
keyspaceName (string) –
[REQUIRED]
The name of the keyspace.
replicationSpecification (dict) –
[REQUIRED]
The replication specification of the keyspace includes:
regionList
- up to six Amazon Web Services Regions where the keyspace is replicated in.replicationStrategy
- the required value isSINGLE_REGION
orMULTI_REGION
.
replicationStrategy (string) – [REQUIRED]
The
replicationStrategy
of a keyspace, the required value isSINGLE_REGION
orMULTI_REGION
.regionList (list) –
The
regionList
can contain up to six Amazon Web Services Regions where the keyspace is replicated in.(string) –
clientSideTimestamps (dict) –
The client-side timestamp setting of the table.
For more information, see How it works: Amazon Keyspaces client-side timestamps in the Amazon Keyspaces Developer Guide.
status (string) – [REQUIRED]
Shows how to enable client-side timestamps settings for the specified table.
- Return type:
dict
- Returns:
Response Syntax
{ 'resourceArn': 'string' }
Response Structure
(dict) –
resourceArn (string) –
The unique identifier of the keyspace in the format of an Amazon Resource Name (ARN).
Exceptions
Keyspaces.Client.exceptions.ValidationException
Keyspaces.Client.exceptions.ServiceQuotaExceededException
Keyspaces.Client.exceptions.InternalServerException
Keyspaces.Client.exceptions.ConflictException
Keyspaces.Client.exceptions.AccessDeniedException
Keyspaces.Client.exceptions.ResourceNotFoundException