com.amazonaws.services.s3.model.BucketLoggingConfiguration Maven / Gradle / Ivy
Show all versions of aws-java-sdk-s3 Show documentation
/*
* Copyright 2010-2024 Amazon.com, Inc. or its affiliates. All Rights Reserved.
*
* Portions copyright 2006-2009 James Murty. Please see LICENSE.txt
* for applicable license terms and NOTICE.txt for applicable notices.
*
* 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.s3.model;
import java.io.Serializable;
import com.amazonaws.services.s3.AmazonS3;
import com.amazonaws.services.s3.AmazonS3Client;
import com.amazonaws.services.s3.TargetObjectKeyFormat;
/**
*
* Represents bucket logging configuration used to control bucket-based server
* access logging in Amazon S3.
*
*
* For logging to be enabled for a bucket both the destinationBucketName
and
* logfilePrefix
must not be null
, and the named bucket must exist. When both
* variables are not null
, this object represents an enabled logging
* configuration (as indicated by {@link #isLoggingEnabled()}).
*
* If either the targetBucketName
or logfilePrefix
are null
,
* this object represents a disabled logging configuration (as indicated by
* {@link #isLoggingEnabled()}).
*
* Server access logging can be enabled or disabled with
* {@link AmazonS3Client#setBucketLoggingConfiguration(SetBucketLoggingConfigurationRequest)}
* and the current status of server access logging for a bucket can be retrieved
* through {@link AmazonS3Client#getBucketLoggingConfiguration(String)}
*
* @see AmazonS3#getBucketLoggingConfiguration(String)
* @see AmazonS3#setBucketLoggingConfiguration(SetBucketLoggingConfigurationRequest)
*/
public class BucketLoggingConfiguration implements Serializable {
private String destinationBucketName = null;
private String logFilePrefix = null;
private TargetObjectKeyFormat targetObjectKeyFormat = null;
/**
* Creates a new bucket logging configuration, which by default is
* disabled.
*
* Passing this new object directly to
* {@link AmazonS3#setBucketLoggingConfiguration(SetBucketLoggingConfigurationRequest)}
* will turn off bucket logging for the specified bucket.
*
*/
public BucketLoggingConfiguration() {}
/**
* Creates a new bucket logging configuration which enables server access
* logs to be collected and stored in the specified destination bucket with
* the specified log file prefix.
*
* @param destinationBucketName
* The name of the bucket to which to delivery server access logs
* from the target bucket. This may be the same bucket for which
* logging is being configured.
* @param logFilePrefix
* The optional prefix to append to server access logs when they
* are written to the destination bucket.
*/
public BucketLoggingConfiguration(String destinationBucketName, String logFilePrefix) {
setLogFilePrefix(logFilePrefix);
setDestinationBucketName(destinationBucketName);
}
/**
* Returns true if logging is enabled.
*
* @return True if logging is enabled.
*/
public boolean isLoggingEnabled() {
return destinationBucketName != null
&& logFilePrefix != null;
}
/**
* Returns the optional log file prefix.
*
* @return The optional log file prefix.
*/
public String getLogFilePrefix() {
return logFilePrefix;
}
/**
* Sets the log file prefix for this bucket logging configuration.
*
* @param logFilePrefix The log file prefix for this logging configuration.
*/
public void setLogFilePrefix(String logFilePrefix) {
// Default log file prefix to the empty string if none is specified
if (logFilePrefix == null)
logFilePrefix = "";
this.logFilePrefix = logFilePrefix;
}
/**
* Returns the destination bucket name for this logging configuration.
*
* @return The destination bucket name for this logging configuration.
*/
public String getDestinationBucketName() {
return destinationBucketName;
}
/**
* Sets the destination bucket name for this logging configuration.
*
* @param destinationBucketName The destination bucket name for this logging configuration.
*/
public void setDestinationBucketName(String destinationBucketName) {
this.destinationBucketName = destinationBucketName;
}
/**
* Returns the {@link TargetObjectKeyFormat} for this logging configuration.
*
* @return The {@link TargetObjectKeyFormat} for this logging configuration.
*/
public TargetObjectKeyFormat getTargetObjectKeyFormat() {
return targetObjectKeyFormat;
}
/**
* Sets the {@link TargetObjectKeyFormat} for this logging configuration.
*
* @param targetObjectKeyFormat The {@link TargetObjectKeyFormat} for this logging configuration.
*/
public void setTargetObjectKeyFormat(TargetObjectKeyFormat targetObjectKeyFormat) {
this.targetObjectKeyFormat = targetObjectKeyFormat;
}
/**
* Sets the {@link TargetObjectKeyFormat} for this logging configuration and returns this object for method chaining.
*
* @param targetObjectKeyFormat The {@link TargetObjectKeyFormat} for this logging configuration.
*/
public BucketLoggingConfiguration withTargetObjectKeyFormat(TargetObjectKeyFormat targetObjectKeyFormat) {
setTargetObjectKeyFormat(targetObjectKeyFormat);
return this;
}
public String toString() {
String result = "LoggingConfiguration enabled=" + isLoggingEnabled();
if (isLoggingEnabled()) {
result += ", destinationBucketName=" + getDestinationBucketName()
+ ", logFilePrefix=" + getLogFilePrefix();
}
if (targetObjectKeyFormat != null) {
result += ", targetObjectKeyFormat=" + getTargetObjectKeyFormat();
}
return result;
}
}