"""Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT."""

from __future__ import annotations
from enum import Enum
from polar_sdk.types import BaseModel
from typing import Optional
from typing_extensions import NotRequired, TypedDict


class BenefitGrantGitHubRepositoryPropertiesPermission(str, Enum):
    PULL = "pull"
    TRIAGE = "triage"
    PUSH = "push"
    MAINTAIN = "maintain"
    ADMIN = "admin"


class BenefitGrantGitHubRepositoryPropertiesTypedDict(TypedDict):
    account_id: NotRequired[str]
    repository_owner: NotRequired[str]
    repository_name: NotRequired[str]
    permission: NotRequired[BenefitGrantGitHubRepositoryPropertiesPermission]


class BenefitGrantGitHubRepositoryProperties(BaseModel):
    account_id: Optional[str] = None

    repository_owner: Optional[str] = None

    repository_name: Optional[str] = None

    permission: Optional[BenefitGrantGitHubRepositoryPropertiesPermission] = None
