| // 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.apps.script.type.gmail; |
| |
| import "google/apps/script/type/addon_widget_set.proto"; |
| import "google/apps/script/type/extension_point.proto"; |
| |
| option csharp_namespace = "Google.Apps.Script.Type.Gmail"; |
| option go_package = "google.golang.org/genproto/googleapis/apps/script/type/gmail"; |
| option java_multiple_files = true; |
| option java_outer_classname = "GmailAddOnManifestProto"; |
| option java_package = "com.google.apps.script.type.gmail"; |
| option php_namespace = "Google\\Apps\\Script\\Type\\Gmail"; |
| option ruby_package = "Google::Apps::Script::Type::Gmail"; |
| |
| // Properties customizing the appearance and execution of a Gmail add-on. |
| message GmailAddOnManifest { |
| // Defines an endpoint that will be executed in contexts that don't |
| // match a declared contextual trigger. Any cards generated by this function |
| // will always be available to the user, but may be eclipsed by contextual |
| // content when this add-on declares more targeted triggers. |
| // |
| // If present, this overrides the configuration from |
| // `addOns.common.homepageTrigger`. |
| google.apps.script.type.HomepageExtensionPoint homepage_trigger = 14; |
| |
| // Defines the set of conditions that trigger the add-on. |
| repeated ContextualTrigger contextual_triggers = 3; |
| |
| // Defines set of [universal |
| // actions](/gmail/add-ons/how-tos/universal-actions) for the add-on. The user |
| // triggers universal actions from the add-on toolbar menu. |
| repeated UniversalAction universal_actions = 4; |
| |
| // Defines the compose time trigger for a compose time add-on. This is the |
| // trigger that causes an add-on to take action when the user is composing an |
| // email. |
| // All compose time addons are required to have the |
| // gmail.addons.current.action.compose scope even though it might not edit the |
| // draft. |
| ComposeTrigger compose_trigger = 12; |
| |
| // The name of an endpoint that verifies that the add-on has |
| // all the required third-party authorizations, by probing the third-party |
| // APIs. If the probe fails, the function should throw an exception to |
| // initiate the authorization flow. This function is called before each |
| // invocation of the add-on, in order to ensure a smooth user experience. |
| string authorization_check_function = 7; |
| } |
| |
| // An action that is always available in the add-on toolbar menu regardless of |
| // message context. |
| message UniversalAction { |
| // Required. User-visible text describing the action, for example, "Add a new |
| // contact." |
| string text = 1; |
| |
| // The type of the action determines the behavior of Gmail when the user |
| // invokes the action. |
| oneof action_type { |
| // A link that is opened by Gmail when the user triggers the action. |
| string open_link = 2; |
| |
| // An endpoint that is called when the user triggers the |
| // action. See the [universal actions |
| // guide](/gmail/add-ons/how-tos/universal-actions) for details. |
| string run_function = 3; |
| } |
| } |
| |
| // A trigger that activates when user is composing an email. |
| message ComposeTrigger { |
| // An enum defining the level of data access this compose trigger requires. |
| enum DraftAccess { |
| // Default value when nothing is set for DraftAccess. |
| UNSPECIFIED = 0; |
| |
| // NONE means compose trigger won't be able to access any data of the draft |
| // when a compose addon is triggered. |
| NONE = 1; |
| |
| // METADATA gives compose trigger the permission to access the metadata of |
| // the draft when a compose addon is triggered. This includes the audience |
| // list (To/cc list) of a draft message. |
| METADATA = 2; |
| } |
| |
| // Defines the set of actions for compose time add-on. These are actions |
| // that user can trigger on a compose time addon. |
| repeated google.apps.script.type.MenuItemExtensionPoint actions = 5; |
| |
| // Define the level of data access when a compose time addon is triggered. |
| DraftAccess draft_access = 4; |
| } |
| |
| // Defines a trigger that fires when the open email meets a specific criteria. |
| // When the trigger fires, it executes a specific endpoint, usually |
| // in order to create new cards and update the UI. |
| message ContextualTrigger { |
| // The type of trigger determines the conditions Gmail uses to show the |
| // add-on. |
| oneof trigger { |
| // UnconditionalTriggers are executed when any mail message is opened. |
| UnconditionalTrigger unconditional = 1; |
| } |
| |
| // Required. The name of the endpoint to call when a message matches the |
| // trigger. |
| string on_trigger_function = 4; |
| } |
| |
| // A trigger that fires when any email message is opened. |
| message UnconditionalTrigger {} |