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

com.amazonaws.services.s3.model.BucketNotificationConfiguration Maven / Gradle / Ivy

Go to download

The Amazon Web Services SDK for Java provides Java APIs for building software on AWS' cost-effective, scalable, and reliable infrastructure products. The AWS Java SDK allows developers to code against APIs for all of Amazon's infrastructure web services (Amazon S3, Amazon EC2, Amazon SQS, Amazon Relational Database Service, Amazon AutoScaling, etc).

The newest version!
/*
 * Copyright 2010-2014 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.util.ArrayList;
import java.util.Collection;
import java.util.List;

import com.amazonaws.AmazonWebServiceRequest;
import com.amazonaws.services.s3.AmazonS3;
import com.amazonaws.services.s3.AmazonS3Client;

/**
 * 

* Represents a bucket's notification configuration. The notification configuration is * used to control reception of notifications for specific events for Amazon S3 buckets. *

*

* Using SNS as the delivery service, the notification configuration * of an Amazon S3 bucket provides near real-time notifications of events * the user is interested in. * Notification is turned on by enabling configuration on a bucket, specifying * the events and the SNS topic. This configuration can only be turned * on by the bucket owner. *

*

* If a notification configuration already exists for the * specified bucket, the new notification configuration will replace the existing * notification configuration. To remove a notification configuration, pass an * an empty configuration directly to * {@link AmazonS3#setBucketNotificationConfiguration(String,BucketNotificationConfiguration)}. *

*

* Note: Currently buckets may only have a single event and topic * configuration. *

* * @see AmazonS3#getBucketNotificationConfiguration(String) * @see AmazonS3#setBucketNotificationConfiguration(String, BucketNotificationConfiguration) */ public class BucketNotificationConfiguration { private List topicConfigurations = null; /** *

* Creates a new bucket notification configuration. * By default, the newly created configuration is empty. *

*

* Passing the new configuration directly to * {@link AmazonS3#setBucketNotificationConfiguration(String,BucketNotificationConfiguration)} * will remove any existing bucket notification configuration. *

* * @see BucketNotificationConfiguration#BucketNotificationConfiguration(Collection) */ public BucketNotificationConfiguration() { this.topicConfigurations = new ArrayList( 1 ); } /** *

* Creates a new bucket notification configuration containing the specified * TopicConfigurations. *

*

* Passing the new configuration directly to * {@link AmazonS3#setBucketNotificationConfiguration(String,BucketNotificationConfiguration)} * will set the bucket's notification configuration and overwrite any existing configuration. *

* * @see BucketNotificationConfiguration#BucketNotificationConfiguration() */ public BucketNotificationConfiguration( Collection topicConfigurations ) { this.topicConfigurations = new ArrayList( 1 ); this.topicConfigurations.addAll( topicConfigurations ); } /** *

* Sets the {@link BucketNotificationConfiguration.TopicConfiguration} * TopicConfigurations and returns this object, * enabling additional method calls to be chained together. *

*

* Calling this method will overwrite any * previously set TopicConfigurations for this object. *

* * @param topicConfigurations * A set of topic configurations. * * @return The updated {@link BucketNotificationConfiguration} object, * enabling additional method calls to be chained together. * * @see BucketNotificationConfiguration#setTopicConfigurations(Collection) */ public BucketNotificationConfiguration withTopicConfigurations( TopicConfiguration... topicConfigurations ) { this.topicConfigurations.clear(); for ( int index = 0; index < topicConfigurations.length; index++ ) { this.topicConfigurations.add( topicConfigurations[ index ] ); } return this; } /** *

* Sets the {@link BucketNotificationConfiguration.TopicConfiguration}. *

*

* Calling this method will overwrite any * previously set TopicConfigurations for this object. *

* * @param topicConfigurations * A collection of topic configurations. * * @see BucketNotificationConfiguration#withTopicConfigurations(TopicConfiguration) */ public void setTopicConfigurations( Collection topicConfigurations ) { this.topicConfigurations.clear(); this.topicConfigurations.addAll( topicConfigurations ); } /** *

* Gets the list of {@link BucketNotificationConfiguration.TopicConfiguration} objects * contained in this object. This method may return an empty list if no TopicConfiguration * objects are present. *

* * @return The list of TopicConfiguration objects contained in this object. * May return an empty list. */ public List getTopicConfigurations() { return this.topicConfigurations; } public String toString() { StringBuffer sb = new StringBuffer(); sb.append("{"); sb.append("TopicConfigurations: " + this.getTopicConfigurations() ); sb.append("}"); return sb.toString(); } /** *

* Represents the SNS topic to publish event notification to. * Notifications are published to the topic * only if the specified event is triggered. *

*/ public static class TopicConfiguration { private final String topic; private final String event; /** *

* Creates a new {@link BucketNotificationConfiguration.TopicConfiguration}. *

* * @param topic * The SNS Topic ARN (Amazon Resource Name) to publish notifications to. * @param event * The event that must occur to trigger the notification publication. */ public TopicConfiguration( final String topic, final String event ) { this.topic = topic; this.event = event; } /** *

* Gets the topic ARN (Amazon Resource Name) for the topic to publish events to. *

* * @return The topic ARN for the topic to publish events to. */ public String getTopic() { return this.topic; } /** *

* Gets the event that must occur for the notification to be published. *

* * @return The event that must occur for the notification to be published. */ public String getEvent() { return this.event; } public String toString() { StringBuffer sb = new StringBuffer(); sb.append("{"); sb.append("Topic: " + this.getTopic() + ", "); sb.append("Event: " + this.getEvent() + ", "); sb.append("}"); return sb.toString(); } } }




© 2015 - 2025 Weber Informatics LLC | Privacy Policy