# Path: google/cloud/datalabeling_v1beta1/types/dataset.py
# class DataType(proto.Enum):
# class Dataset(proto.Message):
# class InputConfig(proto.Message):
# class TextMetadata(proto.Message):
# class ClassificationMetadata(proto.Message):
# class GcsSource(proto.Message):
# class BigQuerySource(proto.Message):
# class OutputConfig(proto.Message):
# class GcsDestination(proto.Message):
# class GcsFolderDestination(proto.Message):
# class DataItem(proto.Message):
# class AnnotatedDataset(proto.Message):
# class LabelStats(proto.Message):
# class AnnotatedDatasetMetadata(proto.Message):
# class Example(proto.Message):
#     DATA_TYPE_UNSPECIFIED = 0
#     IMAGE = 1
#     VIDEO = 2
#     TEXT = 4
#     GENERAL_DATA = 6
# 
# Path: google/cloud/datalabeling_v1beta1/types/evaluation.py
# class Evaluation(proto.Message):
# class EvaluationConfig(proto.Message):
# class BoundingBoxEvaluationOptions(proto.Message):
# class EvaluationMetrics(proto.Message):
# class ClassificationMetrics(proto.Message):
# class ObjectDetectionMetrics(proto.Message):
# class PrCurve(proto.Message):
#     class ConfidenceMetricsEntry(proto.Message):
# class ConfusionMatrix(proto.Message):
#     class ConfusionMatrixEntry(proto.Message):
#     class Row(proto.Message):
# 
# Path: google/cloud/datalabeling_v1beta1/types/human_annotation_config.py
# class StringAggregationType(proto.Enum):
# class HumanAnnotationConfig(proto.Message):
# class ImageClassificationConfig(proto.Message):
# class BoundingPolyConfig(proto.Message):
# class PolylineConfig(proto.Message):
# class SegmentationConfig(proto.Message):
# class VideoClassificationConfig(proto.Message):
#     class AnnotationSpecSetConfig(proto.Message):
# class ObjectDetectionConfig(proto.Message):
# class ObjectTrackingConfig(proto.Message):
# class EventConfig(proto.Message):
# class TextClassificationConfig(proto.Message):
# class SentimentConfig(proto.Message):
# class TextEntityExtractionConfig(proto.Message):
#     STRING_AGGREGATION_TYPE_UNSPECIFIED = 0
#     MAJORITY_VOTE = 1
#     UNANIMOUS_VOTE = 2
#     NO_AGGREGATION = 3


import proto  # type: ignore
from google.cloud.datalabeling_v1beta1.types import dataset
from google.cloud.datalabeling_v1beta1.types import evaluation
from google.cloud.datalabeling_v1beta1.types import (
    human_annotation_config as gcd_human_annotation_config,
)
from google.protobuf import timestamp_pb2  # type: ignore
from google.rpc import status_pb2  # type: ignore
            save to BigQuery during each [evaluation
            interval][google.cloud.datalabeling.v1beta1.EvaluationJob.schedule].
            This limit overrides ``example_sample_percentage``: even if
            the service has not sampled enough predictions to fulfill
            ``example_sample_perecentage`` during an interval, it stops
            sampling predictions when it meets this limit.
        example_sample_percentage (float):
            Required. Fraction of predictions to sample and save to
            BigQuery during each [evaluation
            interval][google.cloud.datalabeling.v1beta1.EvaluationJob.schedule].
            For example, 0.1 means 10% of predictions served by your
            model version get saved to BigQuery.
        evaluation_job_alert_config (google.cloud.datalabeling_v1beta1.types.EvaluationJobAlertConfig):
            Optional. Configuration details for
            evaluation job alerts. Specify this field if you
            want to receive email alerts if the evaluation
            job finds that your predictions have low mean
            average precision during a run.
    """

    image_classification_config = proto.Field(
        proto.MESSAGE,
        number=4,
        oneof="human_annotation_request_config",
        message=gcd_human_annotation_config.ImageClassificationConfig,
    )
    bounding_poly_config = proto.Field(
        proto.MESSAGE,
        number=5,
        oneof="human_annotation_request_config",

# Path: google/cloud/datalabeling_v1beta1/types/dataset.py
# class DataType(proto.Enum):
# class Dataset(proto.Message):
# class InputConfig(proto.Message):
# class TextMetadata(proto.Message):
# class ClassificationMetadata(proto.Message):
# class GcsSource(proto.Message):
# class BigQuerySource(proto.Message):
# class OutputConfig(proto.Message):
# class GcsDestination(proto.Message):
# class GcsFolderDestination(proto.Message):
# class DataItem(proto.Message):
# class AnnotatedDataset(proto.Message):
# class LabelStats(proto.Message):
# class AnnotatedDatasetMetadata(proto.Message):
# class Example(proto.Message):
#     DATA_TYPE_UNSPECIFIED = 0
#     IMAGE = 1
#     VIDEO = 2
#     TEXT = 4
#     GENERAL_DATA = 6
# 
# Path: google/cloud/datalabeling_v1beta1/types/evaluation.py
# class Evaluation(proto.Message):
# class EvaluationConfig(proto.Message):
# class BoundingBoxEvaluationOptions(proto.Message):
# class EvaluationMetrics(proto.Message):
# class ClassificationMetrics(proto.Message):
# class ObjectDetectionMetrics(proto.Message):
# class PrCurve(proto.Message):
#     class ConfidenceMetricsEntry(proto.Message):
# class ConfusionMatrix(proto.Message):
#     class ConfusionMatrixEntry(proto.Message):
#     class Row(proto.Message):
# 
# Path: google/cloud/datalabeling_v1beta1/types/human_annotation_config.py
# class StringAggregationType(proto.Enum):
# class HumanAnnotationConfig(proto.Message):
# class ImageClassificationConfig(proto.Message):
# class BoundingPolyConfig(proto.Message):
# class PolylineConfig(proto.Message):
# class SegmentationConfig(proto.Message):
# class VideoClassificationConfig(proto.Message):
#     class AnnotationSpecSetConfig(proto.Message):
# class ObjectDetectionConfig(proto.Message):
# class ObjectTrackingConfig(proto.Message):
# class EventConfig(proto.Message):
# class TextClassificationConfig(proto.Message):
# class SentimentConfig(proto.Message):
# class TextEntityExtractionConfig(proto.Message):
#     STRING_AGGREGATION_TYPE_UNSPECIFIED = 0
#     MAJORITY_VOTE = 1
#     UNANIMOUS_VOTE = 2
#     NO_AGGREGATION = 3


# Path: google/cloud/datalabeling_v1beta1/types/evaluation_job.py
import proto  # type: ignore
from google.cloud.datalabeling_v1beta1.types import dataset
from google.cloud.datalabeling_v1beta1.types import evaluation
from google.cloud.datalabeling_v1beta1.types import (
    human_annotation_config as gcd_human_annotation_config,
)
from google.protobuf import timestamp_pb2  # type: ignore
from google.rpc import status_pb2  # type: ignore

            save to BigQuery during each [evaluation
            interval][google.cloud.datalabeling.v1beta1.EvaluationJob.schedule].
            This limit overrides ``example_sample_percentage``: even if
            the service has not sampled enough predictions to fulfill
            ``example_sample_perecentage`` during an interval, it stops
            sampling predictions when it meets this limit.
        example_sample_percentage (float):
            Required. Fraction of predictions to sample and save to
            BigQuery during each [evaluation
            interval][google.cloud.datalabeling.v1beta1.EvaluationJob.schedule].
            For example, 0.1 means 10% of predictions served by your
            model version get saved to BigQuery.
        evaluation_job_alert_config (google.cloud.datalabeling_v1beta1.types.EvaluationJobAlertConfig):
            Optional. Configuration details for
            evaluation job alerts. Specify this field if you
            want to receive email alerts if the evaluation
            job finds that your predictions have low mean
            average precision during a run.
    """

    image_classification_config = proto.Field(
        proto.MESSAGE,
        number=4,
        oneof="human_annotation_request_config",
        message=gcd_human_annotation_config.ImageClassificationConfig,
    )
    bounding_poly_config = proto.Field(
        proto.MESSAGE,
        number=5,
        oneof="human_annotation_request_config",

        message=gcd_human_annotation_config.BoundingPolyConfig,