001package com.box.sdkgen.managers.files; 002 003import com.box.sdkgen.internal.NullableFieldTracker; 004import com.box.sdkgen.internal.SerializableObject; 005import com.box.sdkgen.serialization.json.EnumWrapper; 006import com.fasterxml.jackson.annotation.JsonFilter; 007import com.fasterxml.jackson.annotation.JsonProperty; 008import com.fasterxml.jackson.databind.annotation.JsonDeserialize; 009import com.fasterxml.jackson.databind.annotation.JsonSerialize; 010import java.util.Objects; 011 012@JsonFilter("nullablePropertyFilter") 013public class UpdateFileByIdRequestBodyPermissionsField extends SerializableObject { 014 015 /** 016 * Defines who is allowed to download this file. The possible values are either `open` for 017 * everyone or `company` for the other members of the user's enterprise. 018 * 019 * <p>This setting overrides the download permissions that are normally part of the `role` of a 020 * collaboration. When set to `company`, this essentially removes the download option for external 021 * users with `viewer` or `editor` a roles. 022 */ 023 @JsonDeserialize( 024 using = 025 UpdateFileByIdRequestBodyPermissionsCanDownloadField 026 .UpdateFileByIdRequestBodyPermissionsCanDownloadFieldDeserializer.class) 027 @JsonSerialize( 028 using = 029 UpdateFileByIdRequestBodyPermissionsCanDownloadField 030 .UpdateFileByIdRequestBodyPermissionsCanDownloadFieldSerializer.class) 031 @JsonProperty("can_download") 032 protected EnumWrapper<UpdateFileByIdRequestBodyPermissionsCanDownloadField> canDownload; 033 034 public UpdateFileByIdRequestBodyPermissionsField() { 035 super(); 036 } 037 038 protected UpdateFileByIdRequestBodyPermissionsField(Builder builder) { 039 super(); 040 this.canDownload = builder.canDownload; 041 markNullableFieldsAsSet(builder.getExplicitlySetNullableFields()); 042 } 043 044 public EnumWrapper<UpdateFileByIdRequestBodyPermissionsCanDownloadField> getCanDownload() { 045 return canDownload; 046 } 047 048 @Override 049 public boolean equals(Object o) { 050 if (this == o) { 051 return true; 052 } 053 if (o == null || getClass() != o.getClass()) { 054 return false; 055 } 056 UpdateFileByIdRequestBodyPermissionsField casted = 057 (UpdateFileByIdRequestBodyPermissionsField) o; 058 return Objects.equals(canDownload, casted.canDownload); 059 } 060 061 @Override 062 public int hashCode() { 063 return Objects.hash(canDownload); 064 } 065 066 @Override 067 public String toString() { 068 return "UpdateFileByIdRequestBodyPermissionsField{" 069 + "canDownload='" 070 + canDownload 071 + '\'' 072 + "}"; 073 } 074 075 public static class Builder extends NullableFieldTracker { 076 077 protected EnumWrapper<UpdateFileByIdRequestBodyPermissionsCanDownloadField> canDownload; 078 079 public Builder canDownload(UpdateFileByIdRequestBodyPermissionsCanDownloadField canDownload) { 080 this.canDownload = 081 new EnumWrapper<UpdateFileByIdRequestBodyPermissionsCanDownloadField>(canDownload); 082 return this; 083 } 084 085 public Builder canDownload( 086 EnumWrapper<UpdateFileByIdRequestBodyPermissionsCanDownloadField> canDownload) { 087 this.canDownload = canDownload; 088 return this; 089 } 090 091 public UpdateFileByIdRequestBodyPermissionsField build() { 092 return new UpdateFileByIdRequestBodyPermissionsField(this); 093 } 094 } 095}