diff options
author | 2017-05-30 15:49:37 +0200 | |
---|---|---|
committer | 2017-05-30 15:59:48 +0200 | |
commit | 84a8e95910f069dd03a19b0fc634f95bb0beac95 (patch) | |
tree | d3a5cd8e259799e36834b247194c2d1aa3163e16 /third_party/googleapis/google/cloud/functions | |
parent | c7696b47a4a12b1e56e41246770cbd44ad1c9c3e (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')
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; +} |