/* * 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.kinesisfirehose.model; import java.io.Serializable; import javax.annotation.Generated; import com.amazonaws.protocol.StructuredPojo; import com.amazonaws.protocol.ProtocolMarshaller; /** *
* Describes the configuration of a destination in Amazon S3. *
* * @see AWS API Documentation */ @Generated("com.amazonaws:aws-java-sdk-code-generator") public class S3DestinationConfiguration implements Serializable, Cloneable, StructuredPojo { /** ** The Amazon Resource Name (ARN) of the Amazon Web Services credentials. For more information, see Amazon Resource Names (ARNs) * and Amazon Web Services Service Namespaces. *
*/ private String roleARN; /** ** The ARN of the S3 bucket. For more information, see Amazon Resource Names (ARNs) * and Amazon Web Services Service Namespaces. *
*/ private String bucketARN; /** ** The "YYYY/MM/DD/HH" time format prefix is automatically used for delivered Amazon S3 files. You can also specify * a custom prefix, as described in Custom Prefixes for Amazon S3 * Objects. *
*/ private String prefix; /** ** A prefix that Kinesis Data Firehose evaluates and adds to failed records before writing them to S3. This prefix * appears immediately following the bucket name. For information about how to specify this prefix, see Custom Prefixes for Amazon S3 * Objects. *
*/ private String errorOutputPrefix; /** *
* The buffering option. If no value is specified, BufferingHints
object default values are used.
*
* The compression format. If no value is specified, the default is UNCOMPRESSED
.
*
* The compression formats SNAPPY
or ZIP
cannot be specified for Amazon Redshift
* destinations because they are not supported by the Amazon Redshift COPY
operation that reads from
* the S3 bucket.
*
* The encryption configuration. If no value is specified, the default is no encryption. *
*/ private EncryptionConfiguration encryptionConfiguration; /** ** The CloudWatch logging options for your delivery stream. *
*/ private CloudWatchLoggingOptions cloudWatchLoggingOptions; /** ** The Amazon Resource Name (ARN) of the Amazon Web Services credentials. For more information, see Amazon Resource Names (ARNs) * and Amazon Web Services Service Namespaces. *
* * @param roleARN * The Amazon Resource Name (ARN) of the Amazon Web Services credentials. For more information, see Amazon Resource Names * (ARNs) and Amazon Web Services Service Namespaces. */ public void setRoleARN(String roleARN) { this.roleARN = roleARN; } /** ** The Amazon Resource Name (ARN) of the Amazon Web Services credentials. For more information, see Amazon Resource Names (ARNs) * and Amazon Web Services Service Namespaces. *
* * @return The Amazon Resource Name (ARN) of the Amazon Web Services credentials. For more information, see Amazon Resource Names * (ARNs) and Amazon Web Services Service Namespaces. */ public String getRoleARN() { return this.roleARN; } /** ** The Amazon Resource Name (ARN) of the Amazon Web Services credentials. For more information, see Amazon Resource Names (ARNs) * and Amazon Web Services Service Namespaces. *
* * @param roleARN * The Amazon Resource Name (ARN) of the Amazon Web Services credentials. For more information, see Amazon Resource Names * (ARNs) and Amazon Web Services Service Namespaces. * @return Returns a reference to this object so that method calls can be chained together. */ public S3DestinationConfiguration withRoleARN(String roleARN) { setRoleARN(roleARN); return this; } /** ** The ARN of the S3 bucket. For more information, see Amazon Resource Names (ARNs) * and Amazon Web Services Service Namespaces. *
* * @param bucketARN * The ARN of the S3 bucket. For more information, see Amazon Resource Names * (ARNs) and Amazon Web Services Service Namespaces. */ public void setBucketARN(String bucketARN) { this.bucketARN = bucketARN; } /** ** The ARN of the S3 bucket. For more information, see Amazon Resource Names (ARNs) * and Amazon Web Services Service Namespaces. *
* * @return The ARN of the S3 bucket. For more information, see Amazon Resource Names * (ARNs) and Amazon Web Services Service Namespaces. */ public String getBucketARN() { return this.bucketARN; } /** ** The ARN of the S3 bucket. For more information, see Amazon Resource Names (ARNs) * and Amazon Web Services Service Namespaces. *
* * @param bucketARN * The ARN of the S3 bucket. For more information, see Amazon Resource Names * (ARNs) and Amazon Web Services Service Namespaces. * @return Returns a reference to this object so that method calls can be chained together. */ public S3DestinationConfiguration withBucketARN(String bucketARN) { setBucketARN(bucketARN); return this; } /** ** The "YYYY/MM/DD/HH" time format prefix is automatically used for delivered Amazon S3 files. You can also specify * a custom prefix, as described in Custom Prefixes for Amazon S3 * Objects. *
* * @param prefix * The "YYYY/MM/DD/HH" time format prefix is automatically used for delivered Amazon S3 files. You can also * specify a custom prefix, as described in Custom Prefixes for Amazon S3 * Objects. */ public void setPrefix(String prefix) { this.prefix = prefix; } /** ** The "YYYY/MM/DD/HH" time format prefix is automatically used for delivered Amazon S3 files. You can also specify * a custom prefix, as described in Custom Prefixes for Amazon S3 * Objects. *
* * @return The "YYYY/MM/DD/HH" time format prefix is automatically used for delivered Amazon S3 files. You can also * specify a custom prefix, as described in Custom Prefixes for Amazon S3 * Objects. */ public String getPrefix() { return this.prefix; } /** ** The "YYYY/MM/DD/HH" time format prefix is automatically used for delivered Amazon S3 files. You can also specify * a custom prefix, as described in Custom Prefixes for Amazon S3 * Objects. *
* * @param prefix * The "YYYY/MM/DD/HH" time format prefix is automatically used for delivered Amazon S3 files. You can also * specify a custom prefix, as described in Custom Prefixes for Amazon S3 * Objects. * @return Returns a reference to this object so that method calls can be chained together. */ public S3DestinationConfiguration withPrefix(String prefix) { setPrefix(prefix); return this; } /** ** A prefix that Kinesis Data Firehose evaluates and adds to failed records before writing them to S3. This prefix * appears immediately following the bucket name. For information about how to specify this prefix, see Custom Prefixes for Amazon S3 * Objects. *
* * @param errorOutputPrefix * A prefix that Kinesis Data Firehose evaluates and adds to failed records before writing them to S3. This * prefix appears immediately following the bucket name. For information about how to specify this prefix, * see Custom Prefixes for Amazon * S3 Objects. */ public void setErrorOutputPrefix(String errorOutputPrefix) { this.errorOutputPrefix = errorOutputPrefix; } /** ** A prefix that Kinesis Data Firehose evaluates and adds to failed records before writing them to S3. This prefix * appears immediately following the bucket name. For information about how to specify this prefix, see Custom Prefixes for Amazon S3 * Objects. *
* * @return A prefix that Kinesis Data Firehose evaluates and adds to failed records before writing them to S3. This * prefix appears immediately following the bucket name. For information about how to specify this prefix, * see Custom Prefixes for Amazon * S3 Objects. */ public String getErrorOutputPrefix() { return this.errorOutputPrefix; } /** ** A prefix that Kinesis Data Firehose evaluates and adds to failed records before writing them to S3. This prefix * appears immediately following the bucket name. For information about how to specify this prefix, see Custom Prefixes for Amazon S3 * Objects. *
* * @param errorOutputPrefix * A prefix that Kinesis Data Firehose evaluates and adds to failed records before writing them to S3. This * prefix appears immediately following the bucket name. For information about how to specify this prefix, * see Custom Prefixes for Amazon * S3 Objects. * @return Returns a reference to this object so that method calls can be chained together. */ public S3DestinationConfiguration withErrorOutputPrefix(String errorOutputPrefix) { setErrorOutputPrefix(errorOutputPrefix); return this; } /** *
* The buffering option. If no value is specified, BufferingHints
object default values are used.
*
BufferingHints
object default values are
* used.
*/
public void setBufferingHints(BufferingHints bufferingHints) {
this.bufferingHints = bufferingHints;
}
/**
*
* The buffering option. If no value is specified, BufferingHints
object default values are used.
*
BufferingHints
object default values are
* used.
*/
public BufferingHints getBufferingHints() {
return this.bufferingHints;
}
/**
*
* The buffering option. If no value is specified, BufferingHints
object default values are used.
*
BufferingHints
object default values are
* used.
* @return Returns a reference to this object so that method calls can be chained together.
*/
public S3DestinationConfiguration withBufferingHints(BufferingHints bufferingHints) {
setBufferingHints(bufferingHints);
return this;
}
/**
*
* The compression format. If no value is specified, the default is UNCOMPRESSED
.
*
* The compression formats SNAPPY
or ZIP
cannot be specified for Amazon Redshift
* destinations because they are not supported by the Amazon Redshift COPY
operation that reads from
* the S3 bucket.
*
UNCOMPRESSED
.
*
* The compression formats SNAPPY
or ZIP
cannot be specified for Amazon Redshift
* destinations because they are not supported by the Amazon Redshift COPY
operation that reads
* from the S3 bucket.
* @see CompressionFormat
*/
public void setCompressionFormat(String compressionFormat) {
this.compressionFormat = compressionFormat;
}
/**
*
* The compression format. If no value is specified, the default is UNCOMPRESSED
.
*
* The compression formats SNAPPY
or ZIP
cannot be specified for Amazon Redshift
* destinations because they are not supported by the Amazon Redshift COPY
operation that reads from
* the S3 bucket.
*
UNCOMPRESSED
.
*
* The compression formats SNAPPY
or ZIP
cannot be specified for Amazon Redshift
* destinations because they are not supported by the Amazon Redshift COPY
operation that reads
* from the S3 bucket.
* @see CompressionFormat
*/
public String getCompressionFormat() {
return this.compressionFormat;
}
/**
*
* The compression format. If no value is specified, the default is UNCOMPRESSED
.
*
* The compression formats SNAPPY
or ZIP
cannot be specified for Amazon Redshift
* destinations because they are not supported by the Amazon Redshift COPY
operation that reads from
* the S3 bucket.
*
UNCOMPRESSED
.
*
* The compression formats SNAPPY
or ZIP
cannot be specified for Amazon Redshift
* destinations because they are not supported by the Amazon Redshift COPY
operation that reads
* from the S3 bucket.
* @return Returns a reference to this object so that method calls can be chained together.
* @see CompressionFormat
*/
public S3DestinationConfiguration withCompressionFormat(String compressionFormat) {
setCompressionFormat(compressionFormat);
return this;
}
/**
*
* The compression format. If no value is specified, the default is UNCOMPRESSED
.
*
* The compression formats SNAPPY
or ZIP
cannot be specified for Amazon Redshift
* destinations because they are not supported by the Amazon Redshift COPY
operation that reads from
* the S3 bucket.
*
UNCOMPRESSED
.
*
* The compression formats SNAPPY
or ZIP
cannot be specified for Amazon Redshift
* destinations because they are not supported by the Amazon Redshift COPY
operation that reads
* from the S3 bucket.
* @see CompressionFormat
*/
public void setCompressionFormat(CompressionFormat compressionFormat) {
withCompressionFormat(compressionFormat);
}
/**
*
* The compression format. If no value is specified, the default is UNCOMPRESSED
.
*
* The compression formats SNAPPY
or ZIP
cannot be specified for Amazon Redshift
* destinations because they are not supported by the Amazon Redshift COPY
operation that reads from
* the S3 bucket.
*
UNCOMPRESSED
.
*
* The compression formats SNAPPY
or ZIP
cannot be specified for Amazon Redshift
* destinations because they are not supported by the Amazon Redshift COPY
operation that reads
* from the S3 bucket.
* @return Returns a reference to this object so that method calls can be chained together.
* @see CompressionFormat
*/
public S3DestinationConfiguration withCompressionFormat(CompressionFormat compressionFormat) {
this.compressionFormat = compressionFormat.toString();
return this;
}
/**
*
* The encryption configuration. If no value is specified, the default is no encryption. *
* * @param encryptionConfiguration * The encryption configuration. If no value is specified, the default is no encryption. */ public void setEncryptionConfiguration(EncryptionConfiguration encryptionConfiguration) { this.encryptionConfiguration = encryptionConfiguration; } /** ** The encryption configuration. If no value is specified, the default is no encryption. *
* * @return The encryption configuration. If no value is specified, the default is no encryption. */ public EncryptionConfiguration getEncryptionConfiguration() { return this.encryptionConfiguration; } /** ** The encryption configuration. If no value is specified, the default is no encryption. *
* * @param encryptionConfiguration * The encryption configuration. If no value is specified, the default is no encryption. * @return Returns a reference to this object so that method calls can be chained together. */ public S3DestinationConfiguration withEncryptionConfiguration(EncryptionConfiguration encryptionConfiguration) { setEncryptionConfiguration(encryptionConfiguration); return this; } /** ** The CloudWatch logging options for your delivery stream. *
* * @param cloudWatchLoggingOptions * The CloudWatch logging options for your delivery stream. */ public void setCloudWatchLoggingOptions(CloudWatchLoggingOptions cloudWatchLoggingOptions) { this.cloudWatchLoggingOptions = cloudWatchLoggingOptions; } /** ** The CloudWatch logging options for your delivery stream. *
* * @return The CloudWatch logging options for your delivery stream. */ public CloudWatchLoggingOptions getCloudWatchLoggingOptions() { return this.cloudWatchLoggingOptions; } /** ** The CloudWatch logging options for your delivery stream. *
* * @param cloudWatchLoggingOptions * The CloudWatch logging options for your delivery stream. * @return Returns a reference to this object so that method calls can be chained together. */ public S3DestinationConfiguration withCloudWatchLoggingOptions(CloudWatchLoggingOptions cloudWatchLoggingOptions) { setCloudWatchLoggingOptions(cloudWatchLoggingOptions); return this; } /** * Returns a string representation of this object. This is useful for testing and debugging. Sensitive data will be * redacted from this string using a placeholder value. * * @return A string representation of this object. * * @see java.lang.Object#toString() */ @Override public String toString() { StringBuilder sb = new StringBuilder(); sb.append("{"); if (getRoleARN() != null) sb.append("RoleARN: ").append(getRoleARN()).append(","); if (getBucketARN() != null) sb.append("BucketARN: ").append(getBucketARN()).append(","); if (getPrefix() != null) sb.append("Prefix: ").append(getPrefix()).append(","); if (getErrorOutputPrefix() != null) sb.append("ErrorOutputPrefix: ").append(getErrorOutputPrefix()).append(","); if (getBufferingHints() != null) sb.append("BufferingHints: ").append(getBufferingHints()).append(","); if (getCompressionFormat() != null) sb.append("CompressionFormat: ").append(getCompressionFormat()).append(","); if (getEncryptionConfiguration() != null) sb.append("EncryptionConfiguration: ").append(getEncryptionConfiguration()).append(","); if (getCloudWatchLoggingOptions() != null) sb.append("CloudWatchLoggingOptions: ").append(getCloudWatchLoggingOptions()); sb.append("}"); return sb.toString(); } @Override public boolean equals(Object obj) { if (this == obj) return true; if (obj == null) return false; if (obj instanceof S3DestinationConfiguration == false) return false; S3DestinationConfiguration other = (S3DestinationConfiguration) obj; if (other.getRoleARN() == null ^ this.getRoleARN() == null) return false; if (other.getRoleARN() != null && other.getRoleARN().equals(this.getRoleARN()) == false) return false; if (other.getBucketARN() == null ^ this.getBucketARN() == null) return false; if (other.getBucketARN() != null && other.getBucketARN().equals(this.getBucketARN()) == false) return false; if (other.getPrefix() == null ^ this.getPrefix() == null) return false; if (other.getPrefix() != null && other.getPrefix().equals(this.getPrefix()) == false) return false; if (other.getErrorOutputPrefix() == null ^ this.getErrorOutputPrefix() == null) return false; if (other.getErrorOutputPrefix() != null && other.getErrorOutputPrefix().equals(this.getErrorOutputPrefix()) == false) return false; if (other.getBufferingHints() == null ^ this.getBufferingHints() == null) return false; if (other.getBufferingHints() != null && other.getBufferingHints().equals(this.getBufferingHints()) == false) return false; if (other.getCompressionFormat() == null ^ this.getCompressionFormat() == null) return false; if (other.getCompressionFormat() != null && other.getCompressionFormat().equals(this.getCompressionFormat()) == false) return false; if (other.getEncryptionConfiguration() == null ^ this.getEncryptionConfiguration() == null) return false; if (other.getEncryptionConfiguration() != null && other.getEncryptionConfiguration().equals(this.getEncryptionConfiguration()) == false) return false; if (other.getCloudWatchLoggingOptions() == null ^ this.getCloudWatchLoggingOptions() == null) return false; if (other.getCloudWatchLoggingOptions() != null && other.getCloudWatchLoggingOptions().equals(this.getCloudWatchLoggingOptions()) == false) return false; return true; } @Override public int hashCode() { final int prime = 31; int hashCode = 1; hashCode = prime * hashCode + ((getRoleARN() == null) ? 0 : getRoleARN().hashCode()); hashCode = prime * hashCode + ((getBucketARN() == null) ? 0 : getBucketARN().hashCode()); hashCode = prime * hashCode + ((getPrefix() == null) ? 0 : getPrefix().hashCode()); hashCode = prime * hashCode + ((getErrorOutputPrefix() == null) ? 0 : getErrorOutputPrefix().hashCode()); hashCode = prime * hashCode + ((getBufferingHints() == null) ? 0 : getBufferingHints().hashCode()); hashCode = prime * hashCode + ((getCompressionFormat() == null) ? 0 : getCompressionFormat().hashCode()); hashCode = prime * hashCode + ((getEncryptionConfiguration() == null) ? 0 : getEncryptionConfiguration().hashCode()); hashCode = prime * hashCode + ((getCloudWatchLoggingOptions() == null) ? 0 : getCloudWatchLoggingOptions().hashCode()); return hashCode; } @Override public S3DestinationConfiguration clone() { try { return (S3DestinationConfiguration) super.clone(); } catch (CloneNotSupportedException e) { throw new IllegalStateException("Got a CloneNotSupportedException from Object.clone() " + "even though we're Cloneable!", e); } } @com.amazonaws.annotation.SdkInternalApi @Override public void marshall(ProtocolMarshaller protocolMarshaller) { com.amazonaws.services.kinesisfirehose.model.transform.S3DestinationConfigurationMarshaller.getInstance().marshall(this, protocolMarshaller); } }