software.amazon.awssdk.services.emr.model.KerberosAttributes Maven / Gradle / Ivy
Show all versions of emr 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.emr.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;
/**
*
* Attributes for Kerberos configuration when Kerberos authentication is enabled using a security configuration. For
* more information see Use Kerberos
* Authentication in the Amazon EMR Management Guide.
*
*/
@Generated("software.amazon.awssdk:codegen")
public final class KerberosAttributes implements SdkPojo, Serializable,
ToCopyableBuilder {
private static final SdkField REALM_FIELD = SdkField. builder(MarshallingType.STRING).memberName("Realm")
.getter(getter(KerberosAttributes::realm)).setter(setter(Builder::realm))
.traits(LocationTrait.builder().location(MarshallLocation.PAYLOAD).locationName("Realm").build()).build();
private static final SdkField KDC_ADMIN_PASSWORD_FIELD = SdkField. builder(MarshallingType.STRING)
.memberName("KdcAdminPassword").getter(getter(KerberosAttributes::kdcAdminPassword))
.setter(setter(Builder::kdcAdminPassword))
.traits(LocationTrait.builder().location(MarshallLocation.PAYLOAD).locationName("KdcAdminPassword").build()).build();
private static final SdkField CROSS_REALM_TRUST_PRINCIPAL_PASSWORD_FIELD = SdkField
. builder(MarshallingType.STRING)
.memberName("CrossRealmTrustPrincipalPassword")
.getter(getter(KerberosAttributes::crossRealmTrustPrincipalPassword))
.setter(setter(Builder::crossRealmTrustPrincipalPassword))
.traits(LocationTrait.builder().location(MarshallLocation.PAYLOAD).locationName("CrossRealmTrustPrincipalPassword")
.build()).build();
private static final SdkField AD_DOMAIN_JOIN_USER_FIELD = SdkField. builder(MarshallingType.STRING)
.memberName("ADDomainJoinUser").getter(getter(KerberosAttributes::adDomainJoinUser))
.setter(setter(Builder::adDomainJoinUser))
.traits(LocationTrait.builder().location(MarshallLocation.PAYLOAD).locationName("ADDomainJoinUser").build()).build();
private static final SdkField AD_DOMAIN_JOIN_PASSWORD_FIELD = SdkField. builder(MarshallingType.STRING)
.memberName("ADDomainJoinPassword").getter(getter(KerberosAttributes::adDomainJoinPassword))
.setter(setter(Builder::adDomainJoinPassword))
.traits(LocationTrait.builder().location(MarshallLocation.PAYLOAD).locationName("ADDomainJoinPassword").build())
.build();
private static final List> SDK_FIELDS = Collections.unmodifiableList(Arrays.asList(REALM_FIELD,
KDC_ADMIN_PASSWORD_FIELD, CROSS_REALM_TRUST_PRINCIPAL_PASSWORD_FIELD, AD_DOMAIN_JOIN_USER_FIELD,
AD_DOMAIN_JOIN_PASSWORD_FIELD));
private static final long serialVersionUID = 1L;
private final String realm;
private final String kdcAdminPassword;
private final String crossRealmTrustPrincipalPassword;
private final String adDomainJoinUser;
private final String adDomainJoinPassword;
private KerberosAttributes(BuilderImpl builder) {
this.realm = builder.realm;
this.kdcAdminPassword = builder.kdcAdminPassword;
this.crossRealmTrustPrincipalPassword = builder.crossRealmTrustPrincipalPassword;
this.adDomainJoinUser = builder.adDomainJoinUser;
this.adDomainJoinPassword = builder.adDomainJoinPassword;
}
/**
*
* The name of the Kerberos realm to which all nodes in a cluster belong. For example, EC2.INTERNAL
.
*
*
* @return The name of the Kerberos realm to which all nodes in a cluster belong. For example,
* EC2.INTERNAL
.
*/
public final String realm() {
return realm;
}
/**
*
* The password used within the cluster for the kadmin service on the cluster-dedicated KDC, which maintains
* Kerberos principals, password policies, and keytabs for the cluster.
*
*
* @return The password used within the cluster for the kadmin service on the cluster-dedicated KDC, which maintains
* Kerberos principals, password policies, and keytabs for the cluster.
*/
public final String kdcAdminPassword() {
return kdcAdminPassword;
}
/**
*
* Required only when establishing a cross-realm trust with a KDC in a different realm. The cross-realm principal
* password, which must be identical across realms.
*
*
* @return Required only when establishing a cross-realm trust with a KDC in a different realm. The cross-realm
* principal password, which must be identical across realms.
*/
public final String crossRealmTrustPrincipalPassword() {
return crossRealmTrustPrincipalPassword;
}
/**
*
* Required only when establishing a cross-realm trust with an Active Directory domain. A user with sufficient
* privileges to join resources to the domain.
*
*
* @return Required only when establishing a cross-realm trust with an Active Directory domain. A user with
* sufficient privileges to join resources to the domain.
*/
public final String adDomainJoinUser() {
return adDomainJoinUser;
}
/**
*
* The Active Directory password for ADDomainJoinUser
.
*
*
* @return The Active Directory password for ADDomainJoinUser
.
*/
public final String adDomainJoinPassword() {
return adDomainJoinPassword;
}
@Override
public Builder toBuilder() {
return new BuilderImpl(this);
}
public static Builder builder() {
return new BuilderImpl();
}
public static Class serializableBuilderClass() {
return BuilderImpl.class;
}
@Override
public final int hashCode() {
int hashCode = 1;
hashCode = 31 * hashCode + Objects.hashCode(realm());
hashCode = 31 * hashCode + Objects.hashCode(kdcAdminPassword());
hashCode = 31 * hashCode + Objects.hashCode(crossRealmTrustPrincipalPassword());
hashCode = 31 * hashCode + Objects.hashCode(adDomainJoinUser());
hashCode = 31 * hashCode + Objects.hashCode(adDomainJoinPassword());
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 KerberosAttributes)) {
return false;
}
KerberosAttributes other = (KerberosAttributes) obj;
return Objects.equals(realm(), other.realm()) && Objects.equals(kdcAdminPassword(), other.kdcAdminPassword())
&& Objects.equals(crossRealmTrustPrincipalPassword(), other.crossRealmTrustPrincipalPassword())
&& Objects.equals(adDomainJoinUser(), other.adDomainJoinUser())
&& Objects.equals(adDomainJoinPassword(), other.adDomainJoinPassword());
}
/**
* 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("KerberosAttributes").add("Realm", realm()).add("KdcAdminPassword", kdcAdminPassword())
.add("CrossRealmTrustPrincipalPassword", crossRealmTrustPrincipalPassword())
.add("ADDomainJoinUser", adDomainJoinUser()).add("ADDomainJoinPassword", adDomainJoinPassword()).build();
}
public final Optional getValueForField(String fieldName, Class clazz) {
switch (fieldName) {
case "Realm":
return Optional.ofNullable(clazz.cast(realm()));
case "KdcAdminPassword":
return Optional.ofNullable(clazz.cast(kdcAdminPassword()));
case "CrossRealmTrustPrincipalPassword":
return Optional.ofNullable(clazz.cast(crossRealmTrustPrincipalPassword()));
case "ADDomainJoinUser":
return Optional.ofNullable(clazz.cast(adDomainJoinUser()));
case "ADDomainJoinPassword":
return Optional.ofNullable(clazz.cast(adDomainJoinPassword()));
default:
return Optional.empty();
}
}
@Override
public final List> sdkFields() {
return SDK_FIELDS;
}
private static Function