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

software.amazon.awsconstructs.services.s3sqs.S3ToSqsProps Maven / Gradle / Ivy

package software.amazon.awsconstructs.services.s3sqs;

/**
 */
@javax.annotation.Generated(value = "jsii-pacmak/1.54.0 (build b1b977a)", date = "2022-03-01T13:38:18.398Z")
@software.amazon.jsii.Jsii(module = software.amazon.awsconstructs.services.s3sqs.$Module.class, fqn = "@aws-solutions-constructs/aws-s3-sqs.S3ToSqsProps")
@software.amazon.jsii.Jsii.Proxy(S3ToSqsProps.Jsii$Proxy.class)
public interface S3ToSqsProps extends software.amazon.jsii.JsiiSerializable {

    /**
     * Optional user provided props to override the default props for the S3 Bucket.
     * 

* Default: - Default props are used */ default @org.jetbrains.annotations.Nullable software.amazon.awscdk.services.s3.BucketProps getBucketProps() { return null; } /** * Optional user provided properties for the dead letter queue. *

* Default: - Default props are used */ default @org.jetbrains.annotations.Nullable software.amazon.awscdk.services.sqs.QueueProps getDeadLetterQueueProps() { return null; } /** * Whether to deploy a secondary queue to be used as a dead letter queue. *

* Default: - true. */ default @org.jetbrains.annotations.Nullable java.lang.Boolean getDeployDeadLetterQueue() { return null; } /** * Use a KMS Key, either managed by this CDK app, or imported. *

* If importing an encryption key, it must be specified in * the encryptionKey property for this construct. *

* Default: - true (encryption enabled, managed by this CDK app). */ default @org.jetbrains.annotations.Nullable java.lang.Boolean getEnableEncryptionWithCustomerManagedKey() { return null; } /** * Optional imported encryption key to encrypt the SQS queue. *

* Default: - not specified. */ default @org.jetbrains.annotations.Nullable software.amazon.awscdk.services.kms.Key getEncryptionKey() { return null; } /** * Optional user provided props to override the default props for the encryption key. *

* Default: - Default props are used. */ default @org.jetbrains.annotations.Nullable software.amazon.awscdk.services.kms.KeyProps getEncryptionKeyProps() { return null; } /** * Existing instance of S3 Bucket object, providing both this and `bucketProps` will cause an error. *

* Default: - None */ default @org.jetbrains.annotations.Nullable software.amazon.awscdk.services.s3.Bucket getExistingBucketObj() { return null; } /** * Existing instance of SQS queue object, Providing both this and queueProps will cause an error. *

* Default: - Default props are used */ default @org.jetbrains.annotations.Nullable software.amazon.awscdk.services.sqs.Queue getExistingQueueObj() { return null; } /** * Optional user provided props to override the default props for the S3 Logging Bucket. *

* Default: - Default props are used */ default @org.jetbrains.annotations.Nullable software.amazon.awscdk.services.s3.BucketProps getLoggingBucketProps() { return null; } /** * Whether to turn on Access Logs for the S3 bucket with the associated storage costs. *

* Enabling Access Logging is a best practice. *

* Default: - true */ default @org.jetbrains.annotations.Nullable java.lang.Boolean getLogS3AccessLogs() { return null; } /** * The number of times a message can be unsuccessfully dequeued before being moved to the dead-letter queue. *

* Default: - required field if deployDeadLetterQueue=true. */ default @org.jetbrains.annotations.Nullable java.lang.Number getMaxReceiveCount() { return null; } /** * Optional user provided properties. *

* Default: - Default props are used */ default @org.jetbrains.annotations.Nullable software.amazon.awscdk.services.sqs.QueueProps getQueueProps() { return null; } /** * S3 object key filter rules to determine which objects trigger this event. *

* Default: - If not specified no filter rules will be applied. */ default @org.jetbrains.annotations.Nullable java.util.List getS3EventFilters() { return null; } /** * The S3 event types that will trigger the notification. *

* Default: - If not specified the s3.EventType.OBJECT_CREATED event will trigger the notification. */ default @org.jetbrains.annotations.Nullable java.util.List getS3EventTypes() { return null; } /** * @return a {@link Builder} of {@link S3ToSqsProps} */ static Builder builder() { return new Builder(); } /** * A builder for {@link S3ToSqsProps} */ public static final class Builder implements software.amazon.jsii.Builder { software.amazon.awscdk.services.s3.BucketProps bucketProps; software.amazon.awscdk.services.sqs.QueueProps deadLetterQueueProps; java.lang.Boolean deployDeadLetterQueue; java.lang.Boolean enableEncryptionWithCustomerManagedKey; software.amazon.awscdk.services.kms.Key encryptionKey; software.amazon.awscdk.services.kms.KeyProps encryptionKeyProps; software.amazon.awscdk.services.s3.Bucket existingBucketObj; software.amazon.awscdk.services.sqs.Queue existingQueueObj; software.amazon.awscdk.services.s3.BucketProps loggingBucketProps; java.lang.Boolean logS3AccessLogs; java.lang.Number maxReceiveCount; software.amazon.awscdk.services.sqs.QueueProps queueProps; java.util.List s3EventFilters; java.util.List s3EventTypes; /** * Sets the value of {@link S3ToSqsProps#getBucketProps} * @param bucketProps Optional user provided props to override the default props for the S3 Bucket. * @return {@code this} */ public Builder bucketProps(software.amazon.awscdk.services.s3.BucketProps bucketProps) { this.bucketProps = bucketProps; return this; } /** * Sets the value of {@link S3ToSqsProps#getDeadLetterQueueProps} * @param deadLetterQueueProps Optional user provided properties for the dead letter queue. * @return {@code this} */ public Builder deadLetterQueueProps(software.amazon.awscdk.services.sqs.QueueProps deadLetterQueueProps) { this.deadLetterQueueProps = deadLetterQueueProps; return this; } /** * Sets the value of {@link S3ToSqsProps#getDeployDeadLetterQueue} * @param deployDeadLetterQueue Whether to deploy a secondary queue to be used as a dead letter queue. * @return {@code this} */ public Builder deployDeadLetterQueue(java.lang.Boolean deployDeadLetterQueue) { this.deployDeadLetterQueue = deployDeadLetterQueue; return this; } /** * Sets the value of {@link S3ToSqsProps#getEnableEncryptionWithCustomerManagedKey} * @param enableEncryptionWithCustomerManagedKey Use a KMS Key, either managed by this CDK app, or imported. * If importing an encryption key, it must be specified in * the encryptionKey property for this construct. * @return {@code this} */ public Builder enableEncryptionWithCustomerManagedKey(java.lang.Boolean enableEncryptionWithCustomerManagedKey) { this.enableEncryptionWithCustomerManagedKey = enableEncryptionWithCustomerManagedKey; return this; } /** * Sets the value of {@link S3ToSqsProps#getEncryptionKey} * @param encryptionKey Optional imported encryption key to encrypt the SQS queue. * @return {@code this} */ public Builder encryptionKey(software.amazon.awscdk.services.kms.Key encryptionKey) { this.encryptionKey = encryptionKey; return this; } /** * Sets the value of {@link S3ToSqsProps#getEncryptionKeyProps} * @param encryptionKeyProps Optional user provided props to override the default props for the encryption key. * @return {@code this} */ public Builder encryptionKeyProps(software.amazon.awscdk.services.kms.KeyProps encryptionKeyProps) { this.encryptionKeyProps = encryptionKeyProps; return this; } /** * Sets the value of {@link S3ToSqsProps#getExistingBucketObj} * @param existingBucketObj Existing instance of S3 Bucket object, providing both this and `bucketProps` will cause an error. * @return {@code this} */ public Builder existingBucketObj(software.amazon.awscdk.services.s3.Bucket existingBucketObj) { this.existingBucketObj = existingBucketObj; return this; } /** * Sets the value of {@link S3ToSqsProps#getExistingQueueObj} * @param existingQueueObj Existing instance of SQS queue object, Providing both this and queueProps will cause an error. * @return {@code this} */ public Builder existingQueueObj(software.amazon.awscdk.services.sqs.Queue existingQueueObj) { this.existingQueueObj = existingQueueObj; return this; } /** * Sets the value of {@link S3ToSqsProps#getLoggingBucketProps} * @param loggingBucketProps Optional user provided props to override the default props for the S3 Logging Bucket. * @return {@code this} */ public Builder loggingBucketProps(software.amazon.awscdk.services.s3.BucketProps loggingBucketProps) { this.loggingBucketProps = loggingBucketProps; return this; } /** * Sets the value of {@link S3ToSqsProps#getLogS3AccessLogs} * @param logS3AccessLogs Whether to turn on Access Logs for the S3 bucket with the associated storage costs. * Enabling Access Logging is a best practice. * @return {@code this} */ public Builder logS3AccessLogs(java.lang.Boolean logS3AccessLogs) { this.logS3AccessLogs = logS3AccessLogs; return this; } /** * Sets the value of {@link S3ToSqsProps#getMaxReceiveCount} * @param maxReceiveCount The number of times a message can be unsuccessfully dequeued before being moved to the dead-letter queue. * @return {@code this} */ public Builder maxReceiveCount(java.lang.Number maxReceiveCount) { this.maxReceiveCount = maxReceiveCount; return this; } /** * Sets the value of {@link S3ToSqsProps#getQueueProps} * @param queueProps Optional user provided properties. * @return {@code this} */ public Builder queueProps(software.amazon.awscdk.services.sqs.QueueProps queueProps) { this.queueProps = queueProps; return this; } /** * Sets the value of {@link S3ToSqsProps#getS3EventFilters} * @param s3EventFilters S3 object key filter rules to determine which objects trigger this event. * @return {@code this} */ @SuppressWarnings("unchecked") public Builder s3EventFilters(java.util.List s3EventFilters) { this.s3EventFilters = (java.util.List)s3EventFilters; return this; } /** * Sets the value of {@link S3ToSqsProps#getS3EventTypes} * @param s3EventTypes The S3 event types that will trigger the notification. * @return {@code this} */ @SuppressWarnings("unchecked") public Builder s3EventTypes(java.util.List s3EventTypes) { this.s3EventTypes = (java.util.List)s3EventTypes; return this; } /** * Builds the configured instance. * @return a new instance of {@link S3ToSqsProps} * @throws NullPointerException if any required attribute was not provided */ @Override public S3ToSqsProps build() { return new Jsii$Proxy(this); } } /** * An implementation for {@link S3ToSqsProps} */ @software.amazon.jsii.Internal final class Jsii$Proxy extends software.amazon.jsii.JsiiObject implements S3ToSqsProps { private final software.amazon.awscdk.services.s3.BucketProps bucketProps; private final software.amazon.awscdk.services.sqs.QueueProps deadLetterQueueProps; private final java.lang.Boolean deployDeadLetterQueue; private final java.lang.Boolean enableEncryptionWithCustomerManagedKey; private final software.amazon.awscdk.services.kms.Key encryptionKey; private final software.amazon.awscdk.services.kms.KeyProps encryptionKeyProps; private final software.amazon.awscdk.services.s3.Bucket existingBucketObj; private final software.amazon.awscdk.services.sqs.Queue existingQueueObj; private final software.amazon.awscdk.services.s3.BucketProps loggingBucketProps; private final java.lang.Boolean logS3AccessLogs; private final java.lang.Number maxReceiveCount; private final software.amazon.awscdk.services.sqs.QueueProps queueProps; private final java.util.List s3EventFilters; private final java.util.List s3EventTypes; /** * 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.bucketProps = software.amazon.jsii.Kernel.get(this, "bucketProps", software.amazon.jsii.NativeType.forClass(software.amazon.awscdk.services.s3.BucketProps.class)); this.deadLetterQueueProps = software.amazon.jsii.Kernel.get(this, "deadLetterQueueProps", software.amazon.jsii.NativeType.forClass(software.amazon.awscdk.services.sqs.QueueProps.class)); this.deployDeadLetterQueue = software.amazon.jsii.Kernel.get(this, "deployDeadLetterQueue", software.amazon.jsii.NativeType.forClass(java.lang.Boolean.class)); this.enableEncryptionWithCustomerManagedKey = software.amazon.jsii.Kernel.get(this, "enableEncryptionWithCustomerManagedKey", software.amazon.jsii.NativeType.forClass(java.lang.Boolean.class)); this.encryptionKey = software.amazon.jsii.Kernel.get(this, "encryptionKey", software.amazon.jsii.NativeType.forClass(software.amazon.awscdk.services.kms.Key.class)); this.encryptionKeyProps = software.amazon.jsii.Kernel.get(this, "encryptionKeyProps", software.amazon.jsii.NativeType.forClass(software.amazon.awscdk.services.kms.KeyProps.class)); this.existingBucketObj = software.amazon.jsii.Kernel.get(this, "existingBucketObj", software.amazon.jsii.NativeType.forClass(software.amazon.awscdk.services.s3.Bucket.class)); this.existingQueueObj = software.amazon.jsii.Kernel.get(this, "existingQueueObj", software.amazon.jsii.NativeType.forClass(software.amazon.awscdk.services.sqs.Queue.class)); this.loggingBucketProps = software.amazon.jsii.Kernel.get(this, "loggingBucketProps", software.amazon.jsii.NativeType.forClass(software.amazon.awscdk.services.s3.BucketProps.class)); this.logS3AccessLogs = software.amazon.jsii.Kernel.get(this, "logS3AccessLogs", software.amazon.jsii.NativeType.forClass(java.lang.Boolean.class)); this.maxReceiveCount = software.amazon.jsii.Kernel.get(this, "maxReceiveCount", software.amazon.jsii.NativeType.forClass(java.lang.Number.class)); this.queueProps = software.amazon.jsii.Kernel.get(this, "queueProps", software.amazon.jsii.NativeType.forClass(software.amazon.awscdk.services.sqs.QueueProps.class)); this.s3EventFilters = software.amazon.jsii.Kernel.get(this, "s3EventFilters", software.amazon.jsii.NativeType.listOf(software.amazon.jsii.NativeType.forClass(software.amazon.awscdk.services.s3.NotificationKeyFilter.class))); this.s3EventTypes = software.amazon.jsii.Kernel.get(this, "s3EventTypes", software.amazon.jsii.NativeType.listOf(software.amazon.jsii.NativeType.forClass(software.amazon.awscdk.services.s3.EventType.class))); } /** * Constructor that initializes the object based on literal property values passed by the {@link Builder}. */ @SuppressWarnings("unchecked") protected Jsii$Proxy(final Builder builder) { super(software.amazon.jsii.JsiiObject.InitializationMode.JSII); this.bucketProps = builder.bucketProps; this.deadLetterQueueProps = builder.deadLetterQueueProps; this.deployDeadLetterQueue = builder.deployDeadLetterQueue; this.enableEncryptionWithCustomerManagedKey = builder.enableEncryptionWithCustomerManagedKey; this.encryptionKey = builder.encryptionKey; this.encryptionKeyProps = builder.encryptionKeyProps; this.existingBucketObj = builder.existingBucketObj; this.existingQueueObj = builder.existingQueueObj; this.loggingBucketProps = builder.loggingBucketProps; this.logS3AccessLogs = builder.logS3AccessLogs; this.maxReceiveCount = builder.maxReceiveCount; this.queueProps = builder.queueProps; this.s3EventFilters = (java.util.List)builder.s3EventFilters; this.s3EventTypes = (java.util.List)builder.s3EventTypes; } @Override public final software.amazon.awscdk.services.s3.BucketProps getBucketProps() { return this.bucketProps; } @Override public final software.amazon.awscdk.services.sqs.QueueProps getDeadLetterQueueProps() { return this.deadLetterQueueProps; } @Override public final java.lang.Boolean getDeployDeadLetterQueue() { return this.deployDeadLetterQueue; } @Override public final java.lang.Boolean getEnableEncryptionWithCustomerManagedKey() { return this.enableEncryptionWithCustomerManagedKey; } @Override public final software.amazon.awscdk.services.kms.Key getEncryptionKey() { return this.encryptionKey; } @Override public final software.amazon.awscdk.services.kms.KeyProps getEncryptionKeyProps() { return this.encryptionKeyProps; } @Override public final software.amazon.awscdk.services.s3.Bucket getExistingBucketObj() { return this.existingBucketObj; } @Override public final software.amazon.awscdk.services.sqs.Queue getExistingQueueObj() { return this.existingQueueObj; } @Override public final software.amazon.awscdk.services.s3.BucketProps getLoggingBucketProps() { return this.loggingBucketProps; } @Override public final java.lang.Boolean getLogS3AccessLogs() { return this.logS3AccessLogs; } @Override public final java.lang.Number getMaxReceiveCount() { return this.maxReceiveCount; } @Override public final software.amazon.awscdk.services.sqs.QueueProps getQueueProps() { return this.queueProps; } @Override public final java.util.List getS3EventFilters() { return this.s3EventFilters; } @Override public final java.util.List getS3EventTypes() { return this.s3EventTypes; } @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.getBucketProps() != null) { data.set("bucketProps", om.valueToTree(this.getBucketProps())); } if (this.getDeadLetterQueueProps() != null) { data.set("deadLetterQueueProps", om.valueToTree(this.getDeadLetterQueueProps())); } if (this.getDeployDeadLetterQueue() != null) { data.set("deployDeadLetterQueue", om.valueToTree(this.getDeployDeadLetterQueue())); } if (this.getEnableEncryptionWithCustomerManagedKey() != null) { data.set("enableEncryptionWithCustomerManagedKey", om.valueToTree(this.getEnableEncryptionWithCustomerManagedKey())); } if (this.getEncryptionKey() != null) { data.set("encryptionKey", om.valueToTree(this.getEncryptionKey())); } if (this.getEncryptionKeyProps() != null) { data.set("encryptionKeyProps", om.valueToTree(this.getEncryptionKeyProps())); } if (this.getExistingBucketObj() != null) { data.set("existingBucketObj", om.valueToTree(this.getExistingBucketObj())); } if (this.getExistingQueueObj() != null) { data.set("existingQueueObj", om.valueToTree(this.getExistingQueueObj())); } if (this.getLoggingBucketProps() != null) { data.set("loggingBucketProps", om.valueToTree(this.getLoggingBucketProps())); } if (this.getLogS3AccessLogs() != null) { data.set("logS3AccessLogs", om.valueToTree(this.getLogS3AccessLogs())); } if (this.getMaxReceiveCount() != null) { data.set("maxReceiveCount", om.valueToTree(this.getMaxReceiveCount())); } if (this.getQueueProps() != null) { data.set("queueProps", om.valueToTree(this.getQueueProps())); } if (this.getS3EventFilters() != null) { data.set("s3EventFilters", om.valueToTree(this.getS3EventFilters())); } if (this.getS3EventTypes() != null) { data.set("s3EventTypes", om.valueToTree(this.getS3EventTypes())); } final com.fasterxml.jackson.databind.node.ObjectNode struct = com.fasterxml.jackson.databind.node.JsonNodeFactory.instance.objectNode(); struct.set("fqn", om.valueToTree("@aws-solutions-constructs/aws-s3-sqs.S3ToSqsProps")); 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; S3ToSqsProps.Jsii$Proxy that = (S3ToSqsProps.Jsii$Proxy) o; if (this.bucketProps != null ? !this.bucketProps.equals(that.bucketProps) : that.bucketProps != null) return false; if (this.deadLetterQueueProps != null ? !this.deadLetterQueueProps.equals(that.deadLetterQueueProps) : that.deadLetterQueueProps != null) return false; if (this.deployDeadLetterQueue != null ? !this.deployDeadLetterQueue.equals(that.deployDeadLetterQueue) : that.deployDeadLetterQueue != null) return false; if (this.enableEncryptionWithCustomerManagedKey != null ? !this.enableEncryptionWithCustomerManagedKey.equals(that.enableEncryptionWithCustomerManagedKey) : that.enableEncryptionWithCustomerManagedKey != null) return false; if (this.encryptionKey != null ? !this.encryptionKey.equals(that.encryptionKey) : that.encryptionKey != null) return false; if (this.encryptionKeyProps != null ? !this.encryptionKeyProps.equals(that.encryptionKeyProps) : that.encryptionKeyProps != null) return false; if (this.existingBucketObj != null ? !this.existingBucketObj.equals(that.existingBucketObj) : that.existingBucketObj != null) return false; if (this.existingQueueObj != null ? !this.existingQueueObj.equals(that.existingQueueObj) : that.existingQueueObj != null) return false; if (this.loggingBucketProps != null ? !this.loggingBucketProps.equals(that.loggingBucketProps) : that.loggingBucketProps != null) return false; if (this.logS3AccessLogs != null ? !this.logS3AccessLogs.equals(that.logS3AccessLogs) : that.logS3AccessLogs != null) return false; if (this.maxReceiveCount != null ? !this.maxReceiveCount.equals(that.maxReceiveCount) : that.maxReceiveCount != null) return false; if (this.queueProps != null ? !this.queueProps.equals(that.queueProps) : that.queueProps != null) return false; if (this.s3EventFilters != null ? !this.s3EventFilters.equals(that.s3EventFilters) : that.s3EventFilters != null) return false; return this.s3EventTypes != null ? this.s3EventTypes.equals(that.s3EventTypes) : that.s3EventTypes == null; } @Override public final int hashCode() { int result = this.bucketProps != null ? this.bucketProps.hashCode() : 0; result = 31 * result + (this.deadLetterQueueProps != null ? this.deadLetterQueueProps.hashCode() : 0); result = 31 * result + (this.deployDeadLetterQueue != null ? this.deployDeadLetterQueue.hashCode() : 0); result = 31 * result + (this.enableEncryptionWithCustomerManagedKey != null ? this.enableEncryptionWithCustomerManagedKey.hashCode() : 0); result = 31 * result + (this.encryptionKey != null ? this.encryptionKey.hashCode() : 0); result = 31 * result + (this.encryptionKeyProps != null ? this.encryptionKeyProps.hashCode() : 0); result = 31 * result + (this.existingBucketObj != null ? this.existingBucketObj.hashCode() : 0); result = 31 * result + (this.existingQueueObj != null ? this.existingQueueObj.hashCode() : 0); result = 31 * result + (this.loggingBucketProps != null ? this.loggingBucketProps.hashCode() : 0); result = 31 * result + (this.logS3AccessLogs != null ? this.logS3AccessLogs.hashCode() : 0); result = 31 * result + (this.maxReceiveCount != null ? this.maxReceiveCount.hashCode() : 0); result = 31 * result + (this.queueProps != null ? this.queueProps.hashCode() : 0); result = 31 * result + (this.s3EventFilters != null ? this.s3EventFilters.hashCode() : 0); result = 31 * result + (this.s3EventTypes != null ? this.s3EventTypes.hashCode() : 0); return result; } } }





© 2015 - 2025 Weber Informatics LLC | Privacy Policy