# @generated by generate_proto_mypy_stubs.py.  Do not edit!
import sys
from google.protobuf.descriptor import (
    Descriptor as google___protobuf___descriptor___Descriptor,
    FileDescriptor as google___protobuf___descriptor___FileDescriptor,
)

from google.protobuf.internal.containers import (
    RepeatedCompositeFieldContainer as google___protobuf___internal___containers___RepeatedCompositeFieldContainer,
)

from google.protobuf.message import (
    Message as google___protobuf___message___Message,
)

from opentelemetry.proto.resource.v1.resource_pb2 import (
    Resource as opentelemetry___proto___resource___v1___resource_pb2___Resource,
)

from typing import (
    Iterable as typing___Iterable,
    Optional as typing___Optional,
    Text as typing___Text,
    Union as typing___Union,
)

from typing_extensions import (
    Literal as typing_extensions___Literal,
)


builtin___bool = bool
builtin___bytes = bytes
builtin___float = float
builtin___int = int
if sys.version_info < (3,):
    builtin___buffer = buffer
    builtin___unicode = unicode


DESCRIPTOR: google___protobuf___descriptor___FileDescriptor = ...

class MetricConfigRequest(google___protobuf___message___Message):
    DESCRIPTOR: google___protobuf___descriptor___Descriptor = ...
    last_known_fingerprint: builtin___bytes = ...

    @property
    def resource(self) -> opentelemetry___proto___resource___v1___resource_pb2___Resource: ...

    def __init__(self,
        *,
        resource : typing___Optional[opentelemetry___proto___resource___v1___resource_pb2___Resource] = None,
        last_known_fingerprint : typing___Optional[builtin___bytes] = None,
        ) -> None: ...
    if sys.version_info >= (3,):
        @classmethod
        def FromString(cls, s: builtin___bytes) -> MetricConfigRequest: ...
    else:
        @classmethod
        def FromString(cls, s: typing___Union[builtin___bytes, builtin___buffer, builtin___unicode]) -> MetricConfigRequest: ...
    def HasField(self, field_name: typing_extensions___Literal[u"resource",b"resource"]) -> builtin___bool: ...
    def ClearField(self, field_name: typing_extensions___Literal[u"last_known_fingerprint",b"last_known_fingerprint",u"resource",b"resource"]) -> None: ...
type___MetricConfigRequest = MetricConfigRequest

class MetricConfigResponse(google___protobuf___message___Message):
    DESCRIPTOR: google___protobuf___descriptor___Descriptor = ...
    class Schedule(google___protobuf___message___Message):
        DESCRIPTOR: google___protobuf___descriptor___Descriptor = ...
        class Pattern(google___protobuf___message___Message):
            DESCRIPTOR: google___protobuf___descriptor___Descriptor = ...
            equals: typing___Text = ...
            starts_with: typing___Text = ...

            def __init__(self,
                *,
                equals : typing___Optional[typing___Text] = None,
                starts_with : typing___Optional[typing___Text] = None,
                ) -> None: ...
            if sys.version_info >= (3,):
                @classmethod
                def FromString(cls, s: builtin___bytes) -> MetricConfigResponse.Schedule.Pattern: ...
            else:
                @classmethod
                def FromString(cls, s: typing___Union[builtin___bytes, builtin___buffer, builtin___unicode]) -> MetricConfigResponse.Schedule.Pattern: ...
            def HasField(self, field_name: typing_extensions___Literal[u"equals",b"equals",u"match",b"match",u"starts_with",b"starts_with"]) -> builtin___bool: ...
            def ClearField(self, field_name: typing_extensions___Literal[u"equals",b"equals",u"match",b"match",u"starts_with",b"starts_with"]) -> None: ...
            def WhichOneof(self, oneof_group: typing_extensions___Literal[u"match",b"match"]) -> typing_extensions___Literal["equals","starts_with"]: ...
        type___Pattern = Pattern

        period_sec: builtin___int = ...

        @property
        def exclusion_patterns(self) -> google___protobuf___internal___containers___RepeatedCompositeFieldContainer[type___MetricConfigResponse.Schedule.Pattern]: ...

        @property
        def inclusion_patterns(self) -> google___protobuf___internal___containers___RepeatedCompositeFieldContainer[type___MetricConfigResponse.Schedule.Pattern]: ...

        def __init__(self,
            *,
            exclusion_patterns : typing___Optional[typing___Iterable[type___MetricConfigResponse.Schedule.Pattern]] = None,
            inclusion_patterns : typing___Optional[typing___Iterable[type___MetricConfigResponse.Schedule.Pattern]] = None,
            period_sec : typing___Optional[builtin___int] = None,
            ) -> None: ...
        if sys.version_info >= (3,):
            @classmethod
            def FromString(cls, s: builtin___bytes) -> MetricConfigResponse.Schedule: ...
        else:
            @classmethod
            def FromString(cls, s: typing___Union[builtin___bytes, builtin___buffer, builtin___unicode]) -> MetricConfigResponse.Schedule: ...
        def ClearField(self, field_name: typing_extensions___Literal[u"exclusion_patterns",b"exclusion_patterns",u"inclusion_patterns",b"inclusion_patterns",u"period_sec",b"period_sec"]) -> None: ...
    type___Schedule = Schedule

    fingerprint: builtin___bytes = ...
    suggested_wait_time_sec: builtin___int = ...

    @property
    def schedules(self) -> google___protobuf___internal___containers___RepeatedCompositeFieldContainer[type___MetricConfigResponse.Schedule]: ...

    def __init__(self,
        *,
        fingerprint : typing___Optional[builtin___bytes] = None,
        schedules : typing___Optional[typing___Iterable[type___MetricConfigResponse.Schedule]] = None,
        suggested_wait_time_sec : typing___Optional[builtin___int] = None,
        ) -> None: ...
    if sys.version_info >= (3,):
        @classmethod
        def FromString(cls, s: builtin___bytes) -> MetricConfigResponse: ...
    else:
        @classmethod
        def FromString(cls, s: typing___Union[builtin___bytes, builtin___buffer, builtin___unicode]) -> MetricConfigResponse: ...
    def ClearField(self, field_name: typing_extensions___Literal[u"fingerprint",b"fingerprint",u"schedules",b"schedules",u"suggested_wait_time_sec",b"suggested_wait_time_sec"]) -> None: ...
type___MetricConfigResponse = MetricConfigResponse
