from datetime import date, datetime  # noqa: F401

from typing import List, Dict  # noqa: F401

from chromestatus_openapi.models.base_model import Model
from chromestatus_openapi.models.counter_entry import CounterEntry
from chromestatus_openapi import util

from chromestatus_openapi.models.counter_entry import CounterEntry  # noqa: E501

class FeatureLinksSummaryResponse(Model):
    """NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).

    Do not edit the class manually.
    """

    def __init__(self, total_count=None, covered_count=None, uncovered_count=None, error_count=None, http_error_count=None, link_types=None, uncovered_link_domains=None, error_link_domains=None):  # noqa: E501
        """FeatureLinksSummaryResponse - a model defined in OpenAPI

        :param total_count: The total_count of this FeatureLinksSummaryResponse.  # noqa: E501
        :type total_count: int
        :param covered_count: The covered_count of this FeatureLinksSummaryResponse.  # noqa: E501
        :type covered_count: int
        :param uncovered_count: The uncovered_count of this FeatureLinksSummaryResponse.  # noqa: E501
        :type uncovered_count: int
        :param error_count: The error_count of this FeatureLinksSummaryResponse.  # noqa: E501
        :type error_count: int
        :param http_error_count: The http_error_count of this FeatureLinksSummaryResponse.  # noqa: E501
        :type http_error_count: int
        :param link_types: The link_types of this FeatureLinksSummaryResponse.  # noqa: E501
        :type link_types: List[CounterEntry]
        :param uncovered_link_domains: The uncovered_link_domains of this FeatureLinksSummaryResponse.  # noqa: E501
        :type uncovered_link_domains: List[CounterEntry]
        :param error_link_domains: The error_link_domains of this FeatureLinksSummaryResponse.  # noqa: E501
        :type error_link_domains: List[CounterEntry]
        """
        self.openapi_types = {
            'total_count': int,
            'covered_count': int,
            'uncovered_count': int,
            'error_count': int,
            'http_error_count': int,
            'link_types': List[CounterEntry],
            'uncovered_link_domains': List[CounterEntry],
            'error_link_domains': List[CounterEntry]
        }

        self.attribute_map = {
            'total_count': 'total_count',
            'covered_count': 'covered_count',
            'uncovered_count': 'uncovered_count',
            'error_count': 'error_count',
            'http_error_count': 'http_error_count',
            'link_types': 'link_types',
            'uncovered_link_domains': 'uncovered_link_domains',
            'error_link_domains': 'error_link_domains'
        }

        self._total_count = total_count
        self._covered_count = covered_count
        self._uncovered_count = uncovered_count
        self._error_count = error_count
        self._http_error_count = http_error_count
        self._link_types = link_types
        self._uncovered_link_domains = uncovered_link_domains
        self._error_link_domains = error_link_domains

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

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

    @property
    def total_count(self) -> int:
        """Gets the total_count of this FeatureLinksSummaryResponse.


        :return: The total_count of this FeatureLinksSummaryResponse.
        :rtype: int
        """
        return self._total_count

    @total_count.setter
    def total_count(self, total_count: int):
        """Sets the total_count of this FeatureLinksSummaryResponse.


        :param total_count: The total_count of this FeatureLinksSummaryResponse.
        :type total_count: int
        """

        self._total_count = total_count

    @property
    def covered_count(self) -> int:
        """Gets the covered_count of this FeatureLinksSummaryResponse.


        :return: The covered_count of this FeatureLinksSummaryResponse.
        :rtype: int
        """
        return self._covered_count

    @covered_count.setter
    def covered_count(self, covered_count: int):
        """Sets the covered_count of this FeatureLinksSummaryResponse.


        :param covered_count: The covered_count of this FeatureLinksSummaryResponse.
        :type covered_count: int
        """

        self._covered_count = covered_count

    @property
    def uncovered_count(self) -> int:
        """Gets the uncovered_count of this FeatureLinksSummaryResponse.


        :return: The uncovered_count of this FeatureLinksSummaryResponse.
        :rtype: int
        """
        return self._uncovered_count

    @uncovered_count.setter
    def uncovered_count(self, uncovered_count: int):
        """Sets the uncovered_count of this FeatureLinksSummaryResponse.


        :param uncovered_count: The uncovered_count of this FeatureLinksSummaryResponse.
        :type uncovered_count: int
        """

        self._uncovered_count = uncovered_count

    @property
    def error_count(self) -> int:
        """Gets the error_count of this FeatureLinksSummaryResponse.


        :return: The error_count of this FeatureLinksSummaryResponse.
        :rtype: int
        """
        return self._error_count

    @error_count.setter
    def error_count(self, error_count: int):
        """Sets the error_count of this FeatureLinksSummaryResponse.


        :param error_count: The error_count of this FeatureLinksSummaryResponse.
        :type error_count: int
        """

        self._error_count = error_count

    @property
    def http_error_count(self) -> int:
        """Gets the http_error_count of this FeatureLinksSummaryResponse.


        :return: The http_error_count of this FeatureLinksSummaryResponse.
        :rtype: int
        """
        return self._http_error_count

    @http_error_count.setter
    def http_error_count(self, http_error_count: int):
        """Sets the http_error_count of this FeatureLinksSummaryResponse.


        :param http_error_count: The http_error_count of this FeatureLinksSummaryResponse.
        :type http_error_count: int
        """

        self._http_error_count = http_error_count

    @property
    def link_types(self) -> List[CounterEntry]:
        """Gets the link_types of this FeatureLinksSummaryResponse.


        :return: The link_types of this FeatureLinksSummaryResponse.
        :rtype: List[CounterEntry]
        """
        return self._link_types

    @link_types.setter
    def link_types(self, link_types: List[CounterEntry]):
        """Sets the link_types of this FeatureLinksSummaryResponse.


        :param link_types: The link_types of this FeatureLinksSummaryResponse.
        :type link_types: List[CounterEntry]
        """

        self._link_types = link_types

    @property
    def uncovered_link_domains(self) -> List[CounterEntry]:
        """Gets the uncovered_link_domains of this FeatureLinksSummaryResponse.


        :return: The uncovered_link_domains of this FeatureLinksSummaryResponse.
        :rtype: List[CounterEntry]
        """
        return self._uncovered_link_domains

    @uncovered_link_domains.setter
    def uncovered_link_domains(self, uncovered_link_domains: List[CounterEntry]):
        """Sets the uncovered_link_domains of this FeatureLinksSummaryResponse.


        :param uncovered_link_domains: The uncovered_link_domains of this FeatureLinksSummaryResponse.
        :type uncovered_link_domains: List[CounterEntry]
        """

        self._uncovered_link_domains = uncovered_link_domains

    @property
    def error_link_domains(self) -> List[CounterEntry]:
        """Gets the error_link_domains of this FeatureLinksSummaryResponse.


        :return: The error_link_domains of this FeatureLinksSummaryResponse.
        :rtype: List[CounterEntry]
        """
        return self._error_link_domains

    @error_link_domains.setter
    def error_link_domains(self, error_link_domains: List[CounterEntry]):
        """Sets the error_link_domains of this FeatureLinksSummaryResponse.


        :param error_link_domains: The error_link_domains of this FeatureLinksSummaryResponse.
        :type error_link_domains: List[CounterEntry]
        """

        self._error_link_domains = error_link_domains
