001package com.box.sdkgen.managers.tasks; 002 003import com.box.sdkgen.internal.NullableFieldTracker; 004import com.box.sdkgen.internal.SerializableObject; 005import com.box.sdkgen.internal.utils.DateTimeUtils; 006import com.box.sdkgen.serialization.json.EnumWrapper; 007import com.fasterxml.jackson.annotation.JsonFilter; 008import com.fasterxml.jackson.annotation.JsonProperty; 009import com.fasterxml.jackson.databind.annotation.JsonDeserialize; 010import com.fasterxml.jackson.databind.annotation.JsonSerialize; 011import java.time.OffsetDateTime; 012import java.util.Objects; 013 014@JsonFilter("nullablePropertyFilter") 015public class UpdateTaskByIdRequestBody extends SerializableObject { 016 017 /** 018 * The action the task assignee will be prompted to do. Must be 019 * 020 * <p>* `review` defines an approval task that can be approved or rejected, * `complete` defines a 021 * general task which can be completed. 022 */ 023 @JsonDeserialize( 024 using = 025 UpdateTaskByIdRequestBodyActionField.UpdateTaskByIdRequestBodyActionFieldDeserializer 026 .class) 027 @JsonSerialize( 028 using = 029 UpdateTaskByIdRequestBodyActionField.UpdateTaskByIdRequestBodyActionFieldSerializer.class) 030 protected EnumWrapper<UpdateTaskByIdRequestBodyActionField> action; 031 032 /** The message included with the task. */ 033 protected String message; 034 035 /** When the task is due at. */ 036 @JsonProperty("due_at") 037 @JsonSerialize(using = DateTimeUtils.DateTimeSerializer.class) 038 @JsonDeserialize(using = DateTimeUtils.DateTimeDeserializer.class) 039 protected OffsetDateTime dueAt; 040 041 /** 042 * Defines which assignees need to complete this task before the task is considered completed. 043 * 044 * <p>* `all_assignees` (default) requires all assignees to review or approve the task in order 045 * for it to be considered completed. * `any_assignee` accepts any one assignee to review or 046 * approve the task in order for it to be considered completed. 047 */ 048 @JsonDeserialize( 049 using = 050 UpdateTaskByIdRequestBodyCompletionRuleField 051 .UpdateTaskByIdRequestBodyCompletionRuleFieldDeserializer.class) 052 @JsonSerialize( 053 using = 054 UpdateTaskByIdRequestBodyCompletionRuleField 055 .UpdateTaskByIdRequestBodyCompletionRuleFieldSerializer.class) 056 @JsonProperty("completion_rule") 057 protected EnumWrapper<UpdateTaskByIdRequestBodyCompletionRuleField> completionRule; 058 059 public UpdateTaskByIdRequestBody() { 060 super(); 061 } 062 063 protected UpdateTaskByIdRequestBody(Builder builder) { 064 super(); 065 this.action = builder.action; 066 this.message = builder.message; 067 this.dueAt = builder.dueAt; 068 this.completionRule = builder.completionRule; 069 markNullableFieldsAsSet(builder.getExplicitlySetNullableFields()); 070 } 071 072 public EnumWrapper<UpdateTaskByIdRequestBodyActionField> getAction() { 073 return action; 074 } 075 076 public String getMessage() { 077 return message; 078 } 079 080 public OffsetDateTime getDueAt() { 081 return dueAt; 082 } 083 084 public EnumWrapper<UpdateTaskByIdRequestBodyCompletionRuleField> getCompletionRule() { 085 return completionRule; 086 } 087 088 @Override 089 public boolean equals(Object o) { 090 if (this == o) { 091 return true; 092 } 093 if (o == null || getClass() != o.getClass()) { 094 return false; 095 } 096 UpdateTaskByIdRequestBody casted = (UpdateTaskByIdRequestBody) o; 097 return Objects.equals(action, casted.action) 098 && Objects.equals(message, casted.message) 099 && Objects.equals(dueAt, casted.dueAt) 100 && Objects.equals(completionRule, casted.completionRule); 101 } 102 103 @Override 104 public int hashCode() { 105 return Objects.hash(action, message, dueAt, completionRule); 106 } 107 108 @Override 109 public String toString() { 110 return "UpdateTaskByIdRequestBody{" 111 + "action='" 112 + action 113 + '\'' 114 + ", " 115 + "message='" 116 + message 117 + '\'' 118 + ", " 119 + "dueAt='" 120 + dueAt 121 + '\'' 122 + ", " 123 + "completionRule='" 124 + completionRule 125 + '\'' 126 + "}"; 127 } 128 129 public static class Builder extends NullableFieldTracker { 130 131 protected EnumWrapper<UpdateTaskByIdRequestBodyActionField> action; 132 133 protected String message; 134 135 protected OffsetDateTime dueAt; 136 137 protected EnumWrapper<UpdateTaskByIdRequestBodyCompletionRuleField> completionRule; 138 139 public Builder action(UpdateTaskByIdRequestBodyActionField action) { 140 this.action = new EnumWrapper<UpdateTaskByIdRequestBodyActionField>(action); 141 return this; 142 } 143 144 public Builder action(EnumWrapper<UpdateTaskByIdRequestBodyActionField> action) { 145 this.action = action; 146 return this; 147 } 148 149 public Builder message(String message) { 150 this.message = message; 151 return this; 152 } 153 154 public Builder dueAt(OffsetDateTime dueAt) { 155 this.dueAt = dueAt; 156 return this; 157 } 158 159 public Builder completionRule(UpdateTaskByIdRequestBodyCompletionRuleField completionRule) { 160 this.completionRule = 161 new EnumWrapper<UpdateTaskByIdRequestBodyCompletionRuleField>(completionRule); 162 return this; 163 } 164 165 public Builder completionRule( 166 EnumWrapper<UpdateTaskByIdRequestBodyCompletionRuleField> completionRule) { 167 this.completionRule = completionRule; 168 return this; 169 } 170 171 public UpdateTaskByIdRequestBody build() { 172 return new UpdateTaskByIdRequestBody(this); 173 } 174 } 175}