001package com.box.sdkgen.managers.taskassignments;
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 UpdateTaskAssignmentByIdRequestBody extends SerializableObject {
014
015  /** An optional message by the assignee that can be added to the task. */
016  protected String message;
017
018  /**
019   * The state of the task assigned to the user.
020   *
021   * <p>* For a task with an `action` value of `complete` this can be `incomplete` or `completed`. *
022   * For a task with an `action` of `review` this can be `incomplete`, `approved`, or `rejected`.
023   */
024  @JsonDeserialize(
025      using =
026          UpdateTaskAssignmentByIdRequestBodyResolutionStateField
027              .UpdateTaskAssignmentByIdRequestBodyResolutionStateFieldDeserializer.class)
028  @JsonSerialize(
029      using =
030          UpdateTaskAssignmentByIdRequestBodyResolutionStateField
031              .UpdateTaskAssignmentByIdRequestBodyResolutionStateFieldSerializer.class)
032  @JsonProperty("resolution_state")
033  protected EnumWrapper<UpdateTaskAssignmentByIdRequestBodyResolutionStateField> resolutionState;
034
035  public UpdateTaskAssignmentByIdRequestBody() {
036    super();
037  }
038
039  protected UpdateTaskAssignmentByIdRequestBody(Builder builder) {
040    super();
041    this.message = builder.message;
042    this.resolutionState = builder.resolutionState;
043    markNullableFieldsAsSet(builder.getExplicitlySetNullableFields());
044  }
045
046  public String getMessage() {
047    return message;
048  }
049
050  public EnumWrapper<UpdateTaskAssignmentByIdRequestBodyResolutionStateField> getResolutionState() {
051    return resolutionState;
052  }
053
054  @Override
055  public boolean equals(Object o) {
056    if (this == o) {
057      return true;
058    }
059    if (o == null || getClass() != o.getClass()) {
060      return false;
061    }
062    UpdateTaskAssignmentByIdRequestBody casted = (UpdateTaskAssignmentByIdRequestBody) o;
063    return Objects.equals(message, casted.message)
064        && Objects.equals(resolutionState, casted.resolutionState);
065  }
066
067  @Override
068  public int hashCode() {
069    return Objects.hash(message, resolutionState);
070  }
071
072  @Override
073  public String toString() {
074    return "UpdateTaskAssignmentByIdRequestBody{"
075        + "message='"
076        + message
077        + '\''
078        + ", "
079        + "resolutionState='"
080        + resolutionState
081        + '\''
082        + "}";
083  }
084
085  public static class Builder extends NullableFieldTracker {
086
087    protected String message;
088
089    protected EnumWrapper<UpdateTaskAssignmentByIdRequestBodyResolutionStateField> resolutionState;
090
091    public Builder message(String message) {
092      this.message = message;
093      return this;
094    }
095
096    public Builder resolutionState(
097        UpdateTaskAssignmentByIdRequestBodyResolutionStateField resolutionState) {
098      this.resolutionState =
099          new EnumWrapper<UpdateTaskAssignmentByIdRequestBodyResolutionStateField>(resolutionState);
100      return this;
101    }
102
103    public Builder resolutionState(
104        EnumWrapper<UpdateTaskAssignmentByIdRequestBodyResolutionStateField> resolutionState) {
105      this.resolutionState = resolutionState;
106      return this;
107    }
108
109    public UpdateTaskAssignmentByIdRequestBody build() {
110      return new UpdateTaskAssignmentByIdRequestBody(this);
111    }
112  }
113}