001package com.box.sdkgen.managers.memberships; 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.Map; 012import java.util.Objects; 013 014@JsonFilter("nullablePropertyFilter") 015public class UpdateGroupMembershipByIdRequestBody extends SerializableObject { 016 017 /** The role of the user in the group. */ 018 @JsonDeserialize( 019 using = 020 UpdateGroupMembershipByIdRequestBodyRoleField 021 .UpdateGroupMembershipByIdRequestBodyRoleFieldDeserializer.class) 022 @JsonSerialize( 023 using = 024 UpdateGroupMembershipByIdRequestBodyRoleField 025 .UpdateGroupMembershipByIdRequestBodyRoleFieldSerializer.class) 026 protected EnumWrapper<UpdateGroupMembershipByIdRequestBodyRoleField> role; 027 028 /** 029 * Custom configuration for the permissions an admin if a group will receive. This option has no 030 * effect on members with a role of `member`. 031 * 032 * <p>Setting these permissions overwrites the default access levels of an admin. 033 * 034 * <p>Specifying a value of `null` for this object will disable all configurable permissions. 035 * Specifying permissions will set them accordingly, omitted permissions will be enabled by 036 * default. 037 */ 038 @JsonProperty("configurable_permissions") 039 @Nullable 040 protected Map<String, Boolean> configurablePermissions; 041 042 public UpdateGroupMembershipByIdRequestBody() { 043 super(); 044 } 045 046 protected UpdateGroupMembershipByIdRequestBody(Builder builder) { 047 super(); 048 this.role = builder.role; 049 this.configurablePermissions = builder.configurablePermissions; 050 markNullableFieldsAsSet(builder.getExplicitlySetNullableFields()); 051 } 052 053 public EnumWrapper<UpdateGroupMembershipByIdRequestBodyRoleField> getRole() { 054 return role; 055 } 056 057 public Map<String, Boolean> getConfigurablePermissions() { 058 return configurablePermissions; 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 UpdateGroupMembershipByIdRequestBody casted = (UpdateGroupMembershipByIdRequestBody) o; 070 return Objects.equals(role, casted.role) 071 && Objects.equals(configurablePermissions, casted.configurablePermissions); 072 } 073 074 @Override 075 public int hashCode() { 076 return Objects.hash(role, configurablePermissions); 077 } 078 079 @Override 080 public String toString() { 081 return "UpdateGroupMembershipByIdRequestBody{" 082 + "role='" 083 + role 084 + '\'' 085 + ", " 086 + "configurablePermissions='" 087 + configurablePermissions 088 + '\'' 089 + "}"; 090 } 091 092 public static class Builder extends NullableFieldTracker { 093 094 protected EnumWrapper<UpdateGroupMembershipByIdRequestBodyRoleField> role; 095 096 protected Map<String, Boolean> configurablePermissions; 097 098 public Builder role(UpdateGroupMembershipByIdRequestBodyRoleField role) { 099 this.role = new EnumWrapper<UpdateGroupMembershipByIdRequestBodyRoleField>(role); 100 return this; 101 } 102 103 public Builder role(EnumWrapper<UpdateGroupMembershipByIdRequestBodyRoleField> role) { 104 this.role = role; 105 return this; 106 } 107 108 public Builder configurablePermissions(Map<String, Boolean> configurablePermissions) { 109 this.configurablePermissions = configurablePermissions; 110 this.markNullableFieldAsSet("configurable_permissions"); 111 return this; 112 } 113 114 public UpdateGroupMembershipByIdRequestBody build() { 115 return new UpdateGroupMembershipByIdRequestBody(this); 116 } 117 } 118}