# coding: utf-8

from __future__ import absolute_import
from datetime import date, datetime  # noqa: F401

from typing import List, Dict  # noqa: F401

from swagger_server.models.base_model_ import Model
from swagger_server.models.nr_cell_id import NrCellId  # noqa: F401,E501
from swagger_server.models.plmn import Plmn  # noqa: F401,E501
from swagger_server import util


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

    Do not edit the class manually.
    """
    def __init__(self, nr_s_cell_gid: NrCellId=None, nr_s_cell_plmn: List[Plmn]=None):  # noqa: E501
        """MeasRepUeNotificationNrSCsNrSCellInfo - a model defined in Swagger

        :param nr_s_cell_gid: The nr_s_cell_gid of this MeasRepUeNotificationNrSCsNrSCellInfo.  # noqa: E501
        :type nr_s_cell_gid: NrCellId
        :param nr_s_cell_plmn: The nr_s_cell_plmn of this MeasRepUeNotificationNrSCsNrSCellInfo.  # noqa: E501
        :type nr_s_cell_plmn: List[Plmn]
        """
        self.swagger_types = {
            'nr_s_cell_gid': NrCellId,
            'nr_s_cell_plmn': List[Plmn]
        }

        self.attribute_map = {
            'nr_s_cell_gid': 'nrSCellGId',
            'nr_s_cell_plmn': 'nrSCellPlmn'
        }
        self._nr_s_cell_gid = nr_s_cell_gid
        self._nr_s_cell_plmn = nr_s_cell_plmn

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

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

    @property
    def nr_s_cell_gid(self) -> NrCellId:
        """Gets the nr_s_cell_gid of this MeasRepUeNotificationNrSCsNrSCellInfo.


        :return: The nr_s_cell_gid of this MeasRepUeNotificationNrSCsNrSCellInfo.
        :rtype: NrCellId
        """
        return self._nr_s_cell_gid

    @nr_s_cell_gid.setter
    def nr_s_cell_gid(self, nr_s_cell_gid: NrCellId):
        """Sets the nr_s_cell_gid of this MeasRepUeNotificationNrSCsNrSCellInfo.


        :param nr_s_cell_gid: The nr_s_cell_gid of this MeasRepUeNotificationNrSCsNrSCellInfo.
        :type nr_s_cell_gid: NrCellId
        """

        self._nr_s_cell_gid = nr_s_cell_gid

    @property
    def nr_s_cell_plmn(self) -> List[Plmn]:
        """Gets the nr_s_cell_plmn of this MeasRepUeNotificationNrSCsNrSCellInfo.

        Public land mobile network identities.  # noqa: E501

        :return: The nr_s_cell_plmn of this MeasRepUeNotificationNrSCsNrSCellInfo.
        :rtype: List[Plmn]
        """
        return self._nr_s_cell_plmn

    @nr_s_cell_plmn.setter
    def nr_s_cell_plmn(self, nr_s_cell_plmn: List[Plmn]):
        """Sets the nr_s_cell_plmn of this MeasRepUeNotificationNrSCsNrSCellInfo.

        Public land mobile network identities.  # noqa: E501

        :param nr_s_cell_plmn: The nr_s_cell_plmn of this MeasRepUeNotificationNrSCsNrSCellInfo.
        :type nr_s_cell_plmn: List[Plmn]
        """

        self._nr_s_cell_plmn = nr_s_cell_plmn
