"""
@generated by mypy-protobuf.  Do not edit manually!
isort:skip_file

Protocol Buffers describing endpoints containing a service.
"""
import builtins
import google.protobuf.descriptor
import google.protobuf.message
import sys

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

DESCRIPTOR: google.protobuf.descriptor.FileDescriptor

@typing_extensions.final
class ApiServiceDescriptor(google.protobuf.message.Message):
    """A description of how to connect to a Beam API endpoint."""

    DESCRIPTOR: google.protobuf.descriptor.Descriptor

    URL_FIELD_NUMBER: builtins.int
    AUTHENTICATION_FIELD_NUMBER: builtins.int
    url: builtins.str
    """(Required) The URL to connect to."""
    @property
    def authentication(self) -> global___AuthenticationSpec:
        """(Optional) The method for authentication. If unspecified, access to the
        url is already being performed in a trusted context (e.g. localhost,
        private network).
        """
    def __init__(
        self,
        *,
        url: builtins.str | None = ...,
        authentication: global___AuthenticationSpec | None = ...,
    ) -> None: ...
    def HasField(self, field_name: typing_extensions.Literal["authentication", b"authentication"]) -> builtins.bool: ...
    def ClearField(self, field_name: typing_extensions.Literal["authentication", b"authentication", "url", b"url"]) -> None: ...

global___ApiServiceDescriptor = ApiServiceDescriptor

@typing_extensions.final
class AuthenticationSpec(google.protobuf.message.Message):
    DESCRIPTOR: google.protobuf.descriptor.Descriptor

    URN_FIELD_NUMBER: builtins.int
    PAYLOAD_FIELD_NUMBER: builtins.int
    urn: builtins.str
    """(Required) A URN that describes the accompanying payload.
    For any URN that is not recognized (by whomever is inspecting
    it) the parameter payload should be treated as opaque and
    passed as-is.
    """
    payload: builtins.bytes
    """(Optional) The data specifying any parameters to the URN. If
    the URN does not require any arguments, this may be omitted.
    """
    def __init__(
        self,
        *,
        urn: builtins.str | None = ...,
        payload: builtins.bytes | None = ...,
    ) -> None: ...
    def ClearField(self, field_name: typing_extensions.Literal["payload", b"payload", "urn", b"urn"]) -> None: ...

global___AuthenticationSpec = AuthenticationSpec
