# autogenerated module
from typing import ClassVar

from ..core import resource as res
from ..models import rbac_v1beta1 as m_rbac_v1beta1


class ClusterRoleBinding(res.GlobalResource, m_rbac_v1beta1.ClusterRoleBinding):
    """* **Extends**: ``models.rbac_v1beta1.ClusterRoleBinding``
       * **Type**: Global Resource
       * **Accepted client methods**: `delete`, `deletecollection`, `get`, `list`, `patch`, `create`, `replace`, `watch`
    """
    _api_info = res.ApiInfo(
        resource=res.ResourceDef('rbac.authorization.k8s.io', 'v1beta1', 'ClusterRoleBinding'),
        plural='clusterrolebindings',
        verbs=['delete', 'deletecollection', 'get', 'list', 'patch', 'post', 'put', 'watch'],
    )


class ClusterRole(res.GlobalResource, m_rbac_v1beta1.ClusterRole):
    """* **Extends**: ``models.rbac_v1beta1.ClusterRole``
       * **Type**: Global Resource
       * **Accepted client methods**: `delete`, `deletecollection`, `get`, `list`, `patch`, `create`, `replace`, `watch`
    """
    _api_info = res.ApiInfo(
        resource=res.ResourceDef('rbac.authorization.k8s.io', 'v1beta1', 'ClusterRole'),
        plural='clusterroles',
        verbs=['delete', 'deletecollection', 'get', 'list', 'patch', 'post', 'put', 'watch'],
    )


class RoleBinding(res.NamespacedResourceG, m_rbac_v1beta1.RoleBinding):
    """* **Extends**: ``models.rbac_v1beta1.RoleBinding``
       * **Type**: Namespaced Resource
       * **Accepted client methods**: `delete`, `deletecollection`, `get`, `list` all, `watch` all, `list`, `patch`, `create`, `replace`, `watch`
    """
    _api_info = res.ApiInfo(
        resource=res.ResourceDef('rbac.authorization.k8s.io', 'v1beta1', 'RoleBinding'),
        plural='rolebindings',
        verbs=['delete', 'deletecollection', 'get', 'global_list', 'global_watch', 'list', 'patch', 'post', 'put', 'watch'],
    )


class Role(res.NamespacedResourceG, m_rbac_v1beta1.Role):
    """* **Extends**: ``models.rbac_v1beta1.Role``
       * **Type**: Namespaced Resource
       * **Accepted client methods**: `delete`, `deletecollection`, `get`, `list` all, `watch` all, `list`, `patch`, `create`, `replace`, `watch`
    """
    _api_info = res.ApiInfo(
        resource=res.ResourceDef('rbac.authorization.k8s.io', 'v1beta1', 'Role'),
        plural='roles',
        verbs=['delete', 'deletecollection', 'get', 'global_list', 'global_watch', 'list', 'patch', 'post', 'put', 'watch'],
    )

