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