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}