private/google/actions/sdk/v2/webhook.proto
// 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/api/field_behavior.proto";
option go_package = "google.golang.org/genproto/googleapis/actions/sdk/v2;sdk";
option java_multiple_files = true;
option java_outer_classname = "WebhookProto";
option java_package = "com.google.actions.sdk.v2";
// Metadata for different types of webhooks. If you're using
// `inlineCloudFunction`, your source code must be in a directory with the same
// name as the value for the `executeFunction` key.
// For example, a value of `my_webhook` for the`executeFunction` key would have
// a code structure like this:
// - `/webhooks/my_webhook.yaml`
// - `/webhooks/my_webhook/index.js`
// - `/webhooks/my_webhook/package.json`
message Webhook {
// Declares the name of the webhoook handler. A webhook can have
// multiple handlers registered. These handlers can be called from multiple
// places in your Actions project.
message Handler {
// Required. Name of the handler. Must be unique across all handlers the Actions
// project. You can check the name of this handler to invoke the correct
// function in your fulfillment source code.
string name = 1 [(google.api.field_behavior) = REQUIRED];
}
// REST endpoint to notify if you're not using the inline editor.
message HttpsEndpoint {
// The HTTPS base URL for your fulfillment endpoint (HTTP is not supported).
// Handler names are appended to the base URL path after a colon
// (following the style guide in
// https://cloud.google.com/apis/design/custom_methods).
// For example a base URL of 'https://gactions.service.com/api' would
// receive requests with URL 'https://gactions.service.com/api:{method}'.
string base_url = 1;
// Map of HTTP parameters to be included in the POST request.
map<string, string> http_headers = 2;
// Version of the protocol used by the endpoint. This is the protocol shared
// by all fulfillment types and not specific to Google fulfillment type.
int32 endpoint_api_version = 3;
}
// Holds the metadata of an inline Cloud Function deployed from the
// webhooks folder.
message InlineCloudFunction {
// The name of the Cloud Function entry point. The value of this field
// should match the name of the method exported from the source code.
string execute_function = 1;
}
// List of handlers for this webhook.
repeated Handler handlers = 1;
// Only one webhook type is supported.
oneof webhook_type {
// Custom webhook HTTPS endpoint.
HttpsEndpoint https_endpoint = 2;
// Metadata for cloud function deployed from code in the webhooks folder.
InlineCloudFunction inline_cloud_function = 3;
}
}