# coding=utf-8
# --------------------------------------------------------------------------
# Code generated by Microsoft (R) AutoRest Code Generator.
# Changes may cause incorrect behavior and will be lost if the code is
# regenerated.
# --------------------------------------------------------------------------

from msrest.serialization import Model


class AttributeDataProfile(Model):
    """Attribute data profile.

    :param value_counts: Represents Distribution of the top 100 values.
    :type value_counts: list[~dynamics.customerinsights.api.models.ValueCount]
    :param histogram: Represents histogram information Ordered from smallest
     to largest bin.
    :type histogram: list[~dynamics.customerinsights.api.models.HistogramBin]
    :param qualified_entity_name: Qualified entity name.
    :type qualified_entity_name: str
    :param attribute_name: Attribute name.
    :type attribute_name: str
    :param min: Minimum value.
    :type min: object
    :param max: Maximum value.
    :type max: object
    :param count: Total row count.
    :type count: long
    :param missing_count: Row count of missing values.
    :type missing_count: long
    :param error_count: Number of error values.
    :type error_count: long
    :param quantiles:
    :type quantiles: ~dynamics.customerinsights.api.models.Quantiles
    :param moments:
    :type moments: ~dynamics.customerinsights.api.models.Moments
    :param unique_value_count: Number of unique values.
    :type unique_value_count: long
    :param profiling_date: Profiling date
    :type profiling_date: datetime
    :param is_suggested_primary_key: Represents a value indicating whether
     this attribute can be used as a primary key of the entity
    :type is_suggested_primary_key: bool
    :param check_if_exact_stats: Represents a value indicating whether we
     calculate exact or approx stats
    :type check_if_exact_stats: object
    """

    _attribute_map = {
        'value_counts': {'key': 'valueCounts', 'type': '[ValueCount]'},
        'histogram': {'key': 'histogram', 'type': '[HistogramBin]'},
        'qualified_entity_name': {'key': 'qualifiedEntityName', 'type': 'str'},
        'attribute_name': {'key': 'attributeName', 'type': 'str'},
        'min': {'key': 'min', 'type': 'object'},
        'max': {'key': 'max', 'type': 'object'},
        'count': {'key': 'count', 'type': 'long'},
        'missing_count': {'key': 'missingCount', 'type': 'long'},
        'error_count': {'key': 'errorCount', 'type': 'long'},
        'quantiles': {'key': 'quantiles', 'type': 'Quantiles'},
        'moments': {'key': 'moments', 'type': 'Moments'},
        'unique_value_count': {'key': 'uniqueValueCount', 'type': 'long'},
        'profiling_date': {'key': 'profilingDate', 'type': 'iso-8601'},
        'is_suggested_primary_key': {'key': 'isSuggestedPrimaryKey', 'type': 'bool'},
        'check_if_exact_stats': {'key': 'checkIfExactStats', 'type': 'object'},
    }

    def __init__(self, **kwargs):
        super(AttributeDataProfile, self).__init__(**kwargs)
        self.value_counts = kwargs.get('value_counts', None)
        self.histogram = kwargs.get('histogram', None)
        self.qualified_entity_name = kwargs.get('qualified_entity_name', None)
        self.attribute_name = kwargs.get('attribute_name', None)
        self.min = kwargs.get('min', None)
        self.max = kwargs.get('max', None)
        self.count = kwargs.get('count', None)
        self.missing_count = kwargs.get('missing_count', None)
        self.error_count = kwargs.get('error_count', None)
        self.quantiles = kwargs.get('quantiles', None)
        self.moments = kwargs.get('moments', None)
        self.unique_value_count = kwargs.get('unique_value_count', None)
        self.profiling_date = kwargs.get('profiling_date', None)
        self.is_suggested_primary_key = kwargs.get('is_suggested_primary_key', None)
        self.check_if_exact_stats = kwargs.get('check_if_exact_stats', None)
