# coding: utf-8

"""
    Catalog Sampling API

    <p>The Catalog Sampling API offers functionality related to the Collibra Data Catalog application.<br/> It is mainly focused on facilitating the ingestion of information into Data Catalog.<br/> The API enables you to more easily connect Data Catalog to sources that are not necessarily natively supported in the product.</p>  # noqa: E501

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

import pprint
import re  # noqa: F401

import six

class ReadSamplesResponse(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 = {
        'data_available': 'bool',
        'can_request_additional_data': 'bool',
        'column_paged_response': 'ColumnPagedResponse',
        'error': 'StandardErrorResponse'
    }

    attribute_map = {
        'data_available': 'dataAvailable',
        'can_request_additional_data': 'canRequestAdditionalData',
        'column_paged_response': 'columnPagedResponse',
        'error': 'error'
    }

    def __init__(self, data_available=None, can_request_additional_data=None, column_paged_response=None, error=None):  # noqa: E501
        """ReadSamplesResponse - a model defined in Swagger"""  # noqa: E501
        self._data_available = None
        self._can_request_additional_data = None
        self._column_paged_response = None
        self._error = None
        self.discriminator = None
        if data_available is not None:
            self.data_available = data_available
        if can_request_additional_data is not None:
            self.can_request_additional_data = can_request_additional_data
        if column_paged_response is not None:
            self.column_paged_response = column_paged_response
        if error is not None:
            self.error = error

    @property
    def data_available(self):
        """Gets the data_available of this ReadSamplesResponse.  # noqa: E501

        Whether any sample data is available for the columns in the response.  # noqa: E501

        :return: The data_available of this ReadSamplesResponse.  # noqa: E501
        :rtype: bool
        """
        return self._data_available

    @data_available.setter
    def data_available(self, data_available):
        """Sets the data_available of this ReadSamplesResponse.

        Whether any sample data is available for the columns in the response.  # noqa: E501

        :param data_available: The data_available of this ReadSamplesResponse.  # noqa: E501
        :type: bool
        """

        self._data_available = data_available

    @property
    def can_request_additional_data(self):
        """Gets the can_request_additional_data of this ReadSamplesResponse.  # noqa: E501

        Whether the requestSamples API can be called to query the target database for sample data.  # noqa: E501

        :return: The can_request_additional_data of this ReadSamplesResponse.  # noqa: E501
        :rtype: bool
        """
        return self._can_request_additional_data

    @can_request_additional_data.setter
    def can_request_additional_data(self, can_request_additional_data):
        """Sets the can_request_additional_data of this ReadSamplesResponse.

        Whether the requestSamples API can be called to query the target database for sample data.  # noqa: E501

        :param can_request_additional_data: The can_request_additional_data of this ReadSamplesResponse.  # noqa: E501
        :type: bool
        """

        self._can_request_additional_data = can_request_additional_data

    @property
    def column_paged_response(self):
        """Gets the column_paged_response of this ReadSamplesResponse.  # noqa: E501


        :return: The column_paged_response of this ReadSamplesResponse.  # noqa: E501
        :rtype: ColumnPagedResponse
        """
        return self._column_paged_response

    @column_paged_response.setter
    def column_paged_response(self, column_paged_response):
        """Sets the column_paged_response of this ReadSamplesResponse.


        :param column_paged_response: The column_paged_response of this ReadSamplesResponse.  # noqa: E501
        :type: ColumnPagedResponse
        """

        self._column_paged_response = column_paged_response

    @property
    def error(self):
        """Gets the error of this ReadSamplesResponse.  # noqa: E501


        :return: The error of this ReadSamplesResponse.  # noqa: E501
        :rtype: StandardErrorResponse
        """
        return self._error

    @error.setter
    def error(self, error):
        """Sets the error of this ReadSamplesResponse.


        :param error: The error of this ReadSamplesResponse.  # noqa: E501
        :type: StandardErrorResponse
        """

        self._error = error

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

        for attr, _ in six.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
        if issubclass(ReadSamplesResponse, dict):
            for key, value in self.items():
                result[key] = value

        return result

    def to_str(self):
        """Returns the string representation of the model"""
        return pprint.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, ReadSamplesResponse):
            return False

        return self.__dict__ == other.__dict__

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