software.amazon.awssdk.services.kinesisanalytics.model.AddApplicationInputRequest Maven / Gradle / Ivy
Go to download
Show more of this group Show more artifacts with this name
Show all versions of kinesis Show documentation
Show all versions of kinesis Show documentation
The AWS Java SDK for Amazon Kinesis module holds the client classes that are used for communicating
with Amazon Kinesis Service
/*
* 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.kinesisanalytics.model;
import java.util.Objects;
import java.util.Optional;
import java.util.function.Consumer;
import javax.annotation.Generated;
import software.amazon.awssdk.core.AwsRequestOverrideConfig;
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 class AddApplicationInputRequest extends KinesisAnalyticsRequest implements
ToCopyableBuilder {
private final String applicationName;
private final Long currentApplicationVersionId;
private final Input input;
private AddApplicationInputRequest(BuilderImpl builder) {
super(builder);
this.applicationName = builder.applicationName;
this.currentApplicationVersionId = builder.currentApplicationVersionId;
this.input = builder.input;
}
/**
*
* Name of your existing Amazon Kinesis Analytics application to which you want to add the streaming source.
*
*
* @return Name of your existing Amazon Kinesis Analytics application to which you want to add the streaming source.
*/
public String applicationName() {
return applicationName;
}
/**
*
* Current version of your Amazon Kinesis Analytics application. You can use the DescribeApplication
* operation to find the current application version.
*
*
* @return Current version of your Amazon Kinesis Analytics application. You can use the DescribeApplication
* operation to find the current application version.
*/
public Long currentApplicationVersionId() {
return currentApplicationVersionId;
}
/**
*
* The Input to add.
*
*
* @return The Input to add.
*/
public Input input() {
return input;
}
@Override
public Builder toBuilder() {
return new BuilderImpl(this);
}
public static Builder builder() {
return new BuilderImpl();
}
public static Class extends Builder> serializableBuilderClass() {
return BuilderImpl.class;
}
@Override
public int hashCode() {
int hashCode = 1;
hashCode = 31 * hashCode + Objects.hashCode(applicationName());
hashCode = 31 * hashCode + Objects.hashCode(currentApplicationVersionId());
hashCode = 31 * hashCode + Objects.hashCode(input());
return hashCode;
}
@Override
public boolean equals(Object obj) {
if (this == obj) {
return true;
}
if (obj == null) {
return false;
}
if (!(obj instanceof AddApplicationInputRequest)) {
return false;
}
AddApplicationInputRequest other = (AddApplicationInputRequest) obj;
return Objects.equals(applicationName(), other.applicationName())
&& Objects.equals(currentApplicationVersionId(), other.currentApplicationVersionId())
&& Objects.equals(input(), other.input());
}
@Override
public String toString() {
return ToString.builder("AddApplicationInputRequest").add("ApplicationName", applicationName())
.add("CurrentApplicationVersionId", currentApplicationVersionId()).add("Input", input()).build();
}
public Optional getValueForField(String fieldName, Class clazz) {
switch (fieldName) {
case "ApplicationName":
return Optional.of(clazz.cast(applicationName()));
case "CurrentApplicationVersionId":
return Optional.of(clazz.cast(currentApplicationVersionId()));
case "Input":
return Optional.of(clazz.cast(input()));
default:
return Optional.empty();
}
}
public interface Builder extends KinesisAnalyticsRequest.Builder, CopyableBuilder {
/**
*
* Name of your existing Amazon Kinesis Analytics application to which you want to add the streaming source.
*
*
* @param applicationName
* Name of your existing Amazon Kinesis Analytics application to which you want to add the streaming
* source.
* @return Returns a reference to this object so that method calls can be chained together.
*/
Builder applicationName(String applicationName);
/**
*
* Current version of your Amazon Kinesis Analytics application. You can use the DescribeApplication
* operation to find the current application version.
*
*
* @param currentApplicationVersionId
* Current version of your Amazon Kinesis Analytics application. You can use the
* DescribeApplication operation to find the current application version.
* @return Returns a reference to this object so that method calls can be chained together.
*/
Builder currentApplicationVersionId(Long currentApplicationVersionId);
/**
*
* The Input to add.
*
*
* @param input
* The Input to add.
* @return Returns a reference to this object so that method calls can be chained together.
*/
Builder input(Input input);
/**
*
* The Input to add.
*
* This is a convenience that creates an instance of the {@link Input.Builder} avoiding the need to create one
* manually via {@link Input#builder()}.
*
* When the {@link Consumer} completes, {@link Input.Builder#build()} is called immediately and its result is
* passed to {@link #input(Input)}.
*
* @param input
* a consumer that will call methods on {@link Input.Builder}
* @return Returns a reference to this object so that method calls can be chained together.
* @see #input(Input)
*/
default Builder input(Consumer input) {
return input(Input.builder().apply(input).build());
}
@Override
Builder requestOverrideConfig(AwsRequestOverrideConfig awsRequestOverrideConfig);
}
static final class BuilderImpl extends KinesisAnalyticsRequest.BuilderImpl implements Builder {
private String applicationName;
private Long currentApplicationVersionId;
private Input input;
private BuilderImpl() {
}
private BuilderImpl(AddApplicationInputRequest model) {
applicationName(model.applicationName);
currentApplicationVersionId(model.currentApplicationVersionId);
input(model.input);
}
public final String getApplicationName() {
return applicationName;
}
@Override
public final Builder applicationName(String applicationName) {
this.applicationName = applicationName;
return this;
}
public final void setApplicationName(String applicationName) {
this.applicationName = applicationName;
}
public final Long getCurrentApplicationVersionId() {
return currentApplicationVersionId;
}
@Override
public final Builder currentApplicationVersionId(Long currentApplicationVersionId) {
this.currentApplicationVersionId = currentApplicationVersionId;
return this;
}
public final void setCurrentApplicationVersionId(Long currentApplicationVersionId) {
this.currentApplicationVersionId = currentApplicationVersionId;
}
public final Input.Builder getInput() {
return input != null ? input.toBuilder() : null;
}
@Override
public final Builder input(Input input) {
this.input = input;
return this;
}
public final void setInput(Input.BuilderImpl input) {
this.input = input != null ? input.build() : null;
}
@Override
public Builder requestOverrideConfig(AwsRequestOverrideConfig awsRequestOverrideConfig) {
super.requestOverrideConfig(awsRequestOverrideConfig);
return this;
}
@Override
public Builder requestOverrideConfig(Consumer builderConsumer) {
super.requestOverrideConfig(builderConsumer);
return this;
}
@Override
public AddApplicationInputRequest build() {
return new AddApplicationInputRequest(this);
}
}
}