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

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

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

/** The remove participant by identifier request. */
@Fluent
public final class RemoveParticipantRequestInternal {
    /*
     * The participants to be removed from the call.
     */
    @JsonProperty(value = "participantToRemove", required = true)
    private CommunicationIdentifierModel participantToRemove;

    /*
     * Used by customers when calling mid-call actions to correlate the request
     * to the response event.
     */
    @JsonProperty(value = "operationContext")
    private String operationContext;

    /*
     * The callback URI to override the main callback URI.
     */
    @JsonProperty(value = "callbackUri")
    private String callbackUri;

    /**
     * Get the participantToRemove property: The participants to be removed from the call.
     *
     * @return the participantToRemove value.
     */
    public CommunicationIdentifierModel getParticipantToRemove() {
        return this.participantToRemove;
    }

    /**
     * Set the participantToRemove property: The participants to be removed from the call.
     *
     * @param participantToRemove the participantToRemove value to set.
     * @return the RemoveParticipantRequestInternal object itself.
     */
    public RemoveParticipantRequestInternal setParticipantToRemove(CommunicationIdentifierModel participantToRemove) {
        this.participantToRemove = participantToRemove;
        return this;
    }

    /**
     * Get the operationContext property: Used by customers when calling mid-call actions to correlate the request to
     * the response event.
     *
     * @return the operationContext value.
     */
    public String getOperationContext() {
        return this.operationContext;
    }

    /**
     * Set the operationContext property: Used by customers when calling mid-call actions to correlate the request to
     * the response event.
     *
     * @param operationContext the operationContext value to set.
     * @return the RemoveParticipantRequestInternal object itself.
     */
    public RemoveParticipantRequestInternal setOperationContext(String operationContext) {
        this.operationContext = operationContext;
        return this;
    }

    /**
     * Get the callbackUri property: The callback URI to override the main callback URI.
     *
     * @return the callbackUri value.
     */
    public String getCallbackUri() {
        return this.callbackUri;
    }

    /**
     * Set the callbackUri property: The callback URI to override the main callback URI.
     *
     * @param callbackUri the callbackUri value to set.
     * @return the RemoveParticipantRequestInternal object itself.
     */
    public RemoveParticipantRequestInternal setCallbackUri(String callbackUri) {
        this.callbackUri = callbackUri;
        return this;
    }
}
