001package com.box.sdkgen.managers.retentionpolicyassignments; 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.annotation.JsonProperty; 009import com.fasterxml.jackson.databind.annotation.JsonDeserialize; 010import com.fasterxml.jackson.databind.annotation.JsonSerialize; 011import java.util.Objects; 012 013@JsonFilter("nullablePropertyFilter") 014public class CreateRetentionPolicyAssignmentRequestBodyAssignToField extends SerializableObject { 015 016 /** The type of item to assign the policy to. */ 017 @JsonDeserialize( 018 using = 019 CreateRetentionPolicyAssignmentRequestBodyAssignToTypeField 020 .CreateRetentionPolicyAssignmentRequestBodyAssignToTypeFieldDeserializer.class) 021 @JsonSerialize( 022 using = 023 CreateRetentionPolicyAssignmentRequestBodyAssignToTypeField 024 .CreateRetentionPolicyAssignmentRequestBodyAssignToTypeFieldSerializer.class) 025 protected final EnumWrapper<CreateRetentionPolicyAssignmentRequestBodyAssignToTypeField> type; 026 027 /** 028 * The ID of item to assign the policy to. Set to `null` or omit when `type` is set to 029 * `enterprise`. 030 */ 031 @Nullable protected String id; 032 033 public CreateRetentionPolicyAssignmentRequestBodyAssignToField( 034 CreateRetentionPolicyAssignmentRequestBodyAssignToTypeField type) { 035 super(); 036 this.type = new EnumWrapper<CreateRetentionPolicyAssignmentRequestBodyAssignToTypeField>(type); 037 } 038 039 public CreateRetentionPolicyAssignmentRequestBodyAssignToField( 040 @JsonProperty("type") 041 EnumWrapper<CreateRetentionPolicyAssignmentRequestBodyAssignToTypeField> type) { 042 super(); 043 this.type = type; 044 } 045 046 protected CreateRetentionPolicyAssignmentRequestBodyAssignToField(Builder builder) { 047 super(); 048 this.type = builder.type; 049 this.id = builder.id; 050 markNullableFieldsAsSet(builder.getExplicitlySetNullableFields()); 051 } 052 053 public EnumWrapper<CreateRetentionPolicyAssignmentRequestBodyAssignToTypeField> getType() { 054 return type; 055 } 056 057 public String getId() { 058 return id; 059 } 060 061 @Override 062 public boolean equals(Object o) { 063 if (this == o) { 064 return true; 065 } 066 if (o == null || getClass() != o.getClass()) { 067 return false; 068 } 069 CreateRetentionPolicyAssignmentRequestBodyAssignToField casted = 070 (CreateRetentionPolicyAssignmentRequestBodyAssignToField) o; 071 return Objects.equals(type, casted.type) && Objects.equals(id, casted.id); 072 } 073 074 @Override 075 public int hashCode() { 076 return Objects.hash(type, id); 077 } 078 079 @Override 080 public String toString() { 081 return "CreateRetentionPolicyAssignmentRequestBodyAssignToField{" 082 + "type='" 083 + type 084 + '\'' 085 + ", " 086 + "id='" 087 + id 088 + '\'' 089 + "}"; 090 } 091 092 public static class Builder extends NullableFieldTracker { 093 094 protected final EnumWrapper<CreateRetentionPolicyAssignmentRequestBodyAssignToTypeField> type; 095 096 protected String id; 097 098 public Builder(CreateRetentionPolicyAssignmentRequestBodyAssignToTypeField type) { 099 super(); 100 this.type = 101 new EnumWrapper<CreateRetentionPolicyAssignmentRequestBodyAssignToTypeField>(type); 102 } 103 104 public Builder(EnumWrapper<CreateRetentionPolicyAssignmentRequestBodyAssignToTypeField> type) { 105 super(); 106 this.type = type; 107 } 108 109 public Builder id(String id) { 110 this.id = id; 111 this.markNullableFieldAsSet("id"); 112 return this; 113 } 114 115 public CreateRetentionPolicyAssignmentRequestBodyAssignToField build() { 116 return new CreateRetentionPolicyAssignmentRequestBodyAssignToField(this); 117 } 118 } 119}