#[cfg(any(feature = "google-actions-sdk-v2-conversation"))]
pub mod conversation;
#[cfg(
any(
feature = "google-actions-sdk-v2-interactionmodel",
feature = "google-actions-sdk-v2-interactionmodel-prompt",
feature = "google-actions-sdk-v2-interactionmodel-type",
)
)]
pub mod interactionmodel;
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct Webhook {
#[prost(message, repeated, tag="1")]
pub handlers: ::prost::alloc::vec::Vec<webhook::Handler>,
#[prost(oneof="webhook::WebhookType", tags="2, 3")]
pub webhook_type: ::core::option::Option<webhook::WebhookType>,
}
pub mod webhook {
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct Handler {
#[prost(string, tag="1")]
pub name: ::prost::alloc::string::String,
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct HttpsEndpoint {
#[prost(string, tag="1")]
pub base_url: ::prost::alloc::string::String,
#[prost(btree_map="string, string", tag="2")]
pub http_headers: ::prost::alloc::collections::BTreeMap<::prost::alloc::string::String, ::prost::alloc::string::String>,
#[prost(int32, tag="3")]
pub endpoint_api_version: i32,
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct InlineCloudFunction {
#[prost(string, tag="1")]
pub execute_function: ::prost::alloc::string::String,
}
#[derive(Clone, PartialEq, ::prost::Oneof)]
pub enum WebhookType {
#[prost(message, tag="2")]
HttpsEndpoint(HttpsEndpoint),
#[prost(message, tag="3")]
InlineCloudFunction(InlineCloudFunction),
}
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct AccountLinking {
#[prost(bool, tag="1")]
pub enable_account_creation: bool,
#[prost(enumeration="account_linking::LinkingType", tag="2")]
pub linking_type: i32,
#[prost(enumeration="account_linking::AuthGrantType", tag="3")]
pub auth_grant_type: i32,
#[prost(string, tag="4")]
pub app_client_id: ::prost::alloc::string::String,
#[prost(string, tag="5")]
pub authorization_url: ::prost::alloc::string::String,
#[prost(string, tag="6")]
pub token_url: ::prost::alloc::string::String,
#[prost(string, repeated, tag="7")]
pub scopes: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
#[prost(string, tag="8")]
pub learn_more_url: ::prost::alloc::string::String,
#[prost(bool, tag="9")]
pub use_basic_auth_header: bool,
}
pub mod account_linking {
#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
#[repr(i32)]
pub enum LinkingType {
Unspecified = 0,
GoogleSignIn = 1,
OauthAndGoogleSignIn = 2,
Oauth = 3,
}
impl LinkingType {
pub fn as_str_name(&self) -> &'static str {
match self {
LinkingType::Unspecified => "LINKING_TYPE_UNSPECIFIED",
LinkingType::GoogleSignIn => "GOOGLE_SIGN_IN",
LinkingType::OauthAndGoogleSignIn => "OAUTH_AND_GOOGLE_SIGN_IN",
LinkingType::Oauth => "OAUTH",
}
}
}
#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
#[repr(i32)]
pub enum AuthGrantType {
Unspecified = 0,
AuthCode = 1,
Implicit = 2,
}
impl AuthGrantType {
pub fn as_str_name(&self) -> &'static str {
match self {
AuthGrantType::Unspecified => "AUTH_GRANT_TYPE_UNSPECIFIED",
AuthGrantType::AuthCode => "AUTH_CODE",
AuthGrantType::Implicit => "IMPLICIT",
}
}
}
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct ThemeCustomization {
#[prost(string, tag="1")]
pub background_color: ::prost::alloc::string::String,
#[prost(string, tag="2")]
pub primary_color: ::prost::alloc::string::String,
#[prost(string, tag="3")]
pub font_family: ::prost::alloc::string::String,
#[prost(enumeration="theme_customization::ImageCornerStyle", tag="4")]
pub image_corner_style: i32,
#[prost(string, tag="5")]
pub landscape_background_image: ::prost::alloc::string::String,
#[prost(string, tag="6")]
pub portrait_background_image: ::prost::alloc::string::String,
}
pub mod theme_customization {
#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
#[repr(i32)]
pub enum ImageCornerStyle {
Unspecified = 0,
Curved = 1,
Angled = 2,
}
impl ImageCornerStyle {
pub fn as_str_name(&self) -> &'static str {
match self {
ImageCornerStyle::Unspecified => "IMAGE_CORNER_STYLE_UNSPECIFIED",
ImageCornerStyle::Curved => "CURVED",
ImageCornerStyle::Angled => "ANGLED",
}
}
}
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct LocalizedSettings {
#[prost(string, tag="1")]
pub display_name: ::prost::alloc::string::String,
#[prost(string, tag="2")]
pub pronunciation: ::prost::alloc::string::String,
#[prost(string, tag="3")]
pub short_description: ::prost::alloc::string::String,
#[prost(string, tag="4")]
pub full_description: ::prost::alloc::string::String,
#[prost(string, tag="5")]
pub small_logo_image: ::prost::alloc::string::String,
#[prost(string, tag="6")]
pub large_banner_image: ::prost::alloc::string::String,
#[prost(string, tag="7")]
pub developer_name: ::prost::alloc::string::String,
#[prost(string, tag="8")]
pub developer_email: ::prost::alloc::string::String,
#[prost(string, tag="9")]
pub terms_of_service_url: ::prost::alloc::string::String,
#[prost(string, tag="10")]
pub voice: ::prost::alloc::string::String,
#[prost(string, tag="14")]
pub voice_locale: ::prost::alloc::string::String,
#[prost(string, tag="11")]
pub privacy_policy_url: ::prost::alloc::string::String,
#[prost(string, repeated, tag="12")]
pub sample_invocations: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
#[prost(message, optional, tag="13")]
pub theme_customization: ::core::option::Option<ThemeCustomization>,
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct SurfaceRequirements {
#[prost(message, repeated, tag="1")]
pub minimum_requirements: ::prost::alloc::vec::Vec<CapabilityRequirement>,
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct CapabilityRequirement {
#[prost(enumeration="capability_requirement::SurfaceCapability", tag="1")]
pub capability: i32,
}
pub mod capability_requirement {
#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
#[repr(i32)]
pub enum SurfaceCapability {
Unspecified = 0,
AudioOutput = 1,
ScreenOutput = 2,
MediaResponseAudio = 3,
WebBrowser = 4,
AccountLinking = 7,
InteractiveCanvas = 8,
HomeStorage = 9,
}
impl SurfaceCapability {
pub fn as_str_name(&self) -> &'static str {
match self {
SurfaceCapability::Unspecified => "SURFACE_CAPABILITY_UNSPECIFIED",
SurfaceCapability::AudioOutput => "AUDIO_OUTPUT",
SurfaceCapability::ScreenOutput => "SCREEN_OUTPUT",
SurfaceCapability::MediaResponseAudio => "MEDIA_RESPONSE_AUDIO",
SurfaceCapability::WebBrowser => "WEB_BROWSER",
SurfaceCapability::AccountLinking => "ACCOUNT_LINKING",
SurfaceCapability::InteractiveCanvas => "INTERACTIVE_CANVAS",
SurfaceCapability::HomeStorage => "HOME_STORAGE",
}
}
}
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct Settings {
#[prost(string, tag="1")]
pub project_id: ::prost::alloc::string::String,
#[prost(string, tag="2")]
pub default_locale: ::prost::alloc::string::String,
#[prost(string, repeated, tag="3")]
pub enabled_regions: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
#[prost(string, repeated, tag="4")]
pub disabled_regions: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
#[prost(enumeration="settings::Category", tag="5")]
pub category: i32,
#[prost(bool, tag="6")]
pub uses_transactions_api: bool,
#[prost(bool, tag="7")]
pub uses_digital_purchase_api: bool,
#[prost(bool, tag="8")]
pub uses_interactive_canvas: bool,
#[prost(bool, tag="17")]
pub uses_home_storage: bool,
#[prost(bool, tag="9")]
pub designed_for_family: bool,
#[prost(bool, tag="11")]
pub contains_alcohol_or_tobacco_content: bool,
#[prost(bool, tag="12")]
pub keeps_mic_open: bool,
#[prost(message, optional, tag="13")]
pub surface_requirements: ::core::option::Option<SurfaceRequirements>,
#[prost(string, tag="14")]
pub testing_instructions: ::prost::alloc::string::String,
#[prost(message, optional, tag="15")]
pub localized_settings: ::core::option::Option<LocalizedSettings>,
#[prost(message, optional, tag="16")]
pub account_linking: ::core::option::Option<AccountLinking>,
#[prost(string, repeated, tag="20")]
pub selected_android_apps: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
}
pub mod settings {
#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
#[repr(i32)]
pub enum Category {
Unspecified = 0,
BusinessAndFinance = 2,
EducationAndReference = 3,
FoodAndDrink = 4,
GamesAndTrivia = 5,
HealthAndFitness = 6,
KidsAndFamily = 20,
Lifestyle = 7,
Local = 8,
MoviesAndTv = 9,
MusicAndAudio = 10,
News = 1,
NoveltyAndHumor = 11,
Productivity = 12,
Shopping = 13,
Social = 14,
Sports = 15,
TravelAndTransportation = 16,
Utilities = 17,
Weather = 18,
HomeControl = 19,
}
impl Category {
pub fn as_str_name(&self) -> &'static str {
match self {
Category::Unspecified => "CATEGORY_UNSPECIFIED",
Category::BusinessAndFinance => "BUSINESS_AND_FINANCE",
Category::EducationAndReference => "EDUCATION_AND_REFERENCE",
Category::FoodAndDrink => "FOOD_AND_DRINK",
Category::GamesAndTrivia => "GAMES_AND_TRIVIA",
Category::HealthAndFitness => "HEALTH_AND_FITNESS",
Category::KidsAndFamily => "KIDS_AND_FAMILY",
Category::Lifestyle => "LIFESTYLE",
Category::Local => "LOCAL",
Category::MoviesAndTv => "MOVIES_AND_TV",
Category::MusicAndAudio => "MUSIC_AND_AUDIO",
Category::News => "NEWS",
Category::NoveltyAndHumor => "NOVELTY_AND_HUMOR",
Category::Productivity => "PRODUCTIVITY",
Category::Shopping => "SHOPPING",
Category::Social => "SOCIAL",
Category::Sports => "SPORTS",
Category::TravelAndTransportation => "TRAVEL_AND_TRANSPORTATION",
Category::Utilities => "UTILITIES",
Category::Weather => "WEATHER",
Category::HomeControl => "HOME_CONTROL",
}
}
}
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct AccountLinkingSecret {
#[prost(bytes="bytes", tag="1")]
pub encrypted_client_secret: ::prost::bytes::Bytes,
#[prost(string, tag="2")]
pub encryption_key_version: ::prost::alloc::string::String,
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct Actions {
#[prost(btree_map="string, message", tag="3")]
pub custom: ::prost::alloc::collections::BTreeMap<::prost::alloc::string::String, actions::CustomAction>,
}
pub mod actions {
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct Engagement {
#[prost(string, tag="1")]
pub title: ::prost::alloc::string::String,
#[prost(message, optional, tag="2")]
pub push_notification: ::core::option::Option<engagement::PushNotification>,
#[deprecated]
#[prost(message, optional, tag="4")]
pub action_link: ::core::option::Option<engagement::ActionLink>,
#[prost(message, optional, tag="6")]
pub assistant_link: ::core::option::Option<engagement::AssistantLink>,
#[prost(oneof="engagement::RecurringUpdate", tags="3")]
pub recurring_update: ::core::option::Option<engagement::RecurringUpdate>,
}
pub mod engagement {
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct PushNotification {
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct DailyUpdate {
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct ActionLink {
#[prost(string, tag="1")]
pub title: ::prost::alloc::string::String,
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct AssistantLink {
#[prost(string, tag="1")]
pub title: ::prost::alloc::string::String,
}
#[derive(Clone, PartialEq, ::prost::Oneof)]
pub enum RecurringUpdate {
#[prost(message, tag="3")]
DailyUpdate(DailyUpdate),
}
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct CustomAction {
#[prost(message, optional, tag="2")]
pub engagement: ::core::option::Option<Engagement>,
}
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct Manifest {
#[prost(string, tag="1")]
pub version: ::prost::alloc::string::String,
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct ConfigFiles {
#[prost(message, repeated, tag="1")]
pub config_files: ::prost::alloc::vec::Vec<ConfigFile>,
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct ConfigFile {
#[prost(string, tag="1")]
pub file_path: ::prost::alloc::string::String,
#[prost(oneof="config_file::File", tags="2, 3, 4, 6, 7, 8, 15, 9, 10, 11, 13, 12")]
pub file: ::core::option::Option<config_file::File>,
}
pub mod config_file {
#[derive(Clone, PartialEq, ::prost::Oneof)]
pub enum File {
#[prost(message, tag="2")]
Manifest(super::Manifest),
#[prost(message, tag="3")]
Actions(super::Actions),
#[prost(message, tag="4")]
Settings(super::Settings),
#[prost(message, tag="6")]
Webhook(super::Webhook),
#[prost(message, tag="7")]
Intent(super::interactionmodel::Intent),
#[prost(message, tag="8")]
Type(super::interactionmodel::r#type::Type),
#[prost(message, tag="15")]
EntitySet(super::interactionmodel::EntitySet),
#[prost(message, tag="9")]
GlobalIntentEvent(super::interactionmodel::GlobalIntentEvent),
#[prost(message, tag="10")]
Scene(super::interactionmodel::Scene),
#[prost(message, tag="11")]
StaticPrompt(super::interactionmodel::prompt::StaticPrompt),
#[prost(message, tag="13")]
AccountLinkingSecret(super::AccountLinkingSecret),
#[prost(message, tag="12")]
ResourceBundle(::prost_types::Struct),
}
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct DataFiles {
#[prost(message, repeated, tag="1")]
pub data_files: ::prost::alloc::vec::Vec<DataFile>,
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct DataFile {
#[prost(string, tag="1")]
pub file_path: ::prost::alloc::string::String,
#[prost(string, tag="2")]
pub content_type: ::prost::alloc::string::String,
#[prost(bytes="bytes", tag="3")]
pub payload: ::prost::bytes::Bytes,
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct Files {
#[prost(oneof="files::FileType", tags="1, 2")]
pub file_type: ::core::option::Option<files::FileType>,
}
pub mod files {
#[derive(Clone, PartialEq, ::prost::Oneof)]
pub enum FileType {
#[prost(message, tag="1")]
ConfigFiles(super::ConfigFiles),
#[prost(message, tag="2")]
DataFiles(super::DataFiles),
}
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct ReleaseChannel {
#[prost(string, tag="1")]
pub name: ::prost::alloc::string::String,
#[prost(string, tag="2")]
pub current_version: ::prost::alloc::string::String,
#[prost(string, tag="3")]
pub pending_version: ::prost::alloc::string::String,
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct ValidationResults {
#[prost(message, repeated, tag="1")]
pub results: ::prost::alloc::vec::Vec<ValidationResult>,
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct ValidationResult {
#[prost(string, tag="1")]
pub validation_message: ::prost::alloc::string::String,
#[prost(message, optional, tag="2")]
pub validation_context: ::core::option::Option<validation_result::ValidationContext>,
}
pub mod validation_result {
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct ValidationContext {
#[prost(string, tag="1")]
pub language_code: ::prost::alloc::string::String,
}
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct Version {
#[prost(string, tag="1")]
pub name: ::prost::alloc::string::String,
#[prost(message, optional, tag="2")]
pub version_state: ::core::option::Option<version::VersionState>,
#[prost(string, tag="3")]
pub creator: ::prost::alloc::string::String,
#[prost(message, optional, tag="4")]
pub update_time: ::core::option::Option<::prost_types::Timestamp>,
}
pub mod version {
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct VersionState {
#[prost(enumeration="version_state::State", tag="1")]
pub state: i32,
#[prost(string, tag="2")]
pub message: ::prost::alloc::string::String,
}
pub mod version_state {
#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
#[repr(i32)]
pub enum State {
Unspecified = 0,
CreationInProgress = 1,
CreationFailed = 2,
Created = 3,
ReviewInProgress = 4,
Approved = 5,
ConditionallyApproved = 6,
Denied = 7,
UnderTakedown = 8,
Deleted = 9,
}
impl State {
pub fn as_str_name(&self) -> &'static str {
match self {
State::Unspecified => "STATE_UNSPECIFIED",
State::CreationInProgress => "CREATION_IN_PROGRESS",
State::CreationFailed => "CREATION_FAILED",
State::Created => "CREATED",
State::ReviewInProgress => "REVIEW_IN_PROGRESS",
State::Approved => "APPROVED",
State::ConditionallyApproved => "CONDITIONALLY_APPROVED",
State::Denied => "DENIED",
State::UnderTakedown => "UNDER_TAKEDOWN",
State::Deleted => "DELETED",
}
}
}
}
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct WriteDraftRequest {
#[prost(string, tag="1")]
pub parent: ::prost::alloc::string::String,
#[prost(message, optional, tag="4")]
pub files: ::core::option::Option<Files>,
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct Draft {
#[prost(string, tag="1")]
pub name: ::prost::alloc::string::String,
#[prost(message, optional, tag="2")]
pub validation_results: ::core::option::Option<ValidationResults>,
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct WritePreviewRequest {
#[prost(string, tag="1")]
pub parent: ::prost::alloc::string::String,
#[prost(message, optional, tag="4")]
pub preview_settings: ::core::option::Option<write_preview_request::PreviewSettings>,
#[prost(oneof="write_preview_request::Source", tags="5, 6, 7")]
pub source: ::core::option::Option<write_preview_request::Source>,
}
pub mod write_preview_request {
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct ContentFromDraft {
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct ContentFromSubmittedVersion {
#[prost(string, tag="1")]
pub version: ::prost::alloc::string::String,
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct PreviewSettings {
#[prost(message, optional, tag="1")]
pub sandbox: ::core::option::Option<bool>,
}
#[derive(Clone, PartialEq, ::prost::Oneof)]
pub enum Source {
#[prost(message, tag="5")]
Files(super::Files),
#[prost(message, tag="6")]
Draft(ContentFromDraft),
#[prost(message, tag="7")]
SubmittedVersion(ContentFromSubmittedVersion),
}
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct Preview {
#[prost(string, tag="1")]
pub name: ::prost::alloc::string::String,
#[prost(message, optional, tag="2")]
pub validation_results: ::core::option::Option<ValidationResults>,
#[prost(string, tag="3")]
pub simulator_url: ::prost::alloc::string::String,
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct CreateVersionRequest {
#[prost(string, tag="1")]
pub parent: ::prost::alloc::string::String,
#[prost(message, optional, tag="5")]
pub files: ::core::option::Option<Files>,
#[prost(string, tag="4")]
pub release_channel: ::prost::alloc::string::String,
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct ReadDraftRequest {
#[prost(string, tag="1")]
pub name: ::prost::alloc::string::String,
#[prost(string, tag="2")]
pub client_secret_encryption_key_version: ::prost::alloc::string::String,
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct ReadDraftResponse {
#[prost(message, optional, tag="3")]
pub files: ::core::option::Option<Files>,
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct ReadVersionRequest {
#[prost(string, tag="1")]
pub name: ::prost::alloc::string::String,
#[prost(string, tag="2")]
pub client_secret_encryption_key_version: ::prost::alloc::string::String,
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct ReadVersionResponse {
#[prost(message, optional, tag="1")]
pub files: ::core::option::Option<Files>,
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct EncryptSecretRequest {
#[prost(string, tag="1")]
pub client_secret: ::prost::alloc::string::String,
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct EncryptSecretResponse {
#[prost(message, optional, tag="1")]
pub account_linking_secret: ::core::option::Option<AccountLinkingSecret>,
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct DecryptSecretRequest {
#[prost(bytes="bytes", tag="1")]
pub encrypted_client_secret: ::prost::bytes::Bytes,
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct DecryptSecretResponse {
#[prost(string, tag="1")]
pub client_secret: ::prost::alloc::string::String,
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct ListSampleProjectsRequest {
#[prost(int32, tag="1")]
pub page_size: i32,
#[prost(string, tag="2")]
pub page_token: ::prost::alloc::string::String,
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct ListSampleProjectsResponse {
#[prost(message, repeated, tag="1")]
pub sample_projects: ::prost::alloc::vec::Vec<SampleProject>,
#[prost(string, tag="2")]
pub next_page_token: ::prost::alloc::string::String,
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct SampleProject {
#[prost(string, tag="1")]
pub name: ::prost::alloc::string::String,
#[prost(string, tag="2")]
pub hosted_url: ::prost::alloc::string::String,
#[prost(string, tag="3")]
pub description: ::prost::alloc::string::String,
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct ListReleaseChannelsRequest {
#[prost(string, tag="1")]
pub parent: ::prost::alloc::string::String,
#[prost(int32, tag="2")]
pub page_size: i32,
#[prost(string, tag="3")]
pub page_token: ::prost::alloc::string::String,
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct ListReleaseChannelsResponse {
#[prost(message, repeated, tag="1")]
pub release_channels: ::prost::alloc::vec::Vec<ReleaseChannel>,
#[prost(string, tag="2")]
pub next_page_token: ::prost::alloc::string::String,
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct ListVersionsRequest {
#[prost(string, tag="1")]
pub parent: ::prost::alloc::string::String,
#[prost(int32, tag="2")]
pub page_size: i32,
#[prost(string, tag="3")]
pub page_token: ::prost::alloc::string::String,
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct ListVersionsResponse {
#[prost(message, repeated, tag="1")]
pub versions: ::prost::alloc::vec::Vec<Version>,
#[prost(string, tag="2")]
pub next_page_token: ::prost::alloc::string::String,
}
pub mod actions_sdk_client {
#![allow(unused_variables, dead_code, missing_docs, clippy::let_unit_value)]
use tonic::codegen::*;
use tonic::codegen::http::Uri;
#[derive(Debug, Clone)]
pub struct ActionsSdkClient<T> {
inner: tonic::client::Grpc<T>,
}
impl<T> ActionsSdkClient<T>
where
T: tonic::client::GrpcService<tonic::body::BoxBody>,
T::Error: Into<StdError>,
T::ResponseBody: Body<Data = Bytes> + Send + 'static,
<T::ResponseBody as Body>::Error: Into<StdError> + Send,
{
pub fn new(inner: T) -> Self {
let inner = tonic::client::Grpc::new(inner);
Self { inner }
}
pub fn with_origin(inner: T, origin: Uri) -> Self {
let inner = tonic::client::Grpc::with_origin(inner, origin);
Self { inner }
}
pub fn with_interceptor<F>(
inner: T,
interceptor: F,
) -> ActionsSdkClient<InterceptedService<T, F>>
where
F: tonic::service::Interceptor,
T::ResponseBody: Default,
T: tonic::codegen::Service<
http::Request<tonic::body::BoxBody>,
Response = http::Response<
<T as tonic::client::GrpcService<tonic::body::BoxBody>>::ResponseBody,
>,
>,
<T as tonic::codegen::Service<
http::Request<tonic::body::BoxBody>,
>>::Error: Into<StdError> + Send + Sync,
{
ActionsSdkClient::new(InterceptedService::new(inner, interceptor))
}
#[must_use]
pub fn send_compressed(mut self, encoding: CompressionEncoding) -> Self {
self.inner = self.inner.send_compressed(encoding);
self
}
#[must_use]
pub fn accept_compressed(mut self, encoding: CompressionEncoding) -> Self {
self.inner = self.inner.accept_compressed(encoding);
self
}
pub async fn write_draft(
&mut self,
request: impl tonic::IntoStreamingRequest<Message = super::WriteDraftRequest>,
) -> Result<tonic::Response<super::Draft>, tonic::Status> {
self.inner
.ready()
.await
.map_err(|e| {
tonic::Status::new(
tonic::Code::Unknown,
format!("Service was not ready: {}", e.into()),
)
})?;
let codec = tonic::codec::ProstCodec::default();
let path = http::uri::PathAndQuery::from_static(
"/google.actions.sdk.v2.ActionsSdk/WriteDraft",
);
self.inner
.client_streaming(request.into_streaming_request(), path, codec)
.await
}
pub async fn write_preview(
&mut self,
request: impl tonic::IntoStreamingRequest<
Message = super::WritePreviewRequest,
>,
) -> Result<tonic::Response<super::Preview>, tonic::Status> {
self.inner
.ready()
.await
.map_err(|e| {
tonic::Status::new(
tonic::Code::Unknown,
format!("Service was not ready: {}", e.into()),
)
})?;
let codec = tonic::codec::ProstCodec::default();
let path = http::uri::PathAndQuery::from_static(
"/google.actions.sdk.v2.ActionsSdk/WritePreview",
);
self.inner
.client_streaming(request.into_streaming_request(), path, codec)
.await
}
pub async fn create_version(
&mut self,
request: impl tonic::IntoStreamingRequest<
Message = super::CreateVersionRequest,
>,
) -> Result<tonic::Response<super::Version>, tonic::Status> {
self.inner
.ready()
.await
.map_err(|e| {
tonic::Status::new(
tonic::Code::Unknown,
format!("Service was not ready: {}", e.into()),
)
})?;
let codec = tonic::codec::ProstCodec::default();
let path = http::uri::PathAndQuery::from_static(
"/google.actions.sdk.v2.ActionsSdk/CreateVersion",
);
self.inner
.client_streaming(request.into_streaming_request(), path, codec)
.await
}
pub async fn read_draft(
&mut self,
request: impl tonic::IntoRequest<super::ReadDraftRequest>,
) -> Result<
tonic::Response<tonic::codec::Streaming<super::ReadDraftResponse>>,
tonic::Status,
> {
self.inner
.ready()
.await
.map_err(|e| {
tonic::Status::new(
tonic::Code::Unknown,
format!("Service was not ready: {}", e.into()),
)
})?;
let codec = tonic::codec::ProstCodec::default();
let path = http::uri::PathAndQuery::from_static(
"/google.actions.sdk.v2.ActionsSdk/ReadDraft",
);
self.inner.server_streaming(request.into_request(), path, codec).await
}
pub async fn read_version(
&mut self,
request: impl tonic::IntoRequest<super::ReadVersionRequest>,
) -> Result<
tonic::Response<tonic::codec::Streaming<super::ReadVersionResponse>>,
tonic::Status,
> {
self.inner
.ready()
.await
.map_err(|e| {
tonic::Status::new(
tonic::Code::Unknown,
format!("Service was not ready: {}", e.into()),
)
})?;
let codec = tonic::codec::ProstCodec::default();
let path = http::uri::PathAndQuery::from_static(
"/google.actions.sdk.v2.ActionsSdk/ReadVersion",
);
self.inner.server_streaming(request.into_request(), path, codec).await
}
pub async fn encrypt_secret(
&mut self,
request: impl tonic::IntoRequest<super::EncryptSecretRequest>,
) -> Result<tonic::Response<super::EncryptSecretResponse>, tonic::Status> {
self.inner
.ready()
.await
.map_err(|e| {
tonic::Status::new(
tonic::Code::Unknown,
format!("Service was not ready: {}", e.into()),
)
})?;
let codec = tonic::codec::ProstCodec::default();
let path = http::uri::PathAndQuery::from_static(
"/google.actions.sdk.v2.ActionsSdk/EncryptSecret",
);
self.inner.unary(request.into_request(), path, codec).await
}
pub async fn decrypt_secret(
&mut self,
request: impl tonic::IntoRequest<super::DecryptSecretRequest>,
) -> Result<tonic::Response<super::DecryptSecretResponse>, tonic::Status> {
self.inner
.ready()
.await
.map_err(|e| {
tonic::Status::new(
tonic::Code::Unknown,
format!("Service was not ready: {}", e.into()),
)
})?;
let codec = tonic::codec::ProstCodec::default();
let path = http::uri::PathAndQuery::from_static(
"/google.actions.sdk.v2.ActionsSdk/DecryptSecret",
);
self.inner.unary(request.into_request(), path, codec).await
}
pub async fn list_sample_projects(
&mut self,
request: impl tonic::IntoRequest<super::ListSampleProjectsRequest>,
) -> Result<tonic::Response<super::ListSampleProjectsResponse>, tonic::Status> {
self.inner
.ready()
.await
.map_err(|e| {
tonic::Status::new(
tonic::Code::Unknown,
format!("Service was not ready: {}", e.into()),
)
})?;
let codec = tonic::codec::ProstCodec::default();
let path = http::uri::PathAndQuery::from_static(
"/google.actions.sdk.v2.ActionsSdk/ListSampleProjects",
);
self.inner.unary(request.into_request(), path, codec).await
}
pub async fn list_release_channels(
&mut self,
request: impl tonic::IntoRequest<super::ListReleaseChannelsRequest>,
) -> Result<tonic::Response<super::ListReleaseChannelsResponse>, tonic::Status> {
self.inner
.ready()
.await
.map_err(|e| {
tonic::Status::new(
tonic::Code::Unknown,
format!("Service was not ready: {}", e.into()),
)
})?;
let codec = tonic::codec::ProstCodec::default();
let path = http::uri::PathAndQuery::from_static(
"/google.actions.sdk.v2.ActionsSdk/ListReleaseChannels",
);
self.inner.unary(request.into_request(), path, codec).await
}
pub async fn list_versions(
&mut self,
request: impl tonic::IntoRequest<super::ListVersionsRequest>,
) -> Result<tonic::Response<super::ListVersionsResponse>, tonic::Status> {
self.inner
.ready()
.await
.map_err(|e| {
tonic::Status::new(
tonic::Code::Unknown,
format!("Service was not ready: {}", e.into()),
)
})?;
let codec = tonic::codec::ProstCodec::default();
let path = http::uri::PathAndQuery::from_static(
"/google.actions.sdk.v2.ActionsSdk/ListVersions",
);
self.inner.unary(request.into_request(), path, codec).await
}
}
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct ExecutionEvent {
#[prost(message, optional, tag="1")]
pub event_time: ::core::option::Option<::prost_types::Timestamp>,
#[prost(message, optional, tag="2")]
pub execution_state: ::core::option::Option<ExecutionState>,
#[prost(message, optional, tag="3")]
pub status: ::core::option::Option<super::super::super::rpc::Status>,
#[prost(string, repeated, tag="17")]
pub warning_messages: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
#[prost(oneof="execution_event::EventData", tags="4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16")]
pub event_data: ::core::option::Option<execution_event::EventData>,
}
pub mod execution_event {
#[derive(Clone, PartialEq, ::prost::Oneof)]
pub enum EventData {
#[prost(message, tag="4")]
UserInput(super::UserConversationInput),
#[prost(message, tag="5")]
IntentMatch(super::IntentMatch),
#[prost(message, tag="6")]
ConditionsEvaluated(super::ConditionsEvaluated),
#[prost(message, tag="7")]
OnSceneEnter(super::OnSceneEnter),
#[prost(message, tag="8")]
WebhookRequest(super::WebhookRequest),
#[prost(message, tag="9")]
WebhookResponse(super::WebhookResponse),
#[prost(message, tag="10")]
WebhookInitiatedTransition(super::WebhookInitiatedTransition),
#[prost(message, tag="11")]
SlotMatch(super::SlotMatch),
#[prost(message, tag="12")]
SlotRequested(super::SlotRequested),
#[prost(message, tag="13")]
SlotValidated(super::SlotValidated),
#[prost(message, tag="14")]
FormFilled(super::FormFilled),
#[prost(message, tag="15")]
WaitingUserInput(super::WaitingForUserInput),
#[prost(message, tag="16")]
EndConversation(super::EndConversation),
}
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct ExecutionState {
#[prost(string, tag="1")]
pub current_scene_id: ::prost::alloc::string::String,
#[prost(message, optional, tag="2")]
pub session_storage: ::core::option::Option<::prost_types::Struct>,
#[prost(message, optional, tag="5")]
pub slots: ::core::option::Option<Slots>,
#[prost(message, repeated, tag="7")]
pub prompt_queue: ::prost::alloc::vec::Vec<conversation::Prompt>,
#[prost(message, optional, tag="6")]
pub user_storage: ::core::option::Option<::prost_types::Struct>,
#[prost(message, optional, tag="8")]
pub household_storage: ::core::option::Option<::prost_types::Struct>,
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct Slots {
#[prost(enumeration="conversation::SlotFillingStatus", tag="2")]
pub status: i32,
#[prost(btree_map="string, message", tag="3")]
pub slots: ::prost::alloc::collections::BTreeMap<::prost::alloc::string::String, conversation::Slot>,
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct UserConversationInput {
#[prost(string, tag="1")]
pub r#type: ::prost::alloc::string::String,
#[prost(string, tag="2")]
pub original_query: ::prost::alloc::string::String,
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct IntentMatch {
#[prost(string, tag="1")]
pub intent_id: ::prost::alloc::string::String,
#[prost(btree_map="string, message", tag="5")]
pub intent_parameters: ::prost::alloc::collections::BTreeMap<::prost::alloc::string::String, conversation::IntentParameterValue>,
#[prost(string, tag="3")]
pub handler: ::prost::alloc::string::String,
#[prost(string, tag="4")]
pub next_scene_id: ::prost::alloc::string::String,
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct ConditionsEvaluated {
#[prost(message, repeated, tag="1")]
pub failed_conditions: ::prost::alloc::vec::Vec<Condition>,
#[prost(message, optional, tag="2")]
pub success_condition: ::core::option::Option<Condition>,
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct Condition {
#[prost(string, tag="1")]
pub expression: ::prost::alloc::string::String,
#[prost(string, tag="2")]
pub handler: ::prost::alloc::string::String,
#[prost(string, tag="3")]
pub next_scene_id: ::prost::alloc::string::String,
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct OnSceneEnter {
#[prost(string, tag="1")]
pub handler: ::prost::alloc::string::String,
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct WebhookInitiatedTransition {
#[prost(string, tag="1")]
pub next_scene_id: ::prost::alloc::string::String,
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct WebhookRequest {
#[prost(string, tag="1")]
pub request_json: ::prost::alloc::string::String,
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct WebhookResponse {
#[prost(string, tag="1")]
pub response_json: ::prost::alloc::string::String,
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct SlotMatch {
#[prost(btree_map="string, message", tag="2")]
pub nlu_parameters: ::prost::alloc::collections::BTreeMap<::prost::alloc::string::String, conversation::IntentParameterValue>,
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct SlotRequested {
#[prost(string, tag="1")]
pub slot: ::prost::alloc::string::String,
#[prost(message, optional, tag="3")]
pub prompt: ::core::option::Option<conversation::Prompt>,
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct SlotValidated {
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct FormFilled {
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct WaitingForUserInput {
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct EndConversation {
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct SendInteractionRequest {
#[prost(string, tag="1")]
pub project: ::prost::alloc::string::String,
#[prost(message, optional, tag="2")]
pub input: ::core::option::Option<UserInput>,
#[prost(message, optional, tag="3")]
pub device_properties: ::core::option::Option<DeviceProperties>,
#[prost(string, tag="4")]
pub conversation_token: ::prost::alloc::string::String,
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct UserInput {
#[prost(string, tag="1")]
pub query: ::prost::alloc::string::String,
#[prost(enumeration="user_input::InputType", tag="2")]
pub r#type: i32,
}
pub mod user_input {
#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
#[repr(i32)]
pub enum InputType {
Unspecified = 0,
Touch = 1,
Voice = 2,
Keyboard = 3,
Url = 4,
}
impl InputType {
pub fn as_str_name(&self) -> &'static str {
match self {
InputType::Unspecified => "INPUT_TYPE_UNSPECIFIED",
InputType::Touch => "TOUCH",
InputType::Voice => "VOICE",
InputType::Keyboard => "KEYBOARD",
InputType::Url => "URL",
}
}
}
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct DeviceProperties {
#[prost(enumeration="device_properties::Surface", tag="1")]
pub surface: i32,
#[prost(message, optional, tag="2")]
pub location: ::core::option::Option<Location>,
#[prost(string, tag="3")]
pub locale: ::prost::alloc::string::String,
#[prost(string, tag="4")]
pub time_zone: ::prost::alloc::string::String,
}
pub mod device_properties {
#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
#[repr(i32)]
pub enum Surface {
Unspecified = 0,
Speaker = 1,
Phone = 2,
Allo = 3,
SmartDisplay = 4,
KaiOs = 5,
}
impl Surface {
pub fn as_str_name(&self) -> &'static str {
match self {
Surface::Unspecified => "SURFACE_UNSPECIFIED",
Surface::Speaker => "SPEAKER",
Surface::Phone => "PHONE",
Surface::Allo => "ALLO",
Surface::SmartDisplay => "SMART_DISPLAY",
Surface::KaiOs => "KAI_OS",
}
}
}
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct Location {
#[prost(message, optional, tag="1")]
pub coordinates: ::core::option::Option<super::super::super::r#type::LatLng>,
#[prost(string, tag="2")]
pub formatted_address: ::prost::alloc::string::String,
#[prost(string, tag="3")]
pub zip_code: ::prost::alloc::string::String,
#[prost(string, tag="4")]
pub city: ::prost::alloc::string::String,
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct SendInteractionResponse {
#[prost(message, optional, tag="1")]
pub output: ::core::option::Option<Output>,
#[prost(message, optional, tag="2")]
pub diagnostics: ::core::option::Option<Diagnostics>,
#[prost(string, tag="3")]
pub conversation_token: ::prost::alloc::string::String,
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct Output {
#[prost(string, tag="1")]
pub text: ::prost::alloc::string::String,
#[prost(string, repeated, tag="2")]
pub speech: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
#[prost(message, optional, tag="3")]
pub canvas: ::core::option::Option<conversation::Canvas>,
#[prost(message, optional, tag="4")]
pub actions_builder_prompt: ::core::option::Option<conversation::Prompt>,
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct Diagnostics {
#[prost(message, repeated, tag="1")]
pub actions_builder_events: ::prost::alloc::vec::Vec<ExecutionEvent>,
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct MatchIntentsRequest {
#[prost(string, tag="1")]
pub project: ::prost::alloc::string::String,
#[prost(string, tag="2")]
pub query: ::prost::alloc::string::String,
#[prost(string, tag="3")]
pub locale: ::prost::alloc::string::String,
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct MatchIntentsResponse {
#[prost(message, repeated, tag="1")]
pub matched_intents: ::prost::alloc::vec::Vec<conversation::Intent>,
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct SetWebAndAppActivityControlRequest {
#[prost(bool, tag="1")]
pub enabled: bool,
}
pub mod actions_testing_client {
#![allow(unused_variables, dead_code, missing_docs, clippy::let_unit_value)]
use tonic::codegen::*;
use tonic::codegen::http::Uri;
#[derive(Debug, Clone)]
pub struct ActionsTestingClient<T> {
inner: tonic::client::Grpc<T>,
}
impl<T> ActionsTestingClient<T>
where
T: tonic::client::GrpcService<tonic::body::BoxBody>,
T::Error: Into<StdError>,
T::ResponseBody: Body<Data = Bytes> + Send + 'static,
<T::ResponseBody as Body>::Error: Into<StdError> + Send,
{
pub fn new(inner: T) -> Self {
let inner = tonic::client::Grpc::new(inner);
Self { inner }
}
pub fn with_origin(inner: T, origin: Uri) -> Self {
let inner = tonic::client::Grpc::with_origin(inner, origin);
Self { inner }
}
pub fn with_interceptor<F>(
inner: T,
interceptor: F,
) -> ActionsTestingClient<InterceptedService<T, F>>
where
F: tonic::service::Interceptor,
T::ResponseBody: Default,
T: tonic::codegen::Service<
http::Request<tonic::body::BoxBody>,
Response = http::Response<
<T as tonic::client::GrpcService<tonic::body::BoxBody>>::ResponseBody,
>,
>,
<T as tonic::codegen::Service<
http::Request<tonic::body::BoxBody>,
>>::Error: Into<StdError> + Send + Sync,
{
ActionsTestingClient::new(InterceptedService::new(inner, interceptor))
}
#[must_use]
pub fn send_compressed(mut self, encoding: CompressionEncoding) -> Self {
self.inner = self.inner.send_compressed(encoding);
self
}
#[must_use]
pub fn accept_compressed(mut self, encoding: CompressionEncoding) -> Self {
self.inner = self.inner.accept_compressed(encoding);
self
}
pub async fn send_interaction(
&mut self,
request: impl tonic::IntoRequest<super::SendInteractionRequest>,
) -> Result<tonic::Response<super::SendInteractionResponse>, tonic::Status> {
self.inner
.ready()
.await
.map_err(|e| {
tonic::Status::new(
tonic::Code::Unknown,
format!("Service was not ready: {}", e.into()),
)
})?;
let codec = tonic::codec::ProstCodec::default();
let path = http::uri::PathAndQuery::from_static(
"/google.actions.sdk.v2.ActionsTesting/SendInteraction",
);
self.inner.unary(request.into_request(), path, codec).await
}
pub async fn match_intents(
&mut self,
request: impl tonic::IntoRequest<super::MatchIntentsRequest>,
) -> Result<tonic::Response<super::MatchIntentsResponse>, tonic::Status> {
self.inner
.ready()
.await
.map_err(|e| {
tonic::Status::new(
tonic::Code::Unknown,
format!("Service was not ready: {}", e.into()),
)
})?;
let codec = tonic::codec::ProstCodec::default();
let path = http::uri::PathAndQuery::from_static(
"/google.actions.sdk.v2.ActionsTesting/MatchIntents",
);
self.inner.unary(request.into_request(), path, codec).await
}
pub async fn set_web_and_app_activity_control(
&mut self,
request: impl tonic::IntoRequest<super::SetWebAndAppActivityControlRequest>,
) -> Result<tonic::Response<()>, tonic::Status> {
self.inner
.ready()
.await
.map_err(|e| {
tonic::Status::new(
tonic::Code::Unknown,
format!("Service was not ready: {}", e.into()),
)
})?;
let codec = tonic::codec::ProstCodec::default();
let path = http::uri::PathAndQuery::from_static(
"/google.actions.sdk.v2.ActionsTesting/SetWebAndAppActivityControl",
);
self.inner.unary(request.into_request(), path, codec).await
}
}
}