This is the multi-page printable view of this section. Click here to print.

Return to the regular view of this page.

SPEKTRA Edge AI Service API

Understanding the AI service API.
  • 1:

The AI service provides platform APIs for conversational AI used by the SPEKTRA Edge Dashboard, Agent Dashboard, Alerting remediation flows, and other service-account callers.

It manages:

  • Chat model deployments (ChatModel)
  • Conversations and conversation feedback
  • Capability templates (tool and capability presets)
  • Connectors and connector user tokens for tool integrations
  • Search databases, indices, and documents for retrieval-augmented context

Full API Specifications (with resources):

  • Version v1

1 -

Understanding the ai.edgelq.com service APIv1, in proto package ntt.ai.v1.

Service ai.edgelq.com in version v1, proto package ntt.ai.v1

Here is the list of resources supported in AI service APIv1:

CapabilityTemplate Resource

CapabilityTemplate Resource

Name patterns:

  • capabilityTemplates/{capability_template}
  • projects/{project}/capabilityTemplates/{capability_template}

Parent resources:

This section covers the methods and messages to interact with CapabilityTemplate resource.

CapabilityTemplate Methods

Here is the list of CapabilityTemplate resource methods:

GetCapabilityTemplate Method

GetCapabilityTemplate

rpc GetCapabilityTemplate(GetCapabilityTemplateRequest) returns (CapabilityTemplate)

with the following messages:

Required Permissions:

  • services/ai.edgelq.com/permissions/capabilityTemplates.get

The equivalent REST API is:

GET /v1/{name=capabilityTemplates/*} 
GET /v1/{name=projects/*/capabilityTemplates/*} 

BatchGetCapabilityTemplates Method

BatchGetCapabilityTemplates

rpc BatchGetCapabilityTemplates(BatchGetCapabilityTemplatesRequest) returns (BatchGetCapabilityTemplatesResponse)

with the following messages:

Required Permissions:

  • services/ai.edgelq.com/permissions/capabilityTemplates.batchGet

The equivalent REST API is:

GET /v1/capabilityTemplates:batchGet 

ListCapabilityTemplates Method

ListCapabilityTemplates

rpc ListCapabilityTemplates(ListCapabilityTemplatesRequest) returns (ListCapabilityTemplatesResponse)

with the following messages:

Required Permissions:

  • services/ai.edgelq.com/permissions/capabilityTemplates.list

The equivalent REST API is:

GET /v1/capabilityTemplates 
GET /v1/{parent=projects/*}/capabilityTemplates 

WatchCapabilityTemplate Method

WatchCapabilityTemplate

rpc WatchCapabilityTemplate(WatchCapabilityTemplateRequest) returns (WatchCapabilityTemplateResponse)

with the following messages:

Required Permissions:

  • services/ai.edgelq.com/permissions/capabilityTemplates.watch

The equivalent REST API is:

POST /v1/{name=capabilityTemplates/*}:watch 
POST /v1/{name=projects/*/capabilityTemplates/*}:watch 

WatchCapabilityTemplates Method

WatchCapabilityTemplates

rpc WatchCapabilityTemplates(WatchCapabilityTemplatesRequest) returns (WatchCapabilityTemplatesResponse)

with the following messages:

Required Permissions:

  • services/ai.edgelq.com/permissions/capabilityTemplates.watch

The equivalent REST API is:

POST /v1/capabilityTemplates:watch 
POST /v1/{parent=projects/*}/capabilityTemplates:watch 

CreateCapabilityTemplate Method

CreateCapabilityTemplate

rpc CreateCapabilityTemplate(CreateCapabilityTemplateRequest) returns (CapabilityTemplate)

with the following messages:

Required Permissions:

  • services/ai.edgelq.com/permissions/capabilityTemplates.create

The equivalent REST API is:

POST /v1/capabilityTemplates (BODY: capability_template)
POST /v1/{parent=projects/*}/capabilityTemplates 

UpdateCapabilityTemplate Method

UpdateCapabilityTemplate

rpc UpdateCapabilityTemplate(UpdateCapabilityTemplateRequest) returns (CapabilityTemplate)

with the following messages:

Required Permissions:

  • services/ai.edgelq.com/permissions/capabilityTemplates.update

The equivalent REST API is:

PUT /v1/{capability_template.name=capabilityTemplates/*} (BODY: capability_template)
PUT /v1/{capability_template.name=projects/*/capabilityTemplates/*} 

DeleteCapabilityTemplate Method

DeleteCapabilityTemplate

rpc DeleteCapabilityTemplate(DeleteCapabilityTemplateRequest) returns (Empty)

with the following messages:

Required Permissions:

  • services/ai.edgelq.com/permissions/capabilityTemplates.delete

The equivalent REST API is:

DELETE /v1/{name=capabilityTemplates/*} 
DELETE /v1/{name=projects/*/capabilityTemplates/*} 

PreviewTemplateTools Method

PreviewTemplateTools

rpc PreviewTemplateTools(PreviewTemplateToolsRequest) returns (PreviewTemplateToolsResponse)

with the following messages:

Required Permissions:

  • services/ai.edgelq.com/permissions/capabilityTemplates.previewTools

The equivalent REST API is:

POST /v1/{name=capabilityTemplates/*}:previewTools 
POST /v1/{name=projects/*/capabilityTemplates/*}:previewTools 

CapabilityTemplate Messages

Here is the list of CapabilityTemplate resource messages:

CapabilityTemplate Message

NameTypeDescription
namestring (name of CapabilityTemplate)Name of CapabilityTemplate When creating a new instance, this field is optional and if not provided, it will be generated automatically. Last ID segment must conform to the following regex: [a-z][a-z0-9\-]{0,28}[a-z0-9]
metadataMetaMetadata is an object with information like create, update and delete time (for async deleted resources), has user labels/annotations, sharding information, multi-region syncing information and may have non-schema owners (useful for taking ownership of resources belonging to lower level services by higher ones).
descriptionstringHuman-readable description
connectorsrepeated string (reference to Connector)Connectors to include
rag_configRAGConfigRAG configuration (optional)
display_namestringHuman-readable display name
reasoningReasoningConfigReasoning/thinking configuration and limits
max_output_tokensint32Maximum output tokens (overrides ChatModel’s default if set)
system_promptstringWhen set, this prompt will be used instead of a default system prompt.
system_prompt_appendPromptAppendTemplateOptional: a templated append that will be rendered and appended to the base system prompt (or the user input for client provided variables).
disable_input_token_cacheboolWhen true, disables Anthropic prompt caching (default: caching enabled)
allowed_modelsrepeated string (reference to ChatModel)Allowed chat models for this template (optional) If empty, any model can be used with this template If specified, only models in this list can be used with this template This allows organizations to control which models are used for specific use cases, capabilities, or compliance requirements
tool_safetyToolSafetyConfigTool safety configuration for loop detection (optional)
default_modelstring (name of ChatModel)Default model for this template (optional)
user_prompt_templatesrepeated UserPromptTemplateUser prompt template library for this capability Client-side only: server stores, client renders and executes

GetCapabilityTemplateRequest Message

A request message of the GetCapabilityTemplate method.

NameTypeDescription
namestring (name of CapabilityTemplate)Name of ntt.ai.v1.CapabilityTemplate
field_mask.google.protobuf.FieldMaskA list of extra fields to be obtained for each response item on top of fields defined by request field view
viewViewView defines list of standard response fields present in response items. Additional fields can be amended by request field field_mask

BatchGetCapabilityTemplatesRequest Message

A request message of the BatchGetCapabilityTemplates method.

NameTypeDescription
namesrepeated string (name of CapabilityTemplate)Names of CapabilityTemplates
field_mask.google.protobuf.FieldMaskA list of extra fields to be obtained for each response item on top of fields defined by request field view
viewViewView defines list of standard response fields present in response items. Additional fields can be amended by request field field_mask

BatchGetCapabilityTemplatesResponse Message

A response message of the BatchGetCapabilityTemplates method.

NameTypeDescription
capability_templatesrepeated CapabilityTemplatefound CapabilityTemplates
missingrepeated string (name of CapabilityTemplate)list of not found CapabilityTemplates

ListCapabilityTemplatesRequest Message

A request message of the ListCapabilityTemplates method.

NameTypeDescription
parentstring (parent name of CapabilityTemplate)Parent name of ntt.ai.v1.CapabilityTemplate
page_sizeint32Requested page size. Server may return fewer CapabilityTemplates than requested. If unspecified, server will pick an appropriate default.
page_tokenstring (cursor of CapabilityTemplate)A token identifying a page of results the server should return. Typically, this is the value of ListCapabilityTemplatesResponse.next_page_token.
order_bystring (orderBy of CapabilityTemplate)Order By - https://cloud.google.com/apis/design/design_patterns#list_pagination list of field path with order directive, either ‘asc’ or ‘desc’. If direction is not provided, ‘asc’ is assumed. e.g. “state.nested_field asc, state.something.else desc, theme”
filterstring (filter of CapabilityTemplate)Filter - filter results by field criteria. Simplified SQL-like syntax with following operators: <=, >=, =, !=, <, >, LIKE, CONTAINS (aliases CONTAIN, HAS, HAVE), IN, IS [NOT] NULL
field_mask.google.protobuf.FieldMaskA list of extra fields to be obtained for each response item on top of fields defined by request field view
viewViewView defines list of standard response fields present in response items. Additional fields can be amended by request field field_mask
include_paging_infoboolIndicates if list response should contain total count and offset (fields current_offset and total_results_count).

ListCapabilityTemplatesResponse Message

A response message of the ListCapabilityTemplates method.

NameTypeDescription
capability_templatesrepeated CapabilityTemplateThe list of CapabilityTemplates
prev_page_tokenstring (cursor of CapabilityTemplate)A token to retrieve previous page of results. Pass this value in the ListCapabilityTemplatesRequest.page_token.
next_page_tokenstring (cursor of CapabilityTemplate)A token to retrieve next page of results. Pass this value in the ListCapabilityTemplatesRequest.page_token.
current_offsetint32Current offset from the first page or 0 if no page tokens were given, paging info was not requested or there was an error while trying to get it). Page index can be computed from offset and limit provided in a request.
total_results_countint32Number of total CapabilityTemplates across all pages or 0, if there are no items, paging info was not requested or there was an error while trying to get it.

WatchCapabilityTemplateRequest Message

A request message of the WatchCapabilityTemplate method.

NameTypeDescription
namestring (name of CapabilityTemplate)Name of ntt.ai.v1.CapabilityTemplate
field_mask.google.protobuf.FieldMaskA list of extra fields to be obtained for each response item on top of fields defined by request field view
viewViewView defines list of standard response fields present in response items. Additional fields can be amended by request field field_mask

WatchCapabilityTemplateResponse Message

A response message of the WatchCapabilityTemplate method.

NameTypeDescription
changeCapabilityTemplateChange

WatchCapabilityTemplatesRequest Message

A request message of the WatchCapabilityTemplates method.

NameTypeDescription
typeWatchTypeType of a watch. Identifies how server stream data to a client, which fields in a request are allowed and which fields in response are relevant.
parentstring (parent name of CapabilityTemplate)Parent name of ntt.ai.v1.CapabilityTemplate
page_sizeint32Requested page size. Server may return fewer CapabilityTemplates than requested. If unspecified, server will pick an appropriate default. Can be populated only for stateful watch type.
page_tokenstring (cursor of CapabilityTemplate)A token identifying a page of results the server should return. Can be populated only for stateful watch type.
order_bystring (orderBy of CapabilityTemplate)Order By - https://cloud.google.com/apis/design/design_patterns#list_pagination Can be populated only for stateful watch type.
resume_tokenstringA token identifying watch resume point from previous session. Can be populated only for stateless watch type.
starting_time.google.protobuf.TimestampPoint in the time from which we want to start getting updates. This field can be populated only for stateless watch type and if resume token is not known yet. If specified, initial snapshot will NOT be provided. It is assumed client can obtain it using separate means. Watch responses will contain resume tokens which should be used to resume broken connection.
filterstring (filter of CapabilityTemplate)Filter - filter results by field criteria. Simplified SQL-like syntax with following operators: <=, >=, =, !=, <, >, LIKE, CONTAINS (aliases CONTAIN, HAS, HAVE), IN, IS [NOT] NULL
field_mask.google.protobuf.FieldMaskA list of extra fields to be obtained for each response item on top of fields defined by request field view Changes to CapabilityTemplate that don’t affect any of masked fields won’t be sent back.
viewViewView defines list of standard response fields present in response items. Additional fields can be amended by request field field_mask Changes to CapabilityTemplate that don’t affect any of masked fields won’t be sent back.
max_chunk_sizeint32Maximum amount of changes in each response message. Query result response is divided on the server side into chunks with size of a specified amount to limit memory footprint of each message. Responses will hold information whether more elements will continue for the actual change. If unspecified, server will pick an appropriate default.

WatchCapabilityTemplatesResponse Message

A response message of the WatchCapabilityTemplates method.

NameTypeDescription
capability_template_changesrepeated CapabilityTemplateChangeChanges of CapabilityTemplates
is_currentboolIf request specified max_chunk_size (or this limit was enforced if stateless watch has been chosen), then responses with “full changeset” will be divided into chunks. Client should keep receiving messages and, once is_current has value true, combine this recent message with all previous ones where is_current is false. If this is the first is_current in a whole watch stream, then it means that client should have, at this moment, contain snapshot of the current situation (or more accurately, snapshot of situation at the moment of request). All CapabilityTemplates will be of type Added/Current (depending on watch_type specified in the request). Further responses will be incremental - however messages may still be chunked and is_current logic still applies. is_current is always true for stateful watch if max_chunk_size was left to 0.
page_token_changeWatchCapabilityTemplatesResponse.PageTokenChangeWhen present, PageTokens used for page navigation should be updated. Present only if is_current is true (last chunk).
resume_tokenstringToken that can be used if current connection drops and client needs to reconnect. Populated only for stateless watch type. Present only if is_current is true (last chunk).
snapshot_sizeint64Server may occasionally send information how many resources should client have in its state so far (response message without any changes, but with snapshot_size field specified). If client has different value than the one sent by the server, then it should be treated by a client as an error and should reconnect. If value is smaller then 0, then client should ignore this field as unpopulated. This field should be checked only for stateless watch. In stateful those kind of errors are handled by the server side. Will be never sent together with is_current, is_soft_reset and is_hard_reset flags.
is_soft_resetboolIn case of internal issue server may send response message with this flag. It indicates that client should drop all changes from recent responses where is_current is false only! If last message had is_current set to true, client should do nothing and process normally. Resume token received before is still valid. This field should be checked only for stateless watch. In stateful those kind of errors are handled by the server side. Will never be sent along with is_current, is_hard_reset or snapshot_size.
is_hard_resetboolIn case of internal issue server may send response message with this flag. After receiving, client should clear whole state (drop all changes received so far) as server will send new snapshot (CapabilityTemplates will contains changes of type Current only). Any resume tokens should be discarded as well. This field should be checked only for stateless watch. In stateful those kind of errors are handled by the server side. Will never be sent along with is_current, is_soft_reset or snapshot_size.

WatchCapabilityTemplatesResponse.PageTokenChange Message

NameTypeDescription
prev_page_tokenstring (cursor of CapabilityTemplate)New token to retrieve previous page of results.
next_page_tokenstring (cursor of CapabilityTemplate)New token to retrieve next page of results.

CreateCapabilityTemplateRequest Message

A request message of the CreateCapabilityTemplate method.

NameTypeDescription
parentstring (parent name of CapabilityTemplate)Parent name of ntt.ai.v1.CapabilityTemplate
capability_templateCapabilityTemplateCapabilityTemplate resource body
response_maskCreateCapabilityTemplateRequest.ResponseMaskOptional masking applied to response object to reduce message response size.

CreateCapabilityTemplateRequest.ResponseMask Message

ResponseMask allows client to reduce response message size.

NameTypeDescription
skip_entire_response_bodyboolIf this flag has value true, then response will contain just empty resource without any fields populated.
body_mask.google.protobuf.FieldMaskIf this field is populated, then resource in response will contain only specific fields.

UpdateCapabilityTemplateRequest Message

A request message of the UpdateCapabilityTemplate method.

NameTypeDescription
capability_templateCapabilityTemplateCapabilityTemplate resource body
update_mask.google.protobuf.FieldMaskFieldMask applied to request - change will be applied only for fields in the mask
casUpdateCapabilityTemplateRequest.CASConditional update applied to request if update should be executed only for specific resource state. If this field is populated, then server will fetch existing resource, compare with the one stored in the cas field (after applying field mask) and proceed with update only and only if they match. Otherwise RPC error Aborted will be returned.
allow_missingboolIf set to true, and the resource is not found, a new resource will be created. In this situation, ‘field_mask’ is ignored. https://google.aip.dev/134#create-or-update
response_maskUpdateCapabilityTemplateRequest.ResponseMaskreduce message response size.

UpdateCapabilityTemplateRequest.CAS Message

CAS - Compare and Swap. This object is used if user wants to make update conditional based upon previous resource version.

NameTypeDescription
conditional_stateCapabilityTemplateConditional desired state of a resource before update.
field_mask.google.protobuf.FieldMaskField paths from conditional state of resource server should check and compare.

UpdateCapabilityTemplateRequest.ResponseMask Message

ResponseMask allows client to reduce response message size.

NameTypeDescription
skip_entire_response_bodyboolIf this flag has value true, then response will contain just empty resource without any fields populated. Field body_mask is ignored if set.
updated_fields_onlyboolInclude all fields that were actually updated during processing. Note this may be larger than update mask if some fields were computed additionally. Name is added as well.
body_mask.google.protobuf.FieldMaskIf this field is populated, then resource in response will contain only specific fields. If skip_entire_response_body is true, this field is ignored.

DeleteCapabilityTemplateRequest Message

A request message of the DeleteCapabilityTemplate method.

NameTypeDescription
namestring (name of CapabilityTemplate)Name of ntt.ai.v1.CapabilityTemplate
allow_missingboolIf set to true, and the resource is not found, method will be successful and will not return NotFound error.

PreviewTemplateToolsRequest Message

A request message of the PreviewTemplateTools method.

NameTypeDescription
namestring (name of CapabilityTemplate)Name of ntt.ai.v1.CapabilityTemplate
client_toolsrepeated ToolDefinitionOptional: Client tools to include in the preview

PreviewTemplateToolsResponse Message

A response message of the PreviewTemplateTools method.

NameTypeDescription
toolsrepeated ToolDefinitionAll tools that would be available with this template (after applying allow/deny patterns and including client tools)
errorsrepeated stringAny errors encountered during tool discovery

ChatModel Resource

ChatModel Resource represents deployment of an AI chat model.

Name patterns:

  • chatModels/{chat_model}
  • projects/{project}/chatModels/{chat_model}

Parent resources:

This section covers the methods and messages to interact with ChatModel resource.

ChatModel Methods

Here is the list of ChatModel resource methods:

GetChatModel Method

GetChatModel

rpc GetChatModel(GetChatModelRequest) returns (ChatModel)

with the following messages:

Required Permissions:

  • services/ai.edgelq.com/permissions/chatModels.get

The equivalent REST API is:

GET /v1/{name=chatModels/*} 
GET /v1/{name=projects/*/chatModels/*} 

BatchGetChatModels Method

BatchGetChatModels

rpc BatchGetChatModels(BatchGetChatModelsRequest) returns (BatchGetChatModelsResponse)

with the following messages:

Required Permissions:

  • services/ai.edgelq.com/permissions/chatModels.batchGet

The equivalent REST API is:

GET /v1/chatModels:batchGet 

ListChatModels Method

ListChatModels

rpc ListChatModels(ListChatModelsRequest) returns (ListChatModelsResponse)

with the following messages:

Required Permissions:

  • services/ai.edgelq.com/permissions/chatModels.list

The equivalent REST API is:

GET /v1/chatModels 
GET /v1/{parent=projects/*}/chatModels 

WatchChatModel Method

WatchChatModel

rpc WatchChatModel(WatchChatModelRequest) returns (WatchChatModelResponse)

with the following messages:

Required Permissions:

  • services/ai.edgelq.com/permissions/chatModels.watch

The equivalent REST API is:

POST /v1/{name=chatModels/*}:watch 
POST /v1/{name=projects/*/chatModels/*}:watch 

WatchChatModels Method

WatchChatModels

rpc WatchChatModels(WatchChatModelsRequest) returns (WatchChatModelsResponse)

with the following messages:

Required Permissions:

  • services/ai.edgelq.com/permissions/chatModels.watch

The equivalent REST API is:

POST /v1/chatModels:watch 
POST /v1/{parent=projects/*}/chatModels:watch 

CreateChatModel Method

CreateChatModel

rpc CreateChatModel(CreateChatModelRequest) returns (ChatModel)

with the following messages:

Required Permissions:

  • services/ai.edgelq.com/permissions/chatModels.create

The equivalent REST API is:

POST /v1/chatModels (BODY: chat_model)
POST /v1/{parent=projects/*}/chatModels 

UpdateChatModel Method

UpdateChatModel

rpc UpdateChatModel(UpdateChatModelRequest) returns (ChatModel)

with the following messages:

Required Permissions:

  • services/ai.edgelq.com/permissions/chatModels.update

The equivalent REST API is:

PUT /v1/{chat_model.name=chatModels/*} (BODY: chat_model)
PUT /v1/{chat_model.name=projects/*/chatModels/*} 

DeleteChatModel Method

DeleteChatModel

rpc DeleteChatModel(DeleteChatModelRequest) returns (Empty)

with the following messages:

Required Permissions:

  • services/ai.edgelq.com/permissions/chatModels.delete

The equivalent REST API is:

DELETE /v1/{name=chatModels/*} 
DELETE /v1/{name=projects/*/chatModels/*} 

ChatModel Messages

Here is the list of ChatModel resource messages:

ChatModel Message

NameTypeDescription
namestring (name of ChatModel)Name of ChatModel When creating a new instance, this field is optional and if not provided, it will be generated automatically. Last ID segment must conform to the following regex: [a-z][a-z0-9\-]{0,28}[a-z0-9]
metadataMetaMetadata is an object with information like create, update and delete time (for async deleted resources), has user labels/annotations, sharding information, multi-region syncing information and may have non-schema owners (useful for taking ownership of resources belonging to lower level services by higher ones).
azure_open_aiChatModel.AzureOpenAi
openai_compatibleChatModel.OpenAICompatible
anthropicChatModel.Anthropic
geminiChatModel.Gemini
display_namestringHuman-readable display name
costChatModel.CostOptional cost metadata (pricing per 1M tokens).
retiredboolWhen true, this model is retired: hidden from ChatModel listings by default and blocked for new chats/responses. Existing conversations stay readable and can be continued by selecting a non-retired model.

ChatModel.OpenAICompatible Message

NameTypeDescription
api_keystring (reference to Secret)
modelstringModel name or Azure deployment name
base_urlstringOptional: Custom endpoint for compatible APIs
organizationstringOptional: OpenAI organization ID
azure_endpointstringOptional: Azure-specific endpoint (e.g., https://myresource.openai.azure.com)
azure_api_versionstringOptional: Azure API version (e.g., “2024-06-01”)
max_output_tokensint32Maximum output tokens
devicestring (reference to Device)Optional: route requests through proxies to an OpenAI-compatible endpoint reachable from this device.

ChatModel.Anthropic Message

NameTypeDescription
api_keystring (reference to Secret)
modelstringModel name (e.g., “claude-3-opus”, “claude-3-sonnet”)
base_urlstringOptional: Custom endpoint
max_output_tokensint32Maximum output tokens (must be >= 4096 for Anthropic)
thinking_modeChatModel.Anthropic.ThinkingMode

ChatModel.Gemini Message

NameTypeDescription
api_keystring (reference to Secret)
modelstringModel name (e.g., “gemini-pro”, “gemini-ultra”)
max_output_tokensint32Maximum output tokens

ChatModel.AzureOpenAi Message

NameTypeDescription
endpointstringAzure OpenAI endpoint (e.g., https://myresource.openai.azure.com)
api_keystring (reference to Secret)Azure API key
deployment_namestringAzure deployment name
api_versionstringAPI version (e.g., “2024-10-21”)
max_output_tokensint32Maximum output tokens

ChatModel.Cost Message

Cost captures pricing per 1M tokens for each billing bucket.

NameTypeDescription
input_per_million.google.type.MoneyCost for uncached input tokens per 1M tokens.
cached_input_per_million.google.type.MoneyCost for cached input tokens per 1M tokens (discounted rate).
cache_write_five_min_per_million.google.type.MoneyCost for cache writes with a 5 minute TTL per 1M tokens.
cache_write_one_hour_per_million.google.type.MoneyCost for cache writes with a 1 hour TTL per 1M tokens.
output_per_million.google.type.MoneyCost for output tokens per 1M tokens.

GetChatModelRequest Message

A request message of the GetChatModel method.

NameTypeDescription
namestring (name of ChatModel)Name of ntt.ai.v1.ChatModel
field_mask.google.protobuf.FieldMaskA list of extra fields to be obtained for each response item on top of fields defined by request field view
viewViewView defines list of standard response fields present in response items. Additional fields can be amended by request field field_mask

BatchGetChatModelsRequest Message

A request message of the BatchGetChatModels method.

NameTypeDescription
namesrepeated string (name of ChatModel)Names of ChatModels
field_mask.google.protobuf.FieldMaskA list of extra fields to be obtained for each response item on top of fields defined by request field view
viewViewView defines list of standard response fields present in response items. Additional fields can be amended by request field field_mask

BatchGetChatModelsResponse Message

A response message of the BatchGetChatModels method.

NameTypeDescription
chat_modelsrepeated ChatModelfound ChatModels
missingrepeated string (name of ChatModel)list of not found ChatModels

ListChatModelsRequest Message

A request message of the ListChatModels method.

NameTypeDescription
parentstring (parent name of ChatModel)Parent name of ntt.ai.v1.ChatModel
page_sizeint32Requested page size. Server may return fewer ChatModels than requested. If unspecified, server will pick an appropriate default.
page_tokenstring (cursor of ChatModel)A token identifying a page of results the server should return. Typically, this is the value of ListChatModelsResponse.next_page_token.
order_bystring (orderBy of ChatModel)Order By - https://cloud.google.com/apis/design/design_patterns#list_pagination list of field path with order directive, either ‘asc’ or ‘desc’. If direction is not provided, ‘asc’ is assumed. e.g. “state.nested_field asc, state.something.else desc, theme”
filterstring (filter of ChatModel)Filter - filter results by field criteria. Simplified SQL-like syntax with following operators: <=, >=, =, !=, <, >, LIKE, CONTAINS (aliases CONTAIN, HAS, HAVE), IN, IS [NOT] NULL
field_mask.google.protobuf.FieldMaskA list of extra fields to be obtained for each response item on top of fields defined by request field view
viewViewView defines list of standard response fields present in response items. Additional fields can be amended by request field field_mask
include_paging_infoboolIndicates if list response should contain total count and offset (fields current_offset and total_results_count).

ListChatModelsResponse Message

A response message of the ListChatModels method.

NameTypeDescription
chat_modelsrepeated ChatModelThe list of ChatModels
prev_page_tokenstring (cursor of ChatModel)A token to retrieve previous page of results. Pass this value in the ListChatModelsRequest.page_token.
next_page_tokenstring (cursor of ChatModel)A token to retrieve next page of results. Pass this value in the ListChatModelsRequest.page_token.
current_offsetint32Current offset from the first page or 0 if no page tokens were given, paging info was not requested or there was an error while trying to get it). Page index can be computed from offset and limit provided in a request.
total_results_countint32Number of total ChatModels across all pages or 0, if there are no items, paging info was not requested or there was an error while trying to get it.

WatchChatModelRequest Message

A request message of the WatchChatModel method.

NameTypeDescription
namestring (name of ChatModel)Name of ntt.ai.v1.ChatModel
field_mask.google.protobuf.FieldMaskA list of extra fields to be obtained for each response item on top of fields defined by request field view
viewViewView defines list of standard response fields present in response items. Additional fields can be amended by request field field_mask

WatchChatModelResponse Message

A response message of the WatchChatModel method.

NameTypeDescription
changeChatModelChange

WatchChatModelsRequest Message

A request message of the WatchChatModels method.

NameTypeDescription
typeWatchTypeType of a watch. Identifies how server stream data to a client, which fields in a request are allowed and which fields in response are relevant.
parentstring (parent name of ChatModel)Parent name of ntt.ai.v1.ChatModel
page_sizeint32Requested page size. Server may return fewer ChatModels than requested. If unspecified, server will pick an appropriate default. Can be populated only for stateful watch type.
page_tokenstring (cursor of ChatModel)A token identifying a page of results the server should return. Can be populated only for stateful watch type.
order_bystring (orderBy of ChatModel)Order By - https://cloud.google.com/apis/design/design_patterns#list_pagination Can be populated only for stateful watch type.
resume_tokenstringA token identifying watch resume point from previous session. Can be populated only for stateless watch type.
starting_time.google.protobuf.TimestampPoint in the time from which we want to start getting updates. This field can be populated only for stateless watch type and if resume token is not known yet. If specified, initial snapshot will NOT be provided. It is assumed client can obtain it using separate means. Watch responses will contain resume tokens which should be used to resume broken connection.
filterstring (filter of ChatModel)Filter - filter results by field criteria. Simplified SQL-like syntax with following operators: <=, >=, =, !=, <, >, LIKE, CONTAINS (aliases CONTAIN, HAS, HAVE), IN, IS [NOT] NULL
field_mask.google.protobuf.FieldMaskA list of extra fields to be obtained for each response item on top of fields defined by request field view Changes to ChatModel that don’t affect any of masked fields won’t be sent back.
viewViewView defines list of standard response fields present in response items. Additional fields can be amended by request field field_mask Changes to ChatModel that don’t affect any of masked fields won’t be sent back.
max_chunk_sizeint32Maximum amount of changes in each response message. Query result response is divided on the server side into chunks with size of a specified amount to limit memory footprint of each message. Responses will hold information whether more elements will continue for the actual change. If unspecified, server will pick an appropriate default.

WatchChatModelsResponse Message

A response message of the WatchChatModels method.

NameTypeDescription
chat_model_changesrepeated ChatModelChangeChanges of ChatModels
is_currentboolIf request specified max_chunk_size (or this limit was enforced if stateless watch has been chosen), then responses with “full changeset” will be divided into chunks. Client should keep receiving messages and, once is_current has value true, combine this recent message with all previous ones where is_current is false. If this is the first is_current in a whole watch stream, then it means that client should have, at this moment, contain snapshot of the current situation (or more accurately, snapshot of situation at the moment of request). All ChatModels will be of type Added/Current (depending on watch_type specified in the request). Further responses will be incremental - however messages may still be chunked and is_current logic still applies. is_current is always true for stateful watch if max_chunk_size was left to 0.
page_token_changeWatchChatModelsResponse.PageTokenChangeWhen present, PageTokens used for page navigation should be updated. Present only if is_current is true (last chunk).
resume_tokenstringToken that can be used if current connection drops and client needs to reconnect. Populated only for stateless watch type. Present only if is_current is true (last chunk).
snapshot_sizeint64Server may occasionally send information how many resources should client have in its state so far (response message without any changes, but with snapshot_size field specified). If client has different value than the one sent by the server, then it should be treated by a client as an error and should reconnect. If value is smaller then 0, then client should ignore this field as unpopulated. This field should be checked only for stateless watch. In stateful those kind of errors are handled by the server side. Will be never sent together with is_current, is_soft_reset and is_hard_reset flags.
is_soft_resetboolIn case of internal issue server may send response message with this flag. It indicates that client should drop all changes from recent responses where is_current is false only! If last message had is_current set to true, client should do nothing and process normally. Resume token received before is still valid. This field should be checked only for stateless watch. In stateful those kind of errors are handled by the server side. Will never be sent along with is_current, is_hard_reset or snapshot_size.
is_hard_resetboolIn case of internal issue server may send response message with this flag. After receiving, client should clear whole state (drop all changes received so far) as server will send new snapshot (ChatModels will contains changes of type Current only). Any resume tokens should be discarded as well. This field should be checked only for stateless watch. In stateful those kind of errors are handled by the server side. Will never be sent along with is_current, is_soft_reset or snapshot_size.

WatchChatModelsResponse.PageTokenChange Message

NameTypeDescription
prev_page_tokenstring (cursor of ChatModel)New token to retrieve previous page of results.
next_page_tokenstring (cursor of ChatModel)New token to retrieve next page of results.

CreateChatModelRequest Message

A request message of the CreateChatModel method.

NameTypeDescription
parentstring (parent name of ChatModel)Parent name of ntt.ai.v1.ChatModel
chat_modelChatModelChatModel resource body
response_maskCreateChatModelRequest.ResponseMaskOptional masking applied to response object to reduce message response size.

CreateChatModelRequest.ResponseMask Message

ResponseMask allows client to reduce response message size.

NameTypeDescription
skip_entire_response_bodyboolIf this flag has value true, then response will contain just empty resource without any fields populated.
body_mask.google.protobuf.FieldMaskIf this field is populated, then resource in response will contain only specific fields.

UpdateChatModelRequest Message

A request message of the UpdateChatModel method.

NameTypeDescription
chat_modelChatModelChatModel resource body
update_mask.google.protobuf.FieldMaskFieldMask applied to request - change will be applied only for fields in the mask
casUpdateChatModelRequest.CASConditional update applied to request if update should be executed only for specific resource state. If this field is populated, then server will fetch existing resource, compare with the one stored in the cas field (after applying field mask) and proceed with update only and only if they match. Otherwise RPC error Aborted will be returned.
allow_missingboolIf set to true, and the resource is not found, a new resource will be created. In this situation, ‘field_mask’ is ignored. https://google.aip.dev/134#create-or-update
response_maskUpdateChatModelRequest.ResponseMaskreduce message response size.

UpdateChatModelRequest.CAS Message

CAS - Compare and Swap. This object is used if user wants to make update conditional based upon previous resource version.

NameTypeDescription
conditional_stateChatModelConditional desired state of a resource before update.
field_mask.google.protobuf.FieldMaskField paths from conditional state of resource server should check and compare.

UpdateChatModelRequest.ResponseMask Message

ResponseMask allows client to reduce response message size.

NameTypeDescription
skip_entire_response_bodyboolIf this flag has value true, then response will contain just empty resource without any fields populated. Field body_mask is ignored if set.
updated_fields_onlyboolInclude all fields that were actually updated during processing. Note this may be larger than update mask if some fields were computed additionally. Name is added as well.
body_mask.google.protobuf.FieldMaskIf this field is populated, then resource in response will contain only specific fields. If skip_entire_response_body is true, this field is ignored.

DeleteChatModelRequest Message

A request message of the DeleteChatModel method.

NameTypeDescription
namestring (name of ChatModel)Name of ntt.ai.v1.ChatModel
allow_missingboolIf set to true, and the resource is not found, method will be successful and will not return NotFound error.

ChatModel Enumerations

Here is the list of ChatModel resource enumerations:

ChatModel.Anthropic.ThinkingMode Enumeration

Which Messages thinking wire format this deployment accepts. UNSPECIFIED and EXTENDED send enabled + budget_tokens. ADAPTIVE sends adaptive + output_config.effort (Sonnet 5, Opus 4.7+). Do not infer this from model; Foundry deployment names can disagree with the underlying Claude model.

NameDescription
THINKING_MODE_UNSPECIFIED
THINKING_MODE_EXTENDED
THINKING_MODE_ADAPTIVE

Connector Resource

Connector Resource

Name patterns:

  • connectors/{connector}
  • projects/{project}/connectors/{connector}

Parent resources:

This section covers the methods and messages to interact with Connector resource.

Connector Methods

Here is the list of Connector resource methods:

GetConnector Method

GetConnector

rpc GetConnector(GetConnectorRequest) returns (Connector)

with the following messages:

Required Permissions:

  • services/ai.edgelq.com/permissions/connectors.get

The equivalent REST API is:

GET /v1/{name=connectors/*} 
GET /v1/{name=projects/*/connectors/*} 

BatchGetConnectors Method

BatchGetConnectors

rpc BatchGetConnectors(BatchGetConnectorsRequest) returns (BatchGetConnectorsResponse)

with the following messages:

Required Permissions:

  • services/ai.edgelq.com/permissions/connectors.batchGet

The equivalent REST API is:

GET /v1/connectors:batchGet 

ListConnectors Method

ListConnectors

rpc ListConnectors(ListConnectorsRequest) returns (ListConnectorsResponse)

with the following messages:

Required Permissions:

  • services/ai.edgelq.com/permissions/connectors.list

The equivalent REST API is:

GET /v1/connectors 
GET /v1/{parent=projects/*}/connectors 

WatchConnector Method

WatchConnector

rpc WatchConnector(WatchConnectorRequest) returns (WatchConnectorResponse)

with the following messages:

Required Permissions:

  • services/ai.edgelq.com/permissions/connectors.watch

The equivalent REST API is:

POST /v1/{name=connectors/*}:watch 
POST /v1/{name=projects/*/connectors/*}:watch 

WatchConnectors Method

WatchConnectors

rpc WatchConnectors(WatchConnectorsRequest) returns (WatchConnectorsResponse)

with the following messages:

Required Permissions:

  • services/ai.edgelq.com/permissions/connectors.watch

The equivalent REST API is:

POST /v1/connectors:watch 
POST /v1/{parent=projects/*}/connectors:watch 

CreateConnector Method

CreateConnector

rpc CreateConnector(CreateConnectorRequest) returns (Connector)

with the following messages:

Required Permissions:

  • services/ai.edgelq.com/permissions/connectors.create

The equivalent REST API is:

POST /v1/connectors (BODY: connector)
POST /v1/{parent=projects/*}/connectors 

UpdateConnector Method

UpdateConnector

rpc UpdateConnector(UpdateConnectorRequest) returns (Connector)

with the following messages:

Required Permissions:

  • services/ai.edgelq.com/permissions/connectors.update

The equivalent REST API is:

PUT /v1/{connector.name=connectors/*} (BODY: connector)
PUT /v1/{connector.name=projects/*/connectors/*} 

DeleteConnector Method

DeleteConnector

rpc DeleteConnector(DeleteConnectorRequest) returns (Empty)

with the following messages:

Required Permissions:

  • services/ai.edgelq.com/permissions/connectors.delete

The equivalent REST API is:

DELETE /v1/{name=connectors/*} 
DELETE /v1/{name=projects/*/connectors/*} 

ConnectOauth Method

ConnectOauth

rpc ConnectOauth(ConnectOauthRequest) returns (ConnectOauthResponse)

with the following messages:

Required Permissions:

  • services/ai.edgelq.com/permissions/connectors.connectOauth

The equivalent REST API is:

POST /v1/{name=connectors/*}:connectOauth 
POST /v1/{name=projects/*/connectors/*}:connectOauth 

Connector Messages

Here is the list of Connector resource messages:

Connector Message

NameTypeDescription
namestring (name of Connector)Name of Connector When creating a new instance, this field is optional and if not provided, it will be generated automatically. Last ID segment must conform to the following regex: [a-z][a-z0-9\-]{0,28}[a-z0-9]
metadataMetaMetadata is an object with information like create, update and delete time (for async deleted resources), has user labels/annotations, sharding information, multi-region syncing information and may have non-schema owners (useful for taking ownership of resources belonging to lower level services by higher ones).
display_namestringHuman-readable display name
descriptionstringHuman-readable description
typeConnector.Type
mcp_configMCPConfigMCP connection configuration
connect_timeout.google.protobuf.DurationConnection timeout
request_timeout.google.protobuf.DurationRequest timeout
oauth_configOAuthConfigEffective OAuth configuration (static or auto-populated).

GetConnectorRequest Message

A request message of the GetConnector method.

NameTypeDescription
namestring (name of Connector)Name of ntt.ai.v1.Connector
field_mask.google.protobuf.FieldMaskA list of extra fields to be obtained for each response item on top of fields defined by request field view
viewViewView defines list of standard response fields present in response items. Additional fields can be amended by request field field_mask

BatchGetConnectorsRequest Message

A request message of the BatchGetConnectors method.

NameTypeDescription
namesrepeated string (name of Connector)Names of Connectors
field_mask.google.protobuf.FieldMaskA list of extra fields to be obtained for each response item on top of fields defined by request field view
viewViewView defines list of standard response fields present in response items. Additional fields can be amended by request field field_mask

BatchGetConnectorsResponse Message

A response message of the BatchGetConnectors method.

NameTypeDescription
connectorsrepeated Connectorfound Connectors
missingrepeated string (name of Connector)list of not found Connectors

ListConnectorsRequest Message

A request message of the ListConnectors method.

NameTypeDescription
parentstring (parent name of Connector)Parent name of ntt.ai.v1.Connector
page_sizeint32Requested page size. Server may return fewer Connectors than requested. If unspecified, server will pick an appropriate default.
page_tokenstring (cursor of Connector)A token identifying a page of results the server should return. Typically, this is the value of ListConnectorsResponse.next_page_token.
order_bystring (orderBy of Connector)Order By - https://cloud.google.com/apis/design/design_patterns#list_pagination list of field path with order directive, either ‘asc’ or ‘desc’. If direction is not provided, ‘asc’ is assumed. e.g. “state.nested_field asc, state.something.else desc, theme”
filterstring (filter of Connector)Filter - filter results by field criteria. Simplified SQL-like syntax with following operators: <=, >=, =, !=, <, >, LIKE, CONTAINS (aliases CONTAIN, HAS, HAVE), IN, IS [NOT] NULL
field_mask.google.protobuf.FieldMaskA list of extra fields to be obtained for each response item on top of fields defined by request field view
viewViewView defines list of standard response fields present in response items. Additional fields can be amended by request field field_mask
include_paging_infoboolIndicates if list response should contain total count and offset (fields current_offset and total_results_count).

ListConnectorsResponse Message

A response message of the ListConnectors method.

NameTypeDescription
connectorsrepeated ConnectorThe list of Connectors
prev_page_tokenstring (cursor of Connector)A token to retrieve previous page of results. Pass this value in the ListConnectorsRequest.page_token.
next_page_tokenstring (cursor of Connector)A token to retrieve next page of results. Pass this value in the ListConnectorsRequest.page_token.
current_offsetint32Current offset from the first page or 0 if no page tokens were given, paging info was not requested or there was an error while trying to get it). Page index can be computed from offset and limit provided in a request.
total_results_countint32Number of total Connectors across all pages or 0, if there are no items, paging info was not requested or there was an error while trying to get it.

WatchConnectorRequest Message

A request message of the WatchConnector method.

NameTypeDescription
namestring (name of Connector)Name of ntt.ai.v1.Connector
field_mask.google.protobuf.FieldMaskA list of extra fields to be obtained for each response item on top of fields defined by request field view
viewViewView defines list of standard response fields present in response items. Additional fields can be amended by request field field_mask

WatchConnectorResponse Message

A response message of the WatchConnector method.

NameTypeDescription
changeConnectorChange

WatchConnectorsRequest Message

A request message of the WatchConnectors method.

NameTypeDescription
typeWatchTypeType of a watch. Identifies how server stream data to a client, which fields in a request are allowed and which fields in response are relevant.
parentstring (parent name of Connector)Parent name of ntt.ai.v1.Connector
page_sizeint32Requested page size. Server may return fewer Connectors than requested. If unspecified, server will pick an appropriate default. Can be populated only for stateful watch type.
page_tokenstring (cursor of Connector)A token identifying a page of results the server should return. Can be populated only for stateful watch type.
order_bystring (orderBy of Connector)Order By - https://cloud.google.com/apis/design/design_patterns#list_pagination Can be populated only for stateful watch type.
resume_tokenstringA token identifying watch resume point from previous session. Can be populated only for stateless watch type.
starting_time.google.protobuf.TimestampPoint in the time from which we want to start getting updates. This field can be populated only for stateless watch type and if resume token is not known yet. If specified, initial snapshot will NOT be provided. It is assumed client can obtain it using separate means. Watch responses will contain resume tokens which should be used to resume broken connection.
filterstring (filter of Connector)Filter - filter results by field criteria. Simplified SQL-like syntax with following operators: <=, >=, =, !=, <, >, LIKE, CONTAINS (aliases CONTAIN, HAS, HAVE), IN, IS [NOT] NULL
field_mask.google.protobuf.FieldMaskA list of extra fields to be obtained for each response item on top of fields defined by request field view Changes to Connector that don’t affect any of masked fields won’t be sent back.
viewViewView defines list of standard response fields present in response items. Additional fields can be amended by request field field_mask Changes to Connector that don’t affect any of masked fields won’t be sent back.
max_chunk_sizeint32Maximum amount of changes in each response message. Query result response is divided on the server side into chunks with size of a specified amount to limit memory footprint of each message. Responses will hold information whether more elements will continue for the actual change. If unspecified, server will pick an appropriate default.

WatchConnectorsResponse Message

A response message of the WatchConnectors method.

NameTypeDescription
connector_changesrepeated ConnectorChangeChanges of Connectors
is_currentboolIf request specified max_chunk_size (or this limit was enforced if stateless watch has been chosen), then responses with “full changeset” will be divided into chunks. Client should keep receiving messages and, once is_current has value true, combine this recent message with all previous ones where is_current is false. If this is the first is_current in a whole watch stream, then it means that client should have, at this moment, contain snapshot of the current situation (or more accurately, snapshot of situation at the moment of request). All Connectors will be of type Added/Current (depending on watch_type specified in the request). Further responses will be incremental - however messages may still be chunked and is_current logic still applies. is_current is always true for stateful watch if max_chunk_size was left to 0.
page_token_changeWatchConnectorsResponse.PageTokenChangeWhen present, PageTokens used for page navigation should be updated. Present only if is_current is true (last chunk).
resume_tokenstringToken that can be used if current connection drops and client needs to reconnect. Populated only for stateless watch type. Present only if is_current is true (last chunk).
snapshot_sizeint64Server may occasionally send information how many resources should client have in its state so far (response message without any changes, but with snapshot_size field specified). If client has different value than the one sent by the server, then it should be treated by a client as an error and should reconnect. If value is smaller then 0, then client should ignore this field as unpopulated. This field should be checked only for stateless watch. In stateful those kind of errors are handled by the server side. Will be never sent together with is_current, is_soft_reset and is_hard_reset flags.
is_soft_resetboolIn case of internal issue server may send response message with this flag. It indicates that client should drop all changes from recent responses where is_current is false only! If last message had is_current set to true, client should do nothing and process normally. Resume token received before is still valid. This field should be checked only for stateless watch. In stateful those kind of errors are handled by the server side. Will never be sent along with is_current, is_hard_reset or snapshot_size.
is_hard_resetboolIn case of internal issue server may send response message with this flag. After receiving, client should clear whole state (drop all changes received so far) as server will send new snapshot (Connectors will contains changes of type Current only). Any resume tokens should be discarded as well. This field should be checked only for stateless watch. In stateful those kind of errors are handled by the server side. Will never be sent along with is_current, is_soft_reset or snapshot_size.

WatchConnectorsResponse.PageTokenChange Message

NameTypeDescription
prev_page_tokenstring (cursor of Connector)New token to retrieve previous page of results.
next_page_tokenstring (cursor of Connector)New token to retrieve next page of results.

CreateConnectorRequest Message

A request message of the CreateConnector method.

NameTypeDescription
parentstring (parent name of Connector)Parent name of ntt.ai.v1.Connector
connectorConnectorConnector resource body
response_maskCreateConnectorRequest.ResponseMaskOptional masking applied to response object to reduce message response size.

CreateConnectorRequest.ResponseMask Message

ResponseMask allows client to reduce response message size.

NameTypeDescription
skip_entire_response_bodyboolIf this flag has value true, then response will contain just empty resource without any fields populated.
body_mask.google.protobuf.FieldMaskIf this field is populated, then resource in response will contain only specific fields.

UpdateConnectorRequest Message

A request message of the UpdateConnector method.

NameTypeDescription
connectorConnectorConnector resource body
update_mask.google.protobuf.FieldMaskFieldMask applied to request - change will be applied only for fields in the mask
casUpdateConnectorRequest.CASConditional update applied to request if update should be executed only for specific resource state. If this field is populated, then server will fetch existing resource, compare with the one stored in the cas field (after applying field mask) and proceed with update only and only if they match. Otherwise RPC error Aborted will be returned.
allow_missingboolIf set to true, and the resource is not found, a new resource will be created. In this situation, ‘field_mask’ is ignored. https://google.aip.dev/134#create-or-update
response_maskUpdateConnectorRequest.ResponseMaskreduce message response size.

UpdateConnectorRequest.CAS Message

CAS - Compare and Swap. This object is used if user wants to make update conditional based upon previous resource version.

NameTypeDescription
conditional_stateConnectorConditional desired state of a resource before update.
field_mask.google.protobuf.FieldMaskField paths from conditional state of resource server should check and compare.

UpdateConnectorRequest.ResponseMask Message

ResponseMask allows client to reduce response message size.

NameTypeDescription
skip_entire_response_bodyboolIf this flag has value true, then response will contain just empty resource without any fields populated. Field body_mask is ignored if set.
updated_fields_onlyboolInclude all fields that were actually updated during processing. Note this may be larger than update mask if some fields were computed additionally. Name is added as well.
body_mask.google.protobuf.FieldMaskIf this field is populated, then resource in response will contain only specific fields. If skip_entire_response_body is true, this field is ignored.

DeleteConnectorRequest Message

A request message of the DeleteConnector method.

NameTypeDescription
namestring (name of Connector)Name of ntt.ai.v1.Connector
allow_missingboolIf set to true, and the resource is not found, method will be successful and will not return NotFound error.

ConnectOauthRequest Message

A request message of the ConnectOauth method.

NameTypeDescription
namestring (name of Connector)Name of ntt.ai.v1.Connector the client wants to link.
startStartOauth
cancelCancelOauth
pingOauthPing

ConnectOauthResponse Message

A response message of the ConnectOauth method.

NameTypeDescription
redirectOauthRedirect
completionOauthCompletion
errorOauthError
keep_aliveOauthKeepAlive

Connector Enumerations

Here is the list of Connector resource enumerations:

Connector.Type Enumeration

Connector type

NameDescription
MCP

ConnectorUserToken Resource

ConnectorUserToken Resource

Name patterns:

  • connectorUserTokens/{connector_user_token}
  • projects/{project}/connectorUserTokens/{connector_user_token}

Parent resources:

This section covers the methods and messages to interact with ConnectorUserToken resource.

ConnectorUserToken Methods

Here is the list of ConnectorUserToken resource methods:

GetConnectorUserToken Method

GetConnectorUserToken

rpc GetConnectorUserToken(GetConnectorUserTokenRequest) returns (ConnectorUserToken)

with the following messages:

Required Permissions:

  • services/ai.edgelq.com/permissions/connectorUserTokens.get

The equivalent REST API is:

GET /v1/{name=connectorUserTokens/*} 
GET /v1/{name=projects/*/connectorUserTokens/*} 

BatchGetConnectorUserTokens Method

BatchGetConnectorUserTokens

rpc BatchGetConnectorUserTokens(BatchGetConnectorUserTokensRequest) returns (BatchGetConnectorUserTokensResponse)

with the following messages:

Required Permissions:

  • services/ai.edgelq.com/permissions/connectorUserTokens.batchGet

The equivalent REST API is:

GET /v1/connectorUserTokens:batchGet 

ListConnectorUserTokens Method

ListConnectorUserTokens

rpc ListConnectorUserTokens(ListConnectorUserTokensRequest) returns (ListConnectorUserTokensResponse)

with the following messages:

Required Permissions:

  • services/ai.edgelq.com/permissions/connectorUserTokens.list

The equivalent REST API is:

GET /v1/connectorUserTokens 
GET /v1/{parent=projects/*}/connectorUserTokens 

WatchConnectorUserToken Method

WatchConnectorUserToken

rpc WatchConnectorUserToken(WatchConnectorUserTokenRequest) returns (WatchConnectorUserTokenResponse)

with the following messages:

Required Permissions:

  • services/ai.edgelq.com/permissions/connectorUserTokens.watch

The equivalent REST API is:

POST /v1/{name=connectorUserTokens/*}:watch 
POST /v1/{name=projects/*/connectorUserTokens/*}:watch 

WatchConnectorUserTokens Method

WatchConnectorUserTokens

rpc WatchConnectorUserTokens(WatchConnectorUserTokensRequest) returns (WatchConnectorUserTokensResponse)

with the following messages:

Required Permissions:

  • services/ai.edgelq.com/permissions/connectorUserTokens.watch

The equivalent REST API is:

POST /v1/connectorUserTokens:watch 
POST /v1/{parent=projects/*}/connectorUserTokens:watch 

CreateConnectorUserToken Method

CreateConnectorUserToken

rpc CreateConnectorUserToken(CreateConnectorUserTokenRequest) returns (ConnectorUserToken)

with the following messages:

Required Permissions:

  • services/ai.edgelq.com/permissions/connectorUserTokens.create

The equivalent REST API is:

POST /v1/connectorUserTokens (BODY: connector_user_token)
POST /v1/{parent=projects/*}/connectorUserTokens 

UpdateConnectorUserToken Method

UpdateConnectorUserToken

rpc UpdateConnectorUserToken(UpdateConnectorUserTokenRequest) returns (ConnectorUserToken)

with the following messages:

Required Permissions:

  • services/ai.edgelq.com/permissions/connectorUserTokens.update

The equivalent REST API is:

PUT /v1/{connector_user_token.name=connectorUserTokens/*} (BODY: connector_user_token)
PUT /v1/{connector_user_token.name=projects/*/connectorUserTokens/*} 

DeleteConnectorUserToken Method

DeleteConnectorUserToken

rpc DeleteConnectorUserToken(DeleteConnectorUserTokenRequest) returns (Empty)

with the following messages:

Required Permissions:

  • services/ai.edgelq.com/permissions/connectorUserTokens.delete

The equivalent REST API is:

DELETE /v1/{name=connectorUserTokens/*} 
DELETE /v1/{name=projects/*/connectorUserTokens/*} 

ConnectorUserToken Messages

Here is the list of ConnectorUserToken resource messages:

ConnectorUserToken Message

NameTypeDescription
namestring (name of ConnectorUserToken)Name of ConnectorUserToken When creating a new instance, this field is optional and if not provided, it will be generated automatically. Last ID segment must conform to the following regex: [a-z][a-z0-9\-]{0,28}[a-z0-9]
metadataMetaMetadata is an object with information like create, update and delete time (for async deleted resources), has user labels/annotations, sharding information, multi-region syncing information and may have non-schema owners (useful for taking ownership of resources belonging to lower level services by higher ones).
connectorstring (name of Connector)Connector resource this token authorizes against.
owner_emailstringIAM user email that established this token.
provider_subjectstringProvider specific identifier for the linked account (e.g. subject claim).
provider_display_namestringProvider supplied display name for the linked identity.
provider_avatar_urlstringProvider supplied avatar URL for the linked identity.
granted_scopesrepeated stringOAuth scopes that were granted for this token.
access_token_expires_at.google.protobuf.TimestampExpiration (if any) for the current access token.
refresh_token_expires_at.google.protobuf.TimestampExpiration (if any) for the refresh token.
last_refresh_time.google.protobuf.TimestampLast time the backend refreshed token material.
revokedboolIndicates whether this token has been revoked server-side.
revoked_time.google.protobuf.TimestampWhen the token was revoked server-side.
revocation_reasonstringOptional human readable reason for revocation.
consent_obtainedboolTrue once the user has completed any configured downstream consent flow for this connector (for example, granting access to additional provider resources such as Azure Data Explorer). This allows the backend to distinguish between initial connector login and subsequent provider-level consent requirements.
secretConnectorUserTokenSecretEncrypted token material, only accepted from the server-side control plane.

GetConnectorUserTokenRequest Message

A request message of the GetConnectorUserToken method.

NameTypeDescription
namestring (name of ConnectorUserToken)Name of ntt.ai.v1.ConnectorUserToken
field_mask.google.protobuf.FieldMaskA list of extra fields to be obtained for each response item on top of fields defined by request field view
viewViewView defines list of standard response fields present in response items. Additional fields can be amended by request field field_mask

BatchGetConnectorUserTokensRequest Message

A request message of the BatchGetConnectorUserTokens method.

NameTypeDescription
namesrepeated string (name of ConnectorUserToken)Names of ConnectorUserTokens
field_mask.google.protobuf.FieldMaskA list of extra fields to be obtained for each response item on top of fields defined by request field view
viewViewView defines list of standard response fields present in response items. Additional fields can be amended by request field field_mask

BatchGetConnectorUserTokensResponse Message

A response message of the BatchGetConnectorUserTokens method.

NameTypeDescription
connector_user_tokensrepeated ConnectorUserTokenfound ConnectorUserTokens
missingrepeated string (name of ConnectorUserToken)list of not found ConnectorUserTokens

ListConnectorUserTokensRequest Message

A request message of the ListConnectorUserTokens method.

NameTypeDescription
parentstring (parent name of ConnectorUserToken)Parent name of ntt.ai.v1.ConnectorUserToken
page_sizeint32Requested page size. Server may return fewer ConnectorUserTokens than requested. If unspecified, server will pick an appropriate default.
page_tokenstring (cursor of ConnectorUserToken)A token identifying a page of results the server should return. Typically, this is the value of ListConnectorUserTokensResponse.next_page_token.
order_bystring (orderBy of ConnectorUserToken)Order By - https://cloud.google.com/apis/design/design_patterns#list_pagination list of field path with order directive, either ‘asc’ or ‘desc’. If direction is not provided, ‘asc’ is assumed. e.g. “state.nested_field asc, state.something.else desc, theme”
filterstring (filter of ConnectorUserToken)Filter - filter results by field criteria. Simplified SQL-like syntax with following operators: <=, >=, =, !=, <, >, LIKE, CONTAINS (aliases CONTAIN, HAS, HAVE), IN, IS [NOT] NULL
field_mask.google.protobuf.FieldMaskA list of extra fields to be obtained for each response item on top of fields defined by request field view
viewViewView defines list of standard response fields present in response items. Additional fields can be amended by request field field_mask
include_paging_infoboolIndicates if list response should contain total count and offset (fields current_offset and total_results_count).

ListConnectorUserTokensResponse Message

A response message of the ListConnectorUserTokens method.

NameTypeDescription
connector_user_tokensrepeated ConnectorUserTokenThe list of ConnectorUserTokens
prev_page_tokenstring (cursor of ConnectorUserToken)A token to retrieve previous page of results. Pass this value in the ListConnectorUserTokensRequest.page_token.
next_page_tokenstring (cursor of ConnectorUserToken)A token to retrieve next page of results. Pass this value in the ListConnectorUserTokensRequest.page_token.
current_offsetint32Current offset from the first page or 0 if no page tokens were given, paging info was not requested or there was an error while trying to get it). Page index can be computed from offset and limit provided in a request.
total_results_countint32Number of total ConnectorUserTokens across all pages or 0, if there are no items, paging info was not requested or there was an error while trying to get it.

WatchConnectorUserTokenRequest Message

A request message of the WatchConnectorUserToken method.

NameTypeDescription
namestring (name of ConnectorUserToken)Name of ntt.ai.v1.ConnectorUserToken
field_mask.google.protobuf.FieldMaskA list of extra fields to be obtained for each response item on top of fields defined by request field view
viewViewView defines list of standard response fields present in response items. Additional fields can be amended by request field field_mask

WatchConnectorUserTokenResponse Message

A response message of the WatchConnectorUserToken method.

NameTypeDescription
changeConnectorUserTokenChange

WatchConnectorUserTokensRequest Message

A request message of the WatchConnectorUserTokens method.

NameTypeDescription
typeWatchTypeType of a watch. Identifies how server stream data to a client, which fields in a request are allowed and which fields in response are relevant.
parentstring (parent name of ConnectorUserToken)Parent name of ntt.ai.v1.ConnectorUserToken
page_sizeint32Requested page size. Server may return fewer ConnectorUserTokens than requested. If unspecified, server will pick an appropriate default. Can be populated only for stateful watch type.
page_tokenstring (cursor of ConnectorUserToken)A token identifying a page of results the server should return. Can be populated only for stateful watch type.
order_bystring (orderBy of ConnectorUserToken)Order By - https://cloud.google.com/apis/design/design_patterns#list_pagination Can be populated only for stateful watch type.
resume_tokenstringA token identifying watch resume point from previous session. Can be populated only for stateless watch type.
starting_time.google.protobuf.TimestampPoint in the time from which we want to start getting updates. This field can be populated only for stateless watch type and if resume token is not known yet. If specified, initial snapshot will NOT be provided. It is assumed client can obtain it using separate means. Watch responses will contain resume tokens which should be used to resume broken connection.
filterstring (filter of ConnectorUserToken)Filter - filter results by field criteria. Simplified SQL-like syntax with following operators: <=, >=, =, !=, <, >, LIKE, CONTAINS (aliases CONTAIN, HAS, HAVE), IN, IS [NOT] NULL
field_mask.google.protobuf.FieldMaskA list of extra fields to be obtained for each response item on top of fields defined by request field view Changes to ConnectorUserToken that don’t affect any of masked fields won’t be sent back.
viewViewView defines list of standard response fields present in response items. Additional fields can be amended by request field field_mask Changes to ConnectorUserToken that don’t affect any of masked fields won’t be sent back.
max_chunk_sizeint32Maximum amount of changes in each response message. Query result response is divided on the server side into chunks with size of a specified amount to limit memory footprint of each message. Responses will hold information whether more elements will continue for the actual change. If unspecified, server will pick an appropriate default.

WatchConnectorUserTokensResponse Message

A response message of the WatchConnectorUserTokens method.

NameTypeDescription
connector_user_token_changesrepeated ConnectorUserTokenChangeChanges of ConnectorUserTokens
is_currentboolIf request specified max_chunk_size (or this limit was enforced if stateless watch has been chosen), then responses with “full changeset” will be divided into chunks. Client should keep receiving messages and, once is_current has value true, combine this recent message with all previous ones where is_current is false. If this is the first is_current in a whole watch stream, then it means that client should have, at this moment, contain snapshot of the current situation (or more accurately, snapshot of situation at the moment of request). All ConnectorUserTokens will be of type Added/Current (depending on watch_type specified in the request). Further responses will be incremental - however messages may still be chunked and is_current logic still applies. is_current is always true for stateful watch if max_chunk_size was left to 0.
page_token_changeWatchConnectorUserTokensResponse.PageTokenChangeWhen present, PageTokens used for page navigation should be updated. Present only if is_current is true (last chunk).
resume_tokenstringToken that can be used if current connection drops and client needs to reconnect. Populated only for stateless watch type. Present only if is_current is true (last chunk).
snapshot_sizeint64Server may occasionally send information how many resources should client have in its state so far (response message without any changes, but with snapshot_size field specified). If client has different value than the one sent by the server, then it should be treated by a client as an error and should reconnect. If value is smaller then 0, then client should ignore this field as unpopulated. This field should be checked only for stateless watch. In stateful those kind of errors are handled by the server side. Will be never sent together with is_current, is_soft_reset and is_hard_reset flags.
is_soft_resetboolIn case of internal issue server may send response message with this flag. It indicates that client should drop all changes from recent responses where is_current is false only! If last message had is_current set to true, client should do nothing and process normally. Resume token received before is still valid. This field should be checked only for stateless watch. In stateful those kind of errors are handled by the server side. Will never be sent along with is_current, is_hard_reset or snapshot_size.
is_hard_resetboolIn case of internal issue server may send response message with this flag. After receiving, client should clear whole state (drop all changes received so far) as server will send new snapshot (ConnectorUserTokens will contains changes of type Current only). Any resume tokens should be discarded as well. This field should be checked only for stateless watch. In stateful those kind of errors are handled by the server side. Will never be sent along with is_current, is_soft_reset or snapshot_size.

WatchConnectorUserTokensResponse.PageTokenChange Message

NameTypeDescription
prev_page_tokenstring (cursor of ConnectorUserToken)New token to retrieve previous page of results.
next_page_tokenstring (cursor of ConnectorUserToken)New token to retrieve next page of results.

CreateConnectorUserTokenRequest Message

A request message of the CreateConnectorUserToken method.

NameTypeDescription
parentstring (parent name of ConnectorUserToken)Parent name of ntt.ai.v1.ConnectorUserToken
connector_user_tokenConnectorUserTokenConnectorUserToken resource body
response_maskCreateConnectorUserTokenRequest.ResponseMaskOptional masking applied to response object to reduce message response size.

CreateConnectorUserTokenRequest.ResponseMask Message

ResponseMask allows client to reduce response message size.

NameTypeDescription
skip_entire_response_bodyboolIf this flag has value true, then response will contain just empty resource without any fields populated.
body_mask.google.protobuf.FieldMaskIf this field is populated, then resource in response will contain only specific fields.

UpdateConnectorUserTokenRequest Message

A request message of the UpdateConnectorUserToken method.

NameTypeDescription
connector_user_tokenConnectorUserTokenConnectorUserToken resource body
update_mask.google.protobuf.FieldMaskFieldMask applied to request - change will be applied only for fields in the mask
casUpdateConnectorUserTokenRequest.CASConditional update applied to request if update should be executed only for specific resource state. If this field is populated, then server will fetch existing resource, compare with the one stored in the cas field (after applying field mask) and proceed with update only and only if they match. Otherwise RPC error Aborted will be returned.
allow_missingboolIf set to true, and the resource is not found, a new resource will be created. In this situation, ‘field_mask’ is ignored. https://google.aip.dev/134#create-or-update
response_maskUpdateConnectorUserTokenRequest.ResponseMaskreduce message response size.

UpdateConnectorUserTokenRequest.CAS Message

CAS - Compare and Swap. This object is used if user wants to make update conditional based upon previous resource version.

NameTypeDescription
conditional_stateConnectorUserTokenConditional desired state of a resource before update.
field_mask.google.protobuf.FieldMaskField paths from conditional state of resource server should check and compare.

UpdateConnectorUserTokenRequest.ResponseMask Message

ResponseMask allows client to reduce response message size.

NameTypeDescription
skip_entire_response_bodyboolIf this flag has value true, then response will contain just empty resource without any fields populated. Field body_mask is ignored if set.
updated_fields_onlyboolInclude all fields that were actually updated during processing. Note this may be larger than update mask if some fields were computed additionally. Name is added as well.
body_mask.google.protobuf.FieldMaskIf this field is populated, then resource in response will contain only specific fields. If skip_entire_response_body is true, this field is ignored.

DeleteConnectorUserTokenRequest Message

A request message of the DeleteConnectorUserToken method.

NameTypeDescription
namestring (name of ConnectorUserToken)Name of ntt.ai.v1.ConnectorUserToken
allow_missingboolIf set to true, and the resource is not found, method will be successful and will not return NotFound error.

Conversation Resource

Conversation Resource

Name patterns:

  • projects/{project}/conversations/{conversation}
  • users/{user}/conversations/{conversation}

Parent resources:

This section covers the methods and messages to interact with Conversation resource.

Conversation Methods

Here is the list of Conversation resource methods:

GetConversation Method

GetConversation

rpc GetConversation(GetConversationRequest) returns (Conversation)

with the following messages:

Required Permissions:

  • services/ai.edgelq.com/permissions/conversations.get

The equivalent REST API is:

GET /v1/{name=projects/*/conversations/*} 
GET /v1/{name=users/*/conversations/*} 

BatchGetConversations Method

BatchGetConversations

rpc BatchGetConversations(BatchGetConversationsRequest) returns (BatchGetConversationsResponse)

with the following messages:

Required Permissions:

  • services/ai.edgelq.com/permissions/conversations.batchGet

The equivalent REST API is:

GET /v1/conversations:batchGet 

ListConversations Method

ListConversations

rpc ListConversations(ListConversationsRequest) returns (ListConversationsResponse)

with the following messages:

Required Permissions:

  • services/ai.edgelq.com/permissions/conversations.list

The equivalent REST API is:

GET /v1/{parent=projects/*}/conversations 
GET /v1/{parent=users/*}/conversations 

WatchConversation Method

WatchConversation

rpc WatchConversation(WatchConversationRequest) returns (WatchConversationResponse)

with the following messages:

Required Permissions:

  • services/ai.edgelq.com/permissions/conversations.watch

The equivalent REST API is:

POST /v1/{name=projects/*/conversations/*}:watch 
POST /v1/{name=users/*/conversations/*}:watch 

WatchConversations Method

WatchConversations

rpc WatchConversations(WatchConversationsRequest) returns (WatchConversationsResponse)

with the following messages:

Required Permissions:

  • services/ai.edgelq.com/permissions/conversations.watch

The equivalent REST API is:

POST /v1/{parent=projects/*}/conversations:watch 
POST /v1/{parent=users/*}/conversations:watch 

CreateConversation Method

CreateConversation

rpc CreateConversation(CreateConversationRequest) returns (Conversation)

with the following messages:

Required Permissions:

  • services/ai.edgelq.com/permissions/conversations.create

The equivalent REST API is:

POST /v1/{parent=projects/*}/conversations (BODY: conversation)
POST /v1/{parent=users/*}/conversations 

UpdateConversation Method

UpdateConversation

rpc UpdateConversation(UpdateConversationRequest) returns (Conversation)

with the following messages:

Required Permissions:

  • services/ai.edgelq.com/permissions/conversations.update

The equivalent REST API is:

PUT /v1/{conversation.name=projects/*/conversations/*} (BODY: conversation)
PUT /v1/{conversation.name=users/*/conversations/*} 

DeleteConversation Method

DeleteConversation

rpc DeleteConversation(DeleteConversationRequest) returns (Empty)

with the following messages:

Required Permissions:

  • services/ai.edgelq.com/permissions/conversations.delete

The equivalent REST API is:

DELETE /v1/{name=projects/*/conversations/*} 
DELETE /v1/{name=users/*/conversations/*} 

SearchConversations Method

SearchConversations

rpc SearchConversations(SearchConversationsRequest) returns (SearchConversationsResponse)

with the following messages:

Required Permissions:

  • services/ai.edgelq.com/permissions/conversations.search

The equivalent REST API is:

GET /v1/{parent=projects/*}/conversations:search 
GET /v1/{parent=users/*}/conversations:search 

CreateConversationFromPrompt Method

CreateConversationFromPrompt

rpc CreateConversationFromPrompt(CreateConversationFromPromptRequest) returns (Conversation)

with the following messages:

Required Permissions:

  • services/ai.edgelq.com/permissions/conversations.create

The equivalent REST API is:

POST /v1/{parent=projects/*}/conversations:createFromPrompt (BODY: conversation)
POST /v1/{parent=users/*}/conversations:createFromPrompt 

Conversation Messages

Here is the list of Conversation resource messages:

Conversation Message

NameTypeDescription
namestring (name of Conversation)Name of Conversation When creating a new instance, this field is optional and if not provided, it will be generated automatically. Last ID segment must conform to the following regex: [a-z][a-z0-9\-]{0,28}[a-z0-9]
metadataMetaMetadata is an object with information like create, update and delete time (for async deleted resources), has user labels/annotations, sharding information, multi-region syncing information and may have non-schema owners (useful for taking ownership of resources belonging to lower level services by higher ones).
titlestringAuto generated display title for the conversation
configured_titlestringUser configured display title for the conversation
archivedboolWhether the conversation has been archived
is_privateboolPrivacy level - if true, only visible to creator Private conversations are only accessible to the user who created them Shared (non-private) conversations are visible to all project members
last_activity_time.google.protobuf.TimestampTimestamp of the last activity
turnsrepeated ConversationTurnCore conversation data - sequence of turns (each turn = one CreateResponse API call)
usage_by_modelmap<string, ModelUsageStats>Aggregate statistics by model (for easy analytics/billing)
failed_turnsrepeated ConversationTurnFailed turns - stored separately for audit/debugging These turns ended with STOP_REASON_ERROR and should not be replayed
replaced_turn_groupsrepeated ReplacedTurnGroupGroups of replaced turns from resume operations Each resume operation creates a new group, preserving context and order
capability_templatestring (name of CapabilityTemplate)Capability template used for this conversation

GetConversationRequest Message

A request message of the GetConversation method.

NameTypeDescription
namestring (name of Conversation)Name of ntt.ai.v1.Conversation
field_mask.google.protobuf.FieldMaskA list of extra fields to be obtained for each response item on top of fields defined by request field view
viewViewView defines list of standard response fields present in response items. Additional fields can be amended by request field field_mask

BatchGetConversationsRequest Message

A request message of the BatchGetConversations method.

NameTypeDescription
namesrepeated string (name of Conversation)Names of Conversations
field_mask.google.protobuf.FieldMaskA list of extra fields to be obtained for each response item on top of fields defined by request field view
viewViewView defines list of standard response fields present in response items. Additional fields can be amended by request field field_mask

BatchGetConversationsResponse Message

A response message of the BatchGetConversations method.

NameTypeDescription
conversationsrepeated Conversationfound Conversations
missingrepeated string (name of Conversation)list of not found Conversations

ListConversationsRequest Message

A request message of the ListConversations method.

NameTypeDescription
parentstring (parent name of Conversation)Parent name of ntt.ai.v1.Conversation
page_sizeint32Requested page size. Server may return fewer Conversations than requested. If unspecified, server will pick an appropriate default.
page_tokenstring (cursor of Conversation)A token identifying a page of results the server should return. Typically, this is the value of ListConversationsResponse.next_page_token.
order_bystring (orderBy of Conversation)Order By - https://cloud.google.com/apis/design/design_patterns#list_pagination list of field path with order directive, either ‘asc’ or ‘desc’. If direction is not provided, ‘asc’ is assumed. e.g. “state.nested_field asc, state.something.else desc, theme”
filterstring (filter of Conversation)Filter - filter results by field criteria. Simplified SQL-like syntax with following operators: <=, >=, =, !=, <, >, LIKE, CONTAINS (aliases CONTAIN, HAS, HAVE), IN, IS [NOT] NULL
field_mask.google.protobuf.FieldMaskA list of extra fields to be obtained for each response item on top of fields defined by request field view
viewViewView defines list of standard response fields present in response items. Additional fields can be amended by request field field_mask
include_paging_infoboolIndicates if list response should contain total count and offset (fields current_offset and total_results_count).

ListConversationsResponse Message

A response message of the ListConversations method.

NameTypeDescription
conversationsrepeated ConversationThe list of Conversations
prev_page_tokenstring (cursor of Conversation)A token to retrieve previous page of results. Pass this value in the ListConversationsRequest.page_token.
next_page_tokenstring (cursor of Conversation)A token to retrieve next page of results. Pass this value in the ListConversationsRequest.page_token.
current_offsetint32Current offset from the first page or 0 if no page tokens were given, paging info was not requested or there was an error while trying to get it). Page index can be computed from offset and limit provided in a request.
total_results_countint32Number of total Conversations across all pages or 0, if there are no items, paging info was not requested or there was an error while trying to get it.

WatchConversationRequest Message

A request message of the WatchConversation method.

NameTypeDescription
namestring (name of Conversation)Name of ntt.ai.v1.Conversation
field_mask.google.protobuf.FieldMaskA list of extra fields to be obtained for each response item on top of fields defined by request field view
viewViewView defines list of standard response fields present in response items. Additional fields can be amended by request field field_mask

WatchConversationResponse Message

A response message of the WatchConversation method.

NameTypeDescription
changeConversationChange

WatchConversationsRequest Message

A request message of the WatchConversations method.

NameTypeDescription
typeWatchTypeType of a watch. Identifies how server stream data to a client, which fields in a request are allowed and which fields in response are relevant.
parentstring (parent name of Conversation)Parent name of ntt.ai.v1.Conversation
page_sizeint32Requested page size. Server may return fewer Conversations than requested. If unspecified, server will pick an appropriate default. Can be populated only for stateful watch type.
page_tokenstring (cursor of Conversation)A token identifying a page of results the server should return. Can be populated only for stateful watch type.
order_bystring (orderBy of Conversation)Order By - https://cloud.google.com/apis/design/design_patterns#list_pagination Can be populated only for stateful watch type.
resume_tokenstringA token identifying watch resume point from previous session. Can be populated only for stateless watch type.
starting_time.google.protobuf.TimestampPoint in the time from which we want to start getting updates. This field can be populated only for stateless watch type and if resume token is not known yet. If specified, initial snapshot will NOT be provided. It is assumed client can obtain it using separate means. Watch responses will contain resume tokens which should be used to resume broken connection.
filterstring (filter of Conversation)Filter - filter results by field criteria. Simplified SQL-like syntax with following operators: <=, >=, =, !=, <, >, LIKE, CONTAINS (aliases CONTAIN, HAS, HAVE), IN, IS [NOT] NULL
field_mask.google.protobuf.FieldMaskA list of extra fields to be obtained for each response item on top of fields defined by request field view Changes to Conversation that don’t affect any of masked fields won’t be sent back.
viewViewView defines list of standard response fields present in response items. Additional fields can be amended by request field field_mask Changes to Conversation that don’t affect any of masked fields won’t be sent back.
max_chunk_sizeint32Maximum amount of changes in each response message. Query result response is divided on the server side into chunks with size of a specified amount to limit memory footprint of each message. Responses will hold information whether more elements will continue for the actual change. If unspecified, server will pick an appropriate default.

WatchConversationsResponse Message

A response message of the WatchConversations method.

NameTypeDescription
conversation_changesrepeated ConversationChangeChanges of Conversations
is_currentboolIf request specified max_chunk_size (or this limit was enforced if stateless watch has been chosen), then responses with “full changeset” will be divided into chunks. Client should keep receiving messages and, once is_current has value true, combine this recent message with all previous ones where is_current is false. If this is the first is_current in a whole watch stream, then it means that client should have, at this moment, contain snapshot of the current situation (or more accurately, snapshot of situation at the moment of request). All Conversations will be of type Added/Current (depending on watch_type specified in the request). Further responses will be incremental - however messages may still be chunked and is_current logic still applies. is_current is always true for stateful watch if max_chunk_size was left to 0.
page_token_changeWatchConversationsResponse.PageTokenChangeWhen present, PageTokens used for page navigation should be updated. Present only if is_current is true (last chunk).
resume_tokenstringToken that can be used if current connection drops and client needs to reconnect. Populated only for stateless watch type. Present only if is_current is true (last chunk).
snapshot_sizeint64Server may occasionally send information how many resources should client have in its state so far (response message without any changes, but with snapshot_size field specified). If client has different value than the one sent by the server, then it should be treated by a client as an error and should reconnect. If value is smaller then 0, then client should ignore this field as unpopulated. This field should be checked only for stateless watch. In stateful those kind of errors are handled by the server side. Will be never sent together with is_current, is_soft_reset and is_hard_reset flags.
is_soft_resetboolIn case of internal issue server may send response message with this flag. It indicates that client should drop all changes from recent responses where is_current is false only! If last message had is_current set to true, client should do nothing and process normally. Resume token received before is still valid. This field should be checked only for stateless watch. In stateful those kind of errors are handled by the server side. Will never be sent along with is_current, is_hard_reset or snapshot_size.
is_hard_resetboolIn case of internal issue server may send response message with this flag. After receiving, client should clear whole state (drop all changes received so far) as server will send new snapshot (Conversations will contains changes of type Current only). Any resume tokens should be discarded as well. This field should be checked only for stateless watch. In stateful those kind of errors are handled by the server side. Will never be sent along with is_current, is_soft_reset or snapshot_size.

WatchConversationsResponse.PageTokenChange Message

NameTypeDescription
prev_page_tokenstring (cursor of Conversation)New token to retrieve previous page of results.
next_page_tokenstring (cursor of Conversation)New token to retrieve next page of results.

CreateConversationRequest Message

A request message of the CreateConversation method.

NameTypeDescription
parentstring (parent name of Conversation)Parent name of ntt.ai.v1.Conversation
conversationConversationConversation resource body
response_maskCreateConversationRequest.ResponseMaskOptional masking applied to response object to reduce message response size.

CreateConversationRequest.ResponseMask Message

ResponseMask allows client to reduce response message size.

NameTypeDescription
skip_entire_response_bodyboolIf this flag has value true, then response will contain just empty resource without any fields populated.
body_mask.google.protobuf.FieldMaskIf this field is populated, then resource in response will contain only specific fields.

UpdateConversationRequest Message

A request message of the UpdateConversation method.

NameTypeDescription
conversationConversationConversation resource body
update_mask.google.protobuf.FieldMaskFieldMask applied to request - change will be applied only for fields in the mask
casUpdateConversationRequest.CASConditional update applied to request if update should be executed only for specific resource state. If this field is populated, then server will fetch existing resource, compare with the one stored in the cas field (after applying field mask) and proceed with update only and only if they match. Otherwise RPC error Aborted will be returned.
allow_missingboolIf set to true, and the resource is not found, a new resource will be created. In this situation, ‘field_mask’ is ignored. https://google.aip.dev/134#create-or-update
response_maskUpdateConversationRequest.ResponseMaskreduce message response size.

UpdateConversationRequest.CAS Message

CAS - Compare and Swap. This object is used if user wants to make update conditional based upon previous resource version.

NameTypeDescription
conditional_stateConversationConditional desired state of a resource before update.
field_mask.google.protobuf.FieldMaskField paths from conditional state of resource server should check and compare.

UpdateConversationRequest.ResponseMask Message

ResponseMask allows client to reduce response message size.

NameTypeDescription
skip_entire_response_bodyboolIf this flag has value true, then response will contain just empty resource without any fields populated. Field body_mask is ignored if set.
updated_fields_onlyboolInclude all fields that were actually updated during processing. Note this may be larger than update mask if some fields were computed additionally. Name is added as well.
body_mask.google.protobuf.FieldMaskIf this field is populated, then resource in response will contain only specific fields. If skip_entire_response_body is true, this field is ignored.

DeleteConversationRequest Message

A request message of the DeleteConversation method.

NameTypeDescription
namestring (name of Conversation)Name of ntt.ai.v1.Conversation
allow_missingboolIf set to true, and the resource is not found, method will be successful and will not return NotFound error.

SearchConversationsRequest Message

A request message of the SearchConversations method.

NameTypeDescription
parentstring (parent name of Conversation)Parent name of ntt.ai.v1.Conversation
page_sizeint32Requested page size. Server may return fewer Conversations than requested. If unspecified, server will pick an appropriate default.
page_tokenstring (cursor of Conversation)A token identifying a page of results the server should return. Typically, this is the value of SearchConversationsResponse.next_page_token.
order_bystring (orderBy of Conversation)Order By - https://cloud.google.com/apis/design/design_patterns#list_pagination list of field path with order directive, either ‘asc’ or ‘desc’. If direction is not provided, ‘asc’ is assumed. e.g. “state.nested_field asc, state.something.else desc, theme”
filterstring (filter of Conversation)Filter - filter results by field criteria. Simplified SQL-like syntax with following operators: <=, >=, =, !=, <, >, LIKE, CONTAINS (aliases CONTAIN, HAS, HAVE), IN, IS [NOT] NULL
field_mask.google.protobuf.FieldMaskA list of extra fields to be obtained for each response item on top of fields defined by request field view
viewViewView defines list of standard response fields present in response items. Additional fields can be amended by request field field_mask
phrasestringOptional search phrase used to further filter results.

SearchConversationsResponse Message

A response message of the SearchConversations method.

NameTypeDescription
conversationsrepeated ConversationThe list of Conversations
prev_page_tokenstring (cursor of Conversation)A token to retrieve previous page of results. Pass this value in the SearchConversationsRequest.page_token.
next_page_tokenstring (cursor of Conversation)A token to retrieve next page of results. Pass this value in the SearchConversationsRequest.page_token.
current_offsetint32Current offset from the first page (0 if no page tokens were given). Page index can be computed from offset and limit provided in a request
total_results_countint32Number of total Conversations across all pages.

CreateConversationFromPromptRequest Message

A request message of the CreateConversationFromPrompt method.

NameTypeDescription
parentstring (parent name of Conversation)Parent name of ntt.ai.v1.Conversation
conversationConversationConversation resource body
user_promptstringInitial user prompt used for title generation. Not automatically stored as a turn; server decides how to use it.

ConversationFeedback Resource

ConversationFeedback Resource

Name patterns:

  • projects/{project}/conversations/{conversation}/conversationFeedbacks/{conversation_feedback}
  • users/{user}/conversations/{conversation}/conversationFeedbacks/{conversation_feedback}

Parent resources:

This section covers the methods and messages to interact with ConversationFeedback resource.

ConversationFeedback Methods

Here is the list of ConversationFeedback resource methods:

GetConversationFeedback Method

GetConversationFeedback

rpc GetConversationFeedback(GetConversationFeedbackRequest) returns (ConversationFeedback)

with the following messages:

Required Permissions:

  • services/ai.edgelq.com/permissions/conversationFeedbacks.get

The equivalent REST API is:

GET /v1/{name=projects/*/conversations/*/conversationFeedbacks/*} 
GET /v1/{name=users/*/conversations/*/conversationFeedbacks/*} 

BatchGetConversationFeedbacks Method

BatchGetConversationFeedbacks

rpc BatchGetConversationFeedbacks(BatchGetConversationFeedbacksRequest) returns (BatchGetConversationFeedbacksResponse)

with the following messages:

Required Permissions:

  • services/ai.edgelq.com/permissions/conversationFeedbacks.batchGet

The equivalent REST API is:

GET /v1/conversationFeedbacks:batchGet 

ListConversationFeedbacks Method

ListConversationFeedbacks

rpc ListConversationFeedbacks(ListConversationFeedbacksRequest) returns (ListConversationFeedbacksResponse)

with the following messages:

Required Permissions:

  • services/ai.edgelq.com/permissions/conversationFeedbacks.list

The equivalent REST API is:

GET /v1/{parent=projects/*/conversations/*}/conversationFeedbacks 
GET /v1/{parent=users/*/conversations/*}/conversationFeedbacks 

WatchConversationFeedback Method

WatchConversationFeedback

rpc WatchConversationFeedback(WatchConversationFeedbackRequest) returns (WatchConversationFeedbackResponse)

with the following messages:

Required Permissions:

  • services/ai.edgelq.com/permissions/conversationFeedbacks.watch

The equivalent REST API is:

POST /v1/{name=projects/*/conversations/*/conversationFeedbacks/*}:watch 
POST /v1/{name=users/*/conversations/*/conversationFeedbacks/*}:watch 

WatchConversationFeedbacks Method

WatchConversationFeedbacks

rpc WatchConversationFeedbacks(WatchConversationFeedbacksRequest) returns (WatchConversationFeedbacksResponse)

with the following messages:

Required Permissions:

  • services/ai.edgelq.com/permissions/conversationFeedbacks.watch

The equivalent REST API is:

POST /v1/{parent=projects/*/conversations/*}/conversationFeedbacks:watch 
POST /v1/{parent=users/*/conversations/*}/conversationFeedbacks:watch 

CreateConversationFeedback Method

CreateConversationFeedback

rpc CreateConversationFeedback(CreateConversationFeedbackRequest) returns (ConversationFeedback)

with the following messages:

Required Permissions:

  • services/ai.edgelq.com/permissions/conversationFeedbacks.create

The equivalent REST API is:

POST /v1/{parent=projects/*/conversations/*}/conversationFeedbacks (BODY: conversation_feedback)
POST /v1/{parent=users/*/conversations/*}/conversationFeedbacks 

UpdateConversationFeedback Method

UpdateConversationFeedback

rpc UpdateConversationFeedback(UpdateConversationFeedbackRequest) returns (ConversationFeedback)

with the following messages:

Required Permissions:

  • services/ai.edgelq.com/permissions/conversationFeedbacks.update

The equivalent REST API is:

PUT /v1/{conversation_feedback.name=projects/*/conversations/*/conversationFeedbacks/*} (BODY: conversation_feedback)
PUT /v1/{conversation_feedback.name=users/*/conversations/*/conversationFeedbacks/*} 

DeleteConversationFeedback Method

DeleteConversationFeedback

rpc DeleteConversationFeedback(DeleteConversationFeedbackRequest) returns (Empty)

with the following messages:

Required Permissions:

  • services/ai.edgelq.com/permissions/conversationFeedbacks.delete

The equivalent REST API is:

DELETE /v1/{name=projects/*/conversations/*/conversationFeedbacks/*} 
DELETE /v1/{name=users/*/conversations/*/conversationFeedbacks/*} 

ConversationFeedback Messages

Here is the list of ConversationFeedback resource messages:

ConversationFeedback Message

NameTypeDescription
namestring (name of ConversationFeedback)Name of ConversationFeedback When creating a new instance, this field is optional and if not provided, it will be generated automatically. Last ID segment must conform to the following regex: [a-z][a-z0-9\-]{0,28}[a-z0-9]
metadataMetaMetadata is an object with information like create, update and delete time (for async deleted resources), has user labels/annotations, sharding information, multi-region syncing information and may have non-schema owners (useful for taking ownership of resources belonging to lower level services by higher ones).
ratingint32Rating scale 1 to 10
commentstringOptional free-form comment
tagsrepeated stringStructured tags for analytics (e.g., “helpful”, “incorrect”)
created_at.google.protobuf.TimestampServer-populated timestamp when feedback was created
user_emailstringServer-populated email of the user who submitted feedback

GetConversationFeedbackRequest Message

A request message of the GetConversationFeedback method.

NameTypeDescription
namestring (name of ConversationFeedback)Name of ntt.ai.v1.ConversationFeedback
field_mask.google.protobuf.FieldMaskA list of extra fields to be obtained for each response item on top of fields defined by request field view
viewViewView defines list of standard response fields present in response items. Additional fields can be amended by request field field_mask

BatchGetConversationFeedbacksRequest Message

A request message of the BatchGetConversationFeedbacks method.

NameTypeDescription
namesrepeated string (name of ConversationFeedback)Names of ConversationFeedbacks
field_mask.google.protobuf.FieldMaskA list of extra fields to be obtained for each response item on top of fields defined by request field view
viewViewView defines list of standard response fields present in response items. Additional fields can be amended by request field field_mask

BatchGetConversationFeedbacksResponse Message

A response message of the BatchGetConversationFeedbacks method.

NameTypeDescription
conversation_feedbacksrepeated ConversationFeedbackfound ConversationFeedbacks
missingrepeated string (name of ConversationFeedback)list of not found ConversationFeedbacks

ListConversationFeedbacksRequest Message

A request message of the ListConversationFeedbacks method.

NameTypeDescription
parentstring (parent name of ConversationFeedback)Parent name of ntt.ai.v1.ConversationFeedback
page_sizeint32Requested page size. Server may return fewer ConversationFeedbacks than requested. If unspecified, server will pick an appropriate default.
page_tokenstring (cursor of ConversationFeedback)A token identifying a page of results the server should return. Typically, this is the value of ListConversationFeedbacksResponse.next_page_token.
order_bystring (orderBy of ConversationFeedback)Order By - https://cloud.google.com/apis/design/design_patterns#list_pagination list of field path with order directive, either ‘asc’ or ‘desc’. If direction is not provided, ‘asc’ is assumed. e.g. “state.nested_field asc, state.something.else desc, theme”
filterstring (filter of ConversationFeedback)Filter - filter results by field criteria. Simplified SQL-like syntax with following operators: <=, >=, =, !=, <, >, LIKE, CONTAINS (aliases CONTAIN, HAS, HAVE), IN, IS [NOT] NULL
field_mask.google.protobuf.FieldMaskA list of extra fields to be obtained for each response item on top of fields defined by request field view
viewViewView defines list of standard response fields present in response items. Additional fields can be amended by request field field_mask
include_paging_infoboolIndicates if list response should contain total count and offset (fields current_offset and total_results_count).

ListConversationFeedbacksResponse Message

A response message of the ListConversationFeedbacks method.

NameTypeDescription
conversation_feedbacksrepeated ConversationFeedbackThe list of ConversationFeedbacks
prev_page_tokenstring (cursor of ConversationFeedback)A token to retrieve previous page of results. Pass this value in the ListConversationFeedbacksRequest.page_token.
next_page_tokenstring (cursor of ConversationFeedback)A token to retrieve next page of results. Pass this value in the ListConversationFeedbacksRequest.page_token.
current_offsetint32Current offset from the first page or 0 if no page tokens were given, paging info was not requested or there was an error while trying to get it). Page index can be computed from offset and limit provided in a request.
total_results_countint32Number of total ConversationFeedbacks across all pages or 0, if there are no items, paging info was not requested or there was an error while trying to get it.

WatchConversationFeedbackRequest Message

A request message of the WatchConversationFeedback method.

NameTypeDescription
namestring (name of ConversationFeedback)Name of ntt.ai.v1.ConversationFeedback
field_mask.google.protobuf.FieldMaskA list of extra fields to be obtained for each response item on top of fields defined by request field view
viewViewView defines list of standard response fields present in response items. Additional fields can be amended by request field field_mask

WatchConversationFeedbackResponse Message

A response message of the WatchConversationFeedback method.

NameTypeDescription
changeConversationFeedbackChange

WatchConversationFeedbacksRequest Message

A request message of the WatchConversationFeedbacks method.

NameTypeDescription
typeWatchTypeType of a watch. Identifies how server stream data to a client, which fields in a request are allowed and which fields in response are relevant.
parentstring (parent name of ConversationFeedback)Parent name of ntt.ai.v1.ConversationFeedback
page_sizeint32Requested page size. Server may return fewer ConversationFeedbacks than requested. If unspecified, server will pick an appropriate default. Can be populated only for stateful watch type.
page_tokenstring (cursor of ConversationFeedback)A token identifying a page of results the server should return. Can be populated only for stateful watch type.
order_bystring (orderBy of ConversationFeedback)Order By - https://cloud.google.com/apis/design/design_patterns#list_pagination Can be populated only for stateful watch type.
resume_tokenstringA token identifying watch resume point from previous session. Can be populated only for stateless watch type.
starting_time.google.protobuf.TimestampPoint in the time from which we want to start getting updates. This field can be populated only for stateless watch type and if resume token is not known yet. If specified, initial snapshot will NOT be provided. It is assumed client can obtain it using separate means. Watch responses will contain resume tokens which should be used to resume broken connection.
filterstring (filter of ConversationFeedback)Filter - filter results by field criteria. Simplified SQL-like syntax with following operators: <=, >=, =, !=, <, >, LIKE, CONTAINS (aliases CONTAIN, HAS, HAVE), IN, IS [NOT] NULL
field_mask.google.protobuf.FieldMaskA list of extra fields to be obtained for each response item on top of fields defined by request field view Changes to ConversationFeedback that don’t affect any of masked fields won’t be sent back.
viewViewView defines list of standard response fields present in response items. Additional fields can be amended by request field field_mask Changes to ConversationFeedback that don’t affect any of masked fields won’t be sent back.
max_chunk_sizeint32Maximum amount of changes in each response message. Query result response is divided on the server side into chunks with size of a specified amount to limit memory footprint of each message. Responses will hold information whether more elements will continue for the actual change. If unspecified, server will pick an appropriate default.

WatchConversationFeedbacksResponse Message

A response message of the WatchConversationFeedbacks method.

NameTypeDescription
conversation_feedback_changesrepeated ConversationFeedbackChangeChanges of ConversationFeedbacks
is_currentboolIf request specified max_chunk_size (or this limit was enforced if stateless watch has been chosen), then responses with “full changeset” will be divided into chunks. Client should keep receiving messages and, once is_current has value true, combine this recent message with all previous ones where is_current is false. If this is the first is_current in a whole watch stream, then it means that client should have, at this moment, contain snapshot of the current situation (or more accurately, snapshot of situation at the moment of request). All ConversationFeedbacks will be of type Added/Current (depending on watch_type specified in the request). Further responses will be incremental - however messages may still be chunked and is_current logic still applies. is_current is always true for stateful watch if max_chunk_size was left to 0.
page_token_changeWatchConversationFeedbacksResponse.PageTokenChangeWhen present, PageTokens used for page navigation should be updated. Present only if is_current is true (last chunk).
resume_tokenstringToken that can be used if current connection drops and client needs to reconnect. Populated only for stateless watch type. Present only if is_current is true (last chunk).
snapshot_sizeint64Server may occasionally send information how many resources should client have in its state so far (response message without any changes, but with snapshot_size field specified). If client has different value than the one sent by the server, then it should be treated by a client as an error and should reconnect. If value is smaller then 0, then client should ignore this field as unpopulated. This field should be checked only for stateless watch. In stateful those kind of errors are handled by the server side. Will be never sent together with is_current, is_soft_reset and is_hard_reset flags.
is_soft_resetboolIn case of internal issue server may send response message with this flag. It indicates that client should drop all changes from recent responses where is_current is false only! If last message had is_current set to true, client should do nothing and process normally. Resume token received before is still valid. This field should be checked only for stateless watch. In stateful those kind of errors are handled by the server side. Will never be sent along with is_current, is_hard_reset or snapshot_size.
is_hard_resetboolIn case of internal issue server may send response message with this flag. After receiving, client should clear whole state (drop all changes received so far) as server will send new snapshot (ConversationFeedbacks will contains changes of type Current only). Any resume tokens should be discarded as well. This field should be checked only for stateless watch. In stateful those kind of errors are handled by the server side. Will never be sent along with is_current, is_soft_reset or snapshot_size.

WatchConversationFeedbacksResponse.PageTokenChange Message

NameTypeDescription
prev_page_tokenstring (cursor of ConversationFeedback)New token to retrieve previous page of results.
next_page_tokenstring (cursor of ConversationFeedback)New token to retrieve next page of results.

CreateConversationFeedbackRequest Message

A request message of the CreateConversationFeedback method.

NameTypeDescription
parentstring (parent name of ConversationFeedback)Parent name of ntt.ai.v1.ConversationFeedback
conversation_feedbackConversationFeedbackConversationFeedback resource body
response_maskCreateConversationFeedbackRequest.ResponseMaskOptional masking applied to response object to reduce message response size.

CreateConversationFeedbackRequest.ResponseMask Message

ResponseMask allows client to reduce response message size.

NameTypeDescription
skip_entire_response_bodyboolIf this flag has value true, then response will contain just empty resource without any fields populated.
body_mask.google.protobuf.FieldMaskIf this field is populated, then resource in response will contain only specific fields.

UpdateConversationFeedbackRequest Message

A request message of the UpdateConversationFeedback method.

NameTypeDescription
conversation_feedbackConversationFeedbackConversationFeedback resource body
update_mask.google.protobuf.FieldMaskFieldMask applied to request - change will be applied only for fields in the mask
casUpdateConversationFeedbackRequest.CASConditional update applied to request if update should be executed only for specific resource state. If this field is populated, then server will fetch existing resource, compare with the one stored in the cas field (after applying field mask) and proceed with update only and only if they match. Otherwise RPC error Aborted will be returned.
allow_missingboolIf set to true, and the resource is not found, a new resource will be created. In this situation, ‘field_mask’ is ignored. https://google.aip.dev/134#create-or-update
response_maskUpdateConversationFeedbackRequest.ResponseMaskreduce message response size.

UpdateConversationFeedbackRequest.CAS Message

CAS - Compare and Swap. This object is used if user wants to make update conditional based upon previous resource version.

NameTypeDescription
conditional_stateConversationFeedbackConditional desired state of a resource before update.
field_mask.google.protobuf.FieldMaskField paths from conditional state of resource server should check and compare.

UpdateConversationFeedbackRequest.ResponseMask Message

ResponseMask allows client to reduce response message size.

NameTypeDescription
skip_entire_response_bodyboolIf this flag has value true, then response will contain just empty resource without any fields populated. Field body_mask is ignored if set.
updated_fields_onlyboolInclude all fields that were actually updated during processing. Note this may be larger than update mask if some fields were computed additionally. Name is added as well.
body_mask.google.protobuf.FieldMaskIf this field is populated, then resource in response will contain only specific fields. If skip_entire_response_body is true, this field is ignored.

DeleteConversationFeedbackRequest Message

A request message of the DeleteConversationFeedback method.

NameTypeDescription
namestring (name of ConversationFeedback)Name of ntt.ai.v1.ConversationFeedback
allow_missingboolIf set to true, and the resource is not found, method will be successful and will not return NotFound error.

Document Resource

Document Resource represents specific document in a search index. When uploaded to the service, it is automatically tokenized and chunked in search service. As of now, each Document must be some kind of text file (markdown, protobuf, source code, json, yaml…).

Name patterns:

  • searchDbs/{search_db}/searchIndices/{search_index}/documents/{document}
  • projects/{project}/searchDbs/{search_db}/searchIndices/{search_index}/documents/{document}

Parent resources:

This section covers the methods and messages to interact with Document resource.

Document Methods

Here is the list of Document resource methods:

GetDocument Method

GetDocument

rpc GetDocument(GetDocumentRequest) returns (Document)

with the following messages:

Required Permissions:

  • services/ai.edgelq.com/permissions/documents.get

The equivalent REST API is:

GET /v1/{name=searchDbs/*/searchIndices/*/documents/*} 
GET /v1/{name=projects/*/searchDbs/*/searchIndices/*/documents/*} 

BatchGetDocuments Method

BatchGetDocuments

rpc BatchGetDocuments(BatchGetDocumentsRequest) returns (BatchGetDocumentsResponse)

with the following messages:

Required Permissions:

  • services/ai.edgelq.com/permissions/documents.batchGet

The equivalent REST API is:

GET /v1/documents:batchGet 

ListDocuments Method

ListDocuments

rpc ListDocuments(ListDocumentsRequest) returns (ListDocumentsResponse)

with the following messages:

Required Permissions:

  • services/ai.edgelq.com/permissions/documents.list

The equivalent REST API is:

GET /v1/{parent=searchDbs/*/searchIndices/*}/documents 
GET /v1/{parent=projects/*/searchDbs/*/searchIndices/*}/documents 

WatchDocument Method

WatchDocument

rpc WatchDocument(WatchDocumentRequest) returns (WatchDocumentResponse)

with the following messages:

Required Permissions:

  • services/ai.edgelq.com/permissions/documents.watch

The equivalent REST API is:

POST /v1/{name=searchDbs/*/searchIndices/*/documents/*}:watch 
POST /v1/{name=projects/*/searchDbs/*/searchIndices/*/documents/*}:watch 

WatchDocuments Method

WatchDocuments

rpc WatchDocuments(WatchDocumentsRequest) returns (WatchDocumentsResponse)

with the following messages:

Required Permissions:

  • services/ai.edgelq.com/permissions/documents.watch

The equivalent REST API is:

POST /v1/{parent=searchDbs/*/searchIndices/*}/documents:watch 
POST /v1/{parent=projects/*/searchDbs/*/searchIndices/*}/documents:watch 

CreateDocument Method

CreateDocument

rpc CreateDocument(CreateDocumentRequest) returns (Document)

with the following messages:

Required Permissions:

  • services/ai.edgelq.com/permissions/documents.create

The equivalent REST API is:

POST /v1/{parent=searchDbs/*/searchIndices/*}/documents (BODY: document)
POST /v1/{parent=projects/*/searchDbs/*/searchIndices/*}/documents 

UpdateDocument Method

UpdateDocument

rpc UpdateDocument(UpdateDocumentRequest) returns (Document)

with the following messages:

Required Permissions:

  • services/ai.edgelq.com/permissions/documents.update

The equivalent REST API is:

PUT /v1/{document.name=searchDbs/*/searchIndices/*/documents/*} (BODY: document)
PUT /v1/{document.name=projects/*/searchDbs/*/searchIndices/*/documents/*} 

DeleteDocument Method

DeleteDocument

rpc DeleteDocument(DeleteDocumentRequest) returns (Empty)

with the following messages:

Required Permissions:

  • services/ai.edgelq.com/permissions/documents.delete

The equivalent REST API is:

DELETE /v1/{name=searchDbs/*/searchIndices/*/documents/*} 
DELETE /v1/{name=projects/*/searchDbs/*/searchIndices/*/documents/*} 

Document Messages

Here is the list of Document resource messages:

Document Message

NameTypeDescription
namestring (name of Document)Name of Document When creating a new instance, this field is optional and if not provided, it will be generated automatically. Last ID segment must conform to the following regex: [a-z][a-z0-9\-]{0,28}[a-z0-9]
metadataMetaMetadata is an object with information like create, update and delete time (for async deleted resources), has user labels/annotations, sharding information, multi-region syncing information and may have non-schema owners (useful for taking ownership of resources belonging to lower level services by higher ones).
contentbytesDocument contents.
checksumstringComputed based on checksum. Checksum can be used to later determine if file needs to be updated or not.
titlestring
title_prefixstring
file_typeDocument.FileType

GetDocumentRequest Message

A request message of the GetDocument method.

NameTypeDescription
namestring (name of Document)Name of ntt.ai.v1.Document
field_mask.google.protobuf.FieldMaskA list of extra fields to be obtained for each response item on top of fields defined by request field view
viewViewView defines list of standard response fields present in response items. Additional fields can be amended by request field field_mask

BatchGetDocumentsRequest Message

A request message of the BatchGetDocuments method.

NameTypeDescription
namesrepeated string (name of Document)Names of Documents
field_mask.google.protobuf.FieldMaskA list of extra fields to be obtained for each response item on top of fields defined by request field view
viewViewView defines list of standard response fields present in response items. Additional fields can be amended by request field field_mask

BatchGetDocumentsResponse Message

A response message of the BatchGetDocuments method.

NameTypeDescription
documentsrepeated Documentfound Documents
missingrepeated string (name of Document)list of not found Documents

ListDocumentsRequest Message

A request message of the ListDocuments method.

NameTypeDescription
parentstring (parent name of Document)Parent name of ntt.ai.v1.Document
page_sizeint32Requested page size. Server may return fewer Documents than requested. If unspecified, server will pick an appropriate default.
page_tokenstring (cursor of Document)A token identifying a page of results the server should return. Typically, this is the value of ListDocumentsResponse.next_page_token.
order_bystring (orderBy of Document)Order By - https://cloud.google.com/apis/design/design_patterns#list_pagination list of field path with order directive, either ‘asc’ or ‘desc’. If direction is not provided, ‘asc’ is assumed. e.g. “state.nested_field asc, state.something.else desc, theme”
filterstring (filter of Document)Filter - filter results by field criteria. Simplified SQL-like syntax with following operators: <=, >=, =, !=, <, >, LIKE, CONTAINS (aliases CONTAIN, HAS, HAVE), IN, IS [NOT] NULL
field_mask.google.protobuf.FieldMaskA list of extra fields to be obtained for each response item on top of fields defined by request field view
viewViewView defines list of standard response fields present in response items. Additional fields can be amended by request field field_mask
include_paging_infoboolIndicates if list response should contain total count and offset (fields current_offset and total_results_count).

ListDocumentsResponse Message

A response message of the ListDocuments method.

NameTypeDescription
documentsrepeated DocumentThe list of Documents
prev_page_tokenstring (cursor of Document)A token to retrieve previous page of results. Pass this value in the ListDocumentsRequest.page_token.
next_page_tokenstring (cursor of Document)A token to retrieve next page of results. Pass this value in the ListDocumentsRequest.page_token.
current_offsetint32Current offset from the first page or 0 if no page tokens were given, paging info was not requested or there was an error while trying to get it). Page index can be computed from offset and limit provided in a request.
total_results_countint32Number of total Documents across all pages or 0, if there are no items, paging info was not requested or there was an error while trying to get it.

WatchDocumentRequest Message

A request message of the WatchDocument method.

NameTypeDescription
namestring (name of Document)Name of ntt.ai.v1.Document
field_mask.google.protobuf.FieldMaskA list of extra fields to be obtained for each response item on top of fields defined by request field view
viewViewView defines list of standard response fields present in response items. Additional fields can be amended by request field field_mask

WatchDocumentResponse Message

A response message of the WatchDocument method.

NameTypeDescription
changeDocumentChange

WatchDocumentsRequest Message

A request message of the WatchDocuments method.

NameTypeDescription
typeWatchTypeType of a watch. Identifies how server stream data to a client, which fields in a request are allowed and which fields in response are relevant.
parentstring (parent name of Document)Parent name of ntt.ai.v1.Document
page_sizeint32Requested page size. Server may return fewer Documents than requested. If unspecified, server will pick an appropriate default. Can be populated only for stateful watch type.
page_tokenstring (cursor of Document)A token identifying a page of results the server should return. Can be populated only for stateful watch type.
order_bystring (orderBy of Document)Order By - https://cloud.google.com/apis/design/design_patterns#list_pagination Can be populated only for stateful watch type.
resume_tokenstringA token identifying watch resume point from previous session. Can be populated only for stateless watch type.
starting_time.google.protobuf.TimestampPoint in the time from which we want to start getting updates. This field can be populated only for stateless watch type and if resume token is not known yet. If specified, initial snapshot will NOT be provided. It is assumed client can obtain it using separate means. Watch responses will contain resume tokens which should be used to resume broken connection.
filterstring (filter of Document)Filter - filter results by field criteria. Simplified SQL-like syntax with following operators: <=, >=, =, !=, <, >, LIKE, CONTAINS (aliases CONTAIN, HAS, HAVE), IN, IS [NOT] NULL
field_mask.google.protobuf.FieldMaskA list of extra fields to be obtained for each response item on top of fields defined by request field view Changes to Document that don’t affect any of masked fields won’t be sent back.
viewViewView defines list of standard response fields present in response items. Additional fields can be amended by request field field_mask Changes to Document that don’t affect any of masked fields won’t be sent back.
max_chunk_sizeint32Maximum amount of changes in each response message. Query result response is divided on the server side into chunks with size of a specified amount to limit memory footprint of each message. Responses will hold information whether more elements will continue for the actual change. If unspecified, server will pick an appropriate default.

WatchDocumentsResponse Message

A response message of the WatchDocuments method.

NameTypeDescription
document_changesrepeated DocumentChangeChanges of Documents
is_currentboolIf request specified max_chunk_size (or this limit was enforced if stateless watch has been chosen), then responses with “full changeset” will be divided into chunks. Client should keep receiving messages and, once is_current has value true, combine this recent message with all previous ones where is_current is false. If this is the first is_current in a whole watch stream, then it means that client should have, at this moment, contain snapshot of the current situation (or more accurately, snapshot of situation at the moment of request). All Documents will be of type Added/Current (depending on watch_type specified in the request). Further responses will be incremental - however messages may still be chunked and is_current logic still applies. is_current is always true for stateful watch if max_chunk_size was left to 0.
page_token_changeWatchDocumentsResponse.PageTokenChangeWhen present, PageTokens used for page navigation should be updated. Present only if is_current is true (last chunk).
resume_tokenstringToken that can be used if current connection drops and client needs to reconnect. Populated only for stateless watch type. Present only if is_current is true (last chunk).
snapshot_sizeint64Server may occasionally send information how many resources should client have in its state so far (response message without any changes, but with snapshot_size field specified). If client has different value than the one sent by the server, then it should be treated by a client as an error and should reconnect. If value is smaller then 0, then client should ignore this field as unpopulated. This field should be checked only for stateless watch. In stateful those kind of errors are handled by the server side. Will be never sent together with is_current, is_soft_reset and is_hard_reset flags.
is_soft_resetboolIn case of internal issue server may send response message with this flag. It indicates that client should drop all changes from recent responses where is_current is false only! If last message had is_current set to true, client should do nothing and process normally. Resume token received before is still valid. This field should be checked only for stateless watch. In stateful those kind of errors are handled by the server side. Will never be sent along with is_current, is_hard_reset or snapshot_size.
is_hard_resetboolIn case of internal issue server may send response message with this flag. After receiving, client should clear whole state (drop all changes received so far) as server will send new snapshot (Documents will contains changes of type Current only). Any resume tokens should be discarded as well. This field should be checked only for stateless watch. In stateful those kind of errors are handled by the server side. Will never be sent along with is_current, is_soft_reset or snapshot_size.

WatchDocumentsResponse.PageTokenChange Message

NameTypeDescription
prev_page_tokenstring (cursor of Document)New token to retrieve previous page of results.
next_page_tokenstring (cursor of Document)New token to retrieve next page of results.

CreateDocumentRequest Message

A request message of the CreateDocument method.

NameTypeDescription
parentstring (parent name of Document)Parent name of ntt.ai.v1.Document
documentDocumentDocument resource body
response_maskCreateDocumentRequest.ResponseMaskOptional masking applied to response object to reduce message response size.

CreateDocumentRequest.ResponseMask Message

ResponseMask allows client to reduce response message size.

NameTypeDescription
skip_entire_response_bodyboolIf this flag has value true, then response will contain just empty resource without any fields populated.
body_mask.google.protobuf.FieldMaskIf this field is populated, then resource in response will contain only specific fields.

UpdateDocumentRequest Message

A request message of the UpdateDocument method.

NameTypeDescription
documentDocumentDocument resource body
update_mask.google.protobuf.FieldMaskFieldMask applied to request - change will be applied only for fields in the mask
casUpdateDocumentRequest.CASConditional update applied to request if update should be executed only for specific resource state. If this field is populated, then server will fetch existing resource, compare with the one stored in the cas field (after applying field mask) and proceed with update only and only if they match. Otherwise RPC error Aborted will be returned.
allow_missingboolIf set to true, and the resource is not found, a new resource will be created. In this situation, ‘field_mask’ is ignored. https://google.aip.dev/134#create-or-update
response_maskUpdateDocumentRequest.ResponseMaskreduce message response size.

UpdateDocumentRequest.CAS Message

CAS - Compare and Swap. This object is used if user wants to make update conditional based upon previous resource version.

NameTypeDescription
conditional_stateDocumentConditional desired state of a resource before update.
field_mask.google.protobuf.FieldMaskField paths from conditional state of resource server should check and compare.

UpdateDocumentRequest.ResponseMask Message

ResponseMask allows client to reduce response message size.

NameTypeDescription
skip_entire_response_bodyboolIf this flag has value true, then response will contain just empty resource without any fields populated. Field body_mask is ignored if set.
updated_fields_onlyboolInclude all fields that were actually updated during processing. Note this may be larger than update mask if some fields were computed additionally. Name is added as well.
body_mask.google.protobuf.FieldMaskIf this field is populated, then resource in response will contain only specific fields. If skip_entire_response_body is true, this field is ignored.

DeleteDocumentRequest Message

A request message of the DeleteDocument method.

NameTypeDescription
namestring (name of Document)Name of ntt.ai.v1.Document
allow_missingboolIf set to true, and the resource is not found, method will be successful and will not return NotFound error.

Document Enumerations

Here is the list of Document resource enumerations:

Document.FileType Enumeration

NameDescription
UNDEFINED
MARKDOWN
GOLANG
PROTOBUF

SearchDb Resource

SearchDb Resource represents access to Search Service, which typically should be some kind of Vector database. It is a container for search indices, which can be used for chat purposes (RAG).

Name patterns:

  • searchDbs/{search_db}
  • projects/{project}/searchDbs/{search_db}

Parent resources:

This section covers the methods and messages to interact with SearchDb resource.

SearchDb Methods

Here is the list of SearchDb resource methods:

GetSearchDb Method

GetSearchDb

rpc GetSearchDb(GetSearchDbRequest) returns (SearchDb)

with the following messages:

Required Permissions:

  • services/ai.edgelq.com/permissions/searchDbs.get

The equivalent REST API is:

GET /v1/{name=searchDbs/*} 
GET /v1/{name=projects/*/searchDbs/*} 

BatchGetSearchDbs Method

BatchGetSearchDbs

rpc BatchGetSearchDbs(BatchGetSearchDbsRequest) returns (BatchGetSearchDbsResponse)

with the following messages:

Required Permissions:

  • services/ai.edgelq.com/permissions/searchDbs.batchGet

The equivalent REST API is:

GET /v1/searchDbs:batchGet 

ListSearchDbs Method

ListSearchDbs

rpc ListSearchDbs(ListSearchDbsRequest) returns (ListSearchDbsResponse)

with the following messages:

Required Permissions:

  • services/ai.edgelq.com/permissions/searchDbs.list

The equivalent REST API is:

GET /v1/searchDbs 
GET /v1/{parent=projects/*}/searchDbs 

WatchSearchDb Method

WatchSearchDb

rpc WatchSearchDb(WatchSearchDbRequest) returns (WatchSearchDbResponse)

with the following messages:

Required Permissions:

  • services/ai.edgelq.com/permissions/searchDbs.watch

The equivalent REST API is:

POST /v1/{name=searchDbs/*}:watch 
POST /v1/{name=projects/*/searchDbs/*}:watch 

WatchSearchDbs Method

WatchSearchDbs

rpc WatchSearchDbs(WatchSearchDbsRequest) returns (WatchSearchDbsResponse)

with the following messages:

Required Permissions:

  • services/ai.edgelq.com/permissions/searchDbs.watch

The equivalent REST API is:

POST /v1/searchDbs:watch 
POST /v1/{parent=projects/*}/searchDbs:watch 

CreateSearchDb Method

CreateSearchDb

rpc CreateSearchDb(CreateSearchDbRequest) returns (SearchDb)

with the following messages:

Required Permissions:

  • services/ai.edgelq.com/permissions/searchDbs.create

The equivalent REST API is:

POST /v1/searchDbs (BODY: search_db)
POST /v1/{parent=projects/*}/searchDbs 

UpdateSearchDb Method

UpdateSearchDb

rpc UpdateSearchDb(UpdateSearchDbRequest) returns (SearchDb)

with the following messages:

Required Permissions:

  • services/ai.edgelq.com/permissions/searchDbs.update

The equivalent REST API is:

PUT /v1/{search_db.name=searchDbs/*} (BODY: search_db)
PUT /v1/{search_db.name=projects/*/searchDbs/*} 

DeleteSearchDb Method

DeleteSearchDb

rpc DeleteSearchDb(DeleteSearchDbRequest) returns (Empty)

with the following messages:

Required Permissions:

  • services/ai.edgelq.com/permissions/searchDbs.delete

The equivalent REST API is:

DELETE /v1/{name=searchDbs/*} 
DELETE /v1/{name=projects/*/searchDbs/*} 

SearchDb Messages

Here is the list of SearchDb resource messages:

SearchDb Message

NameTypeDescription
namestring (name of SearchDb)Name of SearchDb When creating a new instance, this field is optional and if not provided, it will be generated automatically. Last ID segment must conform to the following regex: [a-z][a-z0-9\-]{0,28}[a-z0-9]
metadataMetaMetadata is an object with information like create, update and delete time (for async deleted resources), has user labels/annotations, sharding information, multi-region syncing information and may have non-schema owners (useful for taking ownership of resources belonging to lower level services by higher ones).
azure_ai_searchSearchDb.AzureAiSearch

SearchDb.AzureAiSearch Message

NameTypeDescription
endpointstring
api_keystring (reference to Secret)
enable_semanticboolWhether to enable semantic search features (requires Basic+ tier with semantic enabled)

GetSearchDbRequest Message

A request message of the GetSearchDb method.

NameTypeDescription
namestring (name of SearchDb)Name of ntt.ai.v1.SearchDb
field_mask.google.protobuf.FieldMaskA list of extra fields to be obtained for each response item on top of fields defined by request field view
viewViewView defines list of standard response fields present in response items. Additional fields can be amended by request field field_mask

BatchGetSearchDbsRequest Message

A request message of the BatchGetSearchDbs method.

NameTypeDescription
namesrepeated string (name of SearchDb)Names of SearchDbs
field_mask.google.protobuf.FieldMaskA list of extra fields to be obtained for each response item on top of fields defined by request field view
viewViewView defines list of standard response fields present in response items. Additional fields can be amended by request field field_mask

BatchGetSearchDbsResponse Message

A response message of the BatchGetSearchDbs method.

NameTypeDescription
search_dbsrepeated SearchDbfound SearchDbs
missingrepeated string (name of SearchDb)list of not found SearchDbs

ListSearchDbsRequest Message

A request message of the ListSearchDbs method.

NameTypeDescription
parentstring (parent name of SearchDb)Parent name of ntt.ai.v1.SearchDb
page_sizeint32Requested page size. Server may return fewer SearchDbs than requested. If unspecified, server will pick an appropriate default.
page_tokenstring (cursor of SearchDb)A token identifying a page of results the server should return. Typically, this is the value of ListSearchDbsResponse.next_page_token.
order_bystring (orderBy of SearchDb)Order By - https://cloud.google.com/apis/design/design_patterns#list_pagination list of field path with order directive, either ‘asc’ or ‘desc’. If direction is not provided, ‘asc’ is assumed. e.g. “state.nested_field asc, state.something.else desc, theme”
filterstring (filter of SearchDb)Filter - filter results by field criteria. Simplified SQL-like syntax with following operators: <=, >=, =, !=, <, >, LIKE, CONTAINS (aliases CONTAIN, HAS, HAVE), IN, IS [NOT] NULL
field_mask.google.protobuf.FieldMaskA list of extra fields to be obtained for each response item on top of fields defined by request field view
viewViewView defines list of standard response fields present in response items. Additional fields can be amended by request field field_mask
include_paging_infoboolIndicates if list response should contain total count and offset (fields current_offset and total_results_count).

ListSearchDbsResponse Message

A response message of the ListSearchDbs method.

NameTypeDescription
search_dbsrepeated SearchDbThe list of SearchDbs
prev_page_tokenstring (cursor of SearchDb)A token to retrieve previous page of results. Pass this value in the ListSearchDbsRequest.page_token.
next_page_tokenstring (cursor of SearchDb)A token to retrieve next page of results. Pass this value in the ListSearchDbsRequest.page_token.
current_offsetint32Current offset from the first page or 0 if no page tokens were given, paging info was not requested or there was an error while trying to get it). Page index can be computed from offset and limit provided in a request.
total_results_countint32Number of total SearchDbs across all pages or 0, if there are no items, paging info was not requested or there was an error while trying to get it.

WatchSearchDbRequest Message

A request message of the WatchSearchDb method.

NameTypeDescription
namestring (name of SearchDb)Name of ntt.ai.v1.SearchDb
field_mask.google.protobuf.FieldMaskA list of extra fields to be obtained for each response item on top of fields defined by request field view
viewViewView defines list of standard response fields present in response items. Additional fields can be amended by request field field_mask

WatchSearchDbResponse Message

A response message of the WatchSearchDb method.

NameTypeDescription
changeSearchDbChange

WatchSearchDbsRequest Message

A request message of the WatchSearchDbs method.

NameTypeDescription
typeWatchTypeType of a watch. Identifies how server stream data to a client, which fields in a request are allowed and which fields in response are relevant.
parentstring (parent name of SearchDb)Parent name of ntt.ai.v1.SearchDb
page_sizeint32Requested page size. Server may return fewer SearchDbs than requested. If unspecified, server will pick an appropriate default. Can be populated only for stateful watch type.
page_tokenstring (cursor of SearchDb)A token identifying a page of results the server should return. Can be populated only for stateful watch type.
order_bystring (orderBy of SearchDb)Order By - https://cloud.google.com/apis/design/design_patterns#list_pagination Can be populated only for stateful watch type.
resume_tokenstringA token identifying watch resume point from previous session. Can be populated only for stateless watch type.
starting_time.google.protobuf.TimestampPoint in the time from which we want to start getting updates. This field can be populated only for stateless watch type and if resume token is not known yet. If specified, initial snapshot will NOT be provided. It is assumed client can obtain it using separate means. Watch responses will contain resume tokens which should be used to resume broken connection.
filterstring (filter of SearchDb)Filter - filter results by field criteria. Simplified SQL-like syntax with following operators: <=, >=, =, !=, <, >, LIKE, CONTAINS (aliases CONTAIN, HAS, HAVE), IN, IS [NOT] NULL
field_mask.google.protobuf.FieldMaskA list of extra fields to be obtained for each response item on top of fields defined by request field view Changes to SearchDb that don’t affect any of masked fields won’t be sent back.
viewViewView defines list of standard response fields present in response items. Additional fields can be amended by request field field_mask Changes to SearchDb that don’t affect any of masked fields won’t be sent back.
max_chunk_sizeint32Maximum amount of changes in each response message. Query result response is divided on the server side into chunks with size of a specified amount to limit memory footprint of each message. Responses will hold information whether more elements will continue for the actual change. If unspecified, server will pick an appropriate default.

WatchSearchDbsResponse Message

A response message of the WatchSearchDbs method.

NameTypeDescription
search_db_changesrepeated SearchDbChangeChanges of SearchDbs
is_currentboolIf request specified max_chunk_size (or this limit was enforced if stateless watch has been chosen), then responses with “full changeset” will be divided into chunks. Client should keep receiving messages and, once is_current has value true, combine this recent message with all previous ones where is_current is false. If this is the first is_current in a whole watch stream, then it means that client should have, at this moment, contain snapshot of the current situation (or more accurately, snapshot of situation at the moment of request). All SearchDbs will be of type Added/Current (depending on watch_type specified in the request). Further responses will be incremental - however messages may still be chunked and is_current logic still applies. is_current is always true for stateful watch if max_chunk_size was left to 0.
page_token_changeWatchSearchDbsResponse.PageTokenChangeWhen present, PageTokens used for page navigation should be updated. Present only if is_current is true (last chunk).
resume_tokenstringToken that can be used if current connection drops and client needs to reconnect. Populated only for stateless watch type. Present only if is_current is true (last chunk).
snapshot_sizeint64Server may occasionally send information how many resources should client have in its state so far (response message without any changes, but with snapshot_size field specified). If client has different value than the one sent by the server, then it should be treated by a client as an error and should reconnect. If value is smaller then 0, then client should ignore this field as unpopulated. This field should be checked only for stateless watch. In stateful those kind of errors are handled by the server side. Will be never sent together with is_current, is_soft_reset and is_hard_reset flags.
is_soft_resetboolIn case of internal issue server may send response message with this flag. It indicates that client should drop all changes from recent responses where is_current is false only! If last message had is_current set to true, client should do nothing and process normally. Resume token received before is still valid. This field should be checked only for stateless watch. In stateful those kind of errors are handled by the server side. Will never be sent along with is_current, is_hard_reset or snapshot_size.
is_hard_resetboolIn case of internal issue server may send response message with this flag. After receiving, client should clear whole state (drop all changes received so far) as server will send new snapshot (SearchDbs will contains changes of type Current only). Any resume tokens should be discarded as well. This field should be checked only for stateless watch. In stateful those kind of errors are handled by the server side. Will never be sent along with is_current, is_soft_reset or snapshot_size.

WatchSearchDbsResponse.PageTokenChange Message

NameTypeDescription
prev_page_tokenstring (cursor of SearchDb)New token to retrieve previous page of results.
next_page_tokenstring (cursor of SearchDb)New token to retrieve next page of results.

CreateSearchDbRequest Message

A request message of the CreateSearchDb method.

NameTypeDescription
parentstring (parent name of SearchDb)Parent name of ntt.ai.v1.SearchDb
search_dbSearchDbSearchDb resource body
response_maskCreateSearchDbRequest.ResponseMaskOptional masking applied to response object to reduce message response size.

CreateSearchDbRequest.ResponseMask Message

ResponseMask allows client to reduce response message size.

NameTypeDescription
skip_entire_response_bodyboolIf this flag has value true, then response will contain just empty resource without any fields populated.
body_mask.google.protobuf.FieldMaskIf this field is populated, then resource in response will contain only specific fields.

UpdateSearchDbRequest Message

A request message of the UpdateSearchDb method.

NameTypeDescription
search_dbSearchDbSearchDb resource body
update_mask.google.protobuf.FieldMaskFieldMask applied to request - change will be applied only for fields in the mask
casUpdateSearchDbRequest.CASConditional update applied to request if update should be executed only for specific resource state. If this field is populated, then server will fetch existing resource, compare with the one stored in the cas field (after applying field mask) and proceed with update only and only if they match. Otherwise RPC error Aborted will be returned.
allow_missingboolIf set to true, and the resource is not found, a new resource will be created. In this situation, ‘field_mask’ is ignored. https://google.aip.dev/134#create-or-update
response_maskUpdateSearchDbRequest.ResponseMaskreduce message response size.

UpdateSearchDbRequest.CAS Message

CAS - Compare and Swap. This object is used if user wants to make update conditional based upon previous resource version.

NameTypeDescription
conditional_stateSearchDbConditional desired state of a resource before update.
field_mask.google.protobuf.FieldMaskField paths from conditional state of resource server should check and compare.

UpdateSearchDbRequest.ResponseMask Message

ResponseMask allows client to reduce response message size.

NameTypeDescription
skip_entire_response_bodyboolIf this flag has value true, then response will contain just empty resource without any fields populated. Field body_mask is ignored if set.
updated_fields_onlyboolInclude all fields that were actually updated during processing. Note this may be larger than update mask if some fields were computed additionally. Name is added as well.
body_mask.google.protobuf.FieldMaskIf this field is populated, then resource in response will contain only specific fields. If skip_entire_response_body is true, this field is ignored.

DeleteSearchDbRequest Message

A request message of the DeleteSearchDb method.

NameTypeDescription
namestring (name of SearchDb)Name of ntt.ai.v1.SearchDb
allow_missingboolIf set to true, and the resource is not found, method will be successful and will not return NotFound error.

SearchIndex Resource

SearchIndex Resource represents set of related documents focused on concrete topic. Such an index can be used with Chat service (RAG). Index fields in search database are:

  • ID (contains chunk index with document file name, or url/title)
  • DocumentChecksum (string, maps one to 1 with Document resource).
  • Parent ID (applicable for some documents, like markdown file split by titles).
  • Content (text content after chunking)
  • Title (string, if applicable, depending on a file)
  • URL (string, if applicable, depending on document type)
  • Filepath (string, if applicable, depending on document type)

Name patterns:

  • searchDbs/{search_db}/searchIndices/{search_index}
  • projects/{project}/searchDbs/{search_db}/searchIndices/{search_index}

Parent resources:

This section covers the methods and messages to interact with SearchIndex resource.

SearchIndex Methods

Here is the list of SearchIndex resource methods:

GetSearchIndex Method

GetSearchIndex

rpc GetSearchIndex(GetSearchIndexRequest) returns (SearchIndex)

with the following messages:

Required Permissions:

  • services/ai.edgelq.com/permissions/searchIndices.get

The equivalent REST API is:

GET /v1/{name=searchDbs/*/searchIndices/*} 
GET /v1/{name=projects/*/searchDbs/*/searchIndices/*} 

BatchGetSearchIndices Method

BatchGetSearchIndices

rpc BatchGetSearchIndices(BatchGetSearchIndicesRequest) returns (BatchGetSearchIndicesResponse)

with the following messages:

Required Permissions:

  • services/ai.edgelq.com/permissions/searchIndices.batchGet

The equivalent REST API is:

GET /v1/searchIndices:batchGet 

ListSearchIndices Method

ListSearchIndices

rpc ListSearchIndices(ListSearchIndicesRequest) returns (ListSearchIndicesResponse)

with the following messages:

Required Permissions:

  • services/ai.edgelq.com/permissions/searchIndices.list

The equivalent REST API is:

GET /v1/{parent=searchDbs/*}/searchIndices 
GET /v1/{parent=projects/*/searchDbs/*}/searchIndices 

WatchSearchIndex Method

WatchSearchIndex

rpc WatchSearchIndex(WatchSearchIndexRequest) returns (WatchSearchIndexResponse)

with the following messages:

Required Permissions:

  • services/ai.edgelq.com/permissions/searchIndices.watch

The equivalent REST API is:

POST /v1/{name=searchDbs/*/searchIndices/*}:watch 
POST /v1/{name=projects/*/searchDbs/*/searchIndices/*}:watch 

WatchSearchIndices Method

WatchSearchIndices

rpc WatchSearchIndices(WatchSearchIndicesRequest) returns (WatchSearchIndicesResponse)

with the following messages:

Required Permissions:

  • services/ai.edgelq.com/permissions/searchIndices.watch

The equivalent REST API is:

POST /v1/{parent=searchDbs/*}/searchIndices:watch 
POST /v1/{parent=projects/*/searchDbs/*}/searchIndices:watch 

CreateSearchIndex Method

CreateSearchIndex

rpc CreateSearchIndex(CreateSearchIndexRequest) returns (SearchIndex)

with the following messages:

Required Permissions:

  • services/ai.edgelq.com/permissions/searchIndices.create

The equivalent REST API is:

POST /v1/{parent=searchDbs/*}/searchIndices (BODY: search_index)
POST /v1/{parent=projects/*/searchDbs/*}/searchIndices 

UpdateSearchIndex Method

UpdateSearchIndex

rpc UpdateSearchIndex(UpdateSearchIndexRequest) returns (SearchIndex)

with the following messages:

Required Permissions:

  • services/ai.edgelq.com/permissions/searchIndices.update

The equivalent REST API is:

PUT /v1/{search_index.name=searchDbs/*/searchIndices/*} (BODY: search_index)
PUT /v1/{search_index.name=projects/*/searchDbs/*/searchIndices/*} 

DeleteSearchIndex Method

DeleteSearchIndex

rpc DeleteSearchIndex(DeleteSearchIndexRequest) returns (Empty)

with the following messages:

Required Permissions:

  • services/ai.edgelq.com/permissions/searchIndices.delete

The equivalent REST API is:

DELETE /v1/{name=searchDbs/*/searchIndices/*} 
DELETE /v1/{name=projects/*/searchDbs/*/searchIndices/*} 

SearchIndex Messages

Here is the list of SearchIndex resource messages:

SearchIndex Message

NameTypeDescription
namestring (name of SearchIndex)Name of SearchIndex When creating a new instance, this field is optional and if not provided, it will be generated automatically. Last ID segment must conform to the following regex: [a-z][a-z0-9\-]{0,28}[a-z0-9]
metadataMetaMetadata is an object with information like create, update and delete time (for async deleted resources), has user labels/annotations, sharding information, multi-region syncing information and may have non-schema owners (useful for taking ownership of resources belonging to lower level services by higher ones).
index_namestring
display_namestringHuman-readable display name for this search index
descriptionstringDescription of what content this index contains
tokens_per_chunkint32
overlap_tokensint32

GetSearchIndexRequest Message

A request message of the GetSearchIndex method.

NameTypeDescription
namestring (name of SearchIndex)Name of ntt.ai.v1.SearchIndex
field_mask.google.protobuf.FieldMaskA list of extra fields to be obtained for each response item on top of fields defined by request field view
viewViewView defines list of standard response fields present in response items. Additional fields can be amended by request field field_mask

BatchGetSearchIndicesRequest Message

A request message of the BatchGetSearchIndices method.

NameTypeDescription
namesrepeated string (name of SearchIndex)Names of SearchIndices
field_mask.google.protobuf.FieldMaskA list of extra fields to be obtained for each response item on top of fields defined by request field view
viewViewView defines list of standard response fields present in response items. Additional fields can be amended by request field field_mask

BatchGetSearchIndicesResponse Message

A response message of the BatchGetSearchIndices method.

NameTypeDescription
search_indicesrepeated SearchIndexfound SearchIndices
missingrepeated string (name of SearchIndex)list of not found SearchIndices

ListSearchIndicesRequest Message

A request message of the ListSearchIndices method.

NameTypeDescription
parentstring (parent name of SearchIndex)Parent name of ntt.ai.v1.SearchIndex
page_sizeint32Requested page size. Server may return fewer SearchIndices than requested. If unspecified, server will pick an appropriate default.
page_tokenstring (cursor of SearchIndex)A token identifying a page of results the server should return. Typically, this is the value of ListSearchIndicesResponse.next_page_token.
order_bystring (orderBy of SearchIndex)Order By - https://cloud.google.com/apis/design/design_patterns#list_pagination list of field path with order directive, either ‘asc’ or ‘desc’. If direction is not provided, ‘asc’ is assumed. e.g. “state.nested_field asc, state.something.else desc, theme”
filterstring (filter of SearchIndex)Filter - filter results by field criteria. Simplified SQL-like syntax with following operators: <=, >=, =, !=, <, >, LIKE, CONTAINS (aliases CONTAIN, HAS, HAVE), IN, IS [NOT] NULL
field_mask.google.protobuf.FieldMaskA list of extra fields to be obtained for each response item on top of fields defined by request field view
viewViewView defines list of standard response fields present in response items. Additional fields can be amended by request field field_mask
include_paging_infoboolIndicates if list response should contain total count and offset (fields current_offset and total_results_count).

ListSearchIndicesResponse Message

A response message of the ListSearchIndices method.

NameTypeDescription
search_indicesrepeated SearchIndexThe list of SearchIndices
prev_page_tokenstring (cursor of SearchIndex)A token to retrieve previous page of results. Pass this value in the ListSearchIndicesRequest.page_token.
next_page_tokenstring (cursor of SearchIndex)A token to retrieve next page of results. Pass this value in the ListSearchIndicesRequest.page_token.
current_offsetint32Current offset from the first page or 0 if no page tokens were given, paging info was not requested or there was an error while trying to get it). Page index can be computed from offset and limit provided in a request.
total_results_countint32Number of total SearchIndices across all pages or 0, if there are no items, paging info was not requested or there was an error while trying to get it.

WatchSearchIndexRequest Message

A request message of the WatchSearchIndex method.

NameTypeDescription
namestring (name of SearchIndex)Name of ntt.ai.v1.SearchIndex
field_mask.google.protobuf.FieldMaskA list of extra fields to be obtained for each response item on top of fields defined by request field view
viewViewView defines list of standard response fields present in response items. Additional fields can be amended by request field field_mask

WatchSearchIndexResponse Message

A response message of the WatchSearchIndex method.

NameTypeDescription
changeSearchIndexChange

WatchSearchIndicesRequest Message

A request message of the WatchSearchIndices method.

NameTypeDescription
typeWatchTypeType of a watch. Identifies how server stream data to a client, which fields in a request are allowed and which fields in response are relevant.
parentstring (parent name of SearchIndex)Parent name of ntt.ai.v1.SearchIndex
page_sizeint32Requested page size. Server may return fewer SearchIndices than requested. If unspecified, server will pick an appropriate default. Can be populated only for stateful watch type.
page_tokenstring (cursor of SearchIndex)A token identifying a page of results the server should return. Can be populated only for stateful watch type.
order_bystring (orderBy of SearchIndex)Order By - https://cloud.google.com/apis/design/design_patterns#list_pagination Can be populated only for stateful watch type.
resume_tokenstringA token identifying watch resume point from previous session. Can be populated only for stateless watch type.
starting_time.google.protobuf.TimestampPoint in the time from which we want to start getting updates. This field can be populated only for stateless watch type and if resume token is not known yet. If specified, initial snapshot will NOT be provided. It is assumed client can obtain it using separate means. Watch responses will contain resume tokens which should be used to resume broken connection.
filterstring (filter of SearchIndex)Filter - filter results by field criteria. Simplified SQL-like syntax with following operators: <=, >=, =, !=, <, >, LIKE, CONTAINS (aliases CONTAIN, HAS, HAVE), IN, IS [NOT] NULL
field_mask.google.protobuf.FieldMaskA list of extra fields to be obtained for each response item on top of fields defined by request field view Changes to SearchIndex that don’t affect any of masked fields won’t be sent back.
viewViewView defines list of standard response fields present in response items. Additional fields can be amended by request field field_mask Changes to SearchIndex that don’t affect any of masked fields won’t be sent back.
max_chunk_sizeint32Maximum amount of changes in each response message. Query result response is divided on the server side into chunks with size of a specified amount to limit memory footprint of each message. Responses will hold information whether more elements will continue for the actual change. If unspecified, server will pick an appropriate default.

WatchSearchIndicesResponse Message

A response message of the WatchSearchIndices method.

NameTypeDescription
search_index_changesrepeated SearchIndexChangeChanges of SearchIndices
is_currentboolIf request specified max_chunk_size (or this limit was enforced if stateless watch has been chosen), then responses with “full changeset” will be divided into chunks. Client should keep receiving messages and, once is_current has value true, combine this recent message with all previous ones where is_current is false. If this is the first is_current in a whole watch stream, then it means that client should have, at this moment, contain snapshot of the current situation (or more accurately, snapshot of situation at the moment of request). All SearchIndices will be of type Added/Current (depending on watch_type specified in the request). Further responses will be incremental - however messages may still be chunked and is_current logic still applies. is_current is always true for stateful watch if max_chunk_size was left to 0.
page_token_changeWatchSearchIndicesResponse.PageTokenChangeWhen present, PageTokens used for page navigation should be updated. Present only if is_current is true (last chunk).
resume_tokenstringToken that can be used if current connection drops and client needs to reconnect. Populated only for stateless watch type. Present only if is_current is true (last chunk).
snapshot_sizeint64Server may occasionally send information how many resources should client have in its state so far (response message without any changes, but with snapshot_size field specified). If client has different value than the one sent by the server, then it should be treated by a client as an error and should reconnect. If value is smaller then 0, then client should ignore this field as unpopulated. This field should be checked only for stateless watch. In stateful those kind of errors are handled by the server side. Will be never sent together with is_current, is_soft_reset and is_hard_reset flags.
is_soft_resetboolIn case of internal issue server may send response message with this flag. It indicates that client should drop all changes from recent responses where is_current is false only! If last message had is_current set to true, client should do nothing and process normally. Resume token received before is still valid. This field should be checked only for stateless watch. In stateful those kind of errors are handled by the server side. Will never be sent along with is_current, is_hard_reset or snapshot_size.
is_hard_resetboolIn case of internal issue server may send response message with this flag. After receiving, client should clear whole state (drop all changes received so far) as server will send new snapshot (SearchIndices will contains changes of type Current only). Any resume tokens should be discarded as well. This field should be checked only for stateless watch. In stateful those kind of errors are handled by the server side. Will never be sent along with is_current, is_soft_reset or snapshot_size.

WatchSearchIndicesResponse.PageTokenChange Message

NameTypeDescription
prev_page_tokenstring (cursor of SearchIndex)New token to retrieve previous page of results.
next_page_tokenstring (cursor of SearchIndex)New token to retrieve next page of results.

CreateSearchIndexRequest Message

A request message of the CreateSearchIndex method.

NameTypeDescription
parentstring (parent name of SearchIndex)Parent name of ntt.ai.v1.SearchIndex
search_indexSearchIndexSearchIndex resource body
response_maskCreateSearchIndexRequest.ResponseMaskOptional masking applied to response object to reduce message response size.

CreateSearchIndexRequest.ResponseMask Message

ResponseMask allows client to reduce response message size.

NameTypeDescription
skip_entire_response_bodyboolIf this flag has value true, then response will contain just empty resource without any fields populated.
body_mask.google.protobuf.FieldMaskIf this field is populated, then resource in response will contain only specific fields.

UpdateSearchIndexRequest Message

A request message of the UpdateSearchIndex method.

NameTypeDescription
search_indexSearchIndexSearchIndex resource body
update_mask.google.protobuf.FieldMaskFieldMask applied to request - change will be applied only for fields in the mask
casUpdateSearchIndexRequest.CASConditional update applied to request if update should be executed only for specific resource state. If this field is populated, then server will fetch existing resource, compare with the one stored in the cas field (after applying field mask) and proceed with update only and only if they match. Otherwise RPC error Aborted will be returned.
allow_missingboolIf set to true, and the resource is not found, a new resource will be created. In this situation, ‘field_mask’ is ignored. https://google.aip.dev/134#create-or-update
response_maskUpdateSearchIndexRequest.ResponseMaskreduce message response size.

UpdateSearchIndexRequest.CAS Message

CAS - Compare and Swap. This object is used if user wants to make update conditional based upon previous resource version.

NameTypeDescription
conditional_stateSearchIndexConditional desired state of a resource before update.
field_mask.google.protobuf.FieldMaskField paths from conditional state of resource server should check and compare.

UpdateSearchIndexRequest.ResponseMask Message

ResponseMask allows client to reduce response message size.

NameTypeDescription
skip_entire_response_bodyboolIf this flag has value true, then response will contain just empty resource without any fields populated. Field body_mask is ignored if set.
updated_fields_onlyboolInclude all fields that were actually updated during processing. Note this may be larger than update mask if some fields were computed additionally. Name is added as well.
body_mask.google.protobuf.FieldMaskIf this field is populated, then resource in response will contain only specific fields. If skip_entire_response_body is true, this field is ignored.

DeleteSearchIndexRequest Message

A request message of the DeleteSearchIndex method.

NameTypeDescription
namestring (name of SearchIndex)Name of ntt.ai.v1.SearchIndex
allow_missingboolIf set to true, and the resource is not found, method will be successful and will not return NotFound error.

AI Service Shared Methods and Messages

AI Service Shared Methods

Here is the list of AI service shared methods:

Completion Method

Completion

rpc Completion(CompletionRequest) returns (CompletionResponse)

CreateResponse Method

CreateResponse

rpc CreateResponse(CreateResponseRequest) returns (CreateResponseResult)

ChatStream Method

ChatStream

rpc ChatStream(ChatStreamRequest) returns (ChatStreamResponse)

ExecuteTools Method

ExecuteTools

rpc ExecuteTools(ExecuteToolsRequest) returns (ExecuteToolsResponse)

AI Service Shared Messages

Here is the list of AI service shared messages:

AnthropicConfig Message

NameTypeDescription
thinkingThinkingConfigExtended thinking configuration
beta_featuresrepeated stringBeta features to enable (e.g., [“prompt-caching-2024-07-31”, “pdfs-2024-09-25”])
disable_input_token_cacheboolWhen true, disables prompt caching

AudioContent Message

NameTypeDescription
urlstring
databytes
mime_typestring

AzureConfig Message

NameTypeDescription
searchAzureSearchConfig
parallel_tool_callsbool
max_completion_tokensint32
reasoning_effortstring

AzureSearchConfig Message

NameTypeDescription
endpointstring
indexstring
api_keystring
enable_semanticbool

BlockEnd Message

Block end signal - indicates a content or thinking block has completed

NameTypeDescription
channelContentChannel
signaturestring

CancelOauth Message

Allows the client to cancel an in-flight OAuth attempt.

NameTypeDescription
login_idstringlogin_id returned in the Redirect event to correlate cancellation.

CapabilityTemplateChange Message

CapabilityTemplateChange is used by Watch notifications Responses to describe change of single CapabilityTemplate One of Added, Modified, Removed

NameTypeDescription
addedCapabilityTemplateChange.AddedAdded is returned when watched document is added, either created or enters Query view
modifiedCapabilityTemplateChange.ModifiedModified is returned when watched document is modified
currentCapabilityTemplateChange.CurrentCurrent is returned in stateless watch when document enters query view or is modified within.
removedCapabilityTemplateChange.RemovedRemoved is returned when CapabilityTemplate is deleted or leaves Query view

CapabilityTemplateChange.Added Message

CapabilityTemplate has been added to query view

NameTypeDescription
capability_templateCapabilityTemplate
view_indexint32Integer describing index of added CapabilityTemplate in resulting query view.

CapabilityTemplateChange.Current Message

CapabilityTemplate has been added or modified in a query view. Version used for stateless watching

NameTypeDescription
capability_templateCapabilityTemplate

CapabilityTemplateChange.Modified Message

CapabilityTemplate changed some of it’s fields - contains either full document or masked change

NameTypeDescription
namestring (name of CapabilityTemplate)Name of modified CapabilityTemplate
capability_templateCapabilityTemplateNew version of CapabilityTemplate or masked difference, depending on mask_changes instrumentation of issued [WatchCapabilityTemplateRequest] or [WatchCapabilityTemplatesRequest]
field_mask.google.protobuf.FieldMaskUsed when mask_changes is set, contains field paths of modified properties.
previous_view_indexint32Previous view index specifies previous position of modified CapabilityTemplate. When modification doesn’t affect sorted order, value will remain identical to [view_index].
view_indexint32Integer specifying CapabilityTemplate new index in resulting query view.

CapabilityTemplateChange.Removed Message

Removed is returned when CapabilityTemplate is deleted or leaves Query view

NameTypeDescription
namestring (name of CapabilityTemplate)
view_indexint32Integer specifying removed CapabilityTemplate index. Not populated in stateless watch type.

CharacterRange Message

Character range in source document

NameTypeDescription
startint64
endint64

ChatInput Message

Full-transcript input per turn with optional overrides

NameTypeDescription
messagesrepeated Message
overridesInputOverrides
resumeResumeConfigStateful only: resume/edit operation. Incompatible with messages.

ChatModelChange Message

ChatModelChange is used by Watch notifications Responses to describe change of single ChatModel One of Added, Modified, Removed

NameTypeDescription
addedChatModelChange.AddedAdded is returned when watched document is added, either created or enters Query view
modifiedChatModelChange.ModifiedModified is returned when watched document is modified
currentChatModelChange.CurrentCurrent is returned in stateless watch when document enters query view or is modified within.
removedChatModelChange.RemovedRemoved is returned when ChatModel is deleted or leaves Query view

ChatModelChange.Added Message

ChatModel has been added to query view

NameTypeDescription
chat_modelChatModel
view_indexint32Integer describing index of added ChatModel in resulting query view.

ChatModelChange.Current Message

ChatModel has been added or modified in a query view. Version used for stateless watching

NameTypeDescription
chat_modelChatModel

ChatModelChange.Modified Message

ChatModel changed some of it’s fields - contains either full document or masked change

NameTypeDescription
namestring (name of ChatModel)Name of modified ChatModel
chat_modelChatModelNew version of ChatModel or masked difference, depending on mask_changes instrumentation of issued [WatchChatModelRequest] or [WatchChatModelsRequest]
field_mask.google.protobuf.FieldMaskUsed when mask_changes is set, contains field paths of modified properties.
previous_view_indexint32Previous view index specifies previous position of modified ChatModel. When modification doesn’t affect sorted order, value will remain identical to [view_index].
view_indexint32Integer specifying ChatModel new index in resulting query view.

ChatModelChange.Removed Message

Removed is returned when ChatModel is deleted or leaves Query view

NameTypeDescription
namestring (name of ChatModel)
view_indexint32Integer specifying removed ChatModel index. Not populated in stateless watch type.

ChatParameters Message

Provider-specific parameters

NameTypeDescription
max_tokensint32Maximum tokens to generate
temperaturefloatTemperature (0.0 - 2.0)
top_pfloatTop-p nucleus sampling
top_kint32Top-k sampling (Anthropic, Gemini)
presence_penaltyfloatPresence penalty (OpenAI)
frequency_penaltyfloatFrequency penalty (OpenAI)
seedint64
stop_sequencesrepeated string
response_formatResponseFormatResponse format
logprobsboolWhether to return log probabilities
top_logprobsint32Number of most likely tokens to return

ChatStreamRequest Message

Client → Server messages for ChatStream

NameTypeDescription
initInitializeSession
inputChatInput

ChatStreamResponse Message

Server → Client messages for ChatStream

NameTypeDescription
session_initializedSessionInitializedSession initialization complete
response_startedResponseStartedReuse all existing event types from CreateResponseResult
content_deltaContentDelta
content_doneContentDone
thinking_deltaThinkingDelta
thinking_doneThinkingDone
tool_callsToolCalls
response_completeResponseComplete
errorError
citation_deltaCitationDelta

Citation Message

Citation - reference to source material (provider-agnostic)

NameTypeDescription
start_indexint64Text reference in AI response (which part is cited)
end_indexint64
textstring
sourceCitationSourceSource information

CitationDelta Message

NameTypeDescription
citationCitationCitation from common.proto

CitationSource Message

Citation source information

NameTypeDescription
titlestringCore fields (all providers)
idstring
quoted_textstring
char_rangeCharacterRange
pagePageReference
urlURLReference
metadatamap<string, string>Generic metadata (extensible for any provider-specific data)

ClientToolSource Message

Tool source types (shared across chat and conversation persistence) Client tool - executed by client locally

NameTypeDescription
nonenonenone

CompletionRequest Message

A request message of the Completion method.

NameTypeDescription
initCompletionRequest.Init
queryMsg

CompletionRequest.Init Message

NameTypeDescription
chat_modelstring (name of ChatModel)
search_indexstring (name of SearchIndex)
historyrepeated Msg

CompletionResponse Message

A response message of the Completion method.

NameTypeDescription
responseMsg
completebool

ConnectorAuthError Message

Per-connector auth failure for the current user in a single API call.

NameTypeDescription
connectorstringFull connector resource name, e.g. “connectors/projects/…/connectorId”
codeConnectorAuthErrorCode

ConnectorChange Message

ConnectorChange is used by Watch notifications Responses to describe change of single Connector One of Added, Modified, Removed

NameTypeDescription
addedConnectorChange.AddedAdded is returned when watched document is added, either created or enters Query view
modifiedConnectorChange.ModifiedModified is returned when watched document is modified
currentConnectorChange.CurrentCurrent is returned in stateless watch when document enters query view or is modified within.
removedConnectorChange.RemovedRemoved is returned when Connector is deleted or leaves Query view

ConnectorChange.Added Message

Connector has been added to query view

NameTypeDescription
connectorConnector
view_indexint32Integer describing index of added Connector in resulting query view.

ConnectorChange.Current Message

Connector has been added or modified in a query view. Version used for stateless watching

NameTypeDescription
connectorConnector

ConnectorChange.Modified Message

Connector changed some of it’s fields - contains either full document or masked change

NameTypeDescription
namestring (name of Connector)Name of modified Connector
connectorConnectorNew version of Connector or masked difference, depending on mask_changes instrumentation of issued [WatchConnectorRequest] or [WatchConnectorsRequest]
field_mask.google.protobuf.FieldMaskUsed when mask_changes is set, contains field paths of modified properties.
previous_view_indexint32Previous view index specifies previous position of modified Connector. When modification doesn’t affect sorted order, value will remain identical to [view_index].
view_indexint32Integer specifying Connector new index in resulting query view.

ConnectorChange.Removed Message

Removed is returned when Connector is deleted or leaves Query view

NameTypeDescription
namestring (name of Connector)
view_indexint32Integer specifying removed Connector index. Not populated in stateless watch type.

ConnectorToolSource Message

Connector tool - executed via MCP/other connector

NameTypeDescription
connector_namestring (name of Connector)

ConnectorUserTokenChange Message

ConnectorUserTokenChange is used by Watch notifications Responses to describe change of single ConnectorUserToken One of Added, Modified, Removed

NameTypeDescription
addedConnectorUserTokenChange.AddedAdded is returned when watched document is added, either created or enters Query view
modifiedConnectorUserTokenChange.ModifiedModified is returned when watched document is modified
currentConnectorUserTokenChange.CurrentCurrent is returned in stateless watch when document enters query view or is modified within.
removedConnectorUserTokenChange.RemovedRemoved is returned when ConnectorUserToken is deleted or leaves Query view

ConnectorUserTokenChange.Added Message

ConnectorUserToken has been added to query view

NameTypeDescription
connector_user_tokenConnectorUserToken
view_indexint32Integer describing index of added ConnectorUserToken in resulting query view.

ConnectorUserTokenChange.Current Message

ConnectorUserToken has been added or modified in a query view. Version used for stateless watching

NameTypeDescription
connector_user_tokenConnectorUserToken

ConnectorUserTokenChange.Modified Message

ConnectorUserToken changed some of it’s fields - contains either full document or masked change

NameTypeDescription
namestring (name of ConnectorUserToken)Name of modified ConnectorUserToken
connector_user_tokenConnectorUserTokenNew version of ConnectorUserToken or masked difference, depending on mask_changes instrumentation of issued [WatchConnectorUserTokenRequest] or [WatchConnectorUserTokensRequest]
field_mask.google.protobuf.FieldMaskUsed when mask_changes is set, contains field paths of modified properties.
previous_view_indexint32Previous view index specifies previous position of modified ConnectorUserToken. When modification doesn’t affect sorted order, value will remain identical to [view_index].
view_indexint32Integer specifying ConnectorUserToken new index in resulting query view.

ConnectorUserTokenChange.Removed Message

Removed is returned when ConnectorUserToken is deleted or leaves Query view

NameTypeDescription
namestring (name of ConnectorUserToken)
view_indexint32Integer specifying removed ConnectorUserToken index. Not populated in stateless watch type.

ConnectorUserTokenSecret Message

Secret payload maintained by the server - not returned to clients.

NameTypeDescription
ciphertextbytesCiphertext returned from the configured encrypter backend.
encryption_key_namestringName of the crypto key used to encrypt/decrypt the payload.
payload_versionstringVersion marker for the serialized payload stored in ciphertext.
updated_at.google.protobuf.TimestampTimestamp when the secret payload was last updated.

ConnectorsList Message

List of connectors for direct specification

NameTypeDescription
connectorrepeated string (name of Connector)

ContentDelta Message

NameTypeDescription
textstring

ContentDone Message

NameTypeDescription
textstring

ContentPart Message

Multimodal content part

NameTypeDescription
textTextContent
imageImageContent
audioAudioContent
fileFileContent
tool_callToolCall
tool_resultToolResponse
thinkingThinkingContent

ConversationChange Message

ConversationChange is used by Watch notifications Responses to describe change of single Conversation One of Added, Modified, Removed

NameTypeDescription
addedConversationChange.AddedAdded is returned when watched document is added, either created or enters Query view
modifiedConversationChange.ModifiedModified is returned when watched document is modified
currentConversationChange.CurrentCurrent is returned in stateless watch when document enters query view or is modified within.
removedConversationChange.RemovedRemoved is returned when Conversation is deleted or leaves Query view

ConversationChange.Added Message

Conversation has been added to query view

NameTypeDescription
conversationConversation
view_indexint32Integer describing index of added Conversation in resulting query view.

ConversationChange.Current Message

Conversation has been added or modified in a query view. Version used for stateless watching

NameTypeDescription
conversationConversation

ConversationChange.Modified Message

Conversation changed some of it’s fields - contains either full document or masked change

NameTypeDescription
namestring (name of Conversation)Name of modified Conversation
conversationConversationNew version of Conversation or masked difference, depending on mask_changes instrumentation of issued [WatchConversationRequest] or [WatchConversationsRequest]
field_mask.google.protobuf.FieldMaskUsed when mask_changes is set, contains field paths of modified properties.
previous_view_indexint32Previous view index specifies previous position of modified Conversation. When modification doesn’t affect sorted order, value will remain identical to [view_index].
view_indexint32Integer specifying Conversation new index in resulting query view.

ConversationChange.Removed Message

Removed is returned when Conversation is deleted or leaves Query view

NameTypeDescription
namestring (name of Conversation)
view_indexint32Integer specifying removed Conversation index. Not populated in stateless watch type.

ConversationFeedbackChange Message

ConversationFeedbackChange is used by Watch notifications Responses to describe change of single ConversationFeedback One of Added, Modified, Removed

NameTypeDescription
addedConversationFeedbackChange.AddedAdded is returned when watched document is added, either created or enters Query view
modifiedConversationFeedbackChange.ModifiedModified is returned when watched document is modified
currentConversationFeedbackChange.CurrentCurrent is returned in stateless watch when document enters query view or is modified within.
removedConversationFeedbackChange.RemovedRemoved is returned when ConversationFeedback is deleted or leaves Query view

ConversationFeedbackChange.Added Message

ConversationFeedback has been added to query view

NameTypeDescription
conversation_feedbackConversationFeedback
view_indexint32Integer describing index of added ConversationFeedback in resulting query view.

ConversationFeedbackChange.Current Message

ConversationFeedback has been added or modified in a query view. Version used for stateless watching

NameTypeDescription
conversation_feedbackConversationFeedback

ConversationFeedbackChange.Modified Message

ConversationFeedback changed some of it’s fields - contains either full document or masked change

NameTypeDescription
namestring (name of ConversationFeedback)Name of modified ConversationFeedback
conversation_feedbackConversationFeedbackNew version of ConversationFeedback or masked difference, depending on mask_changes instrumentation of issued [WatchConversationFeedbackRequest] or [WatchConversationFeedbacksRequest]
field_mask.google.protobuf.FieldMaskUsed when mask_changes is set, contains field paths of modified properties.
previous_view_indexint32Previous view index specifies previous position of modified ConversationFeedback. When modification doesn’t affect sorted order, value will remain identical to [view_index].
view_indexint32Integer specifying ConversationFeedback new index in resulting query view.

ConversationFeedbackChange.Removed Message

Removed is returned when ConversationFeedback is deleted or leaves Query view

NameTypeDescription
namestring (name of ConversationFeedback)
view_indexint32Integer specifying removed ConversationFeedback index. Not populated in stateless watch type.

ConversationTurn Message

Represents one CreateResponse API call

NameTypeDescription
turn_numberint32Sequential turn number (0-indexed)
timestamp.google.protobuf.TimestampWhen this turn started
messagesrepeated MessageMessages added in THIS turn only (not full history) Typically: [user_msg, assistant_msg] or [tool_result_msg, assistant_msg]
configTurnConfigConfiguration used for this specific API call
usageTokenUsageToken usage for this specific turn
stop_reasonStopReasonHow this turn ended
duration.google.protobuf.DurationDuration of the API call
available_tools_by_sourcerepeated TurnToolsBySourceGroupTools grouped by source (authoritative for resume)
replaced_turn_numberint32If this turn replaced a previous turn (from resume operation) Points to the turn number that was replaced
error_detailsstringError details if stop_reason is ERROR

CreateRequest Message

NameTypeDescription
messagesrepeated MessageThe conversation
modelstring (name of ChatModel)Model selection
client_toolsrepeated ToolDefinitionClient explicitly declares its tools
capability_templatestring (name of CapabilityTemplate)Option 1: Use a pre-configured capability template
connectorsConnectorsListOption 2: Directly specify connectors
max_tokensint32Standard LLM params
temperaturefloat
conversation_namestring (name of Conversation)Optional: reference to existing conversation
parentstringScope for authorization and tracking. Can be project, organization, or empty. Format: “projects/{project}”, “organizations/{org}”, or ""
reasoning_levelReasoningLevelRequested reasoning level (optional, capped by template max)
disable_input_token_cacheboolOverride to disable Anthropic prompt caching for this request
prompt_variablesmap<string, string>Optional prompt variables passed by the client for template rendering Used by capability templates’ system_prompt_append when variables use request_key source Server applies automatic sanitization: - Max 8KB per value, 64KB total - Control characters stripped (except \n and \t) - Values are treated as untrusted user input
resume_configResumeConfigResume configuration for editing conversation history When set, resumes conversation from a specific turn Requires conversation_name to be set Incompatible with direct messages array
skip_tool_discoveryboolWhen true, skips server-side tool discovery from connectors and templates. The capability template is still loaded for system prompt, model config, reasoning settings, etc. — only tool discovery is skipped. Useful for one-shot request/response flows that don’t need tool calls.
response_formatResponseFormatResponse format constraint (e.g., JSON output)

CreateResponseRequest Message

Client → Server messages

NameTypeDescription
create_requestCreateRequest

CreateResponseResult Message

Server → Client messages

NameTypeDescription
response_startedResponseStarted
content_deltaContentDelta
content_doneContentDone
thinking_deltaThinkingDelta
thinking_doneThinkingDone
tool_callsToolCalls
response_completeResponseComplete
errorError
citation_deltaCitationDelta

DocumentChange Message

DocumentChange is used by Watch notifications Responses to describe change of single Document One of Added, Modified, Removed

NameTypeDescription
addedDocumentChange.AddedAdded is returned when watched document is added, either created or enters Query view
modifiedDocumentChange.ModifiedModified is returned when watched document is modified
currentDocumentChange.CurrentCurrent is returned in stateless watch when document enters query view or is modified within.
removedDocumentChange.RemovedRemoved is returned when Document is deleted or leaves Query view

DocumentChange.Added Message

Document has been added to query view

NameTypeDescription
documentDocument
view_indexint32Integer describing index of added Document in resulting query view.

DocumentChange.Current Message

Document has been added or modified in a query view. Version used for stateless watching

NameTypeDescription
documentDocument

DocumentChange.Modified Message

Document changed some of it’s fields - contains either full document or masked change

NameTypeDescription
namestring (name of Document)Name of modified Document
documentDocumentNew version of Document or masked difference, depending on mask_changes instrumentation of issued [WatchDocumentRequest] or [WatchDocumentsRequest]
field_mask.google.protobuf.FieldMaskUsed when mask_changes is set, contains field paths of modified properties.
previous_view_indexint32Previous view index specifies previous position of modified Document. When modification doesn’t affect sorted order, value will remain identical to [view_index].
view_indexint32Integer specifying Document new index in resulting query view.

DocumentChange.Removed Message

Removed is returned when Document is deleted or leaves Query view

NameTypeDescription
namestring (name of Document)
view_indexint32Integer specifying removed Document index. Not populated in stateless watch type.

Error Message

NameTypeDescription
codestring
messagestring
connector_auth_errorsrepeated ConnectorAuthErrorConnector authentication errors that blocked this request for the current user. Empty for non-connector-related failures.

ExecuteToolsRequest Message

A request message of the ExecuteTools method.

NameTypeDescription
tool_executionsrepeated ToolExecution
client_request_idstringClient-provided request ID for idempotency and log correlation
parentstringScope for authorization and tracking. Can be project, organization, or empty. Format: “projects/{project}”, “organizations/{org}”, or ""

ExecuteToolsResponse Message

A response message of the ExecuteTools method.

NameTypeDescription
resultsrepeated ToolExecutionResult

FileContent Message

NameTypeDescription
namestring
mime_typestring
urlstring
databytes

GeminiConfig Message

NameTypeDescription
nonenonenone

GenerationParameters Message

Grouped generation parameters

NameTypeDescription
max_tokensint32
temperaturefloat
reasoning_levelReasoningLevel
disable_input_token_cache.google.protobuf.BoolValue
response_formatResponseFormatResponse format constraint (e.g., JSON output)

ImageContent Message

NameTypeDescription
urlstring
databytes
mime_typestring

IndexingPolicy Message

NameTypeDescription
chunk_size_tokensuint32s
chunk_overlap_tokensuint32s
embedding_modelstring
chunking_strategystring

InitializeSession Message

Heavy initialization message - sent once at session start

NameTypeDescription
modelstring (name of ChatModel)Model selection
capability_templatestring (name of CapabilityTemplate)Required capability template for ChatStream (connectors not supported here)
client_toolsrepeated ToolDefinitionOptional: Client declared tools
parametersGenerationParametersDefault generation parameters
prompt_variablesmap<string, string>Default prompt variables for template rendering
conversation_namestring (name of Conversation)Optional: bind to existing conversation (stateful mode)
parentstringScope for authorization and tracking. Can be project, organization, or empty.

InputOverrides Message

Per-input overrides grouped for clarity

NameTypeDescription
parametersGenerationParameters
client_toolsrepeated ToolDefinition
prompt_variablesmap<string, string>
modelstring (name of ChatModel)

InputTokenBreakdown Message

Universal input token breakdown (all providers map here)

NameTypeDescription
fresh_inputint32
cached_inputint32
cache_write_five_minint32
cache_write_one_hourint32
audio_inputint32
tool_use_inputint32

InternalToolSource Message

Internal server tool (e.g., RAG)

NameTypeDescription
typeInternalToolSource.Type
template_namestringCapability Template name for internal tools Server knows how to extract the right config from the template

MCPConfig Message

MCP-specific configuration

NameTypeDescription
endpointstringConnection endpoint (transport determined by scheme) - stdio://command - Local process, no auth - http(s)://host/path - HTTP/HTTPS, OAuth required - sse://host/path - SSE, OAuth required
argsrepeated stringCommand arguments (only for stdio:// transport)
environmentmap<string, string>Environment variables (only for stdio:// transport)

Message Message

Message structure for conversations

NameTypeDescription
rolestring
partsrepeated ContentPart

ModelCapabilities Message

Model capabilities information

NameTypeDescription
context_windowint32
max_output_tokensint32
supports_toolsbool
supports_thinkingbool
supported_modalitiesrepeated string

ModelUsageStats Message

Per-model usage statistics

NameTypeDescription
turn_countint32
aggregated_usageTokenUsageAggregated token usage for this model (sum of all turns)

Msg Message

NameTypeDescription
contentstring
typeMsg.Type

OAuthConfig Message

OAuth configuration for a connector. This is the effective configuration used by the service, regardless of whether fields were provided statically by the user or auto-populated from discovery / DCR / CIMD.

NameTypeDescription
client_idstringPre-registered OAuth client ID (or URL for CIMD).
client_secretstringReference to secret containing client secret (for confidential clients).
authorization_endpointstringEffective authorization endpoint.
token_endpointstringEffective token endpoint.
additional_scopesrepeated stringAdditional scopes beyond what MCP server declares.
issuerstringIssuer for this configuration (from discovery or static config).
resource_urlstringResource URL used for discovery (typically the MCP protected resource origin).
resource_paramstringEffective resource parameter to send in auth/token/PAR requests.
par_endpointstringPushed Authorization Request endpoint, if available.
token_endpoint_auth_methodsrepeated stringToken endpoint authentication methods supported by this AS.
preferred_token_endpoint_auth_methodstringPreferred token endpoint auth method for this client (from CIMD or DCR), if any.
scopes_supportedrepeated stringSupported scopes advertised by the AS.
dpop_signing_algsrepeated stringSupported DPoP signing algorithms.
downstream_consent_scopesrepeated stringOptional downstream consent scopes that require a separate consent flow after the primary connector token has been obtained. These are typically provider-specific resource scopes (for example, “https://kusto.kusto.windows.net/.default") that cannot be mixed with the main connector API scopes.
auto_populatedboolTrue if this configuration was auto-populated (fully or partially) by the backend (discovery, DCR, CIMD). When false, fields are presumed user-specified.
auto_populated_atint64Unix timestamp (seconds) of last successful auto-population.
auto_sourcestringSource of auto-population (e.g., “discovery”, “discovery+dcr”, “discovery+cimd”).

OauthCompletion Message

Final completion event once the callback finishes (success, timeout, etc.).

NameTypeDescription
login_idstring
statusOauthCompletion.Status
messagestringOptional human readable message (e.g., error details).
user_emailstringPopulated on success to describe the linked user identity.
display_namestring
avatar_urlstring

OauthError Message

Error event when the backend fails to initiate the handshake.

NameTypeDescription
login_idstring
codestring
messagestring

OauthKeepAlive Message

Periodic server-side keep-alive to reassure the client the stream is active.

NameTypeDescription
nonenonenone

OauthPing Message

Lightweight keep-alive to keep the stream open through long-running logins.

NameTypeDescription
nonenonenone

OauthRedirect Message

Server response instructing the client to redirect the browser.

NameTypeDescription
login_idstringOpaque identifier correlating this login attempt.
authorization_urlstringWhere the SPA should redirect the browser to continue the flow.
expires_at_epochint64Expiration timestamp (seconds since epoch) for this login attempt.

OpenAIConfig Message

Provider-specific configurations

NameTypeDescription
parallel_tool_callsbool
max_completion_tokensint32
reasoning_effortstring

OutputTokenBreakdown Message

Universal output token breakdown (all providers map here)

NameTypeDescription
regular_outputint32
reasoning_outputint32
audio_outputint32

PageReference Message

Page reference in source document

NameTypeDescription
page_numberint32

Payload Message

Payload for data with media type

NameTypeDescription
jsonstring
databytes
media_typestring

PromptAppendTemplate Message

Templated append to the system prompt using Go template syntax ({{.var}}) The server always renders templates - clients supply variable values via CreateRequest.prompt_variables

  • Server applies automatic sanitization (8000 chars per value, 64000 chars total, control chars stripped)

Example (server variables - auto-detected): text: “User: {{.userEmail}}, Project: {{.projectName}}” mode: MODE_SERVER on_missing: PROMPT_MISSING_VAR_POLICY_ERROR

Example (client variables with optional sections): text: “Task: {{.task}}{{if .priority}}, Priority: {{.priority}}{{end}}” mode: MODE_CLIENT on_missing: PROMPT_MISSING_VAR_POLICY_SKIP_APPEND // Variables automatically detected: task, priority // Use {{if}} for optional sections instead of defaults

NameTypeDescription
textstring
modePromptVariableMode
on_missingPromptMissingVarPolicy

ProviderChatRequest Message

Provider chat request

NameTypeDescription
modelstringModel name or deployment ID
messagesrepeated MessageConversation messages
toolsrepeated ToolDefinitionAvailable tools
parametersChatParametersGeneration parameters
userstringUser identifier for abuse tracking
metadatamap<string, string>Request metadata (request ID, tracing, etc.)
openai_configOpenAIConfig
azure_configAzureConfig
anthropic_configAnthropicConfig
gemini_configGeminiConfig
reasoning_levelReasoningLevelProvider-agnostic reasoning level

ProviderContentDelta Message

Provider content delta for streaming

NameTypeDescription
textstring
channelContentChannel

ProviderDone Message

Stream completion event

NameTypeDescription
stop_reasonProviderDone.StopReason

ProviderStreamEvent Message

Provider streaming event

NameTypeDescription
deltaProviderContentDelta
usageTokenUsage
errorStreamError
doneProviderDone
tool_callsToolCalls
citationCitation
block_endBlockEnd

RAGConfig Message

RAG (Retrieval-Augmented Generation) configuration

NameTypeDescription
search_indicesrepeated string (reference to SearchIndex)Search indices available for RAG tool to search
indexing_policyIndexingPolicyIndexing configuration
retrieval_limitsRetrievalLimitsRetrieval limits
use_azure_native_ragboolWhen true and using Azure OpenAI models, use Azure’s native “On Your Data” extensions instead of tool-based RAG. When false, RAG is exposed as “internal.rag.search” tool.

ReasoningConfig Message

Reasoning configuration for AI models

NameTypeDescription
max_levelReasoningLevelMaximum allowed reasoning level for requests using this template
default_levelReasoningLevelDefault level if not specified in request

ReplacedTurnGroup Message

Group of turns replaced during a single resume operation

NameTypeDescription
replaced_at.google.protobuf.TimestampWhen this resume operation happened
resumed_from_turnint32Which turn the conversation was resumed from (0-indexed)
turnsrepeated ConversationTurnThe turns that were replaced/discarded in this operation Ordered by turn_number
had_message_editboolWhether the message was edited when resuming (applies to user or tool messages)
resume_reasonstringOptional: User comment/reason for the resume

ResponseComplete Message

NameTypeDescription
requires_tool_resultsbool
stop_reasonStopReason
usageTokenUsage
cumulative_usageTokenUsageCumulative usage across entire conversation (aggregates all turns) Only set for conversation requests, not set for non-conversation requests

ResponseFormat Message

Response format configuration

NameTypeDescription
modeResponseFormat.Mode
json_schemastringJSON schema for JSON_SCHEMA mode

ResponseStarted Message

NameTypeDescription
conversation_namestring
model_usedstring
available_toolsrepeated ToolInfo
capabilitiesModelCapabilities

ResumeConfig Message

Resume configuration for editing conversation history

NameTypeDescription
from_turnint32Resume conversation from this turn (0-indexed) The turn at from_turn and all turns after will be moved to replaced_turn_groups
replace_messageMessageOptional: Replacement message for this turn Can be role=“user” or role=“tool” depending on turn type If not set, uses the original message from that turn Must match the role of the first message in the original turn
resume_reasonstringOptional: User comment/reason for the resume operation Will be stored in ReplacedTurnGroup.resume_reason
resume_enabledboolExplicit enable flag to avoid ambiguity when clients send an empty struct If false or unset, server must treat this as not a resume request

RetrievalLimits Message

NameTypeDescription
max_documentsuint32s
max_context_tokensuint32s
min_relevance_scorefloat
require_citationsbool

SearchDbChange Message

SearchDbChange is used by Watch notifications Responses to describe change of single SearchDb One of Added, Modified, Removed

NameTypeDescription
addedSearchDbChange.AddedAdded is returned when watched document is added, either created or enters Query view
modifiedSearchDbChange.ModifiedModified is returned when watched document is modified
currentSearchDbChange.CurrentCurrent is returned in stateless watch when document enters query view or is modified within.
removedSearchDbChange.RemovedRemoved is returned when SearchDb is deleted or leaves Query view

SearchDbChange.Added Message

SearchDb has been added to query view

NameTypeDescription
search_dbSearchDb
view_indexint32Integer describing index of added SearchDb in resulting query view.

SearchDbChange.Current Message

SearchDb has been added or modified in a query view. Version used for stateless watching

NameTypeDescription
search_dbSearchDb

SearchDbChange.Modified Message

SearchDb changed some of it’s fields - contains either full document or masked change

NameTypeDescription
namestring (name of SearchDb)Name of modified SearchDb
search_dbSearchDbNew version of SearchDb or masked difference, depending on mask_changes instrumentation of issued [WatchSearchDbRequest] or [WatchSearchDbsRequest]
field_mask.google.protobuf.FieldMaskUsed when mask_changes is set, contains field paths of modified properties.
previous_view_indexint32Previous view index specifies previous position of modified SearchDb. When modification doesn’t affect sorted order, value will remain identical to [view_index].
view_indexint32Integer specifying SearchDb new index in resulting query view.

SearchDbChange.Removed Message

Removed is returned when SearchDb is deleted or leaves Query view

NameTypeDescription
namestring (name of SearchDb)
view_indexint32Integer specifying removed SearchDb index. Not populated in stateless watch type.

SearchIndexChange Message

SearchIndexChange is used by Watch notifications Responses to describe change of single SearchIndex One of Added, Modified, Removed

NameTypeDescription
addedSearchIndexChange.AddedAdded is returned when watched document is added, either created or enters Query view
modifiedSearchIndexChange.ModifiedModified is returned when watched document is modified
currentSearchIndexChange.CurrentCurrent is returned in stateless watch when document enters query view or is modified within.
removedSearchIndexChange.RemovedRemoved is returned when SearchIndex is deleted or leaves Query view

SearchIndexChange.Added Message

SearchIndex has been added to query view

NameTypeDescription
search_indexSearchIndex
view_indexint32Integer describing index of added SearchIndex in resulting query view.

SearchIndexChange.Current Message

SearchIndex has been added or modified in a query view. Version used for stateless watching

NameTypeDescription
search_indexSearchIndex

SearchIndexChange.Modified Message

SearchIndex changed some of it’s fields - contains either full document or masked change

NameTypeDescription
namestring (name of SearchIndex)Name of modified SearchIndex
search_indexSearchIndexNew version of SearchIndex or masked difference, depending on mask_changes instrumentation of issued [WatchSearchIndexRequest] or [WatchSearchIndicesRequest]
field_mask.google.protobuf.FieldMaskUsed when mask_changes is set, contains field paths of modified properties.
previous_view_indexint32Previous view index specifies previous position of modified SearchIndex. When modification doesn’t affect sorted order, value will remain identical to [view_index].
view_indexint32Integer specifying SearchIndex new index in resulting query view.

SearchIndexChange.Removed Message

Removed is returned when SearchIndex is deleted or leaves Query view

NameTypeDescription
namestring (name of SearchIndex)
view_indexint32Integer specifying removed SearchIndex index. Not populated in stateless watch type.

SessionInitialized Message

Session initialization confirmation

NameTypeDescription
conversation_namestringConversation name (created or resumed)
model_usedstringModel that will be used for this session
capabilitiesModelCapabilitiesModel capabilities

StartOauth Message

Initial event to kick off the OAuth handshake.

NameTypeDescription
return_tostringSPA-relative path the backend should redirect back to after login.
scopesrepeated stringOptional additional scopes requested by the client.
login_hintstringOptional login hint for the upstream Authorization Server.
prompt_paramsmap<string, string>Provider-specific prompt parameters (prompt=consent, access_type=offline, etc).
parentstring (parent name of ConnectorUserToken)Parent name of ntt.ai.v1.ConnectorUserToken. When provided, this determines the project scope under which the connector user token will be stored after a successful OAuth callback.

StreamError Message

Stream error information

NameTypeDescription
typeStreamError.ErrorType
messagestring

TemplateVariable Message

Variable definition with UI guidance

NameTypeDescription
labelstringForm label (e.g., “Time range”)
help_textstringPlaceholder/help text
input_typeInputType
suggestionsrepeated stringSuggested values for SELECT or DURATION inputs
default_valuestringOptional client-side default value
resource_typestringwhen input_type == RESOURCE

TextContent Message

NameTypeDescription
textstring

ThinkingConfig Message

Thinking configuration for Anthropic models

NameTypeDescription
typeThinkingConfig.Type
budget_tokensint32Budget for thinking tokens (must be ≥1024 and < max_tokens)

ThinkingContent Message

Thinking/reasoning content with optional signature

NameTypeDescription
textstring
signaturestring

ThinkingDelta Message

NameTypeDescription
textstring

ThinkingDone Message

NameTypeDescription
textstring
signaturestring

TokenUsage Message

Token usage information

NameTypeDescription
input_tokensint32=== TOKEN TOTALS ===
output_tokensint32
total_tokensint32
input_breakdownInputTokenBreakdown=== UNIVERSAL BREAKDOWNS (all providers map here) ===
output_breakdownOutputTokenBreakdown
metadataTokenUsageMetadata
input_cost.google.type.Money=== COST BREAKDOWN (1:1 mapping to breakdown categories) === Costs are zero when pricing is unknown.
cached_input_cost.google.type.Money
cache_write_five_min_cost.google.type.Money
cache_write_one_hour_cost.google.type.Money
output_cost.google.type.Money
total_cost.google.type.Money

TokenUsageMetadata Message

Metadata about the request (provider, model, service tier)

NameTypeDescription
providerstring
modelstring
service_tierstring

ToolCall Message

Tool call for execution

NameTypeDescription
idstring
namestring
argumentsstring

ToolCalls Message

Tool calls container

NameTypeDescription
callsrepeated ToolCall

ToolDefinition Message

Tool definition

NameTypeDescription
namestring
descriptionstring
input_schemastring
providerstring

ToolExecution Message

NameTypeDescription
tool_call_idstring
tool_namestring
argumentsstring“github.createIssue”, “internal.rag.search”)
connector_namestring (name of Connector)
capability_template_namestring (name of CapabilityTemplate)For internal tools: just the template name Server will load the template and extract RAG config

ToolExecutionResult Message

NameTypeDescription
tool_call_idstringTODO: replace with common ToolResponse once all clients accept the richer proto.
tool_namestring
outputstring
errorstring
mime_typestring
connector_auth_errorsrepeated ConnectorAuthErrorConnector authentication errors that blocked this tool execution. Empty for non-connector-related failures.

ToolInfo Message

Tool information including source

NameTypeDescription
namestring
clientClientToolSource
connectorConnectorToolSource
internalInternalToolSource

ToolResponse Message

Tool response

NameTypeDescription
tool_call_idstring
toolstring
outputPayload
errorstring

ToolSafetyConfig Message

Tool safety configuration for loop detection

NameTypeDescription
max_consecutive_tool_callsuint32sMaximum consecutive tool-calling assistant messages (default: 20) This detects infinite tool loops, NOT total tool usage. Counter resets when assistant message doesn’t contain tool calls. Example: 20 consecutive turns with tools → blocked 19 turns with tools + 1 text-only turn + 19 more → allowed
max_consecutive_identical_tool_callsuint32sMaximum consecutive identical tool+args calls (default: 3) This detects stuck loops where same tool+args is called repeatedly. Example: search_docs(“query”) called 3 times in a row → blocked search_docs(“query1”), search_docs(“query2”), … → allowed
max_consecutive_same_tool_callsuint32sMaximum consecutive calls to the same tool name (default: 6) Similar to the identical check but ignores arguments, only tool names. Example: search_docs(“q1”), search_docs(“q2”), … (same tool name) → blocked weather_lookup(…), search_docs(…), weather_lookup(…) → allowed

TurnConfig Message

Configuration snapshot for a single turn

NameTypeDescription
modelstring (name of ChatModel)Model selection
model_usedstringActual model ID from ResponseStarted
temperaturefloatParameters
max_tokensint32
reasoning_levelReasoningLevel
capability_templatestring (name of CapabilityTemplate)
connectorsConnectorsList

TurnToolsBySourceGroup Message

Group tools by source to avoid duplicating source per tool

NameTypeDescription
clientClientToolSource
connectorConnectorToolSource
internalInternalToolSource
tool_namesrepeated string

URLReference Message

URL reference

NameTypeDescription
urlstring
filepathstring

UserPromptTemplate Message

Prompt template for user-selectable prompt snippets These are client-side only - server stores metadata, client renders/executes

NameTypeDescription
display_namestringDisplay name shown in template picker
descriptionstringShort explanation shown alongside the template picker entry
tagsrepeated stringTags for filtering/categorization (e.g., [“rca”, “historical”, “live-troubleshooting”])
template_textstringThe actual prompt text with {{placeholders}} Example: “Review this {{language}} code:\n\n{{code}}”
variablesmap<string, TemplateVariable>Template variables keyed by placeholder name

AI Service Shared Enumerations

Here is the list of AI service shared enumerations:

ConnectorAuthErrorCode Enumeration

ConnectorAuthErrorCode describes why connector OAuth auth failed for the current user in the context of a single API call.

NameDescription
CONNECTOR_AUTH_ERROR_CODE_UNSPECIFIED
CONNECTOR_AUTH_ERROR_CODE_REQUIREDNo connector OAuth token is available for this user.
CONNECTOR_AUTH_ERROR_CODE_EXPIREDToken exists but is expired and cannot be automatically refreshed.
CONNECTOR_AUTH_ERROR_CODE_REFRESH_FAILEDRefresh attempt failed (e.g. provider returned invalid_grant/401).
CONNECTOR_AUTH_ERROR_CODE_DOWNSTREAM_CONSENT_REQUIREDConnector token exists and is still valid, but the provider requires an additional consent flow (e.g. downstream resource scopes) before it can be used successfully.

ContentChannel Enumeration

Content channel type

NameDescription
CONTENT_CHANNEL_UNSPECIFIED
CONTENT_CHANNEL_CONTENT
CONTENT_CHANNEL_THINKING

InputType Enumeration

Supported input widgets for template variables

NameDescription
INPUT_TYPE_UNSPECIFIED
TEXT
LONG_TEXT
SELECT
DATETIME
DATE_RANGE
DURATION
DURATION_OR_DATE_RANGE
NUMBER
RESOURCE
FILE
BOOL
URL
EMAIL

InternalToolSource.Type Enumeration

NameDescription
TYPE_UNSPECIFIED
RAG

LLMError Enumeration

LLM/Provider specific errors

NameDescription
LLM_ERROR_UNSPECIFIED
LLM_RATE_LIMIT
LLM_CONTENT_FILTER
LLM_PROVIDER_ERROR
LLM_TOOL_ERROR

Msg.Type Enumeration

NameDescription
UNDEFINED
SYSTEM
ASSISTANT
USER
SEARCH_ITEMS

OauthCompletion.Status Enumeration

NameDescription
STATUS_UNSPECIFIED
STATUS_SUCCESS
STATUS_CANCELLED
STATUS_TIMEOUT
STATUS_ERROR

PromptMissingVarPolicy Enumeration

Policy for how to handle missing variables during rendering

NameDescription
PROMPT_MISSING_VAR_POLICY_ERROR
PROMPT_MISSING_VAR_POLICY_SKIP_APPEND

PromptVariableMode Enumeration

Variable source mode - determines where template variables come from Variables are auto-detected from template text (e.g., {{.userEmail}})

NameDescription
MODE_SERVERServer-provided variables (trusted, from auth context) Rendered text is injected into the system prompt Known server variables: userEmail, projectName
MODE_CLIENTClient-provided variables (untrusted, sanitized) Rendered text is injected into the system prompt Variables looked up from CreateRequest.prompt_variables map

ProviderDone.StopReason Enumeration

Why the generation stopped

NameDescription
STOP_REASON_UNSPECIFIED
STOP
LENGTH
TOOL_CALLS
CONTENT_FILTER
ERROR

ReasoningLevel Enumeration

Reasoning/thinking level for AI models

NameDescription
REASONING_LEVEL_DEFAULT
REASONING_LEVEL_LOW
REASONING_LEVEL_MEDIUM
REASONING_LEVEL_HIGH

ResponseFormat.Mode Enumeration

NameDescription
MODE_UNSPECIFIED
TEXT
JSON_OBJECT
JSON_SCHEMA

StopReason Enumeration

Stop reason for response generation

NameDescription
STOP_REASON_UNSPECIFIED
STOP_REASON_COMPLETED
STOP_REASON_MAX_TOKENS
STOP_REASON_TOOL_CALLS
STOP_REASON_ERROR
STOP_REASON_CONTENT_FILTER

StreamError.ErrorType Enumeration

NameDescription
ERROR_TYPE_UNSPECIFIED
RATE_LIMIT
CONTENT_FILTER
PROVIDER_ERROR

ThinkingConfig.Type Enumeration

NameDescription
TYPE_UNSPECIFIED
ENABLED
DISABLED