# coding: utf-8

"""
    Seeq REST API

    No description provided (generated by Swagger Codegen https://github.com/swagger-api/swagger-codegen)  # noqa: E501

    OpenAPI spec version: 66.119.1-v202603241138-CD
    
    Generated by: https://github.com/swagger-api/swagger-codegen.git
"""

from pprint import pformat
from six import iteritems
import re


class GetAllContextInputV1(object):
    """
    NOTE: This class is auto generated by the swagger code generator program.
    Do not edit the class manually.
    """


    """
    Attributes:
      swagger_types (dict): The key is attribute name
                            and the value is attribute type.
      attribute_map (dict): The key is attribute name
                            and the value is json key in definition.
    """
    swagger_types = {
        'comment_filter': 'Filter',
        'ids': 'list[ContextIdInputV1]',
        'label_filter': 'Filter',
        'numeric_filter': 'Filter',
        'opaque_filter': 'Filter'
    }

    attribute_map = {
        'comment_filter': 'commentFilter',
        'ids': 'ids',
        'label_filter': 'labelFilter',
        'numeric_filter': 'numericFilter',
        'opaque_filter': 'opaqueFilter'
    }

    def __init__(self, comment_filter=None, ids=None, label_filter=None, numeric_filter=None, opaque_filter=None):
        """
        GetAllContextInputV1 - a model defined in Swagger
        """

        self._comment_filter = None
        self._ids = None
        self._label_filter = None
        self._numeric_filter = None
        self._opaque_filter = None

        if comment_filter is not None:
          self.comment_filter = comment_filter
        if ids is not None:
          self.ids = ids
        if label_filter is not None:
          self.label_filter = label_filter
        if numeric_filter is not None:
          self.numeric_filter = numeric_filter
        if opaque_filter is not None:
          self.opaque_filter = opaque_filter

    @property
    def comment_filter(self):
        """
        Gets the comment_filter of this GetAllContextInputV1.

        :return: The comment_filter of this GetAllContextInputV1.
        :rtype: Filter
        """
        return self._comment_filter

    @comment_filter.setter
    def comment_filter(self, comment_filter):
        """
        Sets the comment_filter of this GetAllContextInputV1.

        :param comment_filter: The comment_filter of this GetAllContextInputV1.
        :type: Filter
        """

        self._comment_filter = comment_filter

    @property
    def ids(self):
        """
        Gets the ids of this GetAllContextInputV1.
        The item IDs to fetch all context for

        :return: The ids of this GetAllContextInputV1.
        :rtype: list[ContextIdInputV1]
        """
        return self._ids

    @ids.setter
    def ids(self, ids):
        """
        Sets the ids of this GetAllContextInputV1.
        The item IDs to fetch all context for

        :param ids: The ids of this GetAllContextInputV1.
        :type: list[ContextIdInputV1]
        """
        if ids is None:
            raise ValueError("Invalid value for `ids`, must not be `None`")

        self._ids = ids

    @property
    def label_filter(self):
        """
        Gets the label_filter of this GetAllContextInputV1.

        :return: The label_filter of this GetAllContextInputV1.
        :rtype: Filter
        """
        return self._label_filter

    @label_filter.setter
    def label_filter(self, label_filter):
        """
        Sets the label_filter of this GetAllContextInputV1.

        :param label_filter: The label_filter of this GetAllContextInputV1.
        :type: Filter
        """

        self._label_filter = label_filter

    @property
    def numeric_filter(self):
        """
        Gets the numeric_filter of this GetAllContextInputV1.

        :return: The numeric_filter of this GetAllContextInputV1.
        :rtype: Filter
        """
        return self._numeric_filter

    @numeric_filter.setter
    def numeric_filter(self, numeric_filter):
        """
        Sets the numeric_filter of this GetAllContextInputV1.

        :param numeric_filter: The numeric_filter of this GetAllContextInputV1.
        :type: Filter
        """

        self._numeric_filter = numeric_filter

    @property
    def opaque_filter(self):
        """
        Gets the opaque_filter of this GetAllContextInputV1.

        :return: The opaque_filter of this GetAllContextInputV1.
        :rtype: Filter
        """
        return self._opaque_filter

    @opaque_filter.setter
    def opaque_filter(self, opaque_filter):
        """
        Sets the opaque_filter of this GetAllContextInputV1.

        :param opaque_filter: The opaque_filter of this GetAllContextInputV1.
        :type: Filter
        """

        self._opaque_filter = opaque_filter

    def to_dict(self):
        """
        Returns the model properties as a dict
        """
        result = {}

        for attr, _ in iteritems(self.swagger_types):
            value = getattr(self, attr)
            if isinstance(value, list):
                result[attr] = list(map(
                    lambda x: x.to_dict() if hasattr(x, "to_dict") else x,
                    value
                ))
            elif hasattr(value, "to_dict"):
                result[attr] = value.to_dict()
            elif isinstance(value, dict):
                result[attr] = dict(map(
                    lambda item: (item[0], item[1].to_dict())
                    if hasattr(item[1], "to_dict") else item,
                    value.items()
                ))
            else:
                result[attr] = value

        return result

    def to_str(self):
        """
        Returns the string representation of the model
        """
        return pformat(self.to_dict())

    def __repr__(self):
        """
        For `print` and `pprint`
        """
        return self.to_str()

    def __eq__(self, other):
        """
        Returns true if both objects are equal
        """
        if not isinstance(other, GetAllContextInputV1):
            return False

        return self.__dict__ == other.__dict__

    def __ne__(self, other):
        """
        Returns true if both objects are not equal
        """
        return not self == other
