tags;
private final Instant createdTime;
private final Instant lastModifiedTime;
private final String viewContentSha256;
private View(BuilderImpl builder) {
this.id = builder.id;
this.arn = builder.arn;
this.name = builder.name;
this.status = builder.status;
this.type = builder.type;
this.description = builder.description;
this.version = builder.version;
this.versionDescription = builder.versionDescription;
this.content = builder.content;
this.tags = builder.tags;
this.createdTime = builder.createdTime;
this.lastModifiedTime = builder.lastModifiedTime;
this.viewContentSha256 = builder.viewContentSha256;
}
/**
*
* The identifier of the view.
*
*
* @return The identifier of the view.
*/
public final String id() {
return id;
}
/**
*
* The Amazon Resource Name (ARN) of the view.
*
*
* @return The Amazon Resource Name (ARN) of the view.
*/
public final String arn() {
return arn;
}
/**
*
* The name of the view.
*
*
* @return The name of the view.
*/
public final String name() {
return name;
}
/**
*
* Indicates the view status as either SAVED
or PUBLISHED
. The PUBLISHED
* status will initiate validation on the content.
*
*
* If the service returns an enum value that is not available in the current SDK version, {@link #status} will
* return {@link ViewStatus#UNKNOWN_TO_SDK_VERSION}. The raw value returned by the service is available from
* {@link #statusAsString}.
*
*
* @return Indicates the view status as either SAVED
or PUBLISHED
. The
* PUBLISHED
status will initiate validation on the content.
* @see ViewStatus
*/
public final ViewStatus status() {
return ViewStatus.fromValue(status);
}
/**
*
* Indicates the view status as either SAVED
or PUBLISHED
. The PUBLISHED
* status will initiate validation on the content.
*
*
* If the service returns an enum value that is not available in the current SDK version, {@link #status} will
* return {@link ViewStatus#UNKNOWN_TO_SDK_VERSION}. The raw value returned by the service is available from
* {@link #statusAsString}.
*
*
* @return Indicates the view status as either SAVED
or PUBLISHED
. The
* PUBLISHED
status will initiate validation on the content.
* @see ViewStatus
*/
public final String statusAsString() {
return status;
}
/**
*
* The type of the view - CUSTOMER_MANAGED
.
*
*
* If the service returns an enum value that is not available in the current SDK version, {@link #type} will return
* {@link ViewType#UNKNOWN_TO_SDK_VERSION}. The raw value returned by the service is available from
* {@link #typeAsString}.
*
*
* @return The type of the view - CUSTOMER_MANAGED
.
* @see ViewType
*/
public final ViewType type() {
return ViewType.fromValue(type);
}
/**
*
* The type of the view - CUSTOMER_MANAGED
.
*
*
* If the service returns an enum value that is not available in the current SDK version, {@link #type} will return
* {@link ViewType#UNKNOWN_TO_SDK_VERSION}. The raw value returned by the service is available from
* {@link #typeAsString}.
*
*
* @return The type of the view - CUSTOMER_MANAGED
.
* @see ViewType
*/
public final String typeAsString() {
return type;
}
/**
*
* The description of the view.
*
*
* @return The description of the view.
*/
public final String description() {
return description;
}
/**
*
* Current version of the view.
*
*
* @return Current version of the view.
*/
public final Integer version() {
return version;
}
/**
*
* The description of the version.
*
*
* @return The description of the version.
*/
public final String versionDescription() {
return versionDescription;
}
/**
*
* View content containing all content necessary to render a view except for runtime input data.
*
*
* @return View content containing all content necessary to render a view except for runtime input data.
*/
public final ViewContent content() {
return content;
}
/**
* For responses, this returns true if the service returned a value for the Tags property. This DOES NOT check that
* the value is non-empty (for which, you should check the {@code isEmpty()} method on the property). This is useful
* because the SDK will never return a null collection or map, but you may need to differentiate between the service
* returning nothing (or null) and the service returning an empty collection or map. For requests, this returns true
* if a value for the property was specified in the request builder, and false if a value was not specified.
*/
public final boolean hasTags() {
return tags != null && !(tags instanceof SdkAutoConstructMap);
}
/**
*
* The tags associated with the view resource (not specific to view version).
*
*
* Attempts to modify the collection returned by this method will result in an UnsupportedOperationException.
*
*
* This method will never return null. If you would like to know whether the service returned this field (so that
* you can differentiate between null and empty), you can use the {@link #hasTags} method.
*
*
* @return The tags associated with the view resource (not specific to view version).
*/
public final Map tags() {
return tags;
}
/**
*
* The timestamp of when the view was created.
*
*
* @return The timestamp of when the view was created.
*/
public final Instant createdTime() {
return createdTime;
}
/**
*
* Latest timestamp of the UpdateViewContent
or CreateViewVersion
operations.
*
*
* @return Latest timestamp of the UpdateViewContent
or CreateViewVersion
operations.
*/
public final Instant lastModifiedTime() {
return lastModifiedTime;
}
/**
*
* Indicates the checksum value of the latest published view content.
*
*
* @return Indicates the checksum value of the latest published view content.
*/
public final String viewContentSha256() {
return viewContentSha256;
}
@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(id());
hashCode = 31 * hashCode + Objects.hashCode(arn());
hashCode = 31 * hashCode + Objects.hashCode(name());
hashCode = 31 * hashCode + Objects.hashCode(statusAsString());
hashCode = 31 * hashCode + Objects.hashCode(typeAsString());
hashCode = 31 * hashCode + Objects.hashCode(description());
hashCode = 31 * hashCode + Objects.hashCode(version());
hashCode = 31 * hashCode + Objects.hashCode(versionDescription());
hashCode = 31 * hashCode + Objects.hashCode(content());
hashCode = 31 * hashCode + Objects.hashCode(hasTags() ? tags() : null);
hashCode = 31 * hashCode + Objects.hashCode(createdTime());
hashCode = 31 * hashCode + Objects.hashCode(lastModifiedTime());
hashCode = 31 * hashCode + Objects.hashCode(viewContentSha256());
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 View)) {
return false;
}
View other = (View) obj;
return Objects.equals(id(), other.id()) && Objects.equals(arn(), other.arn()) && Objects.equals(name(), other.name())
&& Objects.equals(statusAsString(), other.statusAsString())
&& Objects.equals(typeAsString(), other.typeAsString()) && Objects.equals(description(), other.description())
&& Objects.equals(version(), other.version()) && Objects.equals(versionDescription(), other.versionDescription())
&& Objects.equals(content(), other.content()) && hasTags() == other.hasTags()
&& Objects.equals(tags(), other.tags()) && Objects.equals(createdTime(), other.createdTime())
&& Objects.equals(lastModifiedTime(), other.lastModifiedTime())
&& Objects.equals(viewContentSha256(), other.viewContentSha256());
}
/**
* 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("View").add("Id", id()).add("Arn", arn())
.add("Name", name() == null ? null : "*** Sensitive Data Redacted ***").add("Status", statusAsString())
.add("Type", typeAsString()).add("Description", description()).add("Version", version())
.add("VersionDescription", versionDescription()).add("Content", content()).add("Tags", hasTags() ? tags() : null)
.add("CreatedTime", createdTime()).add("LastModifiedTime", lastModifiedTime())
.add("ViewContentSha256", viewContentSha256()).build();
}
public final Optional getValueForField(String fieldName, Class clazz) {
switch (fieldName) {
case "Id":
return Optional.ofNullable(clazz.cast(id()));
case "Arn":
return Optional.ofNullable(clazz.cast(arn()));
case "Name":
return Optional.ofNullable(clazz.cast(name()));
case "Status":
return Optional.ofNullable(clazz.cast(statusAsString()));
case "Type":
return Optional.ofNullable(clazz.cast(typeAsString()));
case "Description":
return Optional.ofNullable(clazz.cast(description()));
case "Version":
return Optional.ofNullable(clazz.cast(version()));
case "VersionDescription":
return Optional.ofNullable(clazz.cast(versionDescription()));
case "Content":
return Optional.ofNullable(clazz.cast(content()));
case "Tags":
return Optional.ofNullable(clazz.cast(tags()));
case "CreatedTime":
return Optional.ofNullable(clazz.cast(createdTime()));
case "LastModifiedTime":
return Optional.ofNullable(clazz.cast(lastModifiedTime()));
case "ViewContentSha256":
return Optional.ofNullable(clazz.cast(viewContentSha256()));
default:
return Optional.empty();
}
}
@Override
public final List> sdkFields() {
return SDK_FIELDS;
}
private static Function getter(Function g) {
return obj -> g.apply((View) obj);
}
private static BiConsumer setter(BiConsumer s) {
return (obj, val) -> s.accept((Builder) obj, val);
}
public interface Builder extends SdkPojo, CopyableBuilder {
/**
*
* The identifier of the view.
*
*
* @param id
* The identifier of the view.
* @return Returns a reference to this object so that method calls can be chained together.
*/
Builder id(String id);
/**
*
* The Amazon Resource Name (ARN) of the view.
*
*
* @param arn
* The Amazon Resource Name (ARN) of the view.
* @return Returns a reference to this object so that method calls can be chained together.
*/
Builder arn(String arn);
/**
*
* The name of the view.
*
*
* @param name
* The name of the view.
* @return Returns a reference to this object so that method calls can be chained together.
*/
Builder name(String name);
/**
*
* Indicates the view status as either SAVED
or PUBLISHED
. The PUBLISHED
* status will initiate validation on the content.
*
*
* @param status
* Indicates the view status as either SAVED
or PUBLISHED
. The
* PUBLISHED
status will initiate validation on the content.
* @see ViewStatus
* @return Returns a reference to this object so that method calls can be chained together.
* @see ViewStatus
*/
Builder status(String status);
/**
*
* Indicates the view status as either SAVED
or PUBLISHED
. The PUBLISHED
* status will initiate validation on the content.
*
*
* @param status
* Indicates the view status as either SAVED
or PUBLISHED
. The
* PUBLISHED
status will initiate validation on the content.
* @see ViewStatus
* @return Returns a reference to this object so that method calls can be chained together.
* @see ViewStatus
*/
Builder status(ViewStatus status);
/**
*
* The type of the view - CUSTOMER_MANAGED
.
*
*
* @param type
* The type of the view - CUSTOMER_MANAGED
.
* @see ViewType
* @return Returns a reference to this object so that method calls can be chained together.
* @see ViewType
*/
Builder type(String type);
/**
*
* The type of the view - CUSTOMER_MANAGED
.
*
*
* @param type
* The type of the view - CUSTOMER_MANAGED
.
* @see ViewType
* @return Returns a reference to this object so that method calls can be chained together.
* @see ViewType
*/
Builder type(ViewType type);
/**
*
* The description of the view.
*
*
* @param description
* The description of the view.
* @return Returns a reference to this object so that method calls can be chained together.
*/
Builder description(String description);
/**
*
* Current version of the view.
*
*
* @param version
* Current version of the view.
* @return Returns a reference to this object so that method calls can be chained together.
*/
Builder version(Integer version);
/**
*
* The description of the version.
*
*
* @param versionDescription
* The description of the version.
* @return Returns a reference to this object so that method calls can be chained together.
*/
Builder versionDescription(String versionDescription);
/**
*
* View content containing all content necessary to render a view except for runtime input data.
*
*
* @param content
* View content containing all content necessary to render a view except for runtime input data.
* @return Returns a reference to this object so that method calls can be chained together.
*/
Builder content(ViewContent content);
/**
*
* View content containing all content necessary to render a view except for runtime input data.
*
* This is a convenience method that creates an instance of the {@link ViewContent.Builder} avoiding the need to
* create one manually via {@link ViewContent#builder()}.
*
*
* When the {@link Consumer} completes, {@link ViewContent.Builder#build()} is called immediately and its result
* is passed to {@link #content(ViewContent)}.
*
* @param content
* a consumer that will call methods on {@link ViewContent.Builder}
* @return Returns a reference to this object so that method calls can be chained together.
* @see #content(ViewContent)
*/
default Builder content(Consumer content) {
return content(ViewContent.builder().applyMutation(content).build());
}
/**
*
* The tags associated with the view resource (not specific to view version).
*
*
* @param tags
* The tags associated with the view resource (not specific to view version).
* @return Returns a reference to this object so that method calls can be chained together.
*/
Builder tags(Map tags);
/**
*
* The timestamp of when the view was created.
*
*
* @param createdTime
* The timestamp of when the view was created.
* @return Returns a reference to this object so that method calls can be chained together.
*/
Builder createdTime(Instant createdTime);
/**
*
* Latest timestamp of the UpdateViewContent
or CreateViewVersion
operations.
*
*
* @param lastModifiedTime
* Latest timestamp of the UpdateViewContent
or CreateViewVersion
operations.
* @return Returns a reference to this object so that method calls can be chained together.
*/
Builder lastModifiedTime(Instant lastModifiedTime);
/**
*
* Indicates the checksum value of the latest published view content.
*
*
* @param viewContentSha256
* Indicates the checksum value of the latest published view content.
* @return Returns a reference to this object so that method calls can be chained together.
*/
Builder viewContentSha256(String viewContentSha256);
}
static final class BuilderImpl implements Builder {
private String id;
private String arn;
private String name;
private String status;
private String type;
private String description;
private Integer version;
private String versionDescription;
private ViewContent content;
private Map tags = DefaultSdkAutoConstructMap.getInstance();
private Instant createdTime;
private Instant lastModifiedTime;
private String viewContentSha256;
private BuilderImpl() {
}
private BuilderImpl(View model) {
id(model.id);
arn(model.arn);
name(model.name);
status(model.status);
type(model.type);
description(model.description);
version(model.version);
versionDescription(model.versionDescription);
content(model.content);
tags(model.tags);
createdTime(model.createdTime);
lastModifiedTime(model.lastModifiedTime);
viewContentSha256(model.viewContentSha256);
}
public final String getId() {
return id;
}
public final void setId(String id) {
this.id = id;
}
@Override
public final Builder id(String id) {
this.id = id;
return this;
}
public final String getArn() {
return arn;
}
public final void setArn(String arn) {
this.arn = arn;
}
@Override
public final Builder arn(String arn) {
this.arn = arn;
return this;
}
public final String getName() {
return name;
}
public final void setName(String name) {
this.name = name;
}
@Override
public final Builder name(String name) {
this.name = name;
return this;
}
public final String getStatus() {
return status;
}
public final void setStatus(String status) {
this.status = status;
}
@Override
public final Builder status(String status) {
this.status = status;
return this;
}
@Override
public final Builder status(ViewStatus status) {
this.status(status == null ? null : status.toString());
return this;
}
public final String getType() {
return type;
}
public final void setType(String type) {
this.type = type;
}
@Override
public final Builder type(String type) {
this.type = type;
return this;
}
@Override
public final Builder type(ViewType type) {
this.type(type == null ? null : type.toString());
return this;
}
public final String getDescription() {
return description;
}
public final void setDescription(String description) {
this.description = description;
}
@Override
public final Builder description(String description) {
this.description = description;
return this;
}
public final Integer getVersion() {
return version;
}
public final void setVersion(Integer version) {
this.version = version;
}
@Override
public final Builder version(Integer version) {
this.version = version;
return this;
}
public final String getVersionDescription() {
return versionDescription;
}
public final void setVersionDescription(String versionDescription) {
this.versionDescription = versionDescription;
}
@Override
public final Builder versionDescription(String versionDescription) {
this.versionDescription = versionDescription;
return this;
}
public final ViewContent.Builder getContent() {
return content != null ? content.toBuilder() : null;
}
public final void setContent(ViewContent.BuilderImpl content) {
this.content = content != null ? content.build() : null;
}
@Override
public final Builder content(ViewContent content) {
this.content = content;
return this;
}
public final Map getTags() {
if (tags instanceof SdkAutoConstructMap) {
return null;
}
return tags;
}
public final void setTags(Map tags) {
this.tags = TagMapCopier.copy(tags);
}
@Override
public final Builder tags(Map tags) {
this.tags = TagMapCopier.copy(tags);
return this;
}
public final Instant getCreatedTime() {
return createdTime;
}
public final void setCreatedTime(Instant createdTime) {
this.createdTime = createdTime;
}
@Override
public final Builder createdTime(Instant createdTime) {
this.createdTime = createdTime;
return this;
}
public final Instant getLastModifiedTime() {
return lastModifiedTime;
}
public final void setLastModifiedTime(Instant lastModifiedTime) {
this.lastModifiedTime = lastModifiedTime;
}
@Override
public final Builder lastModifiedTime(Instant lastModifiedTime) {
this.lastModifiedTime = lastModifiedTime;
return this;
}
public final String getViewContentSha256() {
return viewContentSha256;
}
public final void setViewContentSha256(String viewContentSha256) {
this.viewContentSha256 = viewContentSha256;
}
@Override
public final Builder viewContentSha256(String viewContentSha256) {
this.viewContentSha256 = viewContentSha256;
return this;
}
@Override
public View build() {
return new View(this);
}
@Override
public List> sdkFields() {
return SDK_FIELDS;
}
}
}