# autogenerated module
from typing import ClassVar

from ..core import resource as res
from ..models import flowcontrol_v1beta2 as m_flowcontrol_v1beta2


class FlowSchemaStatus(res.GlobalSubResource, m_flowcontrol_v1beta2.FlowSchema):
    """* **Extends**: ``models.flowcontrol_v1beta2.FlowSchema``
       * **Type**: Global Resource
       * **Accepted client methods**: `get`, `patch`, `replace`
    """
    _api_info = res.ApiInfo(
        resource=res.ResourceDef('flowcontrol.apiserver.k8s.io', 'v1beta2', 'FlowSchema'),
        parent=res.ResourceDef('flowcontrol.apiserver.k8s.io', 'v1beta2', 'FlowSchema'),
        plural='flowschemas',
        verbs=['get', 'patch', 'put'],
        action='status',
    )


class FlowSchema(res.GlobalResource, m_flowcontrol_v1beta2.FlowSchema):
    """* **Extends**: ``models.flowcontrol_v1beta2.FlowSchema``
       * **Type**: Global Resource
       * **Accepted client methods**: `delete`, `deletecollection`, `get`, `list`, `patch`, `create`, `replace`, `watch`

       **Subresources**:

       * **Status**: ``FlowSchemaStatus``
    """
    _api_info = res.ApiInfo(
        resource=res.ResourceDef('flowcontrol.apiserver.k8s.io', 'v1beta2', 'FlowSchema'),
        plural='flowschemas',
        verbs=['delete', 'deletecollection', 'get', 'list', 'patch', 'post', 'put', 'watch'],
    )

    Status: ClassVar = FlowSchemaStatus


class PriorityLevelConfigurationStatus(res.GlobalSubResource, m_flowcontrol_v1beta2.PriorityLevelConfiguration):
    """* **Extends**: ``models.flowcontrol_v1beta2.PriorityLevelConfiguration``
       * **Type**: Global Resource
       * **Accepted client methods**: `get`, `patch`, `replace`
    """
    _api_info = res.ApiInfo(
        resource=res.ResourceDef('flowcontrol.apiserver.k8s.io', 'v1beta2', 'PriorityLevelConfiguration'),
        parent=res.ResourceDef('flowcontrol.apiserver.k8s.io', 'v1beta2', 'PriorityLevelConfiguration'),
        plural='prioritylevelconfigurations',
        verbs=['get', 'patch', 'put'],
        action='status',
    )


class PriorityLevelConfiguration(res.GlobalResource, m_flowcontrol_v1beta2.PriorityLevelConfiguration):
    """* **Extends**: ``models.flowcontrol_v1beta2.PriorityLevelConfiguration``
       * **Type**: Global Resource
       * **Accepted client methods**: `delete`, `deletecollection`, `get`, `list`, `patch`, `create`, `replace`, `watch`

       **Subresources**:

       * **Status**: ``PriorityLevelConfigurationStatus``
    """
    _api_info = res.ApiInfo(
        resource=res.ResourceDef('flowcontrol.apiserver.k8s.io', 'v1beta2', 'PriorityLevelConfiguration'),
        plural='prioritylevelconfigurations',
        verbs=['delete', 'deletecollection', 'get', 'list', 'patch', 'post', 'put', 'watch'],
    )

    Status: ClassVar = PriorityLevelConfigurationStatus

