001package com.box.sdkgen.schemas.shieldinformationbarrierreport; 002 003import com.box.sdkgen.internal.utils.DateTimeUtils; 004import com.box.sdkgen.schemas.shieldinformationbarrierreference.ShieldInformationBarrierReference; 005import com.box.sdkgen.schemas.shieldinformationbarrierreportbase.ShieldInformationBarrierReportBase; 006import com.box.sdkgen.schemas.shieldinformationbarrierreportbase.ShieldInformationBarrierReportBaseTypeField; 007import com.box.sdkgen.schemas.shieldinformationbarrierreportdetails.ShieldInformationBarrierReportDetails; 008import com.box.sdkgen.schemas.userbase.UserBase; 009import com.box.sdkgen.serialization.json.EnumWrapper; 010import com.fasterxml.jackson.annotation.JsonFilter; 011import com.fasterxml.jackson.annotation.JsonProperty; 012import com.fasterxml.jackson.databind.annotation.JsonDeserialize; 013import com.fasterxml.jackson.databind.annotation.JsonSerialize; 014import java.time.OffsetDateTime; 015import java.util.Objects; 016 017/** A standard representation of a shield information barrier report object. */ 018@JsonFilter("nullablePropertyFilter") 019public class ShieldInformationBarrierReport extends ShieldInformationBarrierReportBase { 020 021 @JsonProperty("shield_information_barrier") 022 protected ShieldInformationBarrierReference shieldInformationBarrier; 023 024 /** Status of the shield information report. */ 025 @JsonDeserialize( 026 using = 027 ShieldInformationBarrierReportStatusField 028 .ShieldInformationBarrierReportStatusFieldDeserializer.class) 029 @JsonSerialize( 030 using = 031 ShieldInformationBarrierReportStatusField 032 .ShieldInformationBarrierReportStatusFieldSerializer.class) 033 protected EnumWrapper<ShieldInformationBarrierReportStatusField> status; 034 035 protected ShieldInformationBarrierReportDetails details; 036 037 /** ISO date time string when this shield information barrier report object was created. */ 038 @JsonProperty("created_at") 039 @JsonSerialize(using = DateTimeUtils.DateTimeSerializer.class) 040 @JsonDeserialize(using = DateTimeUtils.DateTimeDeserializer.class) 041 protected OffsetDateTime createdAt; 042 043 @JsonProperty("created_by") 044 protected UserBase createdBy; 045 046 /** ISO date time string when this shield information barrier report was updated. */ 047 @JsonProperty("updated_at") 048 @JsonSerialize(using = DateTimeUtils.DateTimeSerializer.class) 049 @JsonDeserialize(using = DateTimeUtils.DateTimeDeserializer.class) 050 protected OffsetDateTime updatedAt; 051 052 public ShieldInformationBarrierReport() { 053 super(); 054 } 055 056 protected ShieldInformationBarrierReport(Builder builder) { 057 super(builder); 058 this.shieldInformationBarrier = builder.shieldInformationBarrier; 059 this.status = builder.status; 060 this.details = builder.details; 061 this.createdAt = builder.createdAt; 062 this.createdBy = builder.createdBy; 063 this.updatedAt = builder.updatedAt; 064 markNullableFieldsAsSet(builder.getExplicitlySetNullableFields()); 065 } 066 067 public ShieldInformationBarrierReference getShieldInformationBarrier() { 068 return shieldInformationBarrier; 069 } 070 071 public EnumWrapper<ShieldInformationBarrierReportStatusField> getStatus() { 072 return status; 073 } 074 075 public ShieldInformationBarrierReportDetails getDetails() { 076 return details; 077 } 078 079 public OffsetDateTime getCreatedAt() { 080 return createdAt; 081 } 082 083 public UserBase getCreatedBy() { 084 return createdBy; 085 } 086 087 public OffsetDateTime getUpdatedAt() { 088 return updatedAt; 089 } 090 091 @Override 092 public boolean equals(Object o) { 093 if (this == o) { 094 return true; 095 } 096 if (o == null || getClass() != o.getClass()) { 097 return false; 098 } 099 ShieldInformationBarrierReport casted = (ShieldInformationBarrierReport) o; 100 return Objects.equals(id, casted.id) 101 && Objects.equals(type, casted.type) 102 && Objects.equals(shieldInformationBarrier, casted.shieldInformationBarrier) 103 && Objects.equals(status, casted.status) 104 && Objects.equals(details, casted.details) 105 && Objects.equals(createdAt, casted.createdAt) 106 && Objects.equals(createdBy, casted.createdBy) 107 && Objects.equals(updatedAt, casted.updatedAt); 108 } 109 110 @Override 111 public int hashCode() { 112 return Objects.hash( 113 id, type, shieldInformationBarrier, status, details, createdAt, createdBy, updatedAt); 114 } 115 116 @Override 117 public String toString() { 118 return "ShieldInformationBarrierReport{" 119 + "id='" 120 + id 121 + '\'' 122 + ", " 123 + "type='" 124 + type 125 + '\'' 126 + ", " 127 + "shieldInformationBarrier='" 128 + shieldInformationBarrier 129 + '\'' 130 + ", " 131 + "status='" 132 + status 133 + '\'' 134 + ", " 135 + "details='" 136 + details 137 + '\'' 138 + ", " 139 + "createdAt='" 140 + createdAt 141 + '\'' 142 + ", " 143 + "createdBy='" 144 + createdBy 145 + '\'' 146 + ", " 147 + "updatedAt='" 148 + updatedAt 149 + '\'' 150 + "}"; 151 } 152 153 public static class Builder extends ShieldInformationBarrierReportBase.Builder { 154 155 protected ShieldInformationBarrierReference shieldInformationBarrier; 156 157 protected EnumWrapper<ShieldInformationBarrierReportStatusField> status; 158 159 protected ShieldInformationBarrierReportDetails details; 160 161 protected OffsetDateTime createdAt; 162 163 protected UserBase createdBy; 164 165 protected OffsetDateTime updatedAt; 166 167 public Builder shieldInformationBarrier( 168 ShieldInformationBarrierReference shieldInformationBarrier) { 169 this.shieldInformationBarrier = shieldInformationBarrier; 170 return this; 171 } 172 173 public Builder status(ShieldInformationBarrierReportStatusField status) { 174 this.status = new EnumWrapper<ShieldInformationBarrierReportStatusField>(status); 175 return this; 176 } 177 178 public Builder status(EnumWrapper<ShieldInformationBarrierReportStatusField> status) { 179 this.status = status; 180 return this; 181 } 182 183 public Builder details(ShieldInformationBarrierReportDetails details) { 184 this.details = details; 185 return this; 186 } 187 188 public Builder createdAt(OffsetDateTime createdAt) { 189 this.createdAt = createdAt; 190 return this; 191 } 192 193 public Builder createdBy(UserBase createdBy) { 194 this.createdBy = createdBy; 195 return this; 196 } 197 198 public Builder updatedAt(OffsetDateTime updatedAt) { 199 this.updatedAt = updatedAt; 200 return this; 201 } 202 203 @Override 204 public Builder id(String id) { 205 this.id = id; 206 return this; 207 } 208 209 @Override 210 public Builder type(ShieldInformationBarrierReportBaseTypeField type) { 211 this.type = new EnumWrapper<ShieldInformationBarrierReportBaseTypeField>(type); 212 return this; 213 } 214 215 @Override 216 public Builder type(EnumWrapper<ShieldInformationBarrierReportBaseTypeField> type) { 217 this.type = type; 218 return this; 219 } 220 221 public ShieldInformationBarrierReport build() { 222 return new ShieldInformationBarrierReport(this); 223 } 224 } 225}