"""
@generated by mypy-protobuf.  Do not edit manually!
isort:skip_file
"""
import builtins
import google.protobuf.descriptor
import google.protobuf.internal.enum_type_wrapper
import google.protobuf.message
import google.protobuf.timestamp_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 _JobStatus:
    ValueType = typing.NewType("ValueType", builtins.int)
    V: typing_extensions.TypeAlias = ValueType

class _JobStatusEnumTypeWrapper(google.protobuf.internal.enum_type_wrapper._EnumTypeWrapper[_JobStatus.ValueType], builtins.type):  # noqa: F821
    DESCRIPTOR: google.protobuf.descriptor.EnumDescriptor
    JOB_STATUS_INVALID: _JobStatus.ValueType  # 0
    """reserved"""
    JOB_STATUS_SUCCESS: _JobStatus.ValueType  # 1
    """job successful"""
    JOB_STATUS_FAILURE: _JobStatus.ValueType  # 2
    """job failed"""
    JOB_STATUS_TOO_EARLY: _JobStatus.ValueType  # 3
    """job is too early"""

class JobStatus(_JobStatus, metaclass=_JobStatusEnumTypeWrapper): ...

JOB_STATUS_INVALID: JobStatus.ValueType  # 0
"""reserved"""
JOB_STATUS_SUCCESS: JobStatus.ValueType  # 1
"""job successful"""
JOB_STATUS_FAILURE: JobStatus.ValueType  # 2
"""job failed"""
JOB_STATUS_TOO_EARLY: JobStatus.ValueType  # 3
"""job is too early"""
global___JobStatus = JobStatus

class BatchJobIngestionDetails(google.protobuf.message.Message):
    """batchV1 job ingestion details"""

    DESCRIPTOR: google.protobuf.descriptor.Descriptor

    BATCH_EXECUTION_DATE_FIELD_NUMBER: builtins.int
    INGESTION_WINDOW_START_TIME_FIELD_NUMBER: builtins.int
    INGESTION_WINDOW_END_TIME_FIELD_NUMBER: builtins.int
    @property
    def batch_execution_date(self) -> google.protobuf.timestamp_pb2.Timestamp:
        """LOGICAL batch execution date (cron tick)"""
    @property
    def ingestion_window_start_time(self) -> google.protobuf.timestamp_pb2.Timestamp:
        """LOGICAL ingestion window start time"""
    @property
    def ingestion_window_end_time(self) -> google.protobuf.timestamp_pb2.Timestamp:
        """LOGICAL ingestion window end time"""
    def __init__(
        self,
        *,
        batch_execution_date: google.protobuf.timestamp_pb2.Timestamp | None = ...,
        ingestion_window_start_time: google.protobuf.timestamp_pb2.Timestamp | None = ...,
        ingestion_window_end_time: google.protobuf.timestamp_pb2.Timestamp | None = ...,
    ) -> None: ...
    def HasField(self, field_name: typing_extensions.Literal["batch_execution_date", b"batch_execution_date", "ingestion_window_end_time", b"ingestion_window_end_time", "ingestion_window_start_time", b"ingestion_window_start_time"]) -> builtins.bool: ...
    def ClearField(self, field_name: typing_extensions.Literal["batch_execution_date", b"batch_execution_date", "ingestion_window_end_time", b"ingestion_window_end_time", "ingestion_window_start_time", b"ingestion_window_start_time"]) -> None: ...

global___BatchJobIngestionDetails = BatchJobIngestionDetails

class StreamingJobIngestionDetails(google.protobuf.message.Message):
    """row-level streaming"""

    DESCRIPTOR: google.protobuf.descriptor.Descriptor

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

global___StreamingJobIngestionDetails = StreamingJobIngestionDetails

class StreamingAggregationJobIngestionDetails(google.protobuf.message.Message):
    """streaming aggregation"""

    DESCRIPTOR: google.protobuf.descriptor.Descriptor

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

global___StreamingAggregationJobIngestionDetails = StreamingAggregationJobIngestionDetails

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

    BATCH_INGESTION_DETAILS_FIELD_NUMBER: builtins.int
    STREAMING_INGESTION_DETAILS_FIELD_NUMBER: builtins.int
    STREAMING_AGGR_INGESTION_DETAILS_FIELD_NUMBER: builtins.int
    NUM_AFFECTED_RECORDS_FIELD_NUMBER: builtins.int
    RUN_START_TIME_FIELD_NUMBER: builtins.int
    RUN_END_TIME_FIELD_NUMBER: builtins.int
    EXECUTION_ID_FIELD_NUMBER: builtins.int
    ENVIRONMENT_ID_FIELD_NUMBER: builtins.int
    FEATURESET_ID_FIELD_NUMBER: builtins.int
    FEATURESET_NAME_FIELD_NUMBER: builtins.int
    STATUS_FIELD_NUMBER: builtins.int
    TRY_NUMBER_FIELD_NUMBER: builtins.int
    @property
    def batch_ingestion_details(self) -> global___BatchJobIngestionDetails: ...
    @property
    def streaming_ingestion_details(self) -> global___StreamingJobIngestionDetails: ...
    @property
    def streaming_aggr_ingestion_details(self) -> global___StreamingAggregationJobIngestionDetails: ...
    num_affected_records: builtins.int
    """number of affected records"""
    @property
    def run_start_time(self) -> google.protobuf.timestamp_pb2.Timestamp:
        """SYSTEM start time of the job"""
    @property
    def run_end_time(self) -> google.protobuf.timestamp_pb2.Timestamp:
        """SYSTEM end time of the job"""
    execution_id: builtins.int
    """execution id"""
    environment_id: builtins.str
    """environment_id"""
    featureset_id: builtins.str
    """featureset id"""
    featureset_name: builtins.str
    """featureset name"""
    status: global___JobStatus.ValueType
    """job status"""
    try_number: builtins.int
    """try number"""
    def __init__(
        self,
        *,
        batch_ingestion_details: global___BatchJobIngestionDetails | None = ...,
        streaming_ingestion_details: global___StreamingJobIngestionDetails | None = ...,
        streaming_aggr_ingestion_details: global___StreamingAggregationJobIngestionDetails | None = ...,
        num_affected_records: builtins.int = ...,
        run_start_time: google.protobuf.timestamp_pb2.Timestamp | None = ...,
        run_end_time: google.protobuf.timestamp_pb2.Timestamp | None = ...,
        execution_id: builtins.int = ...,
        environment_id: builtins.str = ...,
        featureset_id: builtins.str = ...,
        featureset_name: builtins.str = ...,
        status: global___JobStatus.ValueType = ...,
        try_number: builtins.int = ...,
    ) -> None: ...
    def HasField(self, field_name: typing_extensions.Literal["batch_ingestion_details", b"batch_ingestion_details", "ingestion_details", b"ingestion_details", "run_end_time", b"run_end_time", "run_start_time", b"run_start_time", "streaming_aggr_ingestion_details", b"streaming_aggr_ingestion_details", "streaming_ingestion_details", b"streaming_ingestion_details"]) -> builtins.bool: ...
    def ClearField(self, field_name: typing_extensions.Literal["batch_ingestion_details", b"batch_ingestion_details", "environment_id", b"environment_id", "execution_id", b"execution_id", "featureset_id", b"featureset_id", "featureset_name", b"featureset_name", "ingestion_details", b"ingestion_details", "num_affected_records", b"num_affected_records", "run_end_time", b"run_end_time", "run_start_time", b"run_start_time", "status", b"status", "streaming_aggr_ingestion_details", b"streaming_aggr_ingestion_details", "streaming_ingestion_details", b"streaming_ingestion_details", "try_number", b"try_number"]) -> None: ...
    def WhichOneof(self, oneof_group: typing_extensions.Literal["ingestion_details", b"ingestion_details"]) -> typing_extensions.Literal["batch_ingestion_details", "streaming_ingestion_details", "streaming_aggr_ingestion_details"] | None: ...

global___JobReport = JobReport
