=begin
#UltraCart Rest API V2

#UltraCart REST API Version 2

OpenAPI spec version: 2.0.0
Contact: support@ultracart.com
Generated by: https://github.com/swagger-api/swagger-codegen.git
Swagger Codegen version: 2.4.15-SNAPSHOT

=end

require 'addressable/uri'

module UltracartClient
  class StorefrontApi
    attr_accessor :api_client

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

    def self.new_using_api_key(simple_key, verify_ssl = true, debugging = false)
      api_config = Configuration.new
      api_config.api_key_prefix['x-ultracart-simple-key'] = simple_key
      api_config.api_version = '2017-03-01'
      api_config.verify_ssl = verify_ssl

      api_client = ApiClient.new(api_config)
      api_client.config.debugging = debugging

      UltracartClient::StorefrontApi.new(api_client)
    end

    # Add to library
    # @param add_library_request New library item request
    # @param [Hash] opts the optional parameters
    # @return [LibraryItemResponse]
    def add_to_library(add_library_request, opts = {})
      data, _status_code, _headers = add_to_library_with_http_info(add_library_request, opts)
      data
    end

    # Add to library
    # @param add_library_request New library item request
    # @param [Hash] opts the optional parameters
    # @return [Array<(LibraryItemResponse, Fixnum, Hash)>] LibraryItemResponse data, response status code and response headers
    def add_to_library_with_http_info(add_library_request, opts = {})
      if @api_client.config.debugging
        @api_client.config.logger.debug 'Calling API: StorefrontApi.add_to_library ...'
      end
      # verify the required parameter 'add_library_request' is set
      if @api_client.config.client_side_validation && add_library_request.nil?
        fail ArgumentError, "Missing the required parameter 'add_library_request' when calling StorefrontApi.add_to_library"
      end
      # resource path
      local_var_path = '/storefront/code_library'

      # query parameters
      query_params = {}

      # header parameters
      header_params = {}
      header_params['X-UltraCart-Api-Version'] = @api_client.select_header_api_version()
      # HTTP header 'Accept' (if needed)
      header_params['Accept'] = @api_client.select_header_accept(['application/json'])
      # HTTP header 'Content-Type'
      header_params['Content-Type'] = @api_client.select_header_content_type(['application/json'])

      # form parameters
      form_params = {}

      # http body (model)
      post_body = @api_client.object_to_http_body(add_library_request)
      auth_names = ['ultraCartBrowserApiKey', 'ultraCartOauth', 'ultraCartSimpleApiKey']
      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 => 'LibraryItemResponse')
      if @api_client.config.debugging
        @api_client.config.logger.debug "API called: StorefrontApi#add_to_library\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
      end
      return data, status_code, headers
    end
    # Apply library item to storefront.
    # @param apply_library_request New library item
    # @param [Hash] opts the optional parameters
    # @return [ApplyLibraryItemResponse]
    def apply_to_store_front(apply_library_request, opts = {})
      data, _status_code, _headers = apply_to_store_front_with_http_info(apply_library_request, opts)
      data
    end

    # Apply library item to storefront.
    # @param apply_library_request New library item
    # @param [Hash] opts the optional parameters
    # @return [Array<(ApplyLibraryItemResponse, Fixnum, Hash)>] ApplyLibraryItemResponse data, response status code and response headers
    def apply_to_store_front_with_http_info(apply_library_request, opts = {})
      if @api_client.config.debugging
        @api_client.config.logger.debug 'Calling API: StorefrontApi.apply_to_store_front ...'
      end
      # verify the required parameter 'apply_library_request' is set
      if @api_client.config.client_side_validation && apply_library_request.nil?
        fail ArgumentError, "Missing the required parameter 'apply_library_request' when calling StorefrontApi.apply_to_store_front"
      end
      # resource path
      local_var_path = '/storefront/code_library/apply'

      # query parameters
      query_params = {}

      # header parameters
      header_params = {}
      header_params['X-UltraCart-Api-Version'] = @api_client.select_header_api_version()
      # HTTP header 'Accept' (if needed)
      header_params['Accept'] = @api_client.select_header_accept(['application/json'])
      # HTTP header 'Content-Type'
      header_params['Content-Type'] = @api_client.select_header_content_type(['application/json'])

      # form parameters
      form_params = {}

      # http body (model)
      post_body = @api_client.object_to_http_body(apply_library_request)
      auth_names = ['ultraCartBrowserApiKey', 'ultraCartOauth', 'ultraCartSimpleApiKey']
      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 => 'ApplyLibraryItemResponse')
      if @api_client.config.debugging
        @api_client.config.logger.debug "API called: StorefrontApi#apply_to_store_front\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
      end
      return data, status_code, headers
    end
    # Archive email list
    # @param storefront_oid 
    # @param email_list_uuid 
    # @param [Hash] opts the optional parameters
    # @return [EmailListArchiveResponse]
    def archive_email_list(storefront_oid, email_list_uuid, opts = {})
      data, _status_code, _headers = archive_email_list_with_http_info(storefront_oid, email_list_uuid, opts)
      data
    end

    # Archive email list
    # @param storefront_oid 
    # @param email_list_uuid 
    # @param [Hash] opts the optional parameters
    # @return [Array<(EmailListArchiveResponse, Fixnum, Hash)>] EmailListArchiveResponse data, response status code and response headers
    def archive_email_list_with_http_info(storefront_oid, email_list_uuid, opts = {})
      if @api_client.config.debugging
        @api_client.config.logger.debug 'Calling API: StorefrontApi.archive_email_list ...'
      end
      # verify the required parameter 'storefront_oid' is set
      if @api_client.config.client_side_validation && storefront_oid.nil?
        fail ArgumentError, "Missing the required parameter 'storefront_oid' when calling StorefrontApi.archive_email_list"
      end
      # verify the required parameter 'email_list_uuid' is set
      if @api_client.config.client_side_validation && email_list_uuid.nil?
        fail ArgumentError, "Missing the required parameter 'email_list_uuid' when calling StorefrontApi.archive_email_list"
      end
      # resource path
      local_var_path = '/storefront/{storefront_oid}/email/lists/{email_list_uuid}/archive'.sub('{' + 'storefront_oid' + '}', storefront_oid.to_s).sub('{' + 'email_list_uuid' + '}', email_list_uuid.to_s)

      # query parameters
      query_params = {}

      # header parameters
      header_params = {}
      header_params['X-UltraCart-Api-Version'] = @api_client.select_header_api_version()
      # HTTP header 'Accept' (if needed)
      header_params['Accept'] = @api_client.select_header_accept(['application/json'])
      # HTTP header 'Content-Type'
      header_params['Content-Type'] = @api_client.select_header_content_type(['application/json'])

      # form parameters
      form_params = {}

      # http body (model)
      post_body = nil
      auth_names = ['ultraCartBrowserApiKey', 'ultraCartOauth', 'ultraCartSimpleApiKey']
      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 => 'EmailListArchiveResponse')
      if @api_client.config.debugging
        @api_client.config.logger.debug "API called: StorefrontApi#archive_email_list\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
      end
      return data, status_code, headers
    end
    # Archive email segment
    # @param storefront_oid 
    # @param email_segment_uuid 
    # @param [Hash] opts the optional parameters
    # @return [EmailSegmentArchiveResponse]
    def archive_email_segment(storefront_oid, email_segment_uuid, opts = {})
      data, _status_code, _headers = archive_email_segment_with_http_info(storefront_oid, email_segment_uuid, opts)
      data
    end

    # Archive email segment
    # @param storefront_oid 
    # @param email_segment_uuid 
    # @param [Hash] opts the optional parameters
    # @return [Array<(EmailSegmentArchiveResponse, Fixnum, Hash)>] EmailSegmentArchiveResponse data, response status code and response headers
    def archive_email_segment_with_http_info(storefront_oid, email_segment_uuid, opts = {})
      if @api_client.config.debugging
        @api_client.config.logger.debug 'Calling API: StorefrontApi.archive_email_segment ...'
      end
      # verify the required parameter 'storefront_oid' is set
      if @api_client.config.client_side_validation && storefront_oid.nil?
        fail ArgumentError, "Missing the required parameter 'storefront_oid' when calling StorefrontApi.archive_email_segment"
      end
      # verify the required parameter 'email_segment_uuid' is set
      if @api_client.config.client_side_validation && email_segment_uuid.nil?
        fail ArgumentError, "Missing the required parameter 'email_segment_uuid' when calling StorefrontApi.archive_email_segment"
      end
      # resource path
      local_var_path = '/storefront/{storefront_oid}/email/segments/{email_segment_uuid}/archive'.sub('{' + 'storefront_oid' + '}', storefront_oid.to_s).sub('{' + 'email_segment_uuid' + '}', email_segment_uuid.to_s)

      # query parameters
      query_params = {}

      # header parameters
      header_params = {}
      header_params['X-UltraCart-Api-Version'] = @api_client.select_header_api_version()
      # HTTP header 'Accept' (if needed)
      header_params['Accept'] = @api_client.select_header_accept(['application/json'])
      # HTTP header 'Content-Type'
      header_params['Content-Type'] = @api_client.select_header_content_type(['application/json'])

      # form parameters
      form_params = {}

      # http body (model)
      post_body = nil
      auth_names = ['ultraCartBrowserApiKey', 'ultraCartOauth', 'ultraCartSimpleApiKey']
      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 => 'EmailSegmentArchiveResponse')
      if @api_client.config.debugging
        @api_client.config.logger.debug "API called: StorefrontApi#archive_email_segment\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
      end
      return data, status_code, headers
    end
    # Back populate email flow
    # @param storefront_oid 
    # @param email_flow_uuid 
    # @param back_populate_request The request to back populate
    # @param [Hash] opts the optional parameters
    # @return [EmailFlowBackPopulateResponse]
    def back_populate_email_flow(storefront_oid, email_flow_uuid, back_populate_request, opts = {})
      data, _status_code, _headers = back_populate_email_flow_with_http_info(storefront_oid, email_flow_uuid, back_populate_request, opts)
      data
    end

    # Back populate email flow
    # @param storefront_oid 
    # @param email_flow_uuid 
    # @param back_populate_request The request to back populate
    # @param [Hash] opts the optional parameters
    # @return [Array<(EmailFlowBackPopulateResponse, Fixnum, Hash)>] EmailFlowBackPopulateResponse data, response status code and response headers
    def back_populate_email_flow_with_http_info(storefront_oid, email_flow_uuid, back_populate_request, opts = {})
      if @api_client.config.debugging
        @api_client.config.logger.debug 'Calling API: StorefrontApi.back_populate_email_flow ...'
      end
      # verify the required parameter 'storefront_oid' is set
      if @api_client.config.client_side_validation && storefront_oid.nil?
        fail ArgumentError, "Missing the required parameter 'storefront_oid' when calling StorefrontApi.back_populate_email_flow"
      end
      # verify the required parameter 'email_flow_uuid' is set
      if @api_client.config.client_side_validation && email_flow_uuid.nil?
        fail ArgumentError, "Missing the required parameter 'email_flow_uuid' when calling StorefrontApi.back_populate_email_flow"
      end
      # verify the required parameter 'back_populate_request' is set
      if @api_client.config.client_side_validation && back_populate_request.nil?
        fail ArgumentError, "Missing the required parameter 'back_populate_request' when calling StorefrontApi.back_populate_email_flow"
      end
      # resource path
      local_var_path = '/storefront/{storefront_oid}/email/flows/{email_flow_uuid}/backfill'.sub('{' + 'storefront_oid' + '}', storefront_oid.to_s).sub('{' + 'email_flow_uuid' + '}', email_flow_uuid.to_s)

      # query parameters
      query_params = {}

      # header parameters
      header_params = {}
      header_params['X-UltraCart-Api-Version'] = @api_client.select_header_api_version()
      # HTTP header 'Accept' (if needed)
      header_params['Accept'] = @api_client.select_header_accept(['application/json'])
      # HTTP header 'Content-Type'
      header_params['Content-Type'] = @api_client.select_header_content_type(['application/json'])

      # form parameters
      form_params = {}

      # http body (model)
      post_body = @api_client.object_to_http_body(back_populate_request)
      auth_names = ['ultraCartBrowserApiKey', 'ultraCartOauth', 'ultraCartSimpleApiKey']
      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 => 'EmailFlowBackPopulateResponse')
      if @api_client.config.debugging
        @api_client.config.logger.debug "API called: StorefrontApi#back_populate_email_flow\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
      end
      return data, status_code, headers
    end
    # Check download of email segment
    # @param storefront_oid 
    # @param email_segment_uuid 
    # @param email_segment_rebuild_uuid 
    # @param [Hash] opts the optional parameters
    # @return [EmailSegmentDownloadPrepareResponse]
    def check_download_email_segment(storefront_oid, email_segment_uuid, email_segment_rebuild_uuid, opts = {})
      data, _status_code, _headers = check_download_email_segment_with_http_info(storefront_oid, email_segment_uuid, email_segment_rebuild_uuid, opts)
      data
    end

    # Check download of email segment
    # @param storefront_oid 
    # @param email_segment_uuid 
    # @param email_segment_rebuild_uuid 
    # @param [Hash] opts the optional parameters
    # @return [Array<(EmailSegmentDownloadPrepareResponse, Fixnum, Hash)>] EmailSegmentDownloadPrepareResponse data, response status code and response headers
    def check_download_email_segment_with_http_info(storefront_oid, email_segment_uuid, email_segment_rebuild_uuid, opts = {})
      if @api_client.config.debugging
        @api_client.config.logger.debug 'Calling API: StorefrontApi.check_download_email_segment ...'
      end
      # verify the required parameter 'storefront_oid' is set
      if @api_client.config.client_side_validation && storefront_oid.nil?
        fail ArgumentError, "Missing the required parameter 'storefront_oid' when calling StorefrontApi.check_download_email_segment"
      end
      # verify the required parameter 'email_segment_uuid' is set
      if @api_client.config.client_side_validation && email_segment_uuid.nil?
        fail ArgumentError, "Missing the required parameter 'email_segment_uuid' when calling StorefrontApi.check_download_email_segment"
      end
      # verify the required parameter 'email_segment_rebuild_uuid' is set
      if @api_client.config.client_side_validation && email_segment_rebuild_uuid.nil?
        fail ArgumentError, "Missing the required parameter 'email_segment_rebuild_uuid' when calling StorefrontApi.check_download_email_segment"
      end
      # resource path
      local_var_path = '/storefront/{storefront_oid}/email/segments/{email_segment_uuid}/downloadPrepare/{email_segment_rebuild_uuid}'.sub('{' + 'storefront_oid' + '}', storefront_oid.to_s).sub('{' + 'email_segment_uuid' + '}', email_segment_uuid.to_s).sub('{' + 'email_segment_rebuild_uuid' + '}', email_segment_rebuild_uuid.to_s)

      # query parameters
      query_params = {}

      # header parameters
      header_params = {}
      header_params['X-UltraCart-Api-Version'] = @api_client.select_header_api_version()
      # HTTP header 'Accept' (if needed)
      header_params['Accept'] = @api_client.select_header_accept(['application/json'])
      # HTTP header 'Content-Type'
      header_params['Content-Type'] = @api_client.select_header_content_type(['application/json'])

      # form parameters
      form_params = {}

      # http body (model)
      post_body = nil
      auth_names = ['ultraCartBrowserApiKey', 'ultraCartOauth', 'ultraCartSimpleApiKey']
      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 => 'EmailSegmentDownloadPrepareResponse')
      if @api_client.config.debugging
        @api_client.config.logger.debug "API called: StorefrontApi#check_download_email_segment\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
      end
      return data, status_code, headers
    end
    # Clone email campaign
    # @param storefront_oid 
    # @param email_campaign_uuid 
    # @param [Hash] opts the optional parameters
    # @option opts [Integer] :target_storefront_oid 
    # @return [EmailCampaignResponse]
    def clone_email_campaign(storefront_oid, email_campaign_uuid, opts = {})
      data, _status_code, _headers = clone_email_campaign_with_http_info(storefront_oid, email_campaign_uuid, opts)
      data
    end

    # Clone email campaign
    # @param storefront_oid 
    # @param email_campaign_uuid 
    # @param [Hash] opts the optional parameters
    # @option opts [Integer] :target_storefront_oid 
    # @return [Array<(EmailCampaignResponse, Fixnum, Hash)>] EmailCampaignResponse data, response status code and response headers
    def clone_email_campaign_with_http_info(storefront_oid, email_campaign_uuid, opts = {})
      if @api_client.config.debugging
        @api_client.config.logger.debug 'Calling API: StorefrontApi.clone_email_campaign ...'
      end
      # verify the required parameter 'storefront_oid' is set
      if @api_client.config.client_side_validation && storefront_oid.nil?
        fail ArgumentError, "Missing the required parameter 'storefront_oid' when calling StorefrontApi.clone_email_campaign"
      end
      # verify the required parameter 'email_campaign_uuid' is set
      if @api_client.config.client_side_validation && email_campaign_uuid.nil?
        fail ArgumentError, "Missing the required parameter 'email_campaign_uuid' when calling StorefrontApi.clone_email_campaign"
      end
      # resource path
      local_var_path = '/storefront/{storefront_oid}/email/campaigns/{email_campaign_uuid}/clone'.sub('{' + 'storefront_oid' + '}', storefront_oid.to_s).sub('{' + 'email_campaign_uuid' + '}', email_campaign_uuid.to_s)

      # query parameters
      query_params = {}
      query_params[:'target_storefront_oid'] = opts[:'target_storefront_oid'] if !opts[:'target_storefront_oid'].nil?

      # header parameters
      header_params = {}
      header_params['X-UltraCart-Api-Version'] = @api_client.select_header_api_version()
      # HTTP header 'Accept' (if needed)
      header_params['Accept'] = @api_client.select_header_accept(['application/json'])
      # HTTP header 'Content-Type'
      header_params['Content-Type'] = @api_client.select_header_content_type(['application/json'])

      # form parameters
      form_params = {}

      # http body (model)
      post_body = nil
      auth_names = ['ultraCartBrowserApiKey', 'ultraCartOauth', 'ultraCartSimpleApiKey']
      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 => 'EmailCampaignResponse')
      if @api_client.config.debugging
        @api_client.config.logger.debug "API called: StorefrontApi#clone_email_campaign\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
      end
      return data, status_code, headers
    end
    # Clone email flow
    # @param storefront_oid 
    # @param email_flow_uuid 
    # @param [Hash] opts the optional parameters
    # @option opts [Integer] :target_storefront_oid 
    # @return [EmailFlowResponse]
    def clone_email_flow(storefront_oid, email_flow_uuid, opts = {})
      data, _status_code, _headers = clone_email_flow_with_http_info(storefront_oid, email_flow_uuid, opts)
      data
    end

    # Clone email flow
    # @param storefront_oid 
    # @param email_flow_uuid 
    # @param [Hash] opts the optional parameters
    # @option opts [Integer] :target_storefront_oid 
    # @return [Array<(EmailFlowResponse, Fixnum, Hash)>] EmailFlowResponse data, response status code and response headers
    def clone_email_flow_with_http_info(storefront_oid, email_flow_uuid, opts = {})
      if @api_client.config.debugging
        @api_client.config.logger.debug 'Calling API: StorefrontApi.clone_email_flow ...'
      end
      # verify the required parameter 'storefront_oid' is set
      if @api_client.config.client_side_validation && storefront_oid.nil?
        fail ArgumentError, "Missing the required parameter 'storefront_oid' when calling StorefrontApi.clone_email_flow"
      end
      # verify the required parameter 'email_flow_uuid' is set
      if @api_client.config.client_side_validation && email_flow_uuid.nil?
        fail ArgumentError, "Missing the required parameter 'email_flow_uuid' when calling StorefrontApi.clone_email_flow"
      end
      # resource path
      local_var_path = '/storefront/{storefront_oid}/email/flows/{email_flow_uuid}/clone'.sub('{' + 'storefront_oid' + '}', storefront_oid.to_s).sub('{' + 'email_flow_uuid' + '}', email_flow_uuid.to_s)

      # query parameters
      query_params = {}
      query_params[:'target_storefront_oid'] = opts[:'target_storefront_oid'] if !opts[:'target_storefront_oid'].nil?

      # header parameters
      header_params = {}
      header_params['X-UltraCart-Api-Version'] = @api_client.select_header_api_version()
      # HTTP header 'Accept' (if needed)
      header_params['Accept'] = @api_client.select_header_accept(['application/json'])
      # HTTP header 'Content-Type'
      header_params['Content-Type'] = @api_client.select_header_content_type(['application/json'])

      # form parameters
      form_params = {}

      # http body (model)
      post_body = nil
      auth_names = ['ultraCartBrowserApiKey', 'ultraCartOauth', 'ultraCartSimpleApiKey']
      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 => 'EmailFlowResponse')
      if @api_client.config.debugging
        @api_client.config.logger.debug "API called: StorefrontApi#clone_email_flow\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
      end
      return data, status_code, headers
    end
    # Create email campaign
    # @param domain 
    # @param [Hash] opts the optional parameters
    # @return [EmailSendingDomainResponse]
    def create_email_sending_domain(domain, opts = {})
      data, _status_code, _headers = create_email_sending_domain_with_http_info(domain, opts)
      data
    end

    # Create email campaign
    # @param domain 
    # @param [Hash] opts the optional parameters
    # @return [Array<(EmailSendingDomainResponse, Fixnum, Hash)>] EmailSendingDomainResponse data, response status code and response headers
    def create_email_sending_domain_with_http_info(domain, opts = {})
      if @api_client.config.debugging
        @api_client.config.logger.debug 'Calling API: StorefrontApi.create_email_sending_domain ...'
      end
      # verify the required parameter 'domain' is set
      if @api_client.config.client_side_validation && domain.nil?
        fail ArgumentError, "Missing the required parameter 'domain' when calling StorefrontApi.create_email_sending_domain"
      end
      # resource path
      local_var_path = '/storefront/email/sending_domains/{domain}/create'.sub('{' + 'domain' + '}', domain.to_s)

      # query parameters
      query_params = {}

      # header parameters
      header_params = {}
      header_params['X-UltraCart-Api-Version'] = @api_client.select_header_api_version()
      # HTTP header 'Accept' (if needed)
      header_params['Accept'] = @api_client.select_header_accept(['application/json'])
      # HTTP header 'Content-Type'
      header_params['Content-Type'] = @api_client.select_header_content_type(['application/json'])

      # form parameters
      form_params = {}

      # http body (model)
      post_body = nil
      auth_names = ['ultraCartBrowserApiKey', 'ultraCartOauth', 'ultraCartSimpleApiKey']
      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 => 'EmailSendingDomainResponse')
      if @api_client.config.debugging
        @api_client.config.logger.debug "API called: StorefrontApi#create_email_sending_domain\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
      end
      return data, status_code, headers
    end
    # Create email sending domain for various providers
    # @param email_domain EmailDomain
    # @param [Hash] opts the optional parameters
    # @return [EmailSendingDomainResponse]
    def create_email_sending_domain2(email_domain, opts = {})
      data, _status_code, _headers = create_email_sending_domain2_with_http_info(email_domain, opts)
      data
    end

    # Create email sending domain for various providers
    # @param email_domain EmailDomain
    # @param [Hash] opts the optional parameters
    # @return [Array<(EmailSendingDomainResponse, Fixnum, Hash)>] EmailSendingDomainResponse data, response status code and response headers
    def create_email_sending_domain2_with_http_info(email_domain, opts = {})
      if @api_client.config.debugging
        @api_client.config.logger.debug 'Calling API: StorefrontApi.create_email_sending_domain2 ...'
      end
      # verify the required parameter 'email_domain' is set
      if @api_client.config.client_side_validation && email_domain.nil?
        fail ArgumentError, "Missing the required parameter 'email_domain' when calling StorefrontApi.create_email_sending_domain2"
      end
      # resource path
      local_var_path = '/storefront/email/sending_domains'

      # query parameters
      query_params = {}

      # header parameters
      header_params = {}
      header_params['X-UltraCart-Api-Version'] = @api_client.select_header_api_version()
      # HTTP header 'Accept' (if needed)
      header_params['Accept'] = @api_client.select_header_accept(['application/json'])
      # HTTP header 'Content-Type'
      header_params['Content-Type'] = @api_client.select_header_content_type(['application/json'])

      # form parameters
      form_params = {}

      # http body (model)
      post_body = @api_client.object_to_http_body(email_domain)
      auth_names = ['ultraCartBrowserApiKey', 'ultraCartOauth', 'ultraCartSimpleApiKey']
      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 => 'EmailSendingDomainResponse')
      if @api_client.config.debugging
        @api_client.config.logger.debug "API called: StorefrontApi#create_email_sending_domain2\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
      end
      return data, status_code, headers
    end
    # Create Twilio account
    # @param twilio Twilio
    # @param [Hash] opts the optional parameters
    # @return [TwilioResponse]
    def create_twilio_account(twilio, opts = {})
      data, _status_code, _headers = create_twilio_account_with_http_info(twilio, opts)
      data
    end

    # Create Twilio account
    # @param twilio Twilio
    # @param [Hash] opts the optional parameters
    # @return [Array<(TwilioResponse, Fixnum, Hash)>] TwilioResponse data, response status code and response headers
    def create_twilio_account_with_http_info(twilio, opts = {})
      if @api_client.config.debugging
        @api_client.config.logger.debug 'Calling API: StorefrontApi.create_twilio_account ...'
      end
      # verify the required parameter 'twilio' is set
      if @api_client.config.client_side_validation && twilio.nil?
        fail ArgumentError, "Missing the required parameter 'twilio' when calling StorefrontApi.create_twilio_account"
      end
      # resource path
      local_var_path = '/storefront/twilio/accounts'

      # query parameters
      query_params = {}

      # header parameters
      header_params = {}
      header_params['X-UltraCart-Api-Version'] = @api_client.select_header_api_version()
      # HTTP header 'Accept' (if needed)
      header_params['Accept'] = @api_client.select_header_accept(['application/json'])
      # HTTP header 'Content-Type'
      header_params['Content-Type'] = @api_client.select_header_content_type(['application/json'])

      # form parameters
      form_params = {}

      # http body (model)
      post_body = @api_client.object_to_http_body(twilio)
      auth_names = ['ultraCartBrowserApiKey', 'ultraCartOauth', 'ultraCartSimpleApiKey']
      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 => 'TwilioResponse')
      if @api_client.config.debugging
        @api_client.config.logger.debug "API called: StorefrontApi#create_twilio_account\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
      end
      return data, status_code, headers
    end
    # Delete email campaignFolder
    # @param storefront_oid 
    # @param email_campaign_folder_uuid 
    # @param [Hash] opts the optional parameters
    # @return [BaseResponse]
    def delete_email_campaign_folder(storefront_oid, email_campaign_folder_uuid, opts = {})
      data, _status_code, _headers = delete_email_campaign_folder_with_http_info(storefront_oid, email_campaign_folder_uuid, opts)
      data
    end

    # Delete email campaignFolder
    # @param storefront_oid 
    # @param email_campaign_folder_uuid 
    # @param [Hash] opts the optional parameters
    # @return [Array<(BaseResponse, Fixnum, Hash)>] BaseResponse data, response status code and response headers
    def delete_email_campaign_folder_with_http_info(storefront_oid, email_campaign_folder_uuid, opts = {})
      if @api_client.config.debugging
        @api_client.config.logger.debug 'Calling API: StorefrontApi.delete_email_campaign_folder ...'
      end
      # verify the required parameter 'storefront_oid' is set
      if @api_client.config.client_side_validation && storefront_oid.nil?
        fail ArgumentError, "Missing the required parameter 'storefront_oid' when calling StorefrontApi.delete_email_campaign_folder"
      end
      # verify the required parameter 'email_campaign_folder_uuid' is set
      if @api_client.config.client_side_validation && email_campaign_folder_uuid.nil?
        fail ArgumentError, "Missing the required parameter 'email_campaign_folder_uuid' when calling StorefrontApi.delete_email_campaign_folder"
      end
      # resource path
      local_var_path = '/storefront/{storefront_oid}/email/campaign_folders/{email_campaign_folder_uuid}'.sub('{' + 'storefront_oid' + '}', storefront_oid.to_s).sub('{' + 'email_campaign_folder_uuid' + '}', email_campaign_folder_uuid.to_s)

      # query parameters
      query_params = {}

      # header parameters
      header_params = {}
      header_params['X-UltraCart-Api-Version'] = @api_client.select_header_api_version()
      # HTTP header 'Accept' (if needed)
      header_params['Accept'] = @api_client.select_header_accept(['application/json'])
      # HTTP header 'Content-Type'
      header_params['Content-Type'] = @api_client.select_header_content_type(['application/json'])

      # form parameters
      form_params = {}

      # http body (model)
      post_body = nil
      auth_names = ['ultraCartBrowserApiKey', 'ultraCartOauth', 'ultraCartSimpleApiKey']
      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 => 'BaseResponse')
      if @api_client.config.debugging
        @api_client.config.logger.debug "API called: StorefrontApi#delete_email_campaign_folder\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
      end
      return data, status_code, headers
    end
    # Delete communication sequence stats
    # @param storefront_oid 
    # @param commseq_uuid 
    # @param [Hash] opts the optional parameters
    # @return [nil]
    def delete_email_commseq_stat(storefront_oid, commseq_uuid, opts = {})
      delete_email_commseq_stat_with_http_info(storefront_oid, commseq_uuid, opts)
      nil
    end

    # Delete communication sequence stats
    # @param storefront_oid 
    # @param commseq_uuid 
    # @param [Hash] opts the optional parameters
    # @return [Array<(nil, Fixnum, Hash)>] nil, response status code and response headers
    def delete_email_commseq_stat_with_http_info(storefront_oid, commseq_uuid, opts = {})
      if @api_client.config.debugging
        @api_client.config.logger.debug 'Calling API: StorefrontApi.delete_email_commseq_stat ...'
      end
      # verify the required parameter 'storefront_oid' is set
      if @api_client.config.client_side_validation && storefront_oid.nil?
        fail ArgumentError, "Missing the required parameter 'storefront_oid' when calling StorefrontApi.delete_email_commseq_stat"
      end
      # verify the required parameter 'commseq_uuid' is set
      if @api_client.config.client_side_validation && commseq_uuid.nil?
        fail ArgumentError, "Missing the required parameter 'commseq_uuid' when calling StorefrontApi.delete_email_commseq_stat"
      end
      # resource path
      local_var_path = '/storefront/{storefront_oid}/email/commseqs/{commseq_uuid}/stat'.sub('{' + 'storefront_oid' + '}', storefront_oid.to_s).sub('{' + 'commseq_uuid' + '}', commseq_uuid.to_s)

      # query parameters
      query_params = {}

      # header parameters
      header_params = {}
      header_params['X-UltraCart-Api-Version'] = @api_client.select_header_api_version()
      # HTTP header 'Accept' (if needed)
      header_params['Accept'] = @api_client.select_header_accept(['application/json'])
      # HTTP header 'Content-Type'
      header_params['Content-Type'] = @api_client.select_header_content_type(['application/json'])

      # form parameters
      form_params = {}

      # http body (model)
      post_body = nil
      auth_names = ['ultraCartBrowserApiKey', 'ultraCartOauth', 'ultraCartSimpleApiKey']
      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: StorefrontApi#delete_email_commseq_stat\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
      end
      return data, status_code, headers
    end
    # Delete email email
    # @param storefront_oid 
    # @param commseq_email_uuid 
    # @param [Hash] opts the optional parameters
    # @return [BaseResponse]
    def delete_email_email(storefront_oid, commseq_email_uuid, opts = {})
      data, _status_code, _headers = delete_email_email_with_http_info(storefront_oid, commseq_email_uuid, opts)
      data
    end

    # Delete email email
    # @param storefront_oid 
    # @param commseq_email_uuid 
    # @param [Hash] opts the optional parameters
    # @return [Array<(BaseResponse, Fixnum, Hash)>] BaseResponse data, response status code and response headers
    def delete_email_email_with_http_info(storefront_oid, commseq_email_uuid, opts = {})
      if @api_client.config.debugging
        @api_client.config.logger.debug 'Calling API: StorefrontApi.delete_email_email ...'
      end
      # verify the required parameter 'storefront_oid' is set
      if @api_client.config.client_side_validation && storefront_oid.nil?
        fail ArgumentError, "Missing the required parameter 'storefront_oid' when calling StorefrontApi.delete_email_email"
      end
      # verify the required parameter 'commseq_email_uuid' is set
      if @api_client.config.client_side_validation && commseq_email_uuid.nil?
        fail ArgumentError, "Missing the required parameter 'commseq_email_uuid' when calling StorefrontApi.delete_email_email"
      end
      # resource path
      local_var_path = '/storefront/{storefront_oid}/email/emails/{commseq_email_uuid}'.sub('{' + 'storefront_oid' + '}', storefront_oid.to_s).sub('{' + 'commseq_email_uuid' + '}', commseq_email_uuid.to_s)

      # query parameters
      query_params = {}

      # header parameters
      header_params = {}
      header_params['X-UltraCart-Api-Version'] = @api_client.select_header_api_version()
      # HTTP header 'Accept' (if needed)
      header_params['Accept'] = @api_client.select_header_accept(['application/json'])
      # HTTP header 'Content-Type'
      header_params['Content-Type'] = @api_client.select_header_content_type(['application/json'])

      # form parameters
      form_params = {}

      # http body (model)
      post_body = nil
      auth_names = ['ultraCartBrowserApiKey', 'ultraCartOauth', 'ultraCartSimpleApiKey']
      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 => 'BaseResponse')
      if @api_client.config.debugging
        @api_client.config.logger.debug "API called: StorefrontApi#delete_email_email\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
      end
      return data, status_code, headers
    end
    # Delete email flowFolder
    # @param storefront_oid 
    # @param email_flow_folder_uuid 
    # @param [Hash] opts the optional parameters
    # @return [BaseResponse]
    def delete_email_flow_folder(storefront_oid, email_flow_folder_uuid, opts = {})
      data, _status_code, _headers = delete_email_flow_folder_with_http_info(storefront_oid, email_flow_folder_uuid, opts)
      data
    end

    # Delete email flowFolder
    # @param storefront_oid 
    # @param email_flow_folder_uuid 
    # @param [Hash] opts the optional parameters
    # @return [Array<(BaseResponse, Fixnum, Hash)>] BaseResponse data, response status code and response headers
    def delete_email_flow_folder_with_http_info(storefront_oid, email_flow_folder_uuid, opts = {})
      if @api_client.config.debugging
        @api_client.config.logger.debug 'Calling API: StorefrontApi.delete_email_flow_folder ...'
      end
      # verify the required parameter 'storefront_oid' is set
      if @api_client.config.client_side_validation && storefront_oid.nil?
        fail ArgumentError, "Missing the required parameter 'storefront_oid' when calling StorefrontApi.delete_email_flow_folder"
      end
      # verify the required parameter 'email_flow_folder_uuid' is set
      if @api_client.config.client_side_validation && email_flow_folder_uuid.nil?
        fail ArgumentError, "Missing the required parameter 'email_flow_folder_uuid' when calling StorefrontApi.delete_email_flow_folder"
      end
      # resource path
      local_var_path = '/storefront/{storefront_oid}/email/flow_folders/{email_flow_folder_uuid}'.sub('{' + 'storefront_oid' + '}', storefront_oid.to_s).sub('{' + 'email_flow_folder_uuid' + '}', email_flow_folder_uuid.to_s)

      # query parameters
      query_params = {}

      # header parameters
      header_params = {}
      header_params['X-UltraCart-Api-Version'] = @api_client.select_header_api_version()
      # HTTP header 'Accept' (if needed)
      header_params['Accept'] = @api_client.select_header_accept(['application/json'])
      # HTTP header 'Content-Type'
      header_params['Content-Type'] = @api_client.select_header_content_type(['application/json'])

      # form parameters
      form_params = {}

      # http body (model)
      post_body = nil
      auth_names = ['ultraCartBrowserApiKey', 'ultraCartOauth', 'ultraCartSimpleApiKey']
      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 => 'BaseResponse')
      if @api_client.config.debugging
        @api_client.config.logger.debug "API called: StorefrontApi#delete_email_flow_folder\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
      end
      return data, status_code, headers
    end
    # Delete email list customer
    # @param storefront_oid 
    # @param email_list_uuid 
    # @param email_customer_uuid 
    # @param [Hash] opts the optional parameters
    # @return [BaseResponse]
    def delete_email_list_customer(storefront_oid, email_list_uuid, email_customer_uuid, opts = {})
      data, _status_code, _headers = delete_email_list_customer_with_http_info(storefront_oid, email_list_uuid, email_customer_uuid, opts)
      data
    end

    # Delete email list customer
    # @param storefront_oid 
    # @param email_list_uuid 
    # @param email_customer_uuid 
    # @param [Hash] opts the optional parameters
    # @return [Array<(BaseResponse, Fixnum, Hash)>] BaseResponse data, response status code and response headers
    def delete_email_list_customer_with_http_info(storefront_oid, email_list_uuid, email_customer_uuid, opts = {})
      if @api_client.config.debugging
        @api_client.config.logger.debug 'Calling API: StorefrontApi.delete_email_list_customer ...'
      end
      # verify the required parameter 'storefront_oid' is set
      if @api_client.config.client_side_validation && storefront_oid.nil?
        fail ArgumentError, "Missing the required parameter 'storefront_oid' when calling StorefrontApi.delete_email_list_customer"
      end
      # verify the required parameter 'email_list_uuid' is set
      if @api_client.config.client_side_validation && email_list_uuid.nil?
        fail ArgumentError, "Missing the required parameter 'email_list_uuid' when calling StorefrontApi.delete_email_list_customer"
      end
      # verify the required parameter 'email_customer_uuid' is set
      if @api_client.config.client_side_validation && email_customer_uuid.nil?
        fail ArgumentError, "Missing the required parameter 'email_customer_uuid' when calling StorefrontApi.delete_email_list_customer"
      end
      # resource path
      local_var_path = '/storefront/{storefront_oid}/email/lists/{email_list_uuid}/customers/{email_customer_uuid}'.sub('{' + 'storefront_oid' + '}', storefront_oid.to_s).sub('{' + 'email_list_uuid' + '}', email_list_uuid.to_s).sub('{' + 'email_customer_uuid' + '}', email_customer_uuid.to_s)

      # query parameters
      query_params = {}

      # header parameters
      header_params = {}
      header_params['X-UltraCart-Api-Version'] = @api_client.select_header_api_version()
      # HTTP header 'Accept' (if needed)
      header_params['Accept'] = @api_client.select_header_accept(['application/json'])
      # HTTP header 'Content-Type'
      header_params['Content-Type'] = @api_client.select_header_content_type(['application/json'])

      # form parameters
      form_params = {}

      # http body (model)
      post_body = nil
      auth_names = ['ultraCartBrowserApiKey', 'ultraCartOauth', 'ultraCartSimpleApiKey']
      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 => 'BaseResponse')
      if @api_client.config.debugging
        @api_client.config.logger.debug "API called: StorefrontApi#delete_email_list_customer\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
      end
      return data, status_code, headers
    end
    # Delete email ListSegmentFolder
    # @param storefront_oid 
    # @param email_list_segment_folder_uuid 
    # @param [Hash] opts the optional parameters
    # @return [BaseResponse]
    def delete_email_list_segment_folder(storefront_oid, email_list_segment_folder_uuid, opts = {})
      data, _status_code, _headers = delete_email_list_segment_folder_with_http_info(storefront_oid, email_list_segment_folder_uuid, opts)
      data
    end

    # Delete email ListSegmentFolder
    # @param storefront_oid 
    # @param email_list_segment_folder_uuid 
    # @param [Hash] opts the optional parameters
    # @return [Array<(BaseResponse, Fixnum, Hash)>] BaseResponse data, response status code and response headers
    def delete_email_list_segment_folder_with_http_info(storefront_oid, email_list_segment_folder_uuid, opts = {})
      if @api_client.config.debugging
        @api_client.config.logger.debug 'Calling API: StorefrontApi.delete_email_list_segment_folder ...'
      end
      # verify the required parameter 'storefront_oid' is set
      if @api_client.config.client_side_validation && storefront_oid.nil?
        fail ArgumentError, "Missing the required parameter 'storefront_oid' when calling StorefrontApi.delete_email_list_segment_folder"
      end
      # verify the required parameter 'email_list_segment_folder_uuid' is set
      if @api_client.config.client_side_validation && email_list_segment_folder_uuid.nil?
        fail ArgumentError, "Missing the required parameter 'email_list_segment_folder_uuid' when calling StorefrontApi.delete_email_list_segment_folder"
      end
      # resource path
      local_var_path = '/storefront/{storefront_oid}/email/list_segment_folders/{email_list_segment_folder_uuid}'.sub('{' + 'storefront_oid' + '}', storefront_oid.to_s).sub('{' + 'email_list_segment_folder_uuid' + '}', email_list_segment_folder_uuid.to_s)

      # query parameters
      query_params = {}

      # header parameters
      header_params = {}
      header_params['X-UltraCart-Api-Version'] = @api_client.select_header_api_version()
      # HTTP header 'Accept' (if needed)
      header_params['Accept'] = @api_client.select_header_accept(['application/json'])
      # HTTP header 'Content-Type'
      header_params['Content-Type'] = @api_client.select_header_content_type(['application/json'])

      # form parameters
      form_params = {}

      # http body (model)
      post_body = nil
      auth_names = ['ultraCartBrowserApiKey', 'ultraCartOauth', 'ultraCartSimpleApiKey']
      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 => 'BaseResponse')
      if @api_client.config.debugging
        @api_client.config.logger.debug "API called: StorefrontApi#delete_email_list_segment_folder\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
      end
      return data, status_code, headers
    end
    # Delete email postcard
    # @param storefront_oid 
    # @param commseq_postcard_uuid 
    # @param [Hash] opts the optional parameters
    # @return [BaseResponse]
    def delete_email_postcard(storefront_oid, commseq_postcard_uuid, opts = {})
      data, _status_code, _headers = delete_email_postcard_with_http_info(storefront_oid, commseq_postcard_uuid, opts)
      data
    end

    # Delete email postcard
    # @param storefront_oid 
    # @param commseq_postcard_uuid 
    # @param [Hash] opts the optional parameters
    # @return [Array<(BaseResponse, Fixnum, Hash)>] BaseResponse data, response status code and response headers
    def delete_email_postcard_with_http_info(storefront_oid, commseq_postcard_uuid, opts = {})
      if @api_client.config.debugging
        @api_client.config.logger.debug 'Calling API: StorefrontApi.delete_email_postcard ...'
      end
      # verify the required parameter 'storefront_oid' is set
      if @api_client.config.client_side_validation && storefront_oid.nil?
        fail ArgumentError, "Missing the required parameter 'storefront_oid' when calling StorefrontApi.delete_email_postcard"
      end
      # verify the required parameter 'commseq_postcard_uuid' is set
      if @api_client.config.client_side_validation && commseq_postcard_uuid.nil?
        fail ArgumentError, "Missing the required parameter 'commseq_postcard_uuid' when calling StorefrontApi.delete_email_postcard"
      end
      # resource path
      local_var_path = '/storefront/{storefront_oid}/email/postcards/{commseq_postcard_uuid}'.sub('{' + 'storefront_oid' + '}', storefront_oid.to_s).sub('{' + 'commseq_postcard_uuid' + '}', commseq_postcard_uuid.to_s)

      # query parameters
      query_params = {}

      # header parameters
      header_params = {}
      header_params['X-UltraCart-Api-Version'] = @api_client.select_header_api_version()
      # HTTP header 'Accept' (if needed)
      header_params['Accept'] = @api_client.select_header_accept(['application/json'])
      # HTTP header 'Content-Type'
      header_params['Content-Type'] = @api_client.select_header_content_type(['application/json'])

      # form parameters
      form_params = {}

      # http body (model)
      post_body = nil
      auth_names = ['ultraCartBrowserApiKey', 'ultraCartOauth', 'ultraCartSimpleApiKey']
      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 => 'BaseResponse')
      if @api_client.config.debugging
        @api_client.config.logger.debug "API called: StorefrontApi#delete_email_postcard\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
      end
      return data, status_code, headers
    end
    # delete email campaign
    # @param domain 
    # @param [Hash] opts the optional parameters
    # @return [BaseResponse]
    def delete_email_sending_domain(domain, opts = {})
      data, _status_code, _headers = delete_email_sending_domain_with_http_info(domain, opts)
      data
    end

    # delete email campaign
    # @param domain 
    # @param [Hash] opts the optional parameters
    # @return [Array<(BaseResponse, Fixnum, Hash)>] BaseResponse data, response status code and response headers
    def delete_email_sending_domain_with_http_info(domain, opts = {})
      if @api_client.config.debugging
        @api_client.config.logger.debug 'Calling API: StorefrontApi.delete_email_sending_domain ...'
      end
      # verify the required parameter 'domain' is set
      if @api_client.config.client_side_validation && domain.nil?
        fail ArgumentError, "Missing the required parameter 'domain' when calling StorefrontApi.delete_email_sending_domain"
      end
      # resource path
      local_var_path = '/storefront/email/sending_domains/{domain}'.sub('{' + 'domain' + '}', domain.to_s)

      # query parameters
      query_params = {}

      # header parameters
      header_params = {}
      header_params['X-UltraCart-Api-Version'] = @api_client.select_header_api_version()
      # HTTP header 'Accept' (if needed)
      header_params['Accept'] = @api_client.select_header_accept(['application/json'])
      # HTTP header 'Content-Type'
      header_params['Content-Type'] = @api_client.select_header_content_type(['application/json'])

      # form parameters
      form_params = {}

      # http body (model)
      post_body = nil
      auth_names = ['ultraCartBrowserApiKey', 'ultraCartOauth', 'ultraCartSimpleApiKey']
      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 => 'BaseResponse')
      if @api_client.config.debugging
        @api_client.config.logger.debug "API called: StorefrontApi#delete_email_sending_domain\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
      end
      return data, status_code, headers
    end
    # Delete experiment
    # @param storefront_oid 
    # @param storefront_experiment_oid 
    # @param [Hash] opts the optional parameters
    # @return [nil]
    def delete_experiment(storefront_oid, storefront_experiment_oid, opts = {})
      delete_experiment_with_http_info(storefront_oid, storefront_experiment_oid, opts)
      nil
    end

    # Delete experiment
    # @param storefront_oid 
    # @param storefront_experiment_oid 
    # @param [Hash] opts the optional parameters
    # @return [Array<(nil, Fixnum, Hash)>] nil, response status code and response headers
    def delete_experiment_with_http_info(storefront_oid, storefront_experiment_oid, opts = {})
      if @api_client.config.debugging
        @api_client.config.logger.debug 'Calling API: StorefrontApi.delete_experiment ...'
      end
      # verify the required parameter 'storefront_oid' is set
      if @api_client.config.client_side_validation && storefront_oid.nil?
        fail ArgumentError, "Missing the required parameter 'storefront_oid' when calling StorefrontApi.delete_experiment"
      end
      # verify the required parameter 'storefront_experiment_oid' is set
      if @api_client.config.client_side_validation && storefront_experiment_oid.nil?
        fail ArgumentError, "Missing the required parameter 'storefront_experiment_oid' when calling StorefrontApi.delete_experiment"
      end
      # resource path
      local_var_path = '/storefront/{storefront_oid}/experiments/{storefront_experiment_oid}'.sub('{' + 'storefront_oid' + '}', storefront_oid.to_s).sub('{' + 'storefront_experiment_oid' + '}', storefront_experiment_oid.to_s)

      # query parameters
      query_params = {}

      # header parameters
      header_params = {}
      header_params['X-UltraCart-Api-Version'] = @api_client.select_header_api_version()
      # HTTP header 'Accept' (if needed)
      header_params['Accept'] = @api_client.select_header_accept(['application/json'])
      # HTTP header 'Content-Type'
      header_params['Content-Type'] = @api_client.select_header_content_type(['application/json'])

      # form parameters
      form_params = {}

      # http body (model)
      post_body = nil
      auth_names = ['ultraCartBrowserApiKey', 'ultraCartOauth', 'ultraCartSimpleApiKey']
      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: StorefrontApi#delete_experiment\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
      end
      return data, status_code, headers
    end
    # Delete screen recording heatmap
    # Delete screen recording heatmap 
    # @param storefront_oid 
    # @param query Query
    # @param [Hash] opts the optional parameters
    # @return [nil]
    def delete_heatmap(storefront_oid, query, opts = {})
      delete_heatmap_with_http_info(storefront_oid, query, opts)
      nil
    end

    # Delete screen recording heatmap
    # Delete screen recording heatmap 
    # @param storefront_oid 
    # @param query Query
    # @param [Hash] opts the optional parameters
    # @return [Array<(nil, Fixnum, Hash)>] nil, response status code and response headers
    def delete_heatmap_with_http_info(storefront_oid, query, opts = {})
      if @api_client.config.debugging
        @api_client.config.logger.debug 'Calling API: StorefrontApi.delete_heatmap ...'
      end
      # verify the required parameter 'storefront_oid' is set
      if @api_client.config.client_side_validation && storefront_oid.nil?
        fail ArgumentError, "Missing the required parameter 'storefront_oid' when calling StorefrontApi.delete_heatmap"
      end
      # verify the required parameter 'query' is set
      if @api_client.config.client_side_validation && query.nil?
        fail ArgumentError, "Missing the required parameter 'query' when calling StorefrontApi.delete_heatmap"
      end
      # resource path
      local_var_path = '/storefront/{storefront_oid}/screen_recordings/heatmap'.sub('{' + 'storefront_oid' + '}', storefront_oid.to_s)

      # query parameters
      query_params = {}

      # header parameters
      header_params = {}
      header_params['X-UltraCart-Api-Version'] = @api_client.select_header_api_version()
      # HTTP header 'Accept' (if needed)
      header_params['Accept'] = @api_client.select_header_accept(['application/json'])
      # HTTP header 'Content-Type'
      header_params['Content-Type'] = @api_client.select_header_content_type(['application/json'])

      # form parameters
      form_params = {}

      # http body (model)
      post_body = @api_client.object_to_http_body(query)
      auth_names = ['ultraCartOauth', 'ultraCartSimpleApiKey']
      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: StorefrontApi#delete_heatmap\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
      end
      return data, status_code, headers
    end
    # Delete library item
    # @param library_item_oid 
    # @param [Hash] opts the optional parameters
    # @return [nil]
    def delete_library_item(library_item_oid, opts = {})
      delete_library_item_with_http_info(library_item_oid, opts)
      nil
    end

    # Delete library item
    # @param library_item_oid 
    # @param [Hash] opts the optional parameters
    # @return [Array<(nil, Fixnum, Hash)>] nil, response status code and response headers
    def delete_library_item_with_http_info(library_item_oid, opts = {})
      if @api_client.config.debugging
        @api_client.config.logger.debug 'Calling API: StorefrontApi.delete_library_item ...'
      end
      # verify the required parameter 'library_item_oid' is set
      if @api_client.config.client_side_validation && library_item_oid.nil?
        fail ArgumentError, "Missing the required parameter 'library_item_oid' when calling StorefrontApi.delete_library_item"
      end
      # resource path
      local_var_path = '/storefront/code_library/{library_item_oid}'.sub('{' + 'library_item_oid' + '}', library_item_oid.to_s)

      # query parameters
      query_params = {}

      # header parameters
      header_params = {}
      header_params['X-UltraCart-Api-Version'] = @api_client.select_header_api_version()
      # HTTP header 'Accept' (if needed)
      header_params['Accept'] = @api_client.select_header_accept(['application/json'])
      # HTTP header 'Content-Type'
      header_params['Content-Type'] = @api_client.select_header_content_type(['application/json'])

      # form parameters
      form_params = {}

      # http body (model)
      post_body = nil
      auth_names = ['ultraCartBrowserApiKey', 'ultraCartOauth', 'ultraCartSimpleApiKey']
      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: StorefrontApi#delete_library_item\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
      end
      return data, status_code, headers
    end
    # Delete all published versions for a library item, including anything in review.
    # @param library_item_oid 
    # @param [Hash] opts the optional parameters
    # @return [nil]
    def delete_library_item_published_versions(library_item_oid, opts = {})
      delete_library_item_published_versions_with_http_info(library_item_oid, opts)
      nil
    end

    # Delete all published versions for a library item, including anything in review.
    # @param library_item_oid 
    # @param [Hash] opts the optional parameters
    # @return [Array<(nil, Fixnum, Hash)>] nil, response status code and response headers
    def delete_library_item_published_versions_with_http_info(library_item_oid, opts = {})
      if @api_client.config.debugging
        @api_client.config.logger.debug 'Calling API: StorefrontApi.delete_library_item_published_versions ...'
      end
      # verify the required parameter 'library_item_oid' is set
      if @api_client.config.client_side_validation && library_item_oid.nil?
        fail ArgumentError, "Missing the required parameter 'library_item_oid' when calling StorefrontApi.delete_library_item_published_versions"
      end
      # resource path
      local_var_path = '/storefront/code_library/{library_item_oid}/published_versions'.sub('{' + 'library_item_oid' + '}', library_item_oid.to_s)

      # query parameters
      query_params = {}

      # header parameters
      header_params = {}
      header_params['X-UltraCart-Api-Version'] = @api_client.select_header_api_version()
      # HTTP header 'Accept' (if needed)
      header_params['Accept'] = @api_client.select_header_accept(['application/json'])
      # HTTP header 'Content-Type'
      header_params['Content-Type'] = @api_client.select_header_content_type(['application/json'])

      # form parameters
      form_params = {}

      # http body (model)
      post_body = nil
      auth_names = ['ultraCartBrowserApiKey', 'ultraCartOauth', 'ultraCartSimpleApiKey']
      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: StorefrontApi#delete_library_item_published_versions\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
      end
      return data, status_code, headers
    end
    # Delete screen recording segment
    # @param storefront_oid 
    # @param screen_recording_segment_oid 
    # @param [Hash] opts the optional parameters
    # @return [nil]
    def delete_screen_recording_segment(storefront_oid, screen_recording_segment_oid, opts = {})
      delete_screen_recording_segment_with_http_info(storefront_oid, screen_recording_segment_oid, opts)
      nil
    end

    # Delete screen recording segment
    # @param storefront_oid 
    # @param screen_recording_segment_oid 
    # @param [Hash] opts the optional parameters
    # @return [Array<(nil, Fixnum, Hash)>] nil, response status code and response headers
    def delete_screen_recording_segment_with_http_info(storefront_oid, screen_recording_segment_oid, opts = {})
      if @api_client.config.debugging
        @api_client.config.logger.debug 'Calling API: StorefrontApi.delete_screen_recording_segment ...'
      end
      # verify the required parameter 'storefront_oid' is set
      if @api_client.config.client_side_validation && storefront_oid.nil?
        fail ArgumentError, "Missing the required parameter 'storefront_oid' when calling StorefrontApi.delete_screen_recording_segment"
      end
      # verify the required parameter 'screen_recording_segment_oid' is set
      if @api_client.config.client_side_validation && screen_recording_segment_oid.nil?
        fail ArgumentError, "Missing the required parameter 'screen_recording_segment_oid' when calling StorefrontApi.delete_screen_recording_segment"
      end
      # resource path
      local_var_path = '/storefront/{storefront_oid}/screen_recordings/segments/{screen_recording_segment_oid}'.sub('{' + 'storefront_oid' + '}', storefront_oid.to_s).sub('{' + 'screen_recording_segment_oid' + '}', screen_recording_segment_oid.to_s)

      # query parameters
      query_params = {}

      # header parameters
      header_params = {}
      header_params['X-UltraCart-Api-Version'] = @api_client.select_header_api_version()
      # HTTP header 'Accept' (if needed)
      header_params['Accept'] = @api_client.select_header_accept(['application/json'])
      # HTTP header 'Content-Type'
      header_params['Content-Type'] = @api_client.select_header_content_type(['application/json'])

      # form parameters
      form_params = {}

      # http body (model)
      post_body = nil
      auth_names = ['ultraCartBrowserApiKey', 'ultraCartOauth', 'ultraCartSimpleApiKey']
      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: StorefrontApi#delete_screen_recording_segment\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
      end
      return data, status_code, headers
    end
    # delete Twilio account
    # @param esp_twilio_uuid 
    # @param [Hash] opts the optional parameters
    # @return [BaseResponse]
    def delete_twilio_account(esp_twilio_uuid, opts = {})
      data, _status_code, _headers = delete_twilio_account_with_http_info(esp_twilio_uuid, opts)
      data
    end

    # delete Twilio account
    # @param esp_twilio_uuid 
    # @param [Hash] opts the optional parameters
    # @return [Array<(BaseResponse, Fixnum, Hash)>] BaseResponse data, response status code and response headers
    def delete_twilio_account_with_http_info(esp_twilio_uuid, opts = {})
      if @api_client.config.debugging
        @api_client.config.logger.debug 'Calling API: StorefrontApi.delete_twilio_account ...'
      end
      # verify the required parameter 'esp_twilio_uuid' is set
      if @api_client.config.client_side_validation && esp_twilio_uuid.nil?
        fail ArgumentError, "Missing the required parameter 'esp_twilio_uuid' when calling StorefrontApi.delete_twilio_account"
      end
      # resource path
      local_var_path = '/storefront/twilio/accounts/{esp_twilio_uuid}'.sub('{' + 'esp_twilio_uuid' + '}', esp_twilio_uuid.to_s)

      # query parameters
      query_params = {}

      # header parameters
      header_params = {}
      header_params['X-UltraCart-Api-Version'] = @api_client.select_header_api_version()
      # HTTP header 'Accept' (if needed)
      header_params['Accept'] = @api_client.select_header_accept(['application/json'])
      # HTTP header 'Content-Type'
      header_params['Content-Type'] = @api_client.select_header_content_type(['application/json'])

      # form parameters
      form_params = {}

      # http body (model)
      post_body = nil
      auth_names = ['ultraCartBrowserApiKey', 'ultraCartOauth', 'ultraCartSimpleApiKey']
      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 => 'BaseResponse')
      if @api_client.config.debugging
        @api_client.config.logger.debug "API called: StorefrontApi#delete_twilio_account\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
      end
      return data, status_code, headers
    end
    # Duplicate library item.
    # @param library_item_oid 
    # @param [Hash] opts the optional parameters
    # @return [LibraryItemResponse]
    def duplicate_library_item(library_item_oid, opts = {})
      data, _status_code, _headers = duplicate_library_item_with_http_info(library_item_oid, opts)
      data
    end

    # Duplicate library item.
    # @param library_item_oid 
    # @param [Hash] opts the optional parameters
    # @return [Array<(LibraryItemResponse, Fixnum, Hash)>] LibraryItemResponse data, response status code and response headers
    def duplicate_library_item_with_http_info(library_item_oid, opts = {})
      if @api_client.config.debugging
        @api_client.config.logger.debug 'Calling API: StorefrontApi.duplicate_library_item ...'
      end
      # verify the required parameter 'library_item_oid' is set
      if @api_client.config.client_side_validation && library_item_oid.nil?
        fail ArgumentError, "Missing the required parameter 'library_item_oid' when calling StorefrontApi.duplicate_library_item"
      end
      # resource path
      local_var_path = '/storefront/code_library/{library_item_oid}/duplicate'.sub('{' + 'library_item_oid' + '}', library_item_oid.to_s)

      # query parameters
      query_params = {}

      # header parameters
      header_params = {}
      header_params['X-UltraCart-Api-Version'] = @api_client.select_header_api_version()
      # HTTP header 'Accept' (if needed)
      header_params['Accept'] = @api_client.select_header_accept(['application/json'])
      # HTTP header 'Content-Type'
      header_params['Content-Type'] = @api_client.select_header_content_type(['application/json'])

      # form parameters
      form_params = {}

      # http body (model)
      post_body = nil
      auth_names = ['ultraCartBrowserApiKey', 'ultraCartOauth', 'ultraCartSimpleApiKey']
      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 => 'LibraryItemResponse')
      if @api_client.config.debugging
        @api_client.config.logger.debug "API called: StorefrontApi#duplicate_library_item\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
      end
      return data, status_code, headers
    end
    # Update favorite flag on screen recording
    # Update favorite flag on screen recording 
    # @param storefront_oid 
    # @param screen_recording_uuid 
    # @param [Hash] opts the optional parameters
    # @return [nil]
    def favorite_screen_recording(storefront_oid, screen_recording_uuid, opts = {})
      favorite_screen_recording_with_http_info(storefront_oid, screen_recording_uuid, opts)
      nil
    end

    # Update favorite flag on screen recording
    # Update favorite flag on screen recording 
    # @param storefront_oid 
    # @param screen_recording_uuid 
    # @param [Hash] opts the optional parameters
    # @return [Array<(nil, Fixnum, Hash)>] nil, response status code and response headers
    def favorite_screen_recording_with_http_info(storefront_oid, screen_recording_uuid, opts = {})
      if @api_client.config.debugging
        @api_client.config.logger.debug 'Calling API: StorefrontApi.favorite_screen_recording ...'
      end
      # verify the required parameter 'storefront_oid' is set
      if @api_client.config.client_side_validation && storefront_oid.nil?
        fail ArgumentError, "Missing the required parameter 'storefront_oid' when calling StorefrontApi.favorite_screen_recording"
      end
      # verify the required parameter 'screen_recording_uuid' is set
      if @api_client.config.client_side_validation && screen_recording_uuid.nil?
        fail ArgumentError, "Missing the required parameter 'screen_recording_uuid' when calling StorefrontApi.favorite_screen_recording"
      end
      # resource path
      local_var_path = '/storefront/{storefront_oid}/screen_recordings/{screen_recording_uuid}/favorite'.sub('{' + 'storefront_oid' + '}', storefront_oid.to_s).sub('{' + 'screen_recording_uuid' + '}', screen_recording_uuid.to_s)

      # query parameters
      query_params = {}

      # header parameters
      header_params = {}
      header_params['X-UltraCart-Api-Version'] = @api_client.select_header_api_version()
      # HTTP header 'Accept' (if needed)
      header_params['Accept'] = @api_client.select_header_accept(['application/json'])
      # HTTP header 'Content-Type'
      header_params['Content-Type'] = @api_client.select_header_content_type(['application/json'])

      # form parameters
      form_params = {}

      # http body (model)
      post_body = nil
      auth_names = ['ultraCartOauth', 'ultraCartSimpleApiKey']
      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: StorefrontApi#favorite_screen_recording\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
      end
      return data, status_code, headers
    end
    # Obtain lat/long for an address
    # @param storefront_oid 
    # @param geocode_request geocode request
    # @param [Hash] opts the optional parameters
    # @return [GeocodeResponse]
    def geocode_address(storefront_oid, geocode_request, opts = {})
      data, _status_code, _headers = geocode_address_with_http_info(storefront_oid, geocode_request, opts)
      data
    end

    # Obtain lat/long for an address
    # @param storefront_oid 
    # @param geocode_request geocode request
    # @param [Hash] opts the optional parameters
    # @return [Array<(GeocodeResponse, Fixnum, Hash)>] GeocodeResponse data, response status code and response headers
    def geocode_address_with_http_info(storefront_oid, geocode_request, opts = {})
      if @api_client.config.debugging
        @api_client.config.logger.debug 'Calling API: StorefrontApi.geocode_address ...'
      end
      # verify the required parameter 'storefront_oid' is set
      if @api_client.config.client_side_validation && storefront_oid.nil?
        fail ArgumentError, "Missing the required parameter 'storefront_oid' when calling StorefrontApi.geocode_address"
      end
      # verify the required parameter 'geocode_request' is set
      if @api_client.config.client_side_validation && geocode_request.nil?
        fail ArgumentError, "Missing the required parameter 'geocode_request' when calling StorefrontApi.geocode_address"
      end
      # resource path
      local_var_path = '/storefront/{storefront_oid}/email/geocode'.sub('{' + 'storefront_oid' + '}', storefront_oid.to_s)

      # query parameters
      query_params = {}

      # header parameters
      header_params = {}
      header_params['X-UltraCart-Api-Version'] = @api_client.select_header_api_version()
      # HTTP header 'Accept' (if needed)
      header_params['Accept'] = @api_client.select_header_accept(['application/json'])
      # HTTP header 'Content-Type'
      header_params['Content-Type'] = @api_client.select_header_content_type(['application/json'])

      # form parameters
      form_params = {}

      # http body (model)
      post_body = @api_client.object_to_http_body(geocode_request)
      auth_names = ['ultraCartBrowserApiKey', 'ultraCartOauth', 'ultraCartSimpleApiKey']
      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 => 'GeocodeResponse')
      if @api_client.config.debugging
        @api_client.config.logger.debug "API called: StorefrontApi#geocode_address\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
      end
      return data, status_code, headers
    end
    # Get countries
    # Obtain a list of all the countries 
    # @param storefront_oid 
    # @param [Hash] opts the optional parameters
    # @return [CountriesResponse]
    def get_countries(storefront_oid, opts = {})
      data, _status_code, _headers = get_countries_with_http_info(storefront_oid, opts)
      data
    end

    # Get countries
    # Obtain a list of all the countries 
    # @param storefront_oid 
    # @param [Hash] opts the optional parameters
    # @return [Array<(CountriesResponse, Fixnum, Hash)>] CountriesResponse data, response status code and response headers
    def get_countries_with_http_info(storefront_oid, opts = {})
      if @api_client.config.debugging
        @api_client.config.logger.debug 'Calling API: StorefrontApi.get_countries ...'
      end
      # verify the required parameter 'storefront_oid' is set
      if @api_client.config.client_side_validation && storefront_oid.nil?
        fail ArgumentError, "Missing the required parameter 'storefront_oid' when calling StorefrontApi.get_countries"
      end
      # resource path
      local_var_path = '/storefront/{storefront_oid}/email/countries'.sub('{' + 'storefront_oid' + '}', storefront_oid.to_s)

      # query parameters
      query_params = {}

      # header parameters
      header_params = {}
      header_params['X-UltraCart-Api-Version'] = @api_client.select_header_api_version()
      # HTTP header 'Accept' (if needed)
      header_params['Accept'] = @api_client.select_header_accept(['application/json'])
      # HTTP header 'Content-Type'
      header_params['Content-Type'] = @api_client.select_header_content_type(['application/json'])

      # form parameters
      form_params = {}

      # http body (model)
      post_body = nil
      auth_names = ['ultraCartBrowserApiKey', 'ultraCartOauth', 'ultraCartSimpleApiKey']
      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 => 'CountriesResponse')
      if @api_client.config.debugging
        @api_client.config.logger.debug "API called: StorefrontApi#get_countries\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
      end
      return data, status_code, headers
    end
    # Gets editor token
    # Fetches a temporary authentication token for the editor 
    # @param storefront_oid 
    # @param [Hash] opts the optional parameters
    # @return [EmailEditorTokenResponse]
    def get_editor_token(storefront_oid, opts = {})
      data, _status_code, _headers = get_editor_token_with_http_info(storefront_oid, opts)
      data
    end

    # Gets editor token
    # Fetches a temporary authentication token for the editor 
    # @param storefront_oid 
    # @param [Hash] opts the optional parameters
    # @return [Array<(EmailEditorTokenResponse, Fixnum, Hash)>] EmailEditorTokenResponse data, response status code and response headers
    def get_editor_token_with_http_info(storefront_oid, opts = {})
      if @api_client.config.debugging
        @api_client.config.logger.debug 'Calling API: StorefrontApi.get_editor_token ...'
      end
      # verify the required parameter 'storefront_oid' is set
      if @api_client.config.client_side_validation && storefront_oid.nil?
        fail ArgumentError, "Missing the required parameter 'storefront_oid' when calling StorefrontApi.get_editor_token"
      end
      # resource path
      local_var_path = '/storefront/{storefront_oid}/editor_token'.sub('{' + 'storefront_oid' + '}', storefront_oid.to_s)

      # query parameters
      query_params = {}

      # header parameters
      header_params = {}
      header_params['X-UltraCart-Api-Version'] = @api_client.select_header_api_version()
      # HTTP header 'Accept' (if needed)
      header_params['Accept'] = @api_client.select_header_accept(['application/json'])
      # HTTP header 'Content-Type'
      header_params['Content-Type'] = @api_client.select_header_content_type(['application/json'])

      # form parameters
      form_params = {}

      # http body (model)
      post_body = nil
      auth_names = ['ultraCartBrowserApiKey', 'ultraCartOauth', 'ultraCartSimpleApiKey']
      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 => 'EmailEditorTokenResponse')
      if @api_client.config.debugging
        @api_client.config.logger.debug "API called: StorefrontApi#get_editor_token\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
      end
      return data, status_code, headers
    end
    # Get email communication base templates
    # @param storefront_oid 
    # @param [Hash] opts the optional parameters
    # @return [EmailBaseTemplateListResponse]
    def get_email_base_templates(storefront_oid, opts = {})
      data, _status_code, _headers = get_email_base_templates_with_http_info(storefront_oid, opts)
      data
    end

    # Get email communication base templates
    # @param storefront_oid 
    # @param [Hash] opts the optional parameters
    # @return [Array<(EmailBaseTemplateListResponse, Fixnum, Hash)>] EmailBaseTemplateListResponse data, response status code and response headers
    def get_email_base_templates_with_http_info(storefront_oid, opts = {})
      if @api_client.config.debugging
        @api_client.config.logger.debug 'Calling API: StorefrontApi.get_email_base_templates ...'
      end
      # verify the required parameter 'storefront_oid' is set
      if @api_client.config.client_side_validation && storefront_oid.nil?
        fail ArgumentError, "Missing the required parameter 'storefront_oid' when calling StorefrontApi.get_email_base_templates"
      end
      # resource path
      local_var_path = '/storefront/{storefront_oid}/email/baseTemplates'.sub('{' + 'storefront_oid' + '}', storefront_oid.to_s)

      # query parameters
      query_params = {}

      # header parameters
      header_params = {}
      header_params['X-UltraCart-Api-Version'] = @api_client.select_header_api_version()
      # HTTP header 'Accept' (if needed)
      header_params['Accept'] = @api_client.select_header_accept(['application/json'])
      # HTTP header 'Content-Type'
      header_params['Content-Type'] = @api_client.select_header_content_type(['application/json'])

      # form parameters
      form_params = {}

      # http body (model)
      post_body = nil
      auth_names = ['ultraCartBrowserApiKey', 'ultraCartOauth', 'ultraCartSimpleApiKey']
      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 => 'EmailBaseTemplateListResponse')
      if @api_client.config.debugging
        @api_client.config.logger.debug "API called: StorefrontApi#get_email_base_templates\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
      end
      return data, status_code, headers
    end
    # Get email campaign
    # @param storefront_oid 
    # @param email_campaign_uuid 
    # @param [Hash] opts the optional parameters
    # @return [EmailCampaignResponse]
    def get_email_campaign(storefront_oid, email_campaign_uuid, opts = {})
      data, _status_code, _headers = get_email_campaign_with_http_info(storefront_oid, email_campaign_uuid, opts)
      data
    end

    # Get email campaign
    # @param storefront_oid 
    # @param email_campaign_uuid 
    # @param [Hash] opts the optional parameters
    # @return [Array<(EmailCampaignResponse, Fixnum, Hash)>] EmailCampaignResponse data, response status code and response headers
    def get_email_campaign_with_http_info(storefront_oid, email_campaign_uuid, opts = {})
      if @api_client.config.debugging
        @api_client.config.logger.debug 'Calling API: StorefrontApi.get_email_campaign ...'
      end
      # verify the required parameter 'storefront_oid' is set
      if @api_client.config.client_side_validation && storefront_oid.nil?
        fail ArgumentError, "Missing the required parameter 'storefront_oid' when calling StorefrontApi.get_email_campaign"
      end
      # verify the required parameter 'email_campaign_uuid' is set
      if @api_client.config.client_side_validation && email_campaign_uuid.nil?
        fail ArgumentError, "Missing the required parameter 'email_campaign_uuid' when calling StorefrontApi.get_email_campaign"
      end
      # resource path
      local_var_path = '/storefront/{storefront_oid}/email/campaigns/{email_campaign_uuid}'.sub('{' + 'storefront_oid' + '}', storefront_oid.to_s).sub('{' + 'email_campaign_uuid' + '}', email_campaign_uuid.to_s)

      # query parameters
      query_params = {}

      # header parameters
      header_params = {}
      header_params['X-UltraCart-Api-Version'] = @api_client.select_header_api_version()
      # HTTP header 'Accept' (if needed)
      header_params['Accept'] = @api_client.select_header_accept(['application/json'])
      # HTTP header 'Content-Type'
      header_params['Content-Type'] = @api_client.select_header_content_type(['application/json'])

      # form parameters
      form_params = {}

      # http body (model)
      post_body = nil
      auth_names = ['ultraCartBrowserApiKey', 'ultraCartOauth', 'ultraCartSimpleApiKey']
      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 => 'EmailCampaignResponse')
      if @api_client.config.debugging
        @api_client.config.logger.debug "API called: StorefrontApi#get_email_campaign\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
      end
      return data, status_code, headers
    end
    # Get email campaign folder
    # @param storefront_oid 
    # @param email_campaign_folder_uuid 
    # @param [Hash] opts the optional parameters
    # @return [EmailCampaignFolderResponse]
    def get_email_campaign_folder(storefront_oid, email_campaign_folder_uuid, opts = {})
      data, _status_code, _headers = get_email_campaign_folder_with_http_info(storefront_oid, email_campaign_folder_uuid, opts)
      data
    end

    # Get email campaign folder
    # @param storefront_oid 
    # @param email_campaign_folder_uuid 
    # @param [Hash] opts the optional parameters
    # @return [Array<(EmailCampaignFolderResponse, Fixnum, Hash)>] EmailCampaignFolderResponse data, response status code and response headers
    def get_email_campaign_folder_with_http_info(storefront_oid, email_campaign_folder_uuid, opts = {})
      if @api_client.config.debugging
        @api_client.config.logger.debug 'Calling API: StorefrontApi.get_email_campaign_folder ...'
      end
      # verify the required parameter 'storefront_oid' is set
      if @api_client.config.client_side_validation && storefront_oid.nil?
        fail ArgumentError, "Missing the required parameter 'storefront_oid' when calling StorefrontApi.get_email_campaign_folder"
      end
      # verify the required parameter 'email_campaign_folder_uuid' is set
      if @api_client.config.client_side_validation && email_campaign_folder_uuid.nil?
        fail ArgumentError, "Missing the required parameter 'email_campaign_folder_uuid' when calling StorefrontApi.get_email_campaign_folder"
      end
      # resource path
      local_var_path = '/storefront/{storefront_oid}/email/campaign_folders/{email_campaign_folder_uuid}'.sub('{' + 'storefront_oid' + '}', storefront_oid.to_s).sub('{' + 'email_campaign_folder_uuid' + '}', email_campaign_folder_uuid.to_s)

      # query parameters
      query_params = {}

      # header parameters
      header_params = {}
      header_params['X-UltraCart-Api-Version'] = @api_client.select_header_api_version()
      # HTTP header 'Accept' (if needed)
      header_params['Accept'] = @api_client.select_header_accept(['application/json'])
      # HTTP header 'Content-Type'
      header_params['Content-Type'] = @api_client.select_header_content_type(['application/json'])

      # form parameters
      form_params = {}

      # http body (model)
      post_body = nil
      auth_names = ['ultraCartBrowserApiKey', 'ultraCartOauth', 'ultraCartSimpleApiKey']
      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 => 'EmailCampaignFolderResponse')
      if @api_client.config.debugging
        @api_client.config.logger.debug "API called: StorefrontApi#get_email_campaign_folder\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
      end
      return data, status_code, headers
    end
    # Get email campaign folders
    # @param storefront_oid 
    # @param [Hash] opts the optional parameters
    # @return [EmailCampaignFoldersResponse]
    def get_email_campaign_folders(storefront_oid, opts = {})
      data, _status_code, _headers = get_email_campaign_folders_with_http_info(storefront_oid, opts)
      data
    end

    # Get email campaign folders
    # @param storefront_oid 
    # @param [Hash] opts the optional parameters
    # @return [Array<(EmailCampaignFoldersResponse, Fixnum, Hash)>] EmailCampaignFoldersResponse data, response status code and response headers
    def get_email_campaign_folders_with_http_info(storefront_oid, opts = {})
      if @api_client.config.debugging
        @api_client.config.logger.debug 'Calling API: StorefrontApi.get_email_campaign_folders ...'
      end
      # verify the required parameter 'storefront_oid' is set
      if @api_client.config.client_side_validation && storefront_oid.nil?
        fail ArgumentError, "Missing the required parameter 'storefront_oid' when calling StorefrontApi.get_email_campaign_folders"
      end
      # resource path
      local_var_path = '/storefront/{storefront_oid}/email/campaign_folders'.sub('{' + 'storefront_oid' + '}', storefront_oid.to_s)

      # query parameters
      query_params = {}

      # header parameters
      header_params = {}
      header_params['X-UltraCart-Api-Version'] = @api_client.select_header_api_version()
      # HTTP header 'Accept' (if needed)
      header_params['Accept'] = @api_client.select_header_accept(['application/json'])
      # HTTP header 'Content-Type'
      header_params['Content-Type'] = @api_client.select_header_content_type(['application/json'])

      # form parameters
      form_params = {}

      # http body (model)
      post_body = nil
      auth_names = ['ultraCartBrowserApiKey', 'ultraCartOauth', 'ultraCartSimpleApiKey']
      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 => 'EmailCampaignFoldersResponse')
      if @api_client.config.debugging
        @api_client.config.logger.debug "API called: StorefrontApi#get_email_campaign_folders\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
      end
      return data, status_code, headers
    end
    # Get email campaign screenshots
    # @param storefront_oid 
    # @param email_campaign_uuid 
    # @param [Hash] opts the optional parameters
    # @return [ScreenshotsResponse]
    def get_email_campaign_screenshots(storefront_oid, email_campaign_uuid, opts = {})
      data, _status_code, _headers = get_email_campaign_screenshots_with_http_info(storefront_oid, email_campaign_uuid, opts)
      data
    end

    # Get email campaign screenshots
    # @param storefront_oid 
    # @param email_campaign_uuid 
    # @param [Hash] opts the optional parameters
    # @return [Array<(ScreenshotsResponse, Fixnum, Hash)>] ScreenshotsResponse data, response status code and response headers
    def get_email_campaign_screenshots_with_http_info(storefront_oid, email_campaign_uuid, opts = {})
      if @api_client.config.debugging
        @api_client.config.logger.debug 'Calling API: StorefrontApi.get_email_campaign_screenshots ...'
      end
      # verify the required parameter 'storefront_oid' is set
      if @api_client.config.client_side_validation && storefront_oid.nil?
        fail ArgumentError, "Missing the required parameter 'storefront_oid' when calling StorefrontApi.get_email_campaign_screenshots"
      end
      # verify the required parameter 'email_campaign_uuid' is set
      if @api_client.config.client_side_validation && email_campaign_uuid.nil?
        fail ArgumentError, "Missing the required parameter 'email_campaign_uuid' when calling StorefrontApi.get_email_campaign_screenshots"
      end
      # resource path
      local_var_path = '/storefront/{storefront_oid}/email/campaigns/{email_campaign_uuid}/screenshots'.sub('{' + 'storefront_oid' + '}', storefront_oid.to_s).sub('{' + 'email_campaign_uuid' + '}', email_campaign_uuid.to_s)

      # query parameters
      query_params = {}

      # header parameters
      header_params = {}
      header_params['X-UltraCart-Api-Version'] = @api_client.select_header_api_version()
      # HTTP header 'Accept' (if needed)
      header_params['Accept'] = @api_client.select_header_accept(['application/json'])
      # HTTP header 'Content-Type'
      header_params['Content-Type'] = @api_client.select_header_content_type(['application/json'])

      # form parameters
      form_params = {}

      # http body (model)
      post_body = nil
      auth_names = ['ultraCartBrowserApiKey', 'ultraCartOauth', 'ultraCartSimpleApiKey']
      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 => 'ScreenshotsResponse')
      if @api_client.config.debugging
        @api_client.config.logger.debug "API called: StorefrontApi#get_email_campaign_screenshots\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
      end
      return data, status_code, headers
    end
    # Get email campaigns
    # @param storefront_oid 
    # @param [Hash] opts the optional parameters
    # @return [EmailCampaignsResponse]
    def get_email_campaigns(storefront_oid, opts = {})
      data, _status_code, _headers = get_email_campaigns_with_http_info(storefront_oid, opts)
      data
    end

    # Get email campaigns
    # @param storefront_oid 
    # @param [Hash] opts the optional parameters
    # @return [Array<(EmailCampaignsResponse, Fixnum, Hash)>] EmailCampaignsResponse data, response status code and response headers
    def get_email_campaigns_with_http_info(storefront_oid, opts = {})
      if @api_client.config.debugging
        @api_client.config.logger.debug 'Calling API: StorefrontApi.get_email_campaigns ...'
      end
      # verify the required parameter 'storefront_oid' is set
      if @api_client.config.client_side_validation && storefront_oid.nil?
        fail ArgumentError, "Missing the required parameter 'storefront_oid' when calling StorefrontApi.get_email_campaigns"
      end
      # resource path
      local_var_path = '/storefront/{storefront_oid}/email/campaigns'.sub('{' + 'storefront_oid' + '}', storefront_oid.to_s)

      # query parameters
      query_params = {}

      # header parameters
      header_params = {}
      header_params['X-UltraCart-Api-Version'] = @api_client.select_header_api_version()
      # HTTP header 'Accept' (if needed)
      header_params['Accept'] = @api_client.select_header_accept(['application/json'])
      # HTTP header 'Content-Type'
      header_params['Content-Type'] = @api_client.select_header_content_type(['application/json'])

      # form parameters
      form_params = {}

      # http body (model)
      post_body = nil
      auth_names = ['ultraCartBrowserApiKey', 'ultraCartOauth', 'ultraCartSimpleApiKey']
      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 => 'EmailCampaignsResponse')
      if @api_client.config.debugging
        @api_client.config.logger.debug "API called: StorefrontApi#get_email_campaigns\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
      end
      return data, status_code, headers
    end
    # Get email campaigns with stats
    # @param storefront_oid 
    # @param stat_days 
    # @param [Hash] opts the optional parameters
    # @return [EmailCampaignsResponse]
    def get_email_campaigns_with_stats(storefront_oid, stat_days, opts = {})
      data, _status_code, _headers = get_email_campaigns_with_stats_with_http_info(storefront_oid, stat_days, opts)
      data
    end

    # Get email campaigns with stats
    # @param storefront_oid 
    # @param stat_days 
    # @param [Hash] opts the optional parameters
    # @return [Array<(EmailCampaignsResponse, Fixnum, Hash)>] EmailCampaignsResponse data, response status code and response headers
    def get_email_campaigns_with_stats_with_http_info(storefront_oid, stat_days, opts = {})
      if @api_client.config.debugging
        @api_client.config.logger.debug 'Calling API: StorefrontApi.get_email_campaigns_with_stats ...'
      end
      # verify the required parameter 'storefront_oid' is set
      if @api_client.config.client_side_validation && storefront_oid.nil?
        fail ArgumentError, "Missing the required parameter 'storefront_oid' when calling StorefrontApi.get_email_campaigns_with_stats"
      end
      # verify the required parameter 'stat_days' is set
      if @api_client.config.client_side_validation && stat_days.nil?
        fail ArgumentError, "Missing the required parameter 'stat_days' when calling StorefrontApi.get_email_campaigns_with_stats"
      end
      # resource path
      local_var_path = '/storefront/{storefront_oid}/email/campaignsWithStats/{stat_days}'.sub('{' + 'storefront_oid' + '}', storefront_oid.to_s).sub('{' + 'stat_days' + '}', stat_days.to_s)

      # query parameters
      query_params = {}

      # header parameters
      header_params = {}
      header_params['X-UltraCart-Api-Version'] = @api_client.select_header_api_version()
      # HTTP header 'Accept' (if needed)
      header_params['Accept'] = @api_client.select_header_accept(['application/json'])
      # HTTP header 'Content-Type'
      header_params['Content-Type'] = @api_client.select_header_content_type(['application/json'])

      # form parameters
      form_params = {}

      # http body (model)
      post_body = nil
      auth_names = ['ultraCartBrowserApiKey', 'ultraCartOauth', 'ultraCartSimpleApiKey']
      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 => 'EmailCampaignsResponse')
      if @api_client.config.debugging
        @api_client.config.logger.debug "API called: StorefrontApi#get_email_campaigns_with_stats\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
      end
      return data, status_code, headers
    end
    # Get email commseq
    # @param storefront_oid 
    # @param commseq_uuid 
    # @param [Hash] opts the optional parameters
    # @return [EmailCommseqResponse]
    def get_email_commseq(storefront_oid, commseq_uuid, opts = {})
      data, _status_code, _headers = get_email_commseq_with_http_info(storefront_oid, commseq_uuid, opts)
      data
    end

    # Get email commseq
    # @param storefront_oid 
    # @param commseq_uuid 
    # @param [Hash] opts the optional parameters
    # @return [Array<(EmailCommseqResponse, Fixnum, Hash)>] EmailCommseqResponse data, response status code and response headers
    def get_email_commseq_with_http_info(storefront_oid, commseq_uuid, opts = {})
      if @api_client.config.debugging
        @api_client.config.logger.debug 'Calling API: StorefrontApi.get_email_commseq ...'
      end
      # verify the required parameter 'storefront_oid' is set
      if @api_client.config.client_side_validation && storefront_oid.nil?
        fail ArgumentError, "Missing the required parameter 'storefront_oid' when calling StorefrontApi.get_email_commseq"
      end
      # verify the required parameter 'commseq_uuid' is set
      if @api_client.config.client_side_validation && commseq_uuid.nil?
        fail ArgumentError, "Missing the required parameter 'commseq_uuid' when calling StorefrontApi.get_email_commseq"
      end
      # resource path
      local_var_path = '/storefront/{storefront_oid}/email/commseqs/{commseq_uuid}'.sub('{' + 'storefront_oid' + '}', storefront_oid.to_s).sub('{' + 'commseq_uuid' + '}', commseq_uuid.to_s)

      # query parameters
      query_params = {}

      # header parameters
      header_params = {}
      header_params['X-UltraCart-Api-Version'] = @api_client.select_header_api_version()
      # HTTP header 'Accept' (if needed)
      header_params['Accept'] = @api_client.select_header_accept(['application/json'])
      # HTTP header 'Content-Type'
      header_params['Content-Type'] = @api_client.select_header_content_type(['application/json'])

      # form parameters
      form_params = {}

      # http body (model)
      post_body = nil
      auth_names = ['ultraCartBrowserApiKey', 'ultraCartOauth', 'ultraCartSimpleApiKey']
      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 => 'EmailCommseqResponse')
      if @api_client.config.debugging
        @api_client.config.logger.debug "API called: StorefrontApi#get_email_commseq\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
      end
      return data, status_code, headers
    end
    # Get email communication sequence emails stats
    # @param storefront_oid 
    # @param commseq_uuid 
    # @param stats_request StatsRequest
    # @param [Hash] opts the optional parameters
    # @return [EmailStatSummaryResponse]
    def get_email_commseq_email_stats(storefront_oid, commseq_uuid, stats_request, opts = {})
      data, _status_code, _headers = get_email_commseq_email_stats_with_http_info(storefront_oid, commseq_uuid, stats_request, opts)
      data
    end

    # Get email communication sequence emails stats
    # @param storefront_oid 
    # @param commseq_uuid 
    # @param stats_request StatsRequest
    # @param [Hash] opts the optional parameters
    # @return [Array<(EmailStatSummaryResponse, Fixnum, Hash)>] EmailStatSummaryResponse data, response status code and response headers
    def get_email_commseq_email_stats_with_http_info(storefront_oid, commseq_uuid, stats_request, opts = {})
      if @api_client.config.debugging
        @api_client.config.logger.debug 'Calling API: StorefrontApi.get_email_commseq_email_stats ...'
      end
      # verify the required parameter 'storefront_oid' is set
      if @api_client.config.client_side_validation && storefront_oid.nil?
        fail ArgumentError, "Missing the required parameter 'storefront_oid' when calling StorefrontApi.get_email_commseq_email_stats"
      end
      # verify the required parameter 'commseq_uuid' is set
      if @api_client.config.client_side_validation && commseq_uuid.nil?
        fail ArgumentError, "Missing the required parameter 'commseq_uuid' when calling StorefrontApi.get_email_commseq_email_stats"
      end
      # verify the required parameter 'stats_request' is set
      if @api_client.config.client_side_validation && stats_request.nil?
        fail ArgumentError, "Missing the required parameter 'stats_request' when calling StorefrontApi.get_email_commseq_email_stats"
      end
      # resource path
      local_var_path = '/storefront/{storefront_oid}/email/commseqs/{commseq_uuid}/emailStats'.sub('{' + 'storefront_oid' + '}', storefront_oid.to_s).sub('{' + 'commseq_uuid' + '}', commseq_uuid.to_s)

      # query parameters
      query_params = {}

      # header parameters
      header_params = {}
      header_params['X-UltraCart-Api-Version'] = @api_client.select_header_api_version()
      # HTTP header 'Accept' (if needed)
      header_params['Accept'] = @api_client.select_header_accept(['application/json'])
      # HTTP header 'Content-Type'
      header_params['Content-Type'] = @api_client.select_header_content_type(['application/json'])

      # form parameters
      form_params = {}

      # http body (model)
      post_body = @api_client.object_to_http_body(stats_request)
      auth_names = ['ultraCartBrowserApiKey', 'ultraCartOauth', 'ultraCartSimpleApiKey']
      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 => 'EmailStatSummaryResponse')
      if @api_client.config.debugging
        @api_client.config.logger.debug "API called: StorefrontApi#get_email_commseq_email_stats\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
      end
      return data, status_code, headers
    end
    # Get email communication sequence postcard stats
    # @param storefront_oid 
    # @param commseq_uuid 
    # @param stats_request StatsRequest
    # @param [Hash] opts the optional parameters
    # @return [EmailStatPostcardSummaryResponse]
    def get_email_commseq_postcard_stats(storefront_oid, commseq_uuid, stats_request, opts = {})
      data, _status_code, _headers = get_email_commseq_postcard_stats_with_http_info(storefront_oid, commseq_uuid, stats_request, opts)
      data
    end

    # Get email communication sequence postcard stats
    # @param storefront_oid 
    # @param commseq_uuid 
    # @param stats_request StatsRequest
    # @param [Hash] opts the optional parameters
    # @return [Array<(EmailStatPostcardSummaryResponse, Fixnum, Hash)>] EmailStatPostcardSummaryResponse data, response status code and response headers
    def get_email_commseq_postcard_stats_with_http_info(storefront_oid, commseq_uuid, stats_request, opts = {})
      if @api_client.config.debugging
        @api_client.config.logger.debug 'Calling API: StorefrontApi.get_email_commseq_postcard_stats ...'
      end
      # verify the required parameter 'storefront_oid' is set
      if @api_client.config.client_side_validation && storefront_oid.nil?
        fail ArgumentError, "Missing the required parameter 'storefront_oid' when calling StorefrontApi.get_email_commseq_postcard_stats"
      end
      # verify the required parameter 'commseq_uuid' is set
      if @api_client.config.client_side_validation && commseq_uuid.nil?
        fail ArgumentError, "Missing the required parameter 'commseq_uuid' when calling StorefrontApi.get_email_commseq_postcard_stats"
      end
      # verify the required parameter 'stats_request' is set
      if @api_client.config.client_side_validation && stats_request.nil?
        fail ArgumentError, "Missing the required parameter 'stats_request' when calling StorefrontApi.get_email_commseq_postcard_stats"
      end
      # resource path
      local_var_path = '/storefront/{storefront_oid}/email/commseqs/{commseq_uuid}/postcardStats'.sub('{' + 'storefront_oid' + '}', storefront_oid.to_s).sub('{' + 'commseq_uuid' + '}', commseq_uuid.to_s)

      # query parameters
      query_params = {}

      # header parameters
      header_params = {}
      header_params['X-UltraCart-Api-Version'] = @api_client.select_header_api_version()
      # HTTP header 'Accept' (if needed)
      header_params['Accept'] = @api_client.select_header_accept(['application/json'])
      # HTTP header 'Content-Type'
      header_params['Content-Type'] = @api_client.select_header_content_type(['application/json'])

      # form parameters
      form_params = {}

      # http body (model)
      post_body = @api_client.object_to_http_body(stats_request)
      auth_names = ['ultraCartBrowserApiKey', 'ultraCartOauth', 'ultraCartSimpleApiKey']
      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 => 'EmailStatPostcardSummaryResponse')
      if @api_client.config.debugging
        @api_client.config.logger.debug "API called: StorefrontApi#get_email_commseq_postcard_stats\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
      end
      return data, status_code, headers
    end
    # Get communication sequence stats overall
    # @param storefront_oid 
    # @param commseq_uuid 
    # @param [Hash] opts the optional parameters
    # @return [EmailCommseqStatResponse]
    def get_email_commseq_stat_overall(storefront_oid, commseq_uuid, opts = {})
      data, _status_code, _headers = get_email_commseq_stat_overall_with_http_info(storefront_oid, commseq_uuid, opts)
      data
    end

    # Get communication sequence stats overall
    # @param storefront_oid 
    # @param commseq_uuid 
    # @param [Hash] opts the optional parameters
    # @return [Array<(EmailCommseqStatResponse, Fixnum, Hash)>] EmailCommseqStatResponse data, response status code and response headers
    def get_email_commseq_stat_overall_with_http_info(storefront_oid, commseq_uuid, opts = {})
      if @api_client.config.debugging
        @api_client.config.logger.debug 'Calling API: StorefrontApi.get_email_commseq_stat_overall ...'
      end
      # verify the required parameter 'storefront_oid' is set
      if @api_client.config.client_side_validation && storefront_oid.nil?
        fail ArgumentError, "Missing the required parameter 'storefront_oid' when calling StorefrontApi.get_email_commseq_stat_overall"
      end
      # verify the required parameter 'commseq_uuid' is set
      if @api_client.config.client_side_validation && commseq_uuid.nil?
        fail ArgumentError, "Missing the required parameter 'commseq_uuid' when calling StorefrontApi.get_email_commseq_stat_overall"
      end
      # resource path
      local_var_path = '/storefront/{storefront_oid}/email/commseqs/{commseq_uuid}/stat'.sub('{' + 'storefront_oid' + '}', storefront_oid.to_s).sub('{' + 'commseq_uuid' + '}', commseq_uuid.to_s)

      # query parameters
      query_params = {}

      # header parameters
      header_params = {}
      header_params['X-UltraCart-Api-Version'] = @api_client.select_header_api_version()
      # HTTP header 'Accept' (if needed)
      header_params['Accept'] = @api_client.select_header_accept(['application/json'])
      # HTTP header 'Content-Type'
      header_params['Content-Type'] = @api_client.select_header_content_type(['application/json'])

      # form parameters
      form_params = {}

      # http body (model)
      post_body = nil
      auth_names = ['ultraCartBrowserApiKey', 'ultraCartOauth', 'ultraCartSimpleApiKey']
      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 => 'EmailCommseqStatResponse')
      if @api_client.config.debugging
        @api_client.config.logger.debug "API called: StorefrontApi#get_email_commseq_stat_overall\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
      end
      return data, status_code, headers
    end
    # Get email communication sequence step stats
    # @param storefront_oid 
    # @param commseq_uuid 
    # @param stats_request StatsRequest
    # @param [Hash] opts the optional parameters
    # @return [EmailStepStatResponse]
    def get_email_commseq_step_stats(storefront_oid, commseq_uuid, stats_request, opts = {})
      data, _status_code, _headers = get_email_commseq_step_stats_with_http_info(storefront_oid, commseq_uuid, stats_request, opts)
      data
    end

    # Get email communication sequence step stats
    # @param storefront_oid 
    # @param commseq_uuid 
    # @param stats_request StatsRequest
    # @param [Hash] opts the optional parameters
    # @return [Array<(EmailStepStatResponse, Fixnum, Hash)>] EmailStepStatResponse data, response status code and response headers
    def get_email_commseq_step_stats_with_http_info(storefront_oid, commseq_uuid, stats_request, opts = {})
      if @api_client.config.debugging
        @api_client.config.logger.debug 'Calling API: StorefrontApi.get_email_commseq_step_stats ...'
      end
      # verify the required parameter 'storefront_oid' is set
      if @api_client.config.client_side_validation && storefront_oid.nil?
        fail ArgumentError, "Missing the required parameter 'storefront_oid' when calling StorefrontApi.get_email_commseq_step_stats"
      end
      # verify the required parameter 'commseq_uuid' is set
      if @api_client.config.client_side_validation && commseq_uuid.nil?
        fail ArgumentError, "Missing the required parameter 'commseq_uuid' when calling StorefrontApi.get_email_commseq_step_stats"
      end
      # verify the required parameter 'stats_request' is set
      if @api_client.config.client_side_validation && stats_request.nil?
        fail ArgumentError, "Missing the required parameter 'stats_request' when calling StorefrontApi.get_email_commseq_step_stats"
      end
      # resource path
      local_var_path = '/storefront/{storefront_oid}/email/commseqs/{commseq_uuid}/stepStats'.sub('{' + 'storefront_oid' + '}', storefront_oid.to_s).sub('{' + 'commseq_uuid' + '}', commseq_uuid.to_s)

      # query parameters
      query_params = {}

      # header parameters
      header_params = {}
      header_params['X-UltraCart-Api-Version'] = @api_client.select_header_api_version()
      # HTTP header 'Accept' (if needed)
      header_params['Accept'] = @api_client.select_header_accept(['application/json'])
      # HTTP header 'Content-Type'
      header_params['Content-Type'] = @api_client.select_header_content_type(['application/json'])

      # form parameters
      form_params = {}

      # http body (model)
      post_body = @api_client.object_to_http_body(stats_request)
      auth_names = ['ultraCartBrowserApiKey', 'ultraCartOauth', 'ultraCartSimpleApiKey']
      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 => 'EmailStepStatResponse')
      if @api_client.config.debugging
        @api_client.config.logger.debug "API called: StorefrontApi#get_email_commseq_step_stats\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
      end
      return data, status_code, headers
    end
    # Get email communication sequence customers waiting at each requested step
    # @param storefront_oid 
    # @param commseq_uuid 
    # @param waiting_request WaitingRequest
    # @param [Hash] opts the optional parameters
    # @return [EmailStepWaitingResponse]
    def get_email_commseq_step_waiting(storefront_oid, commseq_uuid, waiting_request, opts = {})
      data, _status_code, _headers = get_email_commseq_step_waiting_with_http_info(storefront_oid, commseq_uuid, waiting_request, opts)
      data
    end

    # Get email communication sequence customers waiting at each requested step
    # @param storefront_oid 
    # @param commseq_uuid 
    # @param waiting_request WaitingRequest
    # @param [Hash] opts the optional parameters
    # @return [Array<(EmailStepWaitingResponse, Fixnum, Hash)>] EmailStepWaitingResponse data, response status code and response headers
    def get_email_commseq_step_waiting_with_http_info(storefront_oid, commseq_uuid, waiting_request, opts = {})
      if @api_client.config.debugging
        @api_client.config.logger.debug 'Calling API: StorefrontApi.get_email_commseq_step_waiting ...'
      end
      # verify the required parameter 'storefront_oid' is set
      if @api_client.config.client_side_validation && storefront_oid.nil?
        fail ArgumentError, "Missing the required parameter 'storefront_oid' when calling StorefrontApi.get_email_commseq_step_waiting"
      end
      # verify the required parameter 'commseq_uuid' is set
      if @api_client.config.client_side_validation && commseq_uuid.nil?
        fail ArgumentError, "Missing the required parameter 'commseq_uuid' when calling StorefrontApi.get_email_commseq_step_waiting"
      end
      # verify the required parameter 'waiting_request' is set
      if @api_client.config.client_side_validation && waiting_request.nil?
        fail ArgumentError, "Missing the required parameter 'waiting_request' when calling StorefrontApi.get_email_commseq_step_waiting"
      end
      # resource path
      local_var_path = '/storefront/{storefront_oid}/email/commseqs/{commseq_uuid}/waiting'.sub('{' + 'storefront_oid' + '}', storefront_oid.to_s).sub('{' + 'commseq_uuid' + '}', commseq_uuid.to_s)

      # query parameters
      query_params = {}

      # header parameters
      header_params = {}
      header_params['X-UltraCart-Api-Version'] = @api_client.select_header_api_version()
      # HTTP header 'Accept' (if needed)
      header_params['Accept'] = @api_client.select_header_accept(['application/json'])
      # HTTP header 'Content-Type'
      header_params['Content-Type'] = @api_client.select_header_content_type(['application/json'])

      # form parameters
      form_params = {}

      # http body (model)
      post_body = @api_client.object_to_http_body(waiting_request)
      auth_names = ['ultraCartBrowserApiKey', 'ultraCartOauth', 'ultraCartSimpleApiKey']
      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 => 'EmailStepWaitingResponse')
      if @api_client.config.debugging
        @api_client.config.logger.debug "API called: StorefrontApi#get_email_commseq_step_waiting\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
      end
      return data, status_code, headers
    end
    # Get email webhook editor values
    # @param storefront_oid 
    # @param commseq_uuid 
    # @param [Hash] opts the optional parameters
    # @return [EmailWebhookEditorValuesResponse]
    def get_email_commseq_webhook_editor_values(storefront_oid, commseq_uuid, opts = {})
      data, _status_code, _headers = get_email_commseq_webhook_editor_values_with_http_info(storefront_oid, commseq_uuid, opts)
      data
    end

    # Get email webhook editor values
    # @param storefront_oid 
    # @param commseq_uuid 
    # @param [Hash] opts the optional parameters
    # @return [Array<(EmailWebhookEditorValuesResponse, Fixnum, Hash)>] EmailWebhookEditorValuesResponse data, response status code and response headers
    def get_email_commseq_webhook_editor_values_with_http_info(storefront_oid, commseq_uuid, opts = {})
      if @api_client.config.debugging
        @api_client.config.logger.debug 'Calling API: StorefrontApi.get_email_commseq_webhook_editor_values ...'
      end
      # verify the required parameter 'storefront_oid' is set
      if @api_client.config.client_side_validation && storefront_oid.nil?
        fail ArgumentError, "Missing the required parameter 'storefront_oid' when calling StorefrontApi.get_email_commseq_webhook_editor_values"
      end
      # verify the required parameter 'commseq_uuid' is set
      if @api_client.config.client_side_validation && commseq_uuid.nil?
        fail ArgumentError, "Missing the required parameter 'commseq_uuid' when calling StorefrontApi.get_email_commseq_webhook_editor_values"
      end
      # resource path
      local_var_path = '/storefront/{storefront_oid}/email/commseqs/{commseq_uuid}/webhookEditorValues'.sub('{' + 'storefront_oid' + '}', storefront_oid.to_s).sub('{' + 'commseq_uuid' + '}', commseq_uuid.to_s)

      # query parameters
      query_params = {}

      # header parameters
      header_params = {}
      header_params['X-UltraCart-Api-Version'] = @api_client.select_header_api_version()
      # HTTP header 'Accept' (if needed)
      header_params['Accept'] = @api_client.select_header_accept(['application/json'])
      # HTTP header 'Content-Type'
      header_params['Content-Type'] = @api_client.select_header_content_type(['application/json'])

      # form parameters
      form_params = {}

      # http body (model)
      post_body = nil
      auth_names = ['ultraCartBrowserApiKey', 'ultraCartOauth', 'ultraCartSimpleApiKey']
      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 => 'EmailWebhookEditorValuesResponse')
      if @api_client.config.debugging
        @api_client.config.logger.debug "API called: StorefrontApi#get_email_commseq_webhook_editor_values\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
      end
      return data, status_code, headers
    end
    # Get email commseqs
    # @param storefront_oid 
    # @param [Hash] opts the optional parameters
    # @return [EmailCommseqsResponse]
    def get_email_commseqs(storefront_oid, opts = {})
      data, _status_code, _headers = get_email_commseqs_with_http_info(storefront_oid, opts)
      data
    end

    # Get email commseqs
    # @param storefront_oid 
    # @param [Hash] opts the optional parameters
    # @return [Array<(EmailCommseqsResponse, Fixnum, Hash)>] EmailCommseqsResponse data, response status code and response headers
    def get_email_commseqs_with_http_info(storefront_oid, opts = {})
      if @api_client.config.debugging
        @api_client.config.logger.debug 'Calling API: StorefrontApi.get_email_commseqs ...'
      end
      # verify the required parameter 'storefront_oid' is set
      if @api_client.config.client_side_validation && storefront_oid.nil?
        fail ArgumentError, "Missing the required parameter 'storefront_oid' when calling StorefrontApi.get_email_commseqs"
      end
      # resource path
      local_var_path = '/storefront/{storefront_oid}/email/commseqs'.sub('{' + 'storefront_oid' + '}', storefront_oid.to_s)

      # query parameters
      query_params = {}

      # header parameters
      header_params = {}
      header_params['X-UltraCart-Api-Version'] = @api_client.select_header_api_version()
      # HTTP header 'Accept' (if needed)
      header_params['Accept'] = @api_client.select_header_accept(['application/json'])
      # HTTP header 'Content-Type'
      header_params['Content-Type'] = @api_client.select_header_content_type(['application/json'])

      # form parameters
      form_params = {}

      # http body (model)
      post_body = nil
      auth_names = ['ultraCartBrowserApiKey', 'ultraCartOauth', 'ultraCartSimpleApiKey']
      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 => 'EmailCommseqsResponse')
      if @api_client.config.debugging
        @api_client.config.logger.debug "API called: StorefrontApi#get_email_commseqs\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
      end
      return data, status_code, headers
    end
    # Get customers editor URL
    # @param storefront_oid 
    # @param email_customer_uuid 
    # @param [Hash] opts the optional parameters
    # @return [EmailCustomerEditorUrlResponse]
    def get_email_customer_editor_url(storefront_oid, email_customer_uuid, opts = {})
      data, _status_code, _headers = get_email_customer_editor_url_with_http_info(storefront_oid, email_customer_uuid, opts)
      data
    end

    # Get customers editor URL
    # @param storefront_oid 
    # @param email_customer_uuid 
    # @param [Hash] opts the optional parameters
    # @return [Array<(EmailCustomerEditorUrlResponse, Fixnum, Hash)>] EmailCustomerEditorUrlResponse data, response status code and response headers
    def get_email_customer_editor_url_with_http_info(storefront_oid, email_customer_uuid, opts = {})
      if @api_client.config.debugging
        @api_client.config.logger.debug 'Calling API: StorefrontApi.get_email_customer_editor_url ...'
      end
      # verify the required parameter 'storefront_oid' is set
      if @api_client.config.client_side_validation && storefront_oid.nil?
        fail ArgumentError, "Missing the required parameter 'storefront_oid' when calling StorefrontApi.get_email_customer_editor_url"
      end
      # verify the required parameter 'email_customer_uuid' is set
      if @api_client.config.client_side_validation && email_customer_uuid.nil?
        fail ArgumentError, "Missing the required parameter 'email_customer_uuid' when calling StorefrontApi.get_email_customer_editor_url"
      end
      # resource path
      local_var_path = '/storefront/{storefront_oid}/email/customers/{email_customer_uuid}/editor_url'.sub('{' + 'storefront_oid' + '}', storefront_oid.to_s).sub('{' + 'email_customer_uuid' + '}', email_customer_uuid.to_s)

      # query parameters
      query_params = {}

      # header parameters
      header_params = {}
      header_params['X-UltraCart-Api-Version'] = @api_client.select_header_api_version()
      # HTTP header 'Accept' (if needed)
      header_params['Accept'] = @api_client.select_header_accept(['application/json'])
      # HTTP header 'Content-Type'
      header_params['Content-Type'] = @api_client.select_header_content_type(['application/json'])

      # form parameters
      form_params = {}

      # http body (model)
      post_body = nil
      auth_names = ['ultraCartBrowserApiKey', 'ultraCartOauth', 'ultraCartSimpleApiKey']
      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 => 'EmailCustomerEditorUrlResponse')
      if @api_client.config.debugging
        @api_client.config.logger.debug "API called: StorefrontApi#get_email_customer_editor_url\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
      end
      return data, status_code, headers
    end
    # Get email customers
    # @param storefront_oid 
    # @param [Hash] opts the optional parameters
    # @option opts [Integer] :page_number 
    # @option opts [Integer] :page_size 
    # @option opts [String] :search_email_prefix 
    # @return [EmailCustomersResponse]
    def get_email_customers(storefront_oid, opts = {})
      data, _status_code, _headers = get_email_customers_with_http_info(storefront_oid, opts)
      data
    end

    # Get email customers
    # @param storefront_oid 
    # @param [Hash] opts the optional parameters
    # @option opts [Integer] :page_number 
    # @option opts [Integer] :page_size 
    # @option opts [String] :search_email_prefix 
    # @return [Array<(EmailCustomersResponse, Fixnum, Hash)>] EmailCustomersResponse data, response status code and response headers
    def get_email_customers_with_http_info(storefront_oid, opts = {})
      if @api_client.config.debugging
        @api_client.config.logger.debug 'Calling API: StorefrontApi.get_email_customers ...'
      end
      # verify the required parameter 'storefront_oid' is set
      if @api_client.config.client_side_validation && storefront_oid.nil?
        fail ArgumentError, "Missing the required parameter 'storefront_oid' when calling StorefrontApi.get_email_customers"
      end
      # resource path
      local_var_path = '/storefront/{storefront_oid}/email/customers'.sub('{' + 'storefront_oid' + '}', storefront_oid.to_s)

      # query parameters
      query_params = {}
      query_params[:'pageNumber'] = opts[:'page_number'] if !opts[:'page_number'].nil?
      query_params[:'pageSize'] = opts[:'page_size'] if !opts[:'page_size'].nil?
      query_params[:'searchEmailPrefix'] = opts[:'search_email_prefix'] if !opts[:'search_email_prefix'].nil?

      # header parameters
      header_params = {}
      header_params['X-UltraCart-Api-Version'] = @api_client.select_header_api_version()
      # HTTP header 'Accept' (if needed)
      header_params['Accept'] = @api_client.select_header_accept(['application/json'])
      # HTTP header 'Content-Type'
      header_params['Content-Type'] = @api_client.select_header_content_type(['application/json'])

      # form parameters
      form_params = {}

      # http body (model)
      post_body = nil
      auth_names = ['ultraCartBrowserApiKey', 'ultraCartOauth', 'ultraCartSimpleApiKey']
      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 => 'EmailCustomersResponse')
      if @api_client.config.debugging
        @api_client.config.logger.debug "API called: StorefrontApi#get_email_customers\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
      end
      return data, status_code, headers
    end
    # Get email dashboard activity
    # @param storefront_oid 
    # @param [Hash] opts the optional parameters
    # @option opts [Integer] :last_records 
    # @return [EmailDashboardActivityResponse]
    def get_email_dashboard_activity(storefront_oid, opts = {})
      data, _status_code, _headers = get_email_dashboard_activity_with_http_info(storefront_oid, opts)
      data
    end

    # Get email dashboard activity
    # @param storefront_oid 
    # @param [Hash] opts the optional parameters
    # @option opts [Integer] :last_records 
    # @return [Array<(EmailDashboardActivityResponse, Fixnum, Hash)>] EmailDashboardActivityResponse data, response status code and response headers
    def get_email_dashboard_activity_with_http_info(storefront_oid, opts = {})
      if @api_client.config.debugging
        @api_client.config.logger.debug 'Calling API: StorefrontApi.get_email_dashboard_activity ...'
      end
      # verify the required parameter 'storefront_oid' is set
      if @api_client.config.client_side_validation && storefront_oid.nil?
        fail ArgumentError, "Missing the required parameter 'storefront_oid' when calling StorefrontApi.get_email_dashboard_activity"
      end
      # resource path
      local_var_path = '/storefront/{storefront_oid}/email/dashboard_activity'.sub('{' + 'storefront_oid' + '}', storefront_oid.to_s)

      # query parameters
      query_params = {}
      query_params[:'last_records'] = opts[:'last_records'] if !opts[:'last_records'].nil?

      # header parameters
      header_params = {}
      header_params['X-UltraCart-Api-Version'] = @api_client.select_header_api_version()
      # HTTP header 'Accept' (if needed)
      header_params['Accept'] = @api_client.select_header_accept(['application/json'])
      # HTTP header 'Content-Type'
      header_params['Content-Type'] = @api_client.select_header_content_type(['application/json'])

      # form parameters
      form_params = {}

      # http body (model)
      post_body = nil
      auth_names = ['ultraCartBrowserApiKey', 'ultraCartOauth', 'ultraCartSimpleApiKey']
      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 => 'EmailDashboardActivityResponse')
      if @api_client.config.debugging
        @api_client.config.logger.debug "API called: StorefrontApi#get_email_dashboard_activity\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
      end
      return data, status_code, headers
    end
    # Get dashboard stats
    # @param storefront_oid 
    # @param [Hash] opts the optional parameters
    # @option opts [Integer] :days 
    # @return [EmailDashboardStatsResponse]
    def get_email_dashboard_stats(storefront_oid, opts = {})
      data, _status_code, _headers = get_email_dashboard_stats_with_http_info(storefront_oid, opts)
      data
    end

    # Get dashboard stats
    # @param storefront_oid 
    # @param [Hash] opts the optional parameters
    # @option opts [Integer] :days 
    # @return [Array<(EmailDashboardStatsResponse, Fixnum, Hash)>] EmailDashboardStatsResponse data, response status code and response headers
    def get_email_dashboard_stats_with_http_info(storefront_oid, opts = {})
      if @api_client.config.debugging
        @api_client.config.logger.debug 'Calling API: StorefrontApi.get_email_dashboard_stats ...'
      end
      # verify the required parameter 'storefront_oid' is set
      if @api_client.config.client_side_validation && storefront_oid.nil?
        fail ArgumentError, "Missing the required parameter 'storefront_oid' when calling StorefrontApi.get_email_dashboard_stats"
      end
      # resource path
      local_var_path = '/storefront/{storefront_oid}/email/dashboard_stats'.sub('{' + 'storefront_oid' + '}', storefront_oid.to_s)

      # query parameters
      query_params = {}
      query_params[:'days'] = opts[:'days'] if !opts[:'days'].nil?

      # header parameters
      header_params = {}
      header_params['X-UltraCart-Api-Version'] = @api_client.select_header_api_version()
      # HTTP header 'Accept' (if needed)
      header_params['Accept'] = @api_client.select_header_accept(['application/json'])
      # HTTP header 'Content-Type'
      header_params['Content-Type'] = @api_client.select_header_content_type(['application/json'])

      # form parameters
      form_params = {}

      # http body (model)
      post_body = nil
      auth_names = ['ultraCartBrowserApiKey', 'ultraCartOauth', 'ultraCartSimpleApiKey']
      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 => 'EmailDashboardStatsResponse')
      if @api_client.config.debugging
        @api_client.config.logger.debug "API called: StorefrontApi#get_email_dashboard_stats\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
      end
      return data, status_code, headers
    end
    # Get email dispatch logs
    # @param storefront_oid 
    # @param commseq_uuid 
    # @param commseq_step_uuid 
    # @param [Hash] opts the optional parameters
    # @return [EmailCommseqStepLogsResponse]
    def get_email_dispatch_logs(storefront_oid, commseq_uuid, commseq_step_uuid, opts = {})
      data, _status_code, _headers = get_email_dispatch_logs_with_http_info(storefront_oid, commseq_uuid, commseq_step_uuid, opts)
      data
    end

    # Get email dispatch logs
    # @param storefront_oid 
    # @param commseq_uuid 
    # @param commseq_step_uuid 
    # @param [Hash] opts the optional parameters
    # @return [Array<(EmailCommseqStepLogsResponse, Fixnum, Hash)>] EmailCommseqStepLogsResponse data, response status code and response headers
    def get_email_dispatch_logs_with_http_info(storefront_oid, commseq_uuid, commseq_step_uuid, opts = {})
      if @api_client.config.debugging
        @api_client.config.logger.debug 'Calling API: StorefrontApi.get_email_dispatch_logs ...'
      end
      # verify the required parameter 'storefront_oid' is set
      if @api_client.config.client_side_validation && storefront_oid.nil?
        fail ArgumentError, "Missing the required parameter 'storefront_oid' when calling StorefrontApi.get_email_dispatch_logs"
      end
      # verify the required parameter 'commseq_uuid' is set
      if @api_client.config.client_side_validation && commseq_uuid.nil?
        fail ArgumentError, "Missing the required parameter 'commseq_uuid' when calling StorefrontApi.get_email_dispatch_logs"
      end
      # verify the required parameter 'commseq_step_uuid' is set
      if @api_client.config.client_side_validation && commseq_step_uuid.nil?
        fail ArgumentError, "Missing the required parameter 'commseq_step_uuid' when calling StorefrontApi.get_email_dispatch_logs"
      end
      # resource path
      local_var_path = '/storefront/{storefront_oid}/email/commseqs/{commseq_uuid}/steps/{commseq_step_uuid}/logs'.sub('{' + 'storefront_oid' + '}', storefront_oid.to_s).sub('{' + 'commseq_uuid' + '}', commseq_uuid.to_s).sub('{' + 'commseq_step_uuid' + '}', commseq_step_uuid.to_s)

      # query parameters
      query_params = {}

      # header parameters
      header_params = {}
      header_params['X-UltraCart-Api-Version'] = @api_client.select_header_api_version()
      # HTTP header 'Accept' (if needed)
      header_params['Accept'] = @api_client.select_header_accept(['application/json'])
      # HTTP header 'Content-Type'
      header_params['Content-Type'] = @api_client.select_header_content_type(['application/json'])

      # form parameters
      form_params = {}

      # http body (model)
      post_body = nil
      auth_names = ['ultraCartBrowserApiKey', 'ultraCartOauth', 'ultraCartSimpleApiKey']
      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 => 'EmailCommseqStepLogsResponse')
      if @api_client.config.debugging
        @api_client.config.logger.debug "API called: StorefrontApi#get_email_dispatch_logs\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
      end
      return data, status_code, headers
    end
    # Get email email
    # @param storefront_oid 
    # @param commseq_email_uuid 
    # @param [Hash] opts the optional parameters
    # @return [EmailCommseqEmailResponse]
    def get_email_email(storefront_oid, commseq_email_uuid, opts = {})
      data, _status_code, _headers = get_email_email_with_http_info(storefront_oid, commseq_email_uuid, opts)
      data
    end

    # Get email email
    # @param storefront_oid 
    # @param commseq_email_uuid 
    # @param [Hash] opts the optional parameters
    # @return [Array<(EmailCommseqEmailResponse, Fixnum, Hash)>] EmailCommseqEmailResponse data, response status code and response headers
    def get_email_email_with_http_info(storefront_oid, commseq_email_uuid, opts = {})
      if @api_client.config.debugging
        @api_client.config.logger.debug 'Calling API: StorefrontApi.get_email_email ...'
      end
      # verify the required parameter 'storefront_oid' is set
      if @api_client.config.client_side_validation && storefront_oid.nil?
        fail ArgumentError, "Missing the required parameter 'storefront_oid' when calling StorefrontApi.get_email_email"
      end
      # verify the required parameter 'commseq_email_uuid' is set
      if @api_client.config.client_side_validation && commseq_email_uuid.nil?
        fail ArgumentError, "Missing the required parameter 'commseq_email_uuid' when calling StorefrontApi.get_email_email"
      end
      # resource path
      local_var_path = '/storefront/{storefront_oid}/email/emails/{commseq_email_uuid}'.sub('{' + 'storefront_oid' + '}', storefront_oid.to_s).sub('{' + 'commseq_email_uuid' + '}', commseq_email_uuid.to_s)

      # query parameters
      query_params = {}

      # header parameters
      header_params = {}
      header_params['X-UltraCart-Api-Version'] = @api_client.select_header_api_version()
      # HTTP header 'Accept' (if needed)
      header_params['Accept'] = @api_client.select_header_accept(['application/json'])
      # HTTP header 'Content-Type'
      header_params['Content-Type'] = @api_client.select_header_content_type(['application/json'])

      # form parameters
      form_params = {}

      # http body (model)
      post_body = nil
      auth_names = ['ultraCartBrowserApiKey', 'ultraCartOauth', 'ultraCartSimpleApiKey']
      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 => 'EmailCommseqEmailResponse')
      if @api_client.config.debugging
        @api_client.config.logger.debug "API called: StorefrontApi#get_email_email\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
      end
      return data, status_code, headers
    end
    # Get email email clicks
    # @param storefront_oid 
    # @param commseq_uuid 
    # @param commseq_step_uuid 
    # @param commseq_email_uuid 
    # @param [Hash] opts the optional parameters
    # @option opts [Integer] :days 
    # @return [EmailClicksResponse]
    def get_email_email_clicks(storefront_oid, commseq_uuid, commseq_step_uuid, commseq_email_uuid, opts = {})
      data, _status_code, _headers = get_email_email_clicks_with_http_info(storefront_oid, commseq_uuid, commseq_step_uuid, commseq_email_uuid, opts)
      data
    end

    # Get email email clicks
    # @param storefront_oid 
    # @param commseq_uuid 
    # @param commseq_step_uuid 
    # @param commseq_email_uuid 
    # @param [Hash] opts the optional parameters
    # @option opts [Integer] :days 
    # @return [Array<(EmailClicksResponse, Fixnum, Hash)>] EmailClicksResponse data, response status code and response headers
    def get_email_email_clicks_with_http_info(storefront_oid, commseq_uuid, commseq_step_uuid, commseq_email_uuid, opts = {})
      if @api_client.config.debugging
        @api_client.config.logger.debug 'Calling API: StorefrontApi.get_email_email_clicks ...'
      end
      # verify the required parameter 'storefront_oid' is set
      if @api_client.config.client_side_validation && storefront_oid.nil?
        fail ArgumentError, "Missing the required parameter 'storefront_oid' when calling StorefrontApi.get_email_email_clicks"
      end
      # verify the required parameter 'commseq_uuid' is set
      if @api_client.config.client_side_validation && commseq_uuid.nil?
        fail ArgumentError, "Missing the required parameter 'commseq_uuid' when calling StorefrontApi.get_email_email_clicks"
      end
      # verify the required parameter 'commseq_step_uuid' is set
      if @api_client.config.client_side_validation && commseq_step_uuid.nil?
        fail ArgumentError, "Missing the required parameter 'commseq_step_uuid' when calling StorefrontApi.get_email_email_clicks"
      end
      # verify the required parameter 'commseq_email_uuid' is set
      if @api_client.config.client_side_validation && commseq_email_uuid.nil?
        fail ArgumentError, "Missing the required parameter 'commseq_email_uuid' when calling StorefrontApi.get_email_email_clicks"
      end
      # resource path
      local_var_path = '/storefront/{storefront_oid}/email/commseqs/{commseq_uuid}/steps/{commseq_step_uuid}/emails/{commseq_email_uuid}/clicks'.sub('{' + 'storefront_oid' + '}', storefront_oid.to_s).sub('{' + 'commseq_uuid' + '}', commseq_uuid.to_s).sub('{' + 'commseq_step_uuid' + '}', commseq_step_uuid.to_s).sub('{' + 'commseq_email_uuid' + '}', commseq_email_uuid.to_s)

      # query parameters
      query_params = {}
      query_params[:'days'] = opts[:'days'] if !opts[:'days'].nil?

      # header parameters
      header_params = {}
      header_params['X-UltraCart-Api-Version'] = @api_client.select_header_api_version()
      # HTTP header 'Accept' (if needed)
      header_params['Accept'] = @api_client.select_header_accept(['application/json'])
      # HTTP header 'Content-Type'
      header_params['Content-Type'] = @api_client.select_header_content_type(['application/json'])

      # form parameters
      form_params = {}

      # http body (model)
      post_body = nil
      auth_names = ['ultraCartBrowserApiKey', 'ultraCartOauth', 'ultraCartSimpleApiKey']
      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 => 'EmailClicksResponse')
      if @api_client.config.debugging
        @api_client.config.logger.debug "API called: StorefrontApi#get_email_email_clicks\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
      end
      return data, status_code, headers
    end
    # Get email order customer editor url
    # @param storefront_oid 
    # @param commseq_email_uuid 
    # @param order_id 
    # @param [Hash] opts the optional parameters
    # @return [EmailCustomerEditorUrlResponse]
    def get_email_email_customer_editor_url(storefront_oid, commseq_email_uuid, order_id, opts = {})
      data, _status_code, _headers = get_email_email_customer_editor_url_with_http_info(storefront_oid, commseq_email_uuid, order_id, opts)
      data
    end

    # Get email order customer editor url
    # @param storefront_oid 
    # @param commseq_email_uuid 
    # @param order_id 
    # @param [Hash] opts the optional parameters
    # @return [Array<(EmailCustomerEditorUrlResponse, Fixnum, Hash)>] EmailCustomerEditorUrlResponse data, response status code and response headers
    def get_email_email_customer_editor_url_with_http_info(storefront_oid, commseq_email_uuid, order_id, opts = {})
      if @api_client.config.debugging
        @api_client.config.logger.debug 'Calling API: StorefrontApi.get_email_email_customer_editor_url ...'
      end
      # verify the required parameter 'storefront_oid' is set
      if @api_client.config.client_side_validation && storefront_oid.nil?
        fail ArgumentError, "Missing the required parameter 'storefront_oid' when calling StorefrontApi.get_email_email_customer_editor_url"
      end
      # verify the required parameter 'commseq_email_uuid' is set
      if @api_client.config.client_side_validation && commseq_email_uuid.nil?
        fail ArgumentError, "Missing the required parameter 'commseq_email_uuid' when calling StorefrontApi.get_email_email_customer_editor_url"
      end
      # verify the required parameter 'order_id' is set
      if @api_client.config.client_side_validation && order_id.nil?
        fail ArgumentError, "Missing the required parameter 'order_id' when calling StorefrontApi.get_email_email_customer_editor_url"
      end
      # resource path
      local_var_path = '/storefront/{storefront_oid}/email/emails/{commseq_email_uuid}/orders/{order_id}/editor_url'.sub('{' + 'storefront_oid' + '}', storefront_oid.to_s).sub('{' + 'commseq_email_uuid' + '}', commseq_email_uuid.to_s).sub('{' + 'order_id' + '}', order_id.to_s)

      # query parameters
      query_params = {}

      # header parameters
      header_params = {}
      header_params['X-UltraCart-Api-Version'] = @api_client.select_header_api_version()
      # HTTP header 'Accept' (if needed)
      header_params['Accept'] = @api_client.select_header_accept(['application/json'])
      # HTTP header 'Content-Type'
      header_params['Content-Type'] = @api_client.select_header_content_type(['application/json'])

      # form parameters
      form_params = {}

      # http body (model)
      post_body = nil
      auth_names = ['ultraCartBrowserApiKey', 'ultraCartOauth', 'ultraCartSimpleApiKey']
      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 => 'EmailCustomerEditorUrlResponse')
      if @api_client.config.debugging
        @api_client.config.logger.debug "API called: StorefrontApi#get_email_email_customer_editor_url\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
      end
      return data, status_code, headers
    end
    # Get email email orders
    # @param storefront_oid 
    # @param commseq_uuid 
    # @param commseq_step_uuid 
    # @param commseq_email_uuid 
    # @param [Hash] opts the optional parameters
    # @option opts [Integer] :days 
    # @return [EmailOrdersResponse]
    def get_email_email_orders(storefront_oid, commseq_uuid, commseq_step_uuid, commseq_email_uuid, opts = {})
      data, _status_code, _headers = get_email_email_orders_with_http_info(storefront_oid, commseq_uuid, commseq_step_uuid, commseq_email_uuid, opts)
      data
    end

    # Get email email orders
    # @param storefront_oid 
    # @param commseq_uuid 
    # @param commseq_step_uuid 
    # @param commseq_email_uuid 
    # @param [Hash] opts the optional parameters
    # @option opts [Integer] :days 
    # @return [Array<(EmailOrdersResponse, Fixnum, Hash)>] EmailOrdersResponse data, response status code and response headers
    def get_email_email_orders_with_http_info(storefront_oid, commseq_uuid, commseq_step_uuid, commseq_email_uuid, opts = {})
      if @api_client.config.debugging
        @api_client.config.logger.debug 'Calling API: StorefrontApi.get_email_email_orders ...'
      end
      # verify the required parameter 'storefront_oid' is set
      if @api_client.config.client_side_validation && storefront_oid.nil?
        fail ArgumentError, "Missing the required parameter 'storefront_oid' when calling StorefrontApi.get_email_email_orders"
      end
      # verify the required parameter 'commseq_uuid' is set
      if @api_client.config.client_side_validation && commseq_uuid.nil?
        fail ArgumentError, "Missing the required parameter 'commseq_uuid' when calling StorefrontApi.get_email_email_orders"
      end
      # verify the required parameter 'commseq_step_uuid' is set
      if @api_client.config.client_side_validation && commseq_step_uuid.nil?
        fail ArgumentError, "Missing the required parameter 'commseq_step_uuid' when calling StorefrontApi.get_email_email_orders"
      end
      # verify the required parameter 'commseq_email_uuid' is set
      if @api_client.config.client_side_validation && commseq_email_uuid.nil?
        fail ArgumentError, "Missing the required parameter 'commseq_email_uuid' when calling StorefrontApi.get_email_email_orders"
      end
      # resource path
      local_var_path = '/storefront/{storefront_oid}/email/commseqs/{commseq_uuid}/steps/{commseq_step_uuid}/emails/{commseq_email_uuid}/orders'.sub('{' + 'storefront_oid' + '}', storefront_oid.to_s).sub('{' + 'commseq_uuid' + '}', commseq_uuid.to_s).sub('{' + 'commseq_step_uuid' + '}', commseq_step_uuid.to_s).sub('{' + 'commseq_email_uuid' + '}', commseq_email_uuid.to_s)

      # query parameters
      query_params = {}
      query_params[:'days'] = opts[:'days'] if !opts[:'days'].nil?

      # header parameters
      header_params = {}
      header_params['X-UltraCart-Api-Version'] = @api_client.select_header_api_version()
      # HTTP header 'Accept' (if needed)
      header_params['Accept'] = @api_client.select_header_accept(['application/json'])
      # HTTP header 'Content-Type'
      header_params['Content-Type'] = @api_client.select_header_content_type(['application/json'])

      # form parameters
      form_params = {}

      # http body (model)
      post_body = nil
      auth_names = ['ultraCartBrowserApiKey', 'ultraCartOauth', 'ultraCartSimpleApiKey']
      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 => 'EmailOrdersResponse')
      if @api_client.config.debugging
        @api_client.config.logger.debug "API called: StorefrontApi#get_email_email_orders\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
      end
      return data, status_code, headers
    end
    # Get email emails
    # @param storefront_oid 
    # @param [Hash] opts the optional parameters
    # @return [EmailCommseqEmailsResponse]
    def get_email_emails(storefront_oid, opts = {})
      data, _status_code, _headers = get_email_emails_with_http_info(storefront_oid, opts)
      data
    end

    # Get email emails
    # @param storefront_oid 
    # @param [Hash] opts the optional parameters
    # @return [Array<(EmailCommseqEmailsResponse, Fixnum, Hash)>] EmailCommseqEmailsResponse data, response status code and response headers
    def get_email_emails_with_http_info(storefront_oid, opts = {})
      if @api_client.config.debugging
        @api_client.config.logger.debug 'Calling API: StorefrontApi.get_email_emails ...'
      end
      # verify the required parameter 'storefront_oid' is set
      if @api_client.config.client_side_validation && storefront_oid.nil?
        fail ArgumentError, "Missing the required parameter 'storefront_oid' when calling StorefrontApi.get_email_emails"
      end
      # resource path
      local_var_path = '/storefront/{storefront_oid}/email/emails'.sub('{' + 'storefront_oid' + '}', storefront_oid.to_s)

      # query parameters
      query_params = {}

      # header parameters
      header_params = {}
      header_params['X-UltraCart-Api-Version'] = @api_client.select_header_api_version()
      # HTTP header 'Accept' (if needed)
      header_params['Accept'] = @api_client.select_header_accept(['application/json'])
      # HTTP header 'Content-Type'
      header_params['Content-Type'] = @api_client.select_header_content_type(['application/json'])

      # form parameters
      form_params = {}

      # http body (model)
      post_body = nil
      auth_names = ['ultraCartBrowserApiKey', 'ultraCartOauth', 'ultraCartSimpleApiKey']
      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 => 'EmailCommseqEmailsResponse')
      if @api_client.config.debugging
        @api_client.config.logger.debug "API called: StorefrontApi#get_email_emails\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
      end
      return data, status_code, headers
    end
    # Get email emails multiple
    # @param storefront_oid 
    # @param email_commseq_emails_request Request of email uuids
    # @param [Hash] opts the optional parameters
    # @return [EmailCommseqEmailsResponse]
    def get_email_emails_multiple(storefront_oid, email_commseq_emails_request, opts = {})
      data, _status_code, _headers = get_email_emails_multiple_with_http_info(storefront_oid, email_commseq_emails_request, opts)
      data
    end

    # Get email emails multiple
    # @param storefront_oid 
    # @param email_commseq_emails_request Request of email uuids
    # @param [Hash] opts the optional parameters
    # @return [Array<(EmailCommseqEmailsResponse, Fixnum, Hash)>] EmailCommseqEmailsResponse data, response status code and response headers
    def get_email_emails_multiple_with_http_info(storefront_oid, email_commseq_emails_request, opts = {})
      if @api_client.config.debugging
        @api_client.config.logger.debug 'Calling API: StorefrontApi.get_email_emails_multiple ...'
      end
      # verify the required parameter 'storefront_oid' is set
      if @api_client.config.client_side_validation && storefront_oid.nil?
        fail ArgumentError, "Missing the required parameter 'storefront_oid' when calling StorefrontApi.get_email_emails_multiple"
      end
      # verify the required parameter 'email_commseq_emails_request' is set
      if @api_client.config.client_side_validation && email_commseq_emails_request.nil?
        fail ArgumentError, "Missing the required parameter 'email_commseq_emails_request' when calling StorefrontApi.get_email_emails_multiple"
      end
      # resource path
      local_var_path = '/storefront/{storefront_oid}/email/emails/multiple'.sub('{' + 'storefront_oid' + '}', storefront_oid.to_s)

      # query parameters
      query_params = {}

      # header parameters
      header_params = {}
      header_params['X-UltraCart-Api-Version'] = @api_client.select_header_api_version()
      # HTTP header 'Accept' (if needed)
      header_params['Accept'] = @api_client.select_header_accept(['application/json'])
      # HTTP header 'Content-Type'
      header_params['Content-Type'] = @api_client.select_header_content_type(['application/json'])

      # form parameters
      form_params = {}

      # http body (model)
      post_body = @api_client.object_to_http_body(email_commseq_emails_request)
      auth_names = ['ultraCartBrowserApiKey', 'ultraCartOauth', 'ultraCartSimpleApiKey']
      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 => 'EmailCommseqEmailsResponse')
      if @api_client.config.debugging
        @api_client.config.logger.debug "API called: StorefrontApi#get_email_emails_multiple\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
      end
      return data, status_code, headers
    end
    # Get email flow
    # @param storefront_oid 
    # @param email_flow_uuid 
    # @param [Hash] opts the optional parameters
    # @return [EmailFlowResponse]
    def get_email_flow(storefront_oid, email_flow_uuid, opts = {})
      data, _status_code, _headers = get_email_flow_with_http_info(storefront_oid, email_flow_uuid, opts)
      data
    end

    # Get email flow
    # @param storefront_oid 
    # @param email_flow_uuid 
    # @param [Hash] opts the optional parameters
    # @return [Array<(EmailFlowResponse, Fixnum, Hash)>] EmailFlowResponse data, response status code and response headers
    def get_email_flow_with_http_info(storefront_oid, email_flow_uuid, opts = {})
      if @api_client.config.debugging
        @api_client.config.logger.debug 'Calling API: StorefrontApi.get_email_flow ...'
      end
      # verify the required parameter 'storefront_oid' is set
      if @api_client.config.client_side_validation && storefront_oid.nil?
        fail ArgumentError, "Missing the required parameter 'storefront_oid' when calling StorefrontApi.get_email_flow"
      end
      # verify the required parameter 'email_flow_uuid' is set
      if @api_client.config.client_side_validation && email_flow_uuid.nil?
        fail ArgumentError, "Missing the required parameter 'email_flow_uuid' when calling StorefrontApi.get_email_flow"
      end
      # resource path
      local_var_path = '/storefront/{storefront_oid}/email/flows/{email_flow_uuid}'.sub('{' + 'storefront_oid' + '}', storefront_oid.to_s).sub('{' + 'email_flow_uuid' + '}', email_flow_uuid.to_s)

      # query parameters
      query_params = {}

      # header parameters
      header_params = {}
      header_params['X-UltraCart-Api-Version'] = @api_client.select_header_api_version()
      # HTTP header 'Accept' (if needed)
      header_params['Accept'] = @api_client.select_header_accept(['application/json'])
      # HTTP header 'Content-Type'
      header_params['Content-Type'] = @api_client.select_header_content_type(['application/json'])

      # form parameters
      form_params = {}

      # http body (model)
      post_body = nil
      auth_names = ['ultraCartBrowserApiKey', 'ultraCartOauth', 'ultraCartSimpleApiKey']
      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 => 'EmailFlowResponse')
      if @api_client.config.debugging
        @api_client.config.logger.debug "API called: StorefrontApi#get_email_flow\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
      end
      return data, status_code, headers
    end
    # Get email flow folder
    # @param storefront_oid 
    # @param email_flow_folder_uuid 
    # @param [Hash] opts the optional parameters
    # @return [EmailFlowFolderResponse]
    def get_email_flow_folder(storefront_oid, email_flow_folder_uuid, opts = {})
      data, _status_code, _headers = get_email_flow_folder_with_http_info(storefront_oid, email_flow_folder_uuid, opts)
      data
    end

    # Get email flow folder
    # @param storefront_oid 
    # @param email_flow_folder_uuid 
    # @param [Hash] opts the optional parameters
    # @return [Array<(EmailFlowFolderResponse, Fixnum, Hash)>] EmailFlowFolderResponse data, response status code and response headers
    def get_email_flow_folder_with_http_info(storefront_oid, email_flow_folder_uuid, opts = {})
      if @api_client.config.debugging
        @api_client.config.logger.debug 'Calling API: StorefrontApi.get_email_flow_folder ...'
      end
      # verify the required parameter 'storefront_oid' is set
      if @api_client.config.client_side_validation && storefront_oid.nil?
        fail ArgumentError, "Missing the required parameter 'storefront_oid' when calling StorefrontApi.get_email_flow_folder"
      end
      # verify the required parameter 'email_flow_folder_uuid' is set
      if @api_client.config.client_side_validation && email_flow_folder_uuid.nil?
        fail ArgumentError, "Missing the required parameter 'email_flow_folder_uuid' when calling StorefrontApi.get_email_flow_folder"
      end
      # resource path
      local_var_path = '/storefront/{storefront_oid}/email/flow_folders/{email_flow_folder_uuid}'.sub('{' + 'storefront_oid' + '}', storefront_oid.to_s).sub('{' + 'email_flow_folder_uuid' + '}', email_flow_folder_uuid.to_s)

      # query parameters
      query_params = {}

      # header parameters
      header_params = {}
      header_params['X-UltraCart-Api-Version'] = @api_client.select_header_api_version()
      # HTTP header 'Accept' (if needed)
      header_params['Accept'] = @api_client.select_header_accept(['application/json'])
      # HTTP header 'Content-Type'
      header_params['Content-Type'] = @api_client.select_header_content_type(['application/json'])

      # form parameters
      form_params = {}

      # http body (model)
      post_body = nil
      auth_names = ['ultraCartBrowserApiKey', 'ultraCartOauth', 'ultraCartSimpleApiKey']
      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 => 'EmailFlowFolderResponse')
      if @api_client.config.debugging
        @api_client.config.logger.debug "API called: StorefrontApi#get_email_flow_folder\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
      end
      return data, status_code, headers
    end
    # Get email flow folders
    # @param storefront_oid 
    # @param [Hash] opts the optional parameters
    # @return [EmailFlowFoldersResponse]
    def get_email_flow_folders(storefront_oid, opts = {})
      data, _status_code, _headers = get_email_flow_folders_with_http_info(storefront_oid, opts)
      data
    end

    # Get email flow folders
    # @param storefront_oid 
    # @param [Hash] opts the optional parameters
    # @return [Array<(EmailFlowFoldersResponse, Fixnum, Hash)>] EmailFlowFoldersResponse data, response status code and response headers
    def get_email_flow_folders_with_http_info(storefront_oid, opts = {})
      if @api_client.config.debugging
        @api_client.config.logger.debug 'Calling API: StorefrontApi.get_email_flow_folders ...'
      end
      # verify the required parameter 'storefront_oid' is set
      if @api_client.config.client_side_validation && storefront_oid.nil?
        fail ArgumentError, "Missing the required parameter 'storefront_oid' when calling StorefrontApi.get_email_flow_folders"
      end
      # resource path
      local_var_path = '/storefront/{storefront_oid}/email/flow_folders'.sub('{' + 'storefront_oid' + '}', storefront_oid.to_s)

      # query parameters
      query_params = {}

      # header parameters
      header_params = {}
      header_params['X-UltraCart-Api-Version'] = @api_client.select_header_api_version()
      # HTTP header 'Accept' (if needed)
      header_params['Accept'] = @api_client.select_header_accept(['application/json'])
      # HTTP header 'Content-Type'
      header_params['Content-Type'] = @api_client.select_header_content_type(['application/json'])

      # form parameters
      form_params = {}

      # http body (model)
      post_body = nil
      auth_names = ['ultraCartBrowserApiKey', 'ultraCartOauth', 'ultraCartSimpleApiKey']
      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 => 'EmailFlowFoldersResponse')
      if @api_client.config.debugging
        @api_client.config.logger.debug "API called: StorefrontApi#get_email_flow_folders\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
      end
      return data, status_code, headers
    end
    # Get email flow screenshots
    # @param storefront_oid 
    # @param email_flow_uuid 
    # @param [Hash] opts the optional parameters
    # @return [ScreenshotsResponse]
    def get_email_flow_screenshots(storefront_oid, email_flow_uuid, opts = {})
      data, _status_code, _headers = get_email_flow_screenshots_with_http_info(storefront_oid, email_flow_uuid, opts)
      data
    end

    # Get email flow screenshots
    # @param storefront_oid 
    # @param email_flow_uuid 
    # @param [Hash] opts the optional parameters
    # @return [Array<(ScreenshotsResponse, Fixnum, Hash)>] ScreenshotsResponse data, response status code and response headers
    def get_email_flow_screenshots_with_http_info(storefront_oid, email_flow_uuid, opts = {})
      if @api_client.config.debugging
        @api_client.config.logger.debug 'Calling API: StorefrontApi.get_email_flow_screenshots ...'
      end
      # verify the required parameter 'storefront_oid' is set
      if @api_client.config.client_side_validation && storefront_oid.nil?
        fail ArgumentError, "Missing the required parameter 'storefront_oid' when calling StorefrontApi.get_email_flow_screenshots"
      end
      # verify the required parameter 'email_flow_uuid' is set
      if @api_client.config.client_side_validation && email_flow_uuid.nil?
        fail ArgumentError, "Missing the required parameter 'email_flow_uuid' when calling StorefrontApi.get_email_flow_screenshots"
      end
      # resource path
      local_var_path = '/storefront/{storefront_oid}/email/flows/{email_flow_uuid}/screenshots'.sub('{' + 'storefront_oid' + '}', storefront_oid.to_s).sub('{' + 'email_flow_uuid' + '}', email_flow_uuid.to_s)

      # query parameters
      query_params = {}

      # header parameters
      header_params = {}
      header_params['X-UltraCart-Api-Version'] = @api_client.select_header_api_version()
      # HTTP header 'Accept' (if needed)
      header_params['Accept'] = @api_client.select_header_accept(['application/json'])
      # HTTP header 'Content-Type'
      header_params['Content-Type'] = @api_client.select_header_content_type(['application/json'])

      # form parameters
      form_params = {}

      # http body (model)
      post_body = nil
      auth_names = ['ultraCartBrowserApiKey', 'ultraCartOauth', 'ultraCartSimpleApiKey']
      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 => 'ScreenshotsResponse')
      if @api_client.config.debugging
        @api_client.config.logger.debug "API called: StorefrontApi#get_email_flow_screenshots\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
      end
      return data, status_code, headers
    end
    # Get email flows
    # @param storefront_oid 
    # @param [Hash] opts the optional parameters
    # @return [EmailFlowsResponse]
    def get_email_flows(storefront_oid, opts = {})
      data, _status_code, _headers = get_email_flows_with_http_info(storefront_oid, opts)
      data
    end

    # Get email flows
    # @param storefront_oid 
    # @param [Hash] opts the optional parameters
    # @return [Array<(EmailFlowsResponse, Fixnum, Hash)>] EmailFlowsResponse data, response status code and response headers
    def get_email_flows_with_http_info(storefront_oid, opts = {})
      if @api_client.config.debugging
        @api_client.config.logger.debug 'Calling API: StorefrontApi.get_email_flows ...'
      end
      # verify the required parameter 'storefront_oid' is set
      if @api_client.config.client_side_validation && storefront_oid.nil?
        fail ArgumentError, "Missing the required parameter 'storefront_oid' when calling StorefrontApi.get_email_flows"
      end
      # resource path
      local_var_path = '/storefront/{storefront_oid}/email/flows'.sub('{' + 'storefront_oid' + '}', storefront_oid.to_s)

      # query parameters
      query_params = {}

      # header parameters
      header_params = {}
      header_params['X-UltraCart-Api-Version'] = @api_client.select_header_api_version()
      # HTTP header 'Accept' (if needed)
      header_params['Accept'] = @api_client.select_header_accept(['application/json'])
      # HTTP header 'Content-Type'
      header_params['Content-Type'] = @api_client.select_header_content_type(['application/json'])

      # form parameters
      form_params = {}

      # http body (model)
      post_body = nil
      auth_names = ['ultraCartBrowserApiKey', 'ultraCartOauth', 'ultraCartSimpleApiKey']
      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 => 'EmailFlowsResponse')
      if @api_client.config.debugging
        @api_client.config.logger.debug "API called: StorefrontApi#get_email_flows\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
      end
      return data, status_code, headers
    end
    # Get email globalsettings
    # @param [Hash] opts the optional parameters
    # @return [EmailGlobalSettingsResponse]
    def get_email_global_settings(opts = {})
      data, _status_code, _headers = get_email_global_settings_with_http_info(opts)
      data
    end

    # Get email globalsettings
    # @param [Hash] opts the optional parameters
    # @return [Array<(EmailGlobalSettingsResponse, Fixnum, Hash)>] EmailGlobalSettingsResponse data, response status code and response headers
    def get_email_global_settings_with_http_info(opts = {})
      if @api_client.config.debugging
        @api_client.config.logger.debug 'Calling API: StorefrontApi.get_email_global_settings ...'
      end
      # resource path
      local_var_path = '/storefront/email/global_settings'

      # query parameters
      query_params = {}

      # header parameters
      header_params = {}
      header_params['X-UltraCart-Api-Version'] = @api_client.select_header_api_version()
      # HTTP header 'Accept' (if needed)
      header_params['Accept'] = @api_client.select_header_accept(['application/json'])
      # HTTP header 'Content-Type'
      header_params['Content-Type'] = @api_client.select_header_content_type(['application/json'])

      # form parameters
      form_params = {}

      # http body (model)
      post_body = nil
      auth_names = ['ultraCartBrowserApiKey', 'ultraCartOauth', 'ultraCartSimpleApiKey']
      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 => 'EmailGlobalSettingsResponse')
      if @api_client.config.debugging
        @api_client.config.logger.debug "API called: StorefrontApi#get_email_global_settings\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
      end
      return data, status_code, headers
    end
    # Get email list
    # @param storefront_oid 
    # @param email_list_uuid 
    # @param [Hash] opts the optional parameters
    # @return [EmailListResponse]
    def get_email_list(storefront_oid, email_list_uuid, opts = {})
      data, _status_code, _headers = get_email_list_with_http_info(storefront_oid, email_list_uuid, opts)
      data
    end

    # Get email list
    # @param storefront_oid 
    # @param email_list_uuid 
    # @param [Hash] opts the optional parameters
    # @return [Array<(EmailListResponse, Fixnum, Hash)>] EmailListResponse data, response status code and response headers
    def get_email_list_with_http_info(storefront_oid, email_list_uuid, opts = {})
      if @api_client.config.debugging
        @api_client.config.logger.debug 'Calling API: StorefrontApi.get_email_list ...'
      end
      # verify the required parameter 'storefront_oid' is set
      if @api_client.config.client_side_validation && storefront_oid.nil?
        fail ArgumentError, "Missing the required parameter 'storefront_oid' when calling StorefrontApi.get_email_list"
      end
      # verify the required parameter 'email_list_uuid' is set
      if @api_client.config.client_side_validation && email_list_uuid.nil?
        fail ArgumentError, "Missing the required parameter 'email_list_uuid' when calling StorefrontApi.get_email_list"
      end
      # resource path
      local_var_path = '/storefront/{storefront_oid}/email/lists/{email_list_uuid}'.sub('{' + 'storefront_oid' + '}', storefront_oid.to_s).sub('{' + 'email_list_uuid' + '}', email_list_uuid.to_s)

      # query parameters
      query_params = {}

      # header parameters
      header_params = {}
      header_params['X-UltraCart-Api-Version'] = @api_client.select_header_api_version()
      # HTTP header 'Accept' (if needed)
      header_params['Accept'] = @api_client.select_header_accept(['application/json'])
      # HTTP header 'Content-Type'
      header_params['Content-Type'] = @api_client.select_header_content_type(['application/json'])

      # form parameters
      form_params = {}

      # http body (model)
      post_body = nil
      auth_names = ['ultraCartBrowserApiKey', 'ultraCartOauth', 'ultraCartSimpleApiKey']
      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 => 'EmailListResponse')
      if @api_client.config.debugging
        @api_client.config.logger.debug "API called: StorefrontApi#get_email_list\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
      end
      return data, status_code, headers
    end
    # Get email list customer editor url
    # @param storefront_oid 
    # @param email_list_uuid 
    # @param email_customer_uuid 
    # @param [Hash] opts the optional parameters
    # @return [EmailCustomerEditorUrlResponse]
    def get_email_list_customer_editor_url(storefront_oid, email_list_uuid, email_customer_uuid, opts = {})
      data, _status_code, _headers = get_email_list_customer_editor_url_with_http_info(storefront_oid, email_list_uuid, email_customer_uuid, opts)
      data
    end

    # Get email list customer editor url
    # @param storefront_oid 
    # @param email_list_uuid 
    # @param email_customer_uuid 
    # @param [Hash] opts the optional parameters
    # @return [Array<(EmailCustomerEditorUrlResponse, Fixnum, Hash)>] EmailCustomerEditorUrlResponse data, response status code and response headers
    def get_email_list_customer_editor_url_with_http_info(storefront_oid, email_list_uuid, email_customer_uuid, opts = {})
      if @api_client.config.debugging
        @api_client.config.logger.debug 'Calling API: StorefrontApi.get_email_list_customer_editor_url ...'
      end
      # verify the required parameter 'storefront_oid' is set
      if @api_client.config.client_side_validation && storefront_oid.nil?
        fail ArgumentError, "Missing the required parameter 'storefront_oid' when calling StorefrontApi.get_email_list_customer_editor_url"
      end
      # verify the required parameter 'email_list_uuid' is set
      if @api_client.config.client_side_validation && email_list_uuid.nil?
        fail ArgumentError, "Missing the required parameter 'email_list_uuid' when calling StorefrontApi.get_email_list_customer_editor_url"
      end
      # verify the required parameter 'email_customer_uuid' is set
      if @api_client.config.client_side_validation && email_customer_uuid.nil?
        fail ArgumentError, "Missing the required parameter 'email_customer_uuid' when calling StorefrontApi.get_email_list_customer_editor_url"
      end
      # resource path
      local_var_path = '/storefront/{storefront_oid}/email/lists/{email_list_uuid}/customers/{email_customer_uuid}/editor_url'.sub('{' + 'storefront_oid' + '}', storefront_oid.to_s).sub('{' + 'email_list_uuid' + '}', email_list_uuid.to_s).sub('{' + 'email_customer_uuid' + '}', email_customer_uuid.to_s)

      # query parameters
      query_params = {}

      # header parameters
      header_params = {}
      header_params['X-UltraCart-Api-Version'] = @api_client.select_header_api_version()
      # HTTP header 'Accept' (if needed)
      header_params['Accept'] = @api_client.select_header_accept(['application/json'])
      # HTTP header 'Content-Type'
      header_params['Content-Type'] = @api_client.select_header_content_type(['application/json'])

      # form parameters
      form_params = {}

      # http body (model)
      post_body = nil
      auth_names = ['ultraCartBrowserApiKey', 'ultraCartOauth', 'ultraCartSimpleApiKey']
      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 => 'EmailCustomerEditorUrlResponse')
      if @api_client.config.debugging
        @api_client.config.logger.debug "API called: StorefrontApi#get_email_list_customer_editor_url\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
      end
      return data, status_code, headers
    end
    # Get email list customers
    # @param storefront_oid 
    # @param email_list_uuid 
    # @param [Hash] opts the optional parameters
    # @option opts [Integer] :page_number 
    # @option opts [Integer] :page_size 
    # @return [EmailListCustomersResponse]
    def get_email_list_customers(storefront_oid, email_list_uuid, opts = {})
      data, _status_code, _headers = get_email_list_customers_with_http_info(storefront_oid, email_list_uuid, opts)
      data
    end

    # Get email list customers
    # @param storefront_oid 
    # @param email_list_uuid 
    # @param [Hash] opts the optional parameters
    # @option opts [Integer] :page_number 
    # @option opts [Integer] :page_size 
    # @return [Array<(EmailListCustomersResponse, Fixnum, Hash)>] EmailListCustomersResponse data, response status code and response headers
    def get_email_list_customers_with_http_info(storefront_oid, email_list_uuid, opts = {})
      if @api_client.config.debugging
        @api_client.config.logger.debug 'Calling API: StorefrontApi.get_email_list_customers ...'
      end
      # verify the required parameter 'storefront_oid' is set
      if @api_client.config.client_side_validation && storefront_oid.nil?
        fail ArgumentError, "Missing the required parameter 'storefront_oid' when calling StorefrontApi.get_email_list_customers"
      end
      # verify the required parameter 'email_list_uuid' is set
      if @api_client.config.client_side_validation && email_list_uuid.nil?
        fail ArgumentError, "Missing the required parameter 'email_list_uuid' when calling StorefrontApi.get_email_list_customers"
      end
      # resource path
      local_var_path = '/storefront/{storefront_oid}/email/lists/{email_list_uuid}/customers'.sub('{' + 'storefront_oid' + '}', storefront_oid.to_s).sub('{' + 'email_list_uuid' + '}', email_list_uuid.to_s)

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

      # header parameters
      header_params = {}
      header_params['X-UltraCart-Api-Version'] = @api_client.select_header_api_version()
      # HTTP header 'Accept' (if needed)
      header_params['Accept'] = @api_client.select_header_accept(['application/json'])
      # HTTP header 'Content-Type'
      header_params['Content-Type'] = @api_client.select_header_content_type(['application/json'])

      # form parameters
      form_params = {}

      # http body (model)
      post_body = nil
      auth_names = ['ultraCartBrowserApiKey', 'ultraCartOauth', 'ultraCartSimpleApiKey']
      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 => 'EmailListCustomersResponse')
      if @api_client.config.debugging
        @api_client.config.logger.debug "API called: StorefrontApi#get_email_list_customers\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
      end
      return data, status_code, headers
    end
    # Get email campaign folder
    # @param storefront_oid 
    # @param email_list_segment_folder_uuid 
    # @param [Hash] opts the optional parameters
    # @return [EmailListSegmentFolderResponse]
    def get_email_list_segment_folder(storefront_oid, email_list_segment_folder_uuid, opts = {})
      data, _status_code, _headers = get_email_list_segment_folder_with_http_info(storefront_oid, email_list_segment_folder_uuid, opts)
      data
    end

    # Get email campaign folder
    # @param storefront_oid 
    # @param email_list_segment_folder_uuid 
    # @param [Hash] opts the optional parameters
    # @return [Array<(EmailListSegmentFolderResponse, Fixnum, Hash)>] EmailListSegmentFolderResponse data, response status code and response headers
    def get_email_list_segment_folder_with_http_info(storefront_oid, email_list_segment_folder_uuid, opts = {})
      if @api_client.config.debugging
        @api_client.config.logger.debug 'Calling API: StorefrontApi.get_email_list_segment_folder ...'
      end
      # verify the required parameter 'storefront_oid' is set
      if @api_client.config.client_side_validation && storefront_oid.nil?
        fail ArgumentError, "Missing the required parameter 'storefront_oid' when calling StorefrontApi.get_email_list_segment_folder"
      end
      # verify the required parameter 'email_list_segment_folder_uuid' is set
      if @api_client.config.client_side_validation && email_list_segment_folder_uuid.nil?
        fail ArgumentError, "Missing the required parameter 'email_list_segment_folder_uuid' when calling StorefrontApi.get_email_list_segment_folder"
      end
      # resource path
      local_var_path = '/storefront/{storefront_oid}/email/list_segment_folders/{email_list_segment_folder_uuid}'.sub('{' + 'storefront_oid' + '}', storefront_oid.to_s).sub('{' + 'email_list_segment_folder_uuid' + '}', email_list_segment_folder_uuid.to_s)

      # query parameters
      query_params = {}

      # header parameters
      header_params = {}
      header_params['X-UltraCart-Api-Version'] = @api_client.select_header_api_version()
      # HTTP header 'Accept' (if needed)
      header_params['Accept'] = @api_client.select_header_accept(['application/json'])
      # HTTP header 'Content-Type'
      header_params['Content-Type'] = @api_client.select_header_content_type(['application/json'])

      # form parameters
      form_params = {}

      # http body (model)
      post_body = nil
      auth_names = ['ultraCartBrowserApiKey', 'ultraCartOauth', 'ultraCartSimpleApiKey']
      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 => 'EmailListSegmentFolderResponse')
      if @api_client.config.debugging
        @api_client.config.logger.debug "API called: StorefrontApi#get_email_list_segment_folder\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
      end
      return data, status_code, headers
    end
    # Get email campaign folders
    # @param storefront_oid 
    # @param [Hash] opts the optional parameters
    # @return [EmailListSegmentFoldersResponse]
    def get_email_list_segment_folders(storefront_oid, opts = {})
      data, _status_code, _headers = get_email_list_segment_folders_with_http_info(storefront_oid, opts)
      data
    end

    # Get email campaign folders
    # @param storefront_oid 
    # @param [Hash] opts the optional parameters
    # @return [Array<(EmailListSegmentFoldersResponse, Fixnum, Hash)>] EmailListSegmentFoldersResponse data, response status code and response headers
    def get_email_list_segment_folders_with_http_info(storefront_oid, opts = {})
      if @api_client.config.debugging
        @api_client.config.logger.debug 'Calling API: StorefrontApi.get_email_list_segment_folders ...'
      end
      # verify the required parameter 'storefront_oid' is set
      if @api_client.config.client_side_validation && storefront_oid.nil?
        fail ArgumentError, "Missing the required parameter 'storefront_oid' when calling StorefrontApi.get_email_list_segment_folders"
      end
      # resource path
      local_var_path = '/storefront/{storefront_oid}/email/list_segment_folders'.sub('{' + 'storefront_oid' + '}', storefront_oid.to_s)

      # query parameters
      query_params = {}

      # header parameters
      header_params = {}
      header_params['X-UltraCart-Api-Version'] = @api_client.select_header_api_version()
      # HTTP header 'Accept' (if needed)
      header_params['Accept'] = @api_client.select_header_accept(['application/json'])
      # HTTP header 'Content-Type'
      header_params['Content-Type'] = @api_client.select_header_content_type(['application/json'])

      # form parameters
      form_params = {}

      # http body (model)
      post_body = nil
      auth_names = ['ultraCartBrowserApiKey', 'ultraCartOauth', 'ultraCartSimpleApiKey']
      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 => 'EmailListSegmentFoldersResponse')
      if @api_client.config.debugging
        @api_client.config.logger.debug "API called: StorefrontApi#get_email_list_segment_folders\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
      end
      return data, status_code, headers
    end
    # Get email lists
    # @param storefront_oid 
    # @param [Hash] opts the optional parameters
    # @return [EmailListsResponse]
    def get_email_lists(storefront_oid, opts = {})
      data, _status_code, _headers = get_email_lists_with_http_info(storefront_oid, opts)
      data
    end

    # Get email lists
    # @param storefront_oid 
    # @param [Hash] opts the optional parameters
    # @return [Array<(EmailListsResponse, Fixnum, Hash)>] EmailListsResponse data, response status code and response headers
    def get_email_lists_with_http_info(storefront_oid, opts = {})
      if @api_client.config.debugging
        @api_client.config.logger.debug 'Calling API: StorefrontApi.get_email_lists ...'
      end
      # verify the required parameter 'storefront_oid' is set
      if @api_client.config.client_side_validation && storefront_oid.nil?
        fail ArgumentError, "Missing the required parameter 'storefront_oid' when calling StorefrontApi.get_email_lists"
      end
      # resource path
      local_var_path = '/storefront/{storefront_oid}/email/lists'.sub('{' + 'storefront_oid' + '}', storefront_oid.to_s)

      # query parameters
      query_params = {}

      # header parameters
      header_params = {}
      header_params['X-UltraCart-Api-Version'] = @api_client.select_header_api_version()
      # HTTP header 'Accept' (if needed)
      header_params['Accept'] = @api_client.select_header_accept(['application/json'])
      # HTTP header 'Content-Type'
      header_params['Content-Type'] = @api_client.select_header_content_type(['application/json'])

      # form parameters
      form_params = {}

      # http body (model)
      post_body = nil
      auth_names = ['ultraCartBrowserApiKey', 'ultraCartOauth', 'ultraCartSimpleApiKey']
      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 => 'EmailListsResponse')
      if @api_client.config.debugging
        @api_client.config.logger.debug "API called: StorefrontApi#get_email_lists\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
      end
      return data, status_code, headers
    end
    # Get email performance
    # @param storefront_oid 
    # @param [Hash] opts the optional parameters
    # @return [EmailPerformanceResponse]
    def get_email_performance(storefront_oid, opts = {})
      data, _status_code, _headers = get_email_performance_with_http_info(storefront_oid, opts)
      data
    end

    # Get email performance
    # @param storefront_oid 
    # @param [Hash] opts the optional parameters
    # @return [Array<(EmailPerformanceResponse, Fixnum, Hash)>] EmailPerformanceResponse data, response status code and response headers
    def get_email_performance_with_http_info(storefront_oid, opts = {})
      if @api_client.config.debugging
        @api_client.config.logger.debug 'Calling API: StorefrontApi.get_email_performance ...'
      end
      # verify the required parameter 'storefront_oid' is set
      if @api_client.config.client_side_validation && storefront_oid.nil?
        fail ArgumentError, "Missing the required parameter 'storefront_oid' when calling StorefrontApi.get_email_performance"
      end
      # resource path
      local_var_path = '/storefront/{storefront_oid}/email/performance'.sub('{' + 'storefront_oid' + '}', storefront_oid.to_s)

      # query parameters
      query_params = {}

      # header parameters
      header_params = {}
      header_params['X-UltraCart-Api-Version'] = @api_client.select_header_api_version()
      # HTTP header 'Accept' (if needed)
      header_params['Accept'] = @api_client.select_header_accept(['application/json'])
      # HTTP header 'Content-Type'
      header_params['Content-Type'] = @api_client.select_header_content_type(['application/json'])

      # form parameters
      form_params = {}

      # http body (model)
      post_body = nil
      auth_names = ['ultraCartBrowserApiKey', 'ultraCartOauth', 'ultraCartSimpleApiKey']
      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 => 'EmailPerformanceResponse')
      if @api_client.config.debugging
        @api_client.config.logger.debug "API called: StorefrontApi#get_email_performance\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
      end
      return data, status_code, headers
    end
    # Get email plan
    # @param storefront_oid 
    # @param [Hash] opts the optional parameters
    # @return [EmailPlanResponse]
    def get_email_plan(storefront_oid, opts = {})
      data, _status_code, _headers = get_email_plan_with_http_info(storefront_oid, opts)
      data
    end

    # Get email plan
    # @param storefront_oid 
    # @param [Hash] opts the optional parameters
    # @return [Array<(EmailPlanResponse, Fixnum, Hash)>] EmailPlanResponse data, response status code and response headers
    def get_email_plan_with_http_info(storefront_oid, opts = {})
      if @api_client.config.debugging
        @api_client.config.logger.debug 'Calling API: StorefrontApi.get_email_plan ...'
      end
      # verify the required parameter 'storefront_oid' is set
      if @api_client.config.client_side_validation && storefront_oid.nil?
        fail ArgumentError, "Missing the required parameter 'storefront_oid' when calling StorefrontApi.get_email_plan"
      end
      # resource path
      local_var_path = '/storefront/{storefront_oid}/email/plan'.sub('{' + 'storefront_oid' + '}', storefront_oid.to_s)

      # query parameters
      query_params = {}

      # header parameters
      header_params = {}
      header_params['X-UltraCart-Api-Version'] = @api_client.select_header_api_version()
      # HTTP header 'Accept' (if needed)
      header_params['Accept'] = @api_client.select_header_accept(['application/json'])
      # HTTP header 'Content-Type'
      header_params['Content-Type'] = @api_client.select_header_content_type(['application/json'])

      # form parameters
      form_params = {}

      # http body (model)
      post_body = nil
      auth_names = ['ultraCartBrowserApiKey', 'ultraCartOauth', 'ultraCartSimpleApiKey']
      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 => 'EmailPlanResponse')
      if @api_client.config.debugging
        @api_client.config.logger.debug "API called: StorefrontApi#get_email_plan\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
      end
      return data, status_code, headers
    end
    # Get email postcard
    # @param storefront_oid 
    # @param commseq_postcard_uuid 
    # @param [Hash] opts the optional parameters
    # @return [EmailCommseqPostcardResponse]
    def get_email_postcard(storefront_oid, commseq_postcard_uuid, opts = {})
      data, _status_code, _headers = get_email_postcard_with_http_info(storefront_oid, commseq_postcard_uuid, opts)
      data
    end

    # Get email postcard
    # @param storefront_oid 
    # @param commseq_postcard_uuid 
    # @param [Hash] opts the optional parameters
    # @return [Array<(EmailCommseqPostcardResponse, Fixnum, Hash)>] EmailCommseqPostcardResponse data, response status code and response headers
    def get_email_postcard_with_http_info(storefront_oid, commseq_postcard_uuid, opts = {})
      if @api_client.config.debugging
        @api_client.config.logger.debug 'Calling API: StorefrontApi.get_email_postcard ...'
      end
      # verify the required parameter 'storefront_oid' is set
      if @api_client.config.client_side_validation && storefront_oid.nil?
        fail ArgumentError, "Missing the required parameter 'storefront_oid' when calling StorefrontApi.get_email_postcard"
      end
      # verify the required parameter 'commseq_postcard_uuid' is set
      if @api_client.config.client_side_validation && commseq_postcard_uuid.nil?
        fail ArgumentError, "Missing the required parameter 'commseq_postcard_uuid' when calling StorefrontApi.get_email_postcard"
      end
      # resource path
      local_var_path = '/storefront/{storefront_oid}/email/postcards/{commseq_postcard_uuid}'.sub('{' + 'storefront_oid' + '}', storefront_oid.to_s).sub('{' + 'commseq_postcard_uuid' + '}', commseq_postcard_uuid.to_s)

      # query parameters
      query_params = {}

      # header parameters
      header_params = {}
      header_params['X-UltraCart-Api-Version'] = @api_client.select_header_api_version()
      # HTTP header 'Accept' (if needed)
      header_params['Accept'] = @api_client.select_header_accept(['application/json'])
      # HTTP header 'Content-Type'
      header_params['Content-Type'] = @api_client.select_header_content_type(['application/json'])

      # form parameters
      form_params = {}

      # http body (model)
      post_body = nil
      auth_names = ['ultraCartBrowserApiKey', 'ultraCartOauth', 'ultraCartSimpleApiKey']
      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 => 'EmailCommseqPostcardResponse')
      if @api_client.config.debugging
        @api_client.config.logger.debug "API called: StorefrontApi#get_email_postcard\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
      end
      return data, status_code, headers
    end
    # Get email postcards
    # @param storefront_oid 
    # @param [Hash] opts the optional parameters
    # @return [EmailCommseqPostcardsResponse]
    def get_email_postcards(storefront_oid, opts = {})
      data, _status_code, _headers = get_email_postcards_with_http_info(storefront_oid, opts)
      data
    end

    # Get email postcards
    # @param storefront_oid 
    # @param [Hash] opts the optional parameters
    # @return [Array<(EmailCommseqPostcardsResponse, Fixnum, Hash)>] EmailCommseqPostcardsResponse data, response status code and response headers
    def get_email_postcards_with_http_info(storefront_oid, opts = {})
      if @api_client.config.debugging
        @api_client.config.logger.debug 'Calling API: StorefrontApi.get_email_postcards ...'
      end
      # verify the required parameter 'storefront_oid' is set
      if @api_client.config.client_side_validation && storefront_oid.nil?
        fail ArgumentError, "Missing the required parameter 'storefront_oid' when calling StorefrontApi.get_email_postcards"
      end
      # resource path
      local_var_path = '/storefront/{storefront_oid}/email/postcards'.sub('{' + 'storefront_oid' + '}', storefront_oid.to_s)

      # query parameters
      query_params = {}

      # header parameters
      header_params = {}
      header_params['X-UltraCart-Api-Version'] = @api_client.select_header_api_version()
      # HTTP header 'Accept' (if needed)
      header_params['Accept'] = @api_client.select_header_accept(['application/json'])
      # HTTP header 'Content-Type'
      header_params['Content-Type'] = @api_client.select_header_content_type(['application/json'])

      # form parameters
      form_params = {}

      # http body (model)
      post_body = nil
      auth_names = ['ultraCartBrowserApiKey', 'ultraCartOauth', 'ultraCartSimpleApiKey']
      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 => 'EmailCommseqPostcardsResponse')
      if @api_client.config.debugging
        @api_client.config.logger.debug "API called: StorefrontApi#get_email_postcards\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
      end
      return data, status_code, headers
    end
    # Get email postcards multiple
    # @param storefront_oid 
    # @param email_commseq_postcards_request Request of postcard uuids
    # @param [Hash] opts the optional parameters
    # @return [EmailCommseqPostcardsResponse]
    def get_email_postcards_multiple(storefront_oid, email_commseq_postcards_request, opts = {})
      data, _status_code, _headers = get_email_postcards_multiple_with_http_info(storefront_oid, email_commseq_postcards_request, opts)
      data
    end

    # Get email postcards multiple
    # @param storefront_oid 
    # @param email_commseq_postcards_request Request of postcard uuids
    # @param [Hash] opts the optional parameters
    # @return [Array<(EmailCommseqPostcardsResponse, Fixnum, Hash)>] EmailCommseqPostcardsResponse data, response status code and response headers
    def get_email_postcards_multiple_with_http_info(storefront_oid, email_commseq_postcards_request, opts = {})
      if @api_client.config.debugging
        @api_client.config.logger.debug 'Calling API: StorefrontApi.get_email_postcards_multiple ...'
      end
      # verify the required parameter 'storefront_oid' is set
      if @api_client.config.client_side_validation && storefront_oid.nil?
        fail ArgumentError, "Missing the required parameter 'storefront_oid' when calling StorefrontApi.get_email_postcards_multiple"
      end
      # verify the required parameter 'email_commseq_postcards_request' is set
      if @api_client.config.client_side_validation && email_commseq_postcards_request.nil?
        fail ArgumentError, "Missing the required parameter 'email_commseq_postcards_request' when calling StorefrontApi.get_email_postcards_multiple"
      end
      # resource path
      local_var_path = '/storefront/{storefront_oid}/email/postcards/multiple'.sub('{' + 'storefront_oid' + '}', storefront_oid.to_s)

      # query parameters
      query_params = {}

      # header parameters
      header_params = {}
      header_params['X-UltraCart-Api-Version'] = @api_client.select_header_api_version()
      # HTTP header 'Accept' (if needed)
      header_params['Accept'] = @api_client.select_header_accept(['application/json'])
      # HTTP header 'Content-Type'
      header_params['Content-Type'] = @api_client.select_header_content_type(['application/json'])

      # form parameters
      form_params = {}

      # http body (model)
      post_body = @api_client.object_to_http_body(email_commseq_postcards_request)
      auth_names = ['ultraCartBrowserApiKey', 'ultraCartOauth', 'ultraCartSimpleApiKey']
      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 => 'EmailCommseqPostcardsResponse')
      if @api_client.config.debugging
        @api_client.config.logger.debug "API called: StorefrontApi#get_email_postcards_multiple\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
      end
      return data, status_code, headers
    end
    # Get email segment
    # @param storefront_oid 
    # @param email_segment_uuid 
    # @param [Hash] opts the optional parameters
    # @return [EmailSegmentResponse]
    def get_email_segment(storefront_oid, email_segment_uuid, opts = {})
      data, _status_code, _headers = get_email_segment_with_http_info(storefront_oid, email_segment_uuid, opts)
      data
    end

    # Get email segment
    # @param storefront_oid 
    # @param email_segment_uuid 
    # @param [Hash] opts the optional parameters
    # @return [Array<(EmailSegmentResponse, Fixnum, Hash)>] EmailSegmentResponse data, response status code and response headers
    def get_email_segment_with_http_info(storefront_oid, email_segment_uuid, opts = {})
      if @api_client.config.debugging
        @api_client.config.logger.debug 'Calling API: StorefrontApi.get_email_segment ...'
      end
      # verify the required parameter 'storefront_oid' is set
      if @api_client.config.client_side_validation && storefront_oid.nil?
        fail ArgumentError, "Missing the required parameter 'storefront_oid' when calling StorefrontApi.get_email_segment"
      end
      # verify the required parameter 'email_segment_uuid' is set
      if @api_client.config.client_side_validation && email_segment_uuid.nil?
        fail ArgumentError, "Missing the required parameter 'email_segment_uuid' when calling StorefrontApi.get_email_segment"
      end
      # resource path
      local_var_path = '/storefront/{storefront_oid}/email/segments/{email_segment_uuid}'.sub('{' + 'storefront_oid' + '}', storefront_oid.to_s).sub('{' + 'email_segment_uuid' + '}', email_segment_uuid.to_s)

      # query parameters
      query_params = {}

      # header parameters
      header_params = {}
      header_params['X-UltraCart-Api-Version'] = @api_client.select_header_api_version()
      # HTTP header 'Accept' (if needed)
      header_params['Accept'] = @api_client.select_header_accept(['application/json'])
      # HTTP header 'Content-Type'
      header_params['Content-Type'] = @api_client.select_header_content_type(['application/json'])

      # form parameters
      form_params = {}

      # http body (model)
      post_body = nil
      auth_names = ['ultraCartBrowserApiKey', 'ultraCartOauth', 'ultraCartSimpleApiKey']
      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 => 'EmailSegmentResponse')
      if @api_client.config.debugging
        @api_client.config.logger.debug "API called: StorefrontApi#get_email_segment\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
      end
      return data, status_code, headers
    end
    # Get email segment customers editor URL
    # @param storefront_oid 
    # @param email_segment_uuid 
    # @param email_customer_uuid 
    # @param [Hash] opts the optional parameters
    # @return [EmailCustomerEditorUrlResponse]
    def get_email_segment_customer_editor_url(storefront_oid, email_segment_uuid, email_customer_uuid, opts = {})
      data, _status_code, _headers = get_email_segment_customer_editor_url_with_http_info(storefront_oid, email_segment_uuid, email_customer_uuid, opts)
      data
    end

    # Get email segment customers editor URL
    # @param storefront_oid 
    # @param email_segment_uuid 
    # @param email_customer_uuid 
    # @param [Hash] opts the optional parameters
    # @return [Array<(EmailCustomerEditorUrlResponse, Fixnum, Hash)>] EmailCustomerEditorUrlResponse data, response status code and response headers
    def get_email_segment_customer_editor_url_with_http_info(storefront_oid, email_segment_uuid, email_customer_uuid, opts = {})
      if @api_client.config.debugging
        @api_client.config.logger.debug 'Calling API: StorefrontApi.get_email_segment_customer_editor_url ...'
      end
      # verify the required parameter 'storefront_oid' is set
      if @api_client.config.client_side_validation && storefront_oid.nil?
        fail ArgumentError, "Missing the required parameter 'storefront_oid' when calling StorefrontApi.get_email_segment_customer_editor_url"
      end
      # verify the required parameter 'email_segment_uuid' is set
      if @api_client.config.client_side_validation && email_segment_uuid.nil?
        fail ArgumentError, "Missing the required parameter 'email_segment_uuid' when calling StorefrontApi.get_email_segment_customer_editor_url"
      end
      # verify the required parameter 'email_customer_uuid' is set
      if @api_client.config.client_side_validation && email_customer_uuid.nil?
        fail ArgumentError, "Missing the required parameter 'email_customer_uuid' when calling StorefrontApi.get_email_segment_customer_editor_url"
      end
      # resource path
      local_var_path = '/storefront/{storefront_oid}/email/segments/{email_segment_uuid}/customers/{email_customer_uuid}/editor_url'.sub('{' + 'storefront_oid' + '}', storefront_oid.to_s).sub('{' + 'email_segment_uuid' + '}', email_segment_uuid.to_s).sub('{' + 'email_customer_uuid' + '}', email_customer_uuid.to_s)

      # query parameters
      query_params = {}

      # header parameters
      header_params = {}
      header_params['X-UltraCart-Api-Version'] = @api_client.select_header_api_version()
      # HTTP header 'Accept' (if needed)
      header_params['Accept'] = @api_client.select_header_accept(['application/json'])
      # HTTP header 'Content-Type'
      header_params['Content-Type'] = @api_client.select_header_content_type(['application/json'])

      # form parameters
      form_params = {}

      # http body (model)
      post_body = nil
      auth_names = ['ultraCartBrowserApiKey', 'ultraCartOauth', 'ultraCartSimpleApiKey']
      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 => 'EmailCustomerEditorUrlResponse')
      if @api_client.config.debugging
        @api_client.config.logger.debug "API called: StorefrontApi#get_email_segment_customer_editor_url\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
      end
      return data, status_code, headers
    end
    # Get email segment customers
    # @param storefront_oid 
    # @param email_segment_uuid 
    # @param [Hash] opts the optional parameters
    # @option opts [Integer] :page_number 
    # @option opts [Integer] :page_size 
    # @return [EmailSegmentCustomersResponse]
    def get_email_segment_customers(storefront_oid, email_segment_uuid, opts = {})
      data, _status_code, _headers = get_email_segment_customers_with_http_info(storefront_oid, email_segment_uuid, opts)
      data
    end

    # Get email segment customers
    # @param storefront_oid 
    # @param email_segment_uuid 
    # @param [Hash] opts the optional parameters
    # @option opts [Integer] :page_number 
    # @option opts [Integer] :page_size 
    # @return [Array<(EmailSegmentCustomersResponse, Fixnum, Hash)>] EmailSegmentCustomersResponse data, response status code and response headers
    def get_email_segment_customers_with_http_info(storefront_oid, email_segment_uuid, opts = {})
      if @api_client.config.debugging
        @api_client.config.logger.debug 'Calling API: StorefrontApi.get_email_segment_customers ...'
      end
      # verify the required parameter 'storefront_oid' is set
      if @api_client.config.client_side_validation && storefront_oid.nil?
        fail ArgumentError, "Missing the required parameter 'storefront_oid' when calling StorefrontApi.get_email_segment_customers"
      end
      # verify the required parameter 'email_segment_uuid' is set
      if @api_client.config.client_side_validation && email_segment_uuid.nil?
        fail ArgumentError, "Missing the required parameter 'email_segment_uuid' when calling StorefrontApi.get_email_segment_customers"
      end
      # resource path
      local_var_path = '/storefront/{storefront_oid}/email/segments/{email_segment_uuid}/customers'.sub('{' + 'storefront_oid' + '}', storefront_oid.to_s).sub('{' + 'email_segment_uuid' + '}', email_segment_uuid.to_s)

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

      # header parameters
      header_params = {}
      header_params['X-UltraCart-Api-Version'] = @api_client.select_header_api_version()
      # HTTP header 'Accept' (if needed)
      header_params['Accept'] = @api_client.select_header_accept(['application/json'])
      # HTTP header 'Content-Type'
      header_params['Content-Type'] = @api_client.select_header_content_type(['application/json'])

      # form parameters
      form_params = {}

      # http body (model)
      post_body = nil
      auth_names = ['ultraCartBrowserApiKey', 'ultraCartOauth', 'ultraCartSimpleApiKey']
      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 => 'EmailSegmentCustomersResponse')
      if @api_client.config.debugging
        @api_client.config.logger.debug "API called: StorefrontApi#get_email_segment_customers\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
      end
      return data, status_code, headers
    end
    # Get email segments
    # @param storefront_oid 
    # @param [Hash] opts the optional parameters
    # @return [EmailSegmentsResponse]
    def get_email_segments(storefront_oid, opts = {})
      data, _status_code, _headers = get_email_segments_with_http_info(storefront_oid, opts)
      data
    end

    # Get email segments
    # @param storefront_oid 
    # @param [Hash] opts the optional parameters
    # @return [Array<(EmailSegmentsResponse, Fixnum, Hash)>] EmailSegmentsResponse data, response status code and response headers
    def get_email_segments_with_http_info(storefront_oid, opts = {})
      if @api_client.config.debugging
        @api_client.config.logger.debug 'Calling API: StorefrontApi.get_email_segments ...'
      end
      # verify the required parameter 'storefront_oid' is set
      if @api_client.config.client_side_validation && storefront_oid.nil?
        fail ArgumentError, "Missing the required parameter 'storefront_oid' when calling StorefrontApi.get_email_segments"
      end
      # resource path
      local_var_path = '/storefront/{storefront_oid}/email/segments'.sub('{' + 'storefront_oid' + '}', storefront_oid.to_s)

      # query parameters
      query_params = {}

      # header parameters
      header_params = {}
      header_params['X-UltraCart-Api-Version'] = @api_client.select_header_api_version()
      # HTTP header 'Accept' (if needed)
      header_params['Accept'] = @api_client.select_header_accept(['application/json'])
      # HTTP header 'Content-Type'
      header_params['Content-Type'] = @api_client.select_header_content_type(['application/json'])

      # form parameters
      form_params = {}

      # http body (model)
      post_body = nil
      auth_names = ['ultraCartBrowserApiKey', 'ultraCartOauth', 'ultraCartSimpleApiKey']
      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 => 'EmailSegmentsResponse')
      if @api_client.config.debugging
        @api_client.config.logger.debug "API called: StorefrontApi#get_email_segments\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
      end
      return data, status_code, headers
    end
    # Get email sending domain
    # @param domain 
    # @param [Hash] opts the optional parameters
    # @return [EmailSendingDomainResponse]
    def get_email_sending_domain(domain, opts = {})
      data, _status_code, _headers = get_email_sending_domain_with_http_info(domain, opts)
      data
    end

    # Get email sending domain
    # @param domain 
    # @param [Hash] opts the optional parameters
    # @return [Array<(EmailSendingDomainResponse, Fixnum, Hash)>] EmailSendingDomainResponse data, response status code and response headers
    def get_email_sending_domain_with_http_info(domain, opts = {})
      if @api_client.config.debugging
        @api_client.config.logger.debug 'Calling API: StorefrontApi.get_email_sending_domain ...'
      end
      # verify the required parameter 'domain' is set
      if @api_client.config.client_side_validation && domain.nil?
        fail ArgumentError, "Missing the required parameter 'domain' when calling StorefrontApi.get_email_sending_domain"
      end
      # resource path
      local_var_path = '/storefront/email/sending_domain/{domain}'.sub('{' + 'domain' + '}', domain.to_s)

      # query parameters
      query_params = {}

      # header parameters
      header_params = {}
      header_params['X-UltraCart-Api-Version'] = @api_client.select_header_api_version()
      # HTTP header 'Accept' (if needed)
      header_params['Accept'] = @api_client.select_header_accept(['application/json'])
      # HTTP header 'Content-Type'
      header_params['Content-Type'] = @api_client.select_header_content_type(['application/json'])

      # form parameters
      form_params = {}

      # http body (model)
      post_body = nil
      auth_names = ['ultraCartBrowserApiKey', 'ultraCartOauth', 'ultraCartSimpleApiKey']
      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 => 'EmailSendingDomainResponse')
      if @api_client.config.debugging
        @api_client.config.logger.debug "API called: StorefrontApi#get_email_sending_domain\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
      end
      return data, status_code, headers
    end
    # Get email sending domain status
    # @param domain 
    # @param [Hash] opts the optional parameters
    # @return [EmailSendingDomainResponse]
    def get_email_sending_domain_status(domain, opts = {})
      data, _status_code, _headers = get_email_sending_domain_status_with_http_info(domain, opts)
      data
    end

    # Get email sending domain status
    # @param domain 
    # @param [Hash] opts the optional parameters
    # @return [Array<(EmailSendingDomainResponse, Fixnum, Hash)>] EmailSendingDomainResponse data, response status code and response headers
    def get_email_sending_domain_status_with_http_info(domain, opts = {})
      if @api_client.config.debugging
        @api_client.config.logger.debug 'Calling API: StorefrontApi.get_email_sending_domain_status ...'
      end
      # verify the required parameter 'domain' is set
      if @api_client.config.client_side_validation && domain.nil?
        fail ArgumentError, "Missing the required parameter 'domain' when calling StorefrontApi.get_email_sending_domain_status"
      end
      # resource path
      local_var_path = '/storefront/email/sending_domains/{domain}/status'.sub('{' + 'domain' + '}', domain.to_s)

      # query parameters
      query_params = {}

      # header parameters
      header_params = {}
      header_params['X-UltraCart-Api-Version'] = @api_client.select_header_api_version()
      # HTTP header 'Accept' (if needed)
      header_params['Accept'] = @api_client.select_header_accept(['application/json'])
      # HTTP header 'Content-Type'
      header_params['Content-Type'] = @api_client.select_header_content_type(['application/json'])

      # form parameters
      form_params = {}

      # http body (model)
      post_body = nil
      auth_names = ['ultraCartBrowserApiKey', 'ultraCartOauth', 'ultraCartSimpleApiKey']
      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 => 'EmailSendingDomainResponse')
      if @api_client.config.debugging
        @api_client.config.logger.debug "API called: StorefrontApi#get_email_sending_domain_status\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
      end
      return data, status_code, headers
    end
    # Get email sending domains
    # @param [Hash] opts the optional parameters
    # @return [EmailSendingDomainsResponse]
    def get_email_sending_domains(opts = {})
      data, _status_code, _headers = get_email_sending_domains_with_http_info(opts)
      data
    end

    # Get email sending domains
    # @param [Hash] opts the optional parameters
    # @return [Array<(EmailSendingDomainsResponse, Fixnum, Hash)>] EmailSendingDomainsResponse data, response status code and response headers
    def get_email_sending_domains_with_http_info(opts = {})
      if @api_client.config.debugging
        @api_client.config.logger.debug 'Calling API: StorefrontApi.get_email_sending_domains ...'
      end
      # resource path
      local_var_path = '/storefront/email/sending_domains'

      # query parameters
      query_params = {}

      # header parameters
      header_params = {}
      header_params['X-UltraCart-Api-Version'] = @api_client.select_header_api_version()
      # HTTP header 'Accept' (if needed)
      header_params['Accept'] = @api_client.select_header_accept(['application/json'])
      # HTTP header 'Content-Type'
      header_params['Content-Type'] = @api_client.select_header_content_type(['application/json'])

      # form parameters
      form_params = {}

      # http body (model)
      post_body = nil
      auth_names = ['ultraCartBrowserApiKey', 'ultraCartOauth', 'ultraCartSimpleApiKey']
      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 => 'EmailSendingDomainsResponse')
      if @api_client.config.debugging
        @api_client.config.logger.debug "API called: StorefrontApi#get_email_sending_domains\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
      end
      return data, status_code, headers
    end
    # Get email settings
    # @param storefront_oid 
    # @param [Hash] opts the optional parameters
    # @return [EmailSettingsResponse]
    def get_email_settings(storefront_oid, opts = {})
      data, _status_code, _headers = get_email_settings_with_http_info(storefront_oid, opts)
      data
    end

    # Get email settings
    # @param storefront_oid 
    # @param [Hash] opts the optional parameters
    # @return [Array<(EmailSettingsResponse, Fixnum, Hash)>] EmailSettingsResponse data, response status code and response headers
    def get_email_settings_with_http_info(storefront_oid, opts = {})
      if @api_client.config.debugging
        @api_client.config.logger.debug 'Calling API: StorefrontApi.get_email_settings ...'
      end
      # verify the required parameter 'storefront_oid' is set
      if @api_client.config.client_side_validation && storefront_oid.nil?
        fail ArgumentError, "Missing the required parameter 'storefront_oid' when calling StorefrontApi.get_email_settings"
      end
      # resource path
      local_var_path = '/storefront/{storefront_oid}/email/settings'.sub('{' + 'storefront_oid' + '}', storefront_oid.to_s)

      # query parameters
      query_params = {}

      # header parameters
      header_params = {}
      header_params['X-UltraCart-Api-Version'] = @api_client.select_header_api_version()
      # HTTP header 'Accept' (if needed)
      header_params['Accept'] = @api_client.select_header_accept(['application/json'])
      # HTTP header 'Content-Type'
      header_params['Content-Type'] = @api_client.select_header_content_type(['application/json'])

      # form parameters
      form_params = {}

      # http body (model)
      post_body = nil
      auth_names = ['ultraCartBrowserApiKey', 'ultraCartOauth', 'ultraCartSimpleApiKey']
      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 => 'EmailSettingsResponse')
      if @api_client.config.debugging
        @api_client.config.logger.debug "API called: StorefrontApi#get_email_settings\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
      end
      return data, status_code, headers
    end
    # Get email template
    # @param storefront_oid 
    # @param email_template_oid 
    # @param [Hash] opts the optional parameters
    # @return [EmailTemplate]
    def get_email_template(storefront_oid, email_template_oid, opts = {})
      data, _status_code, _headers = get_email_template_with_http_info(storefront_oid, email_template_oid, opts)
      data
    end

    # Get email template
    # @param storefront_oid 
    # @param email_template_oid 
    # @param [Hash] opts the optional parameters
    # @return [Array<(EmailTemplate, Fixnum, Hash)>] EmailTemplate data, response status code and response headers
    def get_email_template_with_http_info(storefront_oid, email_template_oid, opts = {})
      if @api_client.config.debugging
        @api_client.config.logger.debug 'Calling API: StorefrontApi.get_email_template ...'
      end
      # verify the required parameter 'storefront_oid' is set
      if @api_client.config.client_side_validation && storefront_oid.nil?
        fail ArgumentError, "Missing the required parameter 'storefront_oid' when calling StorefrontApi.get_email_template"
      end
      # verify the required parameter 'email_template_oid' is set
      if @api_client.config.client_side_validation && email_template_oid.nil?
        fail ArgumentError, "Missing the required parameter 'email_template_oid' when calling StorefrontApi.get_email_template"
      end
      # resource path
      local_var_path = '/storefront/{storefront_oid}/email/templates/{email_template_oid}'.sub('{' + 'storefront_oid' + '}', storefront_oid.to_s).sub('{' + 'email_template_oid' + '}', email_template_oid.to_s)

      # query parameters
      query_params = {}

      # header parameters
      header_params = {}
      header_params['X-UltraCart-Api-Version'] = @api_client.select_header_api_version()
      # HTTP header 'Accept' (if needed)
      header_params['Accept'] = @api_client.select_header_accept(['application/json'])
      # HTTP header 'Content-Type'
      header_params['Content-Type'] = @api_client.select_header_content_type(['application/json'])

      # form parameters
      form_params = {}

      # http body (model)
      post_body = nil
      auth_names = ['ultraCartBrowserApiKey', 'ultraCartOauth', 'ultraCartSimpleApiKey']
      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 => 'EmailTemplate')
      if @api_client.config.debugging
        @api_client.config.logger.debug "API called: StorefrontApi#get_email_template\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
      end
      return data, status_code, headers
    end
    # Get email templates
    # @param storefront_oid 
    # @param [Hash] opts the optional parameters
    # @option opts [String] :trigger_type 
    # @return [EmailTemplatesResponse]
    def get_email_templates(storefront_oid, opts = {})
      data, _status_code, _headers = get_email_templates_with_http_info(storefront_oid, opts)
      data
    end

    # Get email templates
    # @param storefront_oid 
    # @param [Hash] opts the optional parameters
    # @option opts [String] :trigger_type 
    # @return [Array<(EmailTemplatesResponse, Fixnum, Hash)>] EmailTemplatesResponse data, response status code and response headers
    def get_email_templates_with_http_info(storefront_oid, opts = {})
      if @api_client.config.debugging
        @api_client.config.logger.debug 'Calling API: StorefrontApi.get_email_templates ...'
      end
      # verify the required parameter 'storefront_oid' is set
      if @api_client.config.client_side_validation && storefront_oid.nil?
        fail ArgumentError, "Missing the required parameter 'storefront_oid' when calling StorefrontApi.get_email_templates"
      end
      # resource path
      local_var_path = '/storefront/{storefront_oid}/email/templates'.sub('{' + 'storefront_oid' + '}', storefront_oid.to_s)

      # query parameters
      query_params = {}
      query_params[:'trigger_type'] = opts[:'trigger_type'] if !opts[:'trigger_type'].nil?

      # header parameters
      header_params = {}
      header_params['X-UltraCart-Api-Version'] = @api_client.select_header_api_version()
      # HTTP header 'Accept' (if needed)
      header_params['Accept'] = @api_client.select_header_accept(['application/json'])
      # HTTP header 'Content-Type'
      header_params['Content-Type'] = @api_client.select_header_content_type(['application/json'])

      # form parameters
      form_params = {}

      # http body (model)
      post_body = nil
      auth_names = ['ultraCartBrowserApiKey', 'ultraCartOauth', 'ultraCartSimpleApiKey']
      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 => 'EmailTemplatesResponse')
      if @api_client.config.debugging
        @api_client.config.logger.debug "API called: StorefrontApi#get_email_templates\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
      end
      return data, status_code, headers
    end
    # Get a list of third party email providers
    # @param storefront_oid 
    # @param [Hash] opts the optional parameters
    # @return [EmailThirdPartyProvidersResponse]
    def get_email_third_party_providers(storefront_oid, opts = {})
      data, _status_code, _headers = get_email_third_party_providers_with_http_info(storefront_oid, opts)
      data
    end

    # Get a list of third party email providers
    # @param storefront_oid 
    # @param [Hash] opts the optional parameters
    # @return [Array<(EmailThirdPartyProvidersResponse, Fixnum, Hash)>] EmailThirdPartyProvidersResponse data, response status code and response headers
    def get_email_third_party_providers_with_http_info(storefront_oid, opts = {})
      if @api_client.config.debugging
        @api_client.config.logger.debug 'Calling API: StorefrontApi.get_email_third_party_providers ...'
      end
      # verify the required parameter 'storefront_oid' is set
      if @api_client.config.client_side_validation && storefront_oid.nil?
        fail ArgumentError, "Missing the required parameter 'storefront_oid' when calling StorefrontApi.get_email_third_party_providers"
      end
      # resource path
      local_var_path = '/storefront/{storefront_oid}/email/third_party_providers'.sub('{' + 'storefront_oid' + '}', storefront_oid.to_s)

      # query parameters
      query_params = {}

      # header parameters
      header_params = {}
      header_params['X-UltraCart-Api-Version'] = @api_client.select_header_api_version()
      # HTTP header 'Accept' (if needed)
      header_params['Accept'] = @api_client.select_header_accept(['application/json'])
      # HTTP header 'Content-Type'
      header_params['Content-Type'] = @api_client.select_header_content_type(['application/json'])

      # form parameters
      form_params = {}

      # http body (model)
      post_body = nil
      auth_names = ['ultraCartBrowserApiKey', 'ultraCartOauth', 'ultraCartSimpleApiKey']
      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 => 'EmailThirdPartyProvidersResponse')
      if @api_client.config.debugging
        @api_client.config.logger.debug "API called: StorefrontApi#get_email_third_party_providers\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
      end
      return data, status_code, headers
    end
    # Get experiments
    # @param storefront_oid 
    # @param [Hash] opts the optional parameters
    # @return [ExperimentsResponse]
    def get_experiments(storefront_oid, opts = {})
      data, _status_code, _headers = get_experiments_with_http_info(storefront_oid, opts)
      data
    end

    # Get experiments
    # @param storefront_oid 
    # @param [Hash] opts the optional parameters
    # @return [Array<(ExperimentsResponse, Fixnum, Hash)>] ExperimentsResponse data, response status code and response headers
    def get_experiments_with_http_info(storefront_oid, opts = {})
      if @api_client.config.debugging
        @api_client.config.logger.debug 'Calling API: StorefrontApi.get_experiments ...'
      end
      # verify the required parameter 'storefront_oid' is set
      if @api_client.config.client_side_validation && storefront_oid.nil?
        fail ArgumentError, "Missing the required parameter 'storefront_oid' when calling StorefrontApi.get_experiments"
      end
      # resource path
      local_var_path = '/storefront/{storefront_oid}/experiments'.sub('{' + 'storefront_oid' + '}', storefront_oid.to_s)

      # query parameters
      query_params = {}

      # header parameters
      header_params = {}
      header_params['X-UltraCart-Api-Version'] = @api_client.select_header_api_version()
      # HTTP header 'Accept' (if needed)
      header_params['Accept'] = @api_client.select_header_accept(['application/json'])
      # HTTP header 'Content-Type'
      header_params['Content-Type'] = @api_client.select_header_content_type(['application/json'])

      # form parameters
      form_params = {}

      # http body (model)
      post_body = nil
      auth_names = ['ultraCartBrowserApiKey', 'ultraCartOauth', 'ultraCartSimpleApiKey']
      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 => 'ExperimentsResponse')
      if @api_client.config.debugging
        @api_client.config.logger.debug "API called: StorefrontApi#get_experiments\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
      end
      return data, status_code, headers
    end
    # Get screen recording heatmap
    # Get screen recording heatmap 
    # @param storefront_oid 
    # @param query Query
    # @param [Hash] opts the optional parameters
    # @return [ScreenRecordingHeatmapResponse]
    def get_heatmap(storefront_oid, query, opts = {})
      data, _status_code, _headers = get_heatmap_with_http_info(storefront_oid, query, opts)
      data
    end

    # Get screen recording heatmap
    # Get screen recording heatmap 
    # @param storefront_oid 
    # @param query Query
    # @param [Hash] opts the optional parameters
    # @return [Array<(ScreenRecordingHeatmapResponse, Fixnum, Hash)>] ScreenRecordingHeatmapResponse data, response status code and response headers
    def get_heatmap_with_http_info(storefront_oid, query, opts = {})
      if @api_client.config.debugging
        @api_client.config.logger.debug 'Calling API: StorefrontApi.get_heatmap ...'
      end
      # verify the required parameter 'storefront_oid' is set
      if @api_client.config.client_side_validation && storefront_oid.nil?
        fail ArgumentError, "Missing the required parameter 'storefront_oid' when calling StorefrontApi.get_heatmap"
      end
      # verify the required parameter 'query' is set
      if @api_client.config.client_side_validation && query.nil?
        fail ArgumentError, "Missing the required parameter 'query' when calling StorefrontApi.get_heatmap"
      end
      # resource path
      local_var_path = '/storefront/{storefront_oid}/screen_recordings/heatmap'.sub('{' + 'storefront_oid' + '}', storefront_oid.to_s)

      # query parameters
      query_params = {}

      # header parameters
      header_params = {}
      header_params['X-UltraCart-Api-Version'] = @api_client.select_header_api_version()
      # HTTP header 'Accept' (if needed)
      header_params['Accept'] = @api_client.select_header_accept(['application/json'])
      # HTTP header 'Content-Type'
      header_params['Content-Type'] = @api_client.select_header_content_type(['application/json'])

      # form parameters
      form_params = {}

      # http body (model)
      post_body = @api_client.object_to_http_body(query)
      auth_names = ['ultraCartOauth', 'ultraCartSimpleApiKey']
      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 => 'ScreenRecordingHeatmapResponse')
      if @api_client.config.debugging
        @api_client.config.logger.debug "API called: StorefrontApi#get_heatmap\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
      end
      return data, status_code, headers
    end
    # Get screen recording heatmap index
    # Get screen recording heatmap index 
    # @param storefront_oid 
    # @param query Query
    # @param [Hash] opts the optional parameters
    # @option opts [Integer] :_limit The maximum number of records to return on this one API call. (Default 100, Max 500) (default to 100)
    # @option opts [Integer] :_offset Pagination of the record set.  Offset is a zero based index. (default to 0)
    # @option opts [String] :_sort The sort order of the items.  See Sorting documentation for examples of using multiple values and sorting by ascending and descending.
    # @return [ScreenRecordingHeatmapIndexResponse]
    def get_heatmap_index(storefront_oid, query, opts = {})
      data, _status_code, _headers = get_heatmap_index_with_http_info(storefront_oid, query, opts)
      data
    end

    # Get screen recording heatmap index
    # Get screen recording heatmap index 
    # @param storefront_oid 
    # @param query Query
    # @param [Hash] opts the optional parameters
    # @option opts [Integer] :_limit The maximum number of records to return on this one API call. (Default 100, Max 500)
    # @option opts [Integer] :_offset Pagination of the record set.  Offset is a zero based index.
    # @option opts [String] :_sort The sort order of the items.  See Sorting documentation for examples of using multiple values and sorting by ascending and descending.
    # @return [Array<(ScreenRecordingHeatmapIndexResponse, Fixnum, Hash)>] ScreenRecordingHeatmapIndexResponse data, response status code and response headers
    def get_heatmap_index_with_http_info(storefront_oid, query, opts = {})
      if @api_client.config.debugging
        @api_client.config.logger.debug 'Calling API: StorefrontApi.get_heatmap_index ...'
      end
      # verify the required parameter 'storefront_oid' is set
      if @api_client.config.client_side_validation && storefront_oid.nil?
        fail ArgumentError, "Missing the required parameter 'storefront_oid' when calling StorefrontApi.get_heatmap_index"
      end
      # verify the required parameter 'query' is set
      if @api_client.config.client_side_validation && query.nil?
        fail ArgumentError, "Missing the required parameter 'query' when calling StorefrontApi.get_heatmap_index"
      end
      # resource path
      local_var_path = '/storefront/{storefront_oid}/screen_recordings/heatmap/index'.sub('{' + 'storefront_oid' + '}', storefront_oid.to_s)

      # query parameters
      query_params = {}
      query_params[:'_limit'] = opts[:'_limit'] if !opts[:'_limit'].nil?
      query_params[:'_offset'] = opts[:'_offset'] if !opts[:'_offset'].nil?
      query_params[:'_sort'] = opts[:'_sort'] if !opts[:'_sort'].nil?

      # header parameters
      header_params = {}
      header_params['X-UltraCart-Api-Version'] = @api_client.select_header_api_version()
      # HTTP header 'Accept' (if needed)
      header_params['Accept'] = @api_client.select_header_accept(['application/json'])
      # HTTP header 'Content-Type'
      header_params['Content-Type'] = @api_client.select_header_content_type(['application/json'])

      # form parameters
      form_params = {}

      # http body (model)
      post_body = @api_client.object_to_http_body(query)
      auth_names = ['ultraCartOauth', 'ultraCartSimpleApiKey']
      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 => 'ScreenRecordingHeatmapIndexResponse')
      if @api_client.config.debugging
        @api_client.config.logger.debug "API called: StorefrontApi#get_heatmap_index\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
      end
      return data, status_code, headers
    end
    # Get histogram property names
    # Obtain a list of property names for a given property type 
    # @param storefront_oid 
    # @param [Hash] opts the optional parameters
    # @option opts [String] :property_type 
    # @return [EmailHistogramPropertyNamesResponse]
    def get_histogram_property_names(storefront_oid, opts = {})
      data, _status_code, _headers = get_histogram_property_names_with_http_info(storefront_oid, opts)
      data
    end

    # Get histogram property names
    # Obtain a list of property names for a given property type 
    # @param storefront_oid 
    # @param [Hash] opts the optional parameters
    # @option opts [String] :property_type 
    # @return [Array<(EmailHistogramPropertyNamesResponse, Fixnum, Hash)>] EmailHistogramPropertyNamesResponse data, response status code and response headers
    def get_histogram_property_names_with_http_info(storefront_oid, opts = {})
      if @api_client.config.debugging
        @api_client.config.logger.debug 'Calling API: StorefrontApi.get_histogram_property_names ...'
      end
      # verify the required parameter 'storefront_oid' is set
      if @api_client.config.client_side_validation && storefront_oid.nil?
        fail ArgumentError, "Missing the required parameter 'storefront_oid' when calling StorefrontApi.get_histogram_property_names"
      end
      # resource path
      local_var_path = '/storefront/{storefront_oid}/email/histogram/property_names'.sub('{' + 'storefront_oid' + '}', storefront_oid.to_s)

      # query parameters
      query_params = {}
      query_params[:'property_type'] = opts[:'property_type'] if !opts[:'property_type'].nil?

      # header parameters
      header_params = {}
      header_params['X-UltraCart-Api-Version'] = @api_client.select_header_api_version()
      # HTTP header 'Accept' (if needed)
      header_params['Accept'] = @api_client.select_header_accept(['application/json'])
      # HTTP header 'Content-Type'
      header_params['Content-Type'] = @api_client.select_header_content_type(['application/json'])

      # form parameters
      form_params = {}

      # http body (model)
      post_body = nil
      auth_names = ['ultraCartBrowserApiKey', 'ultraCartOauth', 'ultraCartSimpleApiKey']
      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 => 'EmailHistogramPropertyNamesResponse')
      if @api_client.config.debugging
        @api_client.config.logger.debug "API called: StorefrontApi#get_histogram_property_names\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
      end
      return data, status_code, headers
    end
    # Get histogram property values
    # Obtain a list of property values for a given property name and type 
    # @param storefront_oid 
    # @param [Hash] opts the optional parameters
    # @option opts [String] :property_name 
    # @option opts [String] :property_type 
    # @option opts [Integer] :limit 
    # @return [EmailHistogramPropertyValuesResponse]
    def get_histogram_property_values(storefront_oid, opts = {})
      data, _status_code, _headers = get_histogram_property_values_with_http_info(storefront_oid, opts)
      data
    end

    # Get histogram property values
    # Obtain a list of property values for a given property name and type 
    # @param storefront_oid 
    # @param [Hash] opts the optional parameters
    # @option opts [String] :property_name 
    # @option opts [String] :property_type 
    # @option opts [Integer] :limit 
    # @return [Array<(EmailHistogramPropertyValuesResponse, Fixnum, Hash)>] EmailHistogramPropertyValuesResponse data, response status code and response headers
    def get_histogram_property_values_with_http_info(storefront_oid, opts = {})
      if @api_client.config.debugging
        @api_client.config.logger.debug 'Calling API: StorefrontApi.get_histogram_property_values ...'
      end
      # verify the required parameter 'storefront_oid' is set
      if @api_client.config.client_side_validation && storefront_oid.nil?
        fail ArgumentError, "Missing the required parameter 'storefront_oid' when calling StorefrontApi.get_histogram_property_values"
      end
      # resource path
      local_var_path = '/storefront/{storefront_oid}/email/histogram/property_values'.sub('{' + 'storefront_oid' + '}', storefront_oid.to_s)

      # query parameters
      query_params = {}
      query_params[:'property_name'] = opts[:'property_name'] if !opts[:'property_name'].nil?
      query_params[:'property_type'] = opts[:'property_type'] if !opts[:'property_type'].nil?
      query_params[:'limit'] = opts[:'limit'] if !opts[:'limit'].nil?

      # header parameters
      header_params = {}
      header_params['X-UltraCart-Api-Version'] = @api_client.select_header_api_version()
      # HTTP header 'Accept' (if needed)
      header_params['Accept'] = @api_client.select_header_accept(['application/json'])
      # HTTP header 'Content-Type'
      header_params['Content-Type'] = @api_client.select_header_content_type(['application/json'])

      # form parameters
      form_params = {}

      # http body (model)
      post_body = nil
      auth_names = ['ultraCartBrowserApiKey', 'ultraCartOauth', 'ultraCartSimpleApiKey']
      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 => 'EmailHistogramPropertyValuesResponse')
      if @api_client.config.debugging
        @api_client.config.logger.debug "API called: StorefrontApi#get_histogram_property_values\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
      end
      return data, status_code, headers
    end
    # Get library values used to populate drop down boxes for filtering.
    # @param [Hash] opts the optional parameters
    # @return [LibraryFilterValuesResponse]
    def get_library_filter_values(opts = {})
      data, _status_code, _headers = get_library_filter_values_with_http_info(opts)
      data
    end

    # Get library values used to populate drop down boxes for filtering.
    # @param [Hash] opts the optional parameters
    # @return [Array<(LibraryFilterValuesResponse, Fixnum, Hash)>] LibraryFilterValuesResponse data, response status code and response headers
    def get_library_filter_values_with_http_info(opts = {})
      if @api_client.config.debugging
        @api_client.config.logger.debug 'Calling API: StorefrontApi.get_library_filter_values ...'
      end
      # resource path
      local_var_path = '/storefront/code_library/filter_values'

      # query parameters
      query_params = {}

      # header parameters
      header_params = {}
      header_params['X-UltraCart-Api-Version'] = @api_client.select_header_api_version()
      # HTTP header 'Accept' (if needed)
      header_params['Accept'] = @api_client.select_header_accept(['application/json'])
      # HTTP header 'Content-Type'
      header_params['Content-Type'] = @api_client.select_header_content_type(['application/json'])

      # form parameters
      form_params = {}

      # http body (model)
      post_body = nil
      auth_names = ['ultraCartBrowserApiKey', 'ultraCartOauth', 'ultraCartSimpleApiKey']
      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 => 'LibraryFilterValuesResponse')
      if @api_client.config.debugging
        @api_client.config.logger.debug "API called: StorefrontApi#get_library_filter_values\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
      end
      return data, status_code, headers
    end
    # Get library item.
    # @param library_item_oid 
    # @param [Hash] opts the optional parameters
    # @return [LibraryItemResponse]
    def get_library_item(library_item_oid, opts = {})
      data, _status_code, _headers = get_library_item_with_http_info(library_item_oid, opts)
      data
    end

    # Get library item.
    # @param library_item_oid 
    # @param [Hash] opts the optional parameters
    # @return [Array<(LibraryItemResponse, Fixnum, Hash)>] LibraryItemResponse data, response status code and response headers
    def get_library_item_with_http_info(library_item_oid, opts = {})
      if @api_client.config.debugging
        @api_client.config.logger.debug 'Calling API: StorefrontApi.get_library_item ...'
      end
      # verify the required parameter 'library_item_oid' is set
      if @api_client.config.client_side_validation && library_item_oid.nil?
        fail ArgumentError, "Missing the required parameter 'library_item_oid' when calling StorefrontApi.get_library_item"
      end
      # resource path
      local_var_path = '/storefront/code_library/{library_item_oid}'.sub('{' + 'library_item_oid' + '}', library_item_oid.to_s)

      # query parameters
      query_params = {}

      # header parameters
      header_params = {}
      header_params['X-UltraCart-Api-Version'] = @api_client.select_header_api_version()
      # HTTP header 'Accept' (if needed)
      header_params['Accept'] = @api_client.select_header_accept(['application/json'])
      # HTTP header 'Content-Type'
      header_params['Content-Type'] = @api_client.select_header_content_type(['application/json'])

      # form parameters
      form_params = {}

      # http body (model)
      post_body = nil
      auth_names = ['ultraCartBrowserApiKey', 'ultraCartOauth', 'ultraCartSimpleApiKey']
      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 => 'LibraryItemResponse')
      if @api_client.config.debugging
        @api_client.config.logger.debug "API called: StorefrontApi#get_library_item\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
      end
      return data, status_code, headers
    end
    # Get all published versions for a library item.
    # @param library_item_oid 
    # @param [Hash] opts the optional parameters
    # @return [LibraryItemsResponse]
    def get_library_item_published_versions(library_item_oid, opts = {})
      data, _status_code, _headers = get_library_item_published_versions_with_http_info(library_item_oid, opts)
      data
    end

    # Get all published versions for a library item.
    # @param library_item_oid 
    # @param [Hash] opts the optional parameters
    # @return [Array<(LibraryItemsResponse, Fixnum, Hash)>] LibraryItemsResponse data, response status code and response headers
    def get_library_item_published_versions_with_http_info(library_item_oid, opts = {})
      if @api_client.config.debugging
        @api_client.config.logger.debug 'Calling API: StorefrontApi.get_library_item_published_versions ...'
      end
      # verify the required parameter 'library_item_oid' is set
      if @api_client.config.client_side_validation && library_item_oid.nil?
        fail ArgumentError, "Missing the required parameter 'library_item_oid' when calling StorefrontApi.get_library_item_published_versions"
      end
      # resource path
      local_var_path = '/storefront/code_library/{library_item_oid}/published_versions'.sub('{' + 'library_item_oid' + '}', library_item_oid.to_s)

      # query parameters
      query_params = {}

      # header parameters
      header_params = {}
      header_params['X-UltraCart-Api-Version'] = @api_client.select_header_api_version()
      # HTTP header 'Accept' (if needed)
      header_params['Accept'] = @api_client.select_header_accept(['application/json'])
      # HTTP header 'Content-Type'
      header_params['Content-Type'] = @api_client.select_header_content_type(['application/json'])

      # form parameters
      form_params = {}

      # http body (model)
      post_body = nil
      auth_names = ['ultraCartBrowserApiKey', 'ultraCartOauth', 'ultraCartSimpleApiKey']
      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 => 'LibraryItemsResponse')
      if @api_client.config.debugging
        @api_client.config.logger.debug "API called: StorefrontApi#get_library_item_published_versions\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
      end
      return data, status_code, headers
    end
    # Get screen recording
    # Get screen recording 
    # @param storefront_oid 
    # @param screen_recording_uuid 
    # @param [Hash] opts the optional parameters
    # @return [ScreenRecordingResponse]
    def get_screen_recording(storefront_oid, screen_recording_uuid, opts = {})
      data, _status_code, _headers = get_screen_recording_with_http_info(storefront_oid, screen_recording_uuid, opts)
      data
    end

    # Get screen recording
    # Get screen recording 
    # @param storefront_oid 
    # @param screen_recording_uuid 
    # @param [Hash] opts the optional parameters
    # @return [Array<(ScreenRecordingResponse, Fixnum, Hash)>] ScreenRecordingResponse data, response status code and response headers
    def get_screen_recording_with_http_info(storefront_oid, screen_recording_uuid, opts = {})
      if @api_client.config.debugging
        @api_client.config.logger.debug 'Calling API: StorefrontApi.get_screen_recording ...'
      end
      # verify the required parameter 'storefront_oid' is set
      if @api_client.config.client_side_validation && storefront_oid.nil?
        fail ArgumentError, "Missing the required parameter 'storefront_oid' when calling StorefrontApi.get_screen_recording"
      end
      # verify the required parameter 'screen_recording_uuid' is set
      if @api_client.config.client_side_validation && screen_recording_uuid.nil?
        fail ArgumentError, "Missing the required parameter 'screen_recording_uuid' when calling StorefrontApi.get_screen_recording"
      end
      # resource path
      local_var_path = '/storefront/{storefront_oid}/screen_recordings/{screen_recording_uuid}'.sub('{' + 'storefront_oid' + '}', storefront_oid.to_s).sub('{' + 'screen_recording_uuid' + '}', screen_recording_uuid.to_s)

      # query parameters
      query_params = {}

      # header parameters
      header_params = {}
      header_params['X-UltraCart-Api-Version'] = @api_client.select_header_api_version()
      # HTTP header 'Accept' (if needed)
      header_params['Accept'] = @api_client.select_header_accept(['application/json'])
      # HTTP header 'Content-Type'
      header_params['Content-Type'] = @api_client.select_header_content_type(['application/json'])

      # form parameters
      form_params = {}

      # http body (model)
      post_body = nil
      auth_names = ['ultraCartOauth', 'ultraCartSimpleApiKey']
      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 => 'ScreenRecordingResponse')
      if @api_client.config.debugging
        @api_client.config.logger.debug "API called: StorefrontApi#get_screen_recording\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
      end
      return data, status_code, headers
    end
    # Get screen recording page view data
    # Get screen recording page view data 
    # @param storefront_oid 
    # @param screen_recording_uuid 
    # @param screen_recording_page_view_uuid 
    # @param [Hash] opts the optional parameters
    # @return [ScreenRecordingPageViewDataResponse]
    def get_screen_recording_page_view_data(storefront_oid, screen_recording_uuid, screen_recording_page_view_uuid, opts = {})
      data, _status_code, _headers = get_screen_recording_page_view_data_with_http_info(storefront_oid, screen_recording_uuid, screen_recording_page_view_uuid, opts)
      data
    end

    # Get screen recording page view data
    # Get screen recording page view data 
    # @param storefront_oid 
    # @param screen_recording_uuid 
    # @param screen_recording_page_view_uuid 
    # @param [Hash] opts the optional parameters
    # @return [Array<(ScreenRecordingPageViewDataResponse, Fixnum, Hash)>] ScreenRecordingPageViewDataResponse data, response status code and response headers
    def get_screen_recording_page_view_data_with_http_info(storefront_oid, screen_recording_uuid, screen_recording_page_view_uuid, opts = {})
      if @api_client.config.debugging
        @api_client.config.logger.debug 'Calling API: StorefrontApi.get_screen_recording_page_view_data ...'
      end
      # verify the required parameter 'storefront_oid' is set
      if @api_client.config.client_side_validation && storefront_oid.nil?
        fail ArgumentError, "Missing the required parameter 'storefront_oid' when calling StorefrontApi.get_screen_recording_page_view_data"
      end
      # verify the required parameter 'screen_recording_uuid' is set
      if @api_client.config.client_side_validation && screen_recording_uuid.nil?
        fail ArgumentError, "Missing the required parameter 'screen_recording_uuid' when calling StorefrontApi.get_screen_recording_page_view_data"
      end
      # verify the required parameter 'screen_recording_page_view_uuid' is set
      if @api_client.config.client_side_validation && screen_recording_page_view_uuid.nil?
        fail ArgumentError, "Missing the required parameter 'screen_recording_page_view_uuid' when calling StorefrontApi.get_screen_recording_page_view_data"
      end
      # resource path
      local_var_path = '/storefront/{storefront_oid}/screen_recordings/{screen_recording_uuid}/page_view_data/{screen_recording_page_view_uuid}'.sub('{' + 'storefront_oid' + '}', storefront_oid.to_s).sub('{' + 'screen_recording_uuid' + '}', screen_recording_uuid.to_s).sub('{' + 'screen_recording_page_view_uuid' + '}', screen_recording_page_view_uuid.to_s)

      # query parameters
      query_params = {}

      # header parameters
      header_params = {}
      header_params['X-UltraCart-Api-Version'] = @api_client.select_header_api_version()
      # HTTP header 'Accept' (if needed)
      header_params['Accept'] = @api_client.select_header_accept(['application/json'])
      # HTTP header 'Content-Type'
      header_params['Content-Type'] = @api_client.select_header_content_type(['application/json'])

      # form parameters
      form_params = {}

      # http body (model)
      post_body = nil
      auth_names = ['ultraCartOauth', 'ultraCartSimpleApiKey']
      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 => 'ScreenRecordingPageViewDataResponse')
      if @api_client.config.debugging
        @api_client.config.logger.debug "API called: StorefrontApi#get_screen_recording_page_view_data\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
      end
      return data, status_code, headers
    end
    # Get screen recording segment
    # @param storefront_oid 
    # @param screen_recording_segment_oid 
    # @param [Hash] opts the optional parameters
    # @return [ScreenRecordingSegmentResponse]
    def get_screen_recording_segment(storefront_oid, screen_recording_segment_oid, opts = {})
      data, _status_code, _headers = get_screen_recording_segment_with_http_info(storefront_oid, screen_recording_segment_oid, opts)
      data
    end

    # Get screen recording segment
    # @param storefront_oid 
    # @param screen_recording_segment_oid 
    # @param [Hash] opts the optional parameters
    # @return [Array<(ScreenRecordingSegmentResponse, Fixnum, Hash)>] ScreenRecordingSegmentResponse data, response status code and response headers
    def get_screen_recording_segment_with_http_info(storefront_oid, screen_recording_segment_oid, opts = {})
      if @api_client.config.debugging
        @api_client.config.logger.debug 'Calling API: StorefrontApi.get_screen_recording_segment ...'
      end
      # verify the required parameter 'storefront_oid' is set
      if @api_client.config.client_side_validation && storefront_oid.nil?
        fail ArgumentError, "Missing the required parameter 'storefront_oid' when calling StorefrontApi.get_screen_recording_segment"
      end
      # verify the required parameter 'screen_recording_segment_oid' is set
      if @api_client.config.client_side_validation && screen_recording_segment_oid.nil?
        fail ArgumentError, "Missing the required parameter 'screen_recording_segment_oid' when calling StorefrontApi.get_screen_recording_segment"
      end
      # resource path
      local_var_path = '/storefront/{storefront_oid}/screen_recordings/segments/{screen_recording_segment_oid}'.sub('{' + 'storefront_oid' + '}', storefront_oid.to_s).sub('{' + 'screen_recording_segment_oid' + '}', screen_recording_segment_oid.to_s)

      # query parameters
      query_params = {}

      # header parameters
      header_params = {}
      header_params['X-UltraCart-Api-Version'] = @api_client.select_header_api_version()
      # HTTP header 'Accept' (if needed)
      header_params['Accept'] = @api_client.select_header_accept(['application/json'])
      # HTTP header 'Content-Type'
      header_params['Content-Type'] = @api_client.select_header_content_type(['application/json'])

      # form parameters
      form_params = {}

      # http body (model)
      post_body = nil
      auth_names = ['ultraCartBrowserApiKey', 'ultraCartOauth', 'ultraCartSimpleApiKey']
      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 => 'ScreenRecordingSegmentResponse')
      if @api_client.config.debugging
        @api_client.config.logger.debug "API called: StorefrontApi#get_screen_recording_segment\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
      end
      return data, status_code, headers
    end
    # Get screen recording segments
    # @param storefront_oid 
    # @param [Hash] opts the optional parameters
    # @return [ScreenRecordingSegmentsResponse]
    def get_screen_recording_segments(storefront_oid, opts = {})
      data, _status_code, _headers = get_screen_recording_segments_with_http_info(storefront_oid, opts)
      data
    end

    # Get screen recording segments
    # @param storefront_oid 
    # @param [Hash] opts the optional parameters
    # @return [Array<(ScreenRecordingSegmentsResponse, Fixnum, Hash)>] ScreenRecordingSegmentsResponse data, response status code and response headers
    def get_screen_recording_segments_with_http_info(storefront_oid, opts = {})
      if @api_client.config.debugging
        @api_client.config.logger.debug 'Calling API: StorefrontApi.get_screen_recording_segments ...'
      end
      # verify the required parameter 'storefront_oid' is set
      if @api_client.config.client_side_validation && storefront_oid.nil?
        fail ArgumentError, "Missing the required parameter 'storefront_oid' when calling StorefrontApi.get_screen_recording_segments"
      end
      # resource path
      local_var_path = '/storefront/{storefront_oid}/screen_recordings/segments'.sub('{' + 'storefront_oid' + '}', storefront_oid.to_s)

      # query parameters
      query_params = {}

      # header parameters
      header_params = {}
      header_params['X-UltraCart-Api-Version'] = @api_client.select_header_api_version()
      # HTTP header 'Accept' (if needed)
      header_params['Accept'] = @api_client.select_header_accept(['application/json'])
      # HTTP header 'Content-Type'
      header_params['Content-Type'] = @api_client.select_header_content_type(['application/json'])

      # form parameters
      form_params = {}

      # http body (model)
      post_body = nil
      auth_names = ['ultraCartBrowserApiKey', 'ultraCartOauth', 'ultraCartSimpleApiKey']
      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 => 'ScreenRecordingSegmentsResponse')
      if @api_client.config.debugging
        @api_client.config.logger.debug "API called: StorefrontApi#get_screen_recording_segments\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
      end
      return data, status_code, headers
    end
    # Get screen recording settings
    # @param storefront_oid 
    # @param [Hash] opts the optional parameters
    # @return [ScreenRecordingSettingsResponse]
    def get_screen_recording_settings(storefront_oid, opts = {})
      data, _status_code, _headers = get_screen_recording_settings_with_http_info(storefront_oid, opts)
      data
    end

    # Get screen recording settings
    # @param storefront_oid 
    # @param [Hash] opts the optional parameters
    # @return [Array<(ScreenRecordingSettingsResponse, Fixnum, Hash)>] ScreenRecordingSettingsResponse data, response status code and response headers
    def get_screen_recording_settings_with_http_info(storefront_oid, opts = {})
      if @api_client.config.debugging
        @api_client.config.logger.debug 'Calling API: StorefrontApi.get_screen_recording_settings ...'
      end
      # verify the required parameter 'storefront_oid' is set
      if @api_client.config.client_side_validation && storefront_oid.nil?
        fail ArgumentError, "Missing the required parameter 'storefront_oid' when calling StorefrontApi.get_screen_recording_settings"
      end
      # resource path
      local_var_path = '/storefront/{storefront_oid}/screen_recordings/settings'.sub('{' + 'storefront_oid' + '}', storefront_oid.to_s)

      # query parameters
      query_params = {}

      # header parameters
      header_params = {}
      header_params['X-UltraCart-Api-Version'] = @api_client.select_header_api_version()
      # HTTP header 'Accept' (if needed)
      header_params['Accept'] = @api_client.select_header_accept(['application/json'])
      # HTTP header 'Content-Type'
      header_params['Content-Type'] = @api_client.select_header_content_type(['application/json'])

      # form parameters
      form_params = {}

      # http body (model)
      post_body = nil
      auth_names = ['ultraCartBrowserApiKey', 'ultraCartOauth', 'ultraCartSimpleApiKey']
      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 => 'ScreenRecordingSettingsResponse')
      if @api_client.config.debugging
        @api_client.config.logger.debug "API called: StorefrontApi#get_screen_recording_settings\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
      end
      return data, status_code, headers
    end
    # Get tags used by screen recording
    # Get tags used by screen recording 
    # @param storefront_oid 
    # @param [Hash] opts the optional parameters
    # @return [ScreenRecordingTagsResponse]
    def get_screen_recording_tags(storefront_oid, opts = {})
      data, _status_code, _headers = get_screen_recording_tags_with_http_info(storefront_oid, opts)
      data
    end

    # Get tags used by screen recording
    # Get tags used by screen recording 
    # @param storefront_oid 
    # @param [Hash] opts the optional parameters
    # @return [Array<(ScreenRecordingTagsResponse, Fixnum, Hash)>] ScreenRecordingTagsResponse data, response status code and response headers
    def get_screen_recording_tags_with_http_info(storefront_oid, opts = {})
      if @api_client.config.debugging
        @api_client.config.logger.debug 'Calling API: StorefrontApi.get_screen_recording_tags ...'
      end
      # verify the required parameter 'storefront_oid' is set
      if @api_client.config.client_side_validation && storefront_oid.nil?
        fail ArgumentError, "Missing the required parameter 'storefront_oid' when calling StorefrontApi.get_screen_recording_tags"
      end
      # resource path
      local_var_path = '/storefront/{storefront_oid}/screen_recordings/tags'.sub('{' + 'storefront_oid' + '}', storefront_oid.to_s)

      # query parameters
      query_params = {}

      # header parameters
      header_params = {}
      header_params['X-UltraCart-Api-Version'] = @api_client.select_header_api_version()
      # HTTP header 'Accept' (if needed)
      header_params['Accept'] = @api_client.select_header_accept(['application/json'])
      # HTTP header 'Content-Type'
      header_params['Content-Type'] = @api_client.select_header_content_type(['application/json'])

      # form parameters
      form_params = {}

      # http body (model)
      post_body = nil
      auth_names = ['ultraCartOauth', 'ultraCartSimpleApiKey']
      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 => 'ScreenRecordingTagsResponse')
      if @api_client.config.debugging
        @api_client.config.logger.debug "API called: StorefrontApi#get_screen_recording_tags\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
      end
      return data, status_code, headers
    end
    # Query screen recordings
    # Query screen recordings 
    # @param storefront_oid 
    # @param query Query
    # @param [Hash] opts the optional parameters
    # @option opts [Integer] :_limit The maximum number of records to return on this one API call. (Default 100, Max 500) (default to 100)
    # @option opts [Integer] :_offset Pagination of the record set.  Offset is a zero based index. (default to 0)
    # @option opts [String] :_sort The sort order of the items.  See Sorting documentation for examples of using multiple values and sorting by ascending and descending.
    # @return [ScreenRecordingQueryResponse]
    def get_screen_recordings_by_query(storefront_oid, query, opts = {})
      data, _status_code, _headers = get_screen_recordings_by_query_with_http_info(storefront_oid, query, opts)
      data
    end

    # Query screen recordings
    # Query screen recordings 
    # @param storefront_oid 
    # @param query Query
    # @param [Hash] opts the optional parameters
    # @option opts [Integer] :_limit The maximum number of records to return on this one API call. (Default 100, Max 500)
    # @option opts [Integer] :_offset Pagination of the record set.  Offset is a zero based index.
    # @option opts [String] :_sort The sort order of the items.  See Sorting documentation for examples of using multiple values and sorting by ascending and descending.
    # @return [Array<(ScreenRecordingQueryResponse, Fixnum, Hash)>] ScreenRecordingQueryResponse data, response status code and response headers
    def get_screen_recordings_by_query_with_http_info(storefront_oid, query, opts = {})
      if @api_client.config.debugging
        @api_client.config.logger.debug 'Calling API: StorefrontApi.get_screen_recordings_by_query ...'
      end
      # verify the required parameter 'storefront_oid' is set
      if @api_client.config.client_side_validation && storefront_oid.nil?
        fail ArgumentError, "Missing the required parameter 'storefront_oid' when calling StorefrontApi.get_screen_recordings_by_query"
      end
      # verify the required parameter 'query' is set
      if @api_client.config.client_side_validation && query.nil?
        fail ArgumentError, "Missing the required parameter 'query' when calling StorefrontApi.get_screen_recordings_by_query"
      end
      # resource path
      local_var_path = '/storefront/{storefront_oid}/screen_recordings/query'.sub('{' + 'storefront_oid' + '}', storefront_oid.to_s)

      # query parameters
      query_params = {}
      query_params[:'_limit'] = opts[:'_limit'] if !opts[:'_limit'].nil?
      query_params[:'_offset'] = opts[:'_offset'] if !opts[:'_offset'].nil?
      query_params[:'_sort'] = opts[:'_sort'] if !opts[:'_sort'].nil?

      # header parameters
      header_params = {}
      header_params['X-UltraCart-Api-Version'] = @api_client.select_header_api_version()
      # HTTP header 'Accept' (if needed)
      header_params['Accept'] = @api_client.select_header_accept(['application/json'])
      # HTTP header 'Content-Type'
      header_params['Content-Type'] = @api_client.select_header_content_type(['application/json'])

      # form parameters
      form_params = {}

      # http body (model)
      post_body = @api_client.object_to_http_body(query)
      auth_names = ['ultraCartOauth', 'ultraCartSimpleApiKey']
      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 => 'ScreenRecordingQueryResponse')
      if @api_client.config.debugging
        @api_client.config.logger.debug "API called: StorefrontApi#get_screen_recordings_by_query\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
      end
      return data, status_code, headers
    end
    # Get screen recordings by segment
    # Get screen recordings by segment 
    # @param storefront_oid 
    # @param screen_recording_segment_oid 
    # @param [Hash] opts the optional parameters
    # @option opts [Integer] :_limit The maximum number of records to return on this one API call. (Default 100, Max 500) (default to 100)
    # @option opts [Integer] :_offset Pagination of the record set.  Offset is a zero based index. (default to 0)
    # @option opts [String] :_sort The sort order of the items.  See Sorting documentation for examples of using multiple values and sorting by ascending and descending.
    # @return [ScreenRecordingQueryResponse]
    def get_screen_recordings_by_segment(storefront_oid, screen_recording_segment_oid, opts = {})
      data, _status_code, _headers = get_screen_recordings_by_segment_with_http_info(storefront_oid, screen_recording_segment_oid, opts)
      data
    end

    # Get screen recordings by segment
    # Get screen recordings by segment 
    # @param storefront_oid 
    # @param screen_recording_segment_oid 
    # @param [Hash] opts the optional parameters
    # @option opts [Integer] :_limit The maximum number of records to return on this one API call. (Default 100, Max 500)
    # @option opts [Integer] :_offset Pagination of the record set.  Offset is a zero based index.
    # @option opts [String] :_sort The sort order of the items.  See Sorting documentation for examples of using multiple values and sorting by ascending and descending.
    # @return [Array<(ScreenRecordingQueryResponse, Fixnum, Hash)>] ScreenRecordingQueryResponse data, response status code and response headers
    def get_screen_recordings_by_segment_with_http_info(storefront_oid, screen_recording_segment_oid, opts = {})
      if @api_client.config.debugging
        @api_client.config.logger.debug 'Calling API: StorefrontApi.get_screen_recordings_by_segment ...'
      end
      # verify the required parameter 'storefront_oid' is set
      if @api_client.config.client_side_validation && storefront_oid.nil?
        fail ArgumentError, "Missing the required parameter 'storefront_oid' when calling StorefrontApi.get_screen_recordings_by_segment"
      end
      # verify the required parameter 'screen_recording_segment_oid' is set
      if @api_client.config.client_side_validation && screen_recording_segment_oid.nil?
        fail ArgumentError, "Missing the required parameter 'screen_recording_segment_oid' when calling StorefrontApi.get_screen_recordings_by_segment"
      end
      # resource path
      local_var_path = '/storefront/{storefront_oid}/screen_recordings/segments/{screen_recording_segment_oid}/query'.sub('{' + 'storefront_oid' + '}', storefront_oid.to_s).sub('{' + 'screen_recording_segment_oid' + '}', screen_recording_segment_oid.to_s)

      # query parameters
      query_params = {}
      query_params[:'_limit'] = opts[:'_limit'] if !opts[:'_limit'].nil?
      query_params[:'_offset'] = opts[:'_offset'] if !opts[:'_offset'].nil?
      query_params[:'_sort'] = opts[:'_sort'] if !opts[:'_sort'].nil?

      # header parameters
      header_params = {}
      header_params['X-UltraCart-Api-Version'] = @api_client.select_header_api_version()
      # HTTP header 'Accept' (if needed)
      header_params['Accept'] = @api_client.select_header_accept(['application/json'])
      # HTTP header 'Content-Type'
      header_params['Content-Type'] = @api_client.select_header_content_type(['application/json'])

      # form parameters
      form_params = {}

      # http body (model)
      post_body = nil
      auth_names = ['ultraCartOauth', 'ultraCartSimpleApiKey']
      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 => 'ScreenRecordingQueryResponse')
      if @api_client.config.debugging
        @api_client.config.logger.debug "API called: StorefrontApi#get_screen_recordings_by_segment\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
      end
      return data, status_code, headers
    end
    # Retrieve pricing tiers
    # Retrieves the pricing tiers 
    # @param [Hash] opts the optional parameters
    # @option opts [String] :_expand The object expansion to perform on the result.  See documentation for examples
    # @return [PricingTiersResponse]
    def get_store_front_pricing_tiers(opts = {})
      data, _status_code, _headers = get_store_front_pricing_tiers_with_http_info(opts)
      data
    end

    # Retrieve pricing tiers
    # Retrieves the pricing tiers 
    # @param [Hash] opts the optional parameters
    # @option opts [String] :_expand The object expansion to perform on the result.  See documentation for examples
    # @return [Array<(PricingTiersResponse, Fixnum, Hash)>] PricingTiersResponse data, response status code and response headers
    def get_store_front_pricing_tiers_with_http_info(opts = {})
      if @api_client.config.debugging
        @api_client.config.logger.debug 'Calling API: StorefrontApi.get_store_front_pricing_tiers ...'
      end
      # resource path
      local_var_path = '/storefront/pricing_tiers'

      # query parameters
      query_params = {}
      query_params[:'_expand'] = opts[:'_expand'] if !opts[:'_expand'].nil?

      # header parameters
      header_params = {}
      header_params['X-UltraCart-Api-Version'] = @api_client.select_header_api_version()
      # HTTP header 'Accept' (if needed)
      header_params['Accept'] = @api_client.select_header_accept(['application/json'])
      # HTTP header 'Content-Type'
      header_params['Content-Type'] = @api_client.select_header_content_type(['application/json'])

      # form parameters
      form_params = {}

      # http body (model)
      post_body = nil
      auth_names = ['ultraCartOauth', 'ultraCartSimpleApiKey']
      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 => 'PricingTiersResponse')
      if @api_client.config.debugging
        @api_client.config.logger.debug "API called: StorefrontApi#get_store_front_pricing_tiers\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
      end
      return data, status_code, headers
    end
    # Get thumbnail parameters
    # @param thumbnail_parameters Thumbnail Parameters
    # @param [Hash] opts the optional parameters
    # @return [ThumbnailParametersResponse]
    def get_thumbnail_parameters(thumbnail_parameters, opts = {})
      data, _status_code, _headers = get_thumbnail_parameters_with_http_info(thumbnail_parameters, opts)
      data
    end

    # Get thumbnail parameters
    # @param thumbnail_parameters Thumbnail Parameters
    # @param [Hash] opts the optional parameters
    # @return [Array<(ThumbnailParametersResponse, Fixnum, Hash)>] ThumbnailParametersResponse data, response status code and response headers
    def get_thumbnail_parameters_with_http_info(thumbnail_parameters, opts = {})
      if @api_client.config.debugging
        @api_client.config.logger.debug 'Calling API: StorefrontApi.get_thumbnail_parameters ...'
      end
      # verify the required parameter 'thumbnail_parameters' is set
      if @api_client.config.client_side_validation && thumbnail_parameters.nil?
        fail ArgumentError, "Missing the required parameter 'thumbnail_parameters' when calling StorefrontApi.get_thumbnail_parameters"
      end
      # resource path
      local_var_path = '/storefront/thumbnailParameters'

      # query parameters
      query_params = {}

      # header parameters
      header_params = {}
      header_params['X-UltraCart-Api-Version'] = @api_client.select_header_api_version()
      # HTTP header 'Accept' (if needed)
      header_params['Accept'] = @api_client.select_header_accept(['application/json'])
      # HTTP header 'Content-Type'
      header_params['Content-Type'] = @api_client.select_header_content_type(['application/json'])

      # form parameters
      form_params = {}

      # http body (model)
      post_body = @api_client.object_to_http_body(thumbnail_parameters)
      auth_names = ['ultraCartBrowserApiKey', 'ultraCartOauth', 'ultraCartSimpleApiKey']
      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 => 'ThumbnailParametersResponse')
      if @api_client.config.debugging
        @api_client.config.logger.debug "API called: StorefrontApi#get_thumbnail_parameters\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
      end
      return data, status_code, headers
    end
    # Gets a transaction email object
    # Fetch a transactional email 
    # @param storefront_oid 
    # @param email_id 
    # @param [Hash] opts the optional parameters
    # @return [TransactionEmailResponse]
    def get_transaction_email(storefront_oid, email_id, opts = {})
      data, _status_code, _headers = get_transaction_email_with_http_info(storefront_oid, email_id, opts)
      data
    end

    # Gets a transaction email object
    # Fetch a transactional email 
    # @param storefront_oid 
    # @param email_id 
    # @param [Hash] opts the optional parameters
    # @return [Array<(TransactionEmailResponse, Fixnum, Hash)>] TransactionEmailResponse data, response status code and response headers
    def get_transaction_email_with_http_info(storefront_oid, email_id, opts = {})
      if @api_client.config.debugging
        @api_client.config.logger.debug 'Calling API: StorefrontApi.get_transaction_email ...'
      end
      # verify the required parameter 'storefront_oid' is set
      if @api_client.config.client_side_validation && storefront_oid.nil?
        fail ArgumentError, "Missing the required parameter 'storefront_oid' when calling StorefrontApi.get_transaction_email"
      end
      # verify the required parameter 'email_id' is set
      if @api_client.config.client_side_validation && email_id.nil?
        fail ArgumentError, "Missing the required parameter 'email_id' when calling StorefrontApi.get_transaction_email"
      end
      # resource path
      local_var_path = '/storefront/{storefront_oid}/transaction_email/list/{email_id}'.sub('{' + 'storefront_oid' + '}', storefront_oid.to_s).sub('{' + 'email_id' + '}', email_id.to_s)

      # query parameters
      query_params = {}

      # header parameters
      header_params = {}
      header_params['X-UltraCart-Api-Version'] = @api_client.select_header_api_version()
      # HTTP header 'Accept' (if needed)
      header_params['Accept'] = @api_client.select_header_accept(['application/json'])
      # HTTP header 'Content-Type'
      header_params['Content-Type'] = @api_client.select_header_content_type(['application/json'])

      # form parameters
      form_params = {}

      # http body (model)
      post_body = nil
      auth_names = ['ultraCartBrowserApiKey', 'ultraCartOauth', 'ultraCartSimpleApiKey']
      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 => 'TransactionEmailResponse')
      if @api_client.config.debugging
        @api_client.config.logger.debug "API called: StorefrontApi#get_transaction_email\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
      end
      return data, status_code, headers
    end
    # Gets a list of transaction email names
    # Obtain a list of all transactional emails and return back just their names 
    # @param storefront_oid 
    # @param [Hash] opts the optional parameters
    # @return [TransactionEmailListResponse]
    def get_transaction_email_list(storefront_oid, opts = {})
      data, _status_code, _headers = get_transaction_email_list_with_http_info(storefront_oid, opts)
      data
    end

    # Gets a list of transaction email names
    # Obtain a list of all transactional emails and return back just their names 
    # @param storefront_oid 
    # @param [Hash] opts the optional parameters
    # @return [Array<(TransactionEmailListResponse, Fixnum, Hash)>] TransactionEmailListResponse data, response status code and response headers
    def get_transaction_email_list_with_http_info(storefront_oid, opts = {})
      if @api_client.config.debugging
        @api_client.config.logger.debug 'Calling API: StorefrontApi.get_transaction_email_list ...'
      end
      # verify the required parameter 'storefront_oid' is set
      if @api_client.config.client_side_validation && storefront_oid.nil?
        fail ArgumentError, "Missing the required parameter 'storefront_oid' when calling StorefrontApi.get_transaction_email_list"
      end
      # resource path
      local_var_path = '/storefront/{storefront_oid}/transaction_email/list'.sub('{' + 'storefront_oid' + '}', storefront_oid.to_s)

      # query parameters
      query_params = {}

      # header parameters
      header_params = {}
      header_params['X-UltraCart-Api-Version'] = @api_client.select_header_api_version()
      # HTTP header 'Accept' (if needed)
      header_params['Accept'] = @api_client.select_header_accept(['application/json'])
      # HTTP header 'Content-Type'
      header_params['Content-Type'] = @api_client.select_header_content_type(['application/json'])

      # form parameters
      form_params = {}

      # http body (model)
      post_body = nil
      auth_names = ['ultraCartBrowserApiKey', 'ultraCartOauth', 'ultraCartSimpleApiKey']
      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 => 'TransactionEmailListResponse')
      if @api_client.config.debugging
        @api_client.config.logger.debug "API called: StorefrontApi#get_transaction_email_list\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
      end
      return data, status_code, headers
    end
    # Get transactional email screenshots
    # @param storefront_oid 
    # @param email_id 
    # @param [Hash] opts the optional parameters
    # @return [ScreenshotsResponse]
    def get_transaction_email_screenshots(storefront_oid, email_id, opts = {})
      data, _status_code, _headers = get_transaction_email_screenshots_with_http_info(storefront_oid, email_id, opts)
      data
    end

    # Get transactional email screenshots
    # @param storefront_oid 
    # @param email_id 
    # @param [Hash] opts the optional parameters
    # @return [Array<(ScreenshotsResponse, Fixnum, Hash)>] ScreenshotsResponse data, response status code and response headers
    def get_transaction_email_screenshots_with_http_info(storefront_oid, email_id, opts = {})
      if @api_client.config.debugging
        @api_client.config.logger.debug 'Calling API: StorefrontApi.get_transaction_email_screenshots ...'
      end
      # verify the required parameter 'storefront_oid' is set
      if @api_client.config.client_side_validation && storefront_oid.nil?
        fail ArgumentError, "Missing the required parameter 'storefront_oid' when calling StorefrontApi.get_transaction_email_screenshots"
      end
      # verify the required parameter 'email_id' is set
      if @api_client.config.client_side_validation && email_id.nil?
        fail ArgumentError, "Missing the required parameter 'email_id' when calling StorefrontApi.get_transaction_email_screenshots"
      end
      # resource path
      local_var_path = '/storefront/{storefront_oid}/transaction_email/list/{email_id}/screenshots'.sub('{' + 'storefront_oid' + '}', storefront_oid.to_s).sub('{' + 'email_id' + '}', email_id.to_s)

      # query parameters
      query_params = {}

      # header parameters
      header_params = {}
      header_params['X-UltraCart-Api-Version'] = @api_client.select_header_api_version()
      # HTTP header 'Accept' (if needed)
      header_params['Accept'] = @api_client.select_header_accept(['application/json'])
      # HTTP header 'Content-Type'
      header_params['Content-Type'] = @api_client.select_header_content_type(['application/json'])

      # form parameters
      form_params = {}

      # http body (model)
      post_body = nil
      auth_names = ['ultraCartBrowserApiKey', 'ultraCartOauth', 'ultraCartSimpleApiKey']
      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 => 'ScreenshotsResponse')
      if @api_client.config.debugging
        @api_client.config.logger.debug "API called: StorefrontApi#get_transaction_email_screenshots\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
      end
      return data, status_code, headers
    end
    # Get Twilio account
    # @param esp_twilio_uuid 
    # @param [Hash] opts the optional parameters
    # @return [TwilioResponse]
    def get_twilio_account(esp_twilio_uuid, opts = {})
      data, _status_code, _headers = get_twilio_account_with_http_info(esp_twilio_uuid, opts)
      data
    end

    # Get Twilio account
    # @param esp_twilio_uuid 
    # @param [Hash] opts the optional parameters
    # @return [Array<(TwilioResponse, Fixnum, Hash)>] TwilioResponse data, response status code and response headers
    def get_twilio_account_with_http_info(esp_twilio_uuid, opts = {})
      if @api_client.config.debugging
        @api_client.config.logger.debug 'Calling API: StorefrontApi.get_twilio_account ...'
      end
      # verify the required parameter 'esp_twilio_uuid' is set
      if @api_client.config.client_side_validation && esp_twilio_uuid.nil?
        fail ArgumentError, "Missing the required parameter 'esp_twilio_uuid' when calling StorefrontApi.get_twilio_account"
      end
      # resource path
      local_var_path = '/storefront/twilio/accounts/{esp_twilio_uuid}'.sub('{' + 'esp_twilio_uuid' + '}', esp_twilio_uuid.to_s)

      # query parameters
      query_params = {}

      # header parameters
      header_params = {}
      header_params['X-UltraCart-Api-Version'] = @api_client.select_header_api_version()
      # HTTP header 'Accept' (if needed)
      header_params['Accept'] = @api_client.select_header_accept(['application/json'])
      # HTTP header 'Content-Type'
      header_params['Content-Type'] = @api_client.select_header_content_type(['application/json'])

      # form parameters
      form_params = {}

      # http body (model)
      post_body = nil
      auth_names = ['ultraCartBrowserApiKey', 'ultraCartOauth', 'ultraCartSimpleApiKey']
      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 => 'TwilioResponse')
      if @api_client.config.debugging
        @api_client.config.logger.debug "API called: StorefrontApi#get_twilio_account\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
      end
      return data, status_code, headers
    end
    # Get all Twilio accounts
    # @param [Hash] opts the optional parameters
    # @return [TwiliosResponse]
    def get_twilio_accounts(opts = {})
      data, _status_code, _headers = get_twilio_accounts_with_http_info(opts)
      data
    end

    # Get all Twilio accounts
    # @param [Hash] opts the optional parameters
    # @return [Array<(TwiliosResponse, Fixnum, Hash)>] TwiliosResponse data, response status code and response headers
    def get_twilio_accounts_with_http_info(opts = {})
      if @api_client.config.debugging
        @api_client.config.logger.debug 'Calling API: StorefrontApi.get_twilio_accounts ...'
      end
      # resource path
      local_var_path = '/storefront/twilio/accounts'

      # query parameters
      query_params = {}

      # header parameters
      header_params = {}
      header_params['X-UltraCart-Api-Version'] = @api_client.select_header_api_version()
      # HTTP header 'Accept' (if needed)
      header_params['Accept'] = @api_client.select_header_accept(['application/json'])
      # HTTP header 'Content-Type'
      header_params['Content-Type'] = @api_client.select_header_content_type(['application/json'])

      # form parameters
      form_params = {}

      # http body (model)
      post_body = nil
      auth_names = ['ultraCartBrowserApiKey', 'ultraCartOauth', 'ultraCartSimpleApiKey']
      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 => 'TwiliosResponse')
      if @api_client.config.debugging
        @api_client.config.logger.debug "API called: StorefrontApi#get_twilio_accounts\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
      end
      return data, status_code, headers
    end
    # Globally unsubscribe a customer
    # @param storefront_oid 
    # @param unsubscribe Unsubscribe
    # @param [Hash] opts the optional parameters
    # @return [EmailGlobalUnsubscribeResponse]
    def global_unsubscribe(storefront_oid, unsubscribe, opts = {})
      data, _status_code, _headers = global_unsubscribe_with_http_info(storefront_oid, unsubscribe, opts)
      data
    end

    # Globally unsubscribe a customer
    # @param storefront_oid 
    # @param unsubscribe Unsubscribe
    # @param [Hash] opts the optional parameters
    # @return [Array<(EmailGlobalUnsubscribeResponse, Fixnum, Hash)>] EmailGlobalUnsubscribeResponse data, response status code and response headers
    def global_unsubscribe_with_http_info(storefront_oid, unsubscribe, opts = {})
      if @api_client.config.debugging
        @api_client.config.logger.debug 'Calling API: StorefrontApi.global_unsubscribe ...'
      end
      # verify the required parameter 'storefront_oid' is set
      if @api_client.config.client_side_validation && storefront_oid.nil?
        fail ArgumentError, "Missing the required parameter 'storefront_oid' when calling StorefrontApi.global_unsubscribe"
      end
      # verify the required parameter 'unsubscribe' is set
      if @api_client.config.client_side_validation && unsubscribe.nil?
        fail ArgumentError, "Missing the required parameter 'unsubscribe' when calling StorefrontApi.global_unsubscribe"
      end
      # resource path
      local_var_path = '/storefront/{storefront_oid}/email/globalUnsubscribe'.sub('{' + 'storefront_oid' + '}', storefront_oid.to_s)

      # query parameters
      query_params = {}

      # header parameters
      header_params = {}
      header_params['X-UltraCart-Api-Version'] = @api_client.select_header_api_version()
      # HTTP header 'Accept' (if needed)
      header_params['Accept'] = @api_client.select_header_accept(['application/json'])
      # HTTP header 'Content-Type'
      header_params['Content-Type'] = @api_client.select_header_content_type(['application/json'])

      # form parameters
      form_params = {}

      # http body (model)
      post_body = @api_client.object_to_http_body(unsubscribe)
      auth_names = ['ultraCartBrowserApiKey', 'ultraCartOauth', 'ultraCartSimpleApiKey']
      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 => 'EmailGlobalUnsubscribeResponse')
      if @api_client.config.debugging
        @api_client.config.logger.debug "API called: StorefrontApi#global_unsubscribe\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
      end
      return data, status_code, headers
    end
    # Import a third party provider list
    # @param storefront_oid 
    # @param import_request lists to import
    # @param [Hash] opts the optional parameters
    # @return [nil]
    def import_email_third_party_provider_list(storefront_oid, import_request, opts = {})
      import_email_third_party_provider_list_with_http_info(storefront_oid, import_request, opts)
      nil
    end

    # Import a third party provider list
    # @param storefront_oid 
    # @param import_request lists to import
    # @param [Hash] opts the optional parameters
    # @return [Array<(nil, Fixnum, Hash)>] nil, response status code and response headers
    def import_email_third_party_provider_list_with_http_info(storefront_oid, import_request, opts = {})
      if @api_client.config.debugging
        @api_client.config.logger.debug 'Calling API: StorefrontApi.import_email_third_party_provider_list ...'
      end
      # verify the required parameter 'storefront_oid' is set
      if @api_client.config.client_side_validation && storefront_oid.nil?
        fail ArgumentError, "Missing the required parameter 'storefront_oid' when calling StorefrontApi.import_email_third_party_provider_list"
      end
      # verify the required parameter 'import_request' is set
      if @api_client.config.client_side_validation && import_request.nil?
        fail ArgumentError, "Missing the required parameter 'import_request' when calling StorefrontApi.import_email_third_party_provider_list"
      end
      # resource path
      local_var_path = '/storefront/{storefront_oid}/email/third_party_providers/import'.sub('{' + 'storefront_oid' + '}', storefront_oid.to_s)

      # query parameters
      query_params = {}

      # header parameters
      header_params = {}
      header_params['X-UltraCart-Api-Version'] = @api_client.select_header_api_version()
      # HTTP header 'Accept' (if needed)
      header_params['Accept'] = @api_client.select_header_accept(['application/json'])
      # HTTP header 'Content-Type'
      header_params['Content-Type'] = @api_client.select_header_content_type(['application/json'])

      # form parameters
      form_params = {}

      # http body (model)
      post_body = @api_client.object_to_http_body(import_request)
      auth_names = ['ultraCartBrowserApiKey', 'ultraCartOauth', 'ultraCartSimpleApiKey']
      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: StorefrontApi#import_email_third_party_provider_list\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
      end
      return data, status_code, headers
    end
    # Insert email campaign
    # @param storefront_oid 
    # @param email_campaign Email campaign
    # @param [Hash] opts the optional parameters
    # @return [EmailCampaignResponse]
    def insert_email_campaign(storefront_oid, email_campaign, opts = {})
      data, _status_code, _headers = insert_email_campaign_with_http_info(storefront_oid, email_campaign, opts)
      data
    end

    # Insert email campaign
    # @param storefront_oid 
    # @param email_campaign Email campaign
    # @param [Hash] opts the optional parameters
    # @return [Array<(EmailCampaignResponse, Fixnum, Hash)>] EmailCampaignResponse data, response status code and response headers
    def insert_email_campaign_with_http_info(storefront_oid, email_campaign, opts = {})
      if @api_client.config.debugging
        @api_client.config.logger.debug 'Calling API: StorefrontApi.insert_email_campaign ...'
      end
      # verify the required parameter 'storefront_oid' is set
      if @api_client.config.client_side_validation && storefront_oid.nil?
        fail ArgumentError, "Missing the required parameter 'storefront_oid' when calling StorefrontApi.insert_email_campaign"
      end
      # verify the required parameter 'email_campaign' is set
      if @api_client.config.client_side_validation && email_campaign.nil?
        fail ArgumentError, "Missing the required parameter 'email_campaign' when calling StorefrontApi.insert_email_campaign"
      end
      # resource path
      local_var_path = '/storefront/{storefront_oid}/email/campaigns'.sub('{' + 'storefront_oid' + '}', storefront_oid.to_s)

      # query parameters
      query_params = {}

      # header parameters
      header_params = {}
      header_params['X-UltraCart-Api-Version'] = @api_client.select_header_api_version()
      # HTTP header 'Accept' (if needed)
      header_params['Accept'] = @api_client.select_header_accept(['application/json'])
      # HTTP header 'Content-Type'
      header_params['Content-Type'] = @api_client.select_header_content_type(['application/json'])

      # form parameters
      form_params = {}

      # http body (model)
      post_body = @api_client.object_to_http_body(email_campaign)
      auth_names = ['ultraCartBrowserApiKey', 'ultraCartOauth', 'ultraCartSimpleApiKey']
      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 => 'EmailCampaignResponse')
      if @api_client.config.debugging
        @api_client.config.logger.debug "API called: StorefrontApi#insert_email_campaign\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
      end
      return data, status_code, headers
    end
    # Insert email campaign folder
    # @param storefront_oid 
    # @param email_campaign_folder Email campaign folder
    # @param [Hash] opts the optional parameters
    # @return [EmailCampaignFolderResponse]
    def insert_email_campaign_folder(storefront_oid, email_campaign_folder, opts = {})
      data, _status_code, _headers = insert_email_campaign_folder_with_http_info(storefront_oid, email_campaign_folder, opts)
      data
    end

    # Insert email campaign folder
    # @param storefront_oid 
    # @param email_campaign_folder Email campaign folder
    # @param [Hash] opts the optional parameters
    # @return [Array<(EmailCampaignFolderResponse, Fixnum, Hash)>] EmailCampaignFolderResponse data, response status code and response headers
    def insert_email_campaign_folder_with_http_info(storefront_oid, email_campaign_folder, opts = {})
      if @api_client.config.debugging
        @api_client.config.logger.debug 'Calling API: StorefrontApi.insert_email_campaign_folder ...'
      end
      # verify the required parameter 'storefront_oid' is set
      if @api_client.config.client_side_validation && storefront_oid.nil?
        fail ArgumentError, "Missing the required parameter 'storefront_oid' when calling StorefrontApi.insert_email_campaign_folder"
      end
      # verify the required parameter 'email_campaign_folder' is set
      if @api_client.config.client_side_validation && email_campaign_folder.nil?
        fail ArgumentError, "Missing the required parameter 'email_campaign_folder' when calling StorefrontApi.insert_email_campaign_folder"
      end
      # resource path
      local_var_path = '/storefront/{storefront_oid}/email/campaign_folders'.sub('{' + 'storefront_oid' + '}', storefront_oid.to_s)

      # query parameters
      query_params = {}

      # header parameters
      header_params = {}
      header_params['X-UltraCart-Api-Version'] = @api_client.select_header_api_version()
      # HTTP header 'Accept' (if needed)
      header_params['Accept'] = @api_client.select_header_accept(['application/json'])
      # HTTP header 'Content-Type'
      header_params['Content-Type'] = @api_client.select_header_content_type(['application/json'])

      # form parameters
      form_params = {}

      # http body (model)
      post_body = @api_client.object_to_http_body(email_campaign_folder)
      auth_names = ['ultraCartBrowserApiKey', 'ultraCartOauth', 'ultraCartSimpleApiKey']
      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 => 'EmailCampaignFolderResponse')
      if @api_client.config.debugging
        @api_client.config.logger.debug "API called: StorefrontApi#insert_email_campaign_folder\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
      end
      return data, status_code, headers
    end
    # Insert email commseq
    # @param storefront_oid 
    # @param email_commseq Email commseq
    # @param [Hash] opts the optional parameters
    # @return [EmailCommseqResponse]
    def insert_email_commseq(storefront_oid, email_commseq, opts = {})
      data, _status_code, _headers = insert_email_commseq_with_http_info(storefront_oid, email_commseq, opts)
      data
    end

    # Insert email commseq
    # @param storefront_oid 
    # @param email_commseq Email commseq
    # @param [Hash] opts the optional parameters
    # @return [Array<(EmailCommseqResponse, Fixnum, Hash)>] EmailCommseqResponse data, response status code and response headers
    def insert_email_commseq_with_http_info(storefront_oid, email_commseq, opts = {})
      if @api_client.config.debugging
        @api_client.config.logger.debug 'Calling API: StorefrontApi.insert_email_commseq ...'
      end
      # verify the required parameter 'storefront_oid' is set
      if @api_client.config.client_side_validation && storefront_oid.nil?
        fail ArgumentError, "Missing the required parameter 'storefront_oid' when calling StorefrontApi.insert_email_commseq"
      end
      # verify the required parameter 'email_commseq' is set
      if @api_client.config.client_side_validation && email_commseq.nil?
        fail ArgumentError, "Missing the required parameter 'email_commseq' when calling StorefrontApi.insert_email_commseq"
      end
      # resource path
      local_var_path = '/storefront/{storefront_oid}/email/commseqs'.sub('{' + 'storefront_oid' + '}', storefront_oid.to_s)

      # query parameters
      query_params = {}

      # header parameters
      header_params = {}
      header_params['X-UltraCart-Api-Version'] = @api_client.select_header_api_version()
      # HTTP header 'Accept' (if needed)
      header_params['Accept'] = @api_client.select_header_accept(['application/json'])
      # HTTP header 'Content-Type'
      header_params['Content-Type'] = @api_client.select_header_content_type(['application/json'])

      # form parameters
      form_params = {}

      # http body (model)
      post_body = @api_client.object_to_http_body(email_commseq)
      auth_names = ['ultraCartBrowserApiKey', 'ultraCartOauth', 'ultraCartSimpleApiKey']
      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 => 'EmailCommseqResponse')
      if @api_client.config.debugging
        @api_client.config.logger.debug "API called: StorefrontApi#insert_email_commseq\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
      end
      return data, status_code, headers
    end
    # Insert email email
    # @param storefront_oid 
    # @param email_commseq_email Email email
    # @param [Hash] opts the optional parameters
    # @return [EmailCommseqEmailResponse]
    def insert_email_email(storefront_oid, email_commseq_email, opts = {})
      data, _status_code, _headers = insert_email_email_with_http_info(storefront_oid, email_commseq_email, opts)
      data
    end

    # Insert email email
    # @param storefront_oid 
    # @param email_commseq_email Email email
    # @param [Hash] opts the optional parameters
    # @return [Array<(EmailCommseqEmailResponse, Fixnum, Hash)>] EmailCommseqEmailResponse data, response status code and response headers
    def insert_email_email_with_http_info(storefront_oid, email_commseq_email, opts = {})
      if @api_client.config.debugging
        @api_client.config.logger.debug 'Calling API: StorefrontApi.insert_email_email ...'
      end
      # verify the required parameter 'storefront_oid' is set
      if @api_client.config.client_side_validation && storefront_oid.nil?
        fail ArgumentError, "Missing the required parameter 'storefront_oid' when calling StorefrontApi.insert_email_email"
      end
      # verify the required parameter 'email_commseq_email' is set
      if @api_client.config.client_side_validation && email_commseq_email.nil?
        fail ArgumentError, "Missing the required parameter 'email_commseq_email' when calling StorefrontApi.insert_email_email"
      end
      # resource path
      local_var_path = '/storefront/{storefront_oid}/email/emails'.sub('{' + 'storefront_oid' + '}', storefront_oid.to_s)

      # query parameters
      query_params = {}

      # header parameters
      header_params = {}
      header_params['X-UltraCart-Api-Version'] = @api_client.select_header_api_version()
      # HTTP header 'Accept' (if needed)
      header_params['Accept'] = @api_client.select_header_accept(['application/json'])
      # HTTP header 'Content-Type'
      header_params['Content-Type'] = @api_client.select_header_content_type(['application/json'])

      # form parameters
      form_params = {}

      # http body (model)
      post_body = @api_client.object_to_http_body(email_commseq_email)
      auth_names = ['ultraCartBrowserApiKey', 'ultraCartOauth', 'ultraCartSimpleApiKey']
      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 => 'EmailCommseqEmailResponse')
      if @api_client.config.debugging
        @api_client.config.logger.debug "API called: StorefrontApi#insert_email_email\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
      end
      return data, status_code, headers
    end
    # Insert email flow
    # @param storefront_oid 
    # @param email_flow Email flow
    # @param [Hash] opts the optional parameters
    # @return [EmailFlowResponse]
    def insert_email_flow(storefront_oid, email_flow, opts = {})
      data, _status_code, _headers = insert_email_flow_with_http_info(storefront_oid, email_flow, opts)
      data
    end

    # Insert email flow
    # @param storefront_oid 
    # @param email_flow Email flow
    # @param [Hash] opts the optional parameters
    # @return [Array<(EmailFlowResponse, Fixnum, Hash)>] EmailFlowResponse data, response status code and response headers
    def insert_email_flow_with_http_info(storefront_oid, email_flow, opts = {})
      if @api_client.config.debugging
        @api_client.config.logger.debug 'Calling API: StorefrontApi.insert_email_flow ...'
      end
      # verify the required parameter 'storefront_oid' is set
      if @api_client.config.client_side_validation && storefront_oid.nil?
        fail ArgumentError, "Missing the required parameter 'storefront_oid' when calling StorefrontApi.insert_email_flow"
      end
      # verify the required parameter 'email_flow' is set
      if @api_client.config.client_side_validation && email_flow.nil?
        fail ArgumentError, "Missing the required parameter 'email_flow' when calling StorefrontApi.insert_email_flow"
      end
      # resource path
      local_var_path = '/storefront/{storefront_oid}/email/flows'.sub('{' + 'storefront_oid' + '}', storefront_oid.to_s)

      # query parameters
      query_params = {}

      # header parameters
      header_params = {}
      header_params['X-UltraCart-Api-Version'] = @api_client.select_header_api_version()
      # HTTP header 'Accept' (if needed)
      header_params['Accept'] = @api_client.select_header_accept(['application/json'])
      # HTTP header 'Content-Type'
      header_params['Content-Type'] = @api_client.select_header_content_type(['application/json'])

      # form parameters
      form_params = {}

      # http body (model)
      post_body = @api_client.object_to_http_body(email_flow)
      auth_names = ['ultraCartBrowserApiKey', 'ultraCartOauth', 'ultraCartSimpleApiKey']
      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 => 'EmailFlowResponse')
      if @api_client.config.debugging
        @api_client.config.logger.debug "API called: StorefrontApi#insert_email_flow\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
      end
      return data, status_code, headers
    end
    # Insert email flow folder
    # @param storefront_oid 
    # @param email_flow_folder Email flow folder
    # @param [Hash] opts the optional parameters
    # @return [EmailFlowFolderResponse]
    def insert_email_flow_folder(storefront_oid, email_flow_folder, opts = {})
      data, _status_code, _headers = insert_email_flow_folder_with_http_info(storefront_oid, email_flow_folder, opts)
      data
    end

    # Insert email flow folder
    # @param storefront_oid 
    # @param email_flow_folder Email flow folder
    # @param [Hash] opts the optional parameters
    # @return [Array<(EmailFlowFolderResponse, Fixnum, Hash)>] EmailFlowFolderResponse data, response status code and response headers
    def insert_email_flow_folder_with_http_info(storefront_oid, email_flow_folder, opts = {})
      if @api_client.config.debugging
        @api_client.config.logger.debug 'Calling API: StorefrontApi.insert_email_flow_folder ...'
      end
      # verify the required parameter 'storefront_oid' is set
      if @api_client.config.client_side_validation && storefront_oid.nil?
        fail ArgumentError, "Missing the required parameter 'storefront_oid' when calling StorefrontApi.insert_email_flow_folder"
      end
      # verify the required parameter 'email_flow_folder' is set
      if @api_client.config.client_side_validation && email_flow_folder.nil?
        fail ArgumentError, "Missing the required parameter 'email_flow_folder' when calling StorefrontApi.insert_email_flow_folder"
      end
      # resource path
      local_var_path = '/storefront/{storefront_oid}/email/flow_folders'.sub('{' + 'storefront_oid' + '}', storefront_oid.to_s)

      # query parameters
      query_params = {}

      # header parameters
      header_params = {}
      header_params['X-UltraCart-Api-Version'] = @api_client.select_header_api_version()
      # HTTP header 'Accept' (if needed)
      header_params['Accept'] = @api_client.select_header_accept(['application/json'])
      # HTTP header 'Content-Type'
      header_params['Content-Type'] = @api_client.select_header_content_type(['application/json'])

      # form parameters
      form_params = {}

      # http body (model)
      post_body = @api_client.object_to_http_body(email_flow_folder)
      auth_names = ['ultraCartBrowserApiKey', 'ultraCartOauth', 'ultraCartSimpleApiKey']
      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 => 'EmailFlowFolderResponse')
      if @api_client.config.debugging
        @api_client.config.logger.debug "API called: StorefrontApi#insert_email_flow_folder\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
      end
      return data, status_code, headers
    end
    # Insert email list
    # @param storefront_oid 
    # @param email_list Email list
    # @param [Hash] opts the optional parameters
    # @return [EmailListResponse]
    def insert_email_list(storefront_oid, email_list, opts = {})
      data, _status_code, _headers = insert_email_list_with_http_info(storefront_oid, email_list, opts)
      data
    end

    # Insert email list
    # @param storefront_oid 
    # @param email_list Email list
    # @param [Hash] opts the optional parameters
    # @return [Array<(EmailListResponse, Fixnum, Hash)>] EmailListResponse data, response status code and response headers
    def insert_email_list_with_http_info(storefront_oid, email_list, opts = {})
      if @api_client.config.debugging
        @api_client.config.logger.debug 'Calling API: StorefrontApi.insert_email_list ...'
      end
      # verify the required parameter 'storefront_oid' is set
      if @api_client.config.client_side_validation && storefront_oid.nil?
        fail ArgumentError, "Missing the required parameter 'storefront_oid' when calling StorefrontApi.insert_email_list"
      end
      # verify the required parameter 'email_list' is set
      if @api_client.config.client_side_validation && email_list.nil?
        fail ArgumentError, "Missing the required parameter 'email_list' when calling StorefrontApi.insert_email_list"
      end
      # resource path
      local_var_path = '/storefront/{storefront_oid}/email/lists'.sub('{' + 'storefront_oid' + '}', storefront_oid.to_s)

      # query parameters
      query_params = {}

      # header parameters
      header_params = {}
      header_params['X-UltraCart-Api-Version'] = @api_client.select_header_api_version()
      # HTTP header 'Accept' (if needed)
      header_params['Accept'] = @api_client.select_header_accept(['application/json'])
      # HTTP header 'Content-Type'
      header_params['Content-Type'] = @api_client.select_header_content_type(['application/json'])

      # form parameters
      form_params = {}

      # http body (model)
      post_body = @api_client.object_to_http_body(email_list)
      auth_names = ['ultraCartBrowserApiKey', 'ultraCartOauth', 'ultraCartSimpleApiKey']
      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 => 'EmailListResponse')
      if @api_client.config.debugging
        @api_client.config.logger.debug "API called: StorefrontApi#insert_email_list\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
      end
      return data, status_code, headers
    end
    # Insert email campaign folder
    # @param storefront_oid 
    # @param email_list_segment_folder Email campaign folder
    # @param [Hash] opts the optional parameters
    # @return [EmailListSegmentFolderResponse]
    def insert_email_list_segment_folder(storefront_oid, email_list_segment_folder, opts = {})
      data, _status_code, _headers = insert_email_list_segment_folder_with_http_info(storefront_oid, email_list_segment_folder, opts)
      data
    end

    # Insert email campaign folder
    # @param storefront_oid 
    # @param email_list_segment_folder Email campaign folder
    # @param [Hash] opts the optional parameters
    # @return [Array<(EmailListSegmentFolderResponse, Fixnum, Hash)>] EmailListSegmentFolderResponse data, response status code and response headers
    def insert_email_list_segment_folder_with_http_info(storefront_oid, email_list_segment_folder, opts = {})
      if @api_client.config.debugging
        @api_client.config.logger.debug 'Calling API: StorefrontApi.insert_email_list_segment_folder ...'
      end
      # verify the required parameter 'storefront_oid' is set
      if @api_client.config.client_side_validation && storefront_oid.nil?
        fail ArgumentError, "Missing the required parameter 'storefront_oid' when calling StorefrontApi.insert_email_list_segment_folder"
      end
      # verify the required parameter 'email_list_segment_folder' is set
      if @api_client.config.client_side_validation && email_list_segment_folder.nil?
        fail ArgumentError, "Missing the required parameter 'email_list_segment_folder' when calling StorefrontApi.insert_email_list_segment_folder"
      end
      # resource path
      local_var_path = '/storefront/{storefront_oid}/email/list_segment_folders'.sub('{' + 'storefront_oid' + '}', storefront_oid.to_s)

      # query parameters
      query_params = {}

      # header parameters
      header_params = {}
      header_params['X-UltraCart-Api-Version'] = @api_client.select_header_api_version()
      # HTTP header 'Accept' (if needed)
      header_params['Accept'] = @api_client.select_header_accept(['application/json'])
      # HTTP header 'Content-Type'
      header_params['Content-Type'] = @api_client.select_header_content_type(['application/json'])

      # form parameters
      form_params = {}

      # http body (model)
      post_body = @api_client.object_to_http_body(email_list_segment_folder)
      auth_names = ['ultraCartBrowserApiKey', 'ultraCartOauth', 'ultraCartSimpleApiKey']
      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 => 'EmailListSegmentFolderResponse')
      if @api_client.config.debugging
        @api_client.config.logger.debug "API called: StorefrontApi#insert_email_list_segment_folder\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
      end
      return data, status_code, headers
    end
    # Insert email postcard
    # @param storefront_oid 
    # @param email_commseq_postcard Email postcard
    # @param [Hash] opts the optional parameters
    # @return [EmailCommseqPostcardResponse]
    def insert_email_postcard(storefront_oid, email_commseq_postcard, opts = {})
      data, _status_code, _headers = insert_email_postcard_with_http_info(storefront_oid, email_commseq_postcard, opts)
      data
    end

    # Insert email postcard
    # @param storefront_oid 
    # @param email_commseq_postcard Email postcard
    # @param [Hash] opts the optional parameters
    # @return [Array<(EmailCommseqPostcardResponse, Fixnum, Hash)>] EmailCommseqPostcardResponse data, response status code and response headers
    def insert_email_postcard_with_http_info(storefront_oid, email_commseq_postcard, opts = {})
      if @api_client.config.debugging
        @api_client.config.logger.debug 'Calling API: StorefrontApi.insert_email_postcard ...'
      end
      # verify the required parameter 'storefront_oid' is set
      if @api_client.config.client_side_validation && storefront_oid.nil?
        fail ArgumentError, "Missing the required parameter 'storefront_oid' when calling StorefrontApi.insert_email_postcard"
      end
      # verify the required parameter 'email_commseq_postcard' is set
      if @api_client.config.client_side_validation && email_commseq_postcard.nil?
        fail ArgumentError, "Missing the required parameter 'email_commseq_postcard' when calling StorefrontApi.insert_email_postcard"
      end
      # resource path
      local_var_path = '/storefront/{storefront_oid}/email/postcards'.sub('{' + 'storefront_oid' + '}', storefront_oid.to_s)

      # query parameters
      query_params = {}

      # header parameters
      header_params = {}
      header_params['X-UltraCart-Api-Version'] = @api_client.select_header_api_version()
      # HTTP header 'Accept' (if needed)
      header_params['Accept'] = @api_client.select_header_accept(['application/json'])
      # HTTP header 'Content-Type'
      header_params['Content-Type'] = @api_client.select_header_content_type(['application/json'])

      # form parameters
      form_params = {}

      # http body (model)
      post_body = @api_client.object_to_http_body(email_commseq_postcard)
      auth_names = ['ultraCartBrowserApiKey', 'ultraCartOauth', 'ultraCartSimpleApiKey']
      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 => 'EmailCommseqPostcardResponse')
      if @api_client.config.debugging
        @api_client.config.logger.debug "API called: StorefrontApi#insert_email_postcard\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
      end
      return data, status_code, headers
    end
    # Insert email segment
    # @param storefront_oid 
    # @param email_segment Email segment
    # @param [Hash] opts the optional parameters
    # @return [EmailSegmentResponse]
    def insert_email_segment(storefront_oid, email_segment, opts = {})
      data, _status_code, _headers = insert_email_segment_with_http_info(storefront_oid, email_segment, opts)
      data
    end

    # Insert email segment
    # @param storefront_oid 
    # @param email_segment Email segment
    # @param [Hash] opts the optional parameters
    # @return [Array<(EmailSegmentResponse, Fixnum, Hash)>] EmailSegmentResponse data, response status code and response headers
    def insert_email_segment_with_http_info(storefront_oid, email_segment, opts = {})
      if @api_client.config.debugging
        @api_client.config.logger.debug 'Calling API: StorefrontApi.insert_email_segment ...'
      end
      # verify the required parameter 'storefront_oid' is set
      if @api_client.config.client_side_validation && storefront_oid.nil?
        fail ArgumentError, "Missing the required parameter 'storefront_oid' when calling StorefrontApi.insert_email_segment"
      end
      # verify the required parameter 'email_segment' is set
      if @api_client.config.client_side_validation && email_segment.nil?
        fail ArgumentError, "Missing the required parameter 'email_segment' when calling StorefrontApi.insert_email_segment"
      end
      # resource path
      local_var_path = '/storefront/{storefront_oid}/email/segments'.sub('{' + 'storefront_oid' + '}', storefront_oid.to_s)

      # query parameters
      query_params = {}

      # header parameters
      header_params = {}
      header_params['X-UltraCart-Api-Version'] = @api_client.select_header_api_version()
      # HTTP header 'Accept' (if needed)
      header_params['Accept'] = @api_client.select_header_accept(['application/json'])
      # HTTP header 'Content-Type'
      header_params['Content-Type'] = @api_client.select_header_content_type(['application/json'])

      # form parameters
      form_params = {}

      # http body (model)
      post_body = @api_client.object_to_http_body(email_segment)
      auth_names = ['ultraCartBrowserApiKey', 'ultraCartOauth', 'ultraCartSimpleApiKey']
      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 => 'EmailSegmentResponse')
      if @api_client.config.debugging
        @api_client.config.logger.debug "API called: StorefrontApi#insert_email_segment\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
      end
      return data, status_code, headers
    end
    # Insert screen recording segment
    # @param storefront_oid 
    # @param segment Segment
    # @param [Hash] opts the optional parameters
    # @return [ScreenRecordingSegmentResponse]
    def insert_screen_recording_segment(storefront_oid, segment, opts = {})
      data, _status_code, _headers = insert_screen_recording_segment_with_http_info(storefront_oid, segment, opts)
      data
    end

    # Insert screen recording segment
    # @param storefront_oid 
    # @param segment Segment
    # @param [Hash] opts the optional parameters
    # @return [Array<(ScreenRecordingSegmentResponse, Fixnum, Hash)>] ScreenRecordingSegmentResponse data, response status code and response headers
    def insert_screen_recording_segment_with_http_info(storefront_oid, segment, opts = {})
      if @api_client.config.debugging
        @api_client.config.logger.debug 'Calling API: StorefrontApi.insert_screen_recording_segment ...'
      end
      # verify the required parameter 'storefront_oid' is set
      if @api_client.config.client_side_validation && storefront_oid.nil?
        fail ArgumentError, "Missing the required parameter 'storefront_oid' when calling StorefrontApi.insert_screen_recording_segment"
      end
      # verify the required parameter 'segment' is set
      if @api_client.config.client_side_validation && segment.nil?
        fail ArgumentError, "Missing the required parameter 'segment' when calling StorefrontApi.insert_screen_recording_segment"
      end
      # resource path
      local_var_path = '/storefront/{storefront_oid}/screen_recordings/segments'.sub('{' + 'storefront_oid' + '}', storefront_oid.to_s)

      # query parameters
      query_params = {}

      # header parameters
      header_params = {}
      header_params['X-UltraCart-Api-Version'] = @api_client.select_header_api_version()
      # HTTP header 'Accept' (if needed)
      header_params['Accept'] = @api_client.select_header_accept(['application/json'])
      # HTTP header 'Content-Type'
      header_params['Content-Type'] = @api_client.select_header_content_type(['application/json'])

      # form parameters
      form_params = {}

      # http body (model)
      post_body = @api_client.object_to_http_body(segment)
      auth_names = ['ultraCartBrowserApiKey', 'ultraCartOauth', 'ultraCartSimpleApiKey']
      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 => 'ScreenRecordingSegmentResponse')
      if @api_client.config.debugging
        @api_client.config.logger.debug "API called: StorefrontApi#insert_screen_recording_segment\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
      end
      return data, status_code, headers
    end
    # Prepare download of email segment
    # @param storefront_oid 
    # @param email_segment_uuid 
    # @param [Hash] opts the optional parameters
    # @return [EmailSegmentDownloadPrepareResponse]
    def prepare_download_email_segment(storefront_oid, email_segment_uuid, opts = {})
      data, _status_code, _headers = prepare_download_email_segment_with_http_info(storefront_oid, email_segment_uuid, opts)
      data
    end

    # Prepare download of email segment
    # @param storefront_oid 
    # @param email_segment_uuid 
    # @param [Hash] opts the optional parameters
    # @return [Array<(EmailSegmentDownloadPrepareResponse, Fixnum, Hash)>] EmailSegmentDownloadPrepareResponse data, response status code and response headers
    def prepare_download_email_segment_with_http_info(storefront_oid, email_segment_uuid, opts = {})
      if @api_client.config.debugging
        @api_client.config.logger.debug 'Calling API: StorefrontApi.prepare_download_email_segment ...'
      end
      # verify the required parameter 'storefront_oid' is set
      if @api_client.config.client_side_validation && storefront_oid.nil?
        fail ArgumentError, "Missing the required parameter 'storefront_oid' when calling StorefrontApi.prepare_download_email_segment"
      end
      # verify the required parameter 'email_segment_uuid' is set
      if @api_client.config.client_side_validation && email_segment_uuid.nil?
        fail ArgumentError, "Missing the required parameter 'email_segment_uuid' when calling StorefrontApi.prepare_download_email_segment"
      end
      # resource path
      local_var_path = '/storefront/{storefront_oid}/email/segments/{email_segment_uuid}/downloadPrepare'.sub('{' + 'storefront_oid' + '}', storefront_oid.to_s).sub('{' + 'email_segment_uuid' + '}', email_segment_uuid.to_s)

      # query parameters
      query_params = {}

      # header parameters
      header_params = {}
      header_params['X-UltraCart-Api-Version'] = @api_client.select_header_api_version()
      # HTTP header 'Accept' (if needed)
      header_params['Accept'] = @api_client.select_header_accept(['application/json'])
      # HTTP header 'Content-Type'
      header_params['Content-Type'] = @api_client.select_header_content_type(['application/json'])

      # form parameters
      form_params = {}

      # http body (model)
      post_body = nil
      auth_names = ['ultraCartBrowserApiKey', 'ultraCartOauth', 'ultraCartSimpleApiKey']
      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 => 'EmailSegmentDownloadPrepareResponse')
      if @api_client.config.debugging
        @api_client.config.logger.debug "API called: StorefrontApi#prepare_download_email_segment\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
      end
      return data, status_code, headers
    end
    # Publish library item.
    # @param library_item_oid 
    # @param publish_library_request Publish library item request
    # @param [Hash] opts the optional parameters
    # @return [LibraryItemResponse]
    def publish_library_item(library_item_oid, publish_library_request, opts = {})
      data, _status_code, _headers = publish_library_item_with_http_info(library_item_oid, publish_library_request, opts)
      data
    end

    # Publish library item.
    # @param library_item_oid 
    # @param publish_library_request Publish library item request
    # @param [Hash] opts the optional parameters
    # @return [Array<(LibraryItemResponse, Fixnum, Hash)>] LibraryItemResponse data, response status code and response headers
    def publish_library_item_with_http_info(library_item_oid, publish_library_request, opts = {})
      if @api_client.config.debugging
        @api_client.config.logger.debug 'Calling API: StorefrontApi.publish_library_item ...'
      end
      # verify the required parameter 'library_item_oid' is set
      if @api_client.config.client_side_validation && library_item_oid.nil?
        fail ArgumentError, "Missing the required parameter 'library_item_oid' when calling StorefrontApi.publish_library_item"
      end
      # verify the required parameter 'publish_library_request' is set
      if @api_client.config.client_side_validation && publish_library_request.nil?
        fail ArgumentError, "Missing the required parameter 'publish_library_request' when calling StorefrontApi.publish_library_item"
      end
      # resource path
      local_var_path = '/storefront/code_library/{library_item_oid}/publish'.sub('{' + 'library_item_oid' + '}', library_item_oid.to_s)

      # query parameters
      query_params = {}

      # header parameters
      header_params = {}
      header_params['X-UltraCart-Api-Version'] = @api_client.select_header_api_version()
      # HTTP header 'Accept' (if needed)
      header_params['Accept'] = @api_client.select_header_accept(['application/json'])
      # HTTP header 'Content-Type'
      header_params['Content-Type'] = @api_client.select_header_content_type(['application/json'])

      # form parameters
      form_params = {}

      # http body (model)
      post_body = @api_client.object_to_http_body(publish_library_request)
      auth_names = ['ultraCartBrowserApiKey', 'ultraCartOauth', 'ultraCartSimpleApiKey']
      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 => 'LibraryItemResponse')
      if @api_client.config.debugging
        @api_client.config.logger.debug "API called: StorefrontApi#publish_library_item\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
      end
      return data, status_code, headers
    end
    # Purchase public library item, which creates a copy of the item in your personal code library
    # @param library_item_oid 
    # @param [Hash] opts the optional parameters
    # @option opts [Integer] :storefront_oid 
    # @return [LibraryItemResponse]
    def purchase_library_item(library_item_oid, opts = {})
      data, _status_code, _headers = purchase_library_item_with_http_info(library_item_oid, opts)
      data
    end

    # Purchase public library item, which creates a copy of the item in your personal code library
    # @param library_item_oid 
    # @param [Hash] opts the optional parameters
    # @option opts [Integer] :storefront_oid 
    # @return [Array<(LibraryItemResponse, Fixnum, Hash)>] LibraryItemResponse data, response status code and response headers
    def purchase_library_item_with_http_info(library_item_oid, opts = {})
      if @api_client.config.debugging
        @api_client.config.logger.debug 'Calling API: StorefrontApi.purchase_library_item ...'
      end
      # verify the required parameter 'library_item_oid' is set
      if @api_client.config.client_side_validation && library_item_oid.nil?
        fail ArgumentError, "Missing the required parameter 'library_item_oid' when calling StorefrontApi.purchase_library_item"
      end
      # resource path
      local_var_path = '/storefront/code_library/{library_item_oid}/purchase'.sub('{' + 'library_item_oid' + '}', library_item_oid.to_s)

      # query parameters
      query_params = {}
      query_params[:'storefront_oid'] = opts[:'storefront_oid'] if !opts[:'storefront_oid'].nil?

      # header parameters
      header_params = {}
      header_params['X-UltraCart-Api-Version'] = @api_client.select_header_api_version()
      # HTTP header 'Accept' (if needed)
      header_params['Accept'] = @api_client.select_header_accept(['application/json'])
      # HTTP header 'Content-Type'
      header_params['Content-Type'] = @api_client.select_header_content_type(['application/json'])

      # form parameters
      form_params = {}

      # http body (model)
      post_body = nil
      auth_names = ['ultraCartBrowserApiKey', 'ultraCartOauth', 'ultraCartSimpleApiKey']
      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 => 'LibraryItemResponse')
      if @api_client.config.debugging
        @api_client.config.logger.debug "API called: StorefrontApi#purchase_library_item\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
      end
      return data, status_code, headers
    end
    # Release email communication sequence customers waiting at the specified step
    # @param storefront_oid 
    # @param commseq_uuid 
    # @param commseq_step_uuid 
    # @param [Hash] opts the optional parameters
    # @return [nil]
    def release_email_commseq_step_waiting(storefront_oid, commseq_uuid, commseq_step_uuid, opts = {})
      release_email_commseq_step_waiting_with_http_info(storefront_oid, commseq_uuid, commseq_step_uuid, opts)
      nil
    end

    # Release email communication sequence customers waiting at the specified step
    # @param storefront_oid 
    # @param commseq_uuid 
    # @param commseq_step_uuid 
    # @param [Hash] opts the optional parameters
    # @return [Array<(nil, Fixnum, Hash)>] nil, response status code and response headers
    def release_email_commseq_step_waiting_with_http_info(storefront_oid, commseq_uuid, commseq_step_uuid, opts = {})
      if @api_client.config.debugging
        @api_client.config.logger.debug 'Calling API: StorefrontApi.release_email_commseq_step_waiting ...'
      end
      # verify the required parameter 'storefront_oid' is set
      if @api_client.config.client_side_validation && storefront_oid.nil?
        fail ArgumentError, "Missing the required parameter 'storefront_oid' when calling StorefrontApi.release_email_commseq_step_waiting"
      end
      # verify the required parameter 'commseq_uuid' is set
      if @api_client.config.client_side_validation && commseq_uuid.nil?
        fail ArgumentError, "Missing the required parameter 'commseq_uuid' when calling StorefrontApi.release_email_commseq_step_waiting"
      end
      # verify the required parameter 'commseq_step_uuid' is set
      if @api_client.config.client_side_validation && commseq_step_uuid.nil?
        fail ArgumentError, "Missing the required parameter 'commseq_step_uuid' when calling StorefrontApi.release_email_commseq_step_waiting"
      end
      # resource path
      local_var_path = '/storefront/{storefront_oid}/email/commseqs/{commseq_uuid}/waiting/{commseq_step_uuid}'.sub('{' + 'storefront_oid' + '}', storefront_oid.to_s).sub('{' + 'commseq_uuid' + '}', commseq_uuid.to_s).sub('{' + 'commseq_step_uuid' + '}', commseq_step_uuid.to_s)

      # query parameters
      query_params = {}

      # header parameters
      header_params = {}
      header_params['X-UltraCart-Api-Version'] = @api_client.select_header_api_version()
      # HTTP header 'Accept' (if needed)
      header_params['Accept'] = @api_client.select_header_accept(['application/json'])
      # HTTP header 'Content-Type'
      header_params['Content-Type'] = @api_client.select_header_content_type(['application/json'])

      # form parameters
      form_params = {}

      # http body (model)
      post_body = nil
      auth_names = ['ultraCartBrowserApiKey', 'ultraCartOauth', 'ultraCartSimpleApiKey']
      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: StorefrontApi#release_email_commseq_step_waiting\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
      end
      return data, status_code, headers
    end
    # Request a review of an email
    # @param storefront_oid 
    # @param commseq_email_uuid 
    # @param email_commseq_email_review_request Email commseq email review request
    # @param [Hash] opts the optional parameters
    # @return [EmailCommseqEmailSendTestResponse]
    def review(storefront_oid, commseq_email_uuid, email_commseq_email_review_request, opts = {})
      data, _status_code, _headers = review_with_http_info(storefront_oid, commseq_email_uuid, email_commseq_email_review_request, opts)
      data
    end

    # Request a review of an email
    # @param storefront_oid 
    # @param commseq_email_uuid 
    # @param email_commseq_email_review_request Email commseq email review request
    # @param [Hash] opts the optional parameters
    # @return [Array<(EmailCommseqEmailSendTestResponse, Fixnum, Hash)>] EmailCommseqEmailSendTestResponse data, response status code and response headers
    def review_with_http_info(storefront_oid, commseq_email_uuid, email_commseq_email_review_request, opts = {})
      if @api_client.config.debugging
        @api_client.config.logger.debug 'Calling API: StorefrontApi.review ...'
      end
      # verify the required parameter 'storefront_oid' is set
      if @api_client.config.client_side_validation && storefront_oid.nil?
        fail ArgumentError, "Missing the required parameter 'storefront_oid' when calling StorefrontApi.review"
      end
      # verify the required parameter 'commseq_email_uuid' is set
      if @api_client.config.client_side_validation && commseq_email_uuid.nil?
        fail ArgumentError, "Missing the required parameter 'commseq_email_uuid' when calling StorefrontApi.review"
      end
      # verify the required parameter 'email_commseq_email_review_request' is set
      if @api_client.config.client_side_validation && email_commseq_email_review_request.nil?
        fail ArgumentError, "Missing the required parameter 'email_commseq_email_review_request' when calling StorefrontApi.review"
      end
      # resource path
      local_var_path = '/storefront/{storefront_oid}/email/emails/{commseq_email_uuid}/review'.sub('{' + 'storefront_oid' + '}', storefront_oid.to_s).sub('{' + 'commseq_email_uuid' + '}', commseq_email_uuid.to_s)

      # query parameters
      query_params = {}

      # header parameters
      header_params = {}
      header_params['X-UltraCart-Api-Version'] = @api_client.select_header_api_version()
      # HTTP header 'Accept' (if needed)
      header_params['Accept'] = @api_client.select_header_accept(['application/json'])
      # HTTP header 'Content-Type'
      header_params['Content-Type'] = @api_client.select_header_content_type(['application/json'])

      # form parameters
      form_params = {}

      # http body (model)
      post_body = @api_client.object_to_http_body(email_commseq_email_review_request)
      auth_names = ['ultraCartBrowserApiKey', 'ultraCartOauth', 'ultraCartSimpleApiKey']
      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 => 'EmailCommseqEmailSendTestResponse')
      if @api_client.config.debugging
        @api_client.config.logger.debug "API called: StorefrontApi#review\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
      end
      return data, status_code, headers
    end
    # Searches for all matching values
    # @param [Hash] opts the optional parameters
    # @option opts [String] :category 
    # @option opts [String] :matches 
    # @option opts [String] :storefront_oid 
    # @option opts [Integer] :max_hits 
    # @option opts [String] :subcategory 
    # @return [LookupResponse]
    def search(opts = {})
      data, _status_code, _headers = search_with_http_info(opts)
      data
    end

    # Searches for all matching values
    # @param [Hash] opts the optional parameters
    # @option opts [String] :category 
    # @option opts [String] :matches 
    # @option opts [String] :storefront_oid 
    # @option opts [Integer] :max_hits 
    # @option opts [String] :subcategory 
    # @return [Array<(LookupResponse, Fixnum, Hash)>] LookupResponse data, response status code and response headers
    def search_with_http_info(opts = {})
      if @api_client.config.debugging
        @api_client.config.logger.debug 'Calling API: StorefrontApi.search ...'
      end
      # resource path
      local_var_path = '/storefront/search'

      # query parameters
      query_params = {}
      query_params[:'category'] = opts[:'category'] if !opts[:'category'].nil?
      query_params[:'matches'] = opts[:'matches'] if !opts[:'matches'].nil?
      query_params[:'storefront_oid'] = opts[:'storefront_oid'] if !opts[:'storefront_oid'].nil?
      query_params[:'max_hits'] = opts[:'max_hits'] if !opts[:'max_hits'].nil?
      query_params[:'subcategory'] = opts[:'subcategory'] if !opts[:'subcategory'].nil?

      # header parameters
      header_params = {}
      header_params['X-UltraCart-Api-Version'] = @api_client.select_header_api_version()
      # HTTP header 'Accept' (if needed)
      header_params['Accept'] = @api_client.select_header_accept(['application/json'])
      # HTTP header 'Content-Type'
      header_params['Content-Type'] = @api_client.select_header_content_type(['application/json'])

      # form parameters
      form_params = {}

      # http body (model)
      post_body = nil
      auth_names = ['ultraCartBrowserApiKey', 'ultraCartOauth', 'ultraCartSimpleApiKey']
      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 => 'LookupResponse')
      if @api_client.config.debugging
        @api_client.config.logger.debug "API called: StorefrontApi#search\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
      end
      return data, status_code, headers
    end
    # Searches for all matching values (using POST)
    # @param lookup_request LookupRequest
    # @param [Hash] opts the optional parameters
    # @return [LookupResponse]
    def search2(lookup_request, opts = {})
      data, _status_code, _headers = search2_with_http_info(lookup_request, opts)
      data
    end

    # Searches for all matching values (using POST)
    # @param lookup_request LookupRequest
    # @param [Hash] opts the optional parameters
    # @return [Array<(LookupResponse, Fixnum, Hash)>] LookupResponse data, response status code and response headers
    def search2_with_http_info(lookup_request, opts = {})
      if @api_client.config.debugging
        @api_client.config.logger.debug 'Calling API: StorefrontApi.search2 ...'
      end
      # verify the required parameter 'lookup_request' is set
      if @api_client.config.client_side_validation && lookup_request.nil?
        fail ArgumentError, "Missing the required parameter 'lookup_request' when calling StorefrontApi.search2"
      end
      # resource path
      local_var_path = '/storefront/search'

      # query parameters
      query_params = {}

      # header parameters
      header_params = {}
      header_params['X-UltraCart-Api-Version'] = @api_client.select_header_api_version()
      # HTTP header 'Accept' (if needed)
      header_params['Accept'] = @api_client.select_header_accept(['application/json'])
      # HTTP header 'Content-Type'
      header_params['Content-Type'] = @api_client.select_header_content_type(['application/json'])

      # form parameters
      form_params = {}

      # http body (model)
      post_body = @api_client.object_to_http_body(lookup_request)
      auth_names = ['ultraCartBrowserApiKey', 'ultraCartOauth', 'ultraCartSimpleApiKey']
      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 => 'LookupResponse')
      if @api_client.config.debugging
        @api_client.config.logger.debug "API called: StorefrontApi#search2\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
      end
      return data, status_code, headers
    end
    # Search email list customers
    # @param storefront_oid 
    # @param email_list_uuid 
    # @param [Hash] opts the optional parameters
    # @option opts [String] :starts_with 
    # @return [EmailListCustomersResponse]
    def search_email_list_customers(storefront_oid, email_list_uuid, opts = {})
      data, _status_code, _headers = search_email_list_customers_with_http_info(storefront_oid, email_list_uuid, opts)
      data
    end

    # Search email list customers
    # @param storefront_oid 
    # @param email_list_uuid 
    # @param [Hash] opts the optional parameters
    # @option opts [String] :starts_with 
    # @return [Array<(EmailListCustomersResponse, Fixnum, Hash)>] EmailListCustomersResponse data, response status code and response headers
    def search_email_list_customers_with_http_info(storefront_oid, email_list_uuid, opts = {})
      if @api_client.config.debugging
        @api_client.config.logger.debug 'Calling API: StorefrontApi.search_email_list_customers ...'
      end
      # verify the required parameter 'storefront_oid' is set
      if @api_client.config.client_side_validation && storefront_oid.nil?
        fail ArgumentError, "Missing the required parameter 'storefront_oid' when calling StorefrontApi.search_email_list_customers"
      end
      # verify the required parameter 'email_list_uuid' is set
      if @api_client.config.client_side_validation && email_list_uuid.nil?
        fail ArgumentError, "Missing the required parameter 'email_list_uuid' when calling StorefrontApi.search_email_list_customers"
      end
      # resource path
      local_var_path = '/storefront/{storefront_oid}/email/lists/{email_list_uuid}/search'.sub('{' + 'storefront_oid' + '}', storefront_oid.to_s).sub('{' + 'email_list_uuid' + '}', email_list_uuid.to_s)

      # query parameters
      query_params = {}
      query_params[:'startsWith'] = opts[:'starts_with'] if !opts[:'starts_with'].nil?

      # header parameters
      header_params = {}
      header_params['X-UltraCart-Api-Version'] = @api_client.select_header_api_version()
      # HTTP header 'Accept' (if needed)
      header_params['Accept'] = @api_client.select_header_accept(['application/json'])
      # HTTP header 'Content-Type'
      header_params['Content-Type'] = @api_client.select_header_content_type(['application/json'])

      # form parameters
      form_params = {}

      # http body (model)
      post_body = nil
      auth_names = ['ultraCartBrowserApiKey', 'ultraCartOauth', 'ultraCartSimpleApiKey']
      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 => 'EmailListCustomersResponse')
      if @api_client.config.debugging
        @api_client.config.logger.debug "API called: StorefrontApi#search_email_list_customers\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
      end
      return data, status_code, headers
    end
    # Search email segment customers
    # @param storefront_oid 
    # @param email_segment_uuid 
    # @param [Hash] opts the optional parameters
    # @option opts [String] :starts_with 
    # @return [EmailSegmentCustomersResponse]
    def search_email_segment_customers(storefront_oid, email_segment_uuid, opts = {})
      data, _status_code, _headers = search_email_segment_customers_with_http_info(storefront_oid, email_segment_uuid, opts)
      data
    end

    # Search email segment customers
    # @param storefront_oid 
    # @param email_segment_uuid 
    # @param [Hash] opts the optional parameters
    # @option opts [String] :starts_with 
    # @return [Array<(EmailSegmentCustomersResponse, Fixnum, Hash)>] EmailSegmentCustomersResponse data, response status code and response headers
    def search_email_segment_customers_with_http_info(storefront_oid, email_segment_uuid, opts = {})
      if @api_client.config.debugging
        @api_client.config.logger.debug 'Calling API: StorefrontApi.search_email_segment_customers ...'
      end
      # verify the required parameter 'storefront_oid' is set
      if @api_client.config.client_side_validation && storefront_oid.nil?
        fail ArgumentError, "Missing the required parameter 'storefront_oid' when calling StorefrontApi.search_email_segment_customers"
      end
      # verify the required parameter 'email_segment_uuid' is set
      if @api_client.config.client_side_validation && email_segment_uuid.nil?
        fail ArgumentError, "Missing the required parameter 'email_segment_uuid' when calling StorefrontApi.search_email_segment_customers"
      end
      # resource path
      local_var_path = '/storefront/{storefront_oid}/email/segments/{email_segment_uuid}/search'.sub('{' + 'storefront_oid' + '}', storefront_oid.to_s).sub('{' + 'email_segment_uuid' + '}', email_segment_uuid.to_s)

      # query parameters
      query_params = {}
      query_params[:'startsWith'] = opts[:'starts_with'] if !opts[:'starts_with'].nil?

      # header parameters
      header_params = {}
      header_params['X-UltraCart-Api-Version'] = @api_client.select_header_api_version()
      # HTTP header 'Accept' (if needed)
      header_params['Accept'] = @api_client.select_header_accept(['application/json'])
      # HTTP header 'Content-Type'
      header_params['Content-Type'] = @api_client.select_header_content_type(['application/json'])

      # form parameters
      form_params = {}

      # http body (model)
      post_body = nil
      auth_names = ['ultraCartBrowserApiKey', 'ultraCartOauth', 'ultraCartSimpleApiKey']
      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 => 'EmailSegmentCustomersResponse')
      if @api_client.config.debugging
        @api_client.config.logger.debug "API called: StorefrontApi#search_email_segment_customers\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
      end
      return data, status_code, headers
    end
    # Retrieve library items
    # Retrieves a library items based on a query object.  If no parameters are specified, the API call will default to the merchant id only.  You will need to make multiple API calls in order to retrieve the entire result set since this API performs result set pagination. 
    # @param item_query Item query
    # @param [Hash] opts the optional parameters
    # @option opts [Integer] :_limit The maximum number of records to return on this one API call. (Maximum 10000) (default to 10000)
    # @option opts [Integer] :_offset Pagination of the record set.  Offset is a zero based index. (default to 0)
    # @option opts [String] :_sort The sort order of the library items.  See Sorting documentation for examples of using multiple values and sorting by ascending and descending.
    # @return [LibraryItemsResponse]
    def search_library_items(item_query, opts = {})
      data, _status_code, _headers = search_library_items_with_http_info(item_query, opts)
      data
    end

    # Retrieve library items
    # Retrieves a library items based on a query object.  If no parameters are specified, the API call will default to the merchant id only.  You will need to make multiple API calls in order to retrieve the entire result set since this API performs result set pagination. 
    # @param item_query Item query
    # @param [Hash] opts the optional parameters
    # @option opts [Integer] :_limit The maximum number of records to return on this one API call. (Maximum 10000)
    # @option opts [Integer] :_offset Pagination of the record set.  Offset is a zero based index.
    # @option opts [String] :_sort The sort order of the library items.  See Sorting documentation for examples of using multiple values and sorting by ascending and descending.
    # @return [Array<(LibraryItemsResponse, Fixnum, Hash)>] LibraryItemsResponse data, response status code and response headers
    def search_library_items_with_http_info(item_query, opts = {})
      if @api_client.config.debugging
        @api_client.config.logger.debug 'Calling API: StorefrontApi.search_library_items ...'
      end
      # verify the required parameter 'item_query' is set
      if @api_client.config.client_side_validation && item_query.nil?
        fail ArgumentError, "Missing the required parameter 'item_query' when calling StorefrontApi.search_library_items"
      end
      # resource path
      local_var_path = '/storefront/code_library/search'

      # query parameters
      query_params = {}
      query_params[:'_limit'] = opts[:'_limit'] if !opts[:'_limit'].nil?
      query_params[:'_offset'] = opts[:'_offset'] if !opts[:'_offset'].nil?
      query_params[:'_sort'] = opts[:'_sort'] if !opts[:'_sort'].nil?

      # header parameters
      header_params = {}
      header_params['X-UltraCart-Api-Version'] = @api_client.select_header_api_version()
      # HTTP header 'Accept' (if needed)
      header_params['Accept'] = @api_client.select_header_accept(['application/json'])
      # HTTP header 'Content-Type'
      header_params['Content-Type'] = @api_client.select_header_content_type(['application/json'])

      # form parameters
      form_params = {}

      # http body (model)
      post_body = @api_client.object_to_http_body(item_query)
      auth_names = ['ultraCartOauth', 'ultraCartSimpleApiKey']
      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 => 'LibraryItemsResponse')
      if @api_client.config.debugging
        @api_client.config.logger.debug "API called: StorefrontApi#search_library_items\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
      end
      return data, status_code, headers
    end
    # Retrieve library items
    # Retrieves a library items based on a query object.  If no parameters are specified, the API call will default to the merchant id only.  You will need to make multiple API calls in order to retrieve the entire result set since this API performs result set pagination. 
    # @param item_query Item query
    # @param [Hash] opts the optional parameters
    # @option opts [Integer] :_limit The maximum number of records to return on this one API call. (Maximum 10000) (default to 10000)
    # @option opts [Integer] :_offset Pagination of the record set.  Offset is a zero based index. (default to 0)
    # @option opts [String] :_sort The sort order of the library items.  See Sorting documentation for examples of using multiple values and sorting by ascending and descending.
    # @return [LibraryItemsResponse]
    def search_published_items(item_query, opts = {})
      data, _status_code, _headers = search_published_items_with_http_info(item_query, opts)
      data
    end

    # Retrieve library items
    # Retrieves a library items based on a query object.  If no parameters are specified, the API call will default to the merchant id only.  You will need to make multiple API calls in order to retrieve the entire result set since this API performs result set pagination. 
    # @param item_query Item query
    # @param [Hash] opts the optional parameters
    # @option opts [Integer] :_limit The maximum number of records to return on this one API call. (Maximum 10000)
    # @option opts [Integer] :_offset Pagination of the record set.  Offset is a zero based index.
    # @option opts [String] :_sort The sort order of the library items.  See Sorting documentation for examples of using multiple values and sorting by ascending and descending.
    # @return [Array<(LibraryItemsResponse, Fixnum, Hash)>] LibraryItemsResponse data, response status code and response headers
    def search_published_items_with_http_info(item_query, opts = {})
      if @api_client.config.debugging
        @api_client.config.logger.debug 'Calling API: StorefrontApi.search_published_items ...'
      end
      # verify the required parameter 'item_query' is set
      if @api_client.config.client_side_validation && item_query.nil?
        fail ArgumentError, "Missing the required parameter 'item_query' when calling StorefrontApi.search_published_items"
      end
      # resource path
      local_var_path = '/storefront/code_library/search_published'

      # query parameters
      query_params = {}
      query_params[:'_limit'] = opts[:'_limit'] if !opts[:'_limit'].nil?
      query_params[:'_offset'] = opts[:'_offset'] if !opts[:'_offset'].nil?
      query_params[:'_sort'] = opts[:'_sort'] if !opts[:'_sort'].nil?

      # header parameters
      header_params = {}
      header_params['X-UltraCart-Api-Version'] = @api_client.select_header_api_version()
      # HTTP header 'Accept' (if needed)
      header_params['Accept'] = @api_client.select_header_accept(['application/json'])
      # HTTP header 'Content-Type'
      header_params['Content-Type'] = @api_client.select_header_content_type(['application/json'])

      # form parameters
      form_params = {}

      # http body (model)
      post_body = @api_client.object_to_http_body(item_query)
      auth_names = ['ultraCartOauth', 'ultraCartSimpleApiKey']
      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 => 'LibraryItemsResponse')
      if @api_client.config.debugging
        @api_client.config.logger.debug "API called: StorefrontApi#search_published_items\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
      end
      return data, status_code, headers
    end
    # Retrieve library items needing review or rejected
    # Retrieves a library items based on a query object.  If no parameters are specified, the API call will default to the merchant id only.  You will need to make multiple API calls in order to retrieve the entire result set since this API performs result set pagination. 
    # @param item_query Item query
    # @param [Hash] opts the optional parameters
    # @option opts [Integer] :_limit The maximum number of records to return on this one API call. (Maximum 10000) (default to 10000)
    # @option opts [Integer] :_offset Pagination of the record set.  Offset is a zero based index. (default to 0)
    # @option opts [String] :_sort The sort order of the library items.  See Sorting documentation for examples of using multiple values and sorting by ascending and descending.
    # @return [LibraryItemsResponse]
    def search_review_items(item_query, opts = {})
      data, _status_code, _headers = search_review_items_with_http_info(item_query, opts)
      data
    end

    # Retrieve library items needing review or rejected
    # Retrieves a library items based on a query object.  If no parameters are specified, the API call will default to the merchant id only.  You will need to make multiple API calls in order to retrieve the entire result set since this API performs result set pagination. 
    # @param item_query Item query
    # @param [Hash] opts the optional parameters
    # @option opts [Integer] :_limit The maximum number of records to return on this one API call. (Maximum 10000)
    # @option opts [Integer] :_offset Pagination of the record set.  Offset is a zero based index.
    # @option opts [String] :_sort The sort order of the library items.  See Sorting documentation for examples of using multiple values and sorting by ascending and descending.
    # @return [Array<(LibraryItemsResponse, Fixnum, Hash)>] LibraryItemsResponse data, response status code and response headers
    def search_review_items_with_http_info(item_query, opts = {})
      if @api_client.config.debugging
        @api_client.config.logger.debug 'Calling API: StorefrontApi.search_review_items ...'
      end
      # verify the required parameter 'item_query' is set
      if @api_client.config.client_side_validation && item_query.nil?
        fail ArgumentError, "Missing the required parameter 'item_query' when calling StorefrontApi.search_review_items"
      end
      # resource path
      local_var_path = '/storefront/code_library/search_review'

      # query parameters
      query_params = {}
      query_params[:'_limit'] = opts[:'_limit'] if !opts[:'_limit'].nil?
      query_params[:'_offset'] = opts[:'_offset'] if !opts[:'_offset'].nil?
      query_params[:'_sort'] = opts[:'_sort'] if !opts[:'_sort'].nil?

      # header parameters
      header_params = {}
      header_params['X-UltraCart-Api-Version'] = @api_client.select_header_api_version()
      # HTTP header 'Accept' (if needed)
      header_params['Accept'] = @api_client.select_header_accept(['application/json'])
      # HTTP header 'Content-Type'
      header_params['Content-Type'] = @api_client.select_header_content_type(['application/json'])

      # form parameters
      form_params = {}

      # http body (model)
      post_body = @api_client.object_to_http_body(item_query)
      auth_names = ['ultraCartOauth', 'ultraCartSimpleApiKey']
      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 => 'LibraryItemsResponse')
      if @api_client.config.debugging
        @api_client.config.logger.debug "API called: StorefrontApi#search_review_items\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
      end
      return data, status_code, headers
    end
    # Retrieve library items
    # Retrieves a library items based on a query object.  If no parameters are specified, the API call will default to the merchant id only.  You will need to make multiple API calls in order to retrieve the entire result set since this API performs result set pagination. 
    # @param item_query Item query
    # @param [Hash] opts the optional parameters
    # @option opts [Integer] :_limit The maximum number of records to return on this one API call. (Maximum 10000) (default to 10000)
    # @option opts [Integer] :_offset Pagination of the record set.  Offset is a zero based index. (default to 0)
    # @option opts [String] :_sort The sort order of the library items.  See Sorting documentation for examples of using multiple values and sorting by ascending and descending.
    # @return [LibraryItemsResponse]
    def search_shared_items(item_query, opts = {})
      data, _status_code, _headers = search_shared_items_with_http_info(item_query, opts)
      data
    end

    # Retrieve library items
    # Retrieves a library items based on a query object.  If no parameters are specified, the API call will default to the merchant id only.  You will need to make multiple API calls in order to retrieve the entire result set since this API performs result set pagination. 
    # @param item_query Item query
    # @param [Hash] opts the optional parameters
    # @option opts [Integer] :_limit The maximum number of records to return on this one API call. (Maximum 10000)
    # @option opts [Integer] :_offset Pagination of the record set.  Offset is a zero based index.
    # @option opts [String] :_sort The sort order of the library items.  See Sorting documentation for examples of using multiple values and sorting by ascending and descending.
    # @return [Array<(LibraryItemsResponse, Fixnum, Hash)>] LibraryItemsResponse data, response status code and response headers
    def search_shared_items_with_http_info(item_query, opts = {})
      if @api_client.config.debugging
        @api_client.config.logger.debug 'Calling API: StorefrontApi.search_shared_items ...'
      end
      # verify the required parameter 'item_query' is set
      if @api_client.config.client_side_validation && item_query.nil?
        fail ArgumentError, "Missing the required parameter 'item_query' when calling StorefrontApi.search_shared_items"
      end
      # resource path
      local_var_path = '/storefront/code_library/search_shared'

      # query parameters
      query_params = {}
      query_params[:'_limit'] = opts[:'_limit'] if !opts[:'_limit'].nil?
      query_params[:'_offset'] = opts[:'_offset'] if !opts[:'_offset'].nil?
      query_params[:'_sort'] = opts[:'_sort'] if !opts[:'_sort'].nil?

      # header parameters
      header_params = {}
      header_params['X-UltraCart-Api-Version'] = @api_client.select_header_api_version()
      # HTTP header 'Accept' (if needed)
      header_params['Accept'] = @api_client.select_header_accept(['application/json'])
      # HTTP header 'Content-Type'
      header_params['Content-Type'] = @api_client.select_header_content_type(['application/json'])

      # form parameters
      form_params = {}

      # http body (model)
      post_body = @api_client.object_to_http_body(item_query)
      auth_names = ['ultraCartOauth', 'ultraCartSimpleApiKey']
      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 => 'LibraryItemsResponse')
      if @api_client.config.debugging
        @api_client.config.logger.debug "API called: StorefrontApi#search_shared_items\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
      end
      return data, status_code, headers
    end
    # Send email test
    # @param storefront_oid 
    # @param commseq_email_uuid 
    # @param email_commseq_email_test_request Email commseq email test request
    # @param [Hash] opts the optional parameters
    # @return [EmailCommseqEmailSendTestResponse]
    def send_email_test(storefront_oid, commseq_email_uuid, email_commseq_email_test_request, opts = {})
      data, _status_code, _headers = send_email_test_with_http_info(storefront_oid, commseq_email_uuid, email_commseq_email_test_request, opts)
      data
    end

    # Send email test
    # @param storefront_oid 
    # @param commseq_email_uuid 
    # @param email_commseq_email_test_request Email commseq email test request
    # @param [Hash] opts the optional parameters
    # @return [Array<(EmailCommseqEmailSendTestResponse, Fixnum, Hash)>] EmailCommseqEmailSendTestResponse data, response status code and response headers
    def send_email_test_with_http_info(storefront_oid, commseq_email_uuid, email_commseq_email_test_request, opts = {})
      if @api_client.config.debugging
        @api_client.config.logger.debug 'Calling API: StorefrontApi.send_email_test ...'
      end
      # verify the required parameter 'storefront_oid' is set
      if @api_client.config.client_side_validation && storefront_oid.nil?
        fail ArgumentError, "Missing the required parameter 'storefront_oid' when calling StorefrontApi.send_email_test"
      end
      # verify the required parameter 'commseq_email_uuid' is set
      if @api_client.config.client_side_validation && commseq_email_uuid.nil?
        fail ArgumentError, "Missing the required parameter 'commseq_email_uuid' when calling StorefrontApi.send_email_test"
      end
      # verify the required parameter 'email_commseq_email_test_request' is set
      if @api_client.config.client_side_validation && email_commseq_email_test_request.nil?
        fail ArgumentError, "Missing the required parameter 'email_commseq_email_test_request' when calling StorefrontApi.send_email_test"
      end
      # resource path
      local_var_path = '/storefront/{storefront_oid}/email/emails/{commseq_email_uuid}/test'.sub('{' + 'storefront_oid' + '}', storefront_oid.to_s).sub('{' + 'commseq_email_uuid' + '}', commseq_email_uuid.to_s)

      # query parameters
      query_params = {}

      # header parameters
      header_params = {}
      header_params['X-UltraCart-Api-Version'] = @api_client.select_header_api_version()
      # HTTP header 'Accept' (if needed)
      header_params['Accept'] = @api_client.select_header_accept(['application/json'])
      # HTTP header 'Content-Type'
      header_params['Content-Type'] = @api_client.select_header_content_type(['application/json'])

      # form parameters
      form_params = {}

      # http body (model)
      post_body = @api_client.object_to_http_body(email_commseq_email_test_request)
      auth_names = ['ultraCartBrowserApiKey', 'ultraCartOauth', 'ultraCartSimpleApiKey']
      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 => 'EmailCommseqEmailSendTestResponse')
      if @api_client.config.debugging
        @api_client.config.logger.debug "API called: StorefrontApi#send_email_test\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
      end
      return data, status_code, headers
    end
    # Send postcard test
    # @param storefront_oid 
    # @param commseq_postcard_uuid 
    # @param email_commseq_postcard_test_request Email commseq email test request
    # @param [Hash] opts the optional parameters
    # @return [EmailCommseqPostcardSendTestResponse]
    def send_postcard_test(storefront_oid, commseq_postcard_uuid, email_commseq_postcard_test_request, opts = {})
      data, _status_code, _headers = send_postcard_test_with_http_info(storefront_oid, commseq_postcard_uuid, email_commseq_postcard_test_request, opts)
      data
    end

    # Send postcard test
    # @param storefront_oid 
    # @param commseq_postcard_uuid 
    # @param email_commseq_postcard_test_request Email commseq email test request
    # @param [Hash] opts the optional parameters
    # @return [Array<(EmailCommseqPostcardSendTestResponse, Fixnum, Hash)>] EmailCommseqPostcardSendTestResponse data, response status code and response headers
    def send_postcard_test_with_http_info(storefront_oid, commseq_postcard_uuid, email_commseq_postcard_test_request, opts = {})
      if @api_client.config.debugging
        @api_client.config.logger.debug 'Calling API: StorefrontApi.send_postcard_test ...'
      end
      # verify the required parameter 'storefront_oid' is set
      if @api_client.config.client_side_validation && storefront_oid.nil?
        fail ArgumentError, "Missing the required parameter 'storefront_oid' when calling StorefrontApi.send_postcard_test"
      end
      # verify the required parameter 'commseq_postcard_uuid' is set
      if @api_client.config.client_side_validation && commseq_postcard_uuid.nil?
        fail ArgumentError, "Missing the required parameter 'commseq_postcard_uuid' when calling StorefrontApi.send_postcard_test"
      end
      # verify the required parameter 'email_commseq_postcard_test_request' is set
      if @api_client.config.client_side_validation && email_commseq_postcard_test_request.nil?
        fail ArgumentError, "Missing the required parameter 'email_commseq_postcard_test_request' when calling StorefrontApi.send_postcard_test"
      end
      # resource path
      local_var_path = '/storefront/{storefront_oid}/email/postcards/{commseq_postcard_uuid}/test'.sub('{' + 'storefront_oid' + '}', storefront_oid.to_s).sub('{' + 'commseq_postcard_uuid' + '}', commseq_postcard_uuid.to_s)

      # query parameters
      query_params = {}

      # header parameters
      header_params = {}
      header_params['X-UltraCart-Api-Version'] = @api_client.select_header_api_version()
      # HTTP header 'Accept' (if needed)
      header_params['Accept'] = @api_client.select_header_accept(['application/json'])
      # HTTP header 'Content-Type'
      header_params['Content-Type'] = @api_client.select_header_content_type(['application/json'])

      # form parameters
      form_params = {}

      # http body (model)
      post_body = @api_client.object_to_http_body(email_commseq_postcard_test_request)
      auth_names = ['ultraCartBrowserApiKey', 'ultraCartOauth', 'ultraCartSimpleApiKey']
      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 => 'EmailCommseqPostcardSendTestResponse')
      if @api_client.config.debugging
        @api_client.config.logger.debug "API called: StorefrontApi#send_postcard_test\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
      end
      return data, status_code, headers
    end
    # Send webhook test
    # @param storefront_oid 
    # @param email_commseq_webhook_test_request Email commseq webhook test request
    # @param [Hash] opts the optional parameters
    # @return [EmailCommseqWebhookSendTestResponse]
    def send_webhook_test(storefront_oid, email_commseq_webhook_test_request, opts = {})
      data, _status_code, _headers = send_webhook_test_with_http_info(storefront_oid, email_commseq_webhook_test_request, opts)
      data
    end

    # Send webhook test
    # @param storefront_oid 
    # @param email_commseq_webhook_test_request Email commseq webhook test request
    # @param [Hash] opts the optional parameters
    # @return [Array<(EmailCommseqWebhookSendTestResponse, Fixnum, Hash)>] EmailCommseqWebhookSendTestResponse data, response status code and response headers
    def send_webhook_test_with_http_info(storefront_oid, email_commseq_webhook_test_request, opts = {})
      if @api_client.config.debugging
        @api_client.config.logger.debug 'Calling API: StorefrontApi.send_webhook_test ...'
      end
      # verify the required parameter 'storefront_oid' is set
      if @api_client.config.client_side_validation && storefront_oid.nil?
        fail ArgumentError, "Missing the required parameter 'storefront_oid' when calling StorefrontApi.send_webhook_test"
      end
      # verify the required parameter 'email_commseq_webhook_test_request' is set
      if @api_client.config.client_side_validation && email_commseq_webhook_test_request.nil?
        fail ArgumentError, "Missing the required parameter 'email_commseq_webhook_test_request' when calling StorefrontApi.send_webhook_test"
      end
      # resource path
      local_var_path = '/storefront/{storefront_oid}/email/webhooks/test'.sub('{' + 'storefront_oid' + '}', storefront_oid.to_s)

      # query parameters
      query_params = {}

      # header parameters
      header_params = {}
      header_params['X-UltraCart-Api-Version'] = @api_client.select_header_api_version()
      # HTTP header 'Accept' (if needed)
      header_params['Accept'] = @api_client.select_header_accept(['application/json'])
      # HTTP header 'Content-Type'
      header_params['Content-Type'] = @api_client.select_header_content_type(['application/json'])

      # form parameters
      form_params = {}

      # http body (model)
      post_body = @api_client.object_to_http_body(email_commseq_webhook_test_request)
      auth_names = ['ultraCartBrowserApiKey', 'ultraCartOauth', 'ultraCartSimpleApiKey']
      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 => 'EmailCommseqWebhookSendTestResponse')
      if @api_client.config.debugging
        @api_client.config.logger.debug "API called: StorefrontApi#send_webhook_test\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
      end
      return data, status_code, headers
    end
    # Sequence test
    # @param storefront_oid 
    # @param commseq_uuid 
    # @param email_commseq_sequence_test_request Commseq test request
    # @param [Hash] opts the optional parameters
    # @return [EmailCommseqSequenceTestResponse]
    def sequence_test(storefront_oid, commseq_uuid, email_commseq_sequence_test_request, opts = {})
      data, _status_code, _headers = sequence_test_with_http_info(storefront_oid, commseq_uuid, email_commseq_sequence_test_request, opts)
      data
    end

    # Sequence test
    # @param storefront_oid 
    # @param commseq_uuid 
    # @param email_commseq_sequence_test_request Commseq test request
    # @param [Hash] opts the optional parameters
    # @return [Array<(EmailCommseqSequenceTestResponse, Fixnum, Hash)>] EmailCommseqSequenceTestResponse data, response status code and response headers
    def sequence_test_with_http_info(storefront_oid, commseq_uuid, email_commseq_sequence_test_request, opts = {})
      if @api_client.config.debugging
        @api_client.config.logger.debug 'Calling API: StorefrontApi.sequence_test ...'
      end
      # verify the required parameter 'storefront_oid' is set
      if @api_client.config.client_side_validation && storefront_oid.nil?
        fail ArgumentError, "Missing the required parameter 'storefront_oid' when calling StorefrontApi.sequence_test"
      end
      # verify the required parameter 'commseq_uuid' is set
      if @api_client.config.client_side_validation && commseq_uuid.nil?
        fail ArgumentError, "Missing the required parameter 'commseq_uuid' when calling StorefrontApi.sequence_test"
      end
      # verify the required parameter 'email_commseq_sequence_test_request' is set
      if @api_client.config.client_side_validation && email_commseq_sequence_test_request.nil?
        fail ArgumentError, "Missing the required parameter 'email_commseq_sequence_test_request' when calling StorefrontApi.sequence_test"
      end
      # resource path
      local_var_path = '/storefront/{storefront_oid}/email/commseqs/{commseq_uuid}/test'.sub('{' + 'storefront_oid' + '}', storefront_oid.to_s).sub('{' + 'commseq_uuid' + '}', commseq_uuid.to_s)

      # query parameters
      query_params = {}

      # header parameters
      header_params = {}
      header_params['X-UltraCart-Api-Version'] = @api_client.select_header_api_version()
      # HTTP header 'Accept' (if needed)
      header_params['Accept'] = @api_client.select_header_accept(['application/json'])
      # HTTP header 'Content-Type'
      header_params['Content-Type'] = @api_client.select_header_content_type(['application/json'])

      # form parameters
      form_params = {}

      # http body (model)
      post_body = @api_client.object_to_http_body(email_commseq_sequence_test_request)
      auth_names = ['ultraCartBrowserApiKey', 'ultraCartOauth', 'ultraCartSimpleApiKey']
      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 => 'EmailCommseqSequenceTestResponse')
      if @api_client.config.debugging
        @api_client.config.logger.debug "API called: StorefrontApi#sequence_test\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
      end
      return data, status_code, headers
    end
    # Start email campaign
    # @param storefront_oid 
    # @param email_campaign_uuid 
    # @param [Hash] opts the optional parameters
    # @return [BaseResponse]
    def start_email_campaign(storefront_oid, email_campaign_uuid, opts = {})
      data, _status_code, _headers = start_email_campaign_with_http_info(storefront_oid, email_campaign_uuid, opts)
      data
    end

    # Start email campaign
    # @param storefront_oid 
    # @param email_campaign_uuid 
    # @param [Hash] opts the optional parameters
    # @return [Array<(BaseResponse, Fixnum, Hash)>] BaseResponse data, response status code and response headers
    def start_email_campaign_with_http_info(storefront_oid, email_campaign_uuid, opts = {})
      if @api_client.config.debugging
        @api_client.config.logger.debug 'Calling API: StorefrontApi.start_email_campaign ...'
      end
      # verify the required parameter 'storefront_oid' is set
      if @api_client.config.client_side_validation && storefront_oid.nil?
        fail ArgumentError, "Missing the required parameter 'storefront_oid' when calling StorefrontApi.start_email_campaign"
      end
      # verify the required parameter 'email_campaign_uuid' is set
      if @api_client.config.client_side_validation && email_campaign_uuid.nil?
        fail ArgumentError, "Missing the required parameter 'email_campaign_uuid' when calling StorefrontApi.start_email_campaign"
      end
      # resource path
      local_var_path = '/storefront/{storefront_oid}/email/campaigns/{email_campaign_uuid}/start'.sub('{' + 'storefront_oid' + '}', storefront_oid.to_s).sub('{' + 'email_campaign_uuid' + '}', email_campaign_uuid.to_s)

      # query parameters
      query_params = {}

      # header parameters
      header_params = {}
      header_params['X-UltraCart-Api-Version'] = @api_client.select_header_api_version()
      # HTTP header 'Accept' (if needed)
      header_params['Accept'] = @api_client.select_header_accept(['application/json'])
      # HTTP header 'Content-Type'
      header_params['Content-Type'] = @api_client.select_header_content_type(['application/json'])

      # form parameters
      form_params = {}

      # http body (model)
      post_body = nil
      auth_names = ['ultraCartBrowserApiKey', 'ultraCartOauth', 'ultraCartSimpleApiKey']
      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 => 'BaseResponse')
      if @api_client.config.debugging
        @api_client.config.logger.debug "API called: StorefrontApi#start_email_campaign\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
      end
      return data, status_code, headers
    end
    # Subscribe customers to email list
    # @param storefront_oid 
    # @param email_list_uuid 
    # @param customers Customers
    # @param [Hash] opts the optional parameters
    # @return [EmailListSubscribeResponse]
    def subscribe_to_email_list(storefront_oid, email_list_uuid, customers, opts = {})
      data, _status_code, _headers = subscribe_to_email_list_with_http_info(storefront_oid, email_list_uuid, customers, opts)
      data
    end

    # Subscribe customers to email list
    # @param storefront_oid 
    # @param email_list_uuid 
    # @param customers Customers
    # @param [Hash] opts the optional parameters
    # @return [Array<(EmailListSubscribeResponse, Fixnum, Hash)>] EmailListSubscribeResponse data, response status code and response headers
    def subscribe_to_email_list_with_http_info(storefront_oid, email_list_uuid, customers, opts = {})
      if @api_client.config.debugging
        @api_client.config.logger.debug 'Calling API: StorefrontApi.subscribe_to_email_list ...'
      end
      # verify the required parameter 'storefront_oid' is set
      if @api_client.config.client_side_validation && storefront_oid.nil?
        fail ArgumentError, "Missing the required parameter 'storefront_oid' when calling StorefrontApi.subscribe_to_email_list"
      end
      # verify the required parameter 'email_list_uuid' is set
      if @api_client.config.client_side_validation && email_list_uuid.nil?
        fail ArgumentError, "Missing the required parameter 'email_list_uuid' when calling StorefrontApi.subscribe_to_email_list"
      end
      # verify the required parameter 'customers' is set
      if @api_client.config.client_side_validation && customers.nil?
        fail ArgumentError, "Missing the required parameter 'customers' when calling StorefrontApi.subscribe_to_email_list"
      end
      # resource path
      local_var_path = '/storefront/{storefront_oid}/email/lists/{email_list_uuid}/subscribe'.sub('{' + 'storefront_oid' + '}', storefront_oid.to_s).sub('{' + 'email_list_uuid' + '}', email_list_uuid.to_s)

      # query parameters
      query_params = {}

      # header parameters
      header_params = {}
      header_params['X-UltraCart-Api-Version'] = @api_client.select_header_api_version()
      # HTTP header 'Accept' (if needed)
      header_params['Accept'] = @api_client.select_header_accept(['application/json'])
      # HTTP header 'Content-Type'
      header_params['Content-Type'] = @api_client.select_header_content_type(['application/json'])

      # form parameters
      form_params = {}

      # http body (model)
      post_body = @api_client.object_to_http_body(customers)
      auth_names = ['ultraCartBrowserApiKey', 'ultraCartOauth', 'ultraCartSimpleApiKey']
      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 => 'EmailListSubscribeResponse')
      if @api_client.config.debugging
        @api_client.config.logger.debug "API called: StorefrontApi#subscribe_to_email_list\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
      end
      return data, status_code, headers
    end
    # Remove favorite flag on screen recording
    # Remove favorite flag on screen recording 
    # @param storefront_oid 
    # @param screen_recording_uuid 
    # @param [Hash] opts the optional parameters
    # @return [nil]
    def unfavorite_screen_recording(storefront_oid, screen_recording_uuid, opts = {})
      unfavorite_screen_recording_with_http_info(storefront_oid, screen_recording_uuid, opts)
      nil
    end

    # Remove favorite flag on screen recording
    # Remove favorite flag on screen recording 
    # @param storefront_oid 
    # @param screen_recording_uuid 
    # @param [Hash] opts the optional parameters
    # @return [Array<(nil, Fixnum, Hash)>] nil, response status code and response headers
    def unfavorite_screen_recording_with_http_info(storefront_oid, screen_recording_uuid, opts = {})
      if @api_client.config.debugging
        @api_client.config.logger.debug 'Calling API: StorefrontApi.unfavorite_screen_recording ...'
      end
      # verify the required parameter 'storefront_oid' is set
      if @api_client.config.client_side_validation && storefront_oid.nil?
        fail ArgumentError, "Missing the required parameter 'storefront_oid' when calling StorefrontApi.unfavorite_screen_recording"
      end
      # verify the required parameter 'screen_recording_uuid' is set
      if @api_client.config.client_side_validation && screen_recording_uuid.nil?
        fail ArgumentError, "Missing the required parameter 'screen_recording_uuid' when calling StorefrontApi.unfavorite_screen_recording"
      end
      # resource path
      local_var_path = '/storefront/{storefront_oid}/screen_recordings/{screen_recording_uuid}/favorite'.sub('{' + 'storefront_oid' + '}', storefront_oid.to_s).sub('{' + 'screen_recording_uuid' + '}', screen_recording_uuid.to_s)

      # query parameters
      query_params = {}

      # header parameters
      header_params = {}
      header_params['X-UltraCart-Api-Version'] = @api_client.select_header_api_version()
      # HTTP header 'Accept' (if needed)
      header_params['Accept'] = @api_client.select_header_accept(['application/json'])
      # HTTP header 'Content-Type'
      header_params['Content-Type'] = @api_client.select_header_content_type(['application/json'])

      # form parameters
      form_params = {}

      # http body (model)
      post_body = nil
      auth_names = ['ultraCartOauth', 'ultraCartSimpleApiKey']
      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: StorefrontApi#unfavorite_screen_recording\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
      end
      return data, status_code, headers
    end
    # Update email campaign
    # @param storefront_oid 
    # @param email_campaign_uuid 
    # @param email_campaign Email campaign
    # @param [Hash] opts the optional parameters
    # @return [EmailCampaignResponse]
    def update_email_campaign(storefront_oid, email_campaign_uuid, email_campaign, opts = {})
      data, _status_code, _headers = update_email_campaign_with_http_info(storefront_oid, email_campaign_uuid, email_campaign, opts)
      data
    end

    # Update email campaign
    # @param storefront_oid 
    # @param email_campaign_uuid 
    # @param email_campaign Email campaign
    # @param [Hash] opts the optional parameters
    # @return [Array<(EmailCampaignResponse, Fixnum, Hash)>] EmailCampaignResponse data, response status code and response headers
    def update_email_campaign_with_http_info(storefront_oid, email_campaign_uuid, email_campaign, opts = {})
      if @api_client.config.debugging
        @api_client.config.logger.debug 'Calling API: StorefrontApi.update_email_campaign ...'
      end
      # verify the required parameter 'storefront_oid' is set
      if @api_client.config.client_side_validation && storefront_oid.nil?
        fail ArgumentError, "Missing the required parameter 'storefront_oid' when calling StorefrontApi.update_email_campaign"
      end
      # verify the required parameter 'email_campaign_uuid' is set
      if @api_client.config.client_side_validation && email_campaign_uuid.nil?
        fail ArgumentError, "Missing the required parameter 'email_campaign_uuid' when calling StorefrontApi.update_email_campaign"
      end
      # verify the required parameter 'email_campaign' is set
      if @api_client.config.client_side_validation && email_campaign.nil?
        fail ArgumentError, "Missing the required parameter 'email_campaign' when calling StorefrontApi.update_email_campaign"
      end
      # resource path
      local_var_path = '/storefront/{storefront_oid}/email/campaigns/{email_campaign_uuid}'.sub('{' + 'storefront_oid' + '}', storefront_oid.to_s).sub('{' + 'email_campaign_uuid' + '}', email_campaign_uuid.to_s)

      # query parameters
      query_params = {}

      # header parameters
      header_params = {}
      header_params['X-UltraCart-Api-Version'] = @api_client.select_header_api_version()
      # HTTP header 'Accept' (if needed)
      header_params['Accept'] = @api_client.select_header_accept(['application/json'])
      # HTTP header 'Content-Type'
      header_params['Content-Type'] = @api_client.select_header_content_type(['application/json'])

      # form parameters
      form_params = {}

      # http body (model)
      post_body = @api_client.object_to_http_body(email_campaign)
      auth_names = ['ultraCartBrowserApiKey', 'ultraCartOauth', 'ultraCartSimpleApiKey']
      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 => 'EmailCampaignResponse')
      if @api_client.config.debugging
        @api_client.config.logger.debug "API called: StorefrontApi#update_email_campaign\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
      end
      return data, status_code, headers
    end
    # Update email campaign folder
    # @param storefront_oid 
    # @param email_campaign_folder_uuid 
    # @param email_campaign_folder Email campaign folder
    # @param [Hash] opts the optional parameters
    # @return [EmailCampaignFolderResponse]
    def update_email_campaign_folder(storefront_oid, email_campaign_folder_uuid, email_campaign_folder, opts = {})
      data, _status_code, _headers = update_email_campaign_folder_with_http_info(storefront_oid, email_campaign_folder_uuid, email_campaign_folder, opts)
      data
    end

    # Update email campaign folder
    # @param storefront_oid 
    # @param email_campaign_folder_uuid 
    # @param email_campaign_folder Email campaign folder
    # @param [Hash] opts the optional parameters
    # @return [Array<(EmailCampaignFolderResponse, Fixnum, Hash)>] EmailCampaignFolderResponse data, response status code and response headers
    def update_email_campaign_folder_with_http_info(storefront_oid, email_campaign_folder_uuid, email_campaign_folder, opts = {})
      if @api_client.config.debugging
        @api_client.config.logger.debug 'Calling API: StorefrontApi.update_email_campaign_folder ...'
      end
      # verify the required parameter 'storefront_oid' is set
      if @api_client.config.client_side_validation && storefront_oid.nil?
        fail ArgumentError, "Missing the required parameter 'storefront_oid' when calling StorefrontApi.update_email_campaign_folder"
      end
      # verify the required parameter 'email_campaign_folder_uuid' is set
      if @api_client.config.client_side_validation && email_campaign_folder_uuid.nil?
        fail ArgumentError, "Missing the required parameter 'email_campaign_folder_uuid' when calling StorefrontApi.update_email_campaign_folder"
      end
      # verify the required parameter 'email_campaign_folder' is set
      if @api_client.config.client_side_validation && email_campaign_folder.nil?
        fail ArgumentError, "Missing the required parameter 'email_campaign_folder' when calling StorefrontApi.update_email_campaign_folder"
      end
      # resource path
      local_var_path = '/storefront/{storefront_oid}/email/campaign_folders/{email_campaign_folder_uuid}'.sub('{' + 'storefront_oid' + '}', storefront_oid.to_s).sub('{' + 'email_campaign_folder_uuid' + '}', email_campaign_folder_uuid.to_s)

      # query parameters
      query_params = {}

      # header parameters
      header_params = {}
      header_params['X-UltraCart-Api-Version'] = @api_client.select_header_api_version()
      # HTTP header 'Accept' (if needed)
      header_params['Accept'] = @api_client.select_header_accept(['application/json'])
      # HTTP header 'Content-Type'
      header_params['Content-Type'] = @api_client.select_header_content_type(['application/json'])

      # form parameters
      form_params = {}

      # http body (model)
      post_body = @api_client.object_to_http_body(email_campaign_folder)
      auth_names = ['ultraCartBrowserApiKey', 'ultraCartOauth', 'ultraCartSimpleApiKey']
      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 => 'EmailCampaignFolderResponse')
      if @api_client.config.debugging
        @api_client.config.logger.debug "API called: StorefrontApi#update_email_campaign_folder\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
      end
      return data, status_code, headers
    end
    # Update email commseq
    # @param storefront_oid 
    # @param commseq_uuid 
    # @param email_commseq Email commseq
    # @param [Hash] opts the optional parameters
    # @return [EmailCommseqResponse]
    def update_email_commseq(storefront_oid, commseq_uuid, email_commseq, opts = {})
      data, _status_code, _headers = update_email_commseq_with_http_info(storefront_oid, commseq_uuid, email_commseq, opts)
      data
    end

    # Update email commseq
    # @param storefront_oid 
    # @param commseq_uuid 
    # @param email_commseq Email commseq
    # @param [Hash] opts the optional parameters
    # @return [Array<(EmailCommseqResponse, Fixnum, Hash)>] EmailCommseqResponse data, response status code and response headers
    def update_email_commseq_with_http_info(storefront_oid, commseq_uuid, email_commseq, opts = {})
      if @api_client.config.debugging
        @api_client.config.logger.debug 'Calling API: StorefrontApi.update_email_commseq ...'
      end
      # verify the required parameter 'storefront_oid' is set
      if @api_client.config.client_side_validation && storefront_oid.nil?
        fail ArgumentError, "Missing the required parameter 'storefront_oid' when calling StorefrontApi.update_email_commseq"
      end
      # verify the required parameter 'commseq_uuid' is set
      if @api_client.config.client_side_validation && commseq_uuid.nil?
        fail ArgumentError, "Missing the required parameter 'commseq_uuid' when calling StorefrontApi.update_email_commseq"
      end
      # verify the required parameter 'email_commseq' is set
      if @api_client.config.client_side_validation && email_commseq.nil?
        fail ArgumentError, "Missing the required parameter 'email_commseq' when calling StorefrontApi.update_email_commseq"
      end
      # resource path
      local_var_path = '/storefront/{storefront_oid}/email/commseqs/{commseq_uuid}'.sub('{' + 'storefront_oid' + '}', storefront_oid.to_s).sub('{' + 'commseq_uuid' + '}', commseq_uuid.to_s)

      # query parameters
      query_params = {}

      # header parameters
      header_params = {}
      header_params['X-UltraCart-Api-Version'] = @api_client.select_header_api_version()
      # HTTP header 'Accept' (if needed)
      header_params['Accept'] = @api_client.select_header_accept(['application/json'])
      # HTTP header 'Content-Type'
      header_params['Content-Type'] = @api_client.select_header_content_type(['application/json'])

      # form parameters
      form_params = {}

      # http body (model)
      post_body = @api_client.object_to_http_body(email_commseq)
      auth_names = ['ultraCartBrowserApiKey', 'ultraCartOauth', 'ultraCartSimpleApiKey']
      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 => 'EmailCommseqResponse')
      if @api_client.config.debugging
        @api_client.config.logger.debug "API called: StorefrontApi#update_email_commseq\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
      end
      return data, status_code, headers
    end
    # Update email customer
    # @param storefront_oid 
    # @param email_customer_uuid 
    # @param email_customer Email customer
    # @param [Hash] opts the optional parameters
    # @return [nil]
    def update_email_customer(storefront_oid, email_customer_uuid, email_customer, opts = {})
      update_email_customer_with_http_info(storefront_oid, email_customer_uuid, email_customer, opts)
      nil
    end

    # Update email customer
    # @param storefront_oid 
    # @param email_customer_uuid 
    # @param email_customer Email customer
    # @param [Hash] opts the optional parameters
    # @return [Array<(nil, Fixnum, Hash)>] nil, response status code and response headers
    def update_email_customer_with_http_info(storefront_oid, email_customer_uuid, email_customer, opts = {})
      if @api_client.config.debugging
        @api_client.config.logger.debug 'Calling API: StorefrontApi.update_email_customer ...'
      end
      # verify the required parameter 'storefront_oid' is set
      if @api_client.config.client_side_validation && storefront_oid.nil?
        fail ArgumentError, "Missing the required parameter 'storefront_oid' when calling StorefrontApi.update_email_customer"
      end
      # verify the required parameter 'email_customer_uuid' is set
      if @api_client.config.client_side_validation && email_customer_uuid.nil?
        fail ArgumentError, "Missing the required parameter 'email_customer_uuid' when calling StorefrontApi.update_email_customer"
      end
      # verify the required parameter 'email_customer' is set
      if @api_client.config.client_side_validation && email_customer.nil?
        fail ArgumentError, "Missing the required parameter 'email_customer' when calling StorefrontApi.update_email_customer"
      end
      # resource path
      local_var_path = '/storefront/{storefront_oid}/email/customers/{email_customer_uuid}'.sub('{' + 'storefront_oid' + '}', storefront_oid.to_s).sub('{' + 'email_customer_uuid' + '}', email_customer_uuid.to_s)

      # query parameters
      query_params = {}

      # header parameters
      header_params = {}
      header_params['X-UltraCart-Api-Version'] = @api_client.select_header_api_version()
      # HTTP header 'Accept' (if needed)
      header_params['Accept'] = @api_client.select_header_accept(['application/json'])
      # HTTP header 'Content-Type'
      header_params['Content-Type'] = @api_client.select_header_content_type(['application/json'])

      # form parameters
      form_params = {}

      # http body (model)
      post_body = @api_client.object_to_http_body(email_customer)
      auth_names = ['ultraCartBrowserApiKey', 'ultraCartOauth', 'ultraCartSimpleApiKey']
      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)
      if @api_client.config.debugging
        @api_client.config.logger.debug "API called: StorefrontApi#update_email_customer\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
      end
      return data, status_code, headers
    end
    # Update email email
    # @param storefront_oid 
    # @param commseq_email_uuid 
    # @param email_commseq_email Email commseq email
    # @param [Hash] opts the optional parameters
    # @return [EmailCommseqEmailResponse]
    def update_email_email(storefront_oid, commseq_email_uuid, email_commseq_email, opts = {})
      data, _status_code, _headers = update_email_email_with_http_info(storefront_oid, commseq_email_uuid, email_commseq_email, opts)
      data
    end

    # Update email email
    # @param storefront_oid 
    # @param commseq_email_uuid 
    # @param email_commseq_email Email commseq email
    # @param [Hash] opts the optional parameters
    # @return [Array<(EmailCommseqEmailResponse, Fixnum, Hash)>] EmailCommseqEmailResponse data, response status code and response headers
    def update_email_email_with_http_info(storefront_oid, commseq_email_uuid, email_commseq_email, opts = {})
      if @api_client.config.debugging
        @api_client.config.logger.debug 'Calling API: StorefrontApi.update_email_email ...'
      end
      # verify the required parameter 'storefront_oid' is set
      if @api_client.config.client_side_validation && storefront_oid.nil?
        fail ArgumentError, "Missing the required parameter 'storefront_oid' when calling StorefrontApi.update_email_email"
      end
      # verify the required parameter 'commseq_email_uuid' is set
      if @api_client.config.client_side_validation && commseq_email_uuid.nil?
        fail ArgumentError, "Missing the required parameter 'commseq_email_uuid' when calling StorefrontApi.update_email_email"
      end
      # verify the required parameter 'email_commseq_email' is set
      if @api_client.config.client_side_validation && email_commseq_email.nil?
        fail ArgumentError, "Missing the required parameter 'email_commseq_email' when calling StorefrontApi.update_email_email"
      end
      # resource path
      local_var_path = '/storefront/{storefront_oid}/email/emails/{commseq_email_uuid}'.sub('{' + 'storefront_oid' + '}', storefront_oid.to_s).sub('{' + 'commseq_email_uuid' + '}', commseq_email_uuid.to_s)

      # query parameters
      query_params = {}

      # header parameters
      header_params = {}
      header_params['X-UltraCart-Api-Version'] = @api_client.select_header_api_version()
      # HTTP header 'Accept' (if needed)
      header_params['Accept'] = @api_client.select_header_accept(['application/json'])
      # HTTP header 'Content-Type'
      header_params['Content-Type'] = @api_client.select_header_content_type(['application/json'])

      # form parameters
      form_params = {}

      # http body (model)
      post_body = @api_client.object_to_http_body(email_commseq_email)
      auth_names = ['ultraCartBrowserApiKey', 'ultraCartOauth', 'ultraCartSimpleApiKey']
      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 => 'EmailCommseqEmailResponse')
      if @api_client.config.debugging
        @api_client.config.logger.debug "API called: StorefrontApi#update_email_email\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
      end
      return data, status_code, headers
    end
    # Update email flow
    # @param storefront_oid 
    # @param email_flow_uuid 
    # @param email_flow Email flow
    # @param [Hash] opts the optional parameters
    # @return [EmailFlowResponse]
    def update_email_flow(storefront_oid, email_flow_uuid, email_flow, opts = {})
      data, _status_code, _headers = update_email_flow_with_http_info(storefront_oid, email_flow_uuid, email_flow, opts)
      data
    end

    # Update email flow
    # @param storefront_oid 
    # @param email_flow_uuid 
    # @param email_flow Email flow
    # @param [Hash] opts the optional parameters
    # @return [Array<(EmailFlowResponse, Fixnum, Hash)>] EmailFlowResponse data, response status code and response headers
    def update_email_flow_with_http_info(storefront_oid, email_flow_uuid, email_flow, opts = {})
      if @api_client.config.debugging
        @api_client.config.logger.debug 'Calling API: StorefrontApi.update_email_flow ...'
      end
      # verify the required parameter 'storefront_oid' is set
      if @api_client.config.client_side_validation && storefront_oid.nil?
        fail ArgumentError, "Missing the required parameter 'storefront_oid' when calling StorefrontApi.update_email_flow"
      end
      # verify the required parameter 'email_flow_uuid' is set
      if @api_client.config.client_side_validation && email_flow_uuid.nil?
        fail ArgumentError, "Missing the required parameter 'email_flow_uuid' when calling StorefrontApi.update_email_flow"
      end
      # verify the required parameter 'email_flow' is set
      if @api_client.config.client_side_validation && email_flow.nil?
        fail ArgumentError, "Missing the required parameter 'email_flow' when calling StorefrontApi.update_email_flow"
      end
      # resource path
      local_var_path = '/storefront/{storefront_oid}/email/flows/{email_flow_uuid}'.sub('{' + 'storefront_oid' + '}', storefront_oid.to_s).sub('{' + 'email_flow_uuid' + '}', email_flow_uuid.to_s)

      # query parameters
      query_params = {}

      # header parameters
      header_params = {}
      header_params['X-UltraCart-Api-Version'] = @api_client.select_header_api_version()
      # HTTP header 'Accept' (if needed)
      header_params['Accept'] = @api_client.select_header_accept(['application/json'])
      # HTTP header 'Content-Type'
      header_params['Content-Type'] = @api_client.select_header_content_type(['application/json'])

      # form parameters
      form_params = {}

      # http body (model)
      post_body = @api_client.object_to_http_body(email_flow)
      auth_names = ['ultraCartBrowserApiKey', 'ultraCartOauth', 'ultraCartSimpleApiKey']
      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 => 'EmailFlowResponse')
      if @api_client.config.debugging
        @api_client.config.logger.debug "API called: StorefrontApi#update_email_flow\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
      end
      return data, status_code, headers
    end
    # Update email flow folder
    # @param storefront_oid 
    # @param email_flow_folder_uuid 
    # @param email_flow_folder Email flow folder
    # @param [Hash] opts the optional parameters
    # @return [EmailFlowFolderResponse]
    def update_email_flow_folder(storefront_oid, email_flow_folder_uuid, email_flow_folder, opts = {})
      data, _status_code, _headers = update_email_flow_folder_with_http_info(storefront_oid, email_flow_folder_uuid, email_flow_folder, opts)
      data
    end

    # Update email flow folder
    # @param storefront_oid 
    # @param email_flow_folder_uuid 
    # @param email_flow_folder Email flow folder
    # @param [Hash] opts the optional parameters
    # @return [Array<(EmailFlowFolderResponse, Fixnum, Hash)>] EmailFlowFolderResponse data, response status code and response headers
    def update_email_flow_folder_with_http_info(storefront_oid, email_flow_folder_uuid, email_flow_folder, opts = {})
      if @api_client.config.debugging
        @api_client.config.logger.debug 'Calling API: StorefrontApi.update_email_flow_folder ...'
      end
      # verify the required parameter 'storefront_oid' is set
      if @api_client.config.client_side_validation && storefront_oid.nil?
        fail ArgumentError, "Missing the required parameter 'storefront_oid' when calling StorefrontApi.update_email_flow_folder"
      end
      # verify the required parameter 'email_flow_folder_uuid' is set
      if @api_client.config.client_side_validation && email_flow_folder_uuid.nil?
        fail ArgumentError, "Missing the required parameter 'email_flow_folder_uuid' when calling StorefrontApi.update_email_flow_folder"
      end
      # verify the required parameter 'email_flow_folder' is set
      if @api_client.config.client_side_validation && email_flow_folder.nil?
        fail ArgumentError, "Missing the required parameter 'email_flow_folder' when calling StorefrontApi.update_email_flow_folder"
      end
      # resource path
      local_var_path = '/storefront/{storefront_oid}/email/flow_folders/{email_flow_folder_uuid}'.sub('{' + 'storefront_oid' + '}', storefront_oid.to_s).sub('{' + 'email_flow_folder_uuid' + '}', email_flow_folder_uuid.to_s)

      # query parameters
      query_params = {}

      # header parameters
      header_params = {}
      header_params['X-UltraCart-Api-Version'] = @api_client.select_header_api_version()
      # HTTP header 'Accept' (if needed)
      header_params['Accept'] = @api_client.select_header_accept(['application/json'])
      # HTTP header 'Content-Type'
      header_params['Content-Type'] = @api_client.select_header_content_type(['application/json'])

      # form parameters
      form_params = {}

      # http body (model)
      post_body = @api_client.object_to_http_body(email_flow_folder)
      auth_names = ['ultraCartBrowserApiKey', 'ultraCartOauth', 'ultraCartSimpleApiKey']
      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 => 'EmailFlowFolderResponse')
      if @api_client.config.debugging
        @api_client.config.logger.debug "API called: StorefrontApi#update_email_flow_folder\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
      end
      return data, status_code, headers
    end
    # Update email global settings
    # @param global_settings global settings request
    # @param [Hash] opts the optional parameters
    # @return [EmailGlobalSettingsResponse]
    def update_email_global_settings(global_settings, opts = {})
      data, _status_code, _headers = update_email_global_settings_with_http_info(global_settings, opts)
      data
    end

    # Update email global settings
    # @param global_settings global settings request
    # @param [Hash] opts the optional parameters
    # @return [Array<(EmailGlobalSettingsResponse, Fixnum, Hash)>] EmailGlobalSettingsResponse data, response status code and response headers
    def update_email_global_settings_with_http_info(global_settings, opts = {})
      if @api_client.config.debugging
        @api_client.config.logger.debug 'Calling API: StorefrontApi.update_email_global_settings ...'
      end
      # verify the required parameter 'global_settings' is set
      if @api_client.config.client_side_validation && global_settings.nil?
        fail ArgumentError, "Missing the required parameter 'global_settings' when calling StorefrontApi.update_email_global_settings"
      end
      # resource path
      local_var_path = '/storefront/email/global_settings'

      # query parameters
      query_params = {}

      # header parameters
      header_params = {}
      header_params['X-UltraCart-Api-Version'] = @api_client.select_header_api_version()
      # HTTP header 'Accept' (if needed)
      header_params['Accept'] = @api_client.select_header_accept(['application/json'])
      # HTTP header 'Content-Type'
      header_params['Content-Type'] = @api_client.select_header_content_type(['application/json'])

      # form parameters
      form_params = {}

      # http body (model)
      post_body = @api_client.object_to_http_body(global_settings)
      auth_names = ['ultraCartBrowserApiKey', 'ultraCartOauth', 'ultraCartSimpleApiKey']
      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 => 'EmailGlobalSettingsResponse')
      if @api_client.config.debugging
        @api_client.config.logger.debug "API called: StorefrontApi#update_email_global_settings\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
      end
      return data, status_code, headers
    end
    # Update email list
    # @param storefront_oid 
    # @param email_list_uuid 
    # @param email_list Email list
    # @param [Hash] opts the optional parameters
    # @return [EmailListResponse]
    def update_email_list(storefront_oid, email_list_uuid, email_list, opts = {})
      data, _status_code, _headers = update_email_list_with_http_info(storefront_oid, email_list_uuid, email_list, opts)
      data
    end

    # Update email list
    # @param storefront_oid 
    # @param email_list_uuid 
    # @param email_list Email list
    # @param [Hash] opts the optional parameters
    # @return [Array<(EmailListResponse, Fixnum, Hash)>] EmailListResponse data, response status code and response headers
    def update_email_list_with_http_info(storefront_oid, email_list_uuid, email_list, opts = {})
      if @api_client.config.debugging
        @api_client.config.logger.debug 'Calling API: StorefrontApi.update_email_list ...'
      end
      # verify the required parameter 'storefront_oid' is set
      if @api_client.config.client_side_validation && storefront_oid.nil?
        fail ArgumentError, "Missing the required parameter 'storefront_oid' when calling StorefrontApi.update_email_list"
      end
      # verify the required parameter 'email_list_uuid' is set
      if @api_client.config.client_side_validation && email_list_uuid.nil?
        fail ArgumentError, "Missing the required parameter 'email_list_uuid' when calling StorefrontApi.update_email_list"
      end
      # verify the required parameter 'email_list' is set
      if @api_client.config.client_side_validation && email_list.nil?
        fail ArgumentError, "Missing the required parameter 'email_list' when calling StorefrontApi.update_email_list"
      end
      # resource path
      local_var_path = '/storefront/{storefront_oid}/email/lists/{email_list_uuid}'.sub('{' + 'storefront_oid' + '}', storefront_oid.to_s).sub('{' + 'email_list_uuid' + '}', email_list_uuid.to_s)

      # query parameters
      query_params = {}

      # header parameters
      header_params = {}
      header_params['X-UltraCart-Api-Version'] = @api_client.select_header_api_version()
      # HTTP header 'Accept' (if needed)
      header_params['Accept'] = @api_client.select_header_accept(['application/json'])
      # HTTP header 'Content-Type'
      header_params['Content-Type'] = @api_client.select_header_content_type(['application/json'])

      # form parameters
      form_params = {}

      # http body (model)
      post_body = @api_client.object_to_http_body(email_list)
      auth_names = ['ultraCartBrowserApiKey', 'ultraCartOauth', 'ultraCartSimpleApiKey']
      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 => 'EmailListResponse')
      if @api_client.config.debugging
        @api_client.config.logger.debug "API called: StorefrontApi#update_email_list\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
      end
      return data, status_code, headers
    end
    # Update email campaign folder
    # @param storefront_oid 
    # @param email_list_segment_folder_uuid 
    # @param email_list_segment_folder Email campaign folder
    # @param [Hash] opts the optional parameters
    # @return [EmailListSegmentFolderResponse]
    def update_email_list_segment_folder(storefront_oid, email_list_segment_folder_uuid, email_list_segment_folder, opts = {})
      data, _status_code, _headers = update_email_list_segment_folder_with_http_info(storefront_oid, email_list_segment_folder_uuid, email_list_segment_folder, opts)
      data
    end

    # Update email campaign folder
    # @param storefront_oid 
    # @param email_list_segment_folder_uuid 
    # @param email_list_segment_folder Email campaign folder
    # @param [Hash] opts the optional parameters
    # @return [Array<(EmailListSegmentFolderResponse, Fixnum, Hash)>] EmailListSegmentFolderResponse data, response status code and response headers
    def update_email_list_segment_folder_with_http_info(storefront_oid, email_list_segment_folder_uuid, email_list_segment_folder, opts = {})
      if @api_client.config.debugging
        @api_client.config.logger.debug 'Calling API: StorefrontApi.update_email_list_segment_folder ...'
      end
      # verify the required parameter 'storefront_oid' is set
      if @api_client.config.client_side_validation && storefront_oid.nil?
        fail ArgumentError, "Missing the required parameter 'storefront_oid' when calling StorefrontApi.update_email_list_segment_folder"
      end
      # verify the required parameter 'email_list_segment_folder_uuid' is set
      if @api_client.config.client_side_validation && email_list_segment_folder_uuid.nil?
        fail ArgumentError, "Missing the required parameter 'email_list_segment_folder_uuid' when calling StorefrontApi.update_email_list_segment_folder"
      end
      # verify the required parameter 'email_list_segment_folder' is set
      if @api_client.config.client_side_validation && email_list_segment_folder.nil?
        fail ArgumentError, "Missing the required parameter 'email_list_segment_folder' when calling StorefrontApi.update_email_list_segment_folder"
      end
      # resource path
      local_var_path = '/storefront/{storefront_oid}/email/list_segment_folders/{email_list_segment_folder_uuid}'.sub('{' + 'storefront_oid' + '}', storefront_oid.to_s).sub('{' + 'email_list_segment_folder_uuid' + '}', email_list_segment_folder_uuid.to_s)

      # query parameters
      query_params = {}

      # header parameters
      header_params = {}
      header_params['X-UltraCart-Api-Version'] = @api_client.select_header_api_version()
      # HTTP header 'Accept' (if needed)
      header_params['Accept'] = @api_client.select_header_accept(['application/json'])
      # HTTP header 'Content-Type'
      header_params['Content-Type'] = @api_client.select_header_content_type(['application/json'])

      # form parameters
      form_params = {}

      # http body (model)
      post_body = @api_client.object_to_http_body(email_list_segment_folder)
      auth_names = ['ultraCartBrowserApiKey', 'ultraCartOauth', 'ultraCartSimpleApiKey']
      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 => 'EmailListSegmentFolderResponse')
      if @api_client.config.debugging
        @api_client.config.logger.debug "API called: StorefrontApi#update_email_list_segment_folder\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
      end
      return data, status_code, headers
    end
    # Update email plan
    # @param storefront_oid 
    # @param settings plan request
    # @param [Hash] opts the optional parameters
    # @return [EmailPlanResponse]
    def update_email_plan(storefront_oid, settings, opts = {})
      data, _status_code, _headers = update_email_plan_with_http_info(storefront_oid, settings, opts)
      data
    end

    # Update email plan
    # @param storefront_oid 
    # @param settings plan request
    # @param [Hash] opts the optional parameters
    # @return [Array<(EmailPlanResponse, Fixnum, Hash)>] EmailPlanResponse data, response status code and response headers
    def update_email_plan_with_http_info(storefront_oid, settings, opts = {})
      if @api_client.config.debugging
        @api_client.config.logger.debug 'Calling API: StorefrontApi.update_email_plan ...'
      end
      # verify the required parameter 'storefront_oid' is set
      if @api_client.config.client_side_validation && storefront_oid.nil?
        fail ArgumentError, "Missing the required parameter 'storefront_oid' when calling StorefrontApi.update_email_plan"
      end
      # verify the required parameter 'settings' is set
      if @api_client.config.client_side_validation && settings.nil?
        fail ArgumentError, "Missing the required parameter 'settings' when calling StorefrontApi.update_email_plan"
      end
      # resource path
      local_var_path = '/storefront/{storefront_oid}/email/plan'.sub('{' + 'storefront_oid' + '}', storefront_oid.to_s)

      # query parameters
      query_params = {}

      # header parameters
      header_params = {}
      header_params['X-UltraCart-Api-Version'] = @api_client.select_header_api_version()
      # HTTP header 'Accept' (if needed)
      header_params['Accept'] = @api_client.select_header_accept(['application/json'])
      # HTTP header 'Content-Type'
      header_params['Content-Type'] = @api_client.select_header_content_type(['application/json'])

      # form parameters
      form_params = {}

      # http body (model)
      post_body = @api_client.object_to_http_body(settings)
      auth_names = ['ultraCartBrowserApiKey', 'ultraCartOauth', 'ultraCartSimpleApiKey']
      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 => 'EmailPlanResponse')
      if @api_client.config.debugging
        @api_client.config.logger.debug "API called: StorefrontApi#update_email_plan\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
      end
      return data, status_code, headers
    end
    # Update email postcard
    # @param storefront_oid 
    # @param commseq_postcard_uuid 
    # @param email_commseq_postcard Email commseq postcard
    # @param [Hash] opts the optional parameters
    # @return [EmailCommseqPostcardResponse]
    def update_email_postcard(storefront_oid, commseq_postcard_uuid, email_commseq_postcard, opts = {})
      data, _status_code, _headers = update_email_postcard_with_http_info(storefront_oid, commseq_postcard_uuid, email_commseq_postcard, opts)
      data
    end

    # Update email postcard
    # @param storefront_oid 
    # @param commseq_postcard_uuid 
    # @param email_commseq_postcard Email commseq postcard
    # @param [Hash] opts the optional parameters
    # @return [Array<(EmailCommseqPostcardResponse, Fixnum, Hash)>] EmailCommseqPostcardResponse data, response status code and response headers
    def update_email_postcard_with_http_info(storefront_oid, commseq_postcard_uuid, email_commseq_postcard, opts = {})
      if @api_client.config.debugging
        @api_client.config.logger.debug 'Calling API: StorefrontApi.update_email_postcard ...'
      end
      # verify the required parameter 'storefront_oid' is set
      if @api_client.config.client_side_validation && storefront_oid.nil?
        fail ArgumentError, "Missing the required parameter 'storefront_oid' when calling StorefrontApi.update_email_postcard"
      end
      # verify the required parameter 'commseq_postcard_uuid' is set
      if @api_client.config.client_side_validation && commseq_postcard_uuid.nil?
        fail ArgumentError, "Missing the required parameter 'commseq_postcard_uuid' when calling StorefrontApi.update_email_postcard"
      end
      # verify the required parameter 'email_commseq_postcard' is set
      if @api_client.config.client_side_validation && email_commseq_postcard.nil?
        fail ArgumentError, "Missing the required parameter 'email_commseq_postcard' when calling StorefrontApi.update_email_postcard"
      end
      # resource path
      local_var_path = '/storefront/{storefront_oid}/email/postcards/{commseq_postcard_uuid}'.sub('{' + 'storefront_oid' + '}', storefront_oid.to_s).sub('{' + 'commseq_postcard_uuid' + '}', commseq_postcard_uuid.to_s)

      # query parameters
      query_params = {}

      # header parameters
      header_params = {}
      header_params['X-UltraCart-Api-Version'] = @api_client.select_header_api_version()
      # HTTP header 'Accept' (if needed)
      header_params['Accept'] = @api_client.select_header_accept(['application/json'])
      # HTTP header 'Content-Type'
      header_params['Content-Type'] = @api_client.select_header_content_type(['application/json'])

      # form parameters
      form_params = {}

      # http body (model)
      post_body = @api_client.object_to_http_body(email_commseq_postcard)
      auth_names = ['ultraCartBrowserApiKey', 'ultraCartOauth', 'ultraCartSimpleApiKey']
      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 => 'EmailCommseqPostcardResponse')
      if @api_client.config.debugging
        @api_client.config.logger.debug "API called: StorefrontApi#update_email_postcard\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
      end
      return data, status_code, headers
    end
    # Update email segment
    # @param storefront_oid 
    # @param email_segment_uuid 
    # @param email_segment Email segment
    # @param [Hash] opts the optional parameters
    # @return [EmailSegmentResponse]
    def update_email_segment(storefront_oid, email_segment_uuid, email_segment, opts = {})
      data, _status_code, _headers = update_email_segment_with_http_info(storefront_oid, email_segment_uuid, email_segment, opts)
      data
    end

    # Update email segment
    # @param storefront_oid 
    # @param email_segment_uuid 
    # @param email_segment Email segment
    # @param [Hash] opts the optional parameters
    # @return [Array<(EmailSegmentResponse, Fixnum, Hash)>] EmailSegmentResponse data, response status code and response headers
    def update_email_segment_with_http_info(storefront_oid, email_segment_uuid, email_segment, opts = {})
      if @api_client.config.debugging
        @api_client.config.logger.debug 'Calling API: StorefrontApi.update_email_segment ...'
      end
      # verify the required parameter 'storefront_oid' is set
      if @api_client.config.client_side_validation && storefront_oid.nil?
        fail ArgumentError, "Missing the required parameter 'storefront_oid' when calling StorefrontApi.update_email_segment"
      end
      # verify the required parameter 'email_segment_uuid' is set
      if @api_client.config.client_side_validation && email_segment_uuid.nil?
        fail ArgumentError, "Missing the required parameter 'email_segment_uuid' when calling StorefrontApi.update_email_segment"
      end
      # verify the required parameter 'email_segment' is set
      if @api_client.config.client_side_validation && email_segment.nil?
        fail ArgumentError, "Missing the required parameter 'email_segment' when calling StorefrontApi.update_email_segment"
      end
      # resource path
      local_var_path = '/storefront/{storefront_oid}/email/segments/{email_segment_uuid}'.sub('{' + 'storefront_oid' + '}', storefront_oid.to_s).sub('{' + 'email_segment_uuid' + '}', email_segment_uuid.to_s)

      # query parameters
      query_params = {}

      # header parameters
      header_params = {}
      header_params['X-UltraCart-Api-Version'] = @api_client.select_header_api_version()
      # HTTP header 'Accept' (if needed)
      header_params['Accept'] = @api_client.select_header_accept(['application/json'])
      # HTTP header 'Content-Type'
      header_params['Content-Type'] = @api_client.select_header_content_type(['application/json'])

      # form parameters
      form_params = {}

      # http body (model)
      post_body = @api_client.object_to_http_body(email_segment)
      auth_names = ['ultraCartBrowserApiKey', 'ultraCartOauth', 'ultraCartSimpleApiKey']
      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 => 'EmailSegmentResponse')
      if @api_client.config.debugging
        @api_client.config.logger.debug "API called: StorefrontApi#update_email_segment\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
      end
      return data, status_code, headers
    end
    # Update email sending domain
    # @param domain 
    # @param email_domain EmailDomain
    # @param [Hash] opts the optional parameters
    # @return [EmailSendingDomainResponse]
    def update_email_sending_domain(domain, email_domain, opts = {})
      data, _status_code, _headers = update_email_sending_domain_with_http_info(domain, email_domain, opts)
      data
    end

    # Update email sending domain
    # @param domain 
    # @param email_domain EmailDomain
    # @param [Hash] opts the optional parameters
    # @return [Array<(EmailSendingDomainResponse, Fixnum, Hash)>] EmailSendingDomainResponse data, response status code and response headers
    def update_email_sending_domain_with_http_info(domain, email_domain, opts = {})
      if @api_client.config.debugging
        @api_client.config.logger.debug 'Calling API: StorefrontApi.update_email_sending_domain ...'
      end
      # verify the required parameter 'domain' is set
      if @api_client.config.client_side_validation && domain.nil?
        fail ArgumentError, "Missing the required parameter 'domain' when calling StorefrontApi.update_email_sending_domain"
      end
      # verify the required parameter 'email_domain' is set
      if @api_client.config.client_side_validation && email_domain.nil?
        fail ArgumentError, "Missing the required parameter 'email_domain' when calling StorefrontApi.update_email_sending_domain"
      end
      # resource path
      local_var_path = '/storefront/email/sending_domains/{domain}'.sub('{' + 'domain' + '}', domain.to_s)

      # query parameters
      query_params = {}

      # header parameters
      header_params = {}
      header_params['X-UltraCart-Api-Version'] = @api_client.select_header_api_version()
      # HTTP header 'Accept' (if needed)
      header_params['Accept'] = @api_client.select_header_accept(['application/json'])
      # HTTP header 'Content-Type'
      header_params['Content-Type'] = @api_client.select_header_content_type(['application/json'])

      # form parameters
      form_params = {}

      # http body (model)
      post_body = @api_client.object_to_http_body(email_domain)
      auth_names = ['ultraCartBrowserApiKey', 'ultraCartOauth', 'ultraCartSimpleApiKey']
      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 => 'EmailSendingDomainResponse')
      if @api_client.config.debugging
        @api_client.config.logger.debug "API called: StorefrontApi#update_email_sending_domain\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
      end
      return data, status_code, headers
    end
    # Update email settings
    # @param storefront_oid 
    # @param settings settings request
    # @param [Hash] opts the optional parameters
    # @return [EmailSettingsResponse]
    def update_email_settings(storefront_oid, settings, opts = {})
      data, _status_code, _headers = update_email_settings_with_http_info(storefront_oid, settings, opts)
      data
    end

    # Update email settings
    # @param storefront_oid 
    # @param settings settings request
    # @param [Hash] opts the optional parameters
    # @return [Array<(EmailSettingsResponse, Fixnum, Hash)>] EmailSettingsResponse data, response status code and response headers
    def update_email_settings_with_http_info(storefront_oid, settings, opts = {})
      if @api_client.config.debugging
        @api_client.config.logger.debug 'Calling API: StorefrontApi.update_email_settings ...'
      end
      # verify the required parameter 'storefront_oid' is set
      if @api_client.config.client_side_validation && storefront_oid.nil?
        fail ArgumentError, "Missing the required parameter 'storefront_oid' when calling StorefrontApi.update_email_settings"
      end
      # verify the required parameter 'settings' is set
      if @api_client.config.client_side_validation && settings.nil?
        fail ArgumentError, "Missing the required parameter 'settings' when calling StorefrontApi.update_email_settings"
      end
      # resource path
      local_var_path = '/storefront/{storefront_oid}/email/settings'.sub('{' + 'storefront_oid' + '}', storefront_oid.to_s)

      # query parameters
      query_params = {}

      # header parameters
      header_params = {}
      header_params['X-UltraCart-Api-Version'] = @api_client.select_header_api_version()
      # HTTP header 'Accept' (if needed)
      header_params['Accept'] = @api_client.select_header_accept(['application/json'])
      # HTTP header 'Content-Type'
      header_params['Content-Type'] = @api_client.select_header_content_type(['application/json'])

      # form parameters
      form_params = {}

      # http body (model)
      post_body = @api_client.object_to_http_body(settings)
      auth_names = ['ultraCartBrowserApiKey', 'ultraCartOauth', 'ultraCartSimpleApiKey']
      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 => 'EmailSettingsResponse')
      if @api_client.config.debugging
        @api_client.config.logger.debug "API called: StorefrontApi#update_email_settings\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
      end
      return data, status_code, headers
    end
    # Update experiment
    # @param storefront_oid 
    # @param storefront_experiment_oid 
    # @param experiment Experiment
    # @param [Hash] opts the optional parameters
    # @return [ExperimentResponse]
    def update_experiment(storefront_oid, storefront_experiment_oid, experiment, opts = {})
      data, _status_code, _headers = update_experiment_with_http_info(storefront_oid, storefront_experiment_oid, experiment, opts)
      data
    end

    # Update experiment
    # @param storefront_oid 
    # @param storefront_experiment_oid 
    # @param experiment Experiment
    # @param [Hash] opts the optional parameters
    # @return [Array<(ExperimentResponse, Fixnum, Hash)>] ExperimentResponse data, response status code and response headers
    def update_experiment_with_http_info(storefront_oid, storefront_experiment_oid, experiment, opts = {})
      if @api_client.config.debugging
        @api_client.config.logger.debug 'Calling API: StorefrontApi.update_experiment ...'
      end
      # verify the required parameter 'storefront_oid' is set
      if @api_client.config.client_side_validation && storefront_oid.nil?
        fail ArgumentError, "Missing the required parameter 'storefront_oid' when calling StorefrontApi.update_experiment"
      end
      # verify the required parameter 'storefront_experiment_oid' is set
      if @api_client.config.client_side_validation && storefront_experiment_oid.nil?
        fail ArgumentError, "Missing the required parameter 'storefront_experiment_oid' when calling StorefrontApi.update_experiment"
      end
      # verify the required parameter 'experiment' is set
      if @api_client.config.client_side_validation && experiment.nil?
        fail ArgumentError, "Missing the required parameter 'experiment' when calling StorefrontApi.update_experiment"
      end
      # resource path
      local_var_path = '/storefront/{storefront_oid}/experiments/{storefront_experiment_oid}'.sub('{' + 'storefront_oid' + '}', storefront_oid.to_s).sub('{' + 'storefront_experiment_oid' + '}', storefront_experiment_oid.to_s)

      # query parameters
      query_params = {}

      # header parameters
      header_params = {}
      header_params['X-UltraCart-Api-Version'] = @api_client.select_header_api_version()
      # HTTP header 'Accept' (if needed)
      header_params['Accept'] = @api_client.select_header_accept(['application/json'])
      # HTTP header 'Content-Type'
      header_params['Content-Type'] = @api_client.select_header_content_type(['application/json'])

      # form parameters
      form_params = {}

      # http body (model)
      post_body = @api_client.object_to_http_body(experiment)
      auth_names = ['ultraCartBrowserApiKey', 'ultraCartOauth', 'ultraCartSimpleApiKey']
      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 => 'ExperimentResponse')
      if @api_client.config.debugging
        @api_client.config.logger.debug "API called: StorefrontApi#update_experiment\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
      end
      return data, status_code, headers
    end
    # Update library item. Note that only certain fields may be updated via this method.
    # @param library_item_oid 
    # @param library_item Library item
    # @param [Hash] opts the optional parameters
    # @return [LibraryItemResponse]
    def update_library_item(library_item_oid, library_item, opts = {})
      data, _status_code, _headers = update_library_item_with_http_info(library_item_oid, library_item, opts)
      data
    end

    # Update library item. Note that only certain fields may be updated via this method.
    # @param library_item_oid 
    # @param library_item Library item
    # @param [Hash] opts the optional parameters
    # @return [Array<(LibraryItemResponse, Fixnum, Hash)>] LibraryItemResponse data, response status code and response headers
    def update_library_item_with_http_info(library_item_oid, library_item, opts = {})
      if @api_client.config.debugging
        @api_client.config.logger.debug 'Calling API: StorefrontApi.update_library_item ...'
      end
      # verify the required parameter 'library_item_oid' is set
      if @api_client.config.client_side_validation && library_item_oid.nil?
        fail ArgumentError, "Missing the required parameter 'library_item_oid' when calling StorefrontApi.update_library_item"
      end
      # verify the required parameter 'library_item' is set
      if @api_client.config.client_side_validation && library_item.nil?
        fail ArgumentError, "Missing the required parameter 'library_item' when calling StorefrontApi.update_library_item"
      end
      # resource path
      local_var_path = '/storefront/code_library/{library_item_oid}'.sub('{' + 'library_item_oid' + '}', library_item_oid.to_s)

      # query parameters
      query_params = {}

      # header parameters
      header_params = {}
      header_params['X-UltraCart-Api-Version'] = @api_client.select_header_api_version()
      # HTTP header 'Accept' (if needed)
      header_params['Accept'] = @api_client.select_header_accept(['application/json'])
      # HTTP header 'Content-Type'
      header_params['Content-Type'] = @api_client.select_header_content_type(['application/json'])

      # form parameters
      form_params = {}

      # http body (model)
      post_body = @api_client.object_to_http_body(library_item)
      auth_names = ['ultraCartBrowserApiKey', 'ultraCartOauth', 'ultraCartSimpleApiKey']
      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 => 'LibraryItemResponse')
      if @api_client.config.debugging
        @api_client.config.logger.debug "API called: StorefrontApi#update_library_item\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
      end
      return data, status_code, headers
    end
    # Update merchant notes on a screen recording
    # Update merchant notes on a screen recording 
    # @param storefront_oid 
    # @param screen_recording_uuid 
    # @param merchant_notes_request Merchant Notes
    # @param [Hash] opts the optional parameters
    # @return [nil]
    def update_screen_recording_merchant_notes(storefront_oid, screen_recording_uuid, merchant_notes_request, opts = {})
      update_screen_recording_merchant_notes_with_http_info(storefront_oid, screen_recording_uuid, merchant_notes_request, opts)
      nil
    end

    # Update merchant notes on a screen recording
    # Update merchant notes on a screen recording 
    # @param storefront_oid 
    # @param screen_recording_uuid 
    # @param merchant_notes_request Merchant Notes
    # @param [Hash] opts the optional parameters
    # @return [Array<(nil, Fixnum, Hash)>] nil, response status code and response headers
    def update_screen_recording_merchant_notes_with_http_info(storefront_oid, screen_recording_uuid, merchant_notes_request, opts = {})
      if @api_client.config.debugging
        @api_client.config.logger.debug 'Calling API: StorefrontApi.update_screen_recording_merchant_notes ...'
      end
      # verify the required parameter 'storefront_oid' is set
      if @api_client.config.client_side_validation && storefront_oid.nil?
        fail ArgumentError, "Missing the required parameter 'storefront_oid' when calling StorefrontApi.update_screen_recording_merchant_notes"
      end
      # verify the required parameter 'screen_recording_uuid' is set
      if @api_client.config.client_side_validation && screen_recording_uuid.nil?
        fail ArgumentError, "Missing the required parameter 'screen_recording_uuid' when calling StorefrontApi.update_screen_recording_merchant_notes"
      end
      # verify the required parameter 'merchant_notes_request' is set
      if @api_client.config.client_side_validation && merchant_notes_request.nil?
        fail ArgumentError, "Missing the required parameter 'merchant_notes_request' when calling StorefrontApi.update_screen_recording_merchant_notes"
      end
      # resource path
      local_var_path = '/storefront/{storefront_oid}/screen_recordings/{screen_recording_uuid}/merchant_notes'.sub('{' + 'storefront_oid' + '}', storefront_oid.to_s).sub('{' + 'screen_recording_uuid' + '}', screen_recording_uuid.to_s)

      # query parameters
      query_params = {}

      # header parameters
      header_params = {}
      header_params['X-UltraCart-Api-Version'] = @api_client.select_header_api_version()
      # HTTP header 'Accept' (if needed)
      header_params['Accept'] = @api_client.select_header_accept(['application/json'])
      # HTTP header 'Content-Type'
      header_params['Content-Type'] = @api_client.select_header_content_type(['application/json'])

      # form parameters
      form_params = {}

      # http body (model)
      post_body = @api_client.object_to_http_body(merchant_notes_request)
      auth_names = ['ultraCartOauth', 'ultraCartSimpleApiKey']
      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: StorefrontApi#update_screen_recording_merchant_notes\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
      end
      return data, status_code, headers
    end
    # Update screen recording segment
    # @param storefront_oid 
    # @param screen_recording_segment_oid 
    # @param segment Segment
    # @param [Hash] opts the optional parameters
    # @return [ScreenRecordingSegmentResponse]
    def update_screen_recording_segment(storefront_oid, screen_recording_segment_oid, segment, opts = {})
      data, _status_code, _headers = update_screen_recording_segment_with_http_info(storefront_oid, screen_recording_segment_oid, segment, opts)
      data
    end

    # Update screen recording segment
    # @param storefront_oid 
    # @param screen_recording_segment_oid 
    # @param segment Segment
    # @param [Hash] opts the optional parameters
    # @return [Array<(ScreenRecordingSegmentResponse, Fixnum, Hash)>] ScreenRecordingSegmentResponse data, response status code and response headers
    def update_screen_recording_segment_with_http_info(storefront_oid, screen_recording_segment_oid, segment, opts = {})
      if @api_client.config.debugging
        @api_client.config.logger.debug 'Calling API: StorefrontApi.update_screen_recording_segment ...'
      end
      # verify the required parameter 'storefront_oid' is set
      if @api_client.config.client_side_validation && storefront_oid.nil?
        fail ArgumentError, "Missing the required parameter 'storefront_oid' when calling StorefrontApi.update_screen_recording_segment"
      end
      # verify the required parameter 'screen_recording_segment_oid' is set
      if @api_client.config.client_side_validation && screen_recording_segment_oid.nil?
        fail ArgumentError, "Missing the required parameter 'screen_recording_segment_oid' when calling StorefrontApi.update_screen_recording_segment"
      end
      # verify the required parameter 'segment' is set
      if @api_client.config.client_side_validation && segment.nil?
        fail ArgumentError, "Missing the required parameter 'segment' when calling StorefrontApi.update_screen_recording_segment"
      end
      # resource path
      local_var_path = '/storefront/{storefront_oid}/screen_recordings/segments/{screen_recording_segment_oid}'.sub('{' + 'storefront_oid' + '}', storefront_oid.to_s).sub('{' + 'screen_recording_segment_oid' + '}', screen_recording_segment_oid.to_s)

      # query parameters
      query_params = {}

      # header parameters
      header_params = {}
      header_params['X-UltraCart-Api-Version'] = @api_client.select_header_api_version()
      # HTTP header 'Accept' (if needed)
      header_params['Accept'] = @api_client.select_header_accept(['application/json'])
      # HTTP header 'Content-Type'
      header_params['Content-Type'] = @api_client.select_header_content_type(['application/json'])

      # form parameters
      form_params = {}

      # http body (model)
      post_body = @api_client.object_to_http_body(segment)
      auth_names = ['ultraCartBrowserApiKey', 'ultraCartOauth', 'ultraCartSimpleApiKey']
      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 => 'ScreenRecordingSegmentResponse')
      if @api_client.config.debugging
        @api_client.config.logger.debug "API called: StorefrontApi#update_screen_recording_segment\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
      end
      return data, status_code, headers
    end
    # Update screen recording settings
    # @param storefront_oid 
    # @param settings Settings
    # @param [Hash] opts the optional parameters
    # @return [ScreenRecordingSettingsResponse]
    def update_screen_recording_settings(storefront_oid, settings, opts = {})
      data, _status_code, _headers = update_screen_recording_settings_with_http_info(storefront_oid, settings, opts)
      data
    end

    # Update screen recording settings
    # @param storefront_oid 
    # @param settings Settings
    # @param [Hash] opts the optional parameters
    # @return [Array<(ScreenRecordingSettingsResponse, Fixnum, Hash)>] ScreenRecordingSettingsResponse data, response status code and response headers
    def update_screen_recording_settings_with_http_info(storefront_oid, settings, opts = {})
      if @api_client.config.debugging
        @api_client.config.logger.debug 'Calling API: StorefrontApi.update_screen_recording_settings ...'
      end
      # verify the required parameter 'storefront_oid' is set
      if @api_client.config.client_side_validation && storefront_oid.nil?
        fail ArgumentError, "Missing the required parameter 'storefront_oid' when calling StorefrontApi.update_screen_recording_settings"
      end
      # verify the required parameter 'settings' is set
      if @api_client.config.client_side_validation && settings.nil?
        fail ArgumentError, "Missing the required parameter 'settings' when calling StorefrontApi.update_screen_recording_settings"
      end
      # resource path
      local_var_path = '/storefront/{storefront_oid}/screen_recordings/settings'.sub('{' + 'storefront_oid' + '}', storefront_oid.to_s)

      # query parameters
      query_params = {}

      # header parameters
      header_params = {}
      header_params['X-UltraCart-Api-Version'] = @api_client.select_header_api_version()
      # HTTP header 'Accept' (if needed)
      header_params['Accept'] = @api_client.select_header_accept(['application/json'])
      # HTTP header 'Content-Type'
      header_params['Content-Type'] = @api_client.select_header_content_type(['application/json'])

      # form parameters
      form_params = {}

      # http body (model)
      post_body = @api_client.object_to_http_body(settings)
      auth_names = ['ultraCartBrowserApiKey', 'ultraCartOauth', 'ultraCartSimpleApiKey']
      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 => 'ScreenRecordingSettingsResponse')
      if @api_client.config.debugging
        @api_client.config.logger.debug "API called: StorefrontApi#update_screen_recording_settings\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
      end
      return data, status_code, headers
    end
    # Update tags on a screen recording
    # Update tags on a screen recording 
    # @param storefront_oid 
    # @param screen_recording_uuid 
    # @param tags Tags
    # @param [Hash] opts the optional parameters
    # @return [nil]
    def update_screen_recording_tags(storefront_oid, screen_recording_uuid, tags, opts = {})
      update_screen_recording_tags_with_http_info(storefront_oid, screen_recording_uuid, tags, opts)
      nil
    end

    # Update tags on a screen recording
    # Update tags on a screen recording 
    # @param storefront_oid 
    # @param screen_recording_uuid 
    # @param tags Tags
    # @param [Hash] opts the optional parameters
    # @return [Array<(nil, Fixnum, Hash)>] nil, response status code and response headers
    def update_screen_recording_tags_with_http_info(storefront_oid, screen_recording_uuid, tags, opts = {})
      if @api_client.config.debugging
        @api_client.config.logger.debug 'Calling API: StorefrontApi.update_screen_recording_tags ...'
      end
      # verify the required parameter 'storefront_oid' is set
      if @api_client.config.client_side_validation && storefront_oid.nil?
        fail ArgumentError, "Missing the required parameter 'storefront_oid' when calling StorefrontApi.update_screen_recording_tags"
      end
      # verify the required parameter 'screen_recording_uuid' is set
      if @api_client.config.client_side_validation && screen_recording_uuid.nil?
        fail ArgumentError, "Missing the required parameter 'screen_recording_uuid' when calling StorefrontApi.update_screen_recording_tags"
      end
      # verify the required parameter 'tags' is set
      if @api_client.config.client_side_validation && tags.nil?
        fail ArgumentError, "Missing the required parameter 'tags' when calling StorefrontApi.update_screen_recording_tags"
      end
      # resource path
      local_var_path = '/storefront/{storefront_oid}/screen_recordings/{screen_recording_uuid}/tags'.sub('{' + 'storefront_oid' + '}', storefront_oid.to_s).sub('{' + 'screen_recording_uuid' + '}', screen_recording_uuid.to_s)

      # query parameters
      query_params = {}

      # header parameters
      header_params = {}
      header_params['X-UltraCart-Api-Version'] = @api_client.select_header_api_version()
      # HTTP header 'Accept' (if needed)
      header_params['Accept'] = @api_client.select_header_accept(['application/json'])
      # HTTP header 'Content-Type'
      header_params['Content-Type'] = @api_client.select_header_content_type(['application/json'])

      # form parameters
      form_params = {}

      # http body (model)
      post_body = @api_client.object_to_http_body(tags)
      auth_names = ['ultraCartOauth', 'ultraCartSimpleApiKey']
      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: StorefrontApi#update_screen_recording_tags\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
      end
      return data, status_code, headers
    end
    # Updates a transaction email object
    # Updates a transactional email 
    # @param storefront_oid 
    # @param email_id 
    # @param transaction_email TransactionEmail
    # @param [Hash] opts the optional parameters
    # @return [TransactionEmailResponse]
    def update_transaction_email(storefront_oid, email_id, transaction_email, opts = {})
      data, _status_code, _headers = update_transaction_email_with_http_info(storefront_oid, email_id, transaction_email, opts)
      data
    end

    # Updates a transaction email object
    # Updates a transactional email 
    # @param storefront_oid 
    # @param email_id 
    # @param transaction_email TransactionEmail
    # @param [Hash] opts the optional parameters
    # @return [Array<(TransactionEmailResponse, Fixnum, Hash)>] TransactionEmailResponse data, response status code and response headers
    def update_transaction_email_with_http_info(storefront_oid, email_id, transaction_email, opts = {})
      if @api_client.config.debugging
        @api_client.config.logger.debug 'Calling API: StorefrontApi.update_transaction_email ...'
      end
      # verify the required parameter 'storefront_oid' is set
      if @api_client.config.client_side_validation && storefront_oid.nil?
        fail ArgumentError, "Missing the required parameter 'storefront_oid' when calling StorefrontApi.update_transaction_email"
      end
      # verify the required parameter 'email_id' is set
      if @api_client.config.client_side_validation && email_id.nil?
        fail ArgumentError, "Missing the required parameter 'email_id' when calling StorefrontApi.update_transaction_email"
      end
      # verify the required parameter 'transaction_email' is set
      if @api_client.config.client_side_validation && transaction_email.nil?
        fail ArgumentError, "Missing the required parameter 'transaction_email' when calling StorefrontApi.update_transaction_email"
      end
      # resource path
      local_var_path = '/storefront/{storefront_oid}/transaction_email/list/{email_id}'.sub('{' + 'storefront_oid' + '}', storefront_oid.to_s).sub('{' + 'email_id' + '}', email_id.to_s)

      # query parameters
      query_params = {}

      # header parameters
      header_params = {}
      header_params['X-UltraCart-Api-Version'] = @api_client.select_header_api_version()
      # HTTP header 'Accept' (if needed)
      header_params['Accept'] = @api_client.select_header_accept(['application/json'])
      # HTTP header 'Content-Type'
      header_params['Content-Type'] = @api_client.select_header_content_type(['application/json'])

      # form parameters
      form_params = {}

      # http body (model)
      post_body = @api_client.object_to_http_body(transaction_email)
      auth_names = ['ultraCartBrowserApiKey', 'ultraCartOauth', 'ultraCartSimpleApiKey']
      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 => 'TransactionEmailResponse')
      if @api_client.config.debugging
        @api_client.config.logger.debug "API called: StorefrontApi#update_transaction_email\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
      end
      return data, status_code, headers
    end
    # Update Twilio account
    # @param esp_twilio_uuid 
    # @param twilio Twilio
    # @param [Hash] opts the optional parameters
    # @return [TwilioResponse]
    def update_twilio_account(esp_twilio_uuid, twilio, opts = {})
      data, _status_code, _headers = update_twilio_account_with_http_info(esp_twilio_uuid, twilio, opts)
      data
    end

    # Update Twilio account
    # @param esp_twilio_uuid 
    # @param twilio Twilio
    # @param [Hash] opts the optional parameters
    # @return [Array<(TwilioResponse, Fixnum, Hash)>] TwilioResponse data, response status code and response headers
    def update_twilio_account_with_http_info(esp_twilio_uuid, twilio, opts = {})
      if @api_client.config.debugging
        @api_client.config.logger.debug 'Calling API: StorefrontApi.update_twilio_account ...'
      end
      # verify the required parameter 'esp_twilio_uuid' is set
      if @api_client.config.client_side_validation && esp_twilio_uuid.nil?
        fail ArgumentError, "Missing the required parameter 'esp_twilio_uuid' when calling StorefrontApi.update_twilio_account"
      end
      # verify the required parameter 'twilio' is set
      if @api_client.config.client_side_validation && twilio.nil?
        fail ArgumentError, "Missing the required parameter 'twilio' when calling StorefrontApi.update_twilio_account"
      end
      # resource path
      local_var_path = '/storefront/twilio/accounts/{esp_twilio_uuid}'.sub('{' + 'esp_twilio_uuid' + '}', esp_twilio_uuid.to_s)

      # query parameters
      query_params = {}

      # header parameters
      header_params = {}
      header_params['X-UltraCart-Api-Version'] = @api_client.select_header_api_version()
      # HTTP header 'Accept' (if needed)
      header_params['Accept'] = @api_client.select_header_accept(['application/json'])
      # HTTP header 'Content-Type'
      header_params['Content-Type'] = @api_client.select_header_content_type(['application/json'])

      # form parameters
      form_params = {}

      # http body (model)
      post_body = @api_client.object_to_http_body(twilio)
      auth_names = ['ultraCartBrowserApiKey', 'ultraCartOauth', 'ultraCartSimpleApiKey']
      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 => 'TwilioResponse')
      if @api_client.config.debugging
        @api_client.config.logger.debug "API called: StorefrontApi#update_twilio_account\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
      end
      return data, status_code, headers
    end
  end
end