You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
256 lines
8.5 KiB
256 lines
8.5 KiB
// Copyright 2020 Google LLC |
|
// |
|
// Licensed under the Apache License, Version 2.0 (the "License"); |
|
// you may not use this file except in compliance with the License. |
|
// You may obtain a copy of the License at |
|
// |
|
// http://www.apache.org/licenses/LICENSE-2.0 |
|
// |
|
// Unless required by applicable law or agreed to in writing, software |
|
// distributed under the License is distributed on an "AS IS" BASIS, |
|
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. |
|
// See the License for the specific language governing permissions and |
|
// limitations under the License. |
|
|
|
syntax = "proto3"; |
|
|
|
package google.actions.sdk.v2; |
|
|
|
import "google/actions/sdk/v2/conversation/intent.proto"; |
|
import "google/actions/sdk/v2/conversation/prompt/content/canvas.proto"; |
|
import "google/actions/sdk/v2/conversation/prompt/prompt.proto"; |
|
import "google/actions/sdk/v2/event_logs.proto"; |
|
import "google/api/annotations.proto"; |
|
import "google/api/client.proto"; |
|
import "google/api/field_behavior.proto"; |
|
import "google/protobuf/empty.proto"; |
|
import "google/type/latlng.proto"; |
|
|
|
option go_package = "google.golang.org/genproto/googleapis/actions/sdk/v2;sdk"; |
|
option java_multiple_files = true; |
|
option java_outer_classname = "ActionsTestingProto"; |
|
option java_package = "com.google.actions.sdk.v2"; |
|
|
|
// Actions Testing API which allows developers to run automated tests. |
|
service ActionsTesting { |
|
option (google.api.default_host) = "actions.googleapis.com"; |
|
|
|
// Plays one round of the conversation. |
|
rpc SendInteraction(SendInteractionRequest) returns (SendInteractionResponse) { |
|
option (google.api.http) = { |
|
post: "/v2/{project=projects/*}:sendInteraction" |
|
body: "*" |
|
}; |
|
} |
|
|
|
// Finds the intents that match a given query. |
|
rpc MatchIntents(MatchIntentsRequest) returns (MatchIntentsResponse) { |
|
option (google.api.http) = { |
|
post: "/v2/{project=projects/*}:matchIntents" |
|
body: "*" |
|
}; |
|
option (google.api.method_signature) = "project,query,locale"; |
|
} |
|
|
|
// Sets the Web & App Activity control on a service account. |
|
// |
|
// It is necessary to have this setting enabled in order to use call Actions. |
|
// The setting is originally disabled for service accounts, and it is |
|
// preserved until set to a different value. This means it only needs to be |
|
// enabled once per account (and not necessarily once per test), unless it is |
|
// later disabled. |
|
// |
|
// Returns an error if the caller is not a service account. User accounts can |
|
// change this setting via the Activity Controls page. See |
|
// https://support.google.com/websearch/answer/54068. |
|
rpc SetWebAndAppActivityControl(SetWebAndAppActivityControlRequest) returns (google.protobuf.Empty) { |
|
option (google.api.http) = { |
|
post: "/v2:setWebAndAppActivityControl" |
|
body: "*" |
|
}; |
|
option (google.api.method_signature) = "enabled"; |
|
} |
|
} |
|
|
|
// Request for playing a round of the conversation. |
|
message SendInteractionRequest { |
|
// Required. The project being tested, indicated by the Project ID. |
|
// Format: projects/{project} |
|
string project = 1 [(google.api.field_behavior) = REQUIRED]; |
|
|
|
// Required. Input provided by the user. |
|
UserInput input = 2 [(google.api.field_behavior) = REQUIRED]; |
|
|
|
// Required. Properties of the device used for interacting with the Action. |
|
DeviceProperties device_properties = 3 [(google.api.field_behavior) = REQUIRED]; |
|
|
|
// Opaque token that must be passed as received from SendInteractionResponse |
|
// on the previous interaction. This can be left unset in order to start a new |
|
// conversation, either as the first interaction of a testing session or to |
|
// abandon a previous conversation and start a new one. |
|
string conversation_token = 4; |
|
} |
|
|
|
// User input provided on a conversation round. |
|
message UserInput { |
|
// Indicates the input source, typed query or voice query. |
|
enum InputType { |
|
// Unspecified input source. |
|
INPUT_TYPE_UNSPECIFIED = 0; |
|
|
|
// Query from a GUI interaction. |
|
TOUCH = 1; |
|
|
|
// Voice query. |
|
VOICE = 2; |
|
|
|
// Typed query. |
|
KEYBOARD = 3; |
|
|
|
// The action was triggered by a URL link. |
|
URL = 4; |
|
} |
|
|
|
// Content of the input sent by the user. |
|
string query = 1; |
|
|
|
// Type of the input. |
|
InputType type = 2; |
|
} |
|
|
|
// Properties of device relevant to a conversation round. |
|
message DeviceProperties { |
|
// Possible surfaces used to interact with the Action. |
|
// Additional values may be included in the future. |
|
enum Surface { |
|
// Default value. This value is unused. |
|
SURFACE_UNSPECIFIED = 0; |
|
|
|
// Speaker (e.g. Google Home). |
|
SPEAKER = 1; |
|
|
|
// Phone. |
|
PHONE = 2; |
|
|
|
// Allo Chat. |
|
ALLO = 3; |
|
|
|
// Smart Display Device. |
|
SMART_DISPLAY = 4; |
|
|
|
// KaiOS. |
|
KAI_OS = 5; |
|
} |
|
|
|
// Surface used for interacting with the Action. |
|
Surface surface = 1; |
|
|
|
// Device location such as latitude, longitude, and formatted address. |
|
Location location = 2; |
|
|
|
// Locale as set on the device. |
|
// The format should follow BCP 47: https://tools.ietf.org/html/bcp47 |
|
// Examples: en, en-US, es-419 (more examples at |
|
// https://tools.ietf.org/html/bcp47#appendix-A). |
|
string locale = 3; |
|
|
|
// Time zone as set on the device. |
|
// The format should follow the IANA Time Zone Database, e.g. |
|
// "America/New_York": https://www.iana.org/time-zones |
|
string time_zone = 4; |
|
} |
|
|
|
// Container that represents a location. |
|
message Location { |
|
// Geo coordinates. |
|
// Requires the [DEVICE_PRECISE_LOCATION] |
|
// [google.actions.v2.Permission.DEVICE_PRECISE_LOCATION] permission. |
|
google.type.LatLng coordinates = 1; |
|
|
|
// Display address, e.g., "1600 Amphitheatre Pkwy, Mountain View, CA 94043". |
|
// Requires the [DEVICE_PRECISE_LOCATION] |
|
// [google.actions.v2.Permission.DEVICE_PRECISE_LOCATION] permission. |
|
string formatted_address = 2; |
|
|
|
// Zip code. |
|
// Requires the [DEVICE_PRECISE_LOCATION] |
|
// [google.actions.v2.Permission.DEVICE_PRECISE_LOCATION] or |
|
// [DEVICE_COARSE_LOCATION] |
|
// [google.actions.v2.Permission.DEVICE_COARSE_LOCATION] permission. |
|
string zip_code = 3; |
|
|
|
// City. |
|
// Requires the [DEVICE_PRECISE_LOCATION] |
|
// [google.actions.v2.Permission.DEVICE_PRECISE_LOCATION] or |
|
// [DEVICE_COARSE_LOCATION] |
|
// [google.actions.v2.Permission.DEVICE_COARSE_LOCATION] permission. |
|
string city = 4; |
|
} |
|
|
|
// Response to a round of the conversation. |
|
message SendInteractionResponse { |
|
// Output provided to the user. |
|
Output output = 1; |
|
|
|
// Diagnostics information that explains how the request was handled. |
|
Diagnostics diagnostics = 2; |
|
|
|
// Opaque token to be set on SendInteractionRequest on the next RPC call in |
|
// order to continue the same conversation. |
|
string conversation_token = 3; |
|
} |
|
|
|
// User-visible output to the conversation round. |
|
message Output { |
|
// Spoken response sent to user as a plain string. |
|
string text = 1; |
|
|
|
// Speech content produced by the Action. This may include markup elements |
|
// such as SSML. |
|
repeated string speech = 2; |
|
|
|
// Interactive Canvas content. |
|
google.actions.sdk.v2.conversation.Canvas canvas = 3; |
|
|
|
// State of the prompt at the end of the conversation round. |
|
// More information about the prompt: |
|
// https://developers.google.com/assistant/conversational/prompts |
|
google.actions.sdk.v2.conversation.Prompt actions_builder_prompt = 4; |
|
} |
|
|
|
// Diagnostics information related to the conversation round. |
|
message Diagnostics { |
|
// List of events with details about processing of the conversation round |
|
// throughout the stages of the Actions Builder interaction model. |
|
// Populated for Actions Builder & Actions SDK apps only. |
|
repeated ExecutionEvent actions_builder_events = 1; |
|
} |
|
|
|
// Request for finding matching intents. |
|
message MatchIntentsRequest { |
|
// Required. The project being tested, indicated by the Project ID. |
|
// Format: projects/{project} |
|
string project = 1 [(google.api.field_behavior) = REQUIRED]; |
|
|
|
// Required. User query as plain text. |
|
string query = 2 [(google.api.field_behavior) = REQUIRED]; |
|
|
|
// Required. Locale to use to evaluate the query, such as "en". |
|
// The format should follow BCP 47: https://tools.ietf.org/html/bcp47 |
|
// See the list of supported languages in |
|
// https://developers.google.com/assistant/console/languages-locales |
|
string locale = 3 [(google.api.field_behavior) = REQUIRED]; |
|
} |
|
|
|
// Response for finding matching intents. |
|
message MatchIntentsResponse { |
|
// Intents matched, ordered from most to least relevant. Only the first |
|
// 50 matches are returned. |
|
repeated google.actions.sdk.v2.conversation.Intent matched_intents = 1; |
|
} |
|
|
|
// Request for setting Web & App Activity preferences. |
|
message SetWebAndAppActivityControlRequest { |
|
// Whether the setting should be set to an enabled or disabled state. |
|
bool enabled = 1; |
|
}
|
|
|