"""
@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.message
import google.protobuf.timestamp_pb2
import qwak.execution.v1.jobs.job_pb2
import sys
import typing

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

DESCRIPTOR: google.protobuf.descriptor.FileDescriptor

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

    JOB_RECORD_FIELD_NUMBER: builtins.int
    @property
    def job_record(self) -> qwak.execution.v1.jobs.job_pb2.JobRecord:
        """a Job Record to create or replace"""
    def __init__(
        self,
        *,
        job_record: qwak.execution.v1.jobs.job_pb2.JobRecord | None = ...,
    ) -> None: ...
    def HasField(self, field_name: typing_extensions.Literal["job_record", b"job_record"]) -> builtins.bool: ...
    def ClearField(self, field_name: typing_extensions.Literal["job_record", b"job_record"]) -> None: ...

global___ApplyJobRecordRequest = ApplyJobRecordRequest

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

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

global___ApplyJobRecordResponse = ApplyJobRecordResponse

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

    FEATURESET_ID_FIELD_NUMBER: builtins.int
    featureset_id: builtins.str
    """the featureset id for which to start a pagination"""
    def __init__(
        self,
        *,
        featureset_id: builtins.str = ...,
    ) -> None: ...
    def ClearField(self, field_name: typing_extensions.Literal["featureset_id", b"featureset_id"]) -> None: ...

global___InitPaginationRequest = InitPaginationRequest

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

    RECORD_COUNT_FIELD_NUMBER: builtins.int
    MAX_RECORD_ID_FIELD_NUMBER: builtins.int
    record_count: builtins.int
    """Number of records found for this Featureset at the time of querying
    this is used mainly by the client to plan things like number of pages etc.
    """
    max_record_id: builtins.int
    """the current highest record id for this FS. this is the anchor
    to use on subsequent requests if the caller wants to achieve
    a view of a static list
    """
    def __init__(
        self,
        *,
        record_count: builtins.int = ...,
        max_record_id: builtins.int = ...,
    ) -> None: ...
    def ClearField(self, field_name: typing_extensions.Literal["max_record_id", b"max_record_id", "record_count", b"record_count"]) -> None: ...

global___InitPaginationResponse = InitPaginationResponse

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

    FEATURESET_ID_FIELD_NUMBER: builtins.int
    PAGE_SIZE_FIELD_NUMBER: builtins.int
    PAGE_NUMBER_FIELD_NUMBER: builtins.int
    MAX_RECORD_ID_FIELD_NUMBER: builtins.int
    featureset_id: builtins.str
    """featureset id"""
    page_size: builtins.int
    """The page size to use for the response - the number of results in the response
    is the minimum of the page_size and number of matching rows.
    - a negative value means all results will be returned (in that case page_number is ignored)
    """
    page_number: builtins.int
    """The page number to use"""
    max_record_id: builtins.int
    """The max record id to use as anchor - this is the value returned from InitPagination"""
    def __init__(
        self,
        *,
        featureset_id: builtins.str = ...,
        page_size: builtins.int = ...,
        page_number: builtins.int = ...,
        max_record_id: builtins.int = ...,
    ) -> None: ...
    def ClearField(self, field_name: typing_extensions.Literal["featureset_id", b"featureset_id", "max_record_id", b"max_record_id", "page_number", b"page_number", "page_size", b"page_size"]) -> None: ...

global___ListJobsRequest = ListJobsRequest

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

    JOB_RECORDS_FIELD_NUMBER: builtins.int
    @property
    def job_records(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[qwak.execution.v1.jobs.job_pb2.JobRecord]:
        """All rows, sorted by the job record start time (event time)"""
    def __init__(
        self,
        *,
        job_records: collections.abc.Iterable[qwak.execution.v1.jobs.job_pb2.JobRecord] | None = ...,
    ) -> None: ...
    def ClearField(self, field_name: typing_extensions.Literal["job_records", b"job_records"]) -> None: ...

global___ListJobsResponse = ListJobsResponse

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

    EXECUTION_ID_FIELD_NUMBER: builtins.int
    execution_id: builtins.str
    """the execution id"""
    def __init__(
        self,
        *,
        execution_id: builtins.str = ...,
    ) -> None: ...
    def ClearField(self, field_name: typing_extensions.Literal["execution_id", b"execution_id"]) -> None: ...

global___InitPaginationByExecutionIdRequest = InitPaginationByExecutionIdRequest

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

    RECORD_COUNT_FIELD_NUMBER: builtins.int
    MAX_RECORD_ID_FIELD_NUMBER: builtins.int
    record_count: builtins.int
    """Number of records found for this Featureset and execution at the time of querying.
    this is used mainly by the client to plan things like number of pages etc.
    """
    max_record_id: builtins.int
    """the current highest record id for this FS. this is the anchor
    to use on subsequent requests if the caller wants to achieve
    a view of a static list
    """
    def __init__(
        self,
        *,
        record_count: builtins.int = ...,
        max_record_id: builtins.int = ...,
    ) -> None: ...
    def ClearField(self, field_name: typing_extensions.Literal["max_record_id", b"max_record_id", "record_count", b"record_count"]) -> None: ...

global___InitPaginationByExecutionIdResponse = InitPaginationByExecutionIdResponse

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

    EXECUTION_ID_FIELD_NUMBER: builtins.int
    PAGE_SIZE_FIELD_NUMBER: builtins.int
    PAGE_NUMBER_FIELD_NUMBER: builtins.int
    MAX_RECORD_ID_FIELD_NUMBER: builtins.int
    execution_id: builtins.str
    """execution id"""
    page_size: builtins.int
    """The page size to use for the response - the number of results in the response
    is the minimum of the page_size and number of matching rows.
    - a negative value means all results will be returned (in that case page_number is ignored)
    """
    page_number: builtins.int
    """The page number to use"""
    max_record_id: builtins.int
    """The max record id to use as anchor - this is the value returned from InitPagination"""
    def __init__(
        self,
        *,
        execution_id: builtins.str = ...,
        page_size: builtins.int = ...,
        page_number: builtins.int = ...,
        max_record_id: builtins.int = ...,
    ) -> None: ...
    def ClearField(self, field_name: typing_extensions.Literal["execution_id", b"execution_id", "max_record_id", b"max_record_id", "page_number", b"page_number", "page_size", b"page_size"]) -> None: ...

global___ListJobsByExecutionIdRequest = ListJobsByExecutionIdRequest

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

    JOB_RECORDS_FIELD_NUMBER: builtins.int
    @property
    def job_records(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[qwak.execution.v1.jobs.job_pb2.JobRecord]:
        """All rows, sorted by the job record start time (event time)"""
    def __init__(
        self,
        *,
        job_records: collections.abc.Iterable[qwak.execution.v1.jobs.job_pb2.JobRecord] | None = ...,
    ) -> None: ...
    def ClearField(self, field_name: typing_extensions.Literal["job_records", b"job_records"]) -> None: ...

global___ListJobsByExecutionIdResponse = ListJobsByExecutionIdResponse

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

    FEATURESET_ID_FIELD_NUMBER: builtins.int
    featureset_id: builtins.str
    """The featureset id"""
    def __init__(
        self,
        *,
        featureset_id: builtins.str = ...,
    ) -> None: ...
    def ClearField(self, field_name: typing_extensions.Literal["featureset_id", b"featureset_id"]) -> None: ...

global___DeleteFeaturesetJobsRequest = DeleteFeaturesetJobsRequest

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

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

global___DeleteFeaturesetJobsResponse = DeleteFeaturesetJobsResponse

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

    FEATURESET_ID_FIELD_NUMBER: builtins.int
    featureset_id: builtins.str
    def __init__(
        self,
        *,
        featureset_id: builtins.str = ...,
    ) -> None: ...
    def ClearField(self, field_name: typing_extensions.Literal["featureset_id", b"featureset_id"]) -> None: ...

global___GetLatestSuccessfulJobByFeaturesetIdRequest = GetLatestSuccessfulJobByFeaturesetIdRequest

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

    JOB_RECORD_FIELD_NUMBER: builtins.int
    @property
    def job_record(self) -> qwak.execution.v1.jobs.job_pb2.JobRecord: ...
    def __init__(
        self,
        *,
        job_record: qwak.execution.v1.jobs.job_pb2.JobRecord | None = ...,
    ) -> None: ...
    def HasField(self, field_name: typing_extensions.Literal["job_record", b"job_record", "job_record_resp", b"job_record_resp"]) -> builtins.bool: ...
    def ClearField(self, field_name: typing_extensions.Literal["job_record", b"job_record", "job_record_resp", b"job_record_resp"]) -> None: ...
    def WhichOneof(self, oneof_group: typing_extensions.Literal["job_record_resp", b"job_record_resp"]) -> typing_extensions.Literal["job_record"] | None: ...

global___GetLatestSuccessfulJobByFeaturesetIdResponse = GetLatestSuccessfulJobByFeaturesetIdResponse

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

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

global___GetAllFeaturesetLatestSuccessfulJobsRequest = GetAllFeaturesetLatestSuccessfulJobsRequest

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

    JOB_RECORDS_FIELD_NUMBER: builtins.int
    @property
    def job_records(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[qwak.execution.v1.jobs.job_pb2.JobRecord]:
        """all latest requested jobs"""
    def __init__(
        self,
        *,
        job_records: collections.abc.Iterable[qwak.execution.v1.jobs.job_pb2.JobRecord] | None = ...,
    ) -> None: ...
    def ClearField(self, field_name: typing_extensions.Literal["job_records", b"job_records"]) -> None: ...

global___GetAllFeaturesetLatestSuccessfulJobsResponse = GetAllFeaturesetLatestSuccessfulJobsResponse

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

    LOWER_TIME_BOUND_FIELD_NUMBER: builtins.int
    UPPER_TIME_BOUND_FIELD_NUMBER: builtins.int
    @property
    def lower_time_bound(self) -> google.protobuf.timestamp_pb2.Timestamp:
        """Summary lower time bound.
        applied on processing start_time column.
        """
    @property
    def upper_time_bound(self) -> google.protobuf.timestamp_pb2.Timestamp: ...
    def __init__(
        self,
        *,
        lower_time_bound: google.protobuf.timestamp_pb2.Timestamp | None = ...,
        upper_time_bound: google.protobuf.timestamp_pb2.Timestamp | None = ...,
    ) -> None: ...
    def HasField(self, field_name: typing_extensions.Literal["lower_time_bound", b"lower_time_bound", "upper_bound", b"upper_bound", "upper_time_bound", b"upper_time_bound"]) -> builtins.bool: ...
    def ClearField(self, field_name: typing_extensions.Literal["lower_time_bound", b"lower_time_bound", "upper_bound", b"upper_bound", "upper_time_bound", b"upper_time_bound"]) -> None: ...
    def WhichOneof(self, oneof_group: typing_extensions.Literal["upper_bound", b"upper_bound"]) -> typing_extensions.Literal["upper_time_bound"] | None: ...

global___GetAllFeaturesetJobsSummariesRequest = GetAllFeaturesetJobsSummariesRequest

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

    JOBS_SUMMARIES_FIELD_NUMBER: builtins.int
    @property
    def jobs_summaries(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[global___FeaturesetJobsSummary]:
        """Job summaries per featureset for the entire environment"""
    def __init__(
        self,
        *,
        jobs_summaries: collections.abc.Iterable[global___FeaturesetJobsSummary] | None = ...,
    ) -> None: ...
    def ClearField(self, field_name: typing_extensions.Literal["jobs_summaries", b"jobs_summaries"]) -> None: ...

global___GetAllFeaturesetJobsSummariesResponse = GetAllFeaturesetJobsSummariesResponse

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

    FEATURESET_ID_FIELD_NUMBER: builtins.int
    TOTAL_AFFECTED_ROWS_FIELD_NUMBER: builtins.int
    featureset_id: builtins.str
    """Featureset Id"""
    total_affected_rows: builtins.int
    """Number of affected rows"""
    def __init__(
        self,
        *,
        featureset_id: builtins.str = ...,
        total_affected_rows: builtins.int = ...,
    ) -> None: ...
    def ClearField(self, field_name: typing_extensions.Literal["featureset_id", b"featureset_id", "total_affected_rows", b"total_affected_rows"]) -> None: ...

global___FeaturesetJobsSummary = FeaturesetJobsSummary

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

    EXECUTION_ID_FIELD_NUMBER: builtins.int
    execution_id: builtins.str
    def __init__(
        self,
        *,
        execution_id: builtins.str = ...,
    ) -> None: ...
    def ClearField(self, field_name: typing_extensions.Literal["execution_id", b"execution_id"]) -> None: ...

global___GetJobsSummaryByExecutionIdRequest = GetJobsSummaryByExecutionIdRequest

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

    EXECUTION_ID_FIELD_NUMBER: builtins.int
    JOB_COUNT_FIELD_NUMBER: builtins.int
    TOTAL_AFFECTED_ROWS_FIELD_NUMBER: builtins.int
    FIRST_JOB_RECORD_FIELD_NUMBER: builtins.int
    LAST_JOB_RECORD_FIELD_NUMBER: builtins.int
    execution_id: builtins.str
    job_count: builtins.int
    total_affected_rows: builtins.int
    @property
    def first_job_record(self) -> qwak.execution.v1.jobs.job_pb2.JobRecord: ...
    @property
    def last_job_record(self) -> qwak.execution.v1.jobs.job_pb2.JobRecord: ...
    def __init__(
        self,
        *,
        execution_id: builtins.str = ...,
        job_count: builtins.int = ...,
        total_affected_rows: builtins.int = ...,
        first_job_record: qwak.execution.v1.jobs.job_pb2.JobRecord | None = ...,
        last_job_record: qwak.execution.v1.jobs.job_pb2.JobRecord | None = ...,
    ) -> None: ...
    def HasField(self, field_name: typing_extensions.Literal["first_job_record", b"first_job_record", "last_job_record", b"last_job_record"]) -> builtins.bool: ...
    def ClearField(self, field_name: typing_extensions.Literal["execution_id", b"execution_id", "first_job_record", b"first_job_record", "job_count", b"job_count", "last_job_record", b"last_job_record", "total_affected_rows", b"total_affected_rows"]) -> None: ...

global___GetJobsSummaryByExecutionIdResponse = GetJobsSummaryByExecutionIdResponse

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

    EXECUTION_IDS_FIELD_NUMBER: builtins.int
    @property
    def execution_ids(self) -> google.protobuf.internal.containers.RepeatedScalarFieldContainer[builtins.str]: ...
    def __init__(
        self,
        *,
        execution_ids: collections.abc.Iterable[builtins.str] | None = ...,
    ) -> None: ...
    def ClearField(self, field_name: typing_extensions.Literal["execution_ids", b"execution_ids"]) -> None: ...

global___GetJobSummariesByExecutionIdsRequest = GetJobSummariesByExecutionIdsRequest

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

    EXECUTION_SUMMARIES_FIELD_NUMBER: builtins.int
    @property
    def execution_summaries(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[global___ExecutionJobsSummary]: ...
    def __init__(
        self,
        *,
        execution_summaries: collections.abc.Iterable[global___ExecutionJobsSummary] | None = ...,
    ) -> None: ...
    def ClearField(self, field_name: typing_extensions.Literal["execution_summaries", b"execution_summaries"]) -> None: ...

global___GetJobSummariesByExecutionIdsResponse = GetJobSummariesByExecutionIdsResponse

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

    EXECUTION_ID_FIELD_NUMBER: builtins.int
    JOB_COUNT_FIELD_NUMBER: builtins.int
    TOTAL_AFFECTED_ROWS_FIELD_NUMBER: builtins.int
    FIRST_JOB_RECORD_FIELD_NUMBER: builtins.int
    LAST_JOB_RECORD_FIELD_NUMBER: builtins.int
    execution_id: builtins.str
    """execution ID"""
    job_count: builtins.int
    """number of jobs within this execution"""
    total_affected_rows: builtins.int
    """total affected rows by all jobs known for this execution"""
    @property
    def first_job_record(self) -> qwak.execution.v1.jobs.job_pb2.JobRecord: ...
    @property
    def last_job_record(self) -> qwak.execution.v1.jobs.job_pb2.JobRecord: ...
    def __init__(
        self,
        *,
        execution_id: builtins.str = ...,
        job_count: builtins.int = ...,
        total_affected_rows: builtins.int = ...,
        first_job_record: qwak.execution.v1.jobs.job_pb2.JobRecord | None = ...,
        last_job_record: qwak.execution.v1.jobs.job_pb2.JobRecord | None = ...,
    ) -> None: ...
    def HasField(self, field_name: typing_extensions.Literal["first_job_record", b"first_job_record", "first_job_record_opt", b"first_job_record_opt", "last_job_record", b"last_job_record", "last_job_record_opt", b"last_job_record_opt"]) -> builtins.bool: ...
    def ClearField(self, field_name: typing_extensions.Literal["execution_id", b"execution_id", "first_job_record", b"first_job_record", "first_job_record_opt", b"first_job_record_opt", "job_count", b"job_count", "last_job_record", b"last_job_record", "last_job_record_opt", b"last_job_record_opt", "total_affected_rows", b"total_affected_rows"]) -> None: ...
    @typing.overload
    def WhichOneof(self, oneof_group: typing_extensions.Literal["first_job_record_opt", b"first_job_record_opt"]) -> typing_extensions.Literal["first_job_record"] | None: ...
    @typing.overload
    def WhichOneof(self, oneof_group: typing_extensions.Literal["last_job_record_opt", b"last_job_record_opt"]) -> typing_extensions.Literal["last_job_record"] | None: ...

global___ExecutionJobsSummary = ExecutionJobsSummary
