Google Workspace Events API . message

Instance Methods

close()

Close httplib2 connections.

stream(body=None, x__xgafv=None)

SendStreamingMessage is a streaming call that will return a stream of task update events until the Task is in an interrupted or terminal state.

Method Details

close()
Close httplib2 connections.
stream(body=None, x__xgafv=None)
SendStreamingMessage is a streaming call that will return a stream of task update events until the Task is in an interrupted or terminal state.

Args:
  body: object, The request body.
    The object takes the form of:

{ # /////////// Request Messages ///////////
  "configuration": { # Configuration of a send message request. # Configuration for the send request.
    "acceptedOutputModes": [ # The output modes that the agent is expected to respond with.
      "A String",
    ],
    "blocking": True or False, # 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.
    "historyLength": 42, # The maximum number of messages to include in the history. if 0, the history will be unlimited.
    "pushNotification": { # Configuration for setting up push notifications for task updates. # A configuration of a webhook that can be used to receive updates
      "authentication": { # Defines authentication details, used for push notifications. # Information about the authentication to sent with the notification
        "credentials": "A String", # Optional credentials
        "schemes": [ # Supported authentication schemes - e.g. Basic, Bearer, etc
          "A String",
        ],
      },
      "id": "A String", # A unique identifier (e.g. UUID) for this push notification.
      "token": "A String", # Token unique for this task/session
      "url": "A String", # Url to send the notification too
    },
  },
  "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. # Required. The message to send to the agent.
    "content": [ # protolint:disable REPEATED_FIELD_NAMES_PLURALIZED Content is the container of the message content.
      { # 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).
        "data": { # DataPart represents a structured blob. This is most commonly a JSON payload.
          "data": {
            "a_key": "", # Properties of the object.
          },
        },
        "file": { # 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.
          "fileWithBytes": "A String",
          "fileWithUri": "A String",
          "mimeType": "A String",
          "name": "A String",
        },
        "metadata": { # Optional metadata associated with this part.
          "a_key": "", # Properties of the object.
        },
        "text": "A String",
      },
    ],
    "contextId": "A String", # The context id of the message. This is optional and if set, the message will be associated with the given context.
    "extensions": [ # The URIs of extensions that are present or contributed to this Message.
      "A String",
    ],
    "messageId": "A String", # The unique identifier (e.g. UUID)of the message. This is required and created by the message creator.
    "metadata": { # protolint:enable REPEATED_FIELD_NAMES_PLURALIZED Any optional metadata to provide along with the message.
      "a_key": "", # Properties of the object.
    },
    "role": "A String", # A role for the message.
    "taskId": "A String", # The task id of the message. This is optional and if set, the message will be associated with the given task.
  },
  "metadata": { # Optional metadata for the request.
    "a_key": "", # Properties of the object.
  },
  "tenant": "A String", # Optional tenant, provided as a path parameter. Experimental, might still change for 1.0 release.
}

  x__xgafv: string, V1 error format.
    Allowed values
      1 - v1 error format
      2 - v2 error format

Returns:
  An object of the form:

    { # 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
  "artifactUpdate": { # TaskArtifactUpdateEvent represents a task delta where an artifact has been generated.
    "append": True or False, # Whether this should be appended to a prior one produced
    "artifact": { # 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. # The artifact itself
      "artifactId": "A String", # Unique identifier (e.g. UUID) for the artifact. It must be at least unique within a task.
      "description": "A String", # A human readable description of the artifact, optional.
      "extensions": [ # The URIs of extensions that are present or contributed to this Artifact.
        "A String",
      ],
      "metadata": { # Optional metadata included with the artifact.
        "a_key": "", # Properties of the object.
      },
      "name": "A String", # A human readable name for the artifact.
      "parts": [ # The content of the artifact.
        { # 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).
          "data": { # DataPart represents a structured blob. This is most commonly a JSON payload.
            "data": {
              "a_key": "", # Properties of the object.
            },
          },
          "file": { # 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.
            "fileWithBytes": "A String",
            "fileWithUri": "A String",
            "mimeType": "A String",
            "name": "A String",
          },
          "metadata": { # Optional metadata associated with this part.
            "a_key": "", # Properties of the object.
          },
          "text": "A String",
        },
      ],
    },
    "contextId": "A String", # The id of the context that this task belongs too
    "lastChunk": True or False, # Whether this represents the last part of an artifact
    "metadata": { # Optional metadata associated with the artifact update.
      "a_key": "", # Properties of the object.
    },
    "taskId": "A String", # The id of the task for this artifact
  },
  "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.
    "content": [ # protolint:disable REPEATED_FIELD_NAMES_PLURALIZED Content is the container of the message content.
      { # 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).
        "data": { # DataPart represents a structured blob. This is most commonly a JSON payload.
          "data": {
            "a_key": "", # Properties of the object.
          },
        },
        "file": { # 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.
          "fileWithBytes": "A String",
          "fileWithUri": "A String",
          "mimeType": "A String",
          "name": "A String",
        },
        "metadata": { # Optional metadata associated with this part.
          "a_key": "", # Properties of the object.
        },
        "text": "A String",
      },
    ],
    "contextId": "A String", # The context id of the message. This is optional and if set, the message will be associated with the given context.
    "extensions": [ # The URIs of extensions that are present or contributed to this Message.
      "A String",
    ],
    "messageId": "A String", # The unique identifier (e.g. UUID)of the message. This is required and created by the message creator.
    "metadata": { # protolint:enable REPEATED_FIELD_NAMES_PLURALIZED Any optional metadata to provide along with the message.
      "a_key": "", # Properties of the object.
    },
    "role": "A String", # A role for the message.
    "taskId": "A String", # The task id of the message. This is optional and if set, the message will be associated with the given task.
  },
  "statusUpdate": { # TaskStatusUpdateEvent is a delta even on a task indicating that a task has changed.
    "contextId": "A String", # The id of the context that the task belongs to
    "final": True or False, # Whether this is the last status update expected for this task.
    "metadata": { # Optional metadata to associate with the task update.
      "a_key": "", # Properties of the object.
    },
    "status": { # A container for the status of a task # The new status of the task.
      "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. # A message associated with the status.
        "content": [ # protolint:disable REPEATED_FIELD_NAMES_PLURALIZED Content is the container of the message content.
          { # 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).
            "data": { # DataPart represents a structured blob. This is most commonly a JSON payload.
              "data": {
                "a_key": "", # Properties of the object.
              },
            },
            "file": { # 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.
              "fileWithBytes": "A String",
              "fileWithUri": "A String",
              "mimeType": "A String",
              "name": "A String",
            },
            "metadata": { # Optional metadata associated with this part.
              "a_key": "", # Properties of the object.
            },
            "text": "A String",
          },
        ],
        "contextId": "A String", # The context id of the message. This is optional and if set, the message will be associated with the given context.
        "extensions": [ # The URIs of extensions that are present or contributed to this Message.
          "A String",
        ],
        "messageId": "A String", # The unique identifier (e.g. UUID)of the message. This is required and created by the message creator.
        "metadata": { # protolint:enable REPEATED_FIELD_NAMES_PLURALIZED Any optional metadata to provide along with the message.
          "a_key": "", # Properties of the object.
        },
        "role": "A String", # A role for the message.
        "taskId": "A String", # The task id of the message. This is optional and if set, the message will be associated with the given task.
      },
      "state": "A String", # The current state of this task
      "timestamp": "A String", # Timestamp when the status was recorded. Example: "2023-10-27T10:00:00Z"
    },
    "taskId": "A String", # The id of the task that is changed
  },
  "task": { # 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.
    "artifacts": [ # A set of output artifacts for a Task.
      { # 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.
        "artifactId": "A String", # Unique identifier (e.g. UUID) for the artifact. It must be at least unique within a task.
        "description": "A String", # A human readable description of the artifact, optional.
        "extensions": [ # The URIs of extensions that are present or contributed to this Artifact.
          "A String",
        ],
        "metadata": { # Optional metadata included with the artifact.
          "a_key": "", # Properties of the object.
        },
        "name": "A String", # A human readable name for the artifact.
        "parts": [ # The content of the artifact.
          { # 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).
            "data": { # DataPart represents a structured blob. This is most commonly a JSON payload.
              "data": {
                "a_key": "", # Properties of the object.
              },
            },
            "file": { # 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.
              "fileWithBytes": "A String",
              "fileWithUri": "A String",
              "mimeType": "A String",
              "name": "A String",
            },
            "metadata": { # Optional metadata associated with this part.
              "a_key": "", # Properties of the object.
            },
            "text": "A String",
          },
        ],
      },
    ],
    "contextId": "A String", # Unique identifier (e.g. UUID) for the contextual collection of interactions (tasks and messages). Created by the A2A server.
    "history": [ # protolint:disable REPEATED_FIELD_NAMES_PLURALIZED The history of interactions from a task.
      { # 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.
        "content": [ # protolint:disable REPEATED_FIELD_NAMES_PLURALIZED Content is the container of the message content.
          { # 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).
            "data": { # DataPart represents a structured blob. This is most commonly a JSON payload.
              "data": {
                "a_key": "", # Properties of the object.
              },
            },
            "file": { # 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.
              "fileWithBytes": "A String",
              "fileWithUri": "A String",
              "mimeType": "A String",
              "name": "A String",
            },
            "metadata": { # Optional metadata associated with this part.
              "a_key": "", # Properties of the object.
            },
            "text": "A String",
          },
        ],
        "contextId": "A String", # The context id of the message. This is optional and if set, the message will be associated with the given context.
        "extensions": [ # The URIs of extensions that are present or contributed to this Message.
          "A String",
        ],
        "messageId": "A String", # The unique identifier (e.g. UUID)of the message. This is required and created by the message creator.
        "metadata": { # protolint:enable REPEATED_FIELD_NAMES_PLURALIZED Any optional metadata to provide along with the message.
          "a_key": "", # Properties of the object.
        },
        "role": "A String", # A role for the message.
        "taskId": "A String", # The task id of the message. This is optional and if set, the message will be associated with the given task.
      },
    ],
    "id": "A String", # Unique identifier (e.g. UUID) for the task, generated by the server for a new task.
    "metadata": { # protolint:enable REPEATED_FIELD_NAMES_PLURALIZED A key/value object to store custom metadata about a task.
      "a_key": "", # Properties of the object.
    },
    "status": { # A container for the status of a task # The current status of a Task, including state and a 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. # A message associated with the status.
        "content": [ # protolint:disable REPEATED_FIELD_NAMES_PLURALIZED Content is the container of the message content.
          { # 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).
            "data": { # DataPart represents a structured blob. This is most commonly a JSON payload.
              "data": {
                "a_key": "", # Properties of the object.
              },
            },
            "file": { # 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.
              "fileWithBytes": "A String",
              "fileWithUri": "A String",
              "mimeType": "A String",
              "name": "A String",
            },
            "metadata": { # Optional metadata associated with this part.
              "a_key": "", # Properties of the object.
            },
            "text": "A String",
          },
        ],
        "contextId": "A String", # The context id of the message. This is optional and if set, the message will be associated with the given context.
        "extensions": [ # The URIs of extensions that are present or contributed to this Message.
          "A String",
        ],
        "messageId": "A String", # The unique identifier (e.g. UUID)of the message. This is required and created by the message creator.
        "metadata": { # protolint:enable REPEATED_FIELD_NAMES_PLURALIZED Any optional metadata to provide along with the message.
          "a_key": "", # Properties of the object.
        },
        "role": "A String", # A role for the message.
        "taskId": "A String", # The task id of the message. This is optional and if set, the message will be associated with the given task.
      },
      "state": "A String", # The current state of this task
      "timestamp": "A String", # Timestamp when the status was recorded. Example: "2023-10-27T10:00:00Z"
    },
  },
}