001package com.box.sdkgen.managers.fileclassifications; 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 UpdateClassificationOnFileRequestBody extends SerializableObject { 014 015 /** The value will always be `replace`. */ 016 @JsonDeserialize( 017 using = 018 UpdateClassificationOnFileRequestBodyOpField 019 .UpdateClassificationOnFileRequestBodyOpFieldDeserializer.class) 020 @JsonSerialize( 021 using = 022 UpdateClassificationOnFileRequestBodyOpField 023 .UpdateClassificationOnFileRequestBodyOpFieldSerializer.class) 024 protected EnumWrapper<UpdateClassificationOnFileRequestBodyOpField> op; 025 026 /** Defines classifications available in the enterprise. */ 027 @JsonDeserialize( 028 using = 029 UpdateClassificationOnFileRequestBodyPathField 030 .UpdateClassificationOnFileRequestBodyPathFieldDeserializer.class) 031 @JsonSerialize( 032 using = 033 UpdateClassificationOnFileRequestBodyPathField 034 .UpdateClassificationOnFileRequestBodyPathFieldSerializer.class) 035 protected EnumWrapper<UpdateClassificationOnFileRequestBodyPathField> path; 036 037 /** 038 * The name of the classification to apply to this file. 039 * 040 * <p>To list the available classifications in an enterprise, use the classification API to 041 * retrieve the [classification 042 * template](https://developer.box.com/reference/get-metadata-templates-enterprise-securityClassification-6VMVochwUWo-schema) 043 * which lists all available classification keys. 044 */ 045 protected final String value; 046 047 public UpdateClassificationOnFileRequestBody(@JsonProperty("value") String value) { 048 super(); 049 this.value = value; 050 this.op = 051 new EnumWrapper<UpdateClassificationOnFileRequestBodyOpField>( 052 UpdateClassificationOnFileRequestBodyOpField.REPLACE); 053 this.path = 054 new EnumWrapper<UpdateClassificationOnFileRequestBodyPathField>( 055 UpdateClassificationOnFileRequestBodyPathField._BOX__SECURITY__CLASSIFICATION__KEY); 056 } 057 058 protected UpdateClassificationOnFileRequestBody(Builder builder) { 059 super(); 060 this.op = builder.op; 061 this.path = builder.path; 062 this.value = builder.value; 063 markNullableFieldsAsSet(builder.getExplicitlySetNullableFields()); 064 } 065 066 public EnumWrapper<UpdateClassificationOnFileRequestBodyOpField> getOp() { 067 return op; 068 } 069 070 public EnumWrapper<UpdateClassificationOnFileRequestBodyPathField> getPath() { 071 return path; 072 } 073 074 public String getValue() { 075 return value; 076 } 077 078 @Override 079 public boolean equals(Object o) { 080 if (this == o) { 081 return true; 082 } 083 if (o == null || getClass() != o.getClass()) { 084 return false; 085 } 086 UpdateClassificationOnFileRequestBody casted = (UpdateClassificationOnFileRequestBody) o; 087 return Objects.equals(op, casted.op) 088 && Objects.equals(path, casted.path) 089 && Objects.equals(value, casted.value); 090 } 091 092 @Override 093 public int hashCode() { 094 return Objects.hash(op, path, value); 095 } 096 097 @Override 098 public String toString() { 099 return "UpdateClassificationOnFileRequestBody{" 100 + "op='" 101 + op 102 + '\'' 103 + ", " 104 + "path='" 105 + path 106 + '\'' 107 + ", " 108 + "value='" 109 + value 110 + '\'' 111 + "}"; 112 } 113 114 public static class Builder extends NullableFieldTracker { 115 116 protected EnumWrapper<UpdateClassificationOnFileRequestBodyOpField> op; 117 118 protected EnumWrapper<UpdateClassificationOnFileRequestBodyPathField> path; 119 120 protected final String value; 121 122 public Builder(String value) { 123 super(); 124 this.value = value; 125 } 126 127 public Builder op(UpdateClassificationOnFileRequestBodyOpField op) { 128 this.op = new EnumWrapper<UpdateClassificationOnFileRequestBodyOpField>(op); 129 return this; 130 } 131 132 public Builder op(EnumWrapper<UpdateClassificationOnFileRequestBodyOpField> op) { 133 this.op = op; 134 return this; 135 } 136 137 public Builder path(UpdateClassificationOnFileRequestBodyPathField path) { 138 this.path = new EnumWrapper<UpdateClassificationOnFileRequestBodyPathField>(path); 139 return this; 140 } 141 142 public Builder path(EnumWrapper<UpdateClassificationOnFileRequestBodyPathField> path) { 143 this.path = path; 144 return this; 145 } 146 147 public UpdateClassificationOnFileRequestBody build() { 148 if (this.op == null) { 149 this.op = 150 new EnumWrapper<UpdateClassificationOnFileRequestBodyOpField>( 151 UpdateClassificationOnFileRequestBodyOpField.REPLACE); 152 } 153 if (this.path == null) { 154 this.path = 155 new EnumWrapper<UpdateClassificationOnFileRequestBodyPathField>( 156 UpdateClassificationOnFileRequestBodyPathField._BOX__SECURITY__CLASSIFICATION__KEY); 157 } 158 return new UpdateClassificationOnFileRequestBody(this); 159 } 160 } 161}