001package com.box.sdkgen.managers.sharedlinksweblinks; 002 003import com.box.sdkgen.internal.NullableFieldTracker; 004import com.box.sdkgen.internal.SerializableObject; 005import com.fasterxml.jackson.annotation.JsonFilter; 006import com.fasterxml.jackson.annotation.JsonProperty; 007import java.util.Objects; 008 009@JsonFilter("nullablePropertyFilter") 010public class UpdateSharedLinkOnWebLinkRequestBodySharedLinkPermissionsField 011 extends SerializableObject { 012 013 /** 014 * If the shared link allows for downloading of files. This can only be set when `access` is set 015 * to `open` or `company`. 016 */ 017 @JsonProperty("can_download") 018 protected Boolean canDownload; 019 020 /** 021 * If the shared link allows for previewing of files. This value is always `true`. For shared 022 * links on folders this also applies to any items in the folder. 023 */ 024 @JsonProperty("can_preview") 025 protected Boolean canPreview; 026 027 /** This value can only be `true` is `type` is `file`. */ 028 @JsonProperty("can_edit") 029 protected Boolean canEdit; 030 031 public UpdateSharedLinkOnWebLinkRequestBodySharedLinkPermissionsField() { 032 super(); 033 } 034 035 protected UpdateSharedLinkOnWebLinkRequestBodySharedLinkPermissionsField(Builder builder) { 036 super(); 037 this.canDownload = builder.canDownload; 038 this.canPreview = builder.canPreview; 039 this.canEdit = builder.canEdit; 040 markNullableFieldsAsSet(builder.getExplicitlySetNullableFields()); 041 } 042 043 public Boolean getCanDownload() { 044 return canDownload; 045 } 046 047 public Boolean getCanPreview() { 048 return canPreview; 049 } 050 051 public Boolean getCanEdit() { 052 return canEdit; 053 } 054 055 @Override 056 public boolean equals(Object o) { 057 if (this == o) { 058 return true; 059 } 060 if (o == null || getClass() != o.getClass()) { 061 return false; 062 } 063 UpdateSharedLinkOnWebLinkRequestBodySharedLinkPermissionsField casted = 064 (UpdateSharedLinkOnWebLinkRequestBodySharedLinkPermissionsField) o; 065 return Objects.equals(canDownload, casted.canDownload) 066 && Objects.equals(canPreview, casted.canPreview) 067 && Objects.equals(canEdit, casted.canEdit); 068 } 069 070 @Override 071 public int hashCode() { 072 return Objects.hash(canDownload, canPreview, canEdit); 073 } 074 075 @Override 076 public String toString() { 077 return "UpdateSharedLinkOnWebLinkRequestBodySharedLinkPermissionsField{" 078 + "canDownload='" 079 + canDownload 080 + '\'' 081 + ", " 082 + "canPreview='" 083 + canPreview 084 + '\'' 085 + ", " 086 + "canEdit='" 087 + canEdit 088 + '\'' 089 + "}"; 090 } 091 092 public static class Builder extends NullableFieldTracker { 093 094 protected Boolean canDownload; 095 096 protected Boolean canPreview; 097 098 protected Boolean canEdit; 099 100 public Builder canDownload(Boolean canDownload) { 101 this.canDownload = canDownload; 102 return this; 103 } 104 105 public Builder canPreview(Boolean canPreview) { 106 this.canPreview = canPreview; 107 return this; 108 } 109 110 public Builder canEdit(Boolean canEdit) { 111 this.canEdit = canEdit; 112 return this; 113 } 114 115 public UpdateSharedLinkOnWebLinkRequestBodySharedLinkPermissionsField build() { 116 return new UpdateSharedLinkOnWebLinkRequestBodySharedLinkPermissionsField(this); 117 } 118 } 119}