# generated by https://github.com/puzl-cloud/kubesdk
#   filename:  apis__authorization.k8s.io_openapi.json

from __future__ import annotations

from dataclasses import dataclass
from datetime import datetime, timezone
from typing import ClassVar, List, Set

from kube_models.const import *
from kube_models.loader import *
from kube_models.loader import Loadable
from kube_models.resource import *


@dataclass(slots=True, kw_only=True, frozen=True)
class GroupVersionForDiscovery(Loadable):
    groupVersion: str
    version: str


@dataclass(slots=True, kw_only=True, frozen=True)
class ServerAddressByClientCIDR(Loadable):
    clientCIDR: str
    serverAddress: str


@dataclass(slots=True, kw_only=True, frozen=True)
class APIGroup(Loadable):
    name: str
    versions: List[GroupVersionForDiscovery]
    apiVersion: str = 'v1'
    kind: str = 'APIGroup'
    preferredVersion: GroupVersionForDiscovery | None = None
    serverAddressByClientCIDRs: List[ServerAddressByClientCIDR] | None = None
