# coding: utf-8

"""
    Vericred API

    Vericred's API allows you to search for Health Plans that a specific doctor
accepts.

## Getting Started

Visit our [Developer Portal](https://vericred.3scale.net) to
create an account.

Once you have created an account, you can create one Application for
Production and another for our Sandbox (select the appropriate Plan when
you create the Application).

## Authentication

To authenticate, pass the API Key you created in the Developer Portal as
a `Vericred-Api-Key` header.

`curl -H 'Vericred-Api-Key: YOUR_KEY' "https://api.vericred.com/providers?search_term=Foo&zip_code=11215"`

## Versioning

Vericred's API default to the latest version.  However, if you need a specific
version, you can request it with an `Accept-Version` header.

The current version is `v3`.  Previous versions are `v1` and `v2`.

`curl -H 'Vericred-Api-Key: YOUR_KEY' -H 'Accept-Version: v2' "https://api.vericred.com/providers?search_term=Foo&zip_code=11215"`

## Pagination

Endpoints that accept `page` and `per_page` parameters are paginated. They expose
four additional fields that contain data about your position in the response,
namely `Total`, `Per-Page`, `Link`, and `Page` as described in [RFC-5988](https://tools.ietf.org/html/rfc5988).

For example, to display 5 results per page and view the second page of a
`GET` to `/networks`, your final request would be `GET /networks?....page=2&per_page=5`.

## Sideloading

When we return multiple levels of an object graph (e.g. `Provider`s and their `State`s
we sideload the associated data.  In this example, we would provide an Array of
`State`s and a `state_id` for each provider.  This is done primarily to reduce the
payload size since many of the `Provider`s will share a `State`

```
{
  providers: [{ id: 1, state_id: 1}, { id: 2, state_id: 1 }],
  states: [{ id: 1, code: 'NY' }]
}
```

If you need the second level of the object graph, you can just match the
corresponding id.

## Selecting specific data

All endpoints allow you to specify which fields you would like to return.
This allows you to limit the response to contain only the data you need.

For example, let's take a request that returns the following JSON by default

```
{
  provider: {
    id: 1,
    name: 'John',
    phone: '1234567890',
    field_we_dont_care_about: 'value_we_dont_care_about'
  },
  states: [{
    id: 1,
    name: 'New York',
    code: 'NY',
    field_we_dont_care_about: 'value_we_dont_care_about'
  }]
}
```

To limit our results to only return the fields we care about, we specify the
`select` query string parameter for the corresponding fields in the JSON
document.

In this case, we want to select `name` and `phone` from the `provider` key,
so we would add the parameters `select=provider.name,provider.phone`.
We also want the `name` and `code` from the `states` key, so we would
add the parameters `select=states.name,staes.code`.  The id field of
each document is always returned whether or not it is requested.

Our final request would be `GET /providers/12345?select=provider.name,provider.phone,states.name,states.code`

The response would be

```
{
  provider: {
    id: 1,
    name: 'John',
    phone: '1234567890'
  },
  states: [{
    id: 1,
    name: 'New York',
    code: 'NY'
  }]
}
```



    OpenAPI spec version: 1.0.0
    
    Generated by: https://github.com/swagger-api/swagger-codegen.git

    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.
"""

from pprint import pformat
from six import iteritems
import re


class Plan(object):
    """
    NOTE: This class is auto generated by the swagger code generator program.
    Do not edit the class manually.
    """
    def __init__(self, adult_dental=None, age29_rider=None, ambulance=None, benefits_summary_url=None, buy_link=None, carrier_name=None, child_dental=None, child_eyewear=None, child_eye_exam=None, customer_service_phone_number=None, durable_medical_equipment=None, diagnostic_test=None, display_name=None, dp_rider=None, drug_formulary_url=None, effective_date=None, expiration_date=None, emergency_room=None, family_drug_deductible=None, family_drug_moop=None, family_medical_deductible=None, family_medical_moop=None, fp_rider=None, generic_drugs=None, habilitation_services=None, hios_issuer_id=None, home_health_care=None, hospice_service=None, hsa_eligible=None, id=None, imaging=None, in_network_ids=None, individual_drug_deductible=None, individual_drug_moop=None, individual_medical_deductible=None, individual_medical_moop=None, inpatient_birth=None, inpatient_facility=None, inpatient_mental_health=None, inpatient_physician=None, inpatient_substance=None, level=None, logo_url=None, name=None, network_size=None, non_preferred_brand_drugs=None, on_market=None, off_market=None, out_of_network_coverage=None, out_of_network_ids=None, outpatient_facility=None, outpatient_mental_health=None, outpatient_physician=None, outpatient_substance=None, plan_market=None, plan_type=None, preferred_brand_drugs=None, prenatal_postnatal_care=None, preventative_care=None, premium_subsidized=None, premium=None, primary_care_physician=None, rehabilitation_services=None, service_area_id=None, skilled_nursing=None, specialist=None, specialty_drugs=None, urgent_care=None):
        """
        Plan - 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',
            'display_name': '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',
            'hsa_eligible': 'bool',
            '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',
            'network_size': 'int',
            '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',
            'service_area_id': 'str',
            'skilled_nursing': 'str',
            'specialist': 'str',
            'specialty_drugs': 'str',
            'urgent_care': 'str'
        }

        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',
            'display_name': 'display_name',
            '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',
            'hsa_eligible': 'hsa_eligible',
            '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',
            'network_size': 'network_size',
            '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',
            'service_area_id': 'service_area_id',
            'skilled_nursing': 'skilled_nursing',
            'specialist': 'specialist',
            'specialty_drugs': 'specialty_drugs',
            'urgent_care': 'urgent_care'
        }

        self._adult_dental = adult_dental
        self._age29_rider = age29_rider
        self._ambulance = ambulance
        self._benefits_summary_url = benefits_summary_url
        self._buy_link = buy_link
        self._carrier_name = carrier_name
        self._child_dental = child_dental
        self._child_eyewear = child_eyewear
        self._child_eye_exam = child_eye_exam
        self._customer_service_phone_number = customer_service_phone_number
        self._durable_medical_equipment = durable_medical_equipment
        self._diagnostic_test = diagnostic_test
        self._display_name = display_name
        self._dp_rider = dp_rider
        self._drug_formulary_url = drug_formulary_url
        self._effective_date = effective_date
        self._expiration_date = expiration_date
        self._emergency_room = emergency_room
        self._family_drug_deductible = family_drug_deductible
        self._family_drug_moop = family_drug_moop
        self._family_medical_deductible = family_medical_deductible
        self._family_medical_moop = family_medical_moop
        self._fp_rider = fp_rider
        self._generic_drugs = generic_drugs
        self._habilitation_services = habilitation_services
        self._hios_issuer_id = hios_issuer_id
        self._home_health_care = home_health_care
        self._hospice_service = hospice_service
        self._hsa_eligible = hsa_eligible
        self._id = id
        self._imaging = imaging
        self._in_network_ids = in_network_ids
        self._individual_drug_deductible = individual_drug_deductible
        self._individual_drug_moop = individual_drug_moop
        self._individual_medical_deductible = individual_medical_deductible
        self._individual_medical_moop = individual_medical_moop
        self._inpatient_birth = inpatient_birth
        self._inpatient_facility = inpatient_facility
        self._inpatient_mental_health = inpatient_mental_health
        self._inpatient_physician = inpatient_physician
        self._inpatient_substance = inpatient_substance
        self._level = level
        self._logo_url = logo_url
        self._name = name
        self._network_size = network_size
        self._non_preferred_brand_drugs = non_preferred_brand_drugs
        self._on_market = on_market
        self._off_market = off_market
        self._out_of_network_coverage = out_of_network_coverage
        self._out_of_network_ids = out_of_network_ids
        self._outpatient_facility = outpatient_facility
        self._outpatient_mental_health = outpatient_mental_health
        self._outpatient_physician = outpatient_physician
        self._outpatient_substance = outpatient_substance
        self._plan_market = plan_market
        self._plan_type = plan_type
        self._preferred_brand_drugs = preferred_brand_drugs
        self._prenatal_postnatal_care = prenatal_postnatal_care
        self._preventative_care = preventative_care
        self._premium_subsidized = premium_subsidized
        self._premium = premium
        self._primary_care_physician = primary_care_physician
        self._rehabilitation_services = rehabilitation_services
        self._service_area_id = service_area_id
        self._skilled_nursing = skilled_nursing
        self._specialist = specialist
        self._specialty_drugs = specialty_drugs
        self._urgent_care = urgent_care

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

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

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

        :param adult_dental: The adult_dental of this Plan.
        :type: bool
        """

        self._adult_dental = adult_dental

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

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

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

        :param age29_rider: The age29_rider of this Plan.
        :type: bool
        """

        self._age29_rider = age29_rider

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

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

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

        :param ambulance: The ambulance of this Plan.
        :type: str
        """

        self._ambulance = ambulance

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

        :return: The benefits_summary_url of this Plan.
        :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 Plan.
        Link to the summary of benefits and coverage (SBC) document.

        :param benefits_summary_url: The benefits_summary_url of this Plan.
        :type: str
        """

        self._benefits_summary_url = benefits_summary_url

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

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

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

        :param buy_link: The buy_link of this Plan.
        :type: str
        """

        self._buy_link = buy_link

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

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

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

        :param carrier_name: The carrier_name of this Plan.
        :type: str
        """

        self._carrier_name = carrier_name

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

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

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

        :param child_dental: The child_dental of this Plan.
        :type: bool
        """

        self._child_dental = child_dental

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

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

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

        :param child_eyewear: The child_eyewear of this Plan.
        :type: str
        """

        self._child_eyewear = child_eyewear

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

        :return: The child_eye_exam of this Plan.
        :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 Plan.
        Child eye exam benefits summary

        :param child_eye_exam: The child_eye_exam of this Plan.
        :type: str
        """

        self._child_eye_exam = child_eye_exam

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

        :return: The customer_service_phone_number of this Plan.
        :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 Plan.
        Phone number to contact the insurance carrier

        :param customer_service_phone_number: The customer_service_phone_number of this Plan.
        :type: str
        """

        self._customer_service_phone_number = customer_service_phone_number

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

        :return: The durable_medical_equipment of this Plan.
        :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 Plan.
        Benefits summary for durable medical equipment

        :param durable_medical_equipment: The durable_medical_equipment of this Plan.
        :type: str
        """

        self._durable_medical_equipment = durable_medical_equipment

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

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

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

        :param diagnostic_test: The diagnostic_test of this Plan.
        :type: str
        """

        self._diagnostic_test = diagnostic_test

    @property
    def display_name(self):
        """
        Gets the display_name of this Plan.
        Alternate name for the Plan

        :return: The display_name of this Plan.
        :rtype: str
        """
        return self._display_name

    @display_name.setter
    def display_name(self, display_name):
        """
        Sets the display_name of this Plan.
        Alternate name for the Plan

        :param display_name: The display_name of this Plan.
        :type: str
        """

        self._display_name = display_name

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

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

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

        :param dp_rider: The dp_rider of this Plan.
        :type: bool
        """

        self._dp_rider = dp_rider

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

        :return: The drug_formulary_url of this Plan.
        :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 Plan.
        Link to the summary of drug benefits for the plan

        :param drug_formulary_url: The drug_formulary_url of this Plan.
        :type: str
        """

        self._drug_formulary_url = drug_formulary_url

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

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

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

        :param effective_date: The effective_date of this Plan.
        :type: str
        """

        self._effective_date = effective_date

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

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

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

        :param expiration_date: The expiration_date of this Plan.
        :type: str
        """

        self._expiration_date = expiration_date

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

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

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

        :param emergency_room: The emergency_room of this Plan.
        :type: str
        """

        self._emergency_room = emergency_room

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

        :return: The family_drug_deductible of this Plan.
        :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 Plan.
        Deductible for drugs when a family is on the plan.

        :param family_drug_deductible: The family_drug_deductible of this Plan.
        :type: str
        """

        self._family_drug_deductible = family_drug_deductible

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

        :return: The family_drug_moop of this Plan.
        :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 Plan.
        Maximum out-of-pocket for drugs when a family is on the plan

        :param family_drug_moop: The family_drug_moop of this Plan.
        :type: str
        """

        self._family_drug_moop = family_drug_moop

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

        :return: The family_medical_deductible of this Plan.
        :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 Plan.
        Deductible when a family is on the plan

        :param family_medical_deductible: The family_medical_deductible of this Plan.
        :type: str
        """

        self._family_medical_deductible = family_medical_deductible

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

        :return: The family_medical_moop of this Plan.
        :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 Plan.
        Maximum out-of-pocket when a family is on the plan

        :param family_medical_moop: The family_medical_moop of this Plan.
        :type: str
        """

        self._family_medical_moop = family_medical_moop

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

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

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

        :param fp_rider: The fp_rider of this Plan.
        :type: bool
        """

        self._fp_rider = fp_rider

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

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

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

        :param generic_drugs: The generic_drugs of this Plan.
        :type: str
        """

        self._generic_drugs = generic_drugs

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

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

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

        :param habilitation_services: The habilitation_services of this Plan.
        :type: str
        """

        self._habilitation_services = habilitation_services

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

        :return: The hios_issuer_id of this Plan.
        :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 Plan.
        

        :param hios_issuer_id: The hios_issuer_id of this Plan.
        :type: str
        """

        self._hios_issuer_id = hios_issuer_id

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

        :return: The home_health_care of this Plan.
        :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 Plan.
        Home health care benefits summary

        :param home_health_care: The home_health_care of this Plan.
        :type: str
        """

        self._home_health_care = home_health_care

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

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

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

        :param hospice_service: The hospice_service of this Plan.
        :type: str
        """

        self._hospice_service = hospice_service

    @property
    def hsa_eligible(self):
        """
        Gets the hsa_eligible of this Plan.
        Is the plan HSA eligible?

        :return: The hsa_eligible of this Plan.
        :rtype: bool
        """
        return self._hsa_eligible

    @hsa_eligible.setter
    def hsa_eligible(self, hsa_eligible):
        """
        Sets the hsa_eligible of this Plan.
        Is the plan HSA eligible?

        :param hsa_eligible: The hsa_eligible of this Plan.
        :type: bool
        """

        self._hsa_eligible = hsa_eligible

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

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

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

        :param id: The id of this Plan.
        :type: str
        """

        self._id = id

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

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

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

        :param imaging: The imaging of this Plan.
        :type: str
        """

        self._imaging = imaging

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

        :return: The in_network_ids of this Plan.
        :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 Plan.
        List of NPI numbers for Providers passed in who accept this Plan

        :param in_network_ids: The in_network_ids of this Plan.
        :type: list[int]
        """

        self._in_network_ids = in_network_ids

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

        :return: The individual_drug_deductible of this Plan.
        :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 Plan.
        Deductible for drugs when an individual is on the plan

        :param individual_drug_deductible: The individual_drug_deductible of this Plan.
        :type: str
        """

        self._individual_drug_deductible = individual_drug_deductible

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

        :return: The individual_drug_moop of this Plan.
        :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 Plan.
        Maximum out-of-pocket for drugs when an individual is on the plan

        :param individual_drug_moop: The individual_drug_moop of this Plan.
        :type: str
        """

        self._individual_drug_moop = individual_drug_moop

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

        :return: The individual_medical_deductible of this Plan.
        :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 Plan.
        Deductible when an individual is on the plan

        :param individual_medical_deductible: The individual_medical_deductible of this Plan.
        :type: str
        """

        self._individual_medical_deductible = individual_medical_deductible

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

        :return: The individual_medical_moop of this Plan.
        :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 Plan.
        Maximum out-of-pocket when an individual is on the plan

        :param individual_medical_moop: The individual_medical_moop of this Plan.
        :type: str
        """

        self._individual_medical_moop = individual_medical_moop

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

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

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

        :param inpatient_birth: The inpatient_birth of this Plan.
        :type: str
        """

        self._inpatient_birth = inpatient_birth

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

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

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

        :param inpatient_facility: The inpatient_facility of this Plan.
        :type: str
        """

        self._inpatient_facility = inpatient_facility

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

        :return: The inpatient_mental_health of this Plan.
        :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 Plan.
        Inpatient mental helath benefits summary

        :param inpatient_mental_health: The inpatient_mental_health of this Plan.
        :type: str
        """

        self._inpatient_mental_health = inpatient_mental_health

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

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

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

        :param inpatient_physician: The inpatient_physician of this Plan.
        :type: str
        """

        self._inpatient_physician = inpatient_physician

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

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

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

        :param inpatient_substance: The inpatient_substance of this Plan.
        :type: str
        """

        self._inpatient_substance = inpatient_substance

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

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

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

        :param level: The level of this Plan.
        :type: str
        """

        self._level = level

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

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

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

        :param logo_url: The logo_url of this Plan.
        :type: str
        """

        self._logo_url = logo_url

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

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

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

        :param name: The name of this Plan.
        :type: str
        """

        self._name = name

    @property
    def network_size(self):
        """
        Gets the network_size of this Plan.
        Total number of Providers in network

        :return: The network_size of this Plan.
        :rtype: int
        """
        return self._network_size

    @network_size.setter
    def network_size(self, network_size):
        """
        Sets the network_size of this Plan.
        Total number of Providers in network

        :param network_size: The network_size of this Plan.
        :type: int
        """

        self._network_size = network_size

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

        :return: The non_preferred_brand_drugs of this Plan.
        :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 Plan.
        Cost under the plan for non-preferred brand drugs

        :param non_preferred_brand_drugs: The non_preferred_brand_drugs of this Plan.
        :type: str
        """

        self._non_preferred_brand_drugs = non_preferred_brand_drugs

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

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

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

        :param on_market: The on_market of this Plan.
        :type: bool
        """

        self._on_market = on_market

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

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

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

        :param off_market: The off_market of this Plan.
        :type: bool
        """

        self._off_market = off_market

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

        :return: The out_of_network_coverage of this Plan.
        :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 Plan.
        Does this plan provide any out of network coverage?

        :param out_of_network_coverage: The out_of_network_coverage of this Plan.
        :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 Plan.
        List of NPI numbers for Providers passed in who do not accept this Plan

        :return: The out_of_network_ids of this Plan.
        :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 Plan.
        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 Plan.
        :type: list[int]
        """

        self._out_of_network_ids = out_of_network_ids

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

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

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

        :param outpatient_facility: The outpatient_facility of this Plan.
        :type: str
        """

        self._outpatient_facility = outpatient_facility

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

        :return: The outpatient_mental_health of this Plan.
        :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 Plan.
        Benefits summary for outpatient mental health coverage

        :param outpatient_mental_health: The outpatient_mental_health of this Plan.
        :type: str
        """

        self._outpatient_mental_health = outpatient_mental_health

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

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

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

        :param outpatient_physician: The outpatient_physician of this Plan.
        :type: str
        """

        self._outpatient_physician = outpatient_physician

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

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

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

        :param outpatient_substance: The outpatient_substance of this Plan.
        :type: str
        """

        self._outpatient_substance = outpatient_substance

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

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

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

        :param plan_market: The plan_market of this Plan.
        :type: str
        """

        self._plan_market = plan_market

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

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

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

        :param plan_type: The plan_type of this Plan.
        :type: str
        """

        self._plan_type = plan_type

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

        :return: The preferred_brand_drugs of this Plan.
        :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 Plan.
        Cost under the plan for perferred brand drugs

        :param preferred_brand_drugs: The preferred_brand_drugs of this Plan.
        :type: str
        """

        self._preferred_brand_drugs = preferred_brand_drugs

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

        :return: The prenatal_postnatal_care of this Plan.
        :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 Plan.
        Inpatient substance abuse benefits summary

        :param prenatal_postnatal_care: The prenatal_postnatal_care of this Plan.
        :type: str
        """

        self._prenatal_postnatal_care = prenatal_postnatal_care

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

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

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

        :param preventative_care: The preventative_care of this Plan.
        :type: str
        """

        self._preventative_care = preventative_care

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

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

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

        :param premium_subsidized: The premium_subsidized of this Plan.
        :type: float
        """

        self._premium_subsidized = premium_subsidized

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

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

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

        :param premium: The premium of this Plan.
        :type: float
        """

        self._premium = premium

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

        :return: The primary_care_physician of this Plan.
        :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 Plan.
        Cost under the plan to visit a Primary Care Physician

        :param primary_care_physician: The primary_care_physician of this Plan.
        :type: str
        """

        self._primary_care_physician = primary_care_physician

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

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

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

        :param rehabilitation_services: The rehabilitation_services of this Plan.
        :type: str
        """

        self._rehabilitation_services = rehabilitation_services

    @property
    def service_area_id(self):
        """
        Gets the service_area_id of this Plan.
        Foreign key for service area

        :return: The service_area_id of this Plan.
        :rtype: str
        """
        return self._service_area_id

    @service_area_id.setter
    def service_area_id(self, service_area_id):
        """
        Sets the service_area_id of this Plan.
        Foreign key for service area

        :param service_area_id: The service_area_id of this Plan.
        :type: str
        """

        self._service_area_id = service_area_id

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

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

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

        :param skilled_nursing: The skilled_nursing of this Plan.
        :type: str
        """

        self._skilled_nursing = skilled_nursing

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

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

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

        :param specialist: The specialist of this Plan.
        :type: str
        """

        self._specialist = specialist

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

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

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

        :param specialty_drugs: The specialty_drugs of this Plan.
        :type: str
        """

        self._specialty_drugs = specialty_drugs

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

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

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

        :param urgent_care: The urgent_care of this Plan.
        :type: str
        """

        self._urgent_care = urgent_care

    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
