All Downloads are FREE. Search and download functionalities are using the official Maven repository.

software.amazon.awscdk.services.glue.CfnDataCatalogEncryptionSettings Maven / Gradle / Ivy

package software.amazon.awscdk.services.glue;

/**
 * A CloudFormation `AWS::Glue::DataCatalogEncryptionSettings`.
 * 

* Sets the security configuration for a specified catalog. After the configuration has been set, the specified encryption is applied to every catalog write thereafter. *

* Example: *

*

 * // The code below shows an example of how to instantiate this type.
 * // The values are placeholders you should change.
 * import software.amazon.awscdk.services.glue.*;
 * CfnDataCatalogEncryptionSettings cfnDataCatalogEncryptionSettings = CfnDataCatalogEncryptionSettings.Builder.create(this, "MyCfnDataCatalogEncryptionSettings")
 *         .catalogId("catalogId")
 *         .dataCatalogEncryptionSettings(DataCatalogEncryptionSettingsProperty.builder()
 *                 .connectionPasswordEncryption(ConnectionPasswordEncryptionProperty.builder()
 *                         .kmsKeyId("kmsKeyId")
 *                         .returnConnectionPasswordEncrypted(false)
 *                         .build())
 *                 .encryptionAtRest(EncryptionAtRestProperty.builder()
 *                         .catalogEncryptionMode("catalogEncryptionMode")
 *                         .sseAwsKmsKeyId("sseAwsKmsKeyId")
 *                         .build())
 *                 .build())
 *         .build();
 * 
*/ @javax.annotation.Generated(value = "jsii-pacmak/1.60.0 (build ebcefe6)", date = "2022-06-22T23:27:57.626Z") @software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Stable) @software.amazon.jsii.Jsii(module = software.amazon.awscdk.services.glue.$Module.class, fqn = "@aws-cdk/aws-glue.CfnDataCatalogEncryptionSettings") public class CfnDataCatalogEncryptionSettings extends software.amazon.awscdk.core.CfnResource implements software.amazon.awscdk.core.IInspectable { protected CfnDataCatalogEncryptionSettings(final software.amazon.jsii.JsiiObjectRef objRef) { super(objRef); } protected CfnDataCatalogEncryptionSettings(final software.amazon.jsii.JsiiObject.InitializationMode initializationMode) { super(initializationMode); } static { CFN_RESOURCE_TYPE_NAME = software.amazon.jsii.JsiiObject.jsiiStaticGet(software.amazon.awscdk.services.glue.CfnDataCatalogEncryptionSettings.class, "CFN_RESOURCE_TYPE_NAME", software.amazon.jsii.NativeType.forClass(java.lang.String.class)); } /** * Create a new `AWS::Glue::DataCatalogEncryptionSettings`. *

* @param scope - scope in which this resource is defined. This parameter is required. * @param id - scoped id of the resource. This parameter is required. * @param props - resource properties. This parameter is required. */ @software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Stable) public CfnDataCatalogEncryptionSettings(final @org.jetbrains.annotations.NotNull software.amazon.awscdk.core.Construct scope, final @org.jetbrains.annotations.NotNull java.lang.String id, final @org.jetbrains.annotations.NotNull software.amazon.awscdk.services.glue.CfnDataCatalogEncryptionSettingsProps props) { super(software.amazon.jsii.JsiiObject.InitializationMode.JSII); software.amazon.jsii.JsiiEngine.getInstance().createNewObject(this, new Object[] { java.util.Objects.requireNonNull(scope, "scope is required"), java.util.Objects.requireNonNull(id, "id is required"), java.util.Objects.requireNonNull(props, "props is required") }); } /** * Examines the CloudFormation resource and discloses attributes. *

* @param inspector - tree inspector to collect and process attributes. This parameter is required. */ @software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Stable) @Override public void inspect(final @org.jetbrains.annotations.NotNull software.amazon.awscdk.core.TreeInspector inspector) { software.amazon.jsii.Kernel.call(this, "inspect", software.amazon.jsii.NativeType.VOID, new Object[] { java.util.Objects.requireNonNull(inspector, "inspector is required") }); } /** * @param props This parameter is required. */ @software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Stable) @Override protected @org.jetbrains.annotations.NotNull java.util.Map renderProperties(final @org.jetbrains.annotations.NotNull java.util.Map props) { return java.util.Collections.unmodifiableMap(software.amazon.jsii.Kernel.call(this, "renderProperties", software.amazon.jsii.NativeType.mapOf(software.amazon.jsii.NativeType.forClass(java.lang.Object.class)), new Object[] { java.util.Objects.requireNonNull(props, "props is required") })); } /** * The CloudFormation resource type name for this resource class. */ @software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Stable) public final static java.lang.String CFN_RESOURCE_TYPE_NAME; /** */ @Override @software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Stable) protected @org.jetbrains.annotations.NotNull java.util.Map getCfnProperties() { return java.util.Collections.unmodifiableMap(software.amazon.jsii.Kernel.get(this, "cfnProperties", software.amazon.jsii.NativeType.mapOf(software.amazon.jsii.NativeType.forClass(java.lang.Object.class)))); } /** * The ID of the Data Catalog in which the settings are created. */ @software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Stable) public @org.jetbrains.annotations.NotNull java.lang.String getCatalogId() { return software.amazon.jsii.Kernel.get(this, "catalogId", software.amazon.jsii.NativeType.forClass(java.lang.String.class)); } /** * The ID of the Data Catalog in which the settings are created. */ @software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Stable) public void setCatalogId(final @org.jetbrains.annotations.NotNull java.lang.String value) { software.amazon.jsii.Kernel.set(this, "catalogId", java.util.Objects.requireNonNull(value, "catalogId is required")); } /** * Contains configuration information for maintaining Data Catalog security. */ @software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Stable) public @org.jetbrains.annotations.NotNull java.lang.Object getDataCatalogEncryptionSettings() { return software.amazon.jsii.Kernel.get(this, "dataCatalogEncryptionSettings", software.amazon.jsii.NativeType.forClass(java.lang.Object.class)); } /** * Contains configuration information for maintaining Data Catalog security. */ @software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Stable) public void setDataCatalogEncryptionSettings(final @org.jetbrains.annotations.NotNull software.amazon.awscdk.core.IResolvable value) { software.amazon.jsii.Kernel.set(this, "dataCatalogEncryptionSettings", java.util.Objects.requireNonNull(value, "dataCatalogEncryptionSettings is required")); } /** * Contains configuration information for maintaining Data Catalog security. */ @software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Stable) public void setDataCatalogEncryptionSettings(final @org.jetbrains.annotations.NotNull software.amazon.awscdk.services.glue.CfnDataCatalogEncryptionSettings.DataCatalogEncryptionSettingsProperty value) { software.amazon.jsii.Kernel.set(this, "dataCatalogEncryptionSettings", java.util.Objects.requireNonNull(value, "dataCatalogEncryptionSettings is required")); } /** * The data structure used by the Data Catalog to encrypt the password as part of `CreateConnection` or `UpdateConnection` and store it in the `ENCRYPTED_PASSWORD` field in the connection properties. *

* You can enable catalog encryption or only password encryption. *

* When a CreationConnection request arrives containing a password, the Data Catalog first encrypts the password using your AWS KMS key. It then encrypts the whole connection object again if catalog encryption is also enabled. *

* This encryption requires that you set AWS KMS key permissions to enable or restrict access on the password key according to your security requirements. For example, you might want only administrators to have decrypt permission on the password key. *

* Example: *

*

     * // The code below shows an example of how to instantiate this type.
     * // The values are placeholders you should change.
     * import software.amazon.awscdk.services.glue.*;
     * ConnectionPasswordEncryptionProperty connectionPasswordEncryptionProperty = ConnectionPasswordEncryptionProperty.builder()
     *         .kmsKeyId("kmsKeyId")
     *         .returnConnectionPasswordEncrypted(false)
     *         .build();
     * 
*/ @software.amazon.jsii.Jsii(module = software.amazon.awscdk.services.glue.$Module.class, fqn = "@aws-cdk/aws-glue.CfnDataCatalogEncryptionSettings.ConnectionPasswordEncryptionProperty") @software.amazon.jsii.Jsii.Proxy(ConnectionPasswordEncryptionProperty.Jsii$Proxy.class) @software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Stable) public static interface ConnectionPasswordEncryptionProperty extends software.amazon.jsii.JsiiSerializable { /** * An AWS KMS key that is used to encrypt the connection password. *

* If connection password protection is enabled, the caller of CreateConnection and UpdateConnection needs at least kms:Encrypt permission on the specified AWS KMS key, to encrypt passwords before storing them in the Data Catalog. You can set the decrypt permission to enable or restrict access on the password key according to your security requirements. */ @software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Stable) default @org.jetbrains.annotations.Nullable java.lang.String getKmsKeyId() { return null; } /** * When the `ReturnConnectionPasswordEncrypted` flag is set to "true", passwords remain encrypted in the responses of `GetConnection` and `GetConnections` . *

* This encryption takes effect independently from catalog encryption. */ @software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Stable) default @org.jetbrains.annotations.Nullable java.lang.Object getReturnConnectionPasswordEncrypted() { return null; } /** * @return a {@link Builder} of {@link ConnectionPasswordEncryptionProperty} */ @software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Stable) static Builder builder() { return new Builder(); } /** * A builder for {@link ConnectionPasswordEncryptionProperty} */ @software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Stable) public static final class Builder implements software.amazon.jsii.Builder { java.lang.String kmsKeyId; java.lang.Object returnConnectionPasswordEncrypted; /** * Sets the value of {@link ConnectionPasswordEncryptionProperty#getKmsKeyId} * @param kmsKeyId An AWS KMS key that is used to encrypt the connection password. * If connection password protection is enabled, the caller of CreateConnection and UpdateConnection needs at least kms:Encrypt permission on the specified AWS KMS key, to encrypt passwords before storing them in the Data Catalog. You can set the decrypt permission to enable or restrict access on the password key according to your security requirements. * @return {@code this} */ @software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Stable) public Builder kmsKeyId(java.lang.String kmsKeyId) { this.kmsKeyId = kmsKeyId; return this; } /** * Sets the value of {@link ConnectionPasswordEncryptionProperty#getReturnConnectionPasswordEncrypted} * @param returnConnectionPasswordEncrypted When the `ReturnConnectionPasswordEncrypted` flag is set to "true", passwords remain encrypted in the responses of `GetConnection` and `GetConnections` . * This encryption takes effect independently from catalog encryption. * @return {@code this} */ @software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Stable) public Builder returnConnectionPasswordEncrypted(java.lang.Boolean returnConnectionPasswordEncrypted) { this.returnConnectionPasswordEncrypted = returnConnectionPasswordEncrypted; return this; } /** * Sets the value of {@link ConnectionPasswordEncryptionProperty#getReturnConnectionPasswordEncrypted} * @param returnConnectionPasswordEncrypted When the `ReturnConnectionPasswordEncrypted` flag is set to "true", passwords remain encrypted in the responses of `GetConnection` and `GetConnections` . * This encryption takes effect independently from catalog encryption. * @return {@code this} */ @software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Stable) public Builder returnConnectionPasswordEncrypted(software.amazon.awscdk.core.IResolvable returnConnectionPasswordEncrypted) { this.returnConnectionPasswordEncrypted = returnConnectionPasswordEncrypted; return this; } /** * Builds the configured instance. * @return a new instance of {@link ConnectionPasswordEncryptionProperty} * @throws NullPointerException if any required attribute was not provided */ @software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Stable) @Override public ConnectionPasswordEncryptionProperty build() { return new Jsii$Proxy(this); } } /** * An implementation for {@link ConnectionPasswordEncryptionProperty} */ @software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Stable) @software.amazon.jsii.Internal final class Jsii$Proxy extends software.amazon.jsii.JsiiObject implements ConnectionPasswordEncryptionProperty { private final java.lang.String kmsKeyId; private final java.lang.Object returnConnectionPasswordEncrypted; /** * Constructor that initializes the object based on values retrieved from the JsiiObject. * @param objRef Reference to the JSII managed object. */ protected Jsii$Proxy(final software.amazon.jsii.JsiiObjectRef objRef) { super(objRef); this.kmsKeyId = software.amazon.jsii.Kernel.get(this, "kmsKeyId", software.amazon.jsii.NativeType.forClass(java.lang.String.class)); this.returnConnectionPasswordEncrypted = software.amazon.jsii.Kernel.get(this, "returnConnectionPasswordEncrypted", software.amazon.jsii.NativeType.forClass(java.lang.Object.class)); } /** * Constructor that initializes the object based on literal property values passed by the {@link Builder}. */ protected Jsii$Proxy(final Builder builder) { super(software.amazon.jsii.JsiiObject.InitializationMode.JSII); this.kmsKeyId = builder.kmsKeyId; this.returnConnectionPasswordEncrypted = builder.returnConnectionPasswordEncrypted; } @Override public final java.lang.String getKmsKeyId() { return this.kmsKeyId; } @Override public final java.lang.Object getReturnConnectionPasswordEncrypted() { return this.returnConnectionPasswordEncrypted; } @Override @software.amazon.jsii.Internal public com.fasterxml.jackson.databind.JsonNode $jsii$toJson() { final com.fasterxml.jackson.databind.ObjectMapper om = software.amazon.jsii.JsiiObjectMapper.INSTANCE; final com.fasterxml.jackson.databind.node.ObjectNode data = com.fasterxml.jackson.databind.node.JsonNodeFactory.instance.objectNode(); if (this.getKmsKeyId() != null) { data.set("kmsKeyId", om.valueToTree(this.getKmsKeyId())); } if (this.getReturnConnectionPasswordEncrypted() != null) { data.set("returnConnectionPasswordEncrypted", om.valueToTree(this.getReturnConnectionPasswordEncrypted())); } final com.fasterxml.jackson.databind.node.ObjectNode struct = com.fasterxml.jackson.databind.node.JsonNodeFactory.instance.objectNode(); struct.set("fqn", om.valueToTree("@aws-cdk/aws-glue.CfnDataCatalogEncryptionSettings.ConnectionPasswordEncryptionProperty")); struct.set("data", data); final com.fasterxml.jackson.databind.node.ObjectNode obj = com.fasterxml.jackson.databind.node.JsonNodeFactory.instance.objectNode(); obj.set("$jsii.struct", struct); return obj; } @Override public final boolean equals(final Object o) { if (this == o) return true; if (o == null || getClass() != o.getClass()) return false; ConnectionPasswordEncryptionProperty.Jsii$Proxy that = (ConnectionPasswordEncryptionProperty.Jsii$Proxy) o; if (this.kmsKeyId != null ? !this.kmsKeyId.equals(that.kmsKeyId) : that.kmsKeyId != null) return false; return this.returnConnectionPasswordEncrypted != null ? this.returnConnectionPasswordEncrypted.equals(that.returnConnectionPasswordEncrypted) : that.returnConnectionPasswordEncrypted == null; } @Override public final int hashCode() { int result = this.kmsKeyId != null ? this.kmsKeyId.hashCode() : 0; result = 31 * result + (this.returnConnectionPasswordEncrypted != null ? this.returnConnectionPasswordEncrypted.hashCode() : 0); return result; } } } /** * Contains configuration information for maintaining Data Catalog security. *

* Example: *

*

     * // The code below shows an example of how to instantiate this type.
     * // The values are placeholders you should change.
     * import software.amazon.awscdk.services.glue.*;
     * DataCatalogEncryptionSettingsProperty dataCatalogEncryptionSettingsProperty = DataCatalogEncryptionSettingsProperty.builder()
     *         .connectionPasswordEncryption(ConnectionPasswordEncryptionProperty.builder()
     *                 .kmsKeyId("kmsKeyId")
     *                 .returnConnectionPasswordEncrypted(false)
     *                 .build())
     *         .encryptionAtRest(EncryptionAtRestProperty.builder()
     *                 .catalogEncryptionMode("catalogEncryptionMode")
     *                 .sseAwsKmsKeyId("sseAwsKmsKeyId")
     *                 .build())
     *         .build();
     * 
*/ @software.amazon.jsii.Jsii(module = software.amazon.awscdk.services.glue.$Module.class, fqn = "@aws-cdk/aws-glue.CfnDataCatalogEncryptionSettings.DataCatalogEncryptionSettingsProperty") @software.amazon.jsii.Jsii.Proxy(DataCatalogEncryptionSettingsProperty.Jsii$Proxy.class) @software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Stable) public static interface DataCatalogEncryptionSettingsProperty extends software.amazon.jsii.JsiiSerializable { /** * When connection password protection is enabled, the Data Catalog uses a customer-provided key to encrypt the password as part of `CreateConnection` or `UpdateConnection` and store it in the `ENCRYPTED_PASSWORD` field in the connection properties. *

* You can enable catalog encryption or only password encryption. */ @software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Stable) default @org.jetbrains.annotations.Nullable java.lang.Object getConnectionPasswordEncryption() { return null; } /** * Specifies the encryption-at-rest configuration for the Data Catalog. */ @software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Stable) default @org.jetbrains.annotations.Nullable java.lang.Object getEncryptionAtRest() { return null; } /** * @return a {@link Builder} of {@link DataCatalogEncryptionSettingsProperty} */ @software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Stable) static Builder builder() { return new Builder(); } /** * A builder for {@link DataCatalogEncryptionSettingsProperty} */ @software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Stable) public static final class Builder implements software.amazon.jsii.Builder { java.lang.Object connectionPasswordEncryption; java.lang.Object encryptionAtRest; /** * Sets the value of {@link DataCatalogEncryptionSettingsProperty#getConnectionPasswordEncryption} * @param connectionPasswordEncryption When connection password protection is enabled, the Data Catalog uses a customer-provided key to encrypt the password as part of `CreateConnection` or `UpdateConnection` and store it in the `ENCRYPTED_PASSWORD` field in the connection properties. * You can enable catalog encryption or only password encryption. * @return {@code this} */ @software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Stable) public Builder connectionPasswordEncryption(software.amazon.awscdk.core.IResolvable connectionPasswordEncryption) { this.connectionPasswordEncryption = connectionPasswordEncryption; return this; } /** * Sets the value of {@link DataCatalogEncryptionSettingsProperty#getConnectionPasswordEncryption} * @param connectionPasswordEncryption When connection password protection is enabled, the Data Catalog uses a customer-provided key to encrypt the password as part of `CreateConnection` or `UpdateConnection` and store it in the `ENCRYPTED_PASSWORD` field in the connection properties. * You can enable catalog encryption or only password encryption. * @return {@code this} */ @software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Stable) public Builder connectionPasswordEncryption(software.amazon.awscdk.services.glue.CfnDataCatalogEncryptionSettings.ConnectionPasswordEncryptionProperty connectionPasswordEncryption) { this.connectionPasswordEncryption = connectionPasswordEncryption; return this; } /** * Sets the value of {@link DataCatalogEncryptionSettingsProperty#getEncryptionAtRest} * @param encryptionAtRest Specifies the encryption-at-rest configuration for the Data Catalog. * @return {@code this} */ @software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Stable) public Builder encryptionAtRest(software.amazon.awscdk.core.IResolvable encryptionAtRest) { this.encryptionAtRest = encryptionAtRest; return this; } /** * Sets the value of {@link DataCatalogEncryptionSettingsProperty#getEncryptionAtRest} * @param encryptionAtRest Specifies the encryption-at-rest configuration for the Data Catalog. * @return {@code this} */ @software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Stable) public Builder encryptionAtRest(software.amazon.awscdk.services.glue.CfnDataCatalogEncryptionSettings.EncryptionAtRestProperty encryptionAtRest) { this.encryptionAtRest = encryptionAtRest; return this; } /** * Builds the configured instance. * @return a new instance of {@link DataCatalogEncryptionSettingsProperty} * @throws NullPointerException if any required attribute was not provided */ @software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Stable) @Override public DataCatalogEncryptionSettingsProperty build() { return new Jsii$Proxy(this); } } /** * An implementation for {@link DataCatalogEncryptionSettingsProperty} */ @software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Stable) @software.amazon.jsii.Internal final class Jsii$Proxy extends software.amazon.jsii.JsiiObject implements DataCatalogEncryptionSettingsProperty { private final java.lang.Object connectionPasswordEncryption; private final java.lang.Object encryptionAtRest; /** * Constructor that initializes the object based on values retrieved from the JsiiObject. * @param objRef Reference to the JSII managed object. */ protected Jsii$Proxy(final software.amazon.jsii.JsiiObjectRef objRef) { super(objRef); this.connectionPasswordEncryption = software.amazon.jsii.Kernel.get(this, "connectionPasswordEncryption", software.amazon.jsii.NativeType.forClass(java.lang.Object.class)); this.encryptionAtRest = software.amazon.jsii.Kernel.get(this, "encryptionAtRest", software.amazon.jsii.NativeType.forClass(java.lang.Object.class)); } /** * Constructor that initializes the object based on literal property values passed by the {@link Builder}. */ protected Jsii$Proxy(final Builder builder) { super(software.amazon.jsii.JsiiObject.InitializationMode.JSII); this.connectionPasswordEncryption = builder.connectionPasswordEncryption; this.encryptionAtRest = builder.encryptionAtRest; } @Override public final java.lang.Object getConnectionPasswordEncryption() { return this.connectionPasswordEncryption; } @Override public final java.lang.Object getEncryptionAtRest() { return this.encryptionAtRest; } @Override @software.amazon.jsii.Internal public com.fasterxml.jackson.databind.JsonNode $jsii$toJson() { final com.fasterxml.jackson.databind.ObjectMapper om = software.amazon.jsii.JsiiObjectMapper.INSTANCE; final com.fasterxml.jackson.databind.node.ObjectNode data = com.fasterxml.jackson.databind.node.JsonNodeFactory.instance.objectNode(); if (this.getConnectionPasswordEncryption() != null) { data.set("connectionPasswordEncryption", om.valueToTree(this.getConnectionPasswordEncryption())); } if (this.getEncryptionAtRest() != null) { data.set("encryptionAtRest", om.valueToTree(this.getEncryptionAtRest())); } final com.fasterxml.jackson.databind.node.ObjectNode struct = com.fasterxml.jackson.databind.node.JsonNodeFactory.instance.objectNode(); struct.set("fqn", om.valueToTree("@aws-cdk/aws-glue.CfnDataCatalogEncryptionSettings.DataCatalogEncryptionSettingsProperty")); struct.set("data", data); final com.fasterxml.jackson.databind.node.ObjectNode obj = com.fasterxml.jackson.databind.node.JsonNodeFactory.instance.objectNode(); obj.set("$jsii.struct", struct); return obj; } @Override public final boolean equals(final Object o) { if (this == o) return true; if (o == null || getClass() != o.getClass()) return false; DataCatalogEncryptionSettingsProperty.Jsii$Proxy that = (DataCatalogEncryptionSettingsProperty.Jsii$Proxy) o; if (this.connectionPasswordEncryption != null ? !this.connectionPasswordEncryption.equals(that.connectionPasswordEncryption) : that.connectionPasswordEncryption != null) return false; return this.encryptionAtRest != null ? this.encryptionAtRest.equals(that.encryptionAtRest) : that.encryptionAtRest == null; } @Override public final int hashCode() { int result = this.connectionPasswordEncryption != null ? this.connectionPasswordEncryption.hashCode() : 0; result = 31 * result + (this.encryptionAtRest != null ? this.encryptionAtRest.hashCode() : 0); return result; } } } /** * Specifies the encryption-at-rest configuration for the Data Catalog. *

* Example: *

*

     * // The code below shows an example of how to instantiate this type.
     * // The values are placeholders you should change.
     * import software.amazon.awscdk.services.glue.*;
     * EncryptionAtRestProperty encryptionAtRestProperty = EncryptionAtRestProperty.builder()
     *         .catalogEncryptionMode("catalogEncryptionMode")
     *         .sseAwsKmsKeyId("sseAwsKmsKeyId")
     *         .build();
     * 
*/ @software.amazon.jsii.Jsii(module = software.amazon.awscdk.services.glue.$Module.class, fqn = "@aws-cdk/aws-glue.CfnDataCatalogEncryptionSettings.EncryptionAtRestProperty") @software.amazon.jsii.Jsii.Proxy(EncryptionAtRestProperty.Jsii$Proxy.class) @software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Stable) public static interface EncryptionAtRestProperty extends software.amazon.jsii.JsiiSerializable { /** * The encryption-at-rest mode for encrypting Data Catalog data. */ @software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Stable) default @org.jetbrains.annotations.Nullable java.lang.String getCatalogEncryptionMode() { return null; } /** * The ID of the AWS KMS key to use for encryption at rest. */ @software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Stable) default @org.jetbrains.annotations.Nullable java.lang.String getSseAwsKmsKeyId() { return null; } /** * @return a {@link Builder} of {@link EncryptionAtRestProperty} */ @software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Stable) static Builder builder() { return new Builder(); } /** * A builder for {@link EncryptionAtRestProperty} */ @software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Stable) public static final class Builder implements software.amazon.jsii.Builder { java.lang.String catalogEncryptionMode; java.lang.String sseAwsKmsKeyId; /** * Sets the value of {@link EncryptionAtRestProperty#getCatalogEncryptionMode} * @param catalogEncryptionMode The encryption-at-rest mode for encrypting Data Catalog data. * @return {@code this} */ @software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Stable) public Builder catalogEncryptionMode(java.lang.String catalogEncryptionMode) { this.catalogEncryptionMode = catalogEncryptionMode; return this; } /** * Sets the value of {@link EncryptionAtRestProperty#getSseAwsKmsKeyId} * @param sseAwsKmsKeyId The ID of the AWS KMS key to use for encryption at rest. * @return {@code this} */ @software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Stable) public Builder sseAwsKmsKeyId(java.lang.String sseAwsKmsKeyId) { this.sseAwsKmsKeyId = sseAwsKmsKeyId; return this; } /** * Builds the configured instance. * @return a new instance of {@link EncryptionAtRestProperty} * @throws NullPointerException if any required attribute was not provided */ @software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Stable) @Override public EncryptionAtRestProperty build() { return new Jsii$Proxy(this); } } /** * An implementation for {@link EncryptionAtRestProperty} */ @software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Stable) @software.amazon.jsii.Internal final class Jsii$Proxy extends software.amazon.jsii.JsiiObject implements EncryptionAtRestProperty { private final java.lang.String catalogEncryptionMode; private final java.lang.String sseAwsKmsKeyId; /** * Constructor that initializes the object based on values retrieved from the JsiiObject. * @param objRef Reference to the JSII managed object. */ protected Jsii$Proxy(final software.amazon.jsii.JsiiObjectRef objRef) { super(objRef); this.catalogEncryptionMode = software.amazon.jsii.Kernel.get(this, "catalogEncryptionMode", software.amazon.jsii.NativeType.forClass(java.lang.String.class)); this.sseAwsKmsKeyId = software.amazon.jsii.Kernel.get(this, "sseAwsKmsKeyId", software.amazon.jsii.NativeType.forClass(java.lang.String.class)); } /** * Constructor that initializes the object based on literal property values passed by the {@link Builder}. */ protected Jsii$Proxy(final Builder builder) { super(software.amazon.jsii.JsiiObject.InitializationMode.JSII); this.catalogEncryptionMode = builder.catalogEncryptionMode; this.sseAwsKmsKeyId = builder.sseAwsKmsKeyId; } @Override public final java.lang.String getCatalogEncryptionMode() { return this.catalogEncryptionMode; } @Override public final java.lang.String getSseAwsKmsKeyId() { return this.sseAwsKmsKeyId; } @Override @software.amazon.jsii.Internal public com.fasterxml.jackson.databind.JsonNode $jsii$toJson() { final com.fasterxml.jackson.databind.ObjectMapper om = software.amazon.jsii.JsiiObjectMapper.INSTANCE; final com.fasterxml.jackson.databind.node.ObjectNode data = com.fasterxml.jackson.databind.node.JsonNodeFactory.instance.objectNode(); if (this.getCatalogEncryptionMode() != null) { data.set("catalogEncryptionMode", om.valueToTree(this.getCatalogEncryptionMode())); } if (this.getSseAwsKmsKeyId() != null) { data.set("sseAwsKmsKeyId", om.valueToTree(this.getSseAwsKmsKeyId())); } final com.fasterxml.jackson.databind.node.ObjectNode struct = com.fasterxml.jackson.databind.node.JsonNodeFactory.instance.objectNode(); struct.set("fqn", om.valueToTree("@aws-cdk/aws-glue.CfnDataCatalogEncryptionSettings.EncryptionAtRestProperty")); struct.set("data", data); final com.fasterxml.jackson.databind.node.ObjectNode obj = com.fasterxml.jackson.databind.node.JsonNodeFactory.instance.objectNode(); obj.set("$jsii.struct", struct); return obj; } @Override public final boolean equals(final Object o) { if (this == o) return true; if (o == null || getClass() != o.getClass()) return false; EncryptionAtRestProperty.Jsii$Proxy that = (EncryptionAtRestProperty.Jsii$Proxy) o; if (this.catalogEncryptionMode != null ? !this.catalogEncryptionMode.equals(that.catalogEncryptionMode) : that.catalogEncryptionMode != null) return false; return this.sseAwsKmsKeyId != null ? this.sseAwsKmsKeyId.equals(that.sseAwsKmsKeyId) : that.sseAwsKmsKeyId == null; } @Override public final int hashCode() { int result = this.catalogEncryptionMode != null ? this.catalogEncryptionMode.hashCode() : 0; result = 31 * result + (this.sseAwsKmsKeyId != null ? this.sseAwsKmsKeyId.hashCode() : 0); return result; } } } /** * A fluent builder for {@link software.amazon.awscdk.services.glue.CfnDataCatalogEncryptionSettings}. */ @software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Stable) public static final class Builder implements software.amazon.jsii.Builder { /** * @return a new instance of {@link Builder}. * @param scope - scope in which this resource is defined. This parameter is required. * @param id - scoped id of the resource. This parameter is required. */ @software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Stable) public static Builder create(final software.amazon.awscdk.core.Construct scope, final java.lang.String id) { return new Builder(scope, id); } private final software.amazon.awscdk.core.Construct scope; private final java.lang.String id; private final software.amazon.awscdk.services.glue.CfnDataCatalogEncryptionSettingsProps.Builder props; private Builder(final software.amazon.awscdk.core.Construct scope, final java.lang.String id) { this.scope = scope; this.id = id; this.props = new software.amazon.awscdk.services.glue.CfnDataCatalogEncryptionSettingsProps.Builder(); } /** * The ID of the Data Catalog in which the settings are created. *

* @return {@code this} * @param catalogId The ID of the Data Catalog in which the settings are created. This parameter is required. */ @software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Stable) public Builder catalogId(final java.lang.String catalogId) { this.props.catalogId(catalogId); return this; } /** * Contains configuration information for maintaining Data Catalog security. *

* @return {@code this} * @param dataCatalogEncryptionSettings Contains configuration information for maintaining Data Catalog security. This parameter is required. */ @software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Stable) public Builder dataCatalogEncryptionSettings(final software.amazon.awscdk.core.IResolvable dataCatalogEncryptionSettings) { this.props.dataCatalogEncryptionSettings(dataCatalogEncryptionSettings); return this; } /** * Contains configuration information for maintaining Data Catalog security. *

* @return {@code this} * @param dataCatalogEncryptionSettings Contains configuration information for maintaining Data Catalog security. This parameter is required. */ @software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Stable) public Builder dataCatalogEncryptionSettings(final software.amazon.awscdk.services.glue.CfnDataCatalogEncryptionSettings.DataCatalogEncryptionSettingsProperty dataCatalogEncryptionSettings) { this.props.dataCatalogEncryptionSettings(dataCatalogEncryptionSettings); return this; } /** * @returns a newly built instance of {@link software.amazon.awscdk.services.glue.CfnDataCatalogEncryptionSettings}. */ @software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Stable) @Override public software.amazon.awscdk.services.glue.CfnDataCatalogEncryptionSettings build() { return new software.amazon.awscdk.services.glue.CfnDataCatalogEncryptionSettings( this.scope, this.id, this.props.build() ); } } }





© 2015 - 2025 Weber Informatics LLC | Privacy Policy