=begin
PureCloud Platform API

With the PureCloud Platform API, you can control all aspects of your PureCloud environment. With the APIs you can access the system configuration, manage conversations and more.

OpenAPI spec version: v2
Contact: DeveloperEvangelists@genesys.com
Generated by: https://github.com/swagger-api/swagger-codegen.git

License: ININ
http://www.inin.com

Terms of Service: https://developer.mypurecloud.com/tos

=end

require "uri"

module PureCloud
  class TelephonyProvidersEdgeApi
    attr_accessor :api_client

    def initialize(api_client = ApiClient.default)
      @api_client = api_client
    end

    # Delete a edge.
    # 
    # @param edge_id Edge ID
    # @param [Hash] opts the optional parameters
    # @return [nil]
    def delete_telephony_providers_edge(edge_id, opts = {})
      delete_telephony_providers_edge_with_http_info(edge_id, opts)
      return nil
    end

    # Delete a edge.
    # 
    # @param edge_id Edge ID
    # @param [Hash] opts the optional parameters
    # @return [Array<(nil, Fixnum, Hash)>] nil, response status code and response headers
    def delete_telephony_providers_edge_with_http_info(edge_id, opts = {})
      if @api_client.config.debugging
        @api_client.config.logger.debug "Calling API: TelephonyProvidersEdgeApi.delete_telephony_providers_edge ..."
      end
      
      
      # verify the required parameter 'edge_id' is set
      fail ArgumentError, "Missing the required parameter 'edge_id' when calling TelephonyProvidersEdgeApi.delete_telephony_providers_edge" if edge_id.nil?
      
      
      
      
      
      # resource path
      local_var_path = "/api/v2/telephony/providers/edges/{edgeId}".sub('{format}','json').sub('{' + 'edgeId' + '}', edge_id.to_s)

      # query parameters
      query_params = {}

      # header parameters
      header_params = {}

      # HTTP header 'Accept' (if needed)
      local_header_accept = ['application/json']
      local_header_accept_result = @api_client.select_header_accept(local_header_accept) and header_params['Accept'] = local_header_accept_result

      # HTTP header 'Content-Type'
      local_header_content_type = ['application/json']
      header_params['Content-Type'] = @api_client.select_header_content_type(local_header_content_type)

      # form parameters
      form_params = {}

      # http body (model)
      post_body = nil
      
      auth_names = ['PureCloud Auth']
      data, status_code, headers = @api_client.call_api(:DELETE, local_var_path,
        :header_params => header_params,
        :query_params => query_params,
        :form_params => form_params,
        :body => post_body,
        :auth_names => auth_names)
      if @api_client.config.debugging
        @api_client.config.logger.debug "API called: TelephonyProvidersEdgeApi#delete_telephony_providers_edge\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
      end
      return data, status_code, headers
    end

    # Delete an edge logical interface
    # 
    # @param edge_id Edge ID
    # @param interface_id Interface ID
    # @param [Hash] opts the optional parameters
    # @return [nil]
    def delete_telephony_providers_edge_logicalinterface(edge_id, interface_id, opts = {})
      delete_telephony_providers_edge_logicalinterface_with_http_info(edge_id, interface_id, opts)
      return nil
    end

    # Delete an edge logical interface
    # 
    # @param edge_id Edge ID
    # @param interface_id Interface ID
    # @param [Hash] opts the optional parameters
    # @return [Array<(nil, Fixnum, Hash)>] nil, response status code and response headers
    def delete_telephony_providers_edge_logicalinterface_with_http_info(edge_id, interface_id, opts = {})
      if @api_client.config.debugging
        @api_client.config.logger.debug "Calling API: TelephonyProvidersEdgeApi.delete_telephony_providers_edge_logicalinterface ..."
      end
      
      
      # verify the required parameter 'edge_id' is set
      fail ArgumentError, "Missing the required parameter 'edge_id' when calling TelephonyProvidersEdgeApi.delete_telephony_providers_edge_logicalinterface" if edge_id.nil?
      
      
      
      
      
      
      # verify the required parameter 'interface_id' is set
      fail ArgumentError, "Missing the required parameter 'interface_id' when calling TelephonyProvidersEdgeApi.delete_telephony_providers_edge_logicalinterface" if interface_id.nil?
      
      
      
      
      
      # resource path
      local_var_path = "/api/v2/telephony/providers/edges/{edgeId}/logicalinterfaces/{interfaceId}".sub('{format}','json').sub('{' + 'edgeId' + '}', edge_id.to_s).sub('{' + 'interfaceId' + '}', interface_id.to_s)

      # query parameters
      query_params = {}

      # header parameters
      header_params = {}

      # HTTP header 'Accept' (if needed)
      local_header_accept = ['application/json']
      local_header_accept_result = @api_client.select_header_accept(local_header_accept) and header_params['Accept'] = local_header_accept_result

      # HTTP header 'Content-Type'
      local_header_content_type = ['application/json']
      header_params['Content-Type'] = @api_client.select_header_content_type(local_header_content_type)

      # form parameters
      form_params = {}

      # http body (model)
      post_body = nil
      
      auth_names = ['PureCloud Auth']
      data, status_code, headers = @api_client.call_api(:DELETE, local_var_path,
        :header_params => header_params,
        :query_params => query_params,
        :form_params => form_params,
        :body => post_body,
        :auth_names => auth_names)
      if @api_client.config.debugging
        @api_client.config.logger.debug "API called: TelephonyProvidersEdgeApi#delete_telephony_providers_edge_logicalinterface\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
      end
      return data, status_code, headers
    end

    # Cancels any in-progress update for this edge.
    # 
    # @param edge_id Edge ID
    # @param [Hash] opts the optional parameters
    # @return [nil]
    def delete_telephony_providers_edge_softwareupdate(edge_id, opts = {})
      delete_telephony_providers_edge_softwareupdate_with_http_info(edge_id, opts)
      return nil
    end

    # Cancels any in-progress update for this edge.
    # 
    # @param edge_id Edge ID
    # @param [Hash] opts the optional parameters
    # @return [Array<(nil, Fixnum, Hash)>] nil, response status code and response headers
    def delete_telephony_providers_edge_softwareupdate_with_http_info(edge_id, opts = {})
      if @api_client.config.debugging
        @api_client.config.logger.debug "Calling API: TelephonyProvidersEdgeApi.delete_telephony_providers_edge_softwareupdate ..."
      end
      
      
      # verify the required parameter 'edge_id' is set
      fail ArgumentError, "Missing the required parameter 'edge_id' when calling TelephonyProvidersEdgeApi.delete_telephony_providers_edge_softwareupdate" if edge_id.nil?
      
      
      
      
      
      # resource path
      local_var_path = "/api/v2/telephony/providers/edges/{edgeId}/softwareupdate".sub('{format}','json').sub('{' + 'edgeId' + '}', edge_id.to_s)

      # query parameters
      query_params = {}

      # header parameters
      header_params = {}

      # HTTP header 'Accept' (if needed)
      local_header_accept = ['application/json']
      local_header_accept_result = @api_client.select_header_accept(local_header_accept) and header_params['Accept'] = local_header_accept_result

      # HTTP header 'Content-Type'
      local_header_content_type = ['application/json']
      header_params['Content-Type'] = @api_client.select_header_content_type(local_header_content_type)

      # form parameters
      form_params = {}

      # http body (model)
      post_body = nil
      
      auth_names = ['PureCloud Auth']
      data, status_code, headers = @api_client.call_api(:DELETE, local_var_path,
        :header_params => header_params,
        :query_params => query_params,
        :form_params => form_params,
        :body => post_body,
        :auth_names => auth_names)
      if @api_client.config.debugging
        @api_client.config.logger.debug "API called: TelephonyProvidersEdgeApi#delete_telephony_providers_edge_softwareupdate\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
      end
      return data, status_code, headers
    end

    # Delete a certificate authority.
    # 
    # @param certificate_id Certificate ID
    # @param [Hash] opts the optional parameters
    # @return [nil]
    def delete_telephony_providers_edges_certificateauthority(certificate_id, opts = {})
      delete_telephony_providers_edges_certificateauthority_with_http_info(certificate_id, opts)
      return nil
    end

    # Delete a certificate authority.
    # 
    # @param certificate_id Certificate ID
    # @param [Hash] opts the optional parameters
    # @return [Array<(nil, Fixnum, Hash)>] nil, response status code and response headers
    def delete_telephony_providers_edges_certificateauthority_with_http_info(certificate_id, opts = {})
      if @api_client.config.debugging
        @api_client.config.logger.debug "Calling API: TelephonyProvidersEdgeApi.delete_telephony_providers_edges_certificateauthority ..."
      end
      
      
      # verify the required parameter 'certificate_id' is set
      fail ArgumentError, "Missing the required parameter 'certificate_id' when calling TelephonyProvidersEdgeApi.delete_telephony_providers_edges_certificateauthority" if certificate_id.nil?
      
      
      
      
      
      # resource path
      local_var_path = "/api/v2/telephony/providers/edges/certificateauthorities/{certificateId}".sub('{format}','json').sub('{' + 'certificateId' + '}', certificate_id.to_s)

      # query parameters
      query_params = {}

      # header parameters
      header_params = {}

      # HTTP header 'Accept' (if needed)
      local_header_accept = ['application/json']
      local_header_accept_result = @api_client.select_header_accept(local_header_accept) and header_params['Accept'] = local_header_accept_result

      # HTTP header 'Content-Type'
      local_header_content_type = ['application/json']
      header_params['Content-Type'] = @api_client.select_header_content_type(local_header_content_type)

      # form parameters
      form_params = {}

      # http body (model)
      post_body = nil
      
      auth_names = ['PureCloud Auth']
      data, status_code, headers = @api_client.call_api(:DELETE, local_var_path,
        :header_params => header_params,
        :query_params => query_params,
        :form_params => form_params,
        :body => post_body,
        :auth_names => auth_names)
      if @api_client.config.debugging
        @api_client.config.logger.debug "API called: TelephonyProvidersEdgeApi#delete_telephony_providers_edges_certificateauthority\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
      end
      return data, status_code, headers
    end

    # Delete a DID Pool by ID.
    # 
    # @param did_pool_id DID pool ID
    # @param [Hash] opts the optional parameters
    # @return [nil]
    def delete_telephony_providers_edges_didpool(did_pool_id, opts = {})
      delete_telephony_providers_edges_didpool_with_http_info(did_pool_id, opts)
      return nil
    end

    # Delete a DID Pool by ID.
    # 
    # @param did_pool_id DID pool ID
    # @param [Hash] opts the optional parameters
    # @return [Array<(nil, Fixnum, Hash)>] nil, response status code and response headers
    def delete_telephony_providers_edges_didpool_with_http_info(did_pool_id, opts = {})
      if @api_client.config.debugging
        @api_client.config.logger.debug "Calling API: TelephonyProvidersEdgeApi.delete_telephony_providers_edges_didpool ..."
      end
      
      
      # verify the required parameter 'did_pool_id' is set
      fail ArgumentError, "Missing the required parameter 'did_pool_id' when calling TelephonyProvidersEdgeApi.delete_telephony_providers_edges_didpool" if did_pool_id.nil?
      
      
      
      
      
      # resource path
      local_var_path = "/api/v2/telephony/providers/edges/didpools/{didPoolId}".sub('{format}','json').sub('{' + 'didPoolId' + '}', did_pool_id.to_s)

      # query parameters
      query_params = {}

      # header parameters
      header_params = {}

      # HTTP header 'Accept' (if needed)
      local_header_accept = ['application/json']
      local_header_accept_result = @api_client.select_header_accept(local_header_accept) and header_params['Accept'] = local_header_accept_result

      # HTTP header 'Content-Type'
      local_header_content_type = ['application/json']
      header_params['Content-Type'] = @api_client.select_header_content_type(local_header_content_type)

      # form parameters
      form_params = {}

      # http body (model)
      post_body = nil
      
      auth_names = ['PureCloud Auth']
      data, status_code, headers = @api_client.call_api(:DELETE, local_var_path,
        :header_params => header_params,
        :query_params => query_params,
        :form_params => form_params,
        :body => post_body,
        :auth_names => auth_names)
      if @api_client.config.debugging
        @api_client.config.logger.debug "API called: TelephonyProvidersEdgeApi#delete_telephony_providers_edges_didpool\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
      end
      return data, status_code, headers
    end

    # Delete an edge group.
    # 
    # @param edge_group_id Edge group ID
    # @param [Hash] opts the optional parameters
    # @return [nil]
    def delete_telephony_providers_edges_edgegroup(edge_group_id, opts = {})
      delete_telephony_providers_edges_edgegroup_with_http_info(edge_group_id, opts)
      return nil
    end

    # Delete an edge group.
    # 
    # @param edge_group_id Edge group ID
    # @param [Hash] opts the optional parameters
    # @return [Array<(nil, Fixnum, Hash)>] nil, response status code and response headers
    def delete_telephony_providers_edges_edgegroup_with_http_info(edge_group_id, opts = {})
      if @api_client.config.debugging
        @api_client.config.logger.debug "Calling API: TelephonyProvidersEdgeApi.delete_telephony_providers_edges_edgegroup ..."
      end
      
      
      # verify the required parameter 'edge_group_id' is set
      fail ArgumentError, "Missing the required parameter 'edge_group_id' when calling TelephonyProvidersEdgeApi.delete_telephony_providers_edges_edgegroup" if edge_group_id.nil?
      
      
      
      
      
      # resource path
      local_var_path = "/api/v2/telephony/providers/edges/edgegroups/{edgeGroupId}".sub('{format}','json').sub('{' + 'edgeGroupId' + '}', edge_group_id.to_s)

      # query parameters
      query_params = {}

      # header parameters
      header_params = {}

      # HTTP header 'Accept' (if needed)
      local_header_accept = ['application/json']
      local_header_accept_result = @api_client.select_header_accept(local_header_accept) and header_params['Accept'] = local_header_accept_result

      # HTTP header 'Content-Type'
      local_header_content_type = ['application/json']
      header_params['Content-Type'] = @api_client.select_header_content_type(local_header_content_type)

      # form parameters
      form_params = {}

      # http body (model)
      post_body = nil
      
      auth_names = ['PureCloud Auth']
      data, status_code, headers = @api_client.call_api(:DELETE, local_var_path,
        :header_params => header_params,
        :query_params => query_params,
        :form_params => form_params,
        :body => post_body,
        :auth_names => auth_names)
      if @api_client.config.debugging
        @api_client.config.logger.debug "API called: TelephonyProvidersEdgeApi#delete_telephony_providers_edges_edgegroup\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
      end
      return data, status_code, headers
    end

    # Delete endpoint
    # 
    # @param endpoint_id Endpoint ID
    # @param [Hash] opts the optional parameters
    # @return [nil]
    def delete_telephony_providers_edges_endpoint(endpoint_id, opts = {})
      delete_telephony_providers_edges_endpoint_with_http_info(endpoint_id, opts)
      return nil
    end

    # Delete endpoint
    # 
    # @param endpoint_id Endpoint ID
    # @param [Hash] opts the optional parameters
    # @return [Array<(nil, Fixnum, Hash)>] nil, response status code and response headers
    def delete_telephony_providers_edges_endpoint_with_http_info(endpoint_id, opts = {})
      if @api_client.config.debugging
        @api_client.config.logger.debug "Calling API: TelephonyProvidersEdgeApi.delete_telephony_providers_edges_endpoint ..."
      end
      
      
      # verify the required parameter 'endpoint_id' is set
      fail ArgumentError, "Missing the required parameter 'endpoint_id' when calling TelephonyProvidersEdgeApi.delete_telephony_providers_edges_endpoint" if endpoint_id.nil?
      
      
      
      
      
      # resource path
      local_var_path = "/api/v2/telephony/providers/edges/endpoints/{endpointId}".sub('{format}','json').sub('{' + 'endpointId' + '}', endpoint_id.to_s)

      # query parameters
      query_params = {}

      # header parameters
      header_params = {}

      # HTTP header 'Accept' (if needed)
      local_header_accept = ['application/json']
      local_header_accept_result = @api_client.select_header_accept(local_header_accept) and header_params['Accept'] = local_header_accept_result

      # HTTP header 'Content-Type'
      local_header_content_type = ['application/json']
      header_params['Content-Type'] = @api_client.select_header_content_type(local_header_content_type)

      # form parameters
      form_params = {}

      # http body (model)
      post_body = nil
      
      auth_names = ['PureCloud Auth']
      data, status_code, headers = @api_client.call_api(:DELETE, local_var_path,
        :header_params => header_params,
        :query_params => query_params,
        :form_params => form_params,
        :body => post_body,
        :auth_names => auth_names)
      if @api_client.config.debugging
        @api_client.config.logger.debug "API called: TelephonyProvidersEdgeApi#delete_telephony_providers_edges_endpoint\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
      end
      return data, status_code, headers
    end

    # Delete an extension pool by ID
    # 
    # @param extension_pool_id Extension pool ID
    # @param [Hash] opts the optional parameters
    # @return [nil]
    def delete_telephony_providers_edges_extensionpool(extension_pool_id, opts = {})
      delete_telephony_providers_edges_extensionpool_with_http_info(extension_pool_id, opts)
      return nil
    end

    # Delete an extension pool by ID
    # 
    # @param extension_pool_id Extension pool ID
    # @param [Hash] opts the optional parameters
    # @return [Array<(nil, Fixnum, Hash)>] nil, response status code and response headers
    def delete_telephony_providers_edges_extensionpool_with_http_info(extension_pool_id, opts = {})
      if @api_client.config.debugging
        @api_client.config.logger.debug "Calling API: TelephonyProvidersEdgeApi.delete_telephony_providers_edges_extensionpool ..."
      end
      
      
      # verify the required parameter 'extension_pool_id' is set
      fail ArgumentError, "Missing the required parameter 'extension_pool_id' when calling TelephonyProvidersEdgeApi.delete_telephony_providers_edges_extensionpool" if extension_pool_id.nil?
      
      
      
      
      
      # resource path
      local_var_path = "/api/v2/telephony/providers/edges/extensionpools/{extensionPoolId}".sub('{format}','json').sub('{' + 'extensionPoolId' + '}', extension_pool_id.to_s)

      # query parameters
      query_params = {}

      # header parameters
      header_params = {}

      # HTTP header 'Accept' (if needed)
      local_header_accept = ['application/json']
      local_header_accept_result = @api_client.select_header_accept(local_header_accept) and header_params['Accept'] = local_header_accept_result

      # HTTP header 'Content-Type'
      local_header_content_type = ['application/json']
      header_params['Content-Type'] = @api_client.select_header_content_type(local_header_content_type)

      # form parameters
      form_params = {}

      # http body (model)
      post_body = nil
      
      auth_names = ['PureCloud Auth']
      data, status_code, headers = @api_client.call_api(:DELETE, local_var_path,
        :header_params => header_params,
        :query_params => query_params,
        :form_params => form_params,
        :body => post_body,
        :auth_names => auth_names)
      if @api_client.config.debugging
        @api_client.config.logger.debug "API called: TelephonyProvidersEdgeApi#delete_telephony_providers_edges_extensionpool\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
      end
      return data, status_code, headers
    end

    # Delete Outbound Route
    # 
    # @param outbound_route_id Outbound route ID
    # @param [Hash] opts the optional parameters
    # @return [nil]
    def delete_telephony_providers_edges_outboundroute(outbound_route_id, opts = {})
      delete_telephony_providers_edges_outboundroute_with_http_info(outbound_route_id, opts)
      return nil
    end

    # Delete Outbound Route
    # 
    # @param outbound_route_id Outbound route ID
    # @param [Hash] opts the optional parameters
    # @return [Array<(nil, Fixnum, Hash)>] nil, response status code and response headers
    def delete_telephony_providers_edges_outboundroute_with_http_info(outbound_route_id, opts = {})
      if @api_client.config.debugging
        @api_client.config.logger.debug "Calling API: TelephonyProvidersEdgeApi.delete_telephony_providers_edges_outboundroute ..."
      end
      
      
      # verify the required parameter 'outbound_route_id' is set
      fail ArgumentError, "Missing the required parameter 'outbound_route_id' when calling TelephonyProvidersEdgeApi.delete_telephony_providers_edges_outboundroute" if outbound_route_id.nil?
      
      
      
      
      
      # resource path
      local_var_path = "/api/v2/telephony/providers/edges/outboundroutes/{outboundRouteId}".sub('{format}','json').sub('{' + 'outboundRouteId' + '}', outbound_route_id.to_s)

      # query parameters
      query_params = {}

      # header parameters
      header_params = {}

      # HTTP header 'Accept' (if needed)
      local_header_accept = ['application/json']
      local_header_accept_result = @api_client.select_header_accept(local_header_accept) and header_params['Accept'] = local_header_accept_result

      # HTTP header 'Content-Type'
      local_header_content_type = ['application/json']
      header_params['Content-Type'] = @api_client.select_header_content_type(local_header_content_type)

      # form parameters
      form_params = {}

      # http body (model)
      post_body = nil
      
      auth_names = ['PureCloud Auth']
      data, status_code, headers = @api_client.call_api(:DELETE, local_var_path,
        :header_params => header_params,
        :query_params => query_params,
        :form_params => form_params,
        :body => post_body,
        :auth_names => auth_names)
      if @api_client.config.debugging
        @api_client.config.logger.debug "API called: TelephonyProvidersEdgeApi#delete_telephony_providers_edges_outboundroute\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
      end
      return data, status_code, headers
    end

    # Delete a Phone by ID
    # 
    # @param phone_id Phone ID
    # @param [Hash] opts the optional parameters
    # @return [nil]
    def delete_telephony_providers_edges_phone(phone_id, opts = {})
      delete_telephony_providers_edges_phone_with_http_info(phone_id, opts)
      return nil
    end

    # Delete a Phone by ID
    # 
    # @param phone_id Phone ID
    # @param [Hash] opts the optional parameters
    # @return [Array<(nil, Fixnum, Hash)>] nil, response status code and response headers
    def delete_telephony_providers_edges_phone_with_http_info(phone_id, opts = {})
      if @api_client.config.debugging
        @api_client.config.logger.debug "Calling API: TelephonyProvidersEdgeApi.delete_telephony_providers_edges_phone ..."
      end
      
      
      # verify the required parameter 'phone_id' is set
      fail ArgumentError, "Missing the required parameter 'phone_id' when calling TelephonyProvidersEdgeApi.delete_telephony_providers_edges_phone" if phone_id.nil?
      
      
      
      
      
      # resource path
      local_var_path = "/api/v2/telephony/providers/edges/phones/{phoneId}".sub('{format}','json').sub('{' + 'phoneId' + '}', phone_id.to_s)

      # query parameters
      query_params = {}

      # header parameters
      header_params = {}

      # HTTP header 'Accept' (if needed)
      local_header_accept = ['application/json']
      local_header_accept_result = @api_client.select_header_accept(local_header_accept) and header_params['Accept'] = local_header_accept_result

      # HTTP header 'Content-Type'
      local_header_content_type = ['application/json']
      header_params['Content-Type'] = @api_client.select_header_content_type(local_header_content_type)

      # form parameters
      form_params = {}

      # http body (model)
      post_body = nil
      
      auth_names = ['PureCloud Auth']
      data, status_code, headers = @api_client.call_api(:DELETE, local_var_path,
        :header_params => header_params,
        :query_params => query_params,
        :form_params => form_params,
        :body => post_body,
        :auth_names => auth_names)
      if @api_client.config.debugging
        @api_client.config.logger.debug "API called: TelephonyProvidersEdgeApi#delete_telephony_providers_edges_phone\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
      end
      return data, status_code, headers
    end

    # Delete a Phone Base Settings by ID
    # 
    # @param phone_base_id Phone base ID
    # @param [Hash] opts the optional parameters
    # @return [nil]
    def delete_telephony_providers_edges_phonebasesetting(phone_base_id, opts = {})
      delete_telephony_providers_edges_phonebasesetting_with_http_info(phone_base_id, opts)
      return nil
    end

    # Delete a Phone Base Settings by ID
    # 
    # @param phone_base_id Phone base ID
    # @param [Hash] opts the optional parameters
    # @return [Array<(nil, Fixnum, Hash)>] nil, response status code and response headers
    def delete_telephony_providers_edges_phonebasesetting_with_http_info(phone_base_id, opts = {})
      if @api_client.config.debugging
        @api_client.config.logger.debug "Calling API: TelephonyProvidersEdgeApi.delete_telephony_providers_edges_phonebasesetting ..."
      end
      
      
      # verify the required parameter 'phone_base_id' is set
      fail ArgumentError, "Missing the required parameter 'phone_base_id' when calling TelephonyProvidersEdgeApi.delete_telephony_providers_edges_phonebasesetting" if phone_base_id.nil?
      
      
      
      
      
      # resource path
      local_var_path = "/api/v2/telephony/providers/edges/phonebasesettings/{phoneBaseId}".sub('{format}','json').sub('{' + 'phoneBaseId' + '}', phone_base_id.to_s)

      # query parameters
      query_params = {}

      # header parameters
      header_params = {}

      # HTTP header 'Accept' (if needed)
      local_header_accept = ['application/json']
      local_header_accept_result = @api_client.select_header_accept(local_header_accept) and header_params['Accept'] = local_header_accept_result

      # HTTP header 'Content-Type'
      local_header_content_type = ['application/json']
      header_params['Content-Type'] = @api_client.select_header_content_type(local_header_content_type)

      # form parameters
      form_params = {}

      # http body (model)
      post_body = nil
      
      auth_names = ['PureCloud Auth']
      data, status_code, headers = @api_client.call_api(:DELETE, local_var_path,
        :header_params => header_params,
        :query_params => query_params,
        :form_params => form_params,
        :body => post_body,
        :auth_names => auth_names)
      if @api_client.config.debugging
        @api_client.config.logger.debug "API called: TelephonyProvidersEdgeApi#delete_telephony_providers_edges_phonebasesetting\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
      end
      return data, status_code, headers
    end

    # Delete a Site by ID
    # 
    # @param site_id Site ID
    # @param [Hash] opts the optional parameters
    # @return [nil]
    def delete_telephony_providers_edges_site(site_id, opts = {})
      delete_telephony_providers_edges_site_with_http_info(site_id, opts)
      return nil
    end

    # Delete a Site by ID
    # 
    # @param site_id Site ID
    # @param [Hash] opts the optional parameters
    # @return [Array<(nil, Fixnum, Hash)>] nil, response status code and response headers
    def delete_telephony_providers_edges_site_with_http_info(site_id, opts = {})
      if @api_client.config.debugging
        @api_client.config.logger.debug "Calling API: TelephonyProvidersEdgeApi.delete_telephony_providers_edges_site ..."
      end
      
      
      # verify the required parameter 'site_id' is set
      fail ArgumentError, "Missing the required parameter 'site_id' when calling TelephonyProvidersEdgeApi.delete_telephony_providers_edges_site" if site_id.nil?
      
      
      
      
      
      # resource path
      local_var_path = "/api/v2/telephony/providers/edges/sites/{siteId}".sub('{format}','json').sub('{' + 'siteId' + '}', site_id.to_s)

      # query parameters
      query_params = {}

      # header parameters
      header_params = {}

      # HTTP header 'Accept' (if needed)
      local_header_accept = ['application/json']
      local_header_accept_result = @api_client.select_header_accept(local_header_accept) and header_params['Accept'] = local_header_accept_result

      # HTTP header 'Content-Type'
      local_header_content_type = ['application/json']
      header_params['Content-Type'] = @api_client.select_header_content_type(local_header_content_type)

      # form parameters
      form_params = {}

      # http body (model)
      post_body = nil
      
      auth_names = ['PureCloud Auth']
      data, status_code, headers = @api_client.call_api(:DELETE, local_var_path,
        :header_params => header_params,
        :query_params => query_params,
        :form_params => form_params,
        :body => post_body,
        :auth_names => auth_names)
      if @api_client.config.debugging
        @api_client.config.logger.debug "API called: TelephonyProvidersEdgeApi#delete_telephony_providers_edges_site\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
      end
      return data, status_code, headers
    end

    # Delete Outbound Route
    # 
    # @param site_id Site ID
    # @param outbound_route_id Outbound route ID
    # @param [Hash] opts the optional parameters
    # @return [nil]
    def delete_telephony_providers_edges_site_outboundroute(site_id, outbound_route_id, opts = {})
      delete_telephony_providers_edges_site_outboundroute_with_http_info(site_id, outbound_route_id, opts)
      return nil
    end

    # Delete Outbound Route
    # 
    # @param site_id Site ID
    # @param outbound_route_id Outbound route ID
    # @param [Hash] opts the optional parameters
    # @return [Array<(nil, Fixnum, Hash)>] nil, response status code and response headers
    def delete_telephony_providers_edges_site_outboundroute_with_http_info(site_id, outbound_route_id, opts = {})
      if @api_client.config.debugging
        @api_client.config.logger.debug "Calling API: TelephonyProvidersEdgeApi.delete_telephony_providers_edges_site_outboundroute ..."
      end
      
      
      # verify the required parameter 'site_id' is set
      fail ArgumentError, "Missing the required parameter 'site_id' when calling TelephonyProvidersEdgeApi.delete_telephony_providers_edges_site_outboundroute" if site_id.nil?
      
      
      
      
      
      
      # verify the required parameter 'outbound_route_id' is set
      fail ArgumentError, "Missing the required parameter 'outbound_route_id' when calling TelephonyProvidersEdgeApi.delete_telephony_providers_edges_site_outboundroute" if outbound_route_id.nil?
      
      
      
      
      
      # resource path
      local_var_path = "/api/v2/telephony/providers/edges/sites/{siteId}/outboundroutes/{outboundRouteId}".sub('{format}','json').sub('{' + 'siteId' + '}', site_id.to_s).sub('{' + 'outboundRouteId' + '}', outbound_route_id.to_s)

      # query parameters
      query_params = {}

      # header parameters
      header_params = {}

      # HTTP header 'Accept' (if needed)
      local_header_accept = ['application/json']
      local_header_accept_result = @api_client.select_header_accept(local_header_accept) and header_params['Accept'] = local_header_accept_result

      # HTTP header 'Content-Type'
      local_header_content_type = ['application/json']
      header_params['Content-Type'] = @api_client.select_header_content_type(local_header_content_type)

      # form parameters
      form_params = {}

      # http body (model)
      post_body = nil
      
      auth_names = ['PureCloud Auth']
      data, status_code, headers = @api_client.call_api(:DELETE, local_var_path,
        :header_params => header_params,
        :query_params => query_params,
        :form_params => form_params,
        :body => post_body,
        :auth_names => auth_names)
      if @api_client.config.debugging
        @api_client.config.logger.debug "API called: TelephonyProvidersEdgeApi#delete_telephony_providers_edges_site_outboundroute\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
      end
      return data, status_code, headers
    end

    # Delete a Trunk Base Settings object by ID
    # 
    # @param trunk_base_settings_id Trunk Base ID
    # @param [Hash] opts the optional parameters
    # @return [nil]
    def delete_telephony_providers_edges_trunkbasesetting(trunk_base_settings_id, opts = {})
      delete_telephony_providers_edges_trunkbasesetting_with_http_info(trunk_base_settings_id, opts)
      return nil
    end

    # Delete a Trunk Base Settings object by ID
    # 
    # @param trunk_base_settings_id Trunk Base ID
    # @param [Hash] opts the optional parameters
    # @return [Array<(nil, Fixnum, Hash)>] nil, response status code and response headers
    def delete_telephony_providers_edges_trunkbasesetting_with_http_info(trunk_base_settings_id, opts = {})
      if @api_client.config.debugging
        @api_client.config.logger.debug "Calling API: TelephonyProvidersEdgeApi.delete_telephony_providers_edges_trunkbasesetting ..."
      end
      
      
      # verify the required parameter 'trunk_base_settings_id' is set
      fail ArgumentError, "Missing the required parameter 'trunk_base_settings_id' when calling TelephonyProvidersEdgeApi.delete_telephony_providers_edges_trunkbasesetting" if trunk_base_settings_id.nil?
      
      
      
      
      
      # resource path
      local_var_path = "/api/v2/telephony/providers/edges/trunkbasesettings/{trunkBaseSettingsId}".sub('{format}','json').sub('{' + 'trunkBaseSettingsId' + '}', trunk_base_settings_id.to_s)

      # query parameters
      query_params = {}

      # header parameters
      header_params = {}

      # HTTP header 'Accept' (if needed)
      local_header_accept = ['application/json']
      local_header_accept_result = @api_client.select_header_accept(local_header_accept) and header_params['Accept'] = local_header_accept_result

      # HTTP header 'Content-Type'
      local_header_content_type = ['application/json']
      header_params['Content-Type'] = @api_client.select_header_content_type(local_header_content_type)

      # form parameters
      form_params = {}

      # http body (model)
      post_body = nil
      
      auth_names = ['PureCloud Auth']
      data, status_code, headers = @api_client.call_api(:DELETE, local_var_path,
        :header_params => header_params,
        :query_params => query_params,
        :form_params => form_params,
        :body => post_body,
        :auth_names => auth_names)
      if @api_client.config.debugging
        @api_client.config.logger.debug "API called: TelephonyProvidersEdgeApi#delete_telephony_providers_edges_trunkbasesetting\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
      end
      return data, status_code, headers
    end

    # Lists available schema categories (Deprecated)
    # 
    # @param [Hash] opts the optional parameters
    # @option opts [Integer] :page_size Page size (default to 25)
    # @option opts [Integer] :page_number Page number (default to 1)
    # @return [SchemaCategoryEntityListing]
    def get_configuration_schemas_edges_vnext(opts = {})
      data, _status_code, _headers = get_configuration_schemas_edges_vnext_with_http_info(opts)
      return data
    end

    # Lists available schema categories (Deprecated)
    # 
    # @param [Hash] opts the optional parameters
    # @option opts [Integer] :page_size Page size
    # @option opts [Integer] :page_number Page number
    # @return [Array<(SchemaCategoryEntityListing, Fixnum, Hash)>] SchemaCategoryEntityListing data, response status code and response headers
    def get_configuration_schemas_edges_vnext_with_http_info(opts = {})
      if @api_client.config.debugging
        @api_client.config.logger.debug "Calling API: TelephonyProvidersEdgeApi.get_configuration_schemas_edges_vnext ..."
      end
      
      
      
      
      
      
      
      
      
      
      
      
      
      # resource path
      local_var_path = "/api/v2/configuration/schemas/edges/vnext".sub('{format}','json')

      # query parameters
      query_params = {}
      query_params[:'pageSize'] = opts[:'page_size'] if opts[:'page_size']
      query_params[:'pageNumber'] = opts[:'page_number'] if opts[:'page_number']

      # header parameters
      header_params = {}

      # HTTP header 'Accept' (if needed)
      local_header_accept = ['application/json']
      local_header_accept_result = @api_client.select_header_accept(local_header_accept) and header_params['Accept'] = local_header_accept_result

      # HTTP header 'Content-Type'
      local_header_content_type = ['application/json']
      header_params['Content-Type'] = @api_client.select_header_content_type(local_header_content_type)

      # form parameters
      form_params = {}

      # http body (model)
      post_body = nil
      
      auth_names = ['PureCloud Auth']
      data, status_code, headers = @api_client.call_api(:GET, local_var_path,
        :header_params => header_params,
        :query_params => query_params,
        :form_params => form_params,
        :body => post_body,
        :auth_names => auth_names,
        :return_type => 'SchemaCategoryEntityListing')
      if @api_client.config.debugging
        @api_client.config.logger.debug "API called: TelephonyProvidersEdgeApi#get_configuration_schemas_edges_vnext\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
      end
      return data, status_code, headers
    end

    # List schemas of a specific category (Deprecated)
    # 
    # @param schema_category Schema category
    # @param [Hash] opts the optional parameters
    # @option opts [Integer] :page_size Page size (default to 25)
    # @option opts [Integer] :page_number Page number (default to 1)
    # @return [SchemaReferenceEntityListing]
    def get_configuration_schemas_edges_vnext_schema_category(schema_category, opts = {})
      data, _status_code, _headers = get_configuration_schemas_edges_vnext_schema_category_with_http_info(schema_category, opts)
      return data
    end

    # List schemas of a specific category (Deprecated)
    # 
    # @param schema_category Schema category
    # @param [Hash] opts the optional parameters
    # @option opts [Integer] :page_size Page size
    # @option opts [Integer] :page_number Page number
    # @return [Array<(SchemaReferenceEntityListing, Fixnum, Hash)>] SchemaReferenceEntityListing data, response status code and response headers
    def get_configuration_schemas_edges_vnext_schema_category_with_http_info(schema_category, opts = {})
      if @api_client.config.debugging
        @api_client.config.logger.debug "Calling API: TelephonyProvidersEdgeApi.get_configuration_schemas_edges_vnext_schema_category ..."
      end
      
      
      # verify the required parameter 'schema_category' is set
      fail ArgumentError, "Missing the required parameter 'schema_category' when calling TelephonyProvidersEdgeApi.get_configuration_schemas_edges_vnext_schema_category" if schema_category.nil?
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      # resource path
      local_var_path = "/api/v2/configuration/schemas/edges/vnext/{schemaCategory}".sub('{format}','json').sub('{' + 'schemaCategory' + '}', schema_category.to_s)

      # query parameters
      query_params = {}
      query_params[:'pageSize'] = opts[:'page_size'] if opts[:'page_size']
      query_params[:'pageNumber'] = opts[:'page_number'] if opts[:'page_number']

      # header parameters
      header_params = {}

      # HTTP header 'Accept' (if needed)
      local_header_accept = ['application/json']
      local_header_accept_result = @api_client.select_header_accept(local_header_accept) and header_params['Accept'] = local_header_accept_result

      # HTTP header 'Content-Type'
      local_header_content_type = ['application/json']
      header_params['Content-Type'] = @api_client.select_header_content_type(local_header_content_type)

      # form parameters
      form_params = {}

      # http body (model)
      post_body = nil
      
      auth_names = ['PureCloud Auth']
      data, status_code, headers = @api_client.call_api(:GET, local_var_path,
        :header_params => header_params,
        :query_params => query_params,
        :form_params => form_params,
        :body => post_body,
        :auth_names => auth_names,
        :return_type => 'SchemaReferenceEntityListing')
      if @api_client.config.debugging
        @api_client.config.logger.debug "API called: TelephonyProvidersEdgeApi#get_configuration_schemas_edges_vnext_schema_category\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
      end
      return data, status_code, headers
    end

    # List schemas of a specific category (Deprecated)
    # 
    # @param schema_category Schema category
    # @param schema_type Schema type
    # @param [Hash] opts the optional parameters
    # @option opts [Integer] :page_size Page size (default to 25)
    # @option opts [Integer] :page_number Page number (default to 1)
    # @return [SchemaReferenceEntityListing]
    def get_configuration_schemas_edges_vnext_schema_category_schema_type(schema_category, schema_type, opts = {})
      data, _status_code, _headers = get_configuration_schemas_edges_vnext_schema_category_schema_type_with_http_info(schema_category, schema_type, opts)
      return data
    end

    # List schemas of a specific category (Deprecated)
    # 
    # @param schema_category Schema category
    # @param schema_type Schema type
    # @param [Hash] opts the optional parameters
    # @option opts [Integer] :page_size Page size
    # @option opts [Integer] :page_number Page number
    # @return [Array<(SchemaReferenceEntityListing, Fixnum, Hash)>] SchemaReferenceEntityListing data, response status code and response headers
    def get_configuration_schemas_edges_vnext_schema_category_schema_type_with_http_info(schema_category, schema_type, opts = {})
      if @api_client.config.debugging
        @api_client.config.logger.debug "Calling API: TelephonyProvidersEdgeApi.get_configuration_schemas_edges_vnext_schema_category_schema_type ..."
      end
      
      
      # verify the required parameter 'schema_category' is set
      fail ArgumentError, "Missing the required parameter 'schema_category' when calling TelephonyProvidersEdgeApi.get_configuration_schemas_edges_vnext_schema_category_schema_type" if schema_category.nil?
      
      
      
      
      
      
      # verify the required parameter 'schema_type' is set
      fail ArgumentError, "Missing the required parameter 'schema_type' when calling TelephonyProvidersEdgeApi.get_configuration_schemas_edges_vnext_schema_category_schema_type" if schema_type.nil?
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      # resource path
      local_var_path = "/api/v2/configuration/schemas/edges/vnext/{schemaCategory}/{schemaType}".sub('{format}','json').sub('{' + 'schemaCategory' + '}', schema_category.to_s).sub('{' + 'schemaType' + '}', schema_type.to_s)

      # query parameters
      query_params = {}
      query_params[:'pageSize'] = opts[:'page_size'] if opts[:'page_size']
      query_params[:'pageNumber'] = opts[:'page_number'] if opts[:'page_number']

      # header parameters
      header_params = {}

      # HTTP header 'Accept' (if needed)
      local_header_accept = ['application/json']
      local_header_accept_result = @api_client.select_header_accept(local_header_accept) and header_params['Accept'] = local_header_accept_result

      # HTTP header 'Content-Type'
      local_header_content_type = ['application/json']
      header_params['Content-Type'] = @api_client.select_header_content_type(local_header_content_type)

      # form parameters
      form_params = {}

      # http body (model)
      post_body = nil
      
      auth_names = ['PureCloud Auth']
      data, status_code, headers = @api_client.call_api(:GET, local_var_path,
        :header_params => header_params,
        :query_params => query_params,
        :form_params => form_params,
        :body => post_body,
        :auth_names => auth_names,
        :return_type => 'SchemaReferenceEntityListing')
      if @api_client.config.debugging
        @api_client.config.logger.debug "API called: TelephonyProvidersEdgeApi#get_configuration_schemas_edges_vnext_schema_category_schema_type\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
      end
      return data, status_code, headers
    end

    # Get a json schema (Deprecated)
    # 
    # @param schema_category Schema category
    # @param schema_type Schema type
    # @param schema_id Schema ID
    # @param [Hash] opts the optional parameters
    # @return [Organization]
    def get_configuration_schemas_edges_vnext_schema_category_schema_type_schema_id(schema_category, schema_type, schema_id, opts = {})
      data, _status_code, _headers = get_configuration_schemas_edges_vnext_schema_category_schema_type_schema_id_with_http_info(schema_category, schema_type, schema_id, opts)
      return data
    end

    # Get a json schema (Deprecated)
    # 
    # @param schema_category Schema category
    # @param schema_type Schema type
    # @param schema_id Schema ID
    # @param [Hash] opts the optional parameters
    # @return [Array<(Organization, Fixnum, Hash)>] Organization data, response status code and response headers
    def get_configuration_schemas_edges_vnext_schema_category_schema_type_schema_id_with_http_info(schema_category, schema_type, schema_id, opts = {})
      if @api_client.config.debugging
        @api_client.config.logger.debug "Calling API: TelephonyProvidersEdgeApi.get_configuration_schemas_edges_vnext_schema_category_schema_type_schema_id ..."
      end
      
      
      # verify the required parameter 'schema_category' is set
      fail ArgumentError, "Missing the required parameter 'schema_category' when calling TelephonyProvidersEdgeApi.get_configuration_schemas_edges_vnext_schema_category_schema_type_schema_id" if schema_category.nil?
      
      
      
      
      
      
      # verify the required parameter 'schema_type' is set
      fail ArgumentError, "Missing the required parameter 'schema_type' when calling TelephonyProvidersEdgeApi.get_configuration_schemas_edges_vnext_schema_category_schema_type_schema_id" if schema_type.nil?
      
      
      
      
      
      
      # verify the required parameter 'schema_id' is set
      fail ArgumentError, "Missing the required parameter 'schema_id' when calling TelephonyProvidersEdgeApi.get_configuration_schemas_edges_vnext_schema_category_schema_type_schema_id" if schema_id.nil?
      
      
      
      
      
      # resource path
      local_var_path = "/api/v2/configuration/schemas/edges/vnext/{schemaCategory}/{schemaType}/{schemaId}".sub('{format}','json').sub('{' + 'schemaCategory' + '}', schema_category.to_s).sub('{' + 'schemaType' + '}', schema_type.to_s).sub('{' + 'schemaId' + '}', schema_id.to_s)

      # query parameters
      query_params = {}

      # header parameters
      header_params = {}

      # HTTP header 'Accept' (if needed)
      local_header_accept = ['application/json']
      local_header_accept_result = @api_client.select_header_accept(local_header_accept) and header_params['Accept'] = local_header_accept_result

      # HTTP header 'Content-Type'
      local_header_content_type = ['application/json']
      header_params['Content-Type'] = @api_client.select_header_content_type(local_header_content_type)

      # form parameters
      form_params = {}

      # http body (model)
      post_body = nil
      
      auth_names = ['PureCloud Auth']
      data, status_code, headers = @api_client.call_api(:GET, local_var_path,
        :header_params => header_params,
        :query_params => query_params,
        :form_params => form_params,
        :body => post_body,
        :auth_names => auth_names,
        :return_type => 'Organization')
      if @api_client.config.debugging
        @api_client.config.logger.debug "API called: TelephonyProvidersEdgeApi#get_configuration_schemas_edges_vnext_schema_category_schema_type_schema_id\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
      end
      return data, status_code, headers
    end

    # Get metadata for a schema (Deprecated)
    # 
    # @param schema_category Schema category
    # @param schema_type Schema type
    # @param schema_id Schema ID
    # @param extension_type extension
    # @param metadata_id Metadata ID
    # @param [Hash] opts the optional parameters
    # @option opts [String] :type Type
    # @return [Organization]
    def get_configuration_schemas_edges_vnext_schema_category_schema_type_schema_id_extension_type_metadata_id(schema_category, schema_type, schema_id, extension_type, metadata_id, opts = {})
      data, _status_code, _headers = get_configuration_schemas_edges_vnext_schema_category_schema_type_schema_id_extension_type_metadata_id_with_http_info(schema_category, schema_type, schema_id, extension_type, metadata_id, opts)
      return data
    end

    # Get metadata for a schema (Deprecated)
    # 
    # @param schema_category Schema category
    # @param schema_type Schema type
    # @param schema_id Schema ID
    # @param extension_type extension
    # @param metadata_id Metadata ID
    # @param [Hash] opts the optional parameters
    # @option opts [String] :type Type
    # @return [Array<(Organization, Fixnum, Hash)>] Organization data, response status code and response headers
    def get_configuration_schemas_edges_vnext_schema_category_schema_type_schema_id_extension_type_metadata_id_with_http_info(schema_category, schema_type, schema_id, extension_type, metadata_id, opts = {})
      if @api_client.config.debugging
        @api_client.config.logger.debug "Calling API: TelephonyProvidersEdgeApi.get_configuration_schemas_edges_vnext_schema_category_schema_type_schema_id_extension_type_metadata_id ..."
      end
      
      
      # verify the required parameter 'schema_category' is set
      fail ArgumentError, "Missing the required parameter 'schema_category' when calling TelephonyProvidersEdgeApi.get_configuration_schemas_edges_vnext_schema_category_schema_type_schema_id_extension_type_metadata_id" if schema_category.nil?
      
      
      
      
      
      
      # verify the required parameter 'schema_type' is set
      fail ArgumentError, "Missing the required parameter 'schema_type' when calling TelephonyProvidersEdgeApi.get_configuration_schemas_edges_vnext_schema_category_schema_type_schema_id_extension_type_metadata_id" if schema_type.nil?
      
      
      
      
      
      
      # verify the required parameter 'schema_id' is set
      fail ArgumentError, "Missing the required parameter 'schema_id' when calling TelephonyProvidersEdgeApi.get_configuration_schemas_edges_vnext_schema_category_schema_type_schema_id_extension_type_metadata_id" if schema_id.nil?
      
      
      
      
      
      
      # verify the required parameter 'extension_type' is set
      fail ArgumentError, "Missing the required parameter 'extension_type' when calling TelephonyProvidersEdgeApi.get_configuration_schemas_edges_vnext_schema_category_schema_type_schema_id_extension_type_metadata_id" if extension_type.nil?
      
      
      
      
      
      
      # verify the required parameter 'metadata_id' is set
      fail ArgumentError, "Missing the required parameter 'metadata_id' when calling TelephonyProvidersEdgeApi.get_configuration_schemas_edges_vnext_schema_category_schema_type_schema_id_extension_type_metadata_id" if metadata_id.nil?
      
      
      
      
      
      
      
      
      
      
      
      # resource path
      local_var_path = "/api/v2/configuration/schemas/edges/vnext/{schemaCategory}/{schemaType}/{schemaId}/{extensionType}/{metadataId}".sub('{format}','json').sub('{' + 'schemaCategory' + '}', schema_category.to_s).sub('{' + 'schemaType' + '}', schema_type.to_s).sub('{' + 'schemaId' + '}', schema_id.to_s).sub('{' + 'extensionType' + '}', extension_type.to_s).sub('{' + 'metadataId' + '}', metadata_id.to_s)

      # query parameters
      query_params = {}
      query_params[:'type'] = opts[:'type'] if opts[:'type']

      # header parameters
      header_params = {}

      # HTTP header 'Accept' (if needed)
      local_header_accept = ['application/json']
      local_header_accept_result = @api_client.select_header_accept(local_header_accept) and header_params['Accept'] = local_header_accept_result

      # HTTP header 'Content-Type'
      local_header_content_type = ['application/json']
      header_params['Content-Type'] = @api_client.select_header_content_type(local_header_content_type)

      # form parameters
      form_params = {}

      # http body (model)
      post_body = nil
      
      auth_names = ['PureCloud Auth']
      data, status_code, headers = @api_client.call_api(:GET, local_var_path,
        :header_params => header_params,
        :query_params => query_params,
        :form_params => form_params,
        :body => post_body,
        :auth_names => auth_names,
        :return_type => 'Organization')
      if @api_client.config.debugging
        @api_client.config.logger.debug "API called: TelephonyProvidersEdgeApi#get_configuration_schemas_edges_vnext_schema_category_schema_type_schema_id_extension_type_metadata_id\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
      end
      return data, status_code, headers
    end

    # Get edge.
    # 
    # @param edge_id Edge ID
    # @param [Hash] opts the optional parameters
    # @option opts [Array<String>] :expand Fields to expand in the response, comma-separated
    # @return [Edge]
    def get_telephony_providers_edge(edge_id, opts = {})
      data, _status_code, _headers = get_telephony_providers_edge_with_http_info(edge_id, opts)
      return data
    end

    # Get edge.
    # 
    # @param edge_id Edge ID
    # @param [Hash] opts the optional parameters
    # @option opts [Array<String>] :expand Fields to expand in the response, comma-separated
    # @return [Array<(Edge, Fixnum, Hash)>] Edge data, response status code and response headers
    def get_telephony_providers_edge_with_http_info(edge_id, opts = {})
      if @api_client.config.debugging
        @api_client.config.logger.debug "Calling API: TelephonyProvidersEdgeApi.get_telephony_providers_edge ..."
      end
      
      
      # verify the required parameter 'edge_id' is set
      fail ArgumentError, "Missing the required parameter 'edge_id' when calling TelephonyProvidersEdgeApi.get_telephony_providers_edge" if edge_id.nil?
      
      
      
      
      
      
      
      
      
      
      
      # resource path
      local_var_path = "/api/v2/telephony/providers/edges/{edgeId}".sub('{format}','json').sub('{' + 'edgeId' + '}', edge_id.to_s)

      # query parameters
      query_params = {}
      query_params[:'expand'] = @api_client.build_collection_param(opts[:'expand'], :multi) if opts[:'expand']

      # header parameters
      header_params = {}

      # HTTP header 'Accept' (if needed)
      local_header_accept = ['application/json']
      local_header_accept_result = @api_client.select_header_accept(local_header_accept) and header_params['Accept'] = local_header_accept_result

      # HTTP header 'Content-Type'
      local_header_content_type = ['application/json']
      header_params['Content-Type'] = @api_client.select_header_content_type(local_header_content_type)

      # form parameters
      form_params = {}

      # http body (model)
      post_body = nil
      
      auth_names = ['PureCloud Auth']
      data, status_code, headers = @api_client.call_api(:GET, local_var_path,
        :header_params => header_params,
        :query_params => query_params,
        :form_params => form_params,
        :body => post_body,
        :auth_names => auth_names,
        :return_type => 'Edge')
      if @api_client.config.debugging
        @api_client.config.logger.debug "API called: TelephonyProvidersEdgeApi#get_telephony_providers_edge\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
      end
      return data, status_code, headers
    end

    # Get line
    # 
    # @param edge_id Edge ID
    # @param line_id Line ID
    # @param [Hash] opts the optional parameters
    # @return [EdgeLine]
    def get_telephony_providers_edge_line(edge_id, line_id, opts = {})
      data, _status_code, _headers = get_telephony_providers_edge_line_with_http_info(edge_id, line_id, opts)
      return data
    end

    # Get line
    # 
    # @param edge_id Edge ID
    # @param line_id Line ID
    # @param [Hash] opts the optional parameters
    # @return [Array<(EdgeLine, Fixnum, Hash)>] EdgeLine data, response status code and response headers
    def get_telephony_providers_edge_line_with_http_info(edge_id, line_id, opts = {})
      if @api_client.config.debugging
        @api_client.config.logger.debug "Calling API: TelephonyProvidersEdgeApi.get_telephony_providers_edge_line ..."
      end
      
      
      # verify the required parameter 'edge_id' is set
      fail ArgumentError, "Missing the required parameter 'edge_id' when calling TelephonyProvidersEdgeApi.get_telephony_providers_edge_line" if edge_id.nil?
      
      
      
      
      
      
      # verify the required parameter 'line_id' is set
      fail ArgumentError, "Missing the required parameter 'line_id' when calling TelephonyProvidersEdgeApi.get_telephony_providers_edge_line" if line_id.nil?
      
      
      
      
      
      # resource path
      local_var_path = "/api/v2/telephony/providers/edges/{edgeId}/lines/{lineId}".sub('{format}','json').sub('{' + 'edgeId' + '}', edge_id.to_s).sub('{' + 'lineId' + '}', line_id.to_s)

      # query parameters
      query_params = {}

      # header parameters
      header_params = {}

      # HTTP header 'Accept' (if needed)
      local_header_accept = ['application/json']
      local_header_accept_result = @api_client.select_header_accept(local_header_accept) and header_params['Accept'] = local_header_accept_result

      # HTTP header 'Content-Type'
      local_header_content_type = ['application/json']
      header_params['Content-Type'] = @api_client.select_header_content_type(local_header_content_type)

      # form parameters
      form_params = {}

      # http body (model)
      post_body = nil
      
      auth_names = ['PureCloud Auth']
      data, status_code, headers = @api_client.call_api(:GET, local_var_path,
        :header_params => header_params,
        :query_params => query_params,
        :form_params => form_params,
        :body => post_body,
        :auth_names => auth_names,
        :return_type => 'EdgeLine')
      if @api_client.config.debugging
        @api_client.config.logger.debug "API called: TelephonyProvidersEdgeApi#get_telephony_providers_edge_line\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
      end
      return data, status_code, headers
    end

    # Get the list of lines.
    # 
    # @param edge_id Edge ID
    # @param [Hash] opts the optional parameters
    # @option opts [Integer] :page_size Page size (default to 25)
    # @option opts [Integer] :page_number Page number (default to 1)
    # @return [EdgeLineEntityListing]
    def get_telephony_providers_edge_lines(edge_id, opts = {})
      data, _status_code, _headers = get_telephony_providers_edge_lines_with_http_info(edge_id, opts)
      return data
    end

    # Get the list of lines.
    # 
    # @param edge_id Edge ID
    # @param [Hash] opts the optional parameters
    # @option opts [Integer] :page_size Page size
    # @option opts [Integer] :page_number Page number
    # @return [Array<(EdgeLineEntityListing, Fixnum, Hash)>] EdgeLineEntityListing data, response status code and response headers
    def get_telephony_providers_edge_lines_with_http_info(edge_id, opts = {})
      if @api_client.config.debugging
        @api_client.config.logger.debug "Calling API: TelephonyProvidersEdgeApi.get_telephony_providers_edge_lines ..."
      end
      
      
      # verify the required parameter 'edge_id' is set
      fail ArgumentError, "Missing the required parameter 'edge_id' when calling TelephonyProvidersEdgeApi.get_telephony_providers_edge_lines" if edge_id.nil?
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      # resource path
      local_var_path = "/api/v2/telephony/providers/edges/{edgeId}/lines".sub('{format}','json').sub('{' + 'edgeId' + '}', edge_id.to_s)

      # query parameters
      query_params = {}
      query_params[:'pageSize'] = opts[:'page_size'] if opts[:'page_size']
      query_params[:'pageNumber'] = opts[:'page_number'] if opts[:'page_number']

      # header parameters
      header_params = {}

      # HTTP header 'Accept' (if needed)
      local_header_accept = ['application/json']
      local_header_accept_result = @api_client.select_header_accept(local_header_accept) and header_params['Accept'] = local_header_accept_result

      # HTTP header 'Content-Type'
      local_header_content_type = ['application/json']
      header_params['Content-Type'] = @api_client.select_header_content_type(local_header_content_type)

      # form parameters
      form_params = {}

      # http body (model)
      post_body = nil
      
      auth_names = ['PureCloud Auth']
      data, status_code, headers = @api_client.call_api(:GET, local_var_path,
        :header_params => header_params,
        :query_params => query_params,
        :form_params => form_params,
        :body => post_body,
        :auth_names => auth_names,
        :return_type => 'EdgeLineEntityListing')
      if @api_client.config.debugging
        @api_client.config.logger.debug "API called: TelephonyProvidersEdgeApi#get_telephony_providers_edge_lines\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
      end
      return data, status_code, headers
    end

    # Get an edge logical interface
    # 
    # @param edge_id Edge ID
    # @param interface_id Interface ID
    # @param [Hash] opts the optional parameters
    # @option opts [Array<String>] :expand Field to expand in the response
    # @return [DomainLogicalInterface]
    def get_telephony_providers_edge_logicalinterface(edge_id, interface_id, opts = {})
      data, _status_code, _headers = get_telephony_providers_edge_logicalinterface_with_http_info(edge_id, interface_id, opts)
      return data
    end

    # Get an edge logical interface
    # 
    # @param edge_id Edge ID
    # @param interface_id Interface ID
    # @param [Hash] opts the optional parameters
    # @option opts [Array<String>] :expand Field to expand in the response
    # @return [Array<(DomainLogicalInterface, Fixnum, Hash)>] DomainLogicalInterface data, response status code and response headers
    def get_telephony_providers_edge_logicalinterface_with_http_info(edge_id, interface_id, opts = {})
      if @api_client.config.debugging
        @api_client.config.logger.debug "Calling API: TelephonyProvidersEdgeApi.get_telephony_providers_edge_logicalinterface ..."
      end
      
      
      # verify the required parameter 'edge_id' is set
      fail ArgumentError, "Missing the required parameter 'edge_id' when calling TelephonyProvidersEdgeApi.get_telephony_providers_edge_logicalinterface" if edge_id.nil?
      
      
      
      
      
      
      # verify the required parameter 'interface_id' is set
      fail ArgumentError, "Missing the required parameter 'interface_id' when calling TelephonyProvidersEdgeApi.get_telephony_providers_edge_logicalinterface" if interface_id.nil?
      
      
      
      
      
      
      
      
      
      
      
      # resource path
      local_var_path = "/api/v2/telephony/providers/edges/{edgeId}/logicalinterfaces/{interfaceId}".sub('{format}','json').sub('{' + 'edgeId' + '}', edge_id.to_s).sub('{' + 'interfaceId' + '}', interface_id.to_s)

      # query parameters
      query_params = {}
      query_params[:'expand'] = @api_client.build_collection_param(opts[:'expand'], :multi) if opts[:'expand']

      # header parameters
      header_params = {}

      # HTTP header 'Accept' (if needed)
      local_header_accept = ['application/json']
      local_header_accept_result = @api_client.select_header_accept(local_header_accept) and header_params['Accept'] = local_header_accept_result

      # HTTP header 'Content-Type'
      local_header_content_type = ['application/json']
      header_params['Content-Type'] = @api_client.select_header_content_type(local_header_content_type)

      # form parameters
      form_params = {}

      # http body (model)
      post_body = nil
      
      auth_names = ['PureCloud Auth']
      data, status_code, headers = @api_client.call_api(:GET, local_var_path,
        :header_params => header_params,
        :query_params => query_params,
        :form_params => form_params,
        :body => post_body,
        :auth_names => auth_names,
        :return_type => 'DomainLogicalInterface')
      if @api_client.config.debugging
        @api_client.config.logger.debug "API called: TelephonyProvidersEdgeApi#get_telephony_providers_edge_logicalinterface\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
      end
      return data, status_code, headers
    end

    # Get edge logical interfaces.
    # Retrieve a list of all configured logical interfaces from a specific edge.
    # @param edge_id Edge ID
    # @param [Hash] opts the optional parameters
    # @option opts [Array<String>] :expand Field to expand in the response
    # @return [LogicalInterfaceEntityListing]
    def get_telephony_providers_edge_logicalinterfaces(edge_id, opts = {})
      data, _status_code, _headers = get_telephony_providers_edge_logicalinterfaces_with_http_info(edge_id, opts)
      return data
    end

    # Get edge logical interfaces.
    # Retrieve a list of all configured logical interfaces from a specific edge.
    # @param edge_id Edge ID
    # @param [Hash] opts the optional parameters
    # @option opts [Array<String>] :expand Field to expand in the response
    # @return [Array<(LogicalInterfaceEntityListing, Fixnum, Hash)>] LogicalInterfaceEntityListing data, response status code and response headers
    def get_telephony_providers_edge_logicalinterfaces_with_http_info(edge_id, opts = {})
      if @api_client.config.debugging
        @api_client.config.logger.debug "Calling API: TelephonyProvidersEdgeApi.get_telephony_providers_edge_logicalinterfaces ..."
      end
      
      
      # verify the required parameter 'edge_id' is set
      fail ArgumentError, "Missing the required parameter 'edge_id' when calling TelephonyProvidersEdgeApi.get_telephony_providers_edge_logicalinterfaces" if edge_id.nil?
      
      
      
      
      
      
      
      
      
      
      
      # resource path
      local_var_path = "/api/v2/telephony/providers/edges/{edgeId}/logicalinterfaces".sub('{format}','json').sub('{' + 'edgeId' + '}', edge_id.to_s)

      # query parameters
      query_params = {}
      query_params[:'expand'] = @api_client.build_collection_param(opts[:'expand'], :multi) if opts[:'expand']

      # header parameters
      header_params = {}

      # HTTP header 'Accept' (if needed)
      local_header_accept = ['application/json']
      local_header_accept_result = @api_client.select_header_accept(local_header_accept) and header_params['Accept'] = local_header_accept_result

      # HTTP header 'Content-Type'
      local_header_content_type = ['application/json']
      header_params['Content-Type'] = @api_client.select_header_content_type(local_header_content_type)

      # form parameters
      form_params = {}

      # http body (model)
      post_body = nil
      
      auth_names = ['PureCloud Auth']
      data, status_code, headers = @api_client.call_api(:GET, local_var_path,
        :header_params => header_params,
        :query_params => query_params,
        :form_params => form_params,
        :body => post_body,
        :auth_names => auth_names,
        :return_type => 'LogicalInterfaceEntityListing')
      if @api_client.config.debugging
        @api_client.config.logger.debug "API called: TelephonyProvidersEdgeApi#get_telephony_providers_edge_logicalinterfaces\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
      end
      return data, status_code, headers
    end

    # Get an Edge logs job.
    # 
    # @param edge_id Edge ID
    # @param job_id Job ID
    # @param [Hash] opts the optional parameters
    # @return [EdgeLogsJob]
    def get_telephony_providers_edge_logs_job(edge_id, job_id, opts = {})
      data, _status_code, _headers = get_telephony_providers_edge_logs_job_with_http_info(edge_id, job_id, opts)
      return data
    end

    # Get an Edge logs job.
    # 
    # @param edge_id Edge ID
    # @param job_id Job ID
    # @param [Hash] opts the optional parameters
    # @return [Array<(EdgeLogsJob, Fixnum, Hash)>] EdgeLogsJob data, response status code and response headers
    def get_telephony_providers_edge_logs_job_with_http_info(edge_id, job_id, opts = {})
      if @api_client.config.debugging
        @api_client.config.logger.debug "Calling API: TelephonyProvidersEdgeApi.get_telephony_providers_edge_logs_job ..."
      end
      
      
      # verify the required parameter 'edge_id' is set
      fail ArgumentError, "Missing the required parameter 'edge_id' when calling TelephonyProvidersEdgeApi.get_telephony_providers_edge_logs_job" if edge_id.nil?
      
      
      
      
      
      
      # verify the required parameter 'job_id' is set
      fail ArgumentError, "Missing the required parameter 'job_id' when calling TelephonyProvidersEdgeApi.get_telephony_providers_edge_logs_job" if job_id.nil?
      
      
      
      
      
      # resource path
      local_var_path = "/api/v2/telephony/providers/edges/{edgeId}/logs/jobs/{jobId}".sub('{format}','json').sub('{' + 'edgeId' + '}', edge_id.to_s).sub('{' + 'jobId' + '}', job_id.to_s)

      # query parameters
      query_params = {}

      # header parameters
      header_params = {}

      # HTTP header 'Accept' (if needed)
      local_header_accept = ['application/json']
      local_header_accept_result = @api_client.select_header_accept(local_header_accept) and header_params['Accept'] = local_header_accept_result

      # HTTP header 'Content-Type'
      local_header_content_type = ['application/json']
      header_params['Content-Type'] = @api_client.select_header_content_type(local_header_content_type)

      # form parameters
      form_params = {}

      # http body (model)
      post_body = nil
      
      auth_names = ['PureCloud Auth']
      data, status_code, headers = @api_client.call_api(:GET, local_var_path,
        :header_params => header_params,
        :query_params => query_params,
        :form_params => form_params,
        :body => post_body,
        :auth_names => auth_names,
        :return_type => 'EdgeLogsJob')
      if @api_client.config.debugging
        @api_client.config.logger.debug "API called: TelephonyProvidersEdgeApi#get_telephony_providers_edge_logs_job\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
      end
      return data, status_code, headers
    end

    # Get the edge metrics.
    # 
    # @param edge_id Edge Id
    # @param [Hash] opts the optional parameters
    # @return [EdgeMetrics]
    def get_telephony_providers_edge_metrics(edge_id, opts = {})
      data, _status_code, _headers = get_telephony_providers_edge_metrics_with_http_info(edge_id, opts)
      return data
    end

    # Get the edge metrics.
    # 
    # @param edge_id Edge Id
    # @param [Hash] opts the optional parameters
    # @return [Array<(EdgeMetrics, Fixnum, Hash)>] EdgeMetrics data, response status code and response headers
    def get_telephony_providers_edge_metrics_with_http_info(edge_id, opts = {})
      if @api_client.config.debugging
        @api_client.config.logger.debug "Calling API: TelephonyProvidersEdgeApi.get_telephony_providers_edge_metrics ..."
      end
      
      
      # verify the required parameter 'edge_id' is set
      fail ArgumentError, "Missing the required parameter 'edge_id' when calling TelephonyProvidersEdgeApi.get_telephony_providers_edge_metrics" if edge_id.nil?
      
      
      
      
      
      # resource path
      local_var_path = "/api/v2/telephony/providers/edges/{edgeId}/metrics".sub('{format}','json').sub('{' + 'edgeId' + '}', edge_id.to_s)

      # query parameters
      query_params = {}

      # header parameters
      header_params = {}

      # HTTP header 'Accept' (if needed)
      local_header_accept = ['application/json']
      local_header_accept_result = @api_client.select_header_accept(local_header_accept) and header_params['Accept'] = local_header_accept_result

      # HTTP header 'Content-Type'
      local_header_content_type = ['application/json']
      header_params['Content-Type'] = @api_client.select_header_content_type(local_header_content_type)

      # form parameters
      form_params = {}

      # http body (model)
      post_body = nil
      
      auth_names = ['PureCloud Auth']
      data, status_code, headers = @api_client.call_api(:GET, local_var_path,
        :header_params => header_params,
        :query_params => query_params,
        :form_params => form_params,
        :body => post_body,
        :auth_names => auth_names,
        :return_type => 'EdgeMetrics')
      if @api_client.config.debugging
        @api_client.config.logger.debug "API called: TelephonyProvidersEdgeApi#get_telephony_providers_edge_metrics\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
      end
      return data, status_code, headers
    end

    # Get edge physical interface.
    # Retrieve a physical interface from a specific edge.
    # @param edge_id Edge ID
    # @param interface_id Interface ID
    # @param [Hash] opts the optional parameters
    # @return [DomainPhysicalInterface]
    def get_telephony_providers_edge_physicalinterface(edge_id, interface_id, opts = {})
      data, _status_code, _headers = get_telephony_providers_edge_physicalinterface_with_http_info(edge_id, interface_id, opts)
      return data
    end

    # Get edge physical interface.
    # Retrieve a physical interface from a specific edge.
    # @param edge_id Edge ID
    # @param interface_id Interface ID
    # @param [Hash] opts the optional parameters
    # @return [Array<(DomainPhysicalInterface, Fixnum, Hash)>] DomainPhysicalInterface data, response status code and response headers
    def get_telephony_providers_edge_physicalinterface_with_http_info(edge_id, interface_id, opts = {})
      if @api_client.config.debugging
        @api_client.config.logger.debug "Calling API: TelephonyProvidersEdgeApi.get_telephony_providers_edge_physicalinterface ..."
      end
      
      
      # verify the required parameter 'edge_id' is set
      fail ArgumentError, "Missing the required parameter 'edge_id' when calling TelephonyProvidersEdgeApi.get_telephony_providers_edge_physicalinterface" if edge_id.nil?
      
      
      
      
      
      
      # verify the required parameter 'interface_id' is set
      fail ArgumentError, "Missing the required parameter 'interface_id' when calling TelephonyProvidersEdgeApi.get_telephony_providers_edge_physicalinterface" if interface_id.nil?
      
      
      
      
      
      # resource path
      local_var_path = "/api/v2/telephony/providers/edges/{edgeId}/physicalinterfaces/{interfaceId}".sub('{format}','json').sub('{' + 'edgeId' + '}', edge_id.to_s).sub('{' + 'interfaceId' + '}', interface_id.to_s)

      # query parameters
      query_params = {}

      # header parameters
      header_params = {}

      # HTTP header 'Accept' (if needed)
      local_header_accept = ['application/json']
      local_header_accept_result = @api_client.select_header_accept(local_header_accept) and header_params['Accept'] = local_header_accept_result

      # HTTP header 'Content-Type'
      local_header_content_type = ['application/json']
      header_params['Content-Type'] = @api_client.select_header_content_type(local_header_content_type)

      # form parameters
      form_params = {}

      # http body (model)
      post_body = nil
      
      auth_names = ['PureCloud Auth']
      data, status_code, headers = @api_client.call_api(:GET, local_var_path,
        :header_params => header_params,
        :query_params => query_params,
        :form_params => form_params,
        :body => post_body,
        :auth_names => auth_names,
        :return_type => 'DomainPhysicalInterface')
      if @api_client.config.debugging
        @api_client.config.logger.debug "API called: TelephonyProvidersEdgeApi#get_telephony_providers_edge_physicalinterface\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
      end
      return data, status_code, headers
    end

    # Retrieve a list of all configured physical interfaces from a specific edge.
    # 
    # @param edge_id Edge ID
    # @param [Hash] opts the optional parameters
    # @return [PhysicalInterfaceEntityListing]
    def get_telephony_providers_edge_physicalinterfaces(edge_id, opts = {})
      data, _status_code, _headers = get_telephony_providers_edge_physicalinterfaces_with_http_info(edge_id, opts)
      return data
    end

    # Retrieve a list of all configured physical interfaces from a specific edge.
    # 
    # @param edge_id Edge ID
    # @param [Hash] opts the optional parameters
    # @return [Array<(PhysicalInterfaceEntityListing, Fixnum, Hash)>] PhysicalInterfaceEntityListing data, response status code and response headers
    def get_telephony_providers_edge_physicalinterfaces_with_http_info(edge_id, opts = {})
      if @api_client.config.debugging
        @api_client.config.logger.debug "Calling API: TelephonyProvidersEdgeApi.get_telephony_providers_edge_physicalinterfaces ..."
      end
      
      
      # verify the required parameter 'edge_id' is set
      fail ArgumentError, "Missing the required parameter 'edge_id' when calling TelephonyProvidersEdgeApi.get_telephony_providers_edge_physicalinterfaces" if edge_id.nil?
      
      
      
      
      
      # resource path
      local_var_path = "/api/v2/telephony/providers/edges/{edgeId}/physicalinterfaces".sub('{format}','json').sub('{' + 'edgeId' + '}', edge_id.to_s)

      # query parameters
      query_params = {}

      # header parameters
      header_params = {}

      # HTTP header 'Accept' (if needed)
      local_header_accept = ['application/json']
      local_header_accept_result = @api_client.select_header_accept(local_header_accept) and header_params['Accept'] = local_header_accept_result

      # HTTP header 'Content-Type'
      local_header_content_type = ['application/json']
      header_params['Content-Type'] = @api_client.select_header_content_type(local_header_content_type)

      # form parameters
      form_params = {}

      # http body (model)
      post_body = nil
      
      auth_names = ['PureCloud Auth']
      data, status_code, headers = @api_client.call_api(:GET, local_var_path,
        :header_params => header_params,
        :query_params => query_params,
        :form_params => form_params,
        :body => post_body,
        :auth_names => auth_names,
        :return_type => 'PhysicalInterfaceEntityListing')
      if @api_client.config.debugging
        @api_client.config.logger.debug "API called: TelephonyProvidersEdgeApi#get_telephony_providers_edge_physicalinterfaces\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
      end
      return data, status_code, headers
    end

    # Get the setup package for a locally deployed edge device. This is needed to complete the setup process for the virtual edge.
    # 
    # @param edge_id Edge ID
    # @param [Hash] opts the optional parameters
    # @return [VmPairingInfo]
    def get_telephony_providers_edge_setuppackage(edge_id, opts = {})
      data, _status_code, _headers = get_telephony_providers_edge_setuppackage_with_http_info(edge_id, opts)
      return data
    end

    # Get the setup package for a locally deployed edge device. This is needed to complete the setup process for the virtual edge.
    # 
    # @param edge_id Edge ID
    # @param [Hash] opts the optional parameters
    # @return [Array<(VmPairingInfo, Fixnum, Hash)>] VmPairingInfo data, response status code and response headers
    def get_telephony_providers_edge_setuppackage_with_http_info(edge_id, opts = {})
      if @api_client.config.debugging
        @api_client.config.logger.debug "Calling API: TelephonyProvidersEdgeApi.get_telephony_providers_edge_setuppackage ..."
      end
      
      
      # verify the required parameter 'edge_id' is set
      fail ArgumentError, "Missing the required parameter 'edge_id' when calling TelephonyProvidersEdgeApi.get_telephony_providers_edge_setuppackage" if edge_id.nil?
      
      
      
      
      
      # resource path
      local_var_path = "/api/v2/telephony/providers/edges/{edgeId}/setuppackage".sub('{format}','json').sub('{' + 'edgeId' + '}', edge_id.to_s)

      # query parameters
      query_params = {}

      # header parameters
      header_params = {}

      # HTTP header 'Accept' (if needed)
      local_header_accept = ['application/json']
      local_header_accept_result = @api_client.select_header_accept(local_header_accept) and header_params['Accept'] = local_header_accept_result

      # HTTP header 'Content-Type'
      local_header_content_type = ['application/json']
      header_params['Content-Type'] = @api_client.select_header_content_type(local_header_content_type)

      # form parameters
      form_params = {}

      # http body (model)
      post_body = nil
      
      auth_names = ['PureCloud Auth']
      data, status_code, headers = @api_client.call_api(:GET, local_var_path,
        :header_params => header_params,
        :query_params => query_params,
        :form_params => form_params,
        :body => post_body,
        :auth_names => auth_names,
        :return_type => 'VmPairingInfo')
      if @api_client.config.debugging
        @api_client.config.logger.debug "API called: TelephonyProvidersEdgeApi#get_telephony_providers_edge_setuppackage\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
      end
      return data, status_code, headers
    end

    # Gets software update status information about any edge.
    # 
    # @param edge_id Edge ID
    # @param [Hash] opts the optional parameters
    # @return [DomainEdgeSoftwareUpdateDto]
    def get_telephony_providers_edge_softwareupdate(edge_id, opts = {})
      data, _status_code, _headers = get_telephony_providers_edge_softwareupdate_with_http_info(edge_id, opts)
      return data
    end

    # Gets software update status information about any edge.
    # 
    # @param edge_id Edge ID
    # @param [Hash] opts the optional parameters
    # @return [Array<(DomainEdgeSoftwareUpdateDto, Fixnum, Hash)>] DomainEdgeSoftwareUpdateDto data, response status code and response headers
    def get_telephony_providers_edge_softwareupdate_with_http_info(edge_id, opts = {})
      if @api_client.config.debugging
        @api_client.config.logger.debug "Calling API: TelephonyProvidersEdgeApi.get_telephony_providers_edge_softwareupdate ..."
      end
      
      
      # verify the required parameter 'edge_id' is set
      fail ArgumentError, "Missing the required parameter 'edge_id' when calling TelephonyProvidersEdgeApi.get_telephony_providers_edge_softwareupdate" if edge_id.nil?
      
      
      
      
      
      # resource path
      local_var_path = "/api/v2/telephony/providers/edges/{edgeId}/softwareupdate".sub('{format}','json').sub('{' + 'edgeId' + '}', edge_id.to_s)

      # query parameters
      query_params = {}

      # header parameters
      header_params = {}

      # HTTP header 'Accept' (if needed)
      local_header_accept = ['application/json']
      local_header_accept_result = @api_client.select_header_accept(local_header_accept) and header_params['Accept'] = local_header_accept_result

      # HTTP header 'Content-Type'
      local_header_content_type = ['application/json']
      header_params['Content-Type'] = @api_client.select_header_content_type(local_header_content_type)

      # form parameters
      form_params = {}

      # http body (model)
      post_body = nil
      
      auth_names = ['PureCloud Auth']
      data, status_code, headers = @api_client.call_api(:GET, local_var_path,
        :header_params => header_params,
        :query_params => query_params,
        :form_params => form_params,
        :body => post_body,
        :auth_names => auth_names,
        :return_type => 'DomainEdgeSoftwareUpdateDto')
      if @api_client.config.debugging
        @api_client.config.logger.debug "API called: TelephonyProvidersEdgeApi#get_telephony_providers_edge_softwareupdate\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
      end
      return data, status_code, headers
    end

    # Gets all the available software versions for this edge.
    # 
    # @param edge_id Edge ID
    # @param [Hash] opts the optional parameters
    # @return [DomainEdgeSoftwareVersionDtoEntityListing]
    def get_telephony_providers_edge_softwareversions(edge_id, opts = {})
      data, _status_code, _headers = get_telephony_providers_edge_softwareversions_with_http_info(edge_id, opts)
      return data
    end

    # Gets all the available software versions for this edge.
    # 
    # @param edge_id Edge ID
    # @param [Hash] opts the optional parameters
    # @return [Array<(DomainEdgeSoftwareVersionDtoEntityListing, Fixnum, Hash)>] DomainEdgeSoftwareVersionDtoEntityListing data, response status code and response headers
    def get_telephony_providers_edge_softwareversions_with_http_info(edge_id, opts = {})
      if @api_client.config.debugging
        @api_client.config.logger.debug "Calling API: TelephonyProvidersEdgeApi.get_telephony_providers_edge_softwareversions ..."
      end
      
      
      # verify the required parameter 'edge_id' is set
      fail ArgumentError, "Missing the required parameter 'edge_id' when calling TelephonyProvidersEdgeApi.get_telephony_providers_edge_softwareversions" if edge_id.nil?
      
      
      
      
      
      # resource path
      local_var_path = "/api/v2/telephony/providers/edges/{edgeId}/softwareversions".sub('{format}','json').sub('{' + 'edgeId' + '}', edge_id.to_s)

      # query parameters
      query_params = {}

      # header parameters
      header_params = {}

      # HTTP header 'Accept' (if needed)
      local_header_accept = ['application/json']
      local_header_accept_result = @api_client.select_header_accept(local_header_accept) and header_params['Accept'] = local_header_accept_result

      # HTTP header 'Content-Type'
      local_header_content_type = ['application/json']
      header_params['Content-Type'] = @api_client.select_header_content_type(local_header_content_type)

      # form parameters
      form_params = {}

      # http body (model)
      post_body = nil
      
      auth_names = ['PureCloud Auth']
      data, status_code, headers = @api_client.call_api(:GET, local_var_path,
        :header_params => header_params,
        :query_params => query_params,
        :form_params => form_params,
        :body => post_body,
        :auth_names => auth_names,
        :return_type => 'DomainEdgeSoftwareVersionDtoEntityListing')
      if @api_client.config.debugging
        @api_client.config.logger.debug "API called: TelephonyProvidersEdgeApi#get_telephony_providers_edge_softwareversions\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
      end
      return data, status_code, headers
    end

    # Get the list of available trunks for the given Edge.
    # Trunks are created by assigning trunk base settings to an Edge or Edge Group.
    # @param edge_id Edge ID
    # @param [Hash] opts the optional parameters
    # @option opts [Integer] :page_number Page number (default to 1)
    # @option opts [Integer] :page_size Page size (default to 25)
    # @option opts [String] :sort_by Value by which to sort (default to name)
    # @option opts [String] :sort_order Sort order (default to ASC)
    # @option opts [String] :trunk_base_id Filter by Trunk Base Ids
    # @option opts [String] :trunk_type Filter by a Trunk type
    # @return [TrunkEntityListing]
    def get_telephony_providers_edge_trunks(edge_id, opts = {})
      data, _status_code, _headers = get_telephony_providers_edge_trunks_with_http_info(edge_id, opts)
      return data
    end

    # Get the list of available trunks for the given Edge.
    # Trunks are created by assigning trunk base settings to an Edge or Edge Group.
    # @param edge_id Edge ID
    # @param [Hash] opts the optional parameters
    # @option opts [Integer] :page_number Page number
    # @option opts [Integer] :page_size Page size
    # @option opts [String] :sort_by Value by which to sort
    # @option opts [String] :sort_order Sort order
    # @option opts [String] :trunk_base_id Filter by Trunk Base Ids
    # @option opts [String] :trunk_type Filter by a Trunk type
    # @return [Array<(TrunkEntityListing, Fixnum, Hash)>] TrunkEntityListing data, response status code and response headers
    def get_telephony_providers_edge_trunks_with_http_info(edge_id, opts = {})
      if @api_client.config.debugging
        @api_client.config.logger.debug "Calling API: TelephonyProvidersEdgeApi.get_telephony_providers_edge_trunks ..."
      end
      
      
      # verify the required parameter 'edge_id' is set
      fail ArgumentError, "Missing the required parameter 'edge_id' when calling TelephonyProvidersEdgeApi.get_telephony_providers_edge_trunks" if edge_id.nil?
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      if opts[:'trunk_type'] && !['EXTERNAL', 'PHONE', 'EDGE'].include?(opts[:'trunk_type'])
        fail ArgumentError, 'invalid value for "trunk_type", must be one of EXTERNAL, PHONE, EDGE'
      end
      
      
      
      
      # resource path
      local_var_path = "/api/v2/telephony/providers/edges/{edgeId}/trunks".sub('{format}','json').sub('{' + 'edgeId' + '}', edge_id.to_s)

      # query parameters
      query_params = {}
      query_params[:'pageNumber'] = opts[:'page_number'] if opts[:'page_number']
      query_params[:'pageSize'] = opts[:'page_size'] if opts[:'page_size']
      query_params[:'sortBy'] = opts[:'sort_by'] if opts[:'sort_by']
      query_params[:'sortOrder'] = opts[:'sort_order'] if opts[:'sort_order']
      query_params[:'trunkBase.id'] = opts[:'trunk_base_id'] if opts[:'trunk_base_id']
      query_params[:'trunkType'] = opts[:'trunk_type'] if opts[:'trunk_type']

      # header parameters
      header_params = {}

      # HTTP header 'Accept' (if needed)
      local_header_accept = ['application/json']
      local_header_accept_result = @api_client.select_header_accept(local_header_accept) and header_params['Accept'] = local_header_accept_result

      # HTTP header 'Content-Type'
      local_header_content_type = ['application/json']
      header_params['Content-Type'] = @api_client.select_header_content_type(local_header_content_type)

      # form parameters
      form_params = {}

      # http body (model)
      post_body = nil
      
      auth_names = ['PureCloud Auth']
      data, status_code, headers = @api_client.call_api(:GET, local_var_path,
        :header_params => header_params,
        :query_params => query_params,
        :form_params => form_params,
        :body => post_body,
        :auth_names => auth_names,
        :return_type => 'TrunkEntityListing')
      if @api_client.config.debugging
        @api_client.config.logger.debug "API called: TelephonyProvidersEdgeApi#get_telephony_providers_edge_trunks\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
      end
      return data, status_code, headers
    end

    # Get the list of edges.
    # 
    # @param [Hash] opts the optional parameters
    # @option opts [Integer] :page_size Page size (default to 25)
    # @option opts [Integer] :page_number Page number (default to 1)
    # @option opts [String] :name Name
    # @option opts [String] :site_id Filter by site.id
    # @option opts [String] :edge_group_id Filter by edgeGroup.id
    # @option opts [String] :sort_by Sort by (default to name)
    # @option opts [BOOLEAN] :managed Filter by managed
    # @return [EdgeEntityListing]
    def get_telephony_providers_edges(opts = {})
      data, _status_code, _headers = get_telephony_providers_edges_with_http_info(opts)
      return data
    end

    # Get the list of edges.
    # 
    # @param [Hash] opts the optional parameters
    # @option opts [Integer] :page_size Page size
    # @option opts [Integer] :page_number Page number
    # @option opts [String] :name Name
    # @option opts [String] :site_id Filter by site.id
    # @option opts [String] :edge_group_id Filter by edgeGroup.id
    # @option opts [String] :sort_by Sort by
    # @option opts [BOOLEAN] :managed Filter by managed
    # @return [Array<(EdgeEntityListing, Fixnum, Hash)>] EdgeEntityListing data, response status code and response headers
    def get_telephony_providers_edges_with_http_info(opts = {})
      if @api_client.config.debugging
        @api_client.config.logger.debug "Calling API: TelephonyProvidersEdgeApi.get_telephony_providers_edges ..."
      end
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      # resource path
      local_var_path = "/api/v2/telephony/providers/edges".sub('{format}','json')

      # query parameters
      query_params = {}
      query_params[:'pageSize'] = opts[:'page_size'] if opts[:'page_size']
      query_params[:'pageNumber'] = opts[:'page_number'] if opts[:'page_number']
      query_params[:'name'] = opts[:'name'] if opts[:'name']
      query_params[:'site.id'] = opts[:'site_id'] if opts[:'site_id']
      query_params[:'edgeGroup.id'] = opts[:'edge_group_id'] if opts[:'edge_group_id']
      query_params[:'sortBy'] = opts[:'sort_by'] if opts[:'sort_by']
      query_params[:'managed'] = opts[:'managed'] if opts[:'managed']

      # header parameters
      header_params = {}

      # HTTP header 'Accept' (if needed)
      local_header_accept = ['application/json']
      local_header_accept_result = @api_client.select_header_accept(local_header_accept) and header_params['Accept'] = local_header_accept_result

      # HTTP header 'Content-Type'
      local_header_content_type = ['application/json']
      header_params['Content-Type'] = @api_client.select_header_content_type(local_header_content_type)

      # form parameters
      form_params = {}

      # http body (model)
      post_body = nil
      
      auth_names = ['PureCloud Auth']
      data, status_code, headers = @api_client.call_api(:GET, local_var_path,
        :header_params => header_params,
        :query_params => query_params,
        :form_params => form_params,
        :body => post_body,
        :auth_names => auth_names,
        :return_type => 'EdgeEntityListing')
      if @api_client.config.debugging
        @api_client.config.logger.debug "API called: TelephonyProvidersEdgeApi#get_telephony_providers_edges\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
      end
      return data, status_code, headers
    end

    # Get the list of available languages.
    # 
    # @param [Hash] opts the optional parameters
    # @return [AvailableLanguageList]
    def get_telephony_providers_edges_availablelanguages(opts = {})
      data, _status_code, _headers = get_telephony_providers_edges_availablelanguages_with_http_info(opts)
      return data
    end

    # Get the list of available languages.
    # 
    # @param [Hash] opts the optional parameters
    # @return [Array<(AvailableLanguageList, Fixnum, Hash)>] AvailableLanguageList data, response status code and response headers
    def get_telephony_providers_edges_availablelanguages_with_http_info(opts = {})
      if @api_client.config.debugging
        @api_client.config.logger.debug "Calling API: TelephonyProvidersEdgeApi.get_telephony_providers_edges_availablelanguages ..."
      end
      
      # resource path
      local_var_path = "/api/v2/telephony/providers/edges/availablelanguages".sub('{format}','json')

      # query parameters
      query_params = {}

      # header parameters
      header_params = {}

      # HTTP header 'Accept' (if needed)
      local_header_accept = ['application/json']
      local_header_accept_result = @api_client.select_header_accept(local_header_accept) and header_params['Accept'] = local_header_accept_result

      # HTTP header 'Content-Type'
      local_header_content_type = ['application/json']
      header_params['Content-Type'] = @api_client.select_header_content_type(local_header_content_type)

      # form parameters
      form_params = {}

      # http body (model)
      post_body = nil
      
      auth_names = ['PureCloud Auth']
      data, status_code, headers = @api_client.call_api(:GET, local_var_path,
        :header_params => header_params,
        :query_params => query_params,
        :form_params => form_params,
        :body => post_body,
        :auth_names => auth_names,
        :return_type => 'AvailableLanguageList')
      if @api_client.config.debugging
        @api_client.config.logger.debug "API called: TelephonyProvidersEdgeApi#get_telephony_providers_edges_availablelanguages\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
      end
      return data, status_code, headers
    end

    # Get the list of certificate authorities.
    # 
    # @param [Hash] opts the optional parameters
    # @return [CertificateAuthorityEntityListing]
    def get_telephony_providers_edges_certificateauthorities(opts = {})
      data, _status_code, _headers = get_telephony_providers_edges_certificateauthorities_with_http_info(opts)
      return data
    end

    # Get the list of certificate authorities.
    # 
    # @param [Hash] opts the optional parameters
    # @return [Array<(CertificateAuthorityEntityListing, Fixnum, Hash)>] CertificateAuthorityEntityListing data, response status code and response headers
    def get_telephony_providers_edges_certificateauthorities_with_http_info(opts = {})
      if @api_client.config.debugging
        @api_client.config.logger.debug "Calling API: TelephonyProvidersEdgeApi.get_telephony_providers_edges_certificateauthorities ..."
      end
      
      # resource path
      local_var_path = "/api/v2/telephony/providers/edges/certificateauthorities".sub('{format}','json')

      # query parameters
      query_params = {}

      # header parameters
      header_params = {}

      # HTTP header 'Accept' (if needed)
      local_header_accept = ['application/json']
      local_header_accept_result = @api_client.select_header_accept(local_header_accept) and header_params['Accept'] = local_header_accept_result

      # HTTP header 'Content-Type'
      local_header_content_type = ['application/json']
      header_params['Content-Type'] = @api_client.select_header_content_type(local_header_content_type)

      # form parameters
      form_params = {}

      # http body (model)
      post_body = nil
      
      auth_names = ['PureCloud Auth']
      data, status_code, headers = @api_client.call_api(:GET, local_var_path,
        :header_params => header_params,
        :query_params => query_params,
        :form_params => form_params,
        :body => post_body,
        :auth_names => auth_names,
        :return_type => 'CertificateAuthorityEntityListing')
      if @api_client.config.debugging
        @api_client.config.logger.debug "API called: TelephonyProvidersEdgeApi#get_telephony_providers_edges_certificateauthorities\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
      end
      return data, status_code, headers
    end

    # Get a certificate authority.
    # 
    # @param certificate_id Certificate ID
    # @param [Hash] opts the optional parameters
    # @return [DomainCertificateAuthority]
    def get_telephony_providers_edges_certificateauthority(certificate_id, opts = {})
      data, _status_code, _headers = get_telephony_providers_edges_certificateauthority_with_http_info(certificate_id, opts)
      return data
    end

    # Get a certificate authority.
    # 
    # @param certificate_id Certificate ID
    # @param [Hash] opts the optional parameters
    # @return [Array<(DomainCertificateAuthority, Fixnum, Hash)>] DomainCertificateAuthority data, response status code and response headers
    def get_telephony_providers_edges_certificateauthority_with_http_info(certificate_id, opts = {})
      if @api_client.config.debugging
        @api_client.config.logger.debug "Calling API: TelephonyProvidersEdgeApi.get_telephony_providers_edges_certificateauthority ..."
      end
      
      
      # verify the required parameter 'certificate_id' is set
      fail ArgumentError, "Missing the required parameter 'certificate_id' when calling TelephonyProvidersEdgeApi.get_telephony_providers_edges_certificateauthority" if certificate_id.nil?
      
      
      
      
      
      # resource path
      local_var_path = "/api/v2/telephony/providers/edges/certificateauthorities/{certificateId}".sub('{format}','json').sub('{' + 'certificateId' + '}', certificate_id.to_s)

      # query parameters
      query_params = {}

      # header parameters
      header_params = {}

      # HTTP header 'Accept' (if needed)
      local_header_accept = ['application/json']
      local_header_accept_result = @api_client.select_header_accept(local_header_accept) and header_params['Accept'] = local_header_accept_result

      # HTTP header 'Content-Type'
      local_header_content_type = ['application/json']
      header_params['Content-Type'] = @api_client.select_header_content_type(local_header_content_type)

      # form parameters
      form_params = {}

      # http body (model)
      post_body = nil
      
      auth_names = ['PureCloud Auth']
      data, status_code, headers = @api_client.call_api(:GET, local_var_path,
        :header_params => header_params,
        :query_params => query_params,
        :form_params => form_params,
        :body => post_body,
        :auth_names => auth_names,
        :return_type => 'DomainCertificateAuthority')
      if @api_client.config.debugging
        @api_client.config.logger.debug "API called: TelephonyProvidersEdgeApi#get_telephony_providers_edges_certificateauthority\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
      end
      return data, status_code, headers
    end

    # Get a DID by ID.
    # 
    # @param did_id DID ID
    # @param [Hash] opts the optional parameters
    # @return [DID]
    def get_telephony_providers_edges_did(did_id, opts = {})
      data, _status_code, _headers = get_telephony_providers_edges_did_with_http_info(did_id, opts)
      return data
    end

    # Get a DID by ID.
    # 
    # @param did_id DID ID
    # @param [Hash] opts the optional parameters
    # @return [Array<(DID, Fixnum, Hash)>] DID data, response status code and response headers
    def get_telephony_providers_edges_did_with_http_info(did_id, opts = {})
      if @api_client.config.debugging
        @api_client.config.logger.debug "Calling API: TelephonyProvidersEdgeApi.get_telephony_providers_edges_did ..."
      end
      
      
      # verify the required parameter 'did_id' is set
      fail ArgumentError, "Missing the required parameter 'did_id' when calling TelephonyProvidersEdgeApi.get_telephony_providers_edges_did" if did_id.nil?
      
      
      
      
      
      # resource path
      local_var_path = "/api/v2/telephony/providers/edges/dids/{didId}".sub('{format}','json').sub('{' + 'didId' + '}', did_id.to_s)

      # query parameters
      query_params = {}

      # header parameters
      header_params = {}

      # HTTP header 'Accept' (if needed)
      local_header_accept = ['application/json']
      local_header_accept_result = @api_client.select_header_accept(local_header_accept) and header_params['Accept'] = local_header_accept_result

      # HTTP header 'Content-Type'
      local_header_content_type = ['application/json']
      header_params['Content-Type'] = @api_client.select_header_content_type(local_header_content_type)

      # form parameters
      form_params = {}

      # http body (model)
      post_body = nil
      
      auth_names = ['PureCloud Auth']
      data, status_code, headers = @api_client.call_api(:GET, local_var_path,
        :header_params => header_params,
        :query_params => query_params,
        :form_params => form_params,
        :body => post_body,
        :auth_names => auth_names,
        :return_type => 'DID')
      if @api_client.config.debugging
        @api_client.config.logger.debug "API called: TelephonyProvidersEdgeApi#get_telephony_providers_edges_did\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
      end
      return data, status_code, headers
    end

    # Get a DID Pool by ID.
    # 
    # @param did_pool_id DID pool ID
    # @param [Hash] opts the optional parameters
    # @return [DIDPool]
    def get_telephony_providers_edges_didpool(did_pool_id, opts = {})
      data, _status_code, _headers = get_telephony_providers_edges_didpool_with_http_info(did_pool_id, opts)
      return data
    end

    # Get a DID Pool by ID.
    # 
    # @param did_pool_id DID pool ID
    # @param [Hash] opts the optional parameters
    # @return [Array<(DIDPool, Fixnum, Hash)>] DIDPool data, response status code and response headers
    def get_telephony_providers_edges_didpool_with_http_info(did_pool_id, opts = {})
      if @api_client.config.debugging
        @api_client.config.logger.debug "Calling API: TelephonyProvidersEdgeApi.get_telephony_providers_edges_didpool ..."
      end
      
      
      # verify the required parameter 'did_pool_id' is set
      fail ArgumentError, "Missing the required parameter 'did_pool_id' when calling TelephonyProvidersEdgeApi.get_telephony_providers_edges_didpool" if did_pool_id.nil?
      
      
      
      
      
      # resource path
      local_var_path = "/api/v2/telephony/providers/edges/didpools/{didPoolId}".sub('{format}','json').sub('{' + 'didPoolId' + '}', did_pool_id.to_s)

      # query parameters
      query_params = {}

      # header parameters
      header_params = {}

      # HTTP header 'Accept' (if needed)
      local_header_accept = ['application/json']
      local_header_accept_result = @api_client.select_header_accept(local_header_accept) and header_params['Accept'] = local_header_accept_result

      # HTTP header 'Content-Type'
      local_header_content_type = ['application/json']
      header_params['Content-Type'] = @api_client.select_header_content_type(local_header_content_type)

      # form parameters
      form_params = {}

      # http body (model)
      post_body = nil
      
      auth_names = ['PureCloud Auth']
      data, status_code, headers = @api_client.call_api(:GET, local_var_path,
        :header_params => header_params,
        :query_params => query_params,
        :form_params => form_params,
        :body => post_body,
        :auth_names => auth_names,
        :return_type => 'DIDPool')
      if @api_client.config.debugging
        @api_client.config.logger.debug "API called: TelephonyProvidersEdgeApi#get_telephony_providers_edges_didpool\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
      end
      return data, status_code, headers
    end

    # Get a listing of DID Pools
    # 
    # @param [Hash] opts the optional parameters
    # @option opts [Integer] :page_size Page size (default to 25)
    # @option opts [Integer] :page_number Page number (default to 1)
    # @option opts [String] :sort_by Sort by (default to number)
    # @return [DIDPoolEntityListing]
    def get_telephony_providers_edges_didpools(opts = {})
      data, _status_code, _headers = get_telephony_providers_edges_didpools_with_http_info(opts)
      return data
    end

    # Get a listing of DID Pools
    # 
    # @param [Hash] opts the optional parameters
    # @option opts [Integer] :page_size Page size
    # @option opts [Integer] :page_number Page number
    # @option opts [String] :sort_by Sort by
    # @return [Array<(DIDPoolEntityListing, Fixnum, Hash)>] DIDPoolEntityListing data, response status code and response headers
    def get_telephony_providers_edges_didpools_with_http_info(opts = {})
      if @api_client.config.debugging
        @api_client.config.logger.debug "Calling API: TelephonyProvidersEdgeApi.get_telephony_providers_edges_didpools ..."
      end
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      # resource path
      local_var_path = "/api/v2/telephony/providers/edges/didpools".sub('{format}','json')

      # query parameters
      query_params = {}
      query_params[:'pageSize'] = opts[:'page_size'] if opts[:'page_size']
      query_params[:'pageNumber'] = opts[:'page_number'] if opts[:'page_number']
      query_params[:'sortBy'] = opts[:'sort_by'] if opts[:'sort_by']

      # header parameters
      header_params = {}

      # HTTP header 'Accept' (if needed)
      local_header_accept = ['application/json']
      local_header_accept_result = @api_client.select_header_accept(local_header_accept) and header_params['Accept'] = local_header_accept_result

      # HTTP header 'Content-Type'
      local_header_content_type = ['application/json']
      header_params['Content-Type'] = @api_client.select_header_content_type(local_header_content_type)

      # form parameters
      form_params = {}

      # http body (model)
      post_body = nil
      
      auth_names = ['PureCloud Auth']
      data, status_code, headers = @api_client.call_api(:GET, local_var_path,
        :header_params => header_params,
        :query_params => query_params,
        :form_params => form_params,
        :body => post_body,
        :auth_names => auth_names,
        :return_type => 'DIDPoolEntityListing')
      if @api_client.config.debugging
        @api_client.config.logger.debug "API called: TelephonyProvidersEdgeApi#get_telephony_providers_edges_didpools\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
      end
      return data, status_code, headers
    end

    # Get a listing of DIDs
    # 
    # @param [Hash] opts the optional parameters
    # @option opts [Integer] :page_size Page size (default to 25)
    # @option opts [Integer] :page_number Page number (default to 1)
    # @option opts [String] :sort_by Sort by (default to number)
    # @option opts [String] :sort_order Sort order (default to ASC)
    # @option opts [String] :phone_number Filter by phoneNumber
    # @return [DIDEntityListing]
    def get_telephony_providers_edges_dids(opts = {})
      data, _status_code, _headers = get_telephony_providers_edges_dids_with_http_info(opts)
      return data
    end

    # Get a listing of DIDs
    # 
    # @param [Hash] opts the optional parameters
    # @option opts [Integer] :page_size Page size
    # @option opts [Integer] :page_number Page number
    # @option opts [String] :sort_by Sort by
    # @option opts [String] :sort_order Sort order
    # @option opts [String] :phone_number Filter by phoneNumber
    # @return [Array<(DIDEntityListing, Fixnum, Hash)>] DIDEntityListing data, response status code and response headers
    def get_telephony_providers_edges_dids_with_http_info(opts = {})
      if @api_client.config.debugging
        @api_client.config.logger.debug "Calling API: TelephonyProvidersEdgeApi.get_telephony_providers_edges_dids ..."
      end
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      # resource path
      local_var_path = "/api/v2/telephony/providers/edges/dids".sub('{format}','json')

      # query parameters
      query_params = {}
      query_params[:'pageSize'] = opts[:'page_size'] if opts[:'page_size']
      query_params[:'pageNumber'] = opts[:'page_number'] if opts[:'page_number']
      query_params[:'sortBy'] = opts[:'sort_by'] if opts[:'sort_by']
      query_params[:'sortOrder'] = opts[:'sort_order'] if opts[:'sort_order']
      query_params[:'phoneNumber'] = opts[:'phone_number'] if opts[:'phone_number']

      # header parameters
      header_params = {}

      # HTTP header 'Accept' (if needed)
      local_header_accept = ['application/json']
      local_header_accept_result = @api_client.select_header_accept(local_header_accept) and header_params['Accept'] = local_header_accept_result

      # HTTP header 'Content-Type'
      local_header_content_type = ['application/json']
      header_params['Content-Type'] = @api_client.select_header_content_type(local_header_content_type)

      # form parameters
      form_params = {}

      # http body (model)
      post_body = nil
      
      auth_names = ['PureCloud Auth']
      data, status_code, headers = @api_client.call_api(:GET, local_var_path,
        :header_params => header_params,
        :query_params => query_params,
        :form_params => form_params,
        :body => post_body,
        :auth_names => auth_names,
        :return_type => 'DIDEntityListing')
      if @api_client.config.debugging
        @api_client.config.logger.debug "API called: TelephonyProvidersEdgeApi#get_telephony_providers_edges_dids\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
      end
      return data, status_code, headers
    end

    # Get edge group.
    # 
    # @param edge_group_id Edge group ID
    # @param [Hash] opts the optional parameters
    # @option opts [Array<String>] :expand Fields to expand in the response
    # @return [EdgeGroup]
    def get_telephony_providers_edges_edgegroup(edge_group_id, opts = {})
      data, _status_code, _headers = get_telephony_providers_edges_edgegroup_with_http_info(edge_group_id, opts)
      return data
    end

    # Get edge group.
    # 
    # @param edge_group_id Edge group ID
    # @param [Hash] opts the optional parameters
    # @option opts [Array<String>] :expand Fields to expand in the response
    # @return [Array<(EdgeGroup, Fixnum, Hash)>] EdgeGroup data, response status code and response headers
    def get_telephony_providers_edges_edgegroup_with_http_info(edge_group_id, opts = {})
      if @api_client.config.debugging
        @api_client.config.logger.debug "Calling API: TelephonyProvidersEdgeApi.get_telephony_providers_edges_edgegroup ..."
      end
      
      
      # verify the required parameter 'edge_group_id' is set
      fail ArgumentError, "Missing the required parameter 'edge_group_id' when calling TelephonyProvidersEdgeApi.get_telephony_providers_edges_edgegroup" if edge_group_id.nil?
      
      
      
      
      
      
      
      
      
      
      
      # resource path
      local_var_path = "/api/v2/telephony/providers/edges/edgegroups/{edgeGroupId}".sub('{format}','json').sub('{' + 'edgeGroupId' + '}', edge_group_id.to_s)

      # query parameters
      query_params = {}
      query_params[:'expand'] = @api_client.build_collection_param(opts[:'expand'], :multi) if opts[:'expand']

      # header parameters
      header_params = {}

      # HTTP header 'Accept' (if needed)
      local_header_accept = ['application/json']
      local_header_accept_result = @api_client.select_header_accept(local_header_accept) and header_params['Accept'] = local_header_accept_result

      # HTTP header 'Content-Type'
      local_header_content_type = ['application/json']
      header_params['Content-Type'] = @api_client.select_header_content_type(local_header_content_type)

      # form parameters
      form_params = {}

      # http body (model)
      post_body = nil
      
      auth_names = ['PureCloud Auth']
      data, status_code, headers = @api_client.call_api(:GET, local_var_path,
        :header_params => header_params,
        :query_params => query_params,
        :form_params => form_params,
        :body => post_body,
        :auth_names => auth_names,
        :return_type => 'EdgeGroup')
      if @api_client.config.debugging
        @api_client.config.logger.debug "API called: TelephonyProvidersEdgeApi#get_telephony_providers_edges_edgegroup\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
      end
      return data, status_code, headers
    end

    # Gets the edge trunk base associated with the edge group
    # 
    # @param edgegroup_id Edge Group ID
    # @param edgetrunkbase_id Edge Trunk Base ID
    # @param [Hash] opts the optional parameters
    # @return [EdgeTrunkBase]
    def get_telephony_providers_edges_edgegroup_edgetrunkbase(edgegroup_id, edgetrunkbase_id, opts = {})
      data, _status_code, _headers = get_telephony_providers_edges_edgegroup_edgetrunkbase_with_http_info(edgegroup_id, edgetrunkbase_id, opts)
      return data
    end

    # Gets the edge trunk base associated with the edge group
    # 
    # @param edgegroup_id Edge Group ID
    # @param edgetrunkbase_id Edge Trunk Base ID
    # @param [Hash] opts the optional parameters
    # @return [Array<(EdgeTrunkBase, Fixnum, Hash)>] EdgeTrunkBase data, response status code and response headers
    def get_telephony_providers_edges_edgegroup_edgetrunkbase_with_http_info(edgegroup_id, edgetrunkbase_id, opts = {})
      if @api_client.config.debugging
        @api_client.config.logger.debug "Calling API: TelephonyProvidersEdgeApi.get_telephony_providers_edges_edgegroup_edgetrunkbase ..."
      end
      
      
      # verify the required parameter 'edgegroup_id' is set
      fail ArgumentError, "Missing the required parameter 'edgegroup_id' when calling TelephonyProvidersEdgeApi.get_telephony_providers_edges_edgegroup_edgetrunkbase" if edgegroup_id.nil?
      
      
      
      
      
      
      # verify the required parameter 'edgetrunkbase_id' is set
      fail ArgumentError, "Missing the required parameter 'edgetrunkbase_id' when calling TelephonyProvidersEdgeApi.get_telephony_providers_edges_edgegroup_edgetrunkbase" if edgetrunkbase_id.nil?
      
      
      
      
      
      # resource path
      local_var_path = "/api/v2/telephony/providers/edges/edgegroups/{edgegroupId}/edgetrunkbases/{edgetrunkbaseId}".sub('{format}','json').sub('{' + 'edgegroupId' + '}', edgegroup_id.to_s).sub('{' + 'edgetrunkbaseId' + '}', edgetrunkbase_id.to_s)

      # query parameters
      query_params = {}

      # header parameters
      header_params = {}

      # HTTP header 'Accept' (if needed)
      local_header_accept = ['application/json']
      local_header_accept_result = @api_client.select_header_accept(local_header_accept) and header_params['Accept'] = local_header_accept_result

      # HTTP header 'Content-Type'
      local_header_content_type = ['application/json']
      header_params['Content-Type'] = @api_client.select_header_content_type(local_header_content_type)

      # form parameters
      form_params = {}

      # http body (model)
      post_body = nil
      
      auth_names = ['PureCloud Auth']
      data, status_code, headers = @api_client.call_api(:GET, local_var_path,
        :header_params => header_params,
        :query_params => query_params,
        :form_params => form_params,
        :body => post_body,
        :auth_names => auth_names,
        :return_type => 'EdgeTrunkBase')
      if @api_client.config.debugging
        @api_client.config.logger.debug "API called: TelephonyProvidersEdgeApi#get_telephony_providers_edges_edgegroup_edgetrunkbase\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
      end
      return data, status_code, headers
    end

    # Get the list of edge groups.
    # 
    # @param [Hash] opts the optional parameters
    # @option opts [Integer] :page_size Page size (default to 25)
    # @option opts [Integer] :page_number Page number (default to 1)
    # @option opts [String] :name Name
    # @option opts [String] :sort_by Sort by (default to name)
    # @option opts [BOOLEAN] :managed Filter by managed
    # @return [EdgeGroupEntityListing]
    def get_telephony_providers_edges_edgegroups(opts = {})
      data, _status_code, _headers = get_telephony_providers_edges_edgegroups_with_http_info(opts)
      return data
    end

    # Get the list of edge groups.
    # 
    # @param [Hash] opts the optional parameters
    # @option opts [Integer] :page_size Page size
    # @option opts [Integer] :page_number Page number
    # @option opts [String] :name Name
    # @option opts [String] :sort_by Sort by
    # @option opts [BOOLEAN] :managed Filter by managed
    # @return [Array<(EdgeGroupEntityListing, Fixnum, Hash)>] EdgeGroupEntityListing data, response status code and response headers
    def get_telephony_providers_edges_edgegroups_with_http_info(opts = {})
      if @api_client.config.debugging
        @api_client.config.logger.debug "Calling API: TelephonyProvidersEdgeApi.get_telephony_providers_edges_edgegroups ..."
      end
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      # resource path
      local_var_path = "/api/v2/telephony/providers/edges/edgegroups".sub('{format}','json')

      # query parameters
      query_params = {}
      query_params[:'pageSize'] = opts[:'page_size'] if opts[:'page_size']
      query_params[:'pageNumber'] = opts[:'page_number'] if opts[:'page_number']
      query_params[:'name'] = opts[:'name'] if opts[:'name']
      query_params[:'sortBy'] = opts[:'sort_by'] if opts[:'sort_by']
      query_params[:'managed'] = opts[:'managed'] if opts[:'managed']

      # header parameters
      header_params = {}

      # HTTP header 'Accept' (if needed)
      local_header_accept = ['application/json']
      local_header_accept_result = @api_client.select_header_accept(local_header_accept) and header_params['Accept'] = local_header_accept_result

      # HTTP header 'Content-Type'
      local_header_content_type = ['application/json']
      header_params['Content-Type'] = @api_client.select_header_content_type(local_header_content_type)

      # form parameters
      form_params = {}

      # http body (model)
      post_body = nil
      
      auth_names = ['PureCloud Auth']
      data, status_code, headers = @api_client.call_api(:GET, local_var_path,
        :header_params => header_params,
        :query_params => query_params,
        :form_params => form_params,
        :body => post_body,
        :auth_names => auth_names,
        :return_type => 'EdgeGroupEntityListing')
      if @api_client.config.debugging
        @api_client.config.logger.debug "API called: TelephonyProvidersEdgeApi#get_telephony_providers_edges_edgegroups\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
      end
      return data, status_code, headers
    end

    # Get the edge version report.
    # The report will not have consistent data about the edge version(s) until all edges have been reset.
    # @param [Hash] opts the optional parameters
    # @return [EdgeVersionReport]
    def get_telephony_providers_edges_edgeversionreport(opts = {})
      data, _status_code, _headers = get_telephony_providers_edges_edgeversionreport_with_http_info(opts)
      return data
    end

    # Get the edge version report.
    # The report will not have consistent data about the edge version(s) until all edges have been reset.
    # @param [Hash] opts the optional parameters
    # @return [Array<(EdgeVersionReport, Fixnum, Hash)>] EdgeVersionReport data, response status code and response headers
    def get_telephony_providers_edges_edgeversionreport_with_http_info(opts = {})
      if @api_client.config.debugging
        @api_client.config.logger.debug "Calling API: TelephonyProvidersEdgeApi.get_telephony_providers_edges_edgeversionreport ..."
      end
      
      # resource path
      local_var_path = "/api/v2/telephony/providers/edges/edgeversionreport".sub('{format}','json')

      # query parameters
      query_params = {}

      # header parameters
      header_params = {}

      # HTTP header 'Accept' (if needed)
      local_header_accept = ['application/json']
      local_header_accept_result = @api_client.select_header_accept(local_header_accept) and header_params['Accept'] = local_header_accept_result

      # HTTP header 'Content-Type'
      local_header_content_type = ['application/json']
      header_params['Content-Type'] = @api_client.select_header_content_type(local_header_content_type)

      # form parameters
      form_params = {}

      # http body (model)
      post_body = nil
      
      auth_names = ['PureCloud Auth']
      data, status_code, headers = @api_client.call_api(:GET, local_var_path,
        :header_params => header_params,
        :query_params => query_params,
        :form_params => form_params,
        :body => post_body,
        :auth_names => auth_names,
        :return_type => 'EdgeVersionReport')
      if @api_client.config.debugging
        @api_client.config.logger.debug "API called: TelephonyProvidersEdgeApi#get_telephony_providers_edges_edgeversionreport\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
      end
      return data, status_code, headers
    end

    # Get endpoint
    # 
    # @param endpoint_id Endpoint ID
    # @param [Hash] opts the optional parameters
    # @return [Endpoint]
    def get_telephony_providers_edges_endpoint(endpoint_id, opts = {})
      data, _status_code, _headers = get_telephony_providers_edges_endpoint_with_http_info(endpoint_id, opts)
      return data
    end

    # Get endpoint
    # 
    # @param endpoint_id Endpoint ID
    # @param [Hash] opts the optional parameters
    # @return [Array<(Endpoint, Fixnum, Hash)>] Endpoint data, response status code and response headers
    def get_telephony_providers_edges_endpoint_with_http_info(endpoint_id, opts = {})
      if @api_client.config.debugging
        @api_client.config.logger.debug "Calling API: TelephonyProvidersEdgeApi.get_telephony_providers_edges_endpoint ..."
      end
      
      
      # verify the required parameter 'endpoint_id' is set
      fail ArgumentError, "Missing the required parameter 'endpoint_id' when calling TelephonyProvidersEdgeApi.get_telephony_providers_edges_endpoint" if endpoint_id.nil?
      
      
      
      
      
      # resource path
      local_var_path = "/api/v2/telephony/providers/edges/endpoints/{endpointId}".sub('{format}','json').sub('{' + 'endpointId' + '}', endpoint_id.to_s)

      # query parameters
      query_params = {}

      # header parameters
      header_params = {}

      # HTTP header 'Accept' (if needed)
      local_header_accept = ['application/json']
      local_header_accept_result = @api_client.select_header_accept(local_header_accept) and header_params['Accept'] = local_header_accept_result

      # HTTP header 'Content-Type'
      local_header_content_type = ['application/json']
      header_params['Content-Type'] = @api_client.select_header_content_type(local_header_content_type)

      # form parameters
      form_params = {}

      # http body (model)
      post_body = nil
      
      auth_names = ['PureCloud Auth']
      data, status_code, headers = @api_client.call_api(:GET, local_var_path,
        :header_params => header_params,
        :query_params => query_params,
        :form_params => form_params,
        :body => post_body,
        :auth_names => auth_names,
        :return_type => 'Endpoint')
      if @api_client.config.debugging
        @api_client.config.logger.debug "API called: TelephonyProvidersEdgeApi#get_telephony_providers_edges_endpoint\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
      end
      return data, status_code, headers
    end

    # Get endpoints
    # 
    # @param [Hash] opts the optional parameters
    # @option opts [Integer] :page_size Page size (default to 25)
    # @option opts [Integer] :page_number Page number (default to 1)
    # @option opts [String] :name Name
    # @option opts [String] :sort_by Sort by (default to name)
    # @return [EndpointEntityListing]
    def get_telephony_providers_edges_endpoints(opts = {})
      data, _status_code, _headers = get_telephony_providers_edges_endpoints_with_http_info(opts)
      return data
    end

    # Get endpoints
    # 
    # @param [Hash] opts the optional parameters
    # @option opts [Integer] :page_size Page size
    # @option opts [Integer] :page_number Page number
    # @option opts [String] :name Name
    # @option opts [String] :sort_by Sort by
    # @return [Array<(EndpointEntityListing, Fixnum, Hash)>] EndpointEntityListing data, response status code and response headers
    def get_telephony_providers_edges_endpoints_with_http_info(opts = {})
      if @api_client.config.debugging
        @api_client.config.logger.debug "Calling API: TelephonyProvidersEdgeApi.get_telephony_providers_edges_endpoints ..."
      end
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      # resource path
      local_var_path = "/api/v2/telephony/providers/edges/endpoints".sub('{format}','json')

      # query parameters
      query_params = {}
      query_params[:'pageSize'] = opts[:'page_size'] if opts[:'page_size']
      query_params[:'pageNumber'] = opts[:'page_number'] if opts[:'page_number']
      query_params[:'name'] = opts[:'name'] if opts[:'name']
      query_params[:'sortBy'] = opts[:'sort_by'] if opts[:'sort_by']

      # header parameters
      header_params = {}

      # HTTP header 'Accept' (if needed)
      local_header_accept = ['application/json']
      local_header_accept_result = @api_client.select_header_accept(local_header_accept) and header_params['Accept'] = local_header_accept_result

      # HTTP header 'Content-Type'
      local_header_content_type = ['application/json']
      header_params['Content-Type'] = @api_client.select_header_content_type(local_header_content_type)

      # form parameters
      form_params = {}

      # http body (model)
      post_body = nil
      
      auth_names = ['PureCloud Auth']
      data, status_code, headers = @api_client.call_api(:GET, local_var_path,
        :header_params => header_params,
        :query_params => query_params,
        :form_params => form_params,
        :body => post_body,
        :auth_names => auth_names,
        :return_type => 'EndpointEntityListing')
      if @api_client.config.debugging
        @api_client.config.logger.debug "API called: TelephonyProvidersEdgeApi#get_telephony_providers_edges_endpoints\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
      end
      return data, status_code, headers
    end

    # Get an extension by ID.
    # 
    # @param extension_id Extension ID
    # @param [Hash] opts the optional parameters
    # @return [Extension]
    def get_telephony_providers_edges_extension(extension_id, opts = {})
      data, _status_code, _headers = get_telephony_providers_edges_extension_with_http_info(extension_id, opts)
      return data
    end

    # Get an extension by ID.
    # 
    # @param extension_id Extension ID
    # @param [Hash] opts the optional parameters
    # @return [Array<(Extension, Fixnum, Hash)>] Extension data, response status code and response headers
    def get_telephony_providers_edges_extension_with_http_info(extension_id, opts = {})
      if @api_client.config.debugging
        @api_client.config.logger.debug "Calling API: TelephonyProvidersEdgeApi.get_telephony_providers_edges_extension ..."
      end
      
      
      # verify the required parameter 'extension_id' is set
      fail ArgumentError, "Missing the required parameter 'extension_id' when calling TelephonyProvidersEdgeApi.get_telephony_providers_edges_extension" if extension_id.nil?
      
      
      
      
      
      # resource path
      local_var_path = "/api/v2/telephony/providers/edges/extensions/{extensionId}".sub('{format}','json').sub('{' + 'extensionId' + '}', extension_id.to_s)

      # query parameters
      query_params = {}

      # header parameters
      header_params = {}

      # HTTP header 'Accept' (if needed)
      local_header_accept = ['application/json']
      local_header_accept_result = @api_client.select_header_accept(local_header_accept) and header_params['Accept'] = local_header_accept_result

      # HTTP header 'Content-Type'
      local_header_content_type = ['application/json']
      header_params['Content-Type'] = @api_client.select_header_content_type(local_header_content_type)

      # form parameters
      form_params = {}

      # http body (model)
      post_body = nil
      
      auth_names = ['PureCloud Auth']
      data, status_code, headers = @api_client.call_api(:GET, local_var_path,
        :header_params => header_params,
        :query_params => query_params,
        :form_params => form_params,
        :body => post_body,
        :auth_names => auth_names,
        :return_type => 'Extension')
      if @api_client.config.debugging
        @api_client.config.logger.debug "API called: TelephonyProvidersEdgeApi#get_telephony_providers_edges_extension\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
      end
      return data, status_code, headers
    end

    # Get an extension pool by ID
    # 
    # @param extension_pool_id Extension pool ID
    # @param [Hash] opts the optional parameters
    # @return [ExtensionPool]
    def get_telephony_providers_edges_extensionpool(extension_pool_id, opts = {})
      data, _status_code, _headers = get_telephony_providers_edges_extensionpool_with_http_info(extension_pool_id, opts)
      return data
    end

    # Get an extension pool by ID
    # 
    # @param extension_pool_id Extension pool ID
    # @param [Hash] opts the optional parameters
    # @return [Array<(ExtensionPool, Fixnum, Hash)>] ExtensionPool data, response status code and response headers
    def get_telephony_providers_edges_extensionpool_with_http_info(extension_pool_id, opts = {})
      if @api_client.config.debugging
        @api_client.config.logger.debug "Calling API: TelephonyProvidersEdgeApi.get_telephony_providers_edges_extensionpool ..."
      end
      
      
      # verify the required parameter 'extension_pool_id' is set
      fail ArgumentError, "Missing the required parameter 'extension_pool_id' when calling TelephonyProvidersEdgeApi.get_telephony_providers_edges_extensionpool" if extension_pool_id.nil?
      
      
      
      
      
      # resource path
      local_var_path = "/api/v2/telephony/providers/edges/extensionpools/{extensionPoolId}".sub('{format}','json').sub('{' + 'extensionPoolId' + '}', extension_pool_id.to_s)

      # query parameters
      query_params = {}

      # header parameters
      header_params = {}

      # HTTP header 'Accept' (if needed)
      local_header_accept = ['application/json']
      local_header_accept_result = @api_client.select_header_accept(local_header_accept) and header_params['Accept'] = local_header_accept_result

      # HTTP header 'Content-Type'
      local_header_content_type = ['application/json']
      header_params['Content-Type'] = @api_client.select_header_content_type(local_header_content_type)

      # form parameters
      form_params = {}

      # http body (model)
      post_body = nil
      
      auth_names = ['PureCloud Auth']
      data, status_code, headers = @api_client.call_api(:GET, local_var_path,
        :header_params => header_params,
        :query_params => query_params,
        :form_params => form_params,
        :body => post_body,
        :auth_names => auth_names,
        :return_type => 'ExtensionPool')
      if @api_client.config.debugging
        @api_client.config.logger.debug "API called: TelephonyProvidersEdgeApi#get_telephony_providers_edges_extensionpool\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
      end
      return data, status_code, headers
    end

    # Get a listing of extension pools
    # 
    # @param [Hash] opts the optional parameters
    # @option opts [Integer] :page_size Page size (default to 25)
    # @option opts [Integer] :page_number Page number (default to 1)
    # @option opts [String] :sort_by Sort by (default to startNumber)
    # @option opts [String] :number Number
    # @return [ExtensionPoolEntityListing]
    def get_telephony_providers_edges_extensionpools(opts = {})
      data, _status_code, _headers = get_telephony_providers_edges_extensionpools_with_http_info(opts)
      return data
    end

    # Get a listing of extension pools
    # 
    # @param [Hash] opts the optional parameters
    # @option opts [Integer] :page_size Page size
    # @option opts [Integer] :page_number Page number
    # @option opts [String] :sort_by Sort by
    # @option opts [String] :number Number
    # @return [Array<(ExtensionPoolEntityListing, Fixnum, Hash)>] ExtensionPoolEntityListing data, response status code and response headers
    def get_telephony_providers_edges_extensionpools_with_http_info(opts = {})
      if @api_client.config.debugging
        @api_client.config.logger.debug "Calling API: TelephonyProvidersEdgeApi.get_telephony_providers_edges_extensionpools ..."
      end
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      # resource path
      local_var_path = "/api/v2/telephony/providers/edges/extensionpools".sub('{format}','json')

      # query parameters
      query_params = {}
      query_params[:'pageSize'] = opts[:'page_size'] if opts[:'page_size']
      query_params[:'pageNumber'] = opts[:'page_number'] if opts[:'page_number']
      query_params[:'sortBy'] = opts[:'sort_by'] if opts[:'sort_by']
      query_params[:'number'] = opts[:'number'] if opts[:'number']

      # header parameters
      header_params = {}

      # HTTP header 'Accept' (if needed)
      local_header_accept = ['application/json']
      local_header_accept_result = @api_client.select_header_accept(local_header_accept) and header_params['Accept'] = local_header_accept_result

      # HTTP header 'Content-Type'
      local_header_content_type = ['application/json']
      header_params['Content-Type'] = @api_client.select_header_content_type(local_header_content_type)

      # form parameters
      form_params = {}

      # http body (model)
      post_body = nil
      
      auth_names = ['PureCloud Auth']
      data, status_code, headers = @api_client.call_api(:GET, local_var_path,
        :header_params => header_params,
        :query_params => query_params,
        :form_params => form_params,
        :body => post_body,
        :auth_names => auth_names,
        :return_type => 'ExtensionPoolEntityListing')
      if @api_client.config.debugging
        @api_client.config.logger.debug "API called: TelephonyProvidersEdgeApi#get_telephony_providers_edges_extensionpools\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
      end
      return data, status_code, headers
    end

    # Get a listing of extensions
    # 
    # @param [Hash] opts the optional parameters
    # @option opts [Integer] :page_size Page size (default to 25)
    # @option opts [Integer] :page_number Page number (default to 1)
    # @option opts [String] :sort_by Sort by (default to number)
    # @option opts [String] :sort_order Sort order (default to ASC)
    # @option opts [String] :number Filter by number
    # @return [ExtensionEntityListing]
    def get_telephony_providers_edges_extensions(opts = {})
      data, _status_code, _headers = get_telephony_providers_edges_extensions_with_http_info(opts)
      return data
    end

    # Get a listing of extensions
    # 
    # @param [Hash] opts the optional parameters
    # @option opts [Integer] :page_size Page size
    # @option opts [Integer] :page_number Page number
    # @option opts [String] :sort_by Sort by
    # @option opts [String] :sort_order Sort order
    # @option opts [String] :number Filter by number
    # @return [Array<(ExtensionEntityListing, Fixnum, Hash)>] ExtensionEntityListing data, response status code and response headers
    def get_telephony_providers_edges_extensions_with_http_info(opts = {})
      if @api_client.config.debugging
        @api_client.config.logger.debug "Calling API: TelephonyProvidersEdgeApi.get_telephony_providers_edges_extensions ..."
      end
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      # resource path
      local_var_path = "/api/v2/telephony/providers/edges/extensions".sub('{format}','json')

      # query parameters
      query_params = {}
      query_params[:'pageSize'] = opts[:'page_size'] if opts[:'page_size']
      query_params[:'pageNumber'] = opts[:'page_number'] if opts[:'page_number']
      query_params[:'sortBy'] = opts[:'sort_by'] if opts[:'sort_by']
      query_params[:'sortOrder'] = opts[:'sort_order'] if opts[:'sort_order']
      query_params[:'number'] = opts[:'number'] if opts[:'number']

      # header parameters
      header_params = {}

      # HTTP header 'Accept' (if needed)
      local_header_accept = ['application/json']
      local_header_accept_result = @api_client.select_header_accept(local_header_accept) and header_params['Accept'] = local_header_accept_result

      # HTTP header 'Content-Type'
      local_header_content_type = ['application/json']
      header_params['Content-Type'] = @api_client.select_header_content_type(local_header_content_type)

      # form parameters
      form_params = {}

      # http body (model)
      post_body = nil
      
      auth_names = ['PureCloud Auth']
      data, status_code, headers = @api_client.call_api(:GET, local_var_path,
        :header_params => header_params,
        :query_params => query_params,
        :form_params => form_params,
        :body => post_body,
        :auth_names => auth_names,
        :return_type => 'ExtensionEntityListing')
      if @api_client.config.debugging
        @api_client.config.logger.debug "API called: TelephonyProvidersEdgeApi#get_telephony_providers_edges_extensions\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
      end
      return data, status_code, headers
    end

    # Get a Line by ID
    # 
    # @param line_id Line ID
    # @param [Hash] opts the optional parameters
    # @return [Line]
    def get_telephony_providers_edges_line(line_id, opts = {})
      data, _status_code, _headers = get_telephony_providers_edges_line_with_http_info(line_id, opts)
      return data
    end

    # Get a Line by ID
    # 
    # @param line_id Line ID
    # @param [Hash] opts the optional parameters
    # @return [Array<(Line, Fixnum, Hash)>] Line data, response status code and response headers
    def get_telephony_providers_edges_line_with_http_info(line_id, opts = {})
      if @api_client.config.debugging
        @api_client.config.logger.debug "Calling API: TelephonyProvidersEdgeApi.get_telephony_providers_edges_line ..."
      end
      
      
      # verify the required parameter 'line_id' is set
      fail ArgumentError, "Missing the required parameter 'line_id' when calling TelephonyProvidersEdgeApi.get_telephony_providers_edges_line" if line_id.nil?
      
      
      
      
      
      # resource path
      local_var_path = "/api/v2/telephony/providers/edges/lines/{lineId}".sub('{format}','json').sub('{' + 'lineId' + '}', line_id.to_s)

      # query parameters
      query_params = {}

      # header parameters
      header_params = {}

      # HTTP header 'Accept' (if needed)
      local_header_accept = ['application/json']
      local_header_accept_result = @api_client.select_header_accept(local_header_accept) and header_params['Accept'] = local_header_accept_result

      # HTTP header 'Content-Type'
      local_header_content_type = ['application/json']
      header_params['Content-Type'] = @api_client.select_header_content_type(local_header_content_type)

      # form parameters
      form_params = {}

      # http body (model)
      post_body = nil
      
      auth_names = ['PureCloud Auth']
      data, status_code, headers = @api_client.call_api(:GET, local_var_path,
        :header_params => header_params,
        :query_params => query_params,
        :form_params => form_params,
        :body => post_body,
        :auth_names => auth_names,
        :return_type => 'Line')
      if @api_client.config.debugging
        @api_client.config.logger.debug "API called: TelephonyProvidersEdgeApi#get_telephony_providers_edges_line\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
      end
      return data, status_code, headers
    end

    # Get a line base settings object by ID
    # 
    # @param line_base_id Line base ID
    # @param [Hash] opts the optional parameters
    # @return [LineBase]
    def get_telephony_providers_edges_linebasesetting(line_base_id, opts = {})
      data, _status_code, _headers = get_telephony_providers_edges_linebasesetting_with_http_info(line_base_id, opts)
      return data
    end

    # Get a line base settings object by ID
    # 
    # @param line_base_id Line base ID
    # @param [Hash] opts the optional parameters
    # @return [Array<(LineBase, Fixnum, Hash)>] LineBase data, response status code and response headers
    def get_telephony_providers_edges_linebasesetting_with_http_info(line_base_id, opts = {})
      if @api_client.config.debugging
        @api_client.config.logger.debug "Calling API: TelephonyProvidersEdgeApi.get_telephony_providers_edges_linebasesetting ..."
      end
      
      
      # verify the required parameter 'line_base_id' is set
      fail ArgumentError, "Missing the required parameter 'line_base_id' when calling TelephonyProvidersEdgeApi.get_telephony_providers_edges_linebasesetting" if line_base_id.nil?
      
      
      
      
      
      # resource path
      local_var_path = "/api/v2/telephony/providers/edges/linebasesettings/{lineBaseId}".sub('{format}','json').sub('{' + 'lineBaseId' + '}', line_base_id.to_s)

      # query parameters
      query_params = {}

      # header parameters
      header_params = {}

      # HTTP header 'Accept' (if needed)
      local_header_accept = ['application/json']
      local_header_accept_result = @api_client.select_header_accept(local_header_accept) and header_params['Accept'] = local_header_accept_result

      # HTTP header 'Content-Type'
      local_header_content_type = ['application/json']
      header_params['Content-Type'] = @api_client.select_header_content_type(local_header_content_type)

      # form parameters
      form_params = {}

      # http body (model)
      post_body = nil
      
      auth_names = ['PureCloud Auth']
      data, status_code, headers = @api_client.call_api(:GET, local_var_path,
        :header_params => header_params,
        :query_params => query_params,
        :form_params => form_params,
        :body => post_body,
        :auth_names => auth_names,
        :return_type => 'LineBase')
      if @api_client.config.debugging
        @api_client.config.logger.debug "API called: TelephonyProvidersEdgeApi#get_telephony_providers_edges_linebasesetting\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
      end
      return data, status_code, headers
    end

    # Get a listing of line base settings objects
    # 
    # @param [Hash] opts the optional parameters
    # @option opts [Integer] :page_number Page number (default to 1)
    # @option opts [Integer] :page_size Page size (default to 25)
    # @option opts [String] :sort_by Value by which to sort (default to name)
    # @option opts [String] :sort_order Sort order (default to ASC)
    # @return [LineBaseEntityListing]
    def get_telephony_providers_edges_linebasesettings(opts = {})
      data, _status_code, _headers = get_telephony_providers_edges_linebasesettings_with_http_info(opts)
      return data
    end

    # Get a listing of line base settings objects
    # 
    # @param [Hash] opts the optional parameters
    # @option opts [Integer] :page_number Page number
    # @option opts [Integer] :page_size Page size
    # @option opts [String] :sort_by Value by which to sort
    # @option opts [String] :sort_order Sort order
    # @return [Array<(LineBaseEntityListing, Fixnum, Hash)>] LineBaseEntityListing data, response status code and response headers
    def get_telephony_providers_edges_linebasesettings_with_http_info(opts = {})
      if @api_client.config.debugging
        @api_client.config.logger.debug "Calling API: TelephonyProvidersEdgeApi.get_telephony_providers_edges_linebasesettings ..."
      end
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      # resource path
      local_var_path = "/api/v2/telephony/providers/edges/linebasesettings".sub('{format}','json')

      # query parameters
      query_params = {}
      query_params[:'pageNumber'] = opts[:'page_number'] if opts[:'page_number']
      query_params[:'pageSize'] = opts[:'page_size'] if opts[:'page_size']
      query_params[:'sortBy'] = opts[:'sort_by'] if opts[:'sort_by']
      query_params[:'sortOrder'] = opts[:'sort_order'] if opts[:'sort_order']

      # header parameters
      header_params = {}

      # HTTP header 'Accept' (if needed)
      local_header_accept = ['application/json']
      local_header_accept_result = @api_client.select_header_accept(local_header_accept) and header_params['Accept'] = local_header_accept_result

      # HTTP header 'Content-Type'
      local_header_content_type = ['application/json']
      header_params['Content-Type'] = @api_client.select_header_content_type(local_header_content_type)

      # form parameters
      form_params = {}

      # http body (model)
      post_body = nil
      
      auth_names = ['PureCloud Auth']
      data, status_code, headers = @api_client.call_api(:GET, local_var_path,
        :header_params => header_params,
        :query_params => query_params,
        :form_params => form_params,
        :body => post_body,
        :auth_names => auth_names,
        :return_type => 'LineBaseEntityListing')
      if @api_client.config.debugging
        @api_client.config.logger.debug "API called: TelephonyProvidersEdgeApi#get_telephony_providers_edges_linebasesettings\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
      end
      return data, status_code, headers
    end

    # Get a list of Lines
    # 
    # @param [Hash] opts the optional parameters
    # @option opts [Integer] :page_size Page size (default to 25)
    # @option opts [Integer] :page_number Page number (default to 1)
    # @option opts [String] :name Name
    # @option opts [String] :sort_by Value by which to sort (default to name)
    # @option opts [Array<String>] :expand Fields to expand in the response, comma-separated
    # @return [LineEntityListing]
    def get_telephony_providers_edges_lines(opts = {})
      data, _status_code, _headers = get_telephony_providers_edges_lines_with_http_info(opts)
      return data
    end

    # Get a list of Lines
    # 
    # @param [Hash] opts the optional parameters
    # @option opts [Integer] :page_size Page size
    # @option opts [Integer] :page_number Page number
    # @option opts [String] :name Name
    # @option opts [String] :sort_by Value by which to sort
    # @option opts [Array<String>] :expand Fields to expand in the response, comma-separated
    # @return [Array<(LineEntityListing, Fixnum, Hash)>] LineEntityListing data, response status code and response headers
    def get_telephony_providers_edges_lines_with_http_info(opts = {})
      if @api_client.config.debugging
        @api_client.config.logger.debug "Calling API: TelephonyProvidersEdgeApi.get_telephony_providers_edges_lines ..."
      end
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      # resource path
      local_var_path = "/api/v2/telephony/providers/edges/lines".sub('{format}','json')

      # query parameters
      query_params = {}
      query_params[:'pageSize'] = opts[:'page_size'] if opts[:'page_size']
      query_params[:'pageNumber'] = opts[:'page_number'] if opts[:'page_number']
      query_params[:'name'] = opts[:'name'] if opts[:'name']
      query_params[:'sortBy'] = opts[:'sort_by'] if opts[:'sort_by']
      query_params[:'expand'] = @api_client.build_collection_param(opts[:'expand'], :multi) if opts[:'expand']

      # header parameters
      header_params = {}

      # HTTP header 'Accept' (if needed)
      local_header_accept = ['application/json']
      local_header_accept_result = @api_client.select_header_accept(local_header_accept) and header_params['Accept'] = local_header_accept_result

      # HTTP header 'Content-Type'
      local_header_content_type = ['application/json']
      header_params['Content-Type'] = @api_client.select_header_content_type(local_header_content_type)

      # form parameters
      form_params = {}

      # http body (model)
      post_body = nil
      
      auth_names = ['PureCloud Auth']
      data, status_code, headers = @api_client.call_api(:GET, local_var_path,
        :header_params => header_params,
        :query_params => query_params,
        :form_params => form_params,
        :body => post_body,
        :auth_names => auth_names,
        :return_type => 'LineEntityListing')
      if @api_client.config.debugging
        @api_client.config.logger.debug "API called: TelephonyProvidersEdgeApi#get_telephony_providers_edges_lines\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
      end
      return data, status_code, headers
    end

    # 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 line_base_settings_id The id of a Line Base Settings object upon which to base this Line
    # @param [Hash] opts the optional parameters
    # @return [Line]
    def get_telephony_providers_edges_lines_template(line_base_settings_id, opts = {})
      data, _status_code, _headers = get_telephony_providers_edges_lines_template_with_http_info(line_base_settings_id, opts)
      return data
    end

    # 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 line_base_settings_id The id of a Line Base Settings object upon which to base this Line
    # @param [Hash] opts the optional parameters
    # @return [Array<(Line, Fixnum, Hash)>] Line data, response status code and response headers
    def get_telephony_providers_edges_lines_template_with_http_info(line_base_settings_id, opts = {})
      if @api_client.config.debugging
        @api_client.config.logger.debug "Calling API: TelephonyProvidersEdgeApi.get_telephony_providers_edges_lines_template ..."
      end
      
      
      # verify the required parameter 'line_base_settings_id' is set
      fail ArgumentError, "Missing the required parameter 'line_base_settings_id' when calling TelephonyProvidersEdgeApi.get_telephony_providers_edges_lines_template" if line_base_settings_id.nil?
      
      
      
      
      
      # resource path
      local_var_path = "/api/v2/telephony/providers/edges/lines/template".sub('{format}','json')

      # query parameters
      query_params = {}
      query_params[:'lineBaseSettingsId'] = line_base_settings_id

      # header parameters
      header_params = {}

      # HTTP header 'Accept' (if needed)
      local_header_accept = ['application/json']
      local_header_accept_result = @api_client.select_header_accept(local_header_accept) and header_params['Accept'] = local_header_accept_result

      # HTTP header 'Content-Type'
      local_header_content_type = ['application/json']
      header_params['Content-Type'] = @api_client.select_header_content_type(local_header_content_type)

      # form parameters
      form_params = {}

      # http body (model)
      post_body = nil
      
      auth_names = ['PureCloud Auth']
      data, status_code, headers = @api_client.call_api(:GET, local_var_path,
        :header_params => header_params,
        :query_params => query_params,
        :form_params => form_params,
        :body => post_body,
        :auth_names => auth_names,
        :return_type => 'Line')
      if @api_client.config.debugging
        @api_client.config.logger.debug "API called: TelephonyProvidersEdgeApi#get_telephony_providers_edges_lines_template\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
      end
      return data, status_code, headers
    end

    # Get edge logical interfaces.
    # Retrieve the configured logical interfaces for a list edges. Only 100 edges can be requested at a time.
    # @param edge_ids Comma separated list of Edge Id&#39;s
    # @param [Hash] opts the optional parameters
    # @option opts [Array<String>] :expand Field to expand in the response
    # @return [LogicalInterfaceEntityListing]
    def get_telephony_providers_edges_logicalinterfaces(edge_ids, opts = {})
      data, _status_code, _headers = get_telephony_providers_edges_logicalinterfaces_with_http_info(edge_ids, opts)
      return data
    end

    # Get edge logical interfaces.
    # Retrieve the configured logical interfaces for a list edges. Only 100 edges can be requested at a time.
    # @param edge_ids Comma separated list of Edge Id&#39;s
    # @param [Hash] opts the optional parameters
    # @option opts [Array<String>] :expand Field to expand in the response
    # @return [Array<(LogicalInterfaceEntityListing, Fixnum, Hash)>] LogicalInterfaceEntityListing data, response status code and response headers
    def get_telephony_providers_edges_logicalinterfaces_with_http_info(edge_ids, opts = {})
      if @api_client.config.debugging
        @api_client.config.logger.debug "Calling API: TelephonyProvidersEdgeApi.get_telephony_providers_edges_logicalinterfaces ..."
      end
      
      
      # verify the required parameter 'edge_ids' is set
      fail ArgumentError, "Missing the required parameter 'edge_ids' when calling TelephonyProvidersEdgeApi.get_telephony_providers_edges_logicalinterfaces" if edge_ids.nil?
      
      
      
      
      
      
      
      
      
      
      
      # resource path
      local_var_path = "/api/v2/telephony/providers/edges/logicalinterfaces".sub('{format}','json')

      # query parameters
      query_params = {}
      query_params[:'edgeIds'] = edge_ids
      query_params[:'expand'] = @api_client.build_collection_param(opts[:'expand'], :multi) if opts[:'expand']

      # header parameters
      header_params = {}

      # HTTP header 'Accept' (if needed)
      local_header_accept = ['application/json']
      local_header_accept_result = @api_client.select_header_accept(local_header_accept) and header_params['Accept'] = local_header_accept_result

      # HTTP header 'Content-Type'
      local_header_content_type = ['application/json']
      header_params['Content-Type'] = @api_client.select_header_content_type(local_header_content_type)

      # form parameters
      form_params = {}

      # http body (model)
      post_body = nil
      
      auth_names = ['PureCloud Auth']
      data, status_code, headers = @api_client.call_api(:GET, local_var_path,
        :header_params => header_params,
        :query_params => query_params,
        :form_params => form_params,
        :body => post_body,
        :auth_names => auth_names,
        :return_type => 'LogicalInterfaceEntityListing')
      if @api_client.config.debugging
        @api_client.config.logger.debug "API called: TelephonyProvidersEdgeApi#get_telephony_providers_edges_logicalinterfaces\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
      end
      return data, status_code, headers
    end

    # Get the metrics for a list of edges.
    # 
    # @param edge_ids Comma separated list of Edge Id&#39;s
    # @param [Hash] opts the optional parameters
    # @return [Array<EdgeMetrics>]
    def get_telephony_providers_edges_metrics(edge_ids, opts = {})
      data, _status_code, _headers = get_telephony_providers_edges_metrics_with_http_info(edge_ids, opts)
      return data
    end

    # Get the metrics for a list of edges.
    # 
    # @param edge_ids Comma separated list of Edge Id&#39;s
    # @param [Hash] opts the optional parameters
    # @return [Array<(Array<EdgeMetrics>, Fixnum, Hash)>] Array<EdgeMetrics> data, response status code and response headers
    def get_telephony_providers_edges_metrics_with_http_info(edge_ids, opts = {})
      if @api_client.config.debugging
        @api_client.config.logger.debug "Calling API: TelephonyProvidersEdgeApi.get_telephony_providers_edges_metrics ..."
      end
      
      
      # verify the required parameter 'edge_ids' is set
      fail ArgumentError, "Missing the required parameter 'edge_ids' when calling TelephonyProvidersEdgeApi.get_telephony_providers_edges_metrics" if edge_ids.nil?
      
      
      
      
      
      # resource path
      local_var_path = "/api/v2/telephony/providers/edges/metrics".sub('{format}','json')

      # query parameters
      query_params = {}
      query_params[:'edgeIds'] = edge_ids

      # header parameters
      header_params = {}

      # HTTP header 'Accept' (if needed)
      local_header_accept = ['application/json']
      local_header_accept_result = @api_client.select_header_accept(local_header_accept) and header_params['Accept'] = local_header_accept_result

      # HTTP header 'Content-Type'
      local_header_content_type = ['application/json']
      header_params['Content-Type'] = @api_client.select_header_content_type(local_header_content_type)

      # form parameters
      form_params = {}

      # http body (model)
      post_body = nil
      
      auth_names = ['PureCloud Auth']
      data, status_code, headers = @api_client.call_api(:GET, local_var_path,
        :header_params => header_params,
        :query_params => query_params,
        :form_params => form_params,
        :body => post_body,
        :auth_names => auth_names,
        :return_type => 'Array<EdgeMetrics>')
      if @api_client.config.debugging
        @api_client.config.logger.debug "API called: TelephonyProvidersEdgeApi#get_telephony_providers_edges_metrics\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
      end
      return data, status_code, headers
    end

    # Get outbound route
    # 
    # @param outbound_route_id Outbound route ID
    # @param [Hash] opts the optional parameters
    # @return [OutboundRoute]
    def get_telephony_providers_edges_outboundroute(outbound_route_id, opts = {})
      data, _status_code, _headers = get_telephony_providers_edges_outboundroute_with_http_info(outbound_route_id, opts)
      return data
    end

    # Get outbound route
    # 
    # @param outbound_route_id Outbound route ID
    # @param [Hash] opts the optional parameters
    # @return [Array<(OutboundRoute, Fixnum, Hash)>] OutboundRoute data, response status code and response headers
    def get_telephony_providers_edges_outboundroute_with_http_info(outbound_route_id, opts = {})
      if @api_client.config.debugging
        @api_client.config.logger.debug "Calling API: TelephonyProvidersEdgeApi.get_telephony_providers_edges_outboundroute ..."
      end
      
      
      # verify the required parameter 'outbound_route_id' is set
      fail ArgumentError, "Missing the required parameter 'outbound_route_id' when calling TelephonyProvidersEdgeApi.get_telephony_providers_edges_outboundroute" if outbound_route_id.nil?
      
      
      
      
      
      # resource path
      local_var_path = "/api/v2/telephony/providers/edges/outboundroutes/{outboundRouteId}".sub('{format}','json').sub('{' + 'outboundRouteId' + '}', outbound_route_id.to_s)

      # query parameters
      query_params = {}

      # header parameters
      header_params = {}

      # HTTP header 'Accept' (if needed)
      local_header_accept = ['application/json']
      local_header_accept_result = @api_client.select_header_accept(local_header_accept) and header_params['Accept'] = local_header_accept_result

      # HTTP header 'Content-Type'
      local_header_content_type = ['application/json']
      header_params['Content-Type'] = @api_client.select_header_content_type(local_header_content_type)

      # form parameters
      form_params = {}

      # http body (model)
      post_body = nil
      
      auth_names = ['PureCloud Auth']
      data, status_code, headers = @api_client.call_api(:GET, local_var_path,
        :header_params => header_params,
        :query_params => query_params,
        :form_params => form_params,
        :body => post_body,
        :auth_names => auth_names,
        :return_type => 'OutboundRoute')
      if @api_client.config.debugging
        @api_client.config.logger.debug "API called: TelephonyProvidersEdgeApi#get_telephony_providers_edges_outboundroute\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
      end
      return data, status_code, headers
    end

    # Get outbound routes
    # 
    # @param [Hash] opts the optional parameters
    # @option opts [Integer] :page_size Page size (default to 25)
    # @option opts [Integer] :page_number Page number (default to 1)
    # @option opts [String] :name Name
    # @option opts [String] :site_id Filter by site.id
    # @option opts [String] :sort_by Sort by (default to name)
    # @return [OutboundRouteEntityListing]
    def get_telephony_providers_edges_outboundroutes(opts = {})
      data, _status_code, _headers = get_telephony_providers_edges_outboundroutes_with_http_info(opts)
      return data
    end

    # Get outbound routes
    # 
    # @param [Hash] opts the optional parameters
    # @option opts [Integer] :page_size Page size
    # @option opts [Integer] :page_number Page number
    # @option opts [String] :name Name
    # @option opts [String] :site_id Filter by site.id
    # @option opts [String] :sort_by Sort by
    # @return [Array<(OutboundRouteEntityListing, Fixnum, Hash)>] OutboundRouteEntityListing data, response status code and response headers
    def get_telephony_providers_edges_outboundroutes_with_http_info(opts = {})
      if @api_client.config.debugging
        @api_client.config.logger.debug "Calling API: TelephonyProvidersEdgeApi.get_telephony_providers_edges_outboundroutes ..."
      end
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      # resource path
      local_var_path = "/api/v2/telephony/providers/edges/outboundroutes".sub('{format}','json')

      # query parameters
      query_params = {}
      query_params[:'pageSize'] = opts[:'page_size'] if opts[:'page_size']
      query_params[:'pageNumber'] = opts[:'page_number'] if opts[:'page_number']
      query_params[:'name'] = opts[:'name'] if opts[:'name']
      query_params[:'site.id'] = opts[:'site_id'] if opts[:'site_id']
      query_params[:'sortBy'] = opts[:'sort_by'] if opts[:'sort_by']

      # header parameters
      header_params = {}

      # HTTP header 'Accept' (if needed)
      local_header_accept = ['application/json']
      local_header_accept_result = @api_client.select_header_accept(local_header_accept) and header_params['Accept'] = local_header_accept_result

      # HTTP header 'Content-Type'
      local_header_content_type = ['application/json']
      header_params['Content-Type'] = @api_client.select_header_content_type(local_header_content_type)

      # form parameters
      form_params = {}

      # http body (model)
      post_body = nil
      
      auth_names = ['PureCloud Auth']
      data, status_code, headers = @api_client.call_api(:GET, local_var_path,
        :header_params => header_params,
        :query_params => query_params,
        :form_params => form_params,
        :body => post_body,
        :auth_names => auth_names,
        :return_type => 'OutboundRouteEntityListing')
      if @api_client.config.debugging
        @api_client.config.logger.debug "API called: TelephonyProvidersEdgeApi#get_telephony_providers_edges_outboundroutes\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
      end
      return data, status_code, headers
    end

    # Get a Phone by ID
    # 
    # @param phone_id Phone ID
    # @param [Hash] opts the optional parameters
    # @return [Phone]
    def get_telephony_providers_edges_phone(phone_id, opts = {})
      data, _status_code, _headers = get_telephony_providers_edges_phone_with_http_info(phone_id, opts)
      return data
    end

    # Get a Phone by ID
    # 
    # @param phone_id Phone ID
    # @param [Hash] opts the optional parameters
    # @return [Array<(Phone, Fixnum, Hash)>] Phone data, response status code and response headers
    def get_telephony_providers_edges_phone_with_http_info(phone_id, opts = {})
      if @api_client.config.debugging
        @api_client.config.logger.debug "Calling API: TelephonyProvidersEdgeApi.get_telephony_providers_edges_phone ..."
      end
      
      
      # verify the required parameter 'phone_id' is set
      fail ArgumentError, "Missing the required parameter 'phone_id' when calling TelephonyProvidersEdgeApi.get_telephony_providers_edges_phone" if phone_id.nil?
      
      
      
      
      
      # resource path
      local_var_path = "/api/v2/telephony/providers/edges/phones/{phoneId}".sub('{format}','json').sub('{' + 'phoneId' + '}', phone_id.to_s)

      # query parameters
      query_params = {}

      # header parameters
      header_params = {}

      # HTTP header 'Accept' (if needed)
      local_header_accept = ['application/json']
      local_header_accept_result = @api_client.select_header_accept(local_header_accept) and header_params['Accept'] = local_header_accept_result

      # HTTP header 'Content-Type'
      local_header_content_type = ['application/json']
      header_params['Content-Type'] = @api_client.select_header_content_type(local_header_content_type)

      # form parameters
      form_params = {}

      # http body (model)
      post_body = nil
      
      auth_names = ['PureCloud Auth']
      data, status_code, headers = @api_client.call_api(:GET, local_var_path,
        :header_params => header_params,
        :query_params => query_params,
        :form_params => form_params,
        :body => post_body,
        :auth_names => auth_names,
        :return_type => 'Phone')
      if @api_client.config.debugging
        @api_client.config.logger.debug "API called: TelephonyProvidersEdgeApi#get_telephony_providers_edges_phone\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
      end
      return data, status_code, headers
    end

    # Get a Phone Base Settings object by ID
    # 
    # @param phone_base_id Phone base ID
    # @param [Hash] opts the optional parameters
    # @return [PhoneBase]
    def get_telephony_providers_edges_phonebasesetting(phone_base_id, opts = {})
      data, _status_code, _headers = get_telephony_providers_edges_phonebasesetting_with_http_info(phone_base_id, opts)
      return data
    end

    # Get a Phone Base Settings object by ID
    # 
    # @param phone_base_id Phone base ID
    # @param [Hash] opts the optional parameters
    # @return [Array<(PhoneBase, Fixnum, Hash)>] PhoneBase data, response status code and response headers
    def get_telephony_providers_edges_phonebasesetting_with_http_info(phone_base_id, opts = {})
      if @api_client.config.debugging
        @api_client.config.logger.debug "Calling API: TelephonyProvidersEdgeApi.get_telephony_providers_edges_phonebasesetting ..."
      end
      
      
      # verify the required parameter 'phone_base_id' is set
      fail ArgumentError, "Missing the required parameter 'phone_base_id' when calling TelephonyProvidersEdgeApi.get_telephony_providers_edges_phonebasesetting" if phone_base_id.nil?
      
      
      
      
      
      # resource path
      local_var_path = "/api/v2/telephony/providers/edges/phonebasesettings/{phoneBaseId}".sub('{format}','json').sub('{' + 'phoneBaseId' + '}', phone_base_id.to_s)

      # query parameters
      query_params = {}

      # header parameters
      header_params = {}

      # HTTP header 'Accept' (if needed)
      local_header_accept = ['application/json']
      local_header_accept_result = @api_client.select_header_accept(local_header_accept) and header_params['Accept'] = local_header_accept_result

      # HTTP header 'Content-Type'
      local_header_content_type = ['application/json']
      header_params['Content-Type'] = @api_client.select_header_content_type(local_header_content_type)

      # form parameters
      form_params = {}

      # http body (model)
      post_body = nil
      
      auth_names = ['PureCloud Auth']
      data, status_code, headers = @api_client.call_api(:GET, local_var_path,
        :header_params => header_params,
        :query_params => query_params,
        :form_params => form_params,
        :body => post_body,
        :auth_names => auth_names,
        :return_type => 'PhoneBase')
      if @api_client.config.debugging
        @api_client.config.logger.debug "API called: TelephonyProvidersEdgeApi#get_telephony_providers_edges_phonebasesetting\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
      end
      return data, status_code, headers
    end

    # Get a list of Phone Base Settings objects
    # 
    # @param [Hash] opts the optional parameters
    # @option opts [Integer] :page_size Page size (default to 25)
    # @option opts [Integer] :page_number Page number (default to 1)
    # @option opts [String] :sort_by Value by which to sort (default to name)
    # @option opts [String] :sort_order Sort order (default to ASC)
    # @option opts [Array<String>] :expand Fields to expand in the response, comma-separated
    # @option opts [String] :name Name
    # @return [PhoneBaseEntityListing]
    def get_telephony_providers_edges_phonebasesettings(opts = {})
      data, _status_code, _headers = get_telephony_providers_edges_phonebasesettings_with_http_info(opts)
      return data
    end

    # Get a list of Phone Base Settings objects
    # 
    # @param [Hash] opts the optional parameters
    # @option opts [Integer] :page_size Page size
    # @option opts [Integer] :page_number Page number
    # @option opts [String] :sort_by Value by which to sort
    # @option opts [String] :sort_order Sort order
    # @option opts [Array<String>] :expand Fields to expand in the response, comma-separated
    # @option opts [String] :name Name
    # @return [Array<(PhoneBaseEntityListing, Fixnum, Hash)>] PhoneBaseEntityListing data, response status code and response headers
    def get_telephony_providers_edges_phonebasesettings_with_http_info(opts = {})
      if @api_client.config.debugging
        @api_client.config.logger.debug "Calling API: TelephonyProvidersEdgeApi.get_telephony_providers_edges_phonebasesettings ..."
      end
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      # resource path
      local_var_path = "/api/v2/telephony/providers/edges/phonebasesettings".sub('{format}','json')

      # query parameters
      query_params = {}
      query_params[:'pageSize'] = opts[:'page_size'] if opts[:'page_size']
      query_params[:'pageNumber'] = opts[:'page_number'] if opts[:'page_number']
      query_params[:'sortBy'] = opts[:'sort_by'] if opts[:'sort_by']
      query_params[:'sortOrder'] = opts[:'sort_order'] if opts[:'sort_order']
      query_params[:'expand'] = @api_client.build_collection_param(opts[:'expand'], :multi) if opts[:'expand']
      query_params[:'name'] = opts[:'name'] if opts[:'name']

      # header parameters
      header_params = {}

      # HTTP header 'Accept' (if needed)
      local_header_accept = ['application/json']
      local_header_accept_result = @api_client.select_header_accept(local_header_accept) and header_params['Accept'] = local_header_accept_result

      # HTTP header 'Content-Type'
      local_header_content_type = ['application/json']
      header_params['Content-Type'] = @api_client.select_header_content_type(local_header_content_type)

      # form parameters
      form_params = {}

      # http body (model)
      post_body = nil
      
      auth_names = ['PureCloud Auth']
      data, status_code, headers = @api_client.call_api(:GET, local_var_path,
        :header_params => header_params,
        :query_params => query_params,
        :form_params => form_params,
        :body => post_body,
        :auth_names => auth_names,
        :return_type => 'PhoneBaseEntityListing')
      if @api_client.config.debugging
        @api_client.config.logger.debug "API called: TelephonyProvidersEdgeApi#get_telephony_providers_edges_phonebasesettings\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
      end
      return data, status_code, headers
    end

    # Get a list of available makes and models to create a new Phone Base Settings
    # 
    # @param [Hash] opts the optional parameters
    # @option opts [Integer] :page_size Page size (default to 25)
    # @option opts [Integer] :page_number Page number (default to 1)
    # @return [PhoneMetaBaseEntityListing]
    def get_telephony_providers_edges_phonebasesettings_availablemetabases(opts = {})
      data, _status_code, _headers = get_telephony_providers_edges_phonebasesettings_availablemetabases_with_http_info(opts)
      return data
    end

    # Get a list of available makes and models to create a new Phone Base Settings
    # 
    # @param [Hash] opts the optional parameters
    # @option opts [Integer] :page_size Page size
    # @option opts [Integer] :page_number Page number
    # @return [Array<(PhoneMetaBaseEntityListing, Fixnum, Hash)>] PhoneMetaBaseEntityListing data, response status code and response headers
    def get_telephony_providers_edges_phonebasesettings_availablemetabases_with_http_info(opts = {})
      if @api_client.config.debugging
        @api_client.config.logger.debug "Calling API: TelephonyProvidersEdgeApi.get_telephony_providers_edges_phonebasesettings_availablemetabases ..."
      end
      
      
      
      
      
      
      
      
      
      
      
      
      
      # resource path
      local_var_path = "/api/v2/telephony/providers/edges/phonebasesettings/availablemetabases".sub('{format}','json')

      # query parameters
      query_params = {}
      query_params[:'pageSize'] = opts[:'page_size'] if opts[:'page_size']
      query_params[:'pageNumber'] = opts[:'page_number'] if opts[:'page_number']

      # header parameters
      header_params = {}

      # HTTP header 'Accept' (if needed)
      local_header_accept = ['application/json']
      local_header_accept_result = @api_client.select_header_accept(local_header_accept) and header_params['Accept'] = local_header_accept_result

      # HTTP header 'Content-Type'
      local_header_content_type = ['application/json']
      header_params['Content-Type'] = @api_client.select_header_content_type(local_header_content_type)

      # form parameters
      form_params = {}

      # http body (model)
      post_body = nil
      
      auth_names = ['PureCloud Auth']
      data, status_code, headers = @api_client.call_api(:GET, local_var_path,
        :header_params => header_params,
        :query_params => query_params,
        :form_params => form_params,
        :body => post_body,
        :auth_names => auth_names,
        :return_type => 'PhoneMetaBaseEntityListing')
      if @api_client.config.debugging
        @api_client.config.logger.debug "API called: TelephonyProvidersEdgeApi#get_telephony_providers_edges_phonebasesettings_availablemetabases\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
      end
      return data, status_code, headers
    end

    # 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 phone_metabase_id The id of a metabase object upon which to base this Phone Base Settings
    # @param [Hash] opts the optional parameters
    # @return [PhoneBase]
    def get_telephony_providers_edges_phonebasesettings_template(phone_metabase_id, opts = {})
      data, _status_code, _headers = get_telephony_providers_edges_phonebasesettings_template_with_http_info(phone_metabase_id, opts)
      return data
    end

    # 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 phone_metabase_id The id of a metabase object upon which to base this Phone Base Settings
    # @param [Hash] opts the optional parameters
    # @return [Array<(PhoneBase, Fixnum, Hash)>] PhoneBase data, response status code and response headers
    def get_telephony_providers_edges_phonebasesettings_template_with_http_info(phone_metabase_id, opts = {})
      if @api_client.config.debugging
        @api_client.config.logger.debug "Calling API: TelephonyProvidersEdgeApi.get_telephony_providers_edges_phonebasesettings_template ..."
      end
      
      
      # verify the required parameter 'phone_metabase_id' is set
      fail ArgumentError, "Missing the required parameter 'phone_metabase_id' when calling TelephonyProvidersEdgeApi.get_telephony_providers_edges_phonebasesettings_template" if phone_metabase_id.nil?
      
      
      
      
      
      # resource path
      local_var_path = "/api/v2/telephony/providers/edges/phonebasesettings/template".sub('{format}','json')

      # query parameters
      query_params = {}
      query_params[:'phoneMetabaseId'] = phone_metabase_id

      # header parameters
      header_params = {}

      # HTTP header 'Accept' (if needed)
      local_header_accept = ['application/json']
      local_header_accept_result = @api_client.select_header_accept(local_header_accept) and header_params['Accept'] = local_header_accept_result

      # HTTP header 'Content-Type'
      local_header_content_type = ['application/json']
      header_params['Content-Type'] = @api_client.select_header_content_type(local_header_content_type)

      # form parameters
      form_params = {}

      # http body (model)
      post_body = nil
      
      auth_names = ['PureCloud Auth']
      data, status_code, headers = @api_client.call_api(:GET, local_var_path,
        :header_params => header_params,
        :query_params => query_params,
        :form_params => form_params,
        :body => post_body,
        :auth_names => auth_names,
        :return_type => 'PhoneBase')
      if @api_client.config.debugging
        @api_client.config.logger.debug "API called: TelephonyProvidersEdgeApi#get_telephony_providers_edges_phonebasesettings_template\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
      end
      return data, status_code, headers
    end

    # Get a list of Phone Instances
    # 
    # @param [Hash] opts the optional parameters
    # @option opts [Integer] :page_number Page number (default to 1)
    # @option opts [Integer] :page_size Page size (default to 25)
    # @option opts [String] :sort_by Value by which to sort (default to name)
    # @option opts [String] :sort_order Sort order (default to ASC)
    # @option opts [String] :site_id Filter by site.id
    # @option opts [String] :web_rtc_user_id Filter by webRtcUser.id
    # @option opts [String] :phone_base_settings_id Filter by phoneBaseSettings.id
    # @option opts [String] :lines_logged_in_user_id Filter by lines.loggedInUser.id
    # @option opts [String] :lines_default_for_user_id Filter by lines.defaultForUser.id
    # @option opts [String] :phone_hardware_id Filter by phone_hardwareId
    # @option opts [String] :lines_id Filter by lines.id
    # @option opts [String] :lines_name Filter by lines.name
    # @option opts [Array<String>] :expand Fields to expand in the response, comma-separated
    # @option opts [Array<String>] :fields Fields and properties to get, comma-separated
    # @return [PhoneEntityListing]
    def get_telephony_providers_edges_phones(opts = {})
      data, _status_code, _headers = get_telephony_providers_edges_phones_with_http_info(opts)
      return data
    end

    # Get a list of Phone Instances
    # 
    # @param [Hash] opts the optional parameters
    # @option opts [Integer] :page_number Page number
    # @option opts [Integer] :page_size Page size
    # @option opts [String] :sort_by Value by which to sort
    # @option opts [String] :sort_order Sort order
    # @option opts [String] :site_id Filter by site.id
    # @option opts [String] :web_rtc_user_id Filter by webRtcUser.id
    # @option opts [String] :phone_base_settings_id Filter by phoneBaseSettings.id
    # @option opts [String] :lines_logged_in_user_id Filter by lines.loggedInUser.id
    # @option opts [String] :lines_default_for_user_id Filter by lines.defaultForUser.id
    # @option opts [String] :phone_hardware_id Filter by phone_hardwareId
    # @option opts [String] :lines_id Filter by lines.id
    # @option opts [String] :lines_name Filter by lines.name
    # @option opts [Array<String>] :expand Fields to expand in the response, comma-separated
    # @option opts [Array<String>] :fields Fields and properties to get, comma-separated
    # @return [Array<(PhoneEntityListing, Fixnum, Hash)>] PhoneEntityListing data, response status code and response headers
    def get_telephony_providers_edges_phones_with_http_info(opts = {})
      if @api_client.config.debugging
        @api_client.config.logger.debug "Calling API: TelephonyProvidersEdgeApi.get_telephony_providers_edges_phones ..."
      end
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      # resource path
      local_var_path = "/api/v2/telephony/providers/edges/phones".sub('{format}','json')

      # query parameters
      query_params = {}
      query_params[:'pageNumber'] = opts[:'page_number'] if opts[:'page_number']
      query_params[:'pageSize'] = opts[:'page_size'] if opts[:'page_size']
      query_params[:'sortBy'] = opts[:'sort_by'] if opts[:'sort_by']
      query_params[:'sortOrder'] = opts[:'sort_order'] if opts[:'sort_order']
      query_params[:'site.id'] = opts[:'site_id'] if opts[:'site_id']
      query_params[:'webRtcUser.id'] = opts[:'web_rtc_user_id'] if opts[:'web_rtc_user_id']
      query_params[:'phoneBaseSettings.id'] = opts[:'phone_base_settings_id'] if opts[:'phone_base_settings_id']
      query_params[:'lines.loggedInUser.id'] = opts[:'lines_logged_in_user_id'] if opts[:'lines_logged_in_user_id']
      query_params[:'lines.defaultForUser.id'] = opts[:'lines_default_for_user_id'] if opts[:'lines_default_for_user_id']
      query_params[:'phone_hardwareId'] = opts[:'phone_hardware_id'] if opts[:'phone_hardware_id']
      query_params[:'lines.id'] = opts[:'lines_id'] if opts[:'lines_id']
      query_params[:'lines.name'] = opts[:'lines_name'] if opts[:'lines_name']
      query_params[:'expand'] = @api_client.build_collection_param(opts[:'expand'], :multi) if opts[:'expand']
      query_params[:'fields'] = @api_client.build_collection_param(opts[:'fields'], :multi) if opts[:'fields']

      # header parameters
      header_params = {}

      # HTTP header 'Accept' (if needed)
      local_header_accept = ['application/json']
      local_header_accept_result = @api_client.select_header_accept(local_header_accept) and header_params['Accept'] = local_header_accept_result

      # HTTP header 'Content-Type'
      local_header_content_type = ['application/json']
      header_params['Content-Type'] = @api_client.select_header_content_type(local_header_content_type)

      # form parameters
      form_params = {}

      # http body (model)
      post_body = nil
      
      auth_names = ['PureCloud Auth']
      data, status_code, headers = @api_client.call_api(:GET, local_var_path,
        :header_params => header_params,
        :query_params => query_params,
        :form_params => form_params,
        :body => post_body,
        :auth_names => auth_names,
        :return_type => 'PhoneEntityListing')
      if @api_client.config.debugging
        @api_client.config.logger.debug "API called: TelephonyProvidersEdgeApi#get_telephony_providers_edges_phones\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
      end
      return data, status_code, headers
    end

    # 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 phone_base_settings_id The id of a Phone Base Settings object upon which to base this Phone
    # @param [Hash] opts the optional parameters
    # @return [Phone]
    def get_telephony_providers_edges_phones_template(phone_base_settings_id, opts = {})
      data, _status_code, _headers = get_telephony_providers_edges_phones_template_with_http_info(phone_base_settings_id, opts)
      return data
    end

    # 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 phone_base_settings_id The id of a Phone Base Settings object upon which to base this Phone
    # @param [Hash] opts the optional parameters
    # @return [Array<(Phone, Fixnum, Hash)>] Phone data, response status code and response headers
    def get_telephony_providers_edges_phones_template_with_http_info(phone_base_settings_id, opts = {})
      if @api_client.config.debugging
        @api_client.config.logger.debug "Calling API: TelephonyProvidersEdgeApi.get_telephony_providers_edges_phones_template ..."
      end
      
      
      # verify the required parameter 'phone_base_settings_id' is set
      fail ArgumentError, "Missing the required parameter 'phone_base_settings_id' when calling TelephonyProvidersEdgeApi.get_telephony_providers_edges_phones_template" if phone_base_settings_id.nil?
      
      
      
      
      
      # resource path
      local_var_path = "/api/v2/telephony/providers/edges/phones/template".sub('{format}','json')

      # query parameters
      query_params = {}
      query_params[:'phoneBaseSettingsId'] = phone_base_settings_id

      # header parameters
      header_params = {}

      # HTTP header 'Accept' (if needed)
      local_header_accept = ['application/json']
      local_header_accept_result = @api_client.select_header_accept(local_header_accept) and header_params['Accept'] = local_header_accept_result

      # HTTP header 'Content-Type'
      local_header_content_type = ['application/json']
      header_params['Content-Type'] = @api_client.select_header_content_type(local_header_content_type)

      # form parameters
      form_params = {}

      # http body (model)
      post_body = nil
      
      auth_names = ['PureCloud Auth']
      data, status_code, headers = @api_client.call_api(:GET, local_var_path,
        :header_params => header_params,
        :query_params => query_params,
        :form_params => form_params,
        :body => post_body,
        :auth_names => auth_names,
        :return_type => 'Phone')
      if @api_client.config.debugging
        @api_client.config.logger.debug "API called: TelephonyProvidersEdgeApi#get_telephony_providers_edges_phones_template\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
      end
      return data, status_code, headers
    end

    # Get physical interfaces for edges.
    # Retrieves a list of all configured physical interfaces for a list of edges. Only 100 edges can be requested at a time.
    # @param edge_ids Comma separated list of Edge Id&#39;s
    # @param [Hash] opts the optional parameters
    # @return [PhysicalInterfaceEntityListing]
    def get_telephony_providers_edges_physicalinterfaces(edge_ids, opts = {})
      data, _status_code, _headers = get_telephony_providers_edges_physicalinterfaces_with_http_info(edge_ids, opts)
      return data
    end

    # Get physical interfaces for edges.
    # Retrieves a list of all configured physical interfaces for a list of edges. Only 100 edges can be requested at a time.
    # @param edge_ids Comma separated list of Edge Id&#39;s
    # @param [Hash] opts the optional parameters
    # @return [Array<(PhysicalInterfaceEntityListing, Fixnum, Hash)>] PhysicalInterfaceEntityListing data, response status code and response headers
    def get_telephony_providers_edges_physicalinterfaces_with_http_info(edge_ids, opts = {})
      if @api_client.config.debugging
        @api_client.config.logger.debug "Calling API: TelephonyProvidersEdgeApi.get_telephony_providers_edges_physicalinterfaces ..."
      end
      
      
      # verify the required parameter 'edge_ids' is set
      fail ArgumentError, "Missing the required parameter 'edge_ids' when calling TelephonyProvidersEdgeApi.get_telephony_providers_edges_physicalinterfaces" if edge_ids.nil?
      
      
      
      
      
      # resource path
      local_var_path = "/api/v2/telephony/providers/edges/physicalinterfaces".sub('{format}','json')

      # query parameters
      query_params = {}
      query_params[:'edgeIds'] = edge_ids

      # header parameters
      header_params = {}

      # HTTP header 'Accept' (if needed)
      local_header_accept = ['application/json']
      local_header_accept_result = @api_client.select_header_accept(local_header_accept) and header_params['Accept'] = local_header_accept_result

      # HTTP header 'Content-Type'
      local_header_content_type = ['application/json']
      header_params['Content-Type'] = @api_client.select_header_content_type(local_header_content_type)

      # form parameters
      form_params = {}

      # http body (model)
      post_body = nil
      
      auth_names = ['PureCloud Auth']
      data, status_code, headers = @api_client.call_api(:GET, local_var_path,
        :header_params => header_params,
        :query_params => query_params,
        :form_params => form_params,
        :body => post_body,
        :auth_names => auth_names,
        :return_type => 'PhysicalInterfaceEntityListing')
      if @api_client.config.debugging
        @api_client.config.logger.debug "API called: TelephonyProvidersEdgeApi#get_telephony_providers_edges_physicalinterfaces\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
      end
      return data, status_code, headers
    end

    # Get a Site by ID.
    # 
    # @param site_id Site ID
    # @param [Hash] opts the optional parameters
    # @return [Site]
    def get_telephony_providers_edges_site(site_id, opts = {})
      data, _status_code, _headers = get_telephony_providers_edges_site_with_http_info(site_id, opts)
      return data
    end

    # Get a Site by ID.
    # 
    # @param site_id Site ID
    # @param [Hash] opts the optional parameters
    # @return [Array<(Site, Fixnum, Hash)>] Site data, response status code and response headers
    def get_telephony_providers_edges_site_with_http_info(site_id, opts = {})
      if @api_client.config.debugging
        @api_client.config.logger.debug "Calling API: TelephonyProvidersEdgeApi.get_telephony_providers_edges_site ..."
      end
      
      
      # verify the required parameter 'site_id' is set
      fail ArgumentError, "Missing the required parameter 'site_id' when calling TelephonyProvidersEdgeApi.get_telephony_providers_edges_site" if site_id.nil?
      
      
      
      
      
      # resource path
      local_var_path = "/api/v2/telephony/providers/edges/sites/{siteId}".sub('{format}','json').sub('{' + 'siteId' + '}', site_id.to_s)

      # query parameters
      query_params = {}

      # header parameters
      header_params = {}

      # HTTP header 'Accept' (if needed)
      local_header_accept = ['application/json']
      local_header_accept_result = @api_client.select_header_accept(local_header_accept) and header_params['Accept'] = local_header_accept_result

      # HTTP header 'Content-Type'
      local_header_content_type = ['application/json']
      header_params['Content-Type'] = @api_client.select_header_content_type(local_header_content_type)

      # form parameters
      form_params = {}

      # http body (model)
      post_body = nil
      
      auth_names = ['PureCloud Auth']
      data, status_code, headers = @api_client.call_api(:GET, local_var_path,
        :header_params => header_params,
        :query_params => query_params,
        :form_params => form_params,
        :body => post_body,
        :auth_names => auth_names,
        :return_type => 'Site')
      if @api_client.config.debugging
        @api_client.config.logger.debug "API called: TelephonyProvidersEdgeApi#get_telephony_providers_edges_site\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
      end
      return data, status_code, headers
    end

    # Gets the basic information about an asg in a specified site
    # 
    # @param site_id Site id associated with the asg
    # @param [Hash] opts the optional parameters
    # @return [AsgInfoResponse]
    def get_telephony_providers_edges_site_autoscalinggroups(site_id, opts = {})
      data, _status_code, _headers = get_telephony_providers_edges_site_autoscalinggroups_with_http_info(site_id, opts)
      return data
    end

    # Gets the basic information about an asg in a specified site
    # 
    # @param site_id Site id associated with the asg
    # @param [Hash] opts the optional parameters
    # @return [Array<(AsgInfoResponse, Fixnum, Hash)>] AsgInfoResponse data, response status code and response headers
    def get_telephony_providers_edges_site_autoscalinggroups_with_http_info(site_id, opts = {})
      if @api_client.config.debugging
        @api_client.config.logger.debug "Calling API: TelephonyProvidersEdgeApi.get_telephony_providers_edges_site_autoscalinggroups ..."
      end
      
      
      # verify the required parameter 'site_id' is set
      fail ArgumentError, "Missing the required parameter 'site_id' when calling TelephonyProvidersEdgeApi.get_telephony_providers_edges_site_autoscalinggroups" if site_id.nil?
      
      
      
      
      
      # resource path
      local_var_path = "/api/v2/telephony/providers/edges/sites/{siteId}/autoscalinggroups".sub('{format}','json').sub('{' + 'siteId' + '}', site_id.to_s)

      # query parameters
      query_params = {}

      # header parameters
      header_params = {}

      # HTTP header 'Accept' (if needed)
      local_header_accept = ['application/json']
      local_header_accept_result = @api_client.select_header_accept(local_header_accept) and header_params['Accept'] = local_header_accept_result

      # HTTP header 'Content-Type'
      local_header_content_type = ['application/json']
      header_params['Content-Type'] = @api_client.select_header_content_type(local_header_content_type)

      # form parameters
      form_params = {}

      # http body (model)
      post_body = nil
      
      auth_names = ['PureCloud Auth']
      data, status_code, headers = @api_client.call_api(:GET, local_var_path,
        :header_params => header_params,
        :query_params => query_params,
        :form_params => form_params,
        :body => post_body,
        :auth_names => auth_names,
        :return_type => 'AsgInfoResponse')
      if @api_client.config.debugging
        @api_client.config.logger.debug "API called: TelephonyProvidersEdgeApi#get_telephony_providers_edges_site_autoscalinggroups\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
      end
      return data, status_code, headers
    end

    # Get a Number Plan by ID.
    # 
    # @param site_id Site ID
    # @param number_plan_id Number Plan ID
    # @param [Hash] opts the optional parameters
    # @return [NumberPlan]
    def get_telephony_providers_edges_site_numberplan(site_id, number_plan_id, opts = {})
      data, _status_code, _headers = get_telephony_providers_edges_site_numberplan_with_http_info(site_id, number_plan_id, opts)
      return data
    end

    # Get a Number Plan by ID.
    # 
    # @param site_id Site ID
    # @param number_plan_id Number Plan ID
    # @param [Hash] opts the optional parameters
    # @return [Array<(NumberPlan, Fixnum, Hash)>] NumberPlan data, response status code and response headers
    def get_telephony_providers_edges_site_numberplan_with_http_info(site_id, number_plan_id, opts = {})
      if @api_client.config.debugging
        @api_client.config.logger.debug "Calling API: TelephonyProvidersEdgeApi.get_telephony_providers_edges_site_numberplan ..."
      end
      
      
      # verify the required parameter 'site_id' is set
      fail ArgumentError, "Missing the required parameter 'site_id' when calling TelephonyProvidersEdgeApi.get_telephony_providers_edges_site_numberplan" if site_id.nil?
      
      
      
      
      
      
      # verify the required parameter 'number_plan_id' is set
      fail ArgumentError, "Missing the required parameter 'number_plan_id' when calling TelephonyProvidersEdgeApi.get_telephony_providers_edges_site_numberplan" if number_plan_id.nil?
      
      
      
      
      
      # resource path
      local_var_path = "/api/v2/telephony/providers/edges/sites/{siteId}/numberplans/{numberPlanId}".sub('{format}','json').sub('{' + 'siteId' + '}', site_id.to_s).sub('{' + 'numberPlanId' + '}', number_plan_id.to_s)

      # query parameters
      query_params = {}

      # header parameters
      header_params = {}

      # HTTP header 'Accept' (if needed)
      local_header_accept = ['application/json']
      local_header_accept_result = @api_client.select_header_accept(local_header_accept) and header_params['Accept'] = local_header_accept_result

      # HTTP header 'Content-Type'
      local_header_content_type = ['application/json']
      header_params['Content-Type'] = @api_client.select_header_content_type(local_header_content_type)

      # form parameters
      form_params = {}

      # http body (model)
      post_body = nil
      
      auth_names = ['PureCloud Auth']
      data, status_code, headers = @api_client.call_api(:GET, local_var_path,
        :header_params => header_params,
        :query_params => query_params,
        :form_params => form_params,
        :body => post_body,
        :auth_names => auth_names,
        :return_type => 'NumberPlan')
      if @api_client.config.debugging
        @api_client.config.logger.debug "API called: TelephonyProvidersEdgeApi#get_telephony_providers_edges_site_numberplan\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
      end
      return data, status_code, headers
    end

    # Get the list of Number Plans for this Site.
    # 
    # @param site_id Site ID
    # @param [Hash] opts the optional parameters
    # @return [Array<NumberPlan>]
    def get_telephony_providers_edges_site_numberplans(site_id, opts = {})
      data, _status_code, _headers = get_telephony_providers_edges_site_numberplans_with_http_info(site_id, opts)
      return data
    end

    # Get the list of Number Plans for this Site.
    # 
    # @param site_id Site ID
    # @param [Hash] opts the optional parameters
    # @return [Array<(Array<NumberPlan>, Fixnum, Hash)>] Array<NumberPlan> data, response status code and response headers
    def get_telephony_providers_edges_site_numberplans_with_http_info(site_id, opts = {})
      if @api_client.config.debugging
        @api_client.config.logger.debug "Calling API: TelephonyProvidersEdgeApi.get_telephony_providers_edges_site_numberplans ..."
      end
      
      
      # verify the required parameter 'site_id' is set
      fail ArgumentError, "Missing the required parameter 'site_id' when calling TelephonyProvidersEdgeApi.get_telephony_providers_edges_site_numberplans" if site_id.nil?
      
      
      
      
      
      # resource path
      local_var_path = "/api/v2/telephony/providers/edges/sites/{siteId}/numberplans".sub('{format}','json').sub('{' + 'siteId' + '}', site_id.to_s)

      # query parameters
      query_params = {}

      # header parameters
      header_params = {}

      # HTTP header 'Accept' (if needed)
      local_header_accept = ['application/json']
      local_header_accept_result = @api_client.select_header_accept(local_header_accept) and header_params['Accept'] = local_header_accept_result

      # HTTP header 'Content-Type'
      local_header_content_type = ['application/json']
      header_params['Content-Type'] = @api_client.select_header_content_type(local_header_content_type)

      # form parameters
      form_params = {}

      # http body (model)
      post_body = nil
      
      auth_names = ['PureCloud Auth']
      data, status_code, headers = @api_client.call_api(:GET, local_var_path,
        :header_params => header_params,
        :query_params => query_params,
        :form_params => form_params,
        :body => post_body,
        :auth_names => auth_names,
        :return_type => 'Array<NumberPlan>')
      if @api_client.config.debugging
        @api_client.config.logger.debug "API called: TelephonyProvidersEdgeApi#get_telephony_providers_edges_site_numberplans\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
      end
      return data, status_code, headers
    end

    # Get a list of Classifications for this Site
    # 
    # @param site_id Site ID
    # @param [Hash] opts the optional parameters
    # @option opts [String] :classification Classification
    # @return [Array<String>]
    def get_telephony_providers_edges_site_numberplans_classifications(site_id, opts = {})
      data, _status_code, _headers = get_telephony_providers_edges_site_numberplans_classifications_with_http_info(site_id, opts)
      return data
    end

    # Get a list of Classifications for this Site
    # 
    # @param site_id Site ID
    # @param [Hash] opts the optional parameters
    # @option opts [String] :classification Classification
    # @return [Array<(Array<String>, Fixnum, Hash)>] Array<String> data, response status code and response headers
    def get_telephony_providers_edges_site_numberplans_classifications_with_http_info(site_id, opts = {})
      if @api_client.config.debugging
        @api_client.config.logger.debug "Calling API: TelephonyProvidersEdgeApi.get_telephony_providers_edges_site_numberplans_classifications ..."
      end
      
      
      # verify the required parameter 'site_id' is set
      fail ArgumentError, "Missing the required parameter 'site_id' when calling TelephonyProvidersEdgeApi.get_telephony_providers_edges_site_numberplans_classifications" if site_id.nil?
      
      
      
      
      
      
      
      
      
      
      
      # resource path
      local_var_path = "/api/v2/telephony/providers/edges/sites/{siteId}/numberplans/classifications".sub('{format}','json').sub('{' + 'siteId' + '}', site_id.to_s)

      # query parameters
      query_params = {}
      query_params[:'classification'] = opts[:'classification'] if opts[:'classification']

      # header parameters
      header_params = {}

      # HTTP header 'Accept' (if needed)
      local_header_accept = ['application/json']
      local_header_accept_result = @api_client.select_header_accept(local_header_accept) and header_params['Accept'] = local_header_accept_result

      # HTTP header 'Content-Type'
      local_header_content_type = ['application/json']
      header_params['Content-Type'] = @api_client.select_header_content_type(local_header_content_type)

      # form parameters
      form_params = {}

      # http body (model)
      post_body = nil
      
      auth_names = ['PureCloud Auth']
      data, status_code, headers = @api_client.call_api(:GET, local_var_path,
        :header_params => header_params,
        :query_params => query_params,
        :form_params => form_params,
        :body => post_body,
        :auth_names => auth_names,
        :return_type => 'Array<String>')
      if @api_client.config.debugging
        @api_client.config.logger.debug "API called: TelephonyProvidersEdgeApi#get_telephony_providers_edges_site_numberplans_classifications\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
      end
      return data, status_code, headers
    end

    # Get an outbound route
    # 
    # @param site_id Site ID
    # @param outbound_route_id Outbound route ID
    # @param [Hash] opts the optional parameters
    # @return [OutboundRouteBase]
    def get_telephony_providers_edges_site_outboundroute(site_id, outbound_route_id, opts = {})
      data, _status_code, _headers = get_telephony_providers_edges_site_outboundroute_with_http_info(site_id, outbound_route_id, opts)
      return data
    end

    # Get an outbound route
    # 
    # @param site_id Site ID
    # @param outbound_route_id Outbound route ID
    # @param [Hash] opts the optional parameters
    # @return [Array<(OutboundRouteBase, Fixnum, Hash)>] OutboundRouteBase data, response status code and response headers
    def get_telephony_providers_edges_site_outboundroute_with_http_info(site_id, outbound_route_id, opts = {})
      if @api_client.config.debugging
        @api_client.config.logger.debug "Calling API: TelephonyProvidersEdgeApi.get_telephony_providers_edges_site_outboundroute ..."
      end
      
      
      # verify the required parameter 'site_id' is set
      fail ArgumentError, "Missing the required parameter 'site_id' when calling TelephonyProvidersEdgeApi.get_telephony_providers_edges_site_outboundroute" if site_id.nil?
      
      
      
      
      
      
      # verify the required parameter 'outbound_route_id' is set
      fail ArgumentError, "Missing the required parameter 'outbound_route_id' when calling TelephonyProvidersEdgeApi.get_telephony_providers_edges_site_outboundroute" if outbound_route_id.nil?
      
      
      
      
      
      # resource path
      local_var_path = "/api/v2/telephony/providers/edges/sites/{siteId}/outboundroutes/{outboundRouteId}".sub('{format}','json').sub('{' + 'siteId' + '}', site_id.to_s).sub('{' + 'outboundRouteId' + '}', outbound_route_id.to_s)

      # query parameters
      query_params = {}

      # header parameters
      header_params = {}

      # HTTP header 'Accept' (if needed)
      local_header_accept = ['application/json']
      local_header_accept_result = @api_client.select_header_accept(local_header_accept) and header_params['Accept'] = local_header_accept_result

      # HTTP header 'Content-Type'
      local_header_content_type = ['application/json']
      header_params['Content-Type'] = @api_client.select_header_content_type(local_header_content_type)

      # form parameters
      form_params = {}

      # http body (model)
      post_body = nil
      
      auth_names = ['PureCloud Auth']
      data, status_code, headers = @api_client.call_api(:GET, local_var_path,
        :header_params => header_params,
        :query_params => query_params,
        :form_params => form_params,
        :body => post_body,
        :auth_names => auth_names,
        :return_type => 'OutboundRouteBase')
      if @api_client.config.debugging
        @api_client.config.logger.debug "API called: TelephonyProvidersEdgeApi#get_telephony_providers_edges_site_outboundroute\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
      end
      return data, status_code, headers
    end

    # Get outbound routes
    # 
    # @param site_id Site ID
    # @param [Hash] opts the optional parameters
    # @option opts [Integer] :page_size Page size (default to 25)
    # @option opts [Integer] :page_number Page number (default to 1)
    # @option opts [String] :name Name
    # @option opts [String] :sort_by Sort by (default to name)
    # @return [OutboundRouteBaseEntityListing]
    def get_telephony_providers_edges_site_outboundroutes(site_id, opts = {})
      data, _status_code, _headers = get_telephony_providers_edges_site_outboundroutes_with_http_info(site_id, opts)
      return data
    end

    # Get outbound routes
    # 
    # @param site_id Site ID
    # @param [Hash] opts the optional parameters
    # @option opts [Integer] :page_size Page size
    # @option opts [Integer] :page_number Page number
    # @option opts [String] :name Name
    # @option opts [String] :sort_by Sort by
    # @return [Array<(OutboundRouteBaseEntityListing, Fixnum, Hash)>] OutboundRouteBaseEntityListing data, response status code and response headers
    def get_telephony_providers_edges_site_outboundroutes_with_http_info(site_id, opts = {})
      if @api_client.config.debugging
        @api_client.config.logger.debug "Calling API: TelephonyProvidersEdgeApi.get_telephony_providers_edges_site_outboundroutes ..."
      end
      
      
      # verify the required parameter 'site_id' is set
      fail ArgumentError, "Missing the required parameter 'site_id' when calling TelephonyProvidersEdgeApi.get_telephony_providers_edges_site_outboundroutes" if site_id.nil?
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      # resource path
      local_var_path = "/api/v2/telephony/providers/edges/sites/{siteId}/outboundroutes".sub('{format}','json').sub('{' + 'siteId' + '}', site_id.to_s)

      # query parameters
      query_params = {}
      query_params[:'pageSize'] = opts[:'page_size'] if opts[:'page_size']
      query_params[:'pageNumber'] = opts[:'page_number'] if opts[:'page_number']
      query_params[:'name'] = opts[:'name'] if opts[:'name']
      query_params[:'sortBy'] = opts[:'sort_by'] if opts[:'sort_by']

      # header parameters
      header_params = {}

      # HTTP header 'Accept' (if needed)
      local_header_accept = ['application/json']
      local_header_accept_result = @api_client.select_header_accept(local_header_accept) and header_params['Accept'] = local_header_accept_result

      # HTTP header 'Content-Type'
      local_header_content_type = ['application/json']
      header_params['Content-Type'] = @api_client.select_header_content_type(local_header_content_type)

      # form parameters
      form_params = {}

      # http body (model)
      post_body = nil
      
      auth_names = ['PureCloud Auth']
      data, status_code, headers = @api_client.call_api(:GET, local_var_path,
        :header_params => header_params,
        :query_params => query_params,
        :form_params => form_params,
        :body => post_body,
        :auth_names => auth_names,
        :return_type => 'OutboundRouteBaseEntityListing')
      if @api_client.config.debugging
        @api_client.config.logger.debug "API called: TelephonyProvidersEdgeApi#get_telephony_providers_edges_site_outboundroutes\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
      end
      return data, status_code, headers
    end

    # Get the list of Sites.
    # 
    # @param [Hash] opts the optional parameters
    # @option opts [Integer] :page_size Page size (default to 25)
    # @option opts [Integer] :page_number Page number (default to 1)
    # @option opts [String] :sort_by Sort by (default to name)
    # @option opts [String] :sort_order Sort order (default to ASC)
    # @option opts [String] :name Name
    # @option opts [String] :location_id Location Id
    # @option opts [BOOLEAN] :managed Filter by managed
    # @return [SiteEntityListing]
    def get_telephony_providers_edges_sites(opts = {})
      data, _status_code, _headers = get_telephony_providers_edges_sites_with_http_info(opts)
      return data
    end

    # Get the list of Sites.
    # 
    # @param [Hash] opts the optional parameters
    # @option opts [Integer] :page_size Page size
    # @option opts [Integer] :page_number Page number
    # @option opts [String] :sort_by Sort by
    # @option opts [String] :sort_order Sort order
    # @option opts [String] :name Name
    # @option opts [String] :location_id Location Id
    # @option opts [BOOLEAN] :managed Filter by managed
    # @return [Array<(SiteEntityListing, Fixnum, Hash)>] SiteEntityListing data, response status code and response headers
    def get_telephony_providers_edges_sites_with_http_info(opts = {})
      if @api_client.config.debugging
        @api_client.config.logger.debug "Calling API: TelephonyProvidersEdgeApi.get_telephony_providers_edges_sites ..."
      end
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      # resource path
      local_var_path = "/api/v2/telephony/providers/edges/sites".sub('{format}','json')

      # query parameters
      query_params = {}
      query_params[:'pageSize'] = opts[:'page_size'] if opts[:'page_size']
      query_params[:'pageNumber'] = opts[:'page_number'] if opts[:'page_number']
      query_params[:'sortBy'] = opts[:'sort_by'] if opts[:'sort_by']
      query_params[:'sortOrder'] = opts[:'sort_order'] if opts[:'sort_order']
      query_params[:'name'] = opts[:'name'] if opts[:'name']
      query_params[:'location.id'] = opts[:'location_id'] if opts[:'location_id']
      query_params[:'managed'] = opts[:'managed'] if opts[:'managed']

      # header parameters
      header_params = {}

      # HTTP header 'Accept' (if needed)
      local_header_accept = ['application/json']
      local_header_accept_result = @api_client.select_header_accept(local_header_accept) and header_params['Accept'] = local_header_accept_result

      # HTTP header 'Content-Type'
      local_header_content_type = ['application/json']
      header_params['Content-Type'] = @api_client.select_header_content_type(local_header_content_type)

      # form parameters
      form_params = {}

      # http body (model)
      post_body = nil
      
      auth_names = ['PureCloud Auth']
      data, status_code, headers = @api_client.call_api(:GET, local_var_path,
        :header_params => header_params,
        :query_params => query_params,
        :form_params => form_params,
        :body => post_body,
        :auth_names => auth_names,
        :return_type => 'SiteEntityListing')
      if @api_client.config.debugging
        @api_client.config.logger.debug "API called: TelephonyProvidersEdgeApi#get_telephony_providers_edges_sites\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
      end
      return data, status_code, headers
    end

    # Get a list of Edge-compatible time zones
    # 
    # @param [Hash] opts the optional parameters
    # @option opts [Integer] :page_size Page size (default to 1000)
    # @option opts [Integer] :page_number Page number (default to 1)
    # @return [TimeZoneEntityListing]
    def get_telephony_providers_edges_timezones(opts = {})
      data, _status_code, _headers = get_telephony_providers_edges_timezones_with_http_info(opts)
      return data
    end

    # Get a list of Edge-compatible time zones
    # 
    # @param [Hash] opts the optional parameters
    # @option opts [Integer] :page_size Page size
    # @option opts [Integer] :page_number Page number
    # @return [Array<(TimeZoneEntityListing, Fixnum, Hash)>] TimeZoneEntityListing data, response status code and response headers
    def get_telephony_providers_edges_timezones_with_http_info(opts = {})
      if @api_client.config.debugging
        @api_client.config.logger.debug "Calling API: TelephonyProvidersEdgeApi.get_telephony_providers_edges_timezones ..."
      end
      
      
      
      
      
      
      
      
      
      
      
      
      
      # resource path
      local_var_path = "/api/v2/telephony/providers/edges/timezones".sub('{format}','json')

      # query parameters
      query_params = {}
      query_params[:'pageSize'] = opts[:'page_size'] if opts[:'page_size']
      query_params[:'pageNumber'] = opts[:'page_number'] if opts[:'page_number']

      # header parameters
      header_params = {}

      # HTTP header 'Accept' (if needed)
      local_header_accept = ['application/json']
      local_header_accept_result = @api_client.select_header_accept(local_header_accept) and header_params['Accept'] = local_header_accept_result

      # HTTP header 'Content-Type'
      local_header_content_type = ['application/json']
      header_params['Content-Type'] = @api_client.select_header_content_type(local_header_content_type)

      # form parameters
      form_params = {}

      # http body (model)
      post_body = nil
      
      auth_names = ['PureCloud Auth']
      data, status_code, headers = @api_client.call_api(:GET, local_var_path,
        :header_params => header_params,
        :query_params => query_params,
        :form_params => form_params,
        :body => post_body,
        :auth_names => auth_names,
        :return_type => 'TimeZoneEntityListing')
      if @api_client.config.debugging
        @api_client.config.logger.debug "API called: TelephonyProvidersEdgeApi#get_telephony_providers_edges_timezones\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
      end
      return data, status_code, headers
    end

    # Get a Trunk by ID
    # 
    # @param trunk_id Trunk ID
    # @param [Hash] opts the optional parameters
    # @return [Trunk]
    def get_telephony_providers_edges_trunk(trunk_id, opts = {})
      data, _status_code, _headers = get_telephony_providers_edges_trunk_with_http_info(trunk_id, opts)
      return data
    end

    # Get a Trunk by ID
    # 
    # @param trunk_id Trunk ID
    # @param [Hash] opts the optional parameters
    # @return [Array<(Trunk, Fixnum, Hash)>] Trunk data, response status code and response headers
    def get_telephony_providers_edges_trunk_with_http_info(trunk_id, opts = {})
      if @api_client.config.debugging
        @api_client.config.logger.debug "Calling API: TelephonyProvidersEdgeApi.get_telephony_providers_edges_trunk ..."
      end
      
      
      # verify the required parameter 'trunk_id' is set
      fail ArgumentError, "Missing the required parameter 'trunk_id' when calling TelephonyProvidersEdgeApi.get_telephony_providers_edges_trunk" if trunk_id.nil?
      
      
      
      
      
      # resource path
      local_var_path = "/api/v2/telephony/providers/edges/trunks/{trunkId}".sub('{format}','json').sub('{' + 'trunkId' + '}', trunk_id.to_s)

      # query parameters
      query_params = {}

      # header parameters
      header_params = {}

      # HTTP header 'Accept' (if needed)
      local_header_accept = ['application/json']
      local_header_accept_result = @api_client.select_header_accept(local_header_accept) and header_params['Accept'] = local_header_accept_result

      # HTTP header 'Content-Type'
      local_header_content_type = ['application/json']
      header_params['Content-Type'] = @api_client.select_header_content_type(local_header_content_type)

      # form parameters
      form_params = {}

      # http body (model)
      post_body = nil
      
      auth_names = ['PureCloud Auth']
      data, status_code, headers = @api_client.call_api(:GET, local_var_path,
        :header_params => header_params,
        :query_params => query_params,
        :form_params => form_params,
        :body => post_body,
        :auth_names => auth_names,
        :return_type => 'Trunk')
      if @api_client.config.debugging
        @api_client.config.logger.debug "API called: TelephonyProvidersEdgeApi#get_telephony_providers_edges_trunk\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
      end
      return data, status_code, headers
    end

    # Get the trunk metrics.
    # 
    # @param trunk_id Trunk Id
    # @param [Hash] opts the optional parameters
    # @return [TrunkMetrics]
    def get_telephony_providers_edges_trunk_metrics(trunk_id, opts = {})
      data, _status_code, _headers = get_telephony_providers_edges_trunk_metrics_with_http_info(trunk_id, opts)
      return data
    end

    # Get the trunk metrics.
    # 
    # @param trunk_id Trunk Id
    # @param [Hash] opts the optional parameters
    # @return [Array<(TrunkMetrics, Fixnum, Hash)>] TrunkMetrics data, response status code and response headers
    def get_telephony_providers_edges_trunk_metrics_with_http_info(trunk_id, opts = {})
      if @api_client.config.debugging
        @api_client.config.logger.debug "Calling API: TelephonyProvidersEdgeApi.get_telephony_providers_edges_trunk_metrics ..."
      end
      
      
      # verify the required parameter 'trunk_id' is set
      fail ArgumentError, "Missing the required parameter 'trunk_id' when calling TelephonyProvidersEdgeApi.get_telephony_providers_edges_trunk_metrics" if trunk_id.nil?
      
      
      
      
      
      # resource path
      local_var_path = "/api/v2/telephony/providers/edges/trunks/{trunkId}/metrics".sub('{format}','json').sub('{' + 'trunkId' + '}', trunk_id.to_s)

      # query parameters
      query_params = {}

      # header parameters
      header_params = {}

      # HTTP header 'Accept' (if needed)
      local_header_accept = ['application/json']
      local_header_accept_result = @api_client.select_header_accept(local_header_accept) and header_params['Accept'] = local_header_accept_result

      # HTTP header 'Content-Type'
      local_header_content_type = ['application/json']
      header_params['Content-Type'] = @api_client.select_header_content_type(local_header_content_type)

      # form parameters
      form_params = {}

      # http body (model)
      post_body = nil
      
      auth_names = ['PureCloud Auth']
      data, status_code, headers = @api_client.call_api(:GET, local_var_path,
        :header_params => header_params,
        :query_params => query_params,
        :form_params => form_params,
        :body => post_body,
        :auth_names => auth_names,
        :return_type => 'TrunkMetrics')
      if @api_client.config.debugging
        @api_client.config.logger.debug "API called: TelephonyProvidersEdgeApi#get_telephony_providers_edges_trunk_metrics\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
      end
      return data, status_code, headers
    end

    # 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 trunk_base_settings_id Trunk Base ID
    # @param [Hash] opts the optional parameters
    # @option opts [BOOLEAN] :ignore_hidden Set this to true to not receive trunk properties that are meant to be hidden or for internal system usage only.
    # @return [TrunkBase]
    def get_telephony_providers_edges_trunkbasesetting(trunk_base_settings_id, opts = {})
      data, _status_code, _headers = get_telephony_providers_edges_trunkbasesetting_with_http_info(trunk_base_settings_id, opts)
      return data
    end

    # 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 trunk_base_settings_id Trunk Base ID
    # @param [Hash] opts the optional parameters
    # @option opts [BOOLEAN] :ignore_hidden Set this to true to not receive trunk properties that are meant to be hidden or for internal system usage only.
    # @return [Array<(TrunkBase, Fixnum, Hash)>] TrunkBase data, response status code and response headers
    def get_telephony_providers_edges_trunkbasesetting_with_http_info(trunk_base_settings_id, opts = {})
      if @api_client.config.debugging
        @api_client.config.logger.debug "Calling API: TelephonyProvidersEdgeApi.get_telephony_providers_edges_trunkbasesetting ..."
      end
      
      
      # verify the required parameter 'trunk_base_settings_id' is set
      fail ArgumentError, "Missing the required parameter 'trunk_base_settings_id' when calling TelephonyProvidersEdgeApi.get_telephony_providers_edges_trunkbasesetting" if trunk_base_settings_id.nil?
      
      
      
      
      
      
      
      
      
      
      
      # resource path
      local_var_path = "/api/v2/telephony/providers/edges/trunkbasesettings/{trunkBaseSettingsId}".sub('{format}','json').sub('{' + 'trunkBaseSettingsId' + '}', trunk_base_settings_id.to_s)

      # query parameters
      query_params = {}
      query_params[:'ignoreHidden'] = opts[:'ignore_hidden'] if opts[:'ignore_hidden']

      # header parameters
      header_params = {}

      # HTTP header 'Accept' (if needed)
      local_header_accept = ['application/json']
      local_header_accept_result = @api_client.select_header_accept(local_header_accept) and header_params['Accept'] = local_header_accept_result

      # HTTP header 'Content-Type'
      local_header_content_type = ['application/json']
      header_params['Content-Type'] = @api_client.select_header_content_type(local_header_content_type)

      # form parameters
      form_params = {}

      # http body (model)
      post_body = nil
      
      auth_names = ['PureCloud Auth']
      data, status_code, headers = @api_client.call_api(:GET, local_var_path,
        :header_params => header_params,
        :query_params => query_params,
        :form_params => form_params,
        :body => post_body,
        :auth_names => auth_names,
        :return_type => 'TrunkBase')
      if @api_client.config.debugging
        @api_client.config.logger.debug "API called: TelephonyProvidersEdgeApi#get_telephony_providers_edges_trunkbasesetting\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
      end
      return data, status_code, headers
    end

    # Get Trunk Base Settings listing
    # Managed properties will not be returned unless the user is assigned the managed:all:all permission.
    # @param [Hash] opts the optional parameters
    # @option opts [Integer] :page_number Page number (default to 1)
    # @option opts [Integer] :page_size Page size (default to 25)
    # @option opts [String] :sort_by Value by which to sort (default to name)
    # @option opts [String] :sort_order Sort order (default to ASC)
    # @option opts [BOOLEAN] :recording_enabled Filter trunks by recording enabled
    # @option opts [BOOLEAN] :ignore_hidden Set this to true to not receive trunk properties that are meant to be hidden or for internal system usage only.
    # @option opts [BOOLEAN] :managed Filter by managed
    # @option opts [Array<String>] :expand Fields to expand in the response, comma-separated
    # @option opts [String] :name Name of the TrunkBase to filter by
    # @return [TrunkBaseEntityListing]
    def get_telephony_providers_edges_trunkbasesettings(opts = {})
      data, _status_code, _headers = get_telephony_providers_edges_trunkbasesettings_with_http_info(opts)
      return data
    end

    # Get Trunk Base Settings listing
    # Managed properties will not be returned unless the user is assigned the managed:all:all permission.
    # @param [Hash] opts the optional parameters
    # @option opts [Integer] :page_number Page number
    # @option opts [Integer] :page_size Page size
    # @option opts [String] :sort_by Value by which to sort
    # @option opts [String] :sort_order Sort order
    # @option opts [BOOLEAN] :recording_enabled Filter trunks by recording enabled
    # @option opts [BOOLEAN] :ignore_hidden Set this to true to not receive trunk properties that are meant to be hidden or for internal system usage only.
    # @option opts [BOOLEAN] :managed Filter by managed
    # @option opts [Array<String>] :expand Fields to expand in the response, comma-separated
    # @option opts [String] :name Name of the TrunkBase to filter by
    # @return [Array<(TrunkBaseEntityListing, Fixnum, Hash)>] TrunkBaseEntityListing data, response status code and response headers
    def get_telephony_providers_edges_trunkbasesettings_with_http_info(opts = {})
      if @api_client.config.debugging
        @api_client.config.logger.debug "Calling API: TelephonyProvidersEdgeApi.get_telephony_providers_edges_trunkbasesettings ..."
      end
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      # resource path
      local_var_path = "/api/v2/telephony/providers/edges/trunkbasesettings".sub('{format}','json')

      # query parameters
      query_params = {}
      query_params[:'pageNumber'] = opts[:'page_number'] if opts[:'page_number']
      query_params[:'pageSize'] = opts[:'page_size'] if opts[:'page_size']
      query_params[:'sortBy'] = opts[:'sort_by'] if opts[:'sort_by']
      query_params[:'sortOrder'] = opts[:'sort_order'] if opts[:'sort_order']
      query_params[:'recordingEnabled'] = opts[:'recording_enabled'] if opts[:'recording_enabled']
      query_params[:'ignoreHidden'] = opts[:'ignore_hidden'] if opts[:'ignore_hidden']
      query_params[:'managed'] = opts[:'managed'] if opts[:'managed']
      query_params[:'expand'] = @api_client.build_collection_param(opts[:'expand'], :multi) if opts[:'expand']
      query_params[:'name'] = opts[:'name'] if opts[:'name']

      # header parameters
      header_params = {}

      # HTTP header 'Accept' (if needed)
      local_header_accept = ['application/json']
      local_header_accept_result = @api_client.select_header_accept(local_header_accept) and header_params['Accept'] = local_header_accept_result

      # HTTP header 'Content-Type'
      local_header_content_type = ['application/json']
      header_params['Content-Type'] = @api_client.select_header_content_type(local_header_content_type)

      # form parameters
      form_params = {}

      # http body (model)
      post_body = nil
      
      auth_names = ['PureCloud Auth']
      data, status_code, headers = @api_client.call_api(:GET, local_var_path,
        :header_params => header_params,
        :query_params => query_params,
        :form_params => form_params,
        :body => post_body,
        :auth_names => auth_names,
        :return_type => 'TrunkBaseEntityListing')
      if @api_client.config.debugging
        @api_client.config.logger.debug "API called: TelephonyProvidersEdgeApi#get_telephony_providers_edges_trunkbasesettings\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
      end
      return data, status_code, headers
    end

    # Get a list of available makes and models to create a new Trunk Base Settings
    # 
    # @param [Hash] opts the optional parameters
    # @option opts [String] :type 
    # @option opts [Integer] :page_size  (default to 25)
    # @option opts [Integer] :page_number  (default to 1)
    # @return [TrunkMetabaseEntityListing]
    def get_telephony_providers_edges_trunkbasesettings_availablemetabases(opts = {})
      data, _status_code, _headers = get_telephony_providers_edges_trunkbasesettings_availablemetabases_with_http_info(opts)
      return data
    end

    # Get a list of available makes and models to create a new Trunk Base Settings
    # 
    # @param [Hash] opts the optional parameters
    # @option opts [String] :type 
    # @option opts [Integer] :page_size 
    # @option opts [Integer] :page_number 
    # @return [Array<(TrunkMetabaseEntityListing, Fixnum, Hash)>] TrunkMetabaseEntityListing data, response status code and response headers
    def get_telephony_providers_edges_trunkbasesettings_availablemetabases_with_http_info(opts = {})
      if @api_client.config.debugging
        @api_client.config.logger.debug "Calling API: TelephonyProvidersEdgeApi.get_telephony_providers_edges_trunkbasesettings_availablemetabases ..."
      end
      
      
      
      
      if opts[:'type'] && !['EXTERNAL', 'PHONE', 'EDGE'].include?(opts[:'type'])
        fail ArgumentError, 'invalid value for "type", must be one of EXTERNAL, PHONE, EDGE'
      end
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      # resource path
      local_var_path = "/api/v2/telephony/providers/edges/trunkbasesettings/availablemetabases".sub('{format}','json')

      # query parameters
      query_params = {}
      query_params[:'type'] = opts[:'type'] if opts[:'type']
      query_params[:'pageSize'] = opts[:'page_size'] if opts[:'page_size']
      query_params[:'pageNumber'] = opts[:'page_number'] if opts[:'page_number']

      # header parameters
      header_params = {}

      # HTTP header 'Accept' (if needed)
      local_header_accept = ['application/json']
      local_header_accept_result = @api_client.select_header_accept(local_header_accept) and header_params['Accept'] = local_header_accept_result

      # HTTP header 'Content-Type'
      local_header_content_type = ['application/json']
      header_params['Content-Type'] = @api_client.select_header_content_type(local_header_content_type)

      # form parameters
      form_params = {}

      # http body (model)
      post_body = nil
      
      auth_names = ['PureCloud Auth']
      data, status_code, headers = @api_client.call_api(:GET, local_var_path,
        :header_params => header_params,
        :query_params => query_params,
        :form_params => form_params,
        :body => post_body,
        :auth_names => auth_names,
        :return_type => 'TrunkMetabaseEntityListing')
      if @api_client.config.debugging
        @api_client.config.logger.debug "API called: TelephonyProvidersEdgeApi#get_telephony_providers_edges_trunkbasesettings_availablemetabases\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
      end
      return data, status_code, headers
    end

    # 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 trunk_metabase_id The id of a metabase object upon which to base this Trunk Base Settings
    # @param [Hash] opts the optional parameters
    # @return [TrunkBase]
    def get_telephony_providers_edges_trunkbasesettings_template(trunk_metabase_id, opts = {})
      data, _status_code, _headers = get_telephony_providers_edges_trunkbasesettings_template_with_http_info(trunk_metabase_id, opts)
      return data
    end

    # 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 trunk_metabase_id The id of a metabase object upon which to base this Trunk Base Settings
    # @param [Hash] opts the optional parameters
    # @return [Array<(TrunkBase, Fixnum, Hash)>] TrunkBase data, response status code and response headers
    def get_telephony_providers_edges_trunkbasesettings_template_with_http_info(trunk_metabase_id, opts = {})
      if @api_client.config.debugging
        @api_client.config.logger.debug "Calling API: TelephonyProvidersEdgeApi.get_telephony_providers_edges_trunkbasesettings_template ..."
      end
      
      
      # verify the required parameter 'trunk_metabase_id' is set
      fail ArgumentError, "Missing the required parameter 'trunk_metabase_id' when calling TelephonyProvidersEdgeApi.get_telephony_providers_edges_trunkbasesettings_template" if trunk_metabase_id.nil?
      
      
      
      
      
      # resource path
      local_var_path = "/api/v2/telephony/providers/edges/trunkbasesettings/template".sub('{format}','json')

      # query parameters
      query_params = {}
      query_params[:'trunkMetabaseId'] = trunk_metabase_id

      # header parameters
      header_params = {}

      # HTTP header 'Accept' (if needed)
      local_header_accept = ['application/json']
      local_header_accept_result = @api_client.select_header_accept(local_header_accept) and header_params['Accept'] = local_header_accept_result

      # HTTP header 'Content-Type'
      local_header_content_type = ['application/json']
      header_params['Content-Type'] = @api_client.select_header_content_type(local_header_content_type)

      # form parameters
      form_params = {}

      # http body (model)
      post_body = nil
      
      auth_names = ['PureCloud Auth']
      data, status_code, headers = @api_client.call_api(:GET, local_var_path,
        :header_params => header_params,
        :query_params => query_params,
        :form_params => form_params,
        :body => post_body,
        :auth_names => auth_names,
        :return_type => 'TrunkBase')
      if @api_client.config.debugging
        @api_client.config.logger.debug "API called: TelephonyProvidersEdgeApi#get_telephony_providers_edges_trunkbasesettings_template\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
      end
      return data, status_code, headers
    end

    # Get the list of available trunks.
    # Trunks are created by assigning trunk base settings to an Edge or Edge Group.
    # @param [Hash] opts the optional parameters
    # @option opts [Integer] :page_number Page number (default to 1)
    # @option opts [Integer] :page_size Page size (default to 25)
    # @option opts [String] :sort_by Value by which to sort (default to name)
    # @option opts [String] :sort_order Sort order (default to ASC)
    # @option opts [String] :edge_id Filter by Edge Ids
    # @option opts [String] :trunk_base_id Filter by Trunk Base Ids
    # @option opts [String] :trunk_type Filter by a Trunk type
    # @return [TrunkEntityListing]
    def get_telephony_providers_edges_trunks(opts = {})
      data, _status_code, _headers = get_telephony_providers_edges_trunks_with_http_info(opts)
      return data
    end

    # Get the list of available trunks.
    # Trunks are created by assigning trunk base settings to an Edge or Edge Group.
    # @param [Hash] opts the optional parameters
    # @option opts [Integer] :page_number Page number
    # @option opts [Integer] :page_size Page size
    # @option opts [String] :sort_by Value by which to sort
    # @option opts [String] :sort_order Sort order
    # @option opts [String] :edge_id Filter by Edge Ids
    # @option opts [String] :trunk_base_id Filter by Trunk Base Ids
    # @option opts [String] :trunk_type Filter by a Trunk type
    # @return [Array<(TrunkEntityListing, Fixnum, Hash)>] TrunkEntityListing data, response status code and response headers
    def get_telephony_providers_edges_trunks_with_http_info(opts = {})
      if @api_client.config.debugging
        @api_client.config.logger.debug "Calling API: TelephonyProvidersEdgeApi.get_telephony_providers_edges_trunks ..."
      end
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      if opts[:'trunk_type'] && !['EXTERNAL', 'PHONE', 'EDGE'].include?(opts[:'trunk_type'])
        fail ArgumentError, 'invalid value for "trunk_type", must be one of EXTERNAL, PHONE, EDGE'
      end
      
      
      
      
      # resource path
      local_var_path = "/api/v2/telephony/providers/edges/trunks".sub('{format}','json')

      # query parameters
      query_params = {}
      query_params[:'pageNumber'] = opts[:'page_number'] if opts[:'page_number']
      query_params[:'pageSize'] = opts[:'page_size'] if opts[:'page_size']
      query_params[:'sortBy'] = opts[:'sort_by'] if opts[:'sort_by']
      query_params[:'sortOrder'] = opts[:'sort_order'] if opts[:'sort_order']
      query_params[:'edge.id'] = opts[:'edge_id'] if opts[:'edge_id']
      query_params[:'trunkBase.id'] = opts[:'trunk_base_id'] if opts[:'trunk_base_id']
      query_params[:'trunkType'] = opts[:'trunk_type'] if opts[:'trunk_type']

      # header parameters
      header_params = {}

      # HTTP header 'Accept' (if needed)
      local_header_accept = ['application/json']
      local_header_accept_result = @api_client.select_header_accept(local_header_accept) and header_params['Accept'] = local_header_accept_result

      # HTTP header 'Content-Type'
      local_header_content_type = ['application/json']
      header_params['Content-Type'] = @api_client.select_header_content_type(local_header_content_type)

      # form parameters
      form_params = {}

      # http body (model)
      post_body = nil
      
      auth_names = ['PureCloud Auth']
      data, status_code, headers = @api_client.call_api(:GET, local_var_path,
        :header_params => header_params,
        :query_params => query_params,
        :form_params => form_params,
        :body => post_body,
        :auth_names => auth_names,
        :return_type => 'TrunkEntityListing')
      if @api_client.config.debugging
        @api_client.config.logger.debug "API called: TelephonyProvidersEdgeApi#get_telephony_providers_edges_trunks\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
      end
      return data, status_code, headers
    end

    # Get the metrics for a list of trunks.
    # 
    # @param trunk_ids Comma separated list of Trunk Id&#39;s
    # @param [Hash] opts the optional parameters
    # @return [Array<TrunkMetrics>]
    def get_telephony_providers_edges_trunks_metrics(trunk_ids, opts = {})
      data, _status_code, _headers = get_telephony_providers_edges_trunks_metrics_with_http_info(trunk_ids, opts)
      return data
    end

    # Get the metrics for a list of trunks.
    # 
    # @param trunk_ids Comma separated list of Trunk Id&#39;s
    # @param [Hash] opts the optional parameters
    # @return [Array<(Array<TrunkMetrics>, Fixnum, Hash)>] Array<TrunkMetrics> data, response status code and response headers
    def get_telephony_providers_edges_trunks_metrics_with_http_info(trunk_ids, opts = {})
      if @api_client.config.debugging
        @api_client.config.logger.debug "Calling API: TelephonyProvidersEdgeApi.get_telephony_providers_edges_trunks_metrics ..."
      end
      
      
      # verify the required parameter 'trunk_ids' is set
      fail ArgumentError, "Missing the required parameter 'trunk_ids' when calling TelephonyProvidersEdgeApi.get_telephony_providers_edges_trunks_metrics" if trunk_ids.nil?
      
      
      
      
      
      # resource path
      local_var_path = "/api/v2/telephony/providers/edges/trunks/metrics".sub('{format}','json')

      # query parameters
      query_params = {}
      query_params[:'trunkIds'] = trunk_ids

      # header parameters
      header_params = {}

      # HTTP header 'Accept' (if needed)
      local_header_accept = ['application/json']
      local_header_accept_result = @api_client.select_header_accept(local_header_accept) and header_params['Accept'] = local_header_accept_result

      # HTTP header 'Content-Type'
      local_header_content_type = ['application/json']
      header_params['Content-Type'] = @api_client.select_header_content_type(local_header_content_type)

      # form parameters
      form_params = {}

      # http body (model)
      post_body = nil
      
      auth_names = ['PureCloud Auth']
      data, status_code, headers = @api_client.call_api(:GET, local_var_path,
        :header_params => header_params,
        :query_params => query_params,
        :form_params => form_params,
        :body => post_body,
        :auth_names => auth_names,
        :return_type => 'Array<TrunkMetrics>')
      if @api_client.config.debugging
        @api_client.config.logger.debug "API called: TelephonyProvidersEdgeApi#get_telephony_providers_edges_trunks_metrics\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
      end
      return data, status_code, headers
    end

    # Get Counts of trunks that have recording disabled or enabled
    # 
    # @param [Hash] opts the optional parameters
    # @option opts [String] :trunk_type The type of this trunk base.
    # @return [TrunkRecordingEnabledCount]
    def get_telephony_providers_edges_trunkswithrecording(opts = {})
      data, _status_code, _headers = get_telephony_providers_edges_trunkswithrecording_with_http_info(opts)
      return data
    end

    # Get Counts of trunks that have recording disabled or enabled
    # 
    # @param [Hash] opts the optional parameters
    # @option opts [String] :trunk_type The type of this trunk base.
    # @return [Array<(TrunkRecordingEnabledCount, Fixnum, Hash)>] TrunkRecordingEnabledCount data, response status code and response headers
    def get_telephony_providers_edges_trunkswithrecording_with_http_info(opts = {})
      if @api_client.config.debugging
        @api_client.config.logger.debug "Calling API: TelephonyProvidersEdgeApi.get_telephony_providers_edges_trunkswithrecording ..."
      end
      
      
      
      
      if opts[:'trunk_type'] && !['EXTERNAL', 'PHONE', 'EDGE'].include?(opts[:'trunk_type'])
        fail ArgumentError, 'invalid value for "trunk_type", must be one of EXTERNAL, PHONE, EDGE'
      end
      
      
      
      
      # resource path
      local_var_path = "/api/v2/telephony/providers/edges/trunkswithrecording".sub('{format}','json')

      # query parameters
      query_params = {}
      query_params[:'trunkType'] = opts[:'trunk_type'] if opts[:'trunk_type']

      # header parameters
      header_params = {}

      # HTTP header 'Accept' (if needed)
      local_header_accept = ['application/json']
      local_header_accept_result = @api_client.select_header_accept(local_header_accept) and header_params['Accept'] = local_header_accept_result

      # HTTP header 'Content-Type'
      local_header_content_type = ['application/json']
      header_params['Content-Type'] = @api_client.select_header_content_type(local_header_content_type)

      # form parameters
      form_params = {}

      # http body (model)
      post_body = nil
      
      auth_names = ['PureCloud Auth']
      data, status_code, headers = @api_client.call_api(:GET, local_var_path,
        :header_params => header_params,
        :query_params => query_params,
        :form_params => form_params,
        :body => post_body,
        :auth_names => auth_names,
        :return_type => 'TrunkRecordingEnabledCount')
      if @api_client.config.debugging
        @api_client.config.logger.debug "API called: TelephonyProvidersEdgeApi#get_telephony_providers_edges_trunkswithrecording\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
      end
      return data, status_code, headers
    end

    # Create an edge logical interface.
    # Create
    # @param edge_id Edge ID
    # @param body Logical interface
    # @param [Hash] opts the optional parameters
    # @return [DomainLogicalInterface]
    def post_telephony_providers_edge_logicalinterfaces(edge_id, body, opts = {})
      data, _status_code, _headers = post_telephony_providers_edge_logicalinterfaces_with_http_info(edge_id, body, opts)
      return data
    end

    # Create an edge logical interface.
    # Create
    # @param edge_id Edge ID
    # @param body Logical interface
    # @param [Hash] opts the optional parameters
    # @return [Array<(DomainLogicalInterface, Fixnum, Hash)>] DomainLogicalInterface data, response status code and response headers
    def post_telephony_providers_edge_logicalinterfaces_with_http_info(edge_id, body, opts = {})
      if @api_client.config.debugging
        @api_client.config.logger.debug "Calling API: TelephonyProvidersEdgeApi.post_telephony_providers_edge_logicalinterfaces ..."
      end
      
      
      # verify the required parameter 'edge_id' is set
      fail ArgumentError, "Missing the required parameter 'edge_id' when calling TelephonyProvidersEdgeApi.post_telephony_providers_edge_logicalinterfaces" if edge_id.nil?
      
      
      
      
      
      
      # verify the required parameter 'body' is set
      fail ArgumentError, "Missing the required parameter 'body' when calling TelephonyProvidersEdgeApi.post_telephony_providers_edge_logicalinterfaces" if body.nil?
      
      
      
      
      
      # resource path
      local_var_path = "/api/v2/telephony/providers/edges/{edgeId}/logicalinterfaces".sub('{format}','json').sub('{' + 'edgeId' + '}', edge_id.to_s)

      # query parameters
      query_params = {}

      # header parameters
      header_params = {}

      # HTTP header 'Accept' (if needed)
      local_header_accept = ['application/json']
      local_header_accept_result = @api_client.select_header_accept(local_header_accept) and header_params['Accept'] = local_header_accept_result

      # HTTP header 'Content-Type'
      local_header_content_type = ['application/json']
      header_params['Content-Type'] = @api_client.select_header_content_type(local_header_content_type)

      # form parameters
      form_params = {}

      # http body (model)
      post_body = @api_client.object_to_http_body(body)
      
      auth_names = ['PureCloud Auth']
      data, status_code, headers = @api_client.call_api(:POST, local_var_path,
        :header_params => header_params,
        :query_params => query_params,
        :form_params => form_params,
        :body => post_body,
        :auth_names => auth_names,
        :return_type => 'DomainLogicalInterface')
      if @api_client.config.debugging
        @api_client.config.logger.debug "API called: TelephonyProvidersEdgeApi#post_telephony_providers_edge_logicalinterfaces\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
      end
      return data, status_code, headers
    end

    # Request that the specified fileIds be uploaded from the Edge.
    # 
    # @param edge_id Edge ID
    # @param job_id Job ID
    # @param body Log upload request
    # @param [Hash] opts the optional parameters
    # @return [nil]
    def post_telephony_providers_edge_logs_job_upload(edge_id, job_id, body, opts = {})
      post_telephony_providers_edge_logs_job_upload_with_http_info(edge_id, job_id, body, opts)
      return nil
    end

    # Request that the specified fileIds be uploaded from the Edge.
    # 
    # @param edge_id Edge ID
    # @param job_id Job ID
    # @param body Log upload request
    # @param [Hash] opts the optional parameters
    # @return [Array<(nil, Fixnum, Hash)>] nil, response status code and response headers
    def post_telephony_providers_edge_logs_job_upload_with_http_info(edge_id, job_id, body, opts = {})
      if @api_client.config.debugging
        @api_client.config.logger.debug "Calling API: TelephonyProvidersEdgeApi.post_telephony_providers_edge_logs_job_upload ..."
      end
      
      
      # verify the required parameter 'edge_id' is set
      fail ArgumentError, "Missing the required parameter 'edge_id' when calling TelephonyProvidersEdgeApi.post_telephony_providers_edge_logs_job_upload" if edge_id.nil?
      
      
      
      
      
      
      # verify the required parameter 'job_id' is set
      fail ArgumentError, "Missing the required parameter 'job_id' when calling TelephonyProvidersEdgeApi.post_telephony_providers_edge_logs_job_upload" if job_id.nil?
      
      
      
      
      
      
      # verify the required parameter 'body' is set
      fail ArgumentError, "Missing the required parameter 'body' when calling TelephonyProvidersEdgeApi.post_telephony_providers_edge_logs_job_upload" if body.nil?
      
      
      
      
      
      # resource path
      local_var_path = "/api/v2/telephony/providers/edges/{edgeId}/logs/jobs/{jobId}/upload".sub('{format}','json').sub('{' + 'edgeId' + '}', edge_id.to_s).sub('{' + 'jobId' + '}', job_id.to_s)

      # query parameters
      query_params = {}

      # header parameters
      header_params = {}

      # HTTP header 'Accept' (if needed)
      local_header_accept = ['application/json']
      local_header_accept_result = @api_client.select_header_accept(local_header_accept) and header_params['Accept'] = local_header_accept_result

      # HTTP header 'Content-Type'
      local_header_content_type = ['application/json']
      header_params['Content-Type'] = @api_client.select_header_content_type(local_header_content_type)

      # form parameters
      form_params = {}

      # http body (model)
      post_body = @api_client.object_to_http_body(body)
      
      auth_names = ['PureCloud Auth']
      data, status_code, headers = @api_client.call_api(:POST, local_var_path,
        :header_params => header_params,
        :query_params => query_params,
        :form_params => form_params,
        :body => post_body,
        :auth_names => auth_names)
      if @api_client.config.debugging
        @api_client.config.logger.debug "API called: TelephonyProvidersEdgeApi#post_telephony_providers_edge_logs_job_upload\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
      end
      return data, status_code, headers
    end

    # Create a job to upload a list of Edge logs.
    # 
    # @param edge_id Edge ID
    # @param body EdgeLogsJobRequest
    # @param [Hash] opts the optional parameters
    # @return [EdgeLogsJobResponse]
    def post_telephony_providers_edge_logs_jobs(edge_id, body, opts = {})
      data, _status_code, _headers = post_telephony_providers_edge_logs_jobs_with_http_info(edge_id, body, opts)
      return data
    end

    # Create a job to upload a list of Edge logs.
    # 
    # @param edge_id Edge ID
    # @param body EdgeLogsJobRequest
    # @param [Hash] opts the optional parameters
    # @return [Array<(EdgeLogsJobResponse, Fixnum, Hash)>] EdgeLogsJobResponse data, response status code and response headers
    def post_telephony_providers_edge_logs_jobs_with_http_info(edge_id, body, opts = {})
      if @api_client.config.debugging
        @api_client.config.logger.debug "Calling API: TelephonyProvidersEdgeApi.post_telephony_providers_edge_logs_jobs ..."
      end
      
      
      # verify the required parameter 'edge_id' is set
      fail ArgumentError, "Missing the required parameter 'edge_id' when calling TelephonyProvidersEdgeApi.post_telephony_providers_edge_logs_jobs" if edge_id.nil?
      
      
      
      
      
      
      # verify the required parameter 'body' is set
      fail ArgumentError, "Missing the required parameter 'body' when calling TelephonyProvidersEdgeApi.post_telephony_providers_edge_logs_jobs" if body.nil?
      
      
      
      
      
      # resource path
      local_var_path = "/api/v2/telephony/providers/edges/{edgeId}/logs/jobs".sub('{format}','json').sub('{' + 'edgeId' + '}', edge_id.to_s)

      # query parameters
      query_params = {}

      # header parameters
      header_params = {}

      # HTTP header 'Accept' (if needed)
      local_header_accept = ['application/json']
      local_header_accept_result = @api_client.select_header_accept(local_header_accept) and header_params['Accept'] = local_header_accept_result

      # HTTP header 'Content-Type'
      local_header_content_type = ['application/json']
      header_params['Content-Type'] = @api_client.select_header_content_type(local_header_content_type)

      # form parameters
      form_params = {}

      # http body (model)
      post_body = @api_client.object_to_http_body(body)
      
      auth_names = ['PureCloud Auth']
      data, status_code, headers = @api_client.call_api(:POST, local_var_path,
        :header_params => header_params,
        :query_params => query_params,
        :form_params => form_params,
        :body => post_body,
        :auth_names => auth_names,
        :return_type => 'EdgeLogsJobResponse')
      if @api_client.config.debugging
        @api_client.config.logger.debug "API called: TelephonyProvidersEdgeApi#post_telephony_providers_edge_logs_jobs\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
      end
      return data, status_code, headers
    end

    # Reboot an Edge
    # 
    # @param edge_id Edge ID
    # @param [Hash] opts the optional parameters
    # @option opts [EdgeRebootParameters] :body Parameters for the edge reboot
    # @return [String]
    def post_telephony_providers_edge_reboot(edge_id, opts = {})
      data, _status_code, _headers = post_telephony_providers_edge_reboot_with_http_info(edge_id, opts)
      return data
    end

    # Reboot an Edge
    # 
    # @param edge_id Edge ID
    # @param [Hash] opts the optional parameters
    # @option opts [EdgeRebootParameters] :body Parameters for the edge reboot
    # @return [Array<(String, Fixnum, Hash)>] String data, response status code and response headers
    def post_telephony_providers_edge_reboot_with_http_info(edge_id, opts = {})
      if @api_client.config.debugging
        @api_client.config.logger.debug "Calling API: TelephonyProvidersEdgeApi.post_telephony_providers_edge_reboot ..."
      end
      
      
      # verify the required parameter 'edge_id' is set
      fail ArgumentError, "Missing the required parameter 'edge_id' when calling TelephonyProvidersEdgeApi.post_telephony_providers_edge_reboot" if edge_id.nil?
      
      
      
      
      
      
      
      
      
      
      
      # resource path
      local_var_path = "/api/v2/telephony/providers/edges/{edgeId}/reboot".sub('{format}','json').sub('{' + 'edgeId' + '}', edge_id.to_s)

      # query parameters
      query_params = {}

      # header parameters
      header_params = {}

      # HTTP header 'Accept' (if needed)
      local_header_accept = ['application/json']
      local_header_accept_result = @api_client.select_header_accept(local_header_accept) and header_params['Accept'] = local_header_accept_result

      # HTTP header 'Content-Type'
      local_header_content_type = ['application/json']
      header_params['Content-Type'] = @api_client.select_header_content_type(local_header_content_type)

      # form parameters
      form_params = {}

      # http body (model)
      post_body = @api_client.object_to_http_body(opts[:'body'])
      
      auth_names = ['PureCloud Auth']
      data, status_code, headers = @api_client.call_api(:POST, local_var_path,
        :header_params => header_params,
        :query_params => query_params,
        :form_params => form_params,
        :body => post_body,
        :auth_names => auth_names,
        :return_type => 'String')
      if @api_client.config.debugging
        @api_client.config.logger.debug "API called: TelephonyProvidersEdgeApi#post_telephony_providers_edge_reboot\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
      end
      return data, status_code, headers
    end

    # Starts a software update for this edge.
    # 
    # @param edge_id Edge ID
    # @param body Software update request
    # @param [Hash] opts the optional parameters
    # @return [DomainEdgeSoftwareUpdateDto]
    def post_telephony_providers_edge_softwareupdate(edge_id, body, opts = {})
      data, _status_code, _headers = post_telephony_providers_edge_softwareupdate_with_http_info(edge_id, body, opts)
      return data
    end

    # Starts a software update for this edge.
    # 
    # @param edge_id Edge ID
    # @param body Software update request
    # @param [Hash] opts the optional parameters
    # @return [Array<(DomainEdgeSoftwareUpdateDto, Fixnum, Hash)>] DomainEdgeSoftwareUpdateDto data, response status code and response headers
    def post_telephony_providers_edge_softwareupdate_with_http_info(edge_id, body, opts = {})
      if @api_client.config.debugging
        @api_client.config.logger.debug "Calling API: TelephonyProvidersEdgeApi.post_telephony_providers_edge_softwareupdate ..."
      end
      
      
      # verify the required parameter 'edge_id' is set
      fail ArgumentError, "Missing the required parameter 'edge_id' when calling TelephonyProvidersEdgeApi.post_telephony_providers_edge_softwareupdate" if edge_id.nil?
      
      
      
      
      
      
      # verify the required parameter 'body' is set
      fail ArgumentError, "Missing the required parameter 'body' when calling TelephonyProvidersEdgeApi.post_telephony_providers_edge_softwareupdate" if body.nil?
      
      
      
      
      
      # resource path
      local_var_path = "/api/v2/telephony/providers/edges/{edgeId}/softwareupdate".sub('{format}','json').sub('{' + 'edgeId' + '}', edge_id.to_s)

      # query parameters
      query_params = {}

      # header parameters
      header_params = {}

      # HTTP header 'Accept' (if needed)
      local_header_accept = ['application/json']
      local_header_accept_result = @api_client.select_header_accept(local_header_accept) and header_params['Accept'] = local_header_accept_result

      # HTTP header 'Content-Type'
      local_header_content_type = ['application/json']
      header_params['Content-Type'] = @api_client.select_header_content_type(local_header_content_type)

      # form parameters
      form_params = {}

      # http body (model)
      post_body = @api_client.object_to_http_body(body)
      
      auth_names = ['PureCloud Auth']
      data, status_code, headers = @api_client.call_api(:POST, local_var_path,
        :header_params => header_params,
        :query_params => query_params,
        :form_params => form_params,
        :body => post_body,
        :auth_names => auth_names,
        :return_type => 'DomainEdgeSoftwareUpdateDto')
      if @api_client.config.debugging
        @api_client.config.logger.debug "API called: TelephonyProvidersEdgeApi#post_telephony_providers_edge_softwareupdate\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
      end
      return data, status_code, headers
    end

    # Take an Edge in or out of service
    # 
    # @param edge_id Edge ID
    # @param [Hash] opts the optional parameters
    # @option opts [EdgeServiceStateRequest] :body Edge Service State
    # @return [String]
    def post_telephony_providers_edge_statuscode(edge_id, opts = {})
      data, _status_code, _headers = post_telephony_providers_edge_statuscode_with_http_info(edge_id, opts)
      return data
    end

    # Take an Edge in or out of service
    # 
    # @param edge_id Edge ID
    # @param [Hash] opts the optional parameters
    # @option opts [EdgeServiceStateRequest] :body Edge Service State
    # @return [Array<(String, Fixnum, Hash)>] String data, response status code and response headers
    def post_telephony_providers_edge_statuscode_with_http_info(edge_id, opts = {})
      if @api_client.config.debugging
        @api_client.config.logger.debug "Calling API: TelephonyProvidersEdgeApi.post_telephony_providers_edge_statuscode ..."
      end
      
      
      # verify the required parameter 'edge_id' is set
      fail ArgumentError, "Missing the required parameter 'edge_id' when calling TelephonyProvidersEdgeApi.post_telephony_providers_edge_statuscode" if edge_id.nil?
      
      
      
      
      
      
      
      
      
      
      
      # resource path
      local_var_path = "/api/v2/telephony/providers/edges/{edgeId}/statuscode".sub('{format}','json').sub('{' + 'edgeId' + '}', edge_id.to_s)

      # query parameters
      query_params = {}

      # header parameters
      header_params = {}

      # HTTP header 'Accept' (if needed)
      local_header_accept = ['application/json']
      local_header_accept_result = @api_client.select_header_accept(local_header_accept) and header_params['Accept'] = local_header_accept_result

      # HTTP header 'Content-Type'
      local_header_content_type = ['application/json']
      header_params['Content-Type'] = @api_client.select_header_content_type(local_header_content_type)

      # form parameters
      form_params = {}

      # http body (model)
      post_body = @api_client.object_to_http_body(opts[:'body'])
      
      auth_names = ['PureCloud Auth']
      data, status_code, headers = @api_client.call_api(:POST, local_var_path,
        :header_params => header_params,
        :query_params => query_params,
        :form_params => form_params,
        :body => post_body,
        :auth_names => auth_names,
        :return_type => 'String')
      if @api_client.config.debugging
        @api_client.config.logger.debug "API called: TelephonyProvidersEdgeApi#post_telephony_providers_edge_statuscode\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
      end
      return data, status_code, headers
    end

    # Unpair an Edge
    # 
    # @param edge_id Edge Id
    # @param [Hash] opts the optional parameters
    # @return [String]
    def post_telephony_providers_edge_unpair(edge_id, opts = {})
      data, _status_code, _headers = post_telephony_providers_edge_unpair_with_http_info(edge_id, opts)
      return data
    end

    # Unpair an Edge
    # 
    # @param edge_id Edge Id
    # @param [Hash] opts the optional parameters
    # @return [Array<(String, Fixnum, Hash)>] String data, response status code and response headers
    def post_telephony_providers_edge_unpair_with_http_info(edge_id, opts = {})
      if @api_client.config.debugging
        @api_client.config.logger.debug "Calling API: TelephonyProvidersEdgeApi.post_telephony_providers_edge_unpair ..."
      end
      
      
      # verify the required parameter 'edge_id' is set
      fail ArgumentError, "Missing the required parameter 'edge_id' when calling TelephonyProvidersEdgeApi.post_telephony_providers_edge_unpair" if edge_id.nil?
      
      
      
      
      
      # resource path
      local_var_path = "/api/v2/telephony/providers/edges/{edgeId}/unpair".sub('{format}','json').sub('{' + 'edgeId' + '}', edge_id.to_s)

      # query parameters
      query_params = {}

      # header parameters
      header_params = {}

      # HTTP header 'Accept' (if needed)
      local_header_accept = ['application/json']
      local_header_accept_result = @api_client.select_header_accept(local_header_accept) and header_params['Accept'] = local_header_accept_result

      # HTTP header 'Content-Type'
      local_header_content_type = ['application/json']
      header_params['Content-Type'] = @api_client.select_header_content_type(local_header_content_type)

      # form parameters
      form_params = {}

      # http body (model)
      post_body = nil
      
      auth_names = ['PureCloud Auth']
      data, status_code, headers = @api_client.call_api(:POST, local_var_path,
        :header_params => header_params,
        :query_params => query_params,
        :form_params => form_params,
        :body => post_body,
        :auth_names => auth_names,
        :return_type => 'String')
      if @api_client.config.debugging
        @api_client.config.logger.debug "API called: TelephonyProvidersEdgeApi#post_telephony_providers_edge_unpair\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
      end
      return data, status_code, headers
    end

    # Create an edge.
    # 
    # @param body Edge
    # @param [Hash] opts the optional parameters
    # @return [Edge]
    def post_telephony_providers_edges(body, opts = {})
      data, _status_code, _headers = post_telephony_providers_edges_with_http_info(body, opts)
      return data
    end

    # Create an edge.
    # 
    # @param body Edge
    # @param [Hash] opts the optional parameters
    # @return [Array<(Edge, Fixnum, Hash)>] Edge data, response status code and response headers
    def post_telephony_providers_edges_with_http_info(body, opts = {})
      if @api_client.config.debugging
        @api_client.config.logger.debug "Calling API: TelephonyProvidersEdgeApi.post_telephony_providers_edges ..."
      end
      
      
      # verify the required parameter 'body' is set
      fail ArgumentError, "Missing the required parameter 'body' when calling TelephonyProvidersEdgeApi.post_telephony_providers_edges" if body.nil?
      
      
      
      
      
      # resource path
      local_var_path = "/api/v2/telephony/providers/edges".sub('{format}','json')

      # query parameters
      query_params = {}

      # header parameters
      header_params = {}

      # HTTP header 'Accept' (if needed)
      local_header_accept = ['application/json']
      local_header_accept_result = @api_client.select_header_accept(local_header_accept) and header_params['Accept'] = local_header_accept_result

      # HTTP header 'Content-Type'
      local_header_content_type = ['application/json']
      header_params['Content-Type'] = @api_client.select_header_content_type(local_header_content_type)

      # form parameters
      form_params = {}

      # http body (model)
      post_body = @api_client.object_to_http_body(body)
      
      auth_names = ['PureCloud Auth']
      data, status_code, headers = @api_client.call_api(:POST, local_var_path,
        :header_params => header_params,
        :query_params => query_params,
        :form_params => form_params,
        :body => post_body,
        :auth_names => auth_names,
        :return_type => 'Edge')
      if @api_client.config.debugging
        @api_client.config.logger.debug "API called: TelephonyProvidersEdgeApi#post_telephony_providers_edges\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
      end
      return data, status_code, headers
    end

    # Validates a street address
    # 
    # @param body Address
    # @param [Hash] opts the optional parameters
    # @return [ValidateAddressResponse]
    def post_telephony_providers_edges_addressvalidation(body, opts = {})
      data, _status_code, _headers = post_telephony_providers_edges_addressvalidation_with_http_info(body, opts)
      return data
    end

    # Validates a street address
    # 
    # @param body Address
    # @param [Hash] opts the optional parameters
    # @return [Array<(ValidateAddressResponse, Fixnum, Hash)>] ValidateAddressResponse data, response status code and response headers
    def post_telephony_providers_edges_addressvalidation_with_http_info(body, opts = {})
      if @api_client.config.debugging
        @api_client.config.logger.debug "Calling API: TelephonyProvidersEdgeApi.post_telephony_providers_edges_addressvalidation ..."
      end
      
      
      # verify the required parameter 'body' is set
      fail ArgumentError, "Missing the required parameter 'body' when calling TelephonyProvidersEdgeApi.post_telephony_providers_edges_addressvalidation" if body.nil?
      
      
      
      
      
      # resource path
      local_var_path = "/api/v2/telephony/providers/edges/addressvalidation".sub('{format}','json')

      # query parameters
      query_params = {}

      # header parameters
      header_params = {}

      # HTTP header 'Accept' (if needed)
      local_header_accept = ['application/json']
      local_header_accept_result = @api_client.select_header_accept(local_header_accept) and header_params['Accept'] = local_header_accept_result

      # HTTP header 'Content-Type'
      local_header_content_type = ['application/json']
      header_params['Content-Type'] = @api_client.select_header_content_type(local_header_content_type)

      # form parameters
      form_params = {}

      # http body (model)
      post_body = @api_client.object_to_http_body(body)
      
      auth_names = ['PureCloud Auth']
      data, status_code, headers = @api_client.call_api(:POST, local_var_path,
        :header_params => header_params,
        :query_params => query_params,
        :form_params => form_params,
        :body => post_body,
        :auth_names => auth_names,
        :return_type => 'ValidateAddressResponse')
      if @api_client.config.debugging
        @api_client.config.logger.debug "API called: TelephonyProvidersEdgeApi#post_telephony_providers_edges_addressvalidation\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
      end
      return data, status_code, headers
    end

    # Create a certificate authority.
    # 
    # @param body CertificateAuthority
    # @param [Hash] opts the optional parameters
    # @return [DomainCertificateAuthority]
    def post_telephony_providers_edges_certificateauthorities(body, opts = {})
      data, _status_code, _headers = post_telephony_providers_edges_certificateauthorities_with_http_info(body, opts)
      return data
    end

    # Create a certificate authority.
    # 
    # @param body CertificateAuthority
    # @param [Hash] opts the optional parameters
    # @return [Array<(DomainCertificateAuthority, Fixnum, Hash)>] DomainCertificateAuthority data, response status code and response headers
    def post_telephony_providers_edges_certificateauthorities_with_http_info(body, opts = {})
      if @api_client.config.debugging
        @api_client.config.logger.debug "Calling API: TelephonyProvidersEdgeApi.post_telephony_providers_edges_certificateauthorities ..."
      end
      
      
      # verify the required parameter 'body' is set
      fail ArgumentError, "Missing the required parameter 'body' when calling TelephonyProvidersEdgeApi.post_telephony_providers_edges_certificateauthorities" if body.nil?
      
      
      
      
      
      # resource path
      local_var_path = "/api/v2/telephony/providers/edges/certificateauthorities".sub('{format}','json')

      # query parameters
      query_params = {}

      # header parameters
      header_params = {}

      # HTTP header 'Accept' (if needed)
      local_header_accept = ['application/json']
      local_header_accept_result = @api_client.select_header_accept(local_header_accept) and header_params['Accept'] = local_header_accept_result

      # HTTP header 'Content-Type'
      local_header_content_type = ['application/json']
      header_params['Content-Type'] = @api_client.select_header_content_type(local_header_content_type)

      # form parameters
      form_params = {}

      # http body (model)
      post_body = @api_client.object_to_http_body(body)
      
      auth_names = ['PureCloud Auth']
      data, status_code, headers = @api_client.call_api(:POST, local_var_path,
        :header_params => header_params,
        :query_params => query_params,
        :form_params => form_params,
        :body => post_body,
        :auth_names => auth_names,
        :return_type => 'DomainCertificateAuthority')
      if @api_client.config.debugging
        @api_client.config.logger.debug "API called: TelephonyProvidersEdgeApi#post_telephony_providers_edges_certificateauthorities\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
      end
      return data, status_code, headers
    end

    # Create a new DID pool
    # 
    # @param body DID pool
    # @param [Hash] opts the optional parameters
    # @return [DIDPool]
    def post_telephony_providers_edges_didpools(body, opts = {})
      data, _status_code, _headers = post_telephony_providers_edges_didpools_with_http_info(body, opts)
      return data
    end

    # Create a new DID pool
    # 
    # @param body DID pool
    # @param [Hash] opts the optional parameters
    # @return [Array<(DIDPool, Fixnum, Hash)>] DIDPool data, response status code and response headers
    def post_telephony_providers_edges_didpools_with_http_info(body, opts = {})
      if @api_client.config.debugging
        @api_client.config.logger.debug "Calling API: TelephonyProvidersEdgeApi.post_telephony_providers_edges_didpools ..."
      end
      
      
      # verify the required parameter 'body' is set
      fail ArgumentError, "Missing the required parameter 'body' when calling TelephonyProvidersEdgeApi.post_telephony_providers_edges_didpools" if body.nil?
      
      
      
      
      
      # resource path
      local_var_path = "/api/v2/telephony/providers/edges/didpools".sub('{format}','json')

      # query parameters
      query_params = {}

      # header parameters
      header_params = {}

      # HTTP header 'Accept' (if needed)
      local_header_accept = ['application/json']
      local_header_accept_result = @api_client.select_header_accept(local_header_accept) and header_params['Accept'] = local_header_accept_result

      # HTTP header 'Content-Type'
      local_header_content_type = ['application/json']
      header_params['Content-Type'] = @api_client.select_header_content_type(local_header_content_type)

      # form parameters
      form_params = {}

      # http body (model)
      post_body = @api_client.object_to_http_body(body)
      
      auth_names = ['PureCloud Auth']
      data, status_code, headers = @api_client.call_api(:POST, local_var_path,
        :header_params => header_params,
        :query_params => query_params,
        :form_params => form_params,
        :body => post_body,
        :auth_names => auth_names,
        :return_type => 'DIDPool')
      if @api_client.config.debugging
        @api_client.config.logger.debug "API called: TelephonyProvidersEdgeApi#post_telephony_providers_edges_didpools\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
      end
      return data, status_code, headers
    end

    # Create an edge group.
    # 
    # @param body EdgeGroup
    # @param [Hash] opts the optional parameters
    # @return [EdgeGroup]
    def post_telephony_providers_edges_edgegroups(body, opts = {})
      data, _status_code, _headers = post_telephony_providers_edges_edgegroups_with_http_info(body, opts)
      return data
    end

    # Create an edge group.
    # 
    # @param body EdgeGroup
    # @param [Hash] opts the optional parameters
    # @return [Array<(EdgeGroup, Fixnum, Hash)>] EdgeGroup data, response status code and response headers
    def post_telephony_providers_edges_edgegroups_with_http_info(body, opts = {})
      if @api_client.config.debugging
        @api_client.config.logger.debug "Calling API: TelephonyProvidersEdgeApi.post_telephony_providers_edges_edgegroups ..."
      end
      
      
      # verify the required parameter 'body' is set
      fail ArgumentError, "Missing the required parameter 'body' when calling TelephonyProvidersEdgeApi.post_telephony_providers_edges_edgegroups" if body.nil?
      
      
      
      
      
      # resource path
      local_var_path = "/api/v2/telephony/providers/edges/edgegroups".sub('{format}','json')

      # query parameters
      query_params = {}

      # header parameters
      header_params = {}

      # HTTP header 'Accept' (if needed)
      local_header_accept = ['application/json']
      local_header_accept_result = @api_client.select_header_accept(local_header_accept) and header_params['Accept'] = local_header_accept_result

      # HTTP header 'Content-Type'
      local_header_content_type = ['application/json']
      header_params['Content-Type'] = @api_client.select_header_content_type(local_header_content_type)

      # form parameters
      form_params = {}

      # http body (model)
      post_body = @api_client.object_to_http_body(body)
      
      auth_names = ['PureCloud Auth']
      data, status_code, headers = @api_client.call_api(:POST, local_var_path,
        :header_params => header_params,
        :query_params => query_params,
        :form_params => form_params,
        :body => post_body,
        :auth_names => auth_names,
        :return_type => 'EdgeGroup')
      if @api_client.config.debugging
        @api_client.config.logger.debug "API called: TelephonyProvidersEdgeApi#post_telephony_providers_edges_edgegroups\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
      end
      return data, status_code, headers
    end

    # Create endpoint
    # 
    # @param body EndpointTemplate
    # @param [Hash] opts the optional parameters
    # @return [Endpoint]
    def post_telephony_providers_edges_endpoints(body, opts = {})
      data, _status_code, _headers = post_telephony_providers_edges_endpoints_with_http_info(body, opts)
      return data
    end

    # Create endpoint
    # 
    # @param body EndpointTemplate
    # @param [Hash] opts the optional parameters
    # @return [Array<(Endpoint, Fixnum, Hash)>] Endpoint data, response status code and response headers
    def post_telephony_providers_edges_endpoints_with_http_info(body, opts = {})
      if @api_client.config.debugging
        @api_client.config.logger.debug "Calling API: TelephonyProvidersEdgeApi.post_telephony_providers_edges_endpoints ..."
      end
      
      
      # verify the required parameter 'body' is set
      fail ArgumentError, "Missing the required parameter 'body' when calling TelephonyProvidersEdgeApi.post_telephony_providers_edges_endpoints" if body.nil?
      
      
      
      
      
      # resource path
      local_var_path = "/api/v2/telephony/providers/edges/endpoints".sub('{format}','json')

      # query parameters
      query_params = {}

      # header parameters
      header_params = {}

      # HTTP header 'Accept' (if needed)
      local_header_accept = ['application/json']
      local_header_accept_result = @api_client.select_header_accept(local_header_accept) and header_params['Accept'] = local_header_accept_result

      # HTTP header 'Content-Type'
      local_header_content_type = ['application/json']
      header_params['Content-Type'] = @api_client.select_header_content_type(local_header_content_type)

      # form parameters
      form_params = {}

      # http body (model)
      post_body = @api_client.object_to_http_body(body)
      
      auth_names = ['PureCloud Auth']
      data, status_code, headers = @api_client.call_api(:POST, local_var_path,
        :header_params => header_params,
        :query_params => query_params,
        :form_params => form_params,
        :body => post_body,
        :auth_names => auth_names,
        :return_type => 'Endpoint')
      if @api_client.config.debugging
        @api_client.config.logger.debug "API called: TelephonyProvidersEdgeApi#post_telephony_providers_edges_endpoints\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
      end
      return data, status_code, headers
    end

    # Create a new extension pool
    # 
    # @param body ExtensionPool
    # @param [Hash] opts the optional parameters
    # @return [ExtensionPool]
    def post_telephony_providers_edges_extensionpools(body, opts = {})
      data, _status_code, _headers = post_telephony_providers_edges_extensionpools_with_http_info(body, opts)
      return data
    end

    # Create a new extension pool
    # 
    # @param body ExtensionPool
    # @param [Hash] opts the optional parameters
    # @return [Array<(ExtensionPool, Fixnum, Hash)>] ExtensionPool data, response status code and response headers
    def post_telephony_providers_edges_extensionpools_with_http_info(body, opts = {})
      if @api_client.config.debugging
        @api_client.config.logger.debug "Calling API: TelephonyProvidersEdgeApi.post_telephony_providers_edges_extensionpools ..."
      end
      
      
      # verify the required parameter 'body' is set
      fail ArgumentError, "Missing the required parameter 'body' when calling TelephonyProvidersEdgeApi.post_telephony_providers_edges_extensionpools" if body.nil?
      
      
      
      
      
      # resource path
      local_var_path = "/api/v2/telephony/providers/edges/extensionpools".sub('{format}','json')

      # query parameters
      query_params = {}

      # header parameters
      header_params = {}

      # HTTP header 'Accept' (if needed)
      local_header_accept = ['application/json']
      local_header_accept_result = @api_client.select_header_accept(local_header_accept) and header_params['Accept'] = local_header_accept_result

      # HTTP header 'Content-Type'
      local_header_content_type = ['application/json']
      header_params['Content-Type'] = @api_client.select_header_content_type(local_header_content_type)

      # form parameters
      form_params = {}

      # http body (model)
      post_body = @api_client.object_to_http_body(body)
      
      auth_names = ['PureCloud Auth']
      data, status_code, headers = @api_client.call_api(:POST, local_var_path,
        :header_params => header_params,
        :query_params => query_params,
        :form_params => form_params,
        :body => post_body,
        :auth_names => auth_names,
        :return_type => 'ExtensionPool')
      if @api_client.config.debugging
        @api_client.config.logger.debug "API called: TelephonyProvidersEdgeApi#post_telephony_providers_edges_extensionpools\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
      end
      return data, status_code, headers
    end

    # Create outbound rule
    # 
    # @param body OutboundRoute
    # @param [Hash] opts the optional parameters
    # @return [OutboundRoute]
    def post_telephony_providers_edges_outboundroutes(body, opts = {})
      data, _status_code, _headers = post_telephony_providers_edges_outboundroutes_with_http_info(body, opts)
      return data
    end

    # Create outbound rule
    # 
    # @param body OutboundRoute
    # @param [Hash] opts the optional parameters
    # @return [Array<(OutboundRoute, Fixnum, Hash)>] OutboundRoute data, response status code and response headers
    def post_telephony_providers_edges_outboundroutes_with_http_info(body, opts = {})
      if @api_client.config.debugging
        @api_client.config.logger.debug "Calling API: TelephonyProvidersEdgeApi.post_telephony_providers_edges_outboundroutes ..."
      end
      
      
      # verify the required parameter 'body' is set
      fail ArgumentError, "Missing the required parameter 'body' when calling TelephonyProvidersEdgeApi.post_telephony_providers_edges_outboundroutes" if body.nil?
      
      
      
      
      
      # resource path
      local_var_path = "/api/v2/telephony/providers/edges/outboundroutes".sub('{format}','json')

      # query parameters
      query_params = {}

      # header parameters
      header_params = {}

      # HTTP header 'Accept' (if needed)
      local_header_accept = ['application/json']
      local_header_accept_result = @api_client.select_header_accept(local_header_accept) and header_params['Accept'] = local_header_accept_result

      # HTTP header 'Content-Type'
      local_header_content_type = ['application/json']
      header_params['Content-Type'] = @api_client.select_header_content_type(local_header_content_type)

      # form parameters
      form_params = {}

      # http body (model)
      post_body = @api_client.object_to_http_body(body)
      
      auth_names = ['PureCloud Auth']
      data, status_code, headers = @api_client.call_api(:POST, local_var_path,
        :header_params => header_params,
        :query_params => query_params,
        :form_params => form_params,
        :body => post_body,
        :auth_names => auth_names,
        :return_type => 'OutboundRoute')
      if @api_client.config.debugging
        @api_client.config.logger.debug "API called: TelephonyProvidersEdgeApi#post_telephony_providers_edges_outboundroutes\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
      end
      return data, status_code, headers
    end

    # Reboot a Phone
    # 
    # @param phone_id Phone Id
    # @param [Hash] opts the optional parameters
    # @return [nil]
    def post_telephony_providers_edges_phone_reboot(phone_id, opts = {})
      post_telephony_providers_edges_phone_reboot_with_http_info(phone_id, opts)
      return nil
    end

    # Reboot a Phone
    # 
    # @param phone_id Phone Id
    # @param [Hash] opts the optional parameters
    # @return [Array<(nil, Fixnum, Hash)>] nil, response status code and response headers
    def post_telephony_providers_edges_phone_reboot_with_http_info(phone_id, opts = {})
      if @api_client.config.debugging
        @api_client.config.logger.debug "Calling API: TelephonyProvidersEdgeApi.post_telephony_providers_edges_phone_reboot ..."
      end
      
      
      # verify the required parameter 'phone_id' is set
      fail ArgumentError, "Missing the required parameter 'phone_id' when calling TelephonyProvidersEdgeApi.post_telephony_providers_edges_phone_reboot" if phone_id.nil?
      
      
      
      
      
      # resource path
      local_var_path = "/api/v2/telephony/providers/edges/phones/{phoneId}/reboot".sub('{format}','json').sub('{' + 'phoneId' + '}', phone_id.to_s)

      # query parameters
      query_params = {}

      # header parameters
      header_params = {}

      # HTTP header 'Accept' (if needed)
      local_header_accept = ['application/json']
      local_header_accept_result = @api_client.select_header_accept(local_header_accept) and header_params['Accept'] = local_header_accept_result

      # HTTP header 'Content-Type'
      local_header_content_type = ['application/json']
      header_params['Content-Type'] = @api_client.select_header_content_type(local_header_content_type)

      # form parameters
      form_params = {}

      # http body (model)
      post_body = nil
      
      auth_names = ['PureCloud Auth']
      data, status_code, headers = @api_client.call_api(:POST, local_var_path,
        :header_params => header_params,
        :query_params => query_params,
        :form_params => form_params,
        :body => post_body,
        :auth_names => auth_names)
      if @api_client.config.debugging
        @api_client.config.logger.debug "API called: TelephonyProvidersEdgeApi#post_telephony_providers_edges_phone_reboot\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
      end
      return data, status_code, headers
    end

    # Create a new Phone Base Settings object
    # 
    # @param body Phone base settings
    # @param [Hash] opts the optional parameters
    # @return [PhoneBase]
    def post_telephony_providers_edges_phonebasesettings(body, opts = {})
      data, _status_code, _headers = post_telephony_providers_edges_phonebasesettings_with_http_info(body, opts)
      return data
    end

    # Create a new Phone Base Settings object
    # 
    # @param body Phone base settings
    # @param [Hash] opts the optional parameters
    # @return [Array<(PhoneBase, Fixnum, Hash)>] PhoneBase data, response status code and response headers
    def post_telephony_providers_edges_phonebasesettings_with_http_info(body, opts = {})
      if @api_client.config.debugging
        @api_client.config.logger.debug "Calling API: TelephonyProvidersEdgeApi.post_telephony_providers_edges_phonebasesettings ..."
      end
      
      
      # verify the required parameter 'body' is set
      fail ArgumentError, "Missing the required parameter 'body' when calling TelephonyProvidersEdgeApi.post_telephony_providers_edges_phonebasesettings" if body.nil?
      
      
      
      
      
      # resource path
      local_var_path = "/api/v2/telephony/providers/edges/phonebasesettings".sub('{format}','json')

      # query parameters
      query_params = {}

      # header parameters
      header_params = {}

      # HTTP header 'Accept' (if needed)
      local_header_accept = ['application/json']
      local_header_accept_result = @api_client.select_header_accept(local_header_accept) and header_params['Accept'] = local_header_accept_result

      # HTTP header 'Content-Type'
      local_header_content_type = ['application/json']
      header_params['Content-Type'] = @api_client.select_header_content_type(local_header_content_type)

      # form parameters
      form_params = {}

      # http body (model)
      post_body = @api_client.object_to_http_body(body)
      
      auth_names = ['PureCloud Auth']
      data, status_code, headers = @api_client.call_api(:POST, local_var_path,
        :header_params => header_params,
        :query_params => query_params,
        :form_params => form_params,
        :body => post_body,
        :auth_names => auth_names,
        :return_type => 'PhoneBase')
      if @api_client.config.debugging
        @api_client.config.logger.debug "API called: TelephonyProvidersEdgeApi#post_telephony_providers_edges_phonebasesettings\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
      end
      return data, status_code, headers
    end

    # Create a new Phone
    # 
    # @param body Phone
    # @param [Hash] opts the optional parameters
    # @return [Phone]
    def post_telephony_providers_edges_phones(body, opts = {})
      data, _status_code, _headers = post_telephony_providers_edges_phones_with_http_info(body, opts)
      return data
    end

    # Create a new Phone
    # 
    # @param body Phone
    # @param [Hash] opts the optional parameters
    # @return [Array<(Phone, Fixnum, Hash)>] Phone data, response status code and response headers
    def post_telephony_providers_edges_phones_with_http_info(body, opts = {})
      if @api_client.config.debugging
        @api_client.config.logger.debug "Calling API: TelephonyProvidersEdgeApi.post_telephony_providers_edges_phones ..."
      end
      
      
      # verify the required parameter 'body' is set
      fail ArgumentError, "Missing the required parameter 'body' when calling TelephonyProvidersEdgeApi.post_telephony_providers_edges_phones" if body.nil?
      
      
      
      
      
      # resource path
      local_var_path = "/api/v2/telephony/providers/edges/phones".sub('{format}','json')

      # query parameters
      query_params = {}

      # header parameters
      header_params = {}

      # HTTP header 'Accept' (if needed)
      local_header_accept = ['application/json']
      local_header_accept_result = @api_client.select_header_accept(local_header_accept) and header_params['Accept'] = local_header_accept_result

      # HTTP header 'Content-Type'
      local_header_content_type = ['application/json']
      header_params['Content-Type'] = @api_client.select_header_content_type(local_header_content_type)

      # form parameters
      form_params = {}

      # http body (model)
      post_body = @api_client.object_to_http_body(body)
      
      auth_names = ['PureCloud Auth']
      data, status_code, headers = @api_client.call_api(:POST, local_var_path,
        :header_params => header_params,
        :query_params => query_params,
        :form_params => form_params,
        :body => post_body,
        :auth_names => auth_names,
        :return_type => 'Phone')
      if @api_client.config.debugging
        @api_client.config.logger.debug "API called: TelephonyProvidersEdgeApi#post_telephony_providers_edges_phones\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
      end
      return data, status_code, headers
    end

    # Reboot Multiple Phones
    # 
    # @param body Phones
    # @param [Hash] opts the optional parameters
    # @return [nil]
    def post_telephony_providers_edges_phones_reboot(body, opts = {})
      post_telephony_providers_edges_phones_reboot_with_http_info(body, opts)
      return nil
    end

    # Reboot Multiple Phones
    # 
    # @param body Phones
    # @param [Hash] opts the optional parameters
    # @return [Array<(nil, Fixnum, Hash)>] nil, response status code and response headers
    def post_telephony_providers_edges_phones_reboot_with_http_info(body, opts = {})
      if @api_client.config.debugging
        @api_client.config.logger.debug "Calling API: TelephonyProvidersEdgeApi.post_telephony_providers_edges_phones_reboot ..."
      end
      
      
      # verify the required parameter 'body' is set
      fail ArgumentError, "Missing the required parameter 'body' when calling TelephonyProvidersEdgeApi.post_telephony_providers_edges_phones_reboot" if body.nil?
      
      
      
      
      
      # resource path
      local_var_path = "/api/v2/telephony/providers/edges/phones/reboot".sub('{format}','json')

      # query parameters
      query_params = {}

      # header parameters
      header_params = {}

      # HTTP header 'Accept' (if needed)
      local_header_accept = ['application/json']
      local_header_accept_result = @api_client.select_header_accept(local_header_accept) and header_params['Accept'] = local_header_accept_result

      # HTTP header 'Content-Type'
      local_header_content_type = ['application/json']
      header_params['Content-Type'] = @api_client.select_header_content_type(local_header_content_type)

      # form parameters
      form_params = {}

      # http body (model)
      post_body = @api_client.object_to_http_body(body)
      
      auth_names = ['PureCloud Auth']
      data, status_code, headers = @api_client.call_api(:POST, local_var_path,
        :header_params => header_params,
        :query_params => query_params,
        :form_params => form_params,
        :body => post_body,
        :auth_names => auth_names)
      if @api_client.config.debugging
        @api_client.config.logger.debug "API called: TelephonyProvidersEdgeApi#post_telephony_providers_edges_phones_reboot\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
      end
      return data, status_code, headers
    end

    # Creates an ASG for the specified site
    # 
    # @param site_id Site that will be associated with the asg
    # @param body CreateAsgRequest
    # @param [Hash] opts the optional parameters
    # @return [String]
    def post_telephony_providers_edges_site_autoscalinggroups(site_id, body, opts = {})
      data, _status_code, _headers = post_telephony_providers_edges_site_autoscalinggroups_with_http_info(site_id, body, opts)
      return data
    end

    # Creates an ASG for the specified site
    # 
    # @param site_id Site that will be associated with the asg
    # @param body CreateAsgRequest
    # @param [Hash] opts the optional parameters
    # @return [Array<(String, Fixnum, Hash)>] String data, response status code and response headers
    def post_telephony_providers_edges_site_autoscalinggroups_with_http_info(site_id, body, opts = {})
      if @api_client.config.debugging
        @api_client.config.logger.debug "Calling API: TelephonyProvidersEdgeApi.post_telephony_providers_edges_site_autoscalinggroups ..."
      end
      
      
      # verify the required parameter 'site_id' is set
      fail ArgumentError, "Missing the required parameter 'site_id' when calling TelephonyProvidersEdgeApi.post_telephony_providers_edges_site_autoscalinggroups" if site_id.nil?
      
      
      
      
      
      
      # verify the required parameter 'body' is set
      fail ArgumentError, "Missing the required parameter 'body' when calling TelephonyProvidersEdgeApi.post_telephony_providers_edges_site_autoscalinggroups" if body.nil?
      
      
      
      
      
      # resource path
      local_var_path = "/api/v2/telephony/providers/edges/sites/{siteId}/autoscalinggroups".sub('{format}','json').sub('{' + 'siteId' + '}', site_id.to_s)

      # query parameters
      query_params = {}

      # header parameters
      header_params = {}

      # HTTP header 'Accept' (if needed)
      local_header_accept = ['application/json']
      local_header_accept_result = @api_client.select_header_accept(local_header_accept) and header_params['Accept'] = local_header_accept_result

      # HTTP header 'Content-Type'
      local_header_content_type = ['application/json']
      header_params['Content-Type'] = @api_client.select_header_content_type(local_header_content_type)

      # form parameters
      form_params = {}

      # http body (model)
      post_body = @api_client.object_to_http_body(body)
      
      auth_names = ['PureCloud Auth']
      data, status_code, headers = @api_client.call_api(:POST, local_var_path,
        :header_params => header_params,
        :query_params => query_params,
        :form_params => form_params,
        :body => post_body,
        :auth_names => auth_names,
        :return_type => 'String')
      if @api_client.config.debugging
        @api_client.config.logger.debug "API called: TelephonyProvidersEdgeApi#post_telephony_providers_edges_site_autoscalinggroups\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
      end
      return data, status_code, headers
    end

    # Create outbound route
    # 
    # @param site_id Site ID
    # @param body OutboundRoute
    # @param [Hash] opts the optional parameters
    # @return [OutboundRouteBase]
    def post_telephony_providers_edges_site_outboundroutes(site_id, body, opts = {})
      data, _status_code, _headers = post_telephony_providers_edges_site_outboundroutes_with_http_info(site_id, body, opts)
      return data
    end

    # Create outbound route
    # 
    # @param site_id Site ID
    # @param body OutboundRoute
    # @param [Hash] opts the optional parameters
    # @return [Array<(OutboundRouteBase, Fixnum, Hash)>] OutboundRouteBase data, response status code and response headers
    def post_telephony_providers_edges_site_outboundroutes_with_http_info(site_id, body, opts = {})
      if @api_client.config.debugging
        @api_client.config.logger.debug "Calling API: TelephonyProvidersEdgeApi.post_telephony_providers_edges_site_outboundroutes ..."
      end
      
      
      # verify the required parameter 'site_id' is set
      fail ArgumentError, "Missing the required parameter 'site_id' when calling TelephonyProvidersEdgeApi.post_telephony_providers_edges_site_outboundroutes" if site_id.nil?
      
      
      
      
      
      
      # verify the required parameter 'body' is set
      fail ArgumentError, "Missing the required parameter 'body' when calling TelephonyProvidersEdgeApi.post_telephony_providers_edges_site_outboundroutes" if body.nil?
      
      
      
      
      
      # resource path
      local_var_path = "/api/v2/telephony/providers/edges/sites/{siteId}/outboundroutes".sub('{format}','json').sub('{' + 'siteId' + '}', site_id.to_s)

      # query parameters
      query_params = {}

      # header parameters
      header_params = {}

      # HTTP header 'Accept' (if needed)
      local_header_accept = ['application/json']
      local_header_accept_result = @api_client.select_header_accept(local_header_accept) and header_params['Accept'] = local_header_accept_result

      # HTTP header 'Content-Type'
      local_header_content_type = ['application/json']
      header_params['Content-Type'] = @api_client.select_header_content_type(local_header_content_type)

      # form parameters
      form_params = {}

      # http body (model)
      post_body = @api_client.object_to_http_body(body)
      
      auth_names = ['PureCloud Auth']
      data, status_code, headers = @api_client.call_api(:POST, local_var_path,
        :header_params => header_params,
        :query_params => query_params,
        :form_params => form_params,
        :body => post_body,
        :auth_names => auth_names,
        :return_type => 'OutboundRouteBase')
      if @api_client.config.debugging
        @api_client.config.logger.debug "API called: TelephonyProvidersEdgeApi#post_telephony_providers_edges_site_outboundroutes\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
      end
      return data, status_code, headers
    end

    # Triggers the rebalance operation.
    # 
    # @param site_id Site ID
    # @param [Hash] opts the optional parameters
    # @return [nil]
    def post_telephony_providers_edges_site_rebalance(site_id, opts = {})
      post_telephony_providers_edges_site_rebalance_with_http_info(site_id, opts)
      return nil
    end

    # Triggers the rebalance operation.
    # 
    # @param site_id Site ID
    # @param [Hash] opts the optional parameters
    # @return [Array<(nil, Fixnum, Hash)>] nil, response status code and response headers
    def post_telephony_providers_edges_site_rebalance_with_http_info(site_id, opts = {})
      if @api_client.config.debugging
        @api_client.config.logger.debug "Calling API: TelephonyProvidersEdgeApi.post_telephony_providers_edges_site_rebalance ..."
      end
      
      
      # verify the required parameter 'site_id' is set
      fail ArgumentError, "Missing the required parameter 'site_id' when calling TelephonyProvidersEdgeApi.post_telephony_providers_edges_site_rebalance" if site_id.nil?
      
      
      
      
      
      # resource path
      local_var_path = "/api/v2/telephony/providers/edges/sites/{siteId}/rebalance".sub('{format}','json').sub('{' + 'siteId' + '}', site_id.to_s)

      # query parameters
      query_params = {}

      # header parameters
      header_params = {}

      # HTTP header 'Accept' (if needed)
      local_header_accept = ['application/json']
      local_header_accept_result = @api_client.select_header_accept(local_header_accept) and header_params['Accept'] = local_header_accept_result

      # HTTP header 'Content-Type'
      local_header_content_type = ['application/json']
      header_params['Content-Type'] = @api_client.select_header_content_type(local_header_content_type)

      # form parameters
      form_params = {}

      # http body (model)
      post_body = nil
      
      auth_names = ['PureCloud Auth']
      data, status_code, headers = @api_client.call_api(:POST, local_var_path,
        :header_params => header_params,
        :query_params => query_params,
        :form_params => form_params,
        :body => post_body,
        :auth_names => auth_names)
      if @api_client.config.debugging
        @api_client.config.logger.debug "API called: TelephonyProvidersEdgeApi#post_telephony_providers_edges_site_rebalance\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
      end
      return data, status_code, headers
    end

    # Create a Site.
    # 
    # @param body Site
    # @param [Hash] opts the optional parameters
    # @return [Site]
    def post_telephony_providers_edges_sites(body, opts = {})
      data, _status_code, _headers = post_telephony_providers_edges_sites_with_http_info(body, opts)
      return data
    end

    # Create a Site.
    # 
    # @param body Site
    # @param [Hash] opts the optional parameters
    # @return [Array<(Site, Fixnum, Hash)>] Site data, response status code and response headers
    def post_telephony_providers_edges_sites_with_http_info(body, opts = {})
      if @api_client.config.debugging
        @api_client.config.logger.debug "Calling API: TelephonyProvidersEdgeApi.post_telephony_providers_edges_sites ..."
      end
      
      
      # verify the required parameter 'body' is set
      fail ArgumentError, "Missing the required parameter 'body' when calling TelephonyProvidersEdgeApi.post_telephony_providers_edges_sites" if body.nil?
      
      
      
      
      
      # resource path
      local_var_path = "/api/v2/telephony/providers/edges/sites".sub('{format}','json')

      # query parameters
      query_params = {}

      # header parameters
      header_params = {}

      # HTTP header 'Accept' (if needed)
      local_header_accept = ['application/json']
      local_header_accept_result = @api_client.select_header_accept(local_header_accept) and header_params['Accept'] = local_header_accept_result

      # HTTP header 'Content-Type'
      local_header_content_type = ['application/json']
      header_params['Content-Type'] = @api_client.select_header_content_type(local_header_content_type)

      # form parameters
      form_params = {}

      # http body (model)
      post_body = @api_client.object_to_http_body(body)
      
      auth_names = ['PureCloud Auth']
      data, status_code, headers = @api_client.call_api(:POST, local_var_path,
        :header_params => header_params,
        :query_params => query_params,
        :form_params => form_params,
        :body => post_body,
        :auth_names => auth_names,
        :return_type => 'Site')
      if @api_client.config.debugging
        @api_client.config.logger.debug "API called: TelephonyProvidersEdgeApi#post_telephony_providers_edges_sites\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
      end
      return data, status_code, headers
    end

    # Create a Trunk Base Settings object
    # 
    # @param body Trunk base settings
    # @param [Hash] opts the optional parameters
    # @return [TrunkBase]
    def post_telephony_providers_edges_trunkbasesettings(body, opts = {})
      data, _status_code, _headers = post_telephony_providers_edges_trunkbasesettings_with_http_info(body, opts)
      return data
    end

    # Create a Trunk Base Settings object
    # 
    # @param body Trunk base settings
    # @param [Hash] opts the optional parameters
    # @return [Array<(TrunkBase, Fixnum, Hash)>] TrunkBase data, response status code and response headers
    def post_telephony_providers_edges_trunkbasesettings_with_http_info(body, opts = {})
      if @api_client.config.debugging
        @api_client.config.logger.debug "Calling API: TelephonyProvidersEdgeApi.post_telephony_providers_edges_trunkbasesettings ..."
      end
      
      
      # verify the required parameter 'body' is set
      fail ArgumentError, "Missing the required parameter 'body' when calling TelephonyProvidersEdgeApi.post_telephony_providers_edges_trunkbasesettings" if body.nil?
      
      
      
      
      
      # resource path
      local_var_path = "/api/v2/telephony/providers/edges/trunkbasesettings".sub('{format}','json')

      # query parameters
      query_params = {}

      # header parameters
      header_params = {}

      # HTTP header 'Accept' (if needed)
      local_header_accept = ['application/json']
      local_header_accept_result = @api_client.select_header_accept(local_header_accept) and header_params['Accept'] = local_header_accept_result

      # HTTP header 'Content-Type'
      local_header_content_type = ['application/json']
      header_params['Content-Type'] = @api_client.select_header_content_type(local_header_content_type)

      # form parameters
      form_params = {}

      # http body (model)
      post_body = @api_client.object_to_http_body(body)
      
      auth_names = ['PureCloud Auth']
      data, status_code, headers = @api_client.call_api(:POST, local_var_path,
        :header_params => header_params,
        :query_params => query_params,
        :form_params => form_params,
        :body => post_body,
        :auth_names => auth_names,
        :return_type => 'TrunkBase')
      if @api_client.config.debugging
        @api_client.config.logger.debug "API called: TelephonyProvidersEdgeApi#post_telephony_providers_edges_trunkbasesettings\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
      end
      return data, status_code, headers
    end

    # Update a edge.
    # 
    # @param edge_id Edge ID
    # @param body Edge
    # @param [Hash] opts the optional parameters
    # @return [Edge]
    def put_telephony_providers_edge(edge_id, body, opts = {})
      data, _status_code, _headers = put_telephony_providers_edge_with_http_info(edge_id, body, opts)
      return data
    end

    # Update a edge.
    # 
    # @param edge_id Edge ID
    # @param body Edge
    # @param [Hash] opts the optional parameters
    # @return [Array<(Edge, Fixnum, Hash)>] Edge data, response status code and response headers
    def put_telephony_providers_edge_with_http_info(edge_id, body, opts = {})
      if @api_client.config.debugging
        @api_client.config.logger.debug "Calling API: TelephonyProvidersEdgeApi.put_telephony_providers_edge ..."
      end
      
      
      # verify the required parameter 'edge_id' is set
      fail ArgumentError, "Missing the required parameter 'edge_id' when calling TelephonyProvidersEdgeApi.put_telephony_providers_edge" if edge_id.nil?
      
      
      
      
      
      
      # verify the required parameter 'body' is set
      fail ArgumentError, "Missing the required parameter 'body' when calling TelephonyProvidersEdgeApi.put_telephony_providers_edge" if body.nil?
      
      
      
      
      
      # resource path
      local_var_path = "/api/v2/telephony/providers/edges/{edgeId}".sub('{format}','json').sub('{' + 'edgeId' + '}', edge_id.to_s)

      # query parameters
      query_params = {}

      # header parameters
      header_params = {}

      # HTTP header 'Accept' (if needed)
      local_header_accept = ['application/json']
      local_header_accept_result = @api_client.select_header_accept(local_header_accept) and header_params['Accept'] = local_header_accept_result

      # HTTP header 'Content-Type'
      local_header_content_type = ['application/json']
      header_params['Content-Type'] = @api_client.select_header_content_type(local_header_content_type)

      # form parameters
      form_params = {}

      # http body (model)
      post_body = @api_client.object_to_http_body(body)
      
      auth_names = ['PureCloud Auth']
      data, status_code, headers = @api_client.call_api(:PUT, local_var_path,
        :header_params => header_params,
        :query_params => query_params,
        :form_params => form_params,
        :body => post_body,
        :auth_names => auth_names,
        :return_type => 'Edge')
      if @api_client.config.debugging
        @api_client.config.logger.debug "API called: TelephonyProvidersEdgeApi#put_telephony_providers_edge\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
      end
      return data, status_code, headers
    end

    # Update a line.
    # 
    # @param edge_id Edge ID
    # @param line_id Line ID
    # @param body Line
    # @param [Hash] opts the optional parameters
    # @return [EdgeLine]
    def put_telephony_providers_edge_line(edge_id, line_id, body, opts = {})
      data, _status_code, _headers = put_telephony_providers_edge_line_with_http_info(edge_id, line_id, body, opts)
      return data
    end

    # Update a line.
    # 
    # @param edge_id Edge ID
    # @param line_id Line ID
    # @param body Line
    # @param [Hash] opts the optional parameters
    # @return [Array<(EdgeLine, Fixnum, Hash)>] EdgeLine data, response status code and response headers
    def put_telephony_providers_edge_line_with_http_info(edge_id, line_id, body, opts = {})
      if @api_client.config.debugging
        @api_client.config.logger.debug "Calling API: TelephonyProvidersEdgeApi.put_telephony_providers_edge_line ..."
      end
      
      
      # verify the required parameter 'edge_id' is set
      fail ArgumentError, "Missing the required parameter 'edge_id' when calling TelephonyProvidersEdgeApi.put_telephony_providers_edge_line" if edge_id.nil?
      
      
      
      
      
      
      # verify the required parameter 'line_id' is set
      fail ArgumentError, "Missing the required parameter 'line_id' when calling TelephonyProvidersEdgeApi.put_telephony_providers_edge_line" if line_id.nil?
      
      
      
      
      
      
      # verify the required parameter 'body' is set
      fail ArgumentError, "Missing the required parameter 'body' when calling TelephonyProvidersEdgeApi.put_telephony_providers_edge_line" if body.nil?
      
      
      
      
      
      # resource path
      local_var_path = "/api/v2/telephony/providers/edges/{edgeId}/lines/{lineId}".sub('{format}','json').sub('{' + 'edgeId' + '}', edge_id.to_s).sub('{' + 'lineId' + '}', line_id.to_s)

      # query parameters
      query_params = {}

      # header parameters
      header_params = {}

      # HTTP header 'Accept' (if needed)
      local_header_accept = ['application/json']
      local_header_accept_result = @api_client.select_header_accept(local_header_accept) and header_params['Accept'] = local_header_accept_result

      # HTTP header 'Content-Type'
      local_header_content_type = ['application/json']
      header_params['Content-Type'] = @api_client.select_header_content_type(local_header_content_type)

      # form parameters
      form_params = {}

      # http body (model)
      post_body = @api_client.object_to_http_body(body)
      
      auth_names = ['PureCloud Auth']
      data, status_code, headers = @api_client.call_api(:PUT, local_var_path,
        :header_params => header_params,
        :query_params => query_params,
        :form_params => form_params,
        :body => post_body,
        :auth_names => auth_names,
        :return_type => 'EdgeLine')
      if @api_client.config.debugging
        @api_client.config.logger.debug "API called: TelephonyProvidersEdgeApi#put_telephony_providers_edge_line\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
      end
      return data, status_code, headers
    end

    # Update an edge logical interface.
    # 
    # @param edge_id Edge ID
    # @param interface_id Interface ID
    # @param body Logical interface
    # @param [Hash] opts the optional parameters
    # @return [DomainLogicalInterface]
    def put_telephony_providers_edge_logicalinterface(edge_id, interface_id, body, opts = {})
      data, _status_code, _headers = put_telephony_providers_edge_logicalinterface_with_http_info(edge_id, interface_id, body, opts)
      return data
    end

    # Update an edge logical interface.
    # 
    # @param edge_id Edge ID
    # @param interface_id Interface ID
    # @param body Logical interface
    # @param [Hash] opts the optional parameters
    # @return [Array<(DomainLogicalInterface, Fixnum, Hash)>] DomainLogicalInterface data, response status code and response headers
    def put_telephony_providers_edge_logicalinterface_with_http_info(edge_id, interface_id, body, opts = {})
      if @api_client.config.debugging
        @api_client.config.logger.debug "Calling API: TelephonyProvidersEdgeApi.put_telephony_providers_edge_logicalinterface ..."
      end
      
      
      # verify the required parameter 'edge_id' is set
      fail ArgumentError, "Missing the required parameter 'edge_id' when calling TelephonyProvidersEdgeApi.put_telephony_providers_edge_logicalinterface" if edge_id.nil?
      
      
      
      
      
      
      # verify the required parameter 'interface_id' is set
      fail ArgumentError, "Missing the required parameter 'interface_id' when calling TelephonyProvidersEdgeApi.put_telephony_providers_edge_logicalinterface" if interface_id.nil?
      
      
      
      
      
      
      # verify the required parameter 'body' is set
      fail ArgumentError, "Missing the required parameter 'body' when calling TelephonyProvidersEdgeApi.put_telephony_providers_edge_logicalinterface" if body.nil?
      
      
      
      
      
      # resource path
      local_var_path = "/api/v2/telephony/providers/edges/{edgeId}/logicalinterfaces/{interfaceId}".sub('{format}','json').sub('{' + 'edgeId' + '}', edge_id.to_s).sub('{' + 'interfaceId' + '}', interface_id.to_s)

      # query parameters
      query_params = {}

      # header parameters
      header_params = {}

      # HTTP header 'Accept' (if needed)
      local_header_accept = ['application/json']
      local_header_accept_result = @api_client.select_header_accept(local_header_accept) and header_params['Accept'] = local_header_accept_result

      # HTTP header 'Content-Type'
      local_header_content_type = ['application/json']
      header_params['Content-Type'] = @api_client.select_header_content_type(local_header_content_type)

      # form parameters
      form_params = {}

      # http body (model)
      post_body = @api_client.object_to_http_body(body)
      
      auth_names = ['PureCloud Auth']
      data, status_code, headers = @api_client.call_api(:PUT, local_var_path,
        :header_params => header_params,
        :query_params => query_params,
        :form_params => form_params,
        :body => post_body,
        :auth_names => auth_names,
        :return_type => 'DomainLogicalInterface')
      if @api_client.config.debugging
        @api_client.config.logger.debug "API called: TelephonyProvidersEdgeApi#put_telephony_providers_edge_logicalinterface\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
      end
      return data, status_code, headers
    end

    # Update a certificate authority.
    # 
    # @param certificate_id Certificate ID
    # @param body Certificate authority
    # @param [Hash] opts the optional parameters
    # @return [DomainCertificateAuthority]
    def put_telephony_providers_edges_certificateauthority(certificate_id, body, opts = {})
      data, _status_code, _headers = put_telephony_providers_edges_certificateauthority_with_http_info(certificate_id, body, opts)
      return data
    end

    # Update a certificate authority.
    # 
    # @param certificate_id Certificate ID
    # @param body Certificate authority
    # @param [Hash] opts the optional parameters
    # @return [Array<(DomainCertificateAuthority, Fixnum, Hash)>] DomainCertificateAuthority data, response status code and response headers
    def put_telephony_providers_edges_certificateauthority_with_http_info(certificate_id, body, opts = {})
      if @api_client.config.debugging
        @api_client.config.logger.debug "Calling API: TelephonyProvidersEdgeApi.put_telephony_providers_edges_certificateauthority ..."
      end
      
      
      # verify the required parameter 'certificate_id' is set
      fail ArgumentError, "Missing the required parameter 'certificate_id' when calling TelephonyProvidersEdgeApi.put_telephony_providers_edges_certificateauthority" if certificate_id.nil?
      
      
      
      
      
      
      # verify the required parameter 'body' is set
      fail ArgumentError, "Missing the required parameter 'body' when calling TelephonyProvidersEdgeApi.put_telephony_providers_edges_certificateauthority" if body.nil?
      
      
      
      
      
      # resource path
      local_var_path = "/api/v2/telephony/providers/edges/certificateauthorities/{certificateId}".sub('{format}','json').sub('{' + 'certificateId' + '}', certificate_id.to_s)

      # query parameters
      query_params = {}

      # header parameters
      header_params = {}

      # HTTP header 'Accept' (if needed)
      local_header_accept = ['application/json']
      local_header_accept_result = @api_client.select_header_accept(local_header_accept) and header_params['Accept'] = local_header_accept_result

      # HTTP header 'Content-Type'
      local_header_content_type = ['application/json']
      header_params['Content-Type'] = @api_client.select_header_content_type(local_header_content_type)

      # form parameters
      form_params = {}

      # http body (model)
      post_body = @api_client.object_to_http_body(body)
      
      auth_names = ['PureCloud Auth']
      data, status_code, headers = @api_client.call_api(:PUT, local_var_path,
        :header_params => header_params,
        :query_params => query_params,
        :form_params => form_params,
        :body => post_body,
        :auth_names => auth_names,
        :return_type => 'DomainCertificateAuthority')
      if @api_client.config.debugging
        @api_client.config.logger.debug "API called: TelephonyProvidersEdgeApi#put_telephony_providers_edges_certificateauthority\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
      end
      return data, status_code, headers
    end

    # Update a DID by ID.
    # 
    # @param did_id DID ID
    # @param body DID
    # @param [Hash] opts the optional parameters
    # @return [DID]
    def put_telephony_providers_edges_did(did_id, body, opts = {})
      data, _status_code, _headers = put_telephony_providers_edges_did_with_http_info(did_id, body, opts)
      return data
    end

    # Update a DID by ID.
    # 
    # @param did_id DID ID
    # @param body DID
    # @param [Hash] opts the optional parameters
    # @return [Array<(DID, Fixnum, Hash)>] DID data, response status code and response headers
    def put_telephony_providers_edges_did_with_http_info(did_id, body, opts = {})
      if @api_client.config.debugging
        @api_client.config.logger.debug "Calling API: TelephonyProvidersEdgeApi.put_telephony_providers_edges_did ..."
      end
      
      
      # verify the required parameter 'did_id' is set
      fail ArgumentError, "Missing the required parameter 'did_id' when calling TelephonyProvidersEdgeApi.put_telephony_providers_edges_did" if did_id.nil?
      
      
      
      
      
      
      # verify the required parameter 'body' is set
      fail ArgumentError, "Missing the required parameter 'body' when calling TelephonyProvidersEdgeApi.put_telephony_providers_edges_did" if body.nil?
      
      
      
      
      
      # resource path
      local_var_path = "/api/v2/telephony/providers/edges/dids/{didId}".sub('{format}','json').sub('{' + 'didId' + '}', did_id.to_s)

      # query parameters
      query_params = {}

      # header parameters
      header_params = {}

      # HTTP header 'Accept' (if needed)
      local_header_accept = ['application/json']
      local_header_accept_result = @api_client.select_header_accept(local_header_accept) and header_params['Accept'] = local_header_accept_result

      # HTTP header 'Content-Type'
      local_header_content_type = ['application/json']
      header_params['Content-Type'] = @api_client.select_header_content_type(local_header_content_type)

      # form parameters
      form_params = {}

      # http body (model)
      post_body = @api_client.object_to_http_body(body)
      
      auth_names = ['PureCloud Auth']
      data, status_code, headers = @api_client.call_api(:PUT, local_var_path,
        :header_params => header_params,
        :query_params => query_params,
        :form_params => form_params,
        :body => post_body,
        :auth_names => auth_names,
        :return_type => 'DID')
      if @api_client.config.debugging
        @api_client.config.logger.debug "API called: TelephonyProvidersEdgeApi#put_telephony_providers_edges_did\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
      end
      return data, status_code, headers
    end

    # Update a DID Pool by ID.
    # 
    # @param did_pool_id DID pool ID
    # @param body DID pool
    # @param [Hash] opts the optional parameters
    # @return [DIDPool]
    def put_telephony_providers_edges_didpool(did_pool_id, body, opts = {})
      data, _status_code, _headers = put_telephony_providers_edges_didpool_with_http_info(did_pool_id, body, opts)
      return data
    end

    # Update a DID Pool by ID.
    # 
    # @param did_pool_id DID pool ID
    # @param body DID pool
    # @param [Hash] opts the optional parameters
    # @return [Array<(DIDPool, Fixnum, Hash)>] DIDPool data, response status code and response headers
    def put_telephony_providers_edges_didpool_with_http_info(did_pool_id, body, opts = {})
      if @api_client.config.debugging
        @api_client.config.logger.debug "Calling API: TelephonyProvidersEdgeApi.put_telephony_providers_edges_didpool ..."
      end
      
      
      # verify the required parameter 'did_pool_id' is set
      fail ArgumentError, "Missing the required parameter 'did_pool_id' when calling TelephonyProvidersEdgeApi.put_telephony_providers_edges_didpool" if did_pool_id.nil?
      
      
      
      
      
      
      # verify the required parameter 'body' is set
      fail ArgumentError, "Missing the required parameter 'body' when calling TelephonyProvidersEdgeApi.put_telephony_providers_edges_didpool" if body.nil?
      
      
      
      
      
      # resource path
      local_var_path = "/api/v2/telephony/providers/edges/didpools/{didPoolId}".sub('{format}','json').sub('{' + 'didPoolId' + '}', did_pool_id.to_s)

      # query parameters
      query_params = {}

      # header parameters
      header_params = {}

      # HTTP header 'Accept' (if needed)
      local_header_accept = ['application/json']
      local_header_accept_result = @api_client.select_header_accept(local_header_accept) and header_params['Accept'] = local_header_accept_result

      # HTTP header 'Content-Type'
      local_header_content_type = ['application/json']
      header_params['Content-Type'] = @api_client.select_header_content_type(local_header_content_type)

      # form parameters
      form_params = {}

      # http body (model)
      post_body = @api_client.object_to_http_body(body)
      
      auth_names = ['PureCloud Auth']
      data, status_code, headers = @api_client.call_api(:PUT, local_var_path,
        :header_params => header_params,
        :query_params => query_params,
        :form_params => form_params,
        :body => post_body,
        :auth_names => auth_names,
        :return_type => 'DIDPool')
      if @api_client.config.debugging
        @api_client.config.logger.debug "API called: TelephonyProvidersEdgeApi#put_telephony_providers_edges_didpool\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
      end
      return data, status_code, headers
    end

    # Update an edge group.
    # 
    # @param edge_group_id Edge group ID
    # @param body EdgeGroup
    # @param [Hash] opts the optional parameters
    # @return [EdgeGroup]
    def put_telephony_providers_edges_edgegroup(edge_group_id, body, opts = {})
      data, _status_code, _headers = put_telephony_providers_edges_edgegroup_with_http_info(edge_group_id, body, opts)
      return data
    end

    # Update an edge group.
    # 
    # @param edge_group_id Edge group ID
    # @param body EdgeGroup
    # @param [Hash] opts the optional parameters
    # @return [Array<(EdgeGroup, Fixnum, Hash)>] EdgeGroup data, response status code and response headers
    def put_telephony_providers_edges_edgegroup_with_http_info(edge_group_id, body, opts = {})
      if @api_client.config.debugging
        @api_client.config.logger.debug "Calling API: TelephonyProvidersEdgeApi.put_telephony_providers_edges_edgegroup ..."
      end
      
      
      # verify the required parameter 'edge_group_id' is set
      fail ArgumentError, "Missing the required parameter 'edge_group_id' when calling TelephonyProvidersEdgeApi.put_telephony_providers_edges_edgegroup" if edge_group_id.nil?
      
      
      
      
      
      
      # verify the required parameter 'body' is set
      fail ArgumentError, "Missing the required parameter 'body' when calling TelephonyProvidersEdgeApi.put_telephony_providers_edges_edgegroup" if body.nil?
      
      
      
      
      
      # resource path
      local_var_path = "/api/v2/telephony/providers/edges/edgegroups/{edgeGroupId}".sub('{format}','json').sub('{' + 'edgeGroupId' + '}', edge_group_id.to_s)

      # query parameters
      query_params = {}

      # header parameters
      header_params = {}

      # HTTP header 'Accept' (if needed)
      local_header_accept = ['application/json']
      local_header_accept_result = @api_client.select_header_accept(local_header_accept) and header_params['Accept'] = local_header_accept_result

      # HTTP header 'Content-Type'
      local_header_content_type = ['application/json']
      header_params['Content-Type'] = @api_client.select_header_content_type(local_header_content_type)

      # form parameters
      form_params = {}

      # http body (model)
      post_body = @api_client.object_to_http_body(body)
      
      auth_names = ['PureCloud Auth']
      data, status_code, headers = @api_client.call_api(:PUT, local_var_path,
        :header_params => header_params,
        :query_params => query_params,
        :form_params => form_params,
        :body => post_body,
        :auth_names => auth_names,
        :return_type => 'EdgeGroup')
      if @api_client.config.debugging
        @api_client.config.logger.debug "API called: TelephonyProvidersEdgeApi#put_telephony_providers_edges_edgegroup\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
      end
      return data, status_code, headers
    end

    # Update the edge trunk base associated with the edge group
    # 
    # @param edgegroup_id Edge Group ID
    # @param edgetrunkbase_id Edge Trunk Base ID
    # @param body EdgeTrunkBase
    # @param [Hash] opts the optional parameters
    # @return [EdgeTrunkBase]
    def put_telephony_providers_edges_edgegroup_edgetrunkbase(edgegroup_id, edgetrunkbase_id, body, opts = {})
      data, _status_code, _headers = put_telephony_providers_edges_edgegroup_edgetrunkbase_with_http_info(edgegroup_id, edgetrunkbase_id, body, opts)
      return data
    end

    # Update the edge trunk base associated with the edge group
    # 
    # @param edgegroup_id Edge Group ID
    # @param edgetrunkbase_id Edge Trunk Base ID
    # @param body EdgeTrunkBase
    # @param [Hash] opts the optional parameters
    # @return [Array<(EdgeTrunkBase, Fixnum, Hash)>] EdgeTrunkBase data, response status code and response headers
    def put_telephony_providers_edges_edgegroup_edgetrunkbase_with_http_info(edgegroup_id, edgetrunkbase_id, body, opts = {})
      if @api_client.config.debugging
        @api_client.config.logger.debug "Calling API: TelephonyProvidersEdgeApi.put_telephony_providers_edges_edgegroup_edgetrunkbase ..."
      end
      
      
      # verify the required parameter 'edgegroup_id' is set
      fail ArgumentError, "Missing the required parameter 'edgegroup_id' when calling TelephonyProvidersEdgeApi.put_telephony_providers_edges_edgegroup_edgetrunkbase" if edgegroup_id.nil?
      
      
      
      
      
      
      # verify the required parameter 'edgetrunkbase_id' is set
      fail ArgumentError, "Missing the required parameter 'edgetrunkbase_id' when calling TelephonyProvidersEdgeApi.put_telephony_providers_edges_edgegroup_edgetrunkbase" if edgetrunkbase_id.nil?
      
      
      
      
      
      
      # verify the required parameter 'body' is set
      fail ArgumentError, "Missing the required parameter 'body' when calling TelephonyProvidersEdgeApi.put_telephony_providers_edges_edgegroup_edgetrunkbase" if body.nil?
      
      
      
      
      
      # resource path
      local_var_path = "/api/v2/telephony/providers/edges/edgegroups/{edgegroupId}/edgetrunkbases/{edgetrunkbaseId}".sub('{format}','json').sub('{' + 'edgegroupId' + '}', edgegroup_id.to_s).sub('{' + 'edgetrunkbaseId' + '}', edgetrunkbase_id.to_s)

      # query parameters
      query_params = {}

      # header parameters
      header_params = {}

      # HTTP header 'Accept' (if needed)
      local_header_accept = ['application/json']
      local_header_accept_result = @api_client.select_header_accept(local_header_accept) and header_params['Accept'] = local_header_accept_result

      # HTTP header 'Content-Type'
      local_header_content_type = ['application/json']
      header_params['Content-Type'] = @api_client.select_header_content_type(local_header_content_type)

      # form parameters
      form_params = {}

      # http body (model)
      post_body = @api_client.object_to_http_body(body)
      
      auth_names = ['PureCloud Auth']
      data, status_code, headers = @api_client.call_api(:PUT, local_var_path,
        :header_params => header_params,
        :query_params => query_params,
        :form_params => form_params,
        :body => post_body,
        :auth_names => auth_names,
        :return_type => 'EdgeTrunkBase')
      if @api_client.config.debugging
        @api_client.config.logger.debug "API called: TelephonyProvidersEdgeApi#put_telephony_providers_edges_edgegroup_edgetrunkbase\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
      end
      return data, status_code, headers
    end

    # Update endpoint
    # 
    # @param endpoint_id Endpoint ID
    # @param body EndpointTemplate
    # @param [Hash] opts the optional parameters
    # @return [Endpoint]
    def put_telephony_providers_edges_endpoint(endpoint_id, body, opts = {})
      data, _status_code, _headers = put_telephony_providers_edges_endpoint_with_http_info(endpoint_id, body, opts)
      return data
    end

    # Update endpoint
    # 
    # @param endpoint_id Endpoint ID
    # @param body EndpointTemplate
    # @param [Hash] opts the optional parameters
    # @return [Array<(Endpoint, Fixnum, Hash)>] Endpoint data, response status code and response headers
    def put_telephony_providers_edges_endpoint_with_http_info(endpoint_id, body, opts = {})
      if @api_client.config.debugging
        @api_client.config.logger.debug "Calling API: TelephonyProvidersEdgeApi.put_telephony_providers_edges_endpoint ..."
      end
      
      
      # verify the required parameter 'endpoint_id' is set
      fail ArgumentError, "Missing the required parameter 'endpoint_id' when calling TelephonyProvidersEdgeApi.put_telephony_providers_edges_endpoint" if endpoint_id.nil?
      
      
      
      
      
      
      # verify the required parameter 'body' is set
      fail ArgumentError, "Missing the required parameter 'body' when calling TelephonyProvidersEdgeApi.put_telephony_providers_edges_endpoint" if body.nil?
      
      
      
      
      
      # resource path
      local_var_path = "/api/v2/telephony/providers/edges/endpoints/{endpointId}".sub('{format}','json').sub('{' + 'endpointId' + '}', endpoint_id.to_s)

      # query parameters
      query_params = {}

      # header parameters
      header_params = {}

      # HTTP header 'Accept' (if needed)
      local_header_accept = ['application/json']
      local_header_accept_result = @api_client.select_header_accept(local_header_accept) and header_params['Accept'] = local_header_accept_result

      # HTTP header 'Content-Type'
      local_header_content_type = ['application/json']
      header_params['Content-Type'] = @api_client.select_header_content_type(local_header_content_type)

      # form parameters
      form_params = {}

      # http body (model)
      post_body = @api_client.object_to_http_body(body)
      
      auth_names = ['PureCloud Auth']
      data, status_code, headers = @api_client.call_api(:PUT, local_var_path,
        :header_params => header_params,
        :query_params => query_params,
        :form_params => form_params,
        :body => post_body,
        :auth_names => auth_names,
        :return_type => 'Endpoint')
      if @api_client.config.debugging
        @api_client.config.logger.debug "API called: TelephonyProvidersEdgeApi#put_telephony_providers_edges_endpoint\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
      end
      return data, status_code, headers
    end

    # Update an extension by ID.
    # 
    # @param extension_id Extension ID
    # @param body Extension
    # @param [Hash] opts the optional parameters
    # @return [Extension]
    def put_telephony_providers_edges_extension(extension_id, body, opts = {})
      data, _status_code, _headers = put_telephony_providers_edges_extension_with_http_info(extension_id, body, opts)
      return data
    end

    # Update an extension by ID.
    # 
    # @param extension_id Extension ID
    # @param body Extension
    # @param [Hash] opts the optional parameters
    # @return [Array<(Extension, Fixnum, Hash)>] Extension data, response status code and response headers
    def put_telephony_providers_edges_extension_with_http_info(extension_id, body, opts = {})
      if @api_client.config.debugging
        @api_client.config.logger.debug "Calling API: TelephonyProvidersEdgeApi.put_telephony_providers_edges_extension ..."
      end
      
      
      # verify the required parameter 'extension_id' is set
      fail ArgumentError, "Missing the required parameter 'extension_id' when calling TelephonyProvidersEdgeApi.put_telephony_providers_edges_extension" if extension_id.nil?
      
      
      
      
      
      
      # verify the required parameter 'body' is set
      fail ArgumentError, "Missing the required parameter 'body' when calling TelephonyProvidersEdgeApi.put_telephony_providers_edges_extension" if body.nil?
      
      
      
      
      
      # resource path
      local_var_path = "/api/v2/telephony/providers/edges/extensions/{extensionId}".sub('{format}','json').sub('{' + 'extensionId' + '}', extension_id.to_s)

      # query parameters
      query_params = {}

      # header parameters
      header_params = {}

      # HTTP header 'Accept' (if needed)
      local_header_accept = ['application/json']
      local_header_accept_result = @api_client.select_header_accept(local_header_accept) and header_params['Accept'] = local_header_accept_result

      # HTTP header 'Content-Type'
      local_header_content_type = ['application/json']
      header_params['Content-Type'] = @api_client.select_header_content_type(local_header_content_type)

      # form parameters
      form_params = {}

      # http body (model)
      post_body = @api_client.object_to_http_body(body)
      
      auth_names = ['PureCloud Auth']
      data, status_code, headers = @api_client.call_api(:PUT, local_var_path,
        :header_params => header_params,
        :query_params => query_params,
        :form_params => form_params,
        :body => post_body,
        :auth_names => auth_names,
        :return_type => 'Extension')
      if @api_client.config.debugging
        @api_client.config.logger.debug "API called: TelephonyProvidersEdgeApi#put_telephony_providers_edges_extension\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
      end
      return data, status_code, headers
    end

    # Update an extension pool by ID
    # 
    # @param extension_pool_id Extension pool ID
    # @param body ExtensionPool
    # @param [Hash] opts the optional parameters
    # @return [ExtensionPool]
    def put_telephony_providers_edges_extensionpool(extension_pool_id, body, opts = {})
      data, _status_code, _headers = put_telephony_providers_edges_extensionpool_with_http_info(extension_pool_id, body, opts)
      return data
    end

    # Update an extension pool by ID
    # 
    # @param extension_pool_id Extension pool ID
    # @param body ExtensionPool
    # @param [Hash] opts the optional parameters
    # @return [Array<(ExtensionPool, Fixnum, Hash)>] ExtensionPool data, response status code and response headers
    def put_telephony_providers_edges_extensionpool_with_http_info(extension_pool_id, body, opts = {})
      if @api_client.config.debugging
        @api_client.config.logger.debug "Calling API: TelephonyProvidersEdgeApi.put_telephony_providers_edges_extensionpool ..."
      end
      
      
      # verify the required parameter 'extension_pool_id' is set
      fail ArgumentError, "Missing the required parameter 'extension_pool_id' when calling TelephonyProvidersEdgeApi.put_telephony_providers_edges_extensionpool" if extension_pool_id.nil?
      
      
      
      
      
      
      # verify the required parameter 'body' is set
      fail ArgumentError, "Missing the required parameter 'body' when calling TelephonyProvidersEdgeApi.put_telephony_providers_edges_extensionpool" if body.nil?
      
      
      
      
      
      # resource path
      local_var_path = "/api/v2/telephony/providers/edges/extensionpools/{extensionPoolId}".sub('{format}','json').sub('{' + 'extensionPoolId' + '}', extension_pool_id.to_s)

      # query parameters
      query_params = {}

      # header parameters
      header_params = {}

      # HTTP header 'Accept' (if needed)
      local_header_accept = ['application/json']
      local_header_accept_result = @api_client.select_header_accept(local_header_accept) and header_params['Accept'] = local_header_accept_result

      # HTTP header 'Content-Type'
      local_header_content_type = ['application/json']
      header_params['Content-Type'] = @api_client.select_header_content_type(local_header_content_type)

      # form parameters
      form_params = {}

      # http body (model)
      post_body = @api_client.object_to_http_body(body)
      
      auth_names = ['PureCloud Auth']
      data, status_code, headers = @api_client.call_api(:PUT, local_var_path,
        :header_params => header_params,
        :query_params => query_params,
        :form_params => form_params,
        :body => post_body,
        :auth_names => auth_names,
        :return_type => 'ExtensionPool')
      if @api_client.config.debugging
        @api_client.config.logger.debug "API called: TelephonyProvidersEdgeApi#put_telephony_providers_edges_extensionpool\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
      end
      return data, status_code, headers
    end

    # Update outbound route
    # 
    # @param outbound_route_id Outbound route ID
    # @param body OutboundRoute
    # @param [Hash] opts the optional parameters
    # @return [OutboundRoute]
    def put_telephony_providers_edges_outboundroute(outbound_route_id, body, opts = {})
      data, _status_code, _headers = put_telephony_providers_edges_outboundroute_with_http_info(outbound_route_id, body, opts)
      return data
    end

    # Update outbound route
    # 
    # @param outbound_route_id Outbound route ID
    # @param body OutboundRoute
    # @param [Hash] opts the optional parameters
    # @return [Array<(OutboundRoute, Fixnum, Hash)>] OutboundRoute data, response status code and response headers
    def put_telephony_providers_edges_outboundroute_with_http_info(outbound_route_id, body, opts = {})
      if @api_client.config.debugging
        @api_client.config.logger.debug "Calling API: TelephonyProvidersEdgeApi.put_telephony_providers_edges_outboundroute ..."
      end
      
      
      # verify the required parameter 'outbound_route_id' is set
      fail ArgumentError, "Missing the required parameter 'outbound_route_id' when calling TelephonyProvidersEdgeApi.put_telephony_providers_edges_outboundroute" if outbound_route_id.nil?
      
      
      
      
      
      
      # verify the required parameter 'body' is set
      fail ArgumentError, "Missing the required parameter 'body' when calling TelephonyProvidersEdgeApi.put_telephony_providers_edges_outboundroute" if body.nil?
      
      
      
      
      
      # resource path
      local_var_path = "/api/v2/telephony/providers/edges/outboundroutes/{outboundRouteId}".sub('{format}','json').sub('{' + 'outboundRouteId' + '}', outbound_route_id.to_s)

      # query parameters
      query_params = {}

      # header parameters
      header_params = {}

      # HTTP header 'Accept' (if needed)
      local_header_accept = ['application/json']
      local_header_accept_result = @api_client.select_header_accept(local_header_accept) and header_params['Accept'] = local_header_accept_result

      # HTTP header 'Content-Type'
      local_header_content_type = ['application/json']
      header_params['Content-Type'] = @api_client.select_header_content_type(local_header_content_type)

      # form parameters
      form_params = {}

      # http body (model)
      post_body = @api_client.object_to_http_body(body)
      
      auth_names = ['PureCloud Auth']
      data, status_code, headers = @api_client.call_api(:PUT, local_var_path,
        :header_params => header_params,
        :query_params => query_params,
        :form_params => form_params,
        :body => post_body,
        :auth_names => auth_names,
        :return_type => 'OutboundRoute')
      if @api_client.config.debugging
        @api_client.config.logger.debug "API called: TelephonyProvidersEdgeApi#put_telephony_providers_edges_outboundroute\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
      end
      return data, status_code, headers
    end

    # Update a Phone by ID
    # 
    # @param phone_id Phone ID
    # @param body Phone
    # @param [Hash] opts the optional parameters
    # @return [Phone]
    def put_telephony_providers_edges_phone(phone_id, body, opts = {})
      data, _status_code, _headers = put_telephony_providers_edges_phone_with_http_info(phone_id, body, opts)
      return data
    end

    # Update a Phone by ID
    # 
    # @param phone_id Phone ID
    # @param body Phone
    # @param [Hash] opts the optional parameters
    # @return [Array<(Phone, Fixnum, Hash)>] Phone data, response status code and response headers
    def put_telephony_providers_edges_phone_with_http_info(phone_id, body, opts = {})
      if @api_client.config.debugging
        @api_client.config.logger.debug "Calling API: TelephonyProvidersEdgeApi.put_telephony_providers_edges_phone ..."
      end
      
      
      # verify the required parameter 'phone_id' is set
      fail ArgumentError, "Missing the required parameter 'phone_id' when calling TelephonyProvidersEdgeApi.put_telephony_providers_edges_phone" if phone_id.nil?
      
      
      
      
      
      
      # verify the required parameter 'body' is set
      fail ArgumentError, "Missing the required parameter 'body' when calling TelephonyProvidersEdgeApi.put_telephony_providers_edges_phone" if body.nil?
      
      
      
      
      
      # resource path
      local_var_path = "/api/v2/telephony/providers/edges/phones/{phoneId}".sub('{format}','json').sub('{' + 'phoneId' + '}', phone_id.to_s)

      # query parameters
      query_params = {}

      # header parameters
      header_params = {}

      # HTTP header 'Accept' (if needed)
      local_header_accept = ['application/json']
      local_header_accept_result = @api_client.select_header_accept(local_header_accept) and header_params['Accept'] = local_header_accept_result

      # HTTP header 'Content-Type'
      local_header_content_type = ['application/json']
      header_params['Content-Type'] = @api_client.select_header_content_type(local_header_content_type)

      # form parameters
      form_params = {}

      # http body (model)
      post_body = @api_client.object_to_http_body(body)
      
      auth_names = ['PureCloud Auth']
      data, status_code, headers = @api_client.call_api(:PUT, local_var_path,
        :header_params => header_params,
        :query_params => query_params,
        :form_params => form_params,
        :body => post_body,
        :auth_names => auth_names,
        :return_type => 'Phone')
      if @api_client.config.debugging
        @api_client.config.logger.debug "API called: TelephonyProvidersEdgeApi#put_telephony_providers_edges_phone\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
      end
      return data, status_code, headers
    end

    # Update a Phone Base Settings by ID
    # 
    # @param phone_base_id Phone base ID
    # @param body Phone base settings
    # @param [Hash] opts the optional parameters
    # @return [PhoneBase]
    def put_telephony_providers_edges_phonebasesetting(phone_base_id, body, opts = {})
      data, _status_code, _headers = put_telephony_providers_edges_phonebasesetting_with_http_info(phone_base_id, body, opts)
      return data
    end

    # Update a Phone Base Settings by ID
    # 
    # @param phone_base_id Phone base ID
    # @param body Phone base settings
    # @param [Hash] opts the optional parameters
    # @return [Array<(PhoneBase, Fixnum, Hash)>] PhoneBase data, response status code and response headers
    def put_telephony_providers_edges_phonebasesetting_with_http_info(phone_base_id, body, opts = {})
      if @api_client.config.debugging
        @api_client.config.logger.debug "Calling API: TelephonyProvidersEdgeApi.put_telephony_providers_edges_phonebasesetting ..."
      end
      
      
      # verify the required parameter 'phone_base_id' is set
      fail ArgumentError, "Missing the required parameter 'phone_base_id' when calling TelephonyProvidersEdgeApi.put_telephony_providers_edges_phonebasesetting" if phone_base_id.nil?
      
      
      
      
      
      
      # verify the required parameter 'body' is set
      fail ArgumentError, "Missing the required parameter 'body' when calling TelephonyProvidersEdgeApi.put_telephony_providers_edges_phonebasesetting" if body.nil?
      
      
      
      
      
      # resource path
      local_var_path = "/api/v2/telephony/providers/edges/phonebasesettings/{phoneBaseId}".sub('{format}','json').sub('{' + 'phoneBaseId' + '}', phone_base_id.to_s)

      # query parameters
      query_params = {}

      # header parameters
      header_params = {}

      # HTTP header 'Accept' (if needed)
      local_header_accept = ['application/json']
      local_header_accept_result = @api_client.select_header_accept(local_header_accept) and header_params['Accept'] = local_header_accept_result

      # HTTP header 'Content-Type'
      local_header_content_type = ['application/json']
      header_params['Content-Type'] = @api_client.select_header_content_type(local_header_content_type)

      # form parameters
      form_params = {}

      # http body (model)
      post_body = @api_client.object_to_http_body(body)
      
      auth_names = ['PureCloud Auth']
      data, status_code, headers = @api_client.call_api(:PUT, local_var_path,
        :header_params => header_params,
        :query_params => query_params,
        :form_params => form_params,
        :body => post_body,
        :auth_names => auth_names,
        :return_type => 'PhoneBase')
      if @api_client.config.debugging
        @api_client.config.logger.debug "API called: TelephonyProvidersEdgeApi#put_telephony_providers_edges_phonebasesetting\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
      end
      return data, status_code, headers
    end

    # Update a Site by ID.
    # 
    # @param site_id Site ID
    # @param body Site
    # @param [Hash] opts the optional parameters
    # @return [Site]
    def put_telephony_providers_edges_site(site_id, body, opts = {})
      data, _status_code, _headers = put_telephony_providers_edges_site_with_http_info(site_id, body, opts)
      return data
    end

    # Update a Site by ID.
    # 
    # @param site_id Site ID
    # @param body Site
    # @param [Hash] opts the optional parameters
    # @return [Array<(Site, Fixnum, Hash)>] Site data, response status code and response headers
    def put_telephony_providers_edges_site_with_http_info(site_id, body, opts = {})
      if @api_client.config.debugging
        @api_client.config.logger.debug "Calling API: TelephonyProvidersEdgeApi.put_telephony_providers_edges_site ..."
      end
      
      
      # verify the required parameter 'site_id' is set
      fail ArgumentError, "Missing the required parameter 'site_id' when calling TelephonyProvidersEdgeApi.put_telephony_providers_edges_site" if site_id.nil?
      
      
      
      
      
      
      # verify the required parameter 'body' is set
      fail ArgumentError, "Missing the required parameter 'body' when calling TelephonyProvidersEdgeApi.put_telephony_providers_edges_site" if body.nil?
      
      
      
      
      
      # resource path
      local_var_path = "/api/v2/telephony/providers/edges/sites/{siteId}".sub('{format}','json').sub('{' + 'siteId' + '}', site_id.to_s)

      # query parameters
      query_params = {}

      # header parameters
      header_params = {}

      # HTTP header 'Accept' (if needed)
      local_header_accept = ['application/json']
      local_header_accept_result = @api_client.select_header_accept(local_header_accept) and header_params['Accept'] = local_header_accept_result

      # HTTP header 'Content-Type'
      local_header_content_type = ['application/json']
      header_params['Content-Type'] = @api_client.select_header_content_type(local_header_content_type)

      # form parameters
      form_params = {}

      # http body (model)
      post_body = @api_client.object_to_http_body(body)
      
      auth_names = ['PureCloud Auth']
      data, status_code, headers = @api_client.call_api(:PUT, local_var_path,
        :header_params => header_params,
        :query_params => query_params,
        :form_params => form_params,
        :body => post_body,
        :auth_names => auth_names,
        :return_type => 'Site')
      if @api_client.config.debugging
        @api_client.config.logger.debug "API called: TelephonyProvidersEdgeApi#put_telephony_providers_edges_site\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
      end
      return data, status_code, headers
    end

    # Update the list of Number Plans.
    # 
    # @param site_id Site ID
    # @param body List of number plans
    # @param [Hash] opts the optional parameters
    # @return [Array<NumberPlan>]
    def put_telephony_providers_edges_site_numberplans(site_id, body, opts = {})
      data, _status_code, _headers = put_telephony_providers_edges_site_numberplans_with_http_info(site_id, body, opts)
      return data
    end

    # Update the list of Number Plans.
    # 
    # @param site_id Site ID
    # @param body List of number plans
    # @param [Hash] opts the optional parameters
    # @return [Array<(Array<NumberPlan>, Fixnum, Hash)>] Array<NumberPlan> data, response status code and response headers
    def put_telephony_providers_edges_site_numberplans_with_http_info(site_id, body, opts = {})
      if @api_client.config.debugging
        @api_client.config.logger.debug "Calling API: TelephonyProvidersEdgeApi.put_telephony_providers_edges_site_numberplans ..."
      end
      
      
      # verify the required parameter 'site_id' is set
      fail ArgumentError, "Missing the required parameter 'site_id' when calling TelephonyProvidersEdgeApi.put_telephony_providers_edges_site_numberplans" if site_id.nil?
      
      
      
      
      
      
      # verify the required parameter 'body' is set
      fail ArgumentError, "Missing the required parameter 'body' when calling TelephonyProvidersEdgeApi.put_telephony_providers_edges_site_numberplans" if body.nil?
      
      
      
      
      
      # resource path
      local_var_path = "/api/v2/telephony/providers/edges/sites/{siteId}/numberplans".sub('{format}','json').sub('{' + 'siteId' + '}', site_id.to_s)

      # query parameters
      query_params = {}

      # header parameters
      header_params = {}

      # HTTP header 'Accept' (if needed)
      local_header_accept = ['application/json']
      local_header_accept_result = @api_client.select_header_accept(local_header_accept) and header_params['Accept'] = local_header_accept_result

      # HTTP header 'Content-Type'
      local_header_content_type = ['application/json']
      header_params['Content-Type'] = @api_client.select_header_content_type(local_header_content_type)

      # form parameters
      form_params = {}

      # http body (model)
      post_body = @api_client.object_to_http_body(body)
      
      auth_names = ['PureCloud Auth']
      data, status_code, headers = @api_client.call_api(:PUT, local_var_path,
        :header_params => header_params,
        :query_params => query_params,
        :form_params => form_params,
        :body => post_body,
        :auth_names => auth_names,
        :return_type => 'Array<NumberPlan>')
      if @api_client.config.debugging
        @api_client.config.logger.debug "API called: TelephonyProvidersEdgeApi#put_telephony_providers_edges_site_numberplans\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
      end
      return data, status_code, headers
    end

    # Update outbound route
    # 
    # @param site_id Site ID
    # @param outbound_route_id Outbound route ID
    # @param body OutboundRoute
    # @param [Hash] opts the optional parameters
    # @return [OutboundRouteBase]
    def put_telephony_providers_edges_site_outboundroute(site_id, outbound_route_id, body, opts = {})
      data, _status_code, _headers = put_telephony_providers_edges_site_outboundroute_with_http_info(site_id, outbound_route_id, body, opts)
      return data
    end

    # Update outbound route
    # 
    # @param site_id Site ID
    # @param outbound_route_id Outbound route ID
    # @param body OutboundRoute
    # @param [Hash] opts the optional parameters
    # @return [Array<(OutboundRouteBase, Fixnum, Hash)>] OutboundRouteBase data, response status code and response headers
    def put_telephony_providers_edges_site_outboundroute_with_http_info(site_id, outbound_route_id, body, opts = {})
      if @api_client.config.debugging
        @api_client.config.logger.debug "Calling API: TelephonyProvidersEdgeApi.put_telephony_providers_edges_site_outboundroute ..."
      end
      
      
      # verify the required parameter 'site_id' is set
      fail ArgumentError, "Missing the required parameter 'site_id' when calling TelephonyProvidersEdgeApi.put_telephony_providers_edges_site_outboundroute" if site_id.nil?
      
      
      
      
      
      
      # verify the required parameter 'outbound_route_id' is set
      fail ArgumentError, "Missing the required parameter 'outbound_route_id' when calling TelephonyProvidersEdgeApi.put_telephony_providers_edges_site_outboundroute" if outbound_route_id.nil?
      
      
      
      
      
      
      # verify the required parameter 'body' is set
      fail ArgumentError, "Missing the required parameter 'body' when calling TelephonyProvidersEdgeApi.put_telephony_providers_edges_site_outboundroute" if body.nil?
      
      
      
      
      
      # resource path
      local_var_path = "/api/v2/telephony/providers/edges/sites/{siteId}/outboundroutes/{outboundRouteId}".sub('{format}','json').sub('{' + 'siteId' + '}', site_id.to_s).sub('{' + 'outboundRouteId' + '}', outbound_route_id.to_s)

      # query parameters
      query_params = {}

      # header parameters
      header_params = {}

      # HTTP header 'Accept' (if needed)
      local_header_accept = ['application/json']
      local_header_accept_result = @api_client.select_header_accept(local_header_accept) and header_params['Accept'] = local_header_accept_result

      # HTTP header 'Content-Type'
      local_header_content_type = ['application/json']
      header_params['Content-Type'] = @api_client.select_header_content_type(local_header_content_type)

      # form parameters
      form_params = {}

      # http body (model)
      post_body = @api_client.object_to_http_body(body)
      
      auth_names = ['PureCloud Auth']
      data, status_code, headers = @api_client.call_api(:PUT, local_var_path,
        :header_params => header_params,
        :query_params => query_params,
        :form_params => form_params,
        :body => post_body,
        :auth_names => auth_names,
        :return_type => 'OutboundRouteBase')
      if @api_client.config.debugging
        @api_client.config.logger.debug "API called: TelephonyProvidersEdgeApi#put_telephony_providers_edges_site_outboundroute\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
      end
      return data, status_code, headers
    end

    # Update a Trunk Base Settings object by ID
    # 
    # @param trunk_base_settings_id Trunk Base ID
    # @param body Trunk base settings
    # @param [Hash] opts the optional parameters
    # @return [TrunkBase]
    def put_telephony_providers_edges_trunkbasesetting(trunk_base_settings_id, body, opts = {})
      data, _status_code, _headers = put_telephony_providers_edges_trunkbasesetting_with_http_info(trunk_base_settings_id, body, opts)
      return data
    end

    # Update a Trunk Base Settings object by ID
    # 
    # @param trunk_base_settings_id Trunk Base ID
    # @param body Trunk base settings
    # @param [Hash] opts the optional parameters
    # @return [Array<(TrunkBase, Fixnum, Hash)>] TrunkBase data, response status code and response headers
    def put_telephony_providers_edges_trunkbasesetting_with_http_info(trunk_base_settings_id, body, opts = {})
      if @api_client.config.debugging
        @api_client.config.logger.debug "Calling API: TelephonyProvidersEdgeApi.put_telephony_providers_edges_trunkbasesetting ..."
      end
      
      
      # verify the required parameter 'trunk_base_settings_id' is set
      fail ArgumentError, "Missing the required parameter 'trunk_base_settings_id' when calling TelephonyProvidersEdgeApi.put_telephony_providers_edges_trunkbasesetting" if trunk_base_settings_id.nil?
      
      
      
      
      
      
      # verify the required parameter 'body' is set
      fail ArgumentError, "Missing the required parameter 'body' when calling TelephonyProvidersEdgeApi.put_telephony_providers_edges_trunkbasesetting" if body.nil?
      
      
      
      
      
      # resource path
      local_var_path = "/api/v2/telephony/providers/edges/trunkbasesettings/{trunkBaseSettingsId}".sub('{format}','json').sub('{' + 'trunkBaseSettingsId' + '}', trunk_base_settings_id.to_s)

      # query parameters
      query_params = {}

      # header parameters
      header_params = {}

      # HTTP header 'Accept' (if needed)
      local_header_accept = ['application/json']
      local_header_accept_result = @api_client.select_header_accept(local_header_accept) and header_params['Accept'] = local_header_accept_result

      # HTTP header 'Content-Type'
      local_header_content_type = ['application/json']
      header_params['Content-Type'] = @api_client.select_header_content_type(local_header_content_type)

      # form parameters
      form_params = {}

      # http body (model)
      post_body = @api_client.object_to_http_body(body)
      
      auth_names = ['PureCloud Auth']
      data, status_code, headers = @api_client.call_api(:PUT, local_var_path,
        :header_params => header_params,
        :query_params => query_params,
        :form_params => form_params,
        :body => post_body,
        :auth_names => auth_names,
        :return_type => 'TrunkBase')
      if @api_client.config.debugging
        @api_client.config.logger.debug "API called: TelephonyProvidersEdgeApi#put_telephony_providers_edges_trunkbasesetting\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
      end
      return data, status_code, headers
    end
  end
end