class MailchimpMarketing::ReportingApi

def get_facebook_ad_product_activity_report(outreach_id, opts = {})

List facebook ecommerce report
def get_facebook_ad_product_activity_report(outreach_id, opts = {})
  fail ArgumentError, "Missing required param: 'outreach_id'" if outreach_id.nil?
  fail ArgumentError, 'invalid value for "opts[:"count"]", must be smaller than or equal to 1000.' if !opts[:'count'].nil? && opts[:'count'] > 1000
  fail ArgumentError, 'invalid value for "sort_field", must be one of title, total_revenue, total_purchased' if opts[:'sort_field'] && !['title', 'total_revenue', 'total_purchased'].include?(opts[:'sort_field'])
  query_params = {}
  query_params[:'fields'] = @api_client.build_collection_param(opts[:'fields'], :csv) if !opts[:'fields'].nil?
  query_params[:'exclude_fields'] = @api_client.build_collection_param(opts[:'exclude_fields'], :csv) if !opts[:'exclude_fields'].nil?
  query_params[:'count'] = opts[:'count'] if !opts[:'count'].nil?
  query_params[:'offset'] = opts[:'offset'] if !opts[:'offset'].nil?
  query_params[:'sort_field'] = opts[:'sort_field'] if !opts[:'sort_field'].nil?
  post_body = nil
  local_var_path = '/reporting/facebook-ads/{outreach_id}/ecommerce-product-activity'.sub('{' + 'outreach_id' + '}', outreach_id.to_s)
  data = @api_client.call_api(:GET, local_var_path,
    :query_params => query_params,
    :body => post_body)
  return data
end

def get_facebook_ad_report(outreach_id, opts = {})

Get facebook ad report
def get_facebook_ad_report(outreach_id, opts = {})
  fail ArgumentError, "Missing required param: 'outreach_id'" if outreach_id.nil?
  query_params = {}
  query_params[:'fields'] = @api_client.build_collection_param(opts[:'fields'], :csv) if !opts[:'fields'].nil?
  query_params[:'exclude_fields'] = @api_client.build_collection_param(opts[:'exclude_fields'], :csv) if !opts[:'exclude_fields'].nil?
  post_body = nil
  local_var_path = '/reporting/facebook-ads/{outreach_id}'.sub('{' + 'outreach_id' + '}', outreach_id.to_s)
  data = @api_client.call_api(:GET, local_var_path,
    :query_params => query_params,
    :body => post_body)
  return data
end

def get_facebook_ads_report_all(opts = {})

List facebook ads reports
def get_facebook_ads_report_all(opts = {})
  fail ArgumentError, 'invalid value for "opts[:"count"]", must be smaller than or equal to 1000.' if !opts[:'count'].nil? && opts[:'count'] > 1000
  fail ArgumentError, 'invalid value for "sort_field", must be one of created_at, updated_at, end_time' if opts[:'sort_field'] && !['created_at', 'updated_at', 'end_time'].include?(opts[:'sort_field'])
  fail ArgumentError, 'invalid value for "sort_dir", must be one of ASC, DESC' if opts[:'sort_dir'] && !['ASC', 'DESC'].include?(opts[:'sort_dir'])
  query_params = {}
  query_params[:'fields'] = @api_client.build_collection_param(opts[:'fields'], :csv) if !opts[:'fields'].nil?
  query_params[:'exclude_fields'] = @api_client.build_collection_param(opts[:'exclude_fields'], :csv) if !opts[:'exclude_fields'].nil?
  query_params[:'count'] = opts[:'count'] if !opts[:'count'].nil?
  query_params[:'offset'] = opts[:'offset'] if !opts[:'offset'].nil?
  query_params[:'sort_field'] = opts[:'sort_field'] if !opts[:'sort_field'].nil?
  query_params[:'sort_dir'] = opts[:'sort_dir'] if !opts[:'sort_dir'].nil?
  post_body = nil
  local_var_path = '/reporting/facebook-ads'
  data = @api_client.call_api(:GET, local_var_path,
    :query_params => query_params,
    :body => post_body)
  return data
end

def get_landing_page_report(outreach_id, opts = {})

Get landing page report
def get_landing_page_report(outreach_id, opts = {})
  fail ArgumentError, "Missing required param: 'outreach_id'" if outreach_id.nil?
  query_params = {}
  query_params[:'fields'] = @api_client.build_collection_param(opts[:'fields'], :csv) if !opts[:'fields'].nil?
  query_params[:'exclude_fields'] = @api_client.build_collection_param(opts[:'exclude_fields'], :csv) if !opts[:'exclude_fields'].nil?
  post_body = nil
  local_var_path = '/reporting/landing-pages/{outreach_id}'.sub('{' + 'outreach_id' + '}', outreach_id.to_s)
  data = @api_client.call_api(:GET, local_var_path,
    :query_params => query_params,
    :body => post_body)
  return data
end

def get_landing_page_reports_all(opts = {})

List landing pages reports
def get_landing_page_reports_all(opts = {})
  fail ArgumentError, 'invalid value for "opts[:"count"]", must be smaller than or equal to 1000.' if !opts[:'count'].nil? && opts[:'count'] > 1000
  query_params = {}
  query_params[:'fields'] = @api_client.build_collection_param(opts[:'fields'], :csv) if !opts[:'fields'].nil?
  query_params[:'exclude_fields'] = @api_client.build_collection_param(opts[:'exclude_fields'], :csv) if !opts[:'exclude_fields'].nil?
  query_params[:'count'] = opts[:'count'] if !opts[:'count'].nil?
  query_params[:'offset'] = opts[:'offset'] if !opts[:'offset'].nil?
  post_body = nil
  local_var_path = '/reporting/landing-pages'
  data = @api_client.call_api(:GET, local_var_path,
    :query_params => query_params,
    :body => post_body)
  return data
end

def get_survey_question_answers(outreach_id, question_id, opts = {})

List answers for question
def get_survey_question_answers(outreach_id, question_id, opts = {})
  fail ArgumentError, "Missing required param: 'outreach_id'" if outreach_id.nil?
  fail ArgumentError, "Missing required param: 'question_id'" if question_id.nil?
  fail ArgumentError, 'invalid value for "respondent_familiarity_is", must be one of new, known, unknown' if opts[:'respondent_familiarity_is'] && !['new', 'known', 'unknown'].include?(opts[:'respondent_familiarity_is'])
  query_params = {}
  query_params[:'fields'] = @api_client.build_collection_param(opts[:'fields'], :csv) if !opts[:'fields'].nil?
  query_params[:'exclude_fields'] = @api_client.build_collection_param(opts[:'exclude_fields'], :csv) if !opts[:'exclude_fields'].nil?
  query_params[:'respondent_familiarity_is'] = opts[:'respondent_familiarity_is'] if !opts[:'respondent_familiarity_is'].nil?
  post_body = nil
  local_var_path = '/reporting/surveys/{outreach_id}/questions/{question_id}/answers'.sub('{' + 'outreach_id' + '}', outreach_id.to_s).sub('{' + 'question_id' + '}', question_id.to_s)
  data = @api_client.call_api(:GET, local_var_path,
    :query_params => query_params,
    :body => post_body)
  return data
end

def get_survey_question_report(outreach_id, question_id, opts = {})

Get survey question report
def get_survey_question_report(outreach_id, question_id, opts = {})
  fail ArgumentError, "Missing required param: 'outreach_id'" if outreach_id.nil?
  fail ArgumentError, "Missing required param: 'question_id'" if question_id.nil?
  query_params = {}
  query_params[:'fields'] = @api_client.build_collection_param(opts[:'fields'], :csv) if !opts[:'fields'].nil?
  query_params[:'exclude_fields'] = @api_client.build_collection_param(opts[:'exclude_fields'], :csv) if !opts[:'exclude_fields'].nil?
  post_body = nil
  local_var_path = '/reporting/surveys/{outreach_id}/questions/{question_id}'.sub('{' + 'outreach_id' + '}', outreach_id.to_s).sub('{' + 'question_id' + '}', question_id.to_s)
  data = @api_client.call_api(:GET, local_var_path,
    :query_params => query_params,
    :body => post_body)
  return data
end

def get_survey_question_reports_all(outreach_id, opts = {})

List survey question reports
def get_survey_question_reports_all(outreach_id, opts = {})
  fail ArgumentError, "Missing required param: 'outreach_id'" if outreach_id.nil?
  query_params = {}
  query_params[:'fields'] = @api_client.build_collection_param(opts[:'fields'], :csv) if !opts[:'fields'].nil?
  query_params[:'exclude_fields'] = @api_client.build_collection_param(opts[:'exclude_fields'], :csv) if !opts[:'exclude_fields'].nil?
  post_body = nil
  local_var_path = '/reporting/surveys/{outreach_id}/questions'.sub('{' + 'outreach_id' + '}', outreach_id.to_s)
  data = @api_client.call_api(:GET, local_var_path,
    :query_params => query_params,
    :body => post_body)
  return data
end

def get_survey_report(outreach_id, opts = {})

Get survey report
def get_survey_report(outreach_id, opts = {})
  fail ArgumentError, "Missing required param: 'outreach_id'" if outreach_id.nil?
  query_params = {}
  query_params[:'fields'] = @api_client.build_collection_param(opts[:'fields'], :csv) if !opts[:'fields'].nil?
  query_params[:'exclude_fields'] = @api_client.build_collection_param(opts[:'exclude_fields'], :csv) if !opts[:'exclude_fields'].nil?
  post_body = nil
  local_var_path = '/reporting/surveys/{outreach_id}'.sub('{' + 'outreach_id' + '}', outreach_id.to_s)
  data = @api_client.call_api(:GET, local_var_path,
    :query_params => query_params,
    :body => post_body)
  return data
end

def get_survey_reports_all(opts = {})

List survey reports
def get_survey_reports_all(opts = {})
  fail ArgumentError, 'invalid value for "opts[:"count"]", must be smaller than or equal to 1000.' if !opts[:'count'].nil? && opts[:'count'] > 1000
  query_params = {}
  query_params[:'fields'] = @api_client.build_collection_param(opts[:'fields'], :csv) if !opts[:'fields'].nil?
  query_params[:'exclude_fields'] = @api_client.build_collection_param(opts[:'exclude_fields'], :csv) if !opts[:'exclude_fields'].nil?
  query_params[:'count'] = opts[:'count'] if !opts[:'count'].nil?
  query_params[:'offset'] = opts[:'offset'] if !opts[:'offset'].nil?
  post_body = nil
  local_var_path = '/reporting/surveys'
  data = @api_client.call_api(:GET, local_var_path,
    :query_params => query_params,
    :body => post_body)
  return data
end

def get_survey_response(outreach_id, response_id, opts = {})

Get survey response
def get_survey_response(outreach_id, response_id, opts = {})
  fail ArgumentError, "Missing required param: 'outreach_id'" if outreach_id.nil?
  fail ArgumentError, "Missing required param: 'response_id'" if response_id.nil?
  query_params = {}
  post_body = nil
  local_var_path = '/reporting/surveys/{outreach_id}/responses/{response_id}'.sub('{' + 'outreach_id' + '}', outreach_id.to_s).sub('{' + 'response_id' + '}', response_id.to_s)
  data = @api_client.call_api(:GET, local_var_path,
    :query_params => query_params,
    :body => post_body)
  return data
end

def get_survey_responses_all(outreach_id, opts = {})

List survey responses
def get_survey_responses_all(outreach_id, opts = {})
  fail ArgumentError, "Missing required param: 'outreach_id'" if outreach_id.nil?
  fail ArgumentError, 'invalid value for "respondent_familiarity_is", must be one of new, known, unknown' if opts[:'respondent_familiarity_is'] && !['new', 'known', 'unknown'].include?(opts[:'respondent_familiarity_is'])
  query_params = {}
  query_params[:'fields'] = @api_client.build_collection_param(opts[:'fields'], :csv) if !opts[:'fields'].nil?
  query_params[:'exclude_fields'] = @api_client.build_collection_param(opts[:'exclude_fields'], :csv) if !opts[:'exclude_fields'].nil?
  query_params[:'answered_question'] = opts[:'answered_question'] if !opts[:'answered_question'].nil?
  query_params[:'chose_answer'] = opts[:'chose_answer'] if !opts[:'chose_answer'].nil?
  query_params[:'respondent_familiarity_is'] = opts[:'respondent_familiarity_is'] if !opts[:'respondent_familiarity_is'].nil?
  post_body = nil
  local_var_path = '/reporting/surveys/{outreach_id}/responses'.sub('{' + 'outreach_id' + '}', outreach_id.to_s)
  data = @api_client.call_api(:GET, local_var_path,
    :query_params => query_params,
    :body => post_body)
  return data
end

def initialize(api_client)

def initialize(api_client)
  @api_client = api_client
end