{
"auth": {
"oauth2": {
"scopes": {
"https://www.googleapis.com/auth/chat.app.memberships": {
"description": "On their own behalf, apps in Google Chat can see, add, update, and remove members from conversations and spaces"
},
"https://www.googleapis.com/auth/chat.app.messages.readonly": {
"description": "On their own behalf, apps in Google Chat can see all messages and their associated reactions and message content"
},
"https://www.googleapis.com/auth/chat.app.spaces": {
"description": "On their own behalf, apps in Google Chat can create conversations and spaces and see or update their metadata (including history settings and access settings)"
},
"https://www.googleapis.com/auth/chat.bot": {
"description": "Private Service: https://www.googleapis.com/auth/chat.bot"
},
"https://www.googleapis.com/auth/chat.memberships": {
"description": "See, add, update, and remove members from conversations and spaces in Google Chat"
},
"https://www.googleapis.com/auth/chat.memberships.readonly": {
"description": "View members in Google Chat conversations."
},
"https://www.googleapis.com/auth/chat.messages": {
"description": "See, compose, send, update, and delete messages as well as their message content; add, see, and delete reactions to messages."
},
"https://www.googleapis.com/auth/chat.messages.reactions": {
"description": "See, add, and delete reactions as well as their reaction content to messages in Google Chat"
},
"https://www.googleapis.com/auth/chat.messages.reactions.readonly": {
"description": "View reactions as well as their reaction content to messages in Google Chat"
},
"https://www.googleapis.com/auth/chat.messages.readonly": {
"description": "See messages as well as their reactions and message content in Google Chat"
},
"https://www.googleapis.com/auth/chat.spaces": {
"description": "Create conversations and spaces and see or update metadata (including history settings and access settings) in Google Chat"
},
"https://www.googleapis.com/auth/chat.spaces.readonly": {
"description": "View chat and spaces in Google Chat"
},
"https://www.googleapis.com/auth/drive": {
"description": "See, edit, create, and delete all of your Google Drive files"
},
"https://www.googleapis.com/auth/drive.file": {
"description": "See, edit, create, and delete only the specific Google Drive files you use with this app"
},
"https://www.googleapis.com/auth/drive.metadata": {
"description": "View and manage metadata of files in your Google Drive"
},
"https://www.googleapis.com/auth/drive.metadata.readonly": {
"description": "See information about your Google Drive files"
},
"https://www.googleapis.com/auth/drive.readonly": {
"description": "See and download all your Google Drive files"
},
"https://www.googleapis.com/auth/meetings.space.created": {
"description": "Create, edit, and see information about your Google Meet conferences created by the app."
},
"https://www.googleapis.com/auth/meetings.space.readonly": {
"description": "Read information about any of your Google Meet conferences"
}
}
}
},
"basePath": "",
"baseUrl": "https://workspaceevents.googleapis.com/",
"batchPath": "batch",
"canonicalName": "Workspace Events",
"description": "The Google Workspace Events API lets you subscribe to events and manage change notifications across Google Workspace applications.",
"discoveryVersion": "v1",
"documentationLink": "https://developers.google.com/workspace/events",
"fullyEncodeReservedExpansion": true,
"icons": {
"x16": "http://www.google.com/images/icons/product/search-16.gif",
"x32": "http://www.google.com/images/icons/product/search-32.gif"
},
"id": "workspaceevents:v1",
"kind": "discovery#restDescription",
"mtlsRootUrl": "https://workspaceevents.mtls.googleapis.com/",
"name": "workspaceevents",
"ownerDomain": "google.com",
"ownerName": "Google",
"parameters": {
"$.xgafv": {
"description": "V1 error format.",
"enum": [
"1",
"2"
],
"enumDescriptions": [
"v1 error format",
"v2 error format"
],
"location": "query",
"type": "string"
},
"access_token": {
"description": "OAuth access token.",
"location": "query",
"type": "string"
},
"alt": {
"default": "json",
"description": "Data format for response.",
"enum": [
"json",
"media",
"proto"
],
"enumDescriptions": [
"Responses with Content-Type of application/json",
"Media download with context-dependent Content-Type",
"Responses with Content-Type of application/x-protobuf"
],
"location": "query",
"type": "string"
},
"callback": {
"description": "JSONP",
"location": "query",
"type": "string"
},
"fields": {
"description": "Selector specifying which fields to include in a partial response.",
"location": "query",
"type": "string"
},
"key": {
"description": "API key. Your API key identifies your project and provides you with API access, quota, and reports. Required unless you provide an OAuth 2.0 token.",
"location": "query",
"type": "string"
},
"oauth_token": {
"description": "OAuth 2.0 token for the current user.",
"location": "query",
"type": "string"
},
"prettyPrint": {
"default": "true",
"description": "Returns response with indentations and line breaks.",
"location": "query",
"type": "boolean"
},
"quotaUser": {
"description": "Available to use for quota purposes for server-side applications. Can be any arbitrary string assigned to a user, but should not exceed 40 characters.",
"location": "query",
"type": "string"
},
"uploadType": {
"description": "Legacy upload protocol for media (e.g. \"media\", \"multipart\").",
"location": "query",
"type": "string"
},
"upload_protocol": {
"description": "Upload protocol for media (e.g. \"raw\", \"multipart\").",
"location": "query",
"type": "string"
}
},
"protocol": "rest",
"resources": {
"message": {
"methods": {
"stream": {
"description": "SendStreamingMessage is a streaming call that will return a stream of task update events until the Task is in an interrupted or terminal state.",
"flatPath": "v1/message:stream",
"httpMethod": "POST",
"id": "workspaceevents.message.stream",
"parameterOrder": [],
"parameters": {},
"path": "v1/message:stream",
"request": {
"$ref": "SendMessageRequest"
},
"response": {
"$ref": "StreamResponse"
}
}
}
},
"operations": {
"methods": {
"get": {
"description": "Gets the latest state of a long-running operation. Clients can use this method to poll the operation result at intervals as recommended by the API service.",
"flatPath": "v1/operations/{operationsId}",
"httpMethod": "GET",
"id": "workspaceevents.operations.get",
"parameterOrder": [
"name"
],
"parameters": {
"name": {
"description": "The name of the operation resource.",
"location": "path",
"pattern": "^operations/.*$",
"required": true,
"type": "string"
}
},
"path": "v1/{+name}",
"response": {
"$ref": "Operation"
},
"scopes": [
"https://www.googleapis.com/auth/chat.bot",
"https://www.googleapis.com/auth/chat.memberships",
"https://www.googleapis.com/auth/chat.memberships.readonly",
"https://www.googleapis.com/auth/chat.messages",
"https://www.googleapis.com/auth/chat.messages.reactions",
"https://www.googleapis.com/auth/chat.messages.reactions.readonly",
"https://www.googleapis.com/auth/chat.messages.readonly",
"https://www.googleapis.com/auth/chat.spaces",
"https://www.googleapis.com/auth/chat.spaces.readonly",
"https://www.googleapis.com/auth/drive",
"https://www.googleapis.com/auth/drive.file",
"https://www.googleapis.com/auth/drive.metadata",
"https://www.googleapis.com/auth/drive.metadata.readonly",
"https://www.googleapis.com/auth/drive.readonly",
"https://www.googleapis.com/auth/meetings.space.created",
"https://www.googleapis.com/auth/meetings.space.readonly"
]
}
}
},
"subscriptions": {
"methods": {
"create": {
"description": "Creates a Google Workspace subscription. To learn how to use this method, see [Create a Google Workspace subscription](https://developers.google.com/workspace/events/guides/create-subscription). For a subscription on a [Chat target resource](https://developers.google.com/workspace/events/guides/events-chat), you can create a subscription as: - A Chat app by specifying an authorization scope that begins with `chat.app` and getting one-time administrator approval ([Developer Preview](https://developers.google.com/workspace/preview)). To learn more, see [Authorize as a Chat app with administrator approval](https://developers.google.com/workspace/chat/authenticate-authorize-chat-app). - A user by specifying an authorization scope that doesn't include `app` in its name. To learn more, see [Authorize as a Chat user](https://developers.google.com/workspace/chat/authenticate-authorize-chat-user).",
"flatPath": "v1/subscriptions",
"httpMethod": "POST",
"id": "workspaceevents.subscriptions.create",
"parameterOrder": [],
"parameters": {
"validateOnly": {
"description": "Optional. If set to `true`, validates and previews the request, but doesn't create the subscription.",
"location": "query",
"type": "boolean"
}
},
"path": "v1/subscriptions",
"request": {
"$ref": "Subscription"
},
"response": {
"$ref": "Operation"
},
"scopes": [
"https://www.googleapis.com/auth/chat.app.memberships",
"https://www.googleapis.com/auth/chat.app.messages.readonly",
"https://www.googleapis.com/auth/chat.app.spaces",
"https://www.googleapis.com/auth/chat.memberships",
"https://www.googleapis.com/auth/chat.memberships.readonly",
"https://www.googleapis.com/auth/chat.messages",
"https://www.googleapis.com/auth/chat.messages.reactions",
"https://www.googleapis.com/auth/chat.messages.reactions.readonly",
"https://www.googleapis.com/auth/chat.messages.readonly",
"https://www.googleapis.com/auth/chat.spaces",
"https://www.googleapis.com/auth/chat.spaces.readonly",
"https://www.googleapis.com/auth/drive",
"https://www.googleapis.com/auth/drive.file",
"https://www.googleapis.com/auth/drive.metadata",
"https://www.googleapis.com/auth/drive.metadata.readonly",
"https://www.googleapis.com/auth/drive.readonly",
"https://www.googleapis.com/auth/meetings.space.created",
"https://www.googleapis.com/auth/meetings.space.readonly"
]
},
"delete": {
"description": "Deletes a Google Workspace subscription. To learn how to use this method, see [Delete a Google Workspace subscription](https://developers.google.com/workspace/events/guides/delete-subscription).",
"flatPath": "v1/subscriptions/{subscriptionsId}",
"httpMethod": "DELETE",
"id": "workspaceevents.subscriptions.delete",
"parameterOrder": [
"name"
],
"parameters": {
"allowMissing": {
"description": "Optional. If set to `true` and the subscription isn't found, the request succeeds but doesn't delete the subscription.",
"location": "query",
"type": "boolean"
},
"etag": {
"description": "Optional. Etag of the subscription. If present, it must match with the server's etag. Otherwise, request fails with the status `ABORTED`.",
"location": "query",
"type": "string"
},
"name": {
"description": "Required. Resource name of the subscription to delete. Format: `subscriptions/{subscription}`",
"location": "path",
"pattern": "^subscriptions/[^/]+$",
"required": true,
"type": "string"
},
"validateOnly": {
"description": "Optional. If set to `true`, validates and previews the request, but doesn't delete the subscription.",
"location": "query",
"type": "boolean"
}
},
"path": "v1/{+name}",
"response": {
"$ref": "Operation"
},
"scopes": [
"https://www.googleapis.com/auth/chat.bot",
"https://www.googleapis.com/auth/chat.memberships",
"https://www.googleapis.com/auth/chat.memberships.readonly",
"https://www.googleapis.com/auth/chat.messages",
"https://www.googleapis.com/auth/chat.messages.reactions",
"https://www.googleapis.com/auth/chat.messages.reactions.readonly",
"https://www.googleapis.com/auth/chat.messages.readonly",
"https://www.googleapis.com/auth/chat.spaces",
"https://www.googleapis.com/auth/chat.spaces.readonly",
"https://www.googleapis.com/auth/drive",
"https://www.googleapis.com/auth/drive.file",
"https://www.googleapis.com/auth/drive.metadata",
"https://www.googleapis.com/auth/drive.metadata.readonly",
"https://www.googleapis.com/auth/drive.readonly",
"https://www.googleapis.com/auth/meetings.space.created",
"https://www.googleapis.com/auth/meetings.space.readonly"
]
},
"get": {
"description": "Gets details about a Google Workspace subscription. To learn how to use this method, see [Get details about a Google Workspace subscription](https://developers.google.com/workspace/events/guides/get-subscription).",
"flatPath": "v1/subscriptions/{subscriptionsId}",
"httpMethod": "GET",
"id": "workspaceevents.subscriptions.get",
"parameterOrder": [
"name"
],
"parameters": {
"name": {
"description": "Required. Resource name of the subscription. Format: `subscriptions/{subscription}`",
"location": "path",
"pattern": "^subscriptions/[^/]+$",
"required": true,
"type": "string"
}
},
"path": "v1/{+name}",
"response": {
"$ref": "Subscription"
},
"scopes": [
"https://www.googleapis.com/auth/chat.bot",
"https://www.googleapis.com/auth/chat.memberships",
"https://www.googleapis.com/auth/chat.memberships.readonly",
"https://www.googleapis.com/auth/chat.messages",
"https://www.googleapis.com/auth/chat.messages.reactions",
"https://www.googleapis.com/auth/chat.messages.reactions.readonly",
"https://www.googleapis.com/auth/chat.messages.readonly",
"https://www.googleapis.com/auth/chat.spaces",
"https://www.googleapis.com/auth/chat.spaces.readonly",
"https://www.googleapis.com/auth/drive",
"https://www.googleapis.com/auth/drive.file",
"https://www.googleapis.com/auth/drive.metadata",
"https://www.googleapis.com/auth/drive.metadata.readonly",
"https://www.googleapis.com/auth/drive.readonly",
"https://www.googleapis.com/auth/meetings.space.created",
"https://www.googleapis.com/auth/meetings.space.readonly"
]
},
"list": {
"description": "Lists Google Workspace subscriptions. To learn how to use this method, see [List Google Workspace subscriptions](https://developers.google.com/workspace/events/guides/list-subscriptions).",
"flatPath": "v1/subscriptions",
"httpMethod": "GET",
"id": "workspaceevents.subscriptions.list",
"parameterOrder": [],
"parameters": {
"filter": {
"description": "Required. A query filter. You can filter subscriptions by event type (`event_types`) and target resource (`target_resource`). You must specify at least one event type in your query. To filter for multiple event types, use the `OR` operator. To filter by both event type and target resource, use the `AND` operator and specify the full resource name, such as `//chat.googleapis.com/spaces/{space}`. For example, the following queries are valid: ``` event_types:\"google.workspace.chat.membership.v1.updated\" OR event_types:\"google.workspace.chat.message.v1.created\" event_types:\"google.workspace.chat.message.v1.created\" AND target_resource=\"//chat.googleapis.com/spaces/{space}\" ( event_types:\"google.workspace.chat.membership.v1.updated\" OR event_types:\"google.workspace.chat.message.v1.created\" ) AND target_resource=\"//chat.googleapis.com/spaces/{space}\" ``` The server rejects invalid queries with an `INVALID_ARGUMENT` error.",
"location": "query",
"type": "string"
},
"pageSize": {
"description": "Optional. The maximum number of subscriptions to return. The service might return fewer than this value. If unspecified or set to `0`, up to 50 subscriptions are returned. The maximum value is 100. If you specify a value more than 100, the system only returns 100 subscriptions.",
"format": "int32",
"location": "query",
"type": "integer"
},
"pageToken": {
"description": "Optional. A page token, received from a previous list subscriptions call. Provide this parameter to retrieve the subsequent page. When paginating, the filter value should match the call that provided the page token. Passing a different value might lead to unexpected results.",
"location": "query",
"type": "string"
}
},
"path": "v1/subscriptions",
"response": {
"$ref": "ListSubscriptionsResponse"
},
"scopes": [
"https://www.googleapis.com/auth/chat.bot",
"https://www.googleapis.com/auth/chat.memberships",
"https://www.googleapis.com/auth/chat.memberships.readonly",
"https://www.googleapis.com/auth/chat.messages",
"https://www.googleapis.com/auth/chat.messages.reactions",
"https://www.googleapis.com/auth/chat.messages.reactions.readonly",
"https://www.googleapis.com/auth/chat.messages.readonly",
"https://www.googleapis.com/auth/chat.spaces",
"https://www.googleapis.com/auth/chat.spaces.readonly",
"https://www.googleapis.com/auth/drive",
"https://www.googleapis.com/auth/drive.file",
"https://www.googleapis.com/auth/drive.metadata",
"https://www.googleapis.com/auth/drive.metadata.readonly",
"https://www.googleapis.com/auth/drive.readonly",
"https://www.googleapis.com/auth/meetings.space.created",
"https://www.googleapis.com/auth/meetings.space.readonly"
]
},
"patch": {
"description": "Updates or renews a Google Workspace subscription. To learn how to use this method, see [Update or renew a Google Workspace subscription](https://developers.google.com/workspace/events/guides/update-subscription). For a subscription on a [Chat target resource](https://developers.google.com/workspace/events/guides/events-chat), you can update a subscription as: - A Chat app by specifying an authorization scope that begins with `chat.app` andgetting one-time administrator approval ([Developer Preview](https://developers.google.com/workspace/preview)). To learn more, see [Authorize as a Chat app with administrator approval](https://developers.google.com/workspace/chat/authenticate-authorize-chat-app). - A user by specifying an authorization scope that doesn't include `app` in its name. To learn more, see [Authorize as a Chat user](https://developers.google.com/workspace/chat/authenticate-authorize-chat-user).",
"flatPath": "v1/subscriptions/{subscriptionsId}",
"httpMethod": "PATCH",
"id": "workspaceevents.subscriptions.patch",
"parameterOrder": [
"name"
],
"parameters": {
"name": {
"description": "Identifier. Resource name of the subscription. Format: `subscriptions/{subscription}`",
"location": "path",
"pattern": "^subscriptions/[^/]+$",
"required": true,
"type": "string"
},
"updateMask": {
"description": "Optional. The field to update. If omitted, updates any fields included in the request. You can update one of the following fields in a subscription: * `expire_time`: The timestamp when the subscription expires. * `ttl`: The time-to-live (TTL) or duration of the subscription. * `event_types`: The list of event types to receive about the target resource. When using the `*` wildcard (equivalent to `PUT`), omitted fields are set to empty values and rejected if they're invalid.",
"format": "google-fieldmask",
"location": "query",
"type": "string"
},
"validateOnly": {
"description": "Optional. If set to `true`, validates and previews the request, but doesn't update the subscription.",
"location": "query",
"type": "boolean"
}
},
"path": "v1/{+name}",
"request": {
"$ref": "Subscription"
},
"response": {
"$ref": "Operation"
},
"scopes": [
"https://www.googleapis.com/auth/chat.app.memberships",
"https://www.googleapis.com/auth/chat.app.messages.readonly",
"https://www.googleapis.com/auth/chat.app.spaces",
"https://www.googleapis.com/auth/chat.memberships",
"https://www.googleapis.com/auth/chat.memberships.readonly",
"https://www.googleapis.com/auth/chat.messages",
"https://www.googleapis.com/auth/chat.messages.reactions",
"https://www.googleapis.com/auth/chat.messages.reactions.readonly",
"https://www.googleapis.com/auth/chat.messages.readonly",
"https://www.googleapis.com/auth/chat.spaces",
"https://www.googleapis.com/auth/chat.spaces.readonly",
"https://www.googleapis.com/auth/drive",
"https://www.googleapis.com/auth/drive.file",
"https://www.googleapis.com/auth/drive.metadata",
"https://www.googleapis.com/auth/drive.metadata.readonly",
"https://www.googleapis.com/auth/drive.readonly",
"https://www.googleapis.com/auth/meetings.space.created",
"https://www.googleapis.com/auth/meetings.space.readonly"
]
},
"reactivate": {
"description": "Reactivates a suspended Google Workspace subscription. This method resets your subscription's `State` field to `ACTIVE`. Before you use this method, you must fix the error that suspended the subscription. This method will ignore or reject any subscription that isn't currently in a suspended state. To learn how to use this method, see [Reactivate a Google Workspace subscription](https://developers.google.com/workspace/events/guides/reactivate-subscription). For a subscription on a [Chat target resource](https://developers.google.com/workspace/events/guides/events-chat), you can reactivate a subscription as: - A Chat app by specifying an authorization scope that begins with `chat.app` andgetting one-time administrator approval ([Developer Preview](https://developers.google.com/workspace/preview)). To learn more, see [Authorize as a Chat app with administrator approval](https://developers.google.com/workspace/chat/authenticate-authorize-chat-app). - A user by specifying an authorization scope that doesn't include `app` in its name. To learn more, see [Authorize as a Chat user](https://developers.google.com/workspace/chat/authenticate-authorize-chat-user).",
"flatPath": "v1/subscriptions/{subscriptionsId}:reactivate",
"httpMethod": "POST",
"id": "workspaceevents.subscriptions.reactivate",
"parameterOrder": [
"name"
],
"parameters": {
"name": {
"description": "Required. Resource name of the subscription. Format: `subscriptions/{subscription}`",
"location": "path",
"pattern": "^subscriptions/[^/]+$",
"required": true,
"type": "string"
}
},
"path": "v1/{+name}:reactivate",
"request": {
"$ref": "ReactivateSubscriptionRequest"
},
"response": {
"$ref": "Operation"
},
"scopes": [
"https://www.googleapis.com/auth/chat.app.memberships",
"https://www.googleapis.com/auth/chat.app.messages.readonly",
"https://www.googleapis.com/auth/chat.app.spaces",
"https://www.googleapis.com/auth/chat.memberships",
"https://www.googleapis.com/auth/chat.memberships.readonly",
"https://www.googleapis.com/auth/chat.messages",
"https://www.googleapis.com/auth/chat.messages.reactions",
"https://www.googleapis.com/auth/chat.messages.reactions.readonly",
"https://www.googleapis.com/auth/chat.messages.readonly",
"https://www.googleapis.com/auth/chat.spaces",
"https://www.googleapis.com/auth/chat.spaces.readonly",
"https://www.googleapis.com/auth/drive",
"https://www.googleapis.com/auth/drive.file",
"https://www.googleapis.com/auth/drive.metadata",
"https://www.googleapis.com/auth/drive.metadata.readonly",
"https://www.googleapis.com/auth/drive.readonly",
"https://www.googleapis.com/auth/meetings.space.created",
"https://www.googleapis.com/auth/meetings.space.readonly"
]
}
}
},
"tasks": {
"methods": {
"cancel": {
"description": "Cancel a task from the agent. If supported one should expect no more task updates for the task.",
"flatPath": "v1/tasks/{tasksId}:cancel",
"httpMethod": "POST",
"id": "workspaceevents.tasks.cancel",
"parameterOrder": [
"name"
],
"parameters": {
"name": {
"description": "The resource name of the task to cancel. Format: tasks/{task_id}",
"location": "path",
"pattern": "^tasks/[^/]+$",
"required": true,
"type": "string"
}
},
"path": "v1/{+name}:cancel",
"request": {
"$ref": "CancelTaskRequest"
},
"response": {
"$ref": "Task"
}
},
"get": {
"description": "Get the current state of a task from the agent.",
"flatPath": "v1/tasks/{tasksId}",
"httpMethod": "GET",
"id": "workspaceevents.tasks.get",
"parameterOrder": [
"name"
],
"parameters": {
"historyLength": {
"description": "The number of most recent messages from the task's history to retrieve.",
"format": "int32",
"location": "query",
"type": "integer"
},
"name": {
"description": "Required. The resource name of the task. Format: tasks/{task_id}",
"location": "path",
"pattern": "^tasks/[^/]+$",
"required": true,
"type": "string"
},
"tenant": {
"description": "Optional tenant, provided as a path parameter. Experimental, might still change for 1.0 release.",
"location": "query",
"type": "string"
}
},
"path": "v1/{+name}",
"response": {
"$ref": "Task"
}
},
"subscribe": {
"description": "TaskSubscription is a streaming call that will return a stream of task update events. This attaches the stream to an existing in process task. If the task is complete the stream will return the completed task (like GetTask) and close the stream.",
"flatPath": "v1/tasks/{tasksId}:subscribe",
"httpMethod": "GET",
"id": "workspaceevents.tasks.subscribe",
"parameterOrder": [
"name"
],
"parameters": {
"name": {
"description": "The resource name of the task to subscribe to. Format: tasks/{task_id}",
"location": "path",
"pattern": "^tasks/[^/]+$",
"required": true,
"type": "string"
},
"tenant": {
"description": "Optional tenant, provided as a path parameter. Experimental, might still change for 1.0 release.",
"location": "query",
"type": "string"
}
},
"path": "v1/{+name}:subscribe",
"response": {
"$ref": "StreamResponse"
}
}
},
"resources": {
"pushNotificationConfigs": {
"methods": {
"create": {
"description": "Set a push notification config for a task.",
"flatPath": "v1/tasks/{tasksId}/pushNotificationConfigs",
"httpMethod": "POST",
"id": "workspaceevents.tasks.pushNotificationConfigs.create",
"parameterOrder": [
"parent"
],
"parameters": {
"configId": {
"description": "Required. The ID for the new config.",
"location": "query",
"type": "string"
},
"parent": {
"description": "Required. The parent task resource for this config. Format: tasks/{task_id}",
"location": "path",
"pattern": "^tasks/[^/]+/pushNotificationConfigs$",
"required": true,
"type": "string"
},
"tenant": {
"description": "Optional tenant, provided as a path parameter. Experimental, might still change for 1.0 release.",
"location": "query",
"type": "string"
}
},
"path": "v1/{+parent}",
"request": {
"$ref": "TaskPushNotificationConfig"
},
"response": {
"$ref": "TaskPushNotificationConfig"
}
},
"delete": {
"description": "Delete a push notification config for a task.",
"flatPath": "v1/tasks/{tasksId}/pushNotificationConfigs/{pushNotificationConfigsId}",
"httpMethod": "DELETE",
"id": "workspaceevents.tasks.pushNotificationConfigs.delete",
"parameterOrder": [
"name"
],
"parameters": {
"name": {
"description": "The resource name of the config to delete. Format: tasks/{task_id}/pushNotificationConfigs/{config_id}",
"location": "path",
"pattern": "^tasks/[^/]+/pushNotificationConfigs/[^/]+$",
"required": true,
"type": "string"
},
"tenant": {
"description": "Optional tenant, provided as a path parameter. Experimental, might still change for 1.0 release.",
"location": "query",
"type": "string"
}
},
"path": "v1/{+name}",
"response": {
"$ref": "Empty"
}
},
"get": {
"description": "Get a push notification config for a task.",
"flatPath": "v1/tasks/{tasksId}/pushNotificationConfigs/{pushNotificationConfigsId}",
"httpMethod": "GET",
"id": "workspaceevents.tasks.pushNotificationConfigs.get",
"parameterOrder": [
"name"
],
"parameters": {
"name": {
"description": "The resource name of the config to retrieve. Format: tasks/{task_id}/pushNotificationConfigs/{config_id}",
"location": "path",
"pattern": "^tasks/[^/]+/pushNotificationConfigs/[^/]+$",
"required": true,
"type": "string"
},
"tenant": {
"description": "Optional tenant, provided as a path parameter. Experimental, might still change for 1.0 release.",
"location": "query",
"type": "string"
}
},
"path": "v1/{+name}",
"response": {
"$ref": "TaskPushNotificationConfig"
}
},
"list": {
"description": "Get a list of push notifications configured for a task.",
"flatPath": "v1/tasks/{tasksId}/pushNotificationConfigs",
"httpMethod": "GET",
"id": "workspaceevents.tasks.pushNotificationConfigs.list",
"parameterOrder": [
"parent"
],
"parameters": {
"pageSize": {
"description": "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.",
"format": "int32",
"location": "query",
"type": "integer"
},
"pageToken": {
"description": "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.",
"location": "query",
"type": "string"
},
"parent": {
"description": "The parent task resource. Format: tasks/{task_id}",
"location": "path",
"pattern": "^tasks/[^/]+$",
"required": true,
"type": "string"
},
"tenant": {
"description": "Optional tenant, provided as a path parameter. Experimental, might still change for 1.0 release.",
"location": "query",
"type": "string"
}
},
"path": "v1/{+parent}/pushNotificationConfigs",
"response": {
"$ref": "ListTaskPushNotificationConfigResponse"
}
}
}
}
}
}
},
"revision": "20251216",
"rootUrl": "https://workspaceevents.googleapis.com/",
"schemas": {
"Artifact": {
"description": "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.",
"id": "Artifact",
"properties": {
"artifactId": {
"description": "Unique identifier (e.g. UUID) for the artifact. It must be at least unique within a task.",
"type": "string"
},
"description": {
"description": "A human readable description of the artifact, optional.",
"type": "string"
},
"extensions": {
"description": "The URIs of extensions that are present or contributed to this Artifact.",
"items": {
"type": "string"
},
"type": "array"
},
"metadata": {
"additionalProperties": {
"description": "Properties of the object.",
"type": "any"
},
"description": "Optional metadata included with the artifact.",
"type": "object"
},
"name": {
"description": "A human readable name for the artifact.",
"type": "string"
},
"parts": {
"description": "The content of the artifact.",
"items": {
"$ref": "Part"
},
"type": "array"
}
},
"type": "object"
},
"AuthenticationInfo": {
"description": "Defines authentication details, used for push notifications.",
"id": "AuthenticationInfo",
"properties": {
"credentials": {
"description": "Optional credentials",
"type": "string"
},
"schemes": {
"description": "Supported authentication schemes - e.g. Basic, Bearer, etc",
"items": {
"type": "string"
},
"type": "array"
}
},
"type": "object"
},
"CancelTaskRequest": {
"id": "CancelTaskRequest",
"properties": {
"tenant": {
"description": "Optional tenant, provided as a path parameter. Experimental, might still change for 1.0 release.",
"type": "string"
}
},
"type": "object"
},
"DataPart": {
"description": "DataPart represents a structured blob. This is most commonly a JSON payload.",
"id": "DataPart",
"properties": {
"data": {
"additionalProperties": {
"description": "Properties of the object.",
"type": "any"
},
"type": "object"
}
},
"type": "object"
},
"Empty": {
"description": "A generic empty message that you can re-use to avoid defining duplicated empty messages in your APIs. A typical example is to use it as the request or the response type of an API method. For instance: service Foo { rpc Bar(google.protobuf.Empty) returns (google.protobuf.Empty); }",
"id": "Empty",
"properties": {},
"type": "object"
},
"FilePart": {
"description": "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.",
"id": "FilePart",
"properties": {
"fileWithBytes": {
"format": "byte",
"type": "string"
},
"fileWithUri": {
"type": "string"
},
"mimeType": {
"type": "string"
},
"name": {
"type": "string"
}
},
"type": "object"
},
"ListSubscriptionsResponse": {
"description": "The response message for SubscriptionsService.ListSubscriptions.",
"id": "ListSubscriptionsResponse",
"properties": {
"nextPageToken": {
"description": "A token, which can be sent as `page_token` to retrieve the next page. If this field is omitted, there are no subsequent pages.",
"type": "string"
},
"subscriptions": {
"description": "List of subscriptions.",
"items": {
"$ref": "Subscription"
},
"type": "array"
}
},
"type": "object"
},
"ListTaskPushNotificationConfigResponse": {
"id": "ListTaskPushNotificationConfigResponse",
"properties": {
"configs": {
"description": "The list of push notification configurations.",
"items": {
"$ref": "TaskPushNotificationConfig"
},
"type": "array"
},
"nextPageToken": {
"description": "A token, which can be sent as `page_token` to retrieve the next page. If this field is omitted, there are no subsequent pages.",
"type": "string"
}
},
"type": "object"
},
"Message": {
"description": "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.",
"id": "Message",
"properties": {
"content": {
"description": "protolint:disable REPEATED_FIELD_NAMES_PLURALIZED Content is the container of the message content.",
"items": {
"$ref": "Part"
},
"type": "array"
},
"contextId": {
"description": "The context id of the message. This is optional and if set, the message will be associated with the given context.",
"type": "string"
},
"extensions": {
"description": "The URIs of extensions that are present or contributed to this Message.",
"items": {
"type": "string"
},
"type": "array"
},
"messageId": {
"description": "The unique identifier (e.g. UUID)of the message. This is required and created by the message creator.",
"type": "string"
},
"metadata": {
"additionalProperties": {
"description": "Properties of the object.",
"type": "any"
},
"description": "protolint:enable REPEATED_FIELD_NAMES_PLURALIZED Any optional metadata to provide along with the message.",
"type": "object"
},
"role": {
"description": "A role for the message.",
"enum": [
"ROLE_UNSPECIFIED",
"ROLE_USER",
"ROLE_AGENT"
],
"enumDescriptions": [
"",
"USER role refers to communication from the client to the server.",
"AGENT role refers to communication from the server to the client."
],
"type": "string"
},
"taskId": {
"description": "The task id of the message. This is optional and if set, the message will be associated with the given task.",
"type": "string"
}
},
"type": "object"
},
"NotificationEndpoint": {
"description": "The endpoint where the subscription delivers events.",
"id": "NotificationEndpoint",
"properties": {
"pubsubTopic": {
"description": "Immutable. The Pub/Sub topic that receives events for the subscription. Format: `projects/{project}/topics/{topic}` You must create the topic in the same Google Cloud project where you create this subscription. Note: The Google Workspace Events API uses [ordering keys](https://cloud.google.com/pubsub/docs/ordering) for the benefit of sequential events. If the Cloud Pub/Sub topic has a [message storage policy](https://cloud.google.com/pubsub/docs/resource-location-restriction#exceptions) configured to exclude the nearest Google Cloud region, publishing events with ordering keys will fail. When the topic receives events, the events are encoded as Pub/Sub messages. For details, see the [Google Cloud Pub/Sub Protocol Binding for CloudEvents](https://github.com/googleapis/google-cloudevents/blob/main/docs/spec/pubsub.md).",
"type": "string"
}
},
"type": "object"
},
"Operation": {
"description": "This resource represents a long-running operation that is the result of a network API call.",
"id": "Operation",
"properties": {
"done": {
"description": "If the value is `false`, it means the operation is still in progress. If `true`, the operation is completed, and either `error` or `response` is available.",
"type": "boolean"
},
"error": {
"$ref": "Status",
"description": "The error result of the operation in case of failure or cancellation."
},
"metadata": {
"additionalProperties": {
"description": "Properties of the object. Contains field @type with type URL.",
"type": "any"
},
"description": "Service-specific metadata associated with the operation. It typically contains progress information and common metadata such as create time. Some services might not provide such metadata. Any method that returns a long-running operation should document the metadata type, if any.",
"type": "object"
},
"name": {
"description": "The server-assigned name, which is only unique within the same service that originally returns it. If you use the default HTTP mapping, the `name` should be a resource name ending with `operations/{unique_id}`.",
"type": "string"
},
"response": {
"additionalProperties": {
"description": "Properties of the object. Contains field @type with type URL.",
"type": "any"
},
"description": "The normal, successful response of the operation. If the original method returns no data on success, such as `Delete`, the response is `google.protobuf.Empty`. If the original method is standard `Get`/`Create`/`Update`, the response should be the resource. For other methods, the response should have the type `XxxResponse`, where `Xxx` is the original method name. For example, if the original method name is `TakeSnapshot()`, the inferred response type is `TakeSnapshotResponse`.",
"type": "object"
}
},
"type": "object"
},
"Part": {
"description": "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).",
"id": "Part",
"properties": {
"data": {
"$ref": "DataPart"
},
"file": {
"$ref": "FilePart"
},
"metadata": {
"additionalProperties": {
"description": "Properties of the object.",
"type": "any"
},
"description": "Optional metadata associated with this part.",
"type": "object"
},
"text": {
"type": "string"
}
},
"type": "object"
},
"PayloadOptions": {
"description": "Options about what data to include in the event payload. Only supported for Google Chat and Google Drive events.",
"id": "PayloadOptions",
"properties": {
"fieldMask": {
"description": "Optional. If `include_resource` is set to `true`, the list of fields to include in the event payload. Separate fields with a comma. For example, to include a Google Chat message's sender and create time, enter `message.sender,message.createTime`. If omitted, the payload includes all fields for the resource. If you specify a field that doesn't exist for the resource, the system ignores the field.",
"format": "google-fieldmask",
"type": "string"
},
"includeResource": {
"description": "Optional. Whether the event payload includes data about the resource that changed. For example, for an event where a Google Chat message was created, whether the payload contains data about the [`Message`](https://developers.google.com/chat/api/reference/rest/v1/spaces.messages) resource. If false, the event payload only includes the name of the changed resource.",
"type": "boolean"
}
},
"type": "object"
},
"PushNotificationConfig": {
"description": "Configuration for setting up push notifications for task updates.",
"id": "PushNotificationConfig",
"properties": {
"authentication": {
"$ref": "AuthenticationInfo",
"description": "Information about the authentication to sent with the notification"
},
"id": {
"description": "A unique identifier (e.g. UUID) for this push notification.",
"type": "string"
},
"token": {
"description": "Token unique for this task/session",
"type": "string"
},
"url": {
"description": "Url to send the notification too",
"type": "string"
}
},
"type": "object"
},
"ReactivateSubscriptionRequest": {
"description": "The request message for SubscriptionsService.ReactivateSubscription.",
"id": "ReactivateSubscriptionRequest",
"properties": {},
"type": "object"
},
"SendMessageConfiguration": {
"description": "Configuration of a send message request.",
"id": "SendMessageConfiguration",
"properties": {
"acceptedOutputModes": {
"description": "The output modes that the agent is expected to respond with.",
"items": {
"type": "string"
},
"type": "array"
},
"blocking": {
"description": "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.",
"type": "boolean"
},
"historyLength": {
"description": "The maximum number of messages to include in the history. if 0, the history will be unlimited.",
"format": "int32",
"type": "integer"
},
"pushNotification": {
"$ref": "PushNotificationConfig",
"description": "A configuration of a webhook that can be used to receive updates"
}
},
"type": "object"
},
"SendMessageRequest": {
"description": "/////////// Request Messages ///////////",
"id": "SendMessageRequest",
"properties": {
"configuration": {
"$ref": "SendMessageConfiguration",
"description": "Configuration for the send request."
},
"message": {
"$ref": "Message",
"description": "Required. The message to send to the agent."
},
"metadata": {
"additionalProperties": {
"description": "Properties of the object.",
"type": "any"
},
"description": "Optional metadata for the request.",
"type": "object"
},
"tenant": {
"description": "Optional tenant, provided as a path parameter. Experimental, might still change for 1.0 release.",
"type": "string"
}
},
"type": "object"
},
"Status": {
"description": "The `Status` type defines a logical error model that is suitable for different programming environments, including REST APIs and RPC APIs. It is used by [gRPC](https://github.com/grpc). Each `Status` message contains three pieces of data: error code, error message, and error details. You can find out more about this error model and how to work with it in the [API Design Guide](https://cloud.google.com/apis/design/errors).",
"id": "Status",
"properties": {
"code": {
"description": "The status code, which should be an enum value of google.rpc.Code.",
"format": "int32",
"type": "integer"
},
"details": {
"description": "A list of messages that carry the error details. There is a common set of message types for APIs to use.",
"items": {
"additionalProperties": {
"description": "Properties of the object. Contains field @type with type URL.",
"type": "any"
},
"type": "object"
},
"type": "array"
},
"message": {
"description": "A developer-facing error message, which should be in English. Any user-facing error message should be localized and sent in the google.rpc.Status.details field, or localized by the client.",
"type": "string"
}
},
"type": "object"
},
"StreamResponse": {
"description": "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",
"id": "StreamResponse",
"properties": {
"artifactUpdate": {
"$ref": "TaskArtifactUpdateEvent"
},
"message": {
"$ref": "Message"
},
"statusUpdate": {
"$ref": "TaskStatusUpdateEvent"
},
"task": {
"$ref": "Task"
}
},
"type": "object"
},
"Subscription": {
"description": "A subscription to receive events about a Google Workspace resource. To learn more about subscriptions, see the [Google Workspace Events API overview](https://developers.google.com/workspace/events).",
"id": "Subscription",
"properties": {
"authority": {
"description": "Output only. The user who authorized the creation of the subscription. When a user authorizes the subscription, this field and the `user_authority` field have the same value and the format is: Format: `users/{user}` For Google Workspace users, the `{user}` value is the [`user.id`](https://developers.google.com/admin-sdk/directory/reference/rest/v1/users#User.FIELDS.ids) field from the Directory API. When a Chat app authorizes the subscription, only `service_account_authority` field populates and this field is empty.",
"readOnly": true,
"type": "string"
},
"createTime": {
"description": "Output only. The time when the subscription is created.",
"format": "google-datetime",
"readOnly": true,
"type": "string"
},
"etag": {
"description": "Optional. This checksum is computed by the server based on the value of other fields, and might be sent on update requests to ensure the client has an up-to-date value before proceeding.",
"type": "string"
},
"eventTypes": {
"description": "Required. Unordered list. Input for creating a subscription. Otherwise, output only. One or more types of events to receive about the target resource. Formatted according to the CloudEvents specification. The supported event types depend on the target resource of your subscription. For details, see [Supported Google Workspace events](https://developers.google.com/workspace/events/guides#supported-events). By default, you also receive events about the [lifecycle of your subscription](https://developers.google.com/workspace/events/guides/events-lifecycle). You don't need to specify lifecycle events for this field. If you specify an event type that doesn't exist for the target resource, the request returns an HTTP `400 Bad Request` status code.",
"items": {
"type": "string"
},
"type": "array"
},
"expireTime": {
"description": "Non-empty default. The timestamp in UTC when the subscription expires. Always displayed on output, regardless of what was used on input.",
"format": "google-datetime",
"type": "string"
},
"name": {
"description": "Identifier. Resource name of the subscription. Format: `subscriptions/{subscription}`",
"type": "string"
},
"notificationEndpoint": {
"$ref": "NotificationEndpoint",
"description": "Required. Immutable. The endpoint where the subscription delivers events, such as a Pub/Sub topic."
},
"payloadOptions": {
"$ref": "PayloadOptions",
"description": "Optional. Options about what data to include in the event payload. Only supported for Google Chat and Google Drive events."
},
"reconciling": {
"description": "Output only. If `true`, the subscription is in the process of being updated.",
"readOnly": true,
"type": "boolean"
},
"state": {
"description": "Output only. The state of the subscription. Determines whether the subscription can receive events and deliver them to the notification endpoint.",
"enum": [
"STATE_UNSPECIFIED",
"ACTIVE",
"SUSPENDED",
"DELETED"
],
"enumDescriptions": [
"Default value. This value is unused.",
"The subscription is active and can receive and deliver events to its notification endpoint.",
"The subscription is unable to receive events due to an error. To identify the error, see the `suspension_reason` field.",
"The subscription is deleted."
],
"readOnly": true,
"type": "string"
},
"suspensionReason": {
"description": "Output only. The error that suspended the subscription. To reactivate the subscription, resolve the error and call the `ReactivateSubscription` method.",
"enum": [
"ERROR_TYPE_UNSPECIFIED",
"USER_SCOPE_REVOKED",
"RESOURCE_DELETED",
"USER_AUTHORIZATION_FAILURE",
"ENDPOINT_PERMISSION_DENIED",
"ENDPOINT_NOT_FOUND",
"ENDPOINT_RESOURCE_EXHAUSTED",
"OTHER"
],
"enumDescriptions": [
"Default value. This value is unused.",
"The authorizing user has revoked the grant of one or more OAuth scopes. To learn more about authorization for Google Workspace, see [Configure the OAuth consent screen](https://developers.google.com/workspace/guides/configure-oauth-consent#choose-scopes).",
"The target resource for the subscription no longer exists.",
"The user that authorized the creation of the subscription no longer has access to the subscription's target resource.",
"The Google Workspace application doesn't have access to deliver events to your subscription's notification endpoint.",
"The subscription's notification endpoint doesn't exist, or the endpoint can't be found in the Google Cloud project where you created the subscription.",
"The subscription's notification endpoint failed to receive events due to insufficient quota or reaching rate limiting.",
"An unidentified error has occurred."
],
"readOnly": true,
"type": "string"
},
"targetResource": {
"description": "Required. Immutable. The Google Workspace resource that's monitored for events, formatted as the [full resource name](https://google.aip.dev/122#full-resource-names). To learn about target resources and the events that they support, see [Supported Google Workspace events](https://developers.google.com/workspace/events#supported-events). A user can only authorize your app to create one subscription for a given target resource. If your app tries to create another subscription with the same user credentials, the request returns an `ALREADY_EXISTS` error.",
"type": "string"
},
"ttl": {
"description": "Input only. The time-to-live (TTL) or duration for the subscription. If unspecified or set to `0`, uses the maximum possible duration.",
"format": "google-duration",
"type": "string"
},
"uid": {
"description": "Output only. System-assigned unique identifier for the subscription.",
"readOnly": true,
"type": "string"
},
"updateTime": {
"description": "Output only. The last time that the subscription is updated.",
"format": "google-datetime",
"readOnly": true,
"type": "string"
}
},
"type": "object"
},
"Task": {
"description": "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.",
"id": "Task",
"properties": {
"artifacts": {
"description": "A set of output artifacts for a Task.",
"items": {
"$ref": "Artifact"
},
"type": "array"
},
"contextId": {
"description": "Unique identifier (e.g. UUID) for the contextual collection of interactions (tasks and messages). Created by the A2A server.",
"type": "string"
},
"history": {
"description": "protolint:disable REPEATED_FIELD_NAMES_PLURALIZED The history of interactions from a task.",
"items": {
"$ref": "Message"
},
"type": "array"
},
"id": {
"description": "Unique identifier (e.g. UUID) for the task, generated by the server for a new task.",
"type": "string"
},
"metadata": {
"additionalProperties": {
"description": "Properties of the object.",
"type": "any"
},
"description": "protolint:enable REPEATED_FIELD_NAMES_PLURALIZED A key/value object to store custom metadata about a task.",
"type": "object"
},
"status": {
"$ref": "TaskStatus",
"description": "The current status of a Task, including state and a message."
}
},
"type": "object"
},
"TaskArtifactUpdateEvent": {
"description": "TaskArtifactUpdateEvent represents a task delta where an artifact has been generated.",
"id": "TaskArtifactUpdateEvent",
"properties": {
"append": {
"description": "Whether this should be appended to a prior one produced",
"type": "boolean"
},
"artifact": {
"$ref": "Artifact",
"description": "The artifact itself"
},
"contextId": {
"description": "The id of the context that this task belongs too",
"type": "string"
},
"lastChunk": {
"description": "Whether this represents the last part of an artifact",
"type": "boolean"
},
"metadata": {
"additionalProperties": {
"description": "Properties of the object.",
"type": "any"
},
"description": "Optional metadata associated with the artifact update.",
"type": "object"
},
"taskId": {
"description": "The id of the task for this artifact",
"type": "string"
}
},
"type": "object"
},
"TaskPushNotificationConfig": {
"id": "TaskPushNotificationConfig",
"properties": {
"name": {
"description": "The resource name of the config. Format: tasks/{task_id}/pushNotificationConfigs/{config_id}",
"type": "string"
},
"pushNotificationConfig": {
"$ref": "PushNotificationConfig",
"description": "The push notification configuration details."
}
},
"type": "object"
},
"TaskStatus": {
"description": "A container for the status of a task",
"id": "TaskStatus",
"properties": {
"message": {
"$ref": "Message",
"description": "A message associated with the status."
},
"state": {
"description": "The current state of this task",
"enum": [
"TASK_STATE_UNSPECIFIED",
"TASK_STATE_SUBMITTED",
"TASK_STATE_WORKING",
"TASK_STATE_COMPLETED",
"TASK_STATE_FAILED",
"TASK_STATE_CANCELLED",
"TASK_STATE_INPUT_REQUIRED",
"TASK_STATE_REJECTED",
"TASK_STATE_AUTH_REQUIRED"
],
"enumDescriptions": [
"",
"Represents the status that acknowledges a task is created",
"Represents the status that a task is actively being processed",
"Represents the status a task is finished. This is a terminal state",
"Represents the status a task is done but failed. This is a terminal state",
"Represents the status a task was cancelled before it finished. This is a terminal state.",
"Represents the status that the task requires information to complete. This is an interrupted state.",
"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.",
"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."
],
"type": "string"
},
"timestamp": {
"description": "Timestamp when the status was recorded. Example: \"2023-10-27T10:00:00Z\"",
"format": "google-datetime",
"type": "string"
}
},
"type": "object"
},
"TaskStatusUpdateEvent": {
"description": "TaskStatusUpdateEvent is a delta even on a task indicating that a task has changed.",
"id": "TaskStatusUpdateEvent",
"properties": {
"contextId": {
"description": "The id of the context that the task belongs to",
"type": "string"
},
"final": {
"description": "Whether this is the last status update expected for this task.",
"type": "boolean"
},
"metadata": {
"additionalProperties": {
"description": "Properties of the object.",
"type": "any"
},
"description": "Optional metadata to associate with the task update.",
"type": "object"
},
"status": {
"$ref": "TaskStatus",
"description": "The new status of the task."
},
"taskId": {
"description": "The id of the task that is changed",
"type": "string"
}
},
"type": "object"
}
},
"servicePath": "",
"title": "Google Workspace Events API",
"version": "v1",
"version_module": true
}