# autogenerated module
from typing import ClassVar

from ..core import resource as res
from ..models import policy_v1beta1 as m_policy_v1beta1


class PodDisruptionBudgetStatus(res.NamespacedSubResource, m_policy_v1beta1.PodDisruptionBudget):
    """* **Extends**: ``models.policy_v1beta1.PodDisruptionBudget``
       * **Type**: Namespaced Resource
       * **Accepted client methods**: `get`, `patch`, `replace`
    """
    _api_info = res.ApiInfo(
        resource=res.ResourceDef('policy', 'v1beta1', 'PodDisruptionBudget'),
        parent=res.ResourceDef('policy', 'v1beta1', 'PodDisruptionBudget'),
        plural='poddisruptionbudgets',
        verbs=['get', 'patch', 'put'],
        action='status',
    )


class PodDisruptionBudget(res.NamespacedResourceG, m_policy_v1beta1.PodDisruptionBudget):
    """* **Extends**: ``models.policy_v1beta1.PodDisruptionBudget``
       * **Type**: Namespaced Resource
       * **Accepted client methods**: `delete`, `deletecollection`, `get`, `list` all, `watch` all, `list`, `patch`, `create`, `replace`, `watch`

       **Subresources**:

       * **Status**: ``PodDisruptionBudgetStatus``
    """
    _api_info = res.ApiInfo(
        resource=res.ResourceDef('policy', 'v1beta1', 'PodDisruptionBudget'),
        plural='poddisruptionbudgets',
        verbs=['delete', 'deletecollection', 'get', 'global_list', 'global_watch', 'list', 'patch', 'post', 'put', 'watch'],
    )

    Status: ClassVar = PodDisruptionBudgetStatus


class PodSecurityPolicy(res.GlobalResource, m_policy_v1beta1.PodSecurityPolicy):
    """* **Extends**: ``models.policy_v1beta1.PodSecurityPolicy``
       * **Type**: Global Resource
       * **Accepted client methods**: `delete`, `deletecollection`, `get`, `list`, `patch`, `create`, `replace`, `watch`
    """
    _api_info = res.ApiInfo(
        resource=res.ResourceDef('policy', 'v1beta1', 'PodSecurityPolicy'),
        plural='podsecuritypolicies',
        verbs=['delete', 'deletecollection', 'get', 'list', 'patch', 'post', 'put', 'watch'],
    )

