"""
Class object for AIOGitHubAPIReposFork
Documentation: https://docs.github.com/en/rest/reference/repos#list-forks

Generated by generate/generate.py - 2020-08-02 10:38:59.444717
"""

from ..base import AIOGitHubAPIBase


class Owner(AIOGitHubAPIBase):
    @property
    def login(self):
        return self.attributes.get("login", "")

    @property
    def id(self):
        return self.attributes.get("id", None)

    @property
    def node_id(self):
        return self.attributes.get("node_id", "")

    @property
    def avatar_url(self):
        return self.attributes.get("avatar_url", "")

    @property
    def gravatar_id(self):
        return self.attributes.get("gravatar_id", "")

    @property
    def url(self):
        return self.attributes.get("url", "")

    @property
    def html_url(self):
        return self.attributes.get("html_url", "")

    @property
    def followers_url(self):
        return self.attributes.get("followers_url", "")

    @property
    def following_url(self):
        return self.attributes.get("following_url", "")

    @property
    def gists_url(self):
        return self.attributes.get("gists_url", "")

    @property
    def starred_url(self):
        return self.attributes.get("starred_url", "")

    @property
    def subscriptions_url(self):
        return self.attributes.get("subscriptions_url", "")

    @property
    def organizations_url(self):
        return self.attributes.get("organizations_url", "")

    @property
    def repos_url(self):
        return self.attributes.get("repos_url", "")

    @property
    def events_url(self):
        return self.attributes.get("events_url", "")

    @property
    def received_events_url(self):
        return self.attributes.get("received_events_url", "")

    @property
    def type(self):
        return self.attributes.get("type", "")

    @property
    def site_admin(self):
        return self.attributes.get("site_admin", False)


class Permissions(AIOGitHubAPIBase):
    @property
    def admin(self):
        return self.attributes.get("admin", False)

    @property
    def push(self):
        return self.attributes.get("push", False)

    @property
    def pull(self):
        return self.attributes.get("pull", True)


class License(AIOGitHubAPIBase):
    @property
    def key(self):
        return self.attributes.get("key", "")

    @property
    def name(self):
        return self.attributes.get("name", "")

    @property
    def spdx_id(self):
        return self.attributes.get("spdx_id", "")

    @property
    def url(self):
        return self.attributes.get("url", "")

    @property
    def node_id(self):
        return self.attributes.get("node_id", "")


class AIOGitHubAPIReposFork(AIOGitHubAPIBase):
    @property
    def id(self):
        return self.attributes.get("id", None)

    @property
    def node_id(self):
        return self.attributes.get("node_id", "")

    @property
    def name(self):
        return self.attributes.get("name", "")

    @property
    def full_name(self):
        return self.attributes.get("full_name", "")

    @property
    def owner(self):
        return Owner(self.attributes.get("owner", {}))

    @property
    def private(self):
        return self.attributes.get("private", False)

    @property
    def html_url(self):
        return self.attributes.get("html_url", "")

    @property
    def description(self):
        return self.attributes.get("description", "")

    @property
    def fork(self):
        return self.attributes.get("fork", True)

    @property
    def url(self):
        return self.attributes.get("url", "")

    @property
    def archive_url(self):
        return self.attributes.get("archive_url", "")

    @property
    def assignees_url(self):
        return self.attributes.get("assignees_url", "")

    @property
    def blobs_url(self):
        return self.attributes.get("blobs_url", "")

    @property
    def branches_url(self):
        return self.attributes.get("branches_url", "")

    @property
    def collaborators_url(self):
        return self.attributes.get("collaborators_url", "")

    @property
    def comments_url(self):
        return self.attributes.get("comments_url", "")

    @property
    def commits_url(self):
        return self.attributes.get("commits_url", "")

    @property
    def compare_url(self):
        return self.attributes.get("compare_url", "")

    @property
    def contents_url(self):
        return self.attributes.get("contents_url", "")

    @property
    def contributors_url(self):
        return self.attributes.get("contributors_url", "")

    @property
    def deployments_url(self):
        return self.attributes.get("deployments_url", "")

    @property
    def downloads_url(self):
        return self.attributes.get("downloads_url", "")

    @property
    def events_url(self):
        return self.attributes.get("events_url", "")

    @property
    def forks_url(self):
        return self.attributes.get("forks_url", "")

    @property
    def git_commits_url(self):
        return self.attributes.get("git_commits_url", "")

    @property
    def git_refs_url(self):
        return self.attributes.get("git_refs_url", "")

    @property
    def git_tags_url(self):
        return self.attributes.get("git_tags_url", "")

    @property
    def git_url(self):
        return self.attributes.get("git_url", "")

    @property
    def issue_comment_url(self):
        return self.attributes.get("issue_comment_url", "")

    @property
    def issue_events_url(self):
        return self.attributes.get("issue_events_url", "")

    @property
    def issues_url(self):
        return self.attributes.get("issues_url", "")

    @property
    def keys_url(self):
        return self.attributes.get("keys_url", "")

    @property
    def labels_url(self):
        return self.attributes.get("labels_url", "")

    @property
    def languages_url(self):
        return self.attributes.get("languages_url", "")

    @property
    def merges_url(self):
        return self.attributes.get("merges_url", "")

    @property
    def milestones_url(self):
        return self.attributes.get("milestones_url", "")

    @property
    def notifications_url(self):
        return self.attributes.get("notifications_url", "")

    @property
    def pulls_url(self):
        return self.attributes.get("pulls_url", "")

    @property
    def releases_url(self):
        return self.attributes.get("releases_url", "")

    @property
    def ssh_url(self):
        return self.attributes.get("ssh_url", "")

    @property
    def stargazers_url(self):
        return self.attributes.get("stargazers_url", "")

    @property
    def statuses_url(self):
        return self.attributes.get("statuses_url", "")

    @property
    def subscribers_url(self):
        return self.attributes.get("subscribers_url", "")

    @property
    def subscription_url(self):
        return self.attributes.get("subscription_url", "")

    @property
    def tags_url(self):
        return self.attributes.get("tags_url", "")

    @property
    def teams_url(self):
        return self.attributes.get("teams_url", "")

    @property
    def trees_url(self):
        return self.attributes.get("trees_url", "")

    @property
    def clone_url(self):
        return self.attributes.get("clone_url", "")

    @property
    def mirror_url(self):
        return self.attributes.get("mirror_url", "")

    @property
    def hooks_url(self):
        return self.attributes.get("hooks_url", "")

    @property
    def svn_url(self):
        return self.attributes.get("svn_url", "")

    @property
    def homepage(self):
        return self.attributes.get("homepage", "")

    @property
    def language(self):
        return self.attributes.get("language", None)

    @property
    def forks_count(self):
        return self.attributes.get("forks_count", None)

    @property
    def stargazers_count(self):
        return self.attributes.get("stargazers_count", None)

    @property
    def watchers_count(self):
        return self.attributes.get("watchers_count", None)

    @property
    def size(self):
        return self.attributes.get("size", None)

    @property
    def default_branch(self):
        return self.attributes.get("default_branch", "")

    @property
    def open_issues_count(self):
        return self.attributes.get("open_issues_count", None)

    @property
    def is_template(self):
        return self.attributes.get("is_template", True)

    @property
    def topics(self):
        return self.attributes.get("topics", [])

    @property
    def has_issues(self):
        return self.attributes.get("has_issues", True)

    @property
    def has_projects(self):
        return self.attributes.get("has_projects", True)

    @property
    def has_wiki(self):
        return self.attributes.get("has_wiki", True)

    @property
    def has_pages(self):
        return self.attributes.get("has_pages", False)

    @property
    def has_downloads(self):
        return self.attributes.get("has_downloads", True)

    @property
    def archived(self):
        return self.attributes.get("archived", False)

    @property
    def disabled(self):
        return self.attributes.get("disabled", False)

    @property
    def visibility(self):
        return self.attributes.get("visibility", "")

    @property
    def pushed_at(self):
        return self.attributes.get("pushed_at", "")

    @property
    def created_at(self):
        return self.attributes.get("created_at", "")

    @property
    def updated_at(self):
        return self.attributes.get("updated_at", "")

    @property
    def permissions(self):
        return Permissions(self.attributes.get("permissions", {}))

    @property
    def template_repository(self):
        return self.attributes.get("template_repository", None)

    @property
    def temp_clone_token(self):
        return self.attributes.get("temp_clone_token", "")

    @property
    def delete_branch_on_merge(self):
        return self.attributes.get("delete_branch_on_merge", True)

    @property
    def subscribers_count(self):
        return self.attributes.get("subscribers_count", None)

    @property
    def network_count(self):
        return self.attributes.get("network_count", None)

    @property
    def license(self):
        return License(self.attributes.get("license", {}))
