
com.alicloud.openservices.tablestore.model.SSESpecification Maven / Gradle / Ivy
Go to download
Show more of this group Show more artifacts with this name
Show all versions of tablestore Show documentation
Show all versions of tablestore Show documentation
Aliyun Open Services SDK for Java Copyright (C) Alibaba Cloud Computing All rights reserved. 版权所有
(C)阿里云计算有限公司 http://www.aliyun.com
The newest version!
package com.alicloud.openservices.tablestore.model;
import com.alicloud.openservices.tablestore.ClientException;
import com.alicloud.openservices.tablestore.core.utils.Jsonizable;
import com.alicloud.openservices.tablestore.core.utils.OptionalValue;
import com.alicloud.openservices.tablestore.core.utils.Preconditions;
public class SSESpecification implements Jsonizable {
/**
* Whether to enable server-side encryption
*/
private boolean enable = false;
/**
* When server-side encryption is enabled, this parameter is used to set the key type.
*/
private OptionalValue keyType = new OptionalValue("KeyType");
/**
* When server-side encryption is enabled and the key type is BYOK, this parameter is used to specify the id of the KMS user master key.
*/
private OptionalValue keyId = new OptionalValue("KeyId");
/**
* When server-side encryption is enabled and the key type is BYOK,
* you need to authorize Table Store to obtain a temporary access token for the specified KMS customer master key via STS service.
* This parameter is used to specify the global resource descriptor of the RAM role created for this purpose.
*/
private OptionalValue roleArn = new OptionalValue("RoleArn");
/**
* Construct an SSESpecification object.
* Note: The input enable must be false, because when enableStream is true, keyType must be specified.
* If you need to enable server-side encryption, please use the other two constructors.
* @param enable Must be false, indicating that server-side encryption is disabled
*/
public SSESpecification(boolean enable) {
if (enable) {
throw new ClientException("Key type is required when enable is true.");
}
setEnable(enable);
}
/**
* Construct an SSESpecification object.
* Note:
* 1. The input 'enable' must be true, because when 'enable' is false, the 'keyType' cannot be specified.
* If you need to set server-side encryption to off, please use the first constructor.
* 2. The input 'keyType' must be SSE_KMS_SERVICE, because when 'keyType' is SSE_BYOK, 'keyId' and 'roleArn' must be specified.
* If you need to set the encryption type to KMS managed service keys, please use the third constructor.
* @param enable Must be true, indicating that server-side encryption is enabled
* @param keyType Must be SSE_KMS_SERVICE, indicating the use of KMS managed service keys
*/
public SSESpecification(boolean enable, SSEKeyType keyType) {
if (!enable) {
throw new ClientException("Key type cannot be set when enable is false.");
}
if (keyType != SSEKeyType.SSE_KMS_SERVICE) {
throw new ClientException("Key id and role arn are required when key type is not SSE_KMS_SERVICE.");
}
setEnable(enable);
setKeyType(keyType);
}
/**
* Constructs an SSESpecification object.
* Note:
* 1. The input enable must be true, because when enable is false, keyType cannot be specified.
* If you need to set server-side encryption to off, please use the first constructor.
* 2. The input keyType must be SSE_BYOK, because when keyType is SSE_KMS_SERVICE, keyId and roleArn cannot be specified.
* If you need to set the encryption type to KMS user master key, please use the second constructor.
* @param enable Must be true, indicating that server-side encryption is enabled.
* @param keyType Must be SSE_BYOK, indicating the use of a KMS user master key, supporting user-defined key upload.
* @param keyId The id of the KMS user master key.
* @param roleArn The global resource descriptor authorizing Table Store to temporarily access keyId.
*/
public SSESpecification(boolean enable, SSEKeyType keyType, String keyId, String roleArn) {
if (!enable) {
throw new ClientException("Key type cannot be set when enable is false.");
}
if (keyType != SSEKeyType.SSE_BYOK) {
throw new ClientException("Key id and role arn cannot be set when key type is not SSE_BYOK.");
}
setEnable(enable);
setKeyType(keyType);
setKeyId(keyId);
setRoleArn(roleArn);
}
/**
* Returns whether server-side encryption is enabled
*
* @return enable
*/
public boolean isEnable() {
return enable;
}
/**
* Set whether to enable server-side encryption
*
* @param enable
*/
public void setEnable(boolean enable) {
this.enable = enable;
}
/**
* Get the keyType parameter
*
* @return keyType
*/
public SSEKeyType getKeyType() {
return keyType.getValue();
}
/**
* Set the keyType parameter
*
* @param keyType
*/
public void setKeyType(SSEKeyType keyType) {
this.keyType.setValue(keyType);
}
/**
* Get the keyId parameter
*
* @return keyId
*/
public String getKeyId() {
return keyId.getValue();
}
/**
* Set the keyId parameter
*
* @param keyId
*/
public void setKeyId(String keyId) {
this.keyId.setValue(keyId);
}
/**
* Get the roleArn parameter
*
* @return roleArn
*/
public String getRoleArn() {
return roleArn.getValue();
}
/**
* Set the roleArn parameter
*
* @param roleArn
*/
public void setRoleArn(String roleArn) {
this.roleArn.setValue(roleArn);
}
@Override
public String jsonize() {
StringBuilder sb = new StringBuilder();
jsonize(sb, "\n ");
return sb.toString();
}
@Override
public void jsonize(StringBuilder sb, String newline) {
sb.append('{');
sb.append(newline);
sb.append("\"Enable\": ");
sb.append(enable);
if (keyType.isValueSet()) {
sb.append(",");
sb.append(newline);
sb.append("\"KeyType\": ");
sb.append(keyType.getValue().toString());
sb.append(newline);
}
if (keyId.isValueSet()) {
sb.append(",");
sb.append(newline);
sb.append("\"KeyId\": ");
sb.append(keyId.getValue());
sb.append(newline);
}
if (roleArn.isValueSet()) {
sb.append(",");
sb.append(newline);
sb.append("\"RoleArn\": ");
sb.append(roleArn.getValue());
sb.append(newline);
}
sb.append("}");
}
@Override
public String toString() {
StringBuilder sb = new StringBuilder();
sb.append("Enable: ");
sb.append(enable);
if (keyType.isValueSet()) {
sb.append(", KeyType: ");
sb.append(keyType.getValue().toString());
}
if (keyId.isValueSet()) {
sb.append(", KeyId: ");
sb.append(keyId.getValue());
}
if (roleArn.isValueSet()) {
sb.append(", RoleArn: ");
sb.append(roleArn.getValue());
}
return sb.toString();
}
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy