# coding: utf-8

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

from typing import List, Dict  # noqa: F401

from activity_index_server.models.base_model_ import Model
from activity_index_server import util


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

    Do not edit the class manually.
    """

    def __init__(self, competency: str=None, activities: List[str]=None):  # noqa: E501
        """ActivityAssociations - a model defined in Swagger

        :param competency: The competency of this ActivityAssociations.  # noqa: E501
        :type competency: str
        :param activities: The activities of this ActivityAssociations.  # noqa: E501
        :type activities: List[str]
        """
        self.swagger_types = {
            'competency': str,
            'activities': List[str]
        }

        self.attribute_map = {
            'competency': 'competency',
            'activities': 'activities'
        }

        self._competency = competency
        self._activities = activities

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

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

    @property
    def competency(self) -> str:
        """Gets the competency of this ActivityAssociations.

        URL reference to TLO or ELO  # noqa: E501

        :return: The competency of this ActivityAssociations.
        :rtype: str
        """
        return self._competency

    @competency.setter
    def competency(self, competency: str):
        """Sets the competency of this ActivityAssociations.

        URL reference to TLO or ELO  # noqa: E501

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

        self._competency = competency

    @property
    def activities(self) -> List[str]:
        """Gets the activities of this ActivityAssociations.

        IDs of activities associated with the TLO/ELO  # noqa: E501

        :return: The activities of this ActivityAssociations.
        :rtype: List[str]
        """
        return self._activities

    @activities.setter
    def activities(self, activities: List[str]):
        """Sets the activities of this ActivityAssociations.

        IDs of activities associated with the TLO/ELO  # noqa: E501

        :param activities: The activities of this ActivityAssociations.
        :type activities: List[str]
        """
        if activities is None:
            raise ValueError("Invalid value for `activities`, must not be `None`")  # noqa: E501

        self._activities = activities
