lib/MailchimpMarketing/api/lists_api.rb



=begin
#Mailchimp Marketing API

#No description provided (generated by Swagger Codegen https://github.com/swagger-api/swagger-codegen)

OpenAPI spec version: 3.0.71
Contact: apihelp@mailchimp.com
Generated by: https://github.com/swagger-api/swagger-codegen.git
Swagger Codegen version: 2.4.12

=end

require 'uri'

module MailchimpMarketing
  class ListsApi
    attr_accessor :api_client

    def initialize(api_client)
      @api_client = api_client
    end

    # Delete list
    def delete_list(list_id, opts = {})
      fail ArgumentError, "Missing required param: 'list_id'" if list_id.nil?

      query_params = {}
      post_body = nil

      local_var_path = '/lists/{list_id}'.sub('{' + 'list_id' + '}', list_id.to_s)
      data = @api_client.call_api(:DELETE, local_var_path,
        :query_params => query_params,
        :body => post_body)
      return data
    end

    # Delete interest category
    def delete_interest_category(list_id, interest_category_id, opts = {})
      fail ArgumentError, "Missing required param: 'list_id'" if list_id.nil?
      fail ArgumentError, "Missing required param: 'interest_category_id'" if interest_category_id.nil?

      query_params = {}
      post_body = nil

      local_var_path = '/lists/{list_id}/interest-categories/{interest_category_id}'.sub('{' + 'list_id' + '}', list_id.to_s).sub('{' + 'interest_category_id' + '}', interest_category_id.to_s)
      data = @api_client.call_api(:DELETE, local_var_path,
        :query_params => query_params,
        :body => post_body)
      return data
    end

    # Delete interest in category
    def delete_interest_category_interest(list_id, interest_category_id, interest_id, opts = {})
      fail ArgumentError, "Missing required param: 'list_id'" if list_id.nil?
      fail ArgumentError, "Missing required param: 'interest_category_id'" if interest_category_id.nil?
      fail ArgumentError, "Missing required param: 'interest_id'" if interest_id.nil?

      query_params = {}
      post_body = nil

      local_var_path = '/lists/{list_id}/interest-categories/{interest_category_id}/interests/{interest_id}'.sub('{' + 'list_id' + '}', list_id.to_s).sub('{' + 'interest_category_id' + '}', interest_category_id.to_s).sub('{' + 'interest_id' + '}', interest_id.to_s)
      data = @api_client.call_api(:DELETE, local_var_path,
        :query_params => query_params,
        :body => post_body)
      return data
    end

    # Archive list member
    def delete_list_member(list_id, subscriber_hash, opts = {})
      fail ArgumentError, "Missing required param: 'list_id'" if list_id.nil?
      fail ArgumentError, "Missing required param: 'subscriber_hash'" if subscriber_hash.nil?

      query_params = {}
      post_body = nil

      local_var_path = '/lists/{list_id}/members/{subscriber_hash}'.sub('{' + 'list_id' + '}', list_id.to_s).sub('{' + 'subscriber_hash' + '}', subscriber_hash.to_s)
      data = @api_client.call_api(:DELETE, local_var_path,
        :query_params => query_params,
        :body => post_body)
      return data
    end

    # Delete note
    def delete_list_member_note(list_id, subscriber_hash, note_id, opts = {})
      fail ArgumentError, "Missing required param: 'list_id'" if list_id.nil?
      fail ArgumentError, "Missing required param: 'subscriber_hash'" if subscriber_hash.nil?
      fail ArgumentError, "Missing required param: 'note_id'" if note_id.nil?

      query_params = {}
      post_body = nil

      local_var_path = '/lists/{list_id}/members/{subscriber_hash}/notes/{note_id}'.sub('{' + 'list_id' + '}', list_id.to_s).sub('{' + 'subscriber_hash' + '}', subscriber_hash.to_s).sub('{' + 'note_id' + '}', note_id.to_s)
      data = @api_client.call_api(:DELETE, local_var_path,
        :query_params => query_params,
        :body => post_body)
      return data
    end

    # Delete merge field
    def delete_list_merge_field(list_id, merge_id, opts = {})
      fail ArgumentError, "Missing required param: 'list_id'" if list_id.nil?
      fail ArgumentError, "Missing required param: 'merge_id'" if merge_id.nil?

      query_params = {}
      post_body = nil

      local_var_path = '/lists/{list_id}/merge-fields/{merge_id}'.sub('{' + 'list_id' + '}', list_id.to_s).sub('{' + 'merge_id' + '}', merge_id.to_s)
      data = @api_client.call_api(:DELETE, local_var_path,
        :query_params => query_params,
        :body => post_body)
      return data
    end

    # Delete segment
    def delete_segment(list_id, segment_id, opts = {})
      fail ArgumentError, "Missing required param: 'list_id'" if list_id.nil?
      fail ArgumentError, "Missing required param: 'segment_id'" if segment_id.nil?

      query_params = {}
      post_body = nil

      local_var_path = '/lists/{list_id}/segments/{segment_id}'.sub('{' + 'list_id' + '}', list_id.to_s).sub('{' + 'segment_id' + '}', segment_id.to_s)
      data = @api_client.call_api(:DELETE, local_var_path,
        :query_params => query_params,
        :body => post_body)
      return data
    end

    # Remove list member from segment
    def remove_segment_member(list_id, segment_id, subscriber_hash, opts = {})
      fail ArgumentError, "Missing required param: 'list_id'" if list_id.nil?
      fail ArgumentError, "Missing required param: 'segment_id'" if segment_id.nil?
      fail ArgumentError, "Missing required param: 'subscriber_hash'" if subscriber_hash.nil?

      query_params = {}
      post_body = nil

      local_var_path = '/lists/{list_id}/segments/{segment_id}/members/{subscriber_hash}'.sub('{' + 'list_id' + '}', list_id.to_s).sub('{' + 'segment_id' + '}', segment_id.to_s).sub('{' + 'subscriber_hash' + '}', subscriber_hash.to_s)
      data = @api_client.call_api(:DELETE, local_var_path,
        :query_params => query_params,
        :body => post_body)
      return data
    end

    # Delete webhook
    def delete_list_webhook(list_id, webhook_id, opts = {})
      fail ArgumentError, "Missing required param: 'list_id'" if list_id.nil?
      fail ArgumentError, "Missing required param: 'webhook_id'" if webhook_id.nil?

      query_params = {}
      post_body = nil

      local_var_path = '/lists/{list_id}/webhooks/{webhook_id}'.sub('{' + 'list_id' + '}', list_id.to_s).sub('{' + 'webhook_id' + '}', webhook_id.to_s)
      data = @api_client.call_api(:DELETE, local_var_path,
        :query_params => query_params,
        :body => post_body)
      return data
    end

    # List member tags
    def get_list_member_tags(list_id, subscriber_hash, opts = {})
      fail ArgumentError, "Missing required param: 'list_id'" if list_id.nil?
      fail ArgumentError, "Missing required param: 'subscriber_hash'" if subscriber_hash.nil?
      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 = '/lists/{list_id}/members/{subscriber_hash}/tags'.sub('{' + 'list_id' + '}', list_id.to_s).sub('{' + 'subscriber_hash' + '}', subscriber_hash.to_s)
      data = @api_client.call_api(:GET, local_var_path,
        :query_params => query_params,
        :body => post_body)
      return data
    end

    # Get lists info
    def get_all_lists(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 date_created' if opts[:'sort_field'] && !['date_created'].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[:'before_date_created'] = opts[:'before_date_created'] if !opts[:'before_date_created'].nil?
      query_params[:'since_date_created'] = opts[:'since_date_created'] if !opts[:'since_date_created'].nil?
      query_params[:'before_campaign_last_sent'] = opts[:'before_campaign_last_sent'] if !opts[:'before_campaign_last_sent'].nil?
      query_params[:'since_campaign_last_sent'] = opts[:'since_campaign_last_sent'] if !opts[:'since_campaign_last_sent'].nil?
      query_params[:'email'] = opts[:'email'] if !opts[:'email'].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?
      query_params[:'has_ecommerce_store'] = opts[:'has_ecommerce_store'] if !opts[:'has_ecommerce_store'].nil?
      query_params[:'include_total_contacts'] = opts[:'include_total_contacts'] if !opts[:'include_total_contacts'].nil?
      post_body = nil

      local_var_path = '/lists'
      data = @api_client.call_api(:GET, local_var_path,
        :query_params => query_params,
        :body => post_body)
      return data
    end

    # Get list info
    def get_list(list_id, opts = {})
      fail ArgumentError, "Missing required param: 'list_id'" if list_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?
      query_params[:'include_total_contacts'] = opts[:'include_total_contacts'] if !opts[:'include_total_contacts'].nil?
      post_body = nil

      local_var_path = '/lists/{list_id}'.sub('{' + 'list_id' + '}', list_id.to_s)
      data = @api_client.call_api(:GET, local_var_path,
        :query_params => query_params,
        :body => post_body)
      return data
    end

    # List abuse reports
    def get_list_abuse_reports(list_id, opts = {})
      fail ArgumentError, "Missing required param: 'list_id'" if list_id.nil?
      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 = '/lists/{list_id}/abuse-reports'.sub('{' + 'list_id' + '}', list_id.to_s)
      data = @api_client.call_api(:GET, local_var_path,
        :query_params => query_params,
        :body => post_body)
      return data
    end

    # Get abuse report
    def get_list_abuse_report_details(list_id, report_id, opts = {})
      fail ArgumentError, "Missing required param: 'list_id'" if list_id.nil?
      fail ArgumentError, "Missing required param: 'report_id'" if report_id.nil?
      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 = '/lists/{list_id}/abuse-reports/{report_id}'.sub('{' + 'list_id' + '}', list_id.to_s).sub('{' + 'report_id' + '}', report_id.to_s)
      data = @api_client.call_api(:GET, local_var_path,
        :query_params => query_params,
        :body => post_body)
      return data
    end

    # List recent activity
    def get_list_recent_activity(list_id, opts = {})
      fail ArgumentError, "Missing required param: 'list_id'" if list_id.nil?
      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[:'count'] = opts[:'count'] if !opts[:'count'].nil?
      query_params[:'offset'] = opts[:'offset'] if !opts[:'offset'].nil?
      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 = '/lists/{list_id}/activity'.sub('{' + 'list_id' + '}', list_id.to_s)
      data = @api_client.call_api(:GET, local_var_path,
        :query_params => query_params,
        :body => post_body)
      return data
    end

    # List top email clients
    def get_list_clients(list_id, opts = {})
      fail ArgumentError, "Missing required param: 'list_id'" if list_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 = '/lists/{list_id}/clients'.sub('{' + 'list_id' + '}', list_id.to_s)
      data = @api_client.call_api(:GET, local_var_path,
        :query_params => query_params,
        :body => post_body)
      return data
    end

    # List growth history data
    def get_list_growth_history(list_id, opts = {})
      fail ArgumentError, "Missing required param: 'list_id'" if list_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 month' if opts[:'sort_field'] && !['month'].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 = '/lists/{list_id}/growth-history'.sub('{' + 'list_id' + '}', list_id.to_s)
      data = @api_client.call_api(:GET, local_var_path,
        :query_params => query_params,
        :body => post_body)
      return data
    end

    # Get growth history by month
    def get_list_growth_history_by_month(list_id, month, opts = {})
      fail ArgumentError, "Missing required param: 'list_id'" if list_id.nil?
      fail ArgumentError, "Missing required param: 'month'" if month.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 = '/lists/{list_id}/growth-history/{month}'.sub('{' + 'list_id' + '}', list_id.to_s).sub('{' + 'month' + '}', month.to_s)
      data = @api_client.call_api(:GET, local_var_path,
        :query_params => query_params,
        :body => post_body)
      return data
    end

    # List interest categories
    def get_list_interest_categories(list_id, opts = {})
      fail ArgumentError, "Missing required param: 'list_id'" if list_id.nil?
      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?
      query_params[:'type'] = opts[:'type'] if !opts[:'type'].nil?
      post_body = nil

      local_var_path = '/lists/{list_id}/interest-categories'.sub('{' + 'list_id' + '}', list_id.to_s)
      data = @api_client.call_api(:GET, local_var_path,
        :query_params => query_params,
        :body => post_body)
      return data
    end

    # Get interest category info
    def get_interest_category(list_id, interest_category_id, opts = {})
      fail ArgumentError, "Missing required param: 'list_id'" if list_id.nil?
      fail ArgumentError, "Missing required param: 'interest_category_id'" if interest_category_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 = '/lists/{list_id}/interest-categories/{interest_category_id}'.sub('{' + 'list_id' + '}', list_id.to_s).sub('{' + 'interest_category_id' + '}', interest_category_id.to_s)
      data = @api_client.call_api(:GET, local_var_path,
        :query_params => query_params,
        :body => post_body)
      return data
    end

    # List interests in category
    def list_interest_category_interests(list_id, interest_category_id, opts = {})
      fail ArgumentError, "Missing required param: 'list_id'" if list_id.nil?
      fail ArgumentError, "Missing required param: 'interest_category_id'" if interest_category_id.nil?
      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 = '/lists/{list_id}/interest-categories/{interest_category_id}/interests'.sub('{' + 'list_id' + '}', list_id.to_s).sub('{' + 'interest_category_id' + '}', interest_category_id.to_s)
      data = @api_client.call_api(:GET, local_var_path,
        :query_params => query_params,
        :body => post_body)
      return data
    end

    # Get interest in category
    def get_interest_category_interest(list_id, interest_category_id, interest_id, opts = {})
      fail ArgumentError, "Missing required param: 'list_id'" if list_id.nil?
      fail ArgumentError, "Missing required param: 'interest_category_id'" if interest_category_id.nil?
      fail ArgumentError, "Missing required param: 'interest_id'" if interest_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 = '/lists/{list_id}/interest-categories/{interest_category_id}/interests/{interest_id}'.sub('{' + 'list_id' + '}', list_id.to_s).sub('{' + 'interest_category_id' + '}', interest_category_id.to_s).sub('{' + 'interest_id' + '}', interest_id.to_s)
      data = @api_client.call_api(:GET, local_var_path,
        :query_params => query_params,
        :body => post_body)
      return data
    end

    # List locations
    def get_list_locations(list_id, opts = {})
      fail ArgumentError, "Missing required param: 'list_id'" if list_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 = '/lists/{list_id}/locations'.sub('{' + 'list_id' + '}', list_id.to_s)
      data = @api_client.call_api(:GET, local_var_path,
        :query_params => query_params,
        :body => post_body)
      return data
    end

    # List members info
    def get_list_members_info(list_id, opts = {})
      fail ArgumentError, "Missing required param: 'list_id'" if list_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 "status", must be one of subscribed, unsubscribed, cleaned, pending, transactional, archived' if opts[:'status'] && !['subscribed', 'unsubscribed', 'cleaned', 'pending', 'transactional', 'archived'].include?(opts[:'status'])
      fail ArgumentError, 'invalid value for "interest_match", must be one of any, all, none' if opts[:'interest_match'] && !['any', 'all', 'none'].include?(opts[:'interest_match'])
      fail ArgumentError, 'invalid value for "sort_field", must be one of timestamp_opt, timestamp_signup, last_changed' if opts[:'sort_field'] && !['timestamp_opt', 'timestamp_signup', 'last_changed'].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[:'email_type'] = opts[:'email_type'] if !opts[:'email_type'].nil?
      query_params[:'status'] = opts[:'status'] if !opts[:'status'].nil?
      query_params[:'since_timestamp_opt'] = opts[:'since_timestamp_opt'] if !opts[:'since_timestamp_opt'].nil?
      query_params[:'before_timestamp_opt'] = opts[:'before_timestamp_opt'] if !opts[:'before_timestamp_opt'].nil?
      query_params[:'since_last_changed'] = opts[:'since_last_changed'] if !opts[:'since_last_changed'].nil?
      query_params[:'before_last_changed'] = opts[:'before_last_changed'] if !opts[:'before_last_changed'].nil?
      query_params[:'unique_email_id'] = opts[:'unique_email_id'] if !opts[:'unique_email_id'].nil?
      query_params[:'vip_only'] = opts[:'vip_only'] if !opts[:'vip_only'].nil?
      query_params[:'interest_category_id'] = opts[:'interest_category_id'] if !opts[:'interest_category_id'].nil?
      query_params[:'interest_ids'] = opts[:'interest_ids'] if !opts[:'interest_ids'].nil?
      query_params[:'interest_match'] = opts[:'interest_match'] if !opts[:'interest_match'].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?
      query_params[:'since_last_campaign'] = opts[:'since_last_campaign'] if !opts[:'since_last_campaign'].nil?
      query_params[:'unsubscribed_since'] = opts[:'unsubscribed_since'] if !opts[:'unsubscribed_since'].nil?
      post_body = nil

      local_var_path = '/lists/{list_id}/members'.sub('{' + 'list_id' + '}', list_id.to_s)
      data = @api_client.call_api(:GET, local_var_path,
        :query_params => query_params,
        :body => post_body)
      return data
    end

    # Get member info
    def get_list_member(list_id, subscriber_hash, opts = {})
      fail ArgumentError, "Missing required param: 'list_id'" if list_id.nil?
      fail ArgumentError, "Missing required param: 'subscriber_hash'" if subscriber_hash.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 = '/lists/{list_id}/members/{subscriber_hash}'.sub('{' + 'list_id' + '}', list_id.to_s).sub('{' + 'subscriber_hash' + '}', subscriber_hash.to_s)
      data = @api_client.call_api(:GET, local_var_path,
        :query_params => query_params,
        :body => post_body)
      return data
    end

    # View recent activity 50
    def get_list_member_activity(list_id, subscriber_hash, opts = {})
      fail ArgumentError, "Missing required param: 'list_id'" if list_id.nil?
      fail ArgumentError, "Missing required param: 'subscriber_hash'" if subscriber_hash.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?
      query_params[:'action'] = @api_client.build_collection_param(opts[:'action'], :csv) if !opts[:'action'].nil?
      post_body = nil

      local_var_path = '/lists/{list_id}/members/{subscriber_hash}/activity'.sub('{' + 'list_id' + '}', list_id.to_s).sub('{' + 'subscriber_hash' + '}', subscriber_hash.to_s)
      data = @api_client.call_api(:GET, local_var_path,
        :query_params => query_params,
        :body => post_body)
      return data
    end

    # View recent activity
    def get_list_member_activity_feed(list_id, subscriber_hash, opts = {})
      fail ArgumentError, "Missing required param: 'list_id'" if list_id.nil?
      fail ArgumentError, "Missing required param: 'subscriber_hash'" if subscriber_hash.nil?
      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?
      query_params[:'activity_filters'] = @api_client.build_collection_param(opts[:'activity_filters'], :csv) if !opts[:'activity_filters'].nil?
      post_body = nil

      local_var_path = '/lists/{list_id}/members/{subscriber_hash}/activity-feed'.sub('{' + 'list_id' + '}', list_id.to_s).sub('{' + 'subscriber_hash' + '}', subscriber_hash.to_s)
      data = @api_client.call_api(:GET, local_var_path,
        :query_params => query_params,
        :body => post_body)
      return data
    end

    # List member events
    def get_list_member_events(list_id, subscriber_hash, opts = {})
      fail ArgumentError, "Missing required param: 'list_id'" if list_id.nil?
      fail ArgumentError, "Missing required param: 'subscriber_hash'" if subscriber_hash.nil?
      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[:'count'] = opts[:'count'] if !opts[:'count'].nil?
      query_params[:'offset'] = opts[:'offset'] if !opts[:'offset'].nil?
      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 = '/lists/{list_id}/members/{subscriber_hash}/events'.sub('{' + 'list_id' + '}', list_id.to_s).sub('{' + 'subscriber_hash' + '}', subscriber_hash.to_s)
      data = @api_client.call_api(:GET, local_var_path,
        :query_params => query_params,
        :body => post_body)
      return data
    end

    # List member goal events
    def getListMemberGoals(list_id, subscriber_hash, opts = {})
      fail ArgumentError, "Missing required param: 'list_id'" if list_id.nil?
      fail ArgumentError, "Missing required param: 'subscriber_hash'" if subscriber_hash.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 = '/lists/{list_id}/members/{subscriber_hash}/goals'.sub('{' + 'list_id' + '}', list_id.to_s).sub('{' + 'subscriber_hash' + '}', subscriber_hash.to_s)
      data = @api_client.call_api(:GET, local_var_path,
        :query_params => query_params,
        :body => post_body)
      return data
    end

    # List recent member notes
    def get_list_member_notes(list_id, subscriber_hash, opts = {})
      fail ArgumentError, "Missing required param: 'list_id'" if list_id.nil?
      fail ArgumentError, "Missing required param: 'subscriber_hash'" if subscriber_hash.nil?
      fail ArgumentError, 'invalid value for "sort_field", must be one of created_at, updated_at, note_id' if opts[:'sort_field'] && !['created_at', 'updated_at', 'note_id'].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'])
      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[:'sort_field'] = opts[:'sort_field'] if !opts[:'sort_field'].nil?
      query_params[:'sort_dir'] = opts[:'sort_dir'] if !opts[:'sort_dir'].nil?
      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 = '/lists/{list_id}/members/{subscriber_hash}/notes'.sub('{' + 'list_id' + '}', list_id.to_s).sub('{' + 'subscriber_hash' + '}', subscriber_hash.to_s)
      data = @api_client.call_api(:GET, local_var_path,
        :query_params => query_params,
        :body => post_body)
      return data
    end

    # Get member note
    def get_list_member_note(list_id, subscriber_hash, note_id, opts = {})
      fail ArgumentError, "Missing required param: 'list_id'" if list_id.nil?
      fail ArgumentError, "Missing required param: 'subscriber_hash'" if subscriber_hash.nil?
      fail ArgumentError, "Missing required param: 'note_id'" if note_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 = '/lists/{list_id}/members/{subscriber_hash}/notes/{note_id}'.sub('{' + 'list_id' + '}', list_id.to_s).sub('{' + 'subscriber_hash' + '}', subscriber_hash.to_s).sub('{' + 'note_id' + '}', note_id.to_s)
      data = @api_client.call_api(:GET, local_var_path,
        :query_params => query_params,
        :body => post_body)
      return data
    end

    # List merge fields
    def get_list_merge_fields(list_id, opts = {})
      fail ArgumentError, "Missing required param: 'list_id'" if list_id.nil?
      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?
      query_params[:'type'] = opts[:'type'] if !opts[:'type'].nil?
      query_params[:'required'] = opts[:'required'] if !opts[:'required'].nil?
      post_body = nil

      local_var_path = '/lists/{list_id}/merge-fields'.sub('{' + 'list_id' + '}', list_id.to_s)
      data = @api_client.call_api(:GET, local_var_path,
        :query_params => query_params,
        :body => post_body)
      return data
    end

    # Get merge field
    def get_list_merge_field(list_id, merge_id, opts = {})
      fail ArgumentError, "Missing required param: 'list_id'" if list_id.nil?
      fail ArgumentError, "Missing required param: 'merge_id'" if merge_id.nil?

      query_params = {}
      query_params[:'exclude_fields'] = @api_client.build_collection_param(opts[:'exclude_fields'], :csv) if !opts[:'exclude_fields'].nil?
      query_params[:'fields'] = @api_client.build_collection_param(opts[:'fields'], :csv) if !opts[:'fields'].nil?
      post_body = nil

      local_var_path = '/lists/{list_id}/merge-fields/{merge_id}'.sub('{' + 'list_id' + '}', list_id.to_s).sub('{' + 'merge_id' + '}', merge_id.to_s)
      data = @api_client.call_api(:GET, local_var_path,
        :query_params => query_params,
        :body => post_body)
      return data
    end

    # Get segment info
    def get_segment(list_id, segment_id, opts = {})
      fail ArgumentError, "Missing required param: 'list_id'" if list_id.nil?
      fail ArgumentError, "Missing required param: 'segment_id'" if segment_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?
      query_params[:'include_cleaned'] = opts[:'include_cleaned'] if !opts[:'include_cleaned'].nil?
      query_params[:'include_transactional'] = opts[:'include_transactional'] if !opts[:'include_transactional'].nil?
      query_params[:'include_unsubscribed'] = opts[:'include_unsubscribed'] if !opts[:'include_unsubscribed'].nil?
      post_body = nil

      local_var_path = '/lists/{list_id}/segments/{segment_id}'.sub('{' + 'list_id' + '}', list_id.to_s).sub('{' + 'segment_id' + '}', segment_id.to_s)
      data = @api_client.call_api(:GET, local_var_path,
        :query_params => query_params,
        :body => post_body)
      return data
    end

    # List members in segment
    def get_segment_members_list(list_id, segment_id, opts = {})
      fail ArgumentError, "Missing required param: 'list_id'" if list_id.nil?
      fail ArgumentError, "Missing required param: 'segment_id'" if segment_id.nil?
      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?
      query_params[:'include_cleaned'] = opts[:'include_cleaned'] if !opts[:'include_cleaned'].nil?
      query_params[:'include_transactional'] = opts[:'include_transactional'] if !opts[:'include_transactional'].nil?
      query_params[:'include_unsubscribed'] = opts[:'include_unsubscribed'] if !opts[:'include_unsubscribed'].nil?
      post_body = nil

      local_var_path = '/lists/{list_id}/segments/{segment_id}/members'.sub('{' + 'list_id' + '}', list_id.to_s).sub('{' + 'segment_id' + '}', segment_id.to_s)
      data = @api_client.call_api(:GET, local_var_path,
        :query_params => query_params,
        :body => post_body)
      return data
    end

    # List signup forms
    def get_list_signup_forms(list_id, opts = {})
      fail ArgumentError, "Missing required param: 'list_id'" if list_id.nil?

      query_params = {}
      post_body = nil

      local_var_path = '/lists/{list_id}/signup-forms'.sub('{' + 'list_id' + '}', list_id.to_s)
      data = @api_client.call_api(:GET, local_var_path,
        :query_params => query_params,
        :body => post_body)
      return data
    end

    # List webhooks
    def get_list_webhooks(list_id, opts = {})
      fail ArgumentError, "Missing required param: 'list_id'" if list_id.nil?

      query_params = {}
      post_body = nil

      local_var_path = '/lists/{list_id}/webhooks'.sub('{' + 'list_id' + '}', list_id.to_s)
      data = @api_client.call_api(:GET, local_var_path,
        :query_params => query_params,
        :body => post_body)
      return data
    end

    # Get webhook info
    def get_list_webhook(list_id, webhook_id, opts = {})
      fail ArgumentError, "Missing required param: 'list_id'" if list_id.nil?
      fail ArgumentError, "Missing required param: 'webhook_id'" if webhook_id.nil?

      query_params = {}
      post_body = nil

      local_var_path = '/lists/{list_id}/webhooks/{webhook_id}'.sub('{' + 'list_id' + '}', list_id.to_s).sub('{' + 'webhook_id' + '}', webhook_id.to_s)
      data = @api_client.call_api(:GET, local_var_path,
        :query_params => query_params,
        :body => post_body)
      return data
    end

    # Update lists
    def update_list(list_id, body, opts = {})
      fail ArgumentError, "Missing required param: 'list_id'" if list_id.nil?
      fail ArgumentError, "Missing required param: 'body'" if body.nil?

      query_params = {}
      post_body = @api_client.object_to_http_body(body)

      local_var_path = '/lists/{list_id}'.sub('{' + 'list_id' + '}', list_id.to_s)
      data = @api_client.call_api(:PATCH, local_var_path,
        :query_params => query_params,
        :body => post_body)
      return data
    end

    # Update interest category
    def update_interest_category(list_id, interest_category_id, body, opts = {})
      fail ArgumentError, "Missing required param: 'list_id'" if list_id.nil?
      fail ArgumentError, "Missing required param: 'interest_category_id'" if interest_category_id.nil?
      fail ArgumentError, "Missing required param: 'body'" if body.nil?

      query_params = {}
      post_body = @api_client.object_to_http_body(body)

      local_var_path = '/lists/{list_id}/interest-categories/{interest_category_id}'.sub('{' + 'list_id' + '}', list_id.to_s).sub('{' + 'interest_category_id' + '}', interest_category_id.to_s)
      data = @api_client.call_api(:PATCH, local_var_path,
        :query_params => query_params,
        :body => post_body)
      return data
    end

    # Update interest in category
    def update_interest_category_interest(list_id, interest_category_id, interest_id, body, opts = {})
      fail ArgumentError, "Missing required param: 'list_id'" if list_id.nil?
      fail ArgumentError, "Missing required param: 'interest_category_id'" if interest_category_id.nil?
      fail ArgumentError, "Missing required param: 'interest_id'" if interest_id.nil?
      fail ArgumentError, "Missing required param: 'body'" if body.nil?

      query_params = {}
      post_body = @api_client.object_to_http_body(body)

      local_var_path = '/lists/{list_id}/interest-categories/{interest_category_id}/interests/{interest_id}'.sub('{' + 'list_id' + '}', list_id.to_s).sub('{' + 'interest_category_id' + '}', interest_category_id.to_s).sub('{' + 'interest_id' + '}', interest_id.to_s)
      data = @api_client.call_api(:PATCH, local_var_path,
        :query_params => query_params,
        :body => post_body)
      return data
    end

    # Update list member
    def update_list_member(list_id, subscriber_hash, body, opts = {})
      fail ArgumentError, "Missing required param: 'list_id'" if list_id.nil?
      fail ArgumentError, "Missing required param: 'subscriber_hash'" if subscriber_hash.nil?
      fail ArgumentError, "Missing required param: 'body'" if body.nil?

      query_params = {}
      query_params[:'skip_merge_validation'] = opts[:'skip_merge_validation'] if !opts[:'skip_merge_validation'].nil?
      post_body = @api_client.object_to_http_body(body)

      local_var_path = '/lists/{list_id}/members/{subscriber_hash}'.sub('{' + 'list_id' + '}', list_id.to_s).sub('{' + 'subscriber_hash' + '}', subscriber_hash.to_s)
      data = @api_client.call_api(:PATCH, local_var_path,
        :query_params => query_params,
        :body => post_body)
      return data
    end

    # Update note
    def update_list_member_note(list_id, subscriber_hash, note_id, body, opts = {})
      fail ArgumentError, "Missing required param: 'list_id'" if list_id.nil?
      fail ArgumentError, "Missing required param: 'subscriber_hash'" if subscriber_hash.nil?
      fail ArgumentError, "Missing required param: 'note_id'" if note_id.nil?
      fail ArgumentError, "Missing required param: 'body'" if body.nil?

      query_params = {}
      post_body = @api_client.object_to_http_body(body)

      local_var_path = '/lists/{list_id}/members/{subscriber_hash}/notes/{note_id}'.sub('{' + 'list_id' + '}', list_id.to_s).sub('{' + 'subscriber_hash' + '}', subscriber_hash.to_s).sub('{' + 'note_id' + '}', note_id.to_s)
      data = @api_client.call_api(:PATCH, local_var_path,
        :query_params => query_params,
        :body => post_body)
      return data
    end

    # Update merge field
    def update_list_merge_field(list_id, merge_id, body, opts = {})
      fail ArgumentError, "Missing required param: 'list_id'" if list_id.nil?
      fail ArgumentError, "Missing required param: 'merge_id'" if merge_id.nil?
      fail ArgumentError, "Missing required param: 'body'" if body.nil?

      query_params = {}
      post_body = @api_client.object_to_http_body(body)

      local_var_path = '/lists/{list_id}/merge-fields/{merge_id}'.sub('{' + 'list_id' + '}', list_id.to_s).sub('{' + 'merge_id' + '}', merge_id.to_s)
      data = @api_client.call_api(:PATCH, local_var_path,
        :query_params => query_params,
        :body => post_body)
      return data
    end

    # Update segment
    def update_segment(list_id, segment_id, body, opts = {})
      fail ArgumentError, "Missing required param: 'list_id'" if list_id.nil?
      fail ArgumentError, "Missing required param: 'segment_id'" if segment_id.nil?
      fail ArgumentError, "Missing required param: 'body'" if body.nil?

      query_params = {}
      post_body = @api_client.object_to_http_body(body)

      local_var_path = '/lists/{list_id}/segments/{segment_id}'.sub('{' + 'list_id' + '}', list_id.to_s).sub('{' + 'segment_id' + '}', segment_id.to_s)
      data = @api_client.call_api(:PATCH, local_var_path,
        :query_params => query_params,
        :body => post_body)
      return data
    end

    # Update webhook
    def update_list_webhook(list_id, webhook_id, body, opts = {})
      fail ArgumentError, "Missing required param: 'list_id'" if list_id.nil?
      fail ArgumentError, "Missing required param: 'webhook_id'" if webhook_id.nil?
      fail ArgumentError, "Missing required param: 'body'" if body.nil?

      query_params = {}
      post_body = @api_client.object_to_http_body(body)

      local_var_path = '/lists/{list_id}/webhooks/{webhook_id}'.sub('{' + 'list_id' + '}', list_id.to_s).sub('{' + 'webhook_id' + '}', webhook_id.to_s)
      data = @api_client.call_api(:PATCH, local_var_path,
        :query_params => query_params,
        :body => post_body)
      return data
    end

    # Add event
    def create_list_member_event(list_id, subscriber_hash, body, opts = {})
      fail ArgumentError, "Missing required param: 'list_id'" if list_id.nil?
      fail ArgumentError, "Missing required param: 'subscriber_hash'" if subscriber_hash.nil?
      fail ArgumentError, "Missing required param: 'body'" if body.nil?

      query_params = {}
      post_body = @api_client.object_to_http_body(body)

      local_var_path = '/lists/{list_id}/members/{subscriber_hash}/events'.sub('{' + 'list_id' + '}', list_id.to_s).sub('{' + 'subscriber_hash' + '}', subscriber_hash.to_s)
      data = @api_client.call_api(:POST, local_var_path,
        :query_params => query_params,
        :body => post_body)
      return data
    end

    # Add or remove member tags
    def update_list_member_tags(list_id, subscriber_hash, body, opts = {})
      fail ArgumentError, "Missing required param: 'list_id'" if list_id.nil?
      fail ArgumentError, "Missing required param: 'subscriber_hash'" if subscriber_hash.nil?
      fail ArgumentError, "Missing required param: 'body'" if body.nil?

      query_params = {}
      post_body = @api_client.object_to_http_body(body)

      local_var_path = '/lists/{list_id}/members/{subscriber_hash}/tags'.sub('{' + 'list_id' + '}', list_id.to_s).sub('{' + 'subscriber_hash' + '}', subscriber_hash.to_s)
      data = @api_client.call_api(:POST, local_var_path,
        :query_params => query_params,
        :body => post_body)
      return data
    end

    # Add list
    def create_list(body, opts = {})
      fail ArgumentError, "Missing required param: 'body'" if body.nil?

      query_params = {}
      post_body = @api_client.object_to_http_body(body)

      local_var_path = '/lists'
      data = @api_client.call_api(:POST, local_var_path,
        :query_params => query_params,
        :body => post_body)
      return data
    end

    # Batch subscribe or unsubscribe
    def batch_list_members(list_id, body, opts = {})
      fail ArgumentError, "Missing required param: 'list_id'" if list_id.nil?
      fail ArgumentError, "Missing required param: 'body'" if body.nil?

      query_params = {}
      query_params[:'skip_merge_validation'] = opts[:'skip_merge_validation'] if !opts[:'skip_merge_validation'].nil?
      query_params[:'skip_duplicate_check'] = opts[:'skip_duplicate_check'] if !opts[:'skip_duplicate_check'].nil?
      post_body = @api_client.object_to_http_body(body)

      local_var_path = '/lists/{list_id}'.sub('{' + 'list_id' + '}', list_id.to_s)
      data = @api_client.call_api(:POST, local_var_path,
        :query_params => query_params,
        :body => post_body)
      return data
    end

    # Add interest category
    def create_list_interest_category(list_id, body, opts = {})
      fail ArgumentError, "Missing required param: 'list_id'" if list_id.nil?
      fail ArgumentError, "Missing required param: 'body'" if body.nil?

      query_params = {}
      post_body = @api_client.object_to_http_body(body)

      local_var_path = '/lists/{list_id}/interest-categories'.sub('{' + 'list_id' + '}', list_id.to_s)
      data = @api_client.call_api(:POST, local_var_path,
        :query_params => query_params,
        :body => post_body)
      return data
    end

    # Add interest in category
    def create_interest_category_interest(list_id, interest_category_id, body, opts = {})
      fail ArgumentError, "Missing required param: 'list_id'" if list_id.nil?
      fail ArgumentError, "Missing required param: 'interest_category_id'" if interest_category_id.nil?
      fail ArgumentError, "Missing required param: 'body'" if body.nil?

      query_params = {}
      post_body = @api_client.object_to_http_body(body)

      local_var_path = '/lists/{list_id}/interest-categories/{interest_category_id}/interests'.sub('{' + 'list_id' + '}', list_id.to_s).sub('{' + 'interest_category_id' + '}', interest_category_id.to_s)
      data = @api_client.call_api(:POST, local_var_path,
        :query_params => query_params,
        :body => post_body)
      return data
    end

    # Add member to list
    def add_list_member(list_id, body, opts = {})
      fail ArgumentError, "Missing required param: 'list_id'" if list_id.nil?
      fail ArgumentError, "Missing required param: 'body'" if body.nil?

      query_params = {}
      query_params[:'skip_merge_validation'] = opts[:'skip_merge_validation'] if !opts[:'skip_merge_validation'].nil?
      post_body = @api_client.object_to_http_body(body)

      local_var_path = '/lists/{list_id}/members'.sub('{' + 'list_id' + '}', list_id.to_s)
      data = @api_client.call_api(:POST, local_var_path,
        :query_params => query_params,
        :body => post_body)
      return data
    end

    # Delete list member
    def delete_list_member_permanent(list_id, subscriber_hash, opts = {})
      fail ArgumentError, "Missing required param: 'list_id'" if list_id.nil?
      fail ArgumentError, "Missing required param: 'subscriber_hash'" if subscriber_hash.nil?

      query_params = {}
      post_body = nil

      local_var_path = '/lists/{list_id}/members/{subscriber_hash}/actions/delete-permanent'.sub('{' + 'list_id' + '}', list_id.to_s).sub('{' + 'subscriber_hash' + '}', subscriber_hash.to_s)
      data = @api_client.call_api(:POST, local_var_path,
        :query_params => query_params,
        :body => post_body)
      return data
    end

    # Add member note
    def create_list_member_note(list_id, subscriber_hash, body, opts = {})
      fail ArgumentError, "Missing required param: 'list_id'" if list_id.nil?
      fail ArgumentError, "Missing required param: 'subscriber_hash'" if subscriber_hash.nil?
      fail ArgumentError, "Missing required param: 'body'" if body.nil?

      query_params = {}
      post_body = @api_client.object_to_http_body(body)

      local_var_path = '/lists/{list_id}/members/{subscriber_hash}/notes'.sub('{' + 'list_id' + '}', list_id.to_s).sub('{' + 'subscriber_hash' + '}', subscriber_hash.to_s)
      data = @api_client.call_api(:POST, local_var_path,
        :query_params => query_params,
        :body => post_body)
      return data
    end

    # Add merge field
    def add_list_merge_field(list_id, body, opts = {})
      fail ArgumentError, "Missing required param: 'list_id'" if list_id.nil?
      fail ArgumentError, "Missing required param: 'body'" if body.nil?

      query_params = {}
      post_body = @api_client.object_to_http_body(body)

      local_var_path = '/lists/{list_id}/merge-fields'.sub('{' + 'list_id' + '}', list_id.to_s)
      data = @api_client.call_api(:POST, local_var_path,
        :query_params => query_params,
        :body => post_body)
      return data
    end

    # Add segment
    def create_segment(list_id, body, opts = {})
      fail ArgumentError, "Missing required param: 'list_id'" if list_id.nil?
      fail ArgumentError, "Missing required param: 'body'" if body.nil?

      query_params = {}
      post_body = @api_client.object_to_http_body(body)

      local_var_path = '/lists/{list_id}/segments'.sub('{' + 'list_id' + '}', list_id.to_s)
      data = @api_client.call_api(:POST, local_var_path,
        :query_params => query_params,
        :body => post_body)
      return data
    end

    # Batch add or remove members
    def batch_segment_members(body, list_id, segment_id, opts = {})
      fail ArgumentError, "Missing required param: 'body'" if body.nil?
      fail ArgumentError, "Missing required param: 'list_id'" if list_id.nil?
      fail ArgumentError, "Missing required param: 'segment_id'" if segment_id.nil?

      query_params = {}
      post_body = @api_client.object_to_http_body(body)

      local_var_path = '/lists/{list_id}/segments/{segment_id}'.sub('{' + 'list_id' + '}', list_id.to_s).sub('{' + 'segment_id' + '}', segment_id.to_s)
      data = @api_client.call_api(:POST, local_var_path,
        :query_params => query_params,
        :body => post_body)
      return data
    end

    # Add member to segment
    def create_segment_member(list_id, segment_id, body, opts = {})
      fail ArgumentError, "Missing required param: 'list_id'" if list_id.nil?
      fail ArgumentError, "Missing required param: 'segment_id'" if segment_id.nil?
      fail ArgumentError, "Missing required param: 'body'" if body.nil?

      query_params = {}
      post_body = @api_client.object_to_http_body(body)

      local_var_path = '/lists/{list_id}/segments/{segment_id}/members'.sub('{' + 'list_id' + '}', list_id.to_s).sub('{' + 'segment_id' + '}', segment_id.to_s)
      data = @api_client.call_api(:POST, local_var_path,
        :query_params => query_params,
        :body => post_body)
      return data
    end

    # Customize signup form
    def update_list_signup_form(list_id, body, opts = {})
      fail ArgumentError, "Missing required param: 'list_id'" if list_id.nil?
      fail ArgumentError, "Missing required param: 'body'" if body.nil?

      query_params = {}
      post_body = @api_client.object_to_http_body(body)

      local_var_path = '/lists/{list_id}/signup-forms'.sub('{' + 'list_id' + '}', list_id.to_s)
      data = @api_client.call_api(:POST, local_var_path,
        :query_params => query_params,
        :body => post_body)
      return data
    end

    # Add webhook
    def create_list_webhook(list_id, body, opts = {})
      fail ArgumentError, "Missing required param: 'list_id'" if list_id.nil?
      fail ArgumentError, "Missing required param: 'body'" if body.nil?

      query_params = {}
      post_body = @api_client.object_to_http_body(body)

      local_var_path = '/lists/{list_id}/webhooks'.sub('{' + 'list_id' + '}', list_id.to_s)
      data = @api_client.call_api(:POST, local_var_path,
        :query_params => query_params,
        :body => post_body)
      return data
    end

    # List segments
    def list_segments(list_id, opts = {})
      fail ArgumentError, "Missing required param: 'list_id'" if list_id.nil?
      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?
      query_params[:'type'] = opts[:'type'] if !opts[:'type'].nil?
      query_params[:'since_created_at'] = opts[:'since_created_at'] if !opts[:'since_created_at'].nil?
      query_params[:'before_created_at'] = opts[:'before_created_at'] if !opts[:'before_created_at'].nil?
      query_params[:'include_cleaned'] = opts[:'include_cleaned'] if !opts[:'include_cleaned'].nil?
      query_params[:'include_transactional'] = opts[:'include_transactional'] if !opts[:'include_transactional'].nil?
      query_params[:'include_unsubscribed'] = opts[:'include_unsubscribed'] if !opts[:'include_unsubscribed'].nil?
      query_params[:'since_updated_at'] = opts[:'since_updated_at'] if !opts[:'since_updated_at'].nil?
      query_params[:'before_updated_at'] = opts[:'before_updated_at'] if !opts[:'before_updated_at'].nil?
      post_body = nil

      local_var_path = '/lists/{list_id}/segments'.sub('{' + 'list_id' + '}', list_id.to_s)
      data = @api_client.call_api(:GET, local_var_path,
        :query_params => query_params,
        :body => post_body)
      return data
    end

    # Add or update list member
    def set_list_member(list_id, subscriber_hash, body, opts = {})
      fail ArgumentError, "Missing required param: 'list_id'" if list_id.nil?
      fail ArgumentError, "Missing required param: 'subscriber_hash'" if subscriber_hash.nil?
      fail ArgumentError, "Missing required param: 'body'" if body.nil?

      query_params = {}
      query_params[:'skip_merge_validation'] = opts[:'skip_merge_validation'] if !opts[:'skip_merge_validation'].nil?
      post_body = @api_client.object_to_http_body(body)

      local_var_path = '/lists/{list_id}/members/{subscriber_hash}'.sub('{' + 'list_id' + '}', list_id.to_s).sub('{' + 'subscriber_hash' + '}', subscriber_hash.to_s)
      data = @api_client.call_api(:PUT, local_var_path,
        :query_params => query_params,
        :body => post_body)
      return data
    end

    # Search for tags on a list by name.
    def tag_search(list_id, opts = {})
      fail ArgumentError, "Missing required param: 'list_id'" if list_id.nil?

      query_params = {}
      query_params[:'name'] = opts[:'name'] if !opts[:'name'].nil?
      post_body = nil

      local_var_path = '/lists/{list_id}/tag-search'.sub('{' + 'list_id' + '}', list_id.to_s)
      data = @api_client.call_api(:GET, local_var_path,
        :query_params => query_params,
        :body => post_body)
      return data
    end
  end
end