123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389 |
- // 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.cloud.gsuiteaddons.v1;
- import "google/api/annotations.proto";
- import "google/api/client.proto";
- import "google/api/field_behavior.proto";
- import "google/api/resource.proto";
- import "google/apps/script/type/calendar/calendar_addon_manifest.proto";
- import "google/apps/script/type/docs/docs_addon_manifest.proto";
- import "google/apps/script/type/drive/drive_addon_manifest.proto";
- import "google/apps/script/type/gmail/gmail_addon_manifest.proto";
- import "google/apps/script/type/script_manifest.proto";
- import "google/apps/script/type/sheets/sheets_addon_manifest.proto";
- import "google/apps/script/type/slides/slides_addon_manifest.proto";
- import "google/protobuf/empty.proto";
- import "google/protobuf/wrappers.proto";
- option csharp_namespace = "Google.Cloud.GSuiteAddOns.V1";
- option go_package = "google.golang.org/genproto/googleapis/cloud/gsuiteaddons/v1;gsuiteaddons";
- option java_multiple_files = true;
- option java_outer_classname = "GSuiteAddOnsProto";
- option java_package = "com.google.cloud.gsuiteaddons.v1";
- option php_namespace = "Google\\Cloud\\GSuiteAddOns\\V1";
- option ruby_package = "Google::Cloud::GSuiteAddOns::V1";
- // A service for managing Google Workspace Add-ons deployments.
- //
- // A Google Workspace Add-on is a third-party embedded component that can be
- // installed in Google Workspace Applications like Gmail, Calendar, Drive, and
- // the Google Docs, Sheets, and Slides editors. Google Workspace Add-ons can
- // display UI cards, receive contextual information from the host application,
- // and perform actions in the host application (See:
- // https://developers.google.com/gsuite/add-ons/overview for more information).
- //
- // A Google Workspace Add-on deployment resource specifies metadata about the
- // add-on, including a specification of the entry points in the host application
- // that trigger add-on executions (see:
- // https://developers.google.com/gsuite/add-ons/concepts/gsuite-manifests).
- // Add-on deployments defined via the Google Workspace Add-ons API define their
- // entrypoints using HTTPS URLs (See:
- // https://developers.google.com/gsuite/add-ons/guides/alternate-runtimes),
- //
- // A Google Workspace Add-on deployment can be installed in developer mode,
- // which allows an add-on developer to test the experience an end-user would see
- // when installing and running the add-on in their G Suite applications. When
- // running in developer mode, more detailed error messages are exposed in the
- // add-on UI to aid in debugging.
- //
- // A Google Workspace Add-on deployment can be published to Google Workspace
- // Marketplace, which allows other Google Workspace users to discover and
- // install the add-on. See:
- // https://developers.google.com/gsuite/add-ons/how-tos/publish-add-on-overview
- // for details.
- service GSuiteAddOns {
- option (google.api.default_host) = "gsuiteaddons.googleapis.com";
- option (google.api.oauth_scopes) =
- "https://www.googleapis.com/auth/cloud-platform";
- // Gets the authorization information for deployments in a given project.
- rpc GetAuthorization(GetAuthorizationRequest) returns (Authorization) {
- option (google.api.http) = {
- get: "/v1/{name=projects/*/authorization}"
- };
- option (google.api.method_signature) = "name";
- }
- // Creates a deployment with the specified name and configuration.
- rpc CreateDeployment(CreateDeploymentRequest) returns (Deployment) {
- option (google.api.http) = {
- post: "/v1/{parent=projects/*}/deployments"
- body: "deployment"
- };
- option (google.api.method_signature) = "parent,deployment,deployment_id";
- }
- // Creates or replaces a deployment with the specified name.
- rpc ReplaceDeployment(ReplaceDeploymentRequest) returns (Deployment) {
- option (google.api.http) = {
- put: "/v1/{deployment.name=projects/*/deployments/*}"
- body: "deployment"
- };
- option (google.api.method_signature) = "deployment";
- }
- // Gets the deployment with the specified name.
- rpc GetDeployment(GetDeploymentRequest) returns (Deployment) {
- option (google.api.http) = {
- get: "/v1/{name=projects/*/deployments/*}"
- };
- option (google.api.method_signature) = "name";
- }
- // Lists all deployments in a particular project.
- rpc ListDeployments(ListDeploymentsRequest)
- returns (ListDeploymentsResponse) {
- option (google.api.http) = {
- get: "/v1/{parent=projects/*}/deployments"
- };
- option (google.api.method_signature) = "parent";
- }
- // Deletes the deployment with the given name.
- rpc DeleteDeployment(DeleteDeploymentRequest)
- returns (google.protobuf.Empty) {
- option (google.api.http) = {
- delete: "/v1/{name=projects/*/deployments/*}"
- };
- option (google.api.method_signature) = "name";
- }
- // Installs a deployment in developer mode.
- // See:
- // https://developers.google.com/gsuite/add-ons/how-tos/testing-gsuite-addons.
- rpc InstallDeployment(InstallDeploymentRequest)
- returns (google.protobuf.Empty) {
- option (google.api.http) = {
- post: "/v1/{name=projects/*/deployments/*}:install"
- body: "*"
- };
- option (google.api.method_signature) = "name";
- }
- // Uninstalls a developer mode deployment.
- // See:
- // https://developers.google.com/gsuite/add-ons/how-tos/testing-gsuite-addons.
- rpc UninstallDeployment(UninstallDeploymentRequest)
- returns (google.protobuf.Empty) {
- option (google.api.http) = {
- post: "/v1/{name=projects/*/deployments/*}:uninstall"
- body: "*"
- };
- option (google.api.method_signature) = "name";
- }
- // Fetches the install status of a developer mode deployment.
- rpc GetInstallStatus(GetInstallStatusRequest) returns (InstallStatus) {
- option (google.api.http) = {
- get: "/v1/{name=projects/*/deployments/*/installStatus}"
- };
- option (google.api.method_signature) = "name";
- }
- }
- // Request message to get Google Workspace Add-ons authorization information.
- message GetAuthorizationRequest {
- // Required. Name of the project for which to get the Google Workspace Add-ons
- // authorization information.
- //
- // Example: `projects/my_project/authorization`.
- string name = 2 [
- (google.api.field_behavior) = REQUIRED,
- (google.api.resource_reference) = {
- type: "gsuiteaddons.googleapis.com/Authorization"
- }
- ];
- }
- // The authorization information used when invoking deployment endpoints.
- message Authorization {
- option (google.api.resource) = {
- type: "gsuiteaddons.googleapis.com/Authorization"
- pattern: "projects/{project}/authorization"
- };
- // The canonical full name of this resource.
- // Example: `projects/123/authorization`
- string name = 1;
- // The email address of the service account used to authenticate requests to
- // add-on callback endpoints.
- string service_account_email = 2;
- // The OAuth client ID used to obtain OAuth access tokens for a user on the
- // add-on's behalf.
- string oauth_client_id = 3;
- }
- // Request message to create a deployment.
- message CreateDeploymentRequest {
- // Required. Name of the project in which to create the deployment.
- //
- // Example: `projects/my_project`.
- string parent = 1 [
- (google.api.field_behavior) = REQUIRED,
- (google.api.resource_reference) = {
- type: "cloudresourcemanager.googleapis.com/Project"
- }
- ];
- // Required. The id to use for this deployment. The full name of the created
- // resource will be `projects/<project_number>/deployments/<deployment_id>`.
- string deployment_id = 2 [(google.api.field_behavior) = REQUIRED];
- // Required. The deployment to create (deployment.name cannot be set).
- Deployment deployment = 3 [(google.api.field_behavior) = REQUIRED];
- }
- // Request message to create or replace a deployment.
- message ReplaceDeploymentRequest {
- // Required. The deployment to create or replace.
- Deployment deployment = 2 [(google.api.field_behavior) = REQUIRED];
- }
- // Request message to get a deployment.
- message GetDeploymentRequest {
- // Required. The full resource name of the deployment to get.
- //
- // Example: `projects/my_project/deployments/my_deployment`.
- string name = 1 [
- (google.api.field_behavior) = REQUIRED,
- (google.api.resource_reference) = {
- type: "gsuiteaddons.googleapis.com/Deployment"
- }
- ];
- }
- // Request message to list deployments for a project.
- message ListDeploymentsRequest {
- // Required. Name of the project in which to create the deployment.
- //
- // Example: `projects/my_project`.
- string parent = 1 [
- (google.api.field_behavior) = REQUIRED,
- (google.api.resource_reference) = {
- type: "cloudresourcemanager.googleapis.com/Project"
- }
- ];
- // The maximum number of deployments to return. The service may return fewer
- // than this value.
- // If unspecified, at most 1000 deployments will be returned.
- // The maximum value is 1000; values above 1000 will be coerced to 1000.
- int32 page_size = 2;
- // A page token, received from a previous `ListDeployments` call.
- // Provide this to retrieve the subsequent page.
- //
- // When paginating, all other parameters provided to `ListDeployments` must
- // match the call that provided the page token.
- string page_token = 3;
- }
- // Response message to list deployments.
- message ListDeploymentsResponse {
- // The list of deployments for the given project.
- repeated Deployment deployments = 1;
- // A token, which can be sent as `page_token` to retrieve the next page.
- // If this field is omitted, there are no subsequent pages.
- string next_page_token = 2;
- }
- // Request message to delete a deployment.
- message DeleteDeploymentRequest {
- // Required. The full resource name of the deployment to delete.
- //
- // Example: `projects/my_project/deployments/my_deployment`.
- string name = 1 [
- (google.api.field_behavior) = REQUIRED,
- (google.api.resource_reference) = {
- type: "gsuiteaddons.googleapis.com/Deployment"
- }
- ];
- // The etag of the deployment to delete.
- // If this is provided, it must match the server's etag.
- string etag = 2;
- }
- // Request message to install a developer mode deployment.
- message InstallDeploymentRequest {
- // Required. The full resource name of the deployment to install.
- //
- // Example: `projects/my_project/deployments/my_deployment`.
- string name = 1 [
- (google.api.field_behavior) = REQUIRED,
- (google.api.resource_reference) = {
- type: "gsuiteaddons.googleapis.com/Deployment"
- }
- ];
- }
- // Request message to uninstall a developer mode deployment.
- message UninstallDeploymentRequest {
- // Required. The full resource name of the deployment to install.
- //
- // Example: `projects/my_project/deployments/my_deployment`.
- string name = 1 [
- (google.api.field_behavior) = REQUIRED,
- (google.api.resource_reference) = {
- type: "gsuiteaddons.googleapis.com/Deployment"
- }
- ];
- }
- // Request message to get the install status of a developer mode deployment.
- message GetInstallStatusRequest {
- // Required. The full resource name of the deployment.
- //
- // Example: `projects/my_project/deployments/my_deployment/installStatus`.
- string name = 1 [
- (google.api.field_behavior) = REQUIRED,
- (google.api.resource_reference) = {
- type: "gsuiteaddons.googleapis.com/InstallStatus"
- }
- ];
- }
- // Developer mode install status of a deployment
- message InstallStatus {
- option (google.api.resource) = {
- type: "gsuiteaddons.googleapis.com/InstallStatus"
- pattern: "projects/{project}/deployments/{deployment}/installStatus"
- };
- // The canonical full resource name of the deployment install status.
- //
- // Example: `projects/123/deployments/my_deployment/installStatus`.
- string name = 1;
- // True if the deployment is installed for the user
- google.protobuf.BoolValue installed = 2;
- }
- // A Google Workspace Add-on deployment
- message Deployment {
- option (google.api.resource) = {
- type: "gsuiteaddons.googleapis.com/Deployment"
- pattern: "projects/{project}/deployments/{deployment}"
- };
- // The deployment resource name.
- // Example: projects/123/deployments/my_deployment.
- string name = 1;
- // The list of Google OAuth scopes for which to request consent from the end
- // user before executing an add-on endpoint.
- repeated string oauth_scopes = 2;
- // The Google Workspace Add-on configuration.
- AddOns add_ons = 3;
- // This value is computed by the server based on the version of the
- // deployment in storage, and may be sent on update and delete requests to
- // ensure the client has an up-to-date value before proceeding.
- string etag = 5;
- }
- // A Google Workspace Add-on configuration.
- message AddOns {
- // Configuration that is common across all Google Workspace Add-ons.
- google.apps.script.type.CommonAddOnManifest common = 1;
- // Gmail add-on configuration.
- google.apps.script.type.gmail.GmailAddOnManifest gmail = 2;
- // Drive add-on configuration.
- google.apps.script.type.drive.DriveAddOnManifest drive = 5;
- // Calendar add-on configuration.
- google.apps.script.type.calendar.CalendarAddOnManifest calendar = 6;
- // Docs add-on configuration.
- google.apps.script.type.docs.DocsAddOnManifest docs = 7;
- // Sheets add-on configuration.
- google.apps.script.type.sheets.SheetsAddOnManifest sheets = 8;
- // Slides add-on configuration.
- google.apps.script.type.slides.SlidesAddOnManifest slides = 10;
- // Options for sending requests to add-on HTTP endpoints
- google.apps.script.type.HttpOptions http_options = 15;
- }
|