"""
    Swaggy Jenkins

    Jenkins API clients generated from Swagger / Open API specification  # noqa: E501

    The version of the OpenAPI document: 1.5.1-pre.0
    Contact: blah@cliffano.com
    Generated by: https://openapi-generator.tech
"""

import re  # noqa: F401
import sys  # noqa: F401
import typing  # noqa: F401
import functools  # noqa: F401

from frozendict import frozendict  # noqa: F401

import decimal  # noqa: F401
from datetime import date, datetime  # noqa: F401
from frozendict import frozendict  # noqa: F401

from openapi_client.schemas import (  # noqa: F401
    AnyTypeSchema,
    ComposedSchema,
    DictSchema,
    ListSchema,
    StrSchema,
    IntSchema,
    Int32Schema,
    Int64Schema,
    Float32Schema,
    Float64Schema,
    NumberSchema,
    UUIDSchema,
    DateSchema,
    DateTimeSchema,
    DecimalSchema,
    BoolSchema,
    BinarySchema,
    NoneSchema,
    none_type,
    Configuration,
    Unset,
    unset,
    ComposedBase,
    ListBase,
    DictBase,
    NoneBase,
    StrBase,
    IntBase,
    Int32Base,
    Int64Base,
    Float32Base,
    Float64Base,
    NumberBase,
    UUIDBase,
    DateBase,
    DateTimeBase,
    BoolBase,
    BinaryBase,
    Schema,
    _SchemaValidator,
    _SchemaTypeChecker,
    _SchemaEnumMaker
)


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

    Do not edit the class manually.
    """
    _class = StrSchema

    @classmethod
    @property
    def _links(cls) -> typing.Type['GithubRepositorylinks']:
        return GithubRepositorylinks
    defaultBranch = StrSchema
    description = StrSchema
    name = StrSchema

    @classmethod
    @property
    def permissions(cls) -> typing.Type['GithubRepositorypermissions']:
        return GithubRepositorypermissions
    private = BoolSchema
    fullName = StrSchema


    def __new__(
        cls,
        *args: typing.Union[dict, frozendict, ],
        _class: typing.Union[_class, Unset] = unset,
        _links: typing.Union['GithubRepositorylinks', Unset] = unset,
        defaultBranch: typing.Union[defaultBranch, Unset] = unset,
        description: typing.Union[description, Unset] = unset,
        name: typing.Union[name, Unset] = unset,
        permissions: typing.Union['GithubRepositorypermissions', Unset] = unset,
        private: typing.Union[private, Unset] = unset,
        fullName: typing.Union[fullName, Unset] = unset,
        _configuration: typing.Optional[Configuration] = None,
        **kwargs: typing.Type[Schema],
    ) -> 'GithubRepository':
        return super().__new__(
            cls,
            *args,
            _class=_class,
            _links=_links,
            defaultBranch=defaultBranch,
            description=description,
            name=name,
            permissions=permissions,
            private=private,
            fullName=fullName,
            _configuration=_configuration,
            **kwargs,
        )

from openapi_client.model.github_repositorylinks import GithubRepositorylinks
from openapi_client.model.github_repositorypermissions import GithubRepositorypermissions
