<filename>spark_auto_mapper_fhir/backbone_elements/explanation_of_benefit_benefit_balance.py
from __future__ import annotations
from typing import Optional, TYPE_CHECKING

from spark_auto_mapper_fhir.fhir_types.boolean import FhirBoolean
from spark_auto_mapper_fhir.fhir_types.list import FhirList
from spark_auto_mapper_fhir.fhir_types.string import FhirString
from spark_auto_mapper_fhir.extensions.extension_base import ExtensionBase

from spark_auto_mapper_fhir.base_types.fhir_backbone_element_base import (
    FhirBackboneElementBase,
)

if TYPE_CHECKING:
    pass
    # id_ (string)
    # extension (Extension)
    # modifierExtension (Extension)
    # category (CodeableConcept)
    from spark_auto_mapper_fhir.complex_types.codeable_concept import CodeableConcept

    # End Import for References for category
    # Import for CodeableConcept for category
    from spark_auto_mapper_fhir.value_sets.benefit_category_codes import (
        BenefitCategoryCodesCode,
    )

    # End Import for CodeableConcept for category
    # excluded (boolean)
    # name (string)
    # description (string)
    # network (CodeableConcept)
    # End Import for References for network
    # Import for CodeableConcept for network
    from spark_auto_mapper_fhir.value_sets.network_type_codes import (
        NetworkTypeCodesCode,
    )

    # End Import for CodeableConcept for network
    # unit (CodeableConcept)
    # End Import for References for unit
    # Import for CodeableConcept for unit
    from spark_auto_mapper_fhir.value_sets.unit_type_codes import UnitTypeCodesCode

    # End Import for CodeableConcept for unit
    # term (CodeableConcept)
    # End Import for References for term
    # Import for CodeableConcept for term
    from spark_auto_mapper_fhir.value_sets.benefit_term_codes import (
        BenefitTermCodesCode,
    )

    # End Import for CodeableConcept for term
    # financial (ExplanationOfBenefit.Financial)
    from spark_auto_mapper_fhir.backbone_elements.explanation_of_benefit_financial import (
        ExplanationOfBenefitFinancial,
    )


# This file is auto-generated by generate_classes so do not edit manually
# noinspection PyPep8Naming
class ExplanationOfBenefitBenefitBalance(FhirBackboneElementBase):
    """
    ExplanationOfBenefit.BenefitBalance
        This resource provides: the claim details; adjudication details from the processing of a Claim; and optionally account balance information, for informing the subscriber of the benefits provided.
    """

    # noinspection PyPep8Naming
    def __init__(
        self,
        *,
        id_: Optional[FhirString] = None,
        extension: Optional[FhirList[ExtensionBase]] = None,
        modifierExtension: Optional[FhirList[ExtensionBase]] = None,
        category: CodeableConcept[BenefitCategoryCodesCode],
        excluded: Optional[FhirBoolean] = None,
        name: Optional[FhirString] = None,
        description: Optional[FhirString] = None,
        network: Optional[CodeableConcept[NetworkTypeCodesCode]] = None,
        unit: Optional[CodeableConcept[UnitTypeCodesCode]] = None,
        term: Optional[CodeableConcept[BenefitTermCodesCode]] = None,
        financial: Optional[FhirList[ExplanationOfBenefitFinancial]] = None,
    ) -> None:
        """
            This resource provides: the claim details; adjudication details from the
        processing of a Claim; and optionally account balance information, for
        informing the subscriber of the benefits provided.

            :param id_: None
            :param extension: May be used to represent additional information that is not part of the basic
        definition of the element. To make the use of extensions safe and manageable,
        there is a strict set of governance  applied to the definition and use of
        extensions. Though any implementer can define an extension, there is a set of
        requirements that SHALL be met as part of the definition of the extension.
            :param modifierExtension: May be used to represent additional information that is not part of the basic
        definition of the element and that modifies the understanding of the element
        in which it is contained and/or the understanding of the containing element's
        descendants. Usually modifier elements provide negation or qualification. To
        make the use of extensions safe and manageable, there is a strict set of
        governance applied to the definition and use of extensions. Though any
        implementer can define an extension, there is a set of requirements that SHALL
        be met as part of the definition of the extension. Applications processing a
        resource are required to check for modifier extensions.

        Modifier extensions SHALL NOT change the meaning of any elements on Resource
        or DomainResource (including cannot change the meaning of modifierExtension
        itself).
            :param category: Code to identify the general type of benefits under which products and
        services are provided.
            :param excluded: True if the indicated class of service is excluded from the plan, missing or
        False indicates the product or service is included in the coverage.
            :param name: A short name or tag for the benefit.
            :param description: A richer description of the benefit or services covered.
            :param network: Is a flag to indicate whether the benefits refer to in-network providers or
        out-of-network providers.
            :param unit: Indicates if the benefits apply to an individual or to the family.
            :param term: The term or period of the values such as 'maximum lifetime benefit' or
        'maximum annual visits'.
            :param financial: Benefits Used to date.
        """
        super().__init__(
            id_=id_,
            extension=extension,
            modifierExtension=modifierExtension,
            category=category,
            excluded=excluded,
            name=name,
            description=description,
            network=network,
            unit=unit,
            term=term,
            financial=financial,
        )

<filename>spark_auto_mapper_fhir/backbone_elements/explanation_of_benefit_benefit_balance.py
from __future__ import annotations
from typing import Optional, TYPE_CHECKING

from spark_auto_mapper_fhir.fhir_types.boolean import FhirBoolean
from spark_auto_mapper_fhir.fhir_types.list import FhirList
from spark_auto_mapper_fhir.fhir_types.string import FhirString
from spark_auto_mapper_fhir.extensions.extension_base import ExtensionBase

from spark_auto_mapper_fhir.base_types.fhir_backbone_element_base import (
    FhirBackboneElementBase,
)

if TYPE_CHECKING:
    pass
    # id_ (string)
    # extension (Extension)
    # modifierExtension (Extension)
    # category (CodeableConcept)
    from spark_auto_mapper_fhir.complex_types.codeable_concept import CodeableConcept

    # End Import for References for category
    # Import for CodeableConcept for category
    from spark_auto_mapper_fhir.value_sets.benefit_category_codes import (
        BenefitCategoryCodesCode,
    )

    # End Import for CodeableConcept for category
    # excluded (boolean)
    # name (string)
    # description (string)
    # network (CodeableConcept)
    # End Import for References for network
    # Import for CodeableConcept for network
    from spark_auto_mapper_fhir.value_sets.network_type_codes import (
        NetworkTypeCodesCode,
    )

    # End Import for CodeableConcept for network
    # unit (CodeableConcept)
    # End Import for References for unit
    # Import for CodeableConcept for unit
    from spark_auto_mapper_fhir.value_sets.unit_type_codes import UnitTypeCodesCode

    # End Import for CodeableConcept for unit
    # term (CodeableConcept)
    # End Import for References for term
    # Import for CodeableConcept for term
    from spark_auto_mapper_fhir.value_sets.benefit_term_codes import (
        BenefitTermCodesCode,
    )

    # End Import for CodeableConcept for term
    # financial (ExplanationOfBenefit.Financial)
    from spark_auto_mapper_fhir.backbone_elements.explanation_of_benefit_financial import (
        ExplanationOfBenefitFinancial,
    )


# This file is auto-generated by generate_classes so do not edit manually
# noinspection PyPep8Naming
class ExplanationOfBenefitBenefitBalance(FhirBackboneElementBase):
    """
    ExplanationOfBenefit.BenefitBalance
        This resource provides: the claim details; adjudication details from the processing of a Claim; and optionally account balance information, for informing the subscriber of the benefits provided.
    """

    # noinspection PyPep8Naming
    def __init__(
        self,
        *,
        id_: Optional[FhirString] = None,
        extension: Optional[FhirList[ExtensionBase]] = None,
        modifierExtension: Optional[FhirList[ExtensionBase]] = None,
        category: CodeableConcept[BenefitCategoryCodesCode],
        excluded: Optional[FhirBoolean] = None,
        name: Optional[FhirString] = None,
        description: Optional[FhirString] = None,
        network: Optional[CodeableConcept[NetworkTypeCodesCode]] = None,
        unit: Optional[CodeableConcept[UnitTypeCodesCode]] = None,
        term: Optional[CodeableConcept[BenefitTermCodesCode]] = None,
        financial: Optional[FhirList[ExplanationOfBenefitFinancial]] = None,
    ) -> None:
        """
            This resource provides: the claim details; adjudication details from the
        processing of a Claim; and optionally account balance information, for
        informing the subscriber of the benefits provided.

            :param id_: None
            :param extension: May be used to represent additional information that is not part of the basic
        definition of the element. To make the use of extensions safe and manageable,
        there is a strict set of governance  applied to the definition and use of
        extensions. Though any implementer can define an extension, there is a set of
        requirements that SHALL be met as part of the definition of the extension.
            :param modifierExtension: May be used to represent additional information that is not part of the basic
        definition of the element and that modifies the understanding of the element
        in which it is contained and/or the understanding of the containing element's
        descendants. Usually modifier elements provide negation or qualification. To
        make the use of extensions safe and manageable, there is a strict set of
        governance applied to the definition and use of extensions. Though any
        implementer can define an extension, there is a set of requirements that SHALL
        be met as part of the definition of the extension. Applications processing a
        resource are required to check for modifier extensions.

        Modifier extensions SHALL NOT change the meaning of any elements on Resource
        or DomainResource (including cannot change the meaning of modifierExtension
        itself).
            :param category: Code to identify the general type of benefits under which products and
        services are provided.
            :param excluded: True if the indicated class of service is excluded from the plan, missing or
        False indicates the product or service is included in the coverage.
            :param name: A short name or tag for the benefit.
            :param description: A richer description of the benefit or services covered.
            :param network: Is a flag to indicate whether the benefits refer to in-network providers or
        out-of-network providers.
            :param unit: Indicates if the benefits apply to an individual or to the family.
            :param term: The term or period of the values such as 'maximum lifetime benefit' or
        'maximum annual visits'.
            :param financial: Benefits Used to date.
        """
        super().__init__(
            id_=id_,
            extension=extension,
            modifierExtension=modifierExtension,
            category=category,
            excluded=excluded,
            name=name,
            description=description,
            network=network,
            unit=unit,
            term=term,
            financial=financial,
        )

# id_ (string) # extension (Extension) # modifierExtension (Extension) # category (CodeableConcept) # End Import for References for category # Import for CodeableConcept for category # End Import for CodeableConcept for category # excluded (boolean) # name (string) # description (string) # network (CodeableConcept) # End Import for References for network # Import for CodeableConcept for network # End Import for CodeableConcept for network # unit (CodeableConcept) # End Import for References for unit # Import for CodeableConcept for unit # End Import for CodeableConcept for unit # term (CodeableConcept) # End Import for References for term # Import for CodeableConcept for term # End Import for CodeableConcept for term # financial (ExplanationOfBenefit.Financial) # This file is auto-generated by generate_classes so do not edit manually # noinspection PyPep8Naming ExplanationOfBenefit.BenefitBalance         This resource provides: the claim details; adjudication details from the processing of a Claim; and optionally account balance information, for informing the subscriber of the benefits provided. # noinspection PyPep8Naming This resource provides: the claim details; adjudication details from the         processing of a Claim; and optionally account balance information, for         informing the subscriber of the benefits provided.              :param id_: None             :param extension: May be used to represent additional information that is not part of the basic         definition of the element. To make the use of extensions safe and manageable,         there is a strict set of governance  applied to the definition and use of         extensions. Though any implementer can define an extension, there is a set of         requirements that SHALL be met as part of the definition of the extension.             :param modifierExtension: May be used to represent additional information that is not part of the basic         definition of the element and that modifies the understanding of the element         in which it is contained and/or the understanding of the containing element's         descendants. Usually modifier elements provide negation or qualification. To         make the use of extensions safe and manageable, there is a strict set of         governance applied to the definition and use of extensions. Though any         implementer can define an extension, there is a set of requirements that SHALL         be met as part of the definition of the extension. Applications processing a         resource are required to check for modifier extensions.          Modifier extensions SHALL NOT change the meaning of any elements on Resource         or DomainResource (including cannot change the meaning of modifierExtension         itself).             :param category: Code to identify the general type of benefits under which products and         services are provided.             :param excluded: True if the indicated class of service is excluded from the plan, missing or         False indicates the product or service is included in the coverage.             :param name: A short name or tag for the benefit.             :param description: A richer description of the benefit or services covered.             :param network: Is a flag to indicate whether the benefits refer to in-network providers or         out-of-network providers.             :param unit: Indicates if the benefits apply to an individual or to the family.             :param term: The term or period of the values such as 'maximum lifetime benefit' or         'maximum annual visits'.             :param financial: Benefits Used to date.