=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 OutboundApi
    attr_accessor :api_client

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

    # Delete attempt limits
    # 
    # @param attempt_limits_id Attempt limits ID
    # @param [Hash] opts the optional parameters
    # @return [nil]
    def delete_outbound_attemptlimit(attempt_limits_id, opts = {})
      delete_outbound_attemptlimit_with_http_info(attempt_limits_id, opts)
      return nil
    end

    # Delete attempt limits
    # 
    # @param attempt_limits_id Attempt limits ID
    # @param [Hash] opts the optional parameters
    # @return [Array<(nil, Fixnum, Hash)>] nil, response status code and response headers
    def delete_outbound_attemptlimit_with_http_info(attempt_limits_id, opts = {})
      if @api_client.config.debugging
        @api_client.config.logger.debug "Calling API: OutboundApi.delete_outbound_attemptlimit ..."
      end
      
      
      # verify the required parameter 'attempt_limits_id' is set
      fail ArgumentError, "Missing the required parameter 'attempt_limits_id' when calling OutboundApi.delete_outbound_attemptlimit" if attempt_limits_id.nil?
      
      
      
      
      
      # resource path
      local_var_path = "/api/v2/outbound/attemptlimits/{attemptLimitsId}".sub('{format}','json').sub('{' + 'attemptLimitsId' + '}', attempt_limits_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: OutboundApi#delete_outbound_attemptlimit\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
      end
      return data, status_code, headers
    end

    # Delete callable time set
    # 
    # @param callable_time_set_id Callable Time Set ID
    # @param [Hash] opts the optional parameters
    # @return [nil]
    def delete_outbound_callabletimeset(callable_time_set_id, opts = {})
      delete_outbound_callabletimeset_with_http_info(callable_time_set_id, opts)
      return nil
    end

    # Delete callable time set
    # 
    # @param callable_time_set_id Callable Time Set ID
    # @param [Hash] opts the optional parameters
    # @return [Array<(nil, Fixnum, Hash)>] nil, response status code and response headers
    def delete_outbound_callabletimeset_with_http_info(callable_time_set_id, opts = {})
      if @api_client.config.debugging
        @api_client.config.logger.debug "Calling API: OutboundApi.delete_outbound_callabletimeset ..."
      end
      
      
      # verify the required parameter 'callable_time_set_id' is set
      fail ArgumentError, "Missing the required parameter 'callable_time_set_id' when calling OutboundApi.delete_outbound_callabletimeset" if callable_time_set_id.nil?
      
      
      
      
      
      # resource path
      local_var_path = "/api/v2/outbound/callabletimesets/{callableTimeSetId}".sub('{format}','json').sub('{' + 'callableTimeSetId' + '}', callable_time_set_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: OutboundApi#delete_outbound_callabletimeset\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
      end
      return data, status_code, headers
    end

    # Delete a dialer call analysis response set.
    # 
    # @param call_analysis_set_id Call Analysis Response Set ID
    # @param [Hash] opts the optional parameters
    # @return [nil]
    def delete_outbound_callanalysisresponseset(call_analysis_set_id, opts = {})
      delete_outbound_callanalysisresponseset_with_http_info(call_analysis_set_id, opts)
      return nil
    end

    # Delete a dialer call analysis response set.
    # 
    # @param call_analysis_set_id Call Analysis Response Set ID
    # @param [Hash] opts the optional parameters
    # @return [Array<(nil, Fixnum, Hash)>] nil, response status code and response headers
    def delete_outbound_callanalysisresponseset_with_http_info(call_analysis_set_id, opts = {})
      if @api_client.config.debugging
        @api_client.config.logger.debug "Calling API: OutboundApi.delete_outbound_callanalysisresponseset ..."
      end
      
      
      # verify the required parameter 'call_analysis_set_id' is set
      fail ArgumentError, "Missing the required parameter 'call_analysis_set_id' when calling OutboundApi.delete_outbound_callanalysisresponseset" if call_analysis_set_id.nil?
      
      
      
      
      
      # resource path
      local_var_path = "/api/v2/outbound/callanalysisresponsesets/{callAnalysisSetId}".sub('{format}','json').sub('{' + 'callAnalysisSetId' + '}', call_analysis_set_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: OutboundApi#delete_outbound_callanalysisresponseset\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
      end
      return data, status_code, headers
    end

    # Delete a campaign.
    # 
    # @param campaign_id Campaign ID
    # @param [Hash] opts the optional parameters
    # @return [Campaign]
    def delete_outbound_campaign(campaign_id, opts = {})
      data, _status_code, _headers = delete_outbound_campaign_with_http_info(campaign_id, opts)
      return data
    end

    # Delete a campaign.
    # 
    # @param campaign_id Campaign ID
    # @param [Hash] opts the optional parameters
    # @return [Array<(Campaign, Fixnum, Hash)>] Campaign data, response status code and response headers
    def delete_outbound_campaign_with_http_info(campaign_id, opts = {})
      if @api_client.config.debugging
        @api_client.config.logger.debug "Calling API: OutboundApi.delete_outbound_campaign ..."
      end
      
      
      # verify the required parameter 'campaign_id' is set
      fail ArgumentError, "Missing the required parameter 'campaign_id' when calling OutboundApi.delete_outbound_campaign" if campaign_id.nil?
      
      
      
      
      
      # resource path
      local_var_path = "/api/v2/outbound/campaigns/{campaignId}".sub('{format}','json').sub('{' + 'campaignId' + '}', campaign_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,
        :return_type => 'Campaign')
      if @api_client.config.debugging
        @api_client.config.logger.debug "API called: OutboundApi#delete_outbound_campaign\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
      end
      return data, status_code, headers
    end

    # Reset campaign progress and recycle the campaign
    # 
    # @param campaign_id Campaign ID
    # @param [Hash] opts the optional parameters
    # @return [nil]
    def delete_outbound_campaign_progress(campaign_id, opts = {})
      delete_outbound_campaign_progress_with_http_info(campaign_id, opts)
      return nil
    end

    # Reset campaign progress and recycle the campaign
    # 
    # @param campaign_id Campaign ID
    # @param [Hash] opts the optional parameters
    # @return [Array<(nil, Fixnum, Hash)>] nil, response status code and response headers
    def delete_outbound_campaign_progress_with_http_info(campaign_id, opts = {})
      if @api_client.config.debugging
        @api_client.config.logger.debug "Calling API: OutboundApi.delete_outbound_campaign_progress ..."
      end
      
      
      # verify the required parameter 'campaign_id' is set
      fail ArgumentError, "Missing the required parameter 'campaign_id' when calling OutboundApi.delete_outbound_campaign_progress" if campaign_id.nil?
      
      
      
      
      
      # resource path
      local_var_path = "/api/v2/outbound/campaigns/{campaignId}/progress".sub('{format}','json').sub('{' + 'campaignId' + '}', campaign_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: OutboundApi#delete_outbound_campaign_progress\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
      end
      return data, status_code, headers
    end

    # Delete Campaign Rule
    # 
    # @param campaign_rule_id Campaign Rule ID
    # @param [Hash] opts the optional parameters
    # @return [nil]
    def delete_outbound_campaignrule(campaign_rule_id, opts = {})
      delete_outbound_campaignrule_with_http_info(campaign_rule_id, opts)
      return nil
    end

    # Delete Campaign Rule
    # 
    # @param campaign_rule_id Campaign Rule ID
    # @param [Hash] opts the optional parameters
    # @return [Array<(nil, Fixnum, Hash)>] nil, response status code and response headers
    def delete_outbound_campaignrule_with_http_info(campaign_rule_id, opts = {})
      if @api_client.config.debugging
        @api_client.config.logger.debug "Calling API: OutboundApi.delete_outbound_campaignrule ..."
      end
      
      
      # verify the required parameter 'campaign_rule_id' is set
      fail ArgumentError, "Missing the required parameter 'campaign_rule_id' when calling OutboundApi.delete_outbound_campaignrule" if campaign_rule_id.nil?
      
      
      
      
      
      # resource path
      local_var_path = "/api/v2/outbound/campaignrules/{campaignRuleId}".sub('{format}','json').sub('{' + 'campaignRuleId' + '}', campaign_rule_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: OutboundApi#delete_outbound_campaignrule\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
      end
      return data, status_code, headers
    end

    # Delete a contact list.
    # 
    # @param contact_list_id ContactList ID
    # @param [Hash] opts the optional parameters
    # @return [nil]
    def delete_outbound_contactlist(contact_list_id, opts = {})
      delete_outbound_contactlist_with_http_info(contact_list_id, opts)
      return nil
    end

    # Delete a contact list.
    # 
    # @param contact_list_id ContactList ID
    # @param [Hash] opts the optional parameters
    # @return [Array<(nil, Fixnum, Hash)>] nil, response status code and response headers
    def delete_outbound_contactlist_with_http_info(contact_list_id, opts = {})
      if @api_client.config.debugging
        @api_client.config.logger.debug "Calling API: OutboundApi.delete_outbound_contactlist ..."
      end
      
      
      # verify the required parameter 'contact_list_id' is set
      fail ArgumentError, "Missing the required parameter 'contact_list_id' when calling OutboundApi.delete_outbound_contactlist" if contact_list_id.nil?
      
      
      
      
      
      # resource path
      local_var_path = "/api/v2/outbound/contactlists/{contactListId}".sub('{format}','json').sub('{' + 'contactListId' + '}', contact_list_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: OutboundApi#delete_outbound_contactlist\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
      end
      return data, status_code, headers
    end

    # Delete a contact.
    # 
    # @param contact_list_id Contact List ID
    # @param contact_id Contact ID
    # @param [Hash] opts the optional parameters
    # @return [nil]
    def delete_outbound_contactlist_contact(contact_list_id, contact_id, opts = {})
      delete_outbound_contactlist_contact_with_http_info(contact_list_id, contact_id, opts)
      return nil
    end

    # Delete a contact.
    # 
    # @param contact_list_id Contact List ID
    # @param contact_id Contact ID
    # @param [Hash] opts the optional parameters
    # @return [Array<(nil, Fixnum, Hash)>] nil, response status code and response headers
    def delete_outbound_contactlist_contact_with_http_info(contact_list_id, contact_id, opts = {})
      if @api_client.config.debugging
        @api_client.config.logger.debug "Calling API: OutboundApi.delete_outbound_contactlist_contact ..."
      end
      
      
      # verify the required parameter 'contact_list_id' is set
      fail ArgumentError, "Missing the required parameter 'contact_list_id' when calling OutboundApi.delete_outbound_contactlist_contact" if contact_list_id.nil?
      
      
      
      
      
      
      # verify the required parameter 'contact_id' is set
      fail ArgumentError, "Missing the required parameter 'contact_id' when calling OutboundApi.delete_outbound_contactlist_contact" if contact_id.nil?
      
      
      
      
      
      # resource path
      local_var_path = "/api/v2/outbound/contactlists/{contactListId}/contacts/{contactId}".sub('{format}','json').sub('{' + 'contactListId' + '}', contact_list_id.to_s).sub('{' + 'contactId' + '}', contact_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: OutboundApi#delete_outbound_contactlist_contact\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
      end
      return data, status_code, headers
    end

    # Delete contacts from a contact list.
    # 
    # @param contact_list_id Contact List ID
    # @param contact_ids ContactIds to delete.
    # @param [Hash] opts the optional parameters
    # @return [nil]
    def delete_outbound_contactlist_contacts(contact_list_id, contact_ids, opts = {})
      delete_outbound_contactlist_contacts_with_http_info(contact_list_id, contact_ids, opts)
      return nil
    end

    # Delete contacts from a contact list.
    # 
    # @param contact_list_id Contact List ID
    # @param contact_ids ContactIds to delete.
    # @param [Hash] opts the optional parameters
    # @return [Array<(nil, Fixnum, Hash)>] nil, response status code and response headers
    def delete_outbound_contactlist_contacts_with_http_info(contact_list_id, contact_ids, opts = {})
      if @api_client.config.debugging
        @api_client.config.logger.debug "Calling API: OutboundApi.delete_outbound_contactlist_contacts ..."
      end
      
      
      # verify the required parameter 'contact_list_id' is set
      fail ArgumentError, "Missing the required parameter 'contact_list_id' when calling OutboundApi.delete_outbound_contactlist_contacts" if contact_list_id.nil?
      
      
      
      
      
      
      # verify the required parameter 'contact_ids' is set
      fail ArgumentError, "Missing the required parameter 'contact_ids' when calling OutboundApi.delete_outbound_contactlist_contacts" if contact_ids.nil?
      
      
      
      
      
      # resource path
      local_var_path = "/api/v2/outbound/contactlists/{contactListId}/contacts".sub('{format}','json').sub('{' + 'contactListId' + '}', contact_list_id.to_s)

      # query parameters
      query_params = {}
      query_params[:'contactIds'] = @api_client.build_collection_param(contact_ids, :multi)

      # 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: OutboundApi#delete_outbound_contactlist_contacts\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
      end
      return data, status_code, headers
    end

    # Delete Contact List Filter
    # 
    # @param contact_list_filter_id Contact List Filter ID
    # @param [Hash] opts the optional parameters
    # @return [nil]
    def delete_outbound_contactlistfilter(contact_list_filter_id, opts = {})
      delete_outbound_contactlistfilter_with_http_info(contact_list_filter_id, opts)
      return nil
    end

    # Delete Contact List Filter
    # 
    # @param contact_list_filter_id Contact List Filter ID
    # @param [Hash] opts the optional parameters
    # @return [Array<(nil, Fixnum, Hash)>] nil, response status code and response headers
    def delete_outbound_contactlistfilter_with_http_info(contact_list_filter_id, opts = {})
      if @api_client.config.debugging
        @api_client.config.logger.debug "Calling API: OutboundApi.delete_outbound_contactlistfilter ..."
      end
      
      
      # verify the required parameter 'contact_list_filter_id' is set
      fail ArgumentError, "Missing the required parameter 'contact_list_filter_id' when calling OutboundApi.delete_outbound_contactlistfilter" if contact_list_filter_id.nil?
      
      
      
      
      
      # resource path
      local_var_path = "/api/v2/outbound/contactlistfilters/{contactListFilterId}".sub('{format}','json').sub('{' + 'contactListFilterId' + '}', contact_list_filter_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: OutboundApi#delete_outbound_contactlistfilter\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
      end
      return data, status_code, headers
    end

    # Delete multiple contact lists.
    # 
    # @param id contact list id(s) to delete
    # @param [Hash] opts the optional parameters
    # @return [nil]
    def delete_outbound_contactlists(id, opts = {})
      delete_outbound_contactlists_with_http_info(id, opts)
      return nil
    end

    # Delete multiple contact lists.
    # 
    # @param id contact list id(s) to delete
    # @param [Hash] opts the optional parameters
    # @return [Array<(nil, Fixnum, Hash)>] nil, response status code and response headers
    def delete_outbound_contactlists_with_http_info(id, opts = {})
      if @api_client.config.debugging
        @api_client.config.logger.debug "Calling API: OutboundApi.delete_outbound_contactlists ..."
      end
      
      
      # verify the required parameter 'id' is set
      fail ArgumentError, "Missing the required parameter 'id' when calling OutboundApi.delete_outbound_contactlists" if id.nil?
      
      
      
      
      
      # resource path
      local_var_path = "/api/v2/outbound/contactlists".sub('{format}','json')

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

      # 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: OutboundApi#delete_outbound_contactlists\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
      end
      return data, status_code, headers
    end

    # Delete dialer DNC list
    # 
    # @param dnc_list_id DncList ID
    # @param [Hash] opts the optional parameters
    # @return [nil]
    def delete_outbound_dnclist(dnc_list_id, opts = {})
      delete_outbound_dnclist_with_http_info(dnc_list_id, opts)
      return nil
    end

    # Delete dialer DNC list
    # 
    # @param dnc_list_id DncList ID
    # @param [Hash] opts the optional parameters
    # @return [Array<(nil, Fixnum, Hash)>] nil, response status code and response headers
    def delete_outbound_dnclist_with_http_info(dnc_list_id, opts = {})
      if @api_client.config.debugging
        @api_client.config.logger.debug "Calling API: OutboundApi.delete_outbound_dnclist ..."
      end
      
      
      # verify the required parameter 'dnc_list_id' is set
      fail ArgumentError, "Missing the required parameter 'dnc_list_id' when calling OutboundApi.delete_outbound_dnclist" if dnc_list_id.nil?
      
      
      
      
      
      # resource path
      local_var_path = "/api/v2/outbound/dnclists/{dncListId}".sub('{format}','json').sub('{' + 'dncListId' + '}', dnc_list_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: OutboundApi#delete_outbound_dnclist\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
      end
      return data, status_code, headers
    end

    # Delete a Rule set.
    # 
    # @param rule_set_id Rule Set ID
    # @param [Hash] opts the optional parameters
    # @return [nil]
    def delete_outbound_ruleset(rule_set_id, opts = {})
      delete_outbound_ruleset_with_http_info(rule_set_id, opts)
      return nil
    end

    # Delete a Rule set.
    # 
    # @param rule_set_id Rule Set ID
    # @param [Hash] opts the optional parameters
    # @return [Array<(nil, Fixnum, Hash)>] nil, response status code and response headers
    def delete_outbound_ruleset_with_http_info(rule_set_id, opts = {})
      if @api_client.config.debugging
        @api_client.config.logger.debug "Calling API: OutboundApi.delete_outbound_ruleset ..."
      end
      
      
      # verify the required parameter 'rule_set_id' is set
      fail ArgumentError, "Missing the required parameter 'rule_set_id' when calling OutboundApi.delete_outbound_ruleset" if rule_set_id.nil?
      
      
      
      
      
      # resource path
      local_var_path = "/api/v2/outbound/rulesets/{ruleSetId}".sub('{format}','json').sub('{' + 'ruleSetId' + '}', rule_set_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: OutboundApi#delete_outbound_ruleset\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
      end
      return data, status_code, headers
    end

    # Delete a dialer campaign schedule.
    # 
    # @param campaign_id Campaign ID
    # @param [Hash] opts the optional parameters
    # @return [nil]
    def delete_outbound_schedules_campaign(campaign_id, opts = {})
      delete_outbound_schedules_campaign_with_http_info(campaign_id, opts)
      return nil
    end

    # Delete a dialer campaign schedule.
    # 
    # @param campaign_id Campaign ID
    # @param [Hash] opts the optional parameters
    # @return [Array<(nil, Fixnum, Hash)>] nil, response status code and response headers
    def delete_outbound_schedules_campaign_with_http_info(campaign_id, opts = {})
      if @api_client.config.debugging
        @api_client.config.logger.debug "Calling API: OutboundApi.delete_outbound_schedules_campaign ..."
      end
      
      
      # verify the required parameter 'campaign_id' is set
      fail ArgumentError, "Missing the required parameter 'campaign_id' when calling OutboundApi.delete_outbound_schedules_campaign" if campaign_id.nil?
      
      
      
      
      
      # resource path
      local_var_path = "/api/v2/outbound/schedules/campaigns/{campaignId}".sub('{format}','json').sub('{' + 'campaignId' + '}', campaign_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: OutboundApi#delete_outbound_schedules_campaign\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
      end
      return data, status_code, headers
    end

    # Delete a dialer sequence schedule.
    # 
    # @param sequence_id Sequence ID
    # @param [Hash] opts the optional parameters
    # @return [nil]
    def delete_outbound_schedules_sequence(sequence_id, opts = {})
      delete_outbound_schedules_sequence_with_http_info(sequence_id, opts)
      return nil
    end

    # Delete a dialer sequence schedule.
    # 
    # @param sequence_id Sequence ID
    # @param [Hash] opts the optional parameters
    # @return [Array<(nil, Fixnum, Hash)>] nil, response status code and response headers
    def delete_outbound_schedules_sequence_with_http_info(sequence_id, opts = {})
      if @api_client.config.debugging
        @api_client.config.logger.debug "Calling API: OutboundApi.delete_outbound_schedules_sequence ..."
      end
      
      
      # verify the required parameter 'sequence_id' is set
      fail ArgumentError, "Missing the required parameter 'sequence_id' when calling OutboundApi.delete_outbound_schedules_sequence" if sequence_id.nil?
      
      
      
      
      
      # resource path
      local_var_path = "/api/v2/outbound/schedules/sequences/{sequenceId}".sub('{format}','json').sub('{' + 'sequenceId' + '}', sequence_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: OutboundApi#delete_outbound_schedules_sequence\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
      end
      return data, status_code, headers
    end

    # Delete a dialer campaign sequence.
    # 
    # @param sequence_id Campaign Sequence ID
    # @param [Hash] opts the optional parameters
    # @return [nil]
    def delete_outbound_sequence(sequence_id, opts = {})
      delete_outbound_sequence_with_http_info(sequence_id, opts)
      return nil
    end

    # Delete a dialer campaign sequence.
    # 
    # @param sequence_id Campaign Sequence ID
    # @param [Hash] opts the optional parameters
    # @return [Array<(nil, Fixnum, Hash)>] nil, response status code and response headers
    def delete_outbound_sequence_with_http_info(sequence_id, opts = {})
      if @api_client.config.debugging
        @api_client.config.logger.debug "Calling API: OutboundApi.delete_outbound_sequence ..."
      end
      
      
      # verify the required parameter 'sequence_id' is set
      fail ArgumentError, "Missing the required parameter 'sequence_id' when calling OutboundApi.delete_outbound_sequence" if sequence_id.nil?
      
      
      
      
      
      # resource path
      local_var_path = "/api/v2/outbound/sequences/{sequenceId}".sub('{format}','json').sub('{' + 'sequenceId' + '}', sequence_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: OutboundApi#delete_outbound_sequence\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
      end
      return data, status_code, headers
    end

    # Get attempt limits
    # 
    # @param attempt_limits_id Attempt limits ID
    # @param [Hash] opts the optional parameters
    # @return [AttemptLimits]
    def get_outbound_attemptlimit(attempt_limits_id, opts = {})
      data, _status_code, _headers = get_outbound_attemptlimit_with_http_info(attempt_limits_id, opts)
      return data
    end

    # Get attempt limits
    # 
    # @param attempt_limits_id Attempt limits ID
    # @param [Hash] opts the optional parameters
    # @return [Array<(AttemptLimits, Fixnum, Hash)>] AttemptLimits data, response status code and response headers
    def get_outbound_attemptlimit_with_http_info(attempt_limits_id, opts = {})
      if @api_client.config.debugging
        @api_client.config.logger.debug "Calling API: OutboundApi.get_outbound_attemptlimit ..."
      end
      
      
      # verify the required parameter 'attempt_limits_id' is set
      fail ArgumentError, "Missing the required parameter 'attempt_limits_id' when calling OutboundApi.get_outbound_attemptlimit" if attempt_limits_id.nil?
      
      
      
      
      
      # resource path
      local_var_path = "/api/v2/outbound/attemptlimits/{attemptLimitsId}".sub('{format}','json').sub('{' + 'attemptLimitsId' + '}', attempt_limits_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 => 'AttemptLimits')
      if @api_client.config.debugging
        @api_client.config.logger.debug "API called: OutboundApi#get_outbound_attemptlimit\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
      end
      return data, status_code, headers
    end

    # Query attempt limits list
    # 
    # @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] :filter_type Filter type (default to Prefix)
    # @option opts [String] :name Name
    # @option opts [String] :sort_by Sort by
    # @option opts [String] :sort_order Sort order (default to a)
    # @return [AttemptLimitsEntityListing]
    def get_outbound_attemptlimits(opts = {})
      data, _status_code, _headers = get_outbound_attemptlimits_with_http_info(opts)
      return data
    end

    # Query attempt limits list
    # 
    # @param [Hash] opts the optional parameters
    # @option opts [Integer] :page_size Page size
    # @option opts [Integer] :page_number Page number
    # @option opts [String] :filter_type Filter type
    # @option opts [String] :name Name
    # @option opts [String] :sort_by Sort by
    # @option opts [String] :sort_order Sort order
    # @return [Array<(AttemptLimitsEntityListing, Fixnum, Hash)>] AttemptLimitsEntityListing data, response status code and response headers
    def get_outbound_attemptlimits_with_http_info(opts = {})
      if @api_client.config.debugging
        @api_client.config.logger.debug "Calling API: OutboundApi.get_outbound_attemptlimits ..."
      end
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      if opts[:'filter_type'] && !['Equals', 'RegEx', 'Contains', 'Prefix', 'LessThan', 'LessThanEqualTo', 'GreaterThan', 'GreaterThanEqualTo', 'BeginsWith', 'EndsWith'].include?(opts[:'filter_type'])
        fail ArgumentError, 'invalid value for "filter_type", must be one of Equals, RegEx, Contains, Prefix, LessThan, LessThanEqualTo, GreaterThan, GreaterThanEqualTo, BeginsWith, EndsWith'
      end
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      if opts[:'sort_order'] && !['ascending', 'descending'].include?(opts[:'sort_order'])
        fail ArgumentError, 'invalid value for "sort_order", must be one of ascending, descending'
      end
      
      
      
      
      # resource path
      local_var_path = "/api/v2/outbound/attemptlimits".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[:'filterType'] = opts[:'filter_type'] if opts[:'filter_type']
      query_params[:'name'] = opts[:'name'] if opts[:'name']
      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 => 'AttemptLimitsEntityListing')
      if @api_client.config.debugging
        @api_client.config.logger.debug "API called: OutboundApi#get_outbound_attemptlimits\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
      end
      return data, status_code, headers
    end

    # Get callable time set
    # 
    # @param callable_time_set_id Callable Time Set ID
    # @param [Hash] opts the optional parameters
    # @return [CallableTimeSet]
    def get_outbound_callabletimeset(callable_time_set_id, opts = {})
      data, _status_code, _headers = get_outbound_callabletimeset_with_http_info(callable_time_set_id, opts)
      return data
    end

    # Get callable time set
    # 
    # @param callable_time_set_id Callable Time Set ID
    # @param [Hash] opts the optional parameters
    # @return [Array<(CallableTimeSet, Fixnum, Hash)>] CallableTimeSet data, response status code and response headers
    def get_outbound_callabletimeset_with_http_info(callable_time_set_id, opts = {})
      if @api_client.config.debugging
        @api_client.config.logger.debug "Calling API: OutboundApi.get_outbound_callabletimeset ..."
      end
      
      
      # verify the required parameter 'callable_time_set_id' is set
      fail ArgumentError, "Missing the required parameter 'callable_time_set_id' when calling OutboundApi.get_outbound_callabletimeset" if callable_time_set_id.nil?
      
      
      
      
      
      # resource path
      local_var_path = "/api/v2/outbound/callabletimesets/{callableTimeSetId}".sub('{format}','json').sub('{' + 'callableTimeSetId' + '}', callable_time_set_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 => 'CallableTimeSet')
      if @api_client.config.debugging
        @api_client.config.logger.debug "API called: OutboundApi#get_outbound_callabletimeset\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
      end
      return data, status_code, headers
    end

    # Query callable time set list
    # 
    # @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] :filter_type Filter type (default to Prefix)
    # @option opts [String] :name Name
    # @option opts [String] :sort_by Sort by
    # @option opts [String] :sort_order Sort order (default to a)
    # @return [CallableTimeSetEntityListing]
    def get_outbound_callabletimesets(opts = {})
      data, _status_code, _headers = get_outbound_callabletimesets_with_http_info(opts)
      return data
    end

    # Query callable time set list
    # 
    # @param [Hash] opts the optional parameters
    # @option opts [Integer] :page_size Page size
    # @option opts [Integer] :page_number Page number
    # @option opts [String] :filter_type Filter type
    # @option opts [String] :name Name
    # @option opts [String] :sort_by Sort by
    # @option opts [String] :sort_order Sort order
    # @return [Array<(CallableTimeSetEntityListing, Fixnum, Hash)>] CallableTimeSetEntityListing data, response status code and response headers
    def get_outbound_callabletimesets_with_http_info(opts = {})
      if @api_client.config.debugging
        @api_client.config.logger.debug "Calling API: OutboundApi.get_outbound_callabletimesets ..."
      end
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      if opts[:'filter_type'] && !['Equals', 'RegEx', 'Contains', 'Prefix', 'LessThan', 'LessThanEqualTo', 'GreaterThan', 'GreaterThanEqualTo', 'BeginsWith', 'EndsWith'].include?(opts[:'filter_type'])
        fail ArgumentError, 'invalid value for "filter_type", must be one of Equals, RegEx, Contains, Prefix, LessThan, LessThanEqualTo, GreaterThan, GreaterThanEqualTo, BeginsWith, EndsWith'
      end
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      if opts[:'sort_order'] && !['ascending', 'descending'].include?(opts[:'sort_order'])
        fail ArgumentError, 'invalid value for "sort_order", must be one of ascending, descending'
      end
      
      
      
      
      # resource path
      local_var_path = "/api/v2/outbound/callabletimesets".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[:'filterType'] = opts[:'filter_type'] if opts[:'filter_type']
      query_params[:'name'] = opts[:'name'] if opts[:'name']
      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 => 'CallableTimeSetEntityListing')
      if @api_client.config.debugging
        @api_client.config.logger.debug "API called: OutboundApi#get_outbound_callabletimesets\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
      end
      return data, status_code, headers
    end

    # Get a dialer call analysis response set.
    # 
    # @param call_analysis_set_id Call Analysis Response Set ID
    # @param [Hash] opts the optional parameters
    # @return [ResponseSet]
    def get_outbound_callanalysisresponseset(call_analysis_set_id, opts = {})
      data, _status_code, _headers = get_outbound_callanalysisresponseset_with_http_info(call_analysis_set_id, opts)
      return data
    end

    # Get a dialer call analysis response set.
    # 
    # @param call_analysis_set_id Call Analysis Response Set ID
    # @param [Hash] opts the optional parameters
    # @return [Array<(ResponseSet, Fixnum, Hash)>] ResponseSet data, response status code and response headers
    def get_outbound_callanalysisresponseset_with_http_info(call_analysis_set_id, opts = {})
      if @api_client.config.debugging
        @api_client.config.logger.debug "Calling API: OutboundApi.get_outbound_callanalysisresponseset ..."
      end
      
      
      # verify the required parameter 'call_analysis_set_id' is set
      fail ArgumentError, "Missing the required parameter 'call_analysis_set_id' when calling OutboundApi.get_outbound_callanalysisresponseset" if call_analysis_set_id.nil?
      
      
      
      
      
      # resource path
      local_var_path = "/api/v2/outbound/callanalysisresponsesets/{callAnalysisSetId}".sub('{format}','json').sub('{' + 'callAnalysisSetId' + '}', call_analysis_set_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 => 'ResponseSet')
      if @api_client.config.debugging
        @api_client.config.logger.debug "API called: OutboundApi#get_outbound_callanalysisresponseset\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
      end
      return data, status_code, headers
    end

    # Query a list of dialer call analysis response sets.
    # 
    # @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] :filter_type Filter type (default to Prefix)
    # @option opts [String] :name Name
    # @option opts [String] :sort_by Sort by
    # @option opts [String] :sort_order Sort order (default to a)
    # @return [ResponseSetEntityListing]
    def get_outbound_callanalysisresponsesets(opts = {})
      data, _status_code, _headers = get_outbound_callanalysisresponsesets_with_http_info(opts)
      return data
    end

    # Query a list of dialer call analysis response sets.
    # 
    # @param [Hash] opts the optional parameters
    # @option opts [Integer] :page_size Page size
    # @option opts [Integer] :page_number Page number
    # @option opts [String] :filter_type Filter type
    # @option opts [String] :name Name
    # @option opts [String] :sort_by Sort by
    # @option opts [String] :sort_order Sort order
    # @return [Array<(ResponseSetEntityListing, Fixnum, Hash)>] ResponseSetEntityListing data, response status code and response headers
    def get_outbound_callanalysisresponsesets_with_http_info(opts = {})
      if @api_client.config.debugging
        @api_client.config.logger.debug "Calling API: OutboundApi.get_outbound_callanalysisresponsesets ..."
      end
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      if opts[:'filter_type'] && !['Equals', 'RegEx', 'Contains', 'Prefix', 'LessThan', 'LessThanEqualTo', 'GreaterThan', 'GreaterThanEqualTo', 'BeginsWith', 'EndsWith'].include?(opts[:'filter_type'])
        fail ArgumentError, 'invalid value for "filter_type", must be one of Equals, RegEx, Contains, Prefix, LessThan, LessThanEqualTo, GreaterThan, GreaterThanEqualTo, BeginsWith, EndsWith'
      end
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      if opts[:'sort_order'] && !['ascending', 'descending'].include?(opts[:'sort_order'])
        fail ArgumentError, 'invalid value for "sort_order", must be one of ascending, descending'
      end
      
      
      
      
      # resource path
      local_var_path = "/api/v2/outbound/callanalysisresponsesets".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[:'filterType'] = opts[:'filter_type'] if opts[:'filter_type']
      query_params[:'name'] = opts[:'name'] if opts[:'name']
      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 => 'ResponseSetEntityListing')
      if @api_client.config.debugging
        @api_client.config.logger.debug "API called: OutboundApi#get_outbound_callanalysisresponsesets\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
      end
      return data, status_code, headers
    end

    # Get dialer campaign.
    # 
    # @param campaign_id Campaign ID
    # @param [Hash] opts the optional parameters
    # @return [Campaign]
    def get_outbound_campaign(campaign_id, opts = {})
      data, _status_code, _headers = get_outbound_campaign_with_http_info(campaign_id, opts)
      return data
    end

    # Get dialer campaign.
    # 
    # @param campaign_id Campaign ID
    # @param [Hash] opts the optional parameters
    # @return [Array<(Campaign, Fixnum, Hash)>] Campaign data, response status code and response headers
    def get_outbound_campaign_with_http_info(campaign_id, opts = {})
      if @api_client.config.debugging
        @api_client.config.logger.debug "Calling API: OutboundApi.get_outbound_campaign ..."
      end
      
      
      # verify the required parameter 'campaign_id' is set
      fail ArgumentError, "Missing the required parameter 'campaign_id' when calling OutboundApi.get_outbound_campaign" if campaign_id.nil?
      
      
      
      
      
      # resource path
      local_var_path = "/api/v2/outbound/campaigns/{campaignId}".sub('{format}','json').sub('{' + 'campaignId' + '}', campaign_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 => 'Campaign')
      if @api_client.config.debugging
        @api_client.config.logger.debug "API called: OutboundApi#get_outbound_campaign\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
      end
      return data, status_code, headers
    end

    # Get campaign diagnostics
    # 
    # @param campaign_id Campaign ID
    # @param [Hash] opts the optional parameters
    # @return [CampaignDiagnostics]
    def get_outbound_campaign_diagnostics(campaign_id, opts = {})
      data, _status_code, _headers = get_outbound_campaign_diagnostics_with_http_info(campaign_id, opts)
      return data
    end

    # Get campaign diagnostics
    # 
    # @param campaign_id Campaign ID
    # @param [Hash] opts the optional parameters
    # @return [Array<(CampaignDiagnostics, Fixnum, Hash)>] CampaignDiagnostics data, response status code and response headers
    def get_outbound_campaign_diagnostics_with_http_info(campaign_id, opts = {})
      if @api_client.config.debugging
        @api_client.config.logger.debug "Calling API: OutboundApi.get_outbound_campaign_diagnostics ..."
      end
      
      
      # verify the required parameter 'campaign_id' is set
      fail ArgumentError, "Missing the required parameter 'campaign_id' when calling OutboundApi.get_outbound_campaign_diagnostics" if campaign_id.nil?
      
      
      
      
      
      # resource path
      local_var_path = "/api/v2/outbound/campaigns/{campaignId}/diagnostics".sub('{format}','json').sub('{' + 'campaignId' + '}', campaign_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 => 'CampaignDiagnostics')
      if @api_client.config.debugging
        @api_client.config.logger.debug "API called: OutboundApi#get_outbound_campaign_diagnostics\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
      end
      return data, status_code, headers
    end

    # Get dialer campaign interactions.
    # 
    # @param campaign_id Campaign ID
    # @param [Hash] opts the optional parameters
    # @return [CampaignInteractions]
    def get_outbound_campaign_interactions(campaign_id, opts = {})
      data, _status_code, _headers = get_outbound_campaign_interactions_with_http_info(campaign_id, opts)
      return data
    end

    # Get dialer campaign interactions.
    # 
    # @param campaign_id Campaign ID
    # @param [Hash] opts the optional parameters
    # @return [Array<(CampaignInteractions, Fixnum, Hash)>] CampaignInteractions data, response status code and response headers
    def get_outbound_campaign_interactions_with_http_info(campaign_id, opts = {})
      if @api_client.config.debugging
        @api_client.config.logger.debug "Calling API: OutboundApi.get_outbound_campaign_interactions ..."
      end
      
      
      # verify the required parameter 'campaign_id' is set
      fail ArgumentError, "Missing the required parameter 'campaign_id' when calling OutboundApi.get_outbound_campaign_interactions" if campaign_id.nil?
      
      
      
      
      
      # resource path
      local_var_path = "/api/v2/outbound/campaigns/{campaignId}/interactions".sub('{format}','json').sub('{' + 'campaignId' + '}', campaign_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 => 'CampaignInteractions')
      if @api_client.config.debugging
        @api_client.config.logger.debug "API called: OutboundApi#get_outbound_campaign_interactions\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
      end
      return data, status_code, headers
    end

    # Get campaign progress
    # 
    # @param campaign_id Campaign ID
    # @param [Hash] opts the optional parameters
    # @return [CampaignProgress]
    def get_outbound_campaign_progress(campaign_id, opts = {})
      data, _status_code, _headers = get_outbound_campaign_progress_with_http_info(campaign_id, opts)
      return data
    end

    # Get campaign progress
    # 
    # @param campaign_id Campaign ID
    # @param [Hash] opts the optional parameters
    # @return [Array<(CampaignProgress, Fixnum, Hash)>] CampaignProgress data, response status code and response headers
    def get_outbound_campaign_progress_with_http_info(campaign_id, opts = {})
      if @api_client.config.debugging
        @api_client.config.logger.debug "Calling API: OutboundApi.get_outbound_campaign_progress ..."
      end
      
      
      # verify the required parameter 'campaign_id' is set
      fail ArgumentError, "Missing the required parameter 'campaign_id' when calling OutboundApi.get_outbound_campaign_progress" if campaign_id.nil?
      
      
      
      
      
      # resource path
      local_var_path = "/api/v2/outbound/campaigns/{campaignId}/progress".sub('{format}','json').sub('{' + 'campaignId' + '}', campaign_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 => 'CampaignProgress')
      if @api_client.config.debugging
        @api_client.config.logger.debug "API called: OutboundApi#get_outbound_campaign_progress\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
      end
      return data, status_code, headers
    end

    # Get statistics about a Dialer Campaign
    # 
    # @param campaign_id Campaign ID
    # @param [Hash] opts the optional parameters
    # @return [CampaignStats]
    def get_outbound_campaign_stats(campaign_id, opts = {})
      data, _status_code, _headers = get_outbound_campaign_stats_with_http_info(campaign_id, opts)
      return data
    end

    # Get statistics about a Dialer Campaign
    # 
    # @param campaign_id Campaign ID
    # @param [Hash] opts the optional parameters
    # @return [Array<(CampaignStats, Fixnum, Hash)>] CampaignStats data, response status code and response headers
    def get_outbound_campaign_stats_with_http_info(campaign_id, opts = {})
      if @api_client.config.debugging
        @api_client.config.logger.debug "Calling API: OutboundApi.get_outbound_campaign_stats ..."
      end
      
      
      # verify the required parameter 'campaign_id' is set
      fail ArgumentError, "Missing the required parameter 'campaign_id' when calling OutboundApi.get_outbound_campaign_stats" if campaign_id.nil?
      
      
      
      
      
      # resource path
      local_var_path = "/api/v2/outbound/campaigns/{campaignId}/stats".sub('{format}','json').sub('{' + 'campaignId' + '}', campaign_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 => 'CampaignStats')
      if @api_client.config.debugging
        @api_client.config.logger.debug "API called: OutboundApi#get_outbound_campaign_stats\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
      end
      return data, status_code, headers
    end

    # Get Campaign Rule
    # 
    # @param campaign_rule_id Campaign Rule ID
    # @param [Hash] opts the optional parameters
    # @return [CampaignRule]
    def get_outbound_campaignrule(campaign_rule_id, opts = {})
      data, _status_code, _headers = get_outbound_campaignrule_with_http_info(campaign_rule_id, opts)
      return data
    end

    # Get Campaign Rule
    # 
    # @param campaign_rule_id Campaign Rule ID
    # @param [Hash] opts the optional parameters
    # @return [Array<(CampaignRule, Fixnum, Hash)>] CampaignRule data, response status code and response headers
    def get_outbound_campaignrule_with_http_info(campaign_rule_id, opts = {})
      if @api_client.config.debugging
        @api_client.config.logger.debug "Calling API: OutboundApi.get_outbound_campaignrule ..."
      end
      
      
      # verify the required parameter 'campaign_rule_id' is set
      fail ArgumentError, "Missing the required parameter 'campaign_rule_id' when calling OutboundApi.get_outbound_campaignrule" if campaign_rule_id.nil?
      
      
      
      
      
      # resource path
      local_var_path = "/api/v2/outbound/campaignrules/{campaignRuleId}".sub('{format}','json').sub('{' + 'campaignRuleId' + '}', campaign_rule_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 => 'CampaignRule')
      if @api_client.config.debugging
        @api_client.config.logger.debug "API called: OutboundApi#get_outbound_campaignrule\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
      end
      return data, status_code, headers
    end

    # Query Campaign Rule list
    # 
    # @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] :filter_type Filter type (default to Prefix)
    # @option opts [String] :name Name
    # @option opts [String] :sort_by Sort by
    # @option opts [String] :sort_order Sort order (default to a)
    # @return [CampaignRuleEntityListing]
    def get_outbound_campaignrules(opts = {})
      data, _status_code, _headers = get_outbound_campaignrules_with_http_info(opts)
      return data
    end

    # Query Campaign Rule list
    # 
    # @param [Hash] opts the optional parameters
    # @option opts [Integer] :page_size Page size
    # @option opts [Integer] :page_number Page number
    # @option opts [String] :filter_type Filter type
    # @option opts [String] :name Name
    # @option opts [String] :sort_by Sort by
    # @option opts [String] :sort_order Sort order
    # @return [Array<(CampaignRuleEntityListing, Fixnum, Hash)>] CampaignRuleEntityListing data, response status code and response headers
    def get_outbound_campaignrules_with_http_info(opts = {})
      if @api_client.config.debugging
        @api_client.config.logger.debug "Calling API: OutboundApi.get_outbound_campaignrules ..."
      end
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      if opts[:'filter_type'] && !['Equals', 'RegEx', 'Contains', 'Prefix', 'LessThan', 'LessThanEqualTo', 'GreaterThan', 'GreaterThanEqualTo', 'BeginsWith', 'EndsWith'].include?(opts[:'filter_type'])
        fail ArgumentError, 'invalid value for "filter_type", must be one of Equals, RegEx, Contains, Prefix, LessThan, LessThanEqualTo, GreaterThan, GreaterThanEqualTo, BeginsWith, EndsWith'
      end
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      if opts[:'sort_order'] && !['ascending', 'descending'].include?(opts[:'sort_order'])
        fail ArgumentError, 'invalid value for "sort_order", must be one of ascending, descending'
      end
      
      
      
      
      # resource path
      local_var_path = "/api/v2/outbound/campaignrules".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[:'filterType'] = opts[:'filter_type'] if opts[:'filter_type']
      query_params[:'name'] = opts[:'name'] if opts[:'name']
      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 => 'CampaignRuleEntityListing')
      if @api_client.config.debugging
        @api_client.config.logger.debug "API called: OutboundApi#get_outbound_campaignrules\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
      end
      return data, status_code, headers
    end

    # Query a list of dialer campaigns.
    # 
    # @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] :filter_type Filter type (default to Prefix)
    # @option opts [String] :name Name
    # @option opts [String] :contact_list_id Contact List ID
    # @option opts [String] :dnc_list_id DNC list ID
    # @option opts [String] :distribution_queue_id Distribution queue ID
    # @option opts [String] :edge_group_id Edge group ID
    # @option opts [String] :call_analysis_response_set_id Call analysis response set ID
    # @option opts [String] :sort_by Sort by
    # @option opts [String] :sort_order Sort order (default to a)
    # @return [CampaignEntityListing]
    def get_outbound_campaigns(opts = {})
      data, _status_code, _headers = get_outbound_campaigns_with_http_info(opts)
      return data
    end

    # Query a list of dialer campaigns.
    # 
    # @param [Hash] opts the optional parameters
    # @option opts [Integer] :page_size Page size
    # @option opts [Integer] :page_number Page number
    # @option opts [String] :filter_type Filter type
    # @option opts [String] :name Name
    # @option opts [String] :contact_list_id Contact List ID
    # @option opts [String] :dnc_list_id DNC list ID
    # @option opts [String] :distribution_queue_id Distribution queue ID
    # @option opts [String] :edge_group_id Edge group ID
    # @option opts [String] :call_analysis_response_set_id Call analysis response set ID
    # @option opts [String] :sort_by Sort by
    # @option opts [String] :sort_order Sort order
    # @return [Array<(CampaignEntityListing, Fixnum, Hash)>] CampaignEntityListing data, response status code and response headers
    def get_outbound_campaigns_with_http_info(opts = {})
      if @api_client.config.debugging
        @api_client.config.logger.debug "Calling API: OutboundApi.get_outbound_campaigns ..."
      end
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      if opts[:'filter_type'] && !['Equals', 'RegEx', 'Contains', 'Prefix', 'LessThan', 'LessThanEqualTo', 'GreaterThan', 'GreaterThanEqualTo', 'BeginsWith', 'EndsWith'].include?(opts[:'filter_type'])
        fail ArgumentError, 'invalid value for "filter_type", must be one of Equals, RegEx, Contains, Prefix, LessThan, LessThanEqualTo, GreaterThan, GreaterThanEqualTo, BeginsWith, EndsWith'
      end
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      if opts[:'sort_order'] && !['ascending', 'descending'].include?(opts[:'sort_order'])
        fail ArgumentError, 'invalid value for "sort_order", must be one of ascending, descending'
      end
      
      
      
      
      # resource path
      local_var_path = "/api/v2/outbound/campaigns".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[:'filterType'] = opts[:'filter_type'] if opts[:'filter_type']
      query_params[:'name'] = opts[:'name'] if opts[:'name']
      query_params[:'contactListId'] = opts[:'contact_list_id'] if opts[:'contact_list_id']
      query_params[:'dncListId'] = opts[:'dnc_list_id'] if opts[:'dnc_list_id']
      query_params[:'distributionQueueId'] = opts[:'distribution_queue_id'] if opts[:'distribution_queue_id']
      query_params[:'edgeGroupId'] = opts[:'edge_group_id'] if opts[:'edge_group_id']
      query_params[:'callAnalysisResponseSetId'] = opts[:'call_analysis_response_set_id'] if opts[:'call_analysis_response_set_id']
      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 => 'CampaignEntityListing')
      if @api_client.config.debugging
        @api_client.config.logger.debug "API called: OutboundApi#get_outbound_campaigns\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
      end
      return data, status_code, headers
    end

    # Get a dialer contact list.
    # 
    # @param contact_list_id ContactList ID
    # @param [Hash] opts the optional parameters
    # @option opts [BOOLEAN] :include_import_status Import status (default to false)
    # @option opts [BOOLEAN] :include_size Include size (default to false)
    # @return [ContactList]
    def get_outbound_contactlist(contact_list_id, opts = {})
      data, _status_code, _headers = get_outbound_contactlist_with_http_info(contact_list_id, opts)
      return data
    end

    # Get a dialer contact list.
    # 
    # @param contact_list_id ContactList ID
    # @param [Hash] opts the optional parameters
    # @option opts [BOOLEAN] :include_import_status Import status
    # @option opts [BOOLEAN] :include_size Include size
    # @return [Array<(ContactList, Fixnum, Hash)>] ContactList data, response status code and response headers
    def get_outbound_contactlist_with_http_info(contact_list_id, opts = {})
      if @api_client.config.debugging
        @api_client.config.logger.debug "Calling API: OutboundApi.get_outbound_contactlist ..."
      end
      
      
      # verify the required parameter 'contact_list_id' is set
      fail ArgumentError, "Missing the required parameter 'contact_list_id' when calling OutboundApi.get_outbound_contactlist" if contact_list_id.nil?
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      # resource path
      local_var_path = "/api/v2/outbound/contactlists/{contactListId}".sub('{format}','json').sub('{' + 'contactListId' + '}', contact_list_id.to_s)

      # query parameters
      query_params = {}
      query_params[:'includeImportStatus'] = opts[:'include_import_status'] if opts[:'include_import_status']
      query_params[:'includeSize'] = opts[:'include_size'] if opts[:'include_size']

      # 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 => 'ContactList')
      if @api_client.config.debugging
        @api_client.config.logger.debug "API called: OutboundApi#get_outbound_contactlist\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
      end
      return data, status_code, headers
    end

    # Get a contact.
    # 
    # @param contact_list_id Contact List ID
    # @param contact_id Contact ID
    # @param [Hash] opts the optional parameters
    # @return [DialerContact]
    def get_outbound_contactlist_contact(contact_list_id, contact_id, opts = {})
      data, _status_code, _headers = get_outbound_contactlist_contact_with_http_info(contact_list_id, contact_id, opts)
      return data
    end

    # Get a contact.
    # 
    # @param contact_list_id Contact List ID
    # @param contact_id Contact ID
    # @param [Hash] opts the optional parameters
    # @return [Array<(DialerContact, Fixnum, Hash)>] DialerContact data, response status code and response headers
    def get_outbound_contactlist_contact_with_http_info(contact_list_id, contact_id, opts = {})
      if @api_client.config.debugging
        @api_client.config.logger.debug "Calling API: OutboundApi.get_outbound_contactlist_contact ..."
      end
      
      
      # verify the required parameter 'contact_list_id' is set
      fail ArgumentError, "Missing the required parameter 'contact_list_id' when calling OutboundApi.get_outbound_contactlist_contact" if contact_list_id.nil?
      
      
      
      
      
      
      # verify the required parameter 'contact_id' is set
      fail ArgumentError, "Missing the required parameter 'contact_id' when calling OutboundApi.get_outbound_contactlist_contact" if contact_id.nil?
      
      
      
      
      
      # resource path
      local_var_path = "/api/v2/outbound/contactlists/{contactListId}/contacts/{contactId}".sub('{format}','json').sub('{' + 'contactListId' + '}', contact_list_id.to_s).sub('{' + 'contactId' + '}', contact_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 => 'DialerContact')
      if @api_client.config.debugging
        @api_client.config.logger.debug "API called: OutboundApi#get_outbound_contactlist_contact\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
      end
      return data, status_code, headers
    end

    # Get the URI of a contact list export.
    # 
    # @param contact_list_id ContactList ID
    # @param [Hash] opts the optional parameters
    # @option opts [String] :download Redirect to download uri (default to false)
    # @return [ExportUri]
    def get_outbound_contactlist_export(contact_list_id, opts = {})
      data, _status_code, _headers = get_outbound_contactlist_export_with_http_info(contact_list_id, opts)
      return data
    end

    # Get the URI of a contact list export.
    # 
    # @param contact_list_id ContactList ID
    # @param [Hash] opts the optional parameters
    # @option opts [String] :download Redirect to download uri
    # @return [Array<(ExportUri, Fixnum, Hash)>] ExportUri data, response status code and response headers
    def get_outbound_contactlist_export_with_http_info(contact_list_id, opts = {})
      if @api_client.config.debugging
        @api_client.config.logger.debug "Calling API: OutboundApi.get_outbound_contactlist_export ..."
      end
      
      
      # verify the required parameter 'contact_list_id' is set
      fail ArgumentError, "Missing the required parameter 'contact_list_id' when calling OutboundApi.get_outbound_contactlist_export" if contact_list_id.nil?
      
      
      
      
      
      
      
      
      
      
      
      # resource path
      local_var_path = "/api/v2/outbound/contactlists/{contactListId}/export".sub('{format}','json').sub('{' + 'contactListId' + '}', contact_list_id.to_s)

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

      # 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 => 'ExportUri')
      if @api_client.config.debugging
        @api_client.config.logger.debug "API called: OutboundApi#get_outbound_contactlist_export\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
      end
      return data, status_code, headers
    end

    # Get dialer contactList import status.
    # 
    # @param contact_list_id ContactList ID
    # @param [Hash] opts the optional parameters
    # @return [ImportStatus]
    def get_outbound_contactlist_importstatus(contact_list_id, opts = {})
      data, _status_code, _headers = get_outbound_contactlist_importstatus_with_http_info(contact_list_id, opts)
      return data
    end

    # Get dialer contactList import status.
    # 
    # @param contact_list_id ContactList ID
    # @param [Hash] opts the optional parameters
    # @return [Array<(ImportStatus, Fixnum, Hash)>] ImportStatus data, response status code and response headers
    def get_outbound_contactlist_importstatus_with_http_info(contact_list_id, opts = {})
      if @api_client.config.debugging
        @api_client.config.logger.debug "Calling API: OutboundApi.get_outbound_contactlist_importstatus ..."
      end
      
      
      # verify the required parameter 'contact_list_id' is set
      fail ArgumentError, "Missing the required parameter 'contact_list_id' when calling OutboundApi.get_outbound_contactlist_importstatus" if contact_list_id.nil?
      
      
      
      
      
      # resource path
      local_var_path = "/api/v2/outbound/contactlists/{contactListId}/importstatus".sub('{format}','json').sub('{' + 'contactListId' + '}', contact_list_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 => 'ImportStatus')
      if @api_client.config.debugging
        @api_client.config.logger.debug "API called: OutboundApi#get_outbound_contactlist_importstatus\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
      end
      return data, status_code, headers
    end

    # Get Contact list filter
    # 
    # @param contact_list_filter_id Contact List Filter ID
    # @param [Hash] opts the optional parameters
    # @return [ContactListFilter]
    def get_outbound_contactlistfilter(contact_list_filter_id, opts = {})
      data, _status_code, _headers = get_outbound_contactlistfilter_with_http_info(contact_list_filter_id, opts)
      return data
    end

    # Get Contact list filter
    # 
    # @param contact_list_filter_id Contact List Filter ID
    # @param [Hash] opts the optional parameters
    # @return [Array<(ContactListFilter, Fixnum, Hash)>] ContactListFilter data, response status code and response headers
    def get_outbound_contactlistfilter_with_http_info(contact_list_filter_id, opts = {})
      if @api_client.config.debugging
        @api_client.config.logger.debug "Calling API: OutboundApi.get_outbound_contactlistfilter ..."
      end
      
      
      # verify the required parameter 'contact_list_filter_id' is set
      fail ArgumentError, "Missing the required parameter 'contact_list_filter_id' when calling OutboundApi.get_outbound_contactlistfilter" if contact_list_filter_id.nil?
      
      
      
      
      
      # resource path
      local_var_path = "/api/v2/outbound/contactlistfilters/{contactListFilterId}".sub('{format}','json').sub('{' + 'contactListFilterId' + '}', contact_list_filter_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 => 'ContactListFilter')
      if @api_client.config.debugging
        @api_client.config.logger.debug "API called: OutboundApi#get_outbound_contactlistfilter\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
      end
      return data, status_code, headers
    end

    # Query Contact list filters
    # 
    # @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] :filter_type Filter type (default to Prefix)
    # @option opts [String] :name Name
    # @option opts [String] :sort_by Sort by
    # @option opts [String] :sort_order Sort order (default to a)
    # @option opts [String] :contact_list_id Contact List ID
    # @return [ContactListFilterEntityListing]
    def get_outbound_contactlistfilters(opts = {})
      data, _status_code, _headers = get_outbound_contactlistfilters_with_http_info(opts)
      return data
    end

    # Query Contact list filters
    # 
    # @param [Hash] opts the optional parameters
    # @option opts [Integer] :page_size Page size
    # @option opts [Integer] :page_number Page number
    # @option opts [String] :filter_type Filter type
    # @option opts [String] :name Name
    # @option opts [String] :sort_by Sort by
    # @option opts [String] :sort_order Sort order
    # @option opts [String] :contact_list_id Contact List ID
    # @return [Array<(ContactListFilterEntityListing, Fixnum, Hash)>] ContactListFilterEntityListing data, response status code and response headers
    def get_outbound_contactlistfilters_with_http_info(opts = {})
      if @api_client.config.debugging
        @api_client.config.logger.debug "Calling API: OutboundApi.get_outbound_contactlistfilters ..."
      end
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      if opts[:'filter_type'] && !['Equals', 'RegEx', 'Contains', 'Prefix', 'LessThan', 'LessThanEqualTo', 'GreaterThan', 'GreaterThanEqualTo', 'BeginsWith', 'EndsWith'].include?(opts[:'filter_type'])
        fail ArgumentError, 'invalid value for "filter_type", must be one of Equals, RegEx, Contains, Prefix, LessThan, LessThanEqualTo, GreaterThan, GreaterThanEqualTo, BeginsWith, EndsWith'
      end
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      if opts[:'sort_order'] && !['ascending', 'descending'].include?(opts[:'sort_order'])
        fail ArgumentError, 'invalid value for "sort_order", must be one of ascending, descending'
      end
      
      
      
      
      
      
      
      
      
      
      # resource path
      local_var_path = "/api/v2/outbound/contactlistfilters".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[:'filterType'] = opts[:'filter_type'] if opts[:'filter_type']
      query_params[:'name'] = opts[:'name'] if opts[:'name']
      query_params[:'sortBy'] = opts[:'sort_by'] if opts[:'sort_by']
      query_params[:'sortOrder'] = opts[:'sort_order'] if opts[:'sort_order']
      query_params[:'contactListId'] = opts[:'contact_list_id'] if opts[:'contact_list_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 => 'ContactListFilterEntityListing')
      if @api_client.config.debugging
        @api_client.config.logger.debug "API called: OutboundApi#get_outbound_contactlistfilters\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
      end
      return data, status_code, headers
    end

    # Query a list of contact lists.
    # 
    # @param [Hash] opts the optional parameters
    # @option opts [BOOLEAN] :include_import_status Include import status (default to false)
    # @option opts [BOOLEAN] :include_size Include size (default to false)
    # @option opts [Integer] :page_size Page size (default to 25)
    # @option opts [Integer] :page_number Page number (default to 1)
    # @option opts [String] :filter_type Filter type (default to Prefix)
    # @option opts [String] :name Name
    # @option opts [String] :sort_by Sort by
    # @option opts [String] :sort_order Sort order (default to a)
    # @return [ContactListEntityListing]
    def get_outbound_contactlists(opts = {})
      data, _status_code, _headers = get_outbound_contactlists_with_http_info(opts)
      return data
    end

    # Query a list of contact lists.
    # 
    # @param [Hash] opts the optional parameters
    # @option opts [BOOLEAN] :include_import_status Include import status
    # @option opts [BOOLEAN] :include_size Include size
    # @option opts [Integer] :page_size Page size
    # @option opts [Integer] :page_number Page number
    # @option opts [String] :filter_type Filter type
    # @option opts [String] :name Name
    # @option opts [String] :sort_by Sort by
    # @option opts [String] :sort_order Sort order
    # @return [Array<(ContactListEntityListing, Fixnum, Hash)>] ContactListEntityListing data, response status code and response headers
    def get_outbound_contactlists_with_http_info(opts = {})
      if @api_client.config.debugging
        @api_client.config.logger.debug "Calling API: OutboundApi.get_outbound_contactlists ..."
      end
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      if opts[:'filter_type'] && !['Equals', 'RegEx', 'Contains', 'Prefix', 'LessThan', 'LessThanEqualTo', 'GreaterThan', 'GreaterThanEqualTo', 'BeginsWith', 'EndsWith'].include?(opts[:'filter_type'])
        fail ArgumentError, 'invalid value for "filter_type", must be one of Equals, RegEx, Contains, Prefix, LessThan, LessThanEqualTo, GreaterThan, GreaterThanEqualTo, BeginsWith, EndsWith'
      end
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      if opts[:'sort_order'] && !['ascending', 'descending'].include?(opts[:'sort_order'])
        fail ArgumentError, 'invalid value for "sort_order", must be one of ascending, descending'
      end
      
      
      
      
      # resource path
      local_var_path = "/api/v2/outbound/contactlists".sub('{format}','json')

      # query parameters
      query_params = {}
      query_params[:'includeImportStatus'] = opts[:'include_import_status'] if opts[:'include_import_status']
      query_params[:'includeSize'] = opts[:'include_size'] if opts[:'include_size']
      query_params[:'pageSize'] = opts[:'page_size'] if opts[:'page_size']
      query_params[:'pageNumber'] = opts[:'page_number'] if opts[:'page_number']
      query_params[:'filterType'] = opts[:'filter_type'] if opts[:'filter_type']
      query_params[:'name'] = opts[:'name'] if opts[:'name']
      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 => 'ContactListEntityListing')
      if @api_client.config.debugging
        @api_client.config.logger.debug "API called: OutboundApi#get_outbound_contactlists\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
      end
      return data, status_code, headers
    end

    # Get dialer DNC list
    # 
    # @param dnc_list_id DncList ID
    # @param [Hash] opts the optional parameters
    # @option opts [BOOLEAN] :include_import_status Import status (default to false)
    # @option opts [BOOLEAN] :include_size Include size (default to false)
    # @return [DncList]
    def get_outbound_dnclist(dnc_list_id, opts = {})
      data, _status_code, _headers = get_outbound_dnclist_with_http_info(dnc_list_id, opts)
      return data
    end

    # Get dialer DNC list
    # 
    # @param dnc_list_id DncList ID
    # @param [Hash] opts the optional parameters
    # @option opts [BOOLEAN] :include_import_status Import status
    # @option opts [BOOLEAN] :include_size Include size
    # @return [Array<(DncList, Fixnum, Hash)>] DncList data, response status code and response headers
    def get_outbound_dnclist_with_http_info(dnc_list_id, opts = {})
      if @api_client.config.debugging
        @api_client.config.logger.debug "Calling API: OutboundApi.get_outbound_dnclist ..."
      end
      
      
      # verify the required parameter 'dnc_list_id' is set
      fail ArgumentError, "Missing the required parameter 'dnc_list_id' when calling OutboundApi.get_outbound_dnclist" if dnc_list_id.nil?
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      # resource path
      local_var_path = "/api/v2/outbound/dnclists/{dncListId}".sub('{format}','json').sub('{' + 'dncListId' + '}', dnc_list_id.to_s)

      # query parameters
      query_params = {}
      query_params[:'includeImportStatus'] = opts[:'include_import_status'] if opts[:'include_import_status']
      query_params[:'includeSize'] = opts[:'include_size'] if opts[:'include_size']

      # 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 => 'DncList')
      if @api_client.config.debugging
        @api_client.config.logger.debug "API called: OutboundApi#get_outbound_dnclist\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
      end
      return data, status_code, headers
    end

    # Get the URI of a DNC list export.
    # 
    # @param dnc_list_id DncList ID
    # @param [Hash] opts the optional parameters
    # @option opts [String] :download Redirect to download uri (default to false)
    # @return [ExportUri]
    def get_outbound_dnclist_export(dnc_list_id, opts = {})
      data, _status_code, _headers = get_outbound_dnclist_export_with_http_info(dnc_list_id, opts)
      return data
    end

    # Get the URI of a DNC list export.
    # 
    # @param dnc_list_id DncList ID
    # @param [Hash] opts the optional parameters
    # @option opts [String] :download Redirect to download uri
    # @return [Array<(ExportUri, Fixnum, Hash)>] ExportUri data, response status code and response headers
    def get_outbound_dnclist_export_with_http_info(dnc_list_id, opts = {})
      if @api_client.config.debugging
        @api_client.config.logger.debug "Calling API: OutboundApi.get_outbound_dnclist_export ..."
      end
      
      
      # verify the required parameter 'dnc_list_id' is set
      fail ArgumentError, "Missing the required parameter 'dnc_list_id' when calling OutboundApi.get_outbound_dnclist_export" if dnc_list_id.nil?
      
      
      
      
      
      
      
      
      
      
      
      # resource path
      local_var_path = "/api/v2/outbound/dnclists/{dncListId}/export".sub('{format}','json').sub('{' + 'dncListId' + '}', dnc_list_id.to_s)

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

      # 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 => 'ExportUri')
      if @api_client.config.debugging
        @api_client.config.logger.debug "API called: OutboundApi#get_outbound_dnclist_export\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
      end
      return data, status_code, headers
    end

    # Get dialer dncList import status.
    # 
    # @param dnc_list_id DncList ID
    # @param [Hash] opts the optional parameters
    # @return [ImportStatus]
    def get_outbound_dnclist_importstatus(dnc_list_id, opts = {})
      data, _status_code, _headers = get_outbound_dnclist_importstatus_with_http_info(dnc_list_id, opts)
      return data
    end

    # Get dialer dncList import status.
    # 
    # @param dnc_list_id DncList ID
    # @param [Hash] opts the optional parameters
    # @return [Array<(ImportStatus, Fixnum, Hash)>] ImportStatus data, response status code and response headers
    def get_outbound_dnclist_importstatus_with_http_info(dnc_list_id, opts = {})
      if @api_client.config.debugging
        @api_client.config.logger.debug "Calling API: OutboundApi.get_outbound_dnclist_importstatus ..."
      end
      
      
      # verify the required parameter 'dnc_list_id' is set
      fail ArgumentError, "Missing the required parameter 'dnc_list_id' when calling OutboundApi.get_outbound_dnclist_importstatus" if dnc_list_id.nil?
      
      
      
      
      
      # resource path
      local_var_path = "/api/v2/outbound/dnclists/{dncListId}/importstatus".sub('{format}','json').sub('{' + 'dncListId' + '}', dnc_list_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 => 'ImportStatus')
      if @api_client.config.debugging
        @api_client.config.logger.debug "API called: OutboundApi#get_outbound_dnclist_importstatus\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
      end
      return data, status_code, headers
    end

    # Query dialer DNC lists
    # 
    # @param [Hash] opts the optional parameters
    # @option opts [BOOLEAN] :include_import_status Import status (default to false)
    # @option opts [BOOLEAN] :include_size Include size (default to false)
    # @option opts [Integer] :page_size Page size (default to 25)
    # @option opts [Integer] :page_number Page number (default to 1)
    # @option opts [String] :filter_type Filter type (default to Prefix)
    # @option opts [String] :name Name
    # @option opts [String] :sort_by Sort by
    # @option opts [String] :sort_order Sort order
    # @return [DncListEntityListing]
    def get_outbound_dnclists(opts = {})
      data, _status_code, _headers = get_outbound_dnclists_with_http_info(opts)
      return data
    end

    # Query dialer DNC lists
    # 
    # @param [Hash] opts the optional parameters
    # @option opts [BOOLEAN] :include_import_status Import status
    # @option opts [BOOLEAN] :include_size Include size
    # @option opts [Integer] :page_size Page size
    # @option opts [Integer] :page_number Page number
    # @option opts [String] :filter_type Filter type
    # @option opts [String] :name Name
    # @option opts [String] :sort_by Sort by
    # @option opts [String] :sort_order Sort order
    # @return [Array<(DncListEntityListing, Fixnum, Hash)>] DncListEntityListing data, response status code and response headers
    def get_outbound_dnclists_with_http_info(opts = {})
      if @api_client.config.debugging
        @api_client.config.logger.debug "Calling API: OutboundApi.get_outbound_dnclists ..."
      end
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      if opts[:'filter_type'] && !['Equals', 'RegEx', 'Contains', 'Prefix', 'LessThan', 'LessThanEqualTo', 'GreaterThan', 'GreaterThanEqualTo', 'BeginsWith', 'EndsWith'].include?(opts[:'filter_type'])
        fail ArgumentError, 'invalid value for "filter_type", must be one of Equals, RegEx, Contains, Prefix, LessThan, LessThanEqualTo, GreaterThan, GreaterThanEqualTo, BeginsWith, EndsWith'
      end
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      if opts[:'sort_order'] && !['ascending', 'descending'].include?(opts[:'sort_order'])
        fail ArgumentError, 'invalid value for "sort_order", must be one of ascending, descending'
      end
      
      
      
      
      # resource path
      local_var_path = "/api/v2/outbound/dnclists".sub('{format}','json')

      # query parameters
      query_params = {}
      query_params[:'includeImportStatus'] = opts[:'include_import_status'] if opts[:'include_import_status']
      query_params[:'includeSize'] = opts[:'include_size'] if opts[:'include_size']
      query_params[:'pageSize'] = opts[:'page_size'] if opts[:'page_size']
      query_params[:'pageNumber'] = opts[:'page_number'] if opts[:'page_number']
      query_params[:'filterType'] = opts[:'filter_type'] if opts[:'filter_type']
      query_params[:'name'] = opts[:'name'] if opts[:'name']
      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 => 'DncListEntityListing')
      if @api_client.config.debugging
        @api_client.config.logger.debug "API called: OutboundApi#get_outbound_dnclists\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
      end
      return data, status_code, headers
    end

    # Get Dialer Event
    # 
    # @param event_id Event Log ID
    # @param [Hash] opts the optional parameters
    # @return [EventLog]
    def get_outbound_event(event_id, opts = {})
      data, _status_code, _headers = get_outbound_event_with_http_info(event_id, opts)
      return data
    end

    # Get Dialer Event
    # 
    # @param event_id Event Log ID
    # @param [Hash] opts the optional parameters
    # @return [Array<(EventLog, Fixnum, Hash)>] EventLog data, response status code and response headers
    def get_outbound_event_with_http_info(event_id, opts = {})
      if @api_client.config.debugging
        @api_client.config.logger.debug "Calling API: OutboundApi.get_outbound_event ..."
      end
      
      
      # verify the required parameter 'event_id' is set
      fail ArgumentError, "Missing the required parameter 'event_id' when calling OutboundApi.get_outbound_event" if event_id.nil?
      
      
      
      
      
      # resource path
      local_var_path = "/api/v2/outbound/events/{eventId}".sub('{format}','json').sub('{' + 'eventId' + '}', event_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 => 'EventLog')
      if @api_client.config.debugging
        @api_client.config.logger.debug "API called: OutboundApi#get_outbound_event\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
      end
      return data, status_code, headers
    end

    # Query Event Logs
    # 
    # @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] :filter_type Filter type (default to Prefix)
    # @option opts [String] :category Category
    # @option opts [String] :level Level
    # @option opts [String] :sort_by Sort by
    # @option opts [String] :sort_order Sort order (default to a)
    # @return [DialerEventEntityListing]
    def get_outbound_events(opts = {})
      data, _status_code, _headers = get_outbound_events_with_http_info(opts)
      return data
    end

    # Query Event Logs
    # 
    # @param [Hash] opts the optional parameters
    # @option opts [Integer] :page_size Page size
    # @option opts [Integer] :page_number Page number
    # @option opts [String] :filter_type Filter type
    # @option opts [String] :category Category
    # @option opts [String] :level Level
    # @option opts [String] :sort_by Sort by
    # @option opts [String] :sort_order Sort order
    # @return [Array<(DialerEventEntityListing, Fixnum, Hash)>] DialerEventEntityListing data, response status code and response headers
    def get_outbound_events_with_http_info(opts = {})
      if @api_client.config.debugging
        @api_client.config.logger.debug "Calling API: OutboundApi.get_outbound_events ..."
      end
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      if opts[:'filter_type'] && !['Equals', 'RegEx', 'Contains', 'Prefix', 'LessThan', 'LessThanEqualTo', 'GreaterThan', 'GreaterThanEqualTo', 'BeginsWith', 'EndsWith'].include?(opts[:'filter_type'])
        fail ArgumentError, 'invalid value for "filter_type", must be one of Equals, RegEx, Contains, Prefix, LessThan, LessThanEqualTo, GreaterThan, GreaterThanEqualTo, BeginsWith, EndsWith'
      end
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      if opts[:'sort_order'] && !['ascending', 'descending'].include?(opts[:'sort_order'])
        fail ArgumentError, 'invalid value for "sort_order", must be one of ascending, descending'
      end
      
      
      
      
      # resource path
      local_var_path = "/api/v2/outbound/events".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[:'filterType'] = opts[:'filter_type'] if opts[:'filter_type']
      query_params[:'category'] = opts[:'category'] if opts[:'category']
      query_params[:'level'] = opts[:'level'] if opts[:'level']
      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 => 'DialerEventEntityListing')
      if @api_client.config.debugging
        @api_client.config.logger.debug "API called: OutboundApi#get_outbound_events\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
      end
      return data, status_code, headers
    end

    # Get a Rule Set by ID.
    # 
    # @param rule_set_id Rule Set ID
    # @param [Hash] opts the optional parameters
    # @return [RuleSet]
    def get_outbound_ruleset(rule_set_id, opts = {})
      data, _status_code, _headers = get_outbound_ruleset_with_http_info(rule_set_id, opts)
      return data
    end

    # Get a Rule Set by ID.
    # 
    # @param rule_set_id Rule Set ID
    # @param [Hash] opts the optional parameters
    # @return [Array<(RuleSet, Fixnum, Hash)>] RuleSet data, response status code and response headers
    def get_outbound_ruleset_with_http_info(rule_set_id, opts = {})
      if @api_client.config.debugging
        @api_client.config.logger.debug "Calling API: OutboundApi.get_outbound_ruleset ..."
      end
      
      
      # verify the required parameter 'rule_set_id' is set
      fail ArgumentError, "Missing the required parameter 'rule_set_id' when calling OutboundApi.get_outbound_ruleset" if rule_set_id.nil?
      
      
      
      
      
      # resource path
      local_var_path = "/api/v2/outbound/rulesets/{ruleSetId}".sub('{format}','json').sub('{' + 'ruleSetId' + '}', rule_set_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 => 'RuleSet')
      if @api_client.config.debugging
        @api_client.config.logger.debug "API called: OutboundApi#get_outbound_ruleset\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
      end
      return data, status_code, headers
    end

    # Query a list of Rule Sets.
    # 
    # @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] :filter_type Filter type (default to Prefix)
    # @option opts [String] :name Name
    # @option opts [String] :sort_by Sort by
    # @option opts [String] :sort_order Sort order (default to a)
    # @return [RuleSetEntityListing]
    def get_outbound_rulesets(opts = {})
      data, _status_code, _headers = get_outbound_rulesets_with_http_info(opts)
      return data
    end

    # Query a list of Rule Sets.
    # 
    # @param [Hash] opts the optional parameters
    # @option opts [Integer] :page_size Page size
    # @option opts [Integer] :page_number Page number
    # @option opts [String] :filter_type Filter type
    # @option opts [String] :name Name
    # @option opts [String] :sort_by Sort by
    # @option opts [String] :sort_order Sort order
    # @return [Array<(RuleSetEntityListing, Fixnum, Hash)>] RuleSetEntityListing data, response status code and response headers
    def get_outbound_rulesets_with_http_info(opts = {})
      if @api_client.config.debugging
        @api_client.config.logger.debug "Calling API: OutboundApi.get_outbound_rulesets ..."
      end
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      if opts[:'filter_type'] && !['Equals', 'RegEx', 'Contains', 'Prefix', 'LessThan', 'LessThanEqualTo', 'GreaterThan', 'GreaterThanEqualTo', 'BeginsWith', 'EndsWith'].include?(opts[:'filter_type'])
        fail ArgumentError, 'invalid value for "filter_type", must be one of Equals, RegEx, Contains, Prefix, LessThan, LessThanEqualTo, GreaterThan, GreaterThanEqualTo, BeginsWith, EndsWith'
      end
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      if opts[:'sort_order'] && !['ascending', 'descending'].include?(opts[:'sort_order'])
        fail ArgumentError, 'invalid value for "sort_order", must be one of ascending, descending'
      end
      
      
      
      
      # resource path
      local_var_path = "/api/v2/outbound/rulesets".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[:'filterType'] = opts[:'filter_type'] if opts[:'filter_type']
      query_params[:'name'] = opts[:'name'] if opts[:'name']
      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 => 'RuleSetEntityListing')
      if @api_client.config.debugging
        @api_client.config.logger.debug "API called: OutboundApi#get_outbound_rulesets\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
      end
      return data, status_code, headers
    end

    # Get a dialer campaign schedule.
    # 
    # @param campaign_id Campaign ID
    # @param [Hash] opts the optional parameters
    # @return [CampaignSchedule]
    def get_outbound_schedules_campaign(campaign_id, opts = {})
      data, _status_code, _headers = get_outbound_schedules_campaign_with_http_info(campaign_id, opts)
      return data
    end

    # Get a dialer campaign schedule.
    # 
    # @param campaign_id Campaign ID
    # @param [Hash] opts the optional parameters
    # @return [Array<(CampaignSchedule, Fixnum, Hash)>] CampaignSchedule data, response status code and response headers
    def get_outbound_schedules_campaign_with_http_info(campaign_id, opts = {})
      if @api_client.config.debugging
        @api_client.config.logger.debug "Calling API: OutboundApi.get_outbound_schedules_campaign ..."
      end
      
      
      # verify the required parameter 'campaign_id' is set
      fail ArgumentError, "Missing the required parameter 'campaign_id' when calling OutboundApi.get_outbound_schedules_campaign" if campaign_id.nil?
      
      
      
      
      
      # resource path
      local_var_path = "/api/v2/outbound/schedules/campaigns/{campaignId}".sub('{format}','json').sub('{' + 'campaignId' + '}', campaign_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 => 'CampaignSchedule')
      if @api_client.config.debugging
        @api_client.config.logger.debug "API called: OutboundApi#get_outbound_schedules_campaign\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
      end
      return data, status_code, headers
    end

    # Query for a list of dialer campaign schedules.
    # 
    # @param [Hash] opts the optional parameters
    # @return [Array<CampaignSchedule>]
    def get_outbound_schedules_campaigns(opts = {})
      data, _status_code, _headers = get_outbound_schedules_campaigns_with_http_info(opts)
      return data
    end

    # Query for a list of dialer campaign schedules.
    # 
    # @param [Hash] opts the optional parameters
    # @return [Array<(Array<CampaignSchedule>, Fixnum, Hash)>] Array<CampaignSchedule> data, response status code and response headers
    def get_outbound_schedules_campaigns_with_http_info(opts = {})
      if @api_client.config.debugging
        @api_client.config.logger.debug "Calling API: OutboundApi.get_outbound_schedules_campaigns ..."
      end
      
      # resource path
      local_var_path = "/api/v2/outbound/schedules/campaigns".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 => 'Array<CampaignSchedule>')
      if @api_client.config.debugging
        @api_client.config.logger.debug "API called: OutboundApi#get_outbound_schedules_campaigns\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
      end
      return data, status_code, headers
    end

    # Get a dialer sequence schedule.
    # 
    # @param sequence_id Sequence ID
    # @param [Hash] opts the optional parameters
    # @return [SequenceSchedule]
    def get_outbound_schedules_sequence(sequence_id, opts = {})
      data, _status_code, _headers = get_outbound_schedules_sequence_with_http_info(sequence_id, opts)
      return data
    end

    # Get a dialer sequence schedule.
    # 
    # @param sequence_id Sequence ID
    # @param [Hash] opts the optional parameters
    # @return [Array<(SequenceSchedule, Fixnum, Hash)>] SequenceSchedule data, response status code and response headers
    def get_outbound_schedules_sequence_with_http_info(sequence_id, opts = {})
      if @api_client.config.debugging
        @api_client.config.logger.debug "Calling API: OutboundApi.get_outbound_schedules_sequence ..."
      end
      
      
      # verify the required parameter 'sequence_id' is set
      fail ArgumentError, "Missing the required parameter 'sequence_id' when calling OutboundApi.get_outbound_schedules_sequence" if sequence_id.nil?
      
      
      
      
      
      # resource path
      local_var_path = "/api/v2/outbound/schedules/sequences/{sequenceId}".sub('{format}','json').sub('{' + 'sequenceId' + '}', sequence_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 => 'SequenceSchedule')
      if @api_client.config.debugging
        @api_client.config.logger.debug "API called: OutboundApi#get_outbound_schedules_sequence\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
      end
      return data, status_code, headers
    end

    # Query for a list of dialer sequence schedules.
    # 
    # @param [Hash] opts the optional parameters
    # @return [Array<SequenceSchedule>]
    def get_outbound_schedules_sequences(opts = {})
      data, _status_code, _headers = get_outbound_schedules_sequences_with_http_info(opts)
      return data
    end

    # Query for a list of dialer sequence schedules.
    # 
    # @param [Hash] opts the optional parameters
    # @return [Array<(Array<SequenceSchedule>, Fixnum, Hash)>] Array<SequenceSchedule> data, response status code and response headers
    def get_outbound_schedules_sequences_with_http_info(opts = {})
      if @api_client.config.debugging
        @api_client.config.logger.debug "Calling API: OutboundApi.get_outbound_schedules_sequences ..."
      end
      
      # resource path
      local_var_path = "/api/v2/outbound/schedules/sequences".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 => 'Array<SequenceSchedule>')
      if @api_client.config.debugging
        @api_client.config.logger.debug "API called: OutboundApi#get_outbound_schedules_sequences\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
      end
      return data, status_code, headers
    end

    # Get a dialer campaign sequence.
    # 
    # @param sequence_id Campaign Sequence ID
    # @param [Hash] opts the optional parameters
    # @return [CampaignSequence]
    def get_outbound_sequence(sequence_id, opts = {})
      data, _status_code, _headers = get_outbound_sequence_with_http_info(sequence_id, opts)
      return data
    end

    # Get a dialer campaign sequence.
    # 
    # @param sequence_id Campaign Sequence ID
    # @param [Hash] opts the optional parameters
    # @return [Array<(CampaignSequence, Fixnum, Hash)>] CampaignSequence data, response status code and response headers
    def get_outbound_sequence_with_http_info(sequence_id, opts = {})
      if @api_client.config.debugging
        @api_client.config.logger.debug "Calling API: OutboundApi.get_outbound_sequence ..."
      end
      
      
      # verify the required parameter 'sequence_id' is set
      fail ArgumentError, "Missing the required parameter 'sequence_id' when calling OutboundApi.get_outbound_sequence" if sequence_id.nil?
      
      
      
      
      
      # resource path
      local_var_path = "/api/v2/outbound/sequences/{sequenceId}".sub('{format}','json').sub('{' + 'sequenceId' + '}', sequence_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 => 'CampaignSequence')
      if @api_client.config.debugging
        @api_client.config.logger.debug "API called: OutboundApi#get_outbound_sequence\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
      end
      return data, status_code, headers
    end

    # Query a list of dialer campaign sequences.
    # 
    # @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] :filter_type Filter type (default to Prefix)
    # @option opts [String] :name Name
    # @option opts [String] :sort_by Sort by
    # @option opts [String] :sort_order Sort order (default to a)
    # @return [CampaignSequenceEntityListing]
    def get_outbound_sequences(opts = {})
      data, _status_code, _headers = get_outbound_sequences_with_http_info(opts)
      return data
    end

    # Query a list of dialer campaign sequences.
    # 
    # @param [Hash] opts the optional parameters
    # @option opts [Integer] :page_size Page size
    # @option opts [Integer] :page_number Page number
    # @option opts [String] :filter_type Filter type
    # @option opts [String] :name Name
    # @option opts [String] :sort_by Sort by
    # @option opts [String] :sort_order Sort order
    # @return [Array<(CampaignSequenceEntityListing, Fixnum, Hash)>] CampaignSequenceEntityListing data, response status code and response headers
    def get_outbound_sequences_with_http_info(opts = {})
      if @api_client.config.debugging
        @api_client.config.logger.debug "Calling API: OutboundApi.get_outbound_sequences ..."
      end
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      if opts[:'filter_type'] && !['Equals', 'RegEx', 'Contains', 'Prefix', 'LessThan', 'LessThanEqualTo', 'GreaterThan', 'GreaterThanEqualTo', 'BeginsWith', 'EndsWith'].include?(opts[:'filter_type'])
        fail ArgumentError, 'invalid value for "filter_type", must be one of Equals, RegEx, Contains, Prefix, LessThan, LessThanEqualTo, GreaterThan, GreaterThanEqualTo, BeginsWith, EndsWith'
      end
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      if opts[:'sort_order'] && !['ascending', 'descending'].include?(opts[:'sort_order'])
        fail ArgumentError, 'invalid value for "sort_order", must be one of ascending, descending'
      end
      
      
      
      
      # resource path
      local_var_path = "/api/v2/outbound/sequences".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[:'filterType'] = opts[:'filter_type'] if opts[:'filter_type']
      query_params[:'name'] = opts[:'name'] if opts[:'name']
      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 => 'CampaignSequenceEntityListing')
      if @api_client.config.debugging
        @api_client.config.logger.debug "API called: OutboundApi#get_outbound_sequences\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
      end
      return data, status_code, headers
    end

    # Get the outbound settings for this organization
    # 
    # @param [Hash] opts the optional parameters
    # @return [OutboundSettings]
    def get_outbound_settings(opts = {})
      data, _status_code, _headers = get_outbound_settings_with_http_info(opts)
      return data
    end

    # Get the outbound settings for this organization
    # 
    # @param [Hash] opts the optional parameters
    # @return [Array<(OutboundSettings, Fixnum, Hash)>] OutboundSettings data, response status code and response headers
    def get_outbound_settings_with_http_info(opts = {})
      if @api_client.config.debugging
        @api_client.config.logger.debug "Calling API: OutboundApi.get_outbound_settings ..."
      end
      
      # resource path
      local_var_path = "/api/v2/outbound/settings".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 => 'OutboundSettings')
      if @api_client.config.debugging
        @api_client.config.logger.debug "API called: OutboundApi#get_outbound_settings\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
      end
      return data, status_code, headers
    end

    # Get the Dialer wrap up code mapping.
    # 
    # @param [Hash] opts the optional parameters
    # @return [WrapUpCodeMapping]
    def get_outbound_wrapupcodemappings(opts = {})
      data, _status_code, _headers = get_outbound_wrapupcodemappings_with_http_info(opts)
      return data
    end

    # Get the Dialer wrap up code mapping.
    # 
    # @param [Hash] opts the optional parameters
    # @return [Array<(WrapUpCodeMapping, Fixnum, Hash)>] WrapUpCodeMapping data, response status code and response headers
    def get_outbound_wrapupcodemappings_with_http_info(opts = {})
      if @api_client.config.debugging
        @api_client.config.logger.debug "Calling API: OutboundApi.get_outbound_wrapupcodemappings ..."
      end
      
      # resource path
      local_var_path = "/api/v2/outbound/wrapupcodemappings".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 => 'WrapUpCodeMapping')
      if @api_client.config.debugging
        @api_client.config.logger.debug "API called: OutboundApi#get_outbound_wrapupcodemappings\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
      end
      return data, status_code, headers
    end

    # Update the outbound settings for this organization
    # 
    # @param body outboundSettings
    # @param [Hash] opts the optional parameters
    # @return [nil]
    def patch_outbound_settings(body, opts = {})
      patch_outbound_settings_with_http_info(body, opts)
      return nil
    end

    # Update the outbound settings for this organization
    # 
    # @param body outboundSettings
    # @param [Hash] opts the optional parameters
    # @return [Array<(nil, Fixnum, Hash)>] nil, response status code and response headers
    def patch_outbound_settings_with_http_info(body, opts = {})
      if @api_client.config.debugging
        @api_client.config.logger.debug "Calling API: OutboundApi.patch_outbound_settings ..."
      end
      
      
      # verify the required parameter 'body' is set
      fail ArgumentError, "Missing the required parameter 'body' when calling OutboundApi.patch_outbound_settings" if body.nil?
      
      
      
      
      
      # resource path
      local_var_path = "/api/v2/outbound/settings".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(:PATCH, 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: OutboundApi#patch_outbound_settings\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
      end
      return data, status_code, headers
    end

    # Create attempt limits
    # 
    # @param body AttemptLimits
    # @param [Hash] opts the optional parameters
    # @return [AttemptLimits]
    def post_outbound_attemptlimits(body, opts = {})
      data, _status_code, _headers = post_outbound_attemptlimits_with_http_info(body, opts)
      return data
    end

    # Create attempt limits
    # 
    # @param body AttemptLimits
    # @param [Hash] opts the optional parameters
    # @return [Array<(AttemptLimits, Fixnum, Hash)>] AttemptLimits data, response status code and response headers
    def post_outbound_attemptlimits_with_http_info(body, opts = {})
      if @api_client.config.debugging
        @api_client.config.logger.debug "Calling API: OutboundApi.post_outbound_attemptlimits ..."
      end
      
      
      # verify the required parameter 'body' is set
      fail ArgumentError, "Missing the required parameter 'body' when calling OutboundApi.post_outbound_attemptlimits" if body.nil?
      
      
      
      
      
      # resource path
      local_var_path = "/api/v2/outbound/attemptlimits".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 => 'AttemptLimits')
      if @api_client.config.debugging
        @api_client.config.logger.debug "API called: OutboundApi#post_outbound_attemptlimits\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
      end
      return data, status_code, headers
    end

    # Retrieves audits for dialer.
    # 
    # @param body AuditSearch
    # @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 entity.name)
    # @option opts [String] :sort_order Sort order (default to ascending)
    # @option opts [BOOLEAN] :facets_only Facets only (default to false)
    # @return [AuditSearchResult]
    def post_outbound_audits(body, opts = {})
      data, _status_code, _headers = post_outbound_audits_with_http_info(body, opts)
      return data
    end

    # Retrieves audits for dialer.
    # 
    # @param body AuditSearch
    # @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 [BOOLEAN] :facets_only Facets only
    # @return [Array<(AuditSearchResult, Fixnum, Hash)>] AuditSearchResult data, response status code and response headers
    def post_outbound_audits_with_http_info(body, opts = {})
      if @api_client.config.debugging
        @api_client.config.logger.debug "Calling API: OutboundApi.post_outbound_audits ..."
      end
      
      
      # verify the required parameter 'body' is set
      fail ArgumentError, "Missing the required parameter 'body' when calling OutboundApi.post_outbound_audits" if body.nil?
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      # resource path
      local_var_path = "/api/v2/outbound/audits".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[:'facetsOnly'] = opts[:'facets_only'] if opts[:'facets_only']

      # 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 => 'AuditSearchResult')
      if @api_client.config.debugging
        @api_client.config.logger.debug "API called: OutboundApi#post_outbound_audits\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
      end
      return data, status_code, headers
    end

    # Create callable time set
    # 
    # @param body DialerCallableTimeSet
    # @param [Hash] opts the optional parameters
    # @return [CallableTimeSet]
    def post_outbound_callabletimesets(body, opts = {})
      data, _status_code, _headers = post_outbound_callabletimesets_with_http_info(body, opts)
      return data
    end

    # Create callable time set
    # 
    # @param body DialerCallableTimeSet
    # @param [Hash] opts the optional parameters
    # @return [Array<(CallableTimeSet, Fixnum, Hash)>] CallableTimeSet data, response status code and response headers
    def post_outbound_callabletimesets_with_http_info(body, opts = {})
      if @api_client.config.debugging
        @api_client.config.logger.debug "Calling API: OutboundApi.post_outbound_callabletimesets ..."
      end
      
      
      # verify the required parameter 'body' is set
      fail ArgumentError, "Missing the required parameter 'body' when calling OutboundApi.post_outbound_callabletimesets" if body.nil?
      
      
      
      
      
      # resource path
      local_var_path = "/api/v2/outbound/callabletimesets".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 => 'CallableTimeSet')
      if @api_client.config.debugging
        @api_client.config.logger.debug "API called: OutboundApi#post_outbound_callabletimesets\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
      end
      return data, status_code, headers
    end

    # Create a dialer call analysis response set.
    # 
    # @param body ResponseSet
    # @param [Hash] opts the optional parameters
    # @return [ResponseSet]
    def post_outbound_callanalysisresponsesets(body, opts = {})
      data, _status_code, _headers = post_outbound_callanalysisresponsesets_with_http_info(body, opts)
      return data
    end

    # Create a dialer call analysis response set.
    # 
    # @param body ResponseSet
    # @param [Hash] opts the optional parameters
    # @return [Array<(ResponseSet, Fixnum, Hash)>] ResponseSet data, response status code and response headers
    def post_outbound_callanalysisresponsesets_with_http_info(body, opts = {})
      if @api_client.config.debugging
        @api_client.config.logger.debug "Calling API: OutboundApi.post_outbound_callanalysisresponsesets ..."
      end
      
      
      # verify the required parameter 'body' is set
      fail ArgumentError, "Missing the required parameter 'body' when calling OutboundApi.post_outbound_callanalysisresponsesets" if body.nil?
      
      
      
      
      
      # resource path
      local_var_path = "/api/v2/outbound/callanalysisresponsesets".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 => 'ResponseSet')
      if @api_client.config.debugging
        @api_client.config.logger.debug "API called: OutboundApi#post_outbound_callanalysisresponsesets\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
      end
      return data, status_code, headers
    end

    # Schedule a Callback for a Dialer Campaign (Deprecated)
    # This endpoint is deprecated and may have unexpected results. Please use \"/conversations/{conversationId}/participants/{participantId}/callbacks instead.\"
    # @param campaign_id Campaign ID
    # @param body ContactCallbackRequest
    # @param [Hash] opts the optional parameters
    # @return [ContactCallbackRequest]
    def post_outbound_campaign_callback_schedule(campaign_id, body, opts = {})
      data, _status_code, _headers = post_outbound_campaign_callback_schedule_with_http_info(campaign_id, body, opts)
      return data
    end

    # Schedule a Callback for a Dialer Campaign (Deprecated)
    # This endpoint is deprecated and may have unexpected results. Please use \&quot;/conversations/{conversationId}/participants/{participantId}/callbacks instead.\&quot;
    # @param campaign_id Campaign ID
    # @param body ContactCallbackRequest
    # @param [Hash] opts the optional parameters
    # @return [Array<(ContactCallbackRequest, Fixnum, Hash)>] ContactCallbackRequest data, response status code and response headers
    def post_outbound_campaign_callback_schedule_with_http_info(campaign_id, body, opts = {})
      if @api_client.config.debugging
        @api_client.config.logger.debug "Calling API: OutboundApi.post_outbound_campaign_callback_schedule ..."
      end
      
      
      # verify the required parameter 'campaign_id' is set
      fail ArgumentError, "Missing the required parameter 'campaign_id' when calling OutboundApi.post_outbound_campaign_callback_schedule" if campaign_id.nil?
      
      
      
      
      
      
      # verify the required parameter 'body' is set
      fail ArgumentError, "Missing the required parameter 'body' when calling OutboundApi.post_outbound_campaign_callback_schedule" if body.nil?
      
      
      
      
      
      # resource path
      local_var_path = "/api/v2/outbound/campaigns/{campaignId}/callback/schedule".sub('{format}','json').sub('{' + 'campaignId' + '}', campaign_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 => 'ContactCallbackRequest')
      if @api_client.config.debugging
        @api_client.config.logger.debug "API called: OutboundApi#post_outbound_campaign_callback_schedule\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
      end
      return data, status_code, headers
    end

    # Create Campaign Rule
    # 
    # @param body CampaignRule
    # @param [Hash] opts the optional parameters
    # @return [CampaignRule]
    def post_outbound_campaignrules(body, opts = {})
      data, _status_code, _headers = post_outbound_campaignrules_with_http_info(body, opts)
      return data
    end

    # Create Campaign Rule
    # 
    # @param body CampaignRule
    # @param [Hash] opts the optional parameters
    # @return [Array<(CampaignRule, Fixnum, Hash)>] CampaignRule data, response status code and response headers
    def post_outbound_campaignrules_with_http_info(body, opts = {})
      if @api_client.config.debugging
        @api_client.config.logger.debug "Calling API: OutboundApi.post_outbound_campaignrules ..."
      end
      
      
      # verify the required parameter 'body' is set
      fail ArgumentError, "Missing the required parameter 'body' when calling OutboundApi.post_outbound_campaignrules" if body.nil?
      
      
      
      
      
      # resource path
      local_var_path = "/api/v2/outbound/campaignrules".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 => 'CampaignRule')
      if @api_client.config.debugging
        @api_client.config.logger.debug "API called: OutboundApi#post_outbound_campaignrules\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
      end
      return data, status_code, headers
    end

    # Create a campaign.
    # 
    # @param body Campaign
    # @param [Hash] opts the optional parameters
    # @return [Campaign]
    def post_outbound_campaigns(body, opts = {})
      data, _status_code, _headers = post_outbound_campaigns_with_http_info(body, opts)
      return data
    end

    # Create a campaign.
    # 
    # @param body Campaign
    # @param [Hash] opts the optional parameters
    # @return [Array<(Campaign, Fixnum, Hash)>] Campaign data, response status code and response headers
    def post_outbound_campaigns_with_http_info(body, opts = {})
      if @api_client.config.debugging
        @api_client.config.logger.debug "Calling API: OutboundApi.post_outbound_campaigns ..."
      end
      
      
      # verify the required parameter 'body' is set
      fail ArgumentError, "Missing the required parameter 'body' when calling OutboundApi.post_outbound_campaigns" if body.nil?
      
      
      
      
      
      # resource path
      local_var_path = "/api/v2/outbound/campaigns".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 => 'Campaign')
      if @api_client.config.debugging
        @api_client.config.logger.debug "API called: OutboundApi#post_outbound_campaigns\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
      end
      return data, status_code, headers
    end

    # Get progress for a list of campaigns
    # 
    # @param body Campaign IDs
    # @param [Hash] opts the optional parameters
    # @return [Array<CampaignProgress>]
    def post_outbound_campaigns_progress(body, opts = {})
      data, _status_code, _headers = post_outbound_campaigns_progress_with_http_info(body, opts)
      return data
    end

    # Get progress for a list of campaigns
    # 
    # @param body Campaign IDs
    # @param [Hash] opts the optional parameters
    # @return [Array<(Array<CampaignProgress>, Fixnum, Hash)>] Array<CampaignProgress> data, response status code and response headers
    def post_outbound_campaigns_progress_with_http_info(body, opts = {})
      if @api_client.config.debugging
        @api_client.config.logger.debug "Calling API: OutboundApi.post_outbound_campaigns_progress ..."
      end
      
      
      # verify the required parameter 'body' is set
      fail ArgumentError, "Missing the required parameter 'body' when calling OutboundApi.post_outbound_campaigns_progress" if body.nil?
      
      
      
      
      
      # resource path
      local_var_path = "/api/v2/outbound/campaigns/progress".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 => 'Array<CampaignProgress>')
      if @api_client.config.debugging
        @api_client.config.logger.debug "API called: OutboundApi#post_outbound_campaigns_progress\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
      end
      return data, status_code, headers
    end

    # Add contacts to a contact list.
    # 
    # @param contact_list_id Contact List ID
    # @param body Contact
    # @param [Hash] opts the optional parameters
    # @option opts [BOOLEAN] :priority Contact priority.  True means the contact(s) will be dialed next, false means the contact will go to the end of the contact queue.
    # @option opts [BOOLEAN] :clear_system_data Clear system data.  True means the system data stored on the contact will be cleared if the contact already exists (attempts, callable status, etc), false means it won&#39;t.
    # @return [Array<DialerContact>]
    def post_outbound_contactlist_contacts(contact_list_id, body, opts = {})
      data, _status_code, _headers = post_outbound_contactlist_contacts_with_http_info(contact_list_id, body, opts)
      return data
    end

    # Add contacts to a contact list.
    # 
    # @param contact_list_id Contact List ID
    # @param body Contact
    # @param [Hash] opts the optional parameters
    # @option opts [BOOLEAN] :priority Contact priority.  True means the contact(s) will be dialed next, false means the contact will go to the end of the contact queue.
    # @option opts [BOOLEAN] :clear_system_data Clear system data.  True means the system data stored on the contact will be cleared if the contact already exists (attempts, callable status, etc), false means it won&#39;t.
    # @return [Array<(Array<DialerContact>, Fixnum, Hash)>] Array<DialerContact> data, response status code and response headers
    def post_outbound_contactlist_contacts_with_http_info(contact_list_id, body, opts = {})
      if @api_client.config.debugging
        @api_client.config.logger.debug "Calling API: OutboundApi.post_outbound_contactlist_contacts ..."
      end
      
      
      # verify the required parameter 'contact_list_id' is set
      fail ArgumentError, "Missing the required parameter 'contact_list_id' when calling OutboundApi.post_outbound_contactlist_contacts" if contact_list_id.nil?
      
      
      
      
      
      
      # verify the required parameter 'body' is set
      fail ArgumentError, "Missing the required parameter 'body' when calling OutboundApi.post_outbound_contactlist_contacts" if body.nil?
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      # resource path
      local_var_path = "/api/v2/outbound/contactlists/{contactListId}/contacts".sub('{format}','json').sub('{' + 'contactListId' + '}', contact_list_id.to_s)

      # query parameters
      query_params = {}
      query_params[:'priority'] = opts[:'priority'] if opts[:'priority']
      query_params[:'clearSystemData'] = opts[:'clear_system_data'] if opts[:'clear_system_data']

      # 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 => 'Array<DialerContact>')
      if @api_client.config.debugging
        @api_client.config.logger.debug "API called: OutboundApi#post_outbound_contactlist_contacts\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
      end
      return data, status_code, headers
    end

    # Initiate the export of a contact list.
    # Returns 200 if received OK.
    # @param contact_list_id ContactList ID
    # @param [Hash] opts the optional parameters
    # @return [UriReference]
    def post_outbound_contactlist_export(contact_list_id, opts = {})
      data, _status_code, _headers = post_outbound_contactlist_export_with_http_info(contact_list_id, opts)
      return data
    end

    # Initiate the export of a contact list.
    # Returns 200 if received OK.
    # @param contact_list_id ContactList ID
    # @param [Hash] opts the optional parameters
    # @return [Array<(UriReference, Fixnum, Hash)>] UriReference data, response status code and response headers
    def post_outbound_contactlist_export_with_http_info(contact_list_id, opts = {})
      if @api_client.config.debugging
        @api_client.config.logger.debug "Calling API: OutboundApi.post_outbound_contactlist_export ..."
      end
      
      
      # verify the required parameter 'contact_list_id' is set
      fail ArgumentError, "Missing the required parameter 'contact_list_id' when calling OutboundApi.post_outbound_contactlist_export" if contact_list_id.nil?
      
      
      
      
      
      # resource path
      local_var_path = "/api/v2/outbound/contactlists/{contactListId}/export".sub('{format}','json').sub('{' + 'contactListId' + '}', contact_list_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 => 'UriReference')
      if @api_client.config.debugging
        @api_client.config.logger.debug "API called: OutboundApi#post_outbound_contactlist_export\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
      end
      return data, status_code, headers
    end

    # Create Contact List Filter
    # 
    # @param body ContactListFilter
    # @param [Hash] opts the optional parameters
    # @return [ContactListFilter]
    def post_outbound_contactlistfilters(body, opts = {})
      data, _status_code, _headers = post_outbound_contactlistfilters_with_http_info(body, opts)
      return data
    end

    # Create Contact List Filter
    # 
    # @param body ContactListFilter
    # @param [Hash] opts the optional parameters
    # @return [Array<(ContactListFilter, Fixnum, Hash)>] ContactListFilter data, response status code and response headers
    def post_outbound_contactlistfilters_with_http_info(body, opts = {})
      if @api_client.config.debugging
        @api_client.config.logger.debug "Calling API: OutboundApi.post_outbound_contactlistfilters ..."
      end
      
      
      # verify the required parameter 'body' is set
      fail ArgumentError, "Missing the required parameter 'body' when calling OutboundApi.post_outbound_contactlistfilters" if body.nil?
      
      
      
      
      
      # resource path
      local_var_path = "/api/v2/outbound/contactlistfilters".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 => 'ContactListFilter')
      if @api_client.config.debugging
        @api_client.config.logger.debug "API called: OutboundApi#post_outbound_contactlistfilters\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
      end
      return data, status_code, headers
    end

    # Get a preview of the output of a contact list filter
    # 
    # @param body ContactListFilter
    # @param [Hash] opts the optional parameters
    # @return [FilterPreviewResponse]
    def post_outbound_contactlistfilters_preview(body, opts = {})
      data, _status_code, _headers = post_outbound_contactlistfilters_preview_with_http_info(body, opts)
      return data
    end

    # Get a preview of the output of a contact list filter
    # 
    # @param body ContactListFilter
    # @param [Hash] opts the optional parameters
    # @return [Array<(FilterPreviewResponse, Fixnum, Hash)>] FilterPreviewResponse data, response status code and response headers
    def post_outbound_contactlistfilters_preview_with_http_info(body, opts = {})
      if @api_client.config.debugging
        @api_client.config.logger.debug "Calling API: OutboundApi.post_outbound_contactlistfilters_preview ..."
      end
      
      
      # verify the required parameter 'body' is set
      fail ArgumentError, "Missing the required parameter 'body' when calling OutboundApi.post_outbound_contactlistfilters_preview" if body.nil?
      
      
      
      
      
      # resource path
      local_var_path = "/api/v2/outbound/contactlistfilters/preview".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 => 'FilterPreviewResponse')
      if @api_client.config.debugging
        @api_client.config.logger.debug "API called: OutboundApi#post_outbound_contactlistfilters_preview\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
      end
      return data, status_code, headers
    end

    # Create a contact List.
    # 
    # @param body ContactList
    # @param [Hash] opts the optional parameters
    # @return [ContactList]
    def post_outbound_contactlists(body, opts = {})
      data, _status_code, _headers = post_outbound_contactlists_with_http_info(body, opts)
      return data
    end

    # Create a contact List.
    # 
    # @param body ContactList
    # @param [Hash] opts the optional parameters
    # @return [Array<(ContactList, Fixnum, Hash)>] ContactList data, response status code and response headers
    def post_outbound_contactlists_with_http_info(body, opts = {})
      if @api_client.config.debugging
        @api_client.config.logger.debug "Calling API: OutboundApi.post_outbound_contactlists ..."
      end
      
      
      # verify the required parameter 'body' is set
      fail ArgumentError, "Missing the required parameter 'body' when calling OutboundApi.post_outbound_contactlists" if body.nil?
      
      
      
      
      
      # resource path
      local_var_path = "/api/v2/outbound/contactlists".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 => 'ContactList')
      if @api_client.config.debugging
        @api_client.config.logger.debug "API called: OutboundApi#post_outbound_contactlists\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
      end
      return data, status_code, headers
    end

    # Add phone numbers to a Dialer DNC list.
    # 
    # @param conversation_id Conversation ID
    # @param [Hash] opts the optional parameters
    # @return [nil]
    def post_outbound_conversation_dnc(conversation_id, opts = {})
      post_outbound_conversation_dnc_with_http_info(conversation_id, opts)
      return nil
    end

    # Add phone numbers to a Dialer DNC list.
    # 
    # @param conversation_id Conversation ID
    # @param [Hash] opts the optional parameters
    # @return [Array<(nil, Fixnum, Hash)>] nil, response status code and response headers
    def post_outbound_conversation_dnc_with_http_info(conversation_id, opts = {})
      if @api_client.config.debugging
        @api_client.config.logger.debug "Calling API: OutboundApi.post_outbound_conversation_dnc ..."
      end
      
      
      # verify the required parameter 'conversation_id' is set
      fail ArgumentError, "Missing the required parameter 'conversation_id' when calling OutboundApi.post_outbound_conversation_dnc" if conversation_id.nil?
      
      
      
      
      
      # resource path
      local_var_path = "/api/v2/outbound/conversations/{conversationId}/dnc".sub('{format}','json').sub('{' + 'conversationId' + '}', conversation_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: OutboundApi#post_outbound_conversation_dnc\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
      end
      return data, status_code, headers
    end

    # Initiate the export of a dnc list.
    # Returns 200 if received OK.
    # @param dnc_list_id DncList ID
    # @param [Hash] opts the optional parameters
    # @return [UriReference]
    def post_outbound_dnclist_export(dnc_list_id, opts = {})
      data, _status_code, _headers = post_outbound_dnclist_export_with_http_info(dnc_list_id, opts)
      return data
    end

    # Initiate the export of a dnc list.
    # Returns 200 if received OK.
    # @param dnc_list_id DncList ID
    # @param [Hash] opts the optional parameters
    # @return [Array<(UriReference, Fixnum, Hash)>] UriReference data, response status code and response headers
    def post_outbound_dnclist_export_with_http_info(dnc_list_id, opts = {})
      if @api_client.config.debugging
        @api_client.config.logger.debug "Calling API: OutboundApi.post_outbound_dnclist_export ..."
      end
      
      
      # verify the required parameter 'dnc_list_id' is set
      fail ArgumentError, "Missing the required parameter 'dnc_list_id' when calling OutboundApi.post_outbound_dnclist_export" if dnc_list_id.nil?
      
      
      
      
      
      # resource path
      local_var_path = "/api/v2/outbound/dnclists/{dncListId}/export".sub('{format}','json').sub('{' + 'dncListId' + '}', dnc_list_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 => 'UriReference')
      if @api_client.config.debugging
        @api_client.config.logger.debug "API called: OutboundApi#post_outbound_dnclist_export\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
      end
      return data, status_code, headers
    end

    # Add phone numbers to a Dialer DNC list.
    # Only Internal DNC lists may be appended to
    # @param dnc_list_id DncList ID
    # @param body DNC Phone Numbers
    # @param [Hash] opts the optional parameters
    # @return [nil]
    def post_outbound_dnclist_phonenumbers(dnc_list_id, body, opts = {})
      post_outbound_dnclist_phonenumbers_with_http_info(dnc_list_id, body, opts)
      return nil
    end

    # Add phone numbers to a Dialer DNC list.
    # Only Internal DNC lists may be appended to
    # @param dnc_list_id DncList ID
    # @param body DNC Phone Numbers
    # @param [Hash] opts the optional parameters
    # @return [Array<(nil, Fixnum, Hash)>] nil, response status code and response headers
    def post_outbound_dnclist_phonenumbers_with_http_info(dnc_list_id, body, opts = {})
      if @api_client.config.debugging
        @api_client.config.logger.debug "Calling API: OutboundApi.post_outbound_dnclist_phonenumbers ..."
      end
      
      
      # verify the required parameter 'dnc_list_id' is set
      fail ArgumentError, "Missing the required parameter 'dnc_list_id' when calling OutboundApi.post_outbound_dnclist_phonenumbers" if dnc_list_id.nil?
      
      
      
      
      
      
      # verify the required parameter 'body' is set
      fail ArgumentError, "Missing the required parameter 'body' when calling OutboundApi.post_outbound_dnclist_phonenumbers" if body.nil?
      
      
      
      
      
      # resource path
      local_var_path = "/api/v2/outbound/dnclists/{dncListId}/phonenumbers".sub('{format}','json').sub('{' + 'dncListId' + '}', dnc_list_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: OutboundApi#post_outbound_dnclist_phonenumbers\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
      end
      return data, status_code, headers
    end

    # Create dialer DNC list
    # 
    # @param body DncList
    # @param [Hash] opts the optional parameters
    # @return [DncList]
    def post_outbound_dnclists(body, opts = {})
      data, _status_code, _headers = post_outbound_dnclists_with_http_info(body, opts)
      return data
    end

    # Create dialer DNC list
    # 
    # @param body DncList
    # @param [Hash] opts the optional parameters
    # @return [Array<(DncList, Fixnum, Hash)>] DncList data, response status code and response headers
    def post_outbound_dnclists_with_http_info(body, opts = {})
      if @api_client.config.debugging
        @api_client.config.logger.debug "Calling API: OutboundApi.post_outbound_dnclists ..."
      end
      
      
      # verify the required parameter 'body' is set
      fail ArgumentError, "Missing the required parameter 'body' when calling OutboundApi.post_outbound_dnclists" if body.nil?
      
      
      
      
      
      # resource path
      local_var_path = "/api/v2/outbound/dnclists".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 => 'DncList')
      if @api_client.config.debugging
        @api_client.config.logger.debug "API called: OutboundApi#post_outbound_dnclists\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
      end
      return data, status_code, headers
    end

    # Create a Dialer Call Analysis Response Set.
    # 
    # @param body RuleSet
    # @param [Hash] opts the optional parameters
    # @return [RuleSet]
    def post_outbound_rulesets(body, opts = {})
      data, _status_code, _headers = post_outbound_rulesets_with_http_info(body, opts)
      return data
    end

    # Create a Dialer Call Analysis Response Set.
    # 
    # @param body RuleSet
    # @param [Hash] opts the optional parameters
    # @return [Array<(RuleSet, Fixnum, Hash)>] RuleSet data, response status code and response headers
    def post_outbound_rulesets_with_http_info(body, opts = {})
      if @api_client.config.debugging
        @api_client.config.logger.debug "Calling API: OutboundApi.post_outbound_rulesets ..."
      end
      
      
      # verify the required parameter 'body' is set
      fail ArgumentError, "Missing the required parameter 'body' when calling OutboundApi.post_outbound_rulesets" if body.nil?
      
      
      
      
      
      # resource path
      local_var_path = "/api/v2/outbound/rulesets".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 => 'RuleSet')
      if @api_client.config.debugging
        @api_client.config.logger.debug "API called: OutboundApi#post_outbound_rulesets\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
      end
      return data, status_code, headers
    end

    # Create a new campaign sequence.
    # 
    # @param body Organization
    # @param [Hash] opts the optional parameters
    # @return [CampaignSequence]
    def post_outbound_sequences(body, opts = {})
      data, _status_code, _headers = post_outbound_sequences_with_http_info(body, opts)
      return data
    end

    # Create a new campaign sequence.
    # 
    # @param body Organization
    # @param [Hash] opts the optional parameters
    # @return [Array<(CampaignSequence, Fixnum, Hash)>] CampaignSequence data, response status code and response headers
    def post_outbound_sequences_with_http_info(body, opts = {})
      if @api_client.config.debugging
        @api_client.config.logger.debug "Calling API: OutboundApi.post_outbound_sequences ..."
      end
      
      
      # verify the required parameter 'body' is set
      fail ArgumentError, "Missing the required parameter 'body' when calling OutboundApi.post_outbound_sequences" if body.nil?
      
      
      
      
      
      # resource path
      local_var_path = "/api/v2/outbound/sequences".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 => 'CampaignSequence')
      if @api_client.config.debugging
        @api_client.config.logger.debug "API called: OutboundApi#post_outbound_sequences\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
      end
      return data, status_code, headers
    end

    # Update attempt limits
    # 
    # @param attempt_limits_id Attempt limits ID
    # @param body AttemptLimits
    # @param [Hash] opts the optional parameters
    # @return [AttemptLimits]
    def put_outbound_attemptlimit(attempt_limits_id, body, opts = {})
      data, _status_code, _headers = put_outbound_attemptlimit_with_http_info(attempt_limits_id, body, opts)
      return data
    end

    # Update attempt limits
    # 
    # @param attempt_limits_id Attempt limits ID
    # @param body AttemptLimits
    # @param [Hash] opts the optional parameters
    # @return [Array<(AttemptLimits, Fixnum, Hash)>] AttemptLimits data, response status code and response headers
    def put_outbound_attemptlimit_with_http_info(attempt_limits_id, body, opts = {})
      if @api_client.config.debugging
        @api_client.config.logger.debug "Calling API: OutboundApi.put_outbound_attemptlimit ..."
      end
      
      
      # verify the required parameter 'attempt_limits_id' is set
      fail ArgumentError, "Missing the required parameter 'attempt_limits_id' when calling OutboundApi.put_outbound_attemptlimit" if attempt_limits_id.nil?
      
      
      
      
      
      
      # verify the required parameter 'body' is set
      fail ArgumentError, "Missing the required parameter 'body' when calling OutboundApi.put_outbound_attemptlimit" if body.nil?
      
      
      
      
      
      # resource path
      local_var_path = "/api/v2/outbound/attemptlimits/{attemptLimitsId}".sub('{format}','json').sub('{' + 'attemptLimitsId' + '}', attempt_limits_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 => 'AttemptLimits')
      if @api_client.config.debugging
        @api_client.config.logger.debug "API called: OutboundApi#put_outbound_attemptlimit\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
      end
      return data, status_code, headers
    end

    # Update callable time set
    # 
    # @param callable_time_set_id Callable Time Set ID
    # @param body DialerCallableTimeSet
    # @param [Hash] opts the optional parameters
    # @return [CallableTimeSet]
    def put_outbound_callabletimeset(callable_time_set_id, body, opts = {})
      data, _status_code, _headers = put_outbound_callabletimeset_with_http_info(callable_time_set_id, body, opts)
      return data
    end

    # Update callable time set
    # 
    # @param callable_time_set_id Callable Time Set ID
    # @param body DialerCallableTimeSet
    # @param [Hash] opts the optional parameters
    # @return [Array<(CallableTimeSet, Fixnum, Hash)>] CallableTimeSet data, response status code and response headers
    def put_outbound_callabletimeset_with_http_info(callable_time_set_id, body, opts = {})
      if @api_client.config.debugging
        @api_client.config.logger.debug "Calling API: OutboundApi.put_outbound_callabletimeset ..."
      end
      
      
      # verify the required parameter 'callable_time_set_id' is set
      fail ArgumentError, "Missing the required parameter 'callable_time_set_id' when calling OutboundApi.put_outbound_callabletimeset" if callable_time_set_id.nil?
      
      
      
      
      
      
      # verify the required parameter 'body' is set
      fail ArgumentError, "Missing the required parameter 'body' when calling OutboundApi.put_outbound_callabletimeset" if body.nil?
      
      
      
      
      
      # resource path
      local_var_path = "/api/v2/outbound/callabletimesets/{callableTimeSetId}".sub('{format}','json').sub('{' + 'callableTimeSetId' + '}', callable_time_set_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 => 'CallableTimeSet')
      if @api_client.config.debugging
        @api_client.config.logger.debug "API called: OutboundApi#put_outbound_callabletimeset\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
      end
      return data, status_code, headers
    end

    # Update a dialer call analysis response set.
    # 
    # @param call_analysis_set_id Call Analysis Response Set ID
    # @param body ResponseSet
    # @param [Hash] opts the optional parameters
    # @return [ResponseSet]
    def put_outbound_callanalysisresponseset(call_analysis_set_id, body, opts = {})
      data, _status_code, _headers = put_outbound_callanalysisresponseset_with_http_info(call_analysis_set_id, body, opts)
      return data
    end

    # Update a dialer call analysis response set.
    # 
    # @param call_analysis_set_id Call Analysis Response Set ID
    # @param body ResponseSet
    # @param [Hash] opts the optional parameters
    # @return [Array<(ResponseSet, Fixnum, Hash)>] ResponseSet data, response status code and response headers
    def put_outbound_callanalysisresponseset_with_http_info(call_analysis_set_id, body, opts = {})
      if @api_client.config.debugging
        @api_client.config.logger.debug "Calling API: OutboundApi.put_outbound_callanalysisresponseset ..."
      end
      
      
      # verify the required parameter 'call_analysis_set_id' is set
      fail ArgumentError, "Missing the required parameter 'call_analysis_set_id' when calling OutboundApi.put_outbound_callanalysisresponseset" if call_analysis_set_id.nil?
      
      
      
      
      
      
      # verify the required parameter 'body' is set
      fail ArgumentError, "Missing the required parameter 'body' when calling OutboundApi.put_outbound_callanalysisresponseset" if body.nil?
      
      
      
      
      
      # resource path
      local_var_path = "/api/v2/outbound/callanalysisresponsesets/{callAnalysisSetId}".sub('{format}','json').sub('{' + 'callAnalysisSetId' + '}', call_analysis_set_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 => 'ResponseSet')
      if @api_client.config.debugging
        @api_client.config.logger.debug "API called: OutboundApi#put_outbound_callanalysisresponseset\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
      end
      return data, status_code, headers
    end

    # Update a campaign.
    # 
    # @param campaign_id Campaign ID
    # @param body Campaign
    # @param [Hash] opts the optional parameters
    # @return [Campaign]
    def put_outbound_campaign(campaign_id, body, opts = {})
      data, _status_code, _headers = put_outbound_campaign_with_http_info(campaign_id, body, opts)
      return data
    end

    # Update a campaign.
    # 
    # @param campaign_id Campaign ID
    # @param body Campaign
    # @param [Hash] opts the optional parameters
    # @return [Array<(Campaign, Fixnum, Hash)>] Campaign data, response status code and response headers
    def put_outbound_campaign_with_http_info(campaign_id, body, opts = {})
      if @api_client.config.debugging
        @api_client.config.logger.debug "Calling API: OutboundApi.put_outbound_campaign ..."
      end
      
      
      # verify the required parameter 'campaign_id' is set
      fail ArgumentError, "Missing the required parameter 'campaign_id' when calling OutboundApi.put_outbound_campaign" if campaign_id.nil?
      
      
      
      
      
      
      # verify the required parameter 'body' is set
      fail ArgumentError, "Missing the required parameter 'body' when calling OutboundApi.put_outbound_campaign" if body.nil?
      
      
      
      
      
      # resource path
      local_var_path = "/api/v2/outbound/campaigns/{campaignId}".sub('{format}','json').sub('{' + 'campaignId' + '}', campaign_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 => 'Campaign')
      if @api_client.config.debugging
        @api_client.config.logger.debug "API called: OutboundApi#put_outbound_campaign\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
      end
      return data, status_code, headers
    end

    # Send notification that an agent's state changed 
    # New agent state.
    # @param campaign_id Campaign ID
    # @param user_id Agent&#39;s user ID
    # @param body agent
    # @param [Hash] opts the optional parameters
    # @return [String]
    def put_outbound_campaign_agent(campaign_id, user_id, body, opts = {})
      data, _status_code, _headers = put_outbound_campaign_agent_with_http_info(campaign_id, user_id, body, opts)
      return data
    end

    # Send notification that an agent&#39;s state changed 
    # New agent state.
    # @param campaign_id Campaign ID
    # @param user_id Agent&#39;s user ID
    # @param body agent
    # @param [Hash] opts the optional parameters
    # @return [Array<(String, Fixnum, Hash)>] String data, response status code and response headers
    def put_outbound_campaign_agent_with_http_info(campaign_id, user_id, body, opts = {})
      if @api_client.config.debugging
        @api_client.config.logger.debug "Calling API: OutboundApi.put_outbound_campaign_agent ..."
      end
      
      
      # verify the required parameter 'campaign_id' is set
      fail ArgumentError, "Missing the required parameter 'campaign_id' when calling OutboundApi.put_outbound_campaign_agent" if campaign_id.nil?
      
      
      
      
      
      
      # verify the required parameter 'user_id' is set
      fail ArgumentError, "Missing the required parameter 'user_id' when calling OutboundApi.put_outbound_campaign_agent" if user_id.nil?
      
      
      
      
      
      
      # verify the required parameter 'body' is set
      fail ArgumentError, "Missing the required parameter 'body' when calling OutboundApi.put_outbound_campaign_agent" if body.nil?
      
      
      
      
      
      # resource path
      local_var_path = "/api/v2/outbound/campaigns/{campaignId}/agents/{userId}".sub('{format}','json').sub('{' + 'campaignId' + '}', campaign_id.to_s).sub('{' + 'userId' + '}', user_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 => 'String')
      if @api_client.config.debugging
        @api_client.config.logger.debug "API called: OutboundApi#put_outbound_campaign_agent\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
      end
      return data, status_code, headers
    end

    # Update Campaign Rule
    # 
    # @param campaign_rule_id Campaign Rule ID
    # @param body CampaignRule
    # @param [Hash] opts the optional parameters
    # @return [CampaignRule]
    def put_outbound_campaignrule(campaign_rule_id, body, opts = {})
      data, _status_code, _headers = put_outbound_campaignrule_with_http_info(campaign_rule_id, body, opts)
      return data
    end

    # Update Campaign Rule
    # 
    # @param campaign_rule_id Campaign Rule ID
    # @param body CampaignRule
    # @param [Hash] opts the optional parameters
    # @return [Array<(CampaignRule, Fixnum, Hash)>] CampaignRule data, response status code and response headers
    def put_outbound_campaignrule_with_http_info(campaign_rule_id, body, opts = {})
      if @api_client.config.debugging
        @api_client.config.logger.debug "Calling API: OutboundApi.put_outbound_campaignrule ..."
      end
      
      
      # verify the required parameter 'campaign_rule_id' is set
      fail ArgumentError, "Missing the required parameter 'campaign_rule_id' when calling OutboundApi.put_outbound_campaignrule" if campaign_rule_id.nil?
      
      
      
      
      
      
      # verify the required parameter 'body' is set
      fail ArgumentError, "Missing the required parameter 'body' when calling OutboundApi.put_outbound_campaignrule" if body.nil?
      
      
      
      
      
      # resource path
      local_var_path = "/api/v2/outbound/campaignrules/{campaignRuleId}".sub('{format}','json').sub('{' + 'campaignRuleId' + '}', campaign_rule_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 => 'CampaignRule')
      if @api_client.config.debugging
        @api_client.config.logger.debug "API called: OutboundApi#put_outbound_campaignrule\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
      end
      return data, status_code, headers
    end

    # Update a contact list.
    # 
    # @param contact_list_id ContactList ID
    # @param body ContactList
    # @param [Hash] opts the optional parameters
    # @return [ContactList]
    def put_outbound_contactlist(contact_list_id, body, opts = {})
      data, _status_code, _headers = put_outbound_contactlist_with_http_info(contact_list_id, body, opts)
      return data
    end

    # Update a contact list.
    # 
    # @param contact_list_id ContactList ID
    # @param body ContactList
    # @param [Hash] opts the optional parameters
    # @return [Array<(ContactList, Fixnum, Hash)>] ContactList data, response status code and response headers
    def put_outbound_contactlist_with_http_info(contact_list_id, body, opts = {})
      if @api_client.config.debugging
        @api_client.config.logger.debug "Calling API: OutboundApi.put_outbound_contactlist ..."
      end
      
      
      # verify the required parameter 'contact_list_id' is set
      fail ArgumentError, "Missing the required parameter 'contact_list_id' when calling OutboundApi.put_outbound_contactlist" if contact_list_id.nil?
      
      
      
      
      
      
      # verify the required parameter 'body' is set
      fail ArgumentError, "Missing the required parameter 'body' when calling OutboundApi.put_outbound_contactlist" if body.nil?
      
      
      
      
      
      # resource path
      local_var_path = "/api/v2/outbound/contactlists/{contactListId}".sub('{format}','json').sub('{' + 'contactListId' + '}', contact_list_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 => 'ContactList')
      if @api_client.config.debugging
        @api_client.config.logger.debug "API called: OutboundApi#put_outbound_contactlist\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
      end
      return data, status_code, headers
    end

    # Update a contact.
    # 
    # @param contact_list_id Contact List ID
    # @param contact_id Contact ID
    # @param body Contact
    # @param [Hash] opts the optional parameters
    # @return [DialerContact]
    def put_outbound_contactlist_contact(contact_list_id, contact_id, body, opts = {})
      data, _status_code, _headers = put_outbound_contactlist_contact_with_http_info(contact_list_id, contact_id, body, opts)
      return data
    end

    # Update a contact.
    # 
    # @param contact_list_id Contact List ID
    # @param contact_id Contact ID
    # @param body Contact
    # @param [Hash] opts the optional parameters
    # @return [Array<(DialerContact, Fixnum, Hash)>] DialerContact data, response status code and response headers
    def put_outbound_contactlist_contact_with_http_info(contact_list_id, contact_id, body, opts = {})
      if @api_client.config.debugging
        @api_client.config.logger.debug "Calling API: OutboundApi.put_outbound_contactlist_contact ..."
      end
      
      
      # verify the required parameter 'contact_list_id' is set
      fail ArgumentError, "Missing the required parameter 'contact_list_id' when calling OutboundApi.put_outbound_contactlist_contact" if contact_list_id.nil?
      
      
      
      
      
      
      # verify the required parameter 'contact_id' is set
      fail ArgumentError, "Missing the required parameter 'contact_id' when calling OutboundApi.put_outbound_contactlist_contact" if contact_id.nil?
      
      
      
      
      
      
      # verify the required parameter 'body' is set
      fail ArgumentError, "Missing the required parameter 'body' when calling OutboundApi.put_outbound_contactlist_contact" if body.nil?
      
      
      
      
      
      # resource path
      local_var_path = "/api/v2/outbound/contactlists/{contactListId}/contacts/{contactId}".sub('{format}','json').sub('{' + 'contactListId' + '}', contact_list_id.to_s).sub('{' + 'contactId' + '}', contact_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 => 'DialerContact')
      if @api_client.config.debugging
        @api_client.config.logger.debug "API called: OutboundApi#put_outbound_contactlist_contact\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
      end
      return data, status_code, headers
    end

    # Update Contact List Filter
    # 
    # @param contact_list_filter_id Contact List Filter ID
    # @param body ContactListFilter
    # @param [Hash] opts the optional parameters
    # @return [ContactListFilter]
    def put_outbound_contactlistfilter(contact_list_filter_id, body, opts = {})
      data, _status_code, _headers = put_outbound_contactlistfilter_with_http_info(contact_list_filter_id, body, opts)
      return data
    end

    # Update Contact List Filter
    # 
    # @param contact_list_filter_id Contact List Filter ID
    # @param body ContactListFilter
    # @param [Hash] opts the optional parameters
    # @return [Array<(ContactListFilter, Fixnum, Hash)>] ContactListFilter data, response status code and response headers
    def put_outbound_contactlistfilter_with_http_info(contact_list_filter_id, body, opts = {})
      if @api_client.config.debugging
        @api_client.config.logger.debug "Calling API: OutboundApi.put_outbound_contactlistfilter ..."
      end
      
      
      # verify the required parameter 'contact_list_filter_id' is set
      fail ArgumentError, "Missing the required parameter 'contact_list_filter_id' when calling OutboundApi.put_outbound_contactlistfilter" if contact_list_filter_id.nil?
      
      
      
      
      
      
      # verify the required parameter 'body' is set
      fail ArgumentError, "Missing the required parameter 'body' when calling OutboundApi.put_outbound_contactlistfilter" if body.nil?
      
      
      
      
      
      # resource path
      local_var_path = "/api/v2/outbound/contactlistfilters/{contactListFilterId}".sub('{format}','json').sub('{' + 'contactListFilterId' + '}', contact_list_filter_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 => 'ContactListFilter')
      if @api_client.config.debugging
        @api_client.config.logger.debug "API called: OutboundApi#put_outbound_contactlistfilter\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
      end
      return data, status_code, headers
    end

    # Update dialer DNC list
    # 
    # @param dnc_list_id DncList ID
    # @param body DncList
    # @param [Hash] opts the optional parameters
    # @return [DncList]
    def put_outbound_dnclist(dnc_list_id, body, opts = {})
      data, _status_code, _headers = put_outbound_dnclist_with_http_info(dnc_list_id, body, opts)
      return data
    end

    # Update dialer DNC list
    # 
    # @param dnc_list_id DncList ID
    # @param body DncList
    # @param [Hash] opts the optional parameters
    # @return [Array<(DncList, Fixnum, Hash)>] DncList data, response status code and response headers
    def put_outbound_dnclist_with_http_info(dnc_list_id, body, opts = {})
      if @api_client.config.debugging
        @api_client.config.logger.debug "Calling API: OutboundApi.put_outbound_dnclist ..."
      end
      
      
      # verify the required parameter 'dnc_list_id' is set
      fail ArgumentError, "Missing the required parameter 'dnc_list_id' when calling OutboundApi.put_outbound_dnclist" if dnc_list_id.nil?
      
      
      
      
      
      
      # verify the required parameter 'body' is set
      fail ArgumentError, "Missing the required parameter 'body' when calling OutboundApi.put_outbound_dnclist" if body.nil?
      
      
      
      
      
      # resource path
      local_var_path = "/api/v2/outbound/dnclists/{dncListId}".sub('{format}','json').sub('{' + 'dncListId' + '}', dnc_list_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 => 'DncList')
      if @api_client.config.debugging
        @api_client.config.logger.debug "API called: OutboundApi#put_outbound_dnclist\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
      end
      return data, status_code, headers
    end

    # Update a RuleSet.
    # 
    # @param rule_set_id Rule Set ID
    # @param body RuleSet
    # @param [Hash] opts the optional parameters
    # @return [RuleSet]
    def put_outbound_ruleset(rule_set_id, body, opts = {})
      data, _status_code, _headers = put_outbound_ruleset_with_http_info(rule_set_id, body, opts)
      return data
    end

    # Update a RuleSet.
    # 
    # @param rule_set_id Rule Set ID
    # @param body RuleSet
    # @param [Hash] opts the optional parameters
    # @return [Array<(RuleSet, Fixnum, Hash)>] RuleSet data, response status code and response headers
    def put_outbound_ruleset_with_http_info(rule_set_id, body, opts = {})
      if @api_client.config.debugging
        @api_client.config.logger.debug "Calling API: OutboundApi.put_outbound_ruleset ..."
      end
      
      
      # verify the required parameter 'rule_set_id' is set
      fail ArgumentError, "Missing the required parameter 'rule_set_id' when calling OutboundApi.put_outbound_ruleset" if rule_set_id.nil?
      
      
      
      
      
      
      # verify the required parameter 'body' is set
      fail ArgumentError, "Missing the required parameter 'body' when calling OutboundApi.put_outbound_ruleset" if body.nil?
      
      
      
      
      
      # resource path
      local_var_path = "/api/v2/outbound/rulesets/{ruleSetId}".sub('{format}','json').sub('{' + 'ruleSetId' + '}', rule_set_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 => 'RuleSet')
      if @api_client.config.debugging
        @api_client.config.logger.debug "API called: OutboundApi#put_outbound_ruleset\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
      end
      return data, status_code, headers
    end

    # Update a new campaign schedule.
    # 
    # @param campaign_id Campaign ID
    # @param body CampaignSchedule
    # @param [Hash] opts the optional parameters
    # @return [CampaignSchedule]
    def put_outbound_schedules_campaign(campaign_id, body, opts = {})
      data, _status_code, _headers = put_outbound_schedules_campaign_with_http_info(campaign_id, body, opts)
      return data
    end

    # Update a new campaign schedule.
    # 
    # @param campaign_id Campaign ID
    # @param body CampaignSchedule
    # @param [Hash] opts the optional parameters
    # @return [Array<(CampaignSchedule, Fixnum, Hash)>] CampaignSchedule data, response status code and response headers
    def put_outbound_schedules_campaign_with_http_info(campaign_id, body, opts = {})
      if @api_client.config.debugging
        @api_client.config.logger.debug "Calling API: OutboundApi.put_outbound_schedules_campaign ..."
      end
      
      
      # verify the required parameter 'campaign_id' is set
      fail ArgumentError, "Missing the required parameter 'campaign_id' when calling OutboundApi.put_outbound_schedules_campaign" if campaign_id.nil?
      
      
      
      
      
      
      # verify the required parameter 'body' is set
      fail ArgumentError, "Missing the required parameter 'body' when calling OutboundApi.put_outbound_schedules_campaign" if body.nil?
      
      
      
      
      
      # resource path
      local_var_path = "/api/v2/outbound/schedules/campaigns/{campaignId}".sub('{format}','json').sub('{' + 'campaignId' + '}', campaign_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 => 'CampaignSchedule')
      if @api_client.config.debugging
        @api_client.config.logger.debug "API called: OutboundApi#put_outbound_schedules_campaign\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
      end
      return data, status_code, headers
    end

    # Update a new sequence schedule.
    # 
    # @param sequence_id Sequence ID
    # @param body SequenceSchedule
    # @param [Hash] opts the optional parameters
    # @return [SequenceSchedule]
    def put_outbound_schedules_sequence(sequence_id, body, opts = {})
      data, _status_code, _headers = put_outbound_schedules_sequence_with_http_info(sequence_id, body, opts)
      return data
    end

    # Update a new sequence schedule.
    # 
    # @param sequence_id Sequence ID
    # @param body SequenceSchedule
    # @param [Hash] opts the optional parameters
    # @return [Array<(SequenceSchedule, Fixnum, Hash)>] SequenceSchedule data, response status code and response headers
    def put_outbound_schedules_sequence_with_http_info(sequence_id, body, opts = {})
      if @api_client.config.debugging
        @api_client.config.logger.debug "Calling API: OutboundApi.put_outbound_schedules_sequence ..."
      end
      
      
      # verify the required parameter 'sequence_id' is set
      fail ArgumentError, "Missing the required parameter 'sequence_id' when calling OutboundApi.put_outbound_schedules_sequence" if sequence_id.nil?
      
      
      
      
      
      
      # verify the required parameter 'body' is set
      fail ArgumentError, "Missing the required parameter 'body' when calling OutboundApi.put_outbound_schedules_sequence" if body.nil?
      
      
      
      
      
      # resource path
      local_var_path = "/api/v2/outbound/schedules/sequences/{sequenceId}".sub('{format}','json').sub('{' + 'sequenceId' + '}', sequence_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 => 'SequenceSchedule')
      if @api_client.config.debugging
        @api_client.config.logger.debug "API called: OutboundApi#put_outbound_schedules_sequence\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
      end
      return data, status_code, headers
    end

    # Update a new campaign sequence.
    # 
    # @param sequence_id Campaign Sequence ID
    # @param body Organization
    # @param [Hash] opts the optional parameters
    # @return [CampaignSequence]
    def put_outbound_sequence(sequence_id, body, opts = {})
      data, _status_code, _headers = put_outbound_sequence_with_http_info(sequence_id, body, opts)
      return data
    end

    # Update a new campaign sequence.
    # 
    # @param sequence_id Campaign Sequence ID
    # @param body Organization
    # @param [Hash] opts the optional parameters
    # @return [Array<(CampaignSequence, Fixnum, Hash)>] CampaignSequence data, response status code and response headers
    def put_outbound_sequence_with_http_info(sequence_id, body, opts = {})
      if @api_client.config.debugging
        @api_client.config.logger.debug "Calling API: OutboundApi.put_outbound_sequence ..."
      end
      
      
      # verify the required parameter 'sequence_id' is set
      fail ArgumentError, "Missing the required parameter 'sequence_id' when calling OutboundApi.put_outbound_sequence" if sequence_id.nil?
      
      
      
      
      
      
      # verify the required parameter 'body' is set
      fail ArgumentError, "Missing the required parameter 'body' when calling OutboundApi.put_outbound_sequence" if body.nil?
      
      
      
      
      
      # resource path
      local_var_path = "/api/v2/outbound/sequences/{sequenceId}".sub('{format}','json').sub('{' + 'sequenceId' + '}', sequence_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 => 'CampaignSequence')
      if @api_client.config.debugging
        @api_client.config.logger.debug "API called: OutboundApi#put_outbound_sequence\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
      end
      return data, status_code, headers
    end

    # Update the Dialer wrap up code mapping.
    # 
    # @param body wrapUpCodeMapping
    # @param [Hash] opts the optional parameters
    # @return [WrapUpCodeMapping]
    def put_outbound_wrapupcodemappings(body, opts = {})
      data, _status_code, _headers = put_outbound_wrapupcodemappings_with_http_info(body, opts)
      return data
    end

    # Update the Dialer wrap up code mapping.
    # 
    # @param body wrapUpCodeMapping
    # @param [Hash] opts the optional parameters
    # @return [Array<(WrapUpCodeMapping, Fixnum, Hash)>] WrapUpCodeMapping data, response status code and response headers
    def put_outbound_wrapupcodemappings_with_http_info(body, opts = {})
      if @api_client.config.debugging
        @api_client.config.logger.debug "Calling API: OutboundApi.put_outbound_wrapupcodemappings ..."
      end
      
      
      # verify the required parameter 'body' is set
      fail ArgumentError, "Missing the required parameter 'body' when calling OutboundApi.put_outbound_wrapupcodemappings" if body.nil?
      
      
      
      
      
      # resource path
      local_var_path = "/api/v2/outbound/wrapupcodemappings".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(: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 => 'WrapUpCodeMapping')
      if @api_client.config.debugging
        @api_client.config.logger.debug "API called: OutboundApi#put_outbound_wrapupcodemappings\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
      end
      return data, status_code, headers
    end
  end
end
