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

com.mypurecloud.sdk.api.TelephonyProvidersEdgeApi Maven / Gradle / Ivy

package com.mypurecloud.sdk.api;

import com.fasterxml.jackson.core.type.TypeReference;

import com.mypurecloud.sdk.ApiException;
import com.mypurecloud.sdk.ApiClient;
import com.mypurecloud.sdk.ApiResponse;
import com.mypurecloud.sdk.Configuration;
import com.mypurecloud.sdk.model.*;
import com.mypurecloud.sdk.Pair;

import com.mypurecloud.sdk.model.ErrorBody;
import com.mypurecloud.sdk.model.EdgeEntityListing;
import com.mypurecloud.sdk.model.AvailableLanguageList;
import com.mypurecloud.sdk.model.CertificateAuthorityEntityListing;
import com.mypurecloud.sdk.model.DomainCertificateAuthority;
import com.mypurecloud.sdk.model.DIDPoolEntityListing;
import com.mypurecloud.sdk.model.DIDPool;
import com.mypurecloud.sdk.model.DIDEntityListing;
import com.mypurecloud.sdk.model.DID;
import com.mypurecloud.sdk.model.Edge;
import com.mypurecloud.sdk.model.EdgeLineEntityListing;
import com.mypurecloud.sdk.model.EdgeLine;
import com.mypurecloud.sdk.model.LogicalInterfaceEntityListing;
import com.mypurecloud.sdk.model.DomainLogicalInterface;
import com.mypurecloud.sdk.model.EdgeLogsJob;
import com.mypurecloud.sdk.model.PhysicalInterfaceEntityListing;
import com.mypurecloud.sdk.model.DomainPhysicalInterface;
import com.mypurecloud.sdk.model.VmPairingInfo;
import com.mypurecloud.sdk.model.DomainEdgeSoftwareUpdateDto;
import com.mypurecloud.sdk.model.DomainEdgeSoftwareVersionDtoEntityListing;
import com.mypurecloud.sdk.model.EdgeGroupEntityListing;
import com.mypurecloud.sdk.model.EdgeGroup;
import com.mypurecloud.sdk.model.EdgeTrunkBase;
import com.mypurecloud.sdk.model.EdgeVersionReport;
import com.mypurecloud.sdk.model.EndpointEntityListing;
import com.mypurecloud.sdk.model.Endpoint;
import com.mypurecloud.sdk.model.ExtensionPoolEntityListing;
import com.mypurecloud.sdk.model.ExtensionPool;
import com.mypurecloud.sdk.model.ExtensionEntityListing;
import com.mypurecloud.sdk.model.Extension;
import com.mypurecloud.sdk.model.LineBaseEntityListing;
import com.mypurecloud.sdk.model.LineBase;
import com.mypurecloud.sdk.model.LineEntityListing;
import com.mypurecloud.sdk.model.Line;
import com.mypurecloud.sdk.model.OutboundRouteEntityListing;
import com.mypurecloud.sdk.model.OutboundRoute;
import com.mypurecloud.sdk.model.PhoneBaseEntityListing;
import com.mypurecloud.sdk.model.PhoneMetaBaseEntityListing;
import com.mypurecloud.sdk.model.PhoneBase;
import com.mypurecloud.sdk.model.PhoneEntityListing;
import com.mypurecloud.sdk.model.Phone;
import com.mypurecloud.sdk.model.SiteEntityListing;
import com.mypurecloud.sdk.model.Site;
import com.mypurecloud.sdk.model.NumberPlan;
import com.mypurecloud.sdk.model.OutboundRouteBaseEntityListing;
import com.mypurecloud.sdk.model.OutboundRouteBase;
import com.mypurecloud.sdk.model.TimeZoneEntityListing;
import com.mypurecloud.sdk.model.TrunkBaseEntityListing;
import com.mypurecloud.sdk.model.TrunkMetabaseEntityListing;
import com.mypurecloud.sdk.model.TrunkBase;
import com.mypurecloud.sdk.model.TrunkEntityListing;
import com.mypurecloud.sdk.model.Trunk;
import com.mypurecloud.sdk.model.TrunkRecordingEnabledCount;
import com.mypurecloud.sdk.model.SchemaCategoryEntityListing;
import com.mypurecloud.sdk.model.SchemaReferenceEntityListing;
import com.mypurecloud.sdk.model.Organization;
import com.mypurecloud.sdk.model.ValidateAddressResponse;
import com.mypurecloud.sdk.model.ValidateAddressRequest;
import com.mypurecloud.sdk.model.EdgeLogsJobRequest;
import com.mypurecloud.sdk.model.EdgeLogsJobResponse;
import com.mypurecloud.sdk.model.EdgeLogsJobUploadRequest;
import com.mypurecloud.sdk.model.EdgeRebootParameters;
import com.mypurecloud.sdk.model.EdgeServiceStateRequest;
import com.mypurecloud.sdk.model.PhonesReboot;


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


public class TelephonyProvidersEdgeApi {
  private ApiClient pcapiClient;

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

  public TelephonyProvidersEdgeApi(ApiClient apiClient) {
    this.pcapiClient = apiClient;
  }

  public ApiClient getApiClient() {
    return pcapiClient;
  }

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

  /**
   * Delete a certificate authority.
   * 
   * @param certificateId Certificate ID (required)
   * @return String
   * @throws ApiException if fails to make API call
   */
  public String deleteProvidersEdgesCertificateauthoritiesCertificateId(String certificateId) throws ApiException {
    return deleteProvidersEdgesCertificateauthoritiesCertificateIdWithHttpInfo(certificateId).getResponseObject();
  }

  /**
   * Delete a certificate authority.
   * 
   * @param certificateId Certificate ID (required)
   * @return String
   * @throws ApiException if fails to make API call
   */
  public ApiResponse deleteProvidersEdgesCertificateauthoritiesCertificateIdWithHttpInfo(String certificateId) throws ApiException {
    Object pclocalVarPostBody = null;
    
    // verify the required parameter 'certificateId' is set
    if (certificateId == null) {
      throw new ApiException(400, "Missing the required parameter 'certificateId' when calling deleteProvidersEdgesCertificateauthoritiesCertificateId");
    }
    
    // create path and map variables
    String pclocalVarPath = "/api/v2/telephony/providers/edges/certificateauthorities/{certificateId}".replaceAll("\\{format\\}","json")
      .replaceAll("\\{" + "certificateId" + "\\}", pcapiClient.escapeString(certificateId.toString()));

    // query params
    List pclocalVarQueryParams = new ArrayList();
    Map pclocalVarHeaderParams = new HashMap();
    Map pclocalVarFormParams = new HashMap();


    
    
    final String[] pclocalVarAccepts = {
      "application/json"
    };
    final String pclocalVarAccept = pcapiClient.selectHeaderAccept(pclocalVarAccepts);

    final String[] pclocalVarContentTypes = {
      "application/json"
    };
    final String pclocalVarContentType = pcapiClient.selectHeaderContentType(pclocalVarContentTypes);

    String[] pclocalVarAuthNames = new String[] { "PureCloud Auth" };

    return pcapiClient.invokeAPIVerbose(pclocalVarPath, "DELETE", pclocalVarQueryParams, pclocalVarPostBody, pclocalVarHeaderParams, pclocalVarFormParams, pclocalVarAccept, pclocalVarContentType, pclocalVarAuthNames, new TypeReference() {});
  }
  /**
   * Delete a DID Pool by ID.
   * 
   * @param didPoolId DID pool ID (required)
   * @return String
   * @throws ApiException if fails to make API call
   */
  public String deleteProvidersEdgesDidpoolsDidpoolId(String didPoolId) throws ApiException {
    return deleteProvidersEdgesDidpoolsDidpoolIdWithHttpInfo(didPoolId).getResponseObject();
  }

  /**
   * Delete a DID Pool by ID.
   * 
   * @param didPoolId DID pool ID (required)
   * @return String
   * @throws ApiException if fails to make API call
   */
  public ApiResponse deleteProvidersEdgesDidpoolsDidpoolIdWithHttpInfo(String didPoolId) throws ApiException {
    Object pclocalVarPostBody = null;
    
    // verify the required parameter 'didPoolId' is set
    if (didPoolId == null) {
      throw new ApiException(400, "Missing the required parameter 'didPoolId' when calling deleteProvidersEdgesDidpoolsDidpoolId");
    }
    
    // create path and map variables
    String pclocalVarPath = "/api/v2/telephony/providers/edges/didpools/{didPoolId}".replaceAll("\\{format\\}","json")
      .replaceAll("\\{" + "didPoolId" + "\\}", pcapiClient.escapeString(didPoolId.toString()));

    // query params
    List pclocalVarQueryParams = new ArrayList();
    Map pclocalVarHeaderParams = new HashMap();
    Map pclocalVarFormParams = new HashMap();


    
    
    final String[] pclocalVarAccepts = {
      "application/json"
    };
    final String pclocalVarAccept = pcapiClient.selectHeaderAccept(pclocalVarAccepts);

    final String[] pclocalVarContentTypes = {
      "application/json"
    };
    final String pclocalVarContentType = pcapiClient.selectHeaderContentType(pclocalVarContentTypes);

    String[] pclocalVarAuthNames = new String[] { "PureCloud Auth" };

    return pcapiClient.invokeAPIVerbose(pclocalVarPath, "DELETE", pclocalVarQueryParams, pclocalVarPostBody, pclocalVarHeaderParams, pclocalVarFormParams, pclocalVarAccept, pclocalVarContentType, pclocalVarAuthNames, new TypeReference() {});
  }
  /**
   * Delete a edge.
   * 
   * @param edgeId Edge ID (required)
   * @return String
   * @throws ApiException if fails to make API call
   */
  public String deleteProvidersEdgesEdgeId(String edgeId) throws ApiException {
    return deleteProvidersEdgesEdgeIdWithHttpInfo(edgeId).getResponseObject();
  }

  /**
   * Delete a edge.
   * 
   * @param edgeId Edge ID (required)
   * @return String
   * @throws ApiException if fails to make API call
   */
  public ApiResponse deleteProvidersEdgesEdgeIdWithHttpInfo(String edgeId) throws ApiException {
    Object pclocalVarPostBody = null;
    
    // verify the required parameter 'edgeId' is set
    if (edgeId == null) {
      throw new ApiException(400, "Missing the required parameter 'edgeId' when calling deleteProvidersEdgesEdgeId");
    }
    
    // create path and map variables
    String pclocalVarPath = "/api/v2/telephony/providers/edges/{edgeId}".replaceAll("\\{format\\}","json")
      .replaceAll("\\{" + "edgeId" + "\\}", pcapiClient.escapeString(edgeId.toString()));

    // query params
    List pclocalVarQueryParams = new ArrayList();
    Map pclocalVarHeaderParams = new HashMap();
    Map pclocalVarFormParams = new HashMap();


    
    
    final String[] pclocalVarAccepts = {
      "application/json"
    };
    final String pclocalVarAccept = pcapiClient.selectHeaderAccept(pclocalVarAccepts);

    final String[] pclocalVarContentTypes = {
      "application/json"
    };
    final String pclocalVarContentType = pcapiClient.selectHeaderContentType(pclocalVarContentTypes);

    String[] pclocalVarAuthNames = new String[] { "PureCloud Auth" };

    return pcapiClient.invokeAPIVerbose(pclocalVarPath, "DELETE", pclocalVarQueryParams, pclocalVarPostBody, pclocalVarHeaderParams, pclocalVarFormParams, pclocalVarAccept, pclocalVarContentType, pclocalVarAuthNames, new TypeReference() {});
  }
  /**
   * Delete an edge logical interface
   * 
   * @param edgeId Edge ID (required)
   * @param interfaceId Interface ID (required)
   * @throws ApiException if fails to make API call
   */
  public void deleteProvidersEdgesEdgeIdLogicalinterfacesInterfaceId(String edgeId, String interfaceId) throws ApiException {
    deleteProvidersEdgesEdgeIdLogicalinterfacesInterfaceIdWithHttpInfo(edgeId, interfaceId);
  }

  /**
   * Delete an edge logical interface
   * 
   * @param edgeId Edge ID (required)
   * @param interfaceId Interface ID (required)
   * @throws ApiException if fails to make API call
   */
  public ApiResponse deleteProvidersEdgesEdgeIdLogicalinterfacesInterfaceIdWithHttpInfo(String edgeId, String interfaceId) throws ApiException {
    Object pclocalVarPostBody = null;
    
    // verify the required parameter 'edgeId' is set
    if (edgeId == null) {
      throw new ApiException(400, "Missing the required parameter 'edgeId' when calling deleteProvidersEdgesEdgeIdLogicalinterfacesInterfaceId");
    }
    
    // verify the required parameter 'interfaceId' is set
    if (interfaceId == null) {
      throw new ApiException(400, "Missing the required parameter 'interfaceId' when calling deleteProvidersEdgesEdgeIdLogicalinterfacesInterfaceId");
    }
    
    // create path and map variables
    String pclocalVarPath = "/api/v2/telephony/providers/edges/{edgeId}/logicalinterfaces/{interfaceId}".replaceAll("\\{format\\}","json")
      .replaceAll("\\{" + "edgeId" + "\\}", pcapiClient.escapeString(edgeId.toString()))
      .replaceAll("\\{" + "interfaceId" + "\\}", pcapiClient.escapeString(interfaceId.toString()));

    // query params
    List pclocalVarQueryParams = new ArrayList();
    Map pclocalVarHeaderParams = new HashMap();
    Map pclocalVarFormParams = new HashMap();


    
    
    final String[] pclocalVarAccepts = {
      "application/json"
    };
    final String pclocalVarAccept = pcapiClient.selectHeaderAccept(pclocalVarAccepts);

    final String[] pclocalVarContentTypes = {
      "application/json"
    };
    final String pclocalVarContentType = pcapiClient.selectHeaderContentType(pclocalVarContentTypes);

    String[] pclocalVarAuthNames = new String[] { "PureCloud Auth" };

    return pcapiClient.invokeAPIVerbose(pclocalVarPath, "DELETE", pclocalVarQueryParams, pclocalVarPostBody, pclocalVarHeaderParams, pclocalVarFormParams, pclocalVarAccept, pclocalVarContentType, pclocalVarAuthNames, null);
  }
  /**
   * Cancels any in-progress update for this edge.
   * 
   * @param edgeId Edge ID (required)
   * @return String
   * @throws ApiException if fails to make API call
   */
  public String deleteProvidersEdgesEdgeIdSoftwareupdate(String edgeId) throws ApiException {
    return deleteProvidersEdgesEdgeIdSoftwareupdateWithHttpInfo(edgeId).getResponseObject();
  }

  /**
   * Cancels any in-progress update for this edge.
   * 
   * @param edgeId Edge ID (required)
   * @return String
   * @throws ApiException if fails to make API call
   */
  public ApiResponse deleteProvidersEdgesEdgeIdSoftwareupdateWithHttpInfo(String edgeId) throws ApiException {
    Object pclocalVarPostBody = null;
    
    // verify the required parameter 'edgeId' is set
    if (edgeId == null) {
      throw new ApiException(400, "Missing the required parameter 'edgeId' when calling deleteProvidersEdgesEdgeIdSoftwareupdate");
    }
    
    // create path and map variables
    String pclocalVarPath = "/api/v2/telephony/providers/edges/{edgeId}/softwareupdate".replaceAll("\\{format\\}","json")
      .replaceAll("\\{" + "edgeId" + "\\}", pcapiClient.escapeString(edgeId.toString()));

    // query params
    List pclocalVarQueryParams = new ArrayList();
    Map pclocalVarHeaderParams = new HashMap();
    Map pclocalVarFormParams = new HashMap();


    
    
    final String[] pclocalVarAccepts = {
      "application/json"
    };
    final String pclocalVarAccept = pcapiClient.selectHeaderAccept(pclocalVarAccepts);

    final String[] pclocalVarContentTypes = {
      "application/json"
    };
    final String pclocalVarContentType = pcapiClient.selectHeaderContentType(pclocalVarContentTypes);

    String[] pclocalVarAuthNames = new String[] { "PureCloud Auth" };

    return pcapiClient.invokeAPIVerbose(pclocalVarPath, "DELETE", pclocalVarQueryParams, pclocalVarPostBody, pclocalVarHeaderParams, pclocalVarFormParams, pclocalVarAccept, pclocalVarContentType, pclocalVarAuthNames, new TypeReference() {});
  }
  /**
   * Delete an edge group.
   * 
   * @param edgeGroupId Edge group ID (required)
   * @return String
   * @throws ApiException if fails to make API call
   */
  public String deleteProvidersEdgesEdgegroupsEdgegroupId(String edgeGroupId) throws ApiException {
    return deleteProvidersEdgesEdgegroupsEdgegroupIdWithHttpInfo(edgeGroupId).getResponseObject();
  }

  /**
   * Delete an edge group.
   * 
   * @param edgeGroupId Edge group ID (required)
   * @return String
   * @throws ApiException if fails to make API call
   */
  public ApiResponse deleteProvidersEdgesEdgegroupsEdgegroupIdWithHttpInfo(String edgeGroupId) throws ApiException {
    Object pclocalVarPostBody = null;
    
    // verify the required parameter 'edgeGroupId' is set
    if (edgeGroupId == null) {
      throw new ApiException(400, "Missing the required parameter 'edgeGroupId' when calling deleteProvidersEdgesEdgegroupsEdgegroupId");
    }
    
    // create path and map variables
    String pclocalVarPath = "/api/v2/telephony/providers/edges/edgegroups/{edgeGroupId}".replaceAll("\\{format\\}","json")
      .replaceAll("\\{" + "edgeGroupId" + "\\}", pcapiClient.escapeString(edgeGroupId.toString()));

    // query params
    List pclocalVarQueryParams = new ArrayList();
    Map pclocalVarHeaderParams = new HashMap();
    Map pclocalVarFormParams = new HashMap();


    
    
    final String[] pclocalVarAccepts = {
      "application/json"
    };
    final String pclocalVarAccept = pcapiClient.selectHeaderAccept(pclocalVarAccepts);

    final String[] pclocalVarContentTypes = {
      "application/json"
    };
    final String pclocalVarContentType = pcapiClient.selectHeaderContentType(pclocalVarContentTypes);

    String[] pclocalVarAuthNames = new String[] { "PureCloud Auth" };

    return pcapiClient.invokeAPIVerbose(pclocalVarPath, "DELETE", pclocalVarQueryParams, pclocalVarPostBody, pclocalVarHeaderParams, pclocalVarFormParams, pclocalVarAccept, pclocalVarContentType, pclocalVarAuthNames, new TypeReference() {});
  }
  /**
   * Delete endpoint
   * 
   * @param endpointId Endpoint ID (required)
   * @return String
   * @throws ApiException if fails to make API call
   */
  public String deleteProvidersEdgesEndpointsEndpointId(String endpointId) throws ApiException {
    return deleteProvidersEdgesEndpointsEndpointIdWithHttpInfo(endpointId).getResponseObject();
  }

  /**
   * Delete endpoint
   * 
   * @param endpointId Endpoint ID (required)
   * @return String
   * @throws ApiException if fails to make API call
   */
  public ApiResponse deleteProvidersEdgesEndpointsEndpointIdWithHttpInfo(String endpointId) throws ApiException {
    Object pclocalVarPostBody = null;
    
    // verify the required parameter 'endpointId' is set
    if (endpointId == null) {
      throw new ApiException(400, "Missing the required parameter 'endpointId' when calling deleteProvidersEdgesEndpointsEndpointId");
    }
    
    // create path and map variables
    String pclocalVarPath = "/api/v2/telephony/providers/edges/endpoints/{endpointId}".replaceAll("\\{format\\}","json")
      .replaceAll("\\{" + "endpointId" + "\\}", pcapiClient.escapeString(endpointId.toString()));

    // query params
    List pclocalVarQueryParams = new ArrayList();
    Map pclocalVarHeaderParams = new HashMap();
    Map pclocalVarFormParams = new HashMap();


    
    
    final String[] pclocalVarAccepts = {
      "application/json"
    };
    final String pclocalVarAccept = pcapiClient.selectHeaderAccept(pclocalVarAccepts);

    final String[] pclocalVarContentTypes = {
      "application/json"
    };
    final String pclocalVarContentType = pcapiClient.selectHeaderContentType(pclocalVarContentTypes);

    String[] pclocalVarAuthNames = new String[] { "PureCloud Auth" };

    return pcapiClient.invokeAPIVerbose(pclocalVarPath, "DELETE", pclocalVarQueryParams, pclocalVarPostBody, pclocalVarHeaderParams, pclocalVarFormParams, pclocalVarAccept, pclocalVarContentType, pclocalVarAuthNames, new TypeReference() {});
  }
  /**
   * Delete an extension pool by ID
   * 
   * @param extensionPoolId Extension pool ID (required)
   * @return String
   * @throws ApiException if fails to make API call
   */
  public String deleteProvidersEdgesExtensionpoolsExtensionpoolId(String extensionPoolId) throws ApiException {
    return deleteProvidersEdgesExtensionpoolsExtensionpoolIdWithHttpInfo(extensionPoolId).getResponseObject();
  }

  /**
   * Delete an extension pool by ID
   * 
   * @param extensionPoolId Extension pool ID (required)
   * @return String
   * @throws ApiException if fails to make API call
   */
  public ApiResponse deleteProvidersEdgesExtensionpoolsExtensionpoolIdWithHttpInfo(String extensionPoolId) throws ApiException {
    Object pclocalVarPostBody = null;
    
    // verify the required parameter 'extensionPoolId' is set
    if (extensionPoolId == null) {
      throw new ApiException(400, "Missing the required parameter 'extensionPoolId' when calling deleteProvidersEdgesExtensionpoolsExtensionpoolId");
    }
    
    // create path and map variables
    String pclocalVarPath = "/api/v2/telephony/providers/edges/extensionpools/{extensionPoolId}".replaceAll("\\{format\\}","json")
      .replaceAll("\\{" + "extensionPoolId" + "\\}", pcapiClient.escapeString(extensionPoolId.toString()));

    // query params
    List pclocalVarQueryParams = new ArrayList();
    Map pclocalVarHeaderParams = new HashMap();
    Map pclocalVarFormParams = new HashMap();


    
    
    final String[] pclocalVarAccepts = {
      "application/json"
    };
    final String pclocalVarAccept = pcapiClient.selectHeaderAccept(pclocalVarAccepts);

    final String[] pclocalVarContentTypes = {
      "application/json"
    };
    final String pclocalVarContentType = pcapiClient.selectHeaderContentType(pclocalVarContentTypes);

    String[] pclocalVarAuthNames = new String[] { "PureCloud Auth" };

    return pcapiClient.invokeAPIVerbose(pclocalVarPath, "DELETE", pclocalVarQueryParams, pclocalVarPostBody, pclocalVarHeaderParams, pclocalVarFormParams, pclocalVarAccept, pclocalVarContentType, pclocalVarAuthNames, new TypeReference() {});
  }
  /**
   * Delete Outbound Route
   * 
   * @param outboundRouteId Outbound route ID (required)
   * @return String
   * @throws ApiException if fails to make API call
   */
  public String deleteProvidersEdgesOutboundroutesOutboundrouteId(String outboundRouteId) throws ApiException {
    return deleteProvidersEdgesOutboundroutesOutboundrouteIdWithHttpInfo(outboundRouteId).getResponseObject();
  }

  /**
   * Delete Outbound Route
   * 
   * @param outboundRouteId Outbound route ID (required)
   * @return String
   * @throws ApiException if fails to make API call
   */
  public ApiResponse deleteProvidersEdgesOutboundroutesOutboundrouteIdWithHttpInfo(String outboundRouteId) throws ApiException {
    Object pclocalVarPostBody = null;
    
    // verify the required parameter 'outboundRouteId' is set
    if (outboundRouteId == null) {
      throw new ApiException(400, "Missing the required parameter 'outboundRouteId' when calling deleteProvidersEdgesOutboundroutesOutboundrouteId");
    }
    
    // create path and map variables
    String pclocalVarPath = "/api/v2/telephony/providers/edges/outboundroutes/{outboundRouteId}".replaceAll("\\{format\\}","json")
      .replaceAll("\\{" + "outboundRouteId" + "\\}", pcapiClient.escapeString(outboundRouteId.toString()));

    // query params
    List pclocalVarQueryParams = new ArrayList();
    Map pclocalVarHeaderParams = new HashMap();
    Map pclocalVarFormParams = new HashMap();


    
    
    final String[] pclocalVarAccepts = {
      "application/json"
    };
    final String pclocalVarAccept = pcapiClient.selectHeaderAccept(pclocalVarAccepts);

    final String[] pclocalVarContentTypes = {
      "application/json"
    };
    final String pclocalVarContentType = pcapiClient.selectHeaderContentType(pclocalVarContentTypes);

    String[] pclocalVarAuthNames = new String[] { "PureCloud Auth" };

    return pcapiClient.invokeAPIVerbose(pclocalVarPath, "DELETE", pclocalVarQueryParams, pclocalVarPostBody, pclocalVarHeaderParams, pclocalVarFormParams, pclocalVarAccept, pclocalVarContentType, pclocalVarAuthNames, new TypeReference() {});
  }
  /**
   * Delete a Phone Base Settings by ID
   * 
   * @param phoneBaseId Phone base ID (required)
   * @return String
   * @throws ApiException if fails to make API call
   */
  public String deleteProvidersEdgesPhonebasesettingsPhonebaseId(String phoneBaseId) throws ApiException {
    return deleteProvidersEdgesPhonebasesettingsPhonebaseIdWithHttpInfo(phoneBaseId).getResponseObject();
  }

  /**
   * Delete a Phone Base Settings by ID
   * 
   * @param phoneBaseId Phone base ID (required)
   * @return String
   * @throws ApiException if fails to make API call
   */
  public ApiResponse deleteProvidersEdgesPhonebasesettingsPhonebaseIdWithHttpInfo(String phoneBaseId) throws ApiException {
    Object pclocalVarPostBody = null;
    
    // verify the required parameter 'phoneBaseId' is set
    if (phoneBaseId == null) {
      throw new ApiException(400, "Missing the required parameter 'phoneBaseId' when calling deleteProvidersEdgesPhonebasesettingsPhonebaseId");
    }
    
    // create path and map variables
    String pclocalVarPath = "/api/v2/telephony/providers/edges/phonebasesettings/{phoneBaseId}".replaceAll("\\{format\\}","json")
      .replaceAll("\\{" + "phoneBaseId" + "\\}", pcapiClient.escapeString(phoneBaseId.toString()));

    // query params
    List pclocalVarQueryParams = new ArrayList();
    Map pclocalVarHeaderParams = new HashMap();
    Map pclocalVarFormParams = new HashMap();


    
    
    final String[] pclocalVarAccepts = {
      "application/json"
    };
    final String pclocalVarAccept = pcapiClient.selectHeaderAccept(pclocalVarAccepts);

    final String[] pclocalVarContentTypes = {
      "application/json"
    };
    final String pclocalVarContentType = pcapiClient.selectHeaderContentType(pclocalVarContentTypes);

    String[] pclocalVarAuthNames = new String[] { "PureCloud Auth" };

    return pcapiClient.invokeAPIVerbose(pclocalVarPath, "DELETE", pclocalVarQueryParams, pclocalVarPostBody, pclocalVarHeaderParams, pclocalVarFormParams, pclocalVarAccept, pclocalVarContentType, pclocalVarAuthNames, new TypeReference() {});
  }
  /**
   * Delete a Phone by ID
   * 
   * @param phoneId Phone ID (required)
   * @return String
   * @throws ApiException if fails to make API call
   */
  public String deleteProvidersEdgesPhonesPhoneId(String phoneId) throws ApiException {
    return deleteProvidersEdgesPhonesPhoneIdWithHttpInfo(phoneId).getResponseObject();
  }

  /**
   * Delete a Phone by ID
   * 
   * @param phoneId Phone ID (required)
   * @return String
   * @throws ApiException if fails to make API call
   */
  public ApiResponse deleteProvidersEdgesPhonesPhoneIdWithHttpInfo(String phoneId) throws ApiException {
    Object pclocalVarPostBody = null;
    
    // verify the required parameter 'phoneId' is set
    if (phoneId == null) {
      throw new ApiException(400, "Missing the required parameter 'phoneId' when calling deleteProvidersEdgesPhonesPhoneId");
    }
    
    // create path and map variables
    String pclocalVarPath = "/api/v2/telephony/providers/edges/phones/{phoneId}".replaceAll("\\{format\\}","json")
      .replaceAll("\\{" + "phoneId" + "\\}", pcapiClient.escapeString(phoneId.toString()));

    // query params
    List pclocalVarQueryParams = new ArrayList();
    Map pclocalVarHeaderParams = new HashMap();
    Map pclocalVarFormParams = new HashMap();


    
    
    final String[] pclocalVarAccepts = {
      "application/json"
    };
    final String pclocalVarAccept = pcapiClient.selectHeaderAccept(pclocalVarAccepts);

    final String[] pclocalVarContentTypes = {
      "application/json"
    };
    final String pclocalVarContentType = pcapiClient.selectHeaderContentType(pclocalVarContentTypes);

    String[] pclocalVarAuthNames = new String[] { "PureCloud Auth" };

    return pcapiClient.invokeAPIVerbose(pclocalVarPath, "DELETE", pclocalVarQueryParams, pclocalVarPostBody, pclocalVarHeaderParams, pclocalVarFormParams, pclocalVarAccept, pclocalVarContentType, pclocalVarAuthNames, new TypeReference() {});
  }
  /**
   * Delete a Site by ID
   * 
   * @param siteId Site ID (required)
   * @return String
   * @throws ApiException if fails to make API call
   */
  public String deleteProvidersEdgesSitesSiteId(String siteId) throws ApiException {
    return deleteProvidersEdgesSitesSiteIdWithHttpInfo(siteId).getResponseObject();
  }

  /**
   * Delete a Site by ID
   * 
   * @param siteId Site ID (required)
   * @return String
   * @throws ApiException if fails to make API call
   */
  public ApiResponse deleteProvidersEdgesSitesSiteIdWithHttpInfo(String siteId) throws ApiException {
    Object pclocalVarPostBody = null;
    
    // verify the required parameter 'siteId' is set
    if (siteId == null) {
      throw new ApiException(400, "Missing the required parameter 'siteId' when calling deleteProvidersEdgesSitesSiteId");
    }
    
    // create path and map variables
    String pclocalVarPath = "/api/v2/telephony/providers/edges/sites/{siteId}".replaceAll("\\{format\\}","json")
      .replaceAll("\\{" + "siteId" + "\\}", pcapiClient.escapeString(siteId.toString()));

    // query params
    List pclocalVarQueryParams = new ArrayList();
    Map pclocalVarHeaderParams = new HashMap();
    Map pclocalVarFormParams = new HashMap();


    
    
    final String[] pclocalVarAccepts = {
      "application/json"
    };
    final String pclocalVarAccept = pcapiClient.selectHeaderAccept(pclocalVarAccepts);

    final String[] pclocalVarContentTypes = {
      "application/json"
    };
    final String pclocalVarContentType = pcapiClient.selectHeaderContentType(pclocalVarContentTypes);

    String[] pclocalVarAuthNames = new String[] { "PureCloud Auth" };

    return pcapiClient.invokeAPIVerbose(pclocalVarPath, "DELETE", pclocalVarQueryParams, pclocalVarPostBody, pclocalVarHeaderParams, pclocalVarFormParams, pclocalVarAccept, pclocalVarContentType, pclocalVarAuthNames, new TypeReference() {});
  }
  /**
   * Delete Outbound Route
   * 
   * @param siteId Site ID (required)
   * @param outboundRouteId Outbound route ID (required)
   * @return String
   * @throws ApiException if fails to make API call
   */
  public String deleteProvidersEdgesSitesSiteIdOutboundroutesOutboundrouteId(String siteId, String outboundRouteId) throws ApiException {
    return deleteProvidersEdgesSitesSiteIdOutboundroutesOutboundrouteIdWithHttpInfo(siteId, outboundRouteId).getResponseObject();
  }

  /**
   * Delete Outbound Route
   * 
   * @param siteId Site ID (required)
   * @param outboundRouteId Outbound route ID (required)
   * @return String
   * @throws ApiException if fails to make API call
   */
  public ApiResponse deleteProvidersEdgesSitesSiteIdOutboundroutesOutboundrouteIdWithHttpInfo(String siteId, String outboundRouteId) throws ApiException {
    Object pclocalVarPostBody = null;
    
    // verify the required parameter 'siteId' is set
    if (siteId == null) {
      throw new ApiException(400, "Missing the required parameter 'siteId' when calling deleteProvidersEdgesSitesSiteIdOutboundroutesOutboundrouteId");
    }
    
    // verify the required parameter 'outboundRouteId' is set
    if (outboundRouteId == null) {
      throw new ApiException(400, "Missing the required parameter 'outboundRouteId' when calling deleteProvidersEdgesSitesSiteIdOutboundroutesOutboundrouteId");
    }
    
    // create path and map variables
    String pclocalVarPath = "/api/v2/telephony/providers/edges/sites/{siteId}/outboundroutes/{outboundRouteId}".replaceAll("\\{format\\}","json")
      .replaceAll("\\{" + "siteId" + "\\}", pcapiClient.escapeString(siteId.toString()))
      .replaceAll("\\{" + "outboundRouteId" + "\\}", pcapiClient.escapeString(outboundRouteId.toString()));

    // query params
    List pclocalVarQueryParams = new ArrayList();
    Map pclocalVarHeaderParams = new HashMap();
    Map pclocalVarFormParams = new HashMap();


    
    
    final String[] pclocalVarAccepts = {
      "application/json"
    };
    final String pclocalVarAccept = pcapiClient.selectHeaderAccept(pclocalVarAccepts);

    final String[] pclocalVarContentTypes = {
      "application/json"
    };
    final String pclocalVarContentType = pcapiClient.selectHeaderContentType(pclocalVarContentTypes);

    String[] pclocalVarAuthNames = new String[] { "PureCloud Auth" };

    return pcapiClient.invokeAPIVerbose(pclocalVarPath, "DELETE", pclocalVarQueryParams, pclocalVarPostBody, pclocalVarHeaderParams, pclocalVarFormParams, pclocalVarAccept, pclocalVarContentType, pclocalVarAuthNames, new TypeReference() {});
  }
  /**
   * Delete a Trunk Base Settings object by ID
   * 
   * @param trunkBaseSettingsId Trunk Base ID (required)
   * @return String
   * @throws ApiException if fails to make API call
   */
  public String deleteProvidersEdgesTrunkbasesettingsTrunkbasesettingsId(String trunkBaseSettingsId) throws ApiException {
    return deleteProvidersEdgesTrunkbasesettingsTrunkbasesettingsIdWithHttpInfo(trunkBaseSettingsId).getResponseObject();
  }

  /**
   * Delete a Trunk Base Settings object by ID
   * 
   * @param trunkBaseSettingsId Trunk Base ID (required)
   * @return String
   * @throws ApiException if fails to make API call
   */
  public ApiResponse deleteProvidersEdgesTrunkbasesettingsTrunkbasesettingsIdWithHttpInfo(String trunkBaseSettingsId) throws ApiException {
    Object pclocalVarPostBody = null;
    
    // verify the required parameter 'trunkBaseSettingsId' is set
    if (trunkBaseSettingsId == null) {
      throw new ApiException(400, "Missing the required parameter 'trunkBaseSettingsId' when calling deleteProvidersEdgesTrunkbasesettingsTrunkbasesettingsId");
    }
    
    // create path and map variables
    String pclocalVarPath = "/api/v2/telephony/providers/edges/trunkbasesettings/{trunkBaseSettingsId}".replaceAll("\\{format\\}","json")
      .replaceAll("\\{" + "trunkBaseSettingsId" + "\\}", pcapiClient.escapeString(trunkBaseSettingsId.toString()));

    // query params
    List pclocalVarQueryParams = new ArrayList();
    Map pclocalVarHeaderParams = new HashMap();
    Map pclocalVarFormParams = new HashMap();


    
    
    final String[] pclocalVarAccepts = {
      "application/json"
    };
    final String pclocalVarAccept = pcapiClient.selectHeaderAccept(pclocalVarAccepts);

    final String[] pclocalVarContentTypes = {
      "application/json"
    };
    final String pclocalVarContentType = pcapiClient.selectHeaderContentType(pclocalVarContentTypes);

    String[] pclocalVarAuthNames = new String[] { "PureCloud Auth" };

    return pcapiClient.invokeAPIVerbose(pclocalVarPath, "DELETE", pclocalVarQueryParams, pclocalVarPostBody, pclocalVarHeaderParams, pclocalVarFormParams, pclocalVarAccept, pclocalVarContentType, pclocalVarAuthNames, new TypeReference() {});
  }
  /**
   * Get the list of edges.
   * 
   * @param pageSize Page size (optional, default to 25)
   * @param pageNumber Page number (optional, default to 1)
   * @param name Name (optional)
   * @param siteId Filter by site.id (optional)
   * @param edgeGroupId Filter by edgeGroup.id (optional)
   * @param sortBy Sort by (optional, default to name)
   * @param managed Filter by managed (optional)
   * @return EdgeEntityListing
   * @throws ApiException if fails to make API call
   */
  public EdgeEntityListing getProvidersEdges(Integer pageSize, Integer pageNumber, String name, String siteId, String edgeGroupId, String sortBy, Boolean managed) throws ApiException {
    return getProvidersEdgesWithHttpInfo(pageSize, pageNumber, name, siteId, edgeGroupId, sortBy, managed).getResponseObject();
  }

  /**
   * Get the list of edges.
   * 
   * @param pageSize Page size (optional, default to 25)
   * @param pageNumber Page number (optional, default to 1)
   * @param name Name (optional)
   * @param siteId Filter by site.id (optional)
   * @param edgeGroupId Filter by edgeGroup.id (optional)
   * @param sortBy Sort by (optional, default to name)
   * @param managed Filter by managed (optional)
   * @return EdgeEntityListing
   * @throws ApiException if fails to make API call
   */
  public ApiResponse getProvidersEdgesWithHttpInfo(Integer pageSize, Integer pageNumber, String name, String siteId, String edgeGroupId, String sortBy, Boolean managed) throws ApiException {
    Object pclocalVarPostBody = null;
    
    // create path and map variables
    String pclocalVarPath = "/api/v2/telephony/providers/edges".replaceAll("\\{format\\}","json");

    // query params
    List pclocalVarQueryParams = new ArrayList();
    Map pclocalVarHeaderParams = new HashMap();
    Map pclocalVarFormParams = new HashMap();

    pclocalVarQueryParams.addAll(pcapiClient.parameterToPairs("", "pageSize", pageSize));
    pclocalVarQueryParams.addAll(pcapiClient.parameterToPairs("", "pageNumber", pageNumber));
    pclocalVarQueryParams.addAll(pcapiClient.parameterToPairs("", "name", name));
    pclocalVarQueryParams.addAll(pcapiClient.parameterToPairs("", "site.id", siteId));
    pclocalVarQueryParams.addAll(pcapiClient.parameterToPairs("", "edgeGroup.id", edgeGroupId));
    pclocalVarQueryParams.addAll(pcapiClient.parameterToPairs("", "sortBy", sortBy));
    pclocalVarQueryParams.addAll(pcapiClient.parameterToPairs("", "managed", managed));

    
    
    final String[] pclocalVarAccepts = {
      "application/json"
    };
    final String pclocalVarAccept = pcapiClient.selectHeaderAccept(pclocalVarAccepts);

    final String[] pclocalVarContentTypes = {
      "application/json"
    };
    final String pclocalVarContentType = pcapiClient.selectHeaderContentType(pclocalVarContentTypes);

    String[] pclocalVarAuthNames = new String[] { "PureCloud Auth" };

    return pcapiClient.invokeAPIVerbose(pclocalVarPath, "GET", pclocalVarQueryParams, pclocalVarPostBody, pclocalVarHeaderParams, pclocalVarFormParams, pclocalVarAccept, pclocalVarContentType, pclocalVarAuthNames, new TypeReference() {});
  }
  /**
   * Get the list of available languages.
   * 
   * @return AvailableLanguageList
   * @throws ApiException if fails to make API call
   */
  public AvailableLanguageList getProvidersEdgesAvailablelanguages() throws ApiException {
    return getProvidersEdgesAvailablelanguagesWithHttpInfo().getResponseObject();
  }

  /**
   * Get the list of available languages.
   * 
   * @return AvailableLanguageList
   * @throws ApiException if fails to make API call
   */
  public ApiResponse getProvidersEdgesAvailablelanguagesWithHttpInfo() throws ApiException {
    Object pclocalVarPostBody = null;
    
    // create path and map variables
    String pclocalVarPath = "/api/v2/telephony/providers/edges/availablelanguages".replaceAll("\\{format\\}","json");

    // query params
    List pclocalVarQueryParams = new ArrayList();
    Map pclocalVarHeaderParams = new HashMap();
    Map pclocalVarFormParams = new HashMap();


    
    
    final String[] pclocalVarAccepts = {
      "application/json"
    };
    final String pclocalVarAccept = pcapiClient.selectHeaderAccept(pclocalVarAccepts);

    final String[] pclocalVarContentTypes = {
      "application/json"
    };
    final String pclocalVarContentType = pcapiClient.selectHeaderContentType(pclocalVarContentTypes);

    String[] pclocalVarAuthNames = new String[] { "PureCloud Auth" };

    return pcapiClient.invokeAPIVerbose(pclocalVarPath, "GET", pclocalVarQueryParams, pclocalVarPostBody, pclocalVarHeaderParams, pclocalVarFormParams, pclocalVarAccept, pclocalVarContentType, pclocalVarAuthNames, new TypeReference() {});
  }
  /**
   * Get the list of certificate authorities.
   * 
   * @return CertificateAuthorityEntityListing
   * @throws ApiException if fails to make API call
   */
  public CertificateAuthorityEntityListing getProvidersEdgesCertificateauthorities() throws ApiException {
    return getProvidersEdgesCertificateauthoritiesWithHttpInfo().getResponseObject();
  }

  /**
   * Get the list of certificate authorities.
   * 
   * @return CertificateAuthorityEntityListing
   * @throws ApiException if fails to make API call
   */
  public ApiResponse getProvidersEdgesCertificateauthoritiesWithHttpInfo() throws ApiException {
    Object pclocalVarPostBody = null;
    
    // create path and map variables
    String pclocalVarPath = "/api/v2/telephony/providers/edges/certificateauthorities".replaceAll("\\{format\\}","json");

    // query params
    List pclocalVarQueryParams = new ArrayList();
    Map pclocalVarHeaderParams = new HashMap();
    Map pclocalVarFormParams = new HashMap();


    
    
    final String[] pclocalVarAccepts = {
      "application/json"
    };
    final String pclocalVarAccept = pcapiClient.selectHeaderAccept(pclocalVarAccepts);

    final String[] pclocalVarContentTypes = {
      "application/json"
    };
    final String pclocalVarContentType = pcapiClient.selectHeaderContentType(pclocalVarContentTypes);

    String[] pclocalVarAuthNames = new String[] { "PureCloud Auth" };

    return pcapiClient.invokeAPIVerbose(pclocalVarPath, "GET", pclocalVarQueryParams, pclocalVarPostBody, pclocalVarHeaderParams, pclocalVarFormParams, pclocalVarAccept, pclocalVarContentType, pclocalVarAuthNames, new TypeReference() {});
  }
  /**
   * Get a certificate authority.
   * 
   * @param certificateId Certificate ID (required)
   * @return DomainCertificateAuthority
   * @throws ApiException if fails to make API call
   */
  public DomainCertificateAuthority getProvidersEdgesCertificateauthoritiesCertificateId(String certificateId) throws ApiException {
    return getProvidersEdgesCertificateauthoritiesCertificateIdWithHttpInfo(certificateId).getResponseObject();
  }

  /**
   * Get a certificate authority.
   * 
   * @param certificateId Certificate ID (required)
   * @return DomainCertificateAuthority
   * @throws ApiException if fails to make API call
   */
  public ApiResponse getProvidersEdgesCertificateauthoritiesCertificateIdWithHttpInfo(String certificateId) throws ApiException {
    Object pclocalVarPostBody = null;
    
    // verify the required parameter 'certificateId' is set
    if (certificateId == null) {
      throw new ApiException(400, "Missing the required parameter 'certificateId' when calling getProvidersEdgesCertificateauthoritiesCertificateId");
    }
    
    // create path and map variables
    String pclocalVarPath = "/api/v2/telephony/providers/edges/certificateauthorities/{certificateId}".replaceAll("\\{format\\}","json")
      .replaceAll("\\{" + "certificateId" + "\\}", pcapiClient.escapeString(certificateId.toString()));

    // query params
    List pclocalVarQueryParams = new ArrayList();
    Map pclocalVarHeaderParams = new HashMap();
    Map pclocalVarFormParams = new HashMap();


    
    
    final String[] pclocalVarAccepts = {
      "application/json"
    };
    final String pclocalVarAccept = pcapiClient.selectHeaderAccept(pclocalVarAccepts);

    final String[] pclocalVarContentTypes = {
      "application/json"
    };
    final String pclocalVarContentType = pcapiClient.selectHeaderContentType(pclocalVarContentTypes);

    String[] pclocalVarAuthNames = new String[] { "PureCloud Auth" };

    return pcapiClient.invokeAPIVerbose(pclocalVarPath, "GET", pclocalVarQueryParams, pclocalVarPostBody, pclocalVarHeaderParams, pclocalVarFormParams, pclocalVarAccept, pclocalVarContentType, pclocalVarAuthNames, new TypeReference() {});
  }
  /**
   * Get a listing of DID Pools
   * 
   * @param pageSize Page size (optional, default to 25)
   * @param pageNumber Page number (optional, default to 1)
   * @param sortBy Sort by (optional, default to number)
   * @return DIDPoolEntityListing
   * @throws ApiException if fails to make API call
   */
  public DIDPoolEntityListing getProvidersEdgesDidpools(Integer pageSize, Integer pageNumber, String sortBy) throws ApiException {
    return getProvidersEdgesDidpoolsWithHttpInfo(pageSize, pageNumber, sortBy).getResponseObject();
  }

  /**
   * Get a listing of DID Pools
   * 
   * @param pageSize Page size (optional, default to 25)
   * @param pageNumber Page number (optional, default to 1)
   * @param sortBy Sort by (optional, default to number)
   * @return DIDPoolEntityListing
   * @throws ApiException if fails to make API call
   */
  public ApiResponse getProvidersEdgesDidpoolsWithHttpInfo(Integer pageSize, Integer pageNumber, String sortBy) throws ApiException {
    Object pclocalVarPostBody = null;
    
    // create path and map variables
    String pclocalVarPath = "/api/v2/telephony/providers/edges/didpools".replaceAll("\\{format\\}","json");

    // query params
    List pclocalVarQueryParams = new ArrayList();
    Map pclocalVarHeaderParams = new HashMap();
    Map pclocalVarFormParams = new HashMap();

    pclocalVarQueryParams.addAll(pcapiClient.parameterToPairs("", "pageSize", pageSize));
    pclocalVarQueryParams.addAll(pcapiClient.parameterToPairs("", "pageNumber", pageNumber));
    pclocalVarQueryParams.addAll(pcapiClient.parameterToPairs("", "sortBy", sortBy));

    
    
    final String[] pclocalVarAccepts = {
      "application/json"
    };
    final String pclocalVarAccept = pcapiClient.selectHeaderAccept(pclocalVarAccepts);

    final String[] pclocalVarContentTypes = {
      "application/json"
    };
    final String pclocalVarContentType = pcapiClient.selectHeaderContentType(pclocalVarContentTypes);

    String[] pclocalVarAuthNames = new String[] { "PureCloud Auth" };

    return pcapiClient.invokeAPIVerbose(pclocalVarPath, "GET", pclocalVarQueryParams, pclocalVarPostBody, pclocalVarHeaderParams, pclocalVarFormParams, pclocalVarAccept, pclocalVarContentType, pclocalVarAuthNames, new TypeReference() {});
  }
  /**
   * Get a DID Pool by ID.
   * 
   * @param didPoolId DID pool ID (required)
   * @return DIDPool
   * @throws ApiException if fails to make API call
   */
  public DIDPool getProvidersEdgesDidpoolsDidpoolId(String didPoolId) throws ApiException {
    return getProvidersEdgesDidpoolsDidpoolIdWithHttpInfo(didPoolId).getResponseObject();
  }

  /**
   * Get a DID Pool by ID.
   * 
   * @param didPoolId DID pool ID (required)
   * @return DIDPool
   * @throws ApiException if fails to make API call
   */
  public ApiResponse getProvidersEdgesDidpoolsDidpoolIdWithHttpInfo(String didPoolId) throws ApiException {
    Object pclocalVarPostBody = null;
    
    // verify the required parameter 'didPoolId' is set
    if (didPoolId == null) {
      throw new ApiException(400, "Missing the required parameter 'didPoolId' when calling getProvidersEdgesDidpoolsDidpoolId");
    }
    
    // create path and map variables
    String pclocalVarPath = "/api/v2/telephony/providers/edges/didpools/{didPoolId}".replaceAll("\\{format\\}","json")
      .replaceAll("\\{" + "didPoolId" + "\\}", pcapiClient.escapeString(didPoolId.toString()));

    // query params
    List pclocalVarQueryParams = new ArrayList();
    Map pclocalVarHeaderParams = new HashMap();
    Map pclocalVarFormParams = new HashMap();


    
    
    final String[] pclocalVarAccepts = {
      "application/json"
    };
    final String pclocalVarAccept = pcapiClient.selectHeaderAccept(pclocalVarAccepts);

    final String[] pclocalVarContentTypes = {
      "application/json"
    };
    final String pclocalVarContentType = pcapiClient.selectHeaderContentType(pclocalVarContentTypes);

    String[] pclocalVarAuthNames = new String[] { "PureCloud Auth" };

    return pcapiClient.invokeAPIVerbose(pclocalVarPath, "GET", pclocalVarQueryParams, pclocalVarPostBody, pclocalVarHeaderParams, pclocalVarFormParams, pclocalVarAccept, pclocalVarContentType, pclocalVarAuthNames, new TypeReference() {});
  }
  /**
   * Get a listing of DIDs
   * 
   * @param pageSize Page size (optional, default to 25)
   * @param pageNumber Page number (optional, default to 1)
   * @param sortBy Sort by (optional, default to number)
   * @param sortOrder Sort order (optional, default to ASC)
   * @param phoneNumber Filter by phoneNumber (optional)
   * @return DIDEntityListing
   * @throws ApiException if fails to make API call
   */
  public DIDEntityListing getProvidersEdgesDids(Integer pageSize, Integer pageNumber, String sortBy, String sortOrder, String phoneNumber) throws ApiException {
    return getProvidersEdgesDidsWithHttpInfo(pageSize, pageNumber, sortBy, sortOrder, phoneNumber).getResponseObject();
  }

  /**
   * Get a listing of DIDs
   * 
   * @param pageSize Page size (optional, default to 25)
   * @param pageNumber Page number (optional, default to 1)
   * @param sortBy Sort by (optional, default to number)
   * @param sortOrder Sort order (optional, default to ASC)
   * @param phoneNumber Filter by phoneNumber (optional)
   * @return DIDEntityListing
   * @throws ApiException if fails to make API call
   */
  public ApiResponse getProvidersEdgesDidsWithHttpInfo(Integer pageSize, Integer pageNumber, String sortBy, String sortOrder, String phoneNumber) throws ApiException {
    Object pclocalVarPostBody = null;
    
    // create path and map variables
    String pclocalVarPath = "/api/v2/telephony/providers/edges/dids".replaceAll("\\{format\\}","json");

    // query params
    List pclocalVarQueryParams = new ArrayList();
    Map pclocalVarHeaderParams = new HashMap();
    Map pclocalVarFormParams = new HashMap();

    pclocalVarQueryParams.addAll(pcapiClient.parameterToPairs("", "pageSize", pageSize));
    pclocalVarQueryParams.addAll(pcapiClient.parameterToPairs("", "pageNumber", pageNumber));
    pclocalVarQueryParams.addAll(pcapiClient.parameterToPairs("", "sortBy", sortBy));
    pclocalVarQueryParams.addAll(pcapiClient.parameterToPairs("", "sortOrder", sortOrder));
    pclocalVarQueryParams.addAll(pcapiClient.parameterToPairs("", "phoneNumber", phoneNumber));

    
    
    final String[] pclocalVarAccepts = {
      "application/json"
    };
    final String pclocalVarAccept = pcapiClient.selectHeaderAccept(pclocalVarAccepts);

    final String[] pclocalVarContentTypes = {
      "application/json"
    };
    final String pclocalVarContentType = pcapiClient.selectHeaderContentType(pclocalVarContentTypes);

    String[] pclocalVarAuthNames = new String[] { "PureCloud Auth" };

    return pcapiClient.invokeAPIVerbose(pclocalVarPath, "GET", pclocalVarQueryParams, pclocalVarPostBody, pclocalVarHeaderParams, pclocalVarFormParams, pclocalVarAccept, pclocalVarContentType, pclocalVarAuthNames, new TypeReference() {});
  }
  /**
   * Get a DID by ID.
   * 
   * @param didId DID ID (required)
   * @return DID
   * @throws ApiException if fails to make API call
   */
  public DID getProvidersEdgesDidsDidId(String didId) throws ApiException {
    return getProvidersEdgesDidsDidIdWithHttpInfo(didId).getResponseObject();
  }

  /**
   * Get a DID by ID.
   * 
   * @param didId DID ID (required)
   * @return DID
   * @throws ApiException if fails to make API call
   */
  public ApiResponse getProvidersEdgesDidsDidIdWithHttpInfo(String didId) throws ApiException {
    Object pclocalVarPostBody = null;
    
    // verify the required parameter 'didId' is set
    if (didId == null) {
      throw new ApiException(400, "Missing the required parameter 'didId' when calling getProvidersEdgesDidsDidId");
    }
    
    // create path and map variables
    String pclocalVarPath = "/api/v2/telephony/providers/edges/dids/{didId}".replaceAll("\\{format\\}","json")
      .replaceAll("\\{" + "didId" + "\\}", pcapiClient.escapeString(didId.toString()));

    // query params
    List pclocalVarQueryParams = new ArrayList();
    Map pclocalVarHeaderParams = new HashMap();
    Map pclocalVarFormParams = new HashMap();


    
    
    final String[] pclocalVarAccepts = {
      "application/json"
    };
    final String pclocalVarAccept = pcapiClient.selectHeaderAccept(pclocalVarAccepts);

    final String[] pclocalVarContentTypes = {
      "application/json"
    };
    final String pclocalVarContentType = pcapiClient.selectHeaderContentType(pclocalVarContentTypes);

    String[] pclocalVarAuthNames = new String[] { "PureCloud Auth" };

    return pcapiClient.invokeAPIVerbose(pclocalVarPath, "GET", pclocalVarQueryParams, pclocalVarPostBody, pclocalVarHeaderParams, pclocalVarFormParams, pclocalVarAccept, pclocalVarContentType, pclocalVarAuthNames, new TypeReference() {});
  }
  /**
   * Get edge.
   * 
   * @param edgeId Edge ID (required)
   * @param expand Fields to expand in the response, comma-separated (optional)
   * @return Edge
   * @throws ApiException if fails to make API call
   */
  public Edge getProvidersEdgesEdgeId(String edgeId, List expand) throws ApiException {
    return getProvidersEdgesEdgeIdWithHttpInfo(edgeId, expand).getResponseObject();
  }

  /**
   * Get edge.
   * 
   * @param edgeId Edge ID (required)
   * @param expand Fields to expand in the response, comma-separated (optional)
   * @return Edge
   * @throws ApiException if fails to make API call
   */
  public ApiResponse getProvidersEdgesEdgeIdWithHttpInfo(String edgeId, List expand) throws ApiException {
    Object pclocalVarPostBody = null;
    
    // verify the required parameter 'edgeId' is set
    if (edgeId == null) {
      throw new ApiException(400, "Missing the required parameter 'edgeId' when calling getProvidersEdgesEdgeId");
    }
    
    // create path and map variables
    String pclocalVarPath = "/api/v2/telephony/providers/edges/{edgeId}".replaceAll("\\{format\\}","json")
      .replaceAll("\\{" + "edgeId" + "\\}", pcapiClient.escapeString(edgeId.toString()));

    // query params
    List pclocalVarQueryParams = new ArrayList();
    Map pclocalVarHeaderParams = new HashMap();
    Map pclocalVarFormParams = new HashMap();

    pclocalVarQueryParams.addAll(pcapiClient.parameterToPairs("multi", "expand", expand));

    
    
    final String[] pclocalVarAccepts = {
      "application/json"
    };
    final String pclocalVarAccept = pcapiClient.selectHeaderAccept(pclocalVarAccepts);

    final String[] pclocalVarContentTypes = {
      "application/json"
    };
    final String pclocalVarContentType = pcapiClient.selectHeaderContentType(pclocalVarContentTypes);

    String[] pclocalVarAuthNames = new String[] { "PureCloud Auth" };

    return pcapiClient.invokeAPIVerbose(pclocalVarPath, "GET", pclocalVarQueryParams, pclocalVarPostBody, pclocalVarHeaderParams, pclocalVarFormParams, pclocalVarAccept, pclocalVarContentType, pclocalVarAuthNames, new TypeReference() {});
  }
  /**
   * Get the list of lines.
   * 
   * @param edgeId Edge ID (required)
   * @param pageSize Page size (optional, default to 25)
   * @param pageNumber Page number (optional, default to 1)
   * @return EdgeLineEntityListing
   * @throws ApiException if fails to make API call
   */
  public EdgeLineEntityListing getProvidersEdgesEdgeIdLines(String edgeId, Integer pageSize, Integer pageNumber) throws ApiException {
    return getProvidersEdgesEdgeIdLinesWithHttpInfo(edgeId, pageSize, pageNumber).getResponseObject();
  }

  /**
   * Get the list of lines.
   * 
   * @param edgeId Edge ID (required)
   * @param pageSize Page size (optional, default to 25)
   * @param pageNumber Page number (optional, default to 1)
   * @return EdgeLineEntityListing
   * @throws ApiException if fails to make API call
   */
  public ApiResponse getProvidersEdgesEdgeIdLinesWithHttpInfo(String edgeId, Integer pageSize, Integer pageNumber) throws ApiException {
    Object pclocalVarPostBody = null;
    
    // verify the required parameter 'edgeId' is set
    if (edgeId == null) {
      throw new ApiException(400, "Missing the required parameter 'edgeId' when calling getProvidersEdgesEdgeIdLines");
    }
    
    // create path and map variables
    String pclocalVarPath = "/api/v2/telephony/providers/edges/{edgeId}/lines".replaceAll("\\{format\\}","json")
      .replaceAll("\\{" + "edgeId" + "\\}", pcapiClient.escapeString(edgeId.toString()));

    // query params
    List pclocalVarQueryParams = new ArrayList();
    Map pclocalVarHeaderParams = new HashMap();
    Map pclocalVarFormParams = new HashMap();

    pclocalVarQueryParams.addAll(pcapiClient.parameterToPairs("", "pageSize", pageSize));
    pclocalVarQueryParams.addAll(pcapiClient.parameterToPairs("", "pageNumber", pageNumber));

    
    
    final String[] pclocalVarAccepts = {
      "application/json"
    };
    final String pclocalVarAccept = pcapiClient.selectHeaderAccept(pclocalVarAccepts);

    final String[] pclocalVarContentTypes = {
      "application/json"
    };
    final String pclocalVarContentType = pcapiClient.selectHeaderContentType(pclocalVarContentTypes);

    String[] pclocalVarAuthNames = new String[] { "PureCloud Auth" };

    return pcapiClient.invokeAPIVerbose(pclocalVarPath, "GET", pclocalVarQueryParams, pclocalVarPostBody, pclocalVarHeaderParams, pclocalVarFormParams, pclocalVarAccept, pclocalVarContentType, pclocalVarAuthNames, new TypeReference() {});
  }
  /**
   * Get line
   * 
   * @param edgeId Edge ID (required)
   * @param lineId Line ID (required)
   * @return EdgeLine
   * @throws ApiException if fails to make API call
   */
  public EdgeLine getProvidersEdgesEdgeIdLinesLineId(String edgeId, String lineId) throws ApiException {
    return getProvidersEdgesEdgeIdLinesLineIdWithHttpInfo(edgeId, lineId).getResponseObject();
  }

  /**
   * Get line
   * 
   * @param edgeId Edge ID (required)
   * @param lineId Line ID (required)
   * @return EdgeLine
   * @throws ApiException if fails to make API call
   */
  public ApiResponse getProvidersEdgesEdgeIdLinesLineIdWithHttpInfo(String edgeId, String lineId) throws ApiException {
    Object pclocalVarPostBody = null;
    
    // verify the required parameter 'edgeId' is set
    if (edgeId == null) {
      throw new ApiException(400, "Missing the required parameter 'edgeId' when calling getProvidersEdgesEdgeIdLinesLineId");
    }
    
    // verify the required parameter 'lineId' is set
    if (lineId == null) {
      throw new ApiException(400, "Missing the required parameter 'lineId' when calling getProvidersEdgesEdgeIdLinesLineId");
    }
    
    // create path and map variables
    String pclocalVarPath = "/api/v2/telephony/providers/edges/{edgeId}/lines/{lineId}".replaceAll("\\{format\\}","json")
      .replaceAll("\\{" + "edgeId" + "\\}", pcapiClient.escapeString(edgeId.toString()))
      .replaceAll("\\{" + "lineId" + "\\}", pcapiClient.escapeString(lineId.toString()));

    // query params
    List pclocalVarQueryParams = new ArrayList();
    Map pclocalVarHeaderParams = new HashMap();
    Map pclocalVarFormParams = new HashMap();


    
    
    final String[] pclocalVarAccepts = {
      "application/json"
    };
    final String pclocalVarAccept = pcapiClient.selectHeaderAccept(pclocalVarAccepts);

    final String[] pclocalVarContentTypes = {
      "application/json"
    };
    final String pclocalVarContentType = pcapiClient.selectHeaderContentType(pclocalVarContentTypes);

    String[] pclocalVarAuthNames = new String[] { "PureCloud Auth" };

    return pcapiClient.invokeAPIVerbose(pclocalVarPath, "GET", pclocalVarQueryParams, pclocalVarPostBody, pclocalVarHeaderParams, pclocalVarFormParams, pclocalVarAccept, pclocalVarContentType, pclocalVarAuthNames, new TypeReference() {});
  }
  /**
   * Get edge logical interfaces.
   * Retrieve a list of all configured logical interfaces from a specific edge.
   * @param edgeId Edge ID (required)
   * @param expand Field to expand in the response (optional)
   * @return LogicalInterfaceEntityListing
   * @throws ApiException if fails to make API call
   */
  public LogicalInterfaceEntityListing getProvidersEdgesEdgeIdLogicalinterfaces(String edgeId, List expand) throws ApiException {
    return getProvidersEdgesEdgeIdLogicalinterfacesWithHttpInfo(edgeId, expand).getResponseObject();
  }

  /**
   * Get edge logical interfaces.
   * Retrieve a list of all configured logical interfaces from a specific edge.
   * @param edgeId Edge ID (required)
   * @param expand Field to expand in the response (optional)
   * @return LogicalInterfaceEntityListing
   * @throws ApiException if fails to make API call
   */
  public ApiResponse getProvidersEdgesEdgeIdLogicalinterfacesWithHttpInfo(String edgeId, List expand) throws ApiException {
    Object pclocalVarPostBody = null;
    
    // verify the required parameter 'edgeId' is set
    if (edgeId == null) {
      throw new ApiException(400, "Missing the required parameter 'edgeId' when calling getProvidersEdgesEdgeIdLogicalinterfaces");
    }
    
    // create path and map variables
    String pclocalVarPath = "/api/v2/telephony/providers/edges/{edgeId}/logicalinterfaces".replaceAll("\\{format\\}","json")
      .replaceAll("\\{" + "edgeId" + "\\}", pcapiClient.escapeString(edgeId.toString()));

    // query params
    List pclocalVarQueryParams = new ArrayList();
    Map pclocalVarHeaderParams = new HashMap();
    Map pclocalVarFormParams = new HashMap();

    pclocalVarQueryParams.addAll(pcapiClient.parameterToPairs("multi", "expand", expand));

    
    
    final String[] pclocalVarAccepts = {
      "application/json"
    };
    final String pclocalVarAccept = pcapiClient.selectHeaderAccept(pclocalVarAccepts);

    final String[] pclocalVarContentTypes = {
      "application/json"
    };
    final String pclocalVarContentType = pcapiClient.selectHeaderContentType(pclocalVarContentTypes);

    String[] pclocalVarAuthNames = new String[] { "PureCloud Auth" };

    return pcapiClient.invokeAPIVerbose(pclocalVarPath, "GET", pclocalVarQueryParams, pclocalVarPostBody, pclocalVarHeaderParams, pclocalVarFormParams, pclocalVarAccept, pclocalVarContentType, pclocalVarAuthNames, new TypeReference() {});
  }
  /**
   * Get an edge logical interface
   * 
   * @param edgeId Edge ID (required)
   * @param interfaceId Interface ID (required)
   * @param expand Field to expand in the response (optional)
   * @return DomainLogicalInterface
   * @throws ApiException if fails to make API call
   */
  public DomainLogicalInterface getProvidersEdgesEdgeIdLogicalinterfacesInterfaceId(String edgeId, String interfaceId, List expand) throws ApiException {
    return getProvidersEdgesEdgeIdLogicalinterfacesInterfaceIdWithHttpInfo(edgeId, interfaceId, expand).getResponseObject();
  }

  /**
   * Get an edge logical interface
   * 
   * @param edgeId Edge ID (required)
   * @param interfaceId Interface ID (required)
   * @param expand Field to expand in the response (optional)
   * @return DomainLogicalInterface
   * @throws ApiException if fails to make API call
   */
  public ApiResponse getProvidersEdgesEdgeIdLogicalinterfacesInterfaceIdWithHttpInfo(String edgeId, String interfaceId, List expand) throws ApiException {
    Object pclocalVarPostBody = null;
    
    // verify the required parameter 'edgeId' is set
    if (edgeId == null) {
      throw new ApiException(400, "Missing the required parameter 'edgeId' when calling getProvidersEdgesEdgeIdLogicalinterfacesInterfaceId");
    }
    
    // verify the required parameter 'interfaceId' is set
    if (interfaceId == null) {
      throw new ApiException(400, "Missing the required parameter 'interfaceId' when calling getProvidersEdgesEdgeIdLogicalinterfacesInterfaceId");
    }
    
    // create path and map variables
    String pclocalVarPath = "/api/v2/telephony/providers/edges/{edgeId}/logicalinterfaces/{interfaceId}".replaceAll("\\{format\\}","json")
      .replaceAll("\\{" + "edgeId" + "\\}", pcapiClient.escapeString(edgeId.toString()))
      .replaceAll("\\{" + "interfaceId" + "\\}", pcapiClient.escapeString(interfaceId.toString()));

    // query params
    List pclocalVarQueryParams = new ArrayList();
    Map pclocalVarHeaderParams = new HashMap();
    Map pclocalVarFormParams = new HashMap();

    pclocalVarQueryParams.addAll(pcapiClient.parameterToPairs("multi", "expand", expand));

    
    
    final String[] pclocalVarAccepts = {
      "application/json"
    };
    final String pclocalVarAccept = pcapiClient.selectHeaderAccept(pclocalVarAccepts);

    final String[] pclocalVarContentTypes = {
      "application/json"
    };
    final String pclocalVarContentType = pcapiClient.selectHeaderContentType(pclocalVarContentTypes);

    String[] pclocalVarAuthNames = new String[] { "PureCloud Auth" };

    return pcapiClient.invokeAPIVerbose(pclocalVarPath, "GET", pclocalVarQueryParams, pclocalVarPostBody, pclocalVarHeaderParams, pclocalVarFormParams, pclocalVarAccept, pclocalVarContentType, pclocalVarAuthNames, new TypeReference() {});
  }
  /**
   * Get an Edge logs job.
   * 
   * @param edgeId Edge ID (required)
   * @param jobId Job ID (required)
   * @return EdgeLogsJob
   * @throws ApiException if fails to make API call
   */
  public EdgeLogsJob getProvidersEdgesEdgeIdLogsJobsJobId(String edgeId, String jobId) throws ApiException {
    return getProvidersEdgesEdgeIdLogsJobsJobIdWithHttpInfo(edgeId, jobId).getResponseObject();
  }

  /**
   * Get an Edge logs job.
   * 
   * @param edgeId Edge ID (required)
   * @param jobId Job ID (required)
   * @return EdgeLogsJob
   * @throws ApiException if fails to make API call
   */
  public ApiResponse getProvidersEdgesEdgeIdLogsJobsJobIdWithHttpInfo(String edgeId, String jobId) throws ApiException {
    Object pclocalVarPostBody = null;
    
    // verify the required parameter 'edgeId' is set
    if (edgeId == null) {
      throw new ApiException(400, "Missing the required parameter 'edgeId' when calling getProvidersEdgesEdgeIdLogsJobsJobId");
    }
    
    // verify the required parameter 'jobId' is set
    if (jobId == null) {
      throw new ApiException(400, "Missing the required parameter 'jobId' when calling getProvidersEdgesEdgeIdLogsJobsJobId");
    }
    
    // create path and map variables
    String pclocalVarPath = "/api/v2/telephony/providers/edges/{edgeId}/logs/jobs/{jobId}".replaceAll("\\{format\\}","json")
      .replaceAll("\\{" + "edgeId" + "\\}", pcapiClient.escapeString(edgeId.toString()))
      .replaceAll("\\{" + "jobId" + "\\}", pcapiClient.escapeString(jobId.toString()));

    // query params
    List pclocalVarQueryParams = new ArrayList();
    Map pclocalVarHeaderParams = new HashMap();
    Map pclocalVarFormParams = new HashMap();


    
    
    final String[] pclocalVarAccepts = {
      "application/json"
    };
    final String pclocalVarAccept = pcapiClient.selectHeaderAccept(pclocalVarAccepts);

    final String[] pclocalVarContentTypes = {
      "application/json"
    };
    final String pclocalVarContentType = pcapiClient.selectHeaderContentType(pclocalVarContentTypes);

    String[] pclocalVarAuthNames = new String[] { "PureCloud Auth" };

    return pcapiClient.invokeAPIVerbose(pclocalVarPath, "GET", pclocalVarQueryParams, pclocalVarPostBody, pclocalVarHeaderParams, pclocalVarFormParams, pclocalVarAccept, pclocalVarContentType, pclocalVarAuthNames, new TypeReference() {});
  }
  /**
   * Retrieve a list of all configured physical interfaces from a specific edge.
   * 
   * @param edgeId Edge ID (required)
   * @return PhysicalInterfaceEntityListing
   * @throws ApiException if fails to make API call
   */
  public PhysicalInterfaceEntityListing getProvidersEdgesEdgeIdPhysicalinterfaces(String edgeId) throws ApiException {
    return getProvidersEdgesEdgeIdPhysicalinterfacesWithHttpInfo(edgeId).getResponseObject();
  }

  /**
   * Retrieve a list of all configured physical interfaces from a specific edge.
   * 
   * @param edgeId Edge ID (required)
   * @return PhysicalInterfaceEntityListing
   * @throws ApiException if fails to make API call
   */
  public ApiResponse getProvidersEdgesEdgeIdPhysicalinterfacesWithHttpInfo(String edgeId) throws ApiException {
    Object pclocalVarPostBody = null;
    
    // verify the required parameter 'edgeId' is set
    if (edgeId == null) {
      throw new ApiException(400, "Missing the required parameter 'edgeId' when calling getProvidersEdgesEdgeIdPhysicalinterfaces");
    }
    
    // create path and map variables
    String pclocalVarPath = "/api/v2/telephony/providers/edges/{edgeId}/physicalinterfaces".replaceAll("\\{format\\}","json")
      .replaceAll("\\{" + "edgeId" + "\\}", pcapiClient.escapeString(edgeId.toString()));

    // query params
    List pclocalVarQueryParams = new ArrayList();
    Map pclocalVarHeaderParams = new HashMap();
    Map pclocalVarFormParams = new HashMap();


    
    
    final String[] pclocalVarAccepts = {
      "application/json"
    };
    final String pclocalVarAccept = pcapiClient.selectHeaderAccept(pclocalVarAccepts);

    final String[] pclocalVarContentTypes = {
      "application/json"
    };
    final String pclocalVarContentType = pcapiClient.selectHeaderContentType(pclocalVarContentTypes);

    String[] pclocalVarAuthNames = new String[] { "PureCloud Auth" };

    return pcapiClient.invokeAPIVerbose(pclocalVarPath, "GET", pclocalVarQueryParams, pclocalVarPostBody, pclocalVarHeaderParams, pclocalVarFormParams, pclocalVarAccept, pclocalVarContentType, pclocalVarAuthNames, new TypeReference() {});
  }
  /**
   * Get edge physical interface.
   * Retrieve a physical interface from a specific edge.
   * @param edgeId Edge ID (required)
   * @param interfaceId Interface ID (required)
   * @return DomainPhysicalInterface
   * @throws ApiException if fails to make API call
   */
  public DomainPhysicalInterface getProvidersEdgesEdgeIdPhysicalinterfacesInterfaceId(String edgeId, String interfaceId) throws ApiException {
    return getProvidersEdgesEdgeIdPhysicalinterfacesInterfaceIdWithHttpInfo(edgeId, interfaceId).getResponseObject();
  }

  /**
   * Get edge physical interface.
   * Retrieve a physical interface from a specific edge.
   * @param edgeId Edge ID (required)
   * @param interfaceId Interface ID (required)
   * @return DomainPhysicalInterface
   * @throws ApiException if fails to make API call
   */
  public ApiResponse getProvidersEdgesEdgeIdPhysicalinterfacesInterfaceIdWithHttpInfo(String edgeId, String interfaceId) throws ApiException {
    Object pclocalVarPostBody = null;
    
    // verify the required parameter 'edgeId' is set
    if (edgeId == null) {
      throw new ApiException(400, "Missing the required parameter 'edgeId' when calling getProvidersEdgesEdgeIdPhysicalinterfacesInterfaceId");
    }
    
    // verify the required parameter 'interfaceId' is set
    if (interfaceId == null) {
      throw new ApiException(400, "Missing the required parameter 'interfaceId' when calling getProvidersEdgesEdgeIdPhysicalinterfacesInterfaceId");
    }
    
    // create path and map variables
    String pclocalVarPath = "/api/v2/telephony/providers/edges/{edgeId}/physicalinterfaces/{interfaceId}".replaceAll("\\{format\\}","json")
      .replaceAll("\\{" + "edgeId" + "\\}", pcapiClient.escapeString(edgeId.toString()))
      .replaceAll("\\{" + "interfaceId" + "\\}", pcapiClient.escapeString(interfaceId.toString()));

    // query params
    List pclocalVarQueryParams = new ArrayList();
    Map pclocalVarHeaderParams = new HashMap();
    Map pclocalVarFormParams = new HashMap();


    
    
    final String[] pclocalVarAccepts = {
      "application/json"
    };
    final String pclocalVarAccept = pcapiClient.selectHeaderAccept(pclocalVarAccepts);

    final String[] pclocalVarContentTypes = {
      "application/json"
    };
    final String pclocalVarContentType = pcapiClient.selectHeaderContentType(pclocalVarContentTypes);

    String[] pclocalVarAuthNames = new String[] { "PureCloud Auth" };

    return pcapiClient.invokeAPIVerbose(pclocalVarPath, "GET", pclocalVarQueryParams, pclocalVarPostBody, pclocalVarHeaderParams, pclocalVarFormParams, pclocalVarAccept, pclocalVarContentType, pclocalVarAuthNames, new TypeReference() {});
  }
  /**
   * Get the setup package for a locally deployed edge device. This is needed to complete the setup process for the virtual edge.
   * 
   * @param edgeId Edge ID (required)
   * @return VmPairingInfo
   * @throws ApiException if fails to make API call
   */
  public VmPairingInfo getProvidersEdgesEdgeIdSetuppackage(String edgeId) throws ApiException {
    return getProvidersEdgesEdgeIdSetuppackageWithHttpInfo(edgeId).getResponseObject();
  }

  /**
   * Get the setup package for a locally deployed edge device. This is needed to complete the setup process for the virtual edge.
   * 
   * @param edgeId Edge ID (required)
   * @return VmPairingInfo
   * @throws ApiException if fails to make API call
   */
  public ApiResponse getProvidersEdgesEdgeIdSetuppackageWithHttpInfo(String edgeId) throws ApiException {
    Object pclocalVarPostBody = null;
    
    // verify the required parameter 'edgeId' is set
    if (edgeId == null) {
      throw new ApiException(400, "Missing the required parameter 'edgeId' when calling getProvidersEdgesEdgeIdSetuppackage");
    }
    
    // create path and map variables
    String pclocalVarPath = "/api/v2/telephony/providers/edges/{edgeId}/setuppackage".replaceAll("\\{format\\}","json")
      .replaceAll("\\{" + "edgeId" + "\\}", pcapiClient.escapeString(edgeId.toString()));

    // query params
    List pclocalVarQueryParams = new ArrayList();
    Map pclocalVarHeaderParams = new HashMap();
    Map pclocalVarFormParams = new HashMap();


    
    
    final String[] pclocalVarAccepts = {
      "application/json"
    };
    final String pclocalVarAccept = pcapiClient.selectHeaderAccept(pclocalVarAccepts);

    final String[] pclocalVarContentTypes = {
      "application/json"
    };
    final String pclocalVarContentType = pcapiClient.selectHeaderContentType(pclocalVarContentTypes);

    String[] pclocalVarAuthNames = new String[] { "PureCloud Auth" };

    return pcapiClient.invokeAPIVerbose(pclocalVarPath, "GET", pclocalVarQueryParams, pclocalVarPostBody, pclocalVarHeaderParams, pclocalVarFormParams, pclocalVarAccept, pclocalVarContentType, pclocalVarAuthNames, new TypeReference() {});
  }
  /**
   * Gets software update status information about any edge.
   * 
   * @param edgeId Edge ID (required)
   * @return DomainEdgeSoftwareUpdateDto
   * @throws ApiException if fails to make API call
   */
  public DomainEdgeSoftwareUpdateDto getProvidersEdgesEdgeIdSoftwareupdate(String edgeId) throws ApiException {
    return getProvidersEdgesEdgeIdSoftwareupdateWithHttpInfo(edgeId).getResponseObject();
  }

  /**
   * Gets software update status information about any edge.
   * 
   * @param edgeId Edge ID (required)
   * @return DomainEdgeSoftwareUpdateDto
   * @throws ApiException if fails to make API call
   */
  public ApiResponse getProvidersEdgesEdgeIdSoftwareupdateWithHttpInfo(String edgeId) throws ApiException {
    Object pclocalVarPostBody = null;
    
    // verify the required parameter 'edgeId' is set
    if (edgeId == null) {
      throw new ApiException(400, "Missing the required parameter 'edgeId' when calling getProvidersEdgesEdgeIdSoftwareupdate");
    }
    
    // create path and map variables
    String pclocalVarPath = "/api/v2/telephony/providers/edges/{edgeId}/softwareupdate".replaceAll("\\{format\\}","json")
      .replaceAll("\\{" + "edgeId" + "\\}", pcapiClient.escapeString(edgeId.toString()));

    // query params
    List pclocalVarQueryParams = new ArrayList();
    Map pclocalVarHeaderParams = new HashMap();
    Map pclocalVarFormParams = new HashMap();


    
    
    final String[] pclocalVarAccepts = {
      "application/json"
    };
    final String pclocalVarAccept = pcapiClient.selectHeaderAccept(pclocalVarAccepts);

    final String[] pclocalVarContentTypes = {
      "application/json"
    };
    final String pclocalVarContentType = pcapiClient.selectHeaderContentType(pclocalVarContentTypes);

    String[] pclocalVarAuthNames = new String[] { "PureCloud Auth" };

    return pcapiClient.invokeAPIVerbose(pclocalVarPath, "GET", pclocalVarQueryParams, pclocalVarPostBody, pclocalVarHeaderParams, pclocalVarFormParams, pclocalVarAccept, pclocalVarContentType, pclocalVarAuthNames, new TypeReference() {});
  }
  /**
   * Gets all the available software versions for this edge.
   * 
   * @param edgeId Edge ID (required)
   * @return DomainEdgeSoftwareVersionDtoEntityListing
   * @throws ApiException if fails to make API call
   */
  public DomainEdgeSoftwareVersionDtoEntityListing getProvidersEdgesEdgeIdSoftwareversions(String edgeId) throws ApiException {
    return getProvidersEdgesEdgeIdSoftwareversionsWithHttpInfo(edgeId).getResponseObject();
  }

  /**
   * Gets all the available software versions for this edge.
   * 
   * @param edgeId Edge ID (required)
   * @return DomainEdgeSoftwareVersionDtoEntityListing
   * @throws ApiException if fails to make API call
   */
  public ApiResponse getProvidersEdgesEdgeIdSoftwareversionsWithHttpInfo(String edgeId) throws ApiException {
    Object pclocalVarPostBody = null;
    
    // verify the required parameter 'edgeId' is set
    if (edgeId == null) {
      throw new ApiException(400, "Missing the required parameter 'edgeId' when calling getProvidersEdgesEdgeIdSoftwareversions");
    }
    
    // create path and map variables
    String pclocalVarPath = "/api/v2/telephony/providers/edges/{edgeId}/softwareversions".replaceAll("\\{format\\}","json")
      .replaceAll("\\{" + "edgeId" + "\\}", pcapiClient.escapeString(edgeId.toString()));

    // query params
    List pclocalVarQueryParams = new ArrayList();
    Map pclocalVarHeaderParams = new HashMap();
    Map pclocalVarFormParams = new HashMap();


    
    
    final String[] pclocalVarAccepts = {
      "application/json"
    };
    final String pclocalVarAccept = pcapiClient.selectHeaderAccept(pclocalVarAccepts);

    final String[] pclocalVarContentTypes = {
      "application/json"
    };
    final String pclocalVarContentType = pcapiClient.selectHeaderContentType(pclocalVarContentTypes);

    String[] pclocalVarAuthNames = new String[] { "PureCloud Auth" };

    return pcapiClient.invokeAPIVerbose(pclocalVarPath, "GET", pclocalVarQueryParams, pclocalVarPostBody, pclocalVarHeaderParams, pclocalVarFormParams, pclocalVarAccept, pclocalVarContentType, pclocalVarAuthNames, new TypeReference() {});
  }
  /**
   * Get the list of edge groups.
   * 
   * @param pageSize Page size (optional, default to 25)
   * @param pageNumber Page number (optional, default to 1)
   * @param name Name (optional)
   * @param sortBy Sort by (optional, default to name)
   * @param managed Filter by managed (optional)
   * @return EdgeGroupEntityListing
   * @throws ApiException if fails to make API call
   */
  public EdgeGroupEntityListing getProvidersEdgesEdgegroups(Integer pageSize, Integer pageNumber, String name, String sortBy, Boolean managed) throws ApiException {
    return getProvidersEdgesEdgegroupsWithHttpInfo(pageSize, pageNumber, name, sortBy, managed).getResponseObject();
  }

  /**
   * Get the list of edge groups.
   * 
   * @param pageSize Page size (optional, default to 25)
   * @param pageNumber Page number (optional, default to 1)
   * @param name Name (optional)
   * @param sortBy Sort by (optional, default to name)
   * @param managed Filter by managed (optional)
   * @return EdgeGroupEntityListing
   * @throws ApiException if fails to make API call
   */
  public ApiResponse getProvidersEdgesEdgegroupsWithHttpInfo(Integer pageSize, Integer pageNumber, String name, String sortBy, Boolean managed) throws ApiException {
    Object pclocalVarPostBody = null;
    
    // create path and map variables
    String pclocalVarPath = "/api/v2/telephony/providers/edges/edgegroups".replaceAll("\\{format\\}","json");

    // query params
    List pclocalVarQueryParams = new ArrayList();
    Map pclocalVarHeaderParams = new HashMap();
    Map pclocalVarFormParams = new HashMap();

    pclocalVarQueryParams.addAll(pcapiClient.parameterToPairs("", "pageSize", pageSize));
    pclocalVarQueryParams.addAll(pcapiClient.parameterToPairs("", "pageNumber", pageNumber));
    pclocalVarQueryParams.addAll(pcapiClient.parameterToPairs("", "name", name));
    pclocalVarQueryParams.addAll(pcapiClient.parameterToPairs("", "sortBy", sortBy));
    pclocalVarQueryParams.addAll(pcapiClient.parameterToPairs("", "managed", managed));

    
    
    final String[] pclocalVarAccepts = {
      "application/json"
    };
    final String pclocalVarAccept = pcapiClient.selectHeaderAccept(pclocalVarAccepts);

    final String[] pclocalVarContentTypes = {
      "application/json"
    };
    final String pclocalVarContentType = pcapiClient.selectHeaderContentType(pclocalVarContentTypes);

    String[] pclocalVarAuthNames = new String[] { "PureCloud Auth" };

    return pcapiClient.invokeAPIVerbose(pclocalVarPath, "GET", pclocalVarQueryParams, pclocalVarPostBody, pclocalVarHeaderParams, pclocalVarFormParams, pclocalVarAccept, pclocalVarContentType, pclocalVarAuthNames, new TypeReference() {});
  }
  /**
   * Get edge group.
   * 
   * @param edgeGroupId Edge group ID (required)
   * @param expand Fields to expand in the response (optional)
   * @return EdgeGroup
   * @throws ApiException if fails to make API call
   */
  public EdgeGroup getProvidersEdgesEdgegroupsEdgegroupId(String edgeGroupId, List expand) throws ApiException {
    return getProvidersEdgesEdgegroupsEdgegroupIdWithHttpInfo(edgeGroupId, expand).getResponseObject();
  }

  /**
   * Get edge group.
   * 
   * @param edgeGroupId Edge group ID (required)
   * @param expand Fields to expand in the response (optional)
   * @return EdgeGroup
   * @throws ApiException if fails to make API call
   */
  public ApiResponse getProvidersEdgesEdgegroupsEdgegroupIdWithHttpInfo(String edgeGroupId, List expand) throws ApiException {
    Object pclocalVarPostBody = null;
    
    // verify the required parameter 'edgeGroupId' is set
    if (edgeGroupId == null) {
      throw new ApiException(400, "Missing the required parameter 'edgeGroupId' when calling getProvidersEdgesEdgegroupsEdgegroupId");
    }
    
    // create path and map variables
    String pclocalVarPath = "/api/v2/telephony/providers/edges/edgegroups/{edgeGroupId}".replaceAll("\\{format\\}","json")
      .replaceAll("\\{" + "edgeGroupId" + "\\}", pcapiClient.escapeString(edgeGroupId.toString()));

    // query params
    List pclocalVarQueryParams = new ArrayList();
    Map pclocalVarHeaderParams = new HashMap();
    Map pclocalVarFormParams = new HashMap();

    pclocalVarQueryParams.addAll(pcapiClient.parameterToPairs("multi", "expand", expand));

    
    
    final String[] pclocalVarAccepts = {
      "application/json"
    };
    final String pclocalVarAccept = pcapiClient.selectHeaderAccept(pclocalVarAccepts);

    final String[] pclocalVarContentTypes = {
      "application/json"
    };
    final String pclocalVarContentType = pcapiClient.selectHeaderContentType(pclocalVarContentTypes);

    String[] pclocalVarAuthNames = new String[] { "PureCloud Auth" };

    return pcapiClient.invokeAPIVerbose(pclocalVarPath, "GET", pclocalVarQueryParams, pclocalVarPostBody, pclocalVarHeaderParams, pclocalVarFormParams, pclocalVarAccept, pclocalVarContentType, pclocalVarAuthNames, new TypeReference() {});
  }
  /**
   * Gets the edge trunk base associated with the edge group
   * 
   * @param edgegroupId Edge Group ID (required)
   * @param edgetrunkbaseId Edge Trunk Base ID (required)
   * @return EdgeTrunkBase
   * @throws ApiException if fails to make API call
   */
  public EdgeTrunkBase getProvidersEdgesEdgegroupsEdgegroupIdEdgetrunkbasesEdgetrunkbaseId(String edgegroupId, String edgetrunkbaseId) throws ApiException {
    return getProvidersEdgesEdgegroupsEdgegroupIdEdgetrunkbasesEdgetrunkbaseIdWithHttpInfo(edgegroupId, edgetrunkbaseId).getResponseObject();
  }

  /**
   * Gets the edge trunk base associated with the edge group
   * 
   * @param edgegroupId Edge Group ID (required)
   * @param edgetrunkbaseId Edge Trunk Base ID (required)
   * @return EdgeTrunkBase
   * @throws ApiException if fails to make API call
   */
  public ApiResponse getProvidersEdgesEdgegroupsEdgegroupIdEdgetrunkbasesEdgetrunkbaseIdWithHttpInfo(String edgegroupId, String edgetrunkbaseId) throws ApiException {
    Object pclocalVarPostBody = null;
    
    // verify the required parameter 'edgegroupId' is set
    if (edgegroupId == null) {
      throw new ApiException(400, "Missing the required parameter 'edgegroupId' when calling getProvidersEdgesEdgegroupsEdgegroupIdEdgetrunkbasesEdgetrunkbaseId");
    }
    
    // verify the required parameter 'edgetrunkbaseId' is set
    if (edgetrunkbaseId == null) {
      throw new ApiException(400, "Missing the required parameter 'edgetrunkbaseId' when calling getProvidersEdgesEdgegroupsEdgegroupIdEdgetrunkbasesEdgetrunkbaseId");
    }
    
    // create path and map variables
    String pclocalVarPath = "/api/v2/telephony/providers/edges/edgegroups/{edgegroupId}/edgetrunkbases/{edgetrunkbaseId}".replaceAll("\\{format\\}","json")
      .replaceAll("\\{" + "edgegroupId" + "\\}", pcapiClient.escapeString(edgegroupId.toString()))
      .replaceAll("\\{" + "edgetrunkbaseId" + "\\}", pcapiClient.escapeString(edgetrunkbaseId.toString()));

    // query params
    List pclocalVarQueryParams = new ArrayList();
    Map pclocalVarHeaderParams = new HashMap();
    Map pclocalVarFormParams = new HashMap();


    
    
    final String[] pclocalVarAccepts = {
      "application/json"
    };
    final String pclocalVarAccept = pcapiClient.selectHeaderAccept(pclocalVarAccepts);

    final String[] pclocalVarContentTypes = {
      "application/json"
    };
    final String pclocalVarContentType = pcapiClient.selectHeaderContentType(pclocalVarContentTypes);

    String[] pclocalVarAuthNames = new String[] { "PureCloud Auth" };

    return pcapiClient.invokeAPIVerbose(pclocalVarPath, "GET", pclocalVarQueryParams, pclocalVarPostBody, pclocalVarHeaderParams, pclocalVarFormParams, pclocalVarAccept, pclocalVarContentType, pclocalVarAuthNames, new TypeReference() {});
  }
  /**
   * Get the edge version report.
   * The report will not have consistent data about the edge version(s) until all edges have been reset.
   * @return EdgeVersionReport
   * @throws ApiException if fails to make API call
   */
  public EdgeVersionReport getProvidersEdgesEdgeversionreport() throws ApiException {
    return getProvidersEdgesEdgeversionreportWithHttpInfo().getResponseObject();
  }

  /**
   * Get the edge version report.
   * The report will not have consistent data about the edge version(s) until all edges have been reset.
   * @return EdgeVersionReport
   * @throws ApiException if fails to make API call
   */
  public ApiResponse getProvidersEdgesEdgeversionreportWithHttpInfo() throws ApiException {
    Object pclocalVarPostBody = null;
    
    // create path and map variables
    String pclocalVarPath = "/api/v2/telephony/providers/edges/edgeversionreport".replaceAll("\\{format\\}","json");

    // query params
    List pclocalVarQueryParams = new ArrayList();
    Map pclocalVarHeaderParams = new HashMap();
    Map pclocalVarFormParams = new HashMap();


    
    
    final String[] pclocalVarAccepts = {
      "application/json"
    };
    final String pclocalVarAccept = pcapiClient.selectHeaderAccept(pclocalVarAccepts);

    final String[] pclocalVarContentTypes = {
      "application/json"
    };
    final String pclocalVarContentType = pcapiClient.selectHeaderContentType(pclocalVarContentTypes);

    String[] pclocalVarAuthNames = new String[] { "PureCloud Auth" };

    return pcapiClient.invokeAPIVerbose(pclocalVarPath, "GET", pclocalVarQueryParams, pclocalVarPostBody, pclocalVarHeaderParams, pclocalVarFormParams, pclocalVarAccept, pclocalVarContentType, pclocalVarAuthNames, new TypeReference() {});
  }
  /**
   * Get endpoints
   * 
   * @param pageSize Page size (optional, default to 25)
   * @param pageNumber Page number (optional, default to 1)
   * @param name Name (optional)
   * @param sortBy Sort by (optional, default to name)
   * @return EndpointEntityListing
   * @throws ApiException if fails to make API call
   */
  public EndpointEntityListing getProvidersEdgesEndpoints(Integer pageSize, Integer pageNumber, String name, String sortBy) throws ApiException {
    return getProvidersEdgesEndpointsWithHttpInfo(pageSize, pageNumber, name, sortBy).getResponseObject();
  }

  /**
   * Get endpoints
   * 
   * @param pageSize Page size (optional, default to 25)
   * @param pageNumber Page number (optional, default to 1)
   * @param name Name (optional)
   * @param sortBy Sort by (optional, default to name)
   * @return EndpointEntityListing
   * @throws ApiException if fails to make API call
   */
  public ApiResponse getProvidersEdgesEndpointsWithHttpInfo(Integer pageSize, Integer pageNumber, String name, String sortBy) throws ApiException {
    Object pclocalVarPostBody = null;
    
    // create path and map variables
    String pclocalVarPath = "/api/v2/telephony/providers/edges/endpoints".replaceAll("\\{format\\}","json");

    // query params
    List pclocalVarQueryParams = new ArrayList();
    Map pclocalVarHeaderParams = new HashMap();
    Map pclocalVarFormParams = new HashMap();

    pclocalVarQueryParams.addAll(pcapiClient.parameterToPairs("", "pageSize", pageSize));
    pclocalVarQueryParams.addAll(pcapiClient.parameterToPairs("", "pageNumber", pageNumber));
    pclocalVarQueryParams.addAll(pcapiClient.parameterToPairs("", "name", name));
    pclocalVarQueryParams.addAll(pcapiClient.parameterToPairs("", "sortBy", sortBy));

    
    
    final String[] pclocalVarAccepts = {
      "application/json"
    };
    final String pclocalVarAccept = pcapiClient.selectHeaderAccept(pclocalVarAccepts);

    final String[] pclocalVarContentTypes = {
      "application/json"
    };
    final String pclocalVarContentType = pcapiClient.selectHeaderContentType(pclocalVarContentTypes);

    String[] pclocalVarAuthNames = new String[] { "PureCloud Auth" };

    return pcapiClient.invokeAPIVerbose(pclocalVarPath, "GET", pclocalVarQueryParams, pclocalVarPostBody, pclocalVarHeaderParams, pclocalVarFormParams, pclocalVarAccept, pclocalVarContentType, pclocalVarAuthNames, new TypeReference() {});
  }
  /**
   * Get endpoint
   * 
   * @param endpointId Endpoint ID (required)
   * @return Endpoint
   * @throws ApiException if fails to make API call
   */
  public Endpoint getProvidersEdgesEndpointsEndpointId(String endpointId) throws ApiException {
    return getProvidersEdgesEndpointsEndpointIdWithHttpInfo(endpointId).getResponseObject();
  }

  /**
   * Get endpoint
   * 
   * @param endpointId Endpoint ID (required)
   * @return Endpoint
   * @throws ApiException if fails to make API call
   */
  public ApiResponse getProvidersEdgesEndpointsEndpointIdWithHttpInfo(String endpointId) throws ApiException {
    Object pclocalVarPostBody = null;
    
    // verify the required parameter 'endpointId' is set
    if (endpointId == null) {
      throw new ApiException(400, "Missing the required parameter 'endpointId' when calling getProvidersEdgesEndpointsEndpointId");
    }
    
    // create path and map variables
    String pclocalVarPath = "/api/v2/telephony/providers/edges/endpoints/{endpointId}".replaceAll("\\{format\\}","json")
      .replaceAll("\\{" + "endpointId" + "\\}", pcapiClient.escapeString(endpointId.toString()));

    // query params
    List pclocalVarQueryParams = new ArrayList();
    Map pclocalVarHeaderParams = new HashMap();
    Map pclocalVarFormParams = new HashMap();


    
    
    final String[] pclocalVarAccepts = {
      "application/json"
    };
    final String pclocalVarAccept = pcapiClient.selectHeaderAccept(pclocalVarAccepts);

    final String[] pclocalVarContentTypes = {
      "application/json"
    };
    final String pclocalVarContentType = pcapiClient.selectHeaderContentType(pclocalVarContentTypes);

    String[] pclocalVarAuthNames = new String[] { "PureCloud Auth" };

    return pcapiClient.invokeAPIVerbose(pclocalVarPath, "GET", pclocalVarQueryParams, pclocalVarPostBody, pclocalVarHeaderParams, pclocalVarFormParams, pclocalVarAccept, pclocalVarContentType, pclocalVarAuthNames, new TypeReference() {});
  }
  /**
   * Get a listing of extension pools
   * 
   * @param pageSize Page size (optional, default to 25)
   * @param pageNumber Page number (optional, default to 1)
   * @param sortBy Sort by (optional, default to startNumber)
   * @param number Number (optional)
   * @return ExtensionPoolEntityListing
   * @throws ApiException if fails to make API call
   */
  public ExtensionPoolEntityListing getProvidersEdgesExtensionpools(Integer pageSize, Integer pageNumber, String sortBy, String number) throws ApiException {
    return getProvidersEdgesExtensionpoolsWithHttpInfo(pageSize, pageNumber, sortBy, number).getResponseObject();
  }

  /**
   * Get a listing of extension pools
   * 
   * @param pageSize Page size (optional, default to 25)
   * @param pageNumber Page number (optional, default to 1)
   * @param sortBy Sort by (optional, default to startNumber)
   * @param number Number (optional)
   * @return ExtensionPoolEntityListing
   * @throws ApiException if fails to make API call
   */
  public ApiResponse getProvidersEdgesExtensionpoolsWithHttpInfo(Integer pageSize, Integer pageNumber, String sortBy, String number) throws ApiException {
    Object pclocalVarPostBody = null;
    
    // create path and map variables
    String pclocalVarPath = "/api/v2/telephony/providers/edges/extensionpools".replaceAll("\\{format\\}","json");

    // query params
    List pclocalVarQueryParams = new ArrayList();
    Map pclocalVarHeaderParams = new HashMap();
    Map pclocalVarFormParams = new HashMap();

    pclocalVarQueryParams.addAll(pcapiClient.parameterToPairs("", "pageSize", pageSize));
    pclocalVarQueryParams.addAll(pcapiClient.parameterToPairs("", "pageNumber", pageNumber));
    pclocalVarQueryParams.addAll(pcapiClient.parameterToPairs("", "sortBy", sortBy));
    pclocalVarQueryParams.addAll(pcapiClient.parameterToPairs("", "number", number));

    
    
    final String[] pclocalVarAccepts = {
      "application/json"
    };
    final String pclocalVarAccept = pcapiClient.selectHeaderAccept(pclocalVarAccepts);

    final String[] pclocalVarContentTypes = {
      "application/json"
    };
    final String pclocalVarContentType = pcapiClient.selectHeaderContentType(pclocalVarContentTypes);

    String[] pclocalVarAuthNames = new String[] { "PureCloud Auth" };

    return pcapiClient.invokeAPIVerbose(pclocalVarPath, "GET", pclocalVarQueryParams, pclocalVarPostBody, pclocalVarHeaderParams, pclocalVarFormParams, pclocalVarAccept, pclocalVarContentType, pclocalVarAuthNames, new TypeReference() {});
  }
  /**
   * Get an extension pool by ID
   * 
   * @param extensionPoolId Extension pool ID (required)
   * @return ExtensionPool
   * @throws ApiException if fails to make API call
   */
  public ExtensionPool getProvidersEdgesExtensionpoolsExtensionpoolId(String extensionPoolId) throws ApiException {
    return getProvidersEdgesExtensionpoolsExtensionpoolIdWithHttpInfo(extensionPoolId).getResponseObject();
  }

  /**
   * Get an extension pool by ID
   * 
   * @param extensionPoolId Extension pool ID (required)
   * @return ExtensionPool
   * @throws ApiException if fails to make API call
   */
  public ApiResponse getProvidersEdgesExtensionpoolsExtensionpoolIdWithHttpInfo(String extensionPoolId) throws ApiException {
    Object pclocalVarPostBody = null;
    
    // verify the required parameter 'extensionPoolId' is set
    if (extensionPoolId == null) {
      throw new ApiException(400, "Missing the required parameter 'extensionPoolId' when calling getProvidersEdgesExtensionpoolsExtensionpoolId");
    }
    
    // create path and map variables
    String pclocalVarPath = "/api/v2/telephony/providers/edges/extensionpools/{extensionPoolId}".replaceAll("\\{format\\}","json")
      .replaceAll("\\{" + "extensionPoolId" + "\\}", pcapiClient.escapeString(extensionPoolId.toString()));

    // query params
    List pclocalVarQueryParams = new ArrayList();
    Map pclocalVarHeaderParams = new HashMap();
    Map pclocalVarFormParams = new HashMap();


    
    
    final String[] pclocalVarAccepts = {
      "application/json"
    };
    final String pclocalVarAccept = pcapiClient.selectHeaderAccept(pclocalVarAccepts);

    final String[] pclocalVarContentTypes = {
      "application/json"
    };
    final String pclocalVarContentType = pcapiClient.selectHeaderContentType(pclocalVarContentTypes);

    String[] pclocalVarAuthNames = new String[] { "PureCloud Auth" };

    return pcapiClient.invokeAPIVerbose(pclocalVarPath, "GET", pclocalVarQueryParams, pclocalVarPostBody, pclocalVarHeaderParams, pclocalVarFormParams, pclocalVarAccept, pclocalVarContentType, pclocalVarAuthNames, new TypeReference() {});
  }
  /**
   * Get a listing of extensions
   * 
   * @param pageSize Page size (optional, default to 25)
   * @param pageNumber Page number (optional, default to 1)
   * @param sortBy Sort by (optional, default to number)
   * @param sortOrder Sort order (optional, default to ASC)
   * @param number Filter by number (optional)
   * @return ExtensionEntityListing
   * @throws ApiException if fails to make API call
   */
  public ExtensionEntityListing getProvidersEdgesExtensions(Integer pageSize, Integer pageNumber, String sortBy, String sortOrder, String number) throws ApiException {
    return getProvidersEdgesExtensionsWithHttpInfo(pageSize, pageNumber, sortBy, sortOrder, number).getResponseObject();
  }

  /**
   * Get a listing of extensions
   * 
   * @param pageSize Page size (optional, default to 25)
   * @param pageNumber Page number (optional, default to 1)
   * @param sortBy Sort by (optional, default to number)
   * @param sortOrder Sort order (optional, default to ASC)
   * @param number Filter by number (optional)
   * @return ExtensionEntityListing
   * @throws ApiException if fails to make API call
   */
  public ApiResponse getProvidersEdgesExtensionsWithHttpInfo(Integer pageSize, Integer pageNumber, String sortBy, String sortOrder, String number) throws ApiException {
    Object pclocalVarPostBody = null;
    
    // create path and map variables
    String pclocalVarPath = "/api/v2/telephony/providers/edges/extensions".replaceAll("\\{format\\}","json");

    // query params
    List pclocalVarQueryParams = new ArrayList();
    Map pclocalVarHeaderParams = new HashMap();
    Map pclocalVarFormParams = new HashMap();

    pclocalVarQueryParams.addAll(pcapiClient.parameterToPairs("", "pageSize", pageSize));
    pclocalVarQueryParams.addAll(pcapiClient.parameterToPairs("", "pageNumber", pageNumber));
    pclocalVarQueryParams.addAll(pcapiClient.parameterToPairs("", "sortBy", sortBy));
    pclocalVarQueryParams.addAll(pcapiClient.parameterToPairs("", "sortOrder", sortOrder));
    pclocalVarQueryParams.addAll(pcapiClient.parameterToPairs("", "number", number));

    
    
    final String[] pclocalVarAccepts = {
      "application/json"
    };
    final String pclocalVarAccept = pcapiClient.selectHeaderAccept(pclocalVarAccepts);

    final String[] pclocalVarContentTypes = {
      "application/json"
    };
    final String pclocalVarContentType = pcapiClient.selectHeaderContentType(pclocalVarContentTypes);

    String[] pclocalVarAuthNames = new String[] { "PureCloud Auth" };

    return pcapiClient.invokeAPIVerbose(pclocalVarPath, "GET", pclocalVarQueryParams, pclocalVarPostBody, pclocalVarHeaderParams, pclocalVarFormParams, pclocalVarAccept, pclocalVarContentType, pclocalVarAuthNames, new TypeReference() {});
  }
  /**
   * Get an extension by ID.
   * 
   * @param extensionId Extension ID (required)
   * @return Extension
   * @throws ApiException if fails to make API call
   */
  public Extension getProvidersEdgesExtensionsExtensionId(String extensionId) throws ApiException {
    return getProvidersEdgesExtensionsExtensionIdWithHttpInfo(extensionId).getResponseObject();
  }

  /**
   * Get an extension by ID.
   * 
   * @param extensionId Extension ID (required)
   * @return Extension
   * @throws ApiException if fails to make API call
   */
  public ApiResponse getProvidersEdgesExtensionsExtensionIdWithHttpInfo(String extensionId) throws ApiException {
    Object pclocalVarPostBody = null;
    
    // verify the required parameter 'extensionId' is set
    if (extensionId == null) {
      throw new ApiException(400, "Missing the required parameter 'extensionId' when calling getProvidersEdgesExtensionsExtensionId");
    }
    
    // create path and map variables
    String pclocalVarPath = "/api/v2/telephony/providers/edges/extensions/{extensionId}".replaceAll("\\{format\\}","json")
      .replaceAll("\\{" + "extensionId" + "\\}", pcapiClient.escapeString(extensionId.toString()));

    // query params
    List pclocalVarQueryParams = new ArrayList();
    Map pclocalVarHeaderParams = new HashMap();
    Map pclocalVarFormParams = new HashMap();


    
    
    final String[] pclocalVarAccepts = {
      "application/json"
    };
    final String pclocalVarAccept = pcapiClient.selectHeaderAccept(pclocalVarAccepts);

    final String[] pclocalVarContentTypes = {
      "application/json"
    };
    final String pclocalVarContentType = pcapiClient.selectHeaderContentType(pclocalVarContentTypes);

    String[] pclocalVarAuthNames = new String[] { "PureCloud Auth" };

    return pcapiClient.invokeAPIVerbose(pclocalVarPath, "GET", pclocalVarQueryParams, pclocalVarPostBody, pclocalVarHeaderParams, pclocalVarFormParams, pclocalVarAccept, pclocalVarContentType, pclocalVarAuthNames, new TypeReference() {});
  }
  /**
   * Get a listing of line base settings objects
   * 
   * @param pageNumber Page number (optional, default to 1)
   * @param pageSize Page size (optional, default to 25)
   * @param sortBy Value by which to sort (optional, default to name)
   * @param sortOrder Sort order (optional, default to ASC)
   * @return LineBaseEntityListing
   * @throws ApiException if fails to make API call
   */
  public LineBaseEntityListing getProvidersEdgesLinebasesettings(Integer pageNumber, Integer pageSize, String sortBy, String sortOrder) throws ApiException {
    return getProvidersEdgesLinebasesettingsWithHttpInfo(pageNumber, pageSize, sortBy, sortOrder).getResponseObject();
  }

  /**
   * Get a listing of line base settings objects
   * 
   * @param pageNumber Page number (optional, default to 1)
   * @param pageSize Page size (optional, default to 25)
   * @param sortBy Value by which to sort (optional, default to name)
   * @param sortOrder Sort order (optional, default to ASC)
   * @return LineBaseEntityListing
   * @throws ApiException if fails to make API call
   */
  public ApiResponse getProvidersEdgesLinebasesettingsWithHttpInfo(Integer pageNumber, Integer pageSize, String sortBy, String sortOrder) throws ApiException {
    Object pclocalVarPostBody = null;
    
    // create path and map variables
    String pclocalVarPath = "/api/v2/telephony/providers/edges/linebasesettings".replaceAll("\\{format\\}","json");

    // query params
    List pclocalVarQueryParams = new ArrayList();
    Map pclocalVarHeaderParams = new HashMap();
    Map pclocalVarFormParams = new HashMap();

    pclocalVarQueryParams.addAll(pcapiClient.parameterToPairs("", "pageNumber", pageNumber));
    pclocalVarQueryParams.addAll(pcapiClient.parameterToPairs("", "pageSize", pageSize));
    pclocalVarQueryParams.addAll(pcapiClient.parameterToPairs("", "sortBy", sortBy));
    pclocalVarQueryParams.addAll(pcapiClient.parameterToPairs("", "sortOrder", sortOrder));

    
    
    final String[] pclocalVarAccepts = {
      "application/json"
    };
    final String pclocalVarAccept = pcapiClient.selectHeaderAccept(pclocalVarAccepts);

    final String[] pclocalVarContentTypes = {
      "application/json"
    };
    final String pclocalVarContentType = pcapiClient.selectHeaderContentType(pclocalVarContentTypes);

    String[] pclocalVarAuthNames = new String[] { "PureCloud Auth" };

    return pcapiClient.invokeAPIVerbose(pclocalVarPath, "GET", pclocalVarQueryParams, pclocalVarPostBody, pclocalVarHeaderParams, pclocalVarFormParams, pclocalVarAccept, pclocalVarContentType, pclocalVarAuthNames, new TypeReference() {});
  }
  /**
   * Get a line base settings object by ID
   * 
   * @param lineBaseId Line base ID (required)
   * @return LineBase
   * @throws ApiException if fails to make API call
   */
  public LineBase getProvidersEdgesLinebasesettingsLinebaseId(String lineBaseId) throws ApiException {
    return getProvidersEdgesLinebasesettingsLinebaseIdWithHttpInfo(lineBaseId).getResponseObject();
  }

  /**
   * Get a line base settings object by ID
   * 
   * @param lineBaseId Line base ID (required)
   * @return LineBase
   * @throws ApiException if fails to make API call
   */
  public ApiResponse getProvidersEdgesLinebasesettingsLinebaseIdWithHttpInfo(String lineBaseId) throws ApiException {
    Object pclocalVarPostBody = null;
    
    // verify the required parameter 'lineBaseId' is set
    if (lineBaseId == null) {
      throw new ApiException(400, "Missing the required parameter 'lineBaseId' when calling getProvidersEdgesLinebasesettingsLinebaseId");
    }
    
    // create path and map variables
    String pclocalVarPath = "/api/v2/telephony/providers/edges/linebasesettings/{lineBaseId}".replaceAll("\\{format\\}","json")
      .replaceAll("\\{" + "lineBaseId" + "\\}", pcapiClient.escapeString(lineBaseId.toString()));

    // query params
    List pclocalVarQueryParams = new ArrayList();
    Map pclocalVarHeaderParams = new HashMap();
    Map pclocalVarFormParams = new HashMap();


    
    
    final String[] pclocalVarAccepts = {
      "application/json"
    };
    final String pclocalVarAccept = pcapiClient.selectHeaderAccept(pclocalVarAccepts);

    final String[] pclocalVarContentTypes = {
      "application/json"
    };
    final String pclocalVarContentType = pcapiClient.selectHeaderContentType(pclocalVarContentTypes);

    String[] pclocalVarAuthNames = new String[] { "PureCloud Auth" };

    return pcapiClient.invokeAPIVerbose(pclocalVarPath, "GET", pclocalVarQueryParams, pclocalVarPostBody, pclocalVarHeaderParams, pclocalVarFormParams, pclocalVarAccept, pclocalVarContentType, pclocalVarAuthNames, new TypeReference() {});
  }
  /**
   * Get a list of Lines
   * 
   * @param pageSize Page size (optional, default to 25)
   * @param pageNumber Page number (optional, default to 1)
   * @param name Name (optional)
   * @param sortBy Value by which to sort (optional, default to name)
   * @param expand Fields to expand in the response, comma-separated (optional)
   * @return LineEntityListing
   * @throws ApiException if fails to make API call
   */
  public LineEntityListing getProvidersEdgesLines(Integer pageSize, Integer pageNumber, String name, String sortBy, List expand) throws ApiException {
    return getProvidersEdgesLinesWithHttpInfo(pageSize, pageNumber, name, sortBy, expand).getResponseObject();
  }

  /**
   * Get a list of Lines
   * 
   * @param pageSize Page size (optional, default to 25)
   * @param pageNumber Page number (optional, default to 1)
   * @param name Name (optional)
   * @param sortBy Value by which to sort (optional, default to name)
   * @param expand Fields to expand in the response, comma-separated (optional)
   * @return LineEntityListing
   * @throws ApiException if fails to make API call
   */
  public ApiResponse getProvidersEdgesLinesWithHttpInfo(Integer pageSize, Integer pageNumber, String name, String sortBy, List expand) throws ApiException {
    Object pclocalVarPostBody = null;
    
    // create path and map variables
    String pclocalVarPath = "/api/v2/telephony/providers/edges/lines".replaceAll("\\{format\\}","json");

    // query params
    List pclocalVarQueryParams = new ArrayList();
    Map pclocalVarHeaderParams = new HashMap();
    Map pclocalVarFormParams = new HashMap();

    pclocalVarQueryParams.addAll(pcapiClient.parameterToPairs("", "pageSize", pageSize));
    pclocalVarQueryParams.addAll(pcapiClient.parameterToPairs("", "pageNumber", pageNumber));
    pclocalVarQueryParams.addAll(pcapiClient.parameterToPairs("", "name", name));
    pclocalVarQueryParams.addAll(pcapiClient.parameterToPairs("", "sortBy", sortBy));
    pclocalVarQueryParams.addAll(pcapiClient.parameterToPairs("multi", "expand", expand));

    
    
    final String[] pclocalVarAccepts = {
      "application/json"
    };
    final String pclocalVarAccept = pcapiClient.selectHeaderAccept(pclocalVarAccepts);

    final String[] pclocalVarContentTypes = {
      "application/json"
    };
    final String pclocalVarContentType = pcapiClient.selectHeaderContentType(pclocalVarContentTypes);

    String[] pclocalVarAuthNames = new String[] { "PureCloud Auth" };

    return pcapiClient.invokeAPIVerbose(pclocalVarPath, "GET", pclocalVarQueryParams, pclocalVarPostBody, pclocalVarHeaderParams, pclocalVarFormParams, pclocalVarAccept, pclocalVarContentType, pclocalVarAuthNames, new TypeReference() {});
  }
  /**
   * Get a Line by ID
   * 
   * @param lineId Line ID (required)
   * @return Line
   * @throws ApiException if fails to make API call
   */
  public Line getProvidersEdgesLinesLineId(String lineId) throws ApiException {
    return getProvidersEdgesLinesLineIdWithHttpInfo(lineId).getResponseObject();
  }

  /**
   * Get a Line by ID
   * 
   * @param lineId Line ID (required)
   * @return Line
   * @throws ApiException if fails to make API call
   */
  public ApiResponse getProvidersEdgesLinesLineIdWithHttpInfo(String lineId) throws ApiException {
    Object pclocalVarPostBody = null;
    
    // verify the required parameter 'lineId' is set
    if (lineId == null) {
      throw new ApiException(400, "Missing the required parameter 'lineId' when calling getProvidersEdgesLinesLineId");
    }
    
    // create path and map variables
    String pclocalVarPath = "/api/v2/telephony/providers/edges/lines/{lineId}".replaceAll("\\{format\\}","json")
      .replaceAll("\\{" + "lineId" + "\\}", pcapiClient.escapeString(lineId.toString()));

    // query params
    List pclocalVarQueryParams = new ArrayList();
    Map pclocalVarHeaderParams = new HashMap();
    Map pclocalVarFormParams = new HashMap();


    
    
    final String[] pclocalVarAccepts = {
      "application/json"
    };
    final String pclocalVarAccept = pcapiClient.selectHeaderAccept(pclocalVarAccepts);

    final String[] pclocalVarContentTypes = {
      "application/json"
    };
    final String pclocalVarContentType = pcapiClient.selectHeaderContentType(pclocalVarContentTypes);

    String[] pclocalVarAuthNames = new String[] { "PureCloud Auth" };

    return pcapiClient.invokeAPIVerbose(pclocalVarPath, "GET", pclocalVarQueryParams, pclocalVarPostBody, pclocalVarHeaderParams, pclocalVarFormParams, pclocalVarAccept, pclocalVarContentType, pclocalVarAuthNames, new TypeReference() {});
  }
  /**
   * Get a Line instance template based on a Line Base Settings object. This object can then be modified and saved as a new Line instance
   * 
   * @param lineBaseSettingsId The id of a Line Base Settings object upon which to base this Line (required)
   * @return Line
   * @throws ApiException if fails to make API call
   */
  public Line getProvidersEdgesLinesTemplate(String lineBaseSettingsId) throws ApiException {
    return getProvidersEdgesLinesTemplateWithHttpInfo(lineBaseSettingsId).getResponseObject();
  }

  /**
   * Get a Line instance template based on a Line Base Settings object. This object can then be modified and saved as a new Line instance
   * 
   * @param lineBaseSettingsId The id of a Line Base Settings object upon which to base this Line (required)
   * @return Line
   * @throws ApiException if fails to make API call
   */
  public ApiResponse getProvidersEdgesLinesTemplateWithHttpInfo(String lineBaseSettingsId) throws ApiException {
    Object pclocalVarPostBody = null;
    
    // verify the required parameter 'lineBaseSettingsId' is set
    if (lineBaseSettingsId == null) {
      throw new ApiException(400, "Missing the required parameter 'lineBaseSettingsId' when calling getProvidersEdgesLinesTemplate");
    }
    
    // create path and map variables
    String pclocalVarPath = "/api/v2/telephony/providers/edges/lines/template".replaceAll("\\{format\\}","json");

    // query params
    List pclocalVarQueryParams = new ArrayList();
    Map pclocalVarHeaderParams = new HashMap();
    Map pclocalVarFormParams = new HashMap();

    pclocalVarQueryParams.addAll(pcapiClient.parameterToPairs("", "lineBaseSettingsId", lineBaseSettingsId));

    
    
    final String[] pclocalVarAccepts = {
      "application/json"
    };
    final String pclocalVarAccept = pcapiClient.selectHeaderAccept(pclocalVarAccepts);

    final String[] pclocalVarContentTypes = {
      "application/json"
    };
    final String pclocalVarContentType = pcapiClient.selectHeaderContentType(pclocalVarContentTypes);

    String[] pclocalVarAuthNames = new String[] { "PureCloud Auth" };

    return pcapiClient.invokeAPIVerbose(pclocalVarPath, "GET", pclocalVarQueryParams, pclocalVarPostBody, pclocalVarHeaderParams, pclocalVarFormParams, pclocalVarAccept, pclocalVarContentType, pclocalVarAuthNames, new TypeReference() {});
  }
  /**
   * Get edge logical interfaces.
   * Retrieve the configured logical interfaces for a list edges. Only 100 edges can be requested at a time.
   * @param edgeIds Comma separated list of Edge Id's (required)
   * @param expand Field to expand in the response (optional)
   * @return LogicalInterfaceEntityListing
   * @throws ApiException if fails to make API call
   */
  public LogicalInterfaceEntityListing getProvidersEdgesLogicalinterfaces(String edgeIds, List expand) throws ApiException {
    return getProvidersEdgesLogicalinterfacesWithHttpInfo(edgeIds, expand).getResponseObject();
  }

  /**
   * Get edge logical interfaces.
   * Retrieve the configured logical interfaces for a list edges. Only 100 edges can be requested at a time.
   * @param edgeIds Comma separated list of Edge Id's (required)
   * @param expand Field to expand in the response (optional)
   * @return LogicalInterfaceEntityListing
   * @throws ApiException if fails to make API call
   */
  public ApiResponse getProvidersEdgesLogicalinterfacesWithHttpInfo(String edgeIds, List expand) throws ApiException {
    Object pclocalVarPostBody = null;
    
    // verify the required parameter 'edgeIds' is set
    if (edgeIds == null) {
      throw new ApiException(400, "Missing the required parameter 'edgeIds' when calling getProvidersEdgesLogicalinterfaces");
    }
    
    // create path and map variables
    String pclocalVarPath = "/api/v2/telephony/providers/edges/logicalinterfaces".replaceAll("\\{format\\}","json");

    // query params
    List pclocalVarQueryParams = new ArrayList();
    Map pclocalVarHeaderParams = new HashMap();
    Map pclocalVarFormParams = new HashMap();

    pclocalVarQueryParams.addAll(pcapiClient.parameterToPairs("", "edgeIds", edgeIds));
    pclocalVarQueryParams.addAll(pcapiClient.parameterToPairs("multi", "expand", expand));

    
    
    final String[] pclocalVarAccepts = {
      "application/json"
    };
    final String pclocalVarAccept = pcapiClient.selectHeaderAccept(pclocalVarAccepts);

    final String[] pclocalVarContentTypes = {
      "application/json"
    };
    final String pclocalVarContentType = pcapiClient.selectHeaderContentType(pclocalVarContentTypes);

    String[] pclocalVarAuthNames = new String[] { "PureCloud Auth" };

    return pcapiClient.invokeAPIVerbose(pclocalVarPath, "GET", pclocalVarQueryParams, pclocalVarPostBody, pclocalVarHeaderParams, pclocalVarFormParams, pclocalVarAccept, pclocalVarContentType, pclocalVarAuthNames, new TypeReference() {});
  }
  /**
   * Get outbound routes
   * 
   * @param pageSize Page size (optional, default to 25)
   * @param pageNumber Page number (optional, default to 1)
   * @param name Name (optional)
   * @param siteId Filter by site.id (optional)
   * @param sortBy Sort by (optional, default to name)
   * @return OutboundRouteEntityListing
   * @throws ApiException if fails to make API call
   */
  public OutboundRouteEntityListing getProvidersEdgesOutboundroutes(Integer pageSize, Integer pageNumber, String name, String siteId, String sortBy) throws ApiException {
    return getProvidersEdgesOutboundroutesWithHttpInfo(pageSize, pageNumber, name, siteId, sortBy).getResponseObject();
  }

  /**
   * Get outbound routes
   * 
   * @param pageSize Page size (optional, default to 25)
   * @param pageNumber Page number (optional, default to 1)
   * @param name Name (optional)
   * @param siteId Filter by site.id (optional)
   * @param sortBy Sort by (optional, default to name)
   * @return OutboundRouteEntityListing
   * @throws ApiException if fails to make API call
   */
  public ApiResponse getProvidersEdgesOutboundroutesWithHttpInfo(Integer pageSize, Integer pageNumber, String name, String siteId, String sortBy) throws ApiException {
    Object pclocalVarPostBody = null;
    
    // create path and map variables
    String pclocalVarPath = "/api/v2/telephony/providers/edges/outboundroutes".replaceAll("\\{format\\}","json");

    // query params
    List pclocalVarQueryParams = new ArrayList();
    Map pclocalVarHeaderParams = new HashMap();
    Map pclocalVarFormParams = new HashMap();

    pclocalVarQueryParams.addAll(pcapiClient.parameterToPairs("", "pageSize", pageSize));
    pclocalVarQueryParams.addAll(pcapiClient.parameterToPairs("", "pageNumber", pageNumber));
    pclocalVarQueryParams.addAll(pcapiClient.parameterToPairs("", "name", name));
    pclocalVarQueryParams.addAll(pcapiClient.parameterToPairs("", "site.id", siteId));
    pclocalVarQueryParams.addAll(pcapiClient.parameterToPairs("", "sortBy", sortBy));

    
    
    final String[] pclocalVarAccepts = {
      "application/json"
    };
    final String pclocalVarAccept = pcapiClient.selectHeaderAccept(pclocalVarAccepts);

    final String[] pclocalVarContentTypes = {
      "application/json"
    };
    final String pclocalVarContentType = pcapiClient.selectHeaderContentType(pclocalVarContentTypes);

    String[] pclocalVarAuthNames = new String[] { "PureCloud Auth" };

    return pcapiClient.invokeAPIVerbose(pclocalVarPath, "GET", pclocalVarQueryParams, pclocalVarPostBody, pclocalVarHeaderParams, pclocalVarFormParams, pclocalVarAccept, pclocalVarContentType, pclocalVarAuthNames, new TypeReference() {});
  }
  /**
   * Get outbound route
   * 
   * @param outboundRouteId Outbound route ID (required)
   * @return OutboundRoute
   * @throws ApiException if fails to make API call
   */
  public OutboundRoute getProvidersEdgesOutboundroutesOutboundrouteId(String outboundRouteId) throws ApiException {
    return getProvidersEdgesOutboundroutesOutboundrouteIdWithHttpInfo(outboundRouteId).getResponseObject();
  }

  /**
   * Get outbound route
   * 
   * @param outboundRouteId Outbound route ID (required)
   * @return OutboundRoute
   * @throws ApiException if fails to make API call
   */
  public ApiResponse getProvidersEdgesOutboundroutesOutboundrouteIdWithHttpInfo(String outboundRouteId) throws ApiException {
    Object pclocalVarPostBody = null;
    
    // verify the required parameter 'outboundRouteId' is set
    if (outboundRouteId == null) {
      throw new ApiException(400, "Missing the required parameter 'outboundRouteId' when calling getProvidersEdgesOutboundroutesOutboundrouteId");
    }
    
    // create path and map variables
    String pclocalVarPath = "/api/v2/telephony/providers/edges/outboundroutes/{outboundRouteId}".replaceAll("\\{format\\}","json")
      .replaceAll("\\{" + "outboundRouteId" + "\\}", pcapiClient.escapeString(outboundRouteId.toString()));

    // query params
    List pclocalVarQueryParams = new ArrayList();
    Map pclocalVarHeaderParams = new HashMap();
    Map pclocalVarFormParams = new HashMap();


    
    
    final String[] pclocalVarAccepts = {
      "application/json"
    };
    final String pclocalVarAccept = pcapiClient.selectHeaderAccept(pclocalVarAccepts);

    final String[] pclocalVarContentTypes = {
      "application/json"
    };
    final String pclocalVarContentType = pcapiClient.selectHeaderContentType(pclocalVarContentTypes);

    String[] pclocalVarAuthNames = new String[] { "PureCloud Auth" };

    return pcapiClient.invokeAPIVerbose(pclocalVarPath, "GET", pclocalVarQueryParams, pclocalVarPostBody, pclocalVarHeaderParams, pclocalVarFormParams, pclocalVarAccept, pclocalVarContentType, pclocalVarAuthNames, new TypeReference() {});
  }
  /**
   * Get a list of Phone Base Settings objects
   * 
   * @param pageSize Page size (optional, default to 25)
   * @param pageNumber Page number (optional, default to 1)
   * @param sortBy Value by which to sort (optional, default to name)
   * @param sortOrder Sort order (optional, default to ASC)
   * @param name Name (optional)
   * @return PhoneBaseEntityListing
   * @throws ApiException if fails to make API call
   */
  public PhoneBaseEntityListing getProvidersEdgesPhonebasesettings(Integer pageSize, Integer pageNumber, String sortBy, String sortOrder, String name) throws ApiException {
    return getProvidersEdgesPhonebasesettingsWithHttpInfo(pageSize, pageNumber, sortBy, sortOrder, name).getResponseObject();
  }

  /**
   * Get a list of Phone Base Settings objects
   * 
   * @param pageSize Page size (optional, default to 25)
   * @param pageNumber Page number (optional, default to 1)
   * @param sortBy Value by which to sort (optional, default to name)
   * @param sortOrder Sort order (optional, default to ASC)
   * @param name Name (optional)
   * @return PhoneBaseEntityListing
   * @throws ApiException if fails to make API call
   */
  public ApiResponse getProvidersEdgesPhonebasesettingsWithHttpInfo(Integer pageSize, Integer pageNumber, String sortBy, String sortOrder, String name) throws ApiException {
    Object pclocalVarPostBody = null;
    
    // create path and map variables
    String pclocalVarPath = "/api/v2/telephony/providers/edges/phonebasesettings".replaceAll("\\{format\\}","json");

    // query params
    List pclocalVarQueryParams = new ArrayList();
    Map pclocalVarHeaderParams = new HashMap();
    Map pclocalVarFormParams = new HashMap();

    pclocalVarQueryParams.addAll(pcapiClient.parameterToPairs("", "pageSize", pageSize));
    pclocalVarQueryParams.addAll(pcapiClient.parameterToPairs("", "pageNumber", pageNumber));
    pclocalVarQueryParams.addAll(pcapiClient.parameterToPairs("", "sortBy", sortBy));
    pclocalVarQueryParams.addAll(pcapiClient.parameterToPairs("", "sortOrder", sortOrder));
    pclocalVarQueryParams.addAll(pcapiClient.parameterToPairs("", "name", name));

    
    
    final String[] pclocalVarAccepts = {
      "application/json"
    };
    final String pclocalVarAccept = pcapiClient.selectHeaderAccept(pclocalVarAccepts);

    final String[] pclocalVarContentTypes = {
      "application/json"
    };
    final String pclocalVarContentType = pcapiClient.selectHeaderContentType(pclocalVarContentTypes);

    String[] pclocalVarAuthNames = new String[] { "PureCloud Auth" };

    return pcapiClient.invokeAPIVerbose(pclocalVarPath, "GET", pclocalVarQueryParams, pclocalVarPostBody, pclocalVarHeaderParams, pclocalVarFormParams, pclocalVarAccept, pclocalVarContentType, pclocalVarAuthNames, new TypeReference() {});
  }
  /**
   * Get a list of available makes and models to create a new Phone Base Settings
   * 
   * @param pageSize Page size (optional, default to 25)
   * @param pageNumber Page number (optional, default to 1)
   * @return PhoneMetaBaseEntityListing
   * @throws ApiException if fails to make API call
   */
  public PhoneMetaBaseEntityListing getProvidersEdgesPhonebasesettingsAvailablemetabases(Integer pageSize, Integer pageNumber) throws ApiException {
    return getProvidersEdgesPhonebasesettingsAvailablemetabasesWithHttpInfo(pageSize, pageNumber).getResponseObject();
  }

  /**
   * Get a list of available makes and models to create a new Phone Base Settings
   * 
   * @param pageSize Page size (optional, default to 25)
   * @param pageNumber Page number (optional, default to 1)
   * @return PhoneMetaBaseEntityListing
   * @throws ApiException if fails to make API call
   */
  public ApiResponse getProvidersEdgesPhonebasesettingsAvailablemetabasesWithHttpInfo(Integer pageSize, Integer pageNumber) throws ApiException {
    Object pclocalVarPostBody = null;
    
    // create path and map variables
    String pclocalVarPath = "/api/v2/telephony/providers/edges/phonebasesettings/availablemetabases".replaceAll("\\{format\\}","json");

    // query params
    List pclocalVarQueryParams = new ArrayList();
    Map pclocalVarHeaderParams = new HashMap();
    Map pclocalVarFormParams = new HashMap();

    pclocalVarQueryParams.addAll(pcapiClient.parameterToPairs("", "pageSize", pageSize));
    pclocalVarQueryParams.addAll(pcapiClient.parameterToPairs("", "pageNumber", pageNumber));

    
    
    final String[] pclocalVarAccepts = {
      "application/json"
    };
    final String pclocalVarAccept = pcapiClient.selectHeaderAccept(pclocalVarAccepts);

    final String[] pclocalVarContentTypes = {
      "application/json"
    };
    final String pclocalVarContentType = pcapiClient.selectHeaderContentType(pclocalVarContentTypes);

    String[] pclocalVarAuthNames = new String[] { "PureCloud Auth" };

    return pcapiClient.invokeAPIVerbose(pclocalVarPath, "GET", pclocalVarQueryParams, pclocalVarPostBody, pclocalVarHeaderParams, pclocalVarFormParams, pclocalVarAccept, pclocalVarContentType, pclocalVarAuthNames, new TypeReference() {});
  }
  /**
   * Get a Phone Base Settings object by ID
   * 
   * @param phoneBaseId Phone base ID (required)
   * @return PhoneBase
   * @throws ApiException if fails to make API call
   */
  public PhoneBase getProvidersEdgesPhonebasesettingsPhonebaseId(String phoneBaseId) throws ApiException {
    return getProvidersEdgesPhonebasesettingsPhonebaseIdWithHttpInfo(phoneBaseId).getResponseObject();
  }

  /**
   * Get a Phone Base Settings object by ID
   * 
   * @param phoneBaseId Phone base ID (required)
   * @return PhoneBase
   * @throws ApiException if fails to make API call
   */
  public ApiResponse getProvidersEdgesPhonebasesettingsPhonebaseIdWithHttpInfo(String phoneBaseId) throws ApiException {
    Object pclocalVarPostBody = null;
    
    // verify the required parameter 'phoneBaseId' is set
    if (phoneBaseId == null) {
      throw new ApiException(400, "Missing the required parameter 'phoneBaseId' when calling getProvidersEdgesPhonebasesettingsPhonebaseId");
    }
    
    // create path and map variables
    String pclocalVarPath = "/api/v2/telephony/providers/edges/phonebasesettings/{phoneBaseId}".replaceAll("\\{format\\}","json")
      .replaceAll("\\{" + "phoneBaseId" + "\\}", pcapiClient.escapeString(phoneBaseId.toString()));

    // query params
    List pclocalVarQueryParams = new ArrayList();
    Map pclocalVarHeaderParams = new HashMap();
    Map pclocalVarFormParams = new HashMap();


    
    
    final String[] pclocalVarAccepts = {
      "application/json"
    };
    final String pclocalVarAccept = pcapiClient.selectHeaderAccept(pclocalVarAccepts);

    final String[] pclocalVarContentTypes = {
      "application/json"
    };
    final String pclocalVarContentType = pcapiClient.selectHeaderContentType(pclocalVarContentTypes);

    String[] pclocalVarAuthNames = new String[] { "PureCloud Auth" };

    return pcapiClient.invokeAPIVerbose(pclocalVarPath, "GET", pclocalVarQueryParams, pclocalVarPostBody, pclocalVarHeaderParams, pclocalVarFormParams, pclocalVarAccept, pclocalVarContentType, pclocalVarAuthNames, new TypeReference() {});
  }
  /**
   * Get a Phone Base Settings instance template from a given make and model. This object can then be modified and saved as a new Phone Base Settings instance
   * 
   * @param phoneMetabaseId The id of a metabase object upon which to base this Phone Base Settings (required)
   * @return PhoneBase
   * @throws ApiException if fails to make API call
   */
  public PhoneBase getProvidersEdgesPhonebasesettingsTemplate(String phoneMetabaseId) throws ApiException {
    return getProvidersEdgesPhonebasesettingsTemplateWithHttpInfo(phoneMetabaseId).getResponseObject();
  }

  /**
   * Get a Phone Base Settings instance template from a given make and model. This object can then be modified and saved as a new Phone Base Settings instance
   * 
   * @param phoneMetabaseId The id of a metabase object upon which to base this Phone Base Settings (required)
   * @return PhoneBase
   * @throws ApiException if fails to make API call
   */
  public ApiResponse getProvidersEdgesPhonebasesettingsTemplateWithHttpInfo(String phoneMetabaseId) throws ApiException {
    Object pclocalVarPostBody = null;
    
    // verify the required parameter 'phoneMetabaseId' is set
    if (phoneMetabaseId == null) {
      throw new ApiException(400, "Missing the required parameter 'phoneMetabaseId' when calling getProvidersEdgesPhonebasesettingsTemplate");
    }
    
    // create path and map variables
    String pclocalVarPath = "/api/v2/telephony/providers/edges/phonebasesettings/template".replaceAll("\\{format\\}","json");

    // query params
    List pclocalVarQueryParams = new ArrayList();
    Map pclocalVarHeaderParams = new HashMap();
    Map pclocalVarFormParams = new HashMap();

    pclocalVarQueryParams.addAll(pcapiClient.parameterToPairs("", "phoneMetabaseId", phoneMetabaseId));

    
    
    final String[] pclocalVarAccepts = {
      "application/json"
    };
    final String pclocalVarAccept = pcapiClient.selectHeaderAccept(pclocalVarAccepts);

    final String[] pclocalVarContentTypes = {
      "application/json"
    };
    final String pclocalVarContentType = pcapiClient.selectHeaderContentType(pclocalVarContentTypes);

    String[] pclocalVarAuthNames = new String[] { "PureCloud Auth" };

    return pcapiClient.invokeAPIVerbose(pclocalVarPath, "GET", pclocalVarQueryParams, pclocalVarPostBody, pclocalVarHeaderParams, pclocalVarFormParams, pclocalVarAccept, pclocalVarContentType, pclocalVarAuthNames, new TypeReference() {});
  }
  /**
   * Get a list of Phone Instances
   * 
   * @param pageNumber Page number (optional, default to 1)
   * @param pageSize Page size (optional, default to 25)
   * @param sortBy Value by which to sort (optional, default to name)
   * @param sortOrder Sort order (optional, default to ASC)
   * @param siteId Filter by site.id (optional)
   * @param webRtcUserId Filter by webRtcUser.id (optional)
   * @param phoneBaseSettingsId Filter by phoneBaseSettings.id (optional)
   * @param linesLoggedInUserId Filter by lines.loggedInUser.id (optional)
   * @param linesDefaultForUserId Filter by lines.defaultForUser.id (optional)
   * @param phoneHardwareId Filter by phone_hardwareId (optional)
   * @param linesId Filter by lines.id (optional)
   * @param linesName Filter by lines.name (optional)
   * @param expand Fields to expand in the response, comma-separated (optional)
   * @param fields Fields and properties to get, comma-separated (optional)
   * @return PhoneEntityListing
   * @throws ApiException if fails to make API call
   */
  public PhoneEntityListing getProvidersEdgesPhones(Integer pageNumber, Integer pageSize, String sortBy, String sortOrder, String siteId, String webRtcUserId, String phoneBaseSettingsId, String linesLoggedInUserId, String linesDefaultForUserId, String phoneHardwareId, String linesId, String linesName, List expand, List fields) throws ApiException {
    return getProvidersEdgesPhonesWithHttpInfo(pageNumber, pageSize, sortBy, sortOrder, siteId, webRtcUserId, phoneBaseSettingsId, linesLoggedInUserId, linesDefaultForUserId, phoneHardwareId, linesId, linesName, expand, fields).getResponseObject();
  }

  /**
   * Get a list of Phone Instances
   * 
   * @param pageNumber Page number (optional, default to 1)
   * @param pageSize Page size (optional, default to 25)
   * @param sortBy Value by which to sort (optional, default to name)
   * @param sortOrder Sort order (optional, default to ASC)
   * @param siteId Filter by site.id (optional)
   * @param webRtcUserId Filter by webRtcUser.id (optional)
   * @param phoneBaseSettingsId Filter by phoneBaseSettings.id (optional)
   * @param linesLoggedInUserId Filter by lines.loggedInUser.id (optional)
   * @param linesDefaultForUserId Filter by lines.defaultForUser.id (optional)
   * @param phoneHardwareId Filter by phone_hardwareId (optional)
   * @param linesId Filter by lines.id (optional)
   * @param linesName Filter by lines.name (optional)
   * @param expand Fields to expand in the response, comma-separated (optional)
   * @param fields Fields and properties to get, comma-separated (optional)
   * @return PhoneEntityListing
   * @throws ApiException if fails to make API call
   */
  public ApiResponse getProvidersEdgesPhonesWithHttpInfo(Integer pageNumber, Integer pageSize, String sortBy, String sortOrder, String siteId, String webRtcUserId, String phoneBaseSettingsId, String linesLoggedInUserId, String linesDefaultForUserId, String phoneHardwareId, String linesId, String linesName, List expand, List fields) throws ApiException {
    Object pclocalVarPostBody = null;
    
    // create path and map variables
    String pclocalVarPath = "/api/v2/telephony/providers/edges/phones".replaceAll("\\{format\\}","json");

    // query params
    List pclocalVarQueryParams = new ArrayList();
    Map pclocalVarHeaderParams = new HashMap();
    Map pclocalVarFormParams = new HashMap();

    pclocalVarQueryParams.addAll(pcapiClient.parameterToPairs("", "pageNumber", pageNumber));
    pclocalVarQueryParams.addAll(pcapiClient.parameterToPairs("", "pageSize", pageSize));
    pclocalVarQueryParams.addAll(pcapiClient.parameterToPairs("", "sortBy", sortBy));
    pclocalVarQueryParams.addAll(pcapiClient.parameterToPairs("", "sortOrder", sortOrder));
    pclocalVarQueryParams.addAll(pcapiClient.parameterToPairs("", "site.id", siteId));
    pclocalVarQueryParams.addAll(pcapiClient.parameterToPairs("", "webRtcUser.id", webRtcUserId));
    pclocalVarQueryParams.addAll(pcapiClient.parameterToPairs("", "phoneBaseSettings.id", phoneBaseSettingsId));
    pclocalVarQueryParams.addAll(pcapiClient.parameterToPairs("", "lines.loggedInUser.id", linesLoggedInUserId));
    pclocalVarQueryParams.addAll(pcapiClient.parameterToPairs("", "lines.defaultForUser.id", linesDefaultForUserId));
    pclocalVarQueryParams.addAll(pcapiClient.parameterToPairs("", "phone_hardwareId", phoneHardwareId));
    pclocalVarQueryParams.addAll(pcapiClient.parameterToPairs("", "lines.id", linesId));
    pclocalVarQueryParams.addAll(pcapiClient.parameterToPairs("", "lines.name", linesName));
    pclocalVarQueryParams.addAll(pcapiClient.parameterToPairs("multi", "expand", expand));
    pclocalVarQueryParams.addAll(pcapiClient.parameterToPairs("multi", "fields", fields));

    
    
    final String[] pclocalVarAccepts = {
      "application/json"
    };
    final String pclocalVarAccept = pcapiClient.selectHeaderAccept(pclocalVarAccepts);

    final String[] pclocalVarContentTypes = {
      "application/json"
    };
    final String pclocalVarContentType = pcapiClient.selectHeaderContentType(pclocalVarContentTypes);

    String[] pclocalVarAuthNames = new String[] { "PureCloud Auth" };

    return pcapiClient.invokeAPIVerbose(pclocalVarPath, "GET", pclocalVarQueryParams, pclocalVarPostBody, pclocalVarHeaderParams, pclocalVarFormParams, pclocalVarAccept, pclocalVarContentType, pclocalVarAuthNames, new TypeReference() {});
  }
  /**
   * Get a Phone by ID
   * 
   * @param phoneId Phone ID (required)
   * @return Phone
   * @throws ApiException if fails to make API call
   */
  public Phone getProvidersEdgesPhonesPhoneId(String phoneId) throws ApiException {
    return getProvidersEdgesPhonesPhoneIdWithHttpInfo(phoneId).getResponseObject();
  }

  /**
   * Get a Phone by ID
   * 
   * @param phoneId Phone ID (required)
   * @return Phone
   * @throws ApiException if fails to make API call
   */
  public ApiResponse getProvidersEdgesPhonesPhoneIdWithHttpInfo(String phoneId) throws ApiException {
    Object pclocalVarPostBody = null;
    
    // verify the required parameter 'phoneId' is set
    if (phoneId == null) {
      throw new ApiException(400, "Missing the required parameter 'phoneId' when calling getProvidersEdgesPhonesPhoneId");
    }
    
    // create path and map variables
    String pclocalVarPath = "/api/v2/telephony/providers/edges/phones/{phoneId}".replaceAll("\\{format\\}","json")
      .replaceAll("\\{" + "phoneId" + "\\}", pcapiClient.escapeString(phoneId.toString()));

    // query params
    List pclocalVarQueryParams = new ArrayList();
    Map pclocalVarHeaderParams = new HashMap();
    Map pclocalVarFormParams = new HashMap();


    
    
    final String[] pclocalVarAccepts = {
      "application/json"
    };
    final String pclocalVarAccept = pcapiClient.selectHeaderAccept(pclocalVarAccepts);

    final String[] pclocalVarContentTypes = {
      "application/json"
    };
    final String pclocalVarContentType = pcapiClient.selectHeaderContentType(pclocalVarContentTypes);

    String[] pclocalVarAuthNames = new String[] { "PureCloud Auth" };

    return pcapiClient.invokeAPIVerbose(pclocalVarPath, "GET", pclocalVarQueryParams, pclocalVarPostBody, pclocalVarHeaderParams, pclocalVarFormParams, pclocalVarAccept, pclocalVarContentType, pclocalVarAuthNames, new TypeReference() {});
  }
  /**
   * Get a Phone instance template based on a Phone Base Settings object. This object can then be modified and saved as a new Phone instance
   * 
   * @param phoneBaseSettingsId The id of a Phone Base Settings object upon which to base this Phone (required)
   * @return Phone
   * @throws ApiException if fails to make API call
   */
  public Phone getProvidersEdgesPhonesTemplate(String phoneBaseSettingsId) throws ApiException {
    return getProvidersEdgesPhonesTemplateWithHttpInfo(phoneBaseSettingsId).getResponseObject();
  }

  /**
   * Get a Phone instance template based on a Phone Base Settings object. This object can then be modified and saved as a new Phone instance
   * 
   * @param phoneBaseSettingsId The id of a Phone Base Settings object upon which to base this Phone (required)
   * @return Phone
   * @throws ApiException if fails to make API call
   */
  public ApiResponse getProvidersEdgesPhonesTemplateWithHttpInfo(String phoneBaseSettingsId) throws ApiException {
    Object pclocalVarPostBody = null;
    
    // verify the required parameter 'phoneBaseSettingsId' is set
    if (phoneBaseSettingsId == null) {
      throw new ApiException(400, "Missing the required parameter 'phoneBaseSettingsId' when calling getProvidersEdgesPhonesTemplate");
    }
    
    // create path and map variables
    String pclocalVarPath = "/api/v2/telephony/providers/edges/phones/template".replaceAll("\\{format\\}","json");

    // query params
    List pclocalVarQueryParams = new ArrayList();
    Map pclocalVarHeaderParams = new HashMap();
    Map pclocalVarFormParams = new HashMap();

    pclocalVarQueryParams.addAll(pcapiClient.parameterToPairs("", "phoneBaseSettingsId", phoneBaseSettingsId));

    
    
    final String[] pclocalVarAccepts = {
      "application/json"
    };
    final String pclocalVarAccept = pcapiClient.selectHeaderAccept(pclocalVarAccepts);

    final String[] pclocalVarContentTypes = {
      "application/json"
    };
    final String pclocalVarContentType = pcapiClient.selectHeaderContentType(pclocalVarContentTypes);

    String[] pclocalVarAuthNames = new String[] { "PureCloud Auth" };

    return pcapiClient.invokeAPIVerbose(pclocalVarPath, "GET", pclocalVarQueryParams, pclocalVarPostBody, pclocalVarHeaderParams, pclocalVarFormParams, pclocalVarAccept, pclocalVarContentType, pclocalVarAuthNames, new TypeReference() {});
  }
  /**
   * Get the list of Sites.
   * 
   * @param pageSize Page size (optional, default to 25)
   * @param pageNumber Page number (optional, default to 1)
   * @param sortBy Sort by (optional, default to name)
   * @param sortOrder Sort order (optional, default to ASC)
   * @param name Name (optional)
   * @param locationId Location Id (optional)
   * @param managed Filter by managed (optional)
   * @return SiteEntityListing
   * @throws ApiException if fails to make API call
   */
  public SiteEntityListing getProvidersEdgesSites(Integer pageSize, Integer pageNumber, String sortBy, String sortOrder, String name, String locationId, Boolean managed) throws ApiException {
    return getProvidersEdgesSitesWithHttpInfo(pageSize, pageNumber, sortBy, sortOrder, name, locationId, managed).getResponseObject();
  }

  /**
   * Get the list of Sites.
   * 
   * @param pageSize Page size (optional, default to 25)
   * @param pageNumber Page number (optional, default to 1)
   * @param sortBy Sort by (optional, default to name)
   * @param sortOrder Sort order (optional, default to ASC)
   * @param name Name (optional)
   * @param locationId Location Id (optional)
   * @param managed Filter by managed (optional)
   * @return SiteEntityListing
   * @throws ApiException if fails to make API call
   */
  public ApiResponse getProvidersEdgesSitesWithHttpInfo(Integer pageSize, Integer pageNumber, String sortBy, String sortOrder, String name, String locationId, Boolean managed) throws ApiException {
    Object pclocalVarPostBody = null;
    
    // create path and map variables
    String pclocalVarPath = "/api/v2/telephony/providers/edges/sites".replaceAll("\\{format\\}","json");

    // query params
    List pclocalVarQueryParams = new ArrayList();
    Map pclocalVarHeaderParams = new HashMap();
    Map pclocalVarFormParams = new HashMap();

    pclocalVarQueryParams.addAll(pcapiClient.parameterToPairs("", "pageSize", pageSize));
    pclocalVarQueryParams.addAll(pcapiClient.parameterToPairs("", "pageNumber", pageNumber));
    pclocalVarQueryParams.addAll(pcapiClient.parameterToPairs("", "sortBy", sortBy));
    pclocalVarQueryParams.addAll(pcapiClient.parameterToPairs("", "sortOrder", sortOrder));
    pclocalVarQueryParams.addAll(pcapiClient.parameterToPairs("", "name", name));
    pclocalVarQueryParams.addAll(pcapiClient.parameterToPairs("", "location.id", locationId));
    pclocalVarQueryParams.addAll(pcapiClient.parameterToPairs("", "managed", managed));

    
    
    final String[] pclocalVarAccepts = {
      "application/json"
    };
    final String pclocalVarAccept = pcapiClient.selectHeaderAccept(pclocalVarAccepts);

    final String[] pclocalVarContentTypes = {
      "application/json"
    };
    final String pclocalVarContentType = pcapiClient.selectHeaderContentType(pclocalVarContentTypes);

    String[] pclocalVarAuthNames = new String[] { "PureCloud Auth" };

    return pcapiClient.invokeAPIVerbose(pclocalVarPath, "GET", pclocalVarQueryParams, pclocalVarPostBody, pclocalVarHeaderParams, pclocalVarFormParams, pclocalVarAccept, pclocalVarContentType, pclocalVarAuthNames, new TypeReference() {});
  }
  /**
   * Get a Site by ID.
   * 
   * @param siteId Site ID (required)
   * @return Site
   * @throws ApiException if fails to make API call
   */
  public Site getProvidersEdgesSitesSiteId(String siteId) throws ApiException {
    return getProvidersEdgesSitesSiteIdWithHttpInfo(siteId).getResponseObject();
  }

  /**
   * Get a Site by ID.
   * 
   * @param siteId Site ID (required)
   * @return Site
   * @throws ApiException if fails to make API call
   */
  public ApiResponse getProvidersEdgesSitesSiteIdWithHttpInfo(String siteId) throws ApiException {
    Object pclocalVarPostBody = null;
    
    // verify the required parameter 'siteId' is set
    if (siteId == null) {
      throw new ApiException(400, "Missing the required parameter 'siteId' when calling getProvidersEdgesSitesSiteId");
    }
    
    // create path and map variables
    String pclocalVarPath = "/api/v2/telephony/providers/edges/sites/{siteId}".replaceAll("\\{format\\}","json")
      .replaceAll("\\{" + "siteId" + "\\}", pcapiClient.escapeString(siteId.toString()));

    // query params
    List pclocalVarQueryParams = new ArrayList();
    Map pclocalVarHeaderParams = new HashMap();
    Map pclocalVarFormParams = new HashMap();


    
    
    final String[] pclocalVarAccepts = {
      "application/json"
    };
    final String pclocalVarAccept = pcapiClient.selectHeaderAccept(pclocalVarAccepts);

    final String[] pclocalVarContentTypes = {
      "application/json"
    };
    final String pclocalVarContentType = pcapiClient.selectHeaderContentType(pclocalVarContentTypes);

    String[] pclocalVarAuthNames = new String[] { "PureCloud Auth" };

    return pcapiClient.invokeAPIVerbose(pclocalVarPath, "GET", pclocalVarQueryParams, pclocalVarPostBody, pclocalVarHeaderParams, pclocalVarFormParams, pclocalVarAccept, pclocalVarContentType, pclocalVarAuthNames, new TypeReference() {});
  }
  /**
   * Get the list of Number Plans for this Site.
   * 
   * @param siteId Site ID (required)
   * @return List
   * @throws ApiException if fails to make API call
   */
  public List getProvidersEdgesSitesSiteIdNumberplans(String siteId) throws ApiException {
    return getProvidersEdgesSitesSiteIdNumberplansWithHttpInfo(siteId).getResponseObject();
  }

  /**
   * Get the list of Number Plans for this Site.
   * 
   * @param siteId Site ID (required)
   * @return List
   * @throws ApiException if fails to make API call
   */
  public ApiResponse> getProvidersEdgesSitesSiteIdNumberplansWithHttpInfo(String siteId) throws ApiException {
    Object pclocalVarPostBody = null;
    
    // verify the required parameter 'siteId' is set
    if (siteId == null) {
      throw new ApiException(400, "Missing the required parameter 'siteId' when calling getProvidersEdgesSitesSiteIdNumberplans");
    }
    
    // create path and map variables
    String pclocalVarPath = "/api/v2/telephony/providers/edges/sites/{siteId}/numberplans".replaceAll("\\{format\\}","json")
      .replaceAll("\\{" + "siteId" + "\\}", pcapiClient.escapeString(siteId.toString()));

    // query params
    List pclocalVarQueryParams = new ArrayList();
    Map pclocalVarHeaderParams = new HashMap();
    Map pclocalVarFormParams = new HashMap();


    
    
    final String[] pclocalVarAccepts = {
      "application/json"
    };
    final String pclocalVarAccept = pcapiClient.selectHeaderAccept(pclocalVarAccepts);

    final String[] pclocalVarContentTypes = {
      "application/json"
    };
    final String pclocalVarContentType = pcapiClient.selectHeaderContentType(pclocalVarContentTypes);

    String[] pclocalVarAuthNames = new String[] { "PureCloud Auth" };

    return pcapiClient.invokeAPIVerbose(pclocalVarPath, "GET", pclocalVarQueryParams, pclocalVarPostBody, pclocalVarHeaderParams, pclocalVarFormParams, pclocalVarAccept, pclocalVarContentType, pclocalVarAuthNames, new TypeReference>() {});
  }
  /**
   * Get a list of Classifications for this Site
   * 
   * @param siteId Site ID (required)
   * @param classification Classification (optional)
   * @return List
   * @throws ApiException if fails to make API call
   */
  public List getProvidersEdgesSitesSiteIdNumberplansClassifications(String siteId, String classification) throws ApiException {
    return getProvidersEdgesSitesSiteIdNumberplansClassificationsWithHttpInfo(siteId, classification).getResponseObject();
  }

  /**
   * Get a list of Classifications for this Site
   * 
   * @param siteId Site ID (required)
   * @param classification Classification (optional)
   * @return List
   * @throws ApiException if fails to make API call
   */
  public ApiResponse> getProvidersEdgesSitesSiteIdNumberplansClassificationsWithHttpInfo(String siteId, String classification) throws ApiException {
    Object pclocalVarPostBody = null;
    
    // verify the required parameter 'siteId' is set
    if (siteId == null) {
      throw new ApiException(400, "Missing the required parameter 'siteId' when calling getProvidersEdgesSitesSiteIdNumberplansClassifications");
    }
    
    // create path and map variables
    String pclocalVarPath = "/api/v2/telephony/providers/edges/sites/{siteId}/numberplans/classifications".replaceAll("\\{format\\}","json")
      .replaceAll("\\{" + "siteId" + "\\}", pcapiClient.escapeString(siteId.toString()));

    // query params
    List pclocalVarQueryParams = new ArrayList();
    Map pclocalVarHeaderParams = new HashMap();
    Map pclocalVarFormParams = new HashMap();

    pclocalVarQueryParams.addAll(pcapiClient.parameterToPairs("", "classification", classification));

    
    
    final String[] pclocalVarAccepts = {
      "application/json"
    };
    final String pclocalVarAccept = pcapiClient.selectHeaderAccept(pclocalVarAccepts);

    final String[] pclocalVarContentTypes = {
      "application/json"
    };
    final String pclocalVarContentType = pcapiClient.selectHeaderContentType(pclocalVarContentTypes);

    String[] pclocalVarAuthNames = new String[] { "PureCloud Auth" };

    return pcapiClient.invokeAPIVerbose(pclocalVarPath, "GET", pclocalVarQueryParams, pclocalVarPostBody, pclocalVarHeaderParams, pclocalVarFormParams, pclocalVarAccept, pclocalVarContentType, pclocalVarAuthNames, new TypeReference>() {});
  }
  /**
   * Get a Number Plan by ID.
   * 
   * @param siteId Site ID (required)
   * @param numberPlanId Number Plan ID (required)
   * @return NumberPlan
   * @throws ApiException if fails to make API call
   */
  public NumberPlan getProvidersEdgesSitesSiteIdNumberplansNumberplanId(String siteId, String numberPlanId) throws ApiException {
    return getProvidersEdgesSitesSiteIdNumberplansNumberplanIdWithHttpInfo(siteId, numberPlanId).getResponseObject();
  }

  /**
   * Get a Number Plan by ID.
   * 
   * @param siteId Site ID (required)
   * @param numberPlanId Number Plan ID (required)
   * @return NumberPlan
   * @throws ApiException if fails to make API call
   */
  public ApiResponse getProvidersEdgesSitesSiteIdNumberplansNumberplanIdWithHttpInfo(String siteId, String numberPlanId) throws ApiException {
    Object pclocalVarPostBody = null;
    
    // verify the required parameter 'siteId' is set
    if (siteId == null) {
      throw new ApiException(400, "Missing the required parameter 'siteId' when calling getProvidersEdgesSitesSiteIdNumberplansNumberplanId");
    }
    
    // verify the required parameter 'numberPlanId' is set
    if (numberPlanId == null) {
      throw new ApiException(400, "Missing the required parameter 'numberPlanId' when calling getProvidersEdgesSitesSiteIdNumberplansNumberplanId");
    }
    
    // create path and map variables
    String pclocalVarPath = "/api/v2/telephony/providers/edges/sites/{siteId}/numberplans/{numberPlanId}".replaceAll("\\{format\\}","json")
      .replaceAll("\\{" + "siteId" + "\\}", pcapiClient.escapeString(siteId.toString()))
      .replaceAll("\\{" + "numberPlanId" + "\\}", pcapiClient.escapeString(numberPlanId.toString()));

    // query params
    List pclocalVarQueryParams = new ArrayList();
    Map pclocalVarHeaderParams = new HashMap();
    Map pclocalVarFormParams = new HashMap();


    
    
    final String[] pclocalVarAccepts = {
      "application/json"
    };
    final String pclocalVarAccept = pcapiClient.selectHeaderAccept(pclocalVarAccepts);

    final String[] pclocalVarContentTypes = {
      "application/json"
    };
    final String pclocalVarContentType = pcapiClient.selectHeaderContentType(pclocalVarContentTypes);

    String[] pclocalVarAuthNames = new String[] { "PureCloud Auth" };

    return pcapiClient.invokeAPIVerbose(pclocalVarPath, "GET", pclocalVarQueryParams, pclocalVarPostBody, pclocalVarHeaderParams, pclocalVarFormParams, pclocalVarAccept, pclocalVarContentType, pclocalVarAuthNames, new TypeReference() {});
  }
  /**
   * Get outbound routes
   * 
   * @param siteId Site ID (required)
   * @param pageSize Page size (optional, default to 25)
   * @param pageNumber Page number (optional, default to 1)
   * @param name Name (optional)
   * @param sortBy Sort by (optional, default to name)
   * @return OutboundRouteBaseEntityListing
   * @throws ApiException if fails to make API call
   */
  public OutboundRouteBaseEntityListing getProvidersEdgesSitesSiteIdOutboundroutes(String siteId, Integer pageSize, Integer pageNumber, String name, String sortBy) throws ApiException {
    return getProvidersEdgesSitesSiteIdOutboundroutesWithHttpInfo(siteId, pageSize, pageNumber, name, sortBy).getResponseObject();
  }

  /**
   * Get outbound routes
   * 
   * @param siteId Site ID (required)
   * @param pageSize Page size (optional, default to 25)
   * @param pageNumber Page number (optional, default to 1)
   * @param name Name (optional)
   * @param sortBy Sort by (optional, default to name)
   * @return OutboundRouteBaseEntityListing
   * @throws ApiException if fails to make API call
   */
  public ApiResponse getProvidersEdgesSitesSiteIdOutboundroutesWithHttpInfo(String siteId, Integer pageSize, Integer pageNumber, String name, String sortBy) throws ApiException {
    Object pclocalVarPostBody = null;
    
    // verify the required parameter 'siteId' is set
    if (siteId == null) {
      throw new ApiException(400, "Missing the required parameter 'siteId' when calling getProvidersEdgesSitesSiteIdOutboundroutes");
    }
    
    // create path and map variables
    String pclocalVarPath = "/api/v2/telephony/providers/edges/sites/{siteId}/outboundroutes".replaceAll("\\{format\\}","json")
      .replaceAll("\\{" + "siteId" + "\\}", pcapiClient.escapeString(siteId.toString()));

    // query params
    List pclocalVarQueryParams = new ArrayList();
    Map pclocalVarHeaderParams = new HashMap();
    Map pclocalVarFormParams = new HashMap();

    pclocalVarQueryParams.addAll(pcapiClient.parameterToPairs("", "pageSize", pageSize));
    pclocalVarQueryParams.addAll(pcapiClient.parameterToPairs("", "pageNumber", pageNumber));
    pclocalVarQueryParams.addAll(pcapiClient.parameterToPairs("", "name", name));
    pclocalVarQueryParams.addAll(pcapiClient.parameterToPairs("", "sortBy", sortBy));

    
    
    final String[] pclocalVarAccepts = {
      "application/json"
    };
    final String pclocalVarAccept = pcapiClient.selectHeaderAccept(pclocalVarAccepts);

    final String[] pclocalVarContentTypes = {
      "application/json"
    };
    final String pclocalVarContentType = pcapiClient.selectHeaderContentType(pclocalVarContentTypes);

    String[] pclocalVarAuthNames = new String[] { "PureCloud Auth" };

    return pcapiClient.invokeAPIVerbose(pclocalVarPath, "GET", pclocalVarQueryParams, pclocalVarPostBody, pclocalVarHeaderParams, pclocalVarFormParams, pclocalVarAccept, pclocalVarContentType, pclocalVarAuthNames, new TypeReference() {});
  }
  /**
   * Get an outbound route
   * 
   * @param siteId Site ID (required)
   * @param outboundRouteId Outbound route ID (required)
   * @return OutboundRouteBase
   * @throws ApiException if fails to make API call
   */
  public OutboundRouteBase getProvidersEdgesSitesSiteIdOutboundroutesOutboundrouteId(String siteId, String outboundRouteId) throws ApiException {
    return getProvidersEdgesSitesSiteIdOutboundroutesOutboundrouteIdWithHttpInfo(siteId, outboundRouteId).getResponseObject();
  }

  /**
   * Get an outbound route
   * 
   * @param siteId Site ID (required)
   * @param outboundRouteId Outbound route ID (required)
   * @return OutboundRouteBase
   * @throws ApiException if fails to make API call
   */
  public ApiResponse getProvidersEdgesSitesSiteIdOutboundroutesOutboundrouteIdWithHttpInfo(String siteId, String outboundRouteId) throws ApiException {
    Object pclocalVarPostBody = null;
    
    // verify the required parameter 'siteId' is set
    if (siteId == null) {
      throw new ApiException(400, "Missing the required parameter 'siteId' when calling getProvidersEdgesSitesSiteIdOutboundroutesOutboundrouteId");
    }
    
    // verify the required parameter 'outboundRouteId' is set
    if (outboundRouteId == null) {
      throw new ApiException(400, "Missing the required parameter 'outboundRouteId' when calling getProvidersEdgesSitesSiteIdOutboundroutesOutboundrouteId");
    }
    
    // create path and map variables
    String pclocalVarPath = "/api/v2/telephony/providers/edges/sites/{siteId}/outboundroutes/{outboundRouteId}".replaceAll("\\{format\\}","json")
      .replaceAll("\\{" + "siteId" + "\\}", pcapiClient.escapeString(siteId.toString()))
      .replaceAll("\\{" + "outboundRouteId" + "\\}", pcapiClient.escapeString(outboundRouteId.toString()));

    // query params
    List pclocalVarQueryParams = new ArrayList();
    Map pclocalVarHeaderParams = new HashMap();
    Map pclocalVarFormParams = new HashMap();


    
    
    final String[] pclocalVarAccepts = {
      "application/json"
    };
    final String pclocalVarAccept = pcapiClient.selectHeaderAccept(pclocalVarAccepts);

    final String[] pclocalVarContentTypes = {
      "application/json"
    };
    final String pclocalVarContentType = pcapiClient.selectHeaderContentType(pclocalVarContentTypes);

    String[] pclocalVarAuthNames = new String[] { "PureCloud Auth" };

    return pcapiClient.invokeAPIVerbose(pclocalVarPath, "GET", pclocalVarQueryParams, pclocalVarPostBody, pclocalVarHeaderParams, pclocalVarFormParams, pclocalVarAccept, pclocalVarContentType, pclocalVarAuthNames, new TypeReference() {});
  }
  /**
   * Get a list of Edge-compatible time zones
   * 
   * @param pageSize Page size (optional, default to 1000)
   * @param pageNumber Page number (optional, default to 1)
   * @return TimeZoneEntityListing
   * @throws ApiException if fails to make API call
   */
  public TimeZoneEntityListing getProvidersEdgesTimezones(Integer pageSize, Integer pageNumber) throws ApiException {
    return getProvidersEdgesTimezonesWithHttpInfo(pageSize, pageNumber).getResponseObject();
  }

  /**
   * Get a list of Edge-compatible time zones
   * 
   * @param pageSize Page size (optional, default to 1000)
   * @param pageNumber Page number (optional, default to 1)
   * @return TimeZoneEntityListing
   * @throws ApiException if fails to make API call
   */
  public ApiResponse getProvidersEdgesTimezonesWithHttpInfo(Integer pageSize, Integer pageNumber) throws ApiException {
    Object pclocalVarPostBody = null;
    
    // create path and map variables
    String pclocalVarPath = "/api/v2/telephony/providers/edges/timezones".replaceAll("\\{format\\}","json");

    // query params
    List pclocalVarQueryParams = new ArrayList();
    Map pclocalVarHeaderParams = new HashMap();
    Map pclocalVarFormParams = new HashMap();

    pclocalVarQueryParams.addAll(pcapiClient.parameterToPairs("", "pageSize", pageSize));
    pclocalVarQueryParams.addAll(pcapiClient.parameterToPairs("", "pageNumber", pageNumber));

    
    
    final String[] pclocalVarAccepts = {
      "application/json"
    };
    final String pclocalVarAccept = pcapiClient.selectHeaderAccept(pclocalVarAccepts);

    final String[] pclocalVarContentTypes = {
      "application/json"
    };
    final String pclocalVarContentType = pcapiClient.selectHeaderContentType(pclocalVarContentTypes);

    String[] pclocalVarAuthNames = new String[] { "PureCloud Auth" };

    return pcapiClient.invokeAPIVerbose(pclocalVarPath, "GET", pclocalVarQueryParams, pclocalVarPostBody, pclocalVarHeaderParams, pclocalVarFormParams, pclocalVarAccept, pclocalVarContentType, pclocalVarAuthNames, new TypeReference() {});
  }
  /**
   * Get Trunk Base Settings listing
   * Managed properties will not be returned unless the user is assigned the managed:all:all permission.
   * @param pageNumber Page number (optional, default to 1)
   * @param pageSize Page size (optional, default to 25)
   * @param sortBy Value by which to sort (optional, default to name)
   * @param sortOrder Sort order (optional, default to ASC)
   * @param recordingEnabled Filter trunks by recording enabled (optional)
   * @param ignoreHidden Set this to true to not receive trunk properties that are meant to be hidden or for internal system usage only. (optional)
   * @param managed Filter by managed (optional)
   * @param expand Fields to expand in the response, comma-separated (optional)
   * @param name Name of the TrunkBase to filter by (optional)
   * @return TrunkBaseEntityListing
   * @throws ApiException if fails to make API call
   */
  public TrunkBaseEntityListing getProvidersEdgesTrunkbasesettings(Integer pageNumber, Integer pageSize, String sortBy, String sortOrder, Boolean recordingEnabled, Boolean ignoreHidden, Boolean managed, List expand, String name) throws ApiException {
    return getProvidersEdgesTrunkbasesettingsWithHttpInfo(pageNumber, pageSize, sortBy, sortOrder, recordingEnabled, ignoreHidden, managed, expand, name).getResponseObject();
  }

  /**
   * Get Trunk Base Settings listing
   * Managed properties will not be returned unless the user is assigned the managed:all:all permission.
   * @param pageNumber Page number (optional, default to 1)
   * @param pageSize Page size (optional, default to 25)
   * @param sortBy Value by which to sort (optional, default to name)
   * @param sortOrder Sort order (optional, default to ASC)
   * @param recordingEnabled Filter trunks by recording enabled (optional)
   * @param ignoreHidden Set this to true to not receive trunk properties that are meant to be hidden or for internal system usage only. (optional)
   * @param managed Filter by managed (optional)
   * @param expand Fields to expand in the response, comma-separated (optional)
   * @param name Name of the TrunkBase to filter by (optional)
   * @return TrunkBaseEntityListing
   * @throws ApiException if fails to make API call
   */
  public ApiResponse getProvidersEdgesTrunkbasesettingsWithHttpInfo(Integer pageNumber, Integer pageSize, String sortBy, String sortOrder, Boolean recordingEnabled, Boolean ignoreHidden, Boolean managed, List expand, String name) throws ApiException {
    Object pclocalVarPostBody = null;
    
    // create path and map variables
    String pclocalVarPath = "/api/v2/telephony/providers/edges/trunkbasesettings".replaceAll("\\{format\\}","json");

    // query params
    List pclocalVarQueryParams = new ArrayList();
    Map pclocalVarHeaderParams = new HashMap();
    Map pclocalVarFormParams = new HashMap();

    pclocalVarQueryParams.addAll(pcapiClient.parameterToPairs("", "pageNumber", pageNumber));
    pclocalVarQueryParams.addAll(pcapiClient.parameterToPairs("", "pageSize", pageSize));
    pclocalVarQueryParams.addAll(pcapiClient.parameterToPairs("", "sortBy", sortBy));
    pclocalVarQueryParams.addAll(pcapiClient.parameterToPairs("", "sortOrder", sortOrder));
    pclocalVarQueryParams.addAll(pcapiClient.parameterToPairs("", "recordingEnabled", recordingEnabled));
    pclocalVarQueryParams.addAll(pcapiClient.parameterToPairs("", "ignoreHidden", ignoreHidden));
    pclocalVarQueryParams.addAll(pcapiClient.parameterToPairs("", "managed", managed));
    pclocalVarQueryParams.addAll(pcapiClient.parameterToPairs("multi", "expand", expand));
    pclocalVarQueryParams.addAll(pcapiClient.parameterToPairs("", "name", name));

    
    
    final String[] pclocalVarAccepts = {
      "application/json"
    };
    final String pclocalVarAccept = pcapiClient.selectHeaderAccept(pclocalVarAccepts);

    final String[] pclocalVarContentTypes = {
      "application/json"
    };
    final String pclocalVarContentType = pcapiClient.selectHeaderContentType(pclocalVarContentTypes);

    String[] pclocalVarAuthNames = new String[] { "PureCloud Auth" };

    return pcapiClient.invokeAPIVerbose(pclocalVarPath, "GET", pclocalVarQueryParams, pclocalVarPostBody, pclocalVarHeaderParams, pclocalVarFormParams, pclocalVarAccept, pclocalVarContentType, pclocalVarAuthNames, new TypeReference() {});
  }
  /**
   * Get a list of available makes and models to create a new Trunk Base Settings
   * 
   * @param type  (optional)
   * @param pageSize  (optional, default to 25)
   * @param pageNumber  (optional, default to 1)
   * @return TrunkMetabaseEntityListing
   * @throws ApiException if fails to make API call
   */
  public TrunkMetabaseEntityListing getProvidersEdgesTrunkbasesettingsAvailablemetabases(String type, Integer pageSize, Integer pageNumber) throws ApiException {
    return getProvidersEdgesTrunkbasesettingsAvailablemetabasesWithHttpInfo(type, pageSize, pageNumber).getResponseObject();
  }

  /**
   * Get a list of available makes and models to create a new Trunk Base Settings
   * 
   * @param type  (optional)
   * @param pageSize  (optional, default to 25)
   * @param pageNumber  (optional, default to 1)
   * @return TrunkMetabaseEntityListing
   * @throws ApiException if fails to make API call
   */
  public ApiResponse getProvidersEdgesTrunkbasesettingsAvailablemetabasesWithHttpInfo(String type, Integer pageSize, Integer pageNumber) throws ApiException {
    Object pclocalVarPostBody = null;
    
    // create path and map variables
    String pclocalVarPath = "/api/v2/telephony/providers/edges/trunkbasesettings/availablemetabases".replaceAll("\\{format\\}","json");

    // query params
    List pclocalVarQueryParams = new ArrayList();
    Map pclocalVarHeaderParams = new HashMap();
    Map pclocalVarFormParams = new HashMap();

    pclocalVarQueryParams.addAll(pcapiClient.parameterToPairs("", "type", type));
    pclocalVarQueryParams.addAll(pcapiClient.parameterToPairs("", "pageSize", pageSize));
    pclocalVarQueryParams.addAll(pcapiClient.parameterToPairs("", "pageNumber", pageNumber));

    
    
    final String[] pclocalVarAccepts = {
      "application/json"
    };
    final String pclocalVarAccept = pcapiClient.selectHeaderAccept(pclocalVarAccepts);

    final String[] pclocalVarContentTypes = {
      "application/json"
    };
    final String pclocalVarContentType = pcapiClient.selectHeaderContentType(pclocalVarContentTypes);

    String[] pclocalVarAuthNames = new String[] { "PureCloud Auth" };

    return pcapiClient.invokeAPIVerbose(pclocalVarPath, "GET", pclocalVarQueryParams, pclocalVarPostBody, pclocalVarHeaderParams, pclocalVarFormParams, pclocalVarAccept, pclocalVarContentType, pclocalVarAuthNames, new TypeReference() {});
  }
  /**
   * Get a Trunk Base Settings instance template from a given make and model. This object can then be modified and saved as a new Trunk Base Settings instance
   * 
   * @param trunkMetabaseId The id of a metabase object upon which to base this Trunk Base Settings (required)
   * @return TrunkBase
   * @throws ApiException if fails to make API call
   */
  public TrunkBase getProvidersEdgesTrunkbasesettingsTemplate(String trunkMetabaseId) throws ApiException {
    return getProvidersEdgesTrunkbasesettingsTemplateWithHttpInfo(trunkMetabaseId).getResponseObject();
  }

  /**
   * Get a Trunk Base Settings instance template from a given make and model. This object can then be modified and saved as a new Trunk Base Settings instance
   * 
   * @param trunkMetabaseId The id of a metabase object upon which to base this Trunk Base Settings (required)
   * @return TrunkBase
   * @throws ApiException if fails to make API call
   */
  public ApiResponse getProvidersEdgesTrunkbasesettingsTemplateWithHttpInfo(String trunkMetabaseId) throws ApiException {
    Object pclocalVarPostBody = null;
    
    // verify the required parameter 'trunkMetabaseId' is set
    if (trunkMetabaseId == null) {
      throw new ApiException(400, "Missing the required parameter 'trunkMetabaseId' when calling getProvidersEdgesTrunkbasesettingsTemplate");
    }
    
    // create path and map variables
    String pclocalVarPath = "/api/v2/telephony/providers/edges/trunkbasesettings/template".replaceAll("\\{format\\}","json");

    // query params
    List pclocalVarQueryParams = new ArrayList();
    Map pclocalVarHeaderParams = new HashMap();
    Map pclocalVarFormParams = new HashMap();

    pclocalVarQueryParams.addAll(pcapiClient.parameterToPairs("", "trunkMetabaseId", trunkMetabaseId));

    
    
    final String[] pclocalVarAccepts = {
      "application/json"
    };
    final String pclocalVarAccept = pcapiClient.selectHeaderAccept(pclocalVarAccepts);

    final String[] pclocalVarContentTypes = {
      "application/json"
    };
    final String pclocalVarContentType = pcapiClient.selectHeaderContentType(pclocalVarContentTypes);

    String[] pclocalVarAuthNames = new String[] { "PureCloud Auth" };

    return pcapiClient.invokeAPIVerbose(pclocalVarPath, "GET", pclocalVarQueryParams, pclocalVarPostBody, pclocalVarHeaderParams, pclocalVarFormParams, pclocalVarAccept, pclocalVarContentType, pclocalVarAuthNames, new TypeReference() {});
  }
  /**
   * Get a Trunk Base Settings object by ID
   * Managed properties will not be returned unless the user is assigned the managed:all:all permission.
   * @param trunkBaseSettingsId Trunk Base ID (required)
   * @param ignoreHidden Set this to true to not receive trunk properties that are meant to be hidden or for internal system usage only. (optional)
   * @return TrunkBase
   * @throws ApiException if fails to make API call
   */
  public TrunkBase getProvidersEdgesTrunkbasesettingsTrunkbasesettingsId(String trunkBaseSettingsId, Boolean ignoreHidden) throws ApiException {
    return getProvidersEdgesTrunkbasesettingsTrunkbasesettingsIdWithHttpInfo(trunkBaseSettingsId, ignoreHidden).getResponseObject();
  }

  /**
   * Get a Trunk Base Settings object by ID
   * Managed properties will not be returned unless the user is assigned the managed:all:all permission.
   * @param trunkBaseSettingsId Trunk Base ID (required)
   * @param ignoreHidden Set this to true to not receive trunk properties that are meant to be hidden or for internal system usage only. (optional)
   * @return TrunkBase
   * @throws ApiException if fails to make API call
   */
  public ApiResponse getProvidersEdgesTrunkbasesettingsTrunkbasesettingsIdWithHttpInfo(String trunkBaseSettingsId, Boolean ignoreHidden) throws ApiException {
    Object pclocalVarPostBody = null;
    
    // verify the required parameter 'trunkBaseSettingsId' is set
    if (trunkBaseSettingsId == null) {
      throw new ApiException(400, "Missing the required parameter 'trunkBaseSettingsId' when calling getProvidersEdgesTrunkbasesettingsTrunkbasesettingsId");
    }
    
    // create path and map variables
    String pclocalVarPath = "/api/v2/telephony/providers/edges/trunkbasesettings/{trunkBaseSettingsId}".replaceAll("\\{format\\}","json")
      .replaceAll("\\{" + "trunkBaseSettingsId" + "\\}", pcapiClient.escapeString(trunkBaseSettingsId.toString()));

    // query params
    List pclocalVarQueryParams = new ArrayList();
    Map pclocalVarHeaderParams = new HashMap();
    Map pclocalVarFormParams = new HashMap();

    pclocalVarQueryParams.addAll(pcapiClient.parameterToPairs("", "ignoreHidden", ignoreHidden));

    
    
    final String[] pclocalVarAccepts = {
      "application/json"
    };
    final String pclocalVarAccept = pcapiClient.selectHeaderAccept(pclocalVarAccepts);

    final String[] pclocalVarContentTypes = {
      "application/json"
    };
    final String pclocalVarContentType = pcapiClient.selectHeaderContentType(pclocalVarContentTypes);

    String[] pclocalVarAuthNames = new String[] { "PureCloud Auth" };

    return pcapiClient.invokeAPIVerbose(pclocalVarPath, "GET", pclocalVarQueryParams, pclocalVarPostBody, pclocalVarHeaderParams, pclocalVarFormParams, pclocalVarAccept, pclocalVarContentType, pclocalVarAuthNames, new TypeReference() {});
  }
  /**
   * Get the list of available trunks.
   * Trunks are created by assigning trunk base settings to an Edge or Edge Group.
   * @param pageNumber Page number (optional, default to 1)
   * @param pageSize Page size (optional, default to 25)
   * @param sortBy Value by which to sort (optional, default to name)
   * @param sortOrder Sort order (optional, default to ASC)
   * @param edgeId Filter by Edge Ids (optional)
   * @param trunkBaseId Filter by Trunk Base Ids (optional)
   * @param trunkType Filter by a Trunk type (optional)
   * @return TrunkEntityListing
   * @throws ApiException if fails to make API call
   */
  public TrunkEntityListing getProvidersEdgesTrunks(Integer pageNumber, Integer pageSize, String sortBy, String sortOrder, String edgeId, String trunkBaseId, String trunkType) throws ApiException {
    return getProvidersEdgesTrunksWithHttpInfo(pageNumber, pageSize, sortBy, sortOrder, edgeId, trunkBaseId, trunkType).getResponseObject();
  }

  /**
   * Get the list of available trunks.
   * Trunks are created by assigning trunk base settings to an Edge or Edge Group.
   * @param pageNumber Page number (optional, default to 1)
   * @param pageSize Page size (optional, default to 25)
   * @param sortBy Value by which to sort (optional, default to name)
   * @param sortOrder Sort order (optional, default to ASC)
   * @param edgeId Filter by Edge Ids (optional)
   * @param trunkBaseId Filter by Trunk Base Ids (optional)
   * @param trunkType Filter by a Trunk type (optional)
   * @return TrunkEntityListing
   * @throws ApiException if fails to make API call
   */
  public ApiResponse getProvidersEdgesTrunksWithHttpInfo(Integer pageNumber, Integer pageSize, String sortBy, String sortOrder, String edgeId, String trunkBaseId, String trunkType) throws ApiException {
    Object pclocalVarPostBody = null;
    
    // create path and map variables
    String pclocalVarPath = "/api/v2/telephony/providers/edges/trunks".replaceAll("\\{format\\}","json");

    // query params
    List pclocalVarQueryParams = new ArrayList();
    Map pclocalVarHeaderParams = new HashMap();
    Map pclocalVarFormParams = new HashMap();

    pclocalVarQueryParams.addAll(pcapiClient.parameterToPairs("", "pageNumber", pageNumber));
    pclocalVarQueryParams.addAll(pcapiClient.parameterToPairs("", "pageSize", pageSize));
    pclocalVarQueryParams.addAll(pcapiClient.parameterToPairs("", "sortBy", sortBy));
    pclocalVarQueryParams.addAll(pcapiClient.parameterToPairs("", "sortOrder", sortOrder));
    pclocalVarQueryParams.addAll(pcapiClient.parameterToPairs("", "edge.id", edgeId));
    pclocalVarQueryParams.addAll(pcapiClient.parameterToPairs("", "trunkBase.id", trunkBaseId));
    pclocalVarQueryParams.addAll(pcapiClient.parameterToPairs("", "trunkType", trunkType));

    
    
    final String[] pclocalVarAccepts = {
      "application/json"
    };
    final String pclocalVarAccept = pcapiClient.selectHeaderAccept(pclocalVarAccepts);

    final String[] pclocalVarContentTypes = {
      "application/json"
    };
    final String pclocalVarContentType = pcapiClient.selectHeaderContentType(pclocalVarContentTypes);

    String[] pclocalVarAuthNames = new String[] { "PureCloud Auth" };

    return pcapiClient.invokeAPIVerbose(pclocalVarPath, "GET", pclocalVarQueryParams, pclocalVarPostBody, pclocalVarHeaderParams, pclocalVarFormParams, pclocalVarAccept, pclocalVarContentType, pclocalVarAuthNames, new TypeReference() {});
  }
  /**
   * Get a Trunk by ID
   * 
   * @param trunkId Trunk ID (required)
   * @return Trunk
   * @throws ApiException if fails to make API call
   */
  public Trunk getProvidersEdgesTrunksTrunkId(String trunkId) throws ApiException {
    return getProvidersEdgesTrunksTrunkIdWithHttpInfo(trunkId).getResponseObject();
  }

  /**
   * Get a Trunk by ID
   * 
   * @param trunkId Trunk ID (required)
   * @return Trunk
   * @throws ApiException if fails to make API call
   */
  public ApiResponse getProvidersEdgesTrunksTrunkIdWithHttpInfo(String trunkId) throws ApiException {
    Object pclocalVarPostBody = null;
    
    // verify the required parameter 'trunkId' is set
    if (trunkId == null) {
      throw new ApiException(400, "Missing the required parameter 'trunkId' when calling getProvidersEdgesTrunksTrunkId");
    }
    
    // create path and map variables
    String pclocalVarPath = "/api/v2/telephony/providers/edges/trunks/{trunkId}".replaceAll("\\{format\\}","json")
      .replaceAll("\\{" + "trunkId" + "\\}", pcapiClient.escapeString(trunkId.toString()));

    // query params
    List pclocalVarQueryParams = new ArrayList();
    Map pclocalVarHeaderParams = new HashMap();
    Map pclocalVarFormParams = new HashMap();


    
    
    final String[] pclocalVarAccepts = {
      "application/json"
    };
    final String pclocalVarAccept = pcapiClient.selectHeaderAccept(pclocalVarAccepts);

    final String[] pclocalVarContentTypes = {
      "application/json"
    };
    final String pclocalVarContentType = pcapiClient.selectHeaderContentType(pclocalVarContentTypes);

    String[] pclocalVarAuthNames = new String[] { "PureCloud Auth" };

    return pcapiClient.invokeAPIVerbose(pclocalVarPath, "GET", pclocalVarQueryParams, pclocalVarPostBody, pclocalVarHeaderParams, pclocalVarFormParams, pclocalVarAccept, pclocalVarContentType, pclocalVarAuthNames, new TypeReference() {});
  }
  /**
   * Get Counts of trunks that have recording disabled or enabled
   * 
   * @param trunkType The type of this trunk base. (optional)
   * @return TrunkRecordingEnabledCount
   * @throws ApiException if fails to make API call
   */
  public TrunkRecordingEnabledCount getProvidersEdgesTrunkswithrecording(String trunkType) throws ApiException {
    return getProvidersEdgesTrunkswithrecordingWithHttpInfo(trunkType).getResponseObject();
  }

  /**
   * Get Counts of trunks that have recording disabled or enabled
   * 
   * @param trunkType The type of this trunk base. (optional)
   * @return TrunkRecordingEnabledCount
   * @throws ApiException if fails to make API call
   */
  public ApiResponse getProvidersEdgesTrunkswithrecordingWithHttpInfo(String trunkType) throws ApiException {
    Object pclocalVarPostBody = null;
    
    // create path and map variables
    String pclocalVarPath = "/api/v2/telephony/providers/edges/trunkswithrecording".replaceAll("\\{format\\}","json");

    // query params
    List pclocalVarQueryParams = new ArrayList();
    Map pclocalVarHeaderParams = new HashMap();
    Map pclocalVarFormParams = new HashMap();

    pclocalVarQueryParams.addAll(pcapiClient.parameterToPairs("", "trunkType", trunkType));

    
    
    final String[] pclocalVarAccepts = {
      "application/json"
    };
    final String pclocalVarAccept = pcapiClient.selectHeaderAccept(pclocalVarAccepts);

    final String[] pclocalVarContentTypes = {
      "application/json"
    };
    final String pclocalVarContentType = pcapiClient.selectHeaderContentType(pclocalVarContentTypes);

    String[] pclocalVarAuthNames = new String[] { "PureCloud Auth" };

    return pcapiClient.invokeAPIVerbose(pclocalVarPath, "GET", pclocalVarQueryParams, pclocalVarPostBody, pclocalVarHeaderParams, pclocalVarFormParams, pclocalVarAccept, pclocalVarContentType, pclocalVarAuthNames, new TypeReference() {});
  }
  /**
   * Lists available schema categories (Deprecated)
   * 
   * @param pageSize Page size (optional, default to 25)
   * @param pageNumber Page number (optional, default to 1)
   * @return SchemaCategoryEntityListing
   * @throws ApiException if fails to make API call
   */
  public SchemaCategoryEntityListing getSchemasEdgesVnext(Integer pageSize, Integer pageNumber) throws ApiException {
    return getSchemasEdgesVnextWithHttpInfo(pageSize, pageNumber).getResponseObject();
  }

  /**
   * Lists available schema categories (Deprecated)
   * 
   * @param pageSize Page size (optional, default to 25)
   * @param pageNumber Page number (optional, default to 1)
   * @return SchemaCategoryEntityListing
   * @throws ApiException if fails to make API call
   */
  public ApiResponse getSchemasEdgesVnextWithHttpInfo(Integer pageSize, Integer pageNumber) throws ApiException {
    Object pclocalVarPostBody = null;
    
    // create path and map variables
    String pclocalVarPath = "/api/v2/configuration/schemas/edges/vnext".replaceAll("\\{format\\}","json");

    // query params
    List pclocalVarQueryParams = new ArrayList();
    Map pclocalVarHeaderParams = new HashMap();
    Map pclocalVarFormParams = new HashMap();

    pclocalVarQueryParams.addAll(pcapiClient.parameterToPairs("", "pageSize", pageSize));
    pclocalVarQueryParams.addAll(pcapiClient.parameterToPairs("", "pageNumber", pageNumber));

    
    
    final String[] pclocalVarAccepts = {
      "application/json"
    };
    final String pclocalVarAccept = pcapiClient.selectHeaderAccept(pclocalVarAccepts);

    final String[] pclocalVarContentTypes = {
      "application/json"
    };
    final String pclocalVarContentType = pcapiClient.selectHeaderContentType(pclocalVarContentTypes);

    String[] pclocalVarAuthNames = new String[] { "PureCloud Auth" };

    return pcapiClient.invokeAPIVerbose(pclocalVarPath, "GET", pclocalVarQueryParams, pclocalVarPostBody, pclocalVarHeaderParams, pclocalVarFormParams, pclocalVarAccept, pclocalVarContentType, pclocalVarAuthNames, new TypeReference() {});
  }
  /**
   * List schemas of a specific category (Deprecated)
   * 
   * @param schemaCategory Schema category (required)
   * @param pageSize Page size (optional, default to 25)
   * @param pageNumber Page number (optional, default to 1)
   * @return SchemaReferenceEntityListing
   * @throws ApiException if fails to make API call
   */
  public SchemaReferenceEntityListing getSchemasEdgesVnextSchemacategory(String schemaCategory, Integer pageSize, Integer pageNumber) throws ApiException {
    return getSchemasEdgesVnextSchemacategoryWithHttpInfo(schemaCategory, pageSize, pageNumber).getResponseObject();
  }

  /**
   * List schemas of a specific category (Deprecated)
   * 
   * @param schemaCategory Schema category (required)
   * @param pageSize Page size (optional, default to 25)
   * @param pageNumber Page number (optional, default to 1)
   * @return SchemaReferenceEntityListing
   * @throws ApiException if fails to make API call
   */
  public ApiResponse getSchemasEdgesVnextSchemacategoryWithHttpInfo(String schemaCategory, Integer pageSize, Integer pageNumber) throws ApiException {
    Object pclocalVarPostBody = null;
    
    // verify the required parameter 'schemaCategory' is set
    if (schemaCategory == null) {
      throw new ApiException(400, "Missing the required parameter 'schemaCategory' when calling getSchemasEdgesVnextSchemacategory");
    }
    
    // create path and map variables
    String pclocalVarPath = "/api/v2/configuration/schemas/edges/vnext/{schemaCategory}".replaceAll("\\{format\\}","json")
      .replaceAll("\\{" + "schemaCategory" + "\\}", pcapiClient.escapeString(schemaCategory.toString()));

    // query params
    List pclocalVarQueryParams = new ArrayList();
    Map pclocalVarHeaderParams = new HashMap();
    Map pclocalVarFormParams = new HashMap();

    pclocalVarQueryParams.addAll(pcapiClient.parameterToPairs("", "pageSize", pageSize));
    pclocalVarQueryParams.addAll(pcapiClient.parameterToPairs("", "pageNumber", pageNumber));

    
    
    final String[] pclocalVarAccepts = {
      "application/json"
    };
    final String pclocalVarAccept = pcapiClient.selectHeaderAccept(pclocalVarAccepts);

    final String[] pclocalVarContentTypes = {
      "application/json"
    };
    final String pclocalVarContentType = pcapiClient.selectHeaderContentType(pclocalVarContentTypes);

    String[] pclocalVarAuthNames = new String[] { "PureCloud Auth" };

    return pcapiClient.invokeAPIVerbose(pclocalVarPath, "GET", pclocalVarQueryParams, pclocalVarPostBody, pclocalVarHeaderParams, pclocalVarFormParams, pclocalVarAccept, pclocalVarContentType, pclocalVarAuthNames, new TypeReference() {});
  }
  /**
   * List schemas of a specific category (Deprecated)
   * 
   * @param schemaCategory Schema category (required)
   * @param schemaType Schema type (required)
   * @param pageSize Page size (optional, default to 25)
   * @param pageNumber Page number (optional, default to 1)
   * @return SchemaReferenceEntityListing
   * @throws ApiException if fails to make API call
   */
  public SchemaReferenceEntityListing getSchemasEdgesVnextSchemacategorySchematype(String schemaCategory, String schemaType, Integer pageSize, Integer pageNumber) throws ApiException {
    return getSchemasEdgesVnextSchemacategorySchematypeWithHttpInfo(schemaCategory, schemaType, pageSize, pageNumber).getResponseObject();
  }

  /**
   * List schemas of a specific category (Deprecated)
   * 
   * @param schemaCategory Schema category (required)
   * @param schemaType Schema type (required)
   * @param pageSize Page size (optional, default to 25)
   * @param pageNumber Page number (optional, default to 1)
   * @return SchemaReferenceEntityListing
   * @throws ApiException if fails to make API call
   */
  public ApiResponse getSchemasEdgesVnextSchemacategorySchematypeWithHttpInfo(String schemaCategory, String schemaType, Integer pageSize, Integer pageNumber) throws ApiException {
    Object pclocalVarPostBody = null;
    
    // verify the required parameter 'schemaCategory' is set
    if (schemaCategory == null) {
      throw new ApiException(400, "Missing the required parameter 'schemaCategory' when calling getSchemasEdgesVnextSchemacategorySchematype");
    }
    
    // verify the required parameter 'schemaType' is set
    if (schemaType == null) {
      throw new ApiException(400, "Missing the required parameter 'schemaType' when calling getSchemasEdgesVnextSchemacategorySchematype");
    }
    
    // create path and map variables
    String pclocalVarPath = "/api/v2/configuration/schemas/edges/vnext/{schemaCategory}/{schemaType}".replaceAll("\\{format\\}","json")
      .replaceAll("\\{" + "schemaCategory" + "\\}", pcapiClient.escapeString(schemaCategory.toString()))
      .replaceAll("\\{" + "schemaType" + "\\}", pcapiClient.escapeString(schemaType.toString()));

    // query params
    List pclocalVarQueryParams = new ArrayList();
    Map pclocalVarHeaderParams = new HashMap();
    Map pclocalVarFormParams = new HashMap();

    pclocalVarQueryParams.addAll(pcapiClient.parameterToPairs("", "pageSize", pageSize));
    pclocalVarQueryParams.addAll(pcapiClient.parameterToPairs("", "pageNumber", pageNumber));

    
    
    final String[] pclocalVarAccepts = {
      "application/json"
    };
    final String pclocalVarAccept = pcapiClient.selectHeaderAccept(pclocalVarAccepts);

    final String[] pclocalVarContentTypes = {
      "application/json"
    };
    final String pclocalVarContentType = pcapiClient.selectHeaderContentType(pclocalVarContentTypes);

    String[] pclocalVarAuthNames = new String[] { "PureCloud Auth" };

    return pcapiClient.invokeAPIVerbose(pclocalVarPath, "GET", pclocalVarQueryParams, pclocalVarPostBody, pclocalVarHeaderParams, pclocalVarFormParams, pclocalVarAccept, pclocalVarContentType, pclocalVarAuthNames, new TypeReference() {});
  }
  /**
   * Get a json schema (Deprecated)
   * 
   * @param schemaCategory Schema category (required)
   * @param schemaType Schema type (required)
   * @param schemaId Schema ID (required)
   * @return Organization
   * @throws ApiException if fails to make API call
   */
  public Organization getSchemasEdgesVnextSchemacategorySchematypeSchemaId(String schemaCategory, String schemaType, String schemaId) throws ApiException {
    return getSchemasEdgesVnextSchemacategorySchematypeSchemaIdWithHttpInfo(schemaCategory, schemaType, schemaId).getResponseObject();
  }

  /**
   * Get a json schema (Deprecated)
   * 
   * @param schemaCategory Schema category (required)
   * @param schemaType Schema type (required)
   * @param schemaId Schema ID (required)
   * @return Organization
   * @throws ApiException if fails to make API call
   */
  public ApiResponse getSchemasEdgesVnextSchemacategorySchematypeSchemaIdWithHttpInfo(String schemaCategory, String schemaType, String schemaId) throws ApiException {
    Object pclocalVarPostBody = null;
    
    // verify the required parameter 'schemaCategory' is set
    if (schemaCategory == null) {
      throw new ApiException(400, "Missing the required parameter 'schemaCategory' when calling getSchemasEdgesVnextSchemacategorySchematypeSchemaId");
    }
    
    // verify the required parameter 'schemaType' is set
    if (schemaType == null) {
      throw new ApiException(400, "Missing the required parameter 'schemaType' when calling getSchemasEdgesVnextSchemacategorySchematypeSchemaId");
    }
    
    // verify the required parameter 'schemaId' is set
    if (schemaId == null) {
      throw new ApiException(400, "Missing the required parameter 'schemaId' when calling getSchemasEdgesVnextSchemacategorySchematypeSchemaId");
    }
    
    // create path and map variables
    String pclocalVarPath = "/api/v2/configuration/schemas/edges/vnext/{schemaCategory}/{schemaType}/{schemaId}".replaceAll("\\{format\\}","json")
      .replaceAll("\\{" + "schemaCategory" + "\\}", pcapiClient.escapeString(schemaCategory.toString()))
      .replaceAll("\\{" + "schemaType" + "\\}", pcapiClient.escapeString(schemaType.toString()))
      .replaceAll("\\{" + "schemaId" + "\\}", pcapiClient.escapeString(schemaId.toString()));

    // query params
    List pclocalVarQueryParams = new ArrayList();
    Map pclocalVarHeaderParams = new HashMap();
    Map pclocalVarFormParams = new HashMap();


    
    
    final String[] pclocalVarAccepts = {
      "application/json"
    };
    final String pclocalVarAccept = pcapiClient.selectHeaderAccept(pclocalVarAccepts);

    final String[] pclocalVarContentTypes = {
      "application/json"
    };
    final String pclocalVarContentType = pcapiClient.selectHeaderContentType(pclocalVarContentTypes);

    String[] pclocalVarAuthNames = new String[] { "PureCloud Auth" };

    return pcapiClient.invokeAPIVerbose(pclocalVarPath, "GET", pclocalVarQueryParams, pclocalVarPostBody, pclocalVarHeaderParams, pclocalVarFormParams, pclocalVarAccept, pclocalVarContentType, pclocalVarAuthNames, new TypeReference() {});
  }
  /**
   * Get metadata for a schema (Deprecated)
   * 
   * @param schemaCategory Schema category (required)
   * @param schemaType Schema type (required)
   * @param schemaId Schema ID (required)
   * @param extensionType extension (required)
   * @param metadataId Metadata ID (required)
   * @param type Type (optional)
   * @return Organization
   * @throws ApiException if fails to make API call
   */
  public Organization getSchemasEdgesVnextSchemacategorySchematypeSchemaIdExtensiontypeMetadataId(String schemaCategory, String schemaType, String schemaId, String extensionType, String metadataId, String type) throws ApiException {
    return getSchemasEdgesVnextSchemacategorySchematypeSchemaIdExtensiontypeMetadataIdWithHttpInfo(schemaCategory, schemaType, schemaId, extensionType, metadataId, type).getResponseObject();
  }

  /**
   * Get metadata for a schema (Deprecated)
   * 
   * @param schemaCategory Schema category (required)
   * @param schemaType Schema type (required)
   * @param schemaId Schema ID (required)
   * @param extensionType extension (required)
   * @param metadataId Metadata ID (required)
   * @param type Type (optional)
   * @return Organization
   * @throws ApiException if fails to make API call
   */
  public ApiResponse getSchemasEdgesVnextSchemacategorySchematypeSchemaIdExtensiontypeMetadataIdWithHttpInfo(String schemaCategory, String schemaType, String schemaId, String extensionType, String metadataId, String type) throws ApiException {
    Object pclocalVarPostBody = null;
    
    // verify the required parameter 'schemaCategory' is set
    if (schemaCategory == null) {
      throw new ApiException(400, "Missing the required parameter 'schemaCategory' when calling getSchemasEdgesVnextSchemacategorySchematypeSchemaIdExtensiontypeMetadataId");
    }
    
    // verify the required parameter 'schemaType' is set
    if (schemaType == null) {
      throw new ApiException(400, "Missing the required parameter 'schemaType' when calling getSchemasEdgesVnextSchemacategorySchematypeSchemaIdExtensiontypeMetadataId");
    }
    
    // verify the required parameter 'schemaId' is set
    if (schemaId == null) {
      throw new ApiException(400, "Missing the required parameter 'schemaId' when calling getSchemasEdgesVnextSchemacategorySchematypeSchemaIdExtensiontypeMetadataId");
    }
    
    // verify the required parameter 'extensionType' is set
    if (extensionType == null) {
      throw new ApiException(400, "Missing the required parameter 'extensionType' when calling getSchemasEdgesVnextSchemacategorySchematypeSchemaIdExtensiontypeMetadataId");
    }
    
    // verify the required parameter 'metadataId' is set
    if (metadataId == null) {
      throw new ApiException(400, "Missing the required parameter 'metadataId' when calling getSchemasEdgesVnextSchemacategorySchematypeSchemaIdExtensiontypeMetadataId");
    }
    
    // create path and map variables
    String pclocalVarPath = "/api/v2/configuration/schemas/edges/vnext/{schemaCategory}/{schemaType}/{schemaId}/{extensionType}/{metadataId}".replaceAll("\\{format\\}","json")
      .replaceAll("\\{" + "schemaCategory" + "\\}", pcapiClient.escapeString(schemaCategory.toString()))
      .replaceAll("\\{" + "schemaType" + "\\}", pcapiClient.escapeString(schemaType.toString()))
      .replaceAll("\\{" + "schemaId" + "\\}", pcapiClient.escapeString(schemaId.toString()))
      .replaceAll("\\{" + "extensionType" + "\\}", pcapiClient.escapeString(extensionType.toString()))
      .replaceAll("\\{" + "metadataId" + "\\}", pcapiClient.escapeString(metadataId.toString()));

    // query params
    List pclocalVarQueryParams = new ArrayList();
    Map pclocalVarHeaderParams = new HashMap();
    Map pclocalVarFormParams = new HashMap();

    pclocalVarQueryParams.addAll(pcapiClient.parameterToPairs("", "type", type));

    
    
    final String[] pclocalVarAccepts = {
      "application/json"
    };
    final String pclocalVarAccept = pcapiClient.selectHeaderAccept(pclocalVarAccepts);

    final String[] pclocalVarContentTypes = {
      "application/json"
    };
    final String pclocalVarContentType = pcapiClient.selectHeaderContentType(pclocalVarContentTypes);

    String[] pclocalVarAuthNames = new String[] { "PureCloud Auth" };

    return pcapiClient.invokeAPIVerbose(pclocalVarPath, "GET", pclocalVarQueryParams, pclocalVarPostBody, pclocalVarHeaderParams, pclocalVarFormParams, pclocalVarAccept, pclocalVarContentType, pclocalVarAuthNames, new TypeReference() {});
  }
  /**
   * Create an edge.
   * 
   * @param body Edge (required)
   * @return Edge
   * @throws ApiException if fails to make API call
   */
  public Edge postProvidersEdges(Edge body) throws ApiException {
    return postProvidersEdgesWithHttpInfo(body).getResponseObject();
  }

  /**
   * Create an edge.
   * 
   * @param body Edge (required)
   * @return Edge
   * @throws ApiException if fails to make API call
   */
  public ApiResponse postProvidersEdgesWithHttpInfo(Edge body) throws ApiException {
    Object pclocalVarPostBody = body;
    
    // verify the required parameter 'body' is set
    if (body == null) {
      throw new ApiException(400, "Missing the required parameter 'body' when calling postProvidersEdges");
    }
    
    // create path and map variables
    String pclocalVarPath = "/api/v2/telephony/providers/edges".replaceAll("\\{format\\}","json");

    // query params
    List pclocalVarQueryParams = new ArrayList();
    Map pclocalVarHeaderParams = new HashMap();
    Map pclocalVarFormParams = new HashMap();


    
    
    final String[] pclocalVarAccepts = {
      "application/json"
    };
    final String pclocalVarAccept = pcapiClient.selectHeaderAccept(pclocalVarAccepts);

    final String[] pclocalVarContentTypes = {
      "application/json"
    };
    final String pclocalVarContentType = pcapiClient.selectHeaderContentType(pclocalVarContentTypes);

    String[] pclocalVarAuthNames = new String[] { "PureCloud Auth" };

    return pcapiClient.invokeAPIVerbose(pclocalVarPath, "POST", pclocalVarQueryParams, pclocalVarPostBody, pclocalVarHeaderParams, pclocalVarFormParams, pclocalVarAccept, pclocalVarContentType, pclocalVarAuthNames, new TypeReference() {});
  }
  /**
   * Validates a street address
   * 
   * @param body Address (required)
   * @return ValidateAddressResponse
   * @throws ApiException if fails to make API call
   */
  public ValidateAddressResponse postProvidersEdgesAddressvalidation(ValidateAddressRequest body) throws ApiException {
    return postProvidersEdgesAddressvalidationWithHttpInfo(body).getResponseObject();
  }

  /**
   * Validates a street address
   * 
   * @param body Address (required)
   * @return ValidateAddressResponse
   * @throws ApiException if fails to make API call
   */
  public ApiResponse postProvidersEdgesAddressvalidationWithHttpInfo(ValidateAddressRequest body) throws ApiException {
    Object pclocalVarPostBody = body;
    
    // verify the required parameter 'body' is set
    if (body == null) {
      throw new ApiException(400, "Missing the required parameter 'body' when calling postProvidersEdgesAddressvalidation");
    }
    
    // create path and map variables
    String pclocalVarPath = "/api/v2/telephony/providers/edges/addressvalidation".replaceAll("\\{format\\}","json");

    // query params
    List pclocalVarQueryParams = new ArrayList();
    Map pclocalVarHeaderParams = new HashMap();
    Map pclocalVarFormParams = new HashMap();


    
    
    final String[] pclocalVarAccepts = {
      "application/json"
    };
    final String pclocalVarAccept = pcapiClient.selectHeaderAccept(pclocalVarAccepts);

    final String[] pclocalVarContentTypes = {
      "application/json"
    };
    final String pclocalVarContentType = pcapiClient.selectHeaderContentType(pclocalVarContentTypes);

    String[] pclocalVarAuthNames = new String[] { "PureCloud Auth" };

    return pcapiClient.invokeAPIVerbose(pclocalVarPath, "POST", pclocalVarQueryParams, pclocalVarPostBody, pclocalVarHeaderParams, pclocalVarFormParams, pclocalVarAccept, pclocalVarContentType, pclocalVarAuthNames, new TypeReference() {});
  }
  /**
   * Create a certificate authority.
   * 
   * @param body CertificateAuthority (required)
   * @return DomainCertificateAuthority
   * @throws ApiException if fails to make API call
   */
  public DomainCertificateAuthority postProvidersEdgesCertificateauthorities(DomainCertificateAuthority body) throws ApiException {
    return postProvidersEdgesCertificateauthoritiesWithHttpInfo(body).getResponseObject();
  }

  /**
   * Create a certificate authority.
   * 
   * @param body CertificateAuthority (required)
   * @return DomainCertificateAuthority
   * @throws ApiException if fails to make API call
   */
  public ApiResponse postProvidersEdgesCertificateauthoritiesWithHttpInfo(DomainCertificateAuthority body) throws ApiException {
    Object pclocalVarPostBody = body;
    
    // verify the required parameter 'body' is set
    if (body == null) {
      throw new ApiException(400, "Missing the required parameter 'body' when calling postProvidersEdgesCertificateauthorities");
    }
    
    // create path and map variables
    String pclocalVarPath = "/api/v2/telephony/providers/edges/certificateauthorities".replaceAll("\\{format\\}","json");

    // query params
    List pclocalVarQueryParams = new ArrayList();
    Map pclocalVarHeaderParams = new HashMap();
    Map pclocalVarFormParams = new HashMap();


    
    
    final String[] pclocalVarAccepts = {
      "application/json"
    };
    final String pclocalVarAccept = pcapiClient.selectHeaderAccept(pclocalVarAccepts);

    final String[] pclocalVarContentTypes = {
      "application/json"
    };
    final String pclocalVarContentType = pcapiClient.selectHeaderContentType(pclocalVarContentTypes);

    String[] pclocalVarAuthNames = new String[] { "PureCloud Auth" };

    return pcapiClient.invokeAPIVerbose(pclocalVarPath, "POST", pclocalVarQueryParams, pclocalVarPostBody, pclocalVarHeaderParams, pclocalVarFormParams, pclocalVarAccept, pclocalVarContentType, pclocalVarAuthNames, new TypeReference() {});
  }
  /**
   * Create a new DID pool
   * 
   * @param body DID pool (required)
   * @return DIDPool
   * @throws ApiException if fails to make API call
   */
  public DIDPool postProvidersEdgesDidpools(DIDPool body) throws ApiException {
    return postProvidersEdgesDidpoolsWithHttpInfo(body).getResponseObject();
  }

  /**
   * Create a new DID pool
   * 
   * @param body DID pool (required)
   * @return DIDPool
   * @throws ApiException if fails to make API call
   */
  public ApiResponse postProvidersEdgesDidpoolsWithHttpInfo(DIDPool body) throws ApiException {
    Object pclocalVarPostBody = body;
    
    // verify the required parameter 'body' is set
    if (body == null) {
      throw new ApiException(400, "Missing the required parameter 'body' when calling postProvidersEdgesDidpools");
    }
    
    // create path and map variables
    String pclocalVarPath = "/api/v2/telephony/providers/edges/didpools".replaceAll("\\{format\\}","json");

    // query params
    List pclocalVarQueryParams = new ArrayList();
    Map pclocalVarHeaderParams = new HashMap();
    Map pclocalVarFormParams = new HashMap();


    
    
    final String[] pclocalVarAccepts = {
      "application/json"
    };
    final String pclocalVarAccept = pcapiClient.selectHeaderAccept(pclocalVarAccepts);

    final String[] pclocalVarContentTypes = {
      "application/json"
    };
    final String pclocalVarContentType = pcapiClient.selectHeaderContentType(pclocalVarContentTypes);

    String[] pclocalVarAuthNames = new String[] { "PureCloud Auth" };

    return pcapiClient.invokeAPIVerbose(pclocalVarPath, "POST", pclocalVarQueryParams, pclocalVarPostBody, pclocalVarHeaderParams, pclocalVarFormParams, pclocalVarAccept, pclocalVarContentType, pclocalVarAuthNames, new TypeReference() {});
  }
  /**
   * Create an edge logical interface.
   * Create
   * @param edgeId Edge ID (required)
   * @param body Logical interface (required)
   * @return DomainLogicalInterface
   * @throws ApiException if fails to make API call
   */
  public DomainLogicalInterface postProvidersEdgesEdgeIdLogicalinterfaces(String edgeId, DomainLogicalInterface body) throws ApiException {
    return postProvidersEdgesEdgeIdLogicalinterfacesWithHttpInfo(edgeId, body).getResponseObject();
  }

  /**
   * Create an edge logical interface.
   * Create
   * @param edgeId Edge ID (required)
   * @param body Logical interface (required)
   * @return DomainLogicalInterface
   * @throws ApiException if fails to make API call
   */
  public ApiResponse postProvidersEdgesEdgeIdLogicalinterfacesWithHttpInfo(String edgeId, DomainLogicalInterface body) throws ApiException {
    Object pclocalVarPostBody = body;
    
    // verify the required parameter 'edgeId' is set
    if (edgeId == null) {
      throw new ApiException(400, "Missing the required parameter 'edgeId' when calling postProvidersEdgesEdgeIdLogicalinterfaces");
    }
    
    // verify the required parameter 'body' is set
    if (body == null) {
      throw new ApiException(400, "Missing the required parameter 'body' when calling postProvidersEdgesEdgeIdLogicalinterfaces");
    }
    
    // create path and map variables
    String pclocalVarPath = "/api/v2/telephony/providers/edges/{edgeId}/logicalinterfaces".replaceAll("\\{format\\}","json")
      .replaceAll("\\{" + "edgeId" + "\\}", pcapiClient.escapeString(edgeId.toString()));

    // query params
    List pclocalVarQueryParams = new ArrayList();
    Map pclocalVarHeaderParams = new HashMap();
    Map pclocalVarFormParams = new HashMap();


    
    
    final String[] pclocalVarAccepts = {
      "application/json"
    };
    final String pclocalVarAccept = pcapiClient.selectHeaderAccept(pclocalVarAccepts);

    final String[] pclocalVarContentTypes = {
      "application/json"
    };
    final String pclocalVarContentType = pcapiClient.selectHeaderContentType(pclocalVarContentTypes);

    String[] pclocalVarAuthNames = new String[] { "PureCloud Auth" };

    return pcapiClient.invokeAPIVerbose(pclocalVarPath, "POST", pclocalVarQueryParams, pclocalVarPostBody, pclocalVarHeaderParams, pclocalVarFormParams, pclocalVarAccept, pclocalVarContentType, pclocalVarAuthNames, new TypeReference() {});
  }
  /**
   * Create a job to upload a list of Edge logs.
   * 
   * @param edgeId Edge ID (required)
   * @param body EdgeLogsJobRequest (required)
   * @return EdgeLogsJobResponse
   * @throws ApiException if fails to make API call
   */
  public EdgeLogsJobResponse postProvidersEdgesEdgeIdLogsJobs(String edgeId, EdgeLogsJobRequest body) throws ApiException {
    return postProvidersEdgesEdgeIdLogsJobsWithHttpInfo(edgeId, body).getResponseObject();
  }

  /**
   * Create a job to upload a list of Edge logs.
   * 
   * @param edgeId Edge ID (required)
   * @param body EdgeLogsJobRequest (required)
   * @return EdgeLogsJobResponse
   * @throws ApiException if fails to make API call
   */
  public ApiResponse postProvidersEdgesEdgeIdLogsJobsWithHttpInfo(String edgeId, EdgeLogsJobRequest body) throws ApiException {
    Object pclocalVarPostBody = body;
    
    // verify the required parameter 'edgeId' is set
    if (edgeId == null) {
      throw new ApiException(400, "Missing the required parameter 'edgeId' when calling postProvidersEdgesEdgeIdLogsJobs");
    }
    
    // verify the required parameter 'body' is set
    if (body == null) {
      throw new ApiException(400, "Missing the required parameter 'body' when calling postProvidersEdgesEdgeIdLogsJobs");
    }
    
    // create path and map variables
    String pclocalVarPath = "/api/v2/telephony/providers/edges/{edgeId}/logs/jobs".replaceAll("\\{format\\}","json")
      .replaceAll("\\{" + "edgeId" + "\\}", pcapiClient.escapeString(edgeId.toString()));

    // query params
    List pclocalVarQueryParams = new ArrayList();
    Map pclocalVarHeaderParams = new HashMap();
    Map pclocalVarFormParams = new HashMap();


    
    
    final String[] pclocalVarAccepts = {
      "application/json"
    };
    final String pclocalVarAccept = pcapiClient.selectHeaderAccept(pclocalVarAccepts);

    final String[] pclocalVarContentTypes = {
      "application/json"
    };
    final String pclocalVarContentType = pcapiClient.selectHeaderContentType(pclocalVarContentTypes);

    String[] pclocalVarAuthNames = new String[] { "PureCloud Auth" };

    return pcapiClient.invokeAPIVerbose(pclocalVarPath, "POST", pclocalVarQueryParams, pclocalVarPostBody, pclocalVarHeaderParams, pclocalVarFormParams, pclocalVarAccept, pclocalVarContentType, pclocalVarAuthNames, new TypeReference() {});
  }
  /**
   * Request that the specified fileIds be uploaded from the Edge.
   * 
   * @param edgeId Edge ID (required)
   * @param jobId Job ID (required)
   * @param body Log upload request (required)
   * @throws ApiException if fails to make API call
   */
  public void postProvidersEdgesEdgeIdLogsJobsJobIdUpload(String edgeId, String jobId, EdgeLogsJobUploadRequest body) throws ApiException {
    postProvidersEdgesEdgeIdLogsJobsJobIdUploadWithHttpInfo(edgeId, jobId, body);
  }

  /**
   * Request that the specified fileIds be uploaded from the Edge.
   * 
   * @param edgeId Edge ID (required)
   * @param jobId Job ID (required)
   * @param body Log upload request (required)
   * @throws ApiException if fails to make API call
   */
  public ApiResponse postProvidersEdgesEdgeIdLogsJobsJobIdUploadWithHttpInfo(String edgeId, String jobId, EdgeLogsJobUploadRequest body) throws ApiException {
    Object pclocalVarPostBody = body;
    
    // verify the required parameter 'edgeId' is set
    if (edgeId == null) {
      throw new ApiException(400, "Missing the required parameter 'edgeId' when calling postProvidersEdgesEdgeIdLogsJobsJobIdUpload");
    }
    
    // verify the required parameter 'jobId' is set
    if (jobId == null) {
      throw new ApiException(400, "Missing the required parameter 'jobId' when calling postProvidersEdgesEdgeIdLogsJobsJobIdUpload");
    }
    
    // verify the required parameter 'body' is set
    if (body == null) {
      throw new ApiException(400, "Missing the required parameter 'body' when calling postProvidersEdgesEdgeIdLogsJobsJobIdUpload");
    }
    
    // create path and map variables
    String pclocalVarPath = "/api/v2/telephony/providers/edges/{edgeId}/logs/jobs/{jobId}/upload".replaceAll("\\{format\\}","json")
      .replaceAll("\\{" + "edgeId" + "\\}", pcapiClient.escapeString(edgeId.toString()))
      .replaceAll("\\{" + "jobId" + "\\}", pcapiClient.escapeString(jobId.toString()));

    // query params
    List pclocalVarQueryParams = new ArrayList();
    Map pclocalVarHeaderParams = new HashMap();
    Map pclocalVarFormParams = new HashMap();


    
    
    final String[] pclocalVarAccepts = {
      "application/json"
    };
    final String pclocalVarAccept = pcapiClient.selectHeaderAccept(pclocalVarAccepts);

    final String[] pclocalVarContentTypes = {
      "application/json"
    };
    final String pclocalVarContentType = pcapiClient.selectHeaderContentType(pclocalVarContentTypes);

    String[] pclocalVarAuthNames = new String[] { "PureCloud Auth" };

    return pcapiClient.invokeAPIVerbose(pclocalVarPath, "POST", pclocalVarQueryParams, pclocalVarPostBody, pclocalVarHeaderParams, pclocalVarFormParams, pclocalVarAccept, pclocalVarContentType, pclocalVarAuthNames, null);
  }
  /**
   * Reboot an Edge
   * 
   * @param edgeId Edge ID (required)
   * @param body Parameters for the edge reboot (optional)
   * @return String
   * @throws ApiException if fails to make API call
   */
  public String postProvidersEdgesEdgeIdReboot(String edgeId, EdgeRebootParameters body) throws ApiException {
    return postProvidersEdgesEdgeIdRebootWithHttpInfo(edgeId, body).getResponseObject();
  }

  /**
   * Reboot an Edge
   * 
   * @param edgeId Edge ID (required)
   * @param body Parameters for the edge reboot (optional)
   * @return String
   * @throws ApiException if fails to make API call
   */
  public ApiResponse postProvidersEdgesEdgeIdRebootWithHttpInfo(String edgeId, EdgeRebootParameters body) throws ApiException {
    Object pclocalVarPostBody = body;
    
    // verify the required parameter 'edgeId' is set
    if (edgeId == null) {
      throw new ApiException(400, "Missing the required parameter 'edgeId' when calling postProvidersEdgesEdgeIdReboot");
    }
    
    // create path and map variables
    String pclocalVarPath = "/api/v2/telephony/providers/edges/{edgeId}/reboot".replaceAll("\\{format\\}","json")
      .replaceAll("\\{" + "edgeId" + "\\}", pcapiClient.escapeString(edgeId.toString()));

    // query params
    List pclocalVarQueryParams = new ArrayList();
    Map pclocalVarHeaderParams = new HashMap();
    Map pclocalVarFormParams = new HashMap();


    
    
    final String[] pclocalVarAccepts = {
      "application/json"
    };
    final String pclocalVarAccept = pcapiClient.selectHeaderAccept(pclocalVarAccepts);

    final String[] pclocalVarContentTypes = {
      "application/json"
    };
    final String pclocalVarContentType = pcapiClient.selectHeaderContentType(pclocalVarContentTypes);

    String[] pclocalVarAuthNames = new String[] { "PureCloud Auth" };

    return pcapiClient.invokeAPIVerbose(pclocalVarPath, "POST", pclocalVarQueryParams, pclocalVarPostBody, pclocalVarHeaderParams, pclocalVarFormParams, pclocalVarAccept, pclocalVarContentType, pclocalVarAuthNames, new TypeReference() {});
  }
  /**
   * Starts a software update for this edge.
   * 
   * @param edgeId Edge ID (required)
   * @param body Software update request (required)
   * @return DomainEdgeSoftwareUpdateDto
   * @throws ApiException if fails to make API call
   */
  public DomainEdgeSoftwareUpdateDto postProvidersEdgesEdgeIdSoftwareupdate(String edgeId, DomainEdgeSoftwareUpdateDto body) throws ApiException {
    return postProvidersEdgesEdgeIdSoftwareupdateWithHttpInfo(edgeId, body).getResponseObject();
  }

  /**
   * Starts a software update for this edge.
   * 
   * @param edgeId Edge ID (required)
   * @param body Software update request (required)
   * @return DomainEdgeSoftwareUpdateDto
   * @throws ApiException if fails to make API call
   */
  public ApiResponse postProvidersEdgesEdgeIdSoftwareupdateWithHttpInfo(String edgeId, DomainEdgeSoftwareUpdateDto body) throws ApiException {
    Object pclocalVarPostBody = body;
    
    // verify the required parameter 'edgeId' is set
    if (edgeId == null) {
      throw new ApiException(400, "Missing the required parameter 'edgeId' when calling postProvidersEdgesEdgeIdSoftwareupdate");
    }
    
    // verify the required parameter 'body' is set
    if (body == null) {
      throw new ApiException(400, "Missing the required parameter 'body' when calling postProvidersEdgesEdgeIdSoftwareupdate");
    }
    
    // create path and map variables
    String pclocalVarPath = "/api/v2/telephony/providers/edges/{edgeId}/softwareupdate".replaceAll("\\{format\\}","json")
      .replaceAll("\\{" + "edgeId" + "\\}", pcapiClient.escapeString(edgeId.toString()));

    // query params
    List pclocalVarQueryParams = new ArrayList();
    Map pclocalVarHeaderParams = new HashMap();
    Map pclocalVarFormParams = new HashMap();


    
    
    final String[] pclocalVarAccepts = {
      "application/json"
    };
    final String pclocalVarAccept = pcapiClient.selectHeaderAccept(pclocalVarAccepts);

    final String[] pclocalVarContentTypes = {
      "application/json"
    };
    final String pclocalVarContentType = pcapiClient.selectHeaderContentType(pclocalVarContentTypes);

    String[] pclocalVarAuthNames = new String[] { "PureCloud Auth" };

    return pcapiClient.invokeAPIVerbose(pclocalVarPath, "POST", pclocalVarQueryParams, pclocalVarPostBody, pclocalVarHeaderParams, pclocalVarFormParams, pclocalVarAccept, pclocalVarContentType, pclocalVarAuthNames, new TypeReference() {});
  }
  /**
   * Take an Edge in or out of service
   * 
   * @param edgeId Edge ID (required)
   * @param body Edge Service State (optional)
   * @return String
   * @throws ApiException if fails to make API call
   */
  public String postProvidersEdgesEdgeIdStatuscode(String edgeId, EdgeServiceStateRequest body) throws ApiException {
    return postProvidersEdgesEdgeIdStatuscodeWithHttpInfo(edgeId, body).getResponseObject();
  }

  /**
   * Take an Edge in or out of service
   * 
   * @param edgeId Edge ID (required)
   * @param body Edge Service State (optional)
   * @return String
   * @throws ApiException if fails to make API call
   */
  public ApiResponse postProvidersEdgesEdgeIdStatuscodeWithHttpInfo(String edgeId, EdgeServiceStateRequest body) throws ApiException {
    Object pclocalVarPostBody = body;
    
    // verify the required parameter 'edgeId' is set
    if (edgeId == null) {
      throw new ApiException(400, "Missing the required parameter 'edgeId' when calling postProvidersEdgesEdgeIdStatuscode");
    }
    
    // create path and map variables
    String pclocalVarPath = "/api/v2/telephony/providers/edges/{edgeId}/statuscode".replaceAll("\\{format\\}","json")
      .replaceAll("\\{" + "edgeId" + "\\}", pcapiClient.escapeString(edgeId.toString()));

    // query params
    List pclocalVarQueryParams = new ArrayList();
    Map pclocalVarHeaderParams = new HashMap();
    Map pclocalVarFormParams = new HashMap();


    
    
    final String[] pclocalVarAccepts = {
      "application/json"
    };
    final String pclocalVarAccept = pcapiClient.selectHeaderAccept(pclocalVarAccepts);

    final String[] pclocalVarContentTypes = {
      "application/json"
    };
    final String pclocalVarContentType = pcapiClient.selectHeaderContentType(pclocalVarContentTypes);

    String[] pclocalVarAuthNames = new String[] { "PureCloud Auth" };

    return pcapiClient.invokeAPIVerbose(pclocalVarPath, "POST", pclocalVarQueryParams, pclocalVarPostBody, pclocalVarHeaderParams, pclocalVarFormParams, pclocalVarAccept, pclocalVarContentType, pclocalVarAuthNames, new TypeReference() {});
  }
  /**
   * Unpair an Edge
   * 
   * @param edgeId Edge Id (required)
   * @return String
   * @throws ApiException if fails to make API call
   */
  public String postProvidersEdgesEdgeIdUnpair(String edgeId) throws ApiException {
    return postProvidersEdgesEdgeIdUnpairWithHttpInfo(edgeId).getResponseObject();
  }

  /**
   * Unpair an Edge
   * 
   * @param edgeId Edge Id (required)
   * @return String
   * @throws ApiException if fails to make API call
   */
  public ApiResponse postProvidersEdgesEdgeIdUnpairWithHttpInfo(String edgeId) throws ApiException {
    Object pclocalVarPostBody = null;
    
    // verify the required parameter 'edgeId' is set
    if (edgeId == null) {
      throw new ApiException(400, "Missing the required parameter 'edgeId' when calling postProvidersEdgesEdgeIdUnpair");
    }
    
    // create path and map variables
    String pclocalVarPath = "/api/v2/telephony/providers/edges/{edgeId}/unpair".replaceAll("\\{format\\}","json")
      .replaceAll("\\{" + "edgeId" + "\\}", pcapiClient.escapeString(edgeId.toString()));

    // query params
    List pclocalVarQueryParams = new ArrayList();
    Map pclocalVarHeaderParams = new HashMap();
    Map pclocalVarFormParams = new HashMap();


    
    
    final String[] pclocalVarAccepts = {
      "application/json"
    };
    final String pclocalVarAccept = pcapiClient.selectHeaderAccept(pclocalVarAccepts);

    final String[] pclocalVarContentTypes = {
      "application/json"
    };
    final String pclocalVarContentType = pcapiClient.selectHeaderContentType(pclocalVarContentTypes);

    String[] pclocalVarAuthNames = new String[] { "PureCloud Auth" };

    return pcapiClient.invokeAPIVerbose(pclocalVarPath, "POST", pclocalVarQueryParams, pclocalVarPostBody, pclocalVarHeaderParams, pclocalVarFormParams, pclocalVarAccept, pclocalVarContentType, pclocalVarAuthNames, new TypeReference() {});
  }
  /**
   * Create an edge group.
   * 
   * @param body EdgeGroup (required)
   * @return EdgeGroup
   * @throws ApiException if fails to make API call
   */
  public EdgeGroup postProvidersEdgesEdgegroups(EdgeGroup body) throws ApiException {
    return postProvidersEdgesEdgegroupsWithHttpInfo(body).getResponseObject();
  }

  /**
   * Create an edge group.
   * 
   * @param body EdgeGroup (required)
   * @return EdgeGroup
   * @throws ApiException if fails to make API call
   */
  public ApiResponse postProvidersEdgesEdgegroupsWithHttpInfo(EdgeGroup body) throws ApiException {
    Object pclocalVarPostBody = body;
    
    // verify the required parameter 'body' is set
    if (body == null) {
      throw new ApiException(400, "Missing the required parameter 'body' when calling postProvidersEdgesEdgegroups");
    }
    
    // create path and map variables
    String pclocalVarPath = "/api/v2/telephony/providers/edges/edgegroups".replaceAll("\\{format\\}","json");

    // query params
    List pclocalVarQueryParams = new ArrayList();
    Map pclocalVarHeaderParams = new HashMap();
    Map pclocalVarFormParams = new HashMap();


    
    
    final String[] pclocalVarAccepts = {
      "application/json"
    };
    final String pclocalVarAccept = pcapiClient.selectHeaderAccept(pclocalVarAccepts);

    final String[] pclocalVarContentTypes = {
      "application/json"
    };
    final String pclocalVarContentType = pcapiClient.selectHeaderContentType(pclocalVarContentTypes);

    String[] pclocalVarAuthNames = new String[] { "PureCloud Auth" };

    return pcapiClient.invokeAPIVerbose(pclocalVarPath, "POST", pclocalVarQueryParams, pclocalVarPostBody, pclocalVarHeaderParams, pclocalVarFormParams, pclocalVarAccept, pclocalVarContentType, pclocalVarAuthNames, new TypeReference() {});
  }
  /**
   * Create endpoint
   * 
   * @param body EndpointTemplate (required)
   * @return Endpoint
   * @throws ApiException if fails to make API call
   */
  public Endpoint postProvidersEdgesEndpoints(Endpoint body) throws ApiException {
    return postProvidersEdgesEndpointsWithHttpInfo(body).getResponseObject();
  }

  /**
   * Create endpoint
   * 
   * @param body EndpointTemplate (required)
   * @return Endpoint
   * @throws ApiException if fails to make API call
   */
  public ApiResponse postProvidersEdgesEndpointsWithHttpInfo(Endpoint body) throws ApiException {
    Object pclocalVarPostBody = body;
    
    // verify the required parameter 'body' is set
    if (body == null) {
      throw new ApiException(400, "Missing the required parameter 'body' when calling postProvidersEdgesEndpoints");
    }
    
    // create path and map variables
    String pclocalVarPath = "/api/v2/telephony/providers/edges/endpoints".replaceAll("\\{format\\}","json");

    // query params
    List pclocalVarQueryParams = new ArrayList();
    Map pclocalVarHeaderParams = new HashMap();
    Map pclocalVarFormParams = new HashMap();


    
    
    final String[] pclocalVarAccepts = {
      "application/json"
    };
    final String pclocalVarAccept = pcapiClient.selectHeaderAccept(pclocalVarAccepts);

    final String[] pclocalVarContentTypes = {
      "application/json"
    };
    final String pclocalVarContentType = pcapiClient.selectHeaderContentType(pclocalVarContentTypes);

    String[] pclocalVarAuthNames = new String[] { "PureCloud Auth" };

    return pcapiClient.invokeAPIVerbose(pclocalVarPath, "POST", pclocalVarQueryParams, pclocalVarPostBody, pclocalVarHeaderParams, pclocalVarFormParams, pclocalVarAccept, pclocalVarContentType, pclocalVarAuthNames, new TypeReference() {});
  }
  /**
   * Create a new extension pool
   * 
   * @param body ExtensionPool (required)
   * @return ExtensionPool
   * @throws ApiException if fails to make API call
   */
  public ExtensionPool postProvidersEdgesExtensionpools(ExtensionPool body) throws ApiException {
    return postProvidersEdgesExtensionpoolsWithHttpInfo(body).getResponseObject();
  }

  /**
   * Create a new extension pool
   * 
   * @param body ExtensionPool (required)
   * @return ExtensionPool
   * @throws ApiException if fails to make API call
   */
  public ApiResponse postProvidersEdgesExtensionpoolsWithHttpInfo(ExtensionPool body) throws ApiException {
    Object pclocalVarPostBody = body;
    
    // verify the required parameter 'body' is set
    if (body == null) {
      throw new ApiException(400, "Missing the required parameter 'body' when calling postProvidersEdgesExtensionpools");
    }
    
    // create path and map variables
    String pclocalVarPath = "/api/v2/telephony/providers/edges/extensionpools".replaceAll("\\{format\\}","json");

    // query params
    List pclocalVarQueryParams = new ArrayList();
    Map pclocalVarHeaderParams = new HashMap();
    Map pclocalVarFormParams = new HashMap();


    
    
    final String[] pclocalVarAccepts = {
      "application/json"
    };
    final String pclocalVarAccept = pcapiClient.selectHeaderAccept(pclocalVarAccepts);

    final String[] pclocalVarContentTypes = {
      "application/json"
    };
    final String pclocalVarContentType = pcapiClient.selectHeaderContentType(pclocalVarContentTypes);

    String[] pclocalVarAuthNames = new String[] { "PureCloud Auth" };

    return pcapiClient.invokeAPIVerbose(pclocalVarPath, "POST", pclocalVarQueryParams, pclocalVarPostBody, pclocalVarHeaderParams, pclocalVarFormParams, pclocalVarAccept, pclocalVarContentType, pclocalVarAuthNames, new TypeReference() {});
  }
  /**
   * Create outbound rule
   * 
   * @param body OutboundRoute (required)
   * @return OutboundRoute
   * @throws ApiException if fails to make API call
   */
  public OutboundRoute postProvidersEdgesOutboundroutes(OutboundRoute body) throws ApiException {
    return postProvidersEdgesOutboundroutesWithHttpInfo(body).getResponseObject();
  }

  /**
   * Create outbound rule
   * 
   * @param body OutboundRoute (required)
   * @return OutboundRoute
   * @throws ApiException if fails to make API call
   */
  public ApiResponse postProvidersEdgesOutboundroutesWithHttpInfo(OutboundRoute body) throws ApiException {
    Object pclocalVarPostBody = body;
    
    // verify the required parameter 'body' is set
    if (body == null) {
      throw new ApiException(400, "Missing the required parameter 'body' when calling postProvidersEdgesOutboundroutes");
    }
    
    // create path and map variables
    String pclocalVarPath = "/api/v2/telephony/providers/edges/outboundroutes".replaceAll("\\{format\\}","json");

    // query params
    List pclocalVarQueryParams = new ArrayList();
    Map pclocalVarHeaderParams = new HashMap();
    Map pclocalVarFormParams = new HashMap();


    
    
    final String[] pclocalVarAccepts = {
      "application/json"
    };
    final String pclocalVarAccept = pcapiClient.selectHeaderAccept(pclocalVarAccepts);

    final String[] pclocalVarContentTypes = {
      "application/json"
    };
    final String pclocalVarContentType = pcapiClient.selectHeaderContentType(pclocalVarContentTypes);

    String[] pclocalVarAuthNames = new String[] { "PureCloud Auth" };

    return pcapiClient.invokeAPIVerbose(pclocalVarPath, "POST", pclocalVarQueryParams, pclocalVarPostBody, pclocalVarHeaderParams, pclocalVarFormParams, pclocalVarAccept, pclocalVarContentType, pclocalVarAuthNames, new TypeReference() {});
  }
  /**
   * Create a new Phone Base Settings object
   * 
   * @param body Phone base settings (required)
   * @return PhoneBase
   * @throws ApiException if fails to make API call
   */
  public PhoneBase postProvidersEdgesPhonebasesettings(PhoneBase body) throws ApiException {
    return postProvidersEdgesPhonebasesettingsWithHttpInfo(body).getResponseObject();
  }

  /**
   * Create a new Phone Base Settings object
   * 
   * @param body Phone base settings (required)
   * @return PhoneBase
   * @throws ApiException if fails to make API call
   */
  public ApiResponse postProvidersEdgesPhonebasesettingsWithHttpInfo(PhoneBase body) throws ApiException {
    Object pclocalVarPostBody = body;
    
    // verify the required parameter 'body' is set
    if (body == null) {
      throw new ApiException(400, "Missing the required parameter 'body' when calling postProvidersEdgesPhonebasesettings");
    }
    
    // create path and map variables
    String pclocalVarPath = "/api/v2/telephony/providers/edges/phonebasesettings".replaceAll("\\{format\\}","json");

    // query params
    List pclocalVarQueryParams = new ArrayList();
    Map pclocalVarHeaderParams = new HashMap();
    Map pclocalVarFormParams = new HashMap();


    
    
    final String[] pclocalVarAccepts = {
      "application/json"
    };
    final String pclocalVarAccept = pcapiClient.selectHeaderAccept(pclocalVarAccepts);

    final String[] pclocalVarContentTypes = {
      "application/json"
    };
    final String pclocalVarContentType = pcapiClient.selectHeaderContentType(pclocalVarContentTypes);

    String[] pclocalVarAuthNames = new String[] { "PureCloud Auth" };

    return pcapiClient.invokeAPIVerbose(pclocalVarPath, "POST", pclocalVarQueryParams, pclocalVarPostBody, pclocalVarHeaderParams, pclocalVarFormParams, pclocalVarAccept, pclocalVarContentType, pclocalVarAuthNames, new TypeReference() {});
  }
  /**
   * Create a new Phone
   * 
   * @param body Phone (required)
   * @return Phone
   * @throws ApiException if fails to make API call
   */
  public Phone postProvidersEdgesPhones(Phone body) throws ApiException {
    return postProvidersEdgesPhonesWithHttpInfo(body).getResponseObject();
  }

  /**
   * Create a new Phone
   * 
   * @param body Phone (required)
   * @return Phone
   * @throws ApiException if fails to make API call
   */
  public ApiResponse postProvidersEdgesPhonesWithHttpInfo(Phone body) throws ApiException {
    Object pclocalVarPostBody = body;
    
    // verify the required parameter 'body' is set
    if (body == null) {
      throw new ApiException(400, "Missing the required parameter 'body' when calling postProvidersEdgesPhones");
    }
    
    // create path and map variables
    String pclocalVarPath = "/api/v2/telephony/providers/edges/phones".replaceAll("\\{format\\}","json");

    // query params
    List pclocalVarQueryParams = new ArrayList();
    Map pclocalVarHeaderParams = new HashMap();
    Map pclocalVarFormParams = new HashMap();


    
    
    final String[] pclocalVarAccepts = {
      "application/json"
    };
    final String pclocalVarAccept = pcapiClient.selectHeaderAccept(pclocalVarAccepts);

    final String[] pclocalVarContentTypes = {
      "application/json"
    };
    final String pclocalVarContentType = pcapiClient.selectHeaderContentType(pclocalVarContentTypes);

    String[] pclocalVarAuthNames = new String[] { "PureCloud Auth" };

    return pcapiClient.invokeAPIVerbose(pclocalVarPath, "POST", pclocalVarQueryParams, pclocalVarPostBody, pclocalVarHeaderParams, pclocalVarFormParams, pclocalVarAccept, pclocalVarContentType, pclocalVarAuthNames, new TypeReference() {});
  }
  /**
   * Reboot a Phone
   * 
   * @param phoneId Phone Id (required)
   * @throws ApiException if fails to make API call
   */
  public void postProvidersEdgesPhonesPhoneIdReboot(String phoneId) throws ApiException {
    postProvidersEdgesPhonesPhoneIdRebootWithHttpInfo(phoneId);
  }

  /**
   * Reboot a Phone
   * 
   * @param phoneId Phone Id (required)
   * @throws ApiException if fails to make API call
   */
  public ApiResponse postProvidersEdgesPhonesPhoneIdRebootWithHttpInfo(String phoneId) throws ApiException {
    Object pclocalVarPostBody = null;
    
    // verify the required parameter 'phoneId' is set
    if (phoneId == null) {
      throw new ApiException(400, "Missing the required parameter 'phoneId' when calling postProvidersEdgesPhonesPhoneIdReboot");
    }
    
    // create path and map variables
    String pclocalVarPath = "/api/v2/telephony/providers/edges/phones/{phoneId}/reboot".replaceAll("\\{format\\}","json")
      .replaceAll("\\{" + "phoneId" + "\\}", pcapiClient.escapeString(phoneId.toString()));

    // query params
    List pclocalVarQueryParams = new ArrayList();
    Map pclocalVarHeaderParams = new HashMap();
    Map pclocalVarFormParams = new HashMap();


    
    
    final String[] pclocalVarAccepts = {
      "application/json"
    };
    final String pclocalVarAccept = pcapiClient.selectHeaderAccept(pclocalVarAccepts);

    final String[] pclocalVarContentTypes = {
      "application/json"
    };
    final String pclocalVarContentType = pcapiClient.selectHeaderContentType(pclocalVarContentTypes);

    String[] pclocalVarAuthNames = new String[] { "PureCloud Auth" };

    return pcapiClient.invokeAPIVerbose(pclocalVarPath, "POST", pclocalVarQueryParams, pclocalVarPostBody, pclocalVarHeaderParams, pclocalVarFormParams, pclocalVarAccept, pclocalVarContentType, pclocalVarAuthNames, null);
  }
  /**
   * Reboot Multiple Phones
   * 
   * @param body Phones (required)
   * @throws ApiException if fails to make API call
   */
  public void postProvidersEdgesPhonesReboot(PhonesReboot body) throws ApiException {
    postProvidersEdgesPhonesRebootWithHttpInfo(body);
  }

  /**
   * Reboot Multiple Phones
   * 
   * @param body Phones (required)
   * @throws ApiException if fails to make API call
   */
  public ApiResponse postProvidersEdgesPhonesRebootWithHttpInfo(PhonesReboot body) throws ApiException {
    Object pclocalVarPostBody = body;
    
    // verify the required parameter 'body' is set
    if (body == null) {
      throw new ApiException(400, "Missing the required parameter 'body' when calling postProvidersEdgesPhonesReboot");
    }
    
    // create path and map variables
    String pclocalVarPath = "/api/v2/telephony/providers/edges/phones/reboot".replaceAll("\\{format\\}","json");

    // query params
    List pclocalVarQueryParams = new ArrayList();
    Map pclocalVarHeaderParams = new HashMap();
    Map pclocalVarFormParams = new HashMap();


    
    
    final String[] pclocalVarAccepts = {
      "application/json"
    };
    final String pclocalVarAccept = pcapiClient.selectHeaderAccept(pclocalVarAccepts);

    final String[] pclocalVarContentTypes = {
      "application/json"
    };
    final String pclocalVarContentType = pcapiClient.selectHeaderContentType(pclocalVarContentTypes);

    String[] pclocalVarAuthNames = new String[] { "PureCloud Auth" };

    return pcapiClient.invokeAPIVerbose(pclocalVarPath, "POST", pclocalVarQueryParams, pclocalVarPostBody, pclocalVarHeaderParams, pclocalVarFormParams, pclocalVarAccept, pclocalVarContentType, pclocalVarAuthNames, null);
  }
  /**
   * Create a Site.
   * 
   * @param body Site (required)
   * @return Site
   * @throws ApiException if fails to make API call
   */
  public Site postProvidersEdgesSites(Site body) throws ApiException {
    return postProvidersEdgesSitesWithHttpInfo(body).getResponseObject();
  }

  /**
   * Create a Site.
   * 
   * @param body Site (required)
   * @return Site
   * @throws ApiException if fails to make API call
   */
  public ApiResponse postProvidersEdgesSitesWithHttpInfo(Site body) throws ApiException {
    Object pclocalVarPostBody = body;
    
    // verify the required parameter 'body' is set
    if (body == null) {
      throw new ApiException(400, "Missing the required parameter 'body' when calling postProvidersEdgesSites");
    }
    
    // create path and map variables
    String pclocalVarPath = "/api/v2/telephony/providers/edges/sites".replaceAll("\\{format\\}","json");

    // query params
    List pclocalVarQueryParams = new ArrayList();
    Map pclocalVarHeaderParams = new HashMap();
    Map pclocalVarFormParams = new HashMap();


    
    
    final String[] pclocalVarAccepts = {
      "application/json"
    };
    final String pclocalVarAccept = pcapiClient.selectHeaderAccept(pclocalVarAccepts);

    final String[] pclocalVarContentTypes = {
      "application/json"
    };
    final String pclocalVarContentType = pcapiClient.selectHeaderContentType(pclocalVarContentTypes);

    String[] pclocalVarAuthNames = new String[] { "PureCloud Auth" };

    return pcapiClient.invokeAPIVerbose(pclocalVarPath, "POST", pclocalVarQueryParams, pclocalVarPostBody, pclocalVarHeaderParams, pclocalVarFormParams, pclocalVarAccept, pclocalVarContentType, pclocalVarAuthNames, new TypeReference() {});
  }
  /**
   * Create outbound route
   * 
   * @param siteId Site ID (required)
   * @param body OutboundRoute (required)
   * @return OutboundRouteBase
   * @throws ApiException if fails to make API call
   */
  public OutboundRouteBase postProvidersEdgesSitesSiteIdOutboundroutes(String siteId, OutboundRouteBase body) throws ApiException {
    return postProvidersEdgesSitesSiteIdOutboundroutesWithHttpInfo(siteId, body).getResponseObject();
  }

  /**
   * Create outbound route
   * 
   * @param siteId Site ID (required)
   * @param body OutboundRoute (required)
   * @return OutboundRouteBase
   * @throws ApiException if fails to make API call
   */
  public ApiResponse postProvidersEdgesSitesSiteIdOutboundroutesWithHttpInfo(String siteId, OutboundRouteBase body) throws ApiException {
    Object pclocalVarPostBody = body;
    
    // verify the required parameter 'siteId' is set
    if (siteId == null) {
      throw new ApiException(400, "Missing the required parameter 'siteId' when calling postProvidersEdgesSitesSiteIdOutboundroutes");
    }
    
    // verify the required parameter 'body' is set
    if (body == null) {
      throw new ApiException(400, "Missing the required parameter 'body' when calling postProvidersEdgesSitesSiteIdOutboundroutes");
    }
    
    // create path and map variables
    String pclocalVarPath = "/api/v2/telephony/providers/edges/sites/{siteId}/outboundroutes".replaceAll("\\{format\\}","json")
      .replaceAll("\\{" + "siteId" + "\\}", pcapiClient.escapeString(siteId.toString()));

    // query params
    List pclocalVarQueryParams = new ArrayList();
    Map pclocalVarHeaderParams = new HashMap();
    Map pclocalVarFormParams = new HashMap();


    
    
    final String[] pclocalVarAccepts = {
      "application/json"
    };
    final String pclocalVarAccept = pcapiClient.selectHeaderAccept(pclocalVarAccepts);

    final String[] pclocalVarContentTypes = {
      "application/json"
    };
    final String pclocalVarContentType = pcapiClient.selectHeaderContentType(pclocalVarContentTypes);

    String[] pclocalVarAuthNames = new String[] { "PureCloud Auth" };

    return pcapiClient.invokeAPIVerbose(pclocalVarPath, "POST", pclocalVarQueryParams, pclocalVarPostBody, pclocalVarHeaderParams, pclocalVarFormParams, pclocalVarAccept, pclocalVarContentType, pclocalVarAuthNames, new TypeReference() {});
  }
  /**
   * Triggers the rebalance operation.
   * 
   * @param siteId Site ID (required)
   * @throws ApiException if fails to make API call
   */
  public void postProvidersEdgesSitesSiteIdRebalance(String siteId) throws ApiException {
    postProvidersEdgesSitesSiteIdRebalanceWithHttpInfo(siteId);
  }

  /**
   * Triggers the rebalance operation.
   * 
   * @param siteId Site ID (required)
   * @throws ApiException if fails to make API call
   */
  public ApiResponse postProvidersEdgesSitesSiteIdRebalanceWithHttpInfo(String siteId) throws ApiException {
    Object pclocalVarPostBody = null;
    
    // verify the required parameter 'siteId' is set
    if (siteId == null) {
      throw new ApiException(400, "Missing the required parameter 'siteId' when calling postProvidersEdgesSitesSiteIdRebalance");
    }
    
    // create path and map variables
    String pclocalVarPath = "/api/v2/telephony/providers/edges/sites/{siteId}/rebalance".replaceAll("\\{format\\}","json")
      .replaceAll("\\{" + "siteId" + "\\}", pcapiClient.escapeString(siteId.toString()));

    // query params
    List pclocalVarQueryParams = new ArrayList();
    Map pclocalVarHeaderParams = new HashMap();
    Map pclocalVarFormParams = new HashMap();


    
    
    final String[] pclocalVarAccepts = {
      "application/json"
    };
    final String pclocalVarAccept = pcapiClient.selectHeaderAccept(pclocalVarAccepts);

    final String[] pclocalVarContentTypes = {
      "application/json"
    };
    final String pclocalVarContentType = pcapiClient.selectHeaderContentType(pclocalVarContentTypes);

    String[] pclocalVarAuthNames = new String[] { "PureCloud Auth" };

    return pcapiClient.invokeAPIVerbose(pclocalVarPath, "POST", pclocalVarQueryParams, pclocalVarPostBody, pclocalVarHeaderParams, pclocalVarFormParams, pclocalVarAccept, pclocalVarContentType, pclocalVarAuthNames, null);
  }
  /**
   * Create a Trunk Base Settings object
   * 
   * @param body Trunk base settings (required)
   * @return TrunkBase
   * @throws ApiException if fails to make API call
   */
  public TrunkBase postProvidersEdgesTrunkbasesettings(TrunkBase body) throws ApiException {
    return postProvidersEdgesTrunkbasesettingsWithHttpInfo(body).getResponseObject();
  }

  /**
   * Create a Trunk Base Settings object
   * 
   * @param body Trunk base settings (required)
   * @return TrunkBase
   * @throws ApiException if fails to make API call
   */
  public ApiResponse postProvidersEdgesTrunkbasesettingsWithHttpInfo(TrunkBase body) throws ApiException {
    Object pclocalVarPostBody = body;
    
    // verify the required parameter 'body' is set
    if (body == null) {
      throw new ApiException(400, "Missing the required parameter 'body' when calling postProvidersEdgesTrunkbasesettings");
    }
    
    // create path and map variables
    String pclocalVarPath = "/api/v2/telephony/providers/edges/trunkbasesettings".replaceAll("\\{format\\}","json");

    // query params
    List pclocalVarQueryParams = new ArrayList();
    Map pclocalVarHeaderParams = new HashMap();
    Map pclocalVarFormParams = new HashMap();


    
    
    final String[] pclocalVarAccepts = {
      "application/json"
    };
    final String pclocalVarAccept = pcapiClient.selectHeaderAccept(pclocalVarAccepts);

    final String[] pclocalVarContentTypes = {
      "application/json"
    };
    final String pclocalVarContentType = pcapiClient.selectHeaderContentType(pclocalVarContentTypes);

    String[] pclocalVarAuthNames = new String[] { "PureCloud Auth" };

    return pcapiClient.invokeAPIVerbose(pclocalVarPath, "POST", pclocalVarQueryParams, pclocalVarPostBody, pclocalVarHeaderParams, pclocalVarFormParams, pclocalVarAccept, pclocalVarContentType, pclocalVarAuthNames, new TypeReference() {});
  }
  /**
   * Update a certificate authority.
   * 
   * @param certificateId Certificate ID (required)
   * @param body Certificate authority (required)
   * @return DomainCertificateAuthority
   * @throws ApiException if fails to make API call
   */
  public DomainCertificateAuthority putProvidersEdgesCertificateauthoritiesCertificateId(String certificateId, DomainCertificateAuthority body) throws ApiException {
    return putProvidersEdgesCertificateauthoritiesCertificateIdWithHttpInfo(certificateId, body).getResponseObject();
  }

  /**
   * Update a certificate authority.
   * 
   * @param certificateId Certificate ID (required)
   * @param body Certificate authority (required)
   * @return DomainCertificateAuthority
   * @throws ApiException if fails to make API call
   */
  public ApiResponse putProvidersEdgesCertificateauthoritiesCertificateIdWithHttpInfo(String certificateId, DomainCertificateAuthority body) throws ApiException {
    Object pclocalVarPostBody = body;
    
    // verify the required parameter 'certificateId' is set
    if (certificateId == null) {
      throw new ApiException(400, "Missing the required parameter 'certificateId' when calling putProvidersEdgesCertificateauthoritiesCertificateId");
    }
    
    // verify the required parameter 'body' is set
    if (body == null) {
      throw new ApiException(400, "Missing the required parameter 'body' when calling putProvidersEdgesCertificateauthoritiesCertificateId");
    }
    
    // create path and map variables
    String pclocalVarPath = "/api/v2/telephony/providers/edges/certificateauthorities/{certificateId}".replaceAll("\\{format\\}","json")
      .replaceAll("\\{" + "certificateId" + "\\}", pcapiClient.escapeString(certificateId.toString()));

    // query params
    List pclocalVarQueryParams = new ArrayList();
    Map pclocalVarHeaderParams = new HashMap();
    Map pclocalVarFormParams = new HashMap();


    
    
    final String[] pclocalVarAccepts = {
      "application/json"
    };
    final String pclocalVarAccept = pcapiClient.selectHeaderAccept(pclocalVarAccepts);

    final String[] pclocalVarContentTypes = {
      "application/json"
    };
    final String pclocalVarContentType = pcapiClient.selectHeaderContentType(pclocalVarContentTypes);

    String[] pclocalVarAuthNames = new String[] { "PureCloud Auth" };

    return pcapiClient.invokeAPIVerbose(pclocalVarPath, "PUT", pclocalVarQueryParams, pclocalVarPostBody, pclocalVarHeaderParams, pclocalVarFormParams, pclocalVarAccept, pclocalVarContentType, pclocalVarAuthNames, new TypeReference() {});
  }
  /**
   * Update a DID Pool by ID.
   * 
   * @param didPoolId DID pool ID (required)
   * @param body DID pool (required)
   * @return DIDPool
   * @throws ApiException if fails to make API call
   */
  public DIDPool putProvidersEdgesDidpoolsDidpoolId(String didPoolId, DIDPool body) throws ApiException {
    return putProvidersEdgesDidpoolsDidpoolIdWithHttpInfo(didPoolId, body).getResponseObject();
  }

  /**
   * Update a DID Pool by ID.
   * 
   * @param didPoolId DID pool ID (required)
   * @param body DID pool (required)
   * @return DIDPool
   * @throws ApiException if fails to make API call
   */
  public ApiResponse putProvidersEdgesDidpoolsDidpoolIdWithHttpInfo(String didPoolId, DIDPool body) throws ApiException {
    Object pclocalVarPostBody = body;
    
    // verify the required parameter 'didPoolId' is set
    if (didPoolId == null) {
      throw new ApiException(400, "Missing the required parameter 'didPoolId' when calling putProvidersEdgesDidpoolsDidpoolId");
    }
    
    // verify the required parameter 'body' is set
    if (body == null) {
      throw new ApiException(400, "Missing the required parameter 'body' when calling putProvidersEdgesDidpoolsDidpoolId");
    }
    
    // create path and map variables
    String pclocalVarPath = "/api/v2/telephony/providers/edges/didpools/{didPoolId}".replaceAll("\\{format\\}","json")
      .replaceAll("\\{" + "didPoolId" + "\\}", pcapiClient.escapeString(didPoolId.toString()));

    // query params
    List pclocalVarQueryParams = new ArrayList();
    Map pclocalVarHeaderParams = new HashMap();
    Map pclocalVarFormParams = new HashMap();


    
    
    final String[] pclocalVarAccepts = {
      "application/json"
    };
    final String pclocalVarAccept = pcapiClient.selectHeaderAccept(pclocalVarAccepts);

    final String[] pclocalVarContentTypes = {
      "application/json"
    };
    final String pclocalVarContentType = pcapiClient.selectHeaderContentType(pclocalVarContentTypes);

    String[] pclocalVarAuthNames = new String[] { "PureCloud Auth" };

    return pcapiClient.invokeAPIVerbose(pclocalVarPath, "PUT", pclocalVarQueryParams, pclocalVarPostBody, pclocalVarHeaderParams, pclocalVarFormParams, pclocalVarAccept, pclocalVarContentType, pclocalVarAuthNames, new TypeReference() {});
  }
  /**
   * Update a DID by ID.
   * 
   * @param didId DID ID (required)
   * @param body DID (required)
   * @return DID
   * @throws ApiException if fails to make API call
   */
  public DID putProvidersEdgesDidsDidId(String didId, DID body) throws ApiException {
    return putProvidersEdgesDidsDidIdWithHttpInfo(didId, body).getResponseObject();
  }

  /**
   * Update a DID by ID.
   * 
   * @param didId DID ID (required)
   * @param body DID (required)
   * @return DID
   * @throws ApiException if fails to make API call
   */
  public ApiResponse putProvidersEdgesDidsDidIdWithHttpInfo(String didId, DID body) throws ApiException {
    Object pclocalVarPostBody = body;
    
    // verify the required parameter 'didId' is set
    if (didId == null) {
      throw new ApiException(400, "Missing the required parameter 'didId' when calling putProvidersEdgesDidsDidId");
    }
    
    // verify the required parameter 'body' is set
    if (body == null) {
      throw new ApiException(400, "Missing the required parameter 'body' when calling putProvidersEdgesDidsDidId");
    }
    
    // create path and map variables
    String pclocalVarPath = "/api/v2/telephony/providers/edges/dids/{didId}".replaceAll("\\{format\\}","json")
      .replaceAll("\\{" + "didId" + "\\}", pcapiClient.escapeString(didId.toString()));

    // query params
    List pclocalVarQueryParams = new ArrayList();
    Map pclocalVarHeaderParams = new HashMap();
    Map pclocalVarFormParams = new HashMap();


    
    
    final String[] pclocalVarAccepts = {
      "application/json"
    };
    final String pclocalVarAccept = pcapiClient.selectHeaderAccept(pclocalVarAccepts);

    final String[] pclocalVarContentTypes = {
      "application/json"
    };
    final String pclocalVarContentType = pcapiClient.selectHeaderContentType(pclocalVarContentTypes);

    String[] pclocalVarAuthNames = new String[] { "PureCloud Auth" };

    return pcapiClient.invokeAPIVerbose(pclocalVarPath, "PUT", pclocalVarQueryParams, pclocalVarPostBody, pclocalVarHeaderParams, pclocalVarFormParams, pclocalVarAccept, pclocalVarContentType, pclocalVarAuthNames, new TypeReference() {});
  }
  /**
   * Update a edge.
   * 
   * @param edgeId Edge ID (required)
   * @param body Edge (required)
   * @return Edge
   * @throws ApiException if fails to make API call
   */
  public Edge putProvidersEdgesEdgeId(String edgeId, Edge body) throws ApiException {
    return putProvidersEdgesEdgeIdWithHttpInfo(edgeId, body).getResponseObject();
  }

  /**
   * Update a edge.
   * 
   * @param edgeId Edge ID (required)
   * @param body Edge (required)
   * @return Edge
   * @throws ApiException if fails to make API call
   */
  public ApiResponse putProvidersEdgesEdgeIdWithHttpInfo(String edgeId, Edge body) throws ApiException {
    Object pclocalVarPostBody = body;
    
    // verify the required parameter 'edgeId' is set
    if (edgeId == null) {
      throw new ApiException(400, "Missing the required parameter 'edgeId' when calling putProvidersEdgesEdgeId");
    }
    
    // verify the required parameter 'body' is set
    if (body == null) {
      throw new ApiException(400, "Missing the required parameter 'body' when calling putProvidersEdgesEdgeId");
    }
    
    // create path and map variables
    String pclocalVarPath = "/api/v2/telephony/providers/edges/{edgeId}".replaceAll("\\{format\\}","json")
      .replaceAll("\\{" + "edgeId" + "\\}", pcapiClient.escapeString(edgeId.toString()));

    // query params
    List pclocalVarQueryParams = new ArrayList();
    Map pclocalVarHeaderParams = new HashMap();
    Map pclocalVarFormParams = new HashMap();


    
    
    final String[] pclocalVarAccepts = {
      "application/json"
    };
    final String pclocalVarAccept = pcapiClient.selectHeaderAccept(pclocalVarAccepts);

    final String[] pclocalVarContentTypes = {
      "application/json"
    };
    final String pclocalVarContentType = pcapiClient.selectHeaderContentType(pclocalVarContentTypes);

    String[] pclocalVarAuthNames = new String[] { "PureCloud Auth" };

    return pcapiClient.invokeAPIVerbose(pclocalVarPath, "PUT", pclocalVarQueryParams, pclocalVarPostBody, pclocalVarHeaderParams, pclocalVarFormParams, pclocalVarAccept, pclocalVarContentType, pclocalVarAuthNames, new TypeReference() {});
  }
  /**
   * Update a line.
   * 
   * @param edgeId Edge ID (required)
   * @param lineId Line ID (required)
   * @param body Line (required)
   * @return EdgeLine
   * @throws ApiException if fails to make API call
   */
  public EdgeLine putProvidersEdgesEdgeIdLinesLineId(String edgeId, String lineId, EdgeLine body) throws ApiException {
    return putProvidersEdgesEdgeIdLinesLineIdWithHttpInfo(edgeId, lineId, body).getResponseObject();
  }

  /**
   * Update a line.
   * 
   * @param edgeId Edge ID (required)
   * @param lineId Line ID (required)
   * @param body Line (required)
   * @return EdgeLine
   * @throws ApiException if fails to make API call
   */
  public ApiResponse putProvidersEdgesEdgeIdLinesLineIdWithHttpInfo(String edgeId, String lineId, EdgeLine body) throws ApiException {
    Object pclocalVarPostBody = body;
    
    // verify the required parameter 'edgeId' is set
    if (edgeId == null) {
      throw new ApiException(400, "Missing the required parameter 'edgeId' when calling putProvidersEdgesEdgeIdLinesLineId");
    }
    
    // verify the required parameter 'lineId' is set
    if (lineId == null) {
      throw new ApiException(400, "Missing the required parameter 'lineId' when calling putProvidersEdgesEdgeIdLinesLineId");
    }
    
    // verify the required parameter 'body' is set
    if (body == null) {
      throw new ApiException(400, "Missing the required parameter 'body' when calling putProvidersEdgesEdgeIdLinesLineId");
    }
    
    // create path and map variables
    String pclocalVarPath = "/api/v2/telephony/providers/edges/{edgeId}/lines/{lineId}".replaceAll("\\{format\\}","json")
      .replaceAll("\\{" + "edgeId" + "\\}", pcapiClient.escapeString(edgeId.toString()))
      .replaceAll("\\{" + "lineId" + "\\}", pcapiClient.escapeString(lineId.toString()));

    // query params
    List pclocalVarQueryParams = new ArrayList();
    Map pclocalVarHeaderParams = new HashMap();
    Map pclocalVarFormParams = new HashMap();


    
    
    final String[] pclocalVarAccepts = {
      "application/json"
    };
    final String pclocalVarAccept = pcapiClient.selectHeaderAccept(pclocalVarAccepts);

    final String[] pclocalVarContentTypes = {
      "application/json"
    };
    final String pclocalVarContentType = pcapiClient.selectHeaderContentType(pclocalVarContentTypes);

    String[] pclocalVarAuthNames = new String[] { "PureCloud Auth" };

    return pcapiClient.invokeAPIVerbose(pclocalVarPath, "PUT", pclocalVarQueryParams, pclocalVarPostBody, pclocalVarHeaderParams, pclocalVarFormParams, pclocalVarAccept, pclocalVarContentType, pclocalVarAuthNames, new TypeReference() {});
  }
  /**
   * Update an edge logical interface.
   * 
   * @param edgeId Edge ID (required)
   * @param interfaceId Interface ID (required)
   * @param body Logical interface (required)
   * @return DomainLogicalInterface
   * @throws ApiException if fails to make API call
   */
  public DomainLogicalInterface putProvidersEdgesEdgeIdLogicalinterfacesInterfaceId(String edgeId, String interfaceId, DomainLogicalInterface body) throws ApiException {
    return putProvidersEdgesEdgeIdLogicalinterfacesInterfaceIdWithHttpInfo(edgeId, interfaceId, body).getResponseObject();
  }

  /**
   * Update an edge logical interface.
   * 
   * @param edgeId Edge ID (required)
   * @param interfaceId Interface ID (required)
   * @param body Logical interface (required)
   * @return DomainLogicalInterface
   * @throws ApiException if fails to make API call
   */
  public ApiResponse putProvidersEdgesEdgeIdLogicalinterfacesInterfaceIdWithHttpInfo(String edgeId, String interfaceId, DomainLogicalInterface body) throws ApiException {
    Object pclocalVarPostBody = body;
    
    // verify the required parameter 'edgeId' is set
    if (edgeId == null) {
      throw new ApiException(400, "Missing the required parameter 'edgeId' when calling putProvidersEdgesEdgeIdLogicalinterfacesInterfaceId");
    }
    
    // verify the required parameter 'interfaceId' is set
    if (interfaceId == null) {
      throw new ApiException(400, "Missing the required parameter 'interfaceId' when calling putProvidersEdgesEdgeIdLogicalinterfacesInterfaceId");
    }
    
    // verify the required parameter 'body' is set
    if (body == null) {
      throw new ApiException(400, "Missing the required parameter 'body' when calling putProvidersEdgesEdgeIdLogicalinterfacesInterfaceId");
    }
    
    // create path and map variables
    String pclocalVarPath = "/api/v2/telephony/providers/edges/{edgeId}/logicalinterfaces/{interfaceId}".replaceAll("\\{format\\}","json")
      .replaceAll("\\{" + "edgeId" + "\\}", pcapiClient.escapeString(edgeId.toString()))
      .replaceAll("\\{" + "interfaceId" + "\\}", pcapiClient.escapeString(interfaceId.toString()));

    // query params
    List pclocalVarQueryParams = new ArrayList();
    Map pclocalVarHeaderParams = new HashMap();
    Map pclocalVarFormParams = new HashMap();


    
    
    final String[] pclocalVarAccepts = {
      "application/json"
    };
    final String pclocalVarAccept = pcapiClient.selectHeaderAccept(pclocalVarAccepts);

    final String[] pclocalVarContentTypes = {
      "application/json"
    };
    final String pclocalVarContentType = pcapiClient.selectHeaderContentType(pclocalVarContentTypes);

    String[] pclocalVarAuthNames = new String[] { "PureCloud Auth" };

    return pcapiClient.invokeAPIVerbose(pclocalVarPath, "PUT", pclocalVarQueryParams, pclocalVarPostBody, pclocalVarHeaderParams, pclocalVarFormParams, pclocalVarAccept, pclocalVarContentType, pclocalVarAuthNames, new TypeReference() {});
  }
  /**
   * Update an edge group.
   * 
   * @param edgeGroupId Edge group ID (required)
   * @param body EdgeGroup (required)
   * @return EdgeGroup
   * @throws ApiException if fails to make API call
   */
  public EdgeGroup putProvidersEdgesEdgegroupsEdgegroupId(String edgeGroupId, EdgeGroup body) throws ApiException {
    return putProvidersEdgesEdgegroupsEdgegroupIdWithHttpInfo(edgeGroupId, body).getResponseObject();
  }

  /**
   * Update an edge group.
   * 
   * @param edgeGroupId Edge group ID (required)
   * @param body EdgeGroup (required)
   * @return EdgeGroup
   * @throws ApiException if fails to make API call
   */
  public ApiResponse putProvidersEdgesEdgegroupsEdgegroupIdWithHttpInfo(String edgeGroupId, EdgeGroup body) throws ApiException {
    Object pclocalVarPostBody = body;
    
    // verify the required parameter 'edgeGroupId' is set
    if (edgeGroupId == null) {
      throw new ApiException(400, "Missing the required parameter 'edgeGroupId' when calling putProvidersEdgesEdgegroupsEdgegroupId");
    }
    
    // verify the required parameter 'body' is set
    if (body == null) {
      throw new ApiException(400, "Missing the required parameter 'body' when calling putProvidersEdgesEdgegroupsEdgegroupId");
    }
    
    // create path and map variables
    String pclocalVarPath = "/api/v2/telephony/providers/edges/edgegroups/{edgeGroupId}".replaceAll("\\{format\\}","json")
      .replaceAll("\\{" + "edgeGroupId" + "\\}", pcapiClient.escapeString(edgeGroupId.toString()));

    // query params
    List pclocalVarQueryParams = new ArrayList();
    Map pclocalVarHeaderParams = new HashMap();
    Map pclocalVarFormParams = new HashMap();


    
    
    final String[] pclocalVarAccepts = {
      "application/json"
    };
    final String pclocalVarAccept = pcapiClient.selectHeaderAccept(pclocalVarAccepts);

    final String[] pclocalVarContentTypes = {
      "application/json"
    };
    final String pclocalVarContentType = pcapiClient.selectHeaderContentType(pclocalVarContentTypes);

    String[] pclocalVarAuthNames = new String[] { "PureCloud Auth" };

    return pcapiClient.invokeAPIVerbose(pclocalVarPath, "PUT", pclocalVarQueryParams, pclocalVarPostBody, pclocalVarHeaderParams, pclocalVarFormParams, pclocalVarAccept, pclocalVarContentType, pclocalVarAuthNames, new TypeReference() {});
  }
  /**
   * Update the edge trunk base associated with the edge group
   * 
   * @param edgegroupId Edge Group ID (required)
   * @param edgetrunkbaseId Edge Trunk Base ID (required)
   * @param body EdgeTrunkBase (required)
   * @return EdgeTrunkBase
   * @throws ApiException if fails to make API call
   */
  public EdgeTrunkBase putProvidersEdgesEdgegroupsEdgegroupIdEdgetrunkbasesEdgetrunkbaseId(String edgegroupId, String edgetrunkbaseId, EdgeTrunkBase body) throws ApiException {
    return putProvidersEdgesEdgegroupsEdgegroupIdEdgetrunkbasesEdgetrunkbaseIdWithHttpInfo(edgegroupId, edgetrunkbaseId, body).getResponseObject();
  }

  /**
   * Update the edge trunk base associated with the edge group
   * 
   * @param edgegroupId Edge Group ID (required)
   * @param edgetrunkbaseId Edge Trunk Base ID (required)
   * @param body EdgeTrunkBase (required)
   * @return EdgeTrunkBase
   * @throws ApiException if fails to make API call
   */
  public ApiResponse putProvidersEdgesEdgegroupsEdgegroupIdEdgetrunkbasesEdgetrunkbaseIdWithHttpInfo(String edgegroupId, String edgetrunkbaseId, EdgeTrunkBase body) throws ApiException {
    Object pclocalVarPostBody = body;
    
    // verify the required parameter 'edgegroupId' is set
    if (edgegroupId == null) {
      throw new ApiException(400, "Missing the required parameter 'edgegroupId' when calling putProvidersEdgesEdgegroupsEdgegroupIdEdgetrunkbasesEdgetrunkbaseId");
    }
    
    // verify the required parameter 'edgetrunkbaseId' is set
    if (edgetrunkbaseId == null) {
      throw new ApiException(400, "Missing the required parameter 'edgetrunkbaseId' when calling putProvidersEdgesEdgegroupsEdgegroupIdEdgetrunkbasesEdgetrunkbaseId");
    }
    
    // verify the required parameter 'body' is set
    if (body == null) {
      throw new ApiException(400, "Missing the required parameter 'body' when calling putProvidersEdgesEdgegroupsEdgegroupIdEdgetrunkbasesEdgetrunkbaseId");
    }
    
    // create path and map variables
    String pclocalVarPath = "/api/v2/telephony/providers/edges/edgegroups/{edgegroupId}/edgetrunkbases/{edgetrunkbaseId}".replaceAll("\\{format\\}","json")
      .replaceAll("\\{" + "edgegroupId" + "\\}", pcapiClient.escapeString(edgegroupId.toString()))
      .replaceAll("\\{" + "edgetrunkbaseId" + "\\}", pcapiClient.escapeString(edgetrunkbaseId.toString()));

    // query params
    List pclocalVarQueryParams = new ArrayList();
    Map pclocalVarHeaderParams = new HashMap();
    Map pclocalVarFormParams = new HashMap();


    
    
    final String[] pclocalVarAccepts = {
      "application/json"
    };
    final String pclocalVarAccept = pcapiClient.selectHeaderAccept(pclocalVarAccepts);

    final String[] pclocalVarContentTypes = {
      "application/json"
    };
    final String pclocalVarContentType = pcapiClient.selectHeaderContentType(pclocalVarContentTypes);

    String[] pclocalVarAuthNames = new String[] { "PureCloud Auth" };

    return pcapiClient.invokeAPIVerbose(pclocalVarPath, "PUT", pclocalVarQueryParams, pclocalVarPostBody, pclocalVarHeaderParams, pclocalVarFormParams, pclocalVarAccept, pclocalVarContentType, pclocalVarAuthNames, new TypeReference() {});
  }
  /**
   * Update endpoint
   * 
   * @param endpointId Endpoint ID (required)
   * @param body EndpointTemplate (required)
   * @return Endpoint
   * @throws ApiException if fails to make API call
   */
  public Endpoint putProvidersEdgesEndpointsEndpointId(String endpointId, Endpoint body) throws ApiException {
    return putProvidersEdgesEndpointsEndpointIdWithHttpInfo(endpointId, body).getResponseObject();
  }

  /**
   * Update endpoint
   * 
   * @param endpointId Endpoint ID (required)
   * @param body EndpointTemplate (required)
   * @return Endpoint
   * @throws ApiException if fails to make API call
   */
  public ApiResponse putProvidersEdgesEndpointsEndpointIdWithHttpInfo(String endpointId, Endpoint body) throws ApiException {
    Object pclocalVarPostBody = body;
    
    // verify the required parameter 'endpointId' is set
    if (endpointId == null) {
      throw new ApiException(400, "Missing the required parameter 'endpointId' when calling putProvidersEdgesEndpointsEndpointId");
    }
    
    // verify the required parameter 'body' is set
    if (body == null) {
      throw new ApiException(400, "Missing the required parameter 'body' when calling putProvidersEdgesEndpointsEndpointId");
    }
    
    // create path and map variables
    String pclocalVarPath = "/api/v2/telephony/providers/edges/endpoints/{endpointId}".replaceAll("\\{format\\}","json")
      .replaceAll("\\{" + "endpointId" + "\\}", pcapiClient.escapeString(endpointId.toString()));

    // query params
    List pclocalVarQueryParams = new ArrayList();
    Map pclocalVarHeaderParams = new HashMap();
    Map pclocalVarFormParams = new HashMap();


    
    
    final String[] pclocalVarAccepts = {
      "application/json"
    };
    final String pclocalVarAccept = pcapiClient.selectHeaderAccept(pclocalVarAccepts);

    final String[] pclocalVarContentTypes = {
      "application/json"
    };
    final String pclocalVarContentType = pcapiClient.selectHeaderContentType(pclocalVarContentTypes);

    String[] pclocalVarAuthNames = new String[] { "PureCloud Auth" };

    return pcapiClient.invokeAPIVerbose(pclocalVarPath, "PUT", pclocalVarQueryParams, pclocalVarPostBody, pclocalVarHeaderParams, pclocalVarFormParams, pclocalVarAccept, pclocalVarContentType, pclocalVarAuthNames, new TypeReference() {});
  }
  /**
   * Update an extension pool by ID
   * 
   * @param extensionPoolId Extension pool ID (required)
   * @param body ExtensionPool (required)
   * @return ExtensionPool
   * @throws ApiException if fails to make API call
   */
  public ExtensionPool putProvidersEdgesExtensionpoolsExtensionpoolId(String extensionPoolId, ExtensionPool body) throws ApiException {
    return putProvidersEdgesExtensionpoolsExtensionpoolIdWithHttpInfo(extensionPoolId, body).getResponseObject();
  }

  /**
   * Update an extension pool by ID
   * 
   * @param extensionPoolId Extension pool ID (required)
   * @param body ExtensionPool (required)
   * @return ExtensionPool
   * @throws ApiException if fails to make API call
   */
  public ApiResponse putProvidersEdgesExtensionpoolsExtensionpoolIdWithHttpInfo(String extensionPoolId, ExtensionPool body) throws ApiException {
    Object pclocalVarPostBody = body;
    
    // verify the required parameter 'extensionPoolId' is set
    if (extensionPoolId == null) {
      throw new ApiException(400, "Missing the required parameter 'extensionPoolId' when calling putProvidersEdgesExtensionpoolsExtensionpoolId");
    }
    
    // verify the required parameter 'body' is set
    if (body == null) {
      throw new ApiException(400, "Missing the required parameter 'body' when calling putProvidersEdgesExtensionpoolsExtensionpoolId");
    }
    
    // create path and map variables
    String pclocalVarPath = "/api/v2/telephony/providers/edges/extensionpools/{extensionPoolId}".replaceAll("\\{format\\}","json")
      .replaceAll("\\{" + "extensionPoolId" + "\\}", pcapiClient.escapeString(extensionPoolId.toString()));

    // query params
    List pclocalVarQueryParams = new ArrayList();
    Map pclocalVarHeaderParams = new HashMap();
    Map pclocalVarFormParams = new HashMap();


    
    
    final String[] pclocalVarAccepts = {
      "application/json"
    };
    final String pclocalVarAccept = pcapiClient.selectHeaderAccept(pclocalVarAccepts);

    final String[] pclocalVarContentTypes = {
      "application/json"
    };
    final String pclocalVarContentType = pcapiClient.selectHeaderContentType(pclocalVarContentTypes);

    String[] pclocalVarAuthNames = new String[] { "PureCloud Auth" };

    return pcapiClient.invokeAPIVerbose(pclocalVarPath, "PUT", pclocalVarQueryParams, pclocalVarPostBody, pclocalVarHeaderParams, pclocalVarFormParams, pclocalVarAccept, pclocalVarContentType, pclocalVarAuthNames, new TypeReference() {});
  }
  /**
   * Update an extension by ID.
   * 
   * @param extensionId Extension ID (required)
   * @param body Extension (required)
   * @return Extension
   * @throws ApiException if fails to make API call
   */
  public Extension putProvidersEdgesExtensionsExtensionId(String extensionId, Extension body) throws ApiException {
    return putProvidersEdgesExtensionsExtensionIdWithHttpInfo(extensionId, body).getResponseObject();
  }

  /**
   * Update an extension by ID.
   * 
   * @param extensionId Extension ID (required)
   * @param body Extension (required)
   * @return Extension
   * @throws ApiException if fails to make API call
   */
  public ApiResponse putProvidersEdgesExtensionsExtensionIdWithHttpInfo(String extensionId, Extension body) throws ApiException {
    Object pclocalVarPostBody = body;
    
    // verify the required parameter 'extensionId' is set
    if (extensionId == null) {
      throw new ApiException(400, "Missing the required parameter 'extensionId' when calling putProvidersEdgesExtensionsExtensionId");
    }
    
    // verify the required parameter 'body' is set
    if (body == null) {
      throw new ApiException(400, "Missing the required parameter 'body' when calling putProvidersEdgesExtensionsExtensionId");
    }
    
    // create path and map variables
    String pclocalVarPath = "/api/v2/telephony/providers/edges/extensions/{extensionId}".replaceAll("\\{format\\}","json")
      .replaceAll("\\{" + "extensionId" + "\\}", pcapiClient.escapeString(extensionId.toString()));

    // query params
    List pclocalVarQueryParams = new ArrayList();
    Map pclocalVarHeaderParams = new HashMap();
    Map pclocalVarFormParams = new HashMap();


    
    
    final String[] pclocalVarAccepts = {
      "application/json"
    };
    final String pclocalVarAccept = pcapiClient.selectHeaderAccept(pclocalVarAccepts);

    final String[] pclocalVarContentTypes = {
      "application/json"
    };
    final String pclocalVarContentType = pcapiClient.selectHeaderContentType(pclocalVarContentTypes);

    String[] pclocalVarAuthNames = new String[] { "PureCloud Auth" };

    return pcapiClient.invokeAPIVerbose(pclocalVarPath, "PUT", pclocalVarQueryParams, pclocalVarPostBody, pclocalVarHeaderParams, pclocalVarFormParams, pclocalVarAccept, pclocalVarContentType, pclocalVarAuthNames, new TypeReference() {});
  }
  /**
   * Update outbound route
   * 
   * @param outboundRouteId Outbound route ID (required)
   * @param body OutboundRoute (required)
   * @return OutboundRoute
   * @throws ApiException if fails to make API call
   */
  public OutboundRoute putProvidersEdgesOutboundroutesOutboundrouteId(String outboundRouteId, OutboundRoute body) throws ApiException {
    return putProvidersEdgesOutboundroutesOutboundrouteIdWithHttpInfo(outboundRouteId, body).getResponseObject();
  }

  /**
   * Update outbound route
   * 
   * @param outboundRouteId Outbound route ID (required)
   * @param body OutboundRoute (required)
   * @return OutboundRoute
   * @throws ApiException if fails to make API call
   */
  public ApiResponse putProvidersEdgesOutboundroutesOutboundrouteIdWithHttpInfo(String outboundRouteId, OutboundRoute body) throws ApiException {
    Object pclocalVarPostBody = body;
    
    // verify the required parameter 'outboundRouteId' is set
    if (outboundRouteId == null) {
      throw new ApiException(400, "Missing the required parameter 'outboundRouteId' when calling putProvidersEdgesOutboundroutesOutboundrouteId");
    }
    
    // verify the required parameter 'body' is set
    if (body == null) {
      throw new ApiException(400, "Missing the required parameter 'body' when calling putProvidersEdgesOutboundroutesOutboundrouteId");
    }
    
    // create path and map variables
    String pclocalVarPath = "/api/v2/telephony/providers/edges/outboundroutes/{outboundRouteId}".replaceAll("\\{format\\}","json")
      .replaceAll("\\{" + "outboundRouteId" + "\\}", pcapiClient.escapeString(outboundRouteId.toString()));

    // query params
    List pclocalVarQueryParams = new ArrayList();
    Map pclocalVarHeaderParams = new HashMap();
    Map pclocalVarFormParams = new HashMap();


    
    
    final String[] pclocalVarAccepts = {
      "application/json"
    };
    final String pclocalVarAccept = pcapiClient.selectHeaderAccept(pclocalVarAccepts);

    final String[] pclocalVarContentTypes = {
      "application/json"
    };
    final String pclocalVarContentType = pcapiClient.selectHeaderContentType(pclocalVarContentTypes);

    String[] pclocalVarAuthNames = new String[] { "PureCloud Auth" };

    return pcapiClient.invokeAPIVerbose(pclocalVarPath, "PUT", pclocalVarQueryParams, pclocalVarPostBody, pclocalVarHeaderParams, pclocalVarFormParams, pclocalVarAccept, pclocalVarContentType, pclocalVarAuthNames, new TypeReference() {});
  }
  /**
   * Update a Phone Base Settings by ID
   * 
   * @param phoneBaseId Phone base ID (required)
   * @param body Phone base settings (required)
   * @return PhoneBase
   * @throws ApiException if fails to make API call
   */
  public PhoneBase putProvidersEdgesPhonebasesettingsPhonebaseId(String phoneBaseId, PhoneBase body) throws ApiException {
    return putProvidersEdgesPhonebasesettingsPhonebaseIdWithHttpInfo(phoneBaseId, body).getResponseObject();
  }

  /**
   * Update a Phone Base Settings by ID
   * 
   * @param phoneBaseId Phone base ID (required)
   * @param body Phone base settings (required)
   * @return PhoneBase
   * @throws ApiException if fails to make API call
   */
  public ApiResponse putProvidersEdgesPhonebasesettingsPhonebaseIdWithHttpInfo(String phoneBaseId, PhoneBase body) throws ApiException {
    Object pclocalVarPostBody = body;
    
    // verify the required parameter 'phoneBaseId' is set
    if (phoneBaseId == null) {
      throw new ApiException(400, "Missing the required parameter 'phoneBaseId' when calling putProvidersEdgesPhonebasesettingsPhonebaseId");
    }
    
    // verify the required parameter 'body' is set
    if (body == null) {
      throw new ApiException(400, "Missing the required parameter 'body' when calling putProvidersEdgesPhonebasesettingsPhonebaseId");
    }
    
    // create path and map variables
    String pclocalVarPath = "/api/v2/telephony/providers/edges/phonebasesettings/{phoneBaseId}".replaceAll("\\{format\\}","json")
      .replaceAll("\\{" + "phoneBaseId" + "\\}", pcapiClient.escapeString(phoneBaseId.toString()));

    // query params
    List pclocalVarQueryParams = new ArrayList();
    Map pclocalVarHeaderParams = new HashMap();
    Map pclocalVarFormParams = new HashMap();


    
    
    final String[] pclocalVarAccepts = {
      "application/json"
    };
    final String pclocalVarAccept = pcapiClient.selectHeaderAccept(pclocalVarAccepts);

    final String[] pclocalVarContentTypes = {
      "application/json"
    };
    final String pclocalVarContentType = pcapiClient.selectHeaderContentType(pclocalVarContentTypes);

    String[] pclocalVarAuthNames = new String[] { "PureCloud Auth" };

    return pcapiClient.invokeAPIVerbose(pclocalVarPath, "PUT", pclocalVarQueryParams, pclocalVarPostBody, pclocalVarHeaderParams, pclocalVarFormParams, pclocalVarAccept, pclocalVarContentType, pclocalVarAuthNames, new TypeReference() {});
  }
  /**
   * Update a Phone by ID
   * 
   * @param phoneId Phone ID (required)
   * @param body Phone (required)
   * @return Phone
   * @throws ApiException if fails to make API call
   */
  public Phone putProvidersEdgesPhonesPhoneId(String phoneId, Phone body) throws ApiException {
    return putProvidersEdgesPhonesPhoneIdWithHttpInfo(phoneId, body).getResponseObject();
  }

  /**
   * Update a Phone by ID
   * 
   * @param phoneId Phone ID (required)
   * @param body Phone (required)
   * @return Phone
   * @throws ApiException if fails to make API call
   */
  public ApiResponse putProvidersEdgesPhonesPhoneIdWithHttpInfo(String phoneId, Phone body) throws ApiException {
    Object pclocalVarPostBody = body;
    
    // verify the required parameter 'phoneId' is set
    if (phoneId == null) {
      throw new ApiException(400, "Missing the required parameter 'phoneId' when calling putProvidersEdgesPhonesPhoneId");
    }
    
    // verify the required parameter 'body' is set
    if (body == null) {
      throw new ApiException(400, "Missing the required parameter 'body' when calling putProvidersEdgesPhonesPhoneId");
    }
    
    // create path and map variables
    String pclocalVarPath = "/api/v2/telephony/providers/edges/phones/{phoneId}".replaceAll("\\{format\\}","json")
      .replaceAll("\\{" + "phoneId" + "\\}", pcapiClient.escapeString(phoneId.toString()));

    // query params
    List pclocalVarQueryParams = new ArrayList();
    Map pclocalVarHeaderParams = new HashMap();
    Map pclocalVarFormParams = new HashMap();


    
    
    final String[] pclocalVarAccepts = {
      "application/json"
    };
    final String pclocalVarAccept = pcapiClient.selectHeaderAccept(pclocalVarAccepts);

    final String[] pclocalVarContentTypes = {
      "application/json"
    };
    final String pclocalVarContentType = pcapiClient.selectHeaderContentType(pclocalVarContentTypes);

    String[] pclocalVarAuthNames = new String[] { "PureCloud Auth" };

    return pcapiClient.invokeAPIVerbose(pclocalVarPath, "PUT", pclocalVarQueryParams, pclocalVarPostBody, pclocalVarHeaderParams, pclocalVarFormParams, pclocalVarAccept, pclocalVarContentType, pclocalVarAuthNames, new TypeReference() {});
  }
  /**
   * Update a Site by ID.
   * 
   * @param siteId Site ID (required)
   * @param body Site (required)
   * @return Site
   * @throws ApiException if fails to make API call
   */
  public Site putProvidersEdgesSitesSiteId(String siteId, Site body) throws ApiException {
    return putProvidersEdgesSitesSiteIdWithHttpInfo(siteId, body).getResponseObject();
  }

  /**
   * Update a Site by ID.
   * 
   * @param siteId Site ID (required)
   * @param body Site (required)
   * @return Site
   * @throws ApiException if fails to make API call
   */
  public ApiResponse putProvidersEdgesSitesSiteIdWithHttpInfo(String siteId, Site body) throws ApiException {
    Object pclocalVarPostBody = body;
    
    // verify the required parameter 'siteId' is set
    if (siteId == null) {
      throw new ApiException(400, "Missing the required parameter 'siteId' when calling putProvidersEdgesSitesSiteId");
    }
    
    // verify the required parameter 'body' is set
    if (body == null) {
      throw new ApiException(400, "Missing the required parameter 'body' when calling putProvidersEdgesSitesSiteId");
    }
    
    // create path and map variables
    String pclocalVarPath = "/api/v2/telephony/providers/edges/sites/{siteId}".replaceAll("\\{format\\}","json")
      .replaceAll("\\{" + "siteId" + "\\}", pcapiClient.escapeString(siteId.toString()));

    // query params
    List pclocalVarQueryParams = new ArrayList();
    Map pclocalVarHeaderParams = new HashMap();
    Map pclocalVarFormParams = new HashMap();


    
    
    final String[] pclocalVarAccepts = {
      "application/json"
    };
    final String pclocalVarAccept = pcapiClient.selectHeaderAccept(pclocalVarAccepts);

    final String[] pclocalVarContentTypes = {
      "application/json"
    };
    final String pclocalVarContentType = pcapiClient.selectHeaderContentType(pclocalVarContentTypes);

    String[] pclocalVarAuthNames = new String[] { "PureCloud Auth" };

    return pcapiClient.invokeAPIVerbose(pclocalVarPath, "PUT", pclocalVarQueryParams, pclocalVarPostBody, pclocalVarHeaderParams, pclocalVarFormParams, pclocalVarAccept, pclocalVarContentType, pclocalVarAuthNames, new TypeReference() {});
  }
  /**
   * Update the list of Number Plans.
   * 
   * @param siteId Site ID (required)
   * @param body List of number plans (required)
   * @return List
   * @throws ApiException if fails to make API call
   */
  public List putProvidersEdgesSitesSiteIdNumberplans(String siteId, List body) throws ApiException {
    return putProvidersEdgesSitesSiteIdNumberplansWithHttpInfo(siteId, body).getResponseObject();
  }

  /**
   * Update the list of Number Plans.
   * 
   * @param siteId Site ID (required)
   * @param body List of number plans (required)
   * @return List
   * @throws ApiException if fails to make API call
   */
  public ApiResponse> putProvidersEdgesSitesSiteIdNumberplansWithHttpInfo(String siteId, List body) throws ApiException {
    Object pclocalVarPostBody = body;
    
    // verify the required parameter 'siteId' is set
    if (siteId == null) {
      throw new ApiException(400, "Missing the required parameter 'siteId' when calling putProvidersEdgesSitesSiteIdNumberplans");
    }
    
    // verify the required parameter 'body' is set
    if (body == null) {
      throw new ApiException(400, "Missing the required parameter 'body' when calling putProvidersEdgesSitesSiteIdNumberplans");
    }
    
    // create path and map variables
    String pclocalVarPath = "/api/v2/telephony/providers/edges/sites/{siteId}/numberplans".replaceAll("\\{format\\}","json")
      .replaceAll("\\{" + "siteId" + "\\}", pcapiClient.escapeString(siteId.toString()));

    // query params
    List pclocalVarQueryParams = new ArrayList();
    Map pclocalVarHeaderParams = new HashMap();
    Map pclocalVarFormParams = new HashMap();


    
    
    final String[] pclocalVarAccepts = {
      "application/json"
    };
    final String pclocalVarAccept = pcapiClient.selectHeaderAccept(pclocalVarAccepts);

    final String[] pclocalVarContentTypes = {
      "application/json"
    };
    final String pclocalVarContentType = pcapiClient.selectHeaderContentType(pclocalVarContentTypes);

    String[] pclocalVarAuthNames = new String[] { "PureCloud Auth" };

    return pcapiClient.invokeAPIVerbose(pclocalVarPath, "PUT", pclocalVarQueryParams, pclocalVarPostBody, pclocalVarHeaderParams, pclocalVarFormParams, pclocalVarAccept, pclocalVarContentType, pclocalVarAuthNames, new TypeReference>() {});
  }
  /**
   * Update outbound route
   * 
   * @param siteId Site ID (required)
   * @param outboundRouteId Outbound route ID (required)
   * @param body OutboundRoute (required)
   * @return OutboundRouteBase
   * @throws ApiException if fails to make API call
   */
  public OutboundRouteBase putProvidersEdgesSitesSiteIdOutboundroutesOutboundrouteId(String siteId, String outboundRouteId, OutboundRouteBase body) throws ApiException {
    return putProvidersEdgesSitesSiteIdOutboundroutesOutboundrouteIdWithHttpInfo(siteId, outboundRouteId, body).getResponseObject();
  }

  /**
   * Update outbound route
   * 
   * @param siteId Site ID (required)
   * @param outboundRouteId Outbound route ID (required)
   * @param body OutboundRoute (required)
   * @return OutboundRouteBase
   * @throws ApiException if fails to make API call
   */
  public ApiResponse putProvidersEdgesSitesSiteIdOutboundroutesOutboundrouteIdWithHttpInfo(String siteId, String outboundRouteId, OutboundRouteBase body) throws ApiException {
    Object pclocalVarPostBody = body;
    
    // verify the required parameter 'siteId' is set
    if (siteId == null) {
      throw new ApiException(400, "Missing the required parameter 'siteId' when calling putProvidersEdgesSitesSiteIdOutboundroutesOutboundrouteId");
    }
    
    // verify the required parameter 'outboundRouteId' is set
    if (outboundRouteId == null) {
      throw new ApiException(400, "Missing the required parameter 'outboundRouteId' when calling putProvidersEdgesSitesSiteIdOutboundroutesOutboundrouteId");
    }
    
    // verify the required parameter 'body' is set
    if (body == null) {
      throw new ApiException(400, "Missing the required parameter 'body' when calling putProvidersEdgesSitesSiteIdOutboundroutesOutboundrouteId");
    }
    
    // create path and map variables
    String pclocalVarPath = "/api/v2/telephony/providers/edges/sites/{siteId}/outboundroutes/{outboundRouteId}".replaceAll("\\{format\\}","json")
      .replaceAll("\\{" + "siteId" + "\\}", pcapiClient.escapeString(siteId.toString()))
      .replaceAll("\\{" + "outboundRouteId" + "\\}", pcapiClient.escapeString(outboundRouteId.toString()));

    // query params
    List pclocalVarQueryParams = new ArrayList();
    Map pclocalVarHeaderParams = new HashMap();
    Map pclocalVarFormParams = new HashMap();


    
    
    final String[] pclocalVarAccepts = {
      "application/json"
    };
    final String pclocalVarAccept = pcapiClient.selectHeaderAccept(pclocalVarAccepts);

    final String[] pclocalVarContentTypes = {
      "application/json"
    };
    final String pclocalVarContentType = pcapiClient.selectHeaderContentType(pclocalVarContentTypes);

    String[] pclocalVarAuthNames = new String[] { "PureCloud Auth" };

    return pcapiClient.invokeAPIVerbose(pclocalVarPath, "PUT", pclocalVarQueryParams, pclocalVarPostBody, pclocalVarHeaderParams, pclocalVarFormParams, pclocalVarAccept, pclocalVarContentType, pclocalVarAuthNames, new TypeReference() {});
  }
  /**
   * Update a Trunk Base Settings object by ID
   * 
   * @param trunkBaseSettingsId Trunk Base ID (required)
   * @param body Trunk base settings (required)
   * @return TrunkBase
   * @throws ApiException if fails to make API call
   */
  public TrunkBase putProvidersEdgesTrunkbasesettingsTrunkbasesettingsId(String trunkBaseSettingsId, TrunkBase body) throws ApiException {
    return putProvidersEdgesTrunkbasesettingsTrunkbasesettingsIdWithHttpInfo(trunkBaseSettingsId, body).getResponseObject();
  }

  /**
   * Update a Trunk Base Settings object by ID
   * 
   * @param trunkBaseSettingsId Trunk Base ID (required)
   * @param body Trunk base settings (required)
   * @return TrunkBase
   * @throws ApiException if fails to make API call
   */
  public ApiResponse putProvidersEdgesTrunkbasesettingsTrunkbasesettingsIdWithHttpInfo(String trunkBaseSettingsId, TrunkBase body) throws ApiException {
    Object pclocalVarPostBody = body;
    
    // verify the required parameter 'trunkBaseSettingsId' is set
    if (trunkBaseSettingsId == null) {
      throw new ApiException(400, "Missing the required parameter 'trunkBaseSettingsId' when calling putProvidersEdgesTrunkbasesettingsTrunkbasesettingsId");
    }
    
    // verify the required parameter 'body' is set
    if (body == null) {
      throw new ApiException(400, "Missing the required parameter 'body' when calling putProvidersEdgesTrunkbasesettingsTrunkbasesettingsId");
    }
    
    // create path and map variables
    String pclocalVarPath = "/api/v2/telephony/providers/edges/trunkbasesettings/{trunkBaseSettingsId}".replaceAll("\\{format\\}","json")
      .replaceAll("\\{" + "trunkBaseSettingsId" + "\\}", pcapiClient.escapeString(trunkBaseSettingsId.toString()));

    // query params
    List pclocalVarQueryParams = new ArrayList();
    Map pclocalVarHeaderParams = new HashMap();
    Map pclocalVarFormParams = new HashMap();


    
    
    final String[] pclocalVarAccepts = {
      "application/json"
    };
    final String pclocalVarAccept = pcapiClient.selectHeaderAccept(pclocalVarAccepts);

    final String[] pclocalVarContentTypes = {
      "application/json"
    };
    final String pclocalVarContentType = pcapiClient.selectHeaderContentType(pclocalVarContentTypes);

    String[] pclocalVarAuthNames = new String[] { "PureCloud Auth" };

    return pcapiClient.invokeAPIVerbose(pclocalVarPath, "PUT", pclocalVarQueryParams, pclocalVarPostBody, pclocalVarHeaderParams, pclocalVarFormParams, pclocalVarAccept, pclocalVarContentType, pclocalVarAuthNames, new TypeReference() {});
  }
}




© 2015 - 2024 Weber Informatics LLC | Privacy Policy