package com.icx.javaproxytunnel.model;

import com.fasterxml.jackson.annotation.*;
import com.fasterxml.jackson.databind.ser.std.StdKeySerializers.Dynamic;
import com.icx.javaproxytunnel.model.enums.UserInputType;

public class ExternalIntegrationBotExchangeRequest {
    private String virtualAgentID;
    private Object botConfig;
    private String userInput;
    private UserInputType userInputType;
    private ExecutionInfo executionInfo;
    private SystemTelemetryData systemTelemetryData;
    private String base64WavFile;
    private String botSessionState;
    private String customPayload;
    private String mediaType;

    @JsonProperty("virtualAgentId")
    public String getVirtualAgentID() { return virtualAgentID; }
    @JsonProperty("virtualAgentId")
    public void setVirtualAgentID(String value) { this.virtualAgentID = value; }

    @JsonProperty("botConfig")
    public Object getBotConfig() { return botConfig; }
    @JsonProperty("botConfig")
    public void setBotConfig(Object value) { this.botConfig = value; }

    @JsonProperty("userInput")
    public String getUserInput() { return userInput; }
    @JsonProperty("userInput")
    public void setUserInput(String value) { this.userInput = value; }

    @JsonProperty("userInputType")
    public UserInputType getUserInputType() { return userInputType; }
    @JsonProperty("userInputType")
    public void setUserInputType(UserInputType value) { this.userInputType = value; }

    @JsonProperty("executionInfo")
    public ExecutionInfo getExecutionInfo() { return executionInfo; }
    @JsonProperty("executionInfo")
    public void setExecutionInfo(ExecutionInfo value) { this.executionInfo = value; }

    @JsonProperty("systemTelemetryData")
    public SystemTelemetryData getSystemTelemetryData() { return systemTelemetryData; }
    @JsonProperty("systemTelemetryData")
    public void setSystemTelemetryData(SystemTelemetryData value) { this.systemTelemetryData = value; }

    @JsonProperty("base64wavFile")
    public String getBase64WavFile() { return base64WavFile; }
    @JsonProperty("base64wavFile")
    public void setBase64WavFile(String value) { this.base64WavFile = value; }

    @JsonProperty("botSessionState")
    public String getBotSessionState() { return botSessionState; }
    @JsonProperty("botSessionState")
    public void setBotSessionState(String value) { this.botSessionState = value; }

    @JsonProperty("customPayload")
    public String getCustomPayload() { return customPayload; }
    @JsonProperty("customPayload")
    public void setCustomPayload(String value) { this.customPayload = value; }

    @JsonProperty("mediaType")
    public String getMediaType() { return mediaType; }
    @JsonProperty("mediaType")
    public void setMediaType(String value) { this.mediaType = value; }
}
