All Downloads are FREE. Search and download functionalities are using the official Maven repository.

com.unblu.webapi.jersey.v4.api.ConversationsApi Maven / Gradle / Ivy

The newest version!
package com.unblu.webapi.jersey.v4.api;

import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;

import com.unblu.webapi.jersey.v4.invoker.ApiClient;
import com.unblu.webapi.jersey.v4.invoker.ApiException;
import com.unblu.webapi.jersey.v4.invoker.ApiResponse;
import com.unblu.webapi.jersey.v4.invoker.Configuration;
import com.unblu.webapi.jersey.v4.invoker.Pair;
import com.unblu.webapi.model.v4.ConversationCreationData;
import com.unblu.webapi.model.v4.ConversationData;
import com.unblu.webapi.model.v4.ConversationFileDataList;
import com.unblu.webapi.model.v4.ConversationQuery;
import com.unblu.webapi.model.v4.ConversationRecipientData;
import com.unblu.webapi.model.v4.ConversationRecordingState;
import com.unblu.webapi.model.v4.ConversationResult;
import com.unblu.webapi.model.v4.ConversationsAddExternalParticipantBody;
import com.unblu.webapi.model.v4.ConversationsAddParticipantBody;
import com.unblu.webapi.model.v4.ConversationsChangeParticipantVisibilityBody;
import com.unblu.webapi.model.v4.ConversationsEndBody;
import com.unblu.webapi.model.v4.ConversationsOffboardParticipantBody;
import com.unblu.webapi.model.v4.ConversationsSetAssigneePersonBody;
import com.unblu.webapi.model.v4.ConversationsSetAwaitedPersonTypeBody;
import com.unblu.webapi.model.v4.ConversationsSetContextPersonBody;
import com.unblu.webapi.model.v4.ConversationsSetLocaleBody;
import com.unblu.webapi.model.v4.ConversationsSetScheduledTimestampBody;
import com.unblu.webapi.model.v4.ConversationsSetStarredBody;
import com.unblu.webapi.model.v4.ConversationsSetTopicBody;
import com.unblu.webapi.model.v4.ConversationsSetVisibilityBody;
import com.unblu.webapi.model.v4.ConversationsSetVisitorDataBody;
import com.unblu.webapi.model.v4.ExpandFields;

import jakarta.ws.rs.core.GenericType;

public class ConversationsApi {
	private ApiClient apiClient;

	public ConversationsApi() {
		this(Configuration.getDefaultApiClient());
	}

	public ConversationsApi(ApiClient apiClient) {
		this.apiClient = apiClient;
	}

	public ApiClient getApiClient() {
		return apiClient;
	}

	public void setApiClient(ApiClient apiClient) {
		this.apiClient = apiClient;
	}

	/**
	 * addExternalParticipant Adds a participant connected through an external messenger to the given conversation. <p> For participants that will write
	 * messages directly through Unblu, use `addParticipant` instead.<br>
	 * 
	 * @param conversationId The conversation to update (required)
	 * @param conversationsAddExternalParticipantBody (required)
	 * @param expand (optional)
	 * @return ConversationData
	 * @throws ApiException if fails to make API call
	 */
	public ConversationData conversationsAddExternalParticipant(String conversationId, ConversationsAddExternalParticipantBody conversationsAddExternalParticipantBody, List expand) throws ApiException {
		return conversationsAddExternalParticipantWithHttpInfo(conversationId, conversationsAddExternalParticipantBody, expand).getData();
	}

	/**
	 * addExternalParticipant Adds a participant connected through an external messenger to the given conversation. <p> For participants that will write
	 * messages directly through Unblu, use `addParticipant` instead.<br>
	 * 
	 * @param conversationId The conversation to update (required)
	 * @param conversationsAddExternalParticipantBody (required)
	 * @param expand (optional)
	 * @return ApiResponse<ConversationData>
	 * @throws ApiException if fails to make API call
	 */
	public ApiResponse conversationsAddExternalParticipantWithHttpInfo(String conversationId, ConversationsAddExternalParticipantBody conversationsAddExternalParticipantBody, List expand) throws ApiException {
		Object localVarPostBody = conversationsAddExternalParticipantBody;

		// verify the required parameter 'conversationId' is set
		if (conversationId == null) {
			throw new ApiException(400, "Missing the required parameter 'conversationId' when calling conversationsAddExternalParticipant");
		}

		// verify the required parameter 'conversationsAddExternalParticipantBody' is set
		if (conversationsAddExternalParticipantBody == null) {
			throw new ApiException(400, "Missing the required parameter 'conversationsAddExternalParticipantBody' when calling conversationsAddExternalParticipant");
		}

		// create path and map variables
		String localVarPath = "/conversations/{conversationId}/addExternalParticipant"
				.replaceAll("\\{" + "conversationId" + "\\}", apiClient.escapeString(conversationId.toString()));

		// query params
		List localVarQueryParams = new ArrayList();
		Map localVarHeaderParams = new HashMap();
		Map localVarFormParams = new HashMap();

		localVarQueryParams.addAll(apiClient.parameterToPairs("csv", "expand", expand));

		final String[] localVarAccepts = {
			"application/json"
		};
		final String localVarAccept = apiClient.selectHeaderAccept(localVarAccepts);

		final String[] localVarContentTypes = {
			"application/json"
		};
		final String localVarContentType = apiClient.selectHeaderContentType(localVarContentTypes);

		String[] localVarAuthNames = new String[] { "basicAuth" };

		GenericType localVarReturnType = new GenericType() {
		};
		return apiClient.invokeAPI(localVarPath, "POST", localVarQueryParams, localVarPostBody, localVarHeaderParams, localVarFormParams, localVarAccept, localVarContentType, localVarAuthNames, localVarReturnType);
	}

	/**
	 * addParticipant Adds a participant to the given conversation. <p> This can only be used for participants who send messages through Unblu. Use
	 * `addExternalParticipant` for participants who send messages through an external messenger channel.<br>
	 * 
	 * @param conversationId the conversation that is updated (required)
	 * @param conversationsAddParticipantBody (required)
	 * @param expand (optional)
	 * @return ConversationData
	 * @throws ApiException if fails to make API call
	 */
	public ConversationData conversationsAddParticipant(String conversationId, ConversationsAddParticipantBody conversationsAddParticipantBody, List expand) throws ApiException {
		return conversationsAddParticipantWithHttpInfo(conversationId, conversationsAddParticipantBody, expand).getData();
	}

	/**
	 * addParticipant Adds a participant to the given conversation. <p> This can only be used for participants who send messages through Unblu. Use
	 * `addExternalParticipant` for participants who send messages through an external messenger channel.<br>
	 * 
	 * @param conversationId the conversation that is updated (required)
	 * @param conversationsAddParticipantBody (required)
	 * @param expand (optional)
	 * @return ApiResponse<ConversationData>
	 * @throws ApiException if fails to make API call
	 */
	public ApiResponse conversationsAddParticipantWithHttpInfo(String conversationId, ConversationsAddParticipantBody conversationsAddParticipantBody, List expand) throws ApiException {
		Object localVarPostBody = conversationsAddParticipantBody;

		// verify the required parameter 'conversationId' is set
		if (conversationId == null) {
			throw new ApiException(400, "Missing the required parameter 'conversationId' when calling conversationsAddParticipant");
		}

		// verify the required parameter 'conversationsAddParticipantBody' is set
		if (conversationsAddParticipantBody == null) {
			throw new ApiException(400, "Missing the required parameter 'conversationsAddParticipantBody' when calling conversationsAddParticipant");
		}

		// create path and map variables
		String localVarPath = "/conversations/{conversationId}/addParticipant"
				.replaceAll("\\{" + "conversationId" + "\\}", apiClient.escapeString(conversationId.toString()));

		// query params
		List localVarQueryParams = new ArrayList();
		Map localVarHeaderParams = new HashMap();
		Map localVarFormParams = new HashMap();

		localVarQueryParams.addAll(apiClient.parameterToPairs("csv", "expand", expand));

		final String[] localVarAccepts = {
			"application/json"
		};
		final String localVarAccept = apiClient.selectHeaderAccept(localVarAccepts);

		final String[] localVarContentTypes = {
			"application/json"
		};
		final String localVarContentType = apiClient.selectHeaderContentType(localVarContentTypes);

		String[] localVarAuthNames = new String[] { "basicAuth" };

		GenericType localVarReturnType = new GenericType() {
		};
		return apiClient.invokeAPI(localVarPath, "POST", localVarQueryParams, localVarPostBody, localVarHeaderParams, localVarFormParams, localVarAccept, localVarContentType, localVarAuthNames, localVarReturnType);
	}

	/**
	 * changeParticipantVisibility Changes the visibility of a conversation's participant.<br>
	 * 
	 * @param conversationId (required)
	 * @param conversationsChangeParticipantVisibilityBody (required)
	 * @param expand (optional)
	 * @return ConversationData
	 * @throws ApiException if fails to make API call
	 */
	public ConversationData conversationsChangeParticipantVisibility(String conversationId, ConversationsChangeParticipantVisibilityBody conversationsChangeParticipantVisibilityBody, List expand) throws ApiException {
		return conversationsChangeParticipantVisibilityWithHttpInfo(conversationId, conversationsChangeParticipantVisibilityBody, expand).getData();
	}

	/**
	 * changeParticipantVisibility Changes the visibility of a conversation's participant.<br>
	 * 
	 * @param conversationId (required)
	 * @param conversationsChangeParticipantVisibilityBody (required)
	 * @param expand (optional)
	 * @return ApiResponse<ConversationData>
	 * @throws ApiException if fails to make API call
	 */
	public ApiResponse conversationsChangeParticipantVisibilityWithHttpInfo(String conversationId, ConversationsChangeParticipantVisibilityBody conversationsChangeParticipantVisibilityBody, List expand) throws ApiException {
		Object localVarPostBody = conversationsChangeParticipantVisibilityBody;

		// verify the required parameter 'conversationId' is set
		if (conversationId == null) {
			throw new ApiException(400, "Missing the required parameter 'conversationId' when calling conversationsChangeParticipantVisibility");
		}

		// verify the required parameter 'conversationsChangeParticipantVisibilityBody' is set
		if (conversationsChangeParticipantVisibilityBody == null) {
			throw new ApiException(400, "Missing the required parameter 'conversationsChangeParticipantVisibilityBody' when calling conversationsChangeParticipantVisibility");
		}

		// create path and map variables
		String localVarPath = "/conversations/{conversationId}/changeParticipantVisibility"
				.replaceAll("\\{" + "conversationId" + "\\}", apiClient.escapeString(conversationId.toString()));

		// query params
		List localVarQueryParams = new ArrayList();
		Map localVarHeaderParams = new HashMap();
		Map localVarFormParams = new HashMap();

		localVarQueryParams.addAll(apiClient.parameterToPairs("csv", "expand", expand));

		final String[] localVarAccepts = {
			"application/json"
		};
		final String localVarAccept = apiClient.selectHeaderAccept(localVarAccepts);

		final String[] localVarContentTypes = {
			"application/json"
		};
		final String localVarContentType = apiClient.selectHeaderContentType(localVarContentTypes);

		String[] localVarAuthNames = new String[] { "basicAuth" };

		GenericType localVarReturnType = new GenericType() {
		};
		return apiClient.invokeAPI(localVarPath, "POST", localVarQueryParams, localVarPostBody, localVarHeaderParams, localVarFormParams, localVarAccept, localVarContentType, localVarAuthNames, localVarReturnType);
	}

	/**
	 * create Creates the conversation in the system. The conversation ID mustn't be set as a new one will be generated. <br> If called with the
	 * authorization role `SUPERVISOR` or `REGISTERED_USER`, there are a number of restrictions regarding the conversation to be created:
	 * <ul> <li>The `initialEngagementType` or the referenced `conversationTemplateId` must be a conversation type initiated by
	 * agents <li>The `assigneePersonId` must refer to the person entity of the agent making the call <li>The agent making the call must be
	 * the only participant in the conversation </ul> If `sourceId` and `externalMessengerChannelId` are set they have to be unique for
	 * any active conversations. Ended conversations are ignored.<br>
	 * 
	 * @param conversationCreationData (required)
	 * @param expand (optional)
	 * @return ConversationData
	 * @throws ApiException if fails to make API call
	 */
	public ConversationData conversationsCreate(ConversationCreationData conversationCreationData, List expand) throws ApiException {
		return conversationsCreateWithHttpInfo(conversationCreationData, expand).getData();
	}

	/**
	 * create Creates the conversation in the system. The conversation ID mustn't be set as a new one will be generated. <br> If called with the
	 * authorization role `SUPERVISOR` or `REGISTERED_USER`, there are a number of restrictions regarding the conversation to be created:
	 * <ul> <li>The `initialEngagementType` or the referenced `conversationTemplateId` must be a conversation type initiated by
	 * agents <li>The `assigneePersonId` must refer to the person entity of the agent making the call <li>The agent making the call must be
	 * the only participant in the conversation </ul> If `sourceId` and `externalMessengerChannelId` are set they have to be unique for
	 * any active conversations. Ended conversations are ignored.<br>
	 * 
	 * @param conversationCreationData (required)
	 * @param expand (optional)
	 * @return ApiResponse<ConversationData>
	 * @throws ApiException if fails to make API call
	 */
	public ApiResponse conversationsCreateWithHttpInfo(ConversationCreationData conversationCreationData, List expand) throws ApiException {
		Object localVarPostBody = conversationCreationData;

		// verify the required parameter 'conversationCreationData' is set
		if (conversationCreationData == null) {
			throw new ApiException(400, "Missing the required parameter 'conversationCreationData' when calling conversationsCreate");
		}

		// create path and map variables
		String localVarPath = "/conversations/create";

		// query params
		List localVarQueryParams = new ArrayList();
		Map localVarHeaderParams = new HashMap();
		Map localVarFormParams = new HashMap();

		localVarQueryParams.addAll(apiClient.parameterToPairs("csv", "expand", expand));

		final String[] localVarAccepts = {
			"application/json"
		};
		final String localVarAccept = apiClient.selectHeaderAccept(localVarAccepts);

		final String[] localVarContentTypes = {
			"application/json"
		};
		final String localVarContentType = apiClient.selectHeaderContentType(localVarContentTypes);

		String[] localVarAuthNames = new String[] { "basicAuth" };

		GenericType localVarReturnType = new GenericType() {
		};
		return apiClient.invokeAPI(localVarPath, "POST", localVarQueryParams, localVarPostBody, localVarHeaderParams, localVarFormParams, localVarAccept, localVarContentType, localVarAuthNames, localVarReturnType);
	}

	/**
	 * delete Deletes the conversation with the given ID. <br> Calls with the authorization role `SUPERVISOR` or `REGISTERED_USER` are
	 * only permissible if: <ul> <li>The agent making the call is the only participant in the conversation <li>The conversation never had any
	 * participants other than the agent calling the endpoint <li>The conversation contains no messages except system messages and messages sent by bots
	 * </ul><br>
	 * 
	 * @param conversationId The ID of the conversation to be deleted (required)
	 * @throws ApiException if fails to make API call
	 */
	public void conversationsDelete(String conversationId) throws ApiException {

		conversationsDeleteWithHttpInfo(conversationId);
	}

	/**
	 * delete Deletes the conversation with the given ID. <br> Calls with the authorization role `SUPERVISOR` or `REGISTERED_USER` are
	 * only permissible if: <ul> <li>The agent making the call is the only participant in the conversation <li>The conversation never had any
	 * participants other than the agent calling the endpoint <li>The conversation contains no messages except system messages and messages sent by bots
	 * </ul><br>
	 * 
	 * @param conversationId The ID of the conversation to be deleted (required)
	 * @throws ApiException if fails to make API call
	 */
	public ApiResponse conversationsDeleteWithHttpInfo(String conversationId) throws ApiException {
		Object localVarPostBody = new HashMap<>();

		// verify the required parameter 'conversationId' is set
		if (conversationId == null) {
			throw new ApiException(400, "Missing the required parameter 'conversationId' when calling conversationsDelete");
		}

		// create path and map variables
		String localVarPath = "/conversations/{conversationId}/delete"
				.replaceAll("\\{" + "conversationId" + "\\}", apiClient.escapeString(conversationId.toString()));

		// query params
		List localVarQueryParams = new ArrayList();
		Map localVarHeaderParams = new HashMap();
		Map localVarFormParams = new HashMap();

		final String[] localVarAccepts = {

		};
		final String localVarAccept = apiClient.selectHeaderAccept(localVarAccepts);

		final String[] localVarContentTypes = {

		};
		final String localVarContentType = apiClient.selectHeaderContentType(localVarContentTypes);

		String[] localVarAuthNames = new String[] { "basicAuth" };

		return apiClient.invokeAPI(localVarPath, "DELETE", localVarQueryParams, localVarPostBody, localVarHeaderParams, localVarFormParams, localVarAccept, localVarContentType, localVarAuthNames, null);
	}

	/**
	 * end Ends a conversation. If called with the authorization role `SUPERVISOR` or `REGISTERED_USER`, the agent making the call must have the
	 * necessary permissions to end a conversation.<br>
	 * 
	 * @param conversationId the conversation that is updated (required)
	 * @param conversationsEndBody (required)
	 * @param expand (optional)
	 * @return ConversationData
	 * @throws ApiException if fails to make API call
	 */
	public ConversationData conversationsEnd(String conversationId, ConversationsEndBody conversationsEndBody, List expand) throws ApiException {
		return conversationsEndWithHttpInfo(conversationId, conversationsEndBody, expand).getData();
	}

	/**
	 * end Ends a conversation. If called with the authorization role `SUPERVISOR` or `REGISTERED_USER`, the agent making the call must have the
	 * necessary permissions to end a conversation.<br>
	 * 
	 * @param conversationId the conversation that is updated (required)
	 * @param conversationsEndBody (required)
	 * @param expand (optional)
	 * @return ApiResponse<ConversationData>
	 * @throws ApiException if fails to make API call
	 */
	public ApiResponse conversationsEndWithHttpInfo(String conversationId, ConversationsEndBody conversationsEndBody, List expand) throws ApiException {
		Object localVarPostBody = conversationsEndBody;

		// verify the required parameter 'conversationId' is set
		if (conversationId == null) {
			throw new ApiException(400, "Missing the required parameter 'conversationId' when calling conversationsEnd");
		}

		// verify the required parameter 'conversationsEndBody' is set
		if (conversationsEndBody == null) {
			throw new ApiException(400, "Missing the required parameter 'conversationsEndBody' when calling conversationsEnd");
		}

		// create path and map variables
		String localVarPath = "/conversations/{conversationId}/end"
				.replaceAll("\\{" + "conversationId" + "\\}", apiClient.escapeString(conversationId.toString()));

		// query params
		List localVarQueryParams = new ArrayList();
		Map localVarHeaderParams = new HashMap();
		Map localVarFormParams = new HashMap();

		localVarQueryParams.addAll(apiClient.parameterToPairs("csv", "expand", expand));

		final String[] localVarAccepts = {
			"application/json"
		};
		final String localVarAccept = apiClient.selectHeaderAccept(localVarAccepts);

		final String[] localVarContentTypes = {
			"application/json"
		};
		final String localVarContentType = apiClient.selectHeaderContentType(localVarContentTypes);

		String[] localVarAuthNames = new String[] { "basicAuth" };

		GenericType localVarReturnType = new GenericType() {
		};
		return apiClient.invokeAPI(localVarPath, "POST", localVarQueryParams, localVarPostBody, localVarHeaderParams, localVarFormParams, localVarAccept, localVarContentType, localVarAuthNames, localVarReturnType);
	}

	/**
	 * getBySourceIdAndChannelId Returns the active conversation for the given source ID and channel ID. When called with the authorization role
	 * `REGISTERED_USER`, the agent making the call must be a participant in the conversation matching the search criteria. If they aren't, the call
	 * will fail. When called with the authorization role `SUPERVISOR`, the conversation matching the search criteria must include a participant who is an
	 * agent in their team (or one of their teams). If it doesn't, the call will fail. <p> Ended conversations for the same sourceId and channel are
	 * ignored. These can be retrieved using the <code>/search</code> service.<br>
	 * 
	 * @param sourceId The source ID the conversation was created with (optional)
	 * @param externalMessengerChannelId The messenger channel ID the conversation is connected to. Can be null for internal conversations. (optional)
	 * @param expand (optional)
	 * @return ConversationData
	 * @throws ApiException if fails to make API call
	 */
	public ConversationData conversationsGetBySourceIdAndChannelId(String sourceId, String externalMessengerChannelId, List expand) throws ApiException {
		return conversationsGetBySourceIdAndChannelIdWithHttpInfo(sourceId, externalMessengerChannelId, expand).getData();
	}

	/**
	 * getBySourceIdAndChannelId Returns the active conversation for the given source ID and channel ID. When called with the authorization role
	 * `REGISTERED_USER`, the agent making the call must be a participant in the conversation matching the search criteria. If they aren't, the call
	 * will fail. When called with the authorization role `SUPERVISOR`, the conversation matching the search criteria must include a participant who is an
	 * agent in their team (or one of their teams). If it doesn't, the call will fail. <p> Ended conversations for the same sourceId and channel are
	 * ignored. These can be retrieved using the <code>/search</code> service.<br>
	 * 
	 * @param sourceId The source ID the conversation was created with (optional)
	 * @param externalMessengerChannelId The messenger channel ID the conversation is connected to. Can be null for internal conversations. (optional)
	 * @param expand (optional)
	 * @return ApiResponse<ConversationData>
	 * @throws ApiException if fails to make API call
	 */
	public ApiResponse conversationsGetBySourceIdAndChannelIdWithHttpInfo(String sourceId, String externalMessengerChannelId, List expand) throws ApiException {
		Object localVarPostBody = new HashMap<>();

		// create path and map variables
		String localVarPath = "/conversations/getBySourceIdAndChannelId";

		// query params
		List localVarQueryParams = new ArrayList();
		Map localVarHeaderParams = new HashMap();
		Map localVarFormParams = new HashMap();

		localVarQueryParams.addAll(apiClient.parameterToPairs("", "sourceId", sourceId));
		localVarQueryParams.addAll(apiClient.parameterToPairs("", "externalMessengerChannelId", externalMessengerChannelId));
		localVarQueryParams.addAll(apiClient.parameterToPairs("csv", "expand", expand));

		final String[] localVarAccepts = {
			"application/json"
		};
		final String localVarAccept = apiClient.selectHeaderAccept(localVarAccepts);

		final String[] localVarContentTypes = {

		};
		final String localVarContentType = apiClient.selectHeaderContentType(localVarContentTypes);

		String[] localVarAuthNames = new String[] { "basicAuth" };

		GenericType localVarReturnType = new GenericType() {
		};
		return apiClient.invokeAPI(localVarPath, "GET", localVarQueryParams, localVarPostBody, localVarHeaderParams, localVarFormParams, localVarAccept, localVarContentType, localVarAuthNames, localVarReturnType);
	}

	/**
	 * getConversationFiles Returns a list of all files that have been shared/sent within the specified conversation.<br>
	 * 
	 * @param conversationId the id of conversation, for which the file list should be retrieved (required)
	 * @return ConversationFileDataList
	 * @throws ApiException if fails to make API call
	 */
	public ConversationFileDataList conversationsGetConversationFiles(String conversationId) throws ApiException {
		return conversationsGetConversationFilesWithHttpInfo(conversationId).getData();
	}

	/**
	 * getConversationFiles Returns a list of all files that have been shared/sent within the specified conversation.<br>
	 * 
	 * @param conversationId the id of conversation, for which the file list should be retrieved (required)
	 * @return ApiResponse<ConversationFileDataList>
	 * @throws ApiException if fails to make API call
	 */
	public ApiResponse conversationsGetConversationFilesWithHttpInfo(String conversationId) throws ApiException {
		Object localVarPostBody = new HashMap<>();

		// verify the required parameter 'conversationId' is set
		if (conversationId == null) {
			throw new ApiException(400, "Missing the required parameter 'conversationId' when calling conversationsGetConversationFiles");
		}

		// create path and map variables
		String localVarPath = "/conversations/{conversationId}/getConversationFiles"
				.replaceAll("\\{" + "conversationId" + "\\}", apiClient.escapeString(conversationId.toString()));

		// query params
		List localVarQueryParams = new ArrayList();
		Map localVarHeaderParams = new HashMap();
		Map localVarFormParams = new HashMap();

		final String[] localVarAccepts = {
			"application/json"
		};
		final String localVarAccept = apiClient.selectHeaderAccept(localVarAccepts);

		final String[] localVarContentTypes = {

		};
		final String localVarContentType = apiClient.selectHeaderContentType(localVarContentTypes);

		String[] localVarAuthNames = new String[] { "basicAuth" };

		GenericType localVarReturnType = new GenericType() {
		};
		return apiClient.invokeAPI(localVarPath, "GET", localVarQueryParams, localVarPostBody, localVarHeaderParams, localVarFormParams, localVarAccept, localVarContentType, localVarAuthNames, localVarReturnType);
	}

	/**
	 * getRecordingState Retrieve the current recording state of the given conversation<br>
	 * 
	 * @param conversationId The conversation to retrieve the recording state for (required)
	 * @return ConversationRecordingState
	 * @throws ApiException if fails to make API call
	 */
	public ConversationRecordingState conversationsGetRecordingState(String conversationId) throws ApiException {
		return conversationsGetRecordingStateWithHttpInfo(conversationId).getData();
	}

	/**
	 * getRecordingState Retrieve the current recording state of the given conversation<br>
	 * 
	 * @param conversationId The conversation to retrieve the recording state for (required)
	 * @return ApiResponse<ConversationRecordingState>
	 * @throws ApiException if fails to make API call
	 */
	public ApiResponse conversationsGetRecordingStateWithHttpInfo(String conversationId) throws ApiException {
		Object localVarPostBody = new HashMap<>();

		// verify the required parameter 'conversationId' is set
		if (conversationId == null) {
			throw new ApiException(400, "Missing the required parameter 'conversationId' when calling conversationsGetRecordingState");
		}

		// create path and map variables
		String localVarPath = "/conversations/{conversationId}/getRecordingState"
				.replaceAll("\\{" + "conversationId" + "\\}", apiClient.escapeString(conversationId.toString()));

		// query params
		List localVarQueryParams = new ArrayList();
		Map localVarHeaderParams = new HashMap();
		Map localVarFormParams = new HashMap();

		final String[] localVarAccepts = {
			"application/json"
		};
		final String localVarAccept = apiClient.selectHeaderAccept(localVarAccepts);

		final String[] localVarContentTypes = {

		};
		final String localVarContentType = apiClient.selectHeaderContentType(localVarContentTypes);

		String[] localVarAuthNames = new String[] { "basicAuth" };

		GenericType localVarReturnType = new GenericType() {
		};
		return apiClient.invokeAPI(localVarPath, "POST", localVarQueryParams, localVarPostBody, localVarHeaderParams, localVarFormParams, localVarAccept, localVarContentType, localVarAuthNames, localVarReturnType);
	}

	/**
	 * offboardParticipant Offboards a participant from a conversation.<br>
	 * 
	 * @param conversationId the conversation that is updated (required)
	 * @param conversationsOffboardParticipantBody (required)
	 * @param expand (optional)
	 * @return ConversationData
	 * @throws ApiException if fails to make API call
	 */
	public ConversationData conversationsOffboardParticipant(String conversationId, ConversationsOffboardParticipantBody conversationsOffboardParticipantBody, List expand) throws ApiException {
		return conversationsOffboardParticipantWithHttpInfo(conversationId, conversationsOffboardParticipantBody, expand).getData();
	}

	/**
	 * offboardParticipant Offboards a participant from a conversation.<br>
	 * 
	 * @param conversationId the conversation that is updated (required)
	 * @param conversationsOffboardParticipantBody (required)
	 * @param expand (optional)
	 * @return ApiResponse<ConversationData>
	 * @throws ApiException if fails to make API call
	 */
	public ApiResponse conversationsOffboardParticipantWithHttpInfo(String conversationId, ConversationsOffboardParticipantBody conversationsOffboardParticipantBody, List expand) throws ApiException {
		Object localVarPostBody = conversationsOffboardParticipantBody;

		// verify the required parameter 'conversationId' is set
		if (conversationId == null) {
			throw new ApiException(400, "Missing the required parameter 'conversationId' when calling conversationsOffboardParticipant");
		}

		// verify the required parameter 'conversationsOffboardParticipantBody' is set
		if (conversationsOffboardParticipantBody == null) {
			throw new ApiException(400, "Missing the required parameter 'conversationsOffboardParticipantBody' when calling conversationsOffboardParticipant");
		}

		// create path and map variables
		String localVarPath = "/conversations/{conversationId}/offboardParticipant"
				.replaceAll("\\{" + "conversationId" + "\\}", apiClient.escapeString(conversationId.toString()));

		// query params
		List localVarQueryParams = new ArrayList();
		Map localVarHeaderParams = new HashMap();
		Map localVarFormParams = new HashMap();

		localVarQueryParams.addAll(apiClient.parameterToPairs("csv", "expand", expand));

		final String[] localVarAccepts = {
			"application/json"
		};
		final String localVarAccept = apiClient.selectHeaderAccept(localVarAccepts);

		final String[] localVarContentTypes = {
			"application/json"
		};
		final String localVarContentType = apiClient.selectHeaderContentType(localVarContentTypes);

		String[] localVarAuthNames = new String[] { "basicAuth" };

		GenericType localVarReturnType = new GenericType() {
		};
		return apiClient.invokeAPI(localVarPath, "POST", localVarQueryParams, localVarPostBody, localVarHeaderParams, localVarFormParams, localVarAccept, localVarContentType, localVarAuthNames, localVarReturnType);
	}

	/**
	 * read Returns the conversation with the given ID. If called with the authorization role `SUPERVISOR` or `REGISTERED_USER`, the agent
	 * making the call must be a participant in the conversation.<br>
	 * 
	 * @param conversationId ID of the conversation which should be returned (required)
	 * @param expand (optional)
	 * @return ConversationData
	 * @throws ApiException if fails to make API call
	 */
	public ConversationData conversationsRead(String conversationId, List expand) throws ApiException {
		return conversationsReadWithHttpInfo(conversationId, expand).getData();
	}

	/**
	 * read Returns the conversation with the given ID. If called with the authorization role `SUPERVISOR` or `REGISTERED_USER`, the agent
	 * making the call must be a participant in the conversation.<br>
	 * 
	 * @param conversationId ID of the conversation which should be returned (required)
	 * @param expand (optional)
	 * @return ApiResponse<ConversationData>
	 * @throws ApiException if fails to make API call
	 */
	public ApiResponse conversationsReadWithHttpInfo(String conversationId, List expand) throws ApiException {
		Object localVarPostBody = new HashMap<>();

		// verify the required parameter 'conversationId' is set
		if (conversationId == null) {
			throw new ApiException(400, "Missing the required parameter 'conversationId' when calling conversationsRead");
		}

		// create path and map variables
		String localVarPath = "/conversations/{conversationId}/read"
				.replaceAll("\\{" + "conversationId" + "\\}", apiClient.escapeString(conversationId.toString()));

		// query params
		List localVarQueryParams = new ArrayList();
		Map localVarHeaderParams = new HashMap();
		Map localVarFormParams = new HashMap();

		localVarQueryParams.addAll(apiClient.parameterToPairs("csv", "expand", expand));

		final String[] localVarAccepts = {
			"application/json"
		};
		final String localVarAccept = apiClient.selectHeaderAccept(localVarAccepts);

		final String[] localVarContentTypes = {

		};
		final String localVarContentType = apiClient.selectHeaderContentType(localVarContentTypes);

		String[] localVarAuthNames = new String[] { "basicAuth" };

		GenericType localVarReturnType = new GenericType() {
		};
		return apiClient.invokeAPI(localVarPath, "GET", localVarQueryParams, localVarPostBody, localVarHeaderParams, localVarFormParams, localVarAccept, localVarContentType, localVarAuthNames, localVarReturnType);
	}

	/**
	 * search Search for conversations in the current account. If called with the authorization role `REGISTERED_USER`, the call only returns
	 * conversations matching the search criteria where the agent making a call is the participant. If the agent making the call has the user role
	 * `SUPERVISOR`, the results only include conversations of the agents in their team or teams.<br>
	 * 
	 * @param conversationQuery (required)
	 * @param expand (optional)
	 * @return ConversationResult
	 * @throws ApiException if fails to make API call
	 */
	public ConversationResult conversationsSearch(ConversationQuery conversationQuery, List expand) throws ApiException {
		return conversationsSearchWithHttpInfo(conversationQuery, expand).getData();
	}

	/**
	 * search Search for conversations in the current account. If called with the authorization role `REGISTERED_USER`, the call only returns
	 * conversations matching the search criteria where the agent making a call is the participant. If the agent making the call has the user role
	 * `SUPERVISOR`, the results only include conversations of the agents in their team or teams.<br>
	 * 
	 * @param conversationQuery (required)
	 * @param expand (optional)
	 * @return ApiResponse<ConversationResult>
	 * @throws ApiException if fails to make API call
	 */
	public ApiResponse conversationsSearchWithHttpInfo(ConversationQuery conversationQuery, List expand) throws ApiException {
		Object localVarPostBody = conversationQuery;

		// verify the required parameter 'conversationQuery' is set
		if (conversationQuery == null) {
			throw new ApiException(400, "Missing the required parameter 'conversationQuery' when calling conversationsSearch");
		}

		// create path and map variables
		String localVarPath = "/conversations/search";

		// query params
		List localVarQueryParams = new ArrayList();
		Map localVarHeaderParams = new HashMap();
		Map localVarFormParams = new HashMap();

		localVarQueryParams.addAll(apiClient.parameterToPairs("csv", "expand", expand));

		final String[] localVarAccepts = {
			"application/json"
		};
		final String localVarAccept = apiClient.selectHeaderAccept(localVarAccepts);

		final String[] localVarContentTypes = {
			"application/json"
		};
		final String localVarContentType = apiClient.selectHeaderContentType(localVarContentTypes);

		String[] localVarAuthNames = new String[] { "basicAuth" };

		GenericType localVarReturnType = new GenericType() {
		};
		return apiClient.invokeAPI(localVarPath, "POST", localVarQueryParams, localVarPostBody, localVarHeaderParams, localVarFormParams, localVarAccept, localVarContentType, localVarAuthNames, localVarReturnType);
	}

	/**
	 * setAssigneePerson Sets an agent as assignee to a conversation. <p> <b>Note:</b> The person has to have an active participation in the
	 * conversation<br>
	 * 
	 * @param conversationId the conversation that is updated (required)
	 * @param conversationsSetAssigneePersonBody (required)
	 * @param expand (optional)
	 * @return ConversationData
	 * @throws ApiException if fails to make API call
	 */
	public ConversationData conversationsSetAssigneePerson(String conversationId, ConversationsSetAssigneePersonBody conversationsSetAssigneePersonBody, List expand) throws ApiException {
		return conversationsSetAssigneePersonWithHttpInfo(conversationId, conversationsSetAssigneePersonBody, expand).getData();
	}

	/**
	 * setAssigneePerson Sets an agent as assignee to a conversation. <p> <b>Note:</b> The person has to have an active participation in the
	 * conversation<br>
	 * 
	 * @param conversationId the conversation that is updated (required)
	 * @param conversationsSetAssigneePersonBody (required)
	 * @param expand (optional)
	 * @return ApiResponse<ConversationData>
	 * @throws ApiException if fails to make API call
	 */
	public ApiResponse conversationsSetAssigneePersonWithHttpInfo(String conversationId, ConversationsSetAssigneePersonBody conversationsSetAssigneePersonBody, List expand) throws ApiException {
		Object localVarPostBody = conversationsSetAssigneePersonBody;

		// verify the required parameter 'conversationId' is set
		if (conversationId == null) {
			throw new ApiException(400, "Missing the required parameter 'conversationId' when calling conversationsSetAssigneePerson");
		}

		// verify the required parameter 'conversationsSetAssigneePersonBody' is set
		if (conversationsSetAssigneePersonBody == null) {
			throw new ApiException(400, "Missing the required parameter 'conversationsSetAssigneePersonBody' when calling conversationsSetAssigneePerson");
		}

		// create path and map variables
		String localVarPath = "/conversations/{conversationId}/setAssigneePerson"
				.replaceAll("\\{" + "conversationId" + "\\}", apiClient.escapeString(conversationId.toString()));

		// query params
		List localVarQueryParams = new ArrayList();
		Map localVarHeaderParams = new HashMap();
		Map localVarFormParams = new HashMap();

		localVarQueryParams.addAll(apiClient.parameterToPairs("csv", "expand", expand));

		final String[] localVarAccepts = {
			"application/json"
		};
		final String localVarAccept = apiClient.selectHeaderAccept(localVarAccepts);

		final String[] localVarContentTypes = {
			"application/json"
		};
		final String localVarContentType = apiClient.selectHeaderContentType(localVarContentTypes);

		String[] localVarAuthNames = new String[] { "basicAuth" };

		GenericType localVarReturnType = new GenericType() {
		};
		return apiClient.invokeAPI(localVarPath, "POST", localVarQueryParams, localVarPostBody, localVarHeaderParams, localVarFormParams, localVarAccept, localVarContentType, localVarAuthNames, localVarReturnType);
	}

	/**
	 * setAwaitedPersonType Sets the awaited person type in a conversation<br>
	 * 
	 * @param conversationId the conversation that is updated (required)
	 * @param conversationsSetAwaitedPersonTypeBody (required)
	 * @param expand (optional)
	 * @return ConversationData
	 * @throws ApiException if fails to make API call
	 */
	public ConversationData conversationsSetAwaitedPersonType(String conversationId, ConversationsSetAwaitedPersonTypeBody conversationsSetAwaitedPersonTypeBody, List expand) throws ApiException {
		return conversationsSetAwaitedPersonTypeWithHttpInfo(conversationId, conversationsSetAwaitedPersonTypeBody, expand).getData();
	}

	/**
	 * setAwaitedPersonType Sets the awaited person type in a conversation<br>
	 * 
	 * @param conversationId the conversation that is updated (required)
	 * @param conversationsSetAwaitedPersonTypeBody (required)
	 * @param expand (optional)
	 * @return ApiResponse<ConversationData>
	 * @throws ApiException if fails to make API call
	 */
	public ApiResponse conversationsSetAwaitedPersonTypeWithHttpInfo(String conversationId, ConversationsSetAwaitedPersonTypeBody conversationsSetAwaitedPersonTypeBody, List expand) throws ApiException {
		Object localVarPostBody = conversationsSetAwaitedPersonTypeBody;

		// verify the required parameter 'conversationId' is set
		if (conversationId == null) {
			throw new ApiException(400, "Missing the required parameter 'conversationId' when calling conversationsSetAwaitedPersonType");
		}

		// verify the required parameter 'conversationsSetAwaitedPersonTypeBody' is set
		if (conversationsSetAwaitedPersonTypeBody == null) {
			throw new ApiException(400, "Missing the required parameter 'conversationsSetAwaitedPersonTypeBody' when calling conversationsSetAwaitedPersonType");
		}

		// create path and map variables
		String localVarPath = "/conversations/{conversationId}/setAwaitedPersonType"
				.replaceAll("\\{" + "conversationId" + "\\}", apiClient.escapeString(conversationId.toString()));

		// query params
		List localVarQueryParams = new ArrayList();
		Map localVarHeaderParams = new HashMap();
		Map localVarFormParams = new HashMap();

		localVarQueryParams.addAll(apiClient.parameterToPairs("csv", "expand", expand));

		final String[] localVarAccepts = {
			"application/json"
		};
		final String localVarAccept = apiClient.selectHeaderAccept(localVarAccepts);

		final String[] localVarContentTypes = {
			"application/json"
		};
		final String localVarContentType = apiClient.selectHeaderContentType(localVarContentTypes);

		String[] localVarAuthNames = new String[] { "basicAuth" };

		GenericType localVarReturnType = new GenericType() {
		};
		return apiClient.invokeAPI(localVarPath, "POST", localVarQueryParams, localVarPostBody, localVarHeaderParams, localVarFormParams, localVarAccept, localVarContentType, localVarAuthNames, localVarReturnType);
	}

	/**
	 * setContextPerson Sets a visitor as context person of a conversation. <p> <b>Note:</b> The person has to have an active participation in the
	 * conversation<br>
	 * 
	 * @param conversationId the conversation that is updated (required)
	 * @param conversationsSetContextPersonBody (required)
	 * @param expand (optional)
	 * @return ConversationData
	 * @throws ApiException if fails to make API call
	 */
	public ConversationData conversationsSetContextPerson(String conversationId, ConversationsSetContextPersonBody conversationsSetContextPersonBody, List expand) throws ApiException {
		return conversationsSetContextPersonWithHttpInfo(conversationId, conversationsSetContextPersonBody, expand).getData();
	}

	/**
	 * setContextPerson Sets a visitor as context person of a conversation. <p> <b>Note:</b> The person has to have an active participation in the
	 * conversation<br>
	 * 
	 * @param conversationId the conversation that is updated (required)
	 * @param conversationsSetContextPersonBody (required)
	 * @param expand (optional)
	 * @return ApiResponse<ConversationData>
	 * @throws ApiException if fails to make API call
	 */
	public ApiResponse conversationsSetContextPersonWithHttpInfo(String conversationId, ConversationsSetContextPersonBody conversationsSetContextPersonBody, List expand) throws ApiException {
		Object localVarPostBody = conversationsSetContextPersonBody;

		// verify the required parameter 'conversationId' is set
		if (conversationId == null) {
			throw new ApiException(400, "Missing the required parameter 'conversationId' when calling conversationsSetContextPerson");
		}

		// verify the required parameter 'conversationsSetContextPersonBody' is set
		if (conversationsSetContextPersonBody == null) {
			throw new ApiException(400, "Missing the required parameter 'conversationsSetContextPersonBody' when calling conversationsSetContextPerson");
		}

		// create path and map variables
		String localVarPath = "/conversations/{conversationId}/setContextPerson"
				.replaceAll("\\{" + "conversationId" + "\\}", apiClient.escapeString(conversationId.toString()));

		// query params
		List localVarQueryParams = new ArrayList();
		Map localVarHeaderParams = new HashMap();
		Map localVarFormParams = new HashMap();

		localVarQueryParams.addAll(apiClient.parameterToPairs("csv", "expand", expand));

		final String[] localVarAccepts = {
			"application/json"
		};
		final String localVarAccept = apiClient.selectHeaderAccept(localVarAccepts);

		final String[] localVarContentTypes = {
			"application/json"
		};
		final String localVarContentType = apiClient.selectHeaderContentType(localVarContentTypes);

		String[] localVarAuthNames = new String[] { "basicAuth" };

		GenericType localVarReturnType = new GenericType() {
		};
		return apiClient.invokeAPI(localVarPath, "POST", localVarQueryParams, localVarPostBody, localVarHeaderParams, localVarFormParams, localVarAccept, localVarContentType, localVarAuthNames, localVarReturnType);
	}

	/**
	 * setLocale Sets the locale of the conversation language (as BCP 47 language tag form including region if available).<br>
	 * 
	 * @param conversationId the conversation that is updated (required)
	 * @param conversationsSetLocaleBody (required)
	 * @param expand (optional)
	 * @return ConversationData
	 * @throws ApiException if fails to make API call
	 */
	public ConversationData conversationsSetLocale(String conversationId, ConversationsSetLocaleBody conversationsSetLocaleBody, List expand) throws ApiException {
		return conversationsSetLocaleWithHttpInfo(conversationId, conversationsSetLocaleBody, expand).getData();
	}

	/**
	 * setLocale Sets the locale of the conversation language (as BCP 47 language tag form including region if available).<br>
	 * 
	 * @param conversationId the conversation that is updated (required)
	 * @param conversationsSetLocaleBody (required)
	 * @param expand (optional)
	 * @return ApiResponse<ConversationData>
	 * @throws ApiException if fails to make API call
	 */
	public ApiResponse conversationsSetLocaleWithHttpInfo(String conversationId, ConversationsSetLocaleBody conversationsSetLocaleBody, List expand) throws ApiException {
		Object localVarPostBody = conversationsSetLocaleBody;

		// verify the required parameter 'conversationId' is set
		if (conversationId == null) {
			throw new ApiException(400, "Missing the required parameter 'conversationId' when calling conversationsSetLocale");
		}

		// verify the required parameter 'conversationsSetLocaleBody' is set
		if (conversationsSetLocaleBody == null) {
			throw new ApiException(400, "Missing the required parameter 'conversationsSetLocaleBody' when calling conversationsSetLocale");
		}

		// create path and map variables
		String localVarPath = "/conversations/{conversationId}/setLocale"
				.replaceAll("\\{" + "conversationId" + "\\}", apiClient.escapeString(conversationId.toString()));

		// query params
		List localVarQueryParams = new ArrayList();
		Map localVarHeaderParams = new HashMap();
		Map localVarFormParams = new HashMap();

		localVarQueryParams.addAll(apiClient.parameterToPairs("csv", "expand", expand));

		final String[] localVarAccepts = {
			"application/json"
		};
		final String localVarAccept = apiClient.selectHeaderAccept(localVarAccepts);

		final String[] localVarContentTypes = {
			"application/json"
		};
		final String localVarContentType = apiClient.selectHeaderContentType(localVarContentTypes);

		String[] localVarAuthNames = new String[] { "basicAuth" };

		GenericType localVarReturnType = new GenericType() {
		};
		return apiClient.invokeAPI(localVarPath, "POST", localVarQueryParams, localVarPostBody, localVarHeaderParams, localVarFormParams, localVarAccept, localVarContentType, localVarAuthNames, localVarReturnType);
	}

	/**
	 * setRecipient Sets a person, named area, team or account as the recipient of a conversation.<br>
	 * 
	 * @param conversationId the conversation that is updated (required)
	 * @param conversationRecipientData (required)
	 * @param expand (optional)
	 * @return ConversationData
	 * @throws ApiException if fails to make API call
	 */
	public ConversationData conversationsSetRecipient(String conversationId, ConversationRecipientData conversationRecipientData, List expand) throws ApiException {
		return conversationsSetRecipientWithHttpInfo(conversationId, conversationRecipientData, expand).getData();
	}

	/**
	 * setRecipient Sets a person, named area, team or account as the recipient of a conversation.<br>
	 * 
	 * @param conversationId the conversation that is updated (required)
	 * @param conversationRecipientData (required)
	 * @param expand (optional)
	 * @return ApiResponse<ConversationData>
	 * @throws ApiException if fails to make API call
	 */
	public ApiResponse conversationsSetRecipientWithHttpInfo(String conversationId, ConversationRecipientData conversationRecipientData, List expand) throws ApiException {
		Object localVarPostBody = conversationRecipientData;

		// verify the required parameter 'conversationId' is set
		if (conversationId == null) {
			throw new ApiException(400, "Missing the required parameter 'conversationId' when calling conversationsSetRecipient");
		}

		// verify the required parameter 'conversationRecipientData' is set
		if (conversationRecipientData == null) {
			throw new ApiException(400, "Missing the required parameter 'conversationRecipientData' when calling conversationsSetRecipient");
		}

		// create path and map variables
		String localVarPath = "/conversations/{conversationId}/setRecipient"
				.replaceAll("\\{" + "conversationId" + "\\}", apiClient.escapeString(conversationId.toString()));

		// query params
		List localVarQueryParams = new ArrayList();
		Map localVarHeaderParams = new HashMap();
		Map localVarFormParams = new HashMap();

		localVarQueryParams.addAll(apiClient.parameterToPairs("csv", "expand", expand));

		final String[] localVarAccepts = {
			"application/json"
		};
		final String localVarAccept = apiClient.selectHeaderAccept(localVarAccepts);

		final String[] localVarContentTypes = {
			"application/json"
		};
		final String localVarContentType = apiClient.selectHeaderContentType(localVarContentTypes);

		String[] localVarAuthNames = new String[] { "basicAuth" };

		GenericType localVarReturnType = new GenericType() {
		};
		return apiClient.invokeAPI(localVarPath, "POST", localVarQueryParams, localVarPostBody, localVarHeaderParams, localVarFormParams, localVarAccept, localVarContentType, localVarAuthNames, localVarReturnType);
	}

	/**
	 * setScheduledTimestamp Sets the scheduled time of the conversation. The timestamp is the Unix timestamp (ms) when the conversation is scheduled for, rounded
	 * to the nearest minute. Can only be set for conversations with initialEngagementType = \"SCHEDULED_CONVERSATION\". <br> When called with
	 * the authorization role `SUPERVISOR` or `REGISTERED_USER`, the behavior of the call depends on the configuration property
	 * `com.unblu.conversation.message.allowNonAdminUsersChangeConversationScheduledTimeViaWebApi`: <ul> <li>If the configuration property is
	 * `true`, the agent making the call can only change the conversation's `scheduledTimestamp` if they're a participant in the
	 * conversation. <li>If the configuration property is `false`, the agent making the call can change the `scheduledTimestamp` provided
	 * their participation type in the conversation is listed in the configuration property `com.unblu.conversation.allowChangeConversationScheduledTime`.
	 * </ul><br>
	 * 
	 * @param conversationId the conversation that is updated (required)
	 * @param conversationsSetScheduledTimestampBody (required)
	 * @param expand (optional)
	 * @return ConversationData
	 * @throws ApiException if fails to make API call
	 */
	public ConversationData conversationsSetScheduledTimestamp(String conversationId, ConversationsSetScheduledTimestampBody conversationsSetScheduledTimestampBody, List expand) throws ApiException {
		return conversationsSetScheduledTimestampWithHttpInfo(conversationId, conversationsSetScheduledTimestampBody, expand).getData();
	}

	/**
	 * setScheduledTimestamp Sets the scheduled time of the conversation. The timestamp is the Unix timestamp (ms) when the conversation is scheduled for, rounded
	 * to the nearest minute. Can only be set for conversations with initialEngagementType = \"SCHEDULED_CONVERSATION\". <br> When called with
	 * the authorization role `SUPERVISOR` or `REGISTERED_USER`, the behavior of the call depends on the configuration property
	 * `com.unblu.conversation.message.allowNonAdminUsersChangeConversationScheduledTimeViaWebApi`: <ul> <li>If the configuration property is
	 * `true`, the agent making the call can only change the conversation's `scheduledTimestamp` if they're a participant in the
	 * conversation. <li>If the configuration property is `false`, the agent making the call can change the `scheduledTimestamp` provided
	 * their participation type in the conversation is listed in the configuration property `com.unblu.conversation.allowChangeConversationScheduledTime`.
	 * </ul><br>
	 * 
	 * @param conversationId the conversation that is updated (required)
	 * @param conversationsSetScheduledTimestampBody (required)
	 * @param expand (optional)
	 * @return ApiResponse<ConversationData>
	 * @throws ApiException if fails to make API call
	 */
	public ApiResponse conversationsSetScheduledTimestampWithHttpInfo(String conversationId, ConversationsSetScheduledTimestampBody conversationsSetScheduledTimestampBody, List expand) throws ApiException {
		Object localVarPostBody = conversationsSetScheduledTimestampBody;

		// verify the required parameter 'conversationId' is set
		if (conversationId == null) {
			throw new ApiException(400, "Missing the required parameter 'conversationId' when calling conversationsSetScheduledTimestamp");
		}

		// verify the required parameter 'conversationsSetScheduledTimestampBody' is set
		if (conversationsSetScheduledTimestampBody == null) {
			throw new ApiException(400, "Missing the required parameter 'conversationsSetScheduledTimestampBody' when calling conversationsSetScheduledTimestamp");
		}

		// create path and map variables
		String localVarPath = "/conversations/{conversationId}/setScheduledTimestamp"
				.replaceAll("\\{" + "conversationId" + "\\}", apiClient.escapeString(conversationId.toString()));

		// query params
		List localVarQueryParams = new ArrayList();
		Map localVarHeaderParams = new HashMap();
		Map localVarFormParams = new HashMap();

		localVarQueryParams.addAll(apiClient.parameterToPairs("csv", "expand", expand));

		final String[] localVarAccepts = {
			"application/json"
		};
		final String localVarAccept = apiClient.selectHeaderAccept(localVarAccepts);

		final String[] localVarContentTypes = {
			"application/json"
		};
		final String localVarContentType = apiClient.selectHeaderContentType(localVarContentTypes);

		String[] localVarAuthNames = new String[] { "basicAuth" };

		GenericType localVarReturnType = new GenericType() {
		};
		return apiClient.invokeAPI(localVarPath, "POST", localVarQueryParams, localVarPostBody, localVarHeaderParams, localVarFormParams, localVarAccept, localVarContentType, localVarAuthNames, localVarReturnType);
	}

	/**
	 * setStarred Sets the starred status of a conversation for a particular person<br>
	 * 
	 * @param conversationId the conversation to be starred/unstarred (required)
	 * @param conversationsSetStarredBody (required)
	 * @param expand (optional)
	 * @return ConversationData
	 * @throws ApiException if fails to make API call
	 */
	public ConversationData conversationsSetStarred(String conversationId, ConversationsSetStarredBody conversationsSetStarredBody, List expand) throws ApiException {
		return conversationsSetStarredWithHttpInfo(conversationId, conversationsSetStarredBody, expand).getData();
	}

	/**
	 * setStarred Sets the starred status of a conversation for a particular person<br>
	 * 
	 * @param conversationId the conversation to be starred/unstarred (required)
	 * @param conversationsSetStarredBody (required)
	 * @param expand (optional)
	 * @return ApiResponse<ConversationData>
	 * @throws ApiException if fails to make API call
	 */
	public ApiResponse conversationsSetStarredWithHttpInfo(String conversationId, ConversationsSetStarredBody conversationsSetStarredBody, List expand) throws ApiException {
		Object localVarPostBody = conversationsSetStarredBody;

		// verify the required parameter 'conversationId' is set
		if (conversationId == null) {
			throw new ApiException(400, "Missing the required parameter 'conversationId' when calling conversationsSetStarred");
		}

		// verify the required parameter 'conversationsSetStarredBody' is set
		if (conversationsSetStarredBody == null) {
			throw new ApiException(400, "Missing the required parameter 'conversationsSetStarredBody' when calling conversationsSetStarred");
		}

		// create path and map variables
		String localVarPath = "/conversations/{conversationId}/setStarred"
				.replaceAll("\\{" + "conversationId" + "\\}", apiClient.escapeString(conversationId.toString()));

		// query params
		List localVarQueryParams = new ArrayList();
		Map localVarHeaderParams = new HashMap();
		Map localVarFormParams = new HashMap();

		localVarQueryParams.addAll(apiClient.parameterToPairs("csv", "expand", expand));

		final String[] localVarAccepts = {
			"application/json"
		};
		final String localVarAccept = apiClient.selectHeaderAccept(localVarAccepts);

		final String[] localVarContentTypes = {
			"application/json"
		};
		final String localVarContentType = apiClient.selectHeaderContentType(localVarContentTypes);

		String[] localVarAuthNames = new String[] { "basicAuth" };

		GenericType localVarReturnType = new GenericType() {
		};
		return apiClient.invokeAPI(localVarPath, "POST", localVarQueryParams, localVarPostBody, localVarHeaderParams, localVarFormParams, localVarAccept, localVarContentType, localVarAuthNames, localVarReturnType);
	}

	/**
	 * setTopic Sets the topic of the conversation. Setting it to `null` deletes the topic, provided it isn't mandatory to specify a topic for the
	 * conversation type (e.g. `SCHEDULED_CONVERSATION`). <br> When called with the authorization role `SUPERVISOR` or
	 * `REGISTERED_USER`, the behavior of the call depends on the configuration property
	 * `com.unblu.conversation.message.allowNonAdminUsersChangeConversationTopicViaWebApi`: <ul> <li>If the configuration property is
	 * `true`, the agent making the call can only change the conversation's topic if they're a participant in the conversation. <li>If the
	 * configuration property is `false`, the agent making the call can change the topic provided their participation type in the conversation is listed
	 * in the configuration property `com.unblu.conversation.message.allowChangeConversationTopic`. </ul><br>
	 * 
	 * @param conversationId the conversation that is updated (required)
	 * @param conversationsSetTopicBody (required)
	 * @param expand (optional)
	 * @return ConversationData
	 * @throws ApiException if fails to make API call
	 */
	public ConversationData conversationsSetTopic(String conversationId, ConversationsSetTopicBody conversationsSetTopicBody, List expand) throws ApiException {
		return conversationsSetTopicWithHttpInfo(conversationId, conversationsSetTopicBody, expand).getData();
	}

	/**
	 * setTopic Sets the topic of the conversation. Setting it to `null` deletes the topic, provided it isn't mandatory to specify a topic for the
	 * conversation type (e.g. `SCHEDULED_CONVERSATION`). <br> When called with the authorization role `SUPERVISOR` or
	 * `REGISTERED_USER`, the behavior of the call depends on the configuration property
	 * `com.unblu.conversation.message.allowNonAdminUsersChangeConversationTopicViaWebApi`: <ul> <li>If the configuration property is
	 * `true`, the agent making the call can only change the conversation's topic if they're a participant in the conversation. <li>If the
	 * configuration property is `false`, the agent making the call can change the topic provided their participation type in the conversation is listed
	 * in the configuration property `com.unblu.conversation.message.allowChangeConversationTopic`. </ul><br>
	 * 
	 * @param conversationId the conversation that is updated (required)
	 * @param conversationsSetTopicBody (required)
	 * @param expand (optional)
	 * @return ApiResponse<ConversationData>
	 * @throws ApiException if fails to make API call
	 */
	public ApiResponse conversationsSetTopicWithHttpInfo(String conversationId, ConversationsSetTopicBody conversationsSetTopicBody, List expand) throws ApiException {
		Object localVarPostBody = conversationsSetTopicBody;

		// verify the required parameter 'conversationId' is set
		if (conversationId == null) {
			throw new ApiException(400, "Missing the required parameter 'conversationId' when calling conversationsSetTopic");
		}

		// verify the required parameter 'conversationsSetTopicBody' is set
		if (conversationsSetTopicBody == null) {
			throw new ApiException(400, "Missing the required parameter 'conversationsSetTopicBody' when calling conversationsSetTopic");
		}

		// create path and map variables
		String localVarPath = "/conversations/{conversationId}/setTopic"
				.replaceAll("\\{" + "conversationId" + "\\}", apiClient.escapeString(conversationId.toString()));

		// query params
		List localVarQueryParams = new ArrayList();
		Map localVarHeaderParams = new HashMap();
		Map localVarFormParams = new HashMap();

		localVarQueryParams.addAll(apiClient.parameterToPairs("csv", "expand", expand));

		final String[] localVarAccepts = {
			"application/json"
		};
		final String localVarAccept = apiClient.selectHeaderAccept(localVarAccepts);

		final String[] localVarContentTypes = {
			"application/json"
		};
		final String localVarContentType = apiClient.selectHeaderContentType(localVarContentTypes);

		String[] localVarAuthNames = new String[] { "basicAuth" };

		GenericType localVarReturnType = new GenericType() {
		};
		return apiClient.invokeAPI(localVarPath, "POST", localVarQueryParams, localVarPostBody, localVarHeaderParams, localVarFormParams, localVarAccept, localVarContentType, localVarAuthNames, localVarReturnType);
	}

	/**
	 * setVisibility Sets the conversation visibility<br>
	 * 
	 * @param conversationId the conversation that is updated (required)
	 * @param conversationsSetVisibilityBody (required)
	 * @param expand (optional)
	 * @return ConversationData
	 * @throws ApiException if fails to make API call
	 */
	public ConversationData conversationsSetVisibility(String conversationId, ConversationsSetVisibilityBody conversationsSetVisibilityBody, List expand) throws ApiException {
		return conversationsSetVisibilityWithHttpInfo(conversationId, conversationsSetVisibilityBody, expand).getData();
	}

	/**
	 * setVisibility Sets the conversation visibility<br>
	 * 
	 * @param conversationId the conversation that is updated (required)
	 * @param conversationsSetVisibilityBody (required)
	 * @param expand (optional)
	 * @return ApiResponse<ConversationData>
	 * @throws ApiException if fails to make API call
	 */
	public ApiResponse conversationsSetVisibilityWithHttpInfo(String conversationId, ConversationsSetVisibilityBody conversationsSetVisibilityBody, List expand) throws ApiException {
		Object localVarPostBody = conversationsSetVisibilityBody;

		// verify the required parameter 'conversationId' is set
		if (conversationId == null) {
			throw new ApiException(400, "Missing the required parameter 'conversationId' when calling conversationsSetVisibility");
		}

		// verify the required parameter 'conversationsSetVisibilityBody' is set
		if (conversationsSetVisibilityBody == null) {
			throw new ApiException(400, "Missing the required parameter 'conversationsSetVisibilityBody' when calling conversationsSetVisibility");
		}

		// create path and map variables
		String localVarPath = "/conversations/{conversationId}/setVisibility"
				.replaceAll("\\{" + "conversationId" + "\\}", apiClient.escapeString(conversationId.toString()));

		// query params
		List localVarQueryParams = new ArrayList();
		Map localVarHeaderParams = new HashMap();
		Map localVarFormParams = new HashMap();

		localVarQueryParams.addAll(apiClient.parameterToPairs("csv", "expand", expand));

		final String[] localVarAccepts = {
			"application/json"
		};
		final String localVarAccept = apiClient.selectHeaderAccept(localVarAccepts);

		final String[] localVarContentTypes = {
			"application/json"
		};
		final String localVarContentType = apiClient.selectHeaderContentType(localVarContentTypes);

		String[] localVarAuthNames = new String[] { "basicAuth" };

		GenericType localVarReturnType = new GenericType() {
		};
		return apiClient.invokeAPI(localVarPath, "POST", localVarQueryParams, localVarPostBody, localVarHeaderParams, localVarFormParams, localVarAccept, localVarContentType, localVarAuthNames, localVarReturnType);
	}

	/**
	 * setVisitorData Sets custom visitor data. The data is readable on the visitor side. Don't include any confidential information. Security-related data
	 * should be stored in the conversation metadata.<br>
	 * 
	 * @param conversationId the conversation where the custom data should be added (required)
	 * @param conversationsSetVisitorDataBody the custom visitor data (required)
	 * @param expand (optional)
	 * @return ConversationData
	 * @throws ApiException if fails to make API call
	 */
	public ConversationData conversationsSetVisitorData(String conversationId, ConversationsSetVisitorDataBody conversationsSetVisitorDataBody, List expand) throws ApiException {
		return conversationsSetVisitorDataWithHttpInfo(conversationId, conversationsSetVisitorDataBody, expand).getData();
	}

	/**
	 * setVisitorData Sets custom visitor data. The data is readable on the visitor side. Don't include any confidential information. Security-related data
	 * should be stored in the conversation metadata.<br>
	 * 
	 * @param conversationId the conversation where the custom data should be added (required)
	 * @param conversationsSetVisitorDataBody the custom visitor data (required)
	 * @param expand (optional)
	 * @return ApiResponse<ConversationData>
	 * @throws ApiException if fails to make API call
	 */
	public ApiResponse conversationsSetVisitorDataWithHttpInfo(String conversationId, ConversationsSetVisitorDataBody conversationsSetVisitorDataBody, List expand) throws ApiException {
		Object localVarPostBody = conversationsSetVisitorDataBody;

		// verify the required parameter 'conversationId' is set
		if (conversationId == null) {
			throw new ApiException(400, "Missing the required parameter 'conversationId' when calling conversationsSetVisitorData");
		}

		// verify the required parameter 'conversationsSetVisitorDataBody' is set
		if (conversationsSetVisitorDataBody == null) {
			throw new ApiException(400, "Missing the required parameter 'conversationsSetVisitorDataBody' when calling conversationsSetVisitorData");
		}

		// create path and map variables
		String localVarPath = "/conversations/{conversationId}/setVisitorData"
				.replaceAll("\\{" + "conversationId" + "\\}", apiClient.escapeString(conversationId.toString()));

		// query params
		List localVarQueryParams = new ArrayList();
		Map localVarHeaderParams = new HashMap();
		Map localVarFormParams = new HashMap();

		localVarQueryParams.addAll(apiClient.parameterToPairs("csv", "expand", expand));

		final String[] localVarAccepts = {
			"application/json"
		};
		final String localVarAccept = apiClient.selectHeaderAccept(localVarAccepts);

		final String[] localVarContentTypes = {
			"application/json"
		};
		final String localVarContentType = apiClient.selectHeaderContentType(localVarContentTypes);

		String[] localVarAuthNames = new String[] { "basicAuth" };

		GenericType localVarReturnType = new GenericType() {
		};
		return apiClient.invokeAPI(localVarPath, "POST", localVarQueryParams, localVarPostBody, localVarHeaderParams, localVarFormParams, localVarAccept, localVarContentType, localVarAuthNames, localVarReturnType);
	}

	/**
	 * startRecording Manually start a conversation recording. The recording is only started if: <ul> <li>A compatible blob store is configured
	 * <li>Manually starting and stopping a recording is allowed <li>There is an active call or collaboration layer <li>There isn't already a
	 * conversation recording running </ul> The recording is started asynchronously, and there may be a brief delay before it starts. The type of the
	 * recording (audio only or audio and video) is determined by the configuration. If an error occurs, a <code>conversation.recording_failed</code>
	 * webhook is triggered.<br>
	 * 
	 * @param conversationId The conversation for which a recording should be started (required)
	 * @throws ApiException if fails to make API call
	 */
	public void conversationsStartRecording(String conversationId) throws ApiException {

		conversationsStartRecordingWithHttpInfo(conversationId);
	}

	/**
	 * startRecording Manually start a conversation recording. The recording is only started if: <ul> <li>A compatible blob store is configured
	 * <li>Manually starting and stopping a recording is allowed <li>There is an active call or collaboration layer <li>There isn't already a
	 * conversation recording running </ul> The recording is started asynchronously, and there may be a brief delay before it starts. The type of the
	 * recording (audio only or audio and video) is determined by the configuration. If an error occurs, a <code>conversation.recording_failed</code>
	 * webhook is triggered.<br>
	 * 
	 * @param conversationId The conversation for which a recording should be started (required)
	 * @throws ApiException if fails to make API call
	 */
	public ApiResponse conversationsStartRecordingWithHttpInfo(String conversationId) throws ApiException {
		Object localVarPostBody = new HashMap<>();

		// verify the required parameter 'conversationId' is set
		if (conversationId == null) {
			throw new ApiException(400, "Missing the required parameter 'conversationId' when calling conversationsStartRecording");
		}

		// create path and map variables
		String localVarPath = "/conversations/{conversationId}/startRecording"
				.replaceAll("\\{" + "conversationId" + "\\}", apiClient.escapeString(conversationId.toString()));

		// query params
		List localVarQueryParams = new ArrayList();
		Map localVarHeaderParams = new HashMap();
		Map localVarFormParams = new HashMap();

		final String[] localVarAccepts = {

		};
		final String localVarAccept = apiClient.selectHeaderAccept(localVarAccepts);

		final String[] localVarContentTypes = {

		};
		final String localVarContentType = apiClient.selectHeaderContentType(localVarContentTypes);

		String[] localVarAuthNames = new String[] { "basicAuth" };

		return apiClient.invokeAPI(localVarPath, "POST", localVarQueryParams, localVarPostBody, localVarHeaderParams, localVarFormParams, localVarAccept, localVarContentType, localVarAuthNames, null);
	}

	/**
	 * stopRecording Manually stop a conversation recording. The recording is stopped if: <ul> <li>There is a running conversation recording
	 * <li>Manually starting and stopping the recording is allowed </ul><br>
	 * 
	 * @param conversationId The conversation for which a recording should be stopped (required)
	 * @throws ApiException if fails to make API call
	 */
	public void conversationsStopRecording(String conversationId) throws ApiException {

		conversationsStopRecordingWithHttpInfo(conversationId);
	}

	/**
	 * stopRecording Manually stop a conversation recording. The recording is stopped if: <ul> <li>There is a running conversation recording
	 * <li>Manually starting and stopping the recording is allowed </ul><br>
	 * 
	 * @param conversationId The conversation for which a recording should be stopped (required)
	 * @throws ApiException if fails to make API call
	 */
	public ApiResponse conversationsStopRecordingWithHttpInfo(String conversationId) throws ApiException {
		Object localVarPostBody = new HashMap<>();

		// verify the required parameter 'conversationId' is set
		if (conversationId == null) {
			throw new ApiException(400, "Missing the required parameter 'conversationId' when calling conversationsStopRecording");
		}

		// create path and map variables
		String localVarPath = "/conversations/{conversationId}/stopRecording"
				.replaceAll("\\{" + "conversationId" + "\\}", apiClient.escapeString(conversationId.toString()));

		// query params
		List localVarQueryParams = new ArrayList();
		Map localVarHeaderParams = new HashMap();
		Map localVarFormParams = new HashMap();

		final String[] localVarAccepts = {

		};
		final String localVarAccept = apiClient.selectHeaderAccept(localVarAccepts);

		final String[] localVarContentTypes = {

		};
		final String localVarContentType = apiClient.selectHeaderContentType(localVarContentTypes);

		String[] localVarAuthNames = new String[] { "basicAuth" };

		return apiClient.invokeAPI(localVarPath, "POST", localVarQueryParams, localVarPostBody, localVarHeaderParams, localVarFormParams, localVarAccept, localVarContentType, localVarAuthNames, null);
	}

	/**
	 * updateConfiguration Updates the configuration map for a specific conversation<br>
	 * 
	 * @param conversationId the conversation that is updated (required)
	 * @param requestBody the key-value map of settings that will be updated. The source for this map has to be the <code>configuration</code> attribute
	 * when you read the conversation using <code>configuration</code> in the <code>expand</code> query parameter. (required)
	 * @param expand (optional)
	 * @return ConversationData
	 * @throws ApiException if fails to make API call
	 */
	public ConversationData conversationsUpdateConfiguration(String conversationId, Map requestBody, List expand) throws ApiException {
		return conversationsUpdateConfigurationWithHttpInfo(conversationId, requestBody, expand).getData();
	}

	/**
	 * updateConfiguration Updates the configuration map for a specific conversation<br>
	 * 
	 * @param conversationId the conversation that is updated (required)
	 * @param requestBody the key-value map of settings that will be updated. The source for this map has to be the <code>configuration</code> attribute
	 * when you read the conversation using <code>configuration</code> in the <code>expand</code> query parameter. (required)
	 * @param expand (optional)
	 * @return ApiResponse<ConversationData>
	 * @throws ApiException if fails to make API call
	 */
	public ApiResponse conversationsUpdateConfigurationWithHttpInfo(String conversationId, Map requestBody, List expand) throws ApiException {
		Object localVarPostBody = requestBody;

		// verify the required parameter 'conversationId' is set
		if (conversationId == null) {
			throw new ApiException(400, "Missing the required parameter 'conversationId' when calling conversationsUpdateConfiguration");
		}

		// verify the required parameter 'requestBody' is set
		if (requestBody == null) {
			throw new ApiException(400, "Missing the required parameter 'requestBody' when calling conversationsUpdateConfiguration");
		}

		// create path and map variables
		String localVarPath = "/conversations/{conversationId}/updateConfiguration"
				.replaceAll("\\{" + "conversationId" + "\\}", apiClient.escapeString(conversationId.toString()));

		// query params
		List localVarQueryParams = new ArrayList();
		Map localVarHeaderParams = new HashMap();
		Map localVarFormParams = new HashMap();

		localVarQueryParams.addAll(apiClient.parameterToPairs("csv", "expand", expand));

		final String[] localVarAccepts = {
			"application/json"
		};
		final String localVarAccept = apiClient.selectHeaderAccept(localVarAccepts);

		final String[] localVarContentTypes = {
			"application/json"
		};
		final String localVarContentType = apiClient.selectHeaderContentType(localVarContentTypes);

		String[] localVarAuthNames = new String[] { "basicAuth" };

		GenericType localVarReturnType = new GenericType() {
		};
		return apiClient.invokeAPI(localVarPath, "POST", localVarQueryParams, localVarPostBody, localVarHeaderParams, localVarFormParams, localVarAccept, localVarContentType, localVarAuthNames, localVarReturnType);
	}

	/**
	 * updateMetadata Updates the metadata map for a specific conversation<br>
	 * 
	 * @param conversationId the conversation that is updated (required)
	 * @param requestBody the key-value map of metadata that will be updated. The source for this map has to be the <code>metadata</code> attribute when
	 * you read the conversation using <code>metadata</code> in the <code>expand</code> query parameter. (required)
	 * @param expand (optional)
	 * @return ConversationData
	 * @throws ApiException if fails to make API call
	 */
	public ConversationData conversationsUpdateMetadata(String conversationId, Map requestBody, List expand) throws ApiException {
		return conversationsUpdateMetadataWithHttpInfo(conversationId, requestBody, expand).getData();
	}

	/**
	 * updateMetadata Updates the metadata map for a specific conversation<br>
	 * 
	 * @param conversationId the conversation that is updated (required)
	 * @param requestBody the key-value map of metadata that will be updated. The source for this map has to be the <code>metadata</code> attribute when
	 * you read the conversation using <code>metadata</code> in the <code>expand</code> query parameter. (required)
	 * @param expand (optional)
	 * @return ApiResponse<ConversationData>
	 * @throws ApiException if fails to make API call
	 */
	public ApiResponse conversationsUpdateMetadataWithHttpInfo(String conversationId, Map requestBody, List expand) throws ApiException {
		Object localVarPostBody = requestBody;

		// verify the required parameter 'conversationId' is set
		if (conversationId == null) {
			throw new ApiException(400, "Missing the required parameter 'conversationId' when calling conversationsUpdateMetadata");
		}

		// verify the required parameter 'requestBody' is set
		if (requestBody == null) {
			throw new ApiException(400, "Missing the required parameter 'requestBody' when calling conversationsUpdateMetadata");
		}

		// create path and map variables
		String localVarPath = "/conversations/{conversationId}/updateMetadata"
				.replaceAll("\\{" + "conversationId" + "\\}", apiClient.escapeString(conversationId.toString()));

		// query params
		List localVarQueryParams = new ArrayList();
		Map localVarHeaderParams = new HashMap();
		Map localVarFormParams = new HashMap();

		localVarQueryParams.addAll(apiClient.parameterToPairs("csv", "expand", expand));

		final String[] localVarAccepts = {
			"application/json"
		};
		final String localVarAccept = apiClient.selectHeaderAccept(localVarAccepts);

		final String[] localVarContentTypes = {
			"application/json"
		};
		final String localVarContentType = apiClient.selectHeaderContentType(localVarContentTypes);

		String[] localVarAuthNames = new String[] { "basicAuth" };

		GenericType localVarReturnType = new GenericType() {
		};
		return apiClient.invokeAPI(localVarPath, "POST", localVarQueryParams, localVarPostBody, localVarHeaderParams, localVarFormParams, localVarAccept, localVarContentType, localVarAuthNames, localVarReturnType);
	}

	/**
	 * updateText Updates the text map for a specific conversation<br>
	 * 
	 * @param conversationId the conversation that is updated (required)
	 * @param requestBody the key-value map of translations that will be updated. The source for this map has to be the <code>text</code> attribute when
	 * you read the conversation using <code>text</code> in the <code>expand</code> query parameter. (required)
	 * @param expand (optional)
	 * @return ConversationData
	 * @throws ApiException if fails to make API call
	 */
	public ConversationData conversationsUpdateText(String conversationId, Map> requestBody, List expand) throws ApiException {
		return conversationsUpdateTextWithHttpInfo(conversationId, requestBody, expand).getData();
	}

	/**
	 * updateText Updates the text map for a specific conversation<br>
	 * 
	 * @param conversationId the conversation that is updated (required)
	 * @param requestBody the key-value map of translations that will be updated. The source for this map has to be the <code>text</code> attribute when
	 * you read the conversation using <code>text</code> in the <code>expand</code> query parameter. (required)
	 * @param expand (optional)
	 * @return ApiResponse<ConversationData>
	 * @throws ApiException if fails to make API call
	 */
	public ApiResponse conversationsUpdateTextWithHttpInfo(String conversationId, Map> requestBody, List expand) throws ApiException {
		Object localVarPostBody = requestBody;

		// verify the required parameter 'conversationId' is set
		if (conversationId == null) {
			throw new ApiException(400, "Missing the required parameter 'conversationId' when calling conversationsUpdateText");
		}

		// verify the required parameter 'requestBody' is set
		if (requestBody == null) {
			throw new ApiException(400, "Missing the required parameter 'requestBody' when calling conversationsUpdateText");
		}

		// create path and map variables
		String localVarPath = "/conversations/{conversationId}/updateText"
				.replaceAll("\\{" + "conversationId" + "\\}", apiClient.escapeString(conversationId.toString()));

		// query params
		List localVarQueryParams = new ArrayList();
		Map localVarHeaderParams = new HashMap();
		Map localVarFormParams = new HashMap();

		localVarQueryParams.addAll(apiClient.parameterToPairs("csv", "expand", expand));

		final String[] localVarAccepts = {
			"application/json"
		};
		final String localVarAccept = apiClient.selectHeaderAccept(localVarAccepts);

		final String[] localVarContentTypes = {
			"application/json"
		};
		final String localVarContentType = apiClient.selectHeaderContentType(localVarContentTypes);

		String[] localVarAuthNames = new String[] { "basicAuth" };

		GenericType localVarReturnType = new GenericType() {
		};
		return apiClient.invokeAPI(localVarPath, "POST", localVarQueryParams, localVarPostBody, localVarHeaderParams, localVarFormParams, localVarAccept, localVarContentType, localVarAuthNames, localVarReturnType);
	}
}




© 2015 - 2024 Weber Informatics LLC | Privacy Policy