software.amazon.awssdk.services.appstream.model.UserStackAssociation Maven / Gradle / Ivy
Show all versions of appstream Show documentation
/*
* 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.appstream.model;
import java.io.Serializable;
import java.util.Arrays;
import java.util.Collections;
import java.util.List;
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.utils.ToString;
import software.amazon.awssdk.utils.builder.CopyableBuilder;
import software.amazon.awssdk.utils.builder.ToCopyableBuilder;
/**
*
* Describes a user in the user pool and the associated stack.
*
*/
@Generated("software.amazon.awssdk:codegen")
public final class UserStackAssociation implements SdkPojo, Serializable,
ToCopyableBuilder {
private static final SdkField STACK_NAME_FIELD = SdkField. builder(MarshallingType.STRING)
.memberName("StackName").getter(getter(UserStackAssociation::stackName)).setter(setter(Builder::stackName))
.traits(LocationTrait.builder().location(MarshallLocation.PAYLOAD).locationName("StackName").build()).build();
private static final SdkField USER_NAME_FIELD = SdkField. builder(MarshallingType.STRING)
.memberName("UserName").getter(getter(UserStackAssociation::userName)).setter(setter(Builder::userName))
.traits(LocationTrait.builder().location(MarshallLocation.PAYLOAD).locationName("UserName").build()).build();
private static final SdkField AUTHENTICATION_TYPE_FIELD = SdkField. builder(MarshallingType.STRING)
.memberName("AuthenticationType").getter(getter(UserStackAssociation::authenticationTypeAsString))
.setter(setter(Builder::authenticationType))
.traits(LocationTrait.builder().location(MarshallLocation.PAYLOAD).locationName("AuthenticationType").build())
.build();
private static final SdkField SEND_EMAIL_NOTIFICATION_FIELD = SdkField. builder(MarshallingType.BOOLEAN)
.memberName("SendEmailNotification").getter(getter(UserStackAssociation::sendEmailNotification))
.setter(setter(Builder::sendEmailNotification))
.traits(LocationTrait.builder().location(MarshallLocation.PAYLOAD).locationName("SendEmailNotification").build())
.build();
private static final List> SDK_FIELDS = Collections.unmodifiableList(Arrays.asList(STACK_NAME_FIELD,
USER_NAME_FIELD, AUTHENTICATION_TYPE_FIELD, SEND_EMAIL_NOTIFICATION_FIELD));
private static final long serialVersionUID = 1L;
private final String stackName;
private final String userName;
private final String authenticationType;
private final Boolean sendEmailNotification;
private UserStackAssociation(BuilderImpl builder) {
this.stackName = builder.stackName;
this.userName = builder.userName;
this.authenticationType = builder.authenticationType;
this.sendEmailNotification = builder.sendEmailNotification;
}
/**
*
* The name of the stack that is associated with the user.
*
*
* @return The name of the stack that is associated with the user.
*/
public final String stackName() {
return stackName;
}
/**
*
* The email address of the user who is associated with the stack.
*
*
*
* Users' email addresses are case-sensitive.
*
*
*
* @return The email address of the user who is associated with the stack.
*
* Users' email addresses are case-sensitive.
*
*/
public final String userName() {
return userName;
}
/**
*
* The authentication type for the user.
*
*
* If the service returns an enum value that is not available in the current SDK version,
* {@link #authenticationType} will return {@link AuthenticationType#UNKNOWN_TO_SDK_VERSION}. The raw value returned
* by the service is available from {@link #authenticationTypeAsString}.
*
*
* @return The authentication type for the user.
* @see AuthenticationType
*/
public final AuthenticationType authenticationType() {
return AuthenticationType.fromValue(authenticationType);
}
/**
*
* The authentication type for the user.
*
*
* If the service returns an enum value that is not available in the current SDK version,
* {@link #authenticationType} will return {@link AuthenticationType#UNKNOWN_TO_SDK_VERSION}. The raw value returned
* by the service is available from {@link #authenticationTypeAsString}.
*
*
* @return The authentication type for the user.
* @see AuthenticationType
*/
public final String authenticationTypeAsString() {
return authenticationType;
}
/**
*
* Specifies whether a welcome email is sent to a user after the user is created in the user pool.
*
*
* @return Specifies whether a welcome email is sent to a user after the user is created in the user pool.
*/
public final Boolean sendEmailNotification() {
return sendEmailNotification;
}
@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(stackName());
hashCode = 31 * hashCode + Objects.hashCode(userName());
hashCode = 31 * hashCode + Objects.hashCode(authenticationTypeAsString());
hashCode = 31 * hashCode + Objects.hashCode(sendEmailNotification());
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 UserStackAssociation)) {
return false;
}
UserStackAssociation other = (UserStackAssociation) obj;
return Objects.equals(stackName(), other.stackName()) && Objects.equals(userName(), other.userName())
&& Objects.equals(authenticationTypeAsString(), other.authenticationTypeAsString())
&& Objects.equals(sendEmailNotification(), other.sendEmailNotification());
}
/**
* 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("UserStackAssociation").add("StackName", stackName())
.add("UserName", userName() == null ? null : "*** Sensitive Data Redacted ***")
.add("AuthenticationType", authenticationTypeAsString()).add("SendEmailNotification", sendEmailNotification())
.build();
}
public final Optional getValueForField(String fieldName, Class clazz) {
switch (fieldName) {
case "StackName":
return Optional.ofNullable(clazz.cast(stackName()));
case "UserName":
return Optional.ofNullable(clazz.cast(userName()));
case "AuthenticationType":
return Optional.ofNullable(clazz.cast(authenticationTypeAsString()));
case "SendEmailNotification":
return Optional.ofNullable(clazz.cast(sendEmailNotification()));
default:
return Optional.empty();
}
}
@Override
public final List> sdkFields() {
return SDK_FIELDS;
}
private static Function