/* * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. */ package dev.plexapi.sdk.models.operations; import com.fasterxml.jackson.annotation.JsonCreator; import com.fasterxml.jackson.annotation.JsonIgnore; import com.fasterxml.jackson.annotation.JsonInclude.Include; import com.fasterxml.jackson.annotation.JsonInclude; import com.fasterxml.jackson.annotation.JsonProperty; import dev.plexapi.sdk.utils.Utils; import java.lang.Boolean; import java.lang.Double; import java.lang.Integer; import java.lang.Long; import java.lang.Override; import java.lang.String; import java.lang.SuppressWarnings; import java.util.List; import java.util.Objects; import java.util.Optional; public class GetCountriesLibraryMediaContainer { @JsonProperty("size") private double size; @JsonInclude(Include.NON_ABSENT) @JsonProperty("offset") private Optional offset; @JsonInclude(Include.NON_ABSENT) @JsonProperty("totalSize") private Optional totalSize; @JsonProperty("identifier") private String identifier; @JsonProperty("allowSync") private boolean allowSync; @JsonProperty("art") private String art; @JsonProperty("content") private String content; @JsonProperty("mediaTagPrefix") private String mediaTagPrefix; @JsonProperty("mediaTagVersion") private long mediaTagVersion; @JsonProperty("nocache") private boolean nocache; @JsonProperty("thumb") private String thumb; @JsonProperty("title1") private String title1; @JsonProperty("title2") private String title2; @JsonProperty("viewGroup") private String viewGroup; @JsonInclude(Include.NON_ABSENT) @JsonProperty("Directory") private Optional> directory; @JsonCreator public GetCountriesLibraryMediaContainer( @JsonProperty("size") double size, @JsonProperty("offset") Optional offset, @JsonProperty("totalSize") Optional totalSize, @JsonProperty("identifier") String identifier, @JsonProperty("allowSync") boolean allowSync, @JsonProperty("art") String art, @JsonProperty("content") String content, @JsonProperty("mediaTagPrefix") String mediaTagPrefix, @JsonProperty("mediaTagVersion") long mediaTagVersion, @JsonProperty("nocache") boolean nocache, @JsonProperty("thumb") String thumb, @JsonProperty("title1") String title1, @JsonProperty("title2") String title2, @JsonProperty("viewGroup") String viewGroup, @JsonProperty("Directory") Optional> directory) { Utils.checkNotNull(size, "size"); Utils.checkNotNull(offset, "offset"); Utils.checkNotNull(totalSize, "totalSize"); Utils.checkNotNull(identifier, "identifier"); Utils.checkNotNull(allowSync, "allowSync"); Utils.checkNotNull(art, "art"); Utils.checkNotNull(content, "content"); Utils.checkNotNull(mediaTagPrefix, "mediaTagPrefix"); Utils.checkNotNull(mediaTagVersion, "mediaTagVersion"); Utils.checkNotNull(nocache, "nocache"); Utils.checkNotNull(thumb, "thumb"); Utils.checkNotNull(title1, "title1"); Utils.checkNotNull(title2, "title2"); Utils.checkNotNull(viewGroup, "viewGroup"); Utils.checkNotNull(directory, "directory"); this.size = size; this.offset = offset; this.totalSize = totalSize; this.identifier = identifier; this.allowSync = allowSync; this.art = art; this.content = content; this.mediaTagPrefix = mediaTagPrefix; this.mediaTagVersion = mediaTagVersion; this.nocache = nocache; this.thumb = thumb; this.title1 = title1; this.title2 = title2; this.viewGroup = viewGroup; this.directory = directory; } public GetCountriesLibraryMediaContainer( double size, String identifier, boolean allowSync, String art, String content, String mediaTagPrefix, long mediaTagVersion, boolean nocache, String thumb, String title1, String title2, String viewGroup) { this(size, Optional.empty(), Optional.empty(), identifier, allowSync, art, content, mediaTagPrefix, mediaTagVersion, nocache, thumb, title1, title2, viewGroup, Optional.empty()); } @JsonIgnore public double size() { return size; } @JsonIgnore public Optional offset() { return offset; } @JsonIgnore public Optional totalSize() { return totalSize; } @JsonIgnore public String identifier() { return identifier; } @JsonIgnore public boolean allowSync() { return allowSync; } @JsonIgnore public String art() { return art; } @JsonIgnore public String content() { return content; } @JsonIgnore public String mediaTagPrefix() { return mediaTagPrefix; } @JsonIgnore public long mediaTagVersion() { return mediaTagVersion; } @JsonIgnore public boolean nocache() { return nocache; } @JsonIgnore public String thumb() { return thumb; } @JsonIgnore public String title1() { return title1; } @JsonIgnore public String title2() { return title2; } @JsonIgnore public String viewGroup() { return viewGroup; } @SuppressWarnings("unchecked") @JsonIgnore public Optional> directory() { return (Optional>) directory; } public final static Builder builder() { return new Builder(); } public GetCountriesLibraryMediaContainer withSize(double size) { Utils.checkNotNull(size, "size"); this.size = size; return this; } public GetCountriesLibraryMediaContainer withOffset(int offset) { Utils.checkNotNull(offset, "offset"); this.offset = Optional.ofNullable(offset); return this; } public GetCountriesLibraryMediaContainer withOffset(Optional offset) { Utils.checkNotNull(offset, "offset"); this.offset = offset; return this; } public GetCountriesLibraryMediaContainer withTotalSize(int totalSize) { Utils.checkNotNull(totalSize, "totalSize"); this.totalSize = Optional.ofNullable(totalSize); return this; } public GetCountriesLibraryMediaContainer withTotalSize(Optional totalSize) { Utils.checkNotNull(totalSize, "totalSize"); this.totalSize = totalSize; return this; } public GetCountriesLibraryMediaContainer withIdentifier(String identifier) { Utils.checkNotNull(identifier, "identifier"); this.identifier = identifier; return this; } public GetCountriesLibraryMediaContainer withAllowSync(boolean allowSync) { Utils.checkNotNull(allowSync, "allowSync"); this.allowSync = allowSync; return this; } public GetCountriesLibraryMediaContainer withArt(String art) { Utils.checkNotNull(art, "art"); this.art = art; return this; } public GetCountriesLibraryMediaContainer withContent(String content) { Utils.checkNotNull(content, "content"); this.content = content; return this; } public GetCountriesLibraryMediaContainer withMediaTagPrefix(String mediaTagPrefix) { Utils.checkNotNull(mediaTagPrefix, "mediaTagPrefix"); this.mediaTagPrefix = mediaTagPrefix; return this; } public GetCountriesLibraryMediaContainer withMediaTagVersion(long mediaTagVersion) { Utils.checkNotNull(mediaTagVersion, "mediaTagVersion"); this.mediaTagVersion = mediaTagVersion; return this; } public GetCountriesLibraryMediaContainer withNocache(boolean nocache) { Utils.checkNotNull(nocache, "nocache"); this.nocache = nocache; return this; } public GetCountriesLibraryMediaContainer withThumb(String thumb) { Utils.checkNotNull(thumb, "thumb"); this.thumb = thumb; return this; } public GetCountriesLibraryMediaContainer withTitle1(String title1) { Utils.checkNotNull(title1, "title1"); this.title1 = title1; return this; } public GetCountriesLibraryMediaContainer withTitle2(String title2) { Utils.checkNotNull(title2, "title2"); this.title2 = title2; return this; } public GetCountriesLibraryMediaContainer withViewGroup(String viewGroup) { Utils.checkNotNull(viewGroup, "viewGroup"); this.viewGroup = viewGroup; return this; } public GetCountriesLibraryMediaContainer withDirectory(List directory) { Utils.checkNotNull(directory, "directory"); this.directory = Optional.ofNullable(directory); return this; } public GetCountriesLibraryMediaContainer withDirectory(Optional> directory) { Utils.checkNotNull(directory, "directory"); this.directory = directory; return this; } @Override public boolean equals(java.lang.Object o) { if (this == o) { return true; } if (o == null || getClass() != o.getClass()) { return false; } GetCountriesLibraryMediaContainer other = (GetCountriesLibraryMediaContainer) o; return Objects.deepEquals(this.size, other.size) && Objects.deepEquals(this.offset, other.offset) && Objects.deepEquals(this.totalSize, other.totalSize) && Objects.deepEquals(this.identifier, other.identifier) && Objects.deepEquals(this.allowSync, other.allowSync) && Objects.deepEquals(this.art, other.art) && Objects.deepEquals(this.content, other.content) && Objects.deepEquals(this.mediaTagPrefix, other.mediaTagPrefix) && Objects.deepEquals(this.mediaTagVersion, other.mediaTagVersion) && Objects.deepEquals(this.nocache, other.nocache) && Objects.deepEquals(this.thumb, other.thumb) && Objects.deepEquals(this.title1, other.title1) && Objects.deepEquals(this.title2, other.title2) && Objects.deepEquals(this.viewGroup, other.viewGroup) && Objects.deepEquals(this.directory, other.directory); } @Override public int hashCode() { return Objects.hash( size, offset, totalSize, identifier, allowSync, art, content, mediaTagPrefix, mediaTagVersion, nocache, thumb, title1, title2, viewGroup, directory); } @Override public String toString() { return Utils.toString(GetCountriesLibraryMediaContainer.class, "size", size, "offset", offset, "totalSize", totalSize, "identifier", identifier, "allowSync", allowSync, "art", art, "content", content, "mediaTagPrefix", mediaTagPrefix, "mediaTagVersion", mediaTagVersion, "nocache", nocache, "thumb", thumb, "title1", title1, "title2", title2, "viewGroup", viewGroup, "directory", directory); } public final static class Builder { private Double size; private Optional offset = Optional.empty(); private Optional totalSize = Optional.empty(); private String identifier; private Boolean allowSync; private String art; private String content; private String mediaTagPrefix; private Long mediaTagVersion; private Boolean nocache; private String thumb; private String title1; private String title2; private String viewGroup; private Optional> directory = Optional.empty(); private Builder() { // force use of static builder() method } public Builder size(double size) { Utils.checkNotNull(size, "size"); this.size = size; return this; } public Builder offset(int offset) { Utils.checkNotNull(offset, "offset"); this.offset = Optional.ofNullable(offset); return this; } public Builder offset(Optional offset) { Utils.checkNotNull(offset, "offset"); this.offset = offset; return this; } public Builder totalSize(int totalSize) { Utils.checkNotNull(totalSize, "totalSize"); this.totalSize = Optional.ofNullable(totalSize); return this; } public Builder totalSize(Optional totalSize) { Utils.checkNotNull(totalSize, "totalSize"); this.totalSize = totalSize; return this; } public Builder identifier(String identifier) { Utils.checkNotNull(identifier, "identifier"); this.identifier = identifier; return this; } public Builder allowSync(boolean allowSync) { Utils.checkNotNull(allowSync, "allowSync"); this.allowSync = allowSync; return this; } public Builder art(String art) { Utils.checkNotNull(art, "art"); this.art = art; return this; } public Builder content(String content) { Utils.checkNotNull(content, "content"); this.content = content; return this; } public Builder mediaTagPrefix(String mediaTagPrefix) { Utils.checkNotNull(mediaTagPrefix, "mediaTagPrefix"); this.mediaTagPrefix = mediaTagPrefix; return this; } public Builder mediaTagVersion(long mediaTagVersion) { Utils.checkNotNull(mediaTagVersion, "mediaTagVersion"); this.mediaTagVersion = mediaTagVersion; return this; } public Builder nocache(boolean nocache) { Utils.checkNotNull(nocache, "nocache"); this.nocache = nocache; return this; } public Builder thumb(String thumb) { Utils.checkNotNull(thumb, "thumb"); this.thumb = thumb; return this; } public Builder title1(String title1) { Utils.checkNotNull(title1, "title1"); this.title1 = title1; return this; } public Builder title2(String title2) { Utils.checkNotNull(title2, "title2"); this.title2 = title2; return this; } public Builder viewGroup(String viewGroup) { Utils.checkNotNull(viewGroup, "viewGroup"); this.viewGroup = viewGroup; return this; } public Builder directory(List directory) { Utils.checkNotNull(directory, "directory"); this.directory = Optional.ofNullable(directory); return this; } public Builder directory(Optional> directory) { Utils.checkNotNull(directory, "directory"); this.directory = directory; return this; } public GetCountriesLibraryMediaContainer build() { return new GetCountriesLibraryMediaContainer( size, offset, totalSize, identifier, allowSync, art, content, mediaTagPrefix, mediaTagVersion, nocache, thumb, title1, title2, viewGroup, directory); } } }