"""
@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 prodvana.proto.prodvana.desired_state.model.desired_state_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 _EventType:
    ValueType = typing.NewType("ValueType", builtins.int)
    V: typing_extensions.TypeAlias = ValueType

class _EventTypeEnumTypeWrapper(google.protobuf.internal.enum_type_wrapper._EnumTypeWrapper[_EventType.ValueType], builtins.type):  # noqa: F821
    DESCRIPTOR: google.protobuf.descriptor.EnumDescriptor
    UNKNOWN: _EventType.ValueType  # 0
    SET_DESIRED_STATE: _EventType.ValueType  # 1
    """when a user sets a new desired state"""
    SET_TARGET_STATE: _EventType.ValueType  # 2
    """when dyanmic delivery sets a new target state as part of convergence. A desired state convergence
    involves a series of SET_TARGET_STATE event, one per each entity managed as part of convergence.
    """
    PROGRAM_EXIT: _EventType.ValueType  # 3
    APPLY_TARGET_STATE: _EventType.ValueType  # 4
    """When dynamic delivery materializes a target state to physical infrastructure as part of convergence.
    Each SET_TARGET_STATE is followed by one or more APPLY_TARGET_STATE, unless convergence is aborted.
    """
    MANUAL_APPROVAL: _EventType.ValueType  # 6
    CUSTOM_TASK_EXECUTION: _EventType.ValueType  # 7
    RUNTIME_UPDATE: _EventType.ValueType  # 8
    """generic runtime events when more specific event types are not available."""
    DELIVERY_PROGRESS: _EventType.ValueType  # 9
    DELIVERY_MANUAL_PROMOTION: _EventType.ValueType  # 10
    DESIRED_STATE_STATUS_CHANGE: _EventType.ValueType  # 11
    KEY_DELIVERY_DECISION: _EventType.ValueType  # 12

class EventType(_EventType, metaclass=_EventTypeEnumTypeWrapper): ...

UNKNOWN: EventType.ValueType  # 0
SET_DESIRED_STATE: EventType.ValueType  # 1
"""when a user sets a new desired state"""
SET_TARGET_STATE: EventType.ValueType  # 2
"""when dyanmic delivery sets a new target state as part of convergence. A desired state convergence
involves a series of SET_TARGET_STATE event, one per each entity managed as part of convergence.
"""
PROGRAM_EXIT: EventType.ValueType  # 3
APPLY_TARGET_STATE: EventType.ValueType  # 4
"""When dynamic delivery materializes a target state to physical infrastructure as part of convergence.
Each SET_TARGET_STATE is followed by one or more APPLY_TARGET_STATE, unless convergence is aborted.
"""
MANUAL_APPROVAL: EventType.ValueType  # 6
CUSTOM_TASK_EXECUTION: EventType.ValueType  # 7
RUNTIME_UPDATE: EventType.ValueType  # 8
"""generic runtime events when more specific event types are not available."""
DELIVERY_PROGRESS: EventType.ValueType  # 9
DELIVERY_MANUAL_PROMOTION: EventType.ValueType  # 10
DESIRED_STATE_STATUS_CHANGE: EventType.ValueType  # 11
KEY_DELIVERY_DECISION: EventType.ValueType  # 12
global___EventType = EventType

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

    ID_FIELD_NUMBER: builtins.int
    DESIRED_STATE_ID_FIELD_NUMBER: builtins.int
    ROOT_DESIRED_STATE_ID_FIELD_NUMBER: builtins.int
    DESIRED_FIELD_NUMBER: builtins.int
    IS_ROLLBACK_FIELD_NUMBER: builtins.int
    @property
    def id(self) -> prodvana.proto.prodvana.desired_state.model.desired_state_pb2.Identifier: ...
    desired_state_id: builtins.str
    root_desired_state_id: builtins.str
    @property
    def desired(self) -> prodvana.proto.prodvana.desired_state.model.desired_state_pb2.State: ...
    is_rollback: builtins.bool
    def __init__(
        self,
        *,
        id: prodvana.proto.prodvana.desired_state.model.desired_state_pb2.Identifier | None = ...,
        desired_state_id: builtins.str = ...,
        root_desired_state_id: builtins.str = ...,
        desired: prodvana.proto.prodvana.desired_state.model.desired_state_pb2.State | None = ...,
        is_rollback: builtins.bool = ...,
    ) -> None: ...
    def HasField(self, field_name: typing_extensions.Literal["desired", b"desired", "id", b"id"]) -> builtins.bool: ...
    def ClearField(self, field_name: typing_extensions.Literal["desired", b"desired", "desired_state_id", b"desired_state_id", "id", b"id", "is_rollback", b"is_rollback", "root_desired_state_id", b"root_desired_state_id"]) -> None: ...

global___SetDesiredStateEvent = SetDesiredStateEvent

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

    ID_FIELD_NUMBER: builtins.int
    DESIRED_STATE_ID_FIELD_NUMBER: builtins.int
    ROOT_DESIRED_STATE_ID_FIELD_NUMBER: builtins.int
    TARGET_FIELD_NUMBER: builtins.int
    DESIRED_FIELD_NUMBER: builtins.int
    CURRENT_FIELD_NUMBER: builtins.int
    IS_AUTO_ROLLBACK_FIELD_NUMBER: builtins.int
    STATUS_FIELD_NUMBER: builtins.int
    STATUS_EXPLANATIONS_FIELD_NUMBER: builtins.int
    @property
    def id(self) -> prodvana.proto.prodvana.desired_state.model.desired_state_pb2.Identifier: ...
    desired_state_id: builtins.str
    root_desired_state_id: builtins.str
    @property
    def target(self) -> prodvana.proto.prodvana.desired_state.model.desired_state_pb2.State:
        """state that prodvana runtime will immediately converge towards"""
    @property
    def desired(self) -> prodvana.proto.prodvana.desired_state.model.desired_state_pb2.State:
        """final desired state that this entity should eventually get to"""
    @property
    def current(self) -> prodvana.proto.prodvana.desired_state.model.desired_state_pb2.State:
        """current state for this entity before setting target state"""
    is_auto_rollback: builtins.bool
    """whether this is part of an automated rollback action"""
    status: prodvana.proto.prodvana.desired_state.model.desired_state_pb2.Status.ValueType
    """status and explanations at the time of SetTargetState"""
    @property
    def status_explanations(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[prodvana.proto.prodvana.desired_state.model.desired_state_pb2.StatusExplanation]: ...
    def __init__(
        self,
        *,
        id: prodvana.proto.prodvana.desired_state.model.desired_state_pb2.Identifier | None = ...,
        desired_state_id: builtins.str = ...,
        root_desired_state_id: builtins.str = ...,
        target: prodvana.proto.prodvana.desired_state.model.desired_state_pb2.State | None = ...,
        desired: prodvana.proto.prodvana.desired_state.model.desired_state_pb2.State | None = ...,
        current: prodvana.proto.prodvana.desired_state.model.desired_state_pb2.State | None = ...,
        is_auto_rollback: builtins.bool = ...,
        status: prodvana.proto.prodvana.desired_state.model.desired_state_pb2.Status.ValueType = ...,
        status_explanations: collections.abc.Iterable[prodvana.proto.prodvana.desired_state.model.desired_state_pb2.StatusExplanation] | None = ...,
    ) -> None: ...
    def HasField(self, field_name: typing_extensions.Literal["current", b"current", "desired", b"desired", "id", b"id", "target", b"target"]) -> builtins.bool: ...
    def ClearField(self, field_name: typing_extensions.Literal["current", b"current", "desired", b"desired", "desired_state_id", b"desired_state_id", "id", b"id", "is_auto_rollback", b"is_auto_rollback", "root_desired_state_id", b"root_desired_state_id", "status", b"status", "status_explanations", b"status_explanations", "target", b"target"]) -> None: ...

global___SetTargetStateEvent = SetTargetStateEvent

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

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

    class _ApplyResultEnumTypeWrapper(google.protobuf.internal.enum_type_wrapper._EnumTypeWrapper[ApplyTargetStateEvent._ApplyResult.ValueType], builtins.type):  # noqa: F821
        DESCRIPTOR: google.protobuf.descriptor.EnumDescriptor
        UNKNOWN: ApplyTargetStateEvent._ApplyResult.ValueType  # 0
        SUCCEEDED: ApplyTargetStateEvent._ApplyResult.ValueType  # 1
        FAILED: ApplyTargetStateEvent._ApplyResult.ValueType  # 2

    class ApplyResult(_ApplyResult, metaclass=_ApplyResultEnumTypeWrapper): ...
    UNKNOWN: ApplyTargetStateEvent.ApplyResult.ValueType  # 0
    SUCCEEDED: ApplyTargetStateEvent.ApplyResult.ValueType  # 1
    FAILED: ApplyTargetStateEvent.ApplyResult.ValueType  # 2

    ID_FIELD_NUMBER: builtins.int
    DESIRED_STATE_ID_FIELD_NUMBER: builtins.int
    ROOT_DESIRED_STATE_ID_FIELD_NUMBER: builtins.int
    TARGET_FIELD_NUMBER: builtins.int
    CURRENT_FIELD_NUMBER: builtins.int
    IS_AUTO_ROLLBACK_FIELD_NUMBER: builtins.int
    RESULT_FIELD_NUMBER: builtins.int
    ERROR_FIELD_NUMBER: builtins.int
    @property
    def id(self) -> prodvana.proto.prodvana.desired_state.model.desired_state_pb2.Identifier: ...
    desired_state_id: builtins.str
    root_desired_state_id: builtins.str
    @property
    def target(self) -> prodvana.proto.prodvana.desired_state.model.desired_state_pb2.State:
        """state that prodvana runtime will immediately converge towards"""
    @property
    def current(self) -> prodvana.proto.prodvana.desired_state.model.desired_state_pb2.State:
        """current state for this entity before setting target state"""
    is_auto_rollback: builtins.bool
    """whether this is part of an automated rollback action"""
    result: global___ApplyTargetStateEvent.ApplyResult.ValueType
    error: builtins.str
    """set if result = FAILED"""
    def __init__(
        self,
        *,
        id: prodvana.proto.prodvana.desired_state.model.desired_state_pb2.Identifier | None = ...,
        desired_state_id: builtins.str = ...,
        root_desired_state_id: builtins.str = ...,
        target: prodvana.proto.prodvana.desired_state.model.desired_state_pb2.State | None = ...,
        current: prodvana.proto.prodvana.desired_state.model.desired_state_pb2.State | None = ...,
        is_auto_rollback: builtins.bool = ...,
        result: global___ApplyTargetStateEvent.ApplyResult.ValueType = ...,
        error: builtins.str = ...,
    ) -> None: ...
    def HasField(self, field_name: typing_extensions.Literal["current", b"current", "id", b"id", "target", b"target"]) -> builtins.bool: ...
    def ClearField(self, field_name: typing_extensions.Literal["current", b"current", "desired_state_id", b"desired_state_id", "error", b"error", "id", b"id", "is_auto_rollback", b"is_auto_rollback", "result", b"result", "root_desired_state_id", b"root_desired_state_id", "target", b"target"]) -> None: ...

global___ApplyTargetStateEvent = ApplyTargetStateEvent

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

    NAMESPACE_FIELD_NUMBER: builtins.int
    POD_FIELD_NUMBER: builtins.int
    PROGRAM_FIELD_NUMBER: builtins.int
    RESTART_COUNT_FIELD_NUMBER: builtins.int
    REASON_FIELD_NUMBER: builtins.int
    KILLED_REASON_FIELD_NUMBER: builtins.int
    EXIT_CODE_FIELD_NUMBER: builtins.int
    SIGNAL_FIELD_NUMBER: builtins.int
    namespace: builtins.str
    pod: builtins.str
    program: builtins.str
    """in k8s, this is container name"""
    restart_count: builtins.int
    reason: builtins.str
    """reason why process exited"""
    killed_reason: builtins.str
    """if killed, this is the reason why it was killed (best effort)"""
    exit_code: builtins.int
    """if 0, this is a successful exit."""
    signal: builtins.int
    """signal used to terminate this process, if any"""
    def __init__(
        self,
        *,
        namespace: builtins.str = ...,
        pod: builtins.str = ...,
        program: builtins.str = ...,
        restart_count: builtins.int = ...,
        reason: builtins.str = ...,
        killed_reason: builtins.str = ...,
        exit_code: builtins.int = ...,
        signal: builtins.int = ...,
    ) -> None: ...
    def ClearField(self, field_name: typing_extensions.Literal["exit_code", b"exit_code", "killed_reason", b"killed_reason", "namespace", b"namespace", "pod", b"pod", "program", b"program", "reason", b"reason", "restart_count", b"restart_count", "signal", b"signal"]) -> None: ...

global___ProgramExitEvent = ProgramExitEvent

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

    STATE_FIELD_NUMBER: builtins.int
    @property
    def state(self) -> prodvana.proto.prodvana.desired_state.model.desired_state_pb2.DeliveryState: ...
    def __init__(
        self,
        *,
        state: prodvana.proto.prodvana.desired_state.model.desired_state_pb2.DeliveryState | None = ...,
    ) -> None: ...
    def HasField(self, field_name: typing_extensions.Literal["state", b"state"]) -> builtins.bool: ...
    def ClearField(self, field_name: typing_extensions.Literal["state", b"state"]) -> None: ...

global___DeliveryProgressEvent = DeliveryProgressEvent

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

    STATE_FIELD_NUMBER: builtins.int
    STAGE_FIELD_NUMBER: builtins.int
    FULL_FIELD_NUMBER: builtins.int
    @property
    def state(self) -> prodvana.proto.prodvana.desired_state.model.desired_state_pb2.DeliveryState: ...
    stage: builtins.int
    full: builtins.bool
    def __init__(
        self,
        *,
        state: prodvana.proto.prodvana.desired_state.model.desired_state_pb2.DeliveryState | None = ...,
        stage: builtins.int = ...,
        full: builtins.bool = ...,
    ) -> None: ...
    def HasField(self, field_name: typing_extensions.Literal["state", b"state"]) -> builtins.bool: ...
    def ClearField(self, field_name: typing_extensions.Literal["full", b"full", "stage", b"stage", "state", b"state"]) -> None: ...

global___DeliveryManualPromotionEvent = DeliveryManualPromotionEvent

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

    STATUS_FIELD_NUMBER: builtins.int
    TOPIC_FIELD_NUMBER: builtins.int
    status: prodvana.proto.prodvana.desired_state.model.desired_state_pb2.ManualApprovalStatus.ValueType
    """Approved/rejected?"""
    topic: builtins.str
    """Actor etc ..."""
    def __init__(
        self,
        *,
        status: prodvana.proto.prodvana.desired_state.model.desired_state_pb2.ManualApprovalStatus.ValueType = ...,
        topic: builtins.str = ...,
    ) -> None: ...
    def ClearField(self, field_name: typing_extensions.Literal["status", b"status", "topic", b"topic"]) -> None: ...

global___ManualApprovalEvent = ManualApprovalEvent

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

    SUCCESSFUL_FIELD_NUMBER: builtins.int
    ATTEMPTS_FIELD_NUMBER: builtins.int
    REASON_FIELD_NUMBER: builtins.int
    successful: builtins.bool
    attempts: builtins.int
    reason: builtins.str
    """Why did this job exit/fail?"""
    def __init__(
        self,
        *,
        successful: builtins.bool = ...,
        attempts: builtins.int = ...,
        reason: builtins.str = ...,
    ) -> None: ...
    def ClearField(self, field_name: typing_extensions.Literal["attempts", b"attempts", "reason", b"reason", "successful", b"successful"]) -> None: ...

global___CustomTaskExecutionEvent = CustomTaskExecutionEvent

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

    NAME_FIELD_NUMBER: builtins.int
    KIND_FIELD_NUMBER: builtins.int
    NAMESPACE_FIELD_NUMBER: builtins.int
    URL_FIELD_NUMBER: builtins.int
    name: builtins.str
    """name of object as it appears in the runtime layer"""
    kind: builtins.str
    namespace: builtins.str
    """optional, depends on if runtime has support for it"""
    url: builtins.str
    """optional, depends on if there is a unique URL to view this object."""
    def __init__(
        self,
        *,
        name: builtins.str = ...,
        kind: builtins.str = ...,
        namespace: builtins.str = ...,
        url: builtins.str = ...,
    ) -> None: ...
    def ClearField(self, field_name: typing_extensions.Literal["kind", b"kind", "name", b"name", "namespace", b"namespace", "url", b"url"]) -> None: ...

global___RuntimeObject = RuntimeObject

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

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

    class _RuntimeActionEnumTypeWrapper(google.protobuf.internal.enum_type_wrapper._EnumTypeWrapper[RuntimeUpdateEvent._RuntimeAction.ValueType], builtins.type):  # noqa: F821
        DESCRIPTOR: google.protobuf.descriptor.EnumDescriptor
        UNKNOWN: RuntimeUpdateEvent._RuntimeAction.ValueType  # 0
        CREATE_OR_UPDATE: RuntimeUpdateEvent._RuntimeAction.ValueType  # 1
        WAIT_HEALTHY: RuntimeUpdateEvent._RuntimeAction.ValueType  # 2

    class RuntimeAction(_RuntimeAction, metaclass=_RuntimeActionEnumTypeWrapper): ...
    UNKNOWN: RuntimeUpdateEvent.RuntimeAction.ValueType  # 0
    CREATE_OR_UPDATE: RuntimeUpdateEvent.RuntimeAction.ValueType  # 1
    WAIT_HEALTHY: RuntimeUpdateEvent.RuntimeAction.ValueType  # 2

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

    class _RuntimeStatusEnumTypeWrapper(google.protobuf.internal.enum_type_wrapper._EnumTypeWrapper[RuntimeUpdateEvent._RuntimeStatus.ValueType], builtins.type):  # noqa: F821
        DESCRIPTOR: google.protobuf.descriptor.EnumDescriptor
        RUNTIME_STATUS_UNKNOWN: RuntimeUpdateEvent._RuntimeStatus.ValueType  # 0
        PENDING: RuntimeUpdateEvent._RuntimeStatus.ValueType  # 1
        SUCCESS: RuntimeUpdateEvent._RuntimeStatus.ValueType  # 2
        FAILURE: RuntimeUpdateEvent._RuntimeStatus.ValueType  # 3

    class RuntimeStatus(_RuntimeStatus, metaclass=_RuntimeStatusEnumTypeWrapper): ...
    RUNTIME_STATUS_UNKNOWN: RuntimeUpdateEvent.RuntimeStatus.ValueType  # 0
    PENDING: RuntimeUpdateEvent.RuntimeStatus.ValueType  # 1
    SUCCESS: RuntimeUpdateEvent.RuntimeStatus.ValueType  # 2
    FAILURE: RuntimeUpdateEvent.RuntimeStatus.ValueType  # 3

    ACTION_FIELD_NUMBER: builtins.int
    OBJECT_FIELD_NUMBER: builtins.int
    STATUS_FIELD_NUMBER: builtins.int
    action: global___RuntimeUpdateEvent.RuntimeAction.ValueType
    @property
    def object(self) -> global___RuntimeObject: ...
    status: global___RuntimeUpdateEvent.RuntimeStatus.ValueType
    def __init__(
        self,
        *,
        action: global___RuntimeUpdateEvent.RuntimeAction.ValueType = ...,
        object: global___RuntimeObject | None = ...,
        status: global___RuntimeUpdateEvent.RuntimeStatus.ValueType = ...,
    ) -> None: ...
    def HasField(self, field_name: typing_extensions.Literal["object", b"object"]) -> builtins.bool: ...
    def ClearField(self, field_name: typing_extensions.Literal["action", b"action", "object", b"object", "status", b"status"]) -> None: ...

global___RuntimeUpdateEvent = RuntimeUpdateEvent

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

    ID_FIELD_NUMBER: builtins.int
    DESIRED_STATE_ID_FIELD_NUMBER: builtins.int
    ROOT_DESIRED_STATE_ID_FIELD_NUMBER: builtins.int
    OLD_STATUS_FIELD_NUMBER: builtins.int
    NEW_STATUS_FIELD_NUMBER: builtins.int
    DESIRED_FIELD_NUMBER: builtins.int
    TARGET_FIELD_NUMBER: builtins.int
    OLD_STATE_FIELD_NUMBER: builtins.int
    NEW_STATE_FIELD_NUMBER: builtins.int
    STATUS_EXPLANATIONS_FIELD_NUMBER: builtins.int
    @property
    def id(self) -> prodvana.proto.prodvana.desired_state.model.desired_state_pb2.Identifier: ...
    desired_state_id: builtins.str
    root_desired_state_id: builtins.str
    old_status: prodvana.proto.prodvana.desired_state.model.desired_state_pb2.Status.ValueType
    new_status: prodvana.proto.prodvana.desired_state.model.desired_state_pb2.Status.ValueType
    @property
    def desired(self) -> prodvana.proto.prodvana.desired_state.model.desired_state_pb2.State: ...
    @property
    def target(self) -> prodvana.proto.prodvana.desired_state.model.desired_state_pb2.State: ...
    @property
    def old_state(self) -> prodvana.proto.prodvana.desired_state.model.desired_state_pb2.State: ...
    @property
    def new_state(self) -> prodvana.proto.prodvana.desired_state.model.desired_state_pb2.State: ...
    @property
    def status_explanations(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[prodvana.proto.prodvana.desired_state.model.desired_state_pb2.StatusExplanation]: ...
    def __init__(
        self,
        *,
        id: prodvana.proto.prodvana.desired_state.model.desired_state_pb2.Identifier | None = ...,
        desired_state_id: builtins.str = ...,
        root_desired_state_id: builtins.str = ...,
        old_status: prodvana.proto.prodvana.desired_state.model.desired_state_pb2.Status.ValueType = ...,
        new_status: prodvana.proto.prodvana.desired_state.model.desired_state_pb2.Status.ValueType = ...,
        desired: prodvana.proto.prodvana.desired_state.model.desired_state_pb2.State | None = ...,
        target: prodvana.proto.prodvana.desired_state.model.desired_state_pb2.State | None = ...,
        old_state: prodvana.proto.prodvana.desired_state.model.desired_state_pb2.State | None = ...,
        new_state: prodvana.proto.prodvana.desired_state.model.desired_state_pb2.State | None = ...,
        status_explanations: collections.abc.Iterable[prodvana.proto.prodvana.desired_state.model.desired_state_pb2.StatusExplanation] | None = ...,
    ) -> None: ...
    def HasField(self, field_name: typing_extensions.Literal["desired", b"desired", "id", b"id", "new_state", b"new_state", "old_state", b"old_state", "target", b"target"]) -> builtins.bool: ...
    def ClearField(self, field_name: typing_extensions.Literal["desired", b"desired", "desired_state_id", b"desired_state_id", "id", b"id", "new_state", b"new_state", "new_status", b"new_status", "old_state", b"old_state", "old_status", b"old_status", "root_desired_state_id", b"root_desired_state_id", "status_explanations", b"status_explanations", "target", b"target"]) -> None: ...

global___DesiredStateStatusChangeEvent = DesiredStateStatusChangeEvent

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

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

    class _DecisionEnumTypeWrapper(google.protobuf.internal.enum_type_wrapper._EnumTypeWrapper[KeyDeliveryDecisionEvent._Decision.ValueType], builtins.type):  # noqa: F821
        DESCRIPTOR: google.protobuf.descriptor.EnumDescriptor
        UNKNOWN: KeyDeliveryDecisionEvent._Decision.ValueType  # 0
        ROLLBACK_INITIATED: KeyDeliveryDecisionEvent._Decision.ValueType  # 1
        FAILED: KeyDeliveryDecisionEvent._Decision.ValueType  # 2

    class Decision(_Decision, metaclass=_DecisionEnumTypeWrapper): ...
    UNKNOWN: KeyDeliveryDecisionEvent.Decision.ValueType  # 0
    ROLLBACK_INITIATED: KeyDeliveryDecisionEvent.Decision.ValueType  # 1
    FAILED: KeyDeliveryDecisionEvent.Decision.ValueType  # 2

    ID_FIELD_NUMBER: builtins.int
    DESIRED_STATE_ID_FIELD_NUMBER: builtins.int
    ROOT_DESIRED_STATE_ID_FIELD_NUMBER: builtins.int
    DECISION_FIELD_NUMBER: builtins.int
    EXPLANATION_FIELD_NUMBER: builtins.int
    STATUS_FIELD_NUMBER: builtins.int
    DESIRED_FIELD_NUMBER: builtins.int
    TARGET_FIELD_NUMBER: builtins.int
    CURRENT_FIELD_NUMBER: builtins.int
    STATUS_EXPLANATIONS_FIELD_NUMBER: builtins.int
    @property
    def id(self) -> prodvana.proto.prodvana.desired_state.model.desired_state_pb2.Identifier: ...
    desired_state_id: builtins.str
    root_desired_state_id: builtins.str
    decision: global___KeyDeliveryDecisionEvent.Decision.ValueType
    explanation: builtins.str
    """optional, may not always be set. when not set, the context should be obvious from status_explanations"""
    status: prodvana.proto.prodvana.desired_state.model.desired_state_pb2.Status.ValueType
    @property
    def desired(self) -> prodvana.proto.prodvana.desired_state.model.desired_state_pb2.State: ...
    @property
    def target(self) -> prodvana.proto.prodvana.desired_state.model.desired_state_pb2.State: ...
    @property
    def current(self) -> prodvana.proto.prodvana.desired_state.model.desired_state_pb2.State: ...
    @property
    def status_explanations(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[prodvana.proto.prodvana.desired_state.model.desired_state_pb2.StatusExplanation]: ...
    def __init__(
        self,
        *,
        id: prodvana.proto.prodvana.desired_state.model.desired_state_pb2.Identifier | None = ...,
        desired_state_id: builtins.str = ...,
        root_desired_state_id: builtins.str = ...,
        decision: global___KeyDeliveryDecisionEvent.Decision.ValueType = ...,
        explanation: builtins.str = ...,
        status: prodvana.proto.prodvana.desired_state.model.desired_state_pb2.Status.ValueType = ...,
        desired: prodvana.proto.prodvana.desired_state.model.desired_state_pb2.State | None = ...,
        target: prodvana.proto.prodvana.desired_state.model.desired_state_pb2.State | None = ...,
        current: prodvana.proto.prodvana.desired_state.model.desired_state_pb2.State | None = ...,
        status_explanations: collections.abc.Iterable[prodvana.proto.prodvana.desired_state.model.desired_state_pb2.StatusExplanation] | None = ...,
    ) -> None: ...
    def HasField(self, field_name: typing_extensions.Literal["current", b"current", "desired", b"desired", "id", b"id", "target", b"target"]) -> builtins.bool: ...
    def ClearField(self, field_name: typing_extensions.Literal["current", b"current", "decision", b"decision", "desired", b"desired", "desired_state_id", b"desired_state_id", "explanation", b"explanation", "id", b"id", "root_desired_state_id", b"root_desired_state_id", "status", b"status", "status_explanations", b"status_explanations", "target", b"target"]) -> None: ...

global___KeyDeliveryDecisionEvent = KeyDeliveryDecisionEvent

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

    SET_DESIRED_STATE_FIELD_NUMBER: builtins.int
    SET_TARGET_STATE_FIELD_NUMBER: builtins.int
    PROGRAM_EXIT_FIELD_NUMBER: builtins.int
    APPLY_TARGET_STATE_FIELD_NUMBER: builtins.int
    MANUAL_APPROVAL_FIELD_NUMBER: builtins.int
    CUSTOM_TASK_EXECUTION_FIELD_NUMBER: builtins.int
    RUNTIME_UPDATE_FIELD_NUMBER: builtins.int
    DELIVERY_PROGRESS_FIELD_NUMBER: builtins.int
    DELIVERY_PROMOTION_FIELD_NUMBER: builtins.int
    DESIRED_STATE_STATUS_CHANGE_FIELD_NUMBER: builtins.int
    KEY_DELIVERY_DECISION_FIELD_NUMBER: builtins.int
    @property
    def set_desired_state(self) -> global___SetDesiredStateEvent: ...
    @property
    def set_target_state(self) -> global___SetTargetStateEvent: ...
    @property
    def program_exit(self) -> global___ProgramExitEvent: ...
    @property
    def apply_target_state(self) -> global___ApplyTargetStateEvent: ...
    @property
    def manual_approval(self) -> global___ManualApprovalEvent: ...
    @property
    def custom_task_execution(self) -> global___CustomTaskExecutionEvent: ...
    @property
    def runtime_update(self) -> global___RuntimeUpdateEvent: ...
    @property
    def delivery_progress(self) -> global___DeliveryProgressEvent: ...
    @property
    def delivery_promotion(self) -> global___DeliveryManualPromotionEvent: ...
    @property
    def desired_state_status_change(self) -> global___DesiredStateStatusChangeEvent: ...
    @property
    def key_delivery_decision(self) -> global___KeyDeliveryDecisionEvent: ...
    def __init__(
        self,
        *,
        set_desired_state: global___SetDesiredStateEvent | None = ...,
        set_target_state: global___SetTargetStateEvent | None = ...,
        program_exit: global___ProgramExitEvent | None = ...,
        apply_target_state: global___ApplyTargetStateEvent | None = ...,
        manual_approval: global___ManualApprovalEvent | None = ...,
        custom_task_execution: global___CustomTaskExecutionEvent | None = ...,
        runtime_update: global___RuntimeUpdateEvent | None = ...,
        delivery_progress: global___DeliveryProgressEvent | None = ...,
        delivery_promotion: global___DeliveryManualPromotionEvent | None = ...,
        desired_state_status_change: global___DesiredStateStatusChangeEvent | None = ...,
        key_delivery_decision: global___KeyDeliveryDecisionEvent | None = ...,
    ) -> None: ...
    def HasField(self, field_name: typing_extensions.Literal["apply_target_state", b"apply_target_state", "custom_task_execution", b"custom_task_execution", "delivery_progress", b"delivery_progress", "delivery_promotion", b"delivery_promotion", "desired_state_status_change", b"desired_state_status_change", "details", b"details", "key_delivery_decision", b"key_delivery_decision", "manual_approval", b"manual_approval", "program_exit", b"program_exit", "runtime_update", b"runtime_update", "set_desired_state", b"set_desired_state", "set_target_state", b"set_target_state"]) -> builtins.bool: ...
    def ClearField(self, field_name: typing_extensions.Literal["apply_target_state", b"apply_target_state", "custom_task_execution", b"custom_task_execution", "delivery_progress", b"delivery_progress", "delivery_promotion", b"delivery_promotion", "desired_state_status_change", b"desired_state_status_change", "details", b"details", "key_delivery_decision", b"key_delivery_decision", "manual_approval", b"manual_approval", "program_exit", b"program_exit", "runtime_update", b"runtime_update", "set_desired_state", b"set_desired_state", "set_target_state", b"set_target_state"]) -> None: ...
    def WhichOneof(self, oneof_group: typing_extensions.Literal["details", b"details"]) -> typing_extensions.Literal["set_desired_state", "set_target_state", "program_exit", "apply_target_state", "manual_approval", "custom_task_execution", "runtime_update", "delivery_progress", "delivery_promotion", "desired_state_status_change", "key_delivery_decision"] | None: ...

global___EventDetails = EventDetails
