blob: 3d21cd28ca6083a1faf60a8c8fec25050f52b261 [file]
// 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.calendar;
import "google/api/field_behavior.proto";
import "google/apps/script/type/extension_point.proto";
option csharp_namespace = "Google.Apps.Script.Type.Calendar";
option go_package = "google.golang.org/genproto/googleapis/apps/script/type/calendar";
option java_multiple_files = true;
option java_outer_classname = "CalendarAddOnManifestProto";
option java_package = "com.google.apps.script.type.calendar";
option php_namespace = "Google\\Apps\\Script\\Type\\Calendar";
option ruby_package = "Google::Apps::Script::Type::Calendar";
// Manifest section specific to Calendar Add-ons.
// Calendar add-on manifest.
message CalendarAddOnManifest {
// An enum defining the level of data access event triggers require.
enum EventAccess {
// Default value when nothing is set for EventAccess.
UNSPECIFIED = 0;
// METADATA gives event triggers the permission to access the metadata of
// events such as event id and calendar id.
METADATA = 1;
// READ gives event triggers access to all provided event fields including
// the metadata, attendees, and conference data.
READ = 3;
// WRITE gives event triggers access to the metadata of events and the
// ability to perform all actions, including adding attendees and setting
// conference data.
WRITE = 4;
// READ_WRITE gives event triggers access to all provided event fields
// including the metadata, attendees, and conference data and the ability to
// perform all actions.
READ_WRITE = 5;
}
// Defines an endpoint that will be executed 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 = 6;
// Defines conference solutions provided by this add-on.
repeated ConferenceSolution conference_solution = 3;
// An endpoint to execute that creates a URL to the add-on's settings page.
string create_settings_url_function = 5;
// An endpoint to trigger when an event is opened (viewed/edited).
CalendarExtensionPoint event_open_trigger = 10;
// An endpoint to trigger when the open event is updated.
CalendarExtensionPoint event_update_trigger = 11;
// Define the level of data access when an event addon is triggered.
EventAccess current_event_access = 12;
}
// Defines conference related values.
message ConferenceSolution {
// Required. The endpoint to call when ConferenceData should be created.
string on_create_function = 1 [(google.api.field_behavior) = REQUIRED];
// Required. IDs should be unique across ConferenceSolutions within one
// add-on, but this is not strictly enforced. It is up to the add-on developer
// to assign them uniquely, otherwise the wrong ConferenceSolution may be
// used when the add-on is triggered. While the developer may change the
// display name of an add-on, the ID should not be changed.
string id = 4 [(google.api.field_behavior) = REQUIRED];
// Required. The display name of the ConferenceSolution.
string name = 5 [(google.api.field_behavior) = REQUIRED];
// Required. The URL for the logo image of the ConferenceSolution.
string logo_url = 6 [(google.api.field_behavior) = REQUIRED];
}
// Common format for declaring a calendar add-on's triggers.
message CalendarExtensionPoint {
// Required. The endpoint to execute when this extension point is
// activated.
string run_function = 1 [(google.api.field_behavior) = REQUIRED];
}