"""
@generated by mypy-protobuf.  Do not edit manually!
isort:skip_file
"""
import builtins
import collections.abc
import google.protobuf.descriptor
import google.protobuf.internal.containers
import google.protobuf.internal.enum_type_wrapper
import google.protobuf.message
import google.protobuf.timestamp_pb2
import prodvana.proto.prodvana.environment.clusters_pb2
import sys
import typing

if sys.version_info >= (3, 10):
    import typing as typing_extensions
else:
    import typing_extensions

DESCRIPTOR: google.protobuf.descriptor.FileDescriptor

class _InformerAction:
    ValueType = typing.NewType("ValueType", builtins.int)
    V: typing_extensions.TypeAlias = ValueType

class _InformerActionEnumTypeWrapper(google.protobuf.internal.enum_type_wrapper._EnumTypeWrapper[_InformerAction.ValueType], builtins.type):  # noqa: F821
    DESCRIPTOR: google.protobuf.descriptor.EnumDescriptor
    ADD: _InformerAction.ValueType  # 0
    UPDATE: _InformerAction.ValueType  # 1
    DELETE: _InformerAction.ValueType  # 2

class InformerAction(_InformerAction, metaclass=_InformerActionEnumTypeWrapper): ...

ADD: InformerAction.ValueType  # 0
UPDATE: InformerAction.ValueType  # 1
DELETE: InformerAction.ValueType  # 2
global___InformerAction = InformerAction

class HeartbeatReq(google.protobuf.message.Message):
    DESCRIPTOR: google.protobuf.descriptor.Descriptor

    CLUSTER_ID_FIELD_NUMBER: builtins.int
    cluster_id: builtins.str
    """TODO(naphat) there needs to be some auth/id for agent"""
    def __init__(
        self,
        *,
        cluster_id: builtins.str = ...,
    ) -> None: ...
    def ClearField(self, field_name: typing_extensions.Literal["cluster_id", b"cluster_id"]) -> None: ...

global___HeartbeatReq = HeartbeatReq

class HeartbeatResp(google.protobuf.message.Message):
    DESCRIPTOR: google.protobuf.descriptor.Descriptor

    def __init__(
        self,
    ) -> None: ...

global___HeartbeatResp = HeartbeatResp

class RecordNewUnknownPushReq(google.protobuf.message.Message):
    DESCRIPTOR: google.protobuf.descriptor.Descriptor

    RELEASE_CHANNEL_ID_FIELD_NUMBER: builtins.int
    SERVICE_ID_FIELD_NUMBER: builtins.int
    CLUSTER_ID_FIELD_NUMBER: builtins.int
    CREATION_TIMESTAMP_FIELD_NUMBER: builtins.int
    release_channel_id: builtins.str
    service_id: builtins.str
    cluster_id: builtins.str
    @property
    def creation_timestamp(self) -> google.protobuf.timestamp_pb2.Timestamp: ...
    def __init__(
        self,
        *,
        release_channel_id: builtins.str = ...,
        service_id: builtins.str = ...,
        cluster_id: builtins.str = ...,
        creation_timestamp: google.protobuf.timestamp_pb2.Timestamp | None = ...,
    ) -> None: ...
    def HasField(self, field_name: typing_extensions.Literal["creation_timestamp", b"creation_timestamp"]) -> builtins.bool: ...
    def ClearField(self, field_name: typing_extensions.Literal["cluster_id", b"cluster_id", "creation_timestamp", b"creation_timestamp", "release_channel_id", b"release_channel_id", "service_id", b"service_id"]) -> None: ...

global___RecordNewUnknownPushReq = RecordNewUnknownPushReq

class RecordNewUnknownPushResp(google.protobuf.message.Message):
    DESCRIPTOR: google.protobuf.descriptor.Descriptor

    def __init__(
        self,
    ) -> None: ...

global___RecordNewUnknownPushResp = RecordNewUnknownPushResp

class RecordPushStartReq(google.protobuf.message.Message):
    DESCRIPTOR: google.protobuf.descriptor.Descriptor

    RELEASE_CHANNEL_ID_FIELD_NUMBER: builtins.int
    SERVICE_ID_FIELD_NUMBER: builtins.int
    CREATION_TIMESTAMP_FIELD_NUMBER: builtins.int
    CLUSTER_ID_FIELD_NUMBER: builtins.int
    START_TIMESTAMP_FIELD_NUMBER: builtins.int
    release_channel_id: builtins.str
    service_id: builtins.str
    @property
    def creation_timestamp(self) -> google.protobuf.timestamp_pb2.Timestamp: ...
    cluster_id: builtins.str
    @property
    def start_timestamp(self) -> google.protobuf.timestamp_pb2.Timestamp: ...
    def __init__(
        self,
        *,
        release_channel_id: builtins.str = ...,
        service_id: builtins.str = ...,
        creation_timestamp: google.protobuf.timestamp_pb2.Timestamp | None = ...,
        cluster_id: builtins.str = ...,
        start_timestamp: google.protobuf.timestamp_pb2.Timestamp | None = ...,
    ) -> None: ...
    def HasField(self, field_name: typing_extensions.Literal["creation_timestamp", b"creation_timestamp", "start_timestamp", b"start_timestamp"]) -> builtins.bool: ...
    def ClearField(self, field_name: typing_extensions.Literal["cluster_id", b"cluster_id", "creation_timestamp", b"creation_timestamp", "release_channel_id", b"release_channel_id", "service_id", b"service_id", "start_timestamp", b"start_timestamp"]) -> None: ...

global___RecordPushStartReq = RecordPushStartReq

class RecordPushStartResp(google.protobuf.message.Message):
    DESCRIPTOR: google.protobuf.descriptor.Descriptor

    def __init__(
        self,
    ) -> None: ...

global___RecordPushStartResp = RecordPushStartResp

class RecordPushOngoingReq(google.protobuf.message.Message):
    DESCRIPTOR: google.protobuf.descriptor.Descriptor

    RELEASE_CHANNEL_ID_FIELD_NUMBER: builtins.int
    SERVICE_ID_FIELD_NUMBER: builtins.int
    CREATION_TIMESTAMP_FIELD_NUMBER: builtins.int
    CLUSTER_ID_FIELD_NUMBER: builtins.int
    release_channel_id: builtins.str
    service_id: builtins.str
    @property
    def creation_timestamp(self) -> google.protobuf.timestamp_pb2.Timestamp: ...
    cluster_id: builtins.str
    def __init__(
        self,
        *,
        release_channel_id: builtins.str = ...,
        service_id: builtins.str = ...,
        creation_timestamp: google.protobuf.timestamp_pb2.Timestamp | None = ...,
        cluster_id: builtins.str = ...,
    ) -> None: ...
    def HasField(self, field_name: typing_extensions.Literal["creation_timestamp", b"creation_timestamp"]) -> builtins.bool: ...
    def ClearField(self, field_name: typing_extensions.Literal["cluster_id", b"cluster_id", "creation_timestamp", b"creation_timestamp", "release_channel_id", b"release_channel_id", "service_id", b"service_id"]) -> None: ...

global___RecordPushOngoingReq = RecordPushOngoingReq

class RecordPushOngoingResp(google.protobuf.message.Message):
    DESCRIPTOR: google.protobuf.descriptor.Descriptor

    def __init__(
        self,
    ) -> None: ...

global___RecordPushOngoingResp = RecordPushOngoingResp

class RecordPushCompleteReq(google.protobuf.message.Message):
    DESCRIPTOR: google.protobuf.descriptor.Descriptor

    class _Type:
        ValueType = typing.NewType("ValueType", builtins.int)
        V: typing_extensions.TypeAlias = ValueType

    class _TypeEnumTypeWrapper(google.protobuf.internal.enum_type_wrapper._EnumTypeWrapper[RecordPushCompleteReq._Type.ValueType], builtins.type):  # noqa: F821
        DESCRIPTOR: google.protobuf.descriptor.EnumDescriptor
        UNKNOWN: RecordPushCompleteReq._Type.ValueType  # 0
        SUCCEEDED: RecordPushCompleteReq._Type.ValueType  # 1
        ROLLED_BACK: RecordPushCompleteReq._Type.ValueType  # 2

    class Type(_Type, metaclass=_TypeEnumTypeWrapper): ...
    UNKNOWN: RecordPushCompleteReq.Type.ValueType  # 0
    SUCCEEDED: RecordPushCompleteReq.Type.ValueType  # 1
    ROLLED_BACK: RecordPushCompleteReq.Type.ValueType  # 2

    RELEASE_CHANNEL_ID_FIELD_NUMBER: builtins.int
    SERVICE_ID_FIELD_NUMBER: builtins.int
    CREATION_TIMESTAMP_FIELD_NUMBER: builtins.int
    CLUSTER_ID_FIELD_NUMBER: builtins.int
    TYPE_FIELD_NUMBER: builtins.int
    release_channel_id: builtins.str
    service_id: builtins.str
    @property
    def creation_timestamp(self) -> google.protobuf.timestamp_pb2.Timestamp: ...
    cluster_id: builtins.str
    type: global___RecordPushCompleteReq.Type.ValueType
    def __init__(
        self,
        *,
        release_channel_id: builtins.str = ...,
        service_id: builtins.str = ...,
        creation_timestamp: google.protobuf.timestamp_pb2.Timestamp | None = ...,
        cluster_id: builtins.str = ...,
        type: global___RecordPushCompleteReq.Type.ValueType = ...,
    ) -> None: ...
    def HasField(self, field_name: typing_extensions.Literal["creation_timestamp", b"creation_timestamp"]) -> builtins.bool: ...
    def ClearField(self, field_name: typing_extensions.Literal["cluster_id", b"cluster_id", "creation_timestamp", b"creation_timestamp", "release_channel_id", b"release_channel_id", "service_id", b"service_id", "type", b"type"]) -> None: ...

global___RecordPushCompleteReq = RecordPushCompleteReq

class RecordPushCompleteResp(google.protobuf.message.Message):
    DESCRIPTOR: google.protobuf.descriptor.Descriptor

    def __init__(
        self,
    ) -> None: ...

global___RecordPushCompleteResp = RecordPushCompleteResp

class ConfirmPushApprovalReq(google.protobuf.message.Message):
    DESCRIPTOR: google.protobuf.descriptor.Descriptor

    RELEASE_CHANNEL_ID_FIELD_NUMBER: builtins.int
    SERVICE_ID_FIELD_NUMBER: builtins.int
    CREATION_TIMESTAMP_FIELD_NUMBER: builtins.int
    CLUSTER_ID_FIELD_NUMBER: builtins.int
    release_channel_id: builtins.str
    service_id: builtins.str
    @property
    def creation_timestamp(self) -> google.protobuf.timestamp_pb2.Timestamp: ...
    cluster_id: builtins.str
    def __init__(
        self,
        *,
        release_channel_id: builtins.str = ...,
        service_id: builtins.str = ...,
        creation_timestamp: google.protobuf.timestamp_pb2.Timestamp | None = ...,
        cluster_id: builtins.str = ...,
    ) -> None: ...
    def HasField(self, field_name: typing_extensions.Literal["creation_timestamp", b"creation_timestamp"]) -> builtins.bool: ...
    def ClearField(self, field_name: typing_extensions.Literal["cluster_id", b"cluster_id", "creation_timestamp", b"creation_timestamp", "release_channel_id", b"release_channel_id", "service_id", b"service_id"]) -> None: ...

global___ConfirmPushApprovalReq = ConfirmPushApprovalReq

class ConfirmPushApprovalResp(google.protobuf.message.Message):
    DESCRIPTOR: google.protobuf.descriptor.Descriptor

    APPROVED_FIELD_NUMBER: builtins.int
    approved: builtins.bool
    def __init__(
        self,
        *,
        approved: builtins.bool = ...,
    ) -> None: ...
    def ClearField(self, field_name: typing_extensions.Literal["approved", b"approved"]) -> None: ...

global___ConfirmPushApprovalResp = ConfirmPushApprovalResp

class RecordPodReq(google.protobuf.message.Message):
    DESCRIPTOR: google.protobuf.descriptor.Descriptor

    POD_FIELD_NUMBER: builtins.int
    ACTION_FIELD_NUMBER: builtins.int
    RUNTIME_ID_FIELD_NUMBER: builtins.int
    pod: builtins.bytes
    action: global___InformerAction.ValueType
    runtime_id: builtins.str
    def __init__(
        self,
        *,
        pod: builtins.bytes = ...,
        action: global___InformerAction.ValueType = ...,
        runtime_id: builtins.str = ...,
    ) -> None: ...
    def ClearField(self, field_name: typing_extensions.Literal["action", b"action", "pod", b"pod", "runtime_id", b"runtime_id"]) -> None: ...

global___RecordPodReq = RecordPodReq

class RecordPodResp(google.protobuf.message.Message):
    DESCRIPTOR: google.protobuf.descriptor.Descriptor

    def __init__(
        self,
    ) -> None: ...

global___RecordPodResp = RecordPodResp

class RecordPodsReq(google.protobuf.message.Message):
    DESCRIPTOR: google.protobuf.descriptor.Descriptor

    PODS_FIELD_NUMBER: builtins.int
    RUNTIME_ID_FIELD_NUMBER: builtins.int
    @property
    def pods(self) -> google.protobuf.internal.containers.RepeatedScalarFieldContainer[builtins.bytes]: ...
    runtime_id: builtins.str
    """If we're running into perf/size limits with number of pods in a service, add "shard"/"count" fields
    to overwrite a determinstic slice of pods.
    """
    def __init__(
        self,
        *,
        pods: collections.abc.Iterable[builtins.bytes] | None = ...,
        runtime_id: builtins.str = ...,
    ) -> None: ...
    def ClearField(self, field_name: typing_extensions.Literal["pods", b"pods", "runtime_id", b"runtime_id"]) -> None: ...

global___RecordPodsReq = RecordPodsReq

class RecordPodsResp(google.protobuf.message.Message):
    DESCRIPTOR: google.protobuf.descriptor.Descriptor

    def __init__(
        self,
    ) -> None: ...

global___RecordPodsResp = RecordPodsResp

class RecordDeploymentReq(google.protobuf.message.Message):
    DESCRIPTOR: google.protobuf.descriptor.Descriptor

    DEPLOYMENT_FIELD_NUMBER: builtins.int
    ACTION_FIELD_NUMBER: builtins.int
    deployment: builtins.bytes
    action: global___InformerAction.ValueType
    def __init__(
        self,
        *,
        deployment: builtins.bytes = ...,
        action: global___InformerAction.ValueType = ...,
    ) -> None: ...
    def ClearField(self, field_name: typing_extensions.Literal["action", b"action", "deployment", b"deployment"]) -> None: ...

global___RecordDeploymentReq = RecordDeploymentReq

class RecordDeploymentResp(google.protobuf.message.Message):
    DESCRIPTOR: google.protobuf.descriptor.Descriptor

    PUSH_TIMESTAMP_FIELD_NUMBER: builtins.int
    @property
    def push_timestamp(self) -> google.protobuf.timestamp_pb2.Timestamp: ...
    def __init__(
        self,
        *,
        push_timestamp: google.protobuf.timestamp_pb2.Timestamp | None = ...,
    ) -> None: ...
    def HasField(self, field_name: typing_extensions.Literal["push_timestamp", b"push_timestamp"]) -> builtins.bool: ...
    def ClearField(self, field_name: typing_extensions.Literal["push_timestamp", b"push_timestamp"]) -> None: ...

global___RecordDeploymentResp = RecordDeploymentResp

class RecordRolloutReq(google.protobuf.message.Message):
    DESCRIPTOR: google.protobuf.descriptor.Descriptor

    ROLLOUT_FIELD_NUMBER: builtins.int
    ACTION_FIELD_NUMBER: builtins.int
    rollout: builtins.bytes
    action: global___InformerAction.ValueType
    def __init__(
        self,
        *,
        rollout: builtins.bytes = ...,
        action: global___InformerAction.ValueType = ...,
    ) -> None: ...
    def ClearField(self, field_name: typing_extensions.Literal["action", b"action", "rollout", b"rollout"]) -> None: ...

global___RecordRolloutReq = RecordRolloutReq

class RecordRolloutResp(google.protobuf.message.Message):
    DESCRIPTOR: google.protobuf.descriptor.Descriptor

    PUSH_TIMESTAMP_FIELD_NUMBER: builtins.int
    @property
    def push_timestamp(self) -> google.protobuf.timestamp_pb2.Timestamp: ...
    def __init__(
        self,
        *,
        push_timestamp: google.protobuf.timestamp_pb2.Timestamp | None = ...,
    ) -> None: ...
    def HasField(self, field_name: typing_extensions.Literal["push_timestamp", b"push_timestamp"]) -> builtins.bool: ...
    def ClearField(self, field_name: typing_extensions.Literal["push_timestamp", b"push_timestamp"]) -> None: ...

global___RecordRolloutResp = RecordRolloutResp

class ProxyAPIServerReq(google.protobuf.message.Message):
    DESCRIPTOR: google.protobuf.descriptor.Descriptor

    RUNTIME_ID_FIELD_NUMBER: builtins.int
    BLOB_FIELD_NUMBER: builtins.int
    CONN_ID_FIELD_NUMBER: builtins.int
    runtime_id: builtins.str
    """Header"""
    blob: builtins.bytes
    """Everything after header"""
    conn_id: builtins.str
    """Debugging/logging bits"""
    def __init__(
        self,
        *,
        runtime_id: builtins.str = ...,
        blob: builtins.bytes = ...,
        conn_id: builtins.str = ...,
    ) -> None: ...
    def HasField(self, field_name: typing_extensions.Literal["blob", b"blob", "msg", b"msg", "runtime_id", b"runtime_id"]) -> builtins.bool: ...
    def ClearField(self, field_name: typing_extensions.Literal["blob", b"blob", "conn_id", b"conn_id", "msg", b"msg", "runtime_id", b"runtime_id"]) -> None: ...
    def WhichOneof(self, oneof_group: typing_extensions.Literal["msg", b"msg"]) -> typing_extensions.Literal["runtime_id", "blob"] | None: ...

global___ProxyAPIServerReq = ProxyAPIServerReq

class ProxyAPIServerResp(google.protobuf.message.Message):
    DESCRIPTOR: google.protobuf.descriptor.Descriptor

    class _Type:
        ValueType = typing.NewType("ValueType", builtins.int)
        V: typing_extensions.TypeAlias = ValueType

    class _TypeEnumTypeWrapper(google.protobuf.internal.enum_type_wrapper._EnumTypeWrapper[ProxyAPIServerResp._Type.ValueType], builtins.type):  # noqa: F821
        DESCRIPTOR: google.protobuf.descriptor.EnumDescriptor
        UNKNOWN: ProxyAPIServerResp._Type.ValueType  # 0
        PROXY_APISERVER: ProxyAPIServerResp._Type.ValueType  # 1
        """More operations like docker registry interactions"""

    class Type(_Type, metaclass=_TypeEnumTypeWrapper): ...
    UNKNOWN: ProxyAPIServerResp.Type.ValueType  # 0
    PROXY_APISERVER: ProxyAPIServerResp.Type.ValueType  # 1
    """More operations like docker registry interactions"""

    TYPE_FIELD_NUMBER: builtins.int
    BLOB_FIELD_NUMBER: builtins.int
    type: global___ProxyAPIServerResp.Type.ValueType
    """Header"""
    blob: builtins.bytes
    def __init__(
        self,
        *,
        type: global___ProxyAPIServerResp.Type.ValueType = ...,
        blob: builtins.bytes = ...,
    ) -> None: ...
    def HasField(self, field_name: typing_extensions.Literal["blob", b"blob", "msg", b"msg", "type", b"type"]) -> builtins.bool: ...
    def ClearField(self, field_name: typing_extensions.Literal["blob", b"blob", "msg", b"msg", "type", b"type"]) -> None: ...
    def WhichOneof(self, oneof_group: typing_extensions.Literal["msg", b"msg"]) -> typing_extensions.Literal["type", "blob"] | None: ...

global___ProxyAPIServerResp = ProxyAPIServerResp

class DebugInfo(google.protobuf.message.Message):
    DESCRIPTOR: google.protobuf.descriptor.Descriptor

    ERROR_FIELD_NUMBER: builtins.int
    TCPTRACEROUTE_OUT_FIELD_NUMBER: builtins.int
    error: builtins.str
    """set only if there's any error running debug commands"""
    tcptraceroute_out: builtins.str
    def __init__(
        self,
        *,
        error: builtins.str = ...,
        tcptraceroute_out: builtins.str = ...,
    ) -> None: ...
    def ClearField(self, field_name: typing_extensions.Literal["error", b"error", "tcptraceroute_out", b"tcptraceroute_out"]) -> None: ...

global___DebugInfo = DebugInfo

class ReportDebugInfoReq(google.protobuf.message.Message):
    DESCRIPTOR: google.protobuf.descriptor.Descriptor

    RUNTIME_ID_FIELD_NUMBER: builtins.int
    INFO_FIELD_NUMBER: builtins.int
    runtime_id: builtins.str
    @property
    def info(self) -> global___DebugInfo: ...
    def __init__(
        self,
        *,
        runtime_id: builtins.str = ...,
        info: global___DebugInfo | None = ...,
    ) -> None: ...
    def HasField(self, field_name: typing_extensions.Literal["info", b"info"]) -> builtins.bool: ...
    def ClearField(self, field_name: typing_extensions.Literal["info", b"info", "runtime_id", b"runtime_id"]) -> None: ...

global___ReportDebugInfoReq = ReportDebugInfoReq

class ReportDebugInfoResp(google.protobuf.message.Message):
    DESCRIPTOR: google.protobuf.descriptor.Descriptor

    def __init__(
        self,
    ) -> None: ...

global___ReportDebugInfoResp = ReportDebugInfoResp

class ReportClusterMetadataReq(google.protobuf.message.Message):
    DESCRIPTOR: google.protobuf.descriptor.Descriptor

    RUNTIME_ID_FIELD_NUMBER: builtins.int
    CLUSTER_METADATA_FIELD_NUMBER: builtins.int
    ERROR_FIELD_NUMBER: builtins.int
    runtime_id: builtins.str
    @property
    def cluster_metadata(self) -> prodvana.proto.prodvana.environment.clusters_pb2.ClusterMetadata: ...
    error: builtins.str
    """For debugging"""
    def __init__(
        self,
        *,
        runtime_id: builtins.str = ...,
        cluster_metadata: prodvana.proto.prodvana.environment.clusters_pb2.ClusterMetadata | None = ...,
        error: builtins.str = ...,
    ) -> None: ...
    def HasField(self, field_name: typing_extensions.Literal["cluster_metadata", b"cluster_metadata"]) -> builtins.bool: ...
    def ClearField(self, field_name: typing_extensions.Literal["cluster_metadata", b"cluster_metadata", "error", b"error", "runtime_id", b"runtime_id"]) -> None: ...

global___ReportClusterMetadataReq = ReportClusterMetadataReq

class ReportClusterMetadataResp(google.protobuf.message.Message):
    DESCRIPTOR: google.protobuf.descriptor.Descriptor

    def __init__(
        self,
    ) -> None: ...

global___ReportClusterMetadataResp = ReportClusterMetadataResp
