001package com.box.sdkgen.managers.folderclassifications; 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 UpdateClassificationOnFolderRequestBody extends SerializableObject { 014 015 /** The value will always be `replace`. */ 016 @JsonDeserialize( 017 using = 018 UpdateClassificationOnFolderRequestBodyOpField 019 .UpdateClassificationOnFolderRequestBodyOpFieldDeserializer.class) 020 @JsonSerialize( 021 using = 022 UpdateClassificationOnFolderRequestBodyOpField 023 .UpdateClassificationOnFolderRequestBodyOpFieldSerializer.class) 024 protected EnumWrapper<UpdateClassificationOnFolderRequestBodyOpField> op; 025 026 /** Defines classifications available in the enterprise. */ 027 @JsonDeserialize( 028 using = 029 UpdateClassificationOnFolderRequestBodyPathField 030 .UpdateClassificationOnFolderRequestBodyPathFieldDeserializer.class) 031 @JsonSerialize( 032 using = 033 UpdateClassificationOnFolderRequestBodyPathField 034 .UpdateClassificationOnFolderRequestBodyPathFieldSerializer.class) 035 protected EnumWrapper<UpdateClassificationOnFolderRequestBodyPathField> path; 036 037 /** 038 * The name of the classification to apply to this folder. 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 UpdateClassificationOnFolderRequestBody(@JsonProperty("value") String value) { 048 super(); 049 this.value = value; 050 this.op = 051 new EnumWrapper<UpdateClassificationOnFolderRequestBodyOpField>( 052 UpdateClassificationOnFolderRequestBodyOpField.REPLACE); 053 this.path = 054 new EnumWrapper<UpdateClassificationOnFolderRequestBodyPathField>( 055 UpdateClassificationOnFolderRequestBodyPathField._BOX__SECURITY__CLASSIFICATION__KEY); 056 } 057 058 protected UpdateClassificationOnFolderRequestBody(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<UpdateClassificationOnFolderRequestBodyOpField> getOp() { 067 return op; 068 } 069 070 public EnumWrapper<UpdateClassificationOnFolderRequestBodyPathField> 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 UpdateClassificationOnFolderRequestBody casted = (UpdateClassificationOnFolderRequestBody) 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 "UpdateClassificationOnFolderRequestBody{" 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<UpdateClassificationOnFolderRequestBodyOpField> op; 117 118 protected EnumWrapper<UpdateClassificationOnFolderRequestBodyPathField> 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(UpdateClassificationOnFolderRequestBodyOpField op) { 128 this.op = new EnumWrapper<UpdateClassificationOnFolderRequestBodyOpField>(op); 129 return this; 130 } 131 132 public Builder op(EnumWrapper<UpdateClassificationOnFolderRequestBodyOpField> op) { 133 this.op = op; 134 return this; 135 } 136 137 public Builder path(UpdateClassificationOnFolderRequestBodyPathField path) { 138 this.path = new EnumWrapper<UpdateClassificationOnFolderRequestBodyPathField>(path); 139 return this; 140 } 141 142 public Builder path(EnumWrapper<UpdateClassificationOnFolderRequestBodyPathField> path) { 143 this.path = path; 144 return this; 145 } 146 147 public UpdateClassificationOnFolderRequestBody build() { 148 if (this.op == null) { 149 this.op = 150 new EnumWrapper<UpdateClassificationOnFolderRequestBodyOpField>( 151 UpdateClassificationOnFolderRequestBodyOpField.REPLACE); 152 } 153 if (this.path == null) { 154 this.path = 155 new EnumWrapper<UpdateClassificationOnFolderRequestBodyPathField>( 156 UpdateClassificationOnFolderRequestBodyPathField 157 ._BOX__SECURITY__CLASSIFICATION__KEY); 158 } 159 return new UpdateClassificationOnFolderRequestBody(this); 160 } 161 } 162}