All Downloads are FREE. Search and download functionalities are using the official Maven repository.
Please wait. This can take some minutes ...
Many resources are needed to download a project. Please understand that we have to compensate our server costs. Thank you in advance.
Project price only 1 $
You can buy this project and download/modify it how often you want.
software.amazon.awssdk.services.pinpoint.model.VoiceTemplateRequest Maven / Gradle / Ivy
Go to download
The AWS Java SDK for Amazon Pinpoint module holds the client classes that are used for communicating
with Amazon Pinpoint Service
/*
* Copyright 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.pinpoint.model;
import java.io.Serializable;
import java.util.Arrays;
import java.util.Collections;
import java.util.List;
import java.util.Map;
import java.util.Objects;
import java.util.Optional;
import java.util.function.BiConsumer;
import java.util.function.Function;
import software.amazon.awssdk.annotations.Generated;
import software.amazon.awssdk.core.SdkField;
import software.amazon.awssdk.core.SdkPojo;
import software.amazon.awssdk.core.protocol.MarshallLocation;
import software.amazon.awssdk.core.protocol.MarshallingType;
import software.amazon.awssdk.core.traits.LocationTrait;
import software.amazon.awssdk.core.traits.MapTrait;
import software.amazon.awssdk.core.util.DefaultSdkAutoConstructMap;
import software.amazon.awssdk.core.util.SdkAutoConstructMap;
import software.amazon.awssdk.utils.ToString;
import software.amazon.awssdk.utils.builder.CopyableBuilder;
import software.amazon.awssdk.utils.builder.ToCopyableBuilder;
/**
*
* Specifies the content and settings for a message template that can be used in messages that are sent through the
* voice channel.
*
*/
@Generated("software.amazon.awssdk:codegen")
public final class VoiceTemplateRequest implements SdkPojo, Serializable,
ToCopyableBuilder {
private static final SdkField BODY_FIELD = SdkField. builder(MarshallingType.STRING).memberName("Body")
.getter(getter(VoiceTemplateRequest::body)).setter(setter(Builder::body))
.traits(LocationTrait.builder().location(MarshallLocation.PAYLOAD).locationName("Body").build()).build();
private static final SdkField DEFAULT_SUBSTITUTIONS_FIELD = SdkField. builder(MarshallingType.STRING)
.memberName("DefaultSubstitutions").getter(getter(VoiceTemplateRequest::defaultSubstitutions))
.setter(setter(Builder::defaultSubstitutions))
.traits(LocationTrait.builder().location(MarshallLocation.PAYLOAD).locationName("DefaultSubstitutions").build())
.build();
private static final SdkField LANGUAGE_CODE_FIELD = SdkField. builder(MarshallingType.STRING)
.memberName("LanguageCode").getter(getter(VoiceTemplateRequest::languageCode)).setter(setter(Builder::languageCode))
.traits(LocationTrait.builder().location(MarshallLocation.PAYLOAD).locationName("LanguageCode").build()).build();
private static final SdkField> TAGS_FIELD = SdkField
.> builder(MarshallingType.MAP)
.memberName("tags")
.getter(getter(VoiceTemplateRequest::tags))
.setter(setter(Builder::tags))
.traits(LocationTrait.builder().location(MarshallLocation.PAYLOAD).locationName("tags").build(),
MapTrait.builder()
.keyLocationName("key")
.valueLocationName("value")
.valueFieldInfo(
SdkField. builder(MarshallingType.STRING)
.traits(LocationTrait.builder().location(MarshallLocation.PAYLOAD)
.locationName("value").build()).build()).build()).build();
private static final SdkField TEMPLATE_DESCRIPTION_FIELD = SdkField. builder(MarshallingType.STRING)
.memberName("TemplateDescription").getter(getter(VoiceTemplateRequest::templateDescription))
.setter(setter(Builder::templateDescription))
.traits(LocationTrait.builder().location(MarshallLocation.PAYLOAD).locationName("TemplateDescription").build())
.build();
private static final SdkField VOICE_ID_FIELD = SdkField. builder(MarshallingType.STRING)
.memberName("VoiceId").getter(getter(VoiceTemplateRequest::voiceId)).setter(setter(Builder::voiceId))
.traits(LocationTrait.builder().location(MarshallLocation.PAYLOAD).locationName("VoiceId").build()).build();
private static final List> SDK_FIELDS = Collections.unmodifiableList(Arrays.asList(BODY_FIELD,
DEFAULT_SUBSTITUTIONS_FIELD, LANGUAGE_CODE_FIELD, TAGS_FIELD, TEMPLATE_DESCRIPTION_FIELD, VOICE_ID_FIELD));
private static final long serialVersionUID = 1L;
private final String body;
private final String defaultSubstitutions;
private final String languageCode;
private final Map tags;
private final String templateDescription;
private final String voiceId;
private VoiceTemplateRequest(BuilderImpl builder) {
this.body = builder.body;
this.defaultSubstitutions = builder.defaultSubstitutions;
this.languageCode = builder.languageCode;
this.tags = builder.tags;
this.templateDescription = builder.templateDescription;
this.voiceId = builder.voiceId;
}
/**
*
* The text of the script to use in messages that are based on the message template, in plain text format.
*
*
* @return The text of the script to use in messages that are based on the message template, in plain text format.
*/
public final String body() {
return body;
}
/**
*
* A JSON object that specifies the default values to use for message variables in the message template. This object
* is a set of key-value pairs. Each key defines a message variable in the template. The corresponding value defines
* the default value for that variable. When you create a message that's based on the template, you can override
* these defaults with message-specific and address-specific variables and values.
*
*
* @return A JSON object that specifies the default values to use for message variables in the message template.
* This object is a set of key-value pairs. Each key defines a message variable in the template. The
* corresponding value defines the default value for that variable. When you create a message that's based
* on the template, you can override these defaults with message-specific and address-specific variables and
* values.
*/
public final String defaultSubstitutions() {
return defaultSubstitutions;
}
/**
*
* The code for the language to use when synthesizing the text of the script in messages that are based on the
* message template. For a list of supported languages and the code for each one, see the Amazon Polly Developer Guide .
*
*
* @return The code for the language to use when synthesizing the text of the script in messages that are based on
* the message template. For a list of supported languages and the code for each one, see the Amazon Polly Developer Guide .
*/
public final String languageCode() {
return languageCode;
}
/**
* Returns true if the Tags property was specified by the sender (it may be empty), or false if the sender did not
* specify the value (it will be empty). For responses returned by the SDK, the sender is the AWS service.
*/
public final boolean hasTags() {
return tags != null && !(tags instanceof SdkAutoConstructMap);
}
/**
*
* A string-to-string map of key-value pairs that defines the tags to associate with the message template. Each tag
* consists of a required tag key and an associated tag value.
*
*
* Attempts to modify the collection returned by this method will result in an UnsupportedOperationException.
*
*
* You can use {@link #hasTags()} to see if a value was sent in this field.
*
*
* @return A string-to-string map of key-value pairs that defines the tags to associate with the message template.
* Each tag consists of a required tag key and an associated tag value.
*/
public final Map tags() {
return tags;
}
/**
*
* A custom description of the message template.
*
*
* @return A custom description of the message template.
*/
public final String templateDescription() {
return templateDescription;
}
/**
*
* The name of the voice to use when delivering messages that are based on the message template. For a list of
* supported voices, see the Amazon Polly
* Developer Guide .
*
*
* @return The name of the voice to use when delivering messages that are based on the message template. For a list
* of supported voices, see the Amazon
* Polly Developer Guide .
*/
public final String voiceId() {
return voiceId;
}
@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 final int hashCode() {
int hashCode = 1;
hashCode = 31 * hashCode + Objects.hashCode(body());
hashCode = 31 * hashCode + Objects.hashCode(defaultSubstitutions());
hashCode = 31 * hashCode + Objects.hashCode(languageCode());
hashCode = 31 * hashCode + Objects.hashCode(hasTags() ? tags() : null);
hashCode = 31 * hashCode + Objects.hashCode(templateDescription());
hashCode = 31 * hashCode + Objects.hashCode(voiceId());
return hashCode;
}
@Override
public final boolean equals(Object obj) {
return equalsBySdkFields(obj);
}
@Override
public final boolean equalsBySdkFields(Object obj) {
if (this == obj) {
return true;
}
if (obj == null) {
return false;
}
if (!(obj instanceof VoiceTemplateRequest)) {
return false;
}
VoiceTemplateRequest other = (VoiceTemplateRequest) obj;
return Objects.equals(body(), other.body()) && Objects.equals(defaultSubstitutions(), other.defaultSubstitutions())
&& Objects.equals(languageCode(), other.languageCode()) && hasTags() == other.hasTags()
&& Objects.equals(tags(), other.tags()) && Objects.equals(templateDescription(), other.templateDescription())
&& Objects.equals(voiceId(), other.voiceId());
}
/**
* 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.
*/
@Override
public final String toString() {
return ToString.builder("VoiceTemplateRequest").add("Body", body()).add("DefaultSubstitutions", defaultSubstitutions())
.add("LanguageCode", languageCode()).add("Tags", hasTags() ? tags() : null)
.add("TemplateDescription", templateDescription()).add("VoiceId", voiceId()).build();
}
public final Optional getValueForField(String fieldName, Class clazz) {
switch (fieldName) {
case "Body":
return Optional.ofNullable(clazz.cast(body()));
case "DefaultSubstitutions":
return Optional.ofNullable(clazz.cast(defaultSubstitutions()));
case "LanguageCode":
return Optional.ofNullable(clazz.cast(languageCode()));
case "tags":
return Optional.ofNullable(clazz.cast(tags()));
case "TemplateDescription":
return Optional.ofNullable(clazz.cast(templateDescription()));
case "VoiceId":
return Optional.ofNullable(clazz.cast(voiceId()));
default:
return Optional.empty();
}
}
@Override
public final List> sdkFields() {
return SDK_FIELDS;
}
private static Function getter(Function g) {
return obj -> g.apply((VoiceTemplateRequest) obj);
}
private static BiConsumer setter(BiConsumer s) {
return (obj, val) -> s.accept((Builder) obj, val);
}
public interface Builder extends SdkPojo, CopyableBuilder {
/**
*
* The text of the script to use in messages that are based on the message template, in plain text format.
*
*
* @param body
* The text of the script to use in messages that are based on the message template, in plain text
* format.
* @return Returns a reference to this object so that method calls can be chained together.
*/
Builder body(String body);
/**
*
* A JSON object that specifies the default values to use for message variables in the message template. This
* object is a set of key-value pairs. Each key defines a message variable in the template. The corresponding
* value defines the default value for that variable. When you create a message that's based on the template,
* you can override these defaults with message-specific and address-specific variables and values.
*
*
* @param defaultSubstitutions
* A JSON object that specifies the default values to use for message variables in the message template.
* This object is a set of key-value pairs. Each key defines a message variable in the template. The
* corresponding value defines the default value for that variable. When you create a message that's
* based on the template, you can override these defaults with message-specific and address-specific
* variables and values.
* @return Returns a reference to this object so that method calls can be chained together.
*/
Builder defaultSubstitutions(String defaultSubstitutions);
/**
*
* The code for the language to use when synthesizing the text of the script in messages that are based on the
* message template. For a list of supported languages and the code for each one, see the Amazon Polly Developer Guide .
*
*
* @param languageCode
* The code for the language to use when synthesizing the text of the script in messages that are based
* on the message template. For a list of supported languages and the code for each one, see the Amazon Polly Developer Guide .
* @return Returns a reference to this object so that method calls can be chained together.
*/
Builder languageCode(String languageCode);
/**
*
* A string-to-string map of key-value pairs that defines the tags to associate with the message template. Each
* tag consists of a required tag key and an associated tag value.
*
*
* @param tags
* A string-to-string map of key-value pairs that defines the tags to associate with the message
* template. Each tag consists of a required tag key and an associated tag value.
* @return Returns a reference to this object so that method calls can be chained together.
*/
Builder tags(Map tags);
/**
*
* A custom description of the message template.
*
*
* @param templateDescription
* A custom description of the message template.
* @return Returns a reference to this object so that method calls can be chained together.
*/
Builder templateDescription(String templateDescription);
/**
*
* The name of the voice to use when delivering messages that are based on the message template. For a list of
* supported voices, see the Amazon Polly
* Developer Guide .
*
*
* @param voiceId
* The name of the voice to use when delivering messages that are based on the message template. For a
* list of supported voices, see the Amazon Polly Developer Guide .
* @return Returns a reference to this object so that method calls can be chained together.
*/
Builder voiceId(String voiceId);
}
static final class BuilderImpl implements Builder {
private String body;
private String defaultSubstitutions;
private String languageCode;
private Map tags = DefaultSdkAutoConstructMap.getInstance();
private String templateDescription;
private String voiceId;
private BuilderImpl() {
}
private BuilderImpl(VoiceTemplateRequest model) {
body(model.body);
defaultSubstitutions(model.defaultSubstitutions);
languageCode(model.languageCode);
tags(model.tags);
templateDescription(model.templateDescription);
voiceId(model.voiceId);
}
public final String getBody() {
return body;
}
@Override
public final Builder body(String body) {
this.body = body;
return this;
}
public final void setBody(String body) {
this.body = body;
}
public final String getDefaultSubstitutions() {
return defaultSubstitutions;
}
@Override
public final Builder defaultSubstitutions(String defaultSubstitutions) {
this.defaultSubstitutions = defaultSubstitutions;
return this;
}
public final void setDefaultSubstitutions(String defaultSubstitutions) {
this.defaultSubstitutions = defaultSubstitutions;
}
public final String getLanguageCode() {
return languageCode;
}
@Override
public final Builder languageCode(String languageCode) {
this.languageCode = languageCode;
return this;
}
public final void setLanguageCode(String languageCode) {
this.languageCode = languageCode;
}
public final Map getTags() {
if (tags instanceof SdkAutoConstructMap) {
return null;
}
return tags;
}
@Override
public final Builder tags(Map tags) {
this.tags = MapOf__stringCopier.copy(tags);
return this;
}
public final void setTags(Map tags) {
this.tags = MapOf__stringCopier.copy(tags);
}
public final String getTemplateDescription() {
return templateDescription;
}
@Override
public final Builder templateDescription(String templateDescription) {
this.templateDescription = templateDescription;
return this;
}
public final void setTemplateDescription(String templateDescription) {
this.templateDescription = templateDescription;
}
public final String getVoiceId() {
return voiceId;
}
@Override
public final Builder voiceId(String voiceId) {
this.voiceId = voiceId;
return this;
}
public final void setVoiceId(String voiceId) {
this.voiceId = voiceId;
}
@Override
public VoiceTemplateRequest build() {
return new VoiceTemplateRequest(this);
}
@Override
public List> sdkFields() {
return SDK_FIELDS;
}
}
}