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

software.amazon.awssdk.services.databasemigration.model.CreateEventSubscriptionRequest Maven / Gradle / Ivy

Go to download

The AWS Java SDK for AWS Database Migration Service module holds the client classes that are used for communicating with AWS Database Migration Service.

The newest version!
/*
 * Copyright 2013-2018 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 software.amazon.awssdk.services.databasemigration.model;

import java.util.Arrays;
import java.util.Collection;
import java.util.List;
import java.util.Objects;
import java.util.Optional;
import java.util.function.Consumer;
import java.util.stream.Collectors;
import java.util.stream.Stream;
import software.amazon.awssdk.annotations.Generated;
import software.amazon.awssdk.awscore.AwsRequestOverrideConfiguration;
import software.amazon.awssdk.core.util.DefaultSdkAutoConstructList;
import software.amazon.awssdk.utils.ToString;
import software.amazon.awssdk.utils.builder.CopyableBuilder;
import software.amazon.awssdk.utils.builder.ToCopyableBuilder;

/**
 * 

*/ @Generated("software.amazon.awssdk:codegen") public final class CreateEventSubscriptionRequest extends DatabaseMigrationRequest implements ToCopyableBuilder { private final String subscriptionName; private final String snsTopicArn; private final String sourceType; private final List eventCategories; private final List sourceIds; private final Boolean enabled; private final List tags; private CreateEventSubscriptionRequest(BuilderImpl builder) { super(builder); this.subscriptionName = builder.subscriptionName; this.snsTopicArn = builder.snsTopicArn; this.sourceType = builder.sourceType; this.eventCategories = builder.eventCategories; this.sourceIds = builder.sourceIds; this.enabled = builder.enabled; this.tags = builder.tags; } /** *

* The name of the DMS event notification subscription. *

*

* Constraints: The name must be less than 255 characters. *

* * @return The name of the DMS event notification subscription.

*

* Constraints: The name must be less than 255 characters. */ public String subscriptionName() { return subscriptionName; } /** *

* The Amazon Resource Name (ARN) of the Amazon SNS topic created for event notification. The ARN is created by * Amazon SNS when you create a topic and subscribe to it. *

* * @return The Amazon Resource Name (ARN) of the Amazon SNS topic created for event notification. The ARN is created * by Amazon SNS when you create a topic and subscribe to it. */ public String snsTopicArn() { return snsTopicArn; } /** *

* The type of AWS DMS resource that generates the events. For example, if you want to be notified of events * generated by a replication instance, you set this parameter to replication-instance. If this value * is not specified, all events are returned. *

*

* Valid values: replication-instance | migration-task *

* * @return The type of AWS DMS resource that generates the events. For example, if you want to be notified of events * generated by a replication instance, you set this parameter to replication-instance. If this * value is not specified, all events are returned.

*

* Valid values: replication-instance | migration-task */ public String sourceType() { return sourceType; } /** *

* A list of event categories for a source type that you want to subscribe to. You can see a list of the categories * for a given source type by calling the DescribeEventCategories action or in the topic Working with Events and * Notifications in the AWS Database Migration Service User Guide. *

*

* Attempts to modify the collection returned by this method will result in an UnsupportedOperationException. *

* * @return A list of event categories for a source type that you want to subscribe to. You can see a list of the * categories for a given source type by calling the DescribeEventCategories action or in the topic * Working with Events and * Notifications in the AWS Database Migration Service User Guide. */ public List eventCategories() { return eventCategories; } /** *

* The list of identifiers of the event sources for which events will be returned. If not specified, then all * sources are included in the response. An identifier must begin with a letter and must contain only ASCII letters, * digits, and hyphens; it cannot end with a hyphen or contain two consecutive hyphens. *

*

* Attempts to modify the collection returned by this method will result in an UnsupportedOperationException. *

* * @return The list of identifiers of the event sources for which events will be returned. If not specified, then * all sources are included in the response. An identifier must begin with a letter and must contain only * ASCII letters, digits, and hyphens; it cannot end with a hyphen or contain two consecutive hyphens. */ public List sourceIds() { return sourceIds; } /** *

* A Boolean value; set to true to activate the subscription, or set to false to create the * subscription but not activate it. *

* * @return A Boolean value; set to true to activate the subscription, or set to false to create the * subscription but not activate it. */ public Boolean enabled() { return enabled; } /** *

* A tag to be attached to the event subscription. *

*

* Attempts to modify the collection returned by this method will result in an UnsupportedOperationException. *

* * @return A tag to be attached to the event subscription. */ public List tags() { return tags; } @Override public Builder toBuilder() { return new BuilderImpl(this); } public static Builder builder() { return new BuilderImpl(); } public static Class serializableBuilderClass() { return BuilderImpl.class; } @Override public int hashCode() { int hashCode = 1; hashCode = 31 * hashCode + Objects.hashCode(subscriptionName()); hashCode = 31 * hashCode + Objects.hashCode(snsTopicArn()); hashCode = 31 * hashCode + Objects.hashCode(sourceType()); hashCode = 31 * hashCode + Objects.hashCode(eventCategories()); hashCode = 31 * hashCode + Objects.hashCode(sourceIds()); hashCode = 31 * hashCode + Objects.hashCode(enabled()); hashCode = 31 * hashCode + Objects.hashCode(tags()); return hashCode; } @Override public boolean equals(Object obj) { if (this == obj) { return true; } if (obj == null) { return false; } if (!(obj instanceof CreateEventSubscriptionRequest)) { return false; } CreateEventSubscriptionRequest other = (CreateEventSubscriptionRequest) obj; return Objects.equals(subscriptionName(), other.subscriptionName()) && Objects.equals(snsTopicArn(), other.snsTopicArn()) && Objects.equals(sourceType(), other.sourceType()) && Objects.equals(eventCategories(), other.eventCategories()) && Objects.equals(sourceIds(), other.sourceIds()) && Objects.equals(enabled(), other.enabled()) && Objects.equals(tags(), other.tags()); } @Override public String toString() { return ToString.builder("CreateEventSubscriptionRequest").add("SubscriptionName", subscriptionName()) .add("SnsTopicArn", snsTopicArn()).add("SourceType", sourceType()).add("EventCategories", eventCategories()) .add("SourceIds", sourceIds()).add("Enabled", enabled()).add("Tags", tags()).build(); } public Optional getValueForField(String fieldName, Class clazz) { switch (fieldName) { case "SubscriptionName": return Optional.ofNullable(clazz.cast(subscriptionName())); case "SnsTopicArn": return Optional.ofNullable(clazz.cast(snsTopicArn())); case "SourceType": return Optional.ofNullable(clazz.cast(sourceType())); case "EventCategories": return Optional.ofNullable(clazz.cast(eventCategories())); case "SourceIds": return Optional.ofNullable(clazz.cast(sourceIds())); case "Enabled": return Optional.ofNullable(clazz.cast(enabled())); case "Tags": return Optional.ofNullable(clazz.cast(tags())); default: return Optional.empty(); } } public interface Builder extends DatabaseMigrationRequest.Builder, CopyableBuilder { /** *

* The name of the DMS event notification subscription. *

*

* Constraints: The name must be less than 255 characters. *

* * @param subscriptionName * The name of the DMS event notification subscription.

*

* Constraints: The name must be less than 255 characters. * @return Returns a reference to this object so that method calls can be chained together. */ Builder subscriptionName(String subscriptionName); /** *

* The Amazon Resource Name (ARN) of the Amazon SNS topic created for event notification. The ARN is created by * Amazon SNS when you create a topic and subscribe to it. *

* * @param snsTopicArn * The Amazon Resource Name (ARN) of the Amazon SNS topic created for event notification. The ARN is * created by Amazon SNS when you create a topic and subscribe to it. * @return Returns a reference to this object so that method calls can be chained together. */ Builder snsTopicArn(String snsTopicArn); /** *

* The type of AWS DMS resource that generates the events. For example, if you want to be notified of events * generated by a replication instance, you set this parameter to replication-instance. If this * value is not specified, all events are returned. *

*

* Valid values: replication-instance | migration-task *

* * @param sourceType * The type of AWS DMS resource that generates the events. For example, if you want to be notified of * events generated by a replication instance, you set this parameter to * replication-instance. If this value is not specified, all events are returned.

*

* Valid values: replication-instance | migration-task * @return Returns a reference to this object so that method calls can be chained together. */ Builder sourceType(String sourceType); /** *

* A list of event categories for a source type that you want to subscribe to. You can see a list of the * categories for a given source type by calling the DescribeEventCategories action or in the topic Working with Events and * Notifications in the AWS Database Migration Service User Guide. *

* * @param eventCategories * A list of event categories for a source type that you want to subscribe to. You can see a list of the * categories for a given source type by calling the DescribeEventCategories action or in the * topic Working with Events * and Notifications in the AWS Database Migration Service User Guide. * @return Returns a reference to this object so that method calls can be chained together. */ Builder eventCategories(Collection eventCategories); /** *

* A list of event categories for a source type that you want to subscribe to. You can see a list of the * categories for a given source type by calling the DescribeEventCategories action or in the topic Working with Events and * Notifications in the AWS Database Migration Service User Guide. *

* * @param eventCategories * A list of event categories for a source type that you want to subscribe to. You can see a list of the * categories for a given source type by calling the DescribeEventCategories action or in the * topic Working with Events * and Notifications in the AWS Database Migration Service User Guide. * @return Returns a reference to this object so that method calls can be chained together. */ Builder eventCategories(String... eventCategories); /** *

* The list of identifiers of the event sources for which events will be returned. If not specified, then all * sources are included in the response. An identifier must begin with a letter and must contain only ASCII * letters, digits, and hyphens; it cannot end with a hyphen or contain two consecutive hyphens. *

* * @param sourceIds * The list of identifiers of the event sources for which events will be returned. If not specified, then * all sources are included in the response. An identifier must begin with a letter and must contain only * ASCII letters, digits, and hyphens; it cannot end with a hyphen or contain two consecutive hyphens. * @return Returns a reference to this object so that method calls can be chained together. */ Builder sourceIds(Collection sourceIds); /** *

* The list of identifiers of the event sources for which events will be returned. If not specified, then all * sources are included in the response. An identifier must begin with a letter and must contain only ASCII * letters, digits, and hyphens; it cannot end with a hyphen or contain two consecutive hyphens. *

* * @param sourceIds * The list of identifiers of the event sources for which events will be returned. If not specified, then * all sources are included in the response. An identifier must begin with a letter and must contain only * ASCII letters, digits, and hyphens; it cannot end with a hyphen or contain two consecutive hyphens. * @return Returns a reference to this object so that method calls can be chained together. */ Builder sourceIds(String... sourceIds); /** *

* A Boolean value; set to true to activate the subscription, or set to false to create the * subscription but not activate it. *

* * @param enabled * A Boolean value; set to true to activate the subscription, or set to false to create the * subscription but not activate it. * @return Returns a reference to this object so that method calls can be chained together. */ Builder enabled(Boolean enabled); /** *

* A tag to be attached to the event subscription. *

* * @param tags * A tag to be attached to the event subscription. * @return Returns a reference to this object so that method calls can be chained together. */ Builder tags(Collection tags); /** *

* A tag to be attached to the event subscription. *

* * @param tags * A tag to be attached to the event subscription. * @return Returns a reference to this object so that method calls can be chained together. */ Builder tags(Tag... tags); /** *

* A tag to be attached to the event subscription. *

* This is a convenience that creates an instance of the {@link List.Builder} avoiding the need to create * one manually via {@link List#builder()}. * * When the {@link Consumer} completes, {@link List.Builder#build()} is called immediately and its result * is passed to {@link #tags(List)}. * * @param tags * a consumer that will call methods on {@link List.Builder} * @return Returns a reference to this object so that method calls can be chained together. * @see #tags(List) */ Builder tags(Consumer... tags); @Override Builder overrideConfiguration(AwsRequestOverrideConfiguration overrideConfiguration); @Override Builder overrideConfiguration(Consumer builderConsumer); } static final class BuilderImpl extends DatabaseMigrationRequest.BuilderImpl implements Builder { private String subscriptionName; private String snsTopicArn; private String sourceType; private List eventCategories = DefaultSdkAutoConstructList.getInstance(); private List sourceIds = DefaultSdkAutoConstructList.getInstance(); private Boolean enabled; private List tags = DefaultSdkAutoConstructList.getInstance(); private BuilderImpl() { } private BuilderImpl(CreateEventSubscriptionRequest model) { super(model); subscriptionName(model.subscriptionName); snsTopicArn(model.snsTopicArn); sourceType(model.sourceType); eventCategories(model.eventCategories); sourceIds(model.sourceIds); enabled(model.enabled); tags(model.tags); } public final String getSubscriptionName() { return subscriptionName; } @Override public final Builder subscriptionName(String subscriptionName) { this.subscriptionName = subscriptionName; return this; } public final void setSubscriptionName(String subscriptionName) { this.subscriptionName = subscriptionName; } public final String getSnsTopicArn() { return snsTopicArn; } @Override public final Builder snsTopicArn(String snsTopicArn) { this.snsTopicArn = snsTopicArn; return this; } public final void setSnsTopicArn(String snsTopicArn) { this.snsTopicArn = snsTopicArn; } public final String getSourceType() { return sourceType; } @Override public final Builder sourceType(String sourceType) { this.sourceType = sourceType; return this; } public final void setSourceType(String sourceType) { this.sourceType = sourceType; } public final Collection getEventCategories() { return eventCategories; } @Override public final Builder eventCategories(Collection eventCategories) { this.eventCategories = EventCategoriesListCopier.copy(eventCategories); return this; } @Override @SafeVarargs public final Builder eventCategories(String... eventCategories) { eventCategories(Arrays.asList(eventCategories)); return this; } public final void setEventCategories(Collection eventCategories) { this.eventCategories = EventCategoriesListCopier.copy(eventCategories); } public final Collection getSourceIds() { return sourceIds; } @Override public final Builder sourceIds(Collection sourceIds) { this.sourceIds = SourceIdsListCopier.copy(sourceIds); return this; } @Override @SafeVarargs public final Builder sourceIds(String... sourceIds) { sourceIds(Arrays.asList(sourceIds)); return this; } public final void setSourceIds(Collection sourceIds) { this.sourceIds = SourceIdsListCopier.copy(sourceIds); } public final Boolean getEnabled() { return enabled; } @Override public final Builder enabled(Boolean enabled) { this.enabled = enabled; return this; } public final void setEnabled(Boolean enabled) { this.enabled = enabled; } public final Collection getTags() { return tags != null ? tags.stream().map(Tag::toBuilder).collect(Collectors.toList()) : null; } @Override public final Builder tags(Collection tags) { this.tags = TagListCopier.copy(tags); return this; } @Override @SafeVarargs public final Builder tags(Tag... tags) { tags(Arrays.asList(tags)); return this; } @Override @SafeVarargs public final Builder tags(Consumer... tags) { tags(Stream.of(tags).map(c -> Tag.builder().applyMutation(c).build()).collect(Collectors.toList())); return this; } public final void setTags(Collection tags) { this.tags = TagListCopier.copyFromBuilder(tags); } @Override public Builder overrideConfiguration(AwsRequestOverrideConfiguration overrideConfiguration) { super.overrideConfiguration(overrideConfiguration); return this; } @Override public Builder overrideConfiguration(Consumer builderConsumer) { super.overrideConfiguration(builderConsumer); return this; } @Override public CreateEventSubscriptionRequest build() { return new CreateEventSubscriptionRequest(this); } } }




© 2015 - 2024 Weber Informatics LLC | Privacy Policy