001package com.box.sdkgen.schemas.retentionpolicyassignment; 002 003import com.box.sdkgen.internal.Nullable; 004import com.box.sdkgen.internal.NullableFieldTracker; 005import com.box.sdkgen.internal.SerializableObject; 006import com.box.sdkgen.serialization.json.EnumWrapper; 007import com.fasterxml.jackson.annotation.JsonFilter; 008import com.fasterxml.jackson.databind.annotation.JsonDeserialize; 009import com.fasterxml.jackson.databind.annotation.JsonSerialize; 010import java.util.Objects; 011 012@JsonFilter("nullablePropertyFilter") 013public class RetentionPolicyAssignmentAssignedToField extends SerializableObject { 014 015 /** 016 * The ID of the folder, enterprise, or metadata template the policy is assigned to. Set to null 017 * or omit when type is set to enterprise. 018 */ 019 @Nullable protected String id; 020 021 /** The type of resource the policy is assigned to. */ 022 @JsonDeserialize( 023 using = 024 RetentionPolicyAssignmentAssignedToTypeField 025 .RetentionPolicyAssignmentAssignedToTypeFieldDeserializer.class) 026 @JsonSerialize( 027 using = 028 RetentionPolicyAssignmentAssignedToTypeField 029 .RetentionPolicyAssignmentAssignedToTypeFieldSerializer.class) 030 protected EnumWrapper<RetentionPolicyAssignmentAssignedToTypeField> type; 031 032 public RetentionPolicyAssignmentAssignedToField() { 033 super(); 034 } 035 036 protected RetentionPolicyAssignmentAssignedToField(Builder builder) { 037 super(); 038 this.id = builder.id; 039 this.type = builder.type; 040 markNullableFieldsAsSet(builder.getExplicitlySetNullableFields()); 041 } 042 043 public String getId() { 044 return id; 045 } 046 047 public EnumWrapper<RetentionPolicyAssignmentAssignedToTypeField> getType() { 048 return type; 049 } 050 051 @Override 052 public boolean equals(Object o) { 053 if (this == o) { 054 return true; 055 } 056 if (o == null || getClass() != o.getClass()) { 057 return false; 058 } 059 RetentionPolicyAssignmentAssignedToField casted = (RetentionPolicyAssignmentAssignedToField) o; 060 return Objects.equals(id, casted.id) && Objects.equals(type, casted.type); 061 } 062 063 @Override 064 public int hashCode() { 065 return Objects.hash(id, type); 066 } 067 068 @Override 069 public String toString() { 070 return "RetentionPolicyAssignmentAssignedToField{" 071 + "id='" 072 + id 073 + '\'' 074 + ", " 075 + "type='" 076 + type 077 + '\'' 078 + "}"; 079 } 080 081 public static class Builder extends NullableFieldTracker { 082 083 protected String id; 084 085 protected EnumWrapper<RetentionPolicyAssignmentAssignedToTypeField> type; 086 087 public Builder id(String id) { 088 this.id = id; 089 this.markNullableFieldAsSet("id"); 090 return this; 091 } 092 093 public Builder type(RetentionPolicyAssignmentAssignedToTypeField type) { 094 this.type = new EnumWrapper<RetentionPolicyAssignmentAssignedToTypeField>(type); 095 return this; 096 } 097 098 public Builder type(EnumWrapper<RetentionPolicyAssignmentAssignedToTypeField> type) { 099 this.type = type; 100 return this; 101 } 102 103 public RetentionPolicyAssignmentAssignedToField build() { 104 return new RetentionPolicyAssignmentAssignedToField(this); 105 } 106 } 107}