001package com.box.sdkgen.schemas.v2025r0.sharedlinkpermissionsv2025r0;
002
003import com.box.sdkgen.internal.Nullable;
004import com.box.sdkgen.internal.NullableFieldTracker;
005import com.box.sdkgen.internal.SerializableObject;
006import com.fasterxml.jackson.annotation.JsonFilter;
007import com.fasterxml.jackson.annotation.JsonProperty;
008import java.util.Objects;
009
010/** The shared link permissions for the enterprise. */
011@JsonFilter("nullablePropertyFilter")
012public class SharedLinkPermissionsV2025R0 extends SerializableObject {
013
014  /** The selected option for shared links permissions. */
015  @JsonProperty("shared_links_option")
016  @Nullable
017  protected String sharedLinksOption;
018
019  /** The default shared link type. */
020  @JsonProperty("default_shared_link_type")
021  @Nullable
022  protected String defaultSharedLinkType;
023
024  /** The selected option for notes shared links permissions. */
025  @JsonProperty("notes_shared_link_option")
026  @Nullable
027  protected String notesSharedLinkOption;
028
029  /** The default notes shared link type. */
030  @JsonProperty("default_notes_shared_link_type")
031  @Nullable
032  protected String defaultNotesSharedLinkType;
033
034  public SharedLinkPermissionsV2025R0() {
035    super();
036  }
037
038  protected SharedLinkPermissionsV2025R0(Builder builder) {
039    super();
040    this.sharedLinksOption = builder.sharedLinksOption;
041    this.defaultSharedLinkType = builder.defaultSharedLinkType;
042    this.notesSharedLinkOption = builder.notesSharedLinkOption;
043    this.defaultNotesSharedLinkType = builder.defaultNotesSharedLinkType;
044    markNullableFieldsAsSet(builder.getExplicitlySetNullableFields());
045  }
046
047  public String getSharedLinksOption() {
048    return sharedLinksOption;
049  }
050
051  public String getDefaultSharedLinkType() {
052    return defaultSharedLinkType;
053  }
054
055  public String getNotesSharedLinkOption() {
056    return notesSharedLinkOption;
057  }
058
059  public String getDefaultNotesSharedLinkType() {
060    return defaultNotesSharedLinkType;
061  }
062
063  @Override
064  public boolean equals(Object o) {
065    if (this == o) {
066      return true;
067    }
068    if (o == null || getClass() != o.getClass()) {
069      return false;
070    }
071    SharedLinkPermissionsV2025R0 casted = (SharedLinkPermissionsV2025R0) o;
072    return Objects.equals(sharedLinksOption, casted.sharedLinksOption)
073        && Objects.equals(defaultSharedLinkType, casted.defaultSharedLinkType)
074        && Objects.equals(notesSharedLinkOption, casted.notesSharedLinkOption)
075        && Objects.equals(defaultNotesSharedLinkType, casted.defaultNotesSharedLinkType);
076  }
077
078  @Override
079  public int hashCode() {
080    return Objects.hash(
081        sharedLinksOption,
082        defaultSharedLinkType,
083        notesSharedLinkOption,
084        defaultNotesSharedLinkType);
085  }
086
087  @Override
088  public String toString() {
089    return "SharedLinkPermissionsV2025R0{"
090        + "sharedLinksOption='"
091        + sharedLinksOption
092        + '\''
093        + ", "
094        + "defaultSharedLinkType='"
095        + defaultSharedLinkType
096        + '\''
097        + ", "
098        + "notesSharedLinkOption='"
099        + notesSharedLinkOption
100        + '\''
101        + ", "
102        + "defaultNotesSharedLinkType='"
103        + defaultNotesSharedLinkType
104        + '\''
105        + "}";
106  }
107
108  public static class Builder extends NullableFieldTracker {
109
110    protected String sharedLinksOption;
111
112    protected String defaultSharedLinkType;
113
114    protected String notesSharedLinkOption;
115
116    protected String defaultNotesSharedLinkType;
117
118    public Builder sharedLinksOption(String sharedLinksOption) {
119      this.sharedLinksOption = sharedLinksOption;
120      this.markNullableFieldAsSet("shared_links_option");
121      return this;
122    }
123
124    public Builder defaultSharedLinkType(String defaultSharedLinkType) {
125      this.defaultSharedLinkType = defaultSharedLinkType;
126      this.markNullableFieldAsSet("default_shared_link_type");
127      return this;
128    }
129
130    public Builder notesSharedLinkOption(String notesSharedLinkOption) {
131      this.notesSharedLinkOption = notesSharedLinkOption;
132      this.markNullableFieldAsSet("notes_shared_link_option");
133      return this;
134    }
135
136    public Builder defaultNotesSharedLinkType(String defaultNotesSharedLinkType) {
137      this.defaultNotesSharedLinkType = defaultNotesSharedLinkType;
138      this.markNullableFieldAsSet("default_notes_shared_link_type");
139      return this;
140    }
141
142    public SharedLinkPermissionsV2025R0 build() {
143      return new SharedLinkPermissionsV2025R0(this);
144    }
145  }
146}