001package com.box.sdkgen.managers.retentionpolicyassignments;
002
003import com.box.sdkgen.internal.NullableFieldTracker;
004import com.box.sdkgen.internal.SerializableObject;
005import com.fasterxml.jackson.annotation.JsonFilter;
006import java.util.Objects;
007
008@JsonFilter("nullablePropertyFilter")
009public class CreateRetentionPolicyAssignmentRequestBodyFilterFieldsField
010    extends SerializableObject {
011
012  /** The metadata attribute key id. */
013  protected String field;
014
015  /** The metadata attribute field id. For value, only enum and multiselect types are supported. */
016  protected String value;
017
018  public CreateRetentionPolicyAssignmentRequestBodyFilterFieldsField() {
019    super();
020  }
021
022  protected CreateRetentionPolicyAssignmentRequestBodyFilterFieldsField(Builder builder) {
023    super();
024    this.field = builder.field;
025    this.value = builder.value;
026    markNullableFieldsAsSet(builder.getExplicitlySetNullableFields());
027  }
028
029  public String getField() {
030    return field;
031  }
032
033  public String getValue() {
034    return value;
035  }
036
037  @Override
038  public boolean equals(Object o) {
039    if (this == o) {
040      return true;
041    }
042    if (o == null || getClass() != o.getClass()) {
043      return false;
044    }
045    CreateRetentionPolicyAssignmentRequestBodyFilterFieldsField casted =
046        (CreateRetentionPolicyAssignmentRequestBodyFilterFieldsField) o;
047    return Objects.equals(field, casted.field) && Objects.equals(value, casted.value);
048  }
049
050  @Override
051  public int hashCode() {
052    return Objects.hash(field, value);
053  }
054
055  @Override
056  public String toString() {
057    return "CreateRetentionPolicyAssignmentRequestBodyFilterFieldsField{"
058        + "field='"
059        + field
060        + '\''
061        + ", "
062        + "value='"
063        + value
064        + '\''
065        + "}";
066  }
067
068  public static class Builder extends NullableFieldTracker {
069
070    protected String field;
071
072    protected String value;
073
074    public Builder field(String field) {
075      this.field = field;
076      return this;
077    }
078
079    public Builder value(String value) {
080      this.value = value;
081      return this;
082    }
083
084    public CreateRetentionPolicyAssignmentRequestBodyFilterFieldsField build() {
085      return new CreateRetentionPolicyAssignmentRequestBodyFilterFieldsField(this);
086    }
087  }
088}