// Copyright (c) Microsoft Corporation. All rights reserved.
// Licensed under the MIT License.
// Code generated by Microsoft (R) AutoRest Code Generator.

package com.azure.communication.rooms.implementation.models;

import com.azure.core.annotation.Fluent;
import com.fasterxml.jackson.annotation.JsonProperty;

/** A participant of the room. */
@Fluent
public final class RoomParticipant {
    /*
     * Raw ID representation of the communication identifier. Please refer to the following document for additional
     * information on Raw ID. <br>
     * https://learn.microsoft.com/azure/communication-services/concepts/identifiers?pivots=programming-language-rest#raw-id-representation
     */
    @JsonProperty(value = "rawId", required = true)
    private String rawId;

    /*
     * The role of a room participant. The default value is Attendee.
     */
    @JsonProperty(value = "role", required = true)
    private ParticipantRole role;

    /** Creates an instance of RoomParticipant class. */
    public RoomParticipant() {}

    /**
     * Get the rawId property: Raw ID representation of the communication identifier. Please refer to the following
     * document for additional information on Raw ID. &lt;br&gt;
     * https://learn.microsoft.com/azure/communication-services/concepts/identifiers?pivots=programming-language-rest#raw-id-representation.
     *
     * @return the rawId value.
     */
    public String getRawId() {
        return this.rawId;
    }

    /**
     * Set the rawId property: Raw ID representation of the communication identifier. Please refer to the following
     * document for additional information on Raw ID. &lt;br&gt;
     * https://learn.microsoft.com/azure/communication-services/concepts/identifiers?pivots=programming-language-rest#raw-id-representation.
     *
     * @param rawId the rawId value to set.
     * @return the RoomParticipant object itself.
     */
    public RoomParticipant setRawId(String rawId) {
        this.rawId = rawId;
        return this;
    }

    /**
     * Get the role property: The role of a room participant. The default value is Attendee.
     *
     * @return the role value.
     */
    public ParticipantRole getRole() {
        return this.role;
    }

    /**
     * Set the role property: The role of a room participant. The default value is Attendee.
     *
     * @param role the role value to set.
     * @return the RoomParticipant object itself.
     */
    public RoomParticipant setRole(ParticipantRole role) {
        this.role = role;
        return this;
    }
}
