001package com.box.sdkgen.schemas.integrationmappingpartneritemteamscreaterequest;
002
003import com.box.sdkgen.internal.SerializableObject;
004import com.box.sdkgen.serialization.json.EnumWrapper;
005import com.fasterxml.jackson.annotation.JsonFilter;
006import com.fasterxml.jackson.annotation.JsonProperty;
007import com.fasterxml.jackson.databind.annotation.JsonDeserialize;
008import com.fasterxml.jackson.databind.annotation.JsonSerialize;
009import java.util.Objects;
010
011/** The schema for an integration mapping mapped item object for type Teams. */
012@JsonFilter("nullablePropertyFilter")
013public class IntegrationMappingPartnerItemTeamsCreateRequest extends SerializableObject {
014
015  /** Type of the mapped item referenced in `id`. */
016  @JsonDeserialize(
017      using =
018          IntegrationMappingPartnerItemTeamsCreateRequestTypeField
019              .IntegrationMappingPartnerItemTeamsCreateRequestTypeFieldDeserializer.class)
020  @JsonSerialize(
021      using =
022          IntegrationMappingPartnerItemTeamsCreateRequestTypeField
023              .IntegrationMappingPartnerItemTeamsCreateRequestTypeFieldSerializer.class)
024  protected final EnumWrapper<IntegrationMappingPartnerItemTeamsCreateRequestTypeField> type;
025
026  /** ID of the mapped item (of type referenced in `type`). */
027  protected final String id;
028
029  /** ID of the tenant that is registered with Microsoft Teams. */
030  @JsonProperty("tenant_id")
031  protected final String tenantId;
032
033  /** ID of the team that is registered with Microsoft Teams. */
034  @JsonProperty("team_id")
035  protected final String teamId;
036
037  public IntegrationMappingPartnerItemTeamsCreateRequest(
038      IntegrationMappingPartnerItemTeamsCreateRequestTypeField type,
039      String id,
040      String tenantId,
041      String teamId) {
042    super();
043    this.type = new EnumWrapper<IntegrationMappingPartnerItemTeamsCreateRequestTypeField>(type);
044    this.id = id;
045    this.tenantId = tenantId;
046    this.teamId = teamId;
047  }
048
049  public IntegrationMappingPartnerItemTeamsCreateRequest(
050      @JsonProperty("type")
051          EnumWrapper<IntegrationMappingPartnerItemTeamsCreateRequestTypeField> type,
052      @JsonProperty("id") String id,
053      @JsonProperty("tenant_id") String tenantId,
054      @JsonProperty("team_id") String teamId) {
055    super();
056    this.type = type;
057    this.id = id;
058    this.tenantId = tenantId;
059    this.teamId = teamId;
060  }
061
062  public EnumWrapper<IntegrationMappingPartnerItemTeamsCreateRequestTypeField> getType() {
063    return type;
064  }
065
066  public String getId() {
067    return id;
068  }
069
070  public String getTenantId() {
071    return tenantId;
072  }
073
074  public String getTeamId() {
075    return teamId;
076  }
077
078  @Override
079  public boolean equals(Object o) {
080    if (this == o) {
081      return true;
082    }
083    if (o == null || getClass() != o.getClass()) {
084      return false;
085    }
086    IntegrationMappingPartnerItemTeamsCreateRequest casted =
087        (IntegrationMappingPartnerItemTeamsCreateRequest) o;
088    return Objects.equals(type, casted.type)
089        && Objects.equals(id, casted.id)
090        && Objects.equals(tenantId, casted.tenantId)
091        && Objects.equals(teamId, casted.teamId);
092  }
093
094  @Override
095  public int hashCode() {
096    return Objects.hash(type, id, tenantId, teamId);
097  }
098
099  @Override
100  public String toString() {
101    return "IntegrationMappingPartnerItemTeamsCreateRequest{"
102        + "type='"
103        + type
104        + '\''
105        + ", "
106        + "id='"
107        + id
108        + '\''
109        + ", "
110        + "tenantId='"
111        + tenantId
112        + '\''
113        + ", "
114        + "teamId='"
115        + teamId
116        + '\''
117        + "}";
118  }
119}