# coding: utf-8

from __future__ import absolute_import
from .base_model_ import Model
from datetime import date, datetime
from typing import List, Dict
from ..util import deserialize_model


class FrameworkFilter(Model):
    """
    NOTE: This class is auto generated by the swagger code generator program.
    Do not edit the class manually.
    """
    def __init__(self, field: str=None, value: str=None, condition_type: str=None):
        """
        FrameworkFilter - a model defined in Swagger

        :param field: The field of this FrameworkFilter.
        :type field: str
        :param value: The value of this FrameworkFilter.
        :type value: str
        :param condition_type: The condition_type of this FrameworkFilter.
        :type condition_type: str
        """
        self.swagger_types = {
            'field': str,
            'value': str,
            'condition_type': str
        }

        self.attribute_map = {
            'field': 'field',
            'value': 'value',
            'condition_type': 'condition_type'
        }

        self._field = field
        self._value = value
        self._condition_type = condition_type

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

        :param dikt: A dict.
        :type: dict
        :return: The framework-filter of this FrameworkFilter.
        :rtype: FrameworkFilter
        """
        return deserialize_model(dikt, cls)

    @property
    def field(self) -> str:
        """
        Gets the field of this FrameworkFilter.
        Field

        :return: The field of this FrameworkFilter.
        :rtype: str
        """
        return self._field

    @field.setter
    def field(self, field: str):
        """
        Sets the field of this FrameworkFilter.
        Field

        :param field: The field of this FrameworkFilter.
        :type field: str
        """
        if field is None:
            raise ValueError("Invalid value for `field`, must not be `None`")

        self._field = field

    @property
    def value(self) -> str:
        """
        Gets the value of this FrameworkFilter.
        Value

        :return: The value of this FrameworkFilter.
        :rtype: str
        """
        return self._value

    @value.setter
    def value(self, value: str):
        """
        Sets the value of this FrameworkFilter.
        Value

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

        self._value = value

    @property
    def condition_type(self) -> str:
        """
        Gets the condition_type of this FrameworkFilter.
        Condition type

        :return: The condition_type of this FrameworkFilter.
        :rtype: str
        """
        return self._condition_type

    @condition_type.setter
    def condition_type(self, condition_type: str):
        """
        Sets the condition_type of this FrameworkFilter.
        Condition type

        :param condition_type: The condition_type of this FrameworkFilter.
        :type condition_type: str
        """

        self._condition_type = condition_type

