software.amazon.awssdk.services.cloudfront.model.FieldLevelEncryptionProfileSummary Maven / Gradle / Ivy
Go to download
Show more of this group Show more artifacts with this name
Show all versions of cloudfront Show documentation
Show all versions of cloudfront Show documentation
The AWS Java SDK for Amazon CloudFront module holds the client classes that are used for communicating
with Amazon CloudFront 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.cloudfront.model;
import java.io.Serializable;
import java.time.Instant;
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.Consumer;
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;
/**
*
* The field-level encryption profile summary.
*
*/
@Generated("software.amazon.awssdk:codegen")
public final class FieldLevelEncryptionProfileSummary implements SdkPojo, Serializable,
ToCopyableBuilder {
private static final SdkField ID_FIELD = SdkField
. builder(MarshallingType.STRING)
.memberName("Id")
.getter(getter(FieldLevelEncryptionProfileSummary::id))
.setter(setter(Builder::id))
.traits(LocationTrait.builder().location(MarshallLocation.PAYLOAD).locationName("Id").unmarshallLocationName("Id")
.build()).build();
private static final SdkField LAST_MODIFIED_TIME_FIELD = SdkField
. builder(MarshallingType.INSTANT)
.memberName("LastModifiedTime")
.getter(getter(FieldLevelEncryptionProfileSummary::lastModifiedTime))
.setter(setter(Builder::lastModifiedTime))
.traits(LocationTrait.builder().location(MarshallLocation.PAYLOAD).locationName("LastModifiedTime")
.unmarshallLocationName("LastModifiedTime").build()).build();
private static final SdkField NAME_FIELD = SdkField
. builder(MarshallingType.STRING)
.memberName("Name")
.getter(getter(FieldLevelEncryptionProfileSummary::name))
.setter(setter(Builder::name))
.traits(LocationTrait.builder().location(MarshallLocation.PAYLOAD).locationName("Name")
.unmarshallLocationName("Name").build()).build();
private static final SdkField ENCRYPTION_ENTITIES_FIELD = SdkField
. builder(MarshallingType.SDK_POJO)
.memberName("EncryptionEntities")
.getter(getter(FieldLevelEncryptionProfileSummary::encryptionEntities))
.setter(setter(Builder::encryptionEntities))
.constructor(EncryptionEntities::builder)
.traits(LocationTrait.builder().location(MarshallLocation.PAYLOAD).locationName("EncryptionEntities")
.unmarshallLocationName("EncryptionEntities").build()).build();
private static final SdkField COMMENT_FIELD = SdkField
. builder(MarshallingType.STRING)
.memberName("Comment")
.getter(getter(FieldLevelEncryptionProfileSummary::comment))
.setter(setter(Builder::comment))
.traits(LocationTrait.builder().location(MarshallLocation.PAYLOAD).locationName("Comment")
.unmarshallLocationName("Comment").build()).build();
private static final List> SDK_FIELDS = Collections.unmodifiableList(Arrays.asList(ID_FIELD,
LAST_MODIFIED_TIME_FIELD, NAME_FIELD, ENCRYPTION_ENTITIES_FIELD, COMMENT_FIELD));
private static final long serialVersionUID = 1L;
private final String id;
private final Instant lastModifiedTime;
private final String name;
private final EncryptionEntities encryptionEntities;
private final String comment;
private FieldLevelEncryptionProfileSummary(BuilderImpl builder) {
this.id = builder.id;
this.lastModifiedTime = builder.lastModifiedTime;
this.name = builder.name;
this.encryptionEntities = builder.encryptionEntities;
this.comment = builder.comment;
}
/**
*
* ID for the field-level encryption profile summary.
*
*
* @return ID for the field-level encryption profile summary.
*/
public final String id() {
return id;
}
/**
*
* The time when the field-level encryption profile summary was last updated.
*
*
* @return The time when the field-level encryption profile summary was last updated.
*/
public final Instant lastModifiedTime() {
return lastModifiedTime;
}
/**
*
* Name for the field-level encryption profile summary.
*
*
* @return Name for the field-level encryption profile summary.
*/
public final String name() {
return name;
}
/**
*
* A complex data type of encryption entities for the field-level encryption profile that include the public key ID,
* provider, and field patterns for specifying which fields to encrypt with this key.
*
*
* @return A complex data type of encryption entities for the field-level encryption profile that include the public
* key ID, provider, and field patterns for specifying which fields to encrypt with this key.
*/
public final EncryptionEntities encryptionEntities() {
return encryptionEntities;
}
/**
*
* An optional comment for the field-level encryption profile summary. The comment cannot be longer than 128
* characters.
*
*
* @return An optional comment for the field-level encryption profile summary. The comment cannot be longer than 128
* characters.
*/
public final String comment() {
return comment;
}
@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(id());
hashCode = 31 * hashCode + Objects.hashCode(lastModifiedTime());
hashCode = 31 * hashCode + Objects.hashCode(name());
hashCode = 31 * hashCode + Objects.hashCode(encryptionEntities());
hashCode = 31 * hashCode + Objects.hashCode(comment());
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 FieldLevelEncryptionProfileSummary)) {
return false;
}
FieldLevelEncryptionProfileSummary other = (FieldLevelEncryptionProfileSummary) obj;
return Objects.equals(id(), other.id()) && Objects.equals(lastModifiedTime(), other.lastModifiedTime())
&& Objects.equals(name(), other.name()) && Objects.equals(encryptionEntities(), other.encryptionEntities())
&& Objects.equals(comment(), other.comment());
}
/**
* 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("FieldLevelEncryptionProfileSummary").add("Id", id()).add("LastModifiedTime", lastModifiedTime())
.add("Name", name()).add("EncryptionEntities", encryptionEntities()).add("Comment", comment()).build();
}
public final Optional getValueForField(String fieldName, Class clazz) {
switch (fieldName) {
case "Id":
return Optional.ofNullable(clazz.cast(id()));
case "LastModifiedTime":
return Optional.ofNullable(clazz.cast(lastModifiedTime()));
case "Name":
return Optional.ofNullable(clazz.cast(name()));
case "EncryptionEntities":
return Optional.ofNullable(clazz.cast(encryptionEntities()));
case "Comment":
return Optional.ofNullable(clazz.cast(comment()));
default:
return Optional.empty();
}
}
@Override
public final List> sdkFields() {
return SDK_FIELDS;
}
private static Function