# coding: utf-8

# flake8: noqa

"""
Internal Variable Definitions Administration API

 ## Introduction  Variable Definitions are centralized definitions of concrete variables which are typically present in multiple datasets. Variable Definitions support standardization of data and metadata and facilitate sharing and joining of data by clarifying when variables have an identical definition.  ## Maintenance of Variable Definitions This API allows for creation, maintenance and access of Variable Definitions.  ### Ownership Creation and maintenance of variables may only be performed by Statistics Norway employees representing a specific Dapla team, who are defined as the owners of a given Variable Definition. The team an owner represents must be specified when making a request through the `active_group` query parameter. All maintenance is to be performed by the owners, with no intervention from administrators.  ### Status All Variable Definitions have an associated status. The possible values for status are `DRAFT`, `PUBLISHED_INTERNAL` and `PUBLISHED_EXTERNAL`.  #### Draft When a Variable Definition is created it is assigned the status `DRAFT`. Under this status the Variable Definition is:  - Only visible to Statistics Norway employees. - Mutable (it may be changed directly without need for versioning). - Not suitable to refer to from other systems.  This status may be changed to `PUBLISHED_INTERNAL` or `PUBLISHED_EXTERNAL` with a direct update.  #### Published Internal Under this status the Variable Definition is:  - Only visible to Statistics Norway employees. - Immutable (all changes are versioned). - Suitable to refer to in internal systems for statistics production. - Not suitable to refer to for external use (for example in Statistikkbanken).  This status may be changed to `PUBLISHED_EXTERNAL` by creating a Patch version.  #### Published External Under this status the Variable Definition is:  - Visible to the general public. - Immutable (all changes are versioned). - Suitable to refer to from any system.  This status may not be changed as it would break immutability. If a Variable Definition is no longer relevant then its period of validity should be ended by specifying a `valid_until` date in a Patch version.  ### Immutability Variable Definitions are immutable. This means that any changes must be performed in a strict versioning system. Consumers can avoid being exposed to breaking changes by specifying a `date_of_validity` when they request a Variable Definition.  #### Patches Patches are for changes which do not affect the fundamental meaning of the Variable Definition.  #### Validity Periods Validity Periods are versions with a period defined by a `valid_from` date and optionally a `valid_until` date. If the fundamental meaning of a Variable Definition is to be changed, it should be done by creating a new Validity Period.

The version of the OpenAPI document: 0.1
Contact: metadata@ssb.no
Generated by OpenAPI Generator (https://openapi-generator.tech)

Do not edit the class manually.
"""  # noqa: E501

__version__ = "1.0.0"

# Define package exports
__all__ = [
    "DataMigrationApi",
    "DraftVariableDefinitionsApi",
    "PatchesApi",
    "ValidityPeriodsApi",
    "VariableDefinitionsApi",
    "ApiResponse",
    "ApiClient",
    "Configuration",
    "OpenApiException",
    "ApiTypeError",
    "ApiValueError",
    "ApiKeyError",
    "ApiAttributeError",
    "ApiException",
    "CompleteView",
    "Contact",
    "CreateDraft",
    "CreatePatch",
    "CreateValidityPeriod",
    "GetVardokVardefMappingById200Response",
    "KlassReference",
    "LanguageStringType",
    "ListVariableDefinitions200ResponseInner",
    "Owner",
    "Problem",
    "RenderedContact",
    "RenderedView",
    "SupportedLanguages",
    "UpdateDraft",
    "VardokIdResponse",
    "VardokVardefIdPairResponse",
    "VariableStatus",
]

# import apis into sdk package
from .api.data_migration_api import DataMigrationApi as DataMigrationApi
from .api.draft_variable_definitions_api import (
    DraftVariableDefinitionsApi as DraftVariableDefinitionsApi,
)
from .api.patches_api import PatchesApi as PatchesApi
from .api.validity_periods_api import ValidityPeriodsApi as ValidityPeriodsApi
from .api.variable_definitions_api import (
    VariableDefinitionsApi as VariableDefinitionsApi,
)

# import ApiClient
from .api_response import ApiResponse as ApiResponse
from .api_client import ApiClient as ApiClient
from .configuration import Configuration as Configuration
from .exceptions import OpenApiException as OpenApiException
from .exceptions import ApiTypeError as ApiTypeError
from .exceptions import ApiValueError as ApiValueError
from .exceptions import ApiKeyError as ApiKeyError
from .exceptions import ApiAttributeError as ApiAttributeError
from .exceptions import ApiException as ApiException

# import models into sdk package
from .models.complete_view import CompleteView as CompleteView
from .models.contact import Contact as Contact
from .models.create_draft import CreateDraft as CreateDraft
from .models.create_patch import CreatePatch as CreatePatch
from .models.create_validity_period import CreateValidityPeriod as CreateValidityPeriod
from .models.get_vardok_vardef_mapping_by_id200_response import (
    GetVardokVardefMappingById200Response as GetVardokVardefMappingById200Response,
)
from .models.klass_reference import KlassReference as KlassReference
from .models.language_string_type import LanguageStringType as LanguageStringType
from .models.list_variable_definitions200_response_inner import (
    ListVariableDefinitions200ResponseInner as ListVariableDefinitions200ResponseInner,
)
from .models.owner import Owner as Owner
from .models.problem import Problem as Problem
from .models.rendered_contact import RenderedContact as RenderedContact
from .models.rendered_view import RenderedView as RenderedView
from .models.supported_languages import SupportedLanguages as SupportedLanguages
from .models.update_draft import UpdateDraft as UpdateDraft
from .models.vardok_id_response import VardokIdResponse as VardokIdResponse
from .models.vardok_vardef_id_pair_response import (
    VardokVardefIdPairResponse as VardokVardefIdPairResponse,
)
from .models.variable_status import VariableStatus as VariableStatus
