001package com.box.sdkgen.schemas.legalholdpolicyassignmentbase; 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.databind.annotation.JsonDeserialize; 008import com.fasterxml.jackson.databind.annotation.JsonSerialize; 009import java.util.Objects; 010 011/** 012 * Legal Hold Assignments are used to assign Legal Hold Policies to Users, Folders, Files, or File 013 * Versions. 014 * 015 * <p>Creating a Legal Hold Assignment puts a hold on the File-Versions that belong to the 016 * Assignment's 'apply-to' entity. 017 */ 018@JsonFilter("nullablePropertyFilter") 019public class LegalHoldPolicyAssignmentBase extends SerializableObject { 020 021 /** The unique identifier for this legal hold assignment. */ 022 protected String id; 023 024 /** The value will always be `legal_hold_policy_assignment`. */ 025 @JsonDeserialize( 026 using = 027 LegalHoldPolicyAssignmentBaseTypeField.LegalHoldPolicyAssignmentBaseTypeFieldDeserializer 028 .class) 029 @JsonSerialize( 030 using = 031 LegalHoldPolicyAssignmentBaseTypeField.LegalHoldPolicyAssignmentBaseTypeFieldSerializer 032 .class) 033 protected EnumWrapper<LegalHoldPolicyAssignmentBaseTypeField> type; 034 035 public LegalHoldPolicyAssignmentBase() { 036 super(); 037 } 038 039 protected LegalHoldPolicyAssignmentBase(Builder builder) { 040 super(); 041 this.id = builder.id; 042 this.type = builder.type; 043 markNullableFieldsAsSet(builder.getExplicitlySetNullableFields()); 044 } 045 046 public String getId() { 047 return id; 048 } 049 050 public EnumWrapper<LegalHoldPolicyAssignmentBaseTypeField> getType() { 051 return type; 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 LegalHoldPolicyAssignmentBase casted = (LegalHoldPolicyAssignmentBase) o; 063 return Objects.equals(id, casted.id) && Objects.equals(type, casted.type); 064 } 065 066 @Override 067 public int hashCode() { 068 return Objects.hash(id, type); 069 } 070 071 @Override 072 public String toString() { 073 return "LegalHoldPolicyAssignmentBase{" 074 + "id='" 075 + id 076 + '\'' 077 + ", " 078 + "type='" 079 + type 080 + '\'' 081 + "}"; 082 } 083 084 public static class Builder extends NullableFieldTracker { 085 086 protected String id; 087 088 protected EnumWrapper<LegalHoldPolicyAssignmentBaseTypeField> type; 089 090 public Builder id(String id) { 091 this.id = id; 092 return this; 093 } 094 095 public Builder type(LegalHoldPolicyAssignmentBaseTypeField type) { 096 this.type = new EnumWrapper<LegalHoldPolicyAssignmentBaseTypeField>(type); 097 return this; 098 } 099 100 public Builder type(EnumWrapper<LegalHoldPolicyAssignmentBaseTypeField> type) { 101 this.type = type; 102 return this; 103 } 104 105 public LegalHoldPolicyAssignmentBase build() { 106 return new LegalHoldPolicyAssignmentBase(this); 107 } 108 } 109}