<?php
# Generated by the protocol buffer compiler.  DO NOT EDIT!
# NO CHECKED-IN PROTOBUF GENCODE
# source: livekit_connector_twilio.proto

namespace Livekit;

use Google\Protobuf\Internal\GPBType;
use Google\Protobuf\Internal\GPBUtil;
use Google\Protobuf\RepeatedField;

/**
 * Generated from protobuf message <code>livekit.ConnectTwilioCallRequest</code>
 */
class ConnectTwilioCallRequest extends \Google\Protobuf\Internal\Message
{
    /**
     * The Direction of the call
     *
     * Generated from protobuf field <code>.livekit.ConnectTwilioCallRequest.TwilioCallDirection twilio_call_direction = 1;</code>
     */
    protected $twilio_call_direction = 0;
    /**
     * What LiveKit room should this call be connected to
     *
     * Generated from protobuf field <code>string room_name = 2;</code>
     */
    protected $room_name = '';
    /**
     * Optional agents to dispatch the call to
     *
     * Generated from protobuf field <code>repeated .livekit.RoomAgentDispatch agents = 3;</code>
     */
    private $agents;
    /**
     * Optional identity of the participant in LiveKit room
     *
     * Generated from protobuf field <code>string participant_identity = 4;</code>
     */
    protected $participant_identity = '';
    /**
     * Optional name of the participant in LiveKit room
     *
     * Generated from protobuf field <code>string participant_name = 5 [(.logger.redact) = true, (.logger.redact_format) = "<redacted ({{ .Size }} bytes)>"];</code>
     */
    protected $participant_name = '';
    /**
     * Optional user-defined metadata. Will be attached to a created Participant in the room.
     *
     * Generated from protobuf field <code>string participant_metadata = 6 [(.logger.redact) = true, (.logger.redact_format) = "<redacted ({{ .Size }} bytes)>"];</code>
     */
    protected $participant_metadata = '';
    /**
     * Optional user-defined attributes. Will be attached to a created Participant in the room.
     *
     * Generated from protobuf field <code>map<string, string> participant_attributes = 7 [(.logger.redact) = true, (.logger.redact_format) = "<redacted ({{ .Size }} bytes)>"];</code>
     */
    private $participant_attributes;
    /**
     * Country where the call terminates as ISO 3166-1 alpha-2 (https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2). This will be used by the livekit infrastructure to route calls.
     *
     * Generated from protobuf field <code>string destination_country = 8;</code>
     */
    protected $destination_country = '';

    /**
     * Constructor.
     *
     * @param array $data {
     *     Optional. Data for populating the Message object.
     *
     *     @type int $twilio_call_direction
     *           The Direction of the call
     *     @type string $room_name
     *           What LiveKit room should this call be connected to
     *     @type \Livekit\RoomAgentDispatch[] $agents
     *           Optional agents to dispatch the call to
     *     @type string $participant_identity
     *           Optional identity of the participant in LiveKit room
     *     @type string $participant_name
     *           Optional name of the participant in LiveKit room
     *     @type string $participant_metadata
     *           Optional user-defined metadata. Will be attached to a created Participant in the room.
     *     @type array|\Google\Protobuf\Internal\MapField $participant_attributes
     *           Optional user-defined attributes. Will be attached to a created Participant in the room.
     *     @type string $destination_country
     *           Country where the call terminates as ISO 3166-1 alpha-2 (https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2). This will be used by the livekit infrastructure to route calls.
     * }
     */
    public function __construct($data = NULL) {
        \GPBMetadata\LivekitConnectorTwilio::initOnce();
        parent::__construct($data);
    }

    /**
     * The Direction of the call
     *
     * Generated from protobuf field <code>.livekit.ConnectTwilioCallRequest.TwilioCallDirection twilio_call_direction = 1;</code>
     * @return int
     */
    public function getTwilioCallDirection()
    {
        return $this->twilio_call_direction;
    }

    /**
     * The Direction of the call
     *
     * Generated from protobuf field <code>.livekit.ConnectTwilioCallRequest.TwilioCallDirection twilio_call_direction = 1;</code>
     * @param int $var
     * @return $this
     */
    public function setTwilioCallDirection($var)
    {
        GPBUtil::checkEnum($var, \Livekit\ConnectTwilioCallRequest\TwilioCallDirection::class);
        $this->twilio_call_direction = $var;

        return $this;
    }

    /**
     * What LiveKit room should this call be connected to
     *
     * Generated from protobuf field <code>string room_name = 2;</code>
     * @return string
     */
    public function getRoomName()
    {
        return $this->room_name;
    }

    /**
     * What LiveKit room should this call be connected to
     *
     * Generated from protobuf field <code>string room_name = 2;</code>
     * @param string $var
     * @return $this
     */
    public function setRoomName($var)
    {
        GPBUtil::checkString($var, True);
        $this->room_name = $var;

        return $this;
    }

    /**
     * Optional agents to dispatch the call to
     *
     * Generated from protobuf field <code>repeated .livekit.RoomAgentDispatch agents = 3;</code>
     * @return RepeatedField<\Livekit\RoomAgentDispatch>
     */
    public function getAgents()
    {
        return $this->agents;
    }

    /**
     * Optional agents to dispatch the call to
     *
     * Generated from protobuf field <code>repeated .livekit.RoomAgentDispatch agents = 3;</code>
     * @param \Livekit\RoomAgentDispatch[] $var
     * @return $this
     */
    public function setAgents($var)
    {
        $arr = GPBUtil::checkRepeatedField($var, \Google\Protobuf\Internal\GPBType::MESSAGE, \Livekit\RoomAgentDispatch::class);
        $this->agents = $arr;

        return $this;
    }

    /**
     * Optional identity of the participant in LiveKit room
     *
     * Generated from protobuf field <code>string participant_identity = 4;</code>
     * @return string
     */
    public function getParticipantIdentity()
    {
        return $this->participant_identity;
    }

    /**
     * Optional identity of the participant in LiveKit room
     *
     * Generated from protobuf field <code>string participant_identity = 4;</code>
     * @param string $var
     * @return $this
     */
    public function setParticipantIdentity($var)
    {
        GPBUtil::checkString($var, True);
        $this->participant_identity = $var;

        return $this;
    }

    /**
     * Optional name of the participant in LiveKit room
     *
     * Generated from protobuf field <code>string participant_name = 5 [(.logger.redact) = true, (.logger.redact_format) = "<redacted ({{ .Size }} bytes)>"];</code>
     * @return string
     */
    public function getParticipantName()
    {
        return $this->participant_name;
    }

    /**
     * Optional name of the participant in LiveKit room
     *
     * Generated from protobuf field <code>string participant_name = 5 [(.logger.redact) = true, (.logger.redact_format) = "<redacted ({{ .Size }} bytes)>"];</code>
     * @param string $var
     * @return $this
     */
    public function setParticipantName($var)
    {
        GPBUtil::checkString($var, True);
        $this->participant_name = $var;

        return $this;
    }

    /**
     * Optional user-defined metadata. Will be attached to a created Participant in the room.
     *
     * Generated from protobuf field <code>string participant_metadata = 6 [(.logger.redact) = true, (.logger.redact_format) = "<redacted ({{ .Size }} bytes)>"];</code>
     * @return string
     */
    public function getParticipantMetadata()
    {
        return $this->participant_metadata;
    }

    /**
     * Optional user-defined metadata. Will be attached to a created Participant in the room.
     *
     * Generated from protobuf field <code>string participant_metadata = 6 [(.logger.redact) = true, (.logger.redact_format) = "<redacted ({{ .Size }} bytes)>"];</code>
     * @param string $var
     * @return $this
     */
    public function setParticipantMetadata($var)
    {
        GPBUtil::checkString($var, True);
        $this->participant_metadata = $var;

        return $this;
    }

    /**
     * Optional user-defined attributes. Will be attached to a created Participant in the room.
     *
     * Generated from protobuf field <code>map<string, string> participant_attributes = 7 [(.logger.redact) = true, (.logger.redact_format) = "<redacted ({{ .Size }} bytes)>"];</code>
     * @return \Google\Protobuf\Internal\MapField
     */
    public function getParticipantAttributes()
    {
        return $this->participant_attributes;
    }

    /**
     * Optional user-defined attributes. Will be attached to a created Participant in the room.
     *
     * Generated from protobuf field <code>map<string, string> participant_attributes = 7 [(.logger.redact) = true, (.logger.redact_format) = "<redacted ({{ .Size }} bytes)>"];</code>
     * @param array|\Google\Protobuf\Internal\MapField $var
     * @return $this
     */
    public function setParticipantAttributes($var)
    {
        $arr = GPBUtil::checkMapField($var, \Google\Protobuf\Internal\GPBType::STRING, \Google\Protobuf\Internal\GPBType::STRING);
        $this->participant_attributes = $arr;

        return $this;
    }

    /**
     * Country where the call terminates as ISO 3166-1 alpha-2 (https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2). This will be used by the livekit infrastructure to route calls.
     *
     * Generated from protobuf field <code>string destination_country = 8;</code>
     * @return string
     */
    public function getDestinationCountry()
    {
        return $this->destination_country;
    }

    /**
     * Country where the call terminates as ISO 3166-1 alpha-2 (https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2). This will be used by the livekit infrastructure to route calls.
     *
     * Generated from protobuf field <code>string destination_country = 8;</code>
     * @param string $var
     * @return $this
     */
    public function setDestinationCountry($var)
    {
        GPBUtil::checkString($var, True);
        $this->destination_country = $var;

        return $this;
    }

}

