# coding: utf-8

from __future__ import absolute_import
from datetime import date, datetime  # noqa: F401
from swagger_server.models.source import Source  # noqa: F401,E501
from swagger_server.models.meta_gloabl_control import MetaGloablControl  # noqa: F401,E501
from typing import List, Dict  # noqa: F401

from swagger_server.models.base_model_ import Model
from swagger_server import util


class GlobalControl(Model):
    """NOTE: This class is auto generated by the swagger code generator program.

    Do not edit the class manually.
    """

    def __init__(self, ess_control: Source=None, meta: MetaGloablControl=None):  # noqa: E501
        """GlobalControl - a model defined in Swagger

        :param ess_control: The ess_control of this GlobalControl.  # noqa: E501
        :type ess_control: Source
        :param meta: The meta of this GlobalControl.  # noqa: E501
        :type meta: MetaGloablControl
        """
        self.swagger_types = {
            'ess_control': Source,
            'meta': MetaGloablControl
        }

        self.attribute_map = {
            'ess_control': 'ESS_Control',
            'meta': 'meta'
        }

        self._ess_control = ess_control
        self._meta = meta

    @classmethod
    def from_dict(cls, dikt) -> 'GlobalControl':
        """Returns the dict as a model

        :param dikt: A dict.
        :type: dict
        :return: The Global_Control of this GlobalControl.  # noqa: E501
        :rtype: GlobalControl
        """
        return util.deserialize_model(dikt, cls)

    @property
    def ess_control(self) -> Source:
        """Gets the ess_control of this GlobalControl.


        :return: The ess_control of this GlobalControl.
        :rtype: Source
        """
        return self._ess_control

    @ess_control.setter
    def ess_control(self, ess_control: Source):
        """Sets the ess_control of this GlobalControl.


        :param ess_control: The ess_control of this GlobalControl.
        :type ess_control: Source
        """
        if ess_control is None:
            raise ValueError("Invalid value for `ess_control`, must not be `None`")  # noqa: E501

        self._ess_control = ess_control

    @property
    def meta(self) -> MetaGloablControl:
        """Gets the meta of this GlobalControl.


        :return: The meta of this GlobalControl.
        :rtype: MetaGloablControl
        """
        return self._meta

    @meta.setter
    def meta(self, meta: MetaGloablControl):
        """Sets the meta of this GlobalControl.


        :param meta: The meta of this GlobalControl.
        :type meta: MetaGloablControl
        """

        self._meta = meta
