"""
@generated by mypy-protobuf.  Do not edit manually!
isort:skip_file
Older protoc compilers don't understand edition yet."""

import builtins
import collections.abc
import google.protobuf.descriptor
import google.protobuf.internal.containers
import google.protobuf.internal.enum_type_wrapper
import google.protobuf.message
import google.protobuf.struct_pb2
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 _TaskState:
    ValueType = typing.NewType("ValueType", builtins.int)
    V: typing_extensions.TypeAlias = ValueType

class _TaskStateEnumTypeWrapper(
    google.protobuf.internal.enum_type_wrapper._EnumTypeWrapper[_TaskState.ValueType],
    builtins.type,
):
    DESCRIPTOR: google.protobuf.descriptor.EnumDescriptor
    TASK_STATE_UNSPECIFIED: _TaskState.ValueType  # 0
    TASK_STATE_SUBMITTED: _TaskState.ValueType  # 1
    """Represents the status that acknowledges a task is created"""
    TASK_STATE_WORKING: _TaskState.ValueType  # 2
    """Represents the status that a task is actively being processed"""
    TASK_STATE_COMPLETED: _TaskState.ValueType  # 3
    """Represents the status a task is finished. This is a terminal state"""
    TASK_STATE_FAILED: _TaskState.ValueType  # 4
    """Represents the status a task is done but failed. This is a terminal state"""
    TASK_STATE_CANCELLED: _TaskState.ValueType  # 5
    """Represents the status a task was cancelled before it finished.
    This is a terminal state.
    """
    TASK_STATE_INPUT_REQUIRED: _TaskState.ValueType  # 6
    """Represents the status that the task requires information to complete.
    This is an interrupted state.
    """
    TASK_STATE_REJECTED: _TaskState.ValueType  # 7
    """Represents the status that the agent has decided to not perform the task.
    This may be done during initial task creation or later once an agent
    has determined it can't or won't proceed. This is a terminal state.
    """
    TASK_STATE_AUTH_REQUIRED: _TaskState.ValueType  # 8
    """Represents the state that some authentication is needed from the upstream
    client. Authentication is expected to come out-of-band thus this is not
    an interrupted or terminal state.
    """

class TaskState(_TaskState, metaclass=_TaskStateEnumTypeWrapper):
    """The set of states a Task can be in."""

TASK_STATE_UNSPECIFIED: TaskState.ValueType  # 0
TASK_STATE_SUBMITTED: TaskState.ValueType  # 1
"""Represents the status that acknowledges a task is created"""
TASK_STATE_WORKING: TaskState.ValueType  # 2
"""Represents the status that a task is actively being processed"""
TASK_STATE_COMPLETED: TaskState.ValueType  # 3
"""Represents the status a task is finished. This is a terminal state"""
TASK_STATE_FAILED: TaskState.ValueType  # 4
"""Represents the status a task is done but failed. This is a terminal state"""
TASK_STATE_CANCELLED: TaskState.ValueType  # 5
"""Represents the status a task was cancelled before it finished.
This is a terminal state.
"""
TASK_STATE_INPUT_REQUIRED: TaskState.ValueType  # 6
"""Represents the status that the task requires information to complete.
This is an interrupted state.
"""
TASK_STATE_REJECTED: TaskState.ValueType  # 7
"""Represents the status that the agent has decided to not perform the task.
This may be done during initial task creation or later once an agent
has determined it can't or won't proceed. This is a terminal state.
"""
TASK_STATE_AUTH_REQUIRED: TaskState.ValueType  # 8
"""Represents the state that some authentication is needed from the upstream
client. Authentication is expected to come out-of-band thus this is not
an interrupted or terminal state.
"""
global___TaskState = TaskState

class _Role:
    ValueType = typing.NewType("ValueType", builtins.int)
    V: typing_extensions.TypeAlias = ValueType

class _RoleEnumTypeWrapper(
    google.protobuf.internal.enum_type_wrapper._EnumTypeWrapper[_Role.ValueType],
    builtins.type,
):
    DESCRIPTOR: google.protobuf.descriptor.EnumDescriptor
    ROLE_UNSPECIFIED: _Role.ValueType  # 0
    ROLE_USER: _Role.ValueType  # 1
    """USER role refers to communication from the client to the server."""
    ROLE_AGENT: _Role.ValueType  # 2
    """AGENT role refers to communication from the server to the client."""

class Role(_Role, metaclass=_RoleEnumTypeWrapper): ...

ROLE_UNSPECIFIED: Role.ValueType  # 0
ROLE_USER: Role.ValueType  # 1
"""USER role refers to communication from the client to the server."""
ROLE_AGENT: Role.ValueType  # 2
"""AGENT role refers to communication from the server to the client."""
global___Role = Role

@typing.final
class SendMessageConfiguration(google.protobuf.message.Message):
    """/////// Data Model ////////////

    Configuration of a send message request.
    """

    DESCRIPTOR: google.protobuf.descriptor.Descriptor

    ACCEPTED_OUTPUT_MODES_FIELD_NUMBER: builtins.int
    PUSH_NOTIFICATION_FIELD_NUMBER: builtins.int
    HISTORY_LENGTH_FIELD_NUMBER: builtins.int
    BLOCKING_FIELD_NUMBER: builtins.int
    history_length: builtins.int
    """The maximum number of messages to include in the history. if 0, the
    history will be unlimited.
    """
    blocking: builtins.bool
    """If true, the message will be blocking until the task is completed. If
    false, the message will be non-blocking and the task will be returned
    immediately. It is the caller's responsibility to check for any task
    updates.
    """
    @property
    def accepted_output_modes(
        self,
    ) -> google.protobuf.internal.containers.RepeatedScalarFieldContainer[builtins.str]:
        """The output modes that the agent is expected to respond with."""

    @property
    def push_notification(self) -> global___PushNotificationConfig:
        """A configuration of a webhook that can be used to receive updates"""

    def __init__(
        self,
        *,
        accepted_output_modes: collections.abc.Iterable[builtins.str] | None = ...,
        push_notification: global___PushNotificationConfig | None = ...,
        history_length: builtins.int = ...,
        blocking: builtins.bool = ...,
    ) -> None: ...
    def HasField(
        self, field_name: typing.Literal["push_notification", b"push_notification"]
    ) -> builtins.bool: ...
    def ClearField(
        self,
        field_name: typing.Literal[
            "accepted_output_modes",
            b"accepted_output_modes",
            "blocking",
            b"blocking",
            "history_length",
            b"history_length",
            "push_notification",
            b"push_notification",
        ],
    ) -> None: ...

global___SendMessageConfiguration = SendMessageConfiguration

@typing.final
class Task(google.protobuf.message.Message):
    """Task is the core unit of action for A2A. It has a current status
    and when results are created for the task they are stored in the
    artifact. If there are multiple turns for a task, these are stored in
    history.
    """

    DESCRIPTOR: google.protobuf.descriptor.Descriptor

    ID_FIELD_NUMBER: builtins.int
    CONTEXT_ID_FIELD_NUMBER: builtins.int
    STATUS_FIELD_NUMBER: builtins.int
    ARTIFACTS_FIELD_NUMBER: builtins.int
    HISTORY_FIELD_NUMBER: builtins.int
    METADATA_FIELD_NUMBER: builtins.int
    id: builtins.str
    """Unique identifier for a task, created by the A2A server."""
    context_id: builtins.str
    """Unique identifier for the contextual collection of interactions (tasks
    and messages). Created by the A2A server.
    """
    @property
    def status(self) -> global___TaskStatus:
        """The current status of a Task, including state and a message."""

    @property
    def artifacts(
        self,
    ) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[
        global___Artifact
    ]:
        """A set of output artifacts for a Task."""

    @property
    def history(
        self,
    ) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[
        global___Message
    ]:
        """protolint:disable REPEATED_FIELD_NAMES_PLURALIZED
        The history of interactions from a task.
        """

    @property
    def metadata(self) -> google.protobuf.struct_pb2.Struct:
        """protolint:enable REPEATED_FIELD_NAMES_PLURALIZED
        A key/value object to store custom metadata about a task.
        """

    def __init__(
        self,
        *,
        id: builtins.str = ...,
        context_id: builtins.str = ...,
        status: global___TaskStatus | None = ...,
        artifacts: collections.abc.Iterable[global___Artifact] | None = ...,
        history: collections.abc.Iterable[global___Message] | None = ...,
        metadata: google.protobuf.struct_pb2.Struct | None = ...,
    ) -> None: ...
    def HasField(
        self, field_name: typing.Literal["metadata", b"metadata", "status", b"status"]
    ) -> builtins.bool: ...
    def ClearField(
        self,
        field_name: typing.Literal[
            "artifacts",
            b"artifacts",
            "context_id",
            b"context_id",
            "history",
            b"history",
            "id",
            b"id",
            "metadata",
            b"metadata",
            "status",
            b"status",
        ],
    ) -> None: ...

global___Task = Task

@typing.final
class TaskStatus(google.protobuf.message.Message):
    """A container for the status of a task"""

    DESCRIPTOR: google.protobuf.descriptor.Descriptor

    STATE_FIELD_NUMBER: builtins.int
    UPDATE_FIELD_NUMBER: builtins.int
    TIMESTAMP_FIELD_NUMBER: builtins.int
    state: global___TaskState.ValueType
    """The current state of this task"""
    @property
    def update(self) -> global___Message:
        """A message associated with the status."""

    @property
    def timestamp(self) -> google.protobuf.timestamp_pb2.Timestamp:
        """Timestamp when the status was recorded.
        Example: "2023-10-27T10:00:00Z"
        """

    def __init__(
        self,
        *,
        state: global___TaskState.ValueType = ...,
        update: global___Message | None = ...,
        timestamp: google.protobuf.timestamp_pb2.Timestamp | None = ...,
    ) -> None: ...
    def HasField(
        self, field_name: typing.Literal["timestamp", b"timestamp", "update", b"update"]
    ) -> builtins.bool: ...
    def ClearField(
        self,
        field_name: typing.Literal[
            "state", b"state", "timestamp", b"timestamp", "update", b"update"
        ],
    ) -> None: ...

global___TaskStatus = TaskStatus

@typing.final
class Part(google.protobuf.message.Message):
    """Part represents a container for a section of communication content.
    Parts can be purely textual, some sort of file (image, video, etc) or
    a structured data blob (i.e. JSON).
    """

    DESCRIPTOR: google.protobuf.descriptor.Descriptor

    TEXT_FIELD_NUMBER: builtins.int
    FILE_FIELD_NUMBER: builtins.int
    DATA_FIELD_NUMBER: builtins.int
    text: builtins.str
    @property
    def file(self) -> global___FilePart: ...
    @property
    def data(self) -> global___DataPart: ...
    def __init__(
        self,
        *,
        text: builtins.str = ...,
        file: global___FilePart | None = ...,
        data: global___DataPart | None = ...,
    ) -> None: ...
    def HasField(
        self,
        field_name: typing.Literal[
            "data", b"data", "file", b"file", "part", b"part", "text", b"text"
        ],
    ) -> builtins.bool: ...
    def ClearField(
        self,
        field_name: typing.Literal[
            "data", b"data", "file", b"file", "part", b"part", "text", b"text"
        ],
    ) -> None: ...
    def WhichOneof(
        self, oneof_group: typing.Literal["part", b"part"]
    ) -> typing.Literal["text", "file", "data"] | None: ...

global___Part = Part

@typing.final
class FilePart(google.protobuf.message.Message):
    """FilePart represents the different ways files can be provided. If files are
    small, directly feeding the bytes is supported via file_with_bytes. If the
    file is large, the agent should read the content as appropriate directly
    from the file_with_uri source.
    """

    DESCRIPTOR: google.protobuf.descriptor.Descriptor

    FILE_WITH_URI_FIELD_NUMBER: builtins.int
    FILE_WITH_BYTES_FIELD_NUMBER: builtins.int
    MIME_TYPE_FIELD_NUMBER: builtins.int
    file_with_uri: builtins.str
    file_with_bytes: builtins.bytes
    mime_type: builtins.str
    def __init__(
        self,
        *,
        file_with_uri: builtins.str = ...,
        file_with_bytes: builtins.bytes = ...,
        mime_type: builtins.str = ...,
    ) -> None: ...
    def HasField(
        self,
        field_name: typing.Literal[
            "file",
            b"file",
            "file_with_bytes",
            b"file_with_bytes",
            "file_with_uri",
            b"file_with_uri",
        ],
    ) -> builtins.bool: ...
    def ClearField(
        self,
        field_name: typing.Literal[
            "file",
            b"file",
            "file_with_bytes",
            b"file_with_bytes",
            "file_with_uri",
            b"file_with_uri",
            "mime_type",
            b"mime_type",
        ],
    ) -> None: ...
    def WhichOneof(
        self, oneof_group: typing.Literal["file", b"file"]
    ) -> typing.Literal["file_with_uri", "file_with_bytes"] | None: ...

global___FilePart = FilePart

@typing.final
class DataPart(google.protobuf.message.Message):
    """DataPart represents a structured blob. This is most commonly a JSON payload."""

    DESCRIPTOR: google.protobuf.descriptor.Descriptor

    DATA_FIELD_NUMBER: builtins.int
    @property
    def data(self) -> google.protobuf.struct_pb2.Struct: ...
    def __init__(
        self,
        *,
        data: google.protobuf.struct_pb2.Struct | None = ...,
    ) -> None: ...
    def HasField(
        self, field_name: typing.Literal["data", b"data"]
    ) -> builtins.bool: ...
    def ClearField(self, field_name: typing.Literal["data", b"data"]) -> None: ...

global___DataPart = DataPart

@typing.final
class Message(google.protobuf.message.Message):
    """Message is one unit of communication between client and server. It is
    associated with a context and optionally a task. Since the server is
    responsible for the context definition, it must always provide a context_id
    in its messages. The client can optionally provide the context_id if it
    knows the context to associate the message to. Similarly for task_id,
    except the server decides if a task is created and whether to include the
    task_id.
    """

    DESCRIPTOR: google.protobuf.descriptor.Descriptor

    MESSAGE_ID_FIELD_NUMBER: builtins.int
    CONTEXT_ID_FIELD_NUMBER: builtins.int
    TASK_ID_FIELD_NUMBER: builtins.int
    ROLE_FIELD_NUMBER: builtins.int
    CONTENT_FIELD_NUMBER: builtins.int
    METADATA_FIELD_NUMBER: builtins.int
    EXTENSIONS_FIELD_NUMBER: builtins.int
    message_id: builtins.str
    """The message id of the message. This is required and created by the
    message creator.
    """
    context_id: builtins.str
    """The context id of the message. This is optional and if set, the message
    will be associated with the given context.
    """
    task_id: builtins.str
    """The task id of the message. This is optional and if set, the message
    will be associated with the given task.
    """
    role: global___Role.ValueType
    """A role for the message."""
    @property
    def content(
        self,
    ) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[
        global___Part
    ]:
        """protolint:disable REPEATED_FIELD_NAMES_PLURALIZED
        Content is the container of the message content.
        """

    @property
    def metadata(self) -> google.protobuf.struct_pb2.Struct:
        """protolint:enable REPEATED_FIELD_NAMES_PLURALIZED
        Any optional metadata to provide along with the message.
        """

    @property
    def extensions(
        self,
    ) -> google.protobuf.internal.containers.RepeatedScalarFieldContainer[builtins.str]:
        """The URIs of extensions that are present or contributed to this Message."""

    def __init__(
        self,
        *,
        message_id: builtins.str = ...,
        context_id: builtins.str = ...,
        task_id: builtins.str = ...,
        role: global___Role.ValueType = ...,
        content: collections.abc.Iterable[global___Part] | None = ...,
        metadata: google.protobuf.struct_pb2.Struct | None = ...,
        extensions: collections.abc.Iterable[builtins.str] | None = ...,
    ) -> None: ...
    def HasField(
        self, field_name: typing.Literal["metadata", b"metadata"]
    ) -> builtins.bool: ...
    def ClearField(
        self,
        field_name: typing.Literal[
            "content",
            b"content",
            "context_id",
            b"context_id",
            "extensions",
            b"extensions",
            "message_id",
            b"message_id",
            "metadata",
            b"metadata",
            "role",
            b"role",
            "task_id",
            b"task_id",
        ],
    ) -> None: ...

global___Message = Message

@typing.final
class Artifact(google.protobuf.message.Message):
    """Artifacts are the container for task completed results. These are similar
    to Messages but are intended to be the product of a task, as opposed to
    point-to-point communication.
    """

    DESCRIPTOR: google.protobuf.descriptor.Descriptor

    ARTIFACT_ID_FIELD_NUMBER: builtins.int
    NAME_FIELD_NUMBER: builtins.int
    DESCRIPTION_FIELD_NUMBER: builtins.int
    PARTS_FIELD_NUMBER: builtins.int
    METADATA_FIELD_NUMBER: builtins.int
    EXTENSIONS_FIELD_NUMBER: builtins.int
    artifact_id: builtins.str
    """Unique id for the artifact. It must be at least unique within a task."""
    name: builtins.str
    """A human readable name for the artifact."""
    description: builtins.str
    """A human readable description of the artifact, optional."""
    @property
    def parts(
        self,
    ) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[
        global___Part
    ]:
        """The content of the artifact."""

    @property
    def metadata(self) -> google.protobuf.struct_pb2.Struct:
        """Optional metadata included with the artifact."""

    @property
    def extensions(
        self,
    ) -> google.protobuf.internal.containers.RepeatedScalarFieldContainer[builtins.str]:
        """The URIs of extensions that are present or contributed to this Artifact."""

    def __init__(
        self,
        *,
        artifact_id: builtins.str = ...,
        name: builtins.str = ...,
        description: builtins.str = ...,
        parts: collections.abc.Iterable[global___Part] | None = ...,
        metadata: google.protobuf.struct_pb2.Struct | None = ...,
        extensions: collections.abc.Iterable[builtins.str] | None = ...,
    ) -> None: ...
    def HasField(
        self, field_name: typing.Literal["metadata", b"metadata"]
    ) -> builtins.bool: ...
    def ClearField(
        self,
        field_name: typing.Literal[
            "artifact_id",
            b"artifact_id",
            "description",
            b"description",
            "extensions",
            b"extensions",
            "metadata",
            b"metadata",
            "name",
            b"name",
            "parts",
            b"parts",
        ],
    ) -> None: ...

global___Artifact = Artifact

@typing.final
class TaskStatusUpdateEvent(google.protobuf.message.Message):
    """TaskStatusUpdateEvent is a delta even on a task indicating that a task
    has changed.
    """

    DESCRIPTOR: google.protobuf.descriptor.Descriptor

    TASK_ID_FIELD_NUMBER: builtins.int
    CONTEXT_ID_FIELD_NUMBER: builtins.int
    STATUS_FIELD_NUMBER: builtins.int
    FINAL_FIELD_NUMBER: builtins.int
    METADATA_FIELD_NUMBER: builtins.int
    task_id: builtins.str
    """The id of the task that is changed"""
    context_id: builtins.str
    """The id of the context that the task belongs to"""
    final: builtins.bool
    """Whether this is the last status update expected for this task."""
    @property
    def status(self) -> global___TaskStatus:
        """The new status of the task."""

    @property
    def metadata(self) -> google.protobuf.struct_pb2.Struct:
        """Optional metadata to associate with the task update."""

    def __init__(
        self,
        *,
        task_id: builtins.str = ...,
        context_id: builtins.str = ...,
        status: global___TaskStatus | None = ...,
        final: builtins.bool = ...,
        metadata: google.protobuf.struct_pb2.Struct | None = ...,
    ) -> None: ...
    def HasField(
        self, field_name: typing.Literal["metadata", b"metadata", "status", b"status"]
    ) -> builtins.bool: ...
    def ClearField(
        self,
        field_name: typing.Literal[
            "context_id",
            b"context_id",
            "final",
            b"final",
            "metadata",
            b"metadata",
            "status",
            b"status",
            "task_id",
            b"task_id",
        ],
    ) -> None: ...

global___TaskStatusUpdateEvent = TaskStatusUpdateEvent

@typing.final
class TaskArtifactUpdateEvent(google.protobuf.message.Message):
    """TaskArtifactUpdateEvent represents a task delta where an artifact has
    been generated.
    """

    DESCRIPTOR: google.protobuf.descriptor.Descriptor

    TASK_ID_FIELD_NUMBER: builtins.int
    CONTEXT_ID_FIELD_NUMBER: builtins.int
    ARTIFACT_FIELD_NUMBER: builtins.int
    APPEND_FIELD_NUMBER: builtins.int
    LAST_CHUNK_FIELD_NUMBER: builtins.int
    METADATA_FIELD_NUMBER: builtins.int
    task_id: builtins.str
    """The id of the task for this artifact"""
    context_id: builtins.str
    """The id of the context that this task belongs too"""
    append: builtins.bool
    """ Whether this should be appended to a prior one produced"""
    last_chunk: builtins.bool
    """Whether this represents the last part of an artifact"""
    @property
    def artifact(self) -> global___Artifact:
        """The artifact itself"""

    @property
    def metadata(self) -> google.protobuf.struct_pb2.Struct:
        """Optional metadata associated with the artifact update."""

    def __init__(
        self,
        *,
        task_id: builtins.str = ...,
        context_id: builtins.str = ...,
        artifact: global___Artifact | None = ...,
        append: builtins.bool = ...,
        last_chunk: builtins.bool = ...,
        metadata: google.protobuf.struct_pb2.Struct | None = ...,
    ) -> None: ...
    def HasField(
        self,
        field_name: typing.Literal["artifact", b"artifact", "metadata", b"metadata"],
    ) -> builtins.bool: ...
    def ClearField(
        self,
        field_name: typing.Literal[
            "append",
            b"append",
            "artifact",
            b"artifact",
            "context_id",
            b"context_id",
            "last_chunk",
            b"last_chunk",
            "metadata",
            b"metadata",
            "task_id",
            b"task_id",
        ],
    ) -> None: ...

global___TaskArtifactUpdateEvent = TaskArtifactUpdateEvent

@typing.final
class PushNotificationConfig(google.protobuf.message.Message):
    """Configuration for setting up push notifications for task updates."""

    DESCRIPTOR: google.protobuf.descriptor.Descriptor

    ID_FIELD_NUMBER: builtins.int
    URL_FIELD_NUMBER: builtins.int
    TOKEN_FIELD_NUMBER: builtins.int
    AUTHENTICATION_FIELD_NUMBER: builtins.int
    id: builtins.str
    """A unique id for this push notification."""
    url: builtins.str
    """Url to send the notification too"""
    token: builtins.str
    """Token unique for this task/session"""
    @property
    def authentication(self) -> global___AuthenticationInfo:
        """Information about the authentication to sent with the notification"""

    def __init__(
        self,
        *,
        id: builtins.str = ...,
        url: builtins.str = ...,
        token: builtins.str = ...,
        authentication: global___AuthenticationInfo | None = ...,
    ) -> None: ...
    def HasField(
        self, field_name: typing.Literal["authentication", b"authentication"]
    ) -> builtins.bool: ...
    def ClearField(
        self,
        field_name: typing.Literal[
            "authentication",
            b"authentication",
            "id",
            b"id",
            "token",
            b"token",
            "url",
            b"url",
        ],
    ) -> None: ...

global___PushNotificationConfig = PushNotificationConfig

@typing.final
class AuthenticationInfo(google.protobuf.message.Message):
    """Defines authentication details, used for push notifications."""

    DESCRIPTOR: google.protobuf.descriptor.Descriptor

    SCHEMES_FIELD_NUMBER: builtins.int
    CREDENTIALS_FIELD_NUMBER: builtins.int
    credentials: builtins.str
    """Optional credentials"""
    @property
    def schemes(
        self,
    ) -> google.protobuf.internal.containers.RepeatedScalarFieldContainer[builtins.str]:
        """Supported authentication schemes - e.g. Basic, Bearer, etc"""

    def __init__(
        self,
        *,
        schemes: collections.abc.Iterable[builtins.str] | None = ...,
        credentials: builtins.str = ...,
    ) -> None: ...
    def ClearField(
        self,
        field_name: typing.Literal[
            "credentials", b"credentials", "schemes", b"schemes"
        ],
    ) -> None: ...

global___AuthenticationInfo = AuthenticationInfo

@typing.final
class AgentInterface(google.protobuf.message.Message):
    """Defines additional transport information for the agent."""

    DESCRIPTOR: google.protobuf.descriptor.Descriptor

    URL_FIELD_NUMBER: builtins.int
    TRANSPORT_FIELD_NUMBER: builtins.int
    url: builtins.str
    """The url this interface is found at."""
    transport: builtins.str
    """The transport supported this url. This is an open form string, to be
    easily extended for many transport protocols. The core ones officially
    supported are JSONRPC, GRPC and HTTP+JSON.
    """
    def __init__(
        self,
        *,
        url: builtins.str = ...,
        transport: builtins.str = ...,
    ) -> None: ...
    def ClearField(
        self, field_name: typing.Literal["transport", b"transport", "url", b"url"]
    ) -> None: ...

global___AgentInterface = AgentInterface

@typing.final
class AgentCard(google.protobuf.message.Message):
    """AgentCard conveys key information:
    - Overall details (version, name, description, uses)
    - Skills; a set of actions/solutions the agent can perform
    - Default modalities/content types supported by the agent.
    - Authentication requirements
    Next ID: 18
    """

    DESCRIPTOR: google.protobuf.descriptor.Descriptor

    @typing.final
    class SecuritySchemesEntry(google.protobuf.message.Message):
        DESCRIPTOR: google.protobuf.descriptor.Descriptor

        KEY_FIELD_NUMBER: builtins.int
        VALUE_FIELD_NUMBER: builtins.int
        key: builtins.str
        @property
        def value(self) -> global___SecurityScheme: ...
        def __init__(
            self,
            *,
            key: builtins.str = ...,
            value: global___SecurityScheme | None = ...,
        ) -> None: ...
        def HasField(
            self, field_name: typing.Literal["value", b"value"]
        ) -> builtins.bool: ...
        def ClearField(
            self, field_name: typing.Literal["key", b"key", "value", b"value"]
        ) -> None: ...

    PROTOCOL_VERSION_FIELD_NUMBER: builtins.int
    NAME_FIELD_NUMBER: builtins.int
    DESCRIPTION_FIELD_NUMBER: builtins.int
    URL_FIELD_NUMBER: builtins.int
    PREFERRED_TRANSPORT_FIELD_NUMBER: builtins.int
    ADDITIONAL_INTERFACES_FIELD_NUMBER: builtins.int
    PROVIDER_FIELD_NUMBER: builtins.int
    VERSION_FIELD_NUMBER: builtins.int
    DOCUMENTATION_URL_FIELD_NUMBER: builtins.int
    CAPABILITIES_FIELD_NUMBER: builtins.int
    SECURITY_SCHEMES_FIELD_NUMBER: builtins.int
    SECURITY_FIELD_NUMBER: builtins.int
    DEFAULT_INPUT_MODES_FIELD_NUMBER: builtins.int
    DEFAULT_OUTPUT_MODES_FIELD_NUMBER: builtins.int
    SKILLS_FIELD_NUMBER: builtins.int
    SUPPORTS_AUTHENTICATED_EXTENDED_CARD_FIELD_NUMBER: builtins.int
    SIGNATURES_FIELD_NUMBER: builtins.int
    protocol_version: builtins.str
    """The version of the A2A protocol this agent supports."""
    name: builtins.str
    """A human readable name for the agent.
    Example: "Recipe Agent"
    """
    description: builtins.str
    """A description of the agent's domain of action/solution space.
    Example: "Agent that helps users with recipes and cooking."
    """
    url: builtins.str
    """A URL to the address the agent is hosted at. This represents the
    preferred endpoint as declared by the agent.
    """
    preferred_transport: builtins.str
    """The transport of the preferred endpoint. If empty, defaults to JSONRPC."""
    version: builtins.str
    """The version of the agent.
    Example: "1.0.0"
    """
    documentation_url: builtins.str
    """A url to provide additional documentation about the agent."""
    supports_authenticated_extended_card: builtins.bool
    """Whether the agent supports providing an extended agent card when
    the user is authenticated, i.e. is the card from .well-known
    different than the card from GetAgentCard.
    """
    @property
    def additional_interfaces(
        self,
    ) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[
        global___AgentInterface
    ]:
        """Announcement of additional supported transports. Client can use any of
        the supported transports.
        """

    @property
    def provider(self) -> global___AgentProvider:
        """The service provider of the agent."""

    @property
    def capabilities(self) -> global___AgentCapabilities:
        """A2A Capability set supported by the agent."""

    @property
    def security_schemes(
        self,
    ) -> google.protobuf.internal.containers.MessageMap[
        builtins.str, global___SecurityScheme
    ]:
        """The security scheme details used for authenticating with this agent."""

    @property
    def security(
        self,
    ) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[
        global___Security
    ]:
        """protolint:disable REPEATED_FIELD_NAMES_PLURALIZED
        Security requirements for contacting the agent.
        This list can be seen as an OR of ANDs. Each object in the list describes
        one possible set of security requirements that must be present on a
        request. This allows specifying, for example, "callers must either use
        OAuth OR an API Key AND mTLS."
        Example:
        security {
          schemes { key: "oauth" value { list: ["read"] } }
        }
        security {
          schemes { key: "api-key" }
          schemes { key: "mtls" }
        }
        """

    @property
    def default_input_modes(
        self,
    ) -> google.protobuf.internal.containers.RepeatedScalarFieldContainer[builtins.str]:
        """protolint:enable REPEATED_FIELD_NAMES_PLURALIZED
        The set of interaction modes that the agent supports across all skills.
        This can be overridden per skill. Defined as mime types.
        """

    @property
    def default_output_modes(
        self,
    ) -> google.protobuf.internal.containers.RepeatedScalarFieldContainer[builtins.str]:
        """The mime types supported as outputs from this agent."""

    @property
    def skills(
        self,
    ) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[
        global___AgentSkill
    ]:
        """Skills represent a unit of ability an agent can perform. This may
        somewhat abstract but represents a more focused set of actions that the
        agent is highly likely to succeed at.
        """

    @property
    def signatures(
        self,
    ) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[
        global___AgentCardSignature
    ]:
        """JSON Web Signatures computed for this AgentCard."""

    def __init__(
        self,
        *,
        protocol_version: builtins.str = ...,
        name: builtins.str = ...,
        description: builtins.str = ...,
        url: builtins.str = ...,
        preferred_transport: builtins.str = ...,
        additional_interfaces: (
            collections.abc.Iterable[global___AgentInterface] | None
        ) = ...,
        provider: global___AgentProvider | None = ...,
        version: builtins.str = ...,
        documentation_url: builtins.str = ...,
        capabilities: global___AgentCapabilities | None = ...,
        security_schemes: (
            collections.abc.Mapping[builtins.str, global___SecurityScheme] | None
        ) = ...,
        security: collections.abc.Iterable[global___Security] | None = ...,
        default_input_modes: collections.abc.Iterable[builtins.str] | None = ...,
        default_output_modes: collections.abc.Iterable[builtins.str] | None = ...,
        skills: collections.abc.Iterable[global___AgentSkill] | None = ...,
        supports_authenticated_extended_card: builtins.bool = ...,
        signatures: collections.abc.Iterable[global___AgentCardSignature] | None = ...,
    ) -> None: ...
    def HasField(
        self,
        field_name: typing.Literal[
            "capabilities", b"capabilities", "provider", b"provider"
        ],
    ) -> builtins.bool: ...
    def ClearField(
        self,
        field_name: typing.Literal[
            "additional_interfaces",
            b"additional_interfaces",
            "capabilities",
            b"capabilities",
            "default_input_modes",
            b"default_input_modes",
            "default_output_modes",
            b"default_output_modes",
            "description",
            b"description",
            "documentation_url",
            b"documentation_url",
            "name",
            b"name",
            "preferred_transport",
            b"preferred_transport",
            "protocol_version",
            b"protocol_version",
            "provider",
            b"provider",
            "security",
            b"security",
            "security_schemes",
            b"security_schemes",
            "signatures",
            b"signatures",
            "skills",
            b"skills",
            "supports_authenticated_extended_card",
            b"supports_authenticated_extended_card",
            "url",
            b"url",
            "version",
            b"version",
        ],
    ) -> None: ...

global___AgentCard = AgentCard

@typing.final
class AgentProvider(google.protobuf.message.Message):
    """Represents information about the service provider of an agent."""

    DESCRIPTOR: google.protobuf.descriptor.Descriptor

    URL_FIELD_NUMBER: builtins.int
    ORGANIZATION_FIELD_NUMBER: builtins.int
    url: builtins.str
    """The providers reference url
    Example: "https://ai.google.dev"
    """
    organization: builtins.str
    """The providers organization name
    Example: "Google"
    """
    def __init__(
        self,
        *,
        url: builtins.str = ...,
        organization: builtins.str = ...,
    ) -> None: ...
    def ClearField(
        self, field_name: typing.Literal["organization", b"organization", "url", b"url"]
    ) -> None: ...

global___AgentProvider = AgentProvider

@typing.final
class AgentCapabilities(google.protobuf.message.Message):
    """Defines the A2A feature set supported by the agent"""

    DESCRIPTOR: google.protobuf.descriptor.Descriptor

    STREAMING_FIELD_NUMBER: builtins.int
    PUSH_NOTIFICATIONS_FIELD_NUMBER: builtins.int
    EXTENSIONS_FIELD_NUMBER: builtins.int
    streaming: builtins.bool
    """If the agent will support streaming responses"""
    push_notifications: builtins.bool
    """If the agent can send push notifications to the clients webhook"""
    @property
    def extensions(
        self,
    ) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[
        global___AgentExtension
    ]:
        """Extensions supported by this agent."""

    def __init__(
        self,
        *,
        streaming: builtins.bool = ...,
        push_notifications: builtins.bool = ...,
        extensions: collections.abc.Iterable[global___AgentExtension] | None = ...,
    ) -> None: ...
    def ClearField(
        self,
        field_name: typing.Literal[
            "extensions",
            b"extensions",
            "push_notifications",
            b"push_notifications",
            "streaming",
            b"streaming",
        ],
    ) -> None: ...

global___AgentCapabilities = AgentCapabilities

@typing.final
class AgentExtension(google.protobuf.message.Message):
    """A declaration of an extension supported by an Agent."""

    DESCRIPTOR: google.protobuf.descriptor.Descriptor

    URI_FIELD_NUMBER: builtins.int
    DESCRIPTION_FIELD_NUMBER: builtins.int
    REQUIRED_FIELD_NUMBER: builtins.int
    PARAMS_FIELD_NUMBER: builtins.int
    uri: builtins.str
    """The URI of the extension.
    Example: "https://developers.google.com/identity/protocols/oauth2"
    """
    description: builtins.str
    """A description of how this agent uses this extension.
    Example: "Google OAuth 2.0 authentication"
    """
    required: builtins.bool
    """Whether the client must follow specific requirements of the extension.
    Example: false
    """
    @property
    def params(self) -> google.protobuf.struct_pb2.Struct:
        """Optional configuration for the extension."""

    def __init__(
        self,
        *,
        uri: builtins.str = ...,
        description: builtins.str = ...,
        required: builtins.bool = ...,
        params: google.protobuf.struct_pb2.Struct | None = ...,
    ) -> None: ...
    def HasField(
        self, field_name: typing.Literal["params", b"params"]
    ) -> builtins.bool: ...
    def ClearField(
        self,
        field_name: typing.Literal[
            "description",
            b"description",
            "params",
            b"params",
            "required",
            b"required",
            "uri",
            b"uri",
        ],
    ) -> None: ...

global___AgentExtension = AgentExtension

@typing.final
class AgentSkill(google.protobuf.message.Message):
    """AgentSkill represents a unit of action/solution that the agent can perform.
    One can think of this as a type of highly reliable solution that an agent
    can be tasked to provide. Agents have the autonomy to choose how and when
    to use specific skills, but clients should have confidence that if the
    skill is defined that unit of action can be reliably performed.
    """

    DESCRIPTOR: google.protobuf.descriptor.Descriptor

    ID_FIELD_NUMBER: builtins.int
    NAME_FIELD_NUMBER: builtins.int
    DESCRIPTION_FIELD_NUMBER: builtins.int
    TAGS_FIELD_NUMBER: builtins.int
    EXAMPLES_FIELD_NUMBER: builtins.int
    INPUT_MODES_FIELD_NUMBER: builtins.int
    OUTPUT_MODES_FIELD_NUMBER: builtins.int
    SECURITY_FIELD_NUMBER: builtins.int
    id: builtins.str
    """Unique id of the skill within this agent."""
    name: builtins.str
    """A human readable name for the skill."""
    description: builtins.str
    """A human (or llm) readable description of the skill
    details and behaviors.
    """
    @property
    def tags(
        self,
    ) -> google.protobuf.internal.containers.RepeatedScalarFieldContainer[builtins.str]:
        """A set of tags for the skill to enhance categorization/utilization.
        Example: ["cooking", "customer support", "billing"]
        """

    @property
    def examples(
        self,
    ) -> google.protobuf.internal.containers.RepeatedScalarFieldContainer[builtins.str]:
        """A set of example queries that this skill is designed to address.
        These examples should help the caller to understand how to craft requests
        to the agent to achieve specific goals.
        Example: ["I need a recipe for bread"]
        """

    @property
    def input_modes(
        self,
    ) -> google.protobuf.internal.containers.RepeatedScalarFieldContainer[builtins.str]:
        """Possible input modalities supported."""

    @property
    def output_modes(
        self,
    ) -> google.protobuf.internal.containers.RepeatedScalarFieldContainer[builtins.str]:
        """Possible output modalities produced"""

    @property
    def security(
        self,
    ) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[
        global___Security
    ]:
        """protolint:disable REPEATED_FIELD_NAMES_PLURALIZED
        Security schemes necessary for the agent to leverage this skill.
        As in the overall AgentCard.security, this list represents a logical OR of
        security requirement objects. Each object is a set of security schemes
        that must be used together (a logical AND).
        """

    def __init__(
        self,
        *,
        id: builtins.str = ...,
        name: builtins.str = ...,
        description: builtins.str = ...,
        tags: collections.abc.Iterable[builtins.str] | None = ...,
        examples: collections.abc.Iterable[builtins.str] | None = ...,
        input_modes: collections.abc.Iterable[builtins.str] | None = ...,
        output_modes: collections.abc.Iterable[builtins.str] | None = ...,
        security: collections.abc.Iterable[global___Security] | None = ...,
    ) -> None: ...
    def ClearField(
        self,
        field_name: typing.Literal[
            "description",
            b"description",
            "examples",
            b"examples",
            "id",
            b"id",
            "input_modes",
            b"input_modes",
            "name",
            b"name",
            "output_modes",
            b"output_modes",
            "security",
            b"security",
            "tags",
            b"tags",
        ],
    ) -> None: ...

global___AgentSkill = AgentSkill

@typing.final
class AgentCardSignature(google.protobuf.message.Message):
    """AgentCardSignature represents a JWS signature of an AgentCard.
    This follows the JSON format of an RFC 7515 JSON Web Signature (JWS).
    """

    DESCRIPTOR: google.protobuf.descriptor.Descriptor

    PROTECTED_FIELD_NUMBER: builtins.int
    SIGNATURE_FIELD_NUMBER: builtins.int
    HEADER_FIELD_NUMBER: builtins.int
    protected: builtins.str
    """The protected JWS header for the signature. This is always a
    base64url-encoded JSON object. Required.
    """
    signature: builtins.str
    """The computed signature, base64url-encoded. Required."""
    @property
    def header(self) -> google.protobuf.struct_pb2.Struct:
        """The unprotected JWS header values."""

    def __init__(
        self,
        *,
        protected: builtins.str = ...,
        signature: builtins.str = ...,
        header: google.protobuf.struct_pb2.Struct | None = ...,
    ) -> None: ...
    def HasField(
        self, field_name: typing.Literal["header", b"header"]
    ) -> builtins.bool: ...
    def ClearField(
        self,
        field_name: typing.Literal[
            "header", b"header", "protected", b"protected", "signature", b"signature"
        ],
    ) -> None: ...

global___AgentCardSignature = AgentCardSignature

@typing.final
class TaskPushNotificationConfig(google.protobuf.message.Message):
    DESCRIPTOR: google.protobuf.descriptor.Descriptor

    NAME_FIELD_NUMBER: builtins.int
    PUSH_NOTIFICATION_CONFIG_FIELD_NUMBER: builtins.int
    name: builtins.str
    """name=tasks/{id}/pushNotificationConfigs/{id}"""
    @property
    def push_notification_config(self) -> global___PushNotificationConfig: ...
    def __init__(
        self,
        *,
        name: builtins.str = ...,
        push_notification_config: global___PushNotificationConfig | None = ...,
    ) -> None: ...
    def HasField(
        self,
        field_name: typing.Literal[
            "push_notification_config", b"push_notification_config"
        ],
    ) -> builtins.bool: ...
    def ClearField(
        self,
        field_name: typing.Literal[
            "name", b"name", "push_notification_config", b"push_notification_config"
        ],
    ) -> None: ...

global___TaskPushNotificationConfig = TaskPushNotificationConfig

@typing.final
class StringList(google.protobuf.message.Message):
    """protolint:disable REPEATED_FIELD_NAMES_PLURALIZED"""

    DESCRIPTOR: google.protobuf.descriptor.Descriptor

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

global___StringList = StringList

@typing.final
class Security(google.protobuf.message.Message):
    DESCRIPTOR: google.protobuf.descriptor.Descriptor

    @typing.final
    class SchemesEntry(google.protobuf.message.Message):
        DESCRIPTOR: google.protobuf.descriptor.Descriptor

        KEY_FIELD_NUMBER: builtins.int
        VALUE_FIELD_NUMBER: builtins.int
        key: builtins.str
        @property
        def value(self) -> global___StringList: ...
        def __init__(
            self,
            *,
            key: builtins.str = ...,
            value: global___StringList | None = ...,
        ) -> None: ...
        def HasField(
            self, field_name: typing.Literal["value", b"value"]
        ) -> builtins.bool: ...
        def ClearField(
            self, field_name: typing.Literal["key", b"key", "value", b"value"]
        ) -> None: ...

    SCHEMES_FIELD_NUMBER: builtins.int
    @property
    def schemes(
        self,
    ) -> google.protobuf.internal.containers.MessageMap[
        builtins.str, global___StringList
    ]: ...
    def __init__(
        self,
        *,
        schemes: (
            collections.abc.Mapping[builtins.str, global___StringList] | None
        ) = ...,
    ) -> None: ...
    def ClearField(self, field_name: typing.Literal["schemes", b"schemes"]) -> None: ...

global___Security = Security

@typing.final
class SecurityScheme(google.protobuf.message.Message):
    DESCRIPTOR: google.protobuf.descriptor.Descriptor

    API_KEY_SECURITY_SCHEME_FIELD_NUMBER: builtins.int
    HTTP_AUTH_SECURITY_SCHEME_FIELD_NUMBER: builtins.int
    OAUTH2_SECURITY_SCHEME_FIELD_NUMBER: builtins.int
    OPEN_ID_CONNECT_SECURITY_SCHEME_FIELD_NUMBER: builtins.int
    MTLS_SECURITY_SCHEME_FIELD_NUMBER: builtins.int
    @property
    def api_key_security_scheme(self) -> global___APIKeySecurityScheme: ...
    @property
    def http_auth_security_scheme(self) -> global___HTTPAuthSecurityScheme: ...
    @property
    def oauth2_security_scheme(self) -> global___OAuth2SecurityScheme: ...
    @property
    def open_id_connect_security_scheme(
        self,
    ) -> global___OpenIdConnectSecurityScheme: ...
    @property
    def mtls_security_scheme(self) -> global___MutualTlsSecurityScheme: ...
    def __init__(
        self,
        *,
        api_key_security_scheme: global___APIKeySecurityScheme | None = ...,
        http_auth_security_scheme: global___HTTPAuthSecurityScheme | None = ...,
        oauth2_security_scheme: global___OAuth2SecurityScheme | None = ...,
        open_id_connect_security_scheme: (
            global___OpenIdConnectSecurityScheme | None
        ) = ...,
        mtls_security_scheme: global___MutualTlsSecurityScheme | None = ...,
    ) -> None: ...
    def HasField(
        self,
        field_name: typing.Literal[
            "api_key_security_scheme",
            b"api_key_security_scheme",
            "http_auth_security_scheme",
            b"http_auth_security_scheme",
            "mtls_security_scheme",
            b"mtls_security_scheme",
            "oauth2_security_scheme",
            b"oauth2_security_scheme",
            "open_id_connect_security_scheme",
            b"open_id_connect_security_scheme",
            "scheme",
            b"scheme",
        ],
    ) -> builtins.bool: ...
    def ClearField(
        self,
        field_name: typing.Literal[
            "api_key_security_scheme",
            b"api_key_security_scheme",
            "http_auth_security_scheme",
            b"http_auth_security_scheme",
            "mtls_security_scheme",
            b"mtls_security_scheme",
            "oauth2_security_scheme",
            b"oauth2_security_scheme",
            "open_id_connect_security_scheme",
            b"open_id_connect_security_scheme",
            "scheme",
            b"scheme",
        ],
    ) -> None: ...
    def WhichOneof(self, oneof_group: typing.Literal["scheme", b"scheme"]) -> (
        typing.Literal[
            "api_key_security_scheme",
            "http_auth_security_scheme",
            "oauth2_security_scheme",
            "open_id_connect_security_scheme",
            "mtls_security_scheme",
        ]
        | None
    ): ...

global___SecurityScheme = SecurityScheme

@typing.final
class APIKeySecurityScheme(google.protobuf.message.Message):
    DESCRIPTOR: google.protobuf.descriptor.Descriptor

    DESCRIPTION_FIELD_NUMBER: builtins.int
    LOCATION_FIELD_NUMBER: builtins.int
    NAME_FIELD_NUMBER: builtins.int
    description: builtins.str
    """Description of this security scheme."""
    location: builtins.str
    """Location of the API key, valid values are "query", "header", or "cookie" """
    name: builtins.str
    """Name of the header, query or cookie parameter to be used."""
    def __init__(
        self,
        *,
        description: builtins.str = ...,
        location: builtins.str = ...,
        name: builtins.str = ...,
    ) -> None: ...
    def ClearField(
        self,
        field_name: typing.Literal[
            "description", b"description", "location", b"location", "name", b"name"
        ],
    ) -> None: ...

global___APIKeySecurityScheme = APIKeySecurityScheme

@typing.final
class HTTPAuthSecurityScheme(google.protobuf.message.Message):
    DESCRIPTOR: google.protobuf.descriptor.Descriptor

    DESCRIPTION_FIELD_NUMBER: builtins.int
    SCHEME_FIELD_NUMBER: builtins.int
    BEARER_FORMAT_FIELD_NUMBER: builtins.int
    description: builtins.str
    """Description of this security scheme."""
    scheme: builtins.str
    """The name of the HTTP Authentication scheme to be used in the
    Authorization header as defined in RFC7235. The values used SHOULD be
    registered in the IANA Authentication Scheme registry.
    The value is case-insensitive, as defined in RFC7235.
    """
    bearer_format: builtins.str
    """A hint to the client to identify how the bearer token is formatted.
    Bearer tokens are usually generated by an authorization server, so
    this information is primarily for documentation purposes.
    """
    def __init__(
        self,
        *,
        description: builtins.str = ...,
        scheme: builtins.str = ...,
        bearer_format: builtins.str = ...,
    ) -> None: ...
    def ClearField(
        self,
        field_name: typing.Literal[
            "bearer_format",
            b"bearer_format",
            "description",
            b"description",
            "scheme",
            b"scheme",
        ],
    ) -> None: ...

global___HTTPAuthSecurityScheme = HTTPAuthSecurityScheme

@typing.final
class OAuth2SecurityScheme(google.protobuf.message.Message):
    DESCRIPTOR: google.protobuf.descriptor.Descriptor

    DESCRIPTION_FIELD_NUMBER: builtins.int
    FLOWS_FIELD_NUMBER: builtins.int
    OAUTH2_METADATA_URL_FIELD_NUMBER: builtins.int
    description: builtins.str
    """Description of this security scheme."""
    oauth2_metadata_url: builtins.str
    """URL to the oauth2 authorization server metadata
    [RFC8414](https://datatracker.ietf.org/doc/html/rfc8414). TLS is required.
    """
    @property
    def flows(self) -> global___OAuthFlows:
        """An object containing configuration information for the flow types supported"""

    def __init__(
        self,
        *,
        description: builtins.str = ...,
        flows: global___OAuthFlows | None = ...,
        oauth2_metadata_url: builtins.str = ...,
    ) -> None: ...
    def HasField(
        self, field_name: typing.Literal["flows", b"flows"]
    ) -> builtins.bool: ...
    def ClearField(
        self,
        field_name: typing.Literal[
            "description",
            b"description",
            "flows",
            b"flows",
            "oauth2_metadata_url",
            b"oauth2_metadata_url",
        ],
    ) -> None: ...

global___OAuth2SecurityScheme = OAuth2SecurityScheme

@typing.final
class OpenIdConnectSecurityScheme(google.protobuf.message.Message):
    DESCRIPTOR: google.protobuf.descriptor.Descriptor

    DESCRIPTION_FIELD_NUMBER: builtins.int
    OPEN_ID_CONNECT_URL_FIELD_NUMBER: builtins.int
    description: builtins.str
    """Description of this security scheme."""
    open_id_connect_url: builtins.str
    """Well-known URL to discover the [[OpenID-Connect-Discovery]] provider
    metadata.
    """
    def __init__(
        self,
        *,
        description: builtins.str = ...,
        open_id_connect_url: builtins.str = ...,
    ) -> None: ...
    def ClearField(
        self,
        field_name: typing.Literal[
            "description", b"description", "open_id_connect_url", b"open_id_connect_url"
        ],
    ) -> None: ...

global___OpenIdConnectSecurityScheme = OpenIdConnectSecurityScheme

@typing.final
class MutualTlsSecurityScheme(google.protobuf.message.Message):
    DESCRIPTOR: google.protobuf.descriptor.Descriptor

    DESCRIPTION_FIELD_NUMBER: builtins.int
    description: builtins.str
    """Description of this security scheme."""
    def __init__(
        self,
        *,
        description: builtins.str = ...,
    ) -> None: ...
    def ClearField(
        self, field_name: typing.Literal["description", b"description"]
    ) -> None: ...

global___MutualTlsSecurityScheme = MutualTlsSecurityScheme

@typing.final
class OAuthFlows(google.protobuf.message.Message):
    DESCRIPTOR: google.protobuf.descriptor.Descriptor

    AUTHORIZATION_CODE_FIELD_NUMBER: builtins.int
    CLIENT_CREDENTIALS_FIELD_NUMBER: builtins.int
    IMPLICIT_FIELD_NUMBER: builtins.int
    PASSWORD_FIELD_NUMBER: builtins.int
    @property
    def authorization_code(self) -> global___AuthorizationCodeOAuthFlow: ...
    @property
    def client_credentials(self) -> global___ClientCredentialsOAuthFlow: ...
    @property
    def implicit(self) -> global___ImplicitOAuthFlow: ...
    @property
    def password(self) -> global___PasswordOAuthFlow: ...
    def __init__(
        self,
        *,
        authorization_code: global___AuthorizationCodeOAuthFlow | None = ...,
        client_credentials: global___ClientCredentialsOAuthFlow | None = ...,
        implicit: global___ImplicitOAuthFlow | None = ...,
        password: global___PasswordOAuthFlow | None = ...,
    ) -> None: ...
    def HasField(
        self,
        field_name: typing.Literal[
            "authorization_code",
            b"authorization_code",
            "client_credentials",
            b"client_credentials",
            "flow",
            b"flow",
            "implicit",
            b"implicit",
            "password",
            b"password",
        ],
    ) -> builtins.bool: ...
    def ClearField(
        self,
        field_name: typing.Literal[
            "authorization_code",
            b"authorization_code",
            "client_credentials",
            b"client_credentials",
            "flow",
            b"flow",
            "implicit",
            b"implicit",
            "password",
            b"password",
        ],
    ) -> None: ...
    def WhichOneof(
        self, oneof_group: typing.Literal["flow", b"flow"]
    ) -> (
        typing.Literal[
            "authorization_code", "client_credentials", "implicit", "password"
        ]
        | None
    ): ...

global___OAuthFlows = OAuthFlows

@typing.final
class AuthorizationCodeOAuthFlow(google.protobuf.message.Message):
    DESCRIPTOR: google.protobuf.descriptor.Descriptor

    @typing.final
    class ScopesEntry(google.protobuf.message.Message):
        DESCRIPTOR: google.protobuf.descriptor.Descriptor

        KEY_FIELD_NUMBER: builtins.int
        VALUE_FIELD_NUMBER: builtins.int
        key: builtins.str
        value: builtins.str
        def __init__(
            self,
            *,
            key: builtins.str = ...,
            value: builtins.str = ...,
        ) -> None: ...
        def ClearField(
            self, field_name: typing.Literal["key", b"key", "value", b"value"]
        ) -> None: ...

    AUTHORIZATION_URL_FIELD_NUMBER: builtins.int
    TOKEN_URL_FIELD_NUMBER: builtins.int
    REFRESH_URL_FIELD_NUMBER: builtins.int
    SCOPES_FIELD_NUMBER: builtins.int
    authorization_url: builtins.str
    """The authorization URL to be used for this flow. This MUST be in the
    form of a URL. The OAuth2 standard requires the use of TLS
    """
    token_url: builtins.str
    """The token URL to be used for this flow. This MUST be in the form of a URL.
    The OAuth2 standard requires the use of TLS.
    """
    refresh_url: builtins.str
    """The URL to be used for obtaining refresh tokens. This MUST be in the
    form of a URL. The OAuth2 standard requires the use of TLS.
    """
    @property
    def scopes(
        self,
    ) -> google.protobuf.internal.containers.ScalarMap[builtins.str, builtins.str]:
        """The available scopes for the OAuth2 security scheme. A map between the
        scope name and a short description for it. The map MAY be empty.
        """

    def __init__(
        self,
        *,
        authorization_url: builtins.str = ...,
        token_url: builtins.str = ...,
        refresh_url: builtins.str = ...,
        scopes: collections.abc.Mapping[builtins.str, builtins.str] | None = ...,
    ) -> None: ...
    def ClearField(
        self,
        field_name: typing.Literal[
            "authorization_url",
            b"authorization_url",
            "refresh_url",
            b"refresh_url",
            "scopes",
            b"scopes",
            "token_url",
            b"token_url",
        ],
    ) -> None: ...

global___AuthorizationCodeOAuthFlow = AuthorizationCodeOAuthFlow

@typing.final
class ClientCredentialsOAuthFlow(google.protobuf.message.Message):
    DESCRIPTOR: google.protobuf.descriptor.Descriptor

    @typing.final
    class ScopesEntry(google.protobuf.message.Message):
        DESCRIPTOR: google.protobuf.descriptor.Descriptor

        KEY_FIELD_NUMBER: builtins.int
        VALUE_FIELD_NUMBER: builtins.int
        key: builtins.str
        value: builtins.str
        def __init__(
            self,
            *,
            key: builtins.str = ...,
            value: builtins.str = ...,
        ) -> None: ...
        def ClearField(
            self, field_name: typing.Literal["key", b"key", "value", b"value"]
        ) -> None: ...

    TOKEN_URL_FIELD_NUMBER: builtins.int
    REFRESH_URL_FIELD_NUMBER: builtins.int
    SCOPES_FIELD_NUMBER: builtins.int
    token_url: builtins.str
    """The token URL to be used for this flow. This MUST be in the form of a URL.
    The OAuth2 standard requires the use of TLS.
    """
    refresh_url: builtins.str
    """The URL to be used for obtaining refresh tokens. This MUST be in the
    form of a URL. The OAuth2 standard requires the use of TLS.
    """
    @property
    def scopes(
        self,
    ) -> google.protobuf.internal.containers.ScalarMap[builtins.str, builtins.str]:
        """The available scopes for the OAuth2 security scheme. A map between the
        scope name and a short description for it. The map MAY be empty.
        """

    def __init__(
        self,
        *,
        token_url: builtins.str = ...,
        refresh_url: builtins.str = ...,
        scopes: collections.abc.Mapping[builtins.str, builtins.str] | None = ...,
    ) -> None: ...
    def ClearField(
        self,
        field_name: typing.Literal[
            "refresh_url",
            b"refresh_url",
            "scopes",
            b"scopes",
            "token_url",
            b"token_url",
        ],
    ) -> None: ...

global___ClientCredentialsOAuthFlow = ClientCredentialsOAuthFlow

@typing.final
class ImplicitOAuthFlow(google.protobuf.message.Message):
    DESCRIPTOR: google.protobuf.descriptor.Descriptor

    @typing.final
    class ScopesEntry(google.protobuf.message.Message):
        DESCRIPTOR: google.protobuf.descriptor.Descriptor

        KEY_FIELD_NUMBER: builtins.int
        VALUE_FIELD_NUMBER: builtins.int
        key: builtins.str
        value: builtins.str
        def __init__(
            self,
            *,
            key: builtins.str = ...,
            value: builtins.str = ...,
        ) -> None: ...
        def ClearField(
            self, field_name: typing.Literal["key", b"key", "value", b"value"]
        ) -> None: ...

    AUTHORIZATION_URL_FIELD_NUMBER: builtins.int
    REFRESH_URL_FIELD_NUMBER: builtins.int
    SCOPES_FIELD_NUMBER: builtins.int
    authorization_url: builtins.str
    """The authorization URL to be used for this flow. This MUST be in the
    form of a URL. The OAuth2 standard requires the use of TLS
    """
    refresh_url: builtins.str
    """The URL to be used for obtaining refresh tokens. This MUST be in the
    form of a URL. The OAuth2 standard requires the use of TLS.
    """
    @property
    def scopes(
        self,
    ) -> google.protobuf.internal.containers.ScalarMap[builtins.str, builtins.str]:
        """The available scopes for the OAuth2 security scheme. A map between the
        scope name and a short description for it. The map MAY be empty.
        """

    def __init__(
        self,
        *,
        authorization_url: builtins.str = ...,
        refresh_url: builtins.str = ...,
        scopes: collections.abc.Mapping[builtins.str, builtins.str] | None = ...,
    ) -> None: ...
    def ClearField(
        self,
        field_name: typing.Literal[
            "authorization_url",
            b"authorization_url",
            "refresh_url",
            b"refresh_url",
            "scopes",
            b"scopes",
        ],
    ) -> None: ...

global___ImplicitOAuthFlow = ImplicitOAuthFlow

@typing.final
class PasswordOAuthFlow(google.protobuf.message.Message):
    DESCRIPTOR: google.protobuf.descriptor.Descriptor

    @typing.final
    class ScopesEntry(google.protobuf.message.Message):
        DESCRIPTOR: google.protobuf.descriptor.Descriptor

        KEY_FIELD_NUMBER: builtins.int
        VALUE_FIELD_NUMBER: builtins.int
        key: builtins.str
        value: builtins.str
        def __init__(
            self,
            *,
            key: builtins.str = ...,
            value: builtins.str = ...,
        ) -> None: ...
        def ClearField(
            self, field_name: typing.Literal["key", b"key", "value", b"value"]
        ) -> None: ...

    TOKEN_URL_FIELD_NUMBER: builtins.int
    REFRESH_URL_FIELD_NUMBER: builtins.int
    SCOPES_FIELD_NUMBER: builtins.int
    token_url: builtins.str
    """The token URL to be used for this flow. This MUST be in the form of a URL.
    The OAuth2 standard requires the use of TLS.
    """
    refresh_url: builtins.str
    """The URL to be used for obtaining refresh tokens. This MUST be in the
    form of a URL. The OAuth2 standard requires the use of TLS.
    """
    @property
    def scopes(
        self,
    ) -> google.protobuf.internal.containers.ScalarMap[builtins.str, builtins.str]:
        """The available scopes for the OAuth2 security scheme. A map between the
        scope name and a short description for it. The map MAY be empty.
        """

    def __init__(
        self,
        *,
        token_url: builtins.str = ...,
        refresh_url: builtins.str = ...,
        scopes: collections.abc.Mapping[builtins.str, builtins.str] | None = ...,
    ) -> None: ...
    def ClearField(
        self,
        field_name: typing.Literal[
            "refresh_url",
            b"refresh_url",
            "scopes",
            b"scopes",
            "token_url",
            b"token_url",
        ],
    ) -> None: ...

global___PasswordOAuthFlow = PasswordOAuthFlow

@typing.final
class SendMessageRequest(google.protobuf.message.Message):
    """/////////// Request Messages ///////////"""

    DESCRIPTOR: google.protobuf.descriptor.Descriptor

    REQUEST_FIELD_NUMBER: builtins.int
    CONFIGURATION_FIELD_NUMBER: builtins.int
    METADATA_FIELD_NUMBER: builtins.int
    @property
    def request(self) -> global___Message: ...
    @property
    def configuration(self) -> global___SendMessageConfiguration: ...
    @property
    def metadata(self) -> google.protobuf.struct_pb2.Struct: ...
    def __init__(
        self,
        *,
        request: global___Message | None = ...,
        configuration: global___SendMessageConfiguration | None = ...,
        metadata: google.protobuf.struct_pb2.Struct | None = ...,
    ) -> None: ...
    def HasField(
        self,
        field_name: typing.Literal[
            "configuration",
            b"configuration",
            "metadata",
            b"metadata",
            "request",
            b"request",
        ],
    ) -> builtins.bool: ...
    def ClearField(
        self,
        field_name: typing.Literal[
            "configuration",
            b"configuration",
            "metadata",
            b"metadata",
            "request",
            b"request",
        ],
    ) -> None: ...

global___SendMessageRequest = SendMessageRequest

@typing.final
class GetTaskRequest(google.protobuf.message.Message):
    DESCRIPTOR: google.protobuf.descriptor.Descriptor

    NAME_FIELD_NUMBER: builtins.int
    HISTORY_LENGTH_FIELD_NUMBER: builtins.int
    name: builtins.str
    """name=tasks/{id}"""
    history_length: builtins.int
    def __init__(
        self,
        *,
        name: builtins.str = ...,
        history_length: builtins.int = ...,
    ) -> None: ...
    def ClearField(
        self,
        field_name: typing.Literal[
            "history_length", b"history_length", "name", b"name"
        ],
    ) -> None: ...

global___GetTaskRequest = GetTaskRequest

@typing.final
class CancelTaskRequest(google.protobuf.message.Message):
    DESCRIPTOR: google.protobuf.descriptor.Descriptor

    NAME_FIELD_NUMBER: builtins.int
    name: builtins.str
    """name=tasks/{id}"""
    def __init__(
        self,
        *,
        name: builtins.str = ...,
    ) -> None: ...
    def ClearField(self, field_name: typing.Literal["name", b"name"]) -> None: ...

global___CancelTaskRequest = CancelTaskRequest

@typing.final
class GetTaskPushNotificationConfigRequest(google.protobuf.message.Message):
    DESCRIPTOR: google.protobuf.descriptor.Descriptor

    NAME_FIELD_NUMBER: builtins.int
    name: builtins.str
    """name=tasks/{id}/pushNotificationConfigs/{push_id}"""
    def __init__(
        self,
        *,
        name: builtins.str = ...,
    ) -> None: ...
    def ClearField(self, field_name: typing.Literal["name", b"name"]) -> None: ...

global___GetTaskPushNotificationConfigRequest = GetTaskPushNotificationConfigRequest

@typing.final
class DeleteTaskPushNotificationConfigRequest(google.protobuf.message.Message):
    DESCRIPTOR: google.protobuf.descriptor.Descriptor

    NAME_FIELD_NUMBER: builtins.int
    name: builtins.str
    """name=tasks/{id}/pushNotificationConfigs/{push_id}"""
    def __init__(
        self,
        *,
        name: builtins.str = ...,
    ) -> None: ...
    def ClearField(self, field_name: typing.Literal["name", b"name"]) -> None: ...

global___DeleteTaskPushNotificationConfigRequest = (
    DeleteTaskPushNotificationConfigRequest
)

@typing.final
class CreateTaskPushNotificationConfigRequest(google.protobuf.message.Message):
    DESCRIPTOR: google.protobuf.descriptor.Descriptor

    PARENT_FIELD_NUMBER: builtins.int
    CONFIG_ID_FIELD_NUMBER: builtins.int
    CONFIG_FIELD_NUMBER: builtins.int
    parent: builtins.str
    """The task resource for this config.
    Format: tasks/{id}
    """
    config_id: builtins.str
    @property
    def config(self) -> global___TaskPushNotificationConfig: ...
    def __init__(
        self,
        *,
        parent: builtins.str = ...,
        config_id: builtins.str = ...,
        config: global___TaskPushNotificationConfig | None = ...,
    ) -> None: ...
    def HasField(
        self, field_name: typing.Literal["config", b"config"]
    ) -> builtins.bool: ...
    def ClearField(
        self,
        field_name: typing.Literal[
            "config", b"config", "config_id", b"config_id", "parent", b"parent"
        ],
    ) -> None: ...

global___CreateTaskPushNotificationConfigRequest = (
    CreateTaskPushNotificationConfigRequest
)

@typing.final
class TaskSubscriptionRequest(google.protobuf.message.Message):
    DESCRIPTOR: google.protobuf.descriptor.Descriptor

    NAME_FIELD_NUMBER: builtins.int
    name: builtins.str
    """name=tasks/{id}"""
    def __init__(
        self,
        *,
        name: builtins.str = ...,
    ) -> None: ...
    def ClearField(self, field_name: typing.Literal["name", b"name"]) -> None: ...

global___TaskSubscriptionRequest = TaskSubscriptionRequest

@typing.final
class ListTaskPushNotificationConfigRequest(google.protobuf.message.Message):
    DESCRIPTOR: google.protobuf.descriptor.Descriptor

    PARENT_FIELD_NUMBER: builtins.int
    PAGE_SIZE_FIELD_NUMBER: builtins.int
    PAGE_TOKEN_FIELD_NUMBER: builtins.int
    parent: builtins.str
    """parent=tasks/{id}"""
    page_size: builtins.int
    """For AIP-158 these fields are present. Usually not used/needed.
    The maximum number of configurations to return.
    If unspecified, all configs will be returned.
    """
    page_token: builtins.str
    """A page token received from a previous
    ListTaskPushNotificationConfigRequest call.
    Provide this to retrieve the subsequent page.
    When paginating, all other parameters provided to
    `ListTaskPushNotificationConfigRequest` must match the call that provided
    the page token.
    """
    def __init__(
        self,
        *,
        parent: builtins.str = ...,
        page_size: builtins.int = ...,
        page_token: builtins.str = ...,
    ) -> None: ...
    def ClearField(
        self,
        field_name: typing.Literal[
            "page_size", b"page_size", "page_token", b"page_token", "parent", b"parent"
        ],
    ) -> None: ...

global___ListTaskPushNotificationConfigRequest = ListTaskPushNotificationConfigRequest

@typing.final
class GetAgentCardRequest(google.protobuf.message.Message):
    """Empty. Added to fix linter violation."""

    DESCRIPTOR: google.protobuf.descriptor.Descriptor

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

global___GetAgentCardRequest = GetAgentCardRequest

@typing.final
class SendMessageResponse(google.protobuf.message.Message):
    """////// Response Messages ///////////"""

    DESCRIPTOR: google.protobuf.descriptor.Descriptor

    TASK_FIELD_NUMBER: builtins.int
    MSG_FIELD_NUMBER: builtins.int
    @property
    def task(self) -> global___Task: ...
    @property
    def msg(self) -> global___Message: ...
    def __init__(
        self,
        *,
        task: global___Task | None = ...,
        msg: global___Message | None = ...,
    ) -> None: ...
    def HasField(
        self,
        field_name: typing.Literal[
            "msg", b"msg", "payload", b"payload", "task", b"task"
        ],
    ) -> builtins.bool: ...
    def ClearField(
        self,
        field_name: typing.Literal[
            "msg", b"msg", "payload", b"payload", "task", b"task"
        ],
    ) -> None: ...
    def WhichOneof(
        self, oneof_group: typing.Literal["payload", b"payload"]
    ) -> typing.Literal["task", "msg"] | None: ...

global___SendMessageResponse = SendMessageResponse

@typing.final
class StreamResponse(google.protobuf.message.Message):
    """The stream response for a message. The stream should be one of the following
    sequences:
    If the response is a message, the stream should contain one, and only one,
    message and then close
    If the response is a task lifecycle, the first response should be a Task
    object followed by zero or more TaskStatusUpdateEvents and
    TaskArtifactUpdateEvents. The stream should complete when the Task
    if in an interrupted or terminal state. A stream that ends before these
    conditions are met are
    """

    DESCRIPTOR: google.protobuf.descriptor.Descriptor

    TASK_FIELD_NUMBER: builtins.int
    MSG_FIELD_NUMBER: builtins.int
    STATUS_UPDATE_FIELD_NUMBER: builtins.int
    ARTIFACT_UPDATE_FIELD_NUMBER: builtins.int
    @property
    def task(self) -> global___Task: ...
    @property
    def msg(self) -> global___Message: ...
    @property
    def status_update(self) -> global___TaskStatusUpdateEvent: ...
    @property
    def artifact_update(self) -> global___TaskArtifactUpdateEvent: ...
    def __init__(
        self,
        *,
        task: global___Task | None = ...,
        msg: global___Message | None = ...,
        status_update: global___TaskStatusUpdateEvent | None = ...,
        artifact_update: global___TaskArtifactUpdateEvent | None = ...,
    ) -> None: ...
    def HasField(
        self,
        field_name: typing.Literal[
            "artifact_update",
            b"artifact_update",
            "msg",
            b"msg",
            "payload",
            b"payload",
            "status_update",
            b"status_update",
            "task",
            b"task",
        ],
    ) -> builtins.bool: ...
    def ClearField(
        self,
        field_name: typing.Literal[
            "artifact_update",
            b"artifact_update",
            "msg",
            b"msg",
            "payload",
            b"payload",
            "status_update",
            b"status_update",
            "task",
            b"task",
        ],
    ) -> None: ...
    def WhichOneof(
        self, oneof_group: typing.Literal["payload", b"payload"]
    ) -> typing.Literal["task", "msg", "status_update", "artifact_update"] | None: ...

global___StreamResponse = StreamResponse

@typing.final
class ListTaskPushNotificationConfigResponse(google.protobuf.message.Message):
    DESCRIPTOR: google.protobuf.descriptor.Descriptor

    CONFIGS_FIELD_NUMBER: builtins.int
    NEXT_PAGE_TOKEN_FIELD_NUMBER: builtins.int
    next_page_token: builtins.str
    """A token, which can be sent as `page_token` to retrieve the next page.
    If this field is omitted, there are no subsequent pages.
    """
    @property
    def configs(
        self,
    ) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[
        global___TaskPushNotificationConfig
    ]: ...
    def __init__(
        self,
        *,
        configs: (
            collections.abc.Iterable[global___TaskPushNotificationConfig] | None
        ) = ...,
        next_page_token: builtins.str = ...,
    ) -> None: ...
    def ClearField(
        self,
        field_name: typing.Literal[
            "configs", b"configs", "next_page_token", b"next_page_token"
        ],
    ) -> None: ...

global___ListTaskPushNotificationConfigResponse = ListTaskPushNotificationConfigResponse
