aboutsummaryrefslogtreecommitdiffhomepage
path: root/third_party/googleapis/google/cloud/functions
diff options
context:
space:
mode:
authorGravatar Jakob Buchgraber <buchgr@google.com>2017-05-30 15:49:37 +0200
committerGravatar Jakob Buchgraber <buchgr@google.com>2017-05-30 15:59:48 +0200
commit84a8e95910f069dd03a19b0fc634f95bb0beac95 (patch)
treed3a5cd8e259799e36834b247194c2d1aa3163e16 /third_party/googleapis/google/cloud/functions
parentc7696b47a4a12b1e56e41246770cbd44ad1c9c3e (diff)
Introduce third_party/googleapis
Add `https://github.com/googleapis/googleapis` as a third_party dependency at commit `001f6702ac4cd72194a5120ff978fcfa740783d6`. These protos are required for the upcoming open sourcing of the BES protocol code. Additionally, add (java_)proto_library() rules for the protobufs required by the BES protocol. Change-Id: Ie78a9941a62f2085a58ad859c91161885e6f390d
Diffstat (limited to 'third_party/googleapis/google/cloud/functions')
-rw-r--r--third_party/googleapis/google/cloud/functions/README.md2
-rw-r--r--third_party/googleapis/google/cloud/functions/functions.yaml20
-rw-r--r--third_party/googleapis/google/cloud/functions/v1beta2/functions.proto295
-rw-r--r--third_party/googleapis/google/cloud/functions/v1beta2/functions_gapic.yaml145
-rw-r--r--third_party/googleapis/google/cloud/functions/v1beta2/operations.proto54
5 files changed, 516 insertions, 0 deletions
diff --git a/third_party/googleapis/google/cloud/functions/README.md b/third_party/googleapis/google/cloud/functions/README.md
new file mode 100644
index 0000000000..4a9d225c7b
--- /dev/null
+++ b/third_party/googleapis/google/cloud/functions/README.md
@@ -0,0 +1,2 @@
+API for managing lightweight user-provided functions executed in response to
+events. \ No newline at end of file
diff --git a/third_party/googleapis/google/cloud/functions/functions.yaml b/third_party/googleapis/google/cloud/functions/functions.yaml
new file mode 100644
index 0000000000..01c703bcdf
--- /dev/null
+++ b/third_party/googleapis/google/cloud/functions/functions.yaml
@@ -0,0 +1,20 @@
+type: google.api.Service
+config_version: 0
+name: cloudfunctions.googleapis.com
+title: Google Cloud Functions API
+
+apis:
+- name: google.cloud.functions.v1beta2.CloudFunctionsService
+
+documentation:
+ summary:
+ 'Google Cloud Functions is a lightweight, event-based, asynchronous compute
+ solution that allows you to create small, single-purpose functions that
+ respond to cloud events without the need to manage a server or a runtime
+ environment.'
+
+authentication:
+ rules:
+ - selector: '*'
+ oauth:
+ canonical_scopes: https://www.googleapis.com/auth/cloud-platform
diff --git a/third_party/googleapis/google/cloud/functions/v1beta2/functions.proto b/third_party/googleapis/google/cloud/functions/v1beta2/functions.proto
new file mode 100644
index 0000000000..0280a8dea1
--- /dev/null
+++ b/third_party/googleapis/google/cloud/functions/v1beta2/functions.proto
@@ -0,0 +1,295 @@
+// Copyright 2017 Google Inc.
+//
+// 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.functions.v1beta2;
+
+import "google/api/annotations.proto";
+import "google/api/auth.proto";
+import "google/cloud/functions/v1beta2/operations.proto";
+import "google/longrunning/operations.proto";
+import "google/protobuf/duration.proto";
+import "google/protobuf/timestamp.proto";
+
+option go_package = "google.golang.org/genproto/googleapis/cloud/functions/v1beta2;functions";
+option java_multiple_files = true;
+option java_outer_classname = "FunctionsProto";
+option java_package = "com.google.cloud.functions.v1beta2";
+option objc_class_prefix = "GCF";
+
+
+// A service that application uses to manipulate triggers and functions.
+service CloudFunctionsService {
+ // Returns a list of functions that belong to the requested project.
+ rpc ListFunctions(ListFunctionsRequest) returns (ListFunctionsResponse) {
+ option (google.api.http) = { get: "/v1beta2/{location=projects/*/locations/*}/functions" };
+ }
+
+ // Returns a function with the given name from the requested project.
+ rpc GetFunction(GetFunctionRequest) returns (CloudFunction) {
+ option (google.api.http) = { get: "/v1beta2/{name=projects/*/locations/*/functions/*}" };
+ }
+
+ // Creates a new function. If a function with the given name already exists in
+ // the specified project, the long running operation will return
+ // `ALREADY_EXISTS` error.
+ rpc CreateFunction(CreateFunctionRequest) returns (google.longrunning.Operation) {
+ option (google.api.http) = { post: "/v1beta2/{location=projects/*/locations/*}/functions" body: "function" };
+ }
+
+ // Updates existing function.
+ rpc UpdateFunction(UpdateFunctionRequest) returns (google.longrunning.Operation) {
+ option (google.api.http) = { put: "/v1beta2/{name=projects/*/locations/*/functions/*}" body: "function" };
+ }
+
+ // Deletes a function with the given name from the specified project. If the
+ // given function is used by some trigger, the trigger will be updated to
+ // remove this function.
+ rpc DeleteFunction(DeleteFunctionRequest) returns (google.longrunning.Operation) {
+ option (google.api.http) = { delete: "/v1beta2/{name=projects/*/locations/*/functions/*}" };
+ }
+
+ // Invokes synchronously deployed function. To be used for testing, very
+ // limited traffic allowed.
+ rpc CallFunction(CallFunctionRequest) returns (CallFunctionResponse) {
+ option (google.api.http) = { post: "/v1beta2/{name=projects/*/locations/*/functions/*}:call" body: "*" };
+ }
+}
+
+// Describes a Cloud Function that contains user computation executed in
+// response to an event. It encapsulate function and triggers configurations.
+message CloudFunction {
+ // A user-defined name of the function. Function names must be unique
+ // globally and match pattern `projects/*/locations/*/functions/*`
+ string name = 1;
+
+ // The location of the function source code.
+ oneof source_code {
+ // The URL, starting with gs://, pointing to the zip archive which contains
+ // the function.
+ string source_archive_url = 14;
+
+ // The hosted repository where the function is defined.
+ SourceRepository source_repository = 3;
+ }
+
+ // An event that triggers the function.
+ oneof trigger {
+ // An HTTPS endpoint type of source that can be triggered via URL.
+ HTTPSTrigger https_trigger = 6;
+
+ // A source that fires events in response to a condition in another service.
+ EventTrigger event_trigger = 12;
+ }
+
+ // Output only. Status of the function deployment.
+ CloudFunctionStatus status = 7;
+
+ // Output only. Name of the most recent operation modifying the function. If
+ // the function status is `DEPLOYING` or `DELETING`, then it points to the
+ // active operation.
+ string latest_operation = 8;
+
+ // The name of the function (as defined in source code) that will be
+ // executed. Defaults to the resource name suffix, if not specified. For
+ // backward compatibility, if function with given name is not found, then the
+ // system will try to use function named "function".
+ // For Node.js this is name of a function exported by the module specified
+ // in `source_location`.
+ string entry_point = 9;
+
+ // The function execution timeout. Execution is considered failed and
+ // can be terminated if the function is not completed at the end of the
+ // timeout period. Defaults to 60 seconds.
+ google.protobuf.Duration timeout = 10;
+
+ // The amount of memory in MB available for a function.
+ // Defaults to 256MB.
+ int32 available_memory_mb = 11;
+
+ // Output only. The service account of the function.
+ string service_account = 13;
+
+ // Output only. The last update timestamp of a Cloud Function.
+ google.protobuf.Timestamp update_time = 15;
+}
+
+// Describes HTTPSTrigger, could be used to connect web hooks to function.
+message HTTPSTrigger {
+ // Output only. The deployed url for the function.
+ string url = 1;
+}
+
+// Describes EventTrigger, used to request events be sent from another
+// service.
+message EventTrigger {
+ // `event_type` names contain the service that is sending an event and the
+ // kind of event that was fired. Must be of the form
+ // `providers/*/eventTypes/*` e.g. Directly handle a Message published to
+ // Google Cloud Pub/Sub `providers/cloud.pubsub/eventTypes/topic.publish`
+ //
+ // Handle an object changing in Google Cloud Storage
+ // `providers/cloud.storage/eventTypes/object.change`
+ //
+ // Handle a write to the Firebase Realtime Database
+ // `providers/firebase.database/eventTypes/data.write`
+ string event_type = 1;
+
+ // Which instance of the source's service should send events. E.g. for Pub/Sub
+ // this would be a Pub/Sub topic at `projects/*/topics/*`. For Google Cloud
+ // Storage this would be a bucket at `projects/*/buckets/*`. For any source
+ // that only supports one instance per-project, this should be the name of the
+ // project (`projects/*`)
+ string resource = 2;
+}
+
+// Describes the location of the function source in a remote repository.
+message SourceRepository {
+ // URL to the hosted repository where the function is defined. Only paths in
+ // https://source.developers.google.com domain are supported. The path should
+ // contain the name of the repository.
+ string repository_url = 1;
+
+ // The path within the repository where the function is defined. The path
+ // should point to the directory where Cloud Functions files are located. Use
+ // "/" if the function is defined directly in the root directory of a
+ // repository.
+ string source_path = 2;
+
+ // The version of a function. Defaults to the latest version of the master
+ // branch.
+ oneof version {
+ // The name of the branch from which the function should be fetched.
+ string branch = 3;
+
+ // The name of the tag that captures the state of the repository from
+ // which the function should be fetched.
+ string tag = 4;
+
+ // The id of the revision that captures the state of the repository from
+ // which the function should be fetched.
+ string revision = 5;
+ }
+
+ // Output only. The id of the revision that was resolved at the moment of
+ // function creation or update. For example when a user deployed from a
+ // branch, it will be the revision id of the latest change on this branch at
+ // that time. If user deployed from revision then this value will be always
+ // equal to the revision specified by the user.
+ string deployed_revision = 6;
+}
+
+// Request for the `CreateFunction` method.
+message CreateFunctionRequest {
+ // The project and location in which the function should be created, specified
+ // in the format `projects/*/locations/*`
+ string location = 1;
+
+ // Function to be created.
+ CloudFunction function = 2;
+}
+
+// Request for the `UpdateFunction` method.
+message UpdateFunctionRequest {
+ // The name of the function to be updated.
+ string name = 1;
+
+ // New version of the function.
+ CloudFunction function = 2;
+}
+
+// Request for the `GetFunction` method.
+message GetFunctionRequest {
+ // The name of the function which details should be obtained.
+ string name = 1;
+}
+
+// Request for the `ListFunctions` method.
+message ListFunctionsRequest {
+ // The project and location from which the function should be listed,
+ // specified in the format `projects/*/locations/*`
+ // If you want to list functions in all locations, use "-" in place of a
+ // location.
+ string location = 1;
+
+ // Maximum number of functions to return per call.
+ int32 page_size = 2;
+
+ // The value returned by the last
+ // `ListFunctionsResponse`; indicates that
+ // this is a continuation of a prior `ListFunctions` call, and that the
+ // system should return the next page of data.
+ string page_token = 3;
+}
+
+// Response for the `ListFunctions` method.
+message ListFunctionsResponse {
+ // The functions that match the request.
+ repeated CloudFunction functions = 1;
+
+ // If not empty, indicates that there may be more functions that match
+ // the request; this value should be passed in a new
+ // [google.cloud.functions.v1beta2.ListFunctionsRequest][]
+ // to get more functions.
+ string next_page_token = 2;
+}
+
+// Request for the `DeleteFunction` method.
+message DeleteFunctionRequest {
+ // The name of the function which should be deleted.
+ string name = 1;
+}
+
+// Request for the `CallFunction` method.
+message CallFunctionRequest {
+ // The name of the function to be called.
+ string name = 1;
+
+ // Input to be passed to the function.
+ string data = 2;
+}
+
+// Response of `CallFunction` method.
+message CallFunctionResponse {
+ // Execution id of function invocation.
+ string execution_id = 1;
+
+ // Result populated for successful execution of synchronous function. Will
+ // not be populated if function does not return a result through context.
+ string result = 2;
+
+ // Either system or user-function generated error. Set if execution
+ // was not successful.
+ string error = 3;
+}
+
+// Describes the current stage of a deployment.
+enum CloudFunctionStatus {
+ // Status not specified.
+ STATUS_UNSPECIFIED = 0;
+
+ // Successfully deployed.
+ READY = 1;
+
+ // Not deployed correctly - behavior is undefined. The item should be updated
+ // or deleted to move it out of this state.
+ FAILED = 2;
+
+ // Creation or update in progress.
+ DEPLOYING = 3;
+
+ // Deletion in progress.
+ DELETING = 4;
+}
diff --git a/third_party/googleapis/google/cloud/functions/v1beta2/functions_gapic.yaml b/third_party/googleapis/google/cloud/functions/v1beta2/functions_gapic.yaml
new file mode 100644
index 0000000000..7ef35cf510
--- /dev/null
+++ b/third_party/googleapis/google/cloud/functions/v1beta2/functions_gapic.yaml
@@ -0,0 +1,145 @@
+type: com.google.api.codegen.ConfigProto
+language_settings:
+ java:
+ package_name: com.google.cloud.functions.spi.v1beta2
+ python:
+ package_name: google.cloud.functions.v1beta2
+ go:
+ package_name: cloud.google.com/go/cloud/functions/apiv1beta2
+ csharp:
+ package_name: Google.Cloud.Functions.V1beta2
+ ruby:
+ package_name: Google::Cloud::Functions::V1beta2
+ php:
+ package_name: Google\Cloud\Functions\V1beta2
+ nodejs:
+ package_name: functions.v1beta2
+ domain_layer_location: google-cloud
+license_header:
+ copyright_file: copyright-google.txt
+ license_file: license-header-apache-2.0.txt
+interfaces:
+- name: google.cloud.functions.v1beta2.CloudFunctionsService
+ collections:
+ - name_pattern: projects/{project}/locations/{location}
+ entity_name: location
+ - name_pattern: projects/{project}/locations/{location}/functions/{function}
+ entity_name: function
+ retry_codes_def:
+ - name: idempotent
+ retry_codes:
+ - UNAVAILABLE
+ - DEADLINE_EXCEEDED
+ - name: non_idempotent
+ retry_codes:
+ - UNAVAILABLE
+ retry_params_def:
+ - name: default
+ initial_retry_delay_millis: 100
+ retry_delay_multiplier: 1.3
+ max_retry_delay_millis: 60000
+ initial_rpc_timeout_millis: 20000
+ rpc_timeout_multiplier: 1
+ max_rpc_timeout_millis: 20000
+ total_timeout_millis: 600000
+ methods:
+ - name: ListFunctions
+ flattening:
+ groups:
+ - parameters:
+ - location
+ required_fields:
+ - location
+ request_object_method: true
+ page_streaming:
+ request:
+ page_size_field: page_size
+ token_field: page_token
+ response:
+ token_field: next_page_token
+ resources_field: functions
+ retry_codes_name: idempotent
+ retry_params_name: default
+ field_name_patterns:
+ location: location
+ timeout_millis: 60000
+ - name: GetFunction
+ flattening:
+ groups:
+ - parameters:
+ - name
+ required_fields:
+ - name
+ request_object_method: false
+ retry_codes_name: idempotent
+ retry_params_name: default
+ field_name_patterns:
+ name: function
+ timeout_millis: 60000
+ - name: CreateFunction
+ flattening:
+ groups:
+ - parameters:
+ - location
+ - function
+ required_fields:
+ - location
+ - function
+ request_object_method: true
+ retry_codes_name: non_idempotent
+ retry_params_name: default
+ field_name_patterns:
+ location: location
+ timeout_millis: 60000
+ long_running:
+ return_type: google.cloud.functions.v1beta2.CloudFunction
+ metadata_type: google.cloud.functions.v1beta2.OperationMetadataV1Beta2
+ - name: UpdateFunction
+ flattening:
+ groups:
+ - parameters:
+ - name
+ - function
+ required_fields:
+ - name
+ - function
+ request_object_method: true
+ retry_codes_name: idempotent
+ retry_params_name: default
+ field_name_patterns:
+ name: function
+ timeout_millis: 60000
+ long_running:
+ return_type: google.cloud.functions.v1beta2.CloudFunction
+ metadata_type: google.cloud.functions.v1beta2.OperationMetadataV1Beta2
+ - name: DeleteFunction
+ flattening:
+ groups:
+ - parameters:
+ - name
+ required_fields:
+ - name
+ request_object_method: false
+ retry_codes_name: idempotent
+ retry_params_name: default
+ field_name_patterns:
+ name: function
+ timeout_millis: 60000
+ long_running:
+ return_type: google.protobuf.Empty
+ metadata_type: google.cloud.functions.v1beta2.OperationMetadataV1Beta2
+ - name: CallFunction
+ flattening:
+ groups:
+ - parameters:
+ - name
+ - data
+ required_fields:
+ - name
+ - data
+ request_object_method: true
+ retry_codes_name: non_idempotent
+ retry_params_name: default
+ field_name_patterns:
+ name: function
+ timeout_millis: 60000
diff --git a/third_party/googleapis/google/cloud/functions/v1beta2/operations.proto b/third_party/googleapis/google/cloud/functions/v1beta2/operations.proto
new file mode 100644
index 0000000000..2a6f267e84
--- /dev/null
+++ b/third_party/googleapis/google/cloud/functions/v1beta2/operations.proto
@@ -0,0 +1,54 @@
+// Copyright 2017 Google Inc.
+//
+// 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.functions.v1beta2;
+
+import "google/api/annotations.proto";
+import "google/protobuf/any.proto";
+
+option go_package = "google.golang.org/genproto/googleapis/cloud/functions/v1beta2;functions";
+option java_multiple_files = true;
+option java_outer_classname = "FunctionsOperationsProto";
+option java_package = "com.google.cloud.functions.v1beta2";
+
+
+// Metadata describing an [Operation][google.longrunning.Operation]
+message OperationMetadataV1Beta2 {
+ // Target of the operation - for example
+ // projects/project-1/locations/region-1/functions/function-1
+ string target = 1;
+
+ // Type of operation.
+ OperationType type = 2;
+
+ // The original request that started the operation.
+ google.protobuf.Any request = 3;
+}
+
+// A type of an operation.
+enum OperationType {
+ // Unknown operation type.
+ OPERATION_UNSPECIFIED = 0;
+
+ // Triggered by CreateFunction call
+ CREATE_FUNCTION = 1;
+
+ // Triggered by UpdateFunction call
+ UPDATE_FUNCTION = 2;
+
+ // Triggered by DeleteFunction call.
+ DELETE_FUNCTION = 3;
+}