=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@inin.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 IdentityProviderApi
    attr_accessor :api_client

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

    # Delete ADFS Identity Provider
    # 
    # @param [Hash] opts the optional parameters
    # @return [Empty]
    def delete_identityproviders_adfs(opts = {})
      data, _status_code, _headers = delete_identityproviders_adfs_with_http_info(opts)
      return data
    end

    # Delete ADFS Identity Provider
    # 
    # @param [Hash] opts the optional parameters
    # @return [Array<(Empty, Fixnum, Hash)>] Empty data, response status code and response headers
    def delete_identityproviders_adfs_with_http_info(opts = {})
      if @api_client.config.debugging
        @api_client.config.logger.debug "Calling API: IdentityProviderApi.delete_identityproviders_adfs ..."
      end
      # resource path
      local_var_path = "/api/v2/identityproviders/adfs".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(: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 => 'Empty')
      if @api_client.config.debugging
        @api_client.config.logger.debug "API called: IdentityProviderApi#delete_identityproviders_adfs\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
      end
      return data, status_code, headers
    end

    # Delete Customer Interaction Center (CIC) Identity Provider
    # 
    # @param [Hash] opts the optional parameters
    # @return [Empty]
    def delete_identityproviders_cic(opts = {})
      data, _status_code, _headers = delete_identityproviders_cic_with_http_info(opts)
      return data
    end

    # Delete Customer Interaction Center (CIC) Identity Provider
    # 
    # @param [Hash] opts the optional parameters
    # @return [Array<(Empty, Fixnum, Hash)>] Empty data, response status code and response headers
    def delete_identityproviders_cic_with_http_info(opts = {})
      if @api_client.config.debugging
        @api_client.config.logger.debug "Calling API: IdentityProviderApi.delete_identityproviders_cic ..."
      end
      # resource path
      local_var_path = "/api/v2/identityproviders/cic".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(: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 => 'Empty')
      if @api_client.config.debugging
        @api_client.config.logger.debug "API called: IdentityProviderApi#delete_identityproviders_cic\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
      end
      return data, status_code, headers
    end

    # Delete G Suite Identity Provider
    # 
    # @param [Hash] opts the optional parameters
    # @return [Empty]
    def delete_identityproviders_gsuite(opts = {})
      data, _status_code, _headers = delete_identityproviders_gsuite_with_http_info(opts)
      return data
    end

    # Delete G Suite Identity Provider
    # 
    # @param [Hash] opts the optional parameters
    # @return [Array<(Empty, Fixnum, Hash)>] Empty data, response status code and response headers
    def delete_identityproviders_gsuite_with_http_info(opts = {})
      if @api_client.config.debugging
        @api_client.config.logger.debug "Calling API: IdentityProviderApi.delete_identityproviders_gsuite ..."
      end
      # resource path
      local_var_path = "/api/v2/identityproviders/gsuite".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(: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 => 'Empty')
      if @api_client.config.debugging
        @api_client.config.logger.debug "API called: IdentityProviderApi#delete_identityproviders_gsuite\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
      end
      return data, status_code, headers
    end

    # Delete IdentityNow Provider
    # 
    # @param [Hash] opts the optional parameters
    # @return [Empty]
    def delete_identityproviders_identitynow(opts = {})
      data, _status_code, _headers = delete_identityproviders_identitynow_with_http_info(opts)
      return data
    end

    # Delete IdentityNow Provider
    # 
    # @param [Hash] opts the optional parameters
    # @return [Array<(Empty, Fixnum, Hash)>] Empty data, response status code and response headers
    def delete_identityproviders_identitynow_with_http_info(opts = {})
      if @api_client.config.debugging
        @api_client.config.logger.debug "Calling API: IdentityProviderApi.delete_identityproviders_identitynow ..."
      end
      # resource path
      local_var_path = "/api/v2/identityproviders/identitynow".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(: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 => 'Empty')
      if @api_client.config.debugging
        @api_client.config.logger.debug "API called: IdentityProviderApi#delete_identityproviders_identitynow\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
      end
      return data, status_code, headers
    end

    # Delete Okta Identity Provider
    # 
    # @param [Hash] opts the optional parameters
    # @return [Empty]
    def delete_identityproviders_okta(opts = {})
      data, _status_code, _headers = delete_identityproviders_okta_with_http_info(opts)
      return data
    end

    # Delete Okta Identity Provider
    # 
    # @param [Hash] opts the optional parameters
    # @return [Array<(Empty, Fixnum, Hash)>] Empty data, response status code and response headers
    def delete_identityproviders_okta_with_http_info(opts = {})
      if @api_client.config.debugging
        @api_client.config.logger.debug "Calling API: IdentityProviderApi.delete_identityproviders_okta ..."
      end
      # resource path
      local_var_path = "/api/v2/identityproviders/okta".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(: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 => 'Empty')
      if @api_client.config.debugging
        @api_client.config.logger.debug "API called: IdentityProviderApi#delete_identityproviders_okta\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
      end
      return data, status_code, headers
    end

    # Delete OneLogin Identity Provider
    # 
    # @param [Hash] opts the optional parameters
    # @return [Empty]
    def delete_identityproviders_onelogin(opts = {})
      data, _status_code, _headers = delete_identityproviders_onelogin_with_http_info(opts)
      return data
    end

    # Delete OneLogin Identity Provider
    # 
    # @param [Hash] opts the optional parameters
    # @return [Array<(Empty, Fixnum, Hash)>] Empty data, response status code and response headers
    def delete_identityproviders_onelogin_with_http_info(opts = {})
      if @api_client.config.debugging
        @api_client.config.logger.debug "Calling API: IdentityProviderApi.delete_identityproviders_onelogin ..."
      end
      # resource path
      local_var_path = "/api/v2/identityproviders/onelogin".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(: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 => 'Empty')
      if @api_client.config.debugging
        @api_client.config.logger.debug "API called: IdentityProviderApi#delete_identityproviders_onelogin\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
      end
      return data, status_code, headers
    end

    # Delete Ping Identity Provider
    # 
    # @param [Hash] opts the optional parameters
    # @return [Empty]
    def delete_identityproviders_ping(opts = {})
      data, _status_code, _headers = delete_identityproviders_ping_with_http_info(opts)
      return data
    end

    # Delete Ping Identity Provider
    # 
    # @param [Hash] opts the optional parameters
    # @return [Array<(Empty, Fixnum, Hash)>] Empty data, response status code and response headers
    def delete_identityproviders_ping_with_http_info(opts = {})
      if @api_client.config.debugging
        @api_client.config.logger.debug "Calling API: IdentityProviderApi.delete_identityproviders_ping ..."
      end
      # resource path
      local_var_path = "/api/v2/identityproviders/ping".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(: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 => 'Empty')
      if @api_client.config.debugging
        @api_client.config.logger.debug "API called: IdentityProviderApi#delete_identityproviders_ping\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
      end
      return data, status_code, headers
    end

    # Delete PureCloud Identity Provider
    # 
    # @param [Hash] opts the optional parameters
    # @return [Empty]
    def delete_identityproviders_purecloud(opts = {})
      data, _status_code, _headers = delete_identityproviders_purecloud_with_http_info(opts)
      return data
    end

    # Delete PureCloud Identity Provider
    # 
    # @param [Hash] opts the optional parameters
    # @return [Array<(Empty, Fixnum, Hash)>] Empty data, response status code and response headers
    def delete_identityproviders_purecloud_with_http_info(opts = {})
      if @api_client.config.debugging
        @api_client.config.logger.debug "Calling API: IdentityProviderApi.delete_identityproviders_purecloud ..."
      end
      # resource path
      local_var_path = "/api/v2/identityproviders/purecloud".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(: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 => 'Empty')
      if @api_client.config.debugging
        @api_client.config.logger.debug "API called: IdentityProviderApi#delete_identityproviders_purecloud\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
      end
      return data, status_code, headers
    end

    # Delete Salesforce Identity Provider
    # 
    # @param [Hash] opts the optional parameters
    # @return [Empty]
    def delete_identityproviders_salesforce(opts = {})
      data, _status_code, _headers = delete_identityproviders_salesforce_with_http_info(opts)
      return data
    end

    # Delete Salesforce Identity Provider
    # 
    # @param [Hash] opts the optional parameters
    # @return [Array<(Empty, Fixnum, Hash)>] Empty data, response status code and response headers
    def delete_identityproviders_salesforce_with_http_info(opts = {})
      if @api_client.config.debugging
        @api_client.config.logger.debug "Calling API: IdentityProviderApi.delete_identityproviders_salesforce ..."
      end
      # resource path
      local_var_path = "/api/v2/identityproviders/salesforce".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(: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 => 'Empty')
      if @api_client.config.debugging
        @api_client.config.logger.debug "API called: IdentityProviderApi#delete_identityproviders_salesforce\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
      end
      return data, status_code, headers
    end

    # The list of identity providers
    # 
    # @param [Hash] opts the optional parameters
    # @return [OAuthProviderEntityListing]
    def get_identityproviders(opts = {})
      data, _status_code, _headers = get_identityproviders_with_http_info(opts)
      return data
    end

    # The list of identity providers
    # 
    # @param [Hash] opts the optional parameters
    # @return [Array<(OAuthProviderEntityListing, Fixnum, Hash)>] OAuthProviderEntityListing data, response status code and response headers
    def get_identityproviders_with_http_info(opts = {})
      if @api_client.config.debugging
        @api_client.config.logger.debug "Calling API: IdentityProviderApi.get_identityproviders ..."
      end
      # resource path
      local_var_path = "/api/v2/identityproviders".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 => 'OAuthProviderEntityListing')
      if @api_client.config.debugging
        @api_client.config.logger.debug "API called: IdentityProviderApi#get_identityproviders\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
      end
      return data, status_code, headers
    end

    # Get ADFS Identity Provider
    # 
    # @param [Hash] opts the optional parameters
    # @return [ADFS]
    def get_identityproviders_adfs(opts = {})
      data, _status_code, _headers = get_identityproviders_adfs_with_http_info(opts)
      return data
    end

    # Get ADFS Identity Provider
    # 
    # @param [Hash] opts the optional parameters
    # @return [Array<(ADFS, Fixnum, Hash)>] ADFS data, response status code and response headers
    def get_identityproviders_adfs_with_http_info(opts = {})
      if @api_client.config.debugging
        @api_client.config.logger.debug "Calling API: IdentityProviderApi.get_identityproviders_adfs ..."
      end
      # resource path
      local_var_path = "/api/v2/identityproviders/adfs".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 => 'ADFS')
      if @api_client.config.debugging
        @api_client.config.logger.debug "API called: IdentityProviderApi#get_identityproviders_adfs\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
      end
      return data, status_code, headers
    end

    # Get Customer Interaction Center (CIC) Identity Provider
    # 
    # @param [Hash] opts the optional parameters
    # @return [CustomerInteractionCenter]
    def get_identityproviders_cic(opts = {})
      data, _status_code, _headers = get_identityproviders_cic_with_http_info(opts)
      return data
    end

    # Get Customer Interaction Center (CIC) Identity Provider
    # 
    # @param [Hash] opts the optional parameters
    # @return [Array<(CustomerInteractionCenter, Fixnum, Hash)>] CustomerInteractionCenter data, response status code and response headers
    def get_identityproviders_cic_with_http_info(opts = {})
      if @api_client.config.debugging
        @api_client.config.logger.debug "Calling API: IdentityProviderApi.get_identityproviders_cic ..."
      end
      # resource path
      local_var_path = "/api/v2/identityproviders/cic".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 => 'CustomerInteractionCenter')
      if @api_client.config.debugging
        @api_client.config.logger.debug "API called: IdentityProviderApi#get_identityproviders_cic\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
      end
      return data, status_code, headers
    end

    # Get G Suite Identity Provider
    # 
    # @param [Hash] opts the optional parameters
    # @return [GSuite]
    def get_identityproviders_gsuite(opts = {})
      data, _status_code, _headers = get_identityproviders_gsuite_with_http_info(opts)
      return data
    end

    # Get G Suite Identity Provider
    # 
    # @param [Hash] opts the optional parameters
    # @return [Array<(GSuite, Fixnum, Hash)>] GSuite data, response status code and response headers
    def get_identityproviders_gsuite_with_http_info(opts = {})
      if @api_client.config.debugging
        @api_client.config.logger.debug "Calling API: IdentityProviderApi.get_identityproviders_gsuite ..."
      end
      # resource path
      local_var_path = "/api/v2/identityproviders/gsuite".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 => 'GSuite')
      if @api_client.config.debugging
        @api_client.config.logger.debug "API called: IdentityProviderApi#get_identityproviders_gsuite\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
      end
      return data, status_code, headers
    end

    # Get IdentityNow Provider
    # 
    # @param [Hash] opts the optional parameters
    # @return [IdentityNow]
    def get_identityproviders_identitynow(opts = {})
      data, _status_code, _headers = get_identityproviders_identitynow_with_http_info(opts)
      return data
    end

    # Get IdentityNow Provider
    # 
    # @param [Hash] opts the optional parameters
    # @return [Array<(IdentityNow, Fixnum, Hash)>] IdentityNow data, response status code and response headers
    def get_identityproviders_identitynow_with_http_info(opts = {})
      if @api_client.config.debugging
        @api_client.config.logger.debug "Calling API: IdentityProviderApi.get_identityproviders_identitynow ..."
      end
      # resource path
      local_var_path = "/api/v2/identityproviders/identitynow".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 => 'IdentityNow')
      if @api_client.config.debugging
        @api_client.config.logger.debug "API called: IdentityProviderApi#get_identityproviders_identitynow\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
      end
      return data, status_code, headers
    end

    # Get Okta Identity Provider
    # 
    # @param [Hash] opts the optional parameters
    # @return [Okta]
    def get_identityproviders_okta(opts = {})
      data, _status_code, _headers = get_identityproviders_okta_with_http_info(opts)
      return data
    end

    # Get Okta Identity Provider
    # 
    # @param [Hash] opts the optional parameters
    # @return [Array<(Okta, Fixnum, Hash)>] Okta data, response status code and response headers
    def get_identityproviders_okta_with_http_info(opts = {})
      if @api_client.config.debugging
        @api_client.config.logger.debug "Calling API: IdentityProviderApi.get_identityproviders_okta ..."
      end
      # resource path
      local_var_path = "/api/v2/identityproviders/okta".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 => 'Okta')
      if @api_client.config.debugging
        @api_client.config.logger.debug "API called: IdentityProviderApi#get_identityproviders_okta\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
      end
      return data, status_code, headers
    end

    # Get OneLogin Identity Provider
    # 
    # @param [Hash] opts the optional parameters
    # @return [OneLogin]
    def get_identityproviders_onelogin(opts = {})
      data, _status_code, _headers = get_identityproviders_onelogin_with_http_info(opts)
      return data
    end

    # Get OneLogin Identity Provider
    # 
    # @param [Hash] opts the optional parameters
    # @return [Array<(OneLogin, Fixnum, Hash)>] OneLogin data, response status code and response headers
    def get_identityproviders_onelogin_with_http_info(opts = {})
      if @api_client.config.debugging
        @api_client.config.logger.debug "Calling API: IdentityProviderApi.get_identityproviders_onelogin ..."
      end
      # resource path
      local_var_path = "/api/v2/identityproviders/onelogin".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 => 'OneLogin')
      if @api_client.config.debugging
        @api_client.config.logger.debug "API called: IdentityProviderApi#get_identityproviders_onelogin\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
      end
      return data, status_code, headers
    end

    # Get Ping Identity Provider
    # 
    # @param [Hash] opts the optional parameters
    # @return [PingIdentity]
    def get_identityproviders_ping(opts = {})
      data, _status_code, _headers = get_identityproviders_ping_with_http_info(opts)
      return data
    end

    # Get Ping Identity Provider
    # 
    # @param [Hash] opts the optional parameters
    # @return [Array<(PingIdentity, Fixnum, Hash)>] PingIdentity data, response status code and response headers
    def get_identityproviders_ping_with_http_info(opts = {})
      if @api_client.config.debugging
        @api_client.config.logger.debug "Calling API: IdentityProviderApi.get_identityproviders_ping ..."
      end
      # resource path
      local_var_path = "/api/v2/identityproviders/ping".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 => 'PingIdentity')
      if @api_client.config.debugging
        @api_client.config.logger.debug "API called: IdentityProviderApi#get_identityproviders_ping\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
      end
      return data, status_code, headers
    end

    # Get PureCloud Identity Provider
    # 
    # @param [Hash] opts the optional parameters
    # @return [PureCloud]
    def get_identityproviders_purecloud(opts = {})
      data, _status_code, _headers = get_identityproviders_purecloud_with_http_info(opts)
      return data
    end

    # Get PureCloud Identity Provider
    # 
    # @param [Hash] opts the optional parameters
    # @return [Array<(PureCloud, Fixnum, Hash)>] PureCloud data, response status code and response headers
    def get_identityproviders_purecloud_with_http_info(opts = {})
      if @api_client.config.debugging
        @api_client.config.logger.debug "Calling API: IdentityProviderApi.get_identityproviders_purecloud ..."
      end
      # resource path
      local_var_path = "/api/v2/identityproviders/purecloud".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 => 'PureCloud')
      if @api_client.config.debugging
        @api_client.config.logger.debug "API called: IdentityProviderApi#get_identityproviders_purecloud\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
      end
      return data, status_code, headers
    end

    # Get Salesforce Identity Provider
    # 
    # @param [Hash] opts the optional parameters
    # @return [Salesforce]
    def get_identityproviders_salesforce(opts = {})
      data, _status_code, _headers = get_identityproviders_salesforce_with_http_info(opts)
      return data
    end

    # Get Salesforce Identity Provider
    # 
    # @param [Hash] opts the optional parameters
    # @return [Array<(Salesforce, Fixnum, Hash)>] Salesforce data, response status code and response headers
    def get_identityproviders_salesforce_with_http_info(opts = {})
      if @api_client.config.debugging
        @api_client.config.logger.debug "Calling API: IdentityProviderApi.get_identityproviders_salesforce ..."
      end
      # resource path
      local_var_path = "/api/v2/identityproviders/salesforce".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 => 'Salesforce')
      if @api_client.config.debugging
        @api_client.config.logger.debug "API called: IdentityProviderApi#get_identityproviders_salesforce\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
      end
      return data, status_code, headers
    end

    # Update/Create ADFS Identity Provider
    # 
    # @param body Provider
    # @param [Hash] opts the optional parameters
    # @return [OAuthProvider]
    def put_identityproviders_adfs(body, opts = {})
      data, _status_code, _headers = put_identityproviders_adfs_with_http_info(body, opts)
      return data
    end

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

    # Update/Create Customer Interaction Center (CIC) Identity Provider
    # 
    # @param body Provider
    # @param [Hash] opts the optional parameters
    # @return [OAuthProvider]
    def put_identityproviders_cic(body, opts = {})
      data, _status_code, _headers = put_identityproviders_cic_with_http_info(body, opts)
      return data
    end

    # Update/Create Customer Interaction Center (CIC) Identity Provider
    # 
    # @param body Provider
    # @param [Hash] opts the optional parameters
    # @return [Array<(OAuthProvider, Fixnum, Hash)>] OAuthProvider data, response status code and response headers
    def put_identityproviders_cic_with_http_info(body, opts = {})
      if @api_client.config.debugging
        @api_client.config.logger.debug "Calling API: IdentityProviderApi.put_identityproviders_cic ..."
      end
      # verify the required parameter 'body' is set
      fail ArgumentError, "Missing the required parameter 'body' when calling IdentityProviderApi.put_identityproviders_cic" if body.nil?
      # resource path
      local_var_path = "/api/v2/identityproviders/cic".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 => 'OAuthProvider')
      if @api_client.config.debugging
        @api_client.config.logger.debug "API called: IdentityProviderApi#put_identityproviders_cic\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
      end
      return data, status_code, headers
    end

    # Update/Create G Suite Identity Provider
    # 
    # @param body Provider
    # @param [Hash] opts the optional parameters
    # @return [OAuthProvider]
    def put_identityproviders_gsuite(body, opts = {})
      data, _status_code, _headers = put_identityproviders_gsuite_with_http_info(body, opts)
      return data
    end

    # Update/Create G Suite Identity Provider
    # 
    # @param body Provider
    # @param [Hash] opts the optional parameters
    # @return [Array<(OAuthProvider, Fixnum, Hash)>] OAuthProvider data, response status code and response headers
    def put_identityproviders_gsuite_with_http_info(body, opts = {})
      if @api_client.config.debugging
        @api_client.config.logger.debug "Calling API: IdentityProviderApi.put_identityproviders_gsuite ..."
      end
      # verify the required parameter 'body' is set
      fail ArgumentError, "Missing the required parameter 'body' when calling IdentityProviderApi.put_identityproviders_gsuite" if body.nil?
      # resource path
      local_var_path = "/api/v2/identityproviders/gsuite".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 => 'OAuthProvider')
      if @api_client.config.debugging
        @api_client.config.logger.debug "API called: IdentityProviderApi#put_identityproviders_gsuite\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
      end
      return data, status_code, headers
    end

    # Update/Create IdentityNow Provider
    # 
    # @param body Provider
    # @param [Hash] opts the optional parameters
    # @return [IdentityNow]
    def put_identityproviders_identitynow(body, opts = {})
      data, _status_code, _headers = put_identityproviders_identitynow_with_http_info(body, opts)
      return data
    end

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

    # Update/Create Okta Identity Provider
    # 
    # @param body Provider
    # @param [Hash] opts the optional parameters
    # @return [OAuthProvider]
    def put_identityproviders_okta(body, opts = {})
      data, _status_code, _headers = put_identityproviders_okta_with_http_info(body, opts)
      return data
    end

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

    # Update/Create OneLogin Identity Provider
    # 
    # @param body Provider
    # @param [Hash] opts the optional parameters
    # @return [OAuthProvider]
    def put_identityproviders_onelogin(body, opts = {})
      data, _status_code, _headers = put_identityproviders_onelogin_with_http_info(body, opts)
      return data
    end

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

    # Update/Create Ping Identity Provider
    # 
    # @param body Provider
    # @param [Hash] opts the optional parameters
    # @return [OAuthProvider]
    def put_identityproviders_ping(body, opts = {})
      data, _status_code, _headers = put_identityproviders_ping_with_http_info(body, opts)
      return data
    end

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

    # Update/Create PureCloud Identity Provider
    # 
    # @param body Provider
    # @param [Hash] opts the optional parameters
    # @return [OAuthProvider]
    def put_identityproviders_purecloud(body, opts = {})
      data, _status_code, _headers = put_identityproviders_purecloud_with_http_info(body, opts)
      return data
    end

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

    # Update/Create Salesforce Identity Provider
    # 
    # @param body Provider
    # @param [Hash] opts the optional parameters
    # @return [OAuthProvider]
    def put_identityproviders_salesforce(body, opts = {})
      data, _status_code, _headers = put_identityproviders_salesforce_with_http_info(body, opts)
      return data
    end

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