# This file was generated by liblab | https://liblab.com/

from __future__ import annotations
from .utils.json_map import JsonMap
from .base import BaseModel
from .identifier_value import IdentifierValue, IdentifierValueGuard
from .contribution import Contribution


@JsonMap({"id_": "id"})
class PensionProvider(BaseModel):
    """Pension provider.

    :param id_: id_, defaults to None
    :type id_: IdentifierValue, optional
    :param name: Name of pension provider., defaults to None
    :type name: str, optional
    :param home_page_url: Pension provider's home page url., defaults to None
    :type home_page_url: str, optional
    :param contribution: Pension contribution., defaults to None
    :type contribution: Contribution, optional
    """

    def __init__(
        self,
        id_: IdentifierValue = None,
        name: str = None,
        home_page_url: str = None,
        contribution: Contribution = None,
    ):
        if id_ is not None:
            self.id_ = IdentifierValueGuard.return_one_of(id_)
        if name is not None:
            self.name = name
        if home_page_url is not None:
            self.home_page_url = home_page_url
        if contribution is not None:
            self.contribution = self._define_object(contribution, Contribution)
