# coding: utf-8

"""
    WakaTime API

    REST API for accessing your WakaTime coding activity stats. - Uses GET for retrieval, POST/PUT/PATCH for modification. - All requests must use HTTPS. - Responses are JSON objects. Data is in the `data` key, errors in `error` or `errors`. - Refer to WakaTime usage guidelines when using the trademark or logo.   # noqa: E501

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

import pprint
import re  # noqa: F401

import six

class CommitsListResponse(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 = {
        'commits': 'list[Commit]',
        'author': 'str',
        'next_page': 'int',
        'next_page_url': 'str',
        'page': 'int',
        'prev_page': 'int',
        'prev_page_url': 'str',
        'branch': 'str',
        'project': 'ProjectSummary',
        'status': 'str',
        'total': 'int',
        'total_pages': 'int'
    }

    attribute_map = {
        'commits': 'commits',
        'author': 'author',
        'next_page': 'next_page',
        'next_page_url': 'next_page_url',
        'page': 'page',
        'prev_page': 'prev_page',
        'prev_page_url': 'prev_page_url',
        'branch': 'branch',
        'project': 'project',
        'status': 'status',
        'total': 'total',
        'total_pages': 'total_pages'
    }

    def __init__(self, commits=None, author=None, next_page=None, next_page_url=None, page=None, prev_page=None, prev_page_url=None, branch=None, project=None, status=None, total=None, total_pages=None):  # noqa: E501
        """CommitsListResponse - a model defined in Swagger"""  # noqa: E501
        self._commits = None
        self._author = None
        self._next_page = None
        self._next_page_url = None
        self._page = None
        self._prev_page = None
        self._prev_page_url = None
        self._branch = None
        self._project = None
        self._status = None
        self._total = None
        self._total_pages = None
        self.discriminator = None
        if commits is not None:
            self.commits = commits
        if author is not None:
            self.author = author
        if next_page is not None:
            self.next_page = next_page
        if next_page_url is not None:
            self.next_page_url = next_page_url
        if page is not None:
            self.page = page
        if prev_page is not None:
            self.prev_page = prev_page
        if prev_page_url is not None:
            self.prev_page_url = prev_page_url
        if branch is not None:
            self.branch = branch
        if project is not None:
            self.project = project
        if status is not None:
            self.status = status
        if total is not None:
            self.total = total
        if total_pages is not None:
            self.total_pages = total_pages

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


        :return: The commits of this CommitsListResponse.  # noqa: E501
        :rtype: list[Commit]
        """
        return self._commits

    @commits.setter
    def commits(self, commits):
        """Sets the commits of this CommitsListResponse.


        :param commits: The commits of this CommitsListResponse.  # noqa: E501
        :type: list[Commit]
        """

        self._commits = commits

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


        :return: The author of this CommitsListResponse.  # noqa: E501
        :rtype: str
        """
        return self._author

    @author.setter
    def author(self, author):
        """Sets the author of this CommitsListResponse.


        :param author: The author of this CommitsListResponse.  # noqa: E501
        :type: str
        """

        self._author = author

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


        :return: The next_page of this CommitsListResponse.  # noqa: E501
        :rtype: int
        """
        return self._next_page

    @next_page.setter
    def next_page(self, next_page):
        """Sets the next_page of this CommitsListResponse.


        :param next_page: The next_page of this CommitsListResponse.  # noqa: E501
        :type: int
        """

        self._next_page = next_page

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


        :return: The next_page_url of this CommitsListResponse.  # noqa: E501
        :rtype: str
        """
        return self._next_page_url

    @next_page_url.setter
    def next_page_url(self, next_page_url):
        """Sets the next_page_url of this CommitsListResponse.


        :param next_page_url: The next_page_url of this CommitsListResponse.  # noqa: E501
        :type: str
        """

        self._next_page_url = next_page_url

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


        :return: The page of this CommitsListResponse.  # noqa: E501
        :rtype: int
        """
        return self._page

    @page.setter
    def page(self, page):
        """Sets the page of this CommitsListResponse.


        :param page: The page of this CommitsListResponse.  # noqa: E501
        :type: int
        """

        self._page = page

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


        :return: The prev_page of this CommitsListResponse.  # noqa: E501
        :rtype: int
        """
        return self._prev_page

    @prev_page.setter
    def prev_page(self, prev_page):
        """Sets the prev_page of this CommitsListResponse.


        :param prev_page: The prev_page of this CommitsListResponse.  # noqa: E501
        :type: int
        """

        self._prev_page = prev_page

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


        :return: The prev_page_url of this CommitsListResponse.  # noqa: E501
        :rtype: str
        """
        return self._prev_page_url

    @prev_page_url.setter
    def prev_page_url(self, prev_page_url):
        """Sets the prev_page_url of this CommitsListResponse.


        :param prev_page_url: The prev_page_url of this CommitsListResponse.  # noqa: E501
        :type: str
        """

        self._prev_page_url = prev_page_url

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


        :return: The branch of this CommitsListResponse.  # noqa: E501
        :rtype: str
        """
        return self._branch

    @branch.setter
    def branch(self, branch):
        """Sets the branch of this CommitsListResponse.


        :param branch: The branch of this CommitsListResponse.  # noqa: E501
        :type: str
        """

        self._branch = branch

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


        :return: The project of this CommitsListResponse.  # noqa: E501
        :rtype: ProjectSummary
        """
        return self._project

    @project.setter
    def project(self, project):
        """Sets the project of this CommitsListResponse.


        :param project: The project of this CommitsListResponse.  # noqa: E501
        :type: ProjectSummary
        """

        self._project = project

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


        :return: The status of this CommitsListResponse.  # noqa: E501
        :rtype: str
        """
        return self._status

    @status.setter
    def status(self, status):
        """Sets the status of this CommitsListResponse.


        :param status: The status of this CommitsListResponse.  # noqa: E501
        :type: str
        """

        self._status = status

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


        :return: The total of this CommitsListResponse.  # noqa: E501
        :rtype: int
        """
        return self._total

    @total.setter
    def total(self, total):
        """Sets the total of this CommitsListResponse.


        :param total: The total of this CommitsListResponse.  # noqa: E501
        :type: int
        """

        self._total = total

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


        :return: The total_pages of this CommitsListResponse.  # noqa: E501
        :rtype: int
        """
        return self._total_pages

    @total_pages.setter
    def total_pages(self, total_pages):
        """Sets the total_pages of this CommitsListResponse.


        :param total_pages: The total_pages of this CommitsListResponse.  # noqa: E501
        :type: int
        """

        self._total_pages = total_pages

    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(CommitsListResponse, 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, CommitsListResponse):
            return False

        return self.__dict__ == other.__dict__

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