# coding: utf-8

"""
Copyright 2016 SmartBear Software

    Licensed under the Apache License, Version 2.0 (the "License");
    you may not use this file except in compliance with the License.
    You may obtain a copy of the License at

        http://www.apache.org/licenses/LICENSE-2.0

    Unless required by applicable law or agreed to in writing, software
    distributed under the License is distributed on an "AS IS" BASIS,
    WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
    See the License for the specific language governing permissions and
    limitations under the License.

    Ref: https://github.com/swagger-api/swagger-codegen
"""

from pprint import pformat
from six import iteritems


class PlanSearchResult(object):
    """
    NOTE: This class is auto generated by the swagger code generator program.
    Do not edit the class manually.
    """
    def __init__(self):
        """
        PlanSearchResult - a model defined in Swagger

        :param dict swaggerTypes: The key is attribute name
                                  and the value is attribute type.
        :param dict attributeMap: The key is attribute name
                                  and the value is json key in definition.
        """
        self.swagger_types = {
            'adult_dental': 'bool',
            'age29_rider': 'bool',
            'ambulance': 'str',
            'benefits_summary_url': 'str',
            'buy_link': 'str',
            'carrier_name': 'str',
            'child_dental': 'bool',
            'child_eyewear': 'str',
            'child_eye_exam': 'str',
            'customer_service_phone_number': 'str',
            'durable_medical_equipment': 'str',
            'diagnostic_test': 'str',
            'dp_rider': 'bool',
            'drug_formulary_url': 'str',
            'effective_date': 'str',
            'expiration_date': 'str',
            'emergency_room': 'str',
            'family_drug_deductible': 'str',
            'family_drug_moop': 'str',
            'family_medical_deductible': 'str',
            'family_medical_moop': 'str',
            'fp_rider': 'bool',
            'generic_drugs': 'str',
            'habilitation_services': 'str',
            'hios_issuer_id': 'str',
            'home_health_care': 'str',
            'hospice_service': 'str',
            'id': 'str',
            'imaging': 'str',
            'in_network_ids': 'list[int]',
            'individual_drug_deductible': 'str',
            'individual_drug_moop': 'str',
            'individual_medical_deductible': 'str',
            'individual_medical_moop': 'str',
            'inpatient_birth': 'str',
            'inpatient_facility': 'str',
            'inpatient_mental_health': 'str',
            'inpatient_physician': 'str',
            'inpatient_substance': 'str',
            'level': 'str',
            'logo_url': 'str',
            'name': 'str',
            'non_preferred_brand_drugs': 'str',
            'on_market': 'bool',
            'off_market': 'bool',
            'out_of_network_coverage': 'bool',
            'out_of_network_ids': 'list[int]',
            'outpatient_facility': 'str',
            'outpatient_mental_health': 'str',
            'outpatient_physician': 'str',
            'outpatient_substance': 'str',
            'plan_market': 'str',
            'plan_type': 'str',
            'preferred_brand_drugs': 'str',
            'prenatal_postnatal_care': 'str',
            'preventative_care': 'str',
            'premium_subsidized': 'float',
            'premium': 'float',
            'primary_care_physician': 'str',
            'rehabilitation_services': 'str',
            'skilled_nursing': 'str',
            'specialist': 'str',
            'specialty_drugs': 'str',
            'urgent_care': 'str',
            'match_percentage': 'int',
            'perfect_match_percentage': 'int',
            'employee_premium': 'float',
            'dependent_premium': 'float'
        }

        self.attribute_map = {
            'adult_dental': 'adult_dental',
            'age29_rider': 'age29_rider',
            'ambulance': 'ambulance',
            'benefits_summary_url': 'benefits_summary_url',
            'buy_link': 'buy_link',
            'carrier_name': 'carrier_name',
            'child_dental': 'child_dental',
            'child_eyewear': 'child_eyewear',
            'child_eye_exam': 'child_eye_exam',
            'customer_service_phone_number': 'customer_service_phone_number',
            'durable_medical_equipment': 'durable_medical_equipment',
            'diagnostic_test': 'diagnostic_test',
            'dp_rider': 'dp_rider',
            'drug_formulary_url': 'drug_formulary_url',
            'effective_date': 'effective_date',
            'expiration_date': 'expiration_date',
            'emergency_room': 'emergency_room',
            'family_drug_deductible': 'family_drug_deductible',
            'family_drug_moop': 'family_drug_moop',
            'family_medical_deductible': 'family_medical_deductible',
            'family_medical_moop': 'family_medical_moop',
            'fp_rider': 'fp_rider',
            'generic_drugs': 'generic_drugs',
            'habilitation_services': 'habilitation_services',
            'hios_issuer_id': 'hios_issuer_id',
            'home_health_care': 'home_health_care',
            'hospice_service': 'hospice_service',
            'id': 'id',
            'imaging': 'imaging',
            'in_network_ids': 'in_network_ids',
            'individual_drug_deductible': 'individual_drug_deductible',
            'individual_drug_moop': 'individual_drug_moop',
            'individual_medical_deductible': 'individual_medical_deductible',
            'individual_medical_moop': 'individual_medical_moop',
            'inpatient_birth': 'inpatient_birth',
            'inpatient_facility': 'inpatient_facility',
            'inpatient_mental_health': 'inpatient_mental_health',
            'inpatient_physician': 'inpatient_physician',
            'inpatient_substance': 'inpatient_substance',
            'level': 'level',
            'logo_url': 'logo_url',
            'name': 'name',
            'non_preferred_brand_drugs': 'non_preferred_brand_drugs',
            'on_market': 'on_market',
            'off_market': 'off_market',
            'out_of_network_coverage': 'out_of_network_coverage',
            'out_of_network_ids': 'out_of_network_ids',
            'outpatient_facility': 'outpatient_facility',
            'outpatient_mental_health': 'outpatient_mental_health',
            'outpatient_physician': 'outpatient_physician',
            'outpatient_substance': 'outpatient_substance',
            'plan_market': 'plan_market',
            'plan_type': 'plan_type',
            'preferred_brand_drugs': 'preferred_brand_drugs',
            'prenatal_postnatal_care': 'prenatal_postnatal_care',
            'preventative_care': 'preventative_care',
            'premium_subsidized': 'premium_subsidized',
            'premium': 'premium',
            'primary_care_physician': 'primary_care_physician',
            'rehabilitation_services': 'rehabilitation_services',
            'skilled_nursing': 'skilled_nursing',
            'specialist': 'specialist',
            'specialty_drugs': 'specialty_drugs',
            'urgent_care': 'urgent_care',
            'match_percentage': 'match_percentage',
            'perfect_match_percentage': 'perfect_match_percentage',
            'employee_premium': 'employee_premium',
            'dependent_premium': 'dependent_premium'
        }

        self._adult_dental = None
        self._age29_rider = None
        self._ambulance = None
        self._benefits_summary_url = None
        self._buy_link = None
        self._carrier_name = None
        self._child_dental = None
        self._child_eyewear = None
        self._child_eye_exam = None
        self._customer_service_phone_number = None
        self._durable_medical_equipment = None
        self._diagnostic_test = None
        self._dp_rider = None
        self._drug_formulary_url = None
        self._effective_date = None
        self._expiration_date = None
        self._emergency_room = None
        self._family_drug_deductible = None
        self._family_drug_moop = None
        self._family_medical_deductible = None
        self._family_medical_moop = None
        self._fp_rider = None
        self._generic_drugs = None
        self._habilitation_services = None
        self._hios_issuer_id = None
        self._home_health_care = None
        self._hospice_service = None
        self._id = None
        self._imaging = None
        self._in_network_ids = None
        self._individual_drug_deductible = None
        self._individual_drug_moop = None
        self._individual_medical_deductible = None
        self._individual_medical_moop = None
        self._inpatient_birth = None
        self._inpatient_facility = None
        self._inpatient_mental_health = None
        self._inpatient_physician = None
        self._inpatient_substance = None
        self._level = None
        self._logo_url = None
        self._name = None
        self._non_preferred_brand_drugs = None
        self._on_market = None
        self._off_market = None
        self._out_of_network_coverage = None
        self._out_of_network_ids = None
        self._outpatient_facility = None
        self._outpatient_mental_health = None
        self._outpatient_physician = None
        self._outpatient_substance = None
        self._plan_market = None
        self._plan_type = None
        self._preferred_brand_drugs = None
        self._prenatal_postnatal_care = None
        self._preventative_care = None
        self._premium_subsidized = None
        self._premium = None
        self._primary_care_physician = None
        self._rehabilitation_services = None
        self._skilled_nursing = None
        self._specialist = None
        self._specialty_drugs = None
        self._urgent_care = None
        self._match_percentage = None
        self._perfect_match_percentage = None
        self._employee_premium = None
        self._dependent_premium = None

    @property
    def adult_dental(self):
        """
        Gets the adult_dental of this PlanSearchResult.
        Does the plan provide dental coverage for adults?

        :return: The adult_dental of this PlanSearchResult.
        :rtype: bool
        """
        return self._adult_dental

    @adult_dental.setter
    def adult_dental(self, adult_dental):
        """
        Sets the adult_dental of this PlanSearchResult.
        Does the plan provide dental coverage for adults?

        :param adult_dental: The adult_dental of this PlanSearchResult.
        :type: bool
        """
        self._adult_dental = adult_dental

    @property
    def age29_rider(self):
        """
        Gets the age29_rider of this PlanSearchResult.
        

        :return: The age29_rider of this PlanSearchResult.
        :rtype: bool
        """
        return self._age29_rider

    @age29_rider.setter
    def age29_rider(self, age29_rider):
        """
        Sets the age29_rider of this PlanSearchResult.
        

        :param age29_rider: The age29_rider of this PlanSearchResult.
        :type: bool
        """
        self._age29_rider = age29_rider

    @property
    def ambulance(self):
        """
        Gets the ambulance of this PlanSearchResult.
        Benefits string for ambulance coverage

        :return: The ambulance of this PlanSearchResult.
        :rtype: str
        """
        return self._ambulance

    @ambulance.setter
    def ambulance(self, ambulance):
        """
        Sets the ambulance of this PlanSearchResult.
        Benefits string for ambulance coverage

        :param ambulance: The ambulance of this PlanSearchResult.
        :type: str
        """
        self._ambulance = ambulance

    @property
    def benefits_summary_url(self):
        """
        Gets the benefits_summary_url of this PlanSearchResult.
        Link to the summary of benefits and coverage (SBC) document.

        :return: The benefits_summary_url of this PlanSearchResult.
        :rtype: str
        """
        return self._benefits_summary_url

    @benefits_summary_url.setter
    def benefits_summary_url(self, benefits_summary_url):
        """
        Sets the benefits_summary_url of this PlanSearchResult.
        Link to the summary of benefits and coverage (SBC) document.

        :param benefits_summary_url: The benefits_summary_url of this PlanSearchResult.
        :type: str
        """
        self._benefits_summary_url = benefits_summary_url

    @property
    def buy_link(self):
        """
        Gets the buy_link of this PlanSearchResult.
        Link to a location to purchase the plan.

        :return: The buy_link of this PlanSearchResult.
        :rtype: str
        """
        return self._buy_link

    @buy_link.setter
    def buy_link(self, buy_link):
        """
        Sets the buy_link of this PlanSearchResult.
        Link to a location to purchase the plan.

        :param buy_link: The buy_link of this PlanSearchResult.
        :type: str
        """
        self._buy_link = buy_link

    @property
    def carrier_name(self):
        """
        Gets the carrier_name of this PlanSearchResult.
        Name of the insurance carrier

        :return: The carrier_name of this PlanSearchResult.
        :rtype: str
        """
        return self._carrier_name

    @carrier_name.setter
    def carrier_name(self, carrier_name):
        """
        Sets the carrier_name of this PlanSearchResult.
        Name of the insurance carrier

        :param carrier_name: The carrier_name of this PlanSearchResult.
        :type: str
        """
        self._carrier_name = carrier_name

    @property
    def child_dental(self):
        """
        Gets the child_dental of this PlanSearchResult.
        Does the plan provide dental coverage for children?

        :return: The child_dental of this PlanSearchResult.
        :rtype: bool
        """
        return self._child_dental

    @child_dental.setter
    def child_dental(self, child_dental):
        """
        Sets the child_dental of this PlanSearchResult.
        Does the plan provide dental coverage for children?

        :param child_dental: The child_dental of this PlanSearchResult.
        :type: bool
        """
        self._child_dental = child_dental

    @property
    def child_eyewear(self):
        """
        Gets the child_eyewear of this PlanSearchResult.
        Child eyewear benefits summary

        :return: The child_eyewear of this PlanSearchResult.
        :rtype: str
        """
        return self._child_eyewear

    @child_eyewear.setter
    def child_eyewear(self, child_eyewear):
        """
        Sets the child_eyewear of this PlanSearchResult.
        Child eyewear benefits summary

        :param child_eyewear: The child_eyewear of this PlanSearchResult.
        :type: str
        """
        self._child_eyewear = child_eyewear

    @property
    def child_eye_exam(self):
        """
        Gets the child_eye_exam of this PlanSearchResult.
        Child eye exam benefits summary

        :return: The child_eye_exam of this PlanSearchResult.
        :rtype: str
        """
        return self._child_eye_exam

    @child_eye_exam.setter
    def child_eye_exam(self, child_eye_exam):
        """
        Sets the child_eye_exam of this PlanSearchResult.
        Child eye exam benefits summary

        :param child_eye_exam: The child_eye_exam of this PlanSearchResult.
        :type: str
        """
        self._child_eye_exam = child_eye_exam

    @property
    def customer_service_phone_number(self):
        """
        Gets the customer_service_phone_number of this PlanSearchResult.
        Phone number to contact the insurance carrier

        :return: The customer_service_phone_number of this PlanSearchResult.
        :rtype: str
        """
        return self._customer_service_phone_number

    @customer_service_phone_number.setter
    def customer_service_phone_number(self, customer_service_phone_number):
        """
        Sets the customer_service_phone_number of this PlanSearchResult.
        Phone number to contact the insurance carrier

        :param customer_service_phone_number: The customer_service_phone_number of this PlanSearchResult.
        :type: str
        """
        self._customer_service_phone_number = customer_service_phone_number

    @property
    def durable_medical_equipment(self):
        """
        Gets the durable_medical_equipment of this PlanSearchResult.
        Benefits summary for durable medical equipment

        :return: The durable_medical_equipment of this PlanSearchResult.
        :rtype: str
        """
        return self._durable_medical_equipment

    @durable_medical_equipment.setter
    def durable_medical_equipment(self, durable_medical_equipment):
        """
        Sets the durable_medical_equipment of this PlanSearchResult.
        Benefits summary for durable medical equipment

        :param durable_medical_equipment: The durable_medical_equipment of this PlanSearchResult.
        :type: str
        """
        self._durable_medical_equipment = durable_medical_equipment

    @property
    def diagnostic_test(self):
        """
        Gets the diagnostic_test of this PlanSearchResult.
        Diagnostic tests benefit summary

        :return: The diagnostic_test of this PlanSearchResult.
        :rtype: str
        """
        return self._diagnostic_test

    @diagnostic_test.setter
    def diagnostic_test(self, diagnostic_test):
        """
        Sets the diagnostic_test of this PlanSearchResult.
        Diagnostic tests benefit summary

        :param diagnostic_test: The diagnostic_test of this PlanSearchResult.
        :type: str
        """
        self._diagnostic_test = diagnostic_test

    @property
    def dp_rider(self):
        """
        Gets the dp_rider of this PlanSearchResult.
        Is this a domestic plan?

        :return: The dp_rider of this PlanSearchResult.
        :rtype: bool
        """
        return self._dp_rider

    @dp_rider.setter
    def dp_rider(self, dp_rider):
        """
        Sets the dp_rider of this PlanSearchResult.
        Is this a domestic plan?

        :param dp_rider: The dp_rider of this PlanSearchResult.
        :type: bool
        """
        self._dp_rider = dp_rider

    @property
    def drug_formulary_url(self):
        """
        Gets the drug_formulary_url of this PlanSearchResult.
        Link to the summary of drug benefits for the plan

        :return: The drug_formulary_url of this PlanSearchResult.
        :rtype: str
        """
        return self._drug_formulary_url

    @drug_formulary_url.setter
    def drug_formulary_url(self, drug_formulary_url):
        """
        Sets the drug_formulary_url of this PlanSearchResult.
        Link to the summary of drug benefits for the plan

        :param drug_formulary_url: The drug_formulary_url of this PlanSearchResult.
        :type: str
        """
        self._drug_formulary_url = drug_formulary_url

    @property
    def effective_date(self):
        """
        Gets the effective_date of this PlanSearchResult.
        Effective date of coverage.

        :return: The effective_date of this PlanSearchResult.
        :rtype: str
        """
        return self._effective_date

    @effective_date.setter
    def effective_date(self, effective_date):
        """
        Sets the effective_date of this PlanSearchResult.
        Effective date of coverage.

        :param effective_date: The effective_date of this PlanSearchResult.
        :type: str
        """
        self._effective_date = effective_date

    @property
    def expiration_date(self):
        """
        Gets the expiration_date of this PlanSearchResult.
        Expiration date of coverage.

        :return: The expiration_date of this PlanSearchResult.
        :rtype: str
        """
        return self._expiration_date

    @expiration_date.setter
    def expiration_date(self, expiration_date):
        """
        Sets the expiration_date of this PlanSearchResult.
        Expiration date of coverage.

        :param expiration_date: The expiration_date of this PlanSearchResult.
        :type: str
        """
        self._expiration_date = expiration_date

    @property
    def emergency_room(self):
        """
        Gets the emergency_room of this PlanSearchResult.
        Description of costs when visiting the ER

        :return: The emergency_room of this PlanSearchResult.
        :rtype: str
        """
        return self._emergency_room

    @emergency_room.setter
    def emergency_room(self, emergency_room):
        """
        Sets the emergency_room of this PlanSearchResult.
        Description of costs when visiting the ER

        :param emergency_room: The emergency_room of this PlanSearchResult.
        :type: str
        """
        self._emergency_room = emergency_room

    @property
    def family_drug_deductible(self):
        """
        Gets the family_drug_deductible of this PlanSearchResult.
        Deductible for drugs when a family is on the plan.

        :return: The family_drug_deductible of this PlanSearchResult.
        :rtype: str
        """
        return self._family_drug_deductible

    @family_drug_deductible.setter
    def family_drug_deductible(self, family_drug_deductible):
        """
        Sets the family_drug_deductible of this PlanSearchResult.
        Deductible for drugs when a family is on the plan.

        :param family_drug_deductible: The family_drug_deductible of this PlanSearchResult.
        :type: str
        """
        self._family_drug_deductible = family_drug_deductible

    @property
    def family_drug_moop(self):
        """
        Gets the family_drug_moop of this PlanSearchResult.
        Maximum out-of-pocket for drugs when a family is on the plan

        :return: The family_drug_moop of this PlanSearchResult.
        :rtype: str
        """
        return self._family_drug_moop

    @family_drug_moop.setter
    def family_drug_moop(self, family_drug_moop):
        """
        Sets the family_drug_moop of this PlanSearchResult.
        Maximum out-of-pocket for drugs when a family is on the plan

        :param family_drug_moop: The family_drug_moop of this PlanSearchResult.
        :type: str
        """
        self._family_drug_moop = family_drug_moop

    @property
    def family_medical_deductible(self):
        """
        Gets the family_medical_deductible of this PlanSearchResult.
        Deductible when a family is on the plan

        :return: The family_medical_deductible of this PlanSearchResult.
        :rtype: str
        """
        return self._family_medical_deductible

    @family_medical_deductible.setter
    def family_medical_deductible(self, family_medical_deductible):
        """
        Sets the family_medical_deductible of this PlanSearchResult.
        Deductible when a family is on the plan

        :param family_medical_deductible: The family_medical_deductible of this PlanSearchResult.
        :type: str
        """
        self._family_medical_deductible = family_medical_deductible

    @property
    def family_medical_moop(self):
        """
        Gets the family_medical_moop of this PlanSearchResult.
        Maximum out-of-pocket when a family is on the plan

        :return: The family_medical_moop of this PlanSearchResult.
        :rtype: str
        """
        return self._family_medical_moop

    @family_medical_moop.setter
    def family_medical_moop(self, family_medical_moop):
        """
        Sets the family_medical_moop of this PlanSearchResult.
        Maximum out-of-pocket when a family is on the plan

        :param family_medical_moop: The family_medical_moop of this PlanSearchResult.
        :type: str
        """
        self._family_medical_moop = family_medical_moop

    @property
    def fp_rider(self):
        """
        Gets the fp_rider of this PlanSearchResult.
        Is this a family plan?

        :return: The fp_rider of this PlanSearchResult.
        :rtype: bool
        """
        return self._fp_rider

    @fp_rider.setter
    def fp_rider(self, fp_rider):
        """
        Sets the fp_rider of this PlanSearchResult.
        Is this a family plan?

        :param fp_rider: The fp_rider of this PlanSearchResult.
        :type: bool
        """
        self._fp_rider = fp_rider

    @property
    def generic_drugs(self):
        """
        Gets the generic_drugs of this PlanSearchResult.
        Cost for generic drugs

        :return: The generic_drugs of this PlanSearchResult.
        :rtype: str
        """
        return self._generic_drugs

    @generic_drugs.setter
    def generic_drugs(self, generic_drugs):
        """
        Sets the generic_drugs of this PlanSearchResult.
        Cost for generic drugs

        :param generic_drugs: The generic_drugs of this PlanSearchResult.
        :type: str
        """
        self._generic_drugs = generic_drugs

    @property
    def habilitation_services(self):
        """
        Gets the habilitation_services of this PlanSearchResult.
        Habilitation services benefits summary

        :return: The habilitation_services of this PlanSearchResult.
        :rtype: str
        """
        return self._habilitation_services

    @habilitation_services.setter
    def habilitation_services(self, habilitation_services):
        """
        Sets the habilitation_services of this PlanSearchResult.
        Habilitation services benefits summary

        :param habilitation_services: The habilitation_services of this PlanSearchResult.
        :type: str
        """
        self._habilitation_services = habilitation_services

    @property
    def hios_issuer_id(self):
        """
        Gets the hios_issuer_id of this PlanSearchResult.
        

        :return: The hios_issuer_id of this PlanSearchResult.
        :rtype: str
        """
        return self._hios_issuer_id

    @hios_issuer_id.setter
    def hios_issuer_id(self, hios_issuer_id):
        """
        Sets the hios_issuer_id of this PlanSearchResult.
        

        :param hios_issuer_id: The hios_issuer_id of this PlanSearchResult.
        :type: str
        """
        self._hios_issuer_id = hios_issuer_id

    @property
    def home_health_care(self):
        """
        Gets the home_health_care of this PlanSearchResult.
        Home health care benefits summary

        :return: The home_health_care of this PlanSearchResult.
        :rtype: str
        """
        return self._home_health_care

    @home_health_care.setter
    def home_health_care(self, home_health_care):
        """
        Sets the home_health_care of this PlanSearchResult.
        Home health care benefits summary

        :param home_health_care: The home_health_care of this PlanSearchResult.
        :type: str
        """
        self._home_health_care = home_health_care

    @property
    def hospice_service(self):
        """
        Gets the hospice_service of this PlanSearchResult.
        Hospice service benefits summary

        :return: The hospice_service of this PlanSearchResult.
        :rtype: str
        """
        return self._hospice_service

    @hospice_service.setter
    def hospice_service(self, hospice_service):
        """
        Sets the hospice_service of this PlanSearchResult.
        Hospice service benefits summary

        :param hospice_service: The hospice_service of this PlanSearchResult.
        :type: str
        """
        self._hospice_service = hospice_service

    @property
    def id(self):
        """
        Gets the id of this PlanSearchResult.
        Government-issued HIOS plan ID

        :return: The id of this PlanSearchResult.
        :rtype: str
        """
        return self._id

    @id.setter
    def id(self, id):
        """
        Sets the id of this PlanSearchResult.
        Government-issued HIOS plan ID

        :param id: The id of this PlanSearchResult.
        :type: str
        """
        self._id = id

    @property
    def imaging(self):
        """
        Gets the imaging of this PlanSearchResult.
        Benefits summary for imaging coverage

        :return: The imaging of this PlanSearchResult.
        :rtype: str
        """
        return self._imaging

    @imaging.setter
    def imaging(self, imaging):
        """
        Sets the imaging of this PlanSearchResult.
        Benefits summary for imaging coverage

        :param imaging: The imaging of this PlanSearchResult.
        :type: str
        """
        self._imaging = imaging

    @property
    def in_network_ids(self):
        """
        Gets the in_network_ids of this PlanSearchResult.
        List of NPI numbers for Providers passed in who accept this Plan

        :return: The in_network_ids of this PlanSearchResult.
        :rtype: list[int]
        """
        return self._in_network_ids

    @in_network_ids.setter
    def in_network_ids(self, in_network_ids):
        """
        Sets the in_network_ids of this PlanSearchResult.
        List of NPI numbers for Providers passed in who accept this Plan

        :param in_network_ids: The in_network_ids of this PlanSearchResult.
        :type: list[int]
        """
        self._in_network_ids = in_network_ids

    @property
    def individual_drug_deductible(self):
        """
        Gets the individual_drug_deductible of this PlanSearchResult.
        Deductible for drugs when an individual is on the plan

        :return: The individual_drug_deductible of this PlanSearchResult.
        :rtype: str
        """
        return self._individual_drug_deductible

    @individual_drug_deductible.setter
    def individual_drug_deductible(self, individual_drug_deductible):
        """
        Sets the individual_drug_deductible of this PlanSearchResult.
        Deductible for drugs when an individual is on the plan

        :param individual_drug_deductible: The individual_drug_deductible of this PlanSearchResult.
        :type: str
        """
        self._individual_drug_deductible = individual_drug_deductible

    @property
    def individual_drug_moop(self):
        """
        Gets the individual_drug_moop of this PlanSearchResult.
        Maximum out-of-pocket for drugs when an individual is on the plan

        :return: The individual_drug_moop of this PlanSearchResult.
        :rtype: str
        """
        return self._individual_drug_moop

    @individual_drug_moop.setter
    def individual_drug_moop(self, individual_drug_moop):
        """
        Sets the individual_drug_moop of this PlanSearchResult.
        Maximum out-of-pocket for drugs when an individual is on the plan

        :param individual_drug_moop: The individual_drug_moop of this PlanSearchResult.
        :type: str
        """
        self._individual_drug_moop = individual_drug_moop

    @property
    def individual_medical_deductible(self):
        """
        Gets the individual_medical_deductible of this PlanSearchResult.
        Deductible when an individual is on the plan

        :return: The individual_medical_deductible of this PlanSearchResult.
        :rtype: str
        """
        return self._individual_medical_deductible

    @individual_medical_deductible.setter
    def individual_medical_deductible(self, individual_medical_deductible):
        """
        Sets the individual_medical_deductible of this PlanSearchResult.
        Deductible when an individual is on the plan

        :param individual_medical_deductible: The individual_medical_deductible of this PlanSearchResult.
        :type: str
        """
        self._individual_medical_deductible = individual_medical_deductible

    @property
    def individual_medical_moop(self):
        """
        Gets the individual_medical_moop of this PlanSearchResult.
        Maximum out-of-pocket when an individual is on the plan

        :return: The individual_medical_moop of this PlanSearchResult.
        :rtype: str
        """
        return self._individual_medical_moop

    @individual_medical_moop.setter
    def individual_medical_moop(self, individual_medical_moop):
        """
        Sets the individual_medical_moop of this PlanSearchResult.
        Maximum out-of-pocket when an individual is on the plan

        :param individual_medical_moop: The individual_medical_moop of this PlanSearchResult.
        :type: str
        """
        self._individual_medical_moop = individual_medical_moop

    @property
    def inpatient_birth(self):
        """
        Gets the inpatient_birth of this PlanSearchResult.
        Inpatient birth benefits summary

        :return: The inpatient_birth of this PlanSearchResult.
        :rtype: str
        """
        return self._inpatient_birth

    @inpatient_birth.setter
    def inpatient_birth(self, inpatient_birth):
        """
        Sets the inpatient_birth of this PlanSearchResult.
        Inpatient birth benefits summary

        :param inpatient_birth: The inpatient_birth of this PlanSearchResult.
        :type: str
        """
        self._inpatient_birth = inpatient_birth

    @property
    def inpatient_facility(self):
        """
        Gets the inpatient_facility of this PlanSearchResult.
        Cost under the plan for an inpatient facility

        :return: The inpatient_facility of this PlanSearchResult.
        :rtype: str
        """
        return self._inpatient_facility

    @inpatient_facility.setter
    def inpatient_facility(self, inpatient_facility):
        """
        Sets the inpatient_facility of this PlanSearchResult.
        Cost under the plan for an inpatient facility

        :param inpatient_facility: The inpatient_facility of this PlanSearchResult.
        :type: str
        """
        self._inpatient_facility = inpatient_facility

    @property
    def inpatient_mental_health(self):
        """
        Gets the inpatient_mental_health of this PlanSearchResult.
        Inpatient mental helath benefits summary

        :return: The inpatient_mental_health of this PlanSearchResult.
        :rtype: str
        """
        return self._inpatient_mental_health

    @inpatient_mental_health.setter
    def inpatient_mental_health(self, inpatient_mental_health):
        """
        Sets the inpatient_mental_health of this PlanSearchResult.
        Inpatient mental helath benefits summary

        :param inpatient_mental_health: The inpatient_mental_health of this PlanSearchResult.
        :type: str
        """
        self._inpatient_mental_health = inpatient_mental_health

    @property
    def inpatient_physician(self):
        """
        Gets the inpatient_physician of this PlanSearchResult.
        Cost under the plan for an inpatient physician

        :return: The inpatient_physician of this PlanSearchResult.
        :rtype: str
        """
        return self._inpatient_physician

    @inpatient_physician.setter
    def inpatient_physician(self, inpatient_physician):
        """
        Sets the inpatient_physician of this PlanSearchResult.
        Cost under the plan for an inpatient physician

        :param inpatient_physician: The inpatient_physician of this PlanSearchResult.
        :type: str
        """
        self._inpatient_physician = inpatient_physician

    @property
    def inpatient_substance(self):
        """
        Gets the inpatient_substance of this PlanSearchResult.
        Inpatient substance abuse benefits summary

        :return: The inpatient_substance of this PlanSearchResult.
        :rtype: str
        """
        return self._inpatient_substance

    @inpatient_substance.setter
    def inpatient_substance(self, inpatient_substance):
        """
        Sets the inpatient_substance of this PlanSearchResult.
        Inpatient substance abuse benefits summary

        :param inpatient_substance: The inpatient_substance of this PlanSearchResult.
        :type: str
        """
        self._inpatient_substance = inpatient_substance

    @property
    def level(self):
        """
        Gets the level of this PlanSearchResult.
        Plan metal grouping (e.g. platinum, gold, silver, etc)

        :return: The level of this PlanSearchResult.
        :rtype: str
        """
        return self._level

    @level.setter
    def level(self, level):
        """
        Sets the level of this PlanSearchResult.
        Plan metal grouping (e.g. platinum, gold, silver, etc)

        :param level: The level of this PlanSearchResult.
        :type: str
        """
        self._level = level

    @property
    def logo_url(self):
        """
        Gets the logo_url of this PlanSearchResult.
        Link to a copy of the insurance carrier's logo

        :return: The logo_url of this PlanSearchResult.
        :rtype: str
        """
        return self._logo_url

    @logo_url.setter
    def logo_url(self, logo_url):
        """
        Sets the logo_url of this PlanSearchResult.
        Link to a copy of the insurance carrier's logo

        :param logo_url: The logo_url of this PlanSearchResult.
        :type: str
        """
        self._logo_url = logo_url

    @property
    def name(self):
        """
        Gets the name of this PlanSearchResult.
        Marketing name of the plan

        :return: The name of this PlanSearchResult.
        :rtype: str
        """
        return self._name

    @name.setter
    def name(self, name):
        """
        Sets the name of this PlanSearchResult.
        Marketing name of the plan

        :param name: The name of this PlanSearchResult.
        :type: str
        """
        self._name = name

    @property
    def non_preferred_brand_drugs(self):
        """
        Gets the non_preferred_brand_drugs of this PlanSearchResult.
        Cost under the plan for non-preferred brand drugs

        :return: The non_preferred_brand_drugs of this PlanSearchResult.
        :rtype: str
        """
        return self._non_preferred_brand_drugs

    @non_preferred_brand_drugs.setter
    def non_preferred_brand_drugs(self, non_preferred_brand_drugs):
        """
        Sets the non_preferred_brand_drugs of this PlanSearchResult.
        Cost under the plan for non-preferred brand drugs

        :param non_preferred_brand_drugs: The non_preferred_brand_drugs of this PlanSearchResult.
        :type: str
        """
        self._non_preferred_brand_drugs = non_preferred_brand_drugs

    @property
    def on_market(self):
        """
        Gets the on_market of this PlanSearchResult.
        Is the plan on-market?

        :return: The on_market of this PlanSearchResult.
        :rtype: bool
        """
        return self._on_market

    @on_market.setter
    def on_market(self, on_market):
        """
        Sets the on_market of this PlanSearchResult.
        Is the plan on-market?

        :param on_market: The on_market of this PlanSearchResult.
        :type: bool
        """
        self._on_market = on_market

    @property
    def off_market(self):
        """
        Gets the off_market of this PlanSearchResult.
        Is the plan off-market?

        :return: The off_market of this PlanSearchResult.
        :rtype: bool
        """
        return self._off_market

    @off_market.setter
    def off_market(self, off_market):
        """
        Sets the off_market of this PlanSearchResult.
        Is the plan off-market?

        :param off_market: The off_market of this PlanSearchResult.
        :type: bool
        """
        self._off_market = off_market

    @property
    def out_of_network_coverage(self):
        """
        Gets the out_of_network_coverage of this PlanSearchResult.
        Does this plan provide any out of network coverage?

        :return: The out_of_network_coverage of this PlanSearchResult.
        :rtype: bool
        """
        return self._out_of_network_coverage

    @out_of_network_coverage.setter
    def out_of_network_coverage(self, out_of_network_coverage):
        """
        Sets the out_of_network_coverage of this PlanSearchResult.
        Does this plan provide any out of network coverage?

        :param out_of_network_coverage: The out_of_network_coverage of this PlanSearchResult.
        :type: bool
        """
        self._out_of_network_coverage = out_of_network_coverage

    @property
    def out_of_network_ids(self):
        """
        Gets the out_of_network_ids of this PlanSearchResult.
        List of NPI numbers for Providers passed in who do not accept this Plan

        :return: The out_of_network_ids of this PlanSearchResult.
        :rtype: list[int]
        """
        return self._out_of_network_ids

    @out_of_network_ids.setter
    def out_of_network_ids(self, out_of_network_ids):
        """
        Sets the out_of_network_ids of this PlanSearchResult.
        List of NPI numbers for Providers passed in who do not accept this Plan

        :param out_of_network_ids: The out_of_network_ids of this PlanSearchResult.
        :type: list[int]
        """
        self._out_of_network_ids = out_of_network_ids

    @property
    def outpatient_facility(self):
        """
        Gets the outpatient_facility of this PlanSearchResult.
        Benefits summary for outpatient facility coverage

        :return: The outpatient_facility of this PlanSearchResult.
        :rtype: str
        """
        return self._outpatient_facility

    @outpatient_facility.setter
    def outpatient_facility(self, outpatient_facility):
        """
        Sets the outpatient_facility of this PlanSearchResult.
        Benefits summary for outpatient facility coverage

        :param outpatient_facility: The outpatient_facility of this PlanSearchResult.
        :type: str
        """
        self._outpatient_facility = outpatient_facility

    @property
    def outpatient_mental_health(self):
        """
        Gets the outpatient_mental_health of this PlanSearchResult.
        Benefits summary for outpatient mental health coverage

        :return: The outpatient_mental_health of this PlanSearchResult.
        :rtype: str
        """
        return self._outpatient_mental_health

    @outpatient_mental_health.setter
    def outpatient_mental_health(self, outpatient_mental_health):
        """
        Sets the outpatient_mental_health of this PlanSearchResult.
        Benefits summary for outpatient mental health coverage

        :param outpatient_mental_health: The outpatient_mental_health of this PlanSearchResult.
        :type: str
        """
        self._outpatient_mental_health = outpatient_mental_health

    @property
    def outpatient_physician(self):
        """
        Gets the outpatient_physician of this PlanSearchResult.
        Benefits summary for outpatient physician coverage

        :return: The outpatient_physician of this PlanSearchResult.
        :rtype: str
        """
        return self._outpatient_physician

    @outpatient_physician.setter
    def outpatient_physician(self, outpatient_physician):
        """
        Sets the outpatient_physician of this PlanSearchResult.
        Benefits summary for outpatient physician coverage

        :param outpatient_physician: The outpatient_physician of this PlanSearchResult.
        :type: str
        """
        self._outpatient_physician = outpatient_physician

    @property
    def outpatient_substance(self):
        """
        Gets the outpatient_substance of this PlanSearchResult.
        Outpatient substance abuse benefits summary

        :return: The outpatient_substance of this PlanSearchResult.
        :rtype: str
        """
        return self._outpatient_substance

    @outpatient_substance.setter
    def outpatient_substance(self, outpatient_substance):
        """
        Sets the outpatient_substance of this PlanSearchResult.
        Outpatient substance abuse benefits summary

        :param outpatient_substance: The outpatient_substance of this PlanSearchResult.
        :type: str
        """
        self._outpatient_substance = outpatient_substance

    @property
    def plan_market(self):
        """
        Gets the plan_market of this PlanSearchResult.
        Market in which the plan is offered (on_marketplace, shop, etc)

        :return: The plan_market of this PlanSearchResult.
        :rtype: str
        """
        return self._plan_market

    @plan_market.setter
    def plan_market(self, plan_market):
        """
        Sets the plan_market of this PlanSearchResult.
        Market in which the plan is offered (on_marketplace, shop, etc)

        :param plan_market: The plan_market of this PlanSearchResult.
        :type: str
        """
        self._plan_market = plan_market

    @property
    def plan_type(self):
        """
        Gets the plan_type of this PlanSearchResult.
        Category of the plan (e.g. EPO, HMO, PPO, POS, Indemnity)

        :return: The plan_type of this PlanSearchResult.
        :rtype: str
        """
        return self._plan_type

    @plan_type.setter
    def plan_type(self, plan_type):
        """
        Sets the plan_type of this PlanSearchResult.
        Category of the plan (e.g. EPO, HMO, PPO, POS, Indemnity)

        :param plan_type: The plan_type of this PlanSearchResult.
        :type: str
        """
        self._plan_type = plan_type

    @property
    def preferred_brand_drugs(self):
        """
        Gets the preferred_brand_drugs of this PlanSearchResult.
        Cost under the plan for perferred brand drugs

        :return: The preferred_brand_drugs of this PlanSearchResult.
        :rtype: str
        """
        return self._preferred_brand_drugs

    @preferred_brand_drugs.setter
    def preferred_brand_drugs(self, preferred_brand_drugs):
        """
        Sets the preferred_brand_drugs of this PlanSearchResult.
        Cost under the plan for perferred brand drugs

        :param preferred_brand_drugs: The preferred_brand_drugs of this PlanSearchResult.
        :type: str
        """
        self._preferred_brand_drugs = preferred_brand_drugs

    @property
    def prenatal_postnatal_care(self):
        """
        Gets the prenatal_postnatal_care of this PlanSearchResult.
        Inpatient substance abuse benefits summary

        :return: The prenatal_postnatal_care of this PlanSearchResult.
        :rtype: str
        """
        return self._prenatal_postnatal_care

    @prenatal_postnatal_care.setter
    def prenatal_postnatal_care(self, prenatal_postnatal_care):
        """
        Sets the prenatal_postnatal_care of this PlanSearchResult.
        Inpatient substance abuse benefits summary

        :param prenatal_postnatal_care: The prenatal_postnatal_care of this PlanSearchResult.
        :type: str
        """
        self._prenatal_postnatal_care = prenatal_postnatal_care

    @property
    def preventative_care(self):
        """
        Gets the preventative_care of this PlanSearchResult.
        Benefits summary for preventative care

        :return: The preventative_care of this PlanSearchResult.
        :rtype: str
        """
        return self._preventative_care

    @preventative_care.setter
    def preventative_care(self, preventative_care):
        """
        Sets the preventative_care of this PlanSearchResult.
        Benefits summary for preventative care

        :param preventative_care: The preventative_care of this PlanSearchResult.
        :type: str
        """
        self._preventative_care = preventative_care

    @property
    def premium_subsidized(self):
        """
        Gets the premium_subsidized of this PlanSearchResult.
        Cumulative premium amount after subsidy

        :return: The premium_subsidized of this PlanSearchResult.
        :rtype: float
        """
        return self._premium_subsidized

    @premium_subsidized.setter
    def premium_subsidized(self, premium_subsidized):
        """
        Sets the premium_subsidized of this PlanSearchResult.
        Cumulative premium amount after subsidy

        :param premium_subsidized: The premium_subsidized of this PlanSearchResult.
        :type: float
        """
        self._premium_subsidized = premium_subsidized

    @property
    def premium(self):
        """
        Gets the premium of this PlanSearchResult.
        Cumulative premium amount

        :return: The premium of this PlanSearchResult.
        :rtype: float
        """
        return self._premium

    @premium.setter
    def premium(self, premium):
        """
        Sets the premium of this PlanSearchResult.
        Cumulative premium amount

        :param premium: The premium of this PlanSearchResult.
        :type: float
        """
        self._premium = premium

    @property
    def primary_care_physician(self):
        """
        Gets the primary_care_physician of this PlanSearchResult.
        Cost under the plan to visit a Primary Care Physician

        :return: The primary_care_physician of this PlanSearchResult.
        :rtype: str
        """
        return self._primary_care_physician

    @primary_care_physician.setter
    def primary_care_physician(self, primary_care_physician):
        """
        Sets the primary_care_physician of this PlanSearchResult.
        Cost under the plan to visit a Primary Care Physician

        :param primary_care_physician: The primary_care_physician of this PlanSearchResult.
        :type: str
        """
        self._primary_care_physician = primary_care_physician

    @property
    def rehabilitation_services(self):
        """
        Gets the rehabilitation_services of this PlanSearchResult.
        Benefits summary for rehabilitation services

        :return: The rehabilitation_services of this PlanSearchResult.
        :rtype: str
        """
        return self._rehabilitation_services

    @rehabilitation_services.setter
    def rehabilitation_services(self, rehabilitation_services):
        """
        Sets the rehabilitation_services of this PlanSearchResult.
        Benefits summary for rehabilitation services

        :param rehabilitation_services: The rehabilitation_services of this PlanSearchResult.
        :type: str
        """
        self._rehabilitation_services = rehabilitation_services

    @property
    def skilled_nursing(self):
        """
        Gets the skilled_nursing of this PlanSearchResult.
        Benefits summary for skilled nursing services

        :return: The skilled_nursing of this PlanSearchResult.
        :rtype: str
        """
        return self._skilled_nursing

    @skilled_nursing.setter
    def skilled_nursing(self, skilled_nursing):
        """
        Sets the skilled_nursing of this PlanSearchResult.
        Benefits summary for skilled nursing services

        :param skilled_nursing: The skilled_nursing of this PlanSearchResult.
        :type: str
        """
        self._skilled_nursing = skilled_nursing

    @property
    def specialist(self):
        """
        Gets the specialist of this PlanSearchResult.
        Cost under the plan to visit a specialist

        :return: The specialist of this PlanSearchResult.
        :rtype: str
        """
        return self._specialist

    @specialist.setter
    def specialist(self, specialist):
        """
        Sets the specialist of this PlanSearchResult.
        Cost under the plan to visit a specialist

        :param specialist: The specialist of this PlanSearchResult.
        :type: str
        """
        self._specialist = specialist

    @property
    def specialty_drugs(self):
        """
        Gets the specialty_drugs of this PlanSearchResult.
        Cost under the plan for specialty drugs

        :return: The specialty_drugs of this PlanSearchResult.
        :rtype: str
        """
        return self._specialty_drugs

    @specialty_drugs.setter
    def specialty_drugs(self, specialty_drugs):
        """
        Sets the specialty_drugs of this PlanSearchResult.
        Cost under the plan for specialty drugs

        :param specialty_drugs: The specialty_drugs of this PlanSearchResult.
        :type: str
        """
        self._specialty_drugs = specialty_drugs

    @property
    def urgent_care(self):
        """
        Gets the urgent_care of this PlanSearchResult.
        Benefits summary for urgent care

        :return: The urgent_care of this PlanSearchResult.
        :rtype: str
        """
        return self._urgent_care

    @urgent_care.setter
    def urgent_care(self, urgent_care):
        """
        Sets the urgent_care of this PlanSearchResult.
        Benefits summary for urgent care

        :param urgent_care: The urgent_care of this PlanSearchResult.
        :type: str
        """
        self._urgent_care = urgent_care

    @property
    def match_percentage(self):
        """
        Gets the match_percentage of this PlanSearchResult.
        Percentage of doctors who matched this Plan

        :return: The match_percentage of this PlanSearchResult.
        :rtype: int
        """
        return self._match_percentage

    @match_percentage.setter
    def match_percentage(self, match_percentage):
        """
        Sets the match_percentage of this PlanSearchResult.
        Percentage of doctors who matched this Plan

        :param match_percentage: The match_percentage of this PlanSearchResult.
        :type: int
        """
        self._match_percentage = match_percentage

    @property
    def perfect_match_percentage(self):
        """
        Gets the perfect_match_percentage of this PlanSearchResult.
        Percentage of employees with 100% match

        :return: The perfect_match_percentage of this PlanSearchResult.
        :rtype: int
        """
        return self._perfect_match_percentage

    @perfect_match_percentage.setter
    def perfect_match_percentage(self, perfect_match_percentage):
        """
        Sets the perfect_match_percentage of this PlanSearchResult.
        Percentage of employees with 100% match

        :param perfect_match_percentage: The perfect_match_percentage of this PlanSearchResult.
        :type: int
        """
        self._perfect_match_percentage = perfect_match_percentage

    @property
    def employee_premium(self):
        """
        Gets the employee_premium of this PlanSearchResult.
        Cumulative premium amount for employees

        :return: The employee_premium of this PlanSearchResult.
        :rtype: float
        """
        return self._employee_premium

    @employee_premium.setter
    def employee_premium(self, employee_premium):
        """
        Sets the employee_premium of this PlanSearchResult.
        Cumulative premium amount for employees

        :param employee_premium: The employee_premium of this PlanSearchResult.
        :type: float
        """
        self._employee_premium = employee_premium

    @property
    def dependent_premium(self):
        """
        Gets the dependent_premium of this PlanSearchResult.
        Cumulative premium amount for dependents

        :return: The dependent_premium of this PlanSearchResult.
        :rtype: float
        """
        return self._dependent_premium

    @dependent_premium.setter
    def dependent_premium(self, dependent_premium):
        """
        Sets the dependent_premium of this PlanSearchResult.
        Cumulative premium amount for dependents

        :param dependent_premium: The dependent_premium of this PlanSearchResult.
        :type: float
        """
        self._dependent_premium = dependent_premium

    def to_dict(self):
        """
        Returns the model properties as a dict
        """
        result = {}

        for attr, _ in iteritems(self.swagger_types):
            value = getattr(self, attr)
            if isinstance(value, list):
                result[attr] = list(map(
                    lambda x: x.to_dict() if hasattr(x, "to_dict") else x,
                    value
                ))
            elif hasattr(value, "to_dict"):
                result[attr] = value.to_dict()
            elif isinstance(value, dict):
                result[attr] = dict(map(
                    lambda item: (item[0], item[1].to_dict())
                    if hasattr(item[1], "to_dict") else item,
                    value.items()
                ))
            else:
                result[attr] = value

        return result

    def to_str(self):
        """
        Returns the string representation of the model
        """
        return pformat(self.to_dict())

    def __repr__(self):
        """
        For `print` and `pprint`
        """
        return self.to_str()

    def __eq__(self, other):
        """
        Returns true if both objects are equal
        """
        return self.__dict__ == other.__dict__

    def __ne__(self, other):
        """
        Returns true if both objects are not equal
        """
        return not self == other

