"""
@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.deployment.object_pb2
import prodvana.proto.prodvana.object.meta_pb2
import prodvana.proto.prodvana.service.service_config_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 RecordDeploymentReq(google.protobuf.message.Message):
    DESCRIPTOR: google.protobuf.descriptor.Descriptor

    CONFIG_FIELD_NUMBER: builtins.int
    PENDING_FIELD_NUMBER: builtins.int
    @property
    def config(self) -> prodvana.proto.prodvana.deployment.object_pb2.DeploymentConfig: ...
    pending: builtins.bool
    """If true, create deployment with pending status that is meant to be updated later to either success or failure.
    By default, deployments are created with status SUCCEEDED.
    """
    def __init__(
        self,
        *,
        config: prodvana.proto.prodvana.deployment.object_pb2.DeploymentConfig | None = ...,
        pending: builtins.bool = ...,
    ) -> None: ...
    def HasField(self, field_name: typing_extensions.Literal["config", b"config"]) -> builtins.bool: ...
    def ClearField(self, field_name: typing_extensions.Literal["config", b"config", "pending", b"pending"]) -> None: ...

global___RecordDeploymentReq = RecordDeploymentReq

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

    META_FIELD_NUMBER: builtins.int
    @property
    def meta(self) -> prodvana.proto.prodvana.object.meta_pb2.ObjectMeta: ...
    def __init__(
        self,
        *,
        meta: prodvana.proto.prodvana.object.meta_pb2.ObjectMeta | None = ...,
    ) -> None: ...
    def HasField(self, field_name: typing_extensions.Literal["meta", b"meta"]) -> builtins.bool: ...
    def ClearField(self, field_name: typing_extensions.Literal["meta", b"meta"]) -> None: ...

global___RecordDeploymentResp = RecordDeploymentResp

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

    DEPLOYMENT_ID_FIELD_NUMBER: builtins.int
    STATUS_FIELD_NUMBER: builtins.int
    deployment_id: builtins.str
    status: prodvana.proto.prodvana.deployment.object_pb2.DeploymentStatus.ValueType
    def __init__(
        self,
        *,
        deployment_id: builtins.str = ...,
        status: prodvana.proto.prodvana.deployment.object_pb2.DeploymentStatus.ValueType = ...,
    ) -> None: ...
    def ClearField(self, field_name: typing_extensions.Literal["deployment_id", b"deployment_id", "status", b"status"]) -> None: ...

global___UpdateDeploymentStatusReq = UpdateDeploymentStatusReq

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

    STATUS_FIELD_NUMBER: builtins.int
    status: prodvana.proto.prodvana.deployment.object_pb2.DeploymentStatus.ValueType
    def __init__(
        self,
        *,
        status: prodvana.proto.prodvana.deployment.object_pb2.DeploymentStatus.ValueType = ...,
    ) -> None: ...
    def ClearField(self, field_name: typing_extensions.Literal["status", b"status"]) -> None: ...

global___UpdateDeploymentStatusResp = UpdateDeploymentStatusResp

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

    SERVICES_FIELD_NUMBER: builtins.int
    RELEASE_CHANNELS_FIELD_NUMBER: builtins.int
    APPLICATION_FIELD_NUMBER: builtins.int
    DESIRED_STATE_ID_FIELD_NUMBER: builtins.int
    RELEASE_ID_FIELD_NUMBER: builtins.int
    @property
    def services(self) -> google.protobuf.internal.containers.RepeatedScalarFieldContainer[builtins.str]:
        """filters to deployments for join(join(services, OR), join(release_channels, OR), AND)"""
    @property
    def release_channels(self) -> google.protobuf.internal.containers.RepeatedScalarFieldContainer[builtins.str]: ...
    application: builtins.str
    """if set, the filters on services and deployment channels above will be limited to this app.
    Otherwise, there is no app filter (so e.g. release_channels=['staging'] will select
    staging deployment channels across all apps.)
    """
    desired_state_id: builtins.str
    """desired_state_id filter is AND'ed with everything else in the same filter object"""
    release_id: builtins.str
    """release_id filter is AND'ed with everything else in the same filter object"""
    def __init__(
        self,
        *,
        services: collections.abc.Iterable[builtins.str] | None = ...,
        release_channels: collections.abc.Iterable[builtins.str] | None = ...,
        application: builtins.str = ...,
        desired_state_id: builtins.str = ...,
        release_id: builtins.str = ...,
    ) -> None: ...
    def ClearField(self, field_name: typing_extensions.Literal["application", b"application", "desired_state_id", b"desired_state_id", "release_channels", b"release_channels", "release_id", b"release_id", "services", b"services"]) -> None: ...

global___DeploymentFilter = DeploymentFilter

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

    FILTERS_FIELD_NUMBER: builtins.int
    FILTER_FIELD_NUMBER: builtins.int
    STARTING_DEPLOYMENT_ID_FIELD_NUMBER: builtins.int
    ENDING_DEPLOYMENT_ID_FIELD_NUMBER: builtins.int
    PAGE_TOKEN_FIELD_NUMBER: builtins.int
    PAGE_SIZE_FIELD_NUMBER: builtins.int
    @property
    def filters(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[global___DeploymentFilter]:
        """filters for listing deployments. Multiple filters are OR'ed together."""
    @property
    def filter(self) -> global___DeploymentFilter:
        """escape hatch to support openAPI, which cannot handle repeated list of messages on GET requests. This is joined to the filters list with an OR."""
    starting_deployment_id: builtins.str
    """newer deployment, inclusive"""
    ending_deployment_id: builtins.str
    """older deployment, exclusive"""
    page_token: builtins.str
    page_size: builtins.int
    def __init__(
        self,
        *,
        filters: collections.abc.Iterable[global___DeploymentFilter] | None = ...,
        filter: global___DeploymentFilter | None = ...,
        starting_deployment_id: builtins.str = ...,
        ending_deployment_id: builtins.str = ...,
        page_token: builtins.str = ...,
        page_size: builtins.int = ...,
    ) -> None: ...
    def HasField(self, field_name: typing_extensions.Literal["filter", b"filter"]) -> builtins.bool: ...
    def ClearField(self, field_name: typing_extensions.Literal["ending_deployment_id", b"ending_deployment_id", "filter", b"filter", "filters", b"filters", "page_size", b"page_size", "page_token", b"page_token", "starting_deployment_id", b"starting_deployment_id"]) -> None: ...

global___ListDeploymentsReq = ListDeploymentsReq

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

    DEPLOYMENTS_FIELD_NUMBER: builtins.int
    NEXT_PAGE_TOKEN_FIELD_NUMBER: builtins.int
    @property
    def deployments(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[prodvana.proto.prodvana.deployment.object_pb2.Deployment]: ...
    next_page_token: builtins.str
    def __init__(
        self,
        *,
        deployments: collections.abc.Iterable[prodvana.proto.prodvana.deployment.object_pb2.Deployment] | None = ...,
        next_page_token: builtins.str = ...,
    ) -> None: ...
    def ClearField(self, field_name: typing_extensions.Literal["deployments", b"deployments", "next_page_token", b"next_page_token"]) -> None: ...

global___ListDeploymentsResp = ListDeploymentsResp

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

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

        COMPILED_CONFIG_FIELD_NUMBER: builtins.int
        @property
        def compiled_config(self) -> prodvana.proto.prodvana.service.service_config_pb2.CompiledServiceInstanceConfig: ...
        def __init__(
            self,
            *,
            compiled_config: prodvana.proto.prodvana.service.service_config_pb2.CompiledServiceInstanceConfig | None = ...,
        ) -> None: ...
        def HasField(self, field_name: typing_extensions.Literal["compiled_config", b"compiled_config"]) -> builtins.bool: ...
        def ClearField(self, field_name: typing_extensions.Literal["compiled_config", b"compiled_config"]) -> None: ...

    DEPLOYMENT_ID_FIELD_NUMBER: builtins.int
    CONFIG_FIELD_NUMBER: builtins.int
    SERVICE_INSTANCE_CONFIG_FIELD_NUMBER: builtins.int
    deployment_id: builtins.str
    @property
    def config(self) -> prodvana.proto.prodvana.deployment.object_pb2.DeploymentConfig: ...
    @property
    def service_instance_config(self) -> global___DeploymentRef.ServiceInstanceConfig: ...
    def __init__(
        self,
        *,
        deployment_id: builtins.str = ...,
        config: prodvana.proto.prodvana.deployment.object_pb2.DeploymentConfig | None = ...,
        service_instance_config: global___DeploymentRef.ServiceInstanceConfig | None = ...,
    ) -> None: ...
    def HasField(self, field_name: typing_extensions.Literal["config", b"config", "deployment_id", b"deployment_id", "ref", b"ref", "service_instance_config", b"service_instance_config"]) -> builtins.bool: ...
    def ClearField(self, field_name: typing_extensions.Literal["config", b"config", "deployment_id", b"deployment_id", "ref", b"ref", "service_instance_config", b"service_instance_config"]) -> None: ...
    def WhichOneof(self, oneof_group: typing_extensions.Literal["ref", b"ref"]) -> typing_extensions.Literal["deployment_id", "config", "service_instance_config"] | None: ...

global___DeploymentRef = DeploymentRef

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

    NEW_DEPLOYMENT_FIELD_NUMBER: builtins.int
    PREV_DEPLOYMENT_FIELD_NUMBER: builtins.int
    @property
    def new_deployment(self) -> global___DeploymentRef: ...
    @property
    def prev_deployment(self) -> global___DeploymentRef: ...
    def __init__(
        self,
        *,
        new_deployment: global___DeploymentRef | None = ...,
        prev_deployment: global___DeploymentRef | None = ...,
    ) -> None: ...
    def HasField(self, field_name: typing_extensions.Literal["new_deployment", b"new_deployment", "prev_deployment", b"prev_deployment"]) -> builtins.bool: ...
    def ClearField(self, field_name: typing_extensions.Literal["new_deployment", b"new_deployment", "prev_deployment", b"prev_deployment"]) -> None: ...

global___CompareDeploymentReq = CompareDeploymentReq

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

    COMPARISON_FIELD_NUMBER: builtins.int
    @property
    def comparison(self) -> prodvana.proto.prodvana.deployment.object_pb2.DeploymentComparison: ...
    def __init__(
        self,
        *,
        comparison: prodvana.proto.prodvana.deployment.object_pb2.DeploymentComparison | None = ...,
    ) -> None: ...
    def HasField(self, field_name: typing_extensions.Literal["comparison", b"comparison"]) -> builtins.bool: ...
    def ClearField(self, field_name: typing_extensions.Literal["comparison", b"comparison"]) -> None: ...

global___CompareDeploymentResp = CompareDeploymentResp

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

    CONFIG_FIELD_NUMBER: builtins.int
    PREV_DEPLOYMENT_FIELD_NUMBER: builtins.int
    @property
    def config(self) -> prodvana.proto.prodvana.deployment.object_pb2.DeploymentConfig: ...
    @property
    def prev_deployment(self) -> global___DeploymentRef:
        """omit to use latest deployment from the same app/service/deployment channel"""
    def __init__(
        self,
        *,
        config: prodvana.proto.prodvana.deployment.object_pb2.DeploymentConfig | None = ...,
        prev_deployment: global___DeploymentRef | None = ...,
    ) -> None: ...
    def HasField(self, field_name: typing_extensions.Literal["config", b"config", "prev_deployment", b"prev_deployment"]) -> builtins.bool: ...
    def ClearField(self, field_name: typing_extensions.Literal["config", b"config", "prev_deployment", b"prev_deployment"]) -> None: ...

global___PreviewDeploymentReq = PreviewDeploymentReq

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

    DEPLOYMENT_FIELD_NUMBER: builtins.int
    @property
    def deployment(self) -> prodvana.proto.prodvana.deployment.object_pb2.Deployment: ...
    def __init__(
        self,
        *,
        deployment: prodvana.proto.prodvana.deployment.object_pb2.Deployment | None = ...,
    ) -> None: ...
    def HasField(self, field_name: typing_extensions.Literal["deployment", b"deployment"]) -> builtins.bool: ...
    def ClearField(self, field_name: typing_extensions.Literal["deployment", b"deployment"]) -> None: ...

global___PreviewDeploymentResp = PreviewDeploymentResp

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

    FILTERS_FIELD_NUMBER: builtins.int
    FILTER_FIELD_NUMBER: builtins.int
    STATUS_FIELD_NUMBER: builtins.int
    PAGE_TOKEN_FIELD_NUMBER: builtins.int
    PAGE_SIZE_FIELD_NUMBER: builtins.int
    @property
    def filters(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[global___DeploymentFilter]:
        """filters for listing deployments. Multiple filters are OR'ed together."""
    @property
    def filter(self) -> global___DeploymentFilter:
        """escape hatch to support openAPI, which cannot handle repeated list of messages on GET requests. This is joined to the filters list with an OR."""
    status: prodvana.proto.prodvana.deployment.object_pb2.DeploymentStatus.ValueType
    """if set, only return deployments with this status"""
    page_token: builtins.str
    page_size: builtins.int
    def __init__(
        self,
        *,
        filters: collections.abc.Iterable[global___DeploymentFilter] | None = ...,
        filter: global___DeploymentFilter | None = ...,
        status: prodvana.proto.prodvana.deployment.object_pb2.DeploymentStatus.ValueType = ...,
        page_token: builtins.str = ...,
        page_size: builtins.int = ...,
    ) -> None: ...
    def HasField(self, field_name: typing_extensions.Literal["filter", b"filter"]) -> builtins.bool: ...
    def ClearField(self, field_name: typing_extensions.Literal["filter", b"filter", "filters", b"filters", "page_size", b"page_size", "page_token", b"page_token", "status", b"status"]) -> None: ...

global___GetLatestDeploymentsReq = GetLatestDeploymentsReq

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

    DEPLOYMENTS_FIELD_NUMBER: builtins.int
    NEXT_PAGE_TOKEN_FIELD_NUMBER: builtins.int
    @property
    def deployments(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[prodvana.proto.prodvana.deployment.object_pb2.Deployment]: ...
    next_page_token: builtins.str
    def __init__(
        self,
        *,
        deployments: collections.abc.Iterable[prodvana.proto.prodvana.deployment.object_pb2.Deployment] | None = ...,
        next_page_token: builtins.str = ...,
    ) -> None: ...
    def ClearField(self, field_name: typing_extensions.Literal["deployments", b"deployments", "next_page_token", b"next_page_token"]) -> None: ...

global___GetLatestDeploymentsResp = GetLatestDeploymentsResp

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

    APPLICATION_FIELD_NUMBER: builtins.int
    SERVICE_FIELD_NUMBER: builtins.int
    RELEASE_CHANNEL_FIELD_NUMBER: builtins.int
    application: builtins.str
    service: builtins.str
    release_channel: builtins.str
    def __init__(
        self,
        *,
        application: builtins.str = ...,
        service: builtins.str = ...,
        release_channel: builtins.str = ...,
    ) -> None: ...
    def ClearField(self, field_name: typing_extensions.Literal["application", b"application", "release_channel", b"release_channel", "service", b"service"]) -> None: ...

global___DeploymentServiceInstance = DeploymentServiceInstance

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

    DEPLOYMENT_ID_FIELD_NUMBER: builtins.int
    DEPLOYMENT_SERVICE_INSTANCE_FIELD_NUMBER: builtins.int
    REPOSITORY_FIELD_NUMBER: builtins.int
    COMMIT_FIELD_NUMBER: builtins.int
    deployment_id: builtins.str
    @property
    def deployment_service_instance(self) -> global___DeploymentServiceInstance:
        """will pick latest deployment"""
    repository: builtins.str
    commit: builtins.str
    def __init__(
        self,
        *,
        deployment_id: builtins.str = ...,
        deployment_service_instance: global___DeploymentServiceInstance | None = ...,
        repository: builtins.str = ...,
        commit: builtins.str = ...,
    ) -> None: ...
    def HasField(self, field_name: typing_extensions.Literal["deployment_id", b"deployment_id", "deployment_oneof", b"deployment_oneof", "deployment_service_instance", b"deployment_service_instance"]) -> builtins.bool: ...
    def ClearField(self, field_name: typing_extensions.Literal["commit", b"commit", "deployment_id", b"deployment_id", "deployment_oneof", b"deployment_oneof", "deployment_service_instance", b"deployment_service_instance", "repository", b"repository"]) -> None: ...
    def WhichOneof(self, oneof_group: typing_extensions.Literal["deployment_oneof", b"deployment_oneof"]) -> typing_extensions.Literal["deployment_id", "deployment_service_instance"] | None: ...

global___CheckCommitInDeploymentReq = CheckCommitInDeploymentReq

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

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

    class _ResultEnumTypeWrapper(google.protobuf.internal.enum_type_wrapper._EnumTypeWrapper[CheckCommitInDeploymentResp._Result.ValueType], builtins.type):  # noqa: F821
        DESCRIPTOR: google.protobuf.descriptor.EnumDescriptor
        UNKNOWN: CheckCommitInDeploymentResp._Result.ValueType  # 0
        INCLUDED: CheckCommitInDeploymentResp._Result.ValueType  # 1
        NO_RELATION: CheckCommitInDeploymentResp._Result.ValueType  # 2
        NOT_INCLUDED: CheckCommitInDeploymentResp._Result.ValueType  # 3

    class Result(_Result, metaclass=_ResultEnumTypeWrapper): ...
    UNKNOWN: CheckCommitInDeploymentResp.Result.ValueType  # 0
    INCLUDED: CheckCommitInDeploymentResp.Result.ValueType  # 1
    NO_RELATION: CheckCommitInDeploymentResp.Result.ValueType  # 2
    NOT_INCLUDED: CheckCommitInDeploymentResp.Result.ValueType  # 3

    RESULT_FIELD_NUMBER: builtins.int
    result: global___CheckCommitInDeploymentResp.Result.ValueType
    def __init__(
        self,
        *,
        result: global___CheckCommitInDeploymentResp.Result.ValueType = ...,
    ) -> None: ...
    def ClearField(self, field_name: typing_extensions.Literal["result", b"result"]) -> None: ...

global___CheckCommitInDeploymentResp = CheckCommitInDeploymentResp
