/* * Copyright 2018-2023 Amazon.com, Inc. or its affiliates. All Rights Reserved. * * Licensed under the Apache License, Version 2.0 (the "License"). You may not use this file except in compliance with * the License. A copy of the License is located at * * http://aws.amazon.com/apache2.0 * * or in the "license" file accompanying this file. This file is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR * CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions * and limitations under the License. */ package com.amazonaws.services.keyspaces.model; import java.io.Serializable; import javax.annotation.Generated; import com.amazonaws.AmazonWebServiceRequest; /** * * @see AWS API * Documentation */ @Generated("com.amazonaws:aws-java-sdk-code-generator") public class CreateTableRequest extends com.amazonaws.AmazonWebServiceRequest implements Serializable, Cloneable { /** *

* The name of the keyspace that the table is going to be created in. *

*/ private String keyspaceName; /** *

* The name of the table. *

*/ private String tableName; /** *

* The schemaDefinition consists of the following parameters. *

*

* For each column to be created: *

* *

* The primary key of the table consists of the following columns: *

* */ private SchemaDefinition schemaDefinition; /** *

* This parameter allows to enter a description of the table. *

*/ private Comment comment; /** *

* Specifies the read/write throughput capacity mode for the table. The options are: *

* *

* The default is throughput_mode:PAY_PER_REQUEST. *

*

* For more information, see Read/write capacity * modes in the Amazon Keyspaces Developer Guide. *

*/ private CapacitySpecification capacitySpecification; /** *

* Specifies how the encryption key for encryption at rest is managed for the table. You can choose one of the * following KMS key (KMS key): *

* *

* The default is type:AWS_OWNED_KMS_KEY. *

*

* For more information, see Encryption at rest in the * Amazon Keyspaces Developer Guide. *

*/ private EncryptionSpecification encryptionSpecification; /** *

* Specifies if pointInTimeRecovery is enabled or disabled for the table. The options are: *

* *

* If it's not specified, the default is status=DISABLED. *

*

* For more information, see Point-in-time recovery * in the Amazon Keyspaces Developer Guide. *

*/ private PointInTimeRecovery pointInTimeRecovery; /** *

* Enables Time to Live custom settings for the table. The options are: *

* *

* The default is status:disabled. After ttl is enabled, you can't disable it for the * table. *

*

* For more information, see Expiring data * by using Amazon Keyspaces Time to Live (TTL) in the Amazon Keyspaces Developer Guide. *

*/ private TimeToLive ttl; /** *

* The default Time to Live setting in seconds for the table. *

*

* For more information, see Setting the default TTL value for a table in the Amazon Keyspaces Developer Guide. *

*/ private Integer defaultTimeToLive; /** *

* A list of key-value pair tags to be attached to the resource. *

*

* For more information, see Adding tags and labels to * Amazon Keyspaces resources in the Amazon Keyspaces Developer Guide. *

*/ private java.util.List tags; /** *

* Enables client-side timestamps for the table. By default, the setting is disabled. You can enable client-side * timestamps with the following option: *

* *

* Once client-side timestamps are enabled for a table, this setting cannot be disabled. *

*/ private ClientSideTimestamps clientSideTimestamps; /** *

* The name of the keyspace that the table is going to be created in. *

* * @param keyspaceName * The name of the keyspace that the table is going to be created in. */ public void setKeyspaceName(String keyspaceName) { this.keyspaceName = keyspaceName; } /** *

* The name of the keyspace that the table is going to be created in. *

* * @return The name of the keyspace that the table is going to be created in. */ public String getKeyspaceName() { return this.keyspaceName; } /** *

* The name of the keyspace that the table is going to be created in. *

* * @param keyspaceName * The name of the keyspace that the table is going to be created in. * @return Returns a reference to this object so that method calls can be chained together. */ public CreateTableRequest withKeyspaceName(String keyspaceName) { setKeyspaceName(keyspaceName); return this; } /** *

* The name of the table. *

* * @param tableName * The name of the table. */ public void setTableName(String tableName) { this.tableName = tableName; } /** *

* The name of the table. *

* * @return The name of the table. */ public String getTableName() { return this.tableName; } /** *

* The name of the table. *

* * @param tableName * The name of the table. * @return Returns a reference to this object so that method calls can be chained together. */ public CreateTableRequest withTableName(String tableName) { setTableName(tableName); return this; } /** *

* The schemaDefinition consists of the following parameters. *

*

* For each column to be created: *

* *

* The primary key of the table consists of the following columns: *

* * * @param schemaDefinition * The schemaDefinition consists of the following parameters.

*

* For each column to be created: *

* *

* The primary key of the table consists of the following columns: *

*