=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: UNLICENSED
https://help.mypurecloud.com/articles/terms-and-conditions/

Terms of Service: https://help.mypurecloud.com/articles/terms-and-conditions/

=end

require "uri"

module PureCloud
  class ArchitectApi
    attr_accessor :api_client

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

    # Deletes a emergency group by ID
    # 
    # @param emergency_group_id Emergency group ID
    # @param [Hash] opts the optional parameters
    # @return [nil]
    def delete_architect_emergencygroup(emergency_group_id, opts = {})
      delete_architect_emergencygroup_with_http_info(emergency_group_id, opts)
      return nil
    end

    # Deletes a emergency group by ID
    # 
    # @param emergency_group_id Emergency group ID
    # @param [Hash] opts the optional parameters
    # @return [Array<(nil, Fixnum, Hash)>] nil, response status code and response headers
    def delete_architect_emergencygroup_with_http_info(emergency_group_id, opts = {})
      if @api_client.config.debugging
        @api_client.config.logger.debug "Calling API: ArchitectApi.delete_architect_emergencygroup ..."
      end
      
      
      # verify the required parameter 'emergency_group_id' is set
      fail ArgumentError, "Missing the required parameter 'emergency_group_id' when calling ArchitectApi.delete_architect_emergencygroup" if emergency_group_id.nil?
      
      
      
      
      
      # resource path
      local_var_path = "/api/v2/architect/emergencygroups/{emergencyGroupId}".sub('{format}','json').sub('{' + 'emergencyGroupId' + '}', emergency_group_id.to_s)

      # query parameters
      query_params = {}

      # header parameters
      header_params = {}

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

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

      # form parameters
      form_params = {}

      # http body (model)
      post_body = nil
      
      auth_names = ['PureCloud OAuth']
      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: ArchitectApi#delete_architect_emergencygroup\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
      end
      return data, status_code, headers
    end

    # Delete an IVR Config.
    # 
    # @param ivr_id IVR id
    # @param [Hash] opts the optional parameters
    # @return [nil]
    def delete_architect_ivr(ivr_id, opts = {})
      delete_architect_ivr_with_http_info(ivr_id, opts)
      return nil
    end

    # Delete an IVR Config.
    # 
    # @param ivr_id IVR id
    # @param [Hash] opts the optional parameters
    # @return [Array<(nil, Fixnum, Hash)>] nil, response status code and response headers
    def delete_architect_ivr_with_http_info(ivr_id, opts = {})
      if @api_client.config.debugging
        @api_client.config.logger.debug "Calling API: ArchitectApi.delete_architect_ivr ..."
      end
      
      
      # verify the required parameter 'ivr_id' is set
      fail ArgumentError, "Missing the required parameter 'ivr_id' when calling ArchitectApi.delete_architect_ivr" if ivr_id.nil?
      
      
      
      
      
      # resource path
      local_var_path = "/api/v2/architect/ivrs/{ivrId}".sub('{format}','json').sub('{' + 'ivrId' + '}', ivr_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 OAuth']
      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: ArchitectApi#delete_architect_ivr\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
      end
      return data, status_code, headers
    end

    # Delete specified user prompt
    # 
    # @param prompt_id Prompt ID
    # @param [Hash] opts the optional parameters
    # @option opts [BOOLEAN] :all_resources Whether or not to delete all the prompt resources
    # @return [nil]
    def delete_architect_prompt(prompt_id, opts = {})
      delete_architect_prompt_with_http_info(prompt_id, opts)
      return nil
    end

    # Delete specified user prompt
    # 
    # @param prompt_id Prompt ID
    # @param [Hash] opts the optional parameters
    # @option opts [BOOLEAN] :all_resources Whether or not to delete all the prompt resources
    # @return [Array<(nil, Fixnum, Hash)>] nil, response status code and response headers
    def delete_architect_prompt_with_http_info(prompt_id, opts = {})
      if @api_client.config.debugging
        @api_client.config.logger.debug "Calling API: ArchitectApi.delete_architect_prompt ..."
      end
      
      
      # verify the required parameter 'prompt_id' is set
      fail ArgumentError, "Missing the required parameter 'prompt_id' when calling ArchitectApi.delete_architect_prompt" if prompt_id.nil?
      
      
      
      
      
      
      
      
      
      
      
      # resource path
      local_var_path = "/api/v2/architect/prompts/{promptId}".sub('{format}','json').sub('{' + 'promptId' + '}', prompt_id.to_s)

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

      # 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 OAuth']
      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: ArchitectApi#delete_architect_prompt\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
      end
      return data, status_code, headers
    end

    # Delete specified user prompt resource
    # 
    # @param prompt_id Prompt ID
    # @param language_code Language
    # @param [Hash] opts the optional parameters
    # @return [nil]
    def delete_architect_prompt_resource(prompt_id, language_code, opts = {})
      delete_architect_prompt_resource_with_http_info(prompt_id, language_code, opts)
      return nil
    end

    # Delete specified user prompt resource
    # 
    # @param prompt_id Prompt ID
    # @param language_code Language
    # @param [Hash] opts the optional parameters
    # @return [Array<(nil, Fixnum, Hash)>] nil, response status code and response headers
    def delete_architect_prompt_resource_with_http_info(prompt_id, language_code, opts = {})
      if @api_client.config.debugging
        @api_client.config.logger.debug "Calling API: ArchitectApi.delete_architect_prompt_resource ..."
      end
      
      
      # verify the required parameter 'prompt_id' is set
      fail ArgumentError, "Missing the required parameter 'prompt_id' when calling ArchitectApi.delete_architect_prompt_resource" if prompt_id.nil?
      
      
      
      
      
      
      # verify the required parameter 'language_code' is set
      fail ArgumentError, "Missing the required parameter 'language_code' when calling ArchitectApi.delete_architect_prompt_resource" if language_code.nil?
      
      
      
      
      
      # resource path
      local_var_path = "/api/v2/architect/prompts/{promptId}/resources/{languageCode}".sub('{format}','json').sub('{' + 'promptId' + '}', prompt_id.to_s).sub('{' + 'languageCode' + '}', language_code.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 OAuth']
      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: ArchitectApi#delete_architect_prompt_resource\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
      end
      return data, status_code, headers
    end

    # Delete specified user prompt resource audio
    # 
    # @param prompt_id Prompt ID
    # @param language_code Language
    # @param [Hash] opts the optional parameters
    # @return [nil]
    def delete_architect_prompt_resource_audio(prompt_id, language_code, opts = {})
      delete_architect_prompt_resource_audio_with_http_info(prompt_id, language_code, opts)
      return nil
    end

    # Delete specified user prompt resource audio
    # 
    # @param prompt_id Prompt ID
    # @param language_code Language
    # @param [Hash] opts the optional parameters
    # @return [Array<(nil, Fixnum, Hash)>] nil, response status code and response headers
    def delete_architect_prompt_resource_audio_with_http_info(prompt_id, language_code, opts = {})
      if @api_client.config.debugging
        @api_client.config.logger.debug "Calling API: ArchitectApi.delete_architect_prompt_resource_audio ..."
      end
      
      
      # verify the required parameter 'prompt_id' is set
      fail ArgumentError, "Missing the required parameter 'prompt_id' when calling ArchitectApi.delete_architect_prompt_resource_audio" if prompt_id.nil?
      
      
      
      
      
      
      # verify the required parameter 'language_code' is set
      fail ArgumentError, "Missing the required parameter 'language_code' when calling ArchitectApi.delete_architect_prompt_resource_audio" if language_code.nil?
      
      
      
      
      
      # resource path
      local_var_path = "/api/v2/architect/prompts/{promptId}/resources/{languageCode}/audio".sub('{format}','json').sub('{' + 'promptId' + '}', prompt_id.to_s).sub('{' + 'languageCode' + '}', language_code.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 OAuth']
      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: ArchitectApi#delete_architect_prompt_resource_audio\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
      end
      return data, status_code, headers
    end

    # Batch-delete a list of prompts
    # Multiple IDs can be specified, in which case all specified prompts will be deleted.  Asynchronous.  Notification topic: v2.architect.prompts.{promptId}
    # @param id List of Prompt IDs
    # @param [Hash] opts the optional parameters
    # @return [Operation]
    def delete_architect_prompts(id, opts = {})
      data, _status_code, _headers = delete_architect_prompts_with_http_info(id, opts)
      return data
    end

    # Batch-delete a list of prompts
    # Multiple IDs can be specified, in which case all specified prompts will be deleted.  Asynchronous.  Notification topic: v2.architect.prompts.{promptId}
    # @param id List of Prompt IDs
    # @param [Hash] opts the optional parameters
    # @return [Array<(Operation, Fixnum, Hash)>] Operation data, response status code and response headers
    def delete_architect_prompts_with_http_info(id, opts = {})
      if @api_client.config.debugging
        @api_client.config.logger.debug "Calling API: ArchitectApi.delete_architect_prompts ..."
      end
      
      
      # verify the required parameter 'id' is set
      fail ArgumentError, "Missing the required parameter 'id' when calling ArchitectApi.delete_architect_prompts" if id.nil?
      
      
      
      
      
      # resource path
      local_var_path = "/api/v2/architect/prompts".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 OAuth']
      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 => 'Operation')
      if @api_client.config.debugging
        @api_client.config.logger.debug "API called: ArchitectApi#delete_architect_prompts\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
      end
      return data, status_code, headers
    end

    # Delete a schedule by id
    # 
    # @param schedule_id Schedule ID
    # @param [Hash] opts the optional parameters
    # @return [nil]
    def delete_architect_schedule(schedule_id, opts = {})
      delete_architect_schedule_with_http_info(schedule_id, opts)
      return nil
    end

    # Delete a schedule by id
    # 
    # @param schedule_id Schedule ID
    # @param [Hash] opts the optional parameters
    # @return [Array<(nil, Fixnum, Hash)>] nil, response status code and response headers
    def delete_architect_schedule_with_http_info(schedule_id, opts = {})
      if @api_client.config.debugging
        @api_client.config.logger.debug "Calling API: ArchitectApi.delete_architect_schedule ..."
      end
      
      
      # verify the required parameter 'schedule_id' is set
      fail ArgumentError, "Missing the required parameter 'schedule_id' when calling ArchitectApi.delete_architect_schedule" if schedule_id.nil?
      
      
      
      
      
      # resource path
      local_var_path = "/api/v2/architect/schedules/{scheduleId}".sub('{format}','json').sub('{' + 'scheduleId' + '}', schedule_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 OAuth']
      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: ArchitectApi#delete_architect_schedule\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
      end
      return data, status_code, headers
    end

    # Deletes a schedule group by ID
    # 
    # @param schedule_group_id Schedule group ID
    # @param [Hash] opts the optional parameters
    # @return [nil]
    def delete_architect_schedulegroup(schedule_group_id, opts = {})
      delete_architect_schedulegroup_with_http_info(schedule_group_id, opts)
      return nil
    end

    # Deletes a schedule group by ID
    # 
    # @param schedule_group_id Schedule group ID
    # @param [Hash] opts the optional parameters
    # @return [Array<(nil, Fixnum, Hash)>] nil, response status code and response headers
    def delete_architect_schedulegroup_with_http_info(schedule_group_id, opts = {})
      if @api_client.config.debugging
        @api_client.config.logger.debug "Calling API: ArchitectApi.delete_architect_schedulegroup ..."
      end
      
      
      # verify the required parameter 'schedule_group_id' is set
      fail ArgumentError, "Missing the required parameter 'schedule_group_id' when calling ArchitectApi.delete_architect_schedulegroup" if schedule_group_id.nil?
      
      
      
      
      
      # resource path
      local_var_path = "/api/v2/architect/schedulegroups/{scheduleGroupId}".sub('{format}','json').sub('{' + 'scheduleGroupId' + '}', schedule_group_id.to_s)

      # query parameters
      query_params = {}

      # header parameters
      header_params = {}

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

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

      # form parameters
      form_params = {}

      # http body (model)
      post_body = nil
      
      auth_names = ['PureCloud OAuth']
      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: ArchitectApi#delete_architect_schedulegroup\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
      end
      return data, status_code, headers
    end

    # Delete a system prompt resource override.
    # 
    # @param prompt_id Prompt ID
    # @param language_code Language
    # @param [Hash] opts the optional parameters
    # @return [nil]
    def delete_architect_systemprompt_resource(prompt_id, language_code, opts = {})
      delete_architect_systemprompt_resource_with_http_info(prompt_id, language_code, opts)
      return nil
    end

    # Delete a system prompt resource override.
    # 
    # @param prompt_id Prompt ID
    # @param language_code Language
    # @param [Hash] opts the optional parameters
    # @return [Array<(nil, Fixnum, Hash)>] nil, response status code and response headers
    def delete_architect_systemprompt_resource_with_http_info(prompt_id, language_code, opts = {})
      if @api_client.config.debugging
        @api_client.config.logger.debug "Calling API: ArchitectApi.delete_architect_systemprompt_resource ..."
      end
      
      
      # verify the required parameter 'prompt_id' is set
      fail ArgumentError, "Missing the required parameter 'prompt_id' when calling ArchitectApi.delete_architect_systemprompt_resource" if prompt_id.nil?
      
      
      
      
      
      
      # verify the required parameter 'language_code' is set
      fail ArgumentError, "Missing the required parameter 'language_code' when calling ArchitectApi.delete_architect_systemprompt_resource" if language_code.nil?
      
      
      
      
      
      # resource path
      local_var_path = "/api/v2/architect/systemprompts/{promptId}/resources/{languageCode}".sub('{format}','json').sub('{' + 'promptId' + '}', prompt_id.to_s).sub('{' + 'languageCode' + '}', language_code.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 OAuth']
      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: ArchitectApi#delete_architect_systemprompt_resource\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
      end
      return data, status_code, headers
    end

    # Delete flow
    # 
    # @param flow_id Flow ID
    # @param [Hash] opts the optional parameters
    # @return [nil]
    def delete_flow(flow_id, opts = {})
      delete_flow_with_http_info(flow_id, opts)
      return nil
    end

    # Delete flow
    # 
    # @param flow_id Flow ID
    # @param [Hash] opts the optional parameters
    # @return [Array<(nil, Fixnum, Hash)>] nil, response status code and response headers
    def delete_flow_with_http_info(flow_id, opts = {})
      if @api_client.config.debugging
        @api_client.config.logger.debug "Calling API: ArchitectApi.delete_flow ..."
      end
      
      
      # verify the required parameter 'flow_id' is set
      fail ArgumentError, "Missing the required parameter 'flow_id' when calling ArchitectApi.delete_flow" if flow_id.nil?
      
      
      
      
      
      # resource path
      local_var_path = "/api/v2/flows/{flowId}".sub('{format}','json').sub('{' + 'flowId' + '}', flow_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 OAuth']
      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: ArchitectApi#delete_flow\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
      end
      return data, status_code, headers
    end

    # Batch-delete a list of flows
    # Multiple IDs can be specified, in which case all specified flows will be deleted.  Asynchronous.  Notification topic: v2.flows.{flowId}
    # @param id List of Flow IDs
    # @param [Hash] opts the optional parameters
    # @return [Operation]
    def delete_flows(id, opts = {})
      data, _status_code, _headers = delete_flows_with_http_info(id, opts)
      return data
    end

    # Batch-delete a list of flows
    # Multiple IDs can be specified, in which case all specified flows will be deleted.  Asynchronous.  Notification topic: v2.flows.{flowId}
    # @param id List of Flow IDs
    # @param [Hash] opts the optional parameters
    # @return [Array<(Operation, Fixnum, Hash)>] Operation data, response status code and response headers
    def delete_flows_with_http_info(id, opts = {})
      if @api_client.config.debugging
        @api_client.config.logger.debug "Calling API: ArchitectApi.delete_flows ..."
      end
      
      
      # verify the required parameter 'id' is set
      fail ArgumentError, "Missing the required parameter 'id' when calling ArchitectApi.delete_flows" if id.nil?
      
      
      
      
      
      # resource path
      local_var_path = "/api/v2/flows".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 OAuth']
      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 => 'Operation')
      if @api_client.config.debugging
        @api_client.config.logger.debug "API called: ArchitectApi#delete_flows\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
      end
      return data, status_code, headers
    end

    # deletes a specific datatable by id
    # Deletes an entire datatable (including the schema and data) with a given datatableId
    # @param datatable_id id of datatable
    # @param [Hash] opts the optional parameters
    # @option opts [BOOLEAN] :force force delete, even if in use (default to false)
    # @return [nil]
    def delete_flows_datatable(datatable_id, opts = {})
      delete_flows_datatable_with_http_info(datatable_id, opts)
      return nil
    end

    # deletes a specific datatable by id
    # Deletes an entire datatable (including the schema and data) with a given datatableId
    # @param datatable_id id of datatable
    # @param [Hash] opts the optional parameters
    # @option opts [BOOLEAN] :force force delete, even if in use
    # @return [Array<(nil, Fixnum, Hash)>] nil, response status code and response headers
    def delete_flows_datatable_with_http_info(datatable_id, opts = {})
      if @api_client.config.debugging
        @api_client.config.logger.debug "Calling API: ArchitectApi.delete_flows_datatable ..."
      end
      
      
      # verify the required parameter 'datatable_id' is set
      fail ArgumentError, "Missing the required parameter 'datatable_id' when calling ArchitectApi.delete_flows_datatable" if datatable_id.nil?
      
      
      
      
      
      
      
      
      
      
      
      # resource path
      local_var_path = "/api/v2/flows/datatables/{datatableId}".sub('{format}','json').sub('{' + 'datatableId' + '}', datatable_id.to_s)

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

      # 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 OAuth']
      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: ArchitectApi#delete_flows_datatable\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
      end
      return data, status_code, headers
    end

    # Delete a row entry
    # Deletes a row with a given rowId (the value of the key field).
    # @param datatable_id id of datatable
    # @param row_id the key for the row
    # @param [Hash] opts the optional parameters
    # @return [nil]
    def delete_flows_datatable_row(datatable_id, row_id, opts = {})
      delete_flows_datatable_row_with_http_info(datatable_id, row_id, opts)
      return nil
    end

    # Delete a row entry
    # Deletes a row with a given rowId (the value of the key field).
    # @param datatable_id id of datatable
    # @param row_id the key for the row
    # @param [Hash] opts the optional parameters
    # @return [Array<(nil, Fixnum, Hash)>] nil, response status code and response headers
    def delete_flows_datatable_row_with_http_info(datatable_id, row_id, opts = {})
      if @api_client.config.debugging
        @api_client.config.logger.debug "Calling API: ArchitectApi.delete_flows_datatable_row ..."
      end
      
      
      # verify the required parameter 'datatable_id' is set
      fail ArgumentError, "Missing the required parameter 'datatable_id' when calling ArchitectApi.delete_flows_datatable_row" if datatable_id.nil?
      
      
      
      
      
      
      # verify the required parameter 'row_id' is set
      fail ArgumentError, "Missing the required parameter 'row_id' when calling ArchitectApi.delete_flows_datatable_row" if row_id.nil?
      
      
      
      
      
      # resource path
      local_var_path = "/api/v2/flows/datatables/{datatableId}/rows/{rowId}".sub('{format}','json').sub('{' + 'datatableId' + '}', datatable_id.to_s).sub('{' + 'rowId' + '}', row_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 OAuth']
      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: ArchitectApi#delete_flows_datatable_row\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
      end
      return data, status_code, headers
    end

    # Get Dependency Tracking objects that have a given display name
    # 
    # @param name Object name to search for
    # @param [Hash] opts the optional parameters
    # @option opts [Integer] :page_number Page number (default to 1)
    # @option opts [Integer] :page_size Page size (default to 25)
    # @option opts [Array<String>] :object_type Object type(s) to search for
    # @option opts [BOOLEAN] :consumed_resources Include resources each result item consumes
    # @option opts [BOOLEAN] :consuming_resources Include resources that consume each result item
    # @option opts [Array<String>] :consumed_resource_type Types of consumed resources to return, if consumed resources are requested
    # @option opts [Array<String>] :consuming_resource_type Types of consuming resources to return, if consuming resources are requested
    # @return [DependencyObjectEntityListing]
    def get_architect_dependencytracking(name, opts = {})
      data, _status_code, _headers = get_architect_dependencytracking_with_http_info(name, opts)
      return data
    end

    # Get Dependency Tracking objects that have a given display name
    # 
    # @param name Object name to search for
    # @param [Hash] opts the optional parameters
    # @option opts [Integer] :page_number Page number
    # @option opts [Integer] :page_size Page size
    # @option opts [Array<String>] :object_type Object type(s) to search for
    # @option opts [BOOLEAN] :consumed_resources Include resources each result item consumes
    # @option opts [BOOLEAN] :consuming_resources Include resources that consume each result item
    # @option opts [Array<String>] :consumed_resource_type Types of consumed resources to return, if consumed resources are requested
    # @option opts [Array<String>] :consuming_resource_type Types of consuming resources to return, if consuming resources are requested
    # @return [Array<(DependencyObjectEntityListing, Fixnum, Hash)>] DependencyObjectEntityListing data, response status code and response headers
    def get_architect_dependencytracking_with_http_info(name, opts = {})
      if @api_client.config.debugging
        @api_client.config.logger.debug "Calling API: ArchitectApi.get_architect_dependencytracking ..."
      end
      
      
      # verify the required parameter 'name' is set
      fail ArgumentError, "Missing the required parameter 'name' when calling ArchitectApi.get_architect_dependencytracking" if name.nil?
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      # resource path
      local_var_path = "/api/v2/architect/dependencytracking".sub('{format}','json')

      # query parameters
      query_params = {}
      query_params[:'name'] = name
      query_params[:'pageNumber'] = opts[:'page_number'] if opts[:'page_number']
      query_params[:'pageSize'] = opts[:'page_size'] if opts[:'page_size']
      query_params[:'objectType'] = @api_client.build_collection_param(opts[:'object_type'], :multi) if opts[:'object_type']
      query_params[:'consumedResources'] = opts[:'consumed_resources'] if opts[:'consumed_resources']
      query_params[:'consumingResources'] = opts[:'consuming_resources'] if opts[:'consuming_resources']
      query_params[:'consumedResourceType'] = @api_client.build_collection_param(opts[:'consumed_resource_type'], :multi) if opts[:'consumed_resource_type']
      query_params[:'consumingResourceType'] = @api_client.build_collection_param(opts[:'consuming_resource_type'], :multi) if opts[:'consuming_resource_type']

      # header parameters
      header_params = {}

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

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

      # form parameters
      form_params = {}

      # http body (model)
      post_body = nil
      
      auth_names = ['PureCloud OAuth']
      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 => 'DependencyObjectEntityListing')
      if @api_client.config.debugging
        @api_client.config.logger.debug "API called: ArchitectApi#get_architect_dependencytracking\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
      end
      return data, status_code, headers
    end

    # Get Dependency Tracking build status for an organization
    # 
    # @param [Hash] opts the optional parameters
    # @return [DependencyStatus]
    def get_architect_dependencytracking_build(opts = {})
      data, _status_code, _headers = get_architect_dependencytracking_build_with_http_info(opts)
      return data
    end

    # Get Dependency Tracking build status for an organization
    # 
    # @param [Hash] opts the optional parameters
    # @return [Array<(DependencyStatus, Fixnum, Hash)>] DependencyStatus data, response status code and response headers
    def get_architect_dependencytracking_build_with_http_info(opts = {})
      if @api_client.config.debugging
        @api_client.config.logger.debug "Calling API: ArchitectApi.get_architect_dependencytracking_build ..."
      end
      
      # resource path
      local_var_path = "/api/v2/architect/dependencytracking/build".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 OAuth']
      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 => 'DependencyStatus')
      if @api_client.config.debugging
        @api_client.config.logger.debug "API called: ArchitectApi#get_architect_dependencytracking_build\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
      end
      return data, status_code, headers
    end

    # Get resources that are consumed by a given Dependency Tracking object
    # 
    # @param id Consuming object ID
    # @param version Consuming object version
    # @param object_type Consuming object type.  Only versioned types are allowed here.
    # @param [Hash] opts the optional parameters
    # @option opts [Array<String>] :resource_type Types of consumed resources to show
    # @option opts [Integer] :page_number Page number (default to 1)
    # @option opts [Integer] :page_size Page size (default to 25)
    # @return [ConsumedResourcesEntityListing]
    def get_architect_dependencytracking_consumedresources(id, version, object_type, opts = {})
      data, _status_code, _headers = get_architect_dependencytracking_consumedresources_with_http_info(id, version, object_type, opts)
      return data
    end

    # Get resources that are consumed by a given Dependency Tracking object
    # 
    # @param id Consuming object ID
    # @param version Consuming object version
    # @param object_type Consuming object type.  Only versioned types are allowed here.
    # @param [Hash] opts the optional parameters
    # @option opts [Array<String>] :resource_type Types of consumed resources to show
    # @option opts [Integer] :page_number Page number
    # @option opts [Integer] :page_size Page size
    # @return [Array<(ConsumedResourcesEntityListing, Fixnum, Hash)>] ConsumedResourcesEntityListing data, response status code and response headers
    def get_architect_dependencytracking_consumedresources_with_http_info(id, version, object_type, opts = {})
      if @api_client.config.debugging
        @api_client.config.logger.debug "Calling API: ArchitectApi.get_architect_dependencytracking_consumedresources ..."
      end
      
      
      # verify the required parameter 'id' is set
      fail ArgumentError, "Missing the required parameter 'id' when calling ArchitectApi.get_architect_dependencytracking_consumedresources" if id.nil?
      
      
      
      
      
      
      # verify the required parameter 'version' is set
      fail ArgumentError, "Missing the required parameter 'version' when calling ArchitectApi.get_architect_dependencytracking_consumedresources" if version.nil?
      
      
      
      
      
      
      # verify the required parameter 'object_type' is set
      fail ArgumentError, "Missing the required parameter 'object_type' when calling ArchitectApi.get_architect_dependencytracking_consumedresources" if object_type.nil?
      
      # verify enum value
      unless ['ACDLANGUAGE', 'ACDSKILL', 'ACDWRAPUPCODE', 'BRIDGEACTION', 'COMMONMODULEFLOW', 'COMPOSERSCRIPT', 'CONTACTLIST', 'DATAACTION', 'DATATABLE', 'DIALOGENGINEBOT', 'DIALOGENGINEBOTVERSION', 'DIALOGFLOWAGENT', 'EMAILROUTE', 'EMERGENCYGROUP', 'FLOWOUTCOME', 'GROUP', 'INBOUNDCALLFLOW', 'INBOUNDCHATFLOW', 'INBOUNDEMAILFLOW', 'INBOUNDSHORTMESSAGEFLOW', 'INQUEUECALLFLOW', 'IVRCONFIGURATION', 'LANGUAGE', 'LEXBOT', 'LEXBOTALIAS', 'OUTBOUNDCALLFLOW', 'QUEUE', 'RECORDINGPOLICY', 'RESPONSE', 'SCHEDULE', 'SCHEDULEGROUP', 'SECUREACTION', 'SECURECALLFLOW', 'SURVEYINVITEFLOW', 'SYSTEMPROMPT', 'TTSENGINE', 'TTSVOICE', 'USER', 'USERPROMPT', 'WIDGET', 'WORKFLOW'].include?(object_type)
        fail ArgumentError, "invalid value for 'object_type', must be one of ACDLANGUAGE, ACDSKILL, ACDWRAPUPCODE, BRIDGEACTION, COMMONMODULEFLOW, COMPOSERSCRIPT, CONTACTLIST, DATAACTION, DATATABLE, DIALOGENGINEBOT, DIALOGENGINEBOTVERSION, DIALOGFLOWAGENT, EMAILROUTE, EMERGENCYGROUP, FLOWOUTCOME, GROUP, INBOUNDCALLFLOW, INBOUNDCHATFLOW, INBOUNDEMAILFLOW, INBOUNDSHORTMESSAGEFLOW, INQUEUECALLFLOW, IVRCONFIGURATION, LANGUAGE, LEXBOT, LEXBOTALIAS, OUTBOUNDCALLFLOW, QUEUE, RECORDINGPOLICY, RESPONSE, SCHEDULE, SCHEDULEGROUP, SECUREACTION, SECURECALLFLOW, SURVEYINVITEFLOW, SYSTEMPROMPT, TTSENGINE, TTSVOICE, USER, USERPROMPT, WIDGET, WORKFLOW"
      end
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      # resource path
      local_var_path = "/api/v2/architect/dependencytracking/consumedresources".sub('{format}','json')

      # query parameters
      query_params = {}
      query_params[:'id'] = id
      query_params[:'version'] = version
      query_params[:'objectType'] = object_type
      query_params[:'resourceType'] = @api_client.build_collection_param(opts[:'resource_type'], :multi) if opts[:'resource_type']
      query_params[:'pageNumber'] = opts[:'page_number'] if opts[:'page_number']
      query_params[:'pageSize'] = opts[:'page_size'] if opts[:'page_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 OAuth']
      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 => 'ConsumedResourcesEntityListing')
      if @api_client.config.debugging
        @api_client.config.logger.debug "API called: ArchitectApi#get_architect_dependencytracking_consumedresources\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
      end
      return data, status_code, headers
    end

    # Get resources that consume a given Dependency Tracking object
    # 
    # @param id Consumed object ID
    # @param object_type Consumed object type
    # @param [Hash] opts the optional parameters
    # @option opts [Array<String>] :resource_type Types of consuming resources to show.  Only versioned types are allowed here.
    # @option opts [Integer] :page_number Page number (default to 1)
    # @option opts [Integer] :page_size Page size (default to 25)
    # @option opts [String] :flow_filter Show only checkedIn or published flows
    # @return [ConsumingResourcesEntityListing]
    def get_architect_dependencytracking_consumingresources(id, object_type, opts = {})
      data, _status_code, _headers = get_architect_dependencytracking_consumingresources_with_http_info(id, object_type, opts)
      return data
    end

    # Get resources that consume a given Dependency Tracking object
    # 
    # @param id Consumed object ID
    # @param object_type Consumed object type
    # @param [Hash] opts the optional parameters
    # @option opts [Array<String>] :resource_type Types of consuming resources to show.  Only versioned types are allowed here.
    # @option opts [Integer] :page_number Page number
    # @option opts [Integer] :page_size Page size
    # @option opts [String] :flow_filter Show only checkedIn or published flows
    # @return [Array<(ConsumingResourcesEntityListing, Fixnum, Hash)>] ConsumingResourcesEntityListing data, response status code and response headers
    def get_architect_dependencytracking_consumingresources_with_http_info(id, object_type, opts = {})
      if @api_client.config.debugging
        @api_client.config.logger.debug "Calling API: ArchitectApi.get_architect_dependencytracking_consumingresources ..."
      end
      
      
      # verify the required parameter 'id' is set
      fail ArgumentError, "Missing the required parameter 'id' when calling ArchitectApi.get_architect_dependencytracking_consumingresources" if id.nil?
      
      
      
      
      
      
      # verify the required parameter 'object_type' is set
      fail ArgumentError, "Missing the required parameter 'object_type' when calling ArchitectApi.get_architect_dependencytracking_consumingresources" if object_type.nil?
      
      # verify enum value
      unless ['ACDLANGUAGE', 'ACDSKILL', 'ACDWRAPUPCODE', 'BRIDGEACTION', 'COMMONMODULEFLOW', 'COMPOSERSCRIPT', 'CONTACTLIST', 'DATAACTION', 'DATATABLE', 'DIALOGENGINEBOT', 'DIALOGENGINEBOTVERSION', 'DIALOGFLOWAGENT', 'EMAILROUTE', 'EMERGENCYGROUP', 'FLOWOUTCOME', 'GROUP', 'INBOUNDCALLFLOW', 'INBOUNDCHATFLOW', 'INBOUNDEMAILFLOW', 'INBOUNDSHORTMESSAGEFLOW', 'INQUEUECALLFLOW', 'IVRCONFIGURATION', 'LANGUAGE', 'LEXBOT', 'LEXBOTALIAS', 'OUTBOUNDCALLFLOW', 'QUEUE', 'RECORDINGPOLICY', 'RESPONSE', 'SCHEDULE', 'SCHEDULEGROUP', 'SECUREACTION', 'SECURECALLFLOW', 'SURVEYINVITEFLOW', 'SYSTEMPROMPT', 'TTSENGINE', 'TTSVOICE', 'USER', 'USERPROMPT', 'WIDGET', 'WORKFLOW'].include?(object_type)
        fail ArgumentError, "invalid value for 'object_type', must be one of ACDLANGUAGE, ACDSKILL, ACDWRAPUPCODE, BRIDGEACTION, COMMONMODULEFLOW, COMPOSERSCRIPT, CONTACTLIST, DATAACTION, DATATABLE, DIALOGENGINEBOT, DIALOGENGINEBOTVERSION, DIALOGFLOWAGENT, EMAILROUTE, EMERGENCYGROUP, FLOWOUTCOME, GROUP, INBOUNDCALLFLOW, INBOUNDCHATFLOW, INBOUNDEMAILFLOW, INBOUNDSHORTMESSAGEFLOW, INQUEUECALLFLOW, IVRCONFIGURATION, LANGUAGE, LEXBOT, LEXBOTALIAS, OUTBOUNDCALLFLOW, QUEUE, RECORDINGPOLICY, RESPONSE, SCHEDULE, SCHEDULEGROUP, SECUREACTION, SECURECALLFLOW, SURVEYINVITEFLOW, SYSTEMPROMPT, TTSENGINE, TTSVOICE, USER, USERPROMPT, WIDGET, WORKFLOW"
      end
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      if opts[:'flow_filter'] && !['checkedIn', 'published'].include?(opts[:'flow_filter'])
        fail ArgumentError, 'invalid value for "flow_filter", must be one of checkedIn, published'
      end
      
      
      
      
      # resource path
      local_var_path = "/api/v2/architect/dependencytracking/consumingresources".sub('{format}','json')

      # query parameters
      query_params = {}
      query_params[:'id'] = id
      query_params[:'objectType'] = object_type
      query_params[:'resourceType'] = @api_client.build_collection_param(opts[:'resource_type'], :multi) if opts[:'resource_type']
      query_params[:'pageNumber'] = opts[:'page_number'] if opts[:'page_number']
      query_params[:'pageSize'] = opts[:'page_size'] if opts[:'page_size']
      query_params[:'flowFilter'] = opts[:'flow_filter'] if opts[:'flow_filter']

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

    # Get Dependency Tracking objects that consume deleted resources
    # 
    # @param [Hash] opts the optional parameters
    # @option opts [String] :name Name to search for
    # @option opts [Array<String>] :object_type Object type(s) to search for
    # @option opts [String] :flow_filter Show only checkedIn or published flows
    # @option opts [BOOLEAN] :consumed_resources Return consumed resources? (default to false)
    # @option opts [Array<String>] :consumed_resource_type Resource type(s) to return
    # @option opts [Integer] :page_number Page number (default to 1)
    # @option opts [Integer] :page_size Page size (default to 25)
    # @return [DependencyObjectEntityListing]
    def get_architect_dependencytracking_deletedresourceconsumers(opts = {})
      data, _status_code, _headers = get_architect_dependencytracking_deletedresourceconsumers_with_http_info(opts)
      return data
    end

    # Get Dependency Tracking objects that consume deleted resources
    # 
    # @param [Hash] opts the optional parameters
    # @option opts [String] :name Name to search for
    # @option opts [Array<String>] :object_type Object type(s) to search for
    # @option opts [String] :flow_filter Show only checkedIn or published flows
    # @option opts [BOOLEAN] :consumed_resources Return consumed resources?
    # @option opts [Array<String>] :consumed_resource_type Resource type(s) to return
    # @option opts [Integer] :page_number Page number
    # @option opts [Integer] :page_size Page size
    # @return [Array<(DependencyObjectEntityListing, Fixnum, Hash)>] DependencyObjectEntityListing data, response status code and response headers
    def get_architect_dependencytracking_deletedresourceconsumers_with_http_info(opts = {})
      if @api_client.config.debugging
        @api_client.config.logger.debug "Calling API: ArchitectApi.get_architect_dependencytracking_deletedresourceconsumers ..."
      end
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      if opts[:'flow_filter'] && !['checkedIn', 'published'].include?(opts[:'flow_filter'])
        fail ArgumentError, 'invalid value for "flow_filter", must be one of checkedIn, published'
      end
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      # resource path
      local_var_path = "/api/v2/architect/dependencytracking/deletedresourceconsumers".sub('{format}','json')

      # query parameters
      query_params = {}
      query_params[:'name'] = opts[:'name'] if opts[:'name']
      query_params[:'objectType'] = @api_client.build_collection_param(opts[:'object_type'], :multi) if opts[:'object_type']
      query_params[:'flowFilter'] = opts[:'flow_filter'] if opts[:'flow_filter']
      query_params[:'consumedResources'] = opts[:'consumed_resources'] if opts[:'consumed_resources']
      query_params[:'consumedResourceType'] = @api_client.build_collection_param(opts[:'consumed_resource_type'], :multi) if opts[:'consumed_resource_type']
      query_params[:'pageNumber'] = opts[:'page_number'] if opts[:'page_number']
      query_params[:'pageSize'] = opts[:'page_size'] if opts[:'page_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 OAuth']
      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 => 'DependencyObjectEntityListing')
      if @api_client.config.debugging
        @api_client.config.logger.debug "API called: ArchitectApi#get_architect_dependencytracking_deletedresourceconsumers\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
      end
      return data, status_code, headers
    end

    # Get a Dependency Tracking object
    # 
    # @param id Object ID
    # @param [Hash] opts the optional parameters
    # @option opts [String] :version Object version
    # @option opts [String] :object_type Object type
    # @option opts [BOOLEAN] :consumed_resources Include resources this item consumes
    # @option opts [BOOLEAN] :consuming_resources Include resources that consume this item
    # @option opts [Array<String>] :consumed_resource_type Types of consumed resources to return, if consumed resources are requested
    # @option opts [Array<String>] :consuming_resource_type Types of consuming resources to return, if consuming resources are requested
    # @return [DependencyObject]
    def get_architect_dependencytracking_object(id, opts = {})
      data, _status_code, _headers = get_architect_dependencytracking_object_with_http_info(id, opts)
      return data
    end

    # Get a Dependency Tracking object
    # 
    # @param id Object ID
    # @param [Hash] opts the optional parameters
    # @option opts [String] :version Object version
    # @option opts [String] :object_type Object type
    # @option opts [BOOLEAN] :consumed_resources Include resources this item consumes
    # @option opts [BOOLEAN] :consuming_resources Include resources that consume this item
    # @option opts [Array<String>] :consumed_resource_type Types of consumed resources to return, if consumed resources are requested
    # @option opts [Array<String>] :consuming_resource_type Types of consuming resources to return, if consuming resources are requested
    # @return [Array<(DependencyObject, Fixnum, Hash)>] DependencyObject data, response status code and response headers
    def get_architect_dependencytracking_object_with_http_info(id, opts = {})
      if @api_client.config.debugging
        @api_client.config.logger.debug "Calling API: ArchitectApi.get_architect_dependencytracking_object ..."
      end
      
      
      # verify the required parameter 'id' is set
      fail ArgumentError, "Missing the required parameter 'id' when calling ArchitectApi.get_architect_dependencytracking_object" if id.nil?
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      if opts[:'object_type'] && !['ACDLANGUAGE', 'ACDSKILL', 'ACDWRAPUPCODE', 'BRIDGEACTION', 'COMMONMODULEFLOW', 'COMPOSERSCRIPT', 'CONTACTLIST', 'DATAACTION', 'DATATABLE', 'DIALOGENGINEBOT', 'DIALOGENGINEBOTVERSION', 'DIALOGFLOWAGENT', 'EMAILROUTE', 'EMERGENCYGROUP', 'FLOWOUTCOME', 'GROUP', 'INBOUNDCALLFLOW', 'INBOUNDCHATFLOW', 'INBOUNDEMAILFLOW', 'INBOUNDSHORTMESSAGEFLOW', 'INQUEUECALLFLOW', 'IVRCONFIGURATION', 'LANGUAGE', 'LEXBOT', 'LEXBOTALIAS', 'OUTBOUNDCALLFLOW', 'QUEUE', 'RECORDINGPOLICY', 'RESPONSE', 'SCHEDULE', 'SCHEDULEGROUP', 'SECUREACTION', 'SECURECALLFLOW', 'SURVEYINVITEFLOW', 'SYSTEMPROMPT', 'TTSENGINE', 'TTSVOICE', 'USER', 'USERPROMPT', 'WIDGET', 'WORKFLOW'].include?(opts[:'object_type'])
        fail ArgumentError, 'invalid value for "object_type", must be one of ACDLANGUAGE, ACDSKILL, ACDWRAPUPCODE, BRIDGEACTION, COMMONMODULEFLOW, COMPOSERSCRIPT, CONTACTLIST, DATAACTION, DATATABLE, DIALOGENGINEBOT, DIALOGENGINEBOTVERSION, DIALOGFLOWAGENT, EMAILROUTE, EMERGENCYGROUP, FLOWOUTCOME, GROUP, INBOUNDCALLFLOW, INBOUNDCHATFLOW, INBOUNDEMAILFLOW, INBOUNDSHORTMESSAGEFLOW, INQUEUECALLFLOW, IVRCONFIGURATION, LANGUAGE, LEXBOT, LEXBOTALIAS, OUTBOUNDCALLFLOW, QUEUE, RECORDINGPOLICY, RESPONSE, SCHEDULE, SCHEDULEGROUP, SECUREACTION, SECURECALLFLOW, SURVEYINVITEFLOW, SYSTEMPROMPT, TTSENGINE, TTSVOICE, USER, USERPROMPT, WIDGET, WORKFLOW'
      end
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      # resource path
      local_var_path = "/api/v2/architect/dependencytracking/object".sub('{format}','json')

      # query parameters
      query_params = {}
      query_params[:'id'] = id
      query_params[:'version'] = opts[:'version'] if opts[:'version']
      query_params[:'objectType'] = opts[:'object_type'] if opts[:'object_type']
      query_params[:'consumedResources'] = opts[:'consumed_resources'] if opts[:'consumed_resources']
      query_params[:'consumingResources'] = opts[:'consuming_resources'] if opts[:'consuming_resources']
      query_params[:'consumedResourceType'] = @api_client.build_collection_param(opts[:'consumed_resource_type'], :multi) if opts[:'consumed_resource_type']
      query_params[:'consumingResourceType'] = @api_client.build_collection_param(opts[:'consuming_resource_type'], :multi) if opts[:'consuming_resource_type']

      # header parameters
      header_params = {}

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

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

      # form parameters
      form_params = {}

      # http body (model)
      post_body = nil
      
      auth_names = ['PureCloud OAuth']
      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 => 'DependencyObject')
      if @api_client.config.debugging
        @api_client.config.logger.debug "API called: ArchitectApi#get_architect_dependencytracking_object\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
      end
      return data, status_code, headers
    end

    # Get a Dependency Tracking type.
    # 
    # @param type_id Type ID
    # @param [Hash] opts the optional parameters
    # @return [DependencyType]
    def get_architect_dependencytracking_type(type_id, opts = {})
      data, _status_code, _headers = get_architect_dependencytracking_type_with_http_info(type_id, opts)
      return data
    end

    # Get a Dependency Tracking type.
    # 
    # @param type_id Type ID
    # @param [Hash] opts the optional parameters
    # @return [Array<(DependencyType, Fixnum, Hash)>] DependencyType data, response status code and response headers
    def get_architect_dependencytracking_type_with_http_info(type_id, opts = {})
      if @api_client.config.debugging
        @api_client.config.logger.debug "Calling API: ArchitectApi.get_architect_dependencytracking_type ..."
      end
      
      
      # verify the required parameter 'type_id' is set
      fail ArgumentError, "Missing the required parameter 'type_id' when calling ArchitectApi.get_architect_dependencytracking_type" if type_id.nil?
      
      
      
      
      
      # resource path
      local_var_path = "/api/v2/architect/dependencytracking/types/{typeId}".sub('{format}','json').sub('{' + 'typeId' + '}', type_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 OAuth']
      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 => 'DependencyType')
      if @api_client.config.debugging
        @api_client.config.logger.debug "API called: ArchitectApi#get_architect_dependencytracking_type\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
      end
      return data, status_code, headers
    end

    # Get Dependency Tracking types.
    # 
    # @param [Hash] opts the optional parameters
    # @option opts [Integer] :page_number Page number (default to 1)
    # @option opts [Integer] :page_size Page size (default to 25)
    # @return [DependencyTypeEntityListing]
    def get_architect_dependencytracking_types(opts = {})
      data, _status_code, _headers = get_architect_dependencytracking_types_with_http_info(opts)
      return data
    end

    # Get Dependency Tracking types.
    # 
    # @param [Hash] opts the optional parameters
    # @option opts [Integer] :page_number Page number
    # @option opts [Integer] :page_size Page size
    # @return [Array<(DependencyTypeEntityListing, Fixnum, Hash)>] DependencyTypeEntityListing data, response status code and response headers
    def get_architect_dependencytracking_types_with_http_info(opts = {})
      if @api_client.config.debugging
        @api_client.config.logger.debug "Calling API: ArchitectApi.get_architect_dependencytracking_types ..."
      end
      
      
      
      
      
      
      
      
      
      
      
      
      
      # resource path
      local_var_path = "/api/v2/architect/dependencytracking/types".sub('{format}','json')

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

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

    # Get Dependency Tracking objects that depend on updated resources
    # 
    # @param [Hash] opts the optional parameters
    # @option opts [String] :name Name to search for
    # @option opts [Array<String>] :object_type Object type(s) to search for
    # @option opts [BOOLEAN] :consumed_resources Return consumed resources? (default to false)
    # @option opts [Array<String>] :consumed_resource_type Resource type(s) to return
    # @option opts [Integer] :page_number Page number (default to 1)
    # @option opts [Integer] :page_size Page size (default to 25)
    # @return [DependencyObjectEntityListing]
    def get_architect_dependencytracking_updatedresourceconsumers(opts = {})
      data, _status_code, _headers = get_architect_dependencytracking_updatedresourceconsumers_with_http_info(opts)
      return data
    end

    # Get Dependency Tracking objects that depend on updated resources
    # 
    # @param [Hash] opts the optional parameters
    # @option opts [String] :name Name to search for
    # @option opts [Array<String>] :object_type Object type(s) to search for
    # @option opts [BOOLEAN] :consumed_resources Return consumed resources?
    # @option opts [Array<String>] :consumed_resource_type Resource type(s) to return
    # @option opts [Integer] :page_number Page number
    # @option opts [Integer] :page_size Page size
    # @return [Array<(DependencyObjectEntityListing, Fixnum, Hash)>] DependencyObjectEntityListing data, response status code and response headers
    def get_architect_dependencytracking_updatedresourceconsumers_with_http_info(opts = {})
      if @api_client.config.debugging
        @api_client.config.logger.debug "Calling API: ArchitectApi.get_architect_dependencytracking_updatedresourceconsumers ..."
      end
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      # resource path
      local_var_path = "/api/v2/architect/dependencytracking/updatedresourceconsumers".sub('{format}','json')

      # query parameters
      query_params = {}
      query_params[:'name'] = opts[:'name'] if opts[:'name']
      query_params[:'objectType'] = @api_client.build_collection_param(opts[:'object_type'], :multi) if opts[:'object_type']
      query_params[:'consumedResources'] = opts[:'consumed_resources'] if opts[:'consumed_resources']
      query_params[:'consumedResourceType'] = @api_client.build_collection_param(opts[:'consumed_resource_type'], :multi) if opts[:'consumed_resource_type']
      query_params[:'pageNumber'] = opts[:'page_number'] if opts[:'page_number']
      query_params[:'pageSize'] = opts[:'page_size'] if opts[:'page_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 OAuth']
      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 => 'DependencyObjectEntityListing')
      if @api_client.config.debugging
        @api_client.config.logger.debug "API called: ArchitectApi#get_architect_dependencytracking_updatedresourceconsumers\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
      end
      return data, status_code, headers
    end

    # Gets a emergency group by ID
    # 
    # @param emergency_group_id Emergency group ID
    # @param [Hash] opts the optional parameters
    # @return [EmergencyGroup]
    def get_architect_emergencygroup(emergency_group_id, opts = {})
      data, _status_code, _headers = get_architect_emergencygroup_with_http_info(emergency_group_id, opts)
      return data
    end

    # Gets a emergency group by ID
    # 
    # @param emergency_group_id Emergency group ID
    # @param [Hash] opts the optional parameters
    # @return [Array<(EmergencyGroup, Fixnum, Hash)>] EmergencyGroup data, response status code and response headers
    def get_architect_emergencygroup_with_http_info(emergency_group_id, opts = {})
      if @api_client.config.debugging
        @api_client.config.logger.debug "Calling API: ArchitectApi.get_architect_emergencygroup ..."
      end
      
      
      # verify the required parameter 'emergency_group_id' is set
      fail ArgumentError, "Missing the required parameter 'emergency_group_id' when calling ArchitectApi.get_architect_emergencygroup" if emergency_group_id.nil?
      
      
      
      
      
      # resource path
      local_var_path = "/api/v2/architect/emergencygroups/{emergencyGroupId}".sub('{format}','json').sub('{' + 'emergencyGroupId' + '}', emergency_group_id.to_s)

      # query parameters
      query_params = {}

      # header parameters
      header_params = {}

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

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

      # form parameters
      form_params = {}

      # http body (model)
      post_body = nil
      
      auth_names = ['PureCloud OAuth']
      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 => 'EmergencyGroup')
      if @api_client.config.debugging
        @api_client.config.logger.debug "API called: ArchitectApi#get_architect_emergencygroup\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
      end
      return data, status_code, headers
    end

    # Get a list of emergency groups.
    # 
    # @param [Hash] opts the optional parameters
    # @option opts [Integer] :page_number Page number (default to 1)
    # @option opts [Integer] :page_size Page size (default to 25)
    # @option opts [String] :sort_by Sort by (default to name)
    # @option opts [String] :sort_order Sort order (default to ASC)
    # @option opts [String] :name Name of the Emergency Group to filter by.
    # @return [EmergencyGroupListing]
    def get_architect_emergencygroups(opts = {})
      data, _status_code, _headers = get_architect_emergencygroups_with_http_info(opts)
      return data
    end

    # Get a list of emergency groups.
    # 
    # @param [Hash] opts the optional parameters
    # @option opts [Integer] :page_number Page number
    # @option opts [Integer] :page_size Page size
    # @option opts [String] :sort_by Sort by
    # @option opts [String] :sort_order Sort order
    # @option opts [String] :name Name of the Emergency Group to filter by.
    # @return [Array<(EmergencyGroupListing, Fixnum, Hash)>] EmergencyGroupListing data, response status code and response headers
    def get_architect_emergencygroups_with_http_info(opts = {})
      if @api_client.config.debugging
        @api_client.config.logger.debug "Calling API: ArchitectApi.get_architect_emergencygroups ..."
      end
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      # resource path
      local_var_path = "/api/v2/architect/emergencygroups".sub('{format}','json')

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

      # header parameters
      header_params = {}

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

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

      # form parameters
      form_params = {}

      # http body (model)
      post_body = nil
      
      auth_names = ['PureCloud OAuth']
      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 => 'EmergencyGroupListing')
      if @api_client.config.debugging
        @api_client.config.logger.debug "API called: ArchitectApi#get_architect_emergencygroups\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
      end
      return data, status_code, headers
    end

    # Get an IVR config.
    # 
    # @param ivr_id IVR id
    # @param [Hash] opts the optional parameters
    # @return [IVR]
    def get_architect_ivr(ivr_id, opts = {})
      data, _status_code, _headers = get_architect_ivr_with_http_info(ivr_id, opts)
      return data
    end

    # Get an IVR config.
    # 
    # @param ivr_id IVR id
    # @param [Hash] opts the optional parameters
    # @return [Array<(IVR, Fixnum, Hash)>] IVR data, response status code and response headers
    def get_architect_ivr_with_http_info(ivr_id, opts = {})
      if @api_client.config.debugging
        @api_client.config.logger.debug "Calling API: ArchitectApi.get_architect_ivr ..."
      end
      
      
      # verify the required parameter 'ivr_id' is set
      fail ArgumentError, "Missing the required parameter 'ivr_id' when calling ArchitectApi.get_architect_ivr" if ivr_id.nil?
      
      
      
      
      
      # resource path
      local_var_path = "/api/v2/architect/ivrs/{ivrId}".sub('{format}','json').sub('{' + 'ivrId' + '}', ivr_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 OAuth']
      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 => 'IVR')
      if @api_client.config.debugging
        @api_client.config.logger.debug "API called: ArchitectApi#get_architect_ivr\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
      end
      return data, status_code, headers
    end

    # Get IVR configs.
    # 
    # @param [Hash] opts the optional parameters
    # @option opts [Integer] :page_number Page number (default to 1)
    # @option opts [Integer] :page_size Page size (default to 25)
    # @option opts [String] :sort_by Sort by (default to name)
    # @option opts [String] :sort_order Sort order (default to ASC)
    # @option opts [String] :name Name of the IVR to filter by.
    # @return [IVREntityListing]
    def get_architect_ivrs(opts = {})
      data, _status_code, _headers = get_architect_ivrs_with_http_info(opts)
      return data
    end

    # Get IVR configs.
    # 
    # @param [Hash] opts the optional parameters
    # @option opts [Integer] :page_number Page number
    # @option opts [Integer] :page_size Page size
    # @option opts [String] :sort_by Sort by
    # @option opts [String] :sort_order Sort order
    # @option opts [String] :name Name of the IVR to filter by.
    # @return [Array<(IVREntityListing, Fixnum, Hash)>] IVREntityListing data, response status code and response headers
    def get_architect_ivrs_with_http_info(opts = {})
      if @api_client.config.debugging
        @api_client.config.logger.debug "Calling API: ArchitectApi.get_architect_ivrs ..."
      end
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      # resource path
      local_var_path = "/api/v2/architect/ivrs".sub('{format}','json')

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

      # header parameters
      header_params = {}

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

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

      # form parameters
      form_params = {}

      # http body (model)
      post_body = nil
      
      auth_names = ['PureCloud OAuth']
      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 => 'IVREntityListing')
      if @api_client.config.debugging
        @api_client.config.logger.debug "API called: ArchitectApi#get_architect_ivrs\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
      end
      return data, status_code, headers
    end

    # Get specified user prompt
    # 
    # @param prompt_id Prompt ID
    # @param [Hash] opts the optional parameters
    # @return [Prompt]
    def get_architect_prompt(prompt_id, opts = {})
      data, _status_code, _headers = get_architect_prompt_with_http_info(prompt_id, opts)
      return data
    end

    # Get specified user prompt
    # 
    # @param prompt_id Prompt ID
    # @param [Hash] opts the optional parameters
    # @return [Array<(Prompt, Fixnum, Hash)>] Prompt data, response status code and response headers
    def get_architect_prompt_with_http_info(prompt_id, opts = {})
      if @api_client.config.debugging
        @api_client.config.logger.debug "Calling API: ArchitectApi.get_architect_prompt ..."
      end
      
      
      # verify the required parameter 'prompt_id' is set
      fail ArgumentError, "Missing the required parameter 'prompt_id' when calling ArchitectApi.get_architect_prompt" if prompt_id.nil?
      
      
      
      
      
      # resource path
      local_var_path = "/api/v2/architect/prompts/{promptId}".sub('{format}','json').sub('{' + 'promptId' + '}', prompt_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 OAuth']
      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 => 'Prompt')
      if @api_client.config.debugging
        @api_client.config.logger.debug "API called: ArchitectApi#get_architect_prompt\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
      end
      return data, status_code, headers
    end

    # Get generated prompt history
    # 
    # @param prompt_id Prompt ID
    # @param history_id History request ID
    # @param [Hash] opts the optional parameters
    # @option opts [Integer] :page_number Page number (default to 1)
    # @option opts [Integer] :page_size Page size (default to 25)
    # @option opts [String] :sort_order Sort order (default to desc)
    # @option opts [String] :sort_by Sort by (default to timestamp)
    # @option opts [Array<String>] :action Flow actions to include (omit to include all)
    # @return [HistoryListing]
    def get_architect_prompt_history_history_id(prompt_id, history_id, opts = {})
      data, _status_code, _headers = get_architect_prompt_history_history_id_with_http_info(prompt_id, history_id, opts)
      return data
    end

    # Get generated prompt history
    # 
    # @param prompt_id Prompt ID
    # @param history_id History request ID
    # @param [Hash] opts the optional parameters
    # @option opts [Integer] :page_number Page number
    # @option opts [Integer] :page_size Page size
    # @option opts [String] :sort_order Sort order
    # @option opts [String] :sort_by Sort by
    # @option opts [Array<String>] :action Flow actions to include (omit to include all)
    # @return [Array<(HistoryListing, Fixnum, Hash)>] HistoryListing data, response status code and response headers
    def get_architect_prompt_history_history_id_with_http_info(prompt_id, history_id, opts = {})
      if @api_client.config.debugging
        @api_client.config.logger.debug "Calling API: ArchitectApi.get_architect_prompt_history_history_id ..."
      end
      
      
      # verify the required parameter 'prompt_id' is set
      fail ArgumentError, "Missing the required parameter 'prompt_id' when calling ArchitectApi.get_architect_prompt_history_history_id" if prompt_id.nil?
      
      
      
      
      
      
      # verify the required parameter 'history_id' is set
      fail ArgumentError, "Missing the required parameter 'history_id' when calling ArchitectApi.get_architect_prompt_history_history_id" if history_id.nil?
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      if opts[:'sort_by'] && !['action', 'timestamp', 'user'].include?(opts[:'sort_by'])
        fail ArgumentError, 'invalid value for "sort_by", must be one of action, timestamp, user'
      end
      
      
      
      
      
      
      
      
      
      
      # resource path
      local_var_path = "/api/v2/architect/prompts/{promptId}/history/{historyId}".sub('{format}','json').sub('{' + 'promptId' + '}', prompt_id.to_s).sub('{' + 'historyId' + '}', history_id.to_s)

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

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

    # Get specified user prompt resource
    # 
    # @param prompt_id Prompt ID
    # @param language_code Language
    # @param [Hash] opts the optional parameters
    # @return [PromptAsset]
    def get_architect_prompt_resource(prompt_id, language_code, opts = {})
      data, _status_code, _headers = get_architect_prompt_resource_with_http_info(prompt_id, language_code, opts)
      return data
    end

    # Get specified user prompt resource
    # 
    # @param prompt_id Prompt ID
    # @param language_code Language
    # @param [Hash] opts the optional parameters
    # @return [Array<(PromptAsset, Fixnum, Hash)>] PromptAsset data, response status code and response headers
    def get_architect_prompt_resource_with_http_info(prompt_id, language_code, opts = {})
      if @api_client.config.debugging
        @api_client.config.logger.debug "Calling API: ArchitectApi.get_architect_prompt_resource ..."
      end
      
      
      # verify the required parameter 'prompt_id' is set
      fail ArgumentError, "Missing the required parameter 'prompt_id' when calling ArchitectApi.get_architect_prompt_resource" if prompt_id.nil?
      
      
      
      
      
      
      # verify the required parameter 'language_code' is set
      fail ArgumentError, "Missing the required parameter 'language_code' when calling ArchitectApi.get_architect_prompt_resource" if language_code.nil?
      
      
      
      
      
      # resource path
      local_var_path = "/api/v2/architect/prompts/{promptId}/resources/{languageCode}".sub('{format}','json').sub('{' + 'promptId' + '}', prompt_id.to_s).sub('{' + 'languageCode' + '}', language_code.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 OAuth']
      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 => 'PromptAsset')
      if @api_client.config.debugging
        @api_client.config.logger.debug "API called: ArchitectApi#get_architect_prompt_resource\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
      end
      return data, status_code, headers
    end

    # Get a pageable list of user prompt resources
    # The returned list is pageable, and query parameters can be used for filtering.
    # @param prompt_id Prompt ID
    # @param [Hash] opts the optional parameters
    # @option opts [Integer] :page_number Page number (default to 1)
    # @option opts [Integer] :page_size Page size (default to 25)
    # @return [PromptAssetEntityListing]
    def get_architect_prompt_resources(prompt_id, opts = {})
      data, _status_code, _headers = get_architect_prompt_resources_with_http_info(prompt_id, opts)
      return data
    end

    # Get a pageable list of user prompt resources
    # The returned list is pageable, and query parameters can be used for filtering.
    # @param prompt_id Prompt ID
    # @param [Hash] opts the optional parameters
    # @option opts [Integer] :page_number Page number
    # @option opts [Integer] :page_size Page size
    # @return [Array<(PromptAssetEntityListing, Fixnum, Hash)>] PromptAssetEntityListing data, response status code and response headers
    def get_architect_prompt_resources_with_http_info(prompt_id, opts = {})
      if @api_client.config.debugging
        @api_client.config.logger.debug "Calling API: ArchitectApi.get_architect_prompt_resources ..."
      end
      
      
      # verify the required parameter 'prompt_id' is set
      fail ArgumentError, "Missing the required parameter 'prompt_id' when calling ArchitectApi.get_architect_prompt_resources" if prompt_id.nil?
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      # resource path
      local_var_path = "/api/v2/architect/prompts/{promptId}/resources".sub('{format}','json').sub('{' + 'promptId' + '}', prompt_id.to_s)

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

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

    # Get a pageable list of user prompts
    # The returned list is pageable, and query parameters can be used for filtering.  Multiple names can be specified, in which case all matching prompts will be returned, and no other filters will be evaluated.
    # @param [Hash] opts the optional parameters
    # @option opts [Integer] :page_number Page number (default to 1)
    # @option opts [Integer] :page_size Page size (default to 25)
    # @option opts [Array<String>] :name Name
    # @option opts [String] :description Description
    # @option opts [String] :name_or_description Name or description
    # @option opts [String] :sort_by Sort by (default to id)
    # @option opts [String] :sort_order Sort order (default to asc)
    # @return [PromptEntityListing]
    def get_architect_prompts(opts = {})
      data, _status_code, _headers = get_architect_prompts_with_http_info(opts)
      return data
    end

    # Get a pageable list of user prompts
    # The returned list is pageable, and query parameters can be used for filtering.  Multiple names can be specified, in which case all matching prompts will be returned, and no other filters will be evaluated.
    # @param [Hash] opts the optional parameters
    # @option opts [Integer] :page_number Page number
    # @option opts [Integer] :page_size Page size
    # @option opts [Array<String>] :name Name
    # @option opts [String] :description Description
    # @option opts [String] :name_or_description Name or description
    # @option opts [String] :sort_by Sort by
    # @option opts [String] :sort_order Sort order
    # @return [Array<(PromptEntityListing, Fixnum, Hash)>] PromptEntityListing data, response status code and response headers
    def get_architect_prompts_with_http_info(opts = {})
      if @api_client.config.debugging
        @api_client.config.logger.debug "Calling API: ArchitectApi.get_architect_prompts ..."
      end
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      # resource path
      local_var_path = "/api/v2/architect/prompts".sub('{format}','json')

      # query parameters
      query_params = {}
      query_params[:'pageNumber'] = opts[:'page_number'] if opts[:'page_number']
      query_params[:'pageSize'] = opts[:'page_size'] if opts[:'page_size']
      query_params[:'name'] = @api_client.build_collection_param(opts[:'name'], :multi) if opts[:'name']
      query_params[:'description'] = opts[:'description'] if opts[:'description']
      query_params[:'nameOrDescription'] = opts[:'name_or_description'] if opts[:'name_or_description']
      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 OAuth']
      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 => 'PromptEntityListing')
      if @api_client.config.debugging
        @api_client.config.logger.debug "API called: ArchitectApi#get_architect_prompts\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
      end
      return data, status_code, headers
    end

    # Get a schedule by ID
    # 
    # @param schedule_id Schedule ID
    # @param [Hash] opts the optional parameters
    # @return [Schedule]
    def get_architect_schedule(schedule_id, opts = {})
      data, _status_code, _headers = get_architect_schedule_with_http_info(schedule_id, opts)
      return data
    end

    # Get a schedule by ID
    # 
    # @param schedule_id Schedule ID
    # @param [Hash] opts the optional parameters
    # @return [Array<(Schedule, Fixnum, Hash)>] Schedule data, response status code and response headers
    def get_architect_schedule_with_http_info(schedule_id, opts = {})
      if @api_client.config.debugging
        @api_client.config.logger.debug "Calling API: ArchitectApi.get_architect_schedule ..."
      end
      
      
      # verify the required parameter 'schedule_id' is set
      fail ArgumentError, "Missing the required parameter 'schedule_id' when calling ArchitectApi.get_architect_schedule" if schedule_id.nil?
      
      
      
      
      
      # resource path
      local_var_path = "/api/v2/architect/schedules/{scheduleId}".sub('{format}','json').sub('{' + 'scheduleId' + '}', schedule_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 OAuth']
      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 => 'Schedule')
      if @api_client.config.debugging
        @api_client.config.logger.debug "API called: ArchitectApi#get_architect_schedule\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
      end
      return data, status_code, headers
    end

    # Gets a schedule group by ID
    # 
    # @param schedule_group_id Schedule group ID
    # @param [Hash] opts the optional parameters
    # @return [ScheduleGroup]
    def get_architect_schedulegroup(schedule_group_id, opts = {})
      data, _status_code, _headers = get_architect_schedulegroup_with_http_info(schedule_group_id, opts)
      return data
    end

    # Gets a schedule group by ID
    # 
    # @param schedule_group_id Schedule group ID
    # @param [Hash] opts the optional parameters
    # @return [Array<(ScheduleGroup, Fixnum, Hash)>] ScheduleGroup data, response status code and response headers
    def get_architect_schedulegroup_with_http_info(schedule_group_id, opts = {})
      if @api_client.config.debugging
        @api_client.config.logger.debug "Calling API: ArchitectApi.get_architect_schedulegroup ..."
      end
      
      
      # verify the required parameter 'schedule_group_id' is set
      fail ArgumentError, "Missing the required parameter 'schedule_group_id' when calling ArchitectApi.get_architect_schedulegroup" if schedule_group_id.nil?
      
      
      
      
      
      # resource path
      local_var_path = "/api/v2/architect/schedulegroups/{scheduleGroupId}".sub('{format}','json').sub('{' + 'scheduleGroupId' + '}', schedule_group_id.to_s)

      # query parameters
      query_params = {}

      # header parameters
      header_params = {}

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

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

      # form parameters
      form_params = {}

      # http body (model)
      post_body = nil
      
      auth_names = ['PureCloud OAuth']
      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 => 'ScheduleGroup')
      if @api_client.config.debugging
        @api_client.config.logger.debug "API called: ArchitectApi#get_architect_schedulegroup\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
      end
      return data, status_code, headers
    end

    # Get a list of schedule groups.
    # 
    # @param [Hash] opts the optional parameters
    # @option opts [Integer] :page_number Page number (default to 1)
    # @option opts [Integer] :page_size Page size (default to 25)
    # @option opts [String] :sort_by Sort by (default to name)
    # @option opts [String] :sort_order Sort order (default to ASC)
    # @option opts [String] :name Name of the Schedule Group to filter by.
    # @return [ScheduleGroupEntityListing]
    def get_architect_schedulegroups(opts = {})
      data, _status_code, _headers = get_architect_schedulegroups_with_http_info(opts)
      return data
    end

    # Get a list of schedule groups.
    # 
    # @param [Hash] opts the optional parameters
    # @option opts [Integer] :page_number Page number
    # @option opts [Integer] :page_size Page size
    # @option opts [String] :sort_by Sort by
    # @option opts [String] :sort_order Sort order
    # @option opts [String] :name Name of the Schedule Group to filter by.
    # @return [Array<(ScheduleGroupEntityListing, Fixnum, Hash)>] ScheduleGroupEntityListing data, response status code and response headers
    def get_architect_schedulegroups_with_http_info(opts = {})
      if @api_client.config.debugging
        @api_client.config.logger.debug "Calling API: ArchitectApi.get_architect_schedulegroups ..."
      end
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      # resource path
      local_var_path = "/api/v2/architect/schedulegroups".sub('{format}','json')

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

      # header parameters
      header_params = {}

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

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

      # form parameters
      form_params = {}

      # http body (model)
      post_body = nil
      
      auth_names = ['PureCloud OAuth']
      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 => 'ScheduleGroupEntityListing')
      if @api_client.config.debugging
        @api_client.config.logger.debug "API called: ArchitectApi#get_architect_schedulegroups\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
      end
      return data, status_code, headers
    end

    # Get a list of schedules.
    # 
    # @param [Hash] opts the optional parameters
    # @option opts [Integer] :page_number Page number (default to 1)
    # @option opts [Integer] :page_size Page size (default to 25)
    # @option opts [String] :sort_by Sort by (default to name)
    # @option opts [String] :sort_order Sort order (default to ASC)
    # @option opts [String] :name Name of the Schedule to filter by.
    # @return [ScheduleEntityListing]
    def get_architect_schedules(opts = {})
      data, _status_code, _headers = get_architect_schedules_with_http_info(opts)
      return data
    end

    # Get a list of schedules.
    # 
    # @param [Hash] opts the optional parameters
    # @option opts [Integer] :page_number Page number
    # @option opts [Integer] :page_size Page size
    # @option opts [String] :sort_by Sort by
    # @option opts [String] :sort_order Sort order
    # @option opts [String] :name Name of the Schedule to filter by.
    # @return [Array<(ScheduleEntityListing, Fixnum, Hash)>] ScheduleEntityListing data, response status code and response headers
    def get_architect_schedules_with_http_info(opts = {})
      if @api_client.config.debugging
        @api_client.config.logger.debug "Calling API: ArchitectApi.get_architect_schedules ..."
      end
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      # resource path
      local_var_path = "/api/v2/architect/schedules".sub('{format}','json')

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

      # header parameters
      header_params = {}

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

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

      # form parameters
      form_params = {}

      # http body (model)
      post_body = nil
      
      auth_names = ['PureCloud OAuth']
      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 => 'ScheduleEntityListing')
      if @api_client.config.debugging
        @api_client.config.logger.debug "API called: ArchitectApi#get_architect_schedules\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
      end
      return data, status_code, headers
    end

    # Get a system prompt
    # 
    # @param prompt_id promptId
    # @param [Hash] opts the optional parameters
    # @return [SystemPrompt]
    def get_architect_systemprompt(prompt_id, opts = {})
      data, _status_code, _headers = get_architect_systemprompt_with_http_info(prompt_id, opts)
      return data
    end

    # Get a system prompt
    # 
    # @param prompt_id promptId
    # @param [Hash] opts the optional parameters
    # @return [Array<(SystemPrompt, Fixnum, Hash)>] SystemPrompt data, response status code and response headers
    def get_architect_systemprompt_with_http_info(prompt_id, opts = {})
      if @api_client.config.debugging
        @api_client.config.logger.debug "Calling API: ArchitectApi.get_architect_systemprompt ..."
      end
      
      
      # verify the required parameter 'prompt_id' is set
      fail ArgumentError, "Missing the required parameter 'prompt_id' when calling ArchitectApi.get_architect_systemprompt" if prompt_id.nil?
      
      
      
      
      
      # resource path
      local_var_path = "/api/v2/architect/systemprompts/{promptId}".sub('{format}','json').sub('{' + 'promptId' + '}', prompt_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 OAuth']
      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 => 'SystemPrompt')
      if @api_client.config.debugging
        @api_client.config.logger.debug "API called: ArchitectApi#get_architect_systemprompt\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
      end
      return data, status_code, headers
    end

    # Get generated prompt history
    # 
    # @param prompt_id promptId
    # @param history_id History request ID
    # @param [Hash] opts the optional parameters
    # @option opts [Integer] :page_number Page number (default to 1)
    # @option opts [Integer] :page_size Page size (default to 25)
    # @option opts [String] :sort_order Sort order (default to desc)
    # @option opts [String] :sort_by Sort by (default to timestamp)
    # @option opts [Array<String>] :action Flow actions to include (omit to include all)
    # @return [HistoryListing]
    def get_architect_systemprompt_history_history_id(prompt_id, history_id, opts = {})
      data, _status_code, _headers = get_architect_systemprompt_history_history_id_with_http_info(prompt_id, history_id, opts)
      return data
    end

    # Get generated prompt history
    # 
    # @param prompt_id promptId
    # @param history_id History request ID
    # @param [Hash] opts the optional parameters
    # @option opts [Integer] :page_number Page number
    # @option opts [Integer] :page_size Page size
    # @option opts [String] :sort_order Sort order
    # @option opts [String] :sort_by Sort by
    # @option opts [Array<String>] :action Flow actions to include (omit to include all)
    # @return [Array<(HistoryListing, Fixnum, Hash)>] HistoryListing data, response status code and response headers
    def get_architect_systemprompt_history_history_id_with_http_info(prompt_id, history_id, opts = {})
      if @api_client.config.debugging
        @api_client.config.logger.debug "Calling API: ArchitectApi.get_architect_systemprompt_history_history_id ..."
      end
      
      
      # verify the required parameter 'prompt_id' is set
      fail ArgumentError, "Missing the required parameter 'prompt_id' when calling ArchitectApi.get_architect_systemprompt_history_history_id" if prompt_id.nil?
      
      
      
      
      
      
      # verify the required parameter 'history_id' is set
      fail ArgumentError, "Missing the required parameter 'history_id' when calling ArchitectApi.get_architect_systemprompt_history_history_id" if history_id.nil?
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      if opts[:'sort_by'] && !['action', 'timestamp', 'user'].include?(opts[:'sort_by'])
        fail ArgumentError, 'invalid value for "sort_by", must be one of action, timestamp, user'
      end
      
      
      
      
      
      
      
      
      
      
      # resource path
      local_var_path = "/api/v2/architect/systemprompts/{promptId}/history/{historyId}".sub('{format}','json').sub('{' + 'promptId' + '}', prompt_id.to_s).sub('{' + 'historyId' + '}', history_id.to_s)

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

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

    # Get a system prompt resource.
    # 
    # @param prompt_id Prompt ID
    # @param language_code Language
    # @param [Hash] opts the optional parameters
    # @return [SystemPromptAsset]
    def get_architect_systemprompt_resource(prompt_id, language_code, opts = {})
      data, _status_code, _headers = get_architect_systemprompt_resource_with_http_info(prompt_id, language_code, opts)
      return data
    end

    # Get a system prompt resource.
    # 
    # @param prompt_id Prompt ID
    # @param language_code Language
    # @param [Hash] opts the optional parameters
    # @return [Array<(SystemPromptAsset, Fixnum, Hash)>] SystemPromptAsset data, response status code and response headers
    def get_architect_systemprompt_resource_with_http_info(prompt_id, language_code, opts = {})
      if @api_client.config.debugging
        @api_client.config.logger.debug "Calling API: ArchitectApi.get_architect_systemprompt_resource ..."
      end
      
      
      # verify the required parameter 'prompt_id' is set
      fail ArgumentError, "Missing the required parameter 'prompt_id' when calling ArchitectApi.get_architect_systemprompt_resource" if prompt_id.nil?
      
      
      
      
      
      
      # verify the required parameter 'language_code' is set
      fail ArgumentError, "Missing the required parameter 'language_code' when calling ArchitectApi.get_architect_systemprompt_resource" if language_code.nil?
      
      
      
      
      
      # resource path
      local_var_path = "/api/v2/architect/systemprompts/{promptId}/resources/{languageCode}".sub('{format}','json').sub('{' + 'promptId' + '}', prompt_id.to_s).sub('{' + 'languageCode' + '}', language_code.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 OAuth']
      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 => 'SystemPromptAsset')
      if @api_client.config.debugging
        @api_client.config.logger.debug "API called: ArchitectApi#get_architect_systemprompt_resource\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
      end
      return data, status_code, headers
    end

    # Get system prompt resources.
    # 
    # @param prompt_id Prompt ID
    # @param [Hash] opts the optional parameters
    # @option opts [Integer] :page_number Page number (default to 1)
    # @option opts [Integer] :page_size Page size (default to 25)
    # @option opts [String] :sort_by Sort by (default to id)
    # @option opts [String] :sort_order Sort order (default to asc)
    # @return [SystemPromptAssetEntityListing]
    def get_architect_systemprompt_resources(prompt_id, opts = {})
      data, _status_code, _headers = get_architect_systemprompt_resources_with_http_info(prompt_id, opts)
      return data
    end

    # Get system prompt resources.
    # 
    # @param prompt_id Prompt ID
    # @param [Hash] opts the optional parameters
    # @option opts [Integer] :page_number Page number
    # @option opts [Integer] :page_size Page size
    # @option opts [String] :sort_by Sort by
    # @option opts [String] :sort_order Sort order
    # @return [Array<(SystemPromptAssetEntityListing, Fixnum, Hash)>] SystemPromptAssetEntityListing data, response status code and response headers
    def get_architect_systemprompt_resources_with_http_info(prompt_id, opts = {})
      if @api_client.config.debugging
        @api_client.config.logger.debug "Calling API: ArchitectApi.get_architect_systemprompt_resources ..."
      end
      
      
      # verify the required parameter 'prompt_id' is set
      fail ArgumentError, "Missing the required parameter 'prompt_id' when calling ArchitectApi.get_architect_systemprompt_resources" if prompt_id.nil?
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      # resource path
      local_var_path = "/api/v2/architect/systemprompts/{promptId}/resources".sub('{format}','json').sub('{' + 'promptId' + '}', prompt_id.to_s)

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

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

    # Get System Prompts
    # 
    # @param [Hash] opts the optional parameters
    # @option opts [Integer] :page_number Page number (default to 1)
    # @option opts [Integer] :page_size Page size (default to 25)
    # @option opts [String] :sort_by Sort by (default to id)
    # @option opts [String] :sort_order Sort order (default to asc)
    # @option opts [String] :name Name
    # @option opts [String] :description Description
    # @option opts [String] :name_or_description Name or description
    # @return [SystemPromptEntityListing]
    def get_architect_systemprompts(opts = {})
      data, _status_code, _headers = get_architect_systemprompts_with_http_info(opts)
      return data
    end

    # Get System Prompts
    # 
    # @param [Hash] opts the optional parameters
    # @option opts [Integer] :page_number Page number
    # @option opts [Integer] :page_size Page size
    # @option opts [String] :sort_by Sort by
    # @option opts [String] :sort_order Sort order
    # @option opts [String] :name Name
    # @option opts [String] :description Description
    # @option opts [String] :name_or_description Name or description
    # @return [Array<(SystemPromptEntityListing, Fixnum, Hash)>] SystemPromptEntityListing data, response status code and response headers
    def get_architect_systemprompts_with_http_info(opts = {})
      if @api_client.config.debugging
        @api_client.config.logger.debug "Calling API: ArchitectApi.get_architect_systemprompts ..."
      end
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      # resource path
      local_var_path = "/api/v2/architect/systemprompts".sub('{format}','json')

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

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

    # Get flow
    # 
    # @param flow_id Flow ID
    # @param [Hash] opts the optional parameters
    # @option opts [BOOLEAN] :deleted Include deleted flows (default to false)
    # @return [Flow]
    def get_flow(flow_id, opts = {})
      data, _status_code, _headers = get_flow_with_http_info(flow_id, opts)
      return data
    end

    # Get flow
    # 
    # @param flow_id Flow ID
    # @param [Hash] opts the optional parameters
    # @option opts [BOOLEAN] :deleted Include deleted flows
    # @return [Array<(Flow, Fixnum, Hash)>] Flow data, response status code and response headers
    def get_flow_with_http_info(flow_id, opts = {})
      if @api_client.config.debugging
        @api_client.config.logger.debug "Calling API: ArchitectApi.get_flow ..."
      end
      
      
      # verify the required parameter 'flow_id' is set
      fail ArgumentError, "Missing the required parameter 'flow_id' when calling ArchitectApi.get_flow" if flow_id.nil?
      
      
      
      
      
      
      
      
      
      
      
      # resource path
      local_var_path = "/api/v2/flows/{flowId}".sub('{format}','json').sub('{' + 'flowId' + '}', flow_id.to_s)

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

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

    # Get generated flow history
    # 
    # @param flow_id Flow ID
    # @param history_id History request ID
    # @param [Hash] opts the optional parameters
    # @option opts [Integer] :page_number Page number (default to 1)
    # @option opts [Integer] :page_size Page size (default to 25)
    # @option opts [String] :sort_order Sort order (default to desc)
    # @option opts [String] :sort_by Sort by (default to timestamp)
    # @option opts [Array<String>] :action Flow actions to include (omit to include all)
    # @return [HistoryListing]
    def get_flow_history_history_id(flow_id, history_id, opts = {})
      data, _status_code, _headers = get_flow_history_history_id_with_http_info(flow_id, history_id, opts)
      return data
    end

    # Get generated flow history
    # 
    # @param flow_id Flow ID
    # @param history_id History request ID
    # @param [Hash] opts the optional parameters
    # @option opts [Integer] :page_number Page number
    # @option opts [Integer] :page_size Page size
    # @option opts [String] :sort_order Sort order
    # @option opts [String] :sort_by Sort by
    # @option opts [Array<String>] :action Flow actions to include (omit to include all)
    # @return [Array<(HistoryListing, Fixnum, Hash)>] HistoryListing data, response status code and response headers
    def get_flow_history_history_id_with_http_info(flow_id, history_id, opts = {})
      if @api_client.config.debugging
        @api_client.config.logger.debug "Calling API: ArchitectApi.get_flow_history_history_id ..."
      end
      
      
      # verify the required parameter 'flow_id' is set
      fail ArgumentError, "Missing the required parameter 'flow_id' when calling ArchitectApi.get_flow_history_history_id" if flow_id.nil?
      
      
      
      
      
      
      # verify the required parameter 'history_id' is set
      fail ArgumentError, "Missing the required parameter 'history_id' when calling ArchitectApi.get_flow_history_history_id" if history_id.nil?
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      if opts[:'sort_by'] && !['action', 'timestamp', 'user'].include?(opts[:'sort_by'])
        fail ArgumentError, 'invalid value for "sort_by", must be one of action, timestamp, user'
      end
      
      
      
      
      
      
      
      
      
      
      # resource path
      local_var_path = "/api/v2/flows/{flowId}/history/{historyId}".sub('{format}','json').sub('{' + 'flowId' + '}', flow_id.to_s).sub('{' + 'historyId' + '}', history_id.to_s)

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

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

    # Get the latest configuration for flow
    # 
    # @param flow_id Flow ID
    # @param [Hash] opts the optional parameters
    # @option opts [BOOLEAN] :deleted Include deleted flows (default to false)
    # @return [Object]
    def get_flow_latestconfiguration(flow_id, opts = {})
      data, _status_code, _headers = get_flow_latestconfiguration_with_http_info(flow_id, opts)
      return data
    end

    # Get the latest configuration for flow
    # 
    # @param flow_id Flow ID
    # @param [Hash] opts the optional parameters
    # @option opts [BOOLEAN] :deleted Include deleted flows
    # @return [Array<(Object, Fixnum, Hash)>] Object data, response status code and response headers
    def get_flow_latestconfiguration_with_http_info(flow_id, opts = {})
      if @api_client.config.debugging
        @api_client.config.logger.debug "Calling API: ArchitectApi.get_flow_latestconfiguration ..."
      end
      
      
      # verify the required parameter 'flow_id' is set
      fail ArgumentError, "Missing the required parameter 'flow_id' when calling ArchitectApi.get_flow_latestconfiguration" if flow_id.nil?
      
      
      
      
      
      
      
      
      
      
      
      # resource path
      local_var_path = "/api/v2/flows/{flowId}/latestconfiguration".sub('{format}','json').sub('{' + 'flowId' + '}', flow_id.to_s)

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

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

    # Get flow version
    # 
    # @param flow_id Flow ID
    # @param version_id Version ID
    # @param [Hash] opts the optional parameters
    # @option opts [String] :deleted Include deleted flows
    # @return [FlowVersion]
    def get_flow_version(flow_id, version_id, opts = {})
      data, _status_code, _headers = get_flow_version_with_http_info(flow_id, version_id, opts)
      return data
    end

    # Get flow version
    # 
    # @param flow_id Flow ID
    # @param version_id Version ID
    # @param [Hash] opts the optional parameters
    # @option opts [String] :deleted Include deleted flows
    # @return [Array<(FlowVersion, Fixnum, Hash)>] FlowVersion data, response status code and response headers
    def get_flow_version_with_http_info(flow_id, version_id, opts = {})
      if @api_client.config.debugging
        @api_client.config.logger.debug "Calling API: ArchitectApi.get_flow_version ..."
      end
      
      
      # verify the required parameter 'flow_id' is set
      fail ArgumentError, "Missing the required parameter 'flow_id' when calling ArchitectApi.get_flow_version" if flow_id.nil?
      
      
      
      
      
      
      # verify the required parameter 'version_id' is set
      fail ArgumentError, "Missing the required parameter 'version_id' when calling ArchitectApi.get_flow_version" if version_id.nil?
      
      
      
      
      
      
      
      
      
      
      
      # resource path
      local_var_path = "/api/v2/flows/{flowId}/versions/{versionId}".sub('{format}','json').sub('{' + 'flowId' + '}', flow_id.to_s).sub('{' + 'versionId' + '}', version_id.to_s)

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

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

    # Create flow version configuration
    # 
    # @param flow_id Flow ID
    # @param version_id Version ID
    # @param [Hash] opts the optional parameters
    # @option opts [String] :deleted Include deleted flows
    # @return [Object]
    def get_flow_version_configuration(flow_id, version_id, opts = {})
      data, _status_code, _headers = get_flow_version_configuration_with_http_info(flow_id, version_id, opts)
      return data
    end

    # Create flow version configuration
    # 
    # @param flow_id Flow ID
    # @param version_id Version ID
    # @param [Hash] opts the optional parameters
    # @option opts [String] :deleted Include deleted flows
    # @return [Array<(Object, Fixnum, Hash)>] Object data, response status code and response headers
    def get_flow_version_configuration_with_http_info(flow_id, version_id, opts = {})
      if @api_client.config.debugging
        @api_client.config.logger.debug "Calling API: ArchitectApi.get_flow_version_configuration ..."
      end
      
      
      # verify the required parameter 'flow_id' is set
      fail ArgumentError, "Missing the required parameter 'flow_id' when calling ArchitectApi.get_flow_version_configuration" if flow_id.nil?
      
      
      
      
      
      
      # verify the required parameter 'version_id' is set
      fail ArgumentError, "Missing the required parameter 'version_id' when calling ArchitectApi.get_flow_version_configuration" if version_id.nil?
      
      
      
      
      
      
      
      
      
      
      
      # resource path
      local_var_path = "/api/v2/flows/{flowId}/versions/{versionId}/configuration".sub('{format}','json').sub('{' + 'flowId' + '}', flow_id.to_s).sub('{' + 'versionId' + '}', version_id.to_s)

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

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

    # Get flow version list
    # 
    # @param flow_id Flow ID
    # @param [Hash] opts the optional parameters
    # @option opts [Integer] :page_number Page number (default to 1)
    # @option opts [Integer] :page_size Page size (default to 25)
    # @option opts [BOOLEAN] :deleted Include deleted flows
    # @return [FlowVersionEntityListing]
    def get_flow_versions(flow_id, opts = {})
      data, _status_code, _headers = get_flow_versions_with_http_info(flow_id, opts)
      return data
    end

    # Get flow version list
    # 
    # @param flow_id Flow ID
    # @param [Hash] opts the optional parameters
    # @option opts [Integer] :page_number Page number
    # @option opts [Integer] :page_size Page size
    # @option opts [BOOLEAN] :deleted Include deleted flows
    # @return [Array<(FlowVersionEntityListing, Fixnum, Hash)>] FlowVersionEntityListing data, response status code and response headers
    def get_flow_versions_with_http_info(flow_id, opts = {})
      if @api_client.config.debugging
        @api_client.config.logger.debug "Calling API: ArchitectApi.get_flow_versions ..."
      end
      
      
      # verify the required parameter 'flow_id' is set
      fail ArgumentError, "Missing the required parameter 'flow_id' when calling ArchitectApi.get_flow_versions" if flow_id.nil?
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      # resource path
      local_var_path = "/api/v2/flows/{flowId}/versions".sub('{format}','json').sub('{' + 'flowId' + '}', flow_id.to_s)

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

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

    # Get a pageable list of flows, filtered by query parameters
    # If one or more IDs are specified, the search will fetch flows that match the given ID(s) and not use any additional supplied query parameters in the search.
    # @param [Hash] opts the optional parameters
    # @option opts [Array<String>] :type Type
    # @option opts [Integer] :page_number Page number (default to 1)
    # @option opts [Integer] :page_size Page size (default to 25)
    # @option opts [String] :sort_by Sort by (default to id)
    # @option opts [String] :sort_order Sort order (default to asc)
    # @option opts [Array<String>] :id ID
    # @option opts [String] :name Name
    # @option opts [String] :description Description
    # @option opts [String] :name_or_description Name or description
    # @option opts [String] :publish_version_id Publish version ID
    # @option opts [String] :editable_by Editable by
    # @option opts [String] :locked_by Locked by
    # @option opts [String] :locked_by_client_id Locked by client ID
    # @option opts [String] :secure Secure
    # @option opts [BOOLEAN] :deleted Include deleted (default to false)
    # @option opts [BOOLEAN] :include_schemas Include variable schemas (default to false)
    # @option opts [String] :published_after Published after
    # @option opts [String] :published_before Published before
    # @option opts [Array<String>] :division_id division ID(s)
    # @return [FlowEntityListing]
    def get_flows(opts = {})
      data, _status_code, _headers = get_flows_with_http_info(opts)
      return data
    end

    # Get a pageable list of flows, filtered by query parameters
    # If one or more IDs are specified, the search will fetch flows that match the given ID(s) and not use any additional supplied query parameters in the search.
    # @param [Hash] opts the optional parameters
    # @option opts [Array<String>] :type Type
    # @option opts [Integer] :page_number Page number
    # @option opts [Integer] :page_size Page size
    # @option opts [String] :sort_by Sort by
    # @option opts [String] :sort_order Sort order
    # @option opts [Array<String>] :id ID
    # @option opts [String] :name Name
    # @option opts [String] :description Description
    # @option opts [String] :name_or_description Name or description
    # @option opts [String] :publish_version_id Publish version ID
    # @option opts [String] :editable_by Editable by
    # @option opts [String] :locked_by Locked by
    # @option opts [String] :locked_by_client_id Locked by client ID
    # @option opts [String] :secure Secure
    # @option opts [BOOLEAN] :deleted Include deleted
    # @option opts [BOOLEAN] :include_schemas Include variable schemas
    # @option opts [String] :published_after Published after
    # @option opts [String] :published_before Published before
    # @option opts [Array<String>] :division_id division ID(s)
    # @return [Array<(FlowEntityListing, Fixnum, Hash)>] FlowEntityListing data, response status code and response headers
    def get_flows_with_http_info(opts = {})
      if @api_client.config.debugging
        @api_client.config.logger.debug "Calling API: ArchitectApi.get_flows ..."
      end
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      if opts[:'secure'] && !['any', 'checkedin', 'published'].include?(opts[:'secure'])
        fail ArgumentError, 'invalid value for "secure", must be one of any, checkedin, published'
      end
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      # resource path
      local_var_path = "/api/v2/flows".sub('{format}','json')

      # query parameters
      query_params = {}
      query_params[:'type'] = @api_client.build_collection_param(opts[:'type'], :multi) if opts[:'type']
      query_params[:'pageNumber'] = opts[:'page_number'] if opts[:'page_number']
      query_params[:'pageSize'] = opts[:'page_size'] if opts[:'page_size']
      query_params[:'sortBy'] = opts[:'sort_by'] if opts[:'sort_by']
      query_params[:'sortOrder'] = opts[:'sort_order'] if opts[:'sort_order']
      query_params[:'id'] = @api_client.build_collection_param(opts[:'id'], :multi) if opts[:'id']
      query_params[:'name'] = opts[:'name'] if opts[:'name']
      query_params[:'description'] = opts[:'description'] if opts[:'description']
      query_params[:'nameOrDescription'] = opts[:'name_or_description'] if opts[:'name_or_description']
      query_params[:'publishVersionId'] = opts[:'publish_version_id'] if opts[:'publish_version_id']
      query_params[:'editableBy'] = opts[:'editable_by'] if opts[:'editable_by']
      query_params[:'lockedBy'] = opts[:'locked_by'] if opts[:'locked_by']
      query_params[:'lockedByClientId'] = opts[:'locked_by_client_id'] if opts[:'locked_by_client_id']
      query_params[:'secure'] = opts[:'secure'] if opts[:'secure']
      query_params[:'deleted'] = opts[:'deleted'] if opts[:'deleted']
      query_params[:'includeSchemas'] = opts[:'include_schemas'] if opts[:'include_schemas']
      query_params[:'publishedAfter'] = opts[:'published_after'] if opts[:'published_after']
      query_params[:'publishedBefore'] = opts[:'published_before'] if opts[:'published_before']
      query_params[:'divisionId'] = @api_client.build_collection_param(opts[:'division_id'], :multi) if opts[:'division_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 OAuth']
      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 => 'FlowEntityListing')
      if @api_client.config.debugging
        @api_client.config.logger.debug "API called: ArchitectApi#get_flows\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
      end
      return data, status_code, headers
    end

    # Returns a specific datatable by id
    # Given a datatableId returns the datatable object and schema associated with it.
    # @param datatable_id id of datatable
    # @param [Hash] opts the optional parameters
    # @option opts [String] :expand Expand instructions for the result
    # @return [DataTable]
    def get_flows_datatable(datatable_id, opts = {})
      data, _status_code, _headers = get_flows_datatable_with_http_info(datatable_id, opts)
      return data
    end

    # Returns a specific datatable by id
    # Given a datatableId returns the datatable object and schema associated with it.
    # @param datatable_id id of datatable
    # @param [Hash] opts the optional parameters
    # @option opts [String] :expand Expand instructions for the result
    # @return [Array<(DataTable, Fixnum, Hash)>] DataTable data, response status code and response headers
    def get_flows_datatable_with_http_info(datatable_id, opts = {})
      if @api_client.config.debugging
        @api_client.config.logger.debug "Calling API: ArchitectApi.get_flows_datatable ..."
      end
      
      
      # verify the required parameter 'datatable_id' is set
      fail ArgumentError, "Missing the required parameter 'datatable_id' when calling ArchitectApi.get_flows_datatable" if datatable_id.nil?
      
      
      
      
      
      
      
      
      if opts[:'expand'] && !['schema'].include?(opts[:'expand'])
        fail ArgumentError, 'invalid value for "expand", must be one of schema'
      end
      
      
      
      
      # resource path
      local_var_path = "/api/v2/flows/datatables/{datatableId}".sub('{format}','json').sub('{' + 'datatableId' + '}', datatable_id.to_s)

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

      # header parameters
      header_params = {}

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

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

      # form parameters
      form_params = {}

      # http body (model)
      post_body = nil
      
      auth_names = ['PureCloud OAuth']
      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 => 'DataTable')
      if @api_client.config.debugging
        @api_client.config.logger.debug "API called: ArchitectApi#get_flows_datatable\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
      end
      return data, status_code, headers
    end

    # Returns a specific row for the datatable
    # Given a datatableId and a rowId (the value of the key field) this will return the full row contents for that rowId.
    # @param datatable_id id of datatable
    # @param row_id The key for the row
    # @param [Hash] opts the optional parameters
    # @option opts [BOOLEAN] :showbrief if true returns just the key field for the row (default to true)
    # @return [Hash<String, Object>]
    def get_flows_datatable_row(datatable_id, row_id, opts = {})
      data, _status_code, _headers = get_flows_datatable_row_with_http_info(datatable_id, row_id, opts)
      return data
    end

    # Returns a specific row for the datatable
    # Given a datatableId and a rowId (the value of the key field) this will return the full row contents for that rowId.
    # @param datatable_id id of datatable
    # @param row_id The key for the row
    # @param [Hash] opts the optional parameters
    # @option opts [BOOLEAN] :showbrief if true returns just the key field for the row
    # @return [Array<(Hash<String, Object>, Fixnum, Hash)>] Hash<String, Object> data, response status code and response headers
    def get_flows_datatable_row_with_http_info(datatable_id, row_id, opts = {})
      if @api_client.config.debugging
        @api_client.config.logger.debug "Calling API: ArchitectApi.get_flows_datatable_row ..."
      end
      
      
      # verify the required parameter 'datatable_id' is set
      fail ArgumentError, "Missing the required parameter 'datatable_id' when calling ArchitectApi.get_flows_datatable_row" if datatable_id.nil?
      
      
      
      
      
      
      # verify the required parameter 'row_id' is set
      fail ArgumentError, "Missing the required parameter 'row_id' when calling ArchitectApi.get_flows_datatable_row" if row_id.nil?
      
      
      
      
      
      
      
      
      
      
      
      # resource path
      local_var_path = "/api/v2/flows/datatables/{datatableId}/rows/{rowId}".sub('{format}','json').sub('{' + 'datatableId' + '}', datatable_id.to_s).sub('{' + 'rowId' + '}', row_id.to_s)

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

      # 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 OAuth']
      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 => 'Hash<String, Object>')
      if @api_client.config.debugging
        @api_client.config.logger.debug "API called: ArchitectApi#get_flows_datatable_row\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
      end
      return data, status_code, headers
    end

    # Returns the rows for the datatable with the given id
    # Returns all of the rows for the datatable with the given datatableId.  By default this will just be a truncated list returning the key for each row. Set showBrief to false to return all of the row contents.
    # @param datatable_id id of datatable
    # @param [Hash] opts the optional parameters
    # @option opts [Integer] :page_number Page number (default to 1)
    # @option opts [Integer] :page_size Page size (default to 25)
    # @option opts [BOOLEAN] :showbrief If true returns just the key value of the row (default to true)
    # @return [DataTableRowEntityListing]
    def get_flows_datatable_rows(datatable_id, opts = {})
      data, _status_code, _headers = get_flows_datatable_rows_with_http_info(datatable_id, opts)
      return data
    end

    # Returns the rows for the datatable with the given id
    # Returns all of the rows for the datatable with the given datatableId.  By default this will just be a truncated list returning the key for each row. Set showBrief to false to return all of the row contents.
    # @param datatable_id id of datatable
    # @param [Hash] opts the optional parameters
    # @option opts [Integer] :page_number Page number
    # @option opts [Integer] :page_size Page size
    # @option opts [BOOLEAN] :showbrief If true returns just the key value of the row
    # @return [Array<(DataTableRowEntityListing, Fixnum, Hash)>] DataTableRowEntityListing data, response status code and response headers
    def get_flows_datatable_rows_with_http_info(datatable_id, opts = {})
      if @api_client.config.debugging
        @api_client.config.logger.debug "Calling API: ArchitectApi.get_flows_datatable_rows ..."
      end
      
      
      # verify the required parameter 'datatable_id' is set
      fail ArgumentError, "Missing the required parameter 'datatable_id' when calling ArchitectApi.get_flows_datatable_rows" if datatable_id.nil?
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      # resource path
      local_var_path = "/api/v2/flows/datatables/{datatableId}/rows".sub('{format}','json').sub('{' + 'datatableId' + '}', datatable_id.to_s)

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

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

    # Retrieve a list of datatables for the org
    # Returns a metadata list of the datatables associated with this org, including datatableId, name and description.
    # @param [Hash] opts the optional parameters
    # @option opts [String] :expand Expand instructions for the result
    # @option opts [Integer] :page_number Page number (default to 1)
    # @option opts [Integer] :page_size Page size (default to 25)
    # @option opts [String] :sort_by Sort by (default to id)
    # @option opts [String] :sort_order Sort order (default to ascending)
    # @return [DataTablesDomainEntityListing]
    def get_flows_datatables(opts = {})
      data, _status_code, _headers = get_flows_datatables_with_http_info(opts)
      return data
    end

    # Retrieve a list of datatables for the org
    # Returns a metadata list of the datatables associated with this org, including datatableId, name and description.
    # @param [Hash] opts the optional parameters
    # @option opts [String] :expand Expand instructions for the result
    # @option opts [Integer] :page_number Page number
    # @option opts [Integer] :page_size Page size
    # @option opts [String] :sort_by Sort by
    # @option opts [String] :sort_order Sort order
    # @return [Array<(DataTablesDomainEntityListing, Fixnum, Hash)>] DataTablesDomainEntityListing data, response status code and response headers
    def get_flows_datatables_with_http_info(opts = {})
      if @api_client.config.debugging
        @api_client.config.logger.debug "Calling API: ArchitectApi.get_flows_datatables ..."
      end
      
      
      
      
      if opts[:'expand'] && !['schema'].include?(opts[:'expand'])
        fail ArgumentError, 'invalid value for "expand", must be one of schema'
      end
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      if opts[:'sort_by'] && !['id', 'name'].include?(opts[:'sort_by'])
        fail ArgumentError, 'invalid value for "sort_by", must be one of id, name'
      end
      
      
      
      
      
      
      
      
      
      
      # resource path
      local_var_path = "/api/v2/flows/datatables".sub('{format}','json')

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

      # header parameters
      header_params = {}

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

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

      # form parameters
      form_params = {}

      # http body (model)
      post_body = nil
      
      auth_names = ['PureCloud OAuth']
      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 => 'DataTablesDomainEntityListing')
      if @api_client.config.debugging
        @api_client.config.logger.debug "API called: ArchitectApi#get_flows_datatables\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
      end
      return data, status_code, headers
    end

    # Get a pageable list of basic flow information objects filterable by query parameters.
    # This returns a simplified version of /flow consisting of name and type. If one or more IDs are specified, the search will fetch flows that match the given ID(s) and not use any additional supplied query parameters in the search.
    # @param [Hash] opts the optional parameters
    # @option opts [Array<String>] :type Type
    # @option opts [Integer] :page_number Page number (default to 1)
    # @option opts [Integer] :page_size Page size (default to 25)
    # @option opts [String] :sort_by Sort by (default to id)
    # @option opts [String] :sort_order Sort order (default to asc)
    # @option opts [Array<String>] :id ID
    # @option opts [String] :name Name
    # @option opts [String] :publish_version_id Publish version ID
    # @option opts [String] :published_after Published after
    # @option opts [String] :published_before Published before
    # @option opts [Array<String>] :division_id division ID(s)
    # @option opts [BOOLEAN] :include_schemas Include variable schemas (default to false)
    # @return [FlowDivisionViewEntityListing]
    def get_flows_divisionviews(opts = {})
      data, _status_code, _headers = get_flows_divisionviews_with_http_info(opts)
      return data
    end

    # Get a pageable list of basic flow information objects filterable by query parameters.
    # This returns a simplified version of /flow consisting of name and type. If one or more IDs are specified, the search will fetch flows that match the given ID(s) and not use any additional supplied query parameters in the search.
    # @param [Hash] opts the optional parameters
    # @option opts [Array<String>] :type Type
    # @option opts [Integer] :page_number Page number
    # @option opts [Integer] :page_size Page size
    # @option opts [String] :sort_by Sort by
    # @option opts [String] :sort_order Sort order
    # @option opts [Array<String>] :id ID
    # @option opts [String] :name Name
    # @option opts [String] :publish_version_id Publish version ID
    # @option opts [String] :published_after Published after
    # @option opts [String] :published_before Published before
    # @option opts [Array<String>] :division_id division ID(s)
    # @option opts [BOOLEAN] :include_schemas Include variable schemas
    # @return [Array<(FlowDivisionViewEntityListing, Fixnum, Hash)>] FlowDivisionViewEntityListing data, response status code and response headers
    def get_flows_divisionviews_with_http_info(opts = {})
      if @api_client.config.debugging
        @api_client.config.logger.debug "Calling API: ArchitectApi.get_flows_divisionviews ..."
      end
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      # resource path
      local_var_path = "/api/v2/flows/divisionviews".sub('{format}','json')

      # query parameters
      query_params = {}
      query_params[:'type'] = @api_client.build_collection_param(opts[:'type'], :multi) if opts[:'type']
      query_params[:'pageNumber'] = opts[:'page_number'] if opts[:'page_number']
      query_params[:'pageSize'] = opts[:'page_size'] if opts[:'page_size']
      query_params[:'sortBy'] = opts[:'sort_by'] if opts[:'sort_by']
      query_params[:'sortOrder'] = opts[:'sort_order'] if opts[:'sort_order']
      query_params[:'id'] = @api_client.build_collection_param(opts[:'id'], :multi) if opts[:'id']
      query_params[:'name'] = opts[:'name'] if opts[:'name']
      query_params[:'publishVersionId'] = opts[:'publish_version_id'] if opts[:'publish_version_id']
      query_params[:'publishedAfter'] = opts[:'published_after'] if opts[:'published_after']
      query_params[:'publishedBefore'] = opts[:'published_before'] if opts[:'published_before']
      query_params[:'divisionId'] = @api_client.build_collection_param(opts[:'division_id'], :multi) if opts[:'division_id']
      query_params[:'includeSchemas'] = opts[:'include_schemas'] if opts[:'include_schemas']

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

    # Get a flow outcome
    # Returns a specified flow outcome
    # @param flow_outcome_id flow outcome ID
    # @param [Hash] opts the optional parameters
    # @return [FlowOutcome]
    def get_flows_outcome(flow_outcome_id, opts = {})
      data, _status_code, _headers = get_flows_outcome_with_http_info(flow_outcome_id, opts)
      return data
    end

    # Get a flow outcome
    # Returns a specified flow outcome
    # @param flow_outcome_id flow outcome ID
    # @param [Hash] opts the optional parameters
    # @return [Array<(FlowOutcome, Fixnum, Hash)>] FlowOutcome data, response status code and response headers
    def get_flows_outcome_with_http_info(flow_outcome_id, opts = {})
      if @api_client.config.debugging
        @api_client.config.logger.debug "Calling API: ArchitectApi.get_flows_outcome ..."
      end
      
      
      # verify the required parameter 'flow_outcome_id' is set
      fail ArgumentError, "Missing the required parameter 'flow_outcome_id' when calling ArchitectApi.get_flows_outcome" if flow_outcome_id.nil?
      
      
      
      
      
      # resource path
      local_var_path = "/api/v2/flows/outcomes/{flowOutcomeId}".sub('{format}','json').sub('{' + 'flowOutcomeId' + '}', flow_outcome_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 OAuth']
      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 => 'FlowOutcome')
      if @api_client.config.debugging
        @api_client.config.logger.debug "API called: ArchitectApi#get_flows_outcome\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
      end
      return data, status_code, headers
    end

    # Get a pageable list of flow outcomes, filtered by query parameters
    # Multiple IDs can be specified, in which case all matching flow outcomes will be returned, and no other parameters will be evaluated.
    # @param [Hash] opts the optional parameters
    # @option opts [Integer] :page_number Page number (default to 1)
    # @option opts [Integer] :page_size Page size (default to 25)
    # @option opts [String] :sort_by Sort by (default to id)
    # @option opts [String] :sort_order Sort order (default to asc)
    # @option opts [Array<String>] :id ID
    # @option opts [String] :name Name
    # @option opts [String] :description Description
    # @option opts [String] :name_or_description Name or description
    # @return [FlowOutcomeListing]
    def get_flows_outcomes(opts = {})
      data, _status_code, _headers = get_flows_outcomes_with_http_info(opts)
      return data
    end

    # Get a pageable list of flow outcomes, filtered by query parameters
    # Multiple IDs can be specified, in which case all matching flow outcomes will be returned, and no other parameters will be evaluated.
    # @param [Hash] opts the optional parameters
    # @option opts [Integer] :page_number Page number
    # @option opts [Integer] :page_size Page size
    # @option opts [String] :sort_by Sort by
    # @option opts [String] :sort_order Sort order
    # @option opts [Array<String>] :id ID
    # @option opts [String] :name Name
    # @option opts [String] :description Description
    # @option opts [String] :name_or_description Name or description
    # @return [Array<(FlowOutcomeListing, Fixnum, Hash)>] FlowOutcomeListing data, response status code and response headers
    def get_flows_outcomes_with_http_info(opts = {})
      if @api_client.config.debugging
        @api_client.config.logger.debug "Calling API: ArchitectApi.get_flows_outcomes ..."
      end
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      # resource path
      local_var_path = "/api/v2/flows/outcomes".sub('{format}','json')

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

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

    # Rebuild Dependency Tracking data for an organization
    # Asynchronous.  Notification topic: v2.architect.dependencytracking.build
    # @param [Hash] opts the optional parameters
    # @return [nil]
    def post_architect_dependencytracking_build(opts = {})
      post_architect_dependencytracking_build_with_http_info(opts)
      return nil
    end

    # Rebuild Dependency Tracking data for an organization
    # Asynchronous.  Notification topic: v2.architect.dependencytracking.build
    # @param [Hash] opts the optional parameters
    # @return [Array<(nil, Fixnum, Hash)>] nil, response status code and response headers
    def post_architect_dependencytracking_build_with_http_info(opts = {})
      if @api_client.config.debugging
        @api_client.config.logger.debug "Calling API: ArchitectApi.post_architect_dependencytracking_build ..."
      end
      
      # resource path
      local_var_path = "/api/v2/architect/dependencytracking/build".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 OAuth']
      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: ArchitectApi#post_architect_dependencytracking_build\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
      end
      return data, status_code, headers
    end

    # Creates a new emergency group
    # 
    # @param body 
    # @param [Hash] opts the optional parameters
    # @return [EmergencyGroup]
    def post_architect_emergencygroups(body, opts = {})
      data, _status_code, _headers = post_architect_emergencygroups_with_http_info(body, opts)
      return data
    end

    # Creates a new emergency group
    # 
    # @param body 
    # @param [Hash] opts the optional parameters
    # @return [Array<(EmergencyGroup, Fixnum, Hash)>] EmergencyGroup data, response status code and response headers
    def post_architect_emergencygroups_with_http_info(body, opts = {})
      if @api_client.config.debugging
        @api_client.config.logger.debug "Calling API: ArchitectApi.post_architect_emergencygroups ..."
      end
      
      
      # verify the required parameter 'body' is set
      fail ArgumentError, "Missing the required parameter 'body' when calling ArchitectApi.post_architect_emergencygroups" if body.nil?
      
      
      
      
      
      # resource path
      local_var_path = "/api/v2/architect/emergencygroups".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 OAuth']
      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 => 'EmergencyGroup')
      if @api_client.config.debugging
        @api_client.config.logger.debug "API called: ArchitectApi#post_architect_emergencygroups\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
      end
      return data, status_code, headers
    end

    # Create IVR config.
    # 
    # @param body 
    # @param [Hash] opts the optional parameters
    # @return [IVR]
    def post_architect_ivrs(body, opts = {})
      data, _status_code, _headers = post_architect_ivrs_with_http_info(body, opts)
      return data
    end

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

    # Generate prompt history
    # Asynchronous.  Notification topic: v2.architect.prompts.{promptId}
    # @param prompt_id Prompt ID
    # @param [Hash] opts the optional parameters
    # @return [Operation]
    def post_architect_prompt_history(prompt_id, opts = {})
      data, _status_code, _headers = post_architect_prompt_history_with_http_info(prompt_id, opts)
      return data
    end

    # Generate prompt history
    # Asynchronous.  Notification topic: v2.architect.prompts.{promptId}
    # @param prompt_id Prompt ID
    # @param [Hash] opts the optional parameters
    # @return [Array<(Operation, Fixnum, Hash)>] Operation data, response status code and response headers
    def post_architect_prompt_history_with_http_info(prompt_id, opts = {})
      if @api_client.config.debugging
        @api_client.config.logger.debug "Calling API: ArchitectApi.post_architect_prompt_history ..."
      end
      
      
      # verify the required parameter 'prompt_id' is set
      fail ArgumentError, "Missing the required parameter 'prompt_id' when calling ArchitectApi.post_architect_prompt_history" if prompt_id.nil?
      
      
      
      
      
      # resource path
      local_var_path = "/api/v2/architect/prompts/{promptId}/history".sub('{format}','json').sub('{' + 'promptId' + '}', prompt_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 OAuth']
      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 => 'Operation')
      if @api_client.config.debugging
        @api_client.config.logger.debug "API called: ArchitectApi#post_architect_prompt_history\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
      end
      return data, status_code, headers
    end

    # Create a new user prompt resource
    # 
    # @param prompt_id Prompt ID
    # @param body 
    # @param [Hash] opts the optional parameters
    # @return [PromptAsset]
    def post_architect_prompt_resources(prompt_id, body, opts = {})
      data, _status_code, _headers = post_architect_prompt_resources_with_http_info(prompt_id, body, opts)
      return data
    end

    # Create a new user prompt resource
    # 
    # @param prompt_id Prompt ID
    # @param body 
    # @param [Hash] opts the optional parameters
    # @return [Array<(PromptAsset, Fixnum, Hash)>] PromptAsset data, response status code and response headers
    def post_architect_prompt_resources_with_http_info(prompt_id, body, opts = {})
      if @api_client.config.debugging
        @api_client.config.logger.debug "Calling API: ArchitectApi.post_architect_prompt_resources ..."
      end
      
      
      # verify the required parameter 'prompt_id' is set
      fail ArgumentError, "Missing the required parameter 'prompt_id' when calling ArchitectApi.post_architect_prompt_resources" if prompt_id.nil?
      
      
      
      
      
      
      # verify the required parameter 'body' is set
      fail ArgumentError, "Missing the required parameter 'body' when calling ArchitectApi.post_architect_prompt_resources" if body.nil?
      
      
      
      
      
      # resource path
      local_var_path = "/api/v2/architect/prompts/{promptId}/resources".sub('{format}','json').sub('{' + 'promptId' + '}', prompt_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 OAuth']
      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 => 'PromptAsset')
      if @api_client.config.debugging
        @api_client.config.logger.debug "API called: ArchitectApi#post_architect_prompt_resources\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
      end
      return data, status_code, headers
    end

    # Create a new user prompt
    # 
    # @param body 
    # @param [Hash] opts the optional parameters
    # @return [Prompt]
    def post_architect_prompts(body, opts = {})
      data, _status_code, _headers = post_architect_prompts_with_http_info(body, opts)
      return data
    end

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

    # Creates a new schedule group
    # 
    # @param body 
    # @param [Hash] opts the optional parameters
    # @return [ScheduleGroup]
    def post_architect_schedulegroups(body, opts = {})
      data, _status_code, _headers = post_architect_schedulegroups_with_http_info(body, opts)
      return data
    end

    # Creates a new schedule group
    # 
    # @param body 
    # @param [Hash] opts the optional parameters
    # @return [Array<(ScheduleGroup, Fixnum, Hash)>] ScheduleGroup data, response status code and response headers
    def post_architect_schedulegroups_with_http_info(body, opts = {})
      if @api_client.config.debugging
        @api_client.config.logger.debug "Calling API: ArchitectApi.post_architect_schedulegroups ..."
      end
      
      
      # verify the required parameter 'body' is set
      fail ArgumentError, "Missing the required parameter 'body' when calling ArchitectApi.post_architect_schedulegroups" if body.nil?
      
      
      
      
      
      # resource path
      local_var_path = "/api/v2/architect/schedulegroups".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 OAuth']
      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 => 'ScheduleGroup')
      if @api_client.config.debugging
        @api_client.config.logger.debug "API called: ArchitectApi#post_architect_schedulegroups\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
      end
      return data, status_code, headers
    end

    # Create a new schedule.
    # 
    # @param body 
    # @param [Hash] opts the optional parameters
    # @return [Schedule]
    def post_architect_schedules(body, opts = {})
      data, _status_code, _headers = post_architect_schedules_with_http_info(body, opts)
      return data
    end

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

    # Generate system prompt history
    # Asynchronous.  Notification topic: v2.architect.systemprompts.{systemPromptId}
    # @param prompt_id promptId
    # @param [Hash] opts the optional parameters
    # @return [Operation]
    def post_architect_systemprompt_history(prompt_id, opts = {})
      data, _status_code, _headers = post_architect_systemprompt_history_with_http_info(prompt_id, opts)
      return data
    end

    # Generate system prompt history
    # Asynchronous.  Notification topic: v2.architect.systemprompts.{systemPromptId}
    # @param prompt_id promptId
    # @param [Hash] opts the optional parameters
    # @return [Array<(Operation, Fixnum, Hash)>] Operation data, response status code and response headers
    def post_architect_systemprompt_history_with_http_info(prompt_id, opts = {})
      if @api_client.config.debugging
        @api_client.config.logger.debug "Calling API: ArchitectApi.post_architect_systemprompt_history ..."
      end
      
      
      # verify the required parameter 'prompt_id' is set
      fail ArgumentError, "Missing the required parameter 'prompt_id' when calling ArchitectApi.post_architect_systemprompt_history" if prompt_id.nil?
      
      
      
      
      
      # resource path
      local_var_path = "/api/v2/architect/systemprompts/{promptId}/history".sub('{format}','json').sub('{' + 'promptId' + '}', prompt_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 OAuth']
      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 => 'Operation')
      if @api_client.config.debugging
        @api_client.config.logger.debug "API called: ArchitectApi#post_architect_systemprompt_history\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
      end
      return data, status_code, headers
    end

    # Create system prompt resource override.
    # 
    # @param prompt_id Prompt ID
    # @param body 
    # @param [Hash] opts the optional parameters
    # @return [SystemPromptAsset]
    def post_architect_systemprompt_resources(prompt_id, body, opts = {})
      data, _status_code, _headers = post_architect_systemprompt_resources_with_http_info(prompt_id, body, opts)
      return data
    end

    # Create system prompt resource override.
    # 
    # @param prompt_id Prompt ID
    # @param body 
    # @param [Hash] opts the optional parameters
    # @return [Array<(SystemPromptAsset, Fixnum, Hash)>] SystemPromptAsset data, response status code and response headers
    def post_architect_systemprompt_resources_with_http_info(prompt_id, body, opts = {})
      if @api_client.config.debugging
        @api_client.config.logger.debug "Calling API: ArchitectApi.post_architect_systemprompt_resources ..."
      end
      
      
      # verify the required parameter 'prompt_id' is set
      fail ArgumentError, "Missing the required parameter 'prompt_id' when calling ArchitectApi.post_architect_systemprompt_resources" if prompt_id.nil?
      
      
      
      
      
      
      # verify the required parameter 'body' is set
      fail ArgumentError, "Missing the required parameter 'body' when calling ArchitectApi.post_architect_systemprompt_resources" if body.nil?
      
      
      
      
      
      # resource path
      local_var_path = "/api/v2/architect/systemprompts/{promptId}/resources".sub('{format}','json').sub('{' + 'promptId' + '}', prompt_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 OAuth']
      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 => 'SystemPromptAsset')
      if @api_client.config.debugging
        @api_client.config.logger.debug "API called: ArchitectApi#post_architect_systemprompt_resources\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
      end
      return data, status_code, headers
    end

    # Create flow version
    # 
    # @param flow_id Flow ID
    # @param body 
    # @param [Hash] opts the optional parameters
    # @return [FlowVersion]
    def post_flow_versions(flow_id, body, opts = {})
      data, _status_code, _headers = post_flow_versions_with_http_info(flow_id, body, opts)
      return data
    end

    # Create flow version
    # 
    # @param flow_id Flow ID
    # @param body 
    # @param [Hash] opts the optional parameters
    # @return [Array<(FlowVersion, Fixnum, Hash)>] FlowVersion data, response status code and response headers
    def post_flow_versions_with_http_info(flow_id, body, opts = {})
      if @api_client.config.debugging
        @api_client.config.logger.debug "Calling API: ArchitectApi.post_flow_versions ..."
      end
      
      
      # verify the required parameter 'flow_id' is set
      fail ArgumentError, "Missing the required parameter 'flow_id' when calling ArchitectApi.post_flow_versions" if flow_id.nil?
      
      
      
      
      
      
      # verify the required parameter 'body' is set
      fail ArgumentError, "Missing the required parameter 'body' when calling ArchitectApi.post_flow_versions" if body.nil?
      
      
      
      
      
      # resource path
      local_var_path = "/api/v2/flows/{flowId}/versions".sub('{format}','json').sub('{' + 'flowId' + '}', flow_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 OAuth']
      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 => 'FlowVersion')
      if @api_client.config.debugging
        @api_client.config.logger.debug "API called: ArchitectApi#post_flow_versions\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
      end
      return data, status_code, headers
    end

    # Create flow
    # 
    # @param body 
    # @param [Hash] opts the optional parameters
    # @return [Flow]
    def post_flows(body, opts = {})
      data, _status_code, _headers = post_flows_with_http_info(body, opts)
      return data
    end

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

    # Check-in flow
    # Asynchronous.  Notification topic: v2.flows.{flowId}
    # @param flow Flow ID
    # @param [Hash] opts the optional parameters
    # @return [Operation]
    def post_flows_actions_checkin(flow, opts = {})
      data, _status_code, _headers = post_flows_actions_checkin_with_http_info(flow, opts)
      return data
    end

    # Check-in flow
    # Asynchronous.  Notification topic: v2.flows.{flowId}
    # @param flow Flow ID
    # @param [Hash] opts the optional parameters
    # @return [Array<(Operation, Fixnum, Hash)>] Operation data, response status code and response headers
    def post_flows_actions_checkin_with_http_info(flow, opts = {})
      if @api_client.config.debugging
        @api_client.config.logger.debug "Calling API: ArchitectApi.post_flows_actions_checkin ..."
      end
      
      
      # verify the required parameter 'flow' is set
      fail ArgumentError, "Missing the required parameter 'flow' when calling ArchitectApi.post_flows_actions_checkin" if flow.nil?
      
      
      
      
      
      # resource path
      local_var_path = "/api/v2/flows/actions/checkin".sub('{format}','json')

      # query parameters
      query_params = {}
      query_params[:'flow'] = flow

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

    # Check-out flow
    # 
    # @param flow Flow ID
    # @param [Hash] opts the optional parameters
    # @return [Flow]
    def post_flows_actions_checkout(flow, opts = {})
      data, _status_code, _headers = post_flows_actions_checkout_with_http_info(flow, opts)
      return data
    end

    # Check-out flow
    # 
    # @param flow Flow ID
    # @param [Hash] opts the optional parameters
    # @return [Array<(Flow, Fixnum, Hash)>] Flow data, response status code and response headers
    def post_flows_actions_checkout_with_http_info(flow, opts = {})
      if @api_client.config.debugging
        @api_client.config.logger.debug "Calling API: ArchitectApi.post_flows_actions_checkout ..."
      end
      
      
      # verify the required parameter 'flow' is set
      fail ArgumentError, "Missing the required parameter 'flow' when calling ArchitectApi.post_flows_actions_checkout" if flow.nil?
      
      
      
      
      
      # resource path
      local_var_path = "/api/v2/flows/actions/checkout".sub('{format}','json')

      # query parameters
      query_params = {}
      query_params[:'flow'] = flow

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

    # Deactivate flow
    # 
    # @param flow Flow ID
    # @param [Hash] opts the optional parameters
    # @return [Flow]
    def post_flows_actions_deactivate(flow, opts = {})
      data, _status_code, _headers = post_flows_actions_deactivate_with_http_info(flow, opts)
      return data
    end

    # Deactivate flow
    # 
    # @param flow Flow ID
    # @param [Hash] opts the optional parameters
    # @return [Array<(Flow, Fixnum, Hash)>] Flow data, response status code and response headers
    def post_flows_actions_deactivate_with_http_info(flow, opts = {})
      if @api_client.config.debugging
        @api_client.config.logger.debug "Calling API: ArchitectApi.post_flows_actions_deactivate ..."
      end
      
      
      # verify the required parameter 'flow' is set
      fail ArgumentError, "Missing the required parameter 'flow' when calling ArchitectApi.post_flows_actions_deactivate" if flow.nil?
      
      
      
      
      
      # resource path
      local_var_path = "/api/v2/flows/actions/deactivate".sub('{format}','json')

      # query parameters
      query_params = {}
      query_params[:'flow'] = flow

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

    # Publish flow
    # Asynchronous.  Notification topic: v2.flows.{flowId}
    # @param flow Flow ID
    # @param [Hash] opts the optional parameters
    # @option opts [String] :version version
    # @return [Operation]
    def post_flows_actions_publish(flow, opts = {})
      data, _status_code, _headers = post_flows_actions_publish_with_http_info(flow, opts)
      return data
    end

    # Publish flow
    # Asynchronous.  Notification topic: v2.flows.{flowId}
    # @param flow Flow ID
    # @param [Hash] opts the optional parameters
    # @option opts [String] :version version
    # @return [Array<(Operation, Fixnum, Hash)>] Operation data, response status code and response headers
    def post_flows_actions_publish_with_http_info(flow, opts = {})
      if @api_client.config.debugging
        @api_client.config.logger.debug "Calling API: ArchitectApi.post_flows_actions_publish ..."
      end
      
      
      # verify the required parameter 'flow' is set
      fail ArgumentError, "Missing the required parameter 'flow' when calling ArchitectApi.post_flows_actions_publish" if flow.nil?
      
      
      
      
      
      
      
      
      
      
      
      # resource path
      local_var_path = "/api/v2/flows/actions/publish".sub('{format}','json')

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

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

    # Revert flow
    # 
    # @param flow Flow ID
    # @param [Hash] opts the optional parameters
    # @return [Flow]
    def post_flows_actions_revert(flow, opts = {})
      data, _status_code, _headers = post_flows_actions_revert_with_http_info(flow, opts)
      return data
    end

    # Revert flow
    # 
    # @param flow Flow ID
    # @param [Hash] opts the optional parameters
    # @return [Array<(Flow, Fixnum, Hash)>] Flow data, response status code and response headers
    def post_flows_actions_revert_with_http_info(flow, opts = {})
      if @api_client.config.debugging
        @api_client.config.logger.debug "Calling API: ArchitectApi.post_flows_actions_revert ..."
      end
      
      
      # verify the required parameter 'flow' is set
      fail ArgumentError, "Missing the required parameter 'flow' when calling ArchitectApi.post_flows_actions_revert" if flow.nil?
      
      
      
      
      
      # resource path
      local_var_path = "/api/v2/flows/actions/revert".sub('{format}','json')

      # query parameters
      query_params = {}
      query_params[:'flow'] = flow

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

    # Unlock flow
    # Allows for unlocking a flow in the case where there is no flow configuration available, and thus a check-in will not unlock the flow. The user must have Architect Admin permissions to perform this action.
    # @param flow Flow ID
    # @param [Hash] opts the optional parameters
    # @return [Flow]
    def post_flows_actions_unlock(flow, opts = {})
      data, _status_code, _headers = post_flows_actions_unlock_with_http_info(flow, opts)
      return data
    end

    # Unlock flow
    # Allows for unlocking a flow in the case where there is no flow configuration available, and thus a check-in will not unlock the flow. The user must have Architect Admin permissions to perform this action.
    # @param flow Flow ID
    # @param [Hash] opts the optional parameters
    # @return [Array<(Flow, Fixnum, Hash)>] Flow data, response status code and response headers
    def post_flows_actions_unlock_with_http_info(flow, opts = {})
      if @api_client.config.debugging
        @api_client.config.logger.debug "Calling API: ArchitectApi.post_flows_actions_unlock ..."
      end
      
      
      # verify the required parameter 'flow' is set
      fail ArgumentError, "Missing the required parameter 'flow' when calling ArchitectApi.post_flows_actions_unlock" if flow.nil?
      
      
      
      
      
      # resource path
      local_var_path = "/api/v2/flows/actions/unlock".sub('{format}','json')

      # query parameters
      query_params = {}
      query_params[:'flow'] = flow

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

    # Create a new row entry for the datatable.
    # Will add the passed in row entry to the datatable with the given datatableId after verifying it against the schema.  The DataTableRow should be a json-ized' stream of key -> value pairs {      \"Field1\": \"XYZZY\",      \"Field2\": false,      \"KEY\": \"27272\"  }
    # @param datatable_id id of datatable
    # @param data_table_row 
    # @param [Hash] opts the optional parameters
    # @return [Hash<String, Object>]
    def post_flows_datatable_rows(datatable_id, data_table_row, opts = {})
      data, _status_code, _headers = post_flows_datatable_rows_with_http_info(datatable_id, data_table_row, opts)
      return data
    end

    # Create a new row entry for the datatable.
    # Will add the passed in row entry to the datatable with the given datatableId after verifying it against the schema.  The DataTableRow should be a json-ized&#39; stream of key -&gt; value pairs {      \&quot;Field1\&quot;: \&quot;XYZZY\&quot;,      \&quot;Field2\&quot;: false,      \&quot;KEY\&quot;: \&quot;27272\&quot;  }
    # @param datatable_id id of datatable
    # @param data_table_row 
    # @param [Hash] opts the optional parameters
    # @return [Array<(Hash<String, Object>, Fixnum, Hash)>] Hash<String, Object> data, response status code and response headers
    def post_flows_datatable_rows_with_http_info(datatable_id, data_table_row, opts = {})
      if @api_client.config.debugging
        @api_client.config.logger.debug "Calling API: ArchitectApi.post_flows_datatable_rows ..."
      end
      
      
      # verify the required parameter 'datatable_id' is set
      fail ArgumentError, "Missing the required parameter 'datatable_id' when calling ArchitectApi.post_flows_datatable_rows" if datatable_id.nil?
      
      
      
      
      
      
      # verify the required parameter 'data_table_row' is set
      fail ArgumentError, "Missing the required parameter 'data_table_row' when calling ArchitectApi.post_flows_datatable_rows" if data_table_row.nil?
      
      
      
      
      
      # resource path
      local_var_path = "/api/v2/flows/datatables/{datatableId}/rows".sub('{format}','json').sub('{' + 'datatableId' + '}', datatable_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(data_table_row)
      
      auth_names = ['PureCloud OAuth']
      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 => 'Hash<String, Object>')
      if @api_client.config.debugging
        @api_client.config.logger.debug "API called: ArchitectApi#post_flows_datatable_rows\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
      end
      return data, status_code, headers
    end

    # Create a new datatable with the specified json-schema definition
    # This will create a new datatable with fields that match the property definitions in the JSON schema.  The schema's title field will be overridden by the name field in the DataTable object.  See also http://json-schema.org/
    # @param body datatable json-schema
    # @param [Hash] opts the optional parameters
    # @return [DataTable]
    def post_flows_datatables(body, opts = {})
      data, _status_code, _headers = post_flows_datatables_with_http_info(body, opts)
      return data
    end

    # Create a new datatable with the specified json-schema definition
    # This will create a new datatable with fields that match the property definitions in the JSON schema.  The schema&#39;s title field will be overridden by the name field in the DataTable object.  See also http://json-schema.org/
    # @param body datatable json-schema
    # @param [Hash] opts the optional parameters
    # @return [Array<(DataTable, Fixnum, Hash)>] DataTable data, response status code and response headers
    def post_flows_datatables_with_http_info(body, opts = {})
      if @api_client.config.debugging
        @api_client.config.logger.debug "Calling API: ArchitectApi.post_flows_datatables ..."
      end
      
      
      # verify the required parameter 'body' is set
      fail ArgumentError, "Missing the required parameter 'body' when calling ArchitectApi.post_flows_datatables" if body.nil?
      
      
      
      
      
      # resource path
      local_var_path = "/api/v2/flows/datatables".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 OAuth']
      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 => 'DataTable')
      if @api_client.config.debugging
        @api_client.config.logger.debug "API called: ArchitectApi#post_flows_datatables\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
      end
      return data, status_code, headers
    end

    # Create a flow outcome
    # Asynchronous.  Notification topic: v2.flows.outcomes.{flowOutcomeId}
    # @param [Hash] opts the optional parameters
    # @option opts [FlowOutcome] :body 
    # @return [FlowOutcome]
    def post_flows_outcomes(opts = {})
      data, _status_code, _headers = post_flows_outcomes_with_http_info(opts)
      return data
    end

    # Create a flow outcome
    # Asynchronous.  Notification topic: v2.flows.outcomes.{flowOutcomeId}
    # @param [Hash] opts the optional parameters
    # @option opts [FlowOutcome] :body 
    # @return [Array<(FlowOutcome, Fixnum, Hash)>] FlowOutcome data, response status code and response headers
    def post_flows_outcomes_with_http_info(opts = {})
      if @api_client.config.debugging
        @api_client.config.logger.debug "Calling API: ArchitectApi.post_flows_outcomes ..."
      end
      
      
      
      
      
      
      
      # resource path
      local_var_path = "/api/v2/flows/outcomes".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(opts[:'body'])
      
      auth_names = ['PureCloud OAuth']
      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 => 'FlowOutcome')
      if @api_client.config.debugging
        @api_client.config.logger.debug "API called: ArchitectApi#post_flows_outcomes\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
      end
      return data, status_code, headers
    end

    # Updates a emergency group by ID
    # 
    # @param emergency_group_id Emergency group ID
    # @param body 
    # @param [Hash] opts the optional parameters
    # @return [EmergencyGroup]
    def put_architect_emergencygroup(emergency_group_id, body, opts = {})
      data, _status_code, _headers = put_architect_emergencygroup_with_http_info(emergency_group_id, body, opts)
      return data
    end

    # Updates a emergency group by ID
    # 
    # @param emergency_group_id Emergency group ID
    # @param body 
    # @param [Hash] opts the optional parameters
    # @return [Array<(EmergencyGroup, Fixnum, Hash)>] EmergencyGroup data, response status code and response headers
    def put_architect_emergencygroup_with_http_info(emergency_group_id, body, opts = {})
      if @api_client.config.debugging
        @api_client.config.logger.debug "Calling API: ArchitectApi.put_architect_emergencygroup ..."
      end
      
      
      # verify the required parameter 'emergency_group_id' is set
      fail ArgumentError, "Missing the required parameter 'emergency_group_id' when calling ArchitectApi.put_architect_emergencygroup" if emergency_group_id.nil?
      
      
      
      
      
      
      # verify the required parameter 'body' is set
      fail ArgumentError, "Missing the required parameter 'body' when calling ArchitectApi.put_architect_emergencygroup" if body.nil?
      
      
      
      
      
      # resource path
      local_var_path = "/api/v2/architect/emergencygroups/{emergencyGroupId}".sub('{format}','json').sub('{' + 'emergencyGroupId' + '}', emergency_group_id.to_s)

      # query parameters
      query_params = {}

      # header parameters
      header_params = {}

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

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

      # form parameters
      form_params = {}

      # http body (model)
      post_body = @api_client.object_to_http_body(body)
      
      auth_names = ['PureCloud OAuth']
      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 => 'EmergencyGroup')
      if @api_client.config.debugging
        @api_client.config.logger.debug "API called: ArchitectApi#put_architect_emergencygroup\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
      end
      return data, status_code, headers
    end

    # Update an IVR Config.
    # 
    # @param ivr_id IVR id
    # @param body 
    # @param [Hash] opts the optional parameters
    # @return [IVR]
    def put_architect_ivr(ivr_id, body, opts = {})
      data, _status_code, _headers = put_architect_ivr_with_http_info(ivr_id, body, opts)
      return data
    end

    # Update an IVR Config.
    # 
    # @param ivr_id IVR id
    # @param body 
    # @param [Hash] opts the optional parameters
    # @return [Array<(IVR, Fixnum, Hash)>] IVR data, response status code and response headers
    def put_architect_ivr_with_http_info(ivr_id, body, opts = {})
      if @api_client.config.debugging
        @api_client.config.logger.debug "Calling API: ArchitectApi.put_architect_ivr ..."
      end
      
      
      # verify the required parameter 'ivr_id' is set
      fail ArgumentError, "Missing the required parameter 'ivr_id' when calling ArchitectApi.put_architect_ivr" if ivr_id.nil?
      
      
      
      
      
      
      # verify the required parameter 'body' is set
      fail ArgumentError, "Missing the required parameter 'body' when calling ArchitectApi.put_architect_ivr" if body.nil?
      
      
      
      
      
      # resource path
      local_var_path = "/api/v2/architect/ivrs/{ivrId}".sub('{format}','json').sub('{' + 'ivrId' + '}', ivr_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 OAuth']
      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 => 'IVR')
      if @api_client.config.debugging
        @api_client.config.logger.debug "API called: ArchitectApi#put_architect_ivr\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
      end
      return data, status_code, headers
    end

    # Update specified user prompt
    # 
    # @param prompt_id Prompt ID
    # @param body 
    # @param [Hash] opts the optional parameters
    # @return [Prompt]
    def put_architect_prompt(prompt_id, body, opts = {})
      data, _status_code, _headers = put_architect_prompt_with_http_info(prompt_id, body, opts)
      return data
    end

    # Update specified user prompt
    # 
    # @param prompt_id Prompt ID
    # @param body 
    # @param [Hash] opts the optional parameters
    # @return [Array<(Prompt, Fixnum, Hash)>] Prompt data, response status code and response headers
    def put_architect_prompt_with_http_info(prompt_id, body, opts = {})
      if @api_client.config.debugging
        @api_client.config.logger.debug "Calling API: ArchitectApi.put_architect_prompt ..."
      end
      
      
      # verify the required parameter 'prompt_id' is set
      fail ArgumentError, "Missing the required parameter 'prompt_id' when calling ArchitectApi.put_architect_prompt" if prompt_id.nil?
      
      
      
      
      
      
      # verify the required parameter 'body' is set
      fail ArgumentError, "Missing the required parameter 'body' when calling ArchitectApi.put_architect_prompt" if body.nil?
      
      
      
      
      
      # resource path
      local_var_path = "/api/v2/architect/prompts/{promptId}".sub('{format}','json').sub('{' + 'promptId' + '}', prompt_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 OAuth']
      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 => 'Prompt')
      if @api_client.config.debugging
        @api_client.config.logger.debug "API called: ArchitectApi#put_architect_prompt\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
      end
      return data, status_code, headers
    end

    # Update specified user prompt resource
    # 
    # @param prompt_id Prompt ID
    # @param language_code Language
    # @param body 
    # @param [Hash] opts the optional parameters
    # @return [PromptAsset]
    def put_architect_prompt_resource(prompt_id, language_code, body, opts = {})
      data, _status_code, _headers = put_architect_prompt_resource_with_http_info(prompt_id, language_code, body, opts)
      return data
    end

    # Update specified user prompt resource
    # 
    # @param prompt_id Prompt ID
    # @param language_code Language
    # @param body 
    # @param [Hash] opts the optional parameters
    # @return [Array<(PromptAsset, Fixnum, Hash)>] PromptAsset data, response status code and response headers
    def put_architect_prompt_resource_with_http_info(prompt_id, language_code, body, opts = {})
      if @api_client.config.debugging
        @api_client.config.logger.debug "Calling API: ArchitectApi.put_architect_prompt_resource ..."
      end
      
      
      # verify the required parameter 'prompt_id' is set
      fail ArgumentError, "Missing the required parameter 'prompt_id' when calling ArchitectApi.put_architect_prompt_resource" if prompt_id.nil?
      
      
      
      
      
      
      # verify the required parameter 'language_code' is set
      fail ArgumentError, "Missing the required parameter 'language_code' when calling ArchitectApi.put_architect_prompt_resource" if language_code.nil?
      
      
      
      
      
      
      # verify the required parameter 'body' is set
      fail ArgumentError, "Missing the required parameter 'body' when calling ArchitectApi.put_architect_prompt_resource" if body.nil?
      
      
      
      
      
      # resource path
      local_var_path = "/api/v2/architect/prompts/{promptId}/resources/{languageCode}".sub('{format}','json').sub('{' + 'promptId' + '}', prompt_id.to_s).sub('{' + 'languageCode' + '}', language_code.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 OAuth']
      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 => 'PromptAsset')
      if @api_client.config.debugging
        @api_client.config.logger.debug "API called: ArchitectApi#put_architect_prompt_resource\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
      end
      return data, status_code, headers
    end

    # Update schedule by ID
    # 
    # @param schedule_id Schedule ID
    # @param body 
    # @param [Hash] opts the optional parameters
    # @return [Schedule]
    def put_architect_schedule(schedule_id, body, opts = {})
      data, _status_code, _headers = put_architect_schedule_with_http_info(schedule_id, body, opts)
      return data
    end

    # Update schedule by ID
    # 
    # @param schedule_id Schedule ID
    # @param body 
    # @param [Hash] opts the optional parameters
    # @return [Array<(Schedule, Fixnum, Hash)>] Schedule data, response status code and response headers
    def put_architect_schedule_with_http_info(schedule_id, body, opts = {})
      if @api_client.config.debugging
        @api_client.config.logger.debug "Calling API: ArchitectApi.put_architect_schedule ..."
      end
      
      
      # verify the required parameter 'schedule_id' is set
      fail ArgumentError, "Missing the required parameter 'schedule_id' when calling ArchitectApi.put_architect_schedule" if schedule_id.nil?
      
      
      
      
      
      
      # verify the required parameter 'body' is set
      fail ArgumentError, "Missing the required parameter 'body' when calling ArchitectApi.put_architect_schedule" if body.nil?
      
      
      
      
      
      # resource path
      local_var_path = "/api/v2/architect/schedules/{scheduleId}".sub('{format}','json').sub('{' + 'scheduleId' + '}', schedule_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 OAuth']
      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 => 'Schedule')
      if @api_client.config.debugging
        @api_client.config.logger.debug "API called: ArchitectApi#put_architect_schedule\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
      end
      return data, status_code, headers
    end

    # Updates a schedule group by ID
    # 
    # @param schedule_group_id Schedule group ID
    # @param body 
    # @param [Hash] opts the optional parameters
    # @return [ScheduleGroup]
    def put_architect_schedulegroup(schedule_group_id, body, opts = {})
      data, _status_code, _headers = put_architect_schedulegroup_with_http_info(schedule_group_id, body, opts)
      return data
    end

    # Updates a schedule group by ID
    # 
    # @param schedule_group_id Schedule group ID
    # @param body 
    # @param [Hash] opts the optional parameters
    # @return [Array<(ScheduleGroup, Fixnum, Hash)>] ScheduleGroup data, response status code and response headers
    def put_architect_schedulegroup_with_http_info(schedule_group_id, body, opts = {})
      if @api_client.config.debugging
        @api_client.config.logger.debug "Calling API: ArchitectApi.put_architect_schedulegroup ..."
      end
      
      
      # verify the required parameter 'schedule_group_id' is set
      fail ArgumentError, "Missing the required parameter 'schedule_group_id' when calling ArchitectApi.put_architect_schedulegroup" if schedule_group_id.nil?
      
      
      
      
      
      
      # verify the required parameter 'body' is set
      fail ArgumentError, "Missing the required parameter 'body' when calling ArchitectApi.put_architect_schedulegroup" if body.nil?
      
      
      
      
      
      # resource path
      local_var_path = "/api/v2/architect/schedulegroups/{scheduleGroupId}".sub('{format}','json').sub('{' + 'scheduleGroupId' + '}', schedule_group_id.to_s)

      # query parameters
      query_params = {}

      # header parameters
      header_params = {}

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

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

      # form parameters
      form_params = {}

      # http body (model)
      post_body = @api_client.object_to_http_body(body)
      
      auth_names = ['PureCloud OAuth']
      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 => 'ScheduleGroup')
      if @api_client.config.debugging
        @api_client.config.logger.debug "API called: ArchitectApi#put_architect_schedulegroup\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
      end
      return data, status_code, headers
    end

    # Updates a system prompt resource override.
    # 
    # @param prompt_id Prompt ID
    # @param language_code Language
    # @param body 
    # @param [Hash] opts the optional parameters
    # @return [SystemPromptAsset]
    def put_architect_systemprompt_resource(prompt_id, language_code, body, opts = {})
      data, _status_code, _headers = put_architect_systemprompt_resource_with_http_info(prompt_id, language_code, body, opts)
      return data
    end

    # Updates a system prompt resource override.
    # 
    # @param prompt_id Prompt ID
    # @param language_code Language
    # @param body 
    # @param [Hash] opts the optional parameters
    # @return [Array<(SystemPromptAsset, Fixnum, Hash)>] SystemPromptAsset data, response status code and response headers
    def put_architect_systemprompt_resource_with_http_info(prompt_id, language_code, body, opts = {})
      if @api_client.config.debugging
        @api_client.config.logger.debug "Calling API: ArchitectApi.put_architect_systemprompt_resource ..."
      end
      
      
      # verify the required parameter 'prompt_id' is set
      fail ArgumentError, "Missing the required parameter 'prompt_id' when calling ArchitectApi.put_architect_systemprompt_resource" if prompt_id.nil?
      
      
      
      
      
      
      # verify the required parameter 'language_code' is set
      fail ArgumentError, "Missing the required parameter 'language_code' when calling ArchitectApi.put_architect_systemprompt_resource" if language_code.nil?
      
      
      
      
      
      
      # verify the required parameter 'body' is set
      fail ArgumentError, "Missing the required parameter 'body' when calling ArchitectApi.put_architect_systemprompt_resource" if body.nil?
      
      
      
      
      
      # resource path
      local_var_path = "/api/v2/architect/systemprompts/{promptId}/resources/{languageCode}".sub('{format}','json').sub('{' + 'promptId' + '}', prompt_id.to_s).sub('{' + 'languageCode' + '}', language_code.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 OAuth']
      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 => 'SystemPromptAsset')
      if @api_client.config.debugging
        @api_client.config.logger.debug "API called: ArchitectApi#put_architect_systemprompt_resource\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
      end
      return data, status_code, headers
    end

    # Update flow
    # 
    # @param flow_id Flow ID
    # @param body 
    # @param [Hash] opts the optional parameters
    # @return [Flow]
    def put_flow(flow_id, body, opts = {})
      data, _status_code, _headers = put_flow_with_http_info(flow_id, body, opts)
      return data
    end

    # Update flow
    # 
    # @param flow_id Flow ID
    # @param body 
    # @param [Hash] opts the optional parameters
    # @return [Array<(Flow, Fixnum, Hash)>] Flow data, response status code and response headers
    def put_flow_with_http_info(flow_id, body, opts = {})
      if @api_client.config.debugging
        @api_client.config.logger.debug "Calling API: ArchitectApi.put_flow ..."
      end
      
      
      # verify the required parameter 'flow_id' is set
      fail ArgumentError, "Missing the required parameter 'flow_id' when calling ArchitectApi.put_flow" if flow_id.nil?
      
      
      
      
      
      
      # verify the required parameter 'body' is set
      fail ArgumentError, "Missing the required parameter 'body' when calling ArchitectApi.put_flow" if body.nil?
      
      
      
      
      
      # resource path
      local_var_path = "/api/v2/flows/{flowId}".sub('{format}','json').sub('{' + 'flowId' + '}', flow_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 OAuth']
      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 => 'Flow')
      if @api_client.config.debugging
        @api_client.config.logger.debug "API called: ArchitectApi#put_flow\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
      end
      return data, status_code, headers
    end

    # Updates a specific datatable by id
    # Updates a schema for a datatable with the given datatableId -updates allow only new fields to be added in the schema, no changes or removals of existing fields.
    # @param datatable_id id of datatable
    # @param [Hash] opts the optional parameters
    # @option opts [String] :expand Expand instructions for the result
    # @option opts [DataTable] :body datatable json-schema
    # @return [DataTable]
    def put_flows_datatable(datatable_id, opts = {})
      data, _status_code, _headers = put_flows_datatable_with_http_info(datatable_id, opts)
      return data
    end

    # Updates a specific datatable by id
    # Updates a schema for a datatable with the given datatableId -updates allow only new fields to be added in the schema, no changes or removals of existing fields.
    # @param datatable_id id of datatable
    # @param [Hash] opts the optional parameters
    # @option opts [String] :expand Expand instructions for the result
    # @option opts [DataTable] :body datatable json-schema
    # @return [Array<(DataTable, Fixnum, Hash)>] DataTable data, response status code and response headers
    def put_flows_datatable_with_http_info(datatable_id, opts = {})
      if @api_client.config.debugging
        @api_client.config.logger.debug "Calling API: ArchitectApi.put_flows_datatable ..."
      end
      
      
      # verify the required parameter 'datatable_id' is set
      fail ArgumentError, "Missing the required parameter 'datatable_id' when calling ArchitectApi.put_flows_datatable" if datatable_id.nil?
      
      
      
      
      
      
      
      
      if opts[:'expand'] && !['schema'].include?(opts[:'expand'])
        fail ArgumentError, 'invalid value for "expand", must be one of schema'
      end
      
      
      
      
      
      
      
      
      
      
      # resource path
      local_var_path = "/api/v2/flows/datatables/{datatableId}".sub('{format}','json').sub('{' + 'datatableId' + '}', datatable_id.to_s)

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

      # header parameters
      header_params = {}

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

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

      # form parameters
      form_params = {}

      # http body (model)
      post_body = @api_client.object_to_http_body(opts[:'body'])
      
      auth_names = ['PureCloud OAuth']
      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 => 'DataTable')
      if @api_client.config.debugging
        @api_client.config.logger.debug "API called: ArchitectApi#put_flows_datatable\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
      end
      return data, status_code, headers
    end

    # Update a row entry
    # Updates a row with the given rowId (the value of the key field) to the new values.  The DataTableRow should be a json-ized' stream of key -> value pairs {     \"Field1\": \"XYZZY\",     \"Field2\": false,     \"KEY\": \"27272\" }
    # @param datatable_id id of datatable
    # @param row_id the key for the row
    # @param [Hash] opts the optional parameters
    # @option opts [Object] :body datatable row
    # @return [Hash<String, Object>]
    def put_flows_datatable_row(datatable_id, row_id, opts = {})
      data, _status_code, _headers = put_flows_datatable_row_with_http_info(datatable_id, row_id, opts)
      return data
    end

    # Update a row entry
    # Updates a row with the given rowId (the value of the key field) to the new values.  The DataTableRow should be a json-ized&#39; stream of key -&gt; value pairs {     \&quot;Field1\&quot;: \&quot;XYZZY\&quot;,     \&quot;Field2\&quot;: false,     \&quot;KEY\&quot;: \&quot;27272\&quot; }
    # @param datatable_id id of datatable
    # @param row_id the key for the row
    # @param [Hash] opts the optional parameters
    # @option opts [Object] :body datatable row
    # @return [Array<(Hash<String, Object>, Fixnum, Hash)>] Hash<String, Object> data, response status code and response headers
    def put_flows_datatable_row_with_http_info(datatable_id, row_id, opts = {})
      if @api_client.config.debugging
        @api_client.config.logger.debug "Calling API: ArchitectApi.put_flows_datatable_row ..."
      end
      
      
      # verify the required parameter 'datatable_id' is set
      fail ArgumentError, "Missing the required parameter 'datatable_id' when calling ArchitectApi.put_flows_datatable_row" if datatable_id.nil?
      
      
      
      
      
      
      # verify the required parameter 'row_id' is set
      fail ArgumentError, "Missing the required parameter 'row_id' when calling ArchitectApi.put_flows_datatable_row" if row_id.nil?
      
      
      
      
      
      
      
      
      
      
      
      # resource path
      local_var_path = "/api/v2/flows/datatables/{datatableId}/rows/{rowId}".sub('{format}','json').sub('{' + 'datatableId' + '}', datatable_id.to_s).sub('{' + 'rowId' + '}', row_id.to_s)

      # query parameters
      query_params = {}

      # header parameters
      header_params = {}

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

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

      # form parameters
      form_params = {}

      # http body (model)
      post_body = @api_client.object_to_http_body(opts[:'body'])
      
      auth_names = ['PureCloud OAuth']
      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 => 'Hash<String, Object>')
      if @api_client.config.debugging
        @api_client.config.logger.debug "API called: ArchitectApi#put_flows_datatable_row\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
      end
      return data, status_code, headers
    end

    # Updates a flow outcome
    # Updates a flow outcome.  Asynchronous.  Notification topic: v2.flowoutcomes.{flowoutcomeId}
    # @param flow_outcome_id flow outcome ID
    # @param [Hash] opts the optional parameters
    # @option opts [FlowOutcome] :body 
    # @return [Operation]
    def put_flows_outcome(flow_outcome_id, opts = {})
      data, _status_code, _headers = put_flows_outcome_with_http_info(flow_outcome_id, opts)
      return data
    end

    # Updates a flow outcome
    # Updates a flow outcome.  Asynchronous.  Notification topic: v2.flowoutcomes.{flowoutcomeId}
    # @param flow_outcome_id flow outcome ID
    # @param [Hash] opts the optional parameters
    # @option opts [FlowOutcome] :body 
    # @return [Array<(Operation, Fixnum, Hash)>] Operation data, response status code and response headers
    def put_flows_outcome_with_http_info(flow_outcome_id, opts = {})
      if @api_client.config.debugging
        @api_client.config.logger.debug "Calling API: ArchitectApi.put_flows_outcome ..."
      end
      
      
      # verify the required parameter 'flow_outcome_id' is set
      fail ArgumentError, "Missing the required parameter 'flow_outcome_id' when calling ArchitectApi.put_flows_outcome" if flow_outcome_id.nil?
      
      
      
      
      
      
      
      
      
      
      
      # resource path
      local_var_path = "/api/v2/flows/outcomes/{flowOutcomeId}".sub('{format}','json').sub('{' + 'flowOutcomeId' + '}', flow_outcome_id.to_s)

      # query parameters
      query_params = {}

      # header parameters
      header_params = {}

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

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

      # form parameters
      form_params = {}

      # http body (model)
      post_body = @api_client.object_to_http_body(opts[:'body'])
      
      auth_names = ['PureCloud OAuth']
      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 => 'Operation')
      if @api_client.config.debugging
        @api_client.config.logger.debug "API called: ArchitectApi#put_flows_outcome\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
      end
      return data, status_code, headers
    end
  end
end