summaryrefslogtreecommitdiff
path: root/third_party/googleapis/google/appengine
diff options
context:
space:
mode:
authorn1c00o <git.n1c00o@gmail.com>2022-10-12 18:05:45 +0200
committern1c00o <git.n1c00o@gmail.com>2022-10-12 18:05:45 +0200
commit9bcf3fedd50bd6c8dfef1673482d9b61fab49cd0 (patch)
tree45f3b754ece09b90bde859bc6e7eae4d3c31a848 /third_party/googleapis/google/appengine
parent2e1a2ee3d6c12d8367cbbe005fe7dcf8d253d9ac (diff)
Revendor correctly googleapis
Diffstat (limited to 'third_party/googleapis/google/appengine')
-rw-r--r--third_party/googleapis/google/appengine/BUILD.bazel40
-rw-r--r--third_party/googleapis/google/appengine/README.md12
-rw-r--r--third_party/googleapis/google/appengine/legacy/BUILD.bazel177
-rw-r--r--third_party/googleapis/google/appengine/legacy/audit_data.proto33
-rw-r--r--third_party/googleapis/google/appengine/logging/v1/BUILD.bazel177
-rw-r--r--third_party/googleapis/google/appengine/logging/v1/request_log.proto196
-rw-r--r--third_party/googleapis/google/appengine/v1/BUILD.bazel414
-rw-r--r--third_party/googleapis/google/appengine/v1/app_yaml.proto348
-rw-r--r--third_party/googleapis/google/appengine/v1/appengine.proto1008
-rw-r--r--third_party/googleapis/google/appengine/v1/appengine_grpc_service_config.json17
-rw-r--r--third_party/googleapis/google/appengine/v1/appengine_v1.yaml236
-rw-r--r--third_party/googleapis/google/appengine/v1/application.proto198
-rw-r--r--third_party/googleapis/google/appengine/v1/audit_data.proto54
-rw-r--r--third_party/googleapis/google/appengine/v1/certificate.proto172
-rw-r--r--third_party/googleapis/google/appengine/v1/deploy.proto107
-rw-r--r--third_party/googleapis/google/appengine/v1/deployed_files.proto25
-rw-r--r--third_party/googleapis/google/appengine/v1/domain.proto40
-rw-r--r--third_party/googleapis/google/appengine/v1/domain_mapping.proto123
-rw-r--r--third_party/googleapis/google/appengine/v1/firewall.proto68
-rw-r--r--third_party/googleapis/google/appengine/v1/instance.proto143
-rw-r--r--third_party/googleapis/google/appengine/v1/location.proto44
-rw-r--r--third_party/googleapis/google/appengine/v1/network_settings.proto47
-rw-r--r--third_party/googleapis/google/appengine/v1/operation.proto79
-rw-r--r--third_party/googleapis/google/appengine/v1/service.proto106
-rw-r--r--third_party/googleapis/google/appengine/v1/version.proto594
-rw-r--r--third_party/googleapis/google/appengine/v1beta/BUILD.bazel192
-rw-r--r--third_party/googleapis/google/appengine/v1beta/app_yaml.proto348
-rw-r--r--third_party/googleapis/google/appengine/v1beta/appengine.proto1006
-rw-r--r--third_party/googleapis/google/appengine/v1beta/application.proto193
-rw-r--r--third_party/googleapis/google/appengine/v1beta/audit_data.proto54
-rw-r--r--third_party/googleapis/google/appengine/v1beta/certificate.proto172
-rw-r--r--third_party/googleapis/google/appengine/v1beta/deploy.proto118
-rw-r--r--third_party/googleapis/google/appengine/v1beta/domain.proto41
-rw-r--r--third_party/googleapis/google/appengine/v1beta/domain_mapping.proto118
-rw-r--r--third_party/googleapis/google/appengine/v1beta/firewall.proto69
-rw-r--r--third_party/googleapis/google/appengine/v1beta/instance.proto143
-rw-r--r--third_party/googleapis/google/appengine/v1beta/location.proto44
-rw-r--r--third_party/googleapis/google/appengine/v1beta/network_settings.proto48
-rw-r--r--third_party/googleapis/google/appengine/v1beta/operation.proto79
-rw-r--r--third_party/googleapis/google/appengine/v1beta/service.proto93
-rw-r--r--third_party/googleapis/google/appengine/v1beta/version.proto607
41 files changed, 7783 insertions, 0 deletions
diff --git a/third_party/googleapis/google/appengine/BUILD.bazel b/third_party/googleapis/google/appengine/BUILD.bazel
new file mode 100644
index 0000000..8a194ed
--- /dev/null
+++ b/third_party/googleapis/google/appengine/BUILD.bazel
@@ -0,0 +1,40 @@
+# This build file includes a target for the Ruby wrapper library for
+# google-cloud-app_engine.
+
+# This is an API workspace, having public visibility by default makes perfect sense.
+package(default_visibility = ["//visibility:public"])
+
+# Export yaml configs.
+exports_files(glob(["*.yaml"]))
+
+load(
+ "@com_google_googleapis_imports//:imports.bzl",
+ "ruby_cloud_gapic_library",
+ "ruby_gapic_assembly_pkg",
+)
+
+# Generates a Ruby wrapper client for appengine.
+# Ruby wrapper clients are versionless, but are generated from source protos
+# for a particular service version, v1 in this case.
+ruby_cloud_gapic_library(
+ name = "appengine_ruby_wrapper",
+ srcs = ["//google/appengine/v1:appengine_proto_with_info"],
+ extra_protoc_parameters = [
+ "ruby-cloud-gem-name=google-cloud-app_engine",
+ "ruby-cloud-env-prefix=APP_ENGINE",
+ "ruby-cloud-wrapper-of=v1:0.3",
+ "ruby-cloud-product-url=https://cloud.google.com/appengine/docs/admin-api/",
+ "ruby-cloud-api-id=appengine.googleapis.com",
+ "ruby-cloud-api-shortname=appengine",
+ ],
+ ruby_cloud_description = "The App Engine Admin API provisions and manages your App Engine applications.",
+ ruby_cloud_title = "App Engine Admin",
+)
+
+# Open Source package.
+ruby_gapic_assembly_pkg(
+ name = "google-cloud-appengine-ruby",
+ deps = [
+ ":appengine_ruby_wrapper",
+ ],
+)
diff --git a/third_party/googleapis/google/appengine/README.md b/third_party/googleapis/google/appengine/README.md
new file mode 100644
index 0000000..54e45e6
--- /dev/null
+++ b/third_party/googleapis/google/appengine/README.md
@@ -0,0 +1,12 @@
+# Google App Engine Admin API
+
+## Overview
+
+The Google App Engine Admin API is a RESTful API for managing App Engine
+applications. The Admin API provides programmatic access to several of the App
+Engine administrative operations that are found in the
+[Google Cloud Platform Console](https://cloud.google.com/appengine/docs/developers-console).
+
+## Documentation
+
+[Google App Engine Admin API Documentation](https://cloud.google.com/appengine/docs/admin-api/) \ No newline at end of file
diff --git a/third_party/googleapis/google/appengine/legacy/BUILD.bazel b/third_party/googleapis/google/appengine/legacy/BUILD.bazel
new file mode 100644
index 0000000..bea806a
--- /dev/null
+++ b/third_party/googleapis/google/appengine/legacy/BUILD.bazel
@@ -0,0 +1,177 @@
+# This file was automatically generated by BuildFileGenerator
+
+# This is an API workspace, having public visibility by default makes perfect sense.
+package(default_visibility = ["//visibility:public"])
+
+##############################################################################
+# Common
+##############################################################################
+load("@rules_proto//proto:defs.bzl", "proto_library")
+
+proto_library(
+ name = "legacy_proto",
+ srcs = [
+ "audit_data.proto",
+ ],
+ deps = [
+ "//google/api:annotations_proto",
+ ],
+)
+
+##############################################################################
+# Java
+##############################################################################
+load(
+ "@com_google_googleapis_imports//:imports.bzl",
+ "java_grpc_library",
+ "java_proto_library",
+)
+
+java_proto_library(
+ name = "legacy_java_proto",
+ deps = [":legacy_proto"],
+)
+
+java_grpc_library(
+ name = "legacy_java_grpc",
+ srcs = [":legacy_proto"],
+ deps = [":legacy_java_proto"],
+)
+
+##############################################################################
+# Go
+##############################################################################
+load(
+ "@com_google_googleapis_imports//:imports.bzl",
+ "go_proto_library",
+)
+
+go_proto_library(
+ name = "legacy_go_proto",
+ compilers = ["@io_bazel_rules_go//proto:go_grpc"],
+ importpath = "google.golang.org/genproto/googleapis/appengine/legacy",
+ protos = [":legacy_proto"],
+ deps = [
+ "//google/api:annotations_go_proto",
+ ],
+)
+
+##############################################################################
+# Python
+##############################################################################
+load(
+ "@com_google_googleapis_imports//:imports.bzl",
+ "moved_proto_library",
+ "py_grpc_library",
+ "py_proto_library",
+)
+
+moved_proto_library(
+ name = "legacy_moved_proto",
+ srcs = [":legacy_proto"],
+ deps = [
+ "//google/api:annotations_proto",
+ ],
+)
+
+py_proto_library(
+ name = "legacy_py_proto",
+ deps = [":legacy_moved_proto"],
+)
+
+py_grpc_library(
+ name = "legacy_py_grpc",
+ srcs = [":legacy_moved_proto"],
+ deps = [":legacy_py_proto"],
+)
+
+##############################################################################
+# PHP
+##############################################################################
+load(
+ "@com_google_googleapis_imports//:imports.bzl",
+ "php_grpc_library",
+ "php_proto_library",
+)
+
+php_proto_library(
+ name = "legacy_php_proto",
+ deps = [":legacy_proto"],
+)
+
+php_grpc_library(
+ name = "legacy_php_grpc",
+ srcs = [":legacy_proto"],
+ deps = [":legacy_php_proto"],
+)
+
+##############################################################################
+# Node.js
+##############################################################################
+load(
+ "@com_google_googleapis_imports//:imports.bzl",
+ "nodejs_gapic_assembly_pkg",
+ "nodejs_gapic_library",
+)
+
+
+##############################################################################
+# Ruby
+##############################################################################
+load(
+ "@com_google_googleapis_imports//:imports.bzl",
+ "ruby_grpc_library",
+ "ruby_proto_library",
+)
+
+ruby_proto_library(
+ name = "legacy_ruby_proto",
+ deps = [":legacy_proto"],
+)
+
+ruby_grpc_library(
+ name = "legacy_ruby_grpc",
+ srcs = [":legacy_proto"],
+ deps = [":legacy_ruby_proto"],
+)
+
+##############################################################################
+# C#
+##############################################################################
+load(
+ "@com_google_googleapis_imports//:imports.bzl",
+ "csharp_grpc_library",
+ "csharp_proto_library",
+)
+
+csharp_proto_library(
+ name = "legacy_csharp_proto",
+ deps = [":legacy_proto"],
+)
+
+csharp_grpc_library(
+ name = "legacy_csharp_grpc",
+ srcs = [":legacy_proto"],
+ deps = [":legacy_csharp_proto"],
+)
+
+##############################################################################
+# C++
+##############################################################################
+load(
+ "@com_google_googleapis_imports//:imports.bzl",
+ "cc_grpc_library",
+ "cc_proto_library",
+)
+
+cc_proto_library(
+ name = "legacy_cc_proto",
+ deps = [":legacy_proto"],
+)
+
+cc_grpc_library(
+ name = "legacy_cc_grpc",
+ srcs = [":legacy_proto"],
+ grpc_only = True,
+ deps = [":legacy_cc_proto"],
+)
diff --git a/third_party/googleapis/google/appengine/legacy/audit_data.proto b/third_party/googleapis/google/appengine/legacy/audit_data.proto
new file mode 100644
index 0000000..e521726
--- /dev/null
+++ b/third_party/googleapis/google/appengine/legacy/audit_data.proto
@@ -0,0 +1,33 @@
+// 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.appengine.legacy;
+
+option go_package = "google.golang.org/genproto/googleapis/appengine/legacy;legacy";
+option java_multiple_files = true;
+option java_outer_classname = "AuditDataProto";
+option java_package = "com.google.appengine.legacy";
+
+// Admin Console legacy audit log.
+message AuditData {
+ // Text description of the admin event.
+ // This is the "Event" column in Admin Console's Admin Logs.
+ string event_message = 1;
+
+ // Arbitrary event data.
+ // This is the "Result" column in Admin Console's Admin Logs.
+ map<string, string> event_data = 2;
+}
diff --git a/third_party/googleapis/google/appengine/logging/v1/BUILD.bazel b/third_party/googleapis/google/appengine/logging/v1/BUILD.bazel
new file mode 100644
index 0000000..2ea7513
--- /dev/null
+++ b/third_party/googleapis/google/appengine/logging/v1/BUILD.bazel
@@ -0,0 +1,177 @@
+# This file was automatically generated by BuildFileGenerator
+
+# This is an API workspace, having public visibility by default makes perfect sense.
+package(default_visibility = ["//visibility:public"])
+
+##############################################################################
+# Common
+##############################################################################
+load("@rules_proto//proto:defs.bzl", "proto_library")
+
+proto_library(
+ name = "logging_proto",
+ srcs = [
+ "request_log.proto",
+ ],
+ deps = [
+ "//google/logging/type:type_proto",
+ "@com_google_protobuf//:duration_proto",
+ "@com_google_protobuf//:timestamp_proto",
+ ],
+)
+
+##############################################################################
+# Java
+##############################################################################
+load(
+ "@com_google_googleapis_imports//:imports.bzl",
+ "java_grpc_library",
+ "java_proto_library",
+)
+
+java_proto_library(
+ name = "logging_java_proto",
+ deps = [":logging_proto"],
+)
+
+java_grpc_library(
+ name = "logging_java_grpc",
+ srcs = [":logging_proto"],
+ deps = [":logging_java_proto"],
+)
+
+##############################################################################
+# Go
+##############################################################################
+load(
+ "@com_google_googleapis_imports//:imports.bzl",
+ "go_proto_library",
+)
+
+go_proto_library(
+ name = "logging_go_proto",
+ compilers = ["@io_bazel_rules_go//proto:go_grpc"],
+ importpath = "google.golang.org/genproto/googleapis/appengine/logging/v1",
+ protos = [":logging_proto"],
+ deps = [
+ "//google/logging/type:type_go_proto",
+ ],
+)
+
+##############################################################################
+# Python
+##############################################################################
+load(
+ "@com_google_googleapis_imports//:imports.bzl",
+ "py_gapic_assembly_pkg",
+ "py_gapic_library",
+)
+
+py_gapic_library(
+ name = "logging_py_gapic",
+ srcs = [":logging_proto"],
+ opt_args = [
+ "warehouse-package-name=google-cloud-appengine-logging",
+ "python-gapic-namespace=google.cloud",
+ "python-gapic-name=appengine_logging",
+ ],
+ transport = "grpc",
+)
+
+# Open Source Packages
+py_gapic_assembly_pkg(
+ name = "google-cloud-appengine-logging-v1-py",
+ deps = [
+ ":logging_py_gapic",
+ ],
+)
+
+##############################################################################
+# PHP
+##############################################################################
+load(
+ "@com_google_googleapis_imports//:imports.bzl",
+ "php_grpc_library",
+ "php_proto_library",
+)
+
+php_proto_library(
+ name = "logging_php_proto",
+ deps = [":logging_proto"],
+)
+
+php_grpc_library(
+ name = "logging_php_grpc",
+ srcs = [":logging_proto"],
+ deps = [":logging_php_proto"],
+)
+
+##############################################################################
+# Node.js
+##############################################################################
+load(
+ "@com_google_googleapis_imports//:imports.bzl",
+ "nodejs_gapic_assembly_pkg",
+ "nodejs_gapic_library",
+)
+
+##############################################################################
+# Ruby
+##############################################################################
+load(
+ "@com_google_googleapis_imports//:imports.bzl",
+ "ruby_grpc_library",
+ "ruby_proto_library",
+)
+
+ruby_proto_library(
+ name = "logging_ruby_proto",
+ deps = [":logging_proto"],
+)
+
+ruby_grpc_library(
+ name = "logging_ruby_grpc",
+ srcs = [":logging_proto"],
+ deps = [":logging_ruby_proto"],
+)
+
+##############################################################################
+# C#
+##############################################################################
+load(
+ "@com_google_googleapis_imports//:imports.bzl",
+ "csharp_grpc_library",
+ "csharp_proto_library",
+)
+
+csharp_proto_library(
+ name = "logging_csharp_proto",
+ deps = [":logging_proto"],
+)
+
+csharp_grpc_library(
+ name = "logging_csharp_grpc",
+ srcs = [":logging_proto"],
+ deps = [":logging_csharp_proto"],
+)
+
+##############################################################################
+# C++
+##############################################################################
+load(
+ "@com_google_googleapis_imports//:imports.bzl",
+ "cc_grpc_library",
+ "cc_proto_library",
+)
+
+cc_proto_library(
+ name = "logging_cc_proto",
+ deps = [":logging_proto"],
+)
+
+cc_grpc_library(
+ name = "logging_cc_grpc",
+ srcs = [":logging_proto"],
+ grpc_only = True,
+ deps = [":logging_cc_proto"],
+)
diff --git a/third_party/googleapis/google/appengine/logging/v1/request_log.proto b/third_party/googleapis/google/appengine/logging/v1/request_log.proto
new file mode 100644
index 0000000..f44d31e
--- /dev/null
+++ b/third_party/googleapis/google/appengine/logging/v1/request_log.proto
@@ -0,0 +1,196 @@
+// 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.appengine.logging.v1;
+
+import "google/logging/type/log_severity.proto";
+import "google/protobuf/duration.proto";
+import "google/protobuf/timestamp.proto";
+
+option csharp_namespace = "Google.Cloud.AppEngine.Logging.V1";
+option go_package = "google.golang.org/genproto/googleapis/appengine/logging/v1;logging";
+option java_multiple_files = true;
+option java_outer_classname = "RequestLogProto";
+option java_package = "com.google.appengine.logging.v1";
+option php_namespace = "Google\\Cloud\\AppEngine\\Logging\\V1";
+option ruby_package = "Google::Cloud::AppEngine::Logging::V1";
+
+// Application log line emitted while processing a request.
+message LogLine {
+ // Approximate time when this log entry was made.
+ google.protobuf.Timestamp time = 1;
+
+ // Severity of this log entry.
+ google.logging.type.LogSeverity severity = 2;
+
+ // App-provided log message.
+ string log_message = 3;
+
+ // Where in the source code this log message was written.
+ SourceLocation source_location = 4;
+}
+
+// Specifies a location in a source code file.
+message SourceLocation {
+ // Source file name. Depending on the runtime environment, this might be a
+ // simple name or a fully-qualified name.
+ string file = 1;
+
+ // Line within the source file.
+ int64 line = 2;
+
+ // Human-readable name of the function or method being invoked, with optional
+ // context such as the class or package name. This information is used in
+ // contexts such as the logs viewer, where a file and line number are less
+ // meaningful. The format can vary by language. For example:
+ // `qual.if.ied.Class.method` (Java), `dir/package.func` (Go), `function`
+ // (Python).
+ string function_name = 3;
+}
+
+// A reference to a particular snapshot of the source tree used to build and
+// deploy an application.
+message SourceReference {
+ // Optional. A URI string identifying the repository.
+ // Example: "https://github.com/GoogleCloudPlatform/kubernetes.git"
+ string repository = 1;
+
+ // The canonical and persistent identifier of the deployed revision.
+ // Example (git): "0035781c50ec7aa23385dc841529ce8a4b70db1b"
+ string revision_id = 2;
+}
+
+// Complete log information about a single HTTP request to an App Engine
+// application.
+message RequestLog {
+ // Application that handled this request.
+ string app_id = 1;
+
+ // Module of the application that handled this request.
+ string module_id = 37;
+
+ // Version of the application that handled this request.
+ string version_id = 2;
+
+ // Globally unique identifier for a request, which is based on the request
+ // start time. Request IDs for requests which started later will compare
+ // greater as strings than those for requests which started earlier.
+ string request_id = 3;
+
+ // Origin IP address.
+ string ip = 4;
+
+ // Time when the request started.
+ google.protobuf.Timestamp start_time = 6;
+
+ // Time when the request finished.
+ google.protobuf.Timestamp end_time = 7;
+
+ // Latency of the request.
+ google.protobuf.Duration latency = 8;
+
+ // Number of CPU megacycles used to process request.
+ int64 mega_cycles = 9;
+
+ // Request method. Example: `"GET"`, `"HEAD"`, `"PUT"`, `"POST"`, `"DELETE"`.
+ string method = 10;
+
+ // Contains the path and query portion of the URL that was requested. For
+ // example, if the URL was "http://example.com/app?name=val", the resource
+ // would be "/app?name=val". The fragment identifier, which is identified by
+ // the `#` character, is not included.
+ string resource = 11;
+
+ // HTTP version of request. Example: `"HTTP/1.1"`.
+ string http_version = 12;
+
+ // HTTP response status code. Example: 200, 404.
+ int32 status = 13;
+
+ // Size in bytes sent back to client by request.
+ int64 response_size = 14;
+
+ // Referrer URL of request.
+ string referrer = 15;
+
+ // User agent that made the request.
+ string user_agent = 16;
+
+ // The logged-in user who made the request.
+ //
+ // Most likely, this is the part of the user's email before the `@` sign. The
+ // field value is the same for different requests from the same user, but
+ // different users can have similar names. This information is also
+ // available to the application via the App Engine Users API.
+ //
+ // This field will be populated starting with App Engine 1.9.21.
+ string nickname = 40;
+
+ // File or class that handled the request.
+ string url_map_entry = 17;
+
+ // Internet host and port number of the resource being requested.
+ string host = 20;
+
+ // An indication of the relative cost of serving this request.
+ double cost = 21;
+
+ // Queue name of the request, in the case of an offline request.
+ string task_queue_name = 22;
+
+ // Task name of the request, in the case of an offline request.
+ string task_name = 23;
+
+ // Whether this was a loading request for the instance.
+ bool was_loading_request = 24;
+
+ // Time this request spent in the pending request queue.
+ google.protobuf.Duration pending_time = 25;
+
+ // If the instance processing this request belongs to a manually scaled
+ // module, then this is the 0-based index of the instance. Otherwise, this
+ // value is -1.
+ int32 instance_index = 26;
+
+ // Whether this request is finished or active.
+ bool finished = 27;
+
+ // Whether this is the first `RequestLog` entry for this request. If an
+ // active request has several `RequestLog` entries written to Stackdriver
+ // Logging, then this field will be set for one of them.
+ bool first = 42;
+
+ // An identifier for the instance that handled the request.
+ string instance_id = 28;
+
+ // A list of log lines emitted by the application while serving this request.
+ repeated LogLine line = 29;
+
+ // App Engine release version.
+ string app_engine_release = 38;
+
+ // Stackdriver Trace identifier for this request.
+ string trace_id = 39;
+
+ // If true, the value in the 'trace_id' field was sampled for storage in a
+ // trace backend.
+ bool trace_sampled = 43;
+
+ // Source code for the application that handled this request. There can be
+ // more than one source reference per deployed application if source code is
+ // distributed among multiple repositories.
+ repeated SourceReference source_reference = 41;
+}
diff --git a/third_party/googleapis/google/appengine/v1/BUILD.bazel b/third_party/googleapis/google/appengine/v1/BUILD.bazel
new file mode 100644
index 0000000..37463b6
--- /dev/null
+++ b/third_party/googleapis/google/appengine/v1/BUILD.bazel
@@ -0,0 +1,414 @@
+# This file was automatically generated by BuildFileGenerator
+# https://github.com/googleapis/rules_gapic/tree/master/bazel
+
+# Most of the manual changes to this file will be overwritten.
+# It's **only** allowed to change the following rule attribute values:
+# - names of *_gapic_assembly_* rules
+# - certain parameters of *_gapic_library rules, including but not limited to:
+# * extra_protoc_parameters
+# * extra_protoc_file_parameters
+# The complete list of preserved parameters can be found in the source code.
+
+# This is an API workspace, having public visibility by default makes perfect sense.
+package(default_visibility = ["//visibility:public"])
+
+##############################################################################
+# Common
+##############################################################################
+load("@rules_proto//proto:defs.bzl", "proto_library")
+load("@com_google_googleapis_imports//:imports.bzl", "proto_library_with_info")
+
+proto_library(
+ name = "appengine_proto",
+ srcs = [
+ "app_yaml.proto",
+ "appengine.proto",
+ "application.proto",
+ "audit_data.proto",
+ "certificate.proto",
+ "deploy.proto",
+ "deployed_files.proto",
+ "domain.proto",
+ "domain_mapping.proto",
+ "firewall.proto",
+ "instance.proto",
+ "location.proto",
+ "network_settings.proto",
+ "operation.proto",
+ "service.proto",
+ "version.proto",
+ ],
+ deps = [
+ "//google/api:annotations_proto",
+ "//google/api:client_proto",
+ "//google/api:field_behavior_proto",
+ "//google/api:resource_proto",
+ "//google/longrunning:operations_proto",
+ "@com_google_protobuf//:duration_proto",
+ "@com_google_protobuf//:empty_proto",
+ "@com_google_protobuf//:field_mask_proto",
+ "@com_google_protobuf//:timestamp_proto",
+ ],
+)
+
+proto_library_with_info(
+ name = "appengine_proto_with_info",
+ deps = [
+ ":appengine_proto",
+ "//google/cloud:common_resources_proto",
+ ],
+)
+
+##############################################################################
+# Java
+##############################################################################
+load(
+ "@com_google_googleapis_imports//:imports.bzl",
+ "java_gapic_assembly_gradle_pkg",
+ "java_gapic_library",
+ "java_gapic_test",
+ "java_grpc_library",
+ "java_proto_library",
+)
+
+java_proto_library(
+ name = "appengine_java_proto",
+ deps = [":appengine_proto"],
+)
+
+java_grpc_library(
+ name = "appengine_java_grpc",
+ srcs = [":appengine_proto"],
+ deps = [":appengine_java_proto"],
+)
+
+java_gapic_library(
+ name = "appengine_java_gapic",
+ srcs = [":appengine_proto_with_info"],
+ grpc_service_config = "appengine_grpc_service_config.json",
+ test_deps = [
+ ":appengine_java_grpc",
+ ],
+ transport = "grpc+rest",
+ deps = [
+ ":appengine_java_proto",
+ ],
+)
+
+java_gapic_test(
+ name = "appengine_java_gapic_test_suite",
+ test_classes = [
+ "com.google.appengine.v1.ApplicationsClientHttpJsonTest",
+ "com.google.appengine.v1.ApplicationsClientTest",
+ "com.google.appengine.v1.AuthorizedCertificatesClientHttpJsonTest",
+ "com.google.appengine.v1.AuthorizedCertificatesClientTest",
+ "com.google.appengine.v1.AuthorizedDomainsClientHttpJsonTest",
+ "com.google.appengine.v1.AuthorizedDomainsClientTest",
+ "com.google.appengine.v1.DomainMappingsClientHttpJsonTest",
+ "com.google.appengine.v1.DomainMappingsClientTest",
+ "com.google.appengine.v1.FirewallClientHttpJsonTest",
+ "com.google.appengine.v1.FirewallClientTest",
+ "com.google.appengine.v1.InstancesClientHttpJsonTest",
+ "com.google.appengine.v1.InstancesClientTest",
+ "com.google.appengine.v1.ServicesClientHttpJsonTest",
+ "com.google.appengine.v1.ServicesClientTest",
+ "com.google.appengine.v1.VersionsClientHttpJsonTest",
+ "com.google.appengine.v1.VersionsClientTest",
+ ],
+ runtime_deps = [":appengine_java_gapic_test"],
+)
+
+# Open Source Packages
+java_gapic_assembly_gradle_pkg(
+ name = "google-cloud-appengine-v1-java",
+ transport = "grpc+rest",
+ deps = [
+ ":appengine_java_gapic",
+ ":appengine_java_grpc",
+ ":appengine_java_proto",
+ ":appengine_proto",
+ ],
+)
+
+##############################################################################
+# Go
+##############################################################################
+load(
+ "@com_google_googleapis_imports//:imports.bzl",
+ "go_gapic_assembly_pkg",
+ "go_gapic_library",
+ "go_proto_library",
+ "go_test",
+)
+
+go_proto_library(
+ name = "appengine_go_proto",
+ compilers = ["@io_bazel_rules_go//proto:go_grpc"],
+ importpath = "google.golang.org/genproto/googleapis/appengine/v1",
+ protos = [":appengine_proto"],
+ deps = [
+ "//google/api:annotations_go_proto",
+ "//google/longrunning:longrunning_go_proto",
+ ],
+)
+
+go_gapic_library(
+ name = "appengine_go_gapic",
+ srcs = [":appengine_proto_with_info"],
+ grpc_service_config = "appengine_grpc_service_config.json",
+ importpath = "cloud.google.com/go/appengine/apiv1;appengine",
+ metadata = True,
+ service_yaml = "appengine_v1.yaml",
+ transport = "grpc+rest",
+ deps = [
+ ":appengine_go_proto",
+ "//google/longrunning:longrunning_go_proto",
+ "@com_google_cloud_go//longrunning:go_default_library",
+ "@com_google_cloud_go//longrunning/autogen:go_default_library",
+ "@io_bazel_rules_go//proto/wkt:duration_go_proto",
+ ],
+)
+
+go_test(
+ name = "appengine_go_gapic_test",
+ srcs = [":appengine_go_gapic_srcjar_test"],
+ embed = [":appengine_go_gapic"],
+ importpath = "cloud.google.com/go/appengine/apiv1",
+)
+
+# Open Source Packages
+go_gapic_assembly_pkg(
+ name = "gapi-cloud-appengine-v1-go",
+ deps = [
+ ":appengine_go_gapic",
+ ":appengine_go_gapic_srcjar-metadata.srcjar",
+ ":appengine_go_gapic_srcjar-test.srcjar",
+ ":appengine_go_proto",
+ ],
+)
+
+##############################################################################
+# Python
+##############################################################################
+load(
+ "@com_google_googleapis_imports//:imports.bzl",
+ "py_gapic_assembly_pkg",
+ "py_gapic_library",
+ "py_test",
+)
+
+py_gapic_library(
+ name = "appengine_py_gapic",
+ srcs = [":appengine_proto"],
+ grpc_service_config = "appengine_grpc_service_config.json",
+ opt_args = [
+ "warehouse-package-name=google-cloud-appengine-admin",
+ "python-gapic-namespace=google.cloud",
+ "python-gapic-name=appengine_admin",
+ ],
+ transport = "grpc",
+)
+
+py_test(
+ name = "appengine_py_gapic_test",
+ srcs = [
+ "appengine_py_gapic_pytest.py",
+ "appengine_py_gapic_test.py",
+ ],
+ legacy_create_init = False,
+ deps = [":appengine_py_gapic"],
+)
+
+# Open Source Packages
+py_gapic_assembly_pkg(
+ name = "google-cloud-appengine-v1-py",
+ deps = [
+ ":appengine_py_gapic",
+ ],
+)
+
+##############################################################################
+# PHP
+##############################################################################
+load(
+ "@com_google_googleapis_imports//:imports.bzl",
+ "php_gapic_assembly_pkg",
+ "php_gapic_library",
+ "php_grpc_library",
+ "php_proto_library",
+)
+
+php_proto_library(
+ name = "appengine_php_proto",
+ deps = [":appengine_proto"],
+)
+
+php_grpc_library(
+ name = "appengine_php_grpc",
+ srcs = [":appengine_proto"],
+ deps = [":appengine_php_proto"],
+)
+
+php_gapic_library(
+ name = "appengine_php_gapic",
+ srcs = [":appengine_proto_with_info"],
+ grpc_service_config = "appengine_grpc_service_config.json",
+ service_yaml = "appengine_v1.yaml",
+ deps = [
+ ":appengine_php_grpc",
+ ":appengine_php_proto",
+ ],
+)
+
+# Open Source Packages
+php_gapic_assembly_pkg(
+ name = "google-cloud-appengine-v1-php",
+ deps = [
+ ":appengine_php_gapic",
+ ":appengine_php_grpc",
+ ":appengine_php_proto",
+ ],
+)
+
+##############################################################################
+# Node.js
+##############################################################################
+load(
+ "@com_google_googleapis_imports//:imports.bzl",
+ "nodejs_gapic_assembly_pkg",
+ "nodejs_gapic_library",
+)
+
+nodejs_gapic_library(
+ name = "appengine_nodejs_gapic",
+ package_name = "@google-cloud/appengine-admin",
+ src = ":appengine_proto_with_info",
+ extra_protoc_parameters = ["metadata"],
+ grpc_service_config = "appengine_grpc_service_config.json",
+ package = "google.appengine.v1",
+ service_yaml = "appengine_v1.yaml",
+ deps = [],
+)
+
+nodejs_gapic_assembly_pkg(
+ name = "appengine-v1-nodejs",
+ deps = [
+ ":appengine_nodejs_gapic",
+ ":appengine_proto",
+ ],
+)
+
+##############################################################################
+# Ruby
+##############################################################################
+load(
+ "@com_google_googleapis_imports//:imports.bzl",
+ "ruby_cloud_gapic_library",
+ "ruby_gapic_assembly_pkg",
+ "ruby_grpc_library",
+ "ruby_proto_library",
+)
+
+ruby_proto_library(
+ name = "appengine_ruby_proto",
+ deps = [":appengine_proto"],
+)
+
+ruby_grpc_library(
+ name = "appengine_ruby_grpc",
+ srcs = [":appengine_proto"],
+ deps = [":appengine_ruby_proto"],
+)
+
+ruby_cloud_gapic_library(
+ name = "appengine_ruby_gapic",
+ srcs = [":appengine_proto_with_info"],
+ extra_protoc_parameters = [
+ "ruby-cloud-gem-name=google-cloud-app_engine-v1",
+ "ruby-cloud-env-prefix=APP_ENGINE",
+ "ruby-cloud-product-url=https://cloud.google.com/appengine/docs/admin-api/",
+ "ruby-cloud-api-id=appengine.googleapis.com",
+ "ruby-cloud-api-shortname=appengine",
+ ],
+ ruby_cloud_description = "The App Engine Admin API provisions and manages your App Engine applications.",
+ ruby_cloud_title = "App Engine Admin V1",
+ deps = [
+ ":appengine_ruby_grpc",
+ ":appengine_ruby_proto",
+ ],
+)
+
+# Open Source Packages
+ruby_gapic_assembly_pkg(
+ name = "google-cloud-appengine-v1-ruby",
+ deps = [
+ ":appengine_ruby_gapic",
+ ":appengine_ruby_grpc",
+ ":appengine_ruby_proto",
+ ],
+)
+
+##############################################################################
+# C#
+##############################################################################
+load(
+ "@com_google_googleapis_imports//:imports.bzl",
+ "csharp_gapic_assembly_pkg",
+ "csharp_gapic_library",
+ "csharp_grpc_library",
+ "csharp_proto_library",
+)
+
+csharp_proto_library(
+ name = "appengine_csharp_proto",
+ deps = [":appengine_proto"],
+)
+
+csharp_grpc_library(
+ name = "appengine_csharp_grpc",
+ srcs = [":appengine_proto"],
+ deps = [":appengine_csharp_proto"],
+)
+
+csharp_gapic_library(
+ name = "appengine_csharp_gapic",
+ srcs = [":appengine_proto_with_info"],
+ common_resources_config = "@gax_dotnet//:Google.Api.Gax/ResourceNames/CommonResourcesConfig.json",
+ grpc_service_config = "appengine_grpc_service_config.json",
+ service_yaml = "appengine_v1.yaml",
+ deps = [
+ ":appengine_csharp_grpc",
+ ":appengine_csharp_proto",
+ ],
+)
+
+# Open Source Packages
+csharp_gapic_assembly_pkg(
+ name = "google-cloud-appengine-v1-csharp",
+ deps = [
+ ":appengine_csharp_gapic",
+ ":appengine_csharp_grpc",
+ ":appengine_csharp_proto",
+ ],
+)
+
+##############################################################################
+# C++
+##############################################################################
+load(
+ "@com_google_googleapis_imports//:imports.bzl",
+ "cc_grpc_library",
+ "cc_proto_library",
+)
+
+cc_proto_library(
+ name = "appengine_cc_proto",
+ deps = [":appengine_proto"],
+)
+
+cc_grpc_library(
+ name = "appengine_cc_grpc",
+ srcs = [":appengine_proto"],
+ grpc_only = True,
+ deps = [":appengine_cc_proto"],
+)
diff --git a/third_party/googleapis/google/appengine/v1/app_yaml.proto b/third_party/googleapis/google/appengine/v1/app_yaml.proto
new file mode 100644
index 0000000..8821853
--- /dev/null
+++ b/third_party/googleapis/google/appengine/v1/app_yaml.proto
@@ -0,0 +1,348 @@
+// Copyright 2022 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.appengine.v1;
+
+import "google/protobuf/duration.proto";
+
+option csharp_namespace = "Google.Cloud.AppEngine.V1";
+option go_package = "google.golang.org/genproto/googleapis/appengine/v1;appengine";
+option java_multiple_files = true;
+option java_outer_classname = "AppYamlProto";
+option java_package = "com.google.appengine.v1";
+option php_namespace = "Google\\Cloud\\AppEngine\\V1";
+option ruby_package = "Google::Cloud::AppEngine::V1";
+
+// [Google Cloud Endpoints](https://cloud.google.com/appengine/docs/python/endpoints/)
+// configuration for API handlers.
+message ApiConfigHandler {
+ // Action to take when users access resources that require
+ // authentication. Defaults to `redirect`.
+ AuthFailAction auth_fail_action = 1;
+
+ // Level of login required to access this resource. Defaults to
+ // `optional`.
+ LoginRequirement login = 2;
+
+ // Path to the script from the application root directory.
+ string script = 3;
+
+ // Security (HTTPS) enforcement for this URL.
+ SecurityLevel security_level = 4;
+
+ // URL to serve the endpoint at.
+ string url = 5;
+}
+
+// Custom static error page to be served when an error occurs.
+message ErrorHandler {
+ // Error codes.
+ enum ErrorCode {
+ option allow_alias = true;
+
+ // Not specified. ERROR_CODE_DEFAULT is assumed.
+ ERROR_CODE_UNSPECIFIED = 0;
+
+ // All other error types.
+ ERROR_CODE_DEFAULT = 0;
+
+ // Application has exceeded a resource quota.
+ ERROR_CODE_OVER_QUOTA = 1;
+
+ // Client blocked by the application's Denial of Service protection
+ // configuration.
+ ERROR_CODE_DOS_API_DENIAL = 2;
+
+ // Deadline reached before the application responds.
+ ERROR_CODE_TIMEOUT = 3;
+ }
+
+ // Error condition this handler applies to.
+ ErrorCode error_code = 1;
+
+ // Static file content to be served for this error.
+ string static_file = 2;
+
+ // MIME type of file. Defaults to `text/html`.
+ string mime_type = 3;
+}
+
+// URL pattern and description of how the URL should be handled. App Engine can
+// handle URLs by executing application code or by serving static files
+// uploaded with the version, such as images, CSS, or JavaScript.
+message UrlMap {
+ // Redirect codes.
+ enum RedirectHttpResponseCode {
+ // Not specified. `302` is assumed.
+ REDIRECT_HTTP_RESPONSE_CODE_UNSPECIFIED = 0;
+
+ // `301 Moved Permanently` code.
+ REDIRECT_HTTP_RESPONSE_CODE_301 = 1;
+
+ // `302 Moved Temporarily` code.
+ REDIRECT_HTTP_RESPONSE_CODE_302 = 2;
+
+ // `303 See Other` code.
+ REDIRECT_HTTP_RESPONSE_CODE_303 = 3;
+
+ // `307 Temporary Redirect` code.
+ REDIRECT_HTTP_RESPONSE_CODE_307 = 4;
+ }
+
+ // URL prefix. Uses regular expression syntax, which means regexp
+ // special characters must be escaped, but should not contain groupings.
+ // All URLs that begin with this prefix are handled by this handler, using the
+ // portion of the URL after the prefix as part of the file path.
+ string url_regex = 1;
+
+ // Type of handler for this URL pattern.
+ oneof handler_type {
+ // Returns the contents of a file, such as an image, as the response.
+ StaticFilesHandler static_files = 2;
+
+ // Executes a script to handle the requests that match this URL
+ // pattern. Only the `auto` value is supported for Node.js in the
+ // App Engine standard environment, for example `"script": "auto"`.
+ ScriptHandler script = 3;
+
+ // Uses API Endpoints to handle requests.
+ ApiEndpointHandler api_endpoint = 4;
+ }
+
+ // Security (HTTPS) enforcement for this URL.
+ SecurityLevel security_level = 5;
+
+ // Level of login required to access this resource. Not supported for Node.js
+ // in the App Engine standard environment.
+ LoginRequirement login = 6;
+
+ // Action to take when users access resources that require
+ // authentication. Defaults to `redirect`.
+ AuthFailAction auth_fail_action = 7;
+
+ // `30x` code to use when performing redirects for the `secure` field.
+ // Defaults to `302`.
+ RedirectHttpResponseCode redirect_http_response_code = 8;
+}
+
+// Files served directly to the user for a given URL, such as images, CSS
+// stylesheets, or JavaScript source files. Static file handlers describe which
+// files in the application directory are static files, and which URLs serve
+// them.
+message StaticFilesHandler {
+ // Path to the static files matched by the URL pattern, from the
+ // application root directory. The path can refer to text matched in groupings
+ // in the URL pattern.
+ string path = 1;
+
+ // Regular expression that matches the file paths for all files that should be
+ // referenced by this handler.
+ string upload_path_regex = 2;
+
+ // HTTP headers to use for all responses from these URLs.
+ map<string, string> http_headers = 3;
+
+ // MIME type used to serve all files served by this handler.
+ //
+ // Defaults to file-specific MIME types, which are derived from each file's
+ // filename extension.
+ string mime_type = 4;
+
+ // Time a static file served by this handler should be cached
+ // by web proxies and browsers.
+ google.protobuf.Duration expiration = 5;
+
+ // Whether this handler should match the request if the file
+ // referenced by the handler does not exist.
+ bool require_matching_file = 6;
+
+ // Whether files should also be uploaded as code data. By default, files
+ // declared in static file handlers are uploaded as static
+ // data and are only served to end users; they cannot be read by the
+ // application. If enabled, uploads are charged against both your code and
+ // static data storage resource quotas.
+ bool application_readable = 7;
+}
+
+// Executes a script to handle the request that matches the URL pattern.
+message ScriptHandler {
+ // Path to the script from the application root directory.
+ string script_path = 1;
+}
+
+// Uses Google Cloud Endpoints to handle requests.
+message ApiEndpointHandler {
+ // Path to the script from the application root directory.
+ string script_path = 1;
+}
+
+// Health checking configuration for VM instances. Unhealthy instances
+// are killed and replaced with new instances. Only applicable for
+// instances in App Engine flexible environment.
+message HealthCheck {
+ // Whether to explicitly disable health checks for this instance.
+ bool disable_health_check = 1;
+
+ // Host header to send when performing an HTTP health check.
+ // Example: "myapp.appspot.com"
+ string host = 2;
+
+ // Number of consecutive successful health checks required before receiving
+ // traffic.
+ uint32 healthy_threshold = 3;
+
+ // Number of consecutive failed health checks required before removing
+ // traffic.
+ uint32 unhealthy_threshold = 4;
+
+ // Number of consecutive failed health checks required before an instance is
+ // restarted.
+ uint32 restart_threshold = 5;
+
+ // Interval between health checks.
+ google.protobuf.Duration check_interval = 6;
+
+ // Time before the health check is considered failed.
+ google.protobuf.Duration timeout = 7;
+}
+
+// Readiness checking configuration for VM instances. Unhealthy instances
+// are removed from traffic rotation.
+message ReadinessCheck {
+ // The request path.
+ string path = 1;
+
+ // Host header to send when performing a HTTP Readiness check.
+ // Example: "myapp.appspot.com"
+ string host = 2;
+
+ // Number of consecutive failed checks required before removing
+ // traffic.
+ uint32 failure_threshold = 3;
+
+ // Number of consecutive successful checks required before receiving
+ // traffic.
+ uint32 success_threshold = 4;
+
+ // Interval between health checks.
+ google.protobuf.Duration check_interval = 5;
+
+ // Time before the check is considered failed.
+ google.protobuf.Duration timeout = 6;
+
+ // A maximum time limit on application initialization, measured from moment
+ // the application successfully replies to a healthcheck until it is ready to
+ // serve traffic.
+ google.protobuf.Duration app_start_timeout = 7;
+}
+
+// Health checking configuration for VM instances. Unhealthy instances
+// are killed and replaced with new instances.
+message LivenessCheck {
+ // The request path.
+ string path = 1;
+
+ // Host header to send when performing a HTTP Liveness check.
+ // Example: "myapp.appspot.com"
+ string host = 2;
+
+ // Number of consecutive failed checks required before considering the
+ // VM unhealthy.
+ uint32 failure_threshold = 3;
+
+ // Number of consecutive successful checks required before considering
+ // the VM healthy.
+ uint32 success_threshold = 4;
+
+ // Interval between health checks.
+ google.protobuf.Duration check_interval = 5;
+
+ // Time before the check is considered failed.
+ google.protobuf.Duration timeout = 6;
+
+ // The initial delay before starting to execute the checks.
+ google.protobuf.Duration initial_delay = 7;
+}
+
+// Third-party Python runtime library that is required by the application.
+message Library {
+ // Name of the library. Example: "django".
+ string name = 1;
+
+ // Version of the library to select, or "latest".
+ string version = 2;
+}
+
+// Actions to take when the user is not logged in.
+enum AuthFailAction {
+ // Not specified. `AUTH_FAIL_ACTION_REDIRECT` is assumed.
+ AUTH_FAIL_ACTION_UNSPECIFIED = 0;
+
+ // Redirects user to "accounts.google.com". The user is redirected back to the
+ // application URL after signing in or creating an account.
+ AUTH_FAIL_ACTION_REDIRECT = 1;
+
+ // Rejects request with a `401` HTTP status code and an error
+ // message.
+ AUTH_FAIL_ACTION_UNAUTHORIZED = 2;
+}
+
+// Methods to restrict access to a URL based on login status.
+enum LoginRequirement {
+ // Not specified. `LOGIN_OPTIONAL` is assumed.
+ LOGIN_UNSPECIFIED = 0;
+
+ // Does not require that the user is signed in.
+ LOGIN_OPTIONAL = 1;
+
+ // If the user is not signed in, the `auth_fail_action` is taken.
+ // In addition, if the user is not an administrator for the
+ // application, they are given an error message regardless of
+ // `auth_fail_action`. If the user is an administrator, the handler
+ // proceeds.
+ LOGIN_ADMIN = 2;
+
+ // If the user has signed in, the handler proceeds normally. Otherwise, the
+ // auth_fail_action is taken.
+ LOGIN_REQUIRED = 3;
+}
+
+// Methods to enforce security (HTTPS) on a URL.
+enum SecurityLevel {
+ option allow_alias = true;
+
+ // Not specified.
+ SECURE_UNSPECIFIED = 0;
+
+ // Both HTTP and HTTPS requests with URLs that match the handler succeed
+ // without redirects. The application can examine the request to determine
+ // which protocol was used, and respond accordingly.
+ SECURE_DEFAULT = 0;
+
+ // Requests for a URL that match this handler that use HTTPS are automatically
+ // redirected to the HTTP equivalent URL.
+ SECURE_NEVER = 1;
+
+ // Both HTTP and HTTPS requests with URLs that match the handler succeed
+ // without redirects. The application can examine the request to determine
+ // which protocol was used and respond accordingly.
+ SECURE_OPTIONAL = 2;
+
+ // Requests for a URL that match this handler that do not use HTTPS are
+ // automatically redirected to the HTTPS URL with the same path. Query
+ // parameters are reserved for the redirect.
+ SECURE_ALWAYS = 3;
+}
diff --git a/third_party/googleapis/google/appengine/v1/appengine.proto b/third_party/googleapis/google/appengine/v1/appengine.proto
new file mode 100644
index 0000000..76eb230
--- /dev/null
+++ b/third_party/googleapis/google/appengine/v1/appengine.proto
@@ -0,0 +1,1008 @@
+// Copyright 2022 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.appengine.v1;
+
+import "google/api/annotations.proto";
+import "google/api/client.proto";
+import "google/appengine/v1/application.proto";
+import "google/appengine/v1/certificate.proto";
+import "google/appengine/v1/domain.proto";
+import "google/appengine/v1/domain_mapping.proto";
+import "google/appengine/v1/firewall.proto";
+import "google/appengine/v1/instance.proto";
+import "google/appengine/v1/service.proto";
+import "google/appengine/v1/version.proto";
+import "google/longrunning/operations.proto";
+import "google/protobuf/empty.proto";
+import "google/protobuf/field_mask.proto";
+
+option csharp_namespace = "Google.Cloud.AppEngine.V1";
+option go_package = "google.golang.org/genproto/googleapis/appengine/v1;appengine";
+option java_multiple_files = true;
+option java_outer_classname = "AppengineProto";
+option java_package = "com.google.appengine.v1";
+option php_namespace = "Google\\Cloud\\AppEngine\\V1";
+option ruby_package = "Google::Cloud::AppEngine::V1";
+
+// Manages App Engine applications.
+service Applications {
+ option (google.api.default_host) = "appengine.googleapis.com";
+ option (google.api.oauth_scopes) =
+ "https://www.googleapis.com/auth/appengine.admin,"
+ "https://www.googleapis.com/auth/cloud-platform,"
+ "https://www.googleapis.com/auth/cloud-platform.read-only";
+
+ // Gets information about an application.
+ rpc GetApplication(GetApplicationRequest) returns (Application) {
+ option (google.api.http) = {
+ get: "/v1/{name=apps/*}"
+ };
+ option (google.api.method_signature) = "name";
+ }
+
+ // Creates an App Engine application for a Google Cloud Platform project.
+ // Required fields:
+ //
+ // * `id` - The ID of the target Cloud Platform project.
+ // * *location* - The [region](https://cloud.google.com/appengine/docs/locations) where you want the App Engine application located.
+ //
+ // For more information about App Engine applications, see [Managing Projects, Applications, and Billing](https://cloud.google.com/appengine/docs/standard/python/console/).
+ rpc CreateApplication(CreateApplicationRequest) returns (google.longrunning.Operation) {
+ option (google.api.http) = {
+ post: "/v1/apps"
+ body: "application"
+ };
+ option (google.longrunning.operation_info) = {
+ response_type: "Application"
+ metadata_type: "OperationMetadataV1"
+ };
+ }
+
+ // Updates the specified Application resource.
+ // You can update the following fields:
+ //
+ // * `auth_domain` - Google authentication domain for controlling user access to the application.
+ // * `default_cookie_expiration` - Cookie expiration policy for the application.
+ // * `iap` - Identity-Aware Proxy properties for the application.
+ rpc UpdateApplication(UpdateApplicationRequest) returns (google.longrunning.Operation) {
+ option (google.api.http) = {
+ patch: "/v1/{name=apps/*}"
+ body: "application"
+ };
+ option (google.longrunning.operation_info) = {
+ response_type: "Application"
+ metadata_type: "OperationMetadataV1"
+ };
+ }
+
+ // Recreates the required App Engine features for the specified App Engine
+ // application, for example a Cloud Storage bucket or App Engine service
+ // account.
+ // Use this method if you receive an error message about a missing feature,
+ // for example, *Error retrieving the App Engine service account*.
+ // If you have deleted your App Engine service account, this will
+ // not be able to recreate it. Instead, you should attempt to use the
+ // IAM undelete API if possible at https://cloud.google.com/iam/reference/rest/v1/projects.serviceAccounts/undelete?apix_params=%7B"name"%3A"projects%2F-%2FserviceAccounts%2Funique_id"%2C"resource"%3A%7B%7D%7D .
+ // If the deletion was recent, the numeric ID can be found in the Cloud
+ // Console Activity Log.
+ rpc RepairApplication(RepairApplicationRequest) returns (google.longrunning.Operation) {
+ option (google.api.http) = {
+ post: "/v1/{name=apps/*}:repair"
+ body: "*"
+ };
+ option (google.longrunning.operation_info) = {
+ response_type: "Application"
+ metadata_type: "OperationMetadataV1"
+ };
+ }
+}
+
+// Request message for `Applications.GetApplication`.
+message GetApplicationRequest {
+ // Name of the Application resource to get. Example: `apps/myapp`.
+ string name = 1;
+}
+
+// Request message for `Applications.CreateApplication`.
+message CreateApplicationRequest {
+ // Application configuration.
+ Application application = 2;
+}
+
+// Request message for `Applications.UpdateApplication`.
+message UpdateApplicationRequest {
+ // Name of the Application resource to update. Example: `apps/myapp`.
+ string name = 1;
+
+ // An Application containing the updated resource.
+ Application application = 2;
+
+ // Required. Standard field mask for the set of fields to be updated.
+ google.protobuf.FieldMask update_mask = 3;
+}
+
+// Request message for 'Applications.RepairApplication'.
+message RepairApplicationRequest {
+ // Name of the application to repair. Example: `apps/myapp`
+ string name = 1;
+}
+
+// Manages services of an application.
+service Services {
+ option (google.api.default_host) = "appengine.googleapis.com";
+ option (google.api.oauth_scopes) =
+ "https://www.googleapis.com/auth/appengine.admin,"
+ "https://www.googleapis.com/auth/cloud-platform,"
+ "https://www.googleapis.com/auth/cloud-platform.read-only";
+
+ // Lists all the services in the application.
+ rpc ListServices(ListServicesRequest) returns (ListServicesResponse) {
+ option (google.api.http) = {
+ get: "/v1/{parent=apps/*}/services"
+ };
+ }
+
+ // Gets the current configuration of the specified service.
+ rpc GetService(GetServiceRequest) returns (Service) {
+ option (google.api.http) = {
+ get: "/v1/{name=apps/*/services/*}"
+ };
+ }
+
+ // Updates the configuration of the specified service.
+ rpc UpdateService(UpdateServiceRequest) returns (google.longrunning.Operation) {
+ option (google.api.http) = {
+ patch: "/v1/{name=apps/*/services/*}"
+ body: "service"
+ };
+ option (google.longrunning.operation_info) = {
+ response_type: "Service"
+ metadata_type: "OperationMetadataV1"
+ };
+ }
+
+ // Deletes the specified service and all enclosed versions.
+ rpc DeleteService(DeleteServiceRequest) returns (google.longrunning.Operation) {
+ option (google.api.http) = {
+ delete: "/v1/{name=apps/*/services/*}"
+ };
+ option (google.longrunning.operation_info) = {
+ response_type: "google.protobuf.Empty"
+ metadata_type: "OperationMetadataV1"
+ };
+ }
+}
+
+// Request message for `Services.ListServices`.
+message ListServicesRequest {
+ // Name of the parent Application resource. Example: `apps/myapp`.
+ string parent = 1;
+
+ // Maximum results to return per page.
+ int32 page_size = 2;
+
+ // Continuation token for fetching the next page of results.
+ string page_token = 3;
+}
+
+// Response message for `Services.ListServices`.
+message ListServicesResponse {
+ // The services belonging to the requested application.
+ repeated Service services = 1;
+
+ // Continuation token for fetching the next page of results.
+ string next_page_token = 2;
+}
+
+// Request message for `Services.GetService`.
+message GetServiceRequest {
+ // Name of the resource requested. Example: `apps/myapp/services/default`.
+ string name = 1;
+}
+
+// Request message for `Services.UpdateService`.
+message UpdateServiceRequest {
+ // Name of the resource to update. Example: `apps/myapp/services/default`.
+ string name = 1;
+
+ // A Service resource containing the updated service. Only fields set in the
+ // field mask will be updated.
+ Service service = 2;
+
+ // Required. Standard field mask for the set of fields to be updated.
+ google.protobuf.FieldMask update_mask = 3;
+
+ // Set to `true` to gradually shift traffic to one or more versions that you
+ // specify. By default, traffic is shifted immediately.
+ // For gradual traffic migration, the target versions
+ // must be located within instances that are configured for both
+ // [warmup requests](https://cloud.google.com/appengine/docs/admin-api/reference/rest/v1/apps.services.versions#InboundServiceType)
+ // and
+ // [automatic scaling](https://cloud.google.com/appengine/docs/admin-api/reference/rest/v1/apps.services.versions#AutomaticScaling).
+ // You must specify the
+ // [`shardBy`](https://cloud.google.com/appengine/docs/admin-api/reference/rest/v1/apps.services#ShardBy)
+ // field in the Service resource. Gradual traffic migration is not
+ // supported in the App Engine flexible environment. For examples, see
+ // [Migrating and Splitting Traffic](https://cloud.google.com/appengine/docs/admin-api/migrating-splitting-traffic).
+ bool migrate_traffic = 4;
+}
+
+// Request message for `Services.DeleteService`.
+message DeleteServiceRequest {
+ // Name of the resource requested. Example: `apps/myapp/services/default`.
+ string name = 1;
+}
+
+// Manages versions of a service.
+service Versions {
+ option (google.api.default_host) = "appengine.googleapis.com";
+ option (google.api.oauth_scopes) =
+ "https://www.googleapis.com/auth/appengine.admin,"
+ "https://www.googleapis.com/auth/cloud-platform,"
+ "https://www.googleapis.com/auth/cloud-platform.read-only";
+
+ // Lists the versions of a service.
+ rpc ListVersions(ListVersionsRequest) returns (ListVersionsResponse) {
+ option (google.api.http) = {
+ get: "/v1/{parent=apps/*/services/*}/versions"
+ };
+ }
+
+ // Gets the specified Version resource.
+ // By default, only a `BASIC_VIEW` will be returned.
+ // Specify the `FULL_VIEW` parameter to get the full resource.
+ rpc GetVersion(GetVersionRequest) returns (Version) {
+ option (google.api.http) = {
+ get: "/v1/{name=apps/*/services/*/versions/*}"
+ };
+ }
+
+ // Deploys code and resource files to a new version.
+ rpc CreateVersion(CreateVersionRequest) returns (google.longrunning.Operation) {
+ option (google.api.http) = {
+ post: "/v1/{parent=apps/*/services/*}/versions"
+ body: "version"
+ };
+ option (google.longrunning.operation_info) = {
+ response_type: "Version"
+ metadata_type: "CreateVersionMetadataV1"
+ };
+ }
+
+ // Updates the specified Version resource.
+ // You can specify the following fields depending on the App Engine
+ // environment and type of scaling that the version resource uses:
+ //
+ // **Standard environment**
+ //
+ // * [`instance_class`](https://cloud.google.com/appengine/docs/admin-api/reference/rest/v1/apps.services.versions#Version.FIELDS.instance_class)
+ //
+ // *automatic scaling* in the standard environment:
+ //
+ // * [`automatic_scaling.min_idle_instances`](https://cloud.google.com/appengine/docs/admin-api/reference/rest/v1/apps.services.versions#Version.FIELDS.automatic_scaling)
+ // * [`automatic_scaling.max_idle_instances`](https://cloud.google.com/appengine/docs/admin-api/reference/rest/v1/apps.services.versions#Version.FIELDS.automatic_scaling)
+ // * [`automaticScaling.standard_scheduler_settings.max_instances`](https://cloud.google.com/appengine/docs/admin-api/reference/rest/v1/apps.services.versions#StandardSchedulerSettings)
+ // * [`automaticScaling.standard_scheduler_settings.min_instances`](https://cloud.google.com/appengine/docs/admin-api/reference/rest/v1/apps.services.versions#StandardSchedulerSettings)
+ // * [`automaticScaling.standard_scheduler_settings.target_cpu_utilization`](https://cloud.google.com/appengine/docs/admin-api/reference/rest/v1/apps.services.versions#StandardSchedulerSettings)
+ // * [`automaticScaling.standard_scheduler_settings.target_throughput_utilization`](https://cloud.google.com/appengine/docs/admin-api/reference/rest/v1/apps.services.versions#StandardSchedulerSettings)
+ //
+ // *basic scaling* or *manual scaling* in the standard environment:
+ //
+ // * [`serving_status`](https://cloud.google.com/appengine/docs/admin-api/reference/rest/v1/apps.services.versions#Version.FIELDS.serving_status)
+ // * [`manual_scaling.instances`](https://cloud.google.com/appengine/docs/admin-api/reference/rest/v1/apps.services.versions#manualscaling)
+ //
+ // **Flexible environment**
+ //
+ // * [`serving_status`](https://cloud.google.com/appengine/docs/admin-api/reference/rest/v1/apps.services.versions#Version.FIELDS.serving_status)
+ //
+ // *automatic scaling* in the flexible environment:
+ //
+ // * [`automatic_scaling.min_total_instances`](https://cloud.google.com/appengine/docs/admin-api/reference/rest/v1/apps.services.versions#Version.FIELDS.automatic_scaling)
+ // * [`automatic_scaling.max_total_instances`](https://cloud.google.com/appengine/docs/admin-api/reference/rest/v1/apps.services.versions#Version.FIELDS.automatic_scaling)
+ // * [`automatic_scaling.cool_down_period_sec`](https://cloud.google.com/appengine/docs/admin-api/reference/rest/v1/apps.services.versions#Version.FIELDS.automatic_scaling)
+ // * [`automatic_scaling.cpu_utilization.target_utilization`](https://cloud.google.com/appengine/docs/admin-api/reference/rest/v1/apps.services.versions#Version.FIELDS.automatic_scaling)
+ //
+ // *manual scaling* in the flexible environment:
+ //
+ // * [`manual_scaling.instances`](https://cloud.google.com/appengine/docs/admin-api/reference/rest/v1/apps.services.versions#manualscaling)
+ rpc UpdateVersion(UpdateVersionRequest) returns (google.longrunning.Operation) {
+ option (google.api.http) = {
+ patch: "/v1/{name=apps/*/services/*/versions/*}"
+ body: "version"
+ };
+ option (google.longrunning.operation_info) = {
+ response_type: "Version"
+ metadata_type: "OperationMetadataV1"
+ };
+ }
+
+ // Deletes an existing Version resource.
+ rpc DeleteVersion(DeleteVersionRequest) returns (google.longrunning.Operation) {
+ option (google.api.http) = {
+ delete: "/v1/{name=apps/*/services/*/versions/*}"
+ };
+ option (google.longrunning.operation_info) = {
+ response_type: "google.protobuf.Empty"
+ metadata_type: "OperationMetadataV1"
+ };
+ }
+}
+
+// Request message for `Versions.ListVersions`.
+message ListVersionsRequest {
+ // Name of the parent Service resource. Example:
+ // `apps/myapp/services/default`.
+ string parent = 1;
+
+ // Controls the set of fields returned in the `List` response.
+ VersionView view = 2;
+
+ // Maximum results to return per page.
+ int32 page_size = 3;
+
+ // Continuation token for fetching the next page of results.
+ string page_token = 4;
+}
+
+// Response message for `Versions.ListVersions`.
+message ListVersionsResponse {
+ // The versions belonging to the requested service.
+ repeated Version versions = 1;
+
+ // Continuation token for fetching the next page of results.
+ string next_page_token = 2;
+}
+
+// Fields that should be returned when [Version][google.appengine.v1.Version] resources
+// are retrieved.
+enum VersionView {
+ // Basic version information including scaling and inbound services,
+ // but not detailed deployment information.
+ BASIC = 0;
+
+ // The information from `BASIC`, plus detailed information about the
+ // deployment. This format is required when creating resources, but
+ // is not returned in `Get` or `List` by default.
+ FULL = 1;
+}
+
+// Request message for `Versions.GetVersion`.
+message GetVersionRequest {
+ // Name of the resource requested. Example:
+ // `apps/myapp/services/default/versions/v1`.
+ string name = 1;
+
+ // Controls the set of fields returned in the `Get` response.
+ VersionView view = 2;
+}
+
+// Request message for `Versions.CreateVersion`.
+message CreateVersionRequest {
+ // Name of the parent resource to create this version under. Example:
+ // `apps/myapp/services/default`.
+ string parent = 1;
+
+ // Application deployment configuration.
+ Version version = 2;
+}
+
+// Request message for `Versions.UpdateVersion`.
+message UpdateVersionRequest {
+ // Name of the resource to update. Example:
+ // `apps/myapp/services/default/versions/1`.
+ string name = 1;
+
+ // A Version containing the updated resource. Only fields set in the field
+ // mask will be updated.
+ Version version = 2;
+
+ // Standard field mask for the set of fields to be updated.
+ google.protobuf.FieldMask update_mask = 3;
+}
+
+// Request message for `Versions.DeleteVersion`.
+message DeleteVersionRequest {
+ // Name of the resource requested. Example:
+ // `apps/myapp/services/default/versions/v1`.
+ string name = 1;
+}
+
+// Manages instances of a version.
+service Instances {
+ option (google.api.default_host) = "appengine.googleapis.com";
+ option (google.api.oauth_scopes) =
+ "https://www.googleapis.com/auth/appengine.admin,"
+ "https://www.googleapis.com/auth/cloud-platform,"
+ "https://www.googleapis.com/auth/cloud-platform.read-only";
+
+ // Lists the instances of a version.
+ //
+ // Tip: To aggregate details about instances over time, see the
+ // [Stackdriver Monitoring API](https://cloud.google.com/monitoring/api/ref_v3/rest/v3/projects.timeSeries/list).
+ rpc ListInstances(ListInstancesRequest) returns (ListInstancesResponse) {
+ option (google.api.http) = {
+ get: "/v1/{parent=apps/*/services/*/versions/*}/instances"
+ };
+ }
+
+ // Gets instance information.
+ rpc GetInstance(GetInstanceRequest) returns (Instance) {
+ option (google.api.http) = {
+ get: "/v1/{name=apps/*/services/*/versions/*/instances/*}"
+ };
+ }
+
+ // Stops a running instance.
+ //
+ // The instance might be automatically recreated based on the scaling settings
+ // of the version. For more information, see "How Instances are Managed"
+ // ([standard environment](https://cloud.google.com/appengine/docs/standard/python/how-instances-are-managed) |
+ // [flexible environment](https://cloud.google.com/appengine/docs/flexible/python/how-instances-are-managed)).
+ //
+ // To ensure that instances are not re-created and avoid getting billed, you
+ // can stop all instances within the target version by changing the serving
+ // status of the version to `STOPPED` with the
+ // [`apps.services.versions.patch`](https://cloud.google.com/appengine/docs/admin-api/reference/rest/v1/apps.services.versions/patch)
+ // method.
+ rpc DeleteInstance(DeleteInstanceRequest) returns (google.longrunning.Operation) {
+ option (google.api.http) = {
+ delete: "/v1/{name=apps/*/services/*/versions/*/instances/*}"
+ };
+ option (google.longrunning.operation_info) = {
+ response_type: "google.protobuf.Empty"
+ metadata_type: "OperationMetadataV1"
+ };
+ }
+
+ // Enables debugging on a VM instance. This allows you to use the SSH
+ // command to connect to the virtual machine where the instance lives.
+ // While in "debug mode", the instance continues to serve live traffic.
+ // You should delete the instance when you are done debugging and then
+ // allow the system to take over and determine if another instance
+ // should be started.
+ //
+ // Only applicable for instances in App Engine flexible environment.
+ rpc DebugInstance(DebugInstanceRequest) returns (google.longrunning.Operation) {
+ option (google.api.http) = {
+ post: "/v1/{name=apps/*/services/*/versions/*/instances/*}:debug"
+ body: "*"
+ };
+ option (google.longrunning.operation_info) = {
+ response_type: "Instance"
+ metadata_type: "OperationMetadataV1"
+ };
+ }
+}
+
+// Request message for `Instances.ListInstances`.
+message ListInstancesRequest {
+ // Name of the parent Version resource. Example:
+ // `apps/myapp/services/default/versions/v1`.
+ string parent = 1;
+
+ // Maximum results to return per page.
+ int32 page_size = 2;
+
+ // Continuation token for fetching the next page of results.
+ string page_token = 3;
+}
+
+// Response message for `Instances.ListInstances`.
+message ListInstancesResponse {
+ // The instances belonging to the requested version.
+ repeated Instance instances = 1;
+
+ // Continuation token for fetching the next page of results.
+ string next_page_token = 2;
+}
+
+// Request message for `Instances.GetInstance`.
+message GetInstanceRequest {
+ // Name of the resource requested. Example:
+ // `apps/myapp/services/default/versions/v1/instances/instance-1`.
+ string name = 1;
+}
+
+// Request message for `Instances.DeleteInstance`.
+message DeleteInstanceRequest {
+ // Name of the resource requested. Example:
+ // `apps/myapp/services/default/versions/v1/instances/instance-1`.
+ string name = 1;
+}
+
+// Request message for `Instances.DebugInstance`.
+message DebugInstanceRequest {
+ // Name of the resource requested. Example:
+ // `apps/myapp/services/default/versions/v1/instances/instance-1`.
+ string name = 1;
+
+ // Public SSH key to add to the instance. Examples:
+ //
+ // * `[USERNAME]:ssh-rsa [KEY_VALUE] [USERNAME]`
+ // * `[USERNAME]:ssh-rsa [KEY_VALUE] google-ssh {"userName":"[USERNAME]","expireOn":"[EXPIRE_TIME]"}`
+ //
+ // For more information, see
+ // [Adding and Removing SSH Keys](https://cloud.google.com/compute/docs/instances/adding-removing-ssh-keys).
+ string ssh_key = 2;
+}
+
+// Firewall resources are used to define a collection of access control rules
+// for an Application. Each rule is defined with a position which specifies
+// the rule's order in the sequence of rules, an IP range to be matched against
+// requests, and an action to take upon matching requests.
+//
+// Every request is evaluated against the Firewall rules in priority order.
+// Processesing stops at the first rule which matches the request's IP address.
+// A final rule always specifies an action that applies to all remaining
+// IP addresses. The default final rule for a newly-created application will be
+// set to "allow" if not otherwise specified by the user.
+service Firewall {
+ option (google.api.default_host) = "appengine.googleapis.com";
+ option (google.api.oauth_scopes) =
+ "https://www.googleapis.com/auth/appengine.admin,"
+ "https://www.googleapis.com/auth/cloud-platform,"
+ "https://www.googleapis.com/auth/cloud-platform.read-only";
+
+ // Lists the firewall rules of an application.
+ rpc ListIngressRules(ListIngressRulesRequest) returns (ListIngressRulesResponse) {
+ option (google.api.http) = {
+ get: "/v1/{parent=apps/*}/firewall/ingressRules"
+ };
+ }
+
+ // Replaces the entire firewall ruleset in one bulk operation. This overrides
+ // and replaces the rules of an existing firewall with the new rules.
+ //
+ // If the final rule does not match traffic with the '*' wildcard IP range,
+ // then an "allow all" rule is explicitly added to the end of the list.
+ rpc BatchUpdateIngressRules(BatchUpdateIngressRulesRequest) returns (BatchUpdateIngressRulesResponse) {
+ option (google.api.http) = {
+ post: "/v1/{name=apps/*/firewall/ingressRules}:batchUpdate"
+ body: "*"
+ };
+ }
+
+ // Creates a firewall rule for the application.
+ rpc CreateIngressRule(CreateIngressRuleRequest) returns (google.appengine.v1.FirewallRule) {
+ option (google.api.http) = {
+ post: "/v1/{parent=apps/*}/firewall/ingressRules"
+ body: "rule"
+ };
+ }
+
+ // Gets the specified firewall rule.
+ rpc GetIngressRule(GetIngressRuleRequest) returns (google.appengine.v1.FirewallRule) {
+ option (google.api.http) = {
+ get: "/v1/{name=apps/*/firewall/ingressRules/*}"
+ };
+ }
+
+ // Updates the specified firewall rule.
+ rpc UpdateIngressRule(UpdateIngressRuleRequest) returns (google.appengine.v1.FirewallRule) {
+ option (google.api.http) = {
+ patch: "/v1/{name=apps/*/firewall/ingressRules/*}"
+ body: "rule"
+ };
+ }
+
+ // Deletes the specified firewall rule.
+ rpc DeleteIngressRule(DeleteIngressRuleRequest) returns (google.protobuf.Empty) {
+ option (google.api.http) = {
+ delete: "/v1/{name=apps/*/firewall/ingressRules/*}"
+ };
+ }
+}
+
+// Request message for `Firewall.ListIngressRules`.
+message ListIngressRulesRequest {
+ // Name of the Firewall collection to retrieve.
+ // Example: `apps/myapp/firewall/ingressRules`.
+ string parent = 1;
+
+ // Maximum results to return per page.
+ int32 page_size = 2;
+
+ // Continuation token for fetching the next page of results.
+ string page_token = 3;
+
+ // A valid IP Address. If set, only rules matching this address will be
+ // returned. The first returned rule will be the rule that fires on requests
+ // from this IP.
+ string matching_address = 4;
+}
+
+// Response message for `Firewall.ListIngressRules`.
+message ListIngressRulesResponse {
+ // The ingress FirewallRules for this application.
+ repeated google.appengine.v1.FirewallRule ingress_rules = 1;
+
+ // Continuation token for fetching the next page of results.
+ string next_page_token = 2;
+}
+
+// Request message for `Firewall.BatchUpdateIngressRules`.
+message BatchUpdateIngressRulesRequest {
+ // Name of the Firewall collection to set.
+ // Example: `apps/myapp/firewall/ingressRules`.
+ string name = 1;
+
+ // A list of FirewallRules to replace the existing set.
+ repeated google.appengine.v1.FirewallRule ingress_rules = 2;
+}
+
+// Response message for `Firewall.UpdateAllIngressRules`.
+message BatchUpdateIngressRulesResponse {
+ // The full list of ingress FirewallRules for this application.
+ repeated google.appengine.v1.FirewallRule ingress_rules = 1;
+}
+
+// Request message for `Firewall.CreateIngressRule`.
+message CreateIngressRuleRequest {
+ // Name of the parent Firewall collection in which to create a new rule.
+ // Example: `apps/myapp/firewall/ingressRules`.
+ string parent = 1;
+
+ // A FirewallRule containing the new resource.
+ //
+ // The user may optionally provide a position at which the new rule will be
+ // placed. The positions define a sequential list starting at 1. If a rule
+ // already exists at the given position, rules greater than the provided
+ // position will be moved forward by one.
+ //
+ // If no position is provided, the server will place the rule as the second to
+ // last rule in the sequence before the required default allow-all or deny-all
+ // rule.
+ google.appengine.v1.FirewallRule rule = 2;
+}
+
+// Request message for `Firewall.GetIngressRule`.
+message GetIngressRuleRequest {
+ // Name of the Firewall resource to retrieve.
+ // Example: `apps/myapp/firewall/ingressRules/100`.
+ string name = 1;
+}
+
+// Request message for `Firewall.UpdateIngressRule`.
+message UpdateIngressRuleRequest {
+ // Name of the Firewall resource to update.
+ // Example: `apps/myapp/firewall/ingressRules/100`.
+ string name = 1;
+
+ // A FirewallRule containing the updated resource
+ google.appengine.v1.FirewallRule rule = 2;
+
+ // Standard field mask for the set of fields to be updated.
+ google.protobuf.FieldMask update_mask = 3;
+}
+
+// Request message for `Firewall.DeleteIngressRule`.
+message DeleteIngressRuleRequest {
+ // Name of the Firewall resource to delete.
+ // Example: `apps/myapp/firewall/ingressRules/100`.
+ string name = 1;
+}
+
+// Manages domains a user is authorized to administer. To authorize use of a
+// domain, verify ownership via
+// [Webmaster Central](https://www.google.com/webmasters/verification/home).
+service AuthorizedDomains {
+ option (google.api.default_host) = "appengine.googleapis.com";
+ option (google.api.oauth_scopes) =
+ "https://www.googleapis.com/auth/appengine.admin,"
+ "https://www.googleapis.com/auth/cloud-platform,"
+ "https://www.googleapis.com/auth/cloud-platform.read-only";
+
+ // Lists all domains the user is authorized to administer.
+ rpc ListAuthorizedDomains(ListAuthorizedDomainsRequest) returns (ListAuthorizedDomainsResponse) {
+ option (google.api.http) = {
+ get: "/v1/{parent=apps/*}/authorizedDomains"
+ };
+ }
+}
+
+// Request message for `AuthorizedDomains.ListAuthorizedDomains`.
+message ListAuthorizedDomainsRequest {
+ // Name of the parent Application resource. Example: `apps/myapp`.
+ string parent = 1;
+
+ // Maximum results to return per page.
+ int32 page_size = 2;
+
+ // Continuation token for fetching the next page of results.
+ string page_token = 3;
+}
+
+// Response message for `AuthorizedDomains.ListAuthorizedDomains`.
+message ListAuthorizedDomainsResponse {
+ // The authorized domains belonging to the user.
+ repeated google.appengine.v1.AuthorizedDomain domains = 1;
+
+ // Continuation token for fetching the next page of results.
+ string next_page_token = 2;
+}
+
+// Manages SSL certificates a user is authorized to administer. A user can
+// administer any SSL certificates applicable to their authorized domains.
+service AuthorizedCertificates {
+ option (google.api.default_host) = "appengine.googleapis.com";
+ option (google.api.oauth_scopes) =
+ "https://www.googleapis.com/auth/appengine.admin,"
+ "https://www.googleapis.com/auth/cloud-platform,"
+ "https://www.googleapis.com/auth/cloud-platform.read-only";
+
+ // Lists all SSL certificates the user is authorized to administer.
+ rpc ListAuthorizedCertificates(ListAuthorizedCertificatesRequest) returns (ListAuthorizedCertificatesResponse) {
+ option (google.api.http) = {
+ get: "/v1/{parent=apps/*}/authorizedCertificates"
+ };
+ }
+
+ // Gets the specified SSL certificate.
+ rpc GetAuthorizedCertificate(GetAuthorizedCertificateRequest) returns (google.appengine.v1.AuthorizedCertificate) {
+ option (google.api.http) = {
+ get: "/v1/{name=apps/*/authorizedCertificates/*}"
+ };
+ }
+
+ // Uploads the specified SSL certificate.
+ rpc CreateAuthorizedCertificate(CreateAuthorizedCertificateRequest) returns (google.appengine.v1.AuthorizedCertificate) {
+ option (google.api.http) = {
+ post: "/v1/{parent=apps/*}/authorizedCertificates"
+ body: "certificate"
+ };
+ }
+
+ // Updates the specified SSL certificate. To renew a certificate and maintain
+ // its existing domain mappings, update `certificate_data` with a new
+ // certificate. The new certificate must be applicable to the same domains as
+ // the original certificate. The certificate `display_name` may also be
+ // updated.
+ rpc UpdateAuthorizedCertificate(UpdateAuthorizedCertificateRequest) returns (google.appengine.v1.AuthorizedCertificate) {
+ option (google.api.http) = {
+ patch: "/v1/{name=apps/*/authorizedCertificates/*}"
+ body: "certificate"
+ };
+ }
+
+ // Deletes the specified SSL certificate.
+ rpc DeleteAuthorizedCertificate(DeleteAuthorizedCertificateRequest) returns (google.protobuf.Empty) {
+ option (google.api.http) = {
+ delete: "/v1/{name=apps/*/authorizedCertificates/*}"
+ };
+ }
+}
+
+// Request message for `AuthorizedCertificates.ListAuthorizedCertificates`.
+message ListAuthorizedCertificatesRequest {
+ // Name of the parent `Application` resource. Example: `apps/myapp`.
+ string parent = 1;
+
+ // Controls the set of fields returned in the `LIST` response.
+ AuthorizedCertificateView view = 4;
+
+ // Maximum results to return per page.
+ int32 page_size = 2;
+
+ // Continuation token for fetching the next page of results.
+ string page_token = 3;
+}
+
+// Response message for `AuthorizedCertificates.ListAuthorizedCertificates`.
+message ListAuthorizedCertificatesResponse {
+ // The SSL certificates the user is authorized to administer.
+ repeated google.appengine.v1.AuthorizedCertificate certificates = 1;
+
+ // Continuation token for fetching the next page of results.
+ string next_page_token = 2;
+}
+
+// Request message for `AuthorizedCertificates.GetAuthorizedCertificate`.
+message GetAuthorizedCertificateRequest {
+ // Name of the resource requested. Example:
+ // `apps/myapp/authorizedCertificates/12345`.
+ string name = 1;
+
+ // Controls the set of fields returned in the `GET` response.
+ AuthorizedCertificateView view = 2;
+}
+
+// Fields that should be returned when an AuthorizedCertificate resource is
+// retrieved.
+enum AuthorizedCertificateView {
+ // Basic certificate information, including applicable domains and expiration
+ // date.
+ BASIC_CERTIFICATE = 0;
+
+ // The information from `BASIC_CERTIFICATE`, plus detailed information on the
+ // domain mappings that have this certificate mapped.
+ FULL_CERTIFICATE = 1;
+}
+
+// Request message for `AuthorizedCertificates.CreateAuthorizedCertificate`.
+message CreateAuthorizedCertificateRequest {
+ // Name of the parent `Application` resource. Example: `apps/myapp`.
+ string parent = 1;
+
+ // SSL certificate data.
+ google.appengine.v1.AuthorizedCertificate certificate = 2;
+}
+
+// Request message for `AuthorizedCertificates.UpdateAuthorizedCertificate`.
+message UpdateAuthorizedCertificateRequest {
+ // Name of the resource to update. Example:
+ // `apps/myapp/authorizedCertificates/12345`.
+ string name = 1;
+
+ // An `AuthorizedCertificate` containing the updated resource. Only fields set
+ // in the field mask will be updated.
+ google.appengine.v1.AuthorizedCertificate certificate = 2;
+
+ // Standard field mask for the set of fields to be updated. Updates are only
+ // supported on the `certificate_raw_data` and `display_name` fields.
+ google.protobuf.FieldMask update_mask = 3;
+}
+
+// Request message for `AuthorizedCertificates.DeleteAuthorizedCertificate`.
+message DeleteAuthorizedCertificateRequest {
+ // Name of the resource to delete. Example:
+ // `apps/myapp/authorizedCertificates/12345`.
+ string name = 1;
+}
+
+// Manages domains serving an application.
+service DomainMappings {
+ option (google.api.default_host) = "appengine.googleapis.com";
+ option (google.api.oauth_scopes) =
+ "https://www.googleapis.com/auth/appengine.admin,"
+ "https://www.googleapis.com/auth/cloud-platform,"
+ "https://www.googleapis.com/auth/cloud-platform.read-only";
+
+ // Lists the domain mappings on an application.
+ rpc ListDomainMappings(ListDomainMappingsRequest) returns (ListDomainMappingsResponse) {
+ option (google.api.http) = {
+ get: "/v1/{parent=apps/*}/domainMappings"
+ };
+ }
+
+ // Gets the specified domain mapping.
+ rpc GetDomainMapping(GetDomainMappingRequest) returns (google.appengine.v1.DomainMapping) {
+ option (google.api.http) = {
+ get: "/v1/{name=apps/*/domainMappings/*}"
+ };
+ }
+
+ // Maps a domain to an application. A user must be authorized to administer a
+ // domain in order to map it to an application. For a list of available
+ // authorized domains, see [`AuthorizedDomains.ListAuthorizedDomains`]().
+ rpc CreateDomainMapping(CreateDomainMappingRequest) returns (google.longrunning.Operation) {
+ option (google.api.http) = {
+ post: "/v1/{parent=apps/*}/domainMappings"
+ body: "domain_mapping"
+ };
+ option (google.longrunning.operation_info) = {
+ response_type: "DomainMapping"
+ metadata_type: "OperationMetadataV1"
+ };
+ }
+
+ // Updates the specified domain mapping. To map an SSL certificate to a
+ // domain mapping, update `certificate_id` to point to an `AuthorizedCertificate`
+ // resource. A user must be authorized to administer the associated domain
+ // in order to update a `DomainMapping` resource.
+ rpc UpdateDomainMapping(UpdateDomainMappingRequest) returns (google.longrunning.Operation) {
+ option (google.api.http) = {
+ patch: "/v1/{name=apps/*/domainMappings/*}"
+ body: "domain_mapping"
+ };
+ option (google.longrunning.operation_info) = {
+ response_type: "DomainMapping"
+ metadata_type: "OperationMetadataV1"
+ };
+ }
+
+ // Deletes the specified domain mapping. A user must be authorized to
+ // administer the associated domain in order to delete a `DomainMapping`
+ // resource.
+ rpc DeleteDomainMapping(DeleteDomainMappingRequest) returns (google.longrunning.Operation) {
+ option (google.api.http) = {
+ delete: "/v1/{name=apps/*/domainMappings/*}"
+ };
+ option (google.longrunning.operation_info) = {
+ response_type: "google.protobuf.Empty"
+ metadata_type: "OperationMetadataV1"
+ };
+ }
+}
+
+// Request message for `DomainMappings.ListDomainMappings`.
+message ListDomainMappingsRequest {
+ // Name of the parent Application resource. Example: `apps/myapp`.
+ string parent = 1;
+
+ // Maximum results to return per page.
+ int32 page_size = 2;
+
+ // Continuation token for fetching the next page of results.
+ string page_token = 3;
+}
+
+// Response message for `DomainMappings.ListDomainMappings`.
+message ListDomainMappingsResponse {
+ // The domain mappings for the application.
+ repeated google.appengine.v1.DomainMapping domain_mappings = 1;
+
+ // Continuation token for fetching the next page of results.
+ string next_page_token = 2;
+}
+
+// Request message for `DomainMappings.GetDomainMapping`.
+message GetDomainMappingRequest {
+ // Name of the resource requested. Example:
+ // `apps/myapp/domainMappings/example.com`.
+ string name = 1;
+}
+
+// Override strategy for mutating an existing mapping.
+enum DomainOverrideStrategy {
+ // Strategy unspecified. Defaults to `STRICT`.
+ UNSPECIFIED_DOMAIN_OVERRIDE_STRATEGY = 0;
+
+ // Overrides not allowed. If a mapping already exists for the
+ // specified domain, the request will return an ALREADY_EXISTS (409).
+ STRICT = 1;
+
+ // Overrides allowed. If a mapping already exists for the specified domain,
+ // the request will overwrite it. Note that this might stop another
+ // Google product from serving. For example, if the domain is
+ // mapped to another App Engine application, that app will no
+ // longer serve from that domain.
+ OVERRIDE = 2;
+}
+
+// Request message for `DomainMappings.CreateDomainMapping`.
+message CreateDomainMappingRequest {
+ // Name of the parent Application resource. Example: `apps/myapp`.
+ string parent = 1;
+
+ // Domain mapping configuration.
+ google.appengine.v1.DomainMapping domain_mapping = 2;
+
+ // Whether the domain creation should override any existing mappings for this
+ // domain. By default, overrides are rejected.
+ DomainOverrideStrategy override_strategy = 4;
+}
+
+// Request message for `DomainMappings.UpdateDomainMapping`.
+message UpdateDomainMappingRequest {
+ // Name of the resource to update. Example:
+ // `apps/myapp/domainMappings/example.com`.
+ string name = 1;
+
+ // A domain mapping containing the updated resource. Only fields set
+ // in the field mask will be updated.
+ google.appengine.v1.DomainMapping domain_mapping = 2;
+
+ // Required. Standard field mask for the set of fields to be updated.
+ google.protobuf.FieldMask update_mask = 3;
+}
+
+// Request message for `DomainMappings.DeleteDomainMapping`.
+message DeleteDomainMappingRequest {
+ // Name of the resource to delete. Example:
+ // `apps/myapp/domainMappings/example.com`.
+ string name = 1;
+}
diff --git a/third_party/googleapis/google/appengine/v1/appengine_grpc_service_config.json b/third_party/googleapis/google/appengine/v1/appengine_grpc_service_config.json
new file mode 100644
index 0000000..03e4427
--- /dev/null
+++ b/third_party/googleapis/google/appengine/v1/appengine_grpc_service_config.json
@@ -0,0 +1,17 @@
+{
+ "methodConfig": [{
+ "name": [
+ { "service": "google.appengine.v1.Applications" },
+ { "service": "google.appengine.v1.Services" },
+ { "service": "google.appengine.v1.Versions" },
+ { "service": "google.appengine.v1.DeployedFiles" },
+ { "service": "google.appengine.v1.Instances" },
+ { "service": "google.appengine.v1.EmailSenders" },
+ { "service": "google.appengine.v1.Firewall" },
+ { "service": "google.appengine.v1.AuthorizedDomains" },
+ { "service": "google.appengine.v1.AuthorizedCertificates" },
+ { "service": "google.appengine.v1.DomainMappings" }
+ ],
+ "timeout": "60s"
+ }]
+}
diff --git a/third_party/googleapis/google/appengine/v1/appengine_v1.yaml b/third_party/googleapis/google/appengine/v1/appengine_v1.yaml
new file mode 100644
index 0000000..d357318
--- /dev/null
+++ b/third_party/googleapis/google/appengine/v1/appengine_v1.yaml
@@ -0,0 +1,236 @@
+type: google.api.Service
+config_version: 3
+name: appengine.googleapis.com
+title: App Engine Admin API
+
+apis:
+- name: google.appengine.v1.Applications
+- name: google.appengine.v1.AuthorizedCertificates
+- name: google.appengine.v1.AuthorizedDomains
+- name: google.appengine.v1.DomainMappings
+- name: google.appengine.v1.Firewall
+- name: google.appengine.v1.Instances
+- name: google.appengine.v1.Services
+- name: google.appengine.v1.Versions
+
+types:
+- name: google.appengine.v1.LocationMetadata
+- name: google.appengine.v1.OperationMetadataV1
+
+documentation:
+ summary: Provisions and manages developers' App Engine applications.
+ overview: |-
+ # Google App Engine Admin API
+
+ ## Overview
+
+ The Google App Engine Admin API is a RESTful API for managing App Engine
+ applications. The Admin API provides programmatic access to several of the
+ App Engine administrative operations that are found in the [Google Cloud
+ Platform Console](https://console.cloud.google.com/appengine).
+
+ ## Documentation
+
+ [Google App Engine Admin API
+ Documentation](https://cloud.google.com/appengine/docs/admin-api/)
+ rules:
+ - selector: google.cloud.location.Locations.GetLocation
+ description: Gets information about a location.
+
+ - selector: google.cloud.location.Locations.ListLocations
+ description: Lists information about the supported locations for this service.
+
+backend:
+ rules:
+ - selector: 'google.appengine.v1.Applications.*'
+ deadline: 30.0
+ - selector: 'google.appengine.v1.AuthorizedCertificates.*'
+ deadline: 30.0
+ - selector: google.appengine.v1.AuthorizedCertificates.GetAuthorizedCertificate
+ deadline: 60.0
+ - selector: google.appengine.v1.AuthorizedDomains.ListAuthorizedDomains
+ deadline: 30.0
+ - selector: 'google.appengine.v1.DomainMappings.*'
+ deadline: 30.0
+ - selector: google.appengine.v1.DomainMappings.GetDomainMapping
+ deadline: 60.0
+ - selector: google.appengine.v1.DomainMappings.ListDomainMappings
+ deadline: 60.0
+ - selector: 'google.appengine.v1.Firewall.*'
+ deadline: 30.0
+ - selector: 'google.appengine.v1.Instances.*'
+ deadline: 30.0
+ - selector: google.appengine.v1.Instances.ListInstances
+ deadline: 60.0
+ - selector: 'google.appengine.v1.Services.*'
+ deadline: 30.0
+ - selector: 'google.appengine.v1.Versions.*'
+ deadline: 30.0
+ - selector: google.cloud.location.Locations.GetLocation
+ deadline: 30.0
+ - selector: google.cloud.location.Locations.ListLocations
+ deadline: 30.0
+ - selector: 'google.longrunning.Operations.*'
+ deadline: 30.0
+
+http:
+ rules:
+ - selector: google.cloud.location.Locations.GetLocation
+ get: '/v1/{name=apps/*/locations/*}'
+ - selector: google.cloud.location.Locations.ListLocations
+ get: '/v1/{name=apps/*}/locations'
+ - selector: google.longrunning.Operations.GetOperation
+ get: '/v1/{name=apps/*/operations/*}'
+ - selector: google.longrunning.Operations.ListOperations
+ get: '/v1/{name=apps/*}/operations'
+
+authentication:
+ rules:
+ - selector: 'google.appengine.v1.Applications.*'
+ oauth:
+ canonical_scopes: |-
+ https://www.googleapis.com/auth/cloud-platform
+ - selector: google.appengine.v1.Applications.GetApplication
+ oauth:
+ canonical_scopes: |-
+ https://www.googleapis.com/auth/appengine.admin,
+ https://www.googleapis.com/auth/cloud-platform,
+ https://www.googleapis.com/auth/cloud-platform.read-only
+ - selector: 'google.appengine.v1.AuthorizedCertificates.*'
+ oauth:
+ canonical_scopes: |-
+ https://www.googleapis.com/auth/cloud-platform
+ - selector: google.appengine.v1.AuthorizedCertificates.GetAuthorizedCertificate
+ oauth:
+ canonical_scopes: |-
+ https://www.googleapis.com/auth/appengine.admin,
+ https://www.googleapis.com/auth/cloud-platform,
+ https://www.googleapis.com/auth/cloud-platform.read-only
+ - selector: google.appengine.v1.AuthorizedCertificates.ListAuthorizedCertificates
+ oauth:
+ canonical_scopes: |-
+ https://www.googleapis.com/auth/appengine.admin,
+ https://www.googleapis.com/auth/cloud-platform,
+ https://www.googleapis.com/auth/cloud-platform.read-only
+ - selector: google.appengine.v1.AuthorizedDomains.ListAuthorizedDomains
+ oauth:
+ canonical_scopes: |-
+ https://www.googleapis.com/auth/appengine.admin,
+ https://www.googleapis.com/auth/cloud-platform,
+ https://www.googleapis.com/auth/cloud-platform.read-only
+ - selector: 'google.appengine.v1.DomainMappings.*'
+ oauth:
+ canonical_scopes: |-
+ https://www.googleapis.com/auth/cloud-platform
+ - selector: google.appengine.v1.DomainMappings.GetDomainMapping
+ oauth:
+ canonical_scopes: |-
+ https://www.googleapis.com/auth/appengine.admin,
+ https://www.googleapis.com/auth/cloud-platform,
+ https://www.googleapis.com/auth/cloud-platform.read-only
+ - selector: google.appengine.v1.DomainMappings.ListDomainMappings
+ oauth:
+ canonical_scopes: |-
+ https://www.googleapis.com/auth/appengine.admin,
+ https://www.googleapis.com/auth/cloud-platform,
+ https://www.googleapis.com/auth/cloud-platform.read-only
+ - selector: 'google.appengine.v1.Firewall.*'
+ oauth:
+ canonical_scopes: |-
+ https://www.googleapis.com/auth/cloud-platform
+ - selector: google.appengine.v1.Firewall.GetIngressRule
+ oauth:
+ canonical_scopes: |-
+ https://www.googleapis.com/auth/appengine.admin,
+ https://www.googleapis.com/auth/cloud-platform,
+ https://www.googleapis.com/auth/cloud-platform.read-only
+ - selector: google.appengine.v1.Firewall.ListIngressRules
+ oauth:
+ canonical_scopes: |-
+ https://www.googleapis.com/auth/appengine.admin,
+ https://www.googleapis.com/auth/cloud-platform,
+ https://www.googleapis.com/auth/cloud-platform.read-only
+ - selector: google.appengine.v1.Instances.DebugInstance
+ oauth:
+ canonical_scopes: |-
+ https://www.googleapis.com/auth/cloud-platform
+ - selector: google.appengine.v1.Instances.DeleteInstance
+ oauth:
+ canonical_scopes: |-
+ https://www.googleapis.com/auth/cloud-platform
+ - selector: google.appengine.v1.Instances.GetInstance
+ oauth:
+ canonical_scopes: |-
+ https://www.googleapis.com/auth/appengine.admin,
+ https://www.googleapis.com/auth/cloud-platform,
+ https://www.googleapis.com/auth/cloud-platform.read-only
+ - selector: google.appengine.v1.Instances.ListInstances
+ oauth:
+ canonical_scopes: |-
+ https://www.googleapis.com/auth/appengine.admin,
+ https://www.googleapis.com/auth/cloud-platform,
+ https://www.googleapis.com/auth/cloud-platform.read-only
+ - selector: google.appengine.v1.Services.DeleteService
+ oauth:
+ canonical_scopes: |-
+ https://www.googleapis.com/auth/cloud-platform
+ - selector: google.appengine.v1.Services.GetService
+ oauth:
+ canonical_scopes: |-
+ https://www.googleapis.com/auth/appengine.admin,
+ https://www.googleapis.com/auth/cloud-platform,
+ https://www.googleapis.com/auth/cloud-platform.read-only
+ - selector: google.appengine.v1.Services.ListServices
+ oauth:
+ canonical_scopes: |-
+ https://www.googleapis.com/auth/appengine.admin,
+ https://www.googleapis.com/auth/cloud-platform,
+ https://www.googleapis.com/auth/cloud-platform.read-only
+ - selector: google.appengine.v1.Services.UpdateService
+ oauth:
+ canonical_scopes: |-
+ https://www.googleapis.com/auth/cloud-platform
+ - selector: 'google.appengine.v1.Versions.*'
+ oauth:
+ canonical_scopes: |-
+ https://www.googleapis.com/auth/cloud-platform
+ - selector: google.appengine.v1.Versions.GetVersion
+ oauth:
+ canonical_scopes: |-
+ https://www.googleapis.com/auth/appengine.admin,
+ https://www.googleapis.com/auth/cloud-platform,
+ https://www.googleapis.com/auth/cloud-platform.read-only
+ - selector: google.appengine.v1.Versions.ListVersions
+ oauth:
+ canonical_scopes: |-
+ https://www.googleapis.com/auth/appengine.admin,
+ https://www.googleapis.com/auth/cloud-platform,
+ https://www.googleapis.com/auth/cloud-platform.read-only
+ - selector: google.cloud.location.Locations.GetLocation
+ oauth:
+ canonical_scopes: |-
+ https://www.googleapis.com/auth/appengine.admin,
+ https://www.googleapis.com/auth/cloud-platform,
+ https://www.googleapis.com/auth/cloud-platform.read-only
+ - selector: google.cloud.location.Locations.ListLocations
+ oauth:
+ canonical_scopes: |-
+ https://www.googleapis.com/auth/appengine.admin,
+ https://www.googleapis.com/auth/cloud-platform,
+ https://www.googleapis.com/auth/cloud-platform.read-only
+ - selector: google.longrunning.Operations.GetOperation
+ oauth:
+ canonical_scopes: |-
+ https://www.googleapis.com/auth/appengine.admin,
+ https://www.googleapis.com/auth/cloud-platform,
+ https://www.googleapis.com/auth/cloud-platform.read-only
+ - selector: google.longrunning.Operations.ListOperations
+ oauth:
+ canonical_scopes: |-
+ https://www.googleapis.com/auth/appengine.admin,
+ https://www.googleapis.com/auth/cloud-platform,
+ https://www.googleapis.com/auth/cloud-platform.read-only
+ - selector: google.longrunning.Operations.WaitOperation
+ oauth:
+ canonical_scopes: |-
+ https://www.googleapis.com/auth/cloud-platform
diff --git a/third_party/googleapis/google/appengine/v1/application.proto b/third_party/googleapis/google/appengine/v1/application.proto
new file mode 100644
index 0000000..bc9c3f5
--- /dev/null
+++ b/third_party/googleapis/google/appengine/v1/application.proto
@@ -0,0 +1,198 @@
+// Copyright 2022 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.appengine.v1;
+
+import "google/protobuf/duration.proto";
+
+option csharp_namespace = "Google.Cloud.AppEngine.V1";
+option go_package = "google.golang.org/genproto/googleapis/appengine/v1;appengine";
+option java_multiple_files = true;
+option java_outer_classname = "ApplicationProto";
+option java_package = "com.google.appengine.v1";
+option php_namespace = "Google\\Cloud\\AppEngine\\V1";
+option ruby_package = "Google::Cloud::AppEngine::V1";
+
+// An Application resource contains the top-level configuration of an App
+// Engine application.
+message Application {
+ enum ServingStatus {
+ // Serving status is unspecified.
+ UNSPECIFIED = 0;
+
+ // Application is serving.
+ SERVING = 1;
+
+ // Application has been disabled by the user.
+ USER_DISABLED = 2;
+
+ // Application has been disabled by the system.
+ SYSTEM_DISABLED = 3;
+ }
+
+ // Identity-Aware Proxy
+ message IdentityAwareProxy {
+ // Whether the serving infrastructure will authenticate and
+ // authorize all incoming requests.
+ //
+ // If true, the `oauth2_client_id` and `oauth2_client_secret`
+ // fields must be non-empty.
+ bool enabled = 1;
+
+ // OAuth2 client ID to use for the authentication flow.
+ string oauth2_client_id = 2;
+
+ // OAuth2 client secret to use for the authentication flow.
+ //
+ // For security reasons, this value cannot be retrieved via the API.
+ // Instead, the SHA-256 hash of the value is returned in the
+ // `oauth2_client_secret_sha256` field.
+ //
+ // @InputOnly
+ string oauth2_client_secret = 3;
+
+ // Hex-encoded SHA-256 hash of the client secret.
+ //
+ // @OutputOnly
+ string oauth2_client_secret_sha256 = 4;
+ }
+
+ enum DatabaseType {
+ // Database type is unspecified.
+ DATABASE_TYPE_UNSPECIFIED = 0;
+
+ // Cloud Datastore
+ CLOUD_DATASTORE = 1;
+
+ // Cloud Firestore Native
+ CLOUD_FIRESTORE = 2;
+
+ // Cloud Firestore in Datastore Mode
+ CLOUD_DATASTORE_COMPATIBILITY = 3;
+ }
+
+ // The feature specific settings to be used in the application. These define
+ // behaviors that are user configurable.
+ message FeatureSettings {
+ // Boolean value indicating if split health checks should be used instead
+ // of the legacy health checks. At an app.yaml level, this means defaulting
+ // to 'readiness_check' and 'liveness_check' values instead of
+ // 'health_check' ones. Once the legacy 'health_check' behavior is
+ // deprecated, and this value is always true, this setting can
+ // be removed.
+ bool split_health_checks = 1;
+
+ // If true, use [Container-Optimized OS](https://cloud.google.com/container-optimized-os/)
+ // base image for VMs, rather than a base Debian image.
+ bool use_container_optimized_os = 2;
+ }
+
+ // Full path to the Application resource in the API.
+ // Example: `apps/myapp`.
+ //
+ // @OutputOnly
+ string name = 1;
+
+ // Identifier of the Application resource. This identifier is equivalent
+ // to the project ID of the Google Cloud Platform project where you want to
+ // deploy your application.
+ // Example: `myapp`.
+ string id = 2;
+
+ // HTTP path dispatch rules for requests to the application that do not
+ // explicitly target a service or version. Rules are order-dependent.
+ // Up to 20 dispatch rules can be supported.
+ repeated UrlDispatchRule dispatch_rules = 3;
+
+ // Google Apps authentication domain that controls which users can access
+ // this application.
+ //
+ // Defaults to open access for any Google Account.
+ string auth_domain = 6;
+
+ // Location from which this application runs. Application instances
+ // run out of the data centers in the specified location, which is also where
+ // all of the application's end user content is stored.
+ //
+ // Defaults to `us-central`.
+ //
+ // View the list of
+ // [supported locations](https://cloud.google.com/appengine/docs/locations).
+ string location_id = 7;
+
+ // Google Cloud Storage bucket that can be used for storing files
+ // associated with this application. This bucket is associated with the
+ // application and can be used by the gcloud deployment commands.
+ //
+ // @OutputOnly
+ string code_bucket = 8;
+
+ // Cookie expiration policy for this application.
+ google.protobuf.Duration default_cookie_expiration = 9;
+
+ // Serving status of this application.
+ ServingStatus serving_status = 10;
+
+ // Hostname used to reach this application, as resolved by App Engine.
+ //
+ // @OutputOnly
+ string default_hostname = 11;
+
+ // Google Cloud Storage bucket that can be used by this application to store
+ // content.
+ //
+ // @OutputOnly
+ string default_bucket = 12;
+
+ // The service account associated with the application.
+ // This is the app-level default identity. If no identity provided during
+ // create version, Admin API will fallback to this one.
+ string service_account = 13;
+
+ IdentityAwareProxy iap = 14;
+
+ // The Google Container Registry domain used for storing managed build docker
+ // images for this application.
+ string gcr_domain = 16;
+
+ // The type of the Cloud Firestore or Cloud Datastore database associated with
+ // this application.
+ DatabaseType database_type = 17;
+
+ // The feature specific settings to be used in the application.
+ FeatureSettings feature_settings = 18;
+}
+
+// Rules to match an HTTP request and dispatch that request to a service.
+message UrlDispatchRule {
+ // Domain name to match against. The wildcard "`*`" is supported if
+ // specified before a period: "`*.`".
+ //
+ // Defaults to matching all domains: "`*`".
+ string domain = 1;
+
+ // Pathname within the host. Must start with a "`/`". A
+ // single "`*`" can be included at the end of the path.
+ //
+ // The sum of the lengths of the domain and path may not
+ // exceed 100 characters.
+ string path = 2;
+
+ // Resource ID of a service in this application that should
+ // serve the matched request. The service must already
+ // exist. Example: `default`.
+ string service = 3;
+}
diff --git a/third_party/googleapis/google/appengine/v1/audit_data.proto b/third_party/googleapis/google/appengine/v1/audit_data.proto
new file mode 100644
index 0000000..d839280
--- /dev/null
+++ b/third_party/googleapis/google/appengine/v1/audit_data.proto
@@ -0,0 +1,54 @@
+// 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.appengine.v1;
+
+import "google/appengine/v1/appengine.proto";
+
+option csharp_namespace = "Google.Cloud.AppEngine.V1";
+option go_package = "google.golang.org/genproto/googleapis/appengine/v1;appengine";
+option java_multiple_files = true;
+option java_outer_classname = "AuditDataProto";
+option java_package = "com.google.appengine.v1";
+option php_namespace = "Google\\Cloud\\AppEngine\\V1";
+option ruby_package = "Google::Cloud::AppEngine::V1";
+
+// App Engine admin service audit log.
+message AuditData {
+ // Detailed information about methods that require it. Does not include
+ // simple Get, List or Delete methods because all significant information
+ // (resource name, number of returned elements for List operations) is already
+ // included in parent audit log message.
+ oneof method {
+ // Detailed information about UpdateService call.
+ UpdateServiceMethod update_service = 1;
+
+ // Detailed information about CreateVersion call.
+ CreateVersionMethod create_version = 2;
+ }
+}
+
+// Detailed information about UpdateService call.
+message UpdateServiceMethod {
+ // Update service request.
+ UpdateServiceRequest request = 1;
+}
+
+// Detailed information about CreateVersion call.
+message CreateVersionMethod {
+ // Create version request.
+ CreateVersionRequest request = 1;
+}
diff --git a/third_party/googleapis/google/appengine/v1/certificate.proto b/third_party/googleapis/google/appengine/v1/certificate.proto
new file mode 100644
index 0000000..037465b
--- /dev/null
+++ b/third_party/googleapis/google/appengine/v1/certificate.proto
@@ -0,0 +1,172 @@
+// 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.appengine.v1;
+
+import "google/protobuf/timestamp.proto";
+
+option csharp_namespace = "Google.Cloud.AppEngine.V1";
+option go_package = "google.golang.org/genproto/googleapis/appengine/v1;appengine";
+option java_multiple_files = true;
+option java_outer_classname = "CertificateProto";
+option java_package = "com.google.appengine.v1";
+option php_namespace = "Google\\Cloud\\AppEngine\\V1";
+option ruby_package = "Google::Cloud::AppEngine::V1";
+
+// An SSL certificate that a user has been authorized to administer. A user
+// is authorized to administer any certificate that applies to one of their
+// authorized domains.
+message AuthorizedCertificate {
+ // Full path to the `AuthorizedCertificate` resource in the API. Example:
+ // `apps/myapp/authorizedCertificates/12345`.
+ //
+ // @OutputOnly
+ string name = 1;
+
+ // Relative name of the certificate. This is a unique value autogenerated
+ // on `AuthorizedCertificate` resource creation. Example: `12345`.
+ //
+ // @OutputOnly
+ string id = 2;
+
+ // The user-specified display name of the certificate. This is not
+ // guaranteed to be unique. Example: `My Certificate`.
+ string display_name = 3;
+
+ // Topmost applicable domains of this certificate. This certificate
+ // applies to these domains and their subdomains. Example: `example.com`.
+ //
+ // @OutputOnly
+ repeated string domain_names = 4;
+
+ // The time when this certificate expires. To update the renewal time on this
+ // certificate, upload an SSL certificate with a different expiration time
+ // using [`AuthorizedCertificates.UpdateAuthorizedCertificate`]().
+ //
+ // @OutputOnly
+ google.protobuf.Timestamp expire_time = 5;
+
+ // The SSL certificate serving the `AuthorizedCertificate` resource. This
+ // must be obtained independently from a certificate authority.
+ CertificateRawData certificate_raw_data = 6;
+
+ // Only applicable if this certificate is managed by App Engine. Managed
+ // certificates are tied to the lifecycle of a `DomainMapping` and cannot be
+ // updated or deleted via the `AuthorizedCertificates` API. If this
+ // certificate is manually administered by the user, this field will be empty.
+ //
+ // @OutputOnly
+ ManagedCertificate managed_certificate = 7;
+
+ // The full paths to user visible Domain Mapping resources that have this
+ // certificate mapped. Example: `apps/myapp/domainMappings/example.com`.
+ //
+ // This may not represent the full list of mapped domain mappings if the user
+ // does not have `VIEWER` permissions on all of the applications that have
+ // this certificate mapped. See `domain_mappings_count` for a complete count.
+ //
+ // Only returned by `GET` or `LIST` requests when specifically requested by
+ // the `view=FULL_CERTIFICATE` option.
+ //
+ // @OutputOnly
+ repeated string visible_domain_mappings = 8;
+
+ // Aggregate count of the domain mappings with this certificate mapped. This
+ // count includes domain mappings on applications for which the user does not
+ // have `VIEWER` permissions.
+ //
+ // Only returned by `GET` or `LIST` requests when specifically requested by
+ // the `view=FULL_CERTIFICATE` option.
+ //
+ // @OutputOnly
+ int32 domain_mappings_count = 9;
+}
+
+// An SSL certificate obtained from a certificate authority.
+message CertificateRawData {
+ // PEM encoded x.509 public key certificate. This field is set once on
+ // certificate creation. Must include the header and footer. Example:
+ // <pre>
+ // -----BEGIN CERTIFICATE-----
+ // <certificate_value>
+ // -----END CERTIFICATE-----
+ // </pre>
+ string public_certificate = 1;
+
+ // Unencrypted PEM encoded RSA private key. This field is set once on
+ // certificate creation and then encrypted. The key size must be 2048
+ // bits or fewer. Must include the header and footer. Example:
+ // <pre>
+ // -----BEGIN RSA PRIVATE KEY-----
+ // <unencrypted_key_value>
+ // -----END RSA PRIVATE KEY-----
+ // </pre>
+ // @InputOnly
+ string private_key = 2;
+}
+
+// State of certificate management. Refers to the most recent certificate
+// acquisition or renewal attempt.
+enum ManagementStatus {
+ MANAGEMENT_STATUS_UNSPECIFIED = 0;
+
+ // Certificate was successfully obtained and inserted into the serving
+ // system.
+ OK = 1;
+
+ // Certificate is under active attempts to acquire or renew.
+ PENDING = 2;
+
+ // Most recent renewal failed due to an invalid DNS setup and will be
+ // retried. Renewal attempts will continue to fail until the certificate
+ // domain's DNS configuration is fixed. The last successfully provisioned
+ // certificate may still be serving.
+ FAILED_RETRYING_NOT_VISIBLE = 4;
+
+ // All renewal attempts have been exhausted, likely due to an invalid DNS
+ // setup.
+ FAILED_PERMANENT = 6;
+
+ // Most recent renewal failed due to an explicit CAA record that does not
+ // include one of the in-use CAs (Google CA and Let's Encrypt). Renewals will
+ // continue to fail until the CAA is reconfigured. The last successfully
+ // provisioned certificate may still be serving.
+ FAILED_RETRYING_CAA_FORBIDDEN = 7;
+
+ // Most recent renewal failed due to a CAA retrieval failure. This means that
+ // the domain's DNS provider does not properly handle CAA records, failing
+ // requests for CAA records when no CAA records are defined. Renewals will
+ // continue to fail until the DNS provider is changed or a CAA record is
+ // added for the given domain. The last successfully provisioned certificate
+ // may still be serving.
+ FAILED_RETRYING_CAA_CHECKING = 8;
+}
+
+// A certificate managed by App Engine.
+message ManagedCertificate {
+ // Time at which the certificate was last renewed. The renewal process is
+ // fully managed. Certificate renewal will automatically occur before the
+ // certificate expires. Renewal errors can be tracked via `ManagementStatus`.
+ //
+ // @OutputOnly
+ google.protobuf.Timestamp last_renewal_time = 1;
+
+ // Status of certificate management. Refers to the most recent certificate
+ // acquisition or renewal attempt.
+ //
+ // @OutputOnly
+ ManagementStatus status = 2;
+}
diff --git a/third_party/googleapis/google/appengine/v1/deploy.proto b/third_party/googleapis/google/appengine/v1/deploy.proto
new file mode 100644
index 0000000..8796ec1
--- /dev/null
+++ b/third_party/googleapis/google/appengine/v1/deploy.proto
@@ -0,0 +1,107 @@
+// Copyright 2022 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.appengine.v1;
+
+import "google/protobuf/duration.proto";
+
+option csharp_namespace = "Google.Cloud.AppEngine.V1";
+option go_package = "google.golang.org/genproto/googleapis/appengine/v1;appengine";
+option java_multiple_files = true;
+option java_outer_classname = "DeployProto";
+option java_package = "com.google.appengine.v1";
+option php_namespace = "Google\\Cloud\\AppEngine\\V1";
+option ruby_package = "Google::Cloud::AppEngine::V1";
+
+// Code and application artifacts used to deploy a version to App Engine.
+message Deployment {
+ // Manifest of the files stored in Google Cloud Storage that are included
+ // as part of this version. All files must be readable using the
+ // credentials supplied with this call.
+ map<string, FileInfo> files = 1;
+
+ // The Docker image for the container that runs the version.
+ // Only applicable for instances running in the App Engine flexible environment.
+ ContainerInfo container = 2;
+
+ // The zip file for this deployment, if this is a zip deployment.
+ ZipInfo zip = 3;
+
+ // Options for any Google Cloud Build builds created as a part of this
+ // deployment.
+ //
+ // These options will only be used if a new build is created, such as when
+ // deploying to the App Engine flexible environment using files or zip.
+ CloudBuildOptions cloud_build_options = 6;
+}
+
+// Single source file that is part of the version to be deployed. Each source
+// file that is deployed must be specified separately.
+message FileInfo {
+ // URL source to use to fetch this file. Must be a URL to a resource in
+ // Google Cloud Storage in the form
+ // 'http(s)://storage.googleapis.com/\<bucket\>/\<object\>'.
+ string source_url = 1;
+
+ // The SHA1 hash of the file, in hex.
+ string sha1_sum = 2;
+
+ // The MIME type of the file.
+ //
+ // Defaults to the value from Google Cloud Storage.
+ string mime_type = 3;
+}
+
+// Docker image that is used to create a container and start a VM instance for
+// the version that you deploy. Only applicable for instances running in the App
+// Engine flexible environment.
+message ContainerInfo {
+ // URI to the hosted container image in Google Container Registry. The URI
+ // must be fully qualified and include a tag or digest.
+ // Examples: "gcr.io/my-project/image:tag" or "gcr.io/my-project/image@digest"
+ string image = 1;
+}
+
+// Options for the build operations performed as a part of the version
+// deployment. Only applicable for App Engine flexible environment when creating
+// a version using source code directly.
+message CloudBuildOptions {
+ // Path to the yaml file used in deployment, used to determine runtime
+ // configuration details.
+ //
+ // Required for flexible environment builds.
+ //
+ // See https://cloud.google.com/appengine/docs/standard/python/config/appref
+ // for more details.
+ string app_yaml_path = 1;
+
+ // The Cloud Build timeout used as part of any dependent builds performed by
+ // version creation. Defaults to 10 minutes.
+ google.protobuf.Duration cloud_build_timeout = 2;
+}
+
+// The zip file information for a zip deployment.
+message ZipInfo {
+ // URL of the zip file to deploy from. Must be a URL to a resource in
+ // Google Cloud Storage in the form
+ // 'http(s)://storage.googleapis.com/\<bucket\>/\<object\>'.
+ string source_url = 3;
+
+ // An estimate of the number of files in a zip for a zip deployment.
+ // If set, must be greater than or equal to the actual number of files.
+ // Used for optimizing performance; if not provided, deployment may be slow.
+ int32 files_count = 4;
+}
diff --git a/third_party/googleapis/google/appengine/v1/deployed_files.proto b/third_party/googleapis/google/appengine/v1/deployed_files.proto
new file mode 100644
index 0000000..67e9b70
--- /dev/null
+++ b/third_party/googleapis/google/appengine/v1/deployed_files.proto
@@ -0,0 +1,25 @@
+// 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.appengine.v1;
+
+option csharp_namespace = "Google.Cloud.AppEngine.V1";
+option go_package = "google.golang.org/genproto/googleapis/appengine/v1;appengine";
+option java_multiple_files = true;
+option java_outer_classname = "DeployedFilesProto";
+option java_package = "com.google.appengine.v1";
+option php_namespace = "Google\\Cloud\\AppEngine\\V1";
+option ruby_package = "Google::Cloud::AppEngine::V1";
diff --git a/third_party/googleapis/google/appengine/v1/domain.proto b/third_party/googleapis/google/appengine/v1/domain.proto
new file mode 100644
index 0000000..cd39adf
--- /dev/null
+++ b/third_party/googleapis/google/appengine/v1/domain.proto
@@ -0,0 +1,40 @@
+// 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.appengine.v1;
+
+option csharp_namespace = "Google.Cloud.AppEngine.V1";
+option go_package = "google.golang.org/genproto/googleapis/appengine/v1;appengine";
+option java_multiple_files = true;
+option java_outer_classname = "DomainProto";
+option java_package = "com.google.appengine.v1";
+option php_namespace = "Google\\Cloud\\AppEngine\\V1";
+option ruby_package = "Google::Cloud::AppEngine::V1";
+
+// A domain that a user has been authorized to administer. To authorize use
+// of a domain, verify ownership via
+// [Webmaster Central](https://www.google.com/webmasters/verification/home).
+message AuthorizedDomain {
+ // Full path to the `AuthorizedDomain` resource in the API. Example:
+ // `apps/myapp/authorizedDomains/example.com`.
+ //
+ // @OutputOnly
+ string name = 1;
+
+ // Fully qualified domain name of the domain authorized for use. Example:
+ // `example.com`.
+ string id = 2;
+}
diff --git a/third_party/googleapis/google/appengine/v1/domain_mapping.proto b/third_party/googleapis/google/appengine/v1/domain_mapping.proto
new file mode 100644
index 0000000..f307217
--- /dev/null
+++ b/third_party/googleapis/google/appengine/v1/domain_mapping.proto
@@ -0,0 +1,123 @@
+// 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.appengine.v1;
+
+option csharp_namespace = "Google.Cloud.AppEngine.V1";
+option go_package = "google.golang.org/genproto/googleapis/appengine/v1;appengine";
+option java_multiple_files = true;
+option java_outer_classname = "DomainMappingProto";
+option java_package = "com.google.appengine.v1";
+option php_namespace = "Google\\Cloud\\AppEngine\\V1";
+option ruby_package = "Google::Cloud::AppEngine::V1";
+
+// A domain serving an App Engine application.
+message DomainMapping {
+ // Full path to the `DomainMapping` resource in the API. Example:
+ // `apps/myapp/domainMapping/example.com`.
+ //
+ // @OutputOnly
+ string name = 1;
+
+ // Relative name of the domain serving the application. Example:
+ // `example.com`.
+ string id = 2;
+
+ // SSL configuration for this domain. If unconfigured, this domain will not
+ // serve with SSL.
+ SslSettings ssl_settings = 3;
+
+ // The resource records required to configure this domain mapping. These
+ // records must be added to the domain's DNS configuration in order to
+ // serve the application via this domain mapping.
+ //
+ // @OutputOnly
+ repeated ResourceRecord resource_records = 4;
+}
+
+// SSL configuration for a `DomainMapping` resource.
+message SslSettings {
+ // The SSL management type for this domain.
+ enum SslManagementType {
+ // Defaults to `AUTOMATIC`.
+ SSL_MANAGEMENT_TYPE_UNSPECIFIED = 0;
+
+ // SSL support for this domain is configured automatically. The mapped SSL
+ // certificate will be automatically renewed.
+ AUTOMATIC = 1;
+
+ // SSL support for this domain is configured manually by the user. Either
+ // the domain has no SSL support or a user-obtained SSL certificate has been
+ // explictly mapped to this domain.
+ MANUAL = 2;
+ }
+
+ // ID of the `AuthorizedCertificate` resource configuring SSL for the
+ // application. Clearing this field will remove SSL support.
+ //
+ // By default, a managed certificate is automatically created for every
+ // domain mapping. To omit SSL support or to configure SSL manually, specify
+ // `SslManagementType.MANUAL` on a `CREATE` or `UPDATE` request. You must
+ // be authorized to administer the `AuthorizedCertificate` resource to
+ // manually map it to a `DomainMapping` resource.
+ // Example: `12345`.
+ string certificate_id = 1;
+
+ // SSL management type for this domain. If `AUTOMATIC`, a managed certificate
+ // is automatically provisioned. If `MANUAL`, `certificate_id` must be
+ // manually specified in order to configure SSL for this domain.
+ SslManagementType ssl_management_type = 3;
+
+ // ID of the managed `AuthorizedCertificate` resource currently being
+ // provisioned, if applicable. Until the new managed certificate has been
+ // successfully provisioned, the previous SSL state will be preserved. Once
+ // the provisioning process completes, the `certificate_id` field will reflect
+ // the new managed certificate and this field will be left empty. To remove
+ // SSL support while there is still a pending managed certificate, clear the
+ // `certificate_id` field with an `UpdateDomainMappingRequest`.
+ //
+ // @OutputOnly
+ string pending_managed_certificate_id = 4;
+}
+
+// A DNS resource record.
+message ResourceRecord {
+ // A resource record type.
+ enum RecordType {
+ // An unknown resource record.
+ RECORD_TYPE_UNSPECIFIED = 0;
+
+ // An A resource record. Data is an IPv4 address.
+ A = 1;
+
+ // An AAAA resource record. Data is an IPv6 address.
+ AAAA = 2;
+
+ // A CNAME resource record. Data is a domain name to be aliased.
+ CNAME = 3;
+ }
+
+ // Relative name of the object affected by this record. Only applicable for
+ // `CNAME` records. Example: 'www'.
+ string name = 1;
+
+ // Data for this record. Values vary by record type, as defined in RFC 1035
+ // (section 5) and RFC 1034 (section 3.6.1).
+ string rrdata = 2;
+
+ // Resource record type. Example: `AAAA`.
+ RecordType type = 3;
+}
diff --git a/third_party/googleapis/google/appengine/v1/firewall.proto b/third_party/googleapis/google/appengine/v1/firewall.proto
new file mode 100644
index 0000000..d7172f7
--- /dev/null
+++ b/third_party/googleapis/google/appengine/v1/firewall.proto
@@ -0,0 +1,68 @@
+// 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.appengine.v1;
+
+option csharp_namespace = "Google.Cloud.AppEngine.V1";
+option go_package = "google.golang.org/genproto/googleapis/appengine/v1;appengine";
+option java_multiple_files = true;
+option java_outer_classname = "FirewallProto";
+option java_package = "com.google.appengine.v1.firewall";
+option php_namespace = "Google\\Cloud\\AppEngine\\V1";
+option ruby_package = "Google::Cloud::AppEngine::V1";
+
+// A single firewall rule that is evaluated against incoming traffic
+// and provides an action to take on matched requests.
+message FirewallRule {
+ // Available actions to take on matching requests.
+ enum Action {
+ UNSPECIFIED_ACTION = 0;
+
+ // Matching requests are allowed.
+ ALLOW = 1;
+
+ // Matching requests are denied.
+ DENY = 2;
+ }
+
+ // A positive integer between [1, Int32.MaxValue-1] that defines the order of
+ // rule evaluation. Rules with the lowest priority are evaluated first.
+ //
+ // A default rule at priority Int32.MaxValue matches all IPv4 and IPv6 traffic
+ // when no previous rule matches. Only the action of this rule can be modified
+ // by the user.
+ int32 priority = 1;
+
+ // The action to take on matched requests.
+ Action action = 2;
+
+ // IP address or range, defined using CIDR notation, of requests that this
+ // rule applies to. You can use the wildcard character "*" to match all IPs
+ // equivalent to "0/0" and "::/0" together.
+ // Examples: `192.168.1.1` or `192.168.0.0/16` or `2001:db8::/32`
+ // or `2001:0db8:0000:0042:0000:8a2e:0370:7334`.
+ //
+ //
+ // <p>Truncation will be silently performed on addresses which are not
+ // properly truncated. For example, `1.2.3.4/24` is accepted as the same
+ // address as `1.2.3.0/24`. Similarly, for IPv6, `2001:db8::1/32` is accepted
+ // as the same address as `2001:db8::/32`.
+ string source_range = 3;
+
+ // An optional string description of this rule.
+ // This field has a maximum length of 100 characters.
+ string description = 4;
+}
diff --git a/third_party/googleapis/google/appengine/v1/instance.proto b/third_party/googleapis/google/appengine/v1/instance.proto
new file mode 100644
index 0000000..59b2e5c
--- /dev/null
+++ b/third_party/googleapis/google/appengine/v1/instance.proto
@@ -0,0 +1,143 @@
+// Copyright 2022 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.appengine.v1;
+
+import "google/api/field_behavior.proto";
+import "google/api/resource.proto";
+import "google/protobuf/timestamp.proto";
+
+option csharp_namespace = "Google.Cloud.AppEngine.V1";
+option go_package = "google.golang.org/genproto/googleapis/appengine/v1;appengine";
+option java_multiple_files = true;
+option java_outer_classname = "InstanceProto";
+option java_package = "com.google.appengine.v1";
+option php_namespace = "Google\\Cloud\\AppEngine\\V1";
+option ruby_package = "Google::Cloud::AppEngine::V1";
+
+// An Instance resource is the computing unit that App Engine uses to
+// automatically scale an application.
+message Instance {
+ option (google.api.resource) = {
+ type: "appengine.googleapis.com/Instance"
+ pattern: "apps/{app}/services/{service}/versions/{version}/instances/{instance}"
+ };
+
+ // Availability of the instance.
+ enum Availability {
+ UNSPECIFIED = 0;
+
+ RESIDENT = 1;
+
+ DYNAMIC = 2;
+ }
+
+ // Wrapper for LivenessState enum.
+ message Liveness {
+ // Liveness health check status for Flex instances.
+ enum LivenessState {
+ // There is no liveness health check for the instance. Only applicable for
+ // instances in App Engine standard environment.
+ LIVENESS_STATE_UNSPECIFIED = 0;
+
+ // The health checking system is aware of the instance but its health is
+ // not known at the moment.
+ UNKNOWN = 1;
+
+ // The instance is reachable i.e. a connection to the application health
+ // checking endpoint can be established, and conforms to the requirements
+ // defined by the health check.
+ HEALTHY = 2;
+
+ // The instance is reachable, but does not conform to the requirements
+ // defined by the health check.
+ UNHEALTHY = 3;
+
+ // The instance is being drained. The existing connections to the instance
+ // have time to complete, but the new ones are being refused.
+ DRAINING = 4;
+
+ // The instance is unreachable i.e. a connection to the application health
+ // checking endpoint cannot be established, or the server does not respond
+ // within the specified timeout.
+ TIMEOUT = 5;
+ }
+
+
+ }
+
+ // Output only. Full path to the Instance resource in the API.
+ // Example: `apps/myapp/services/default/versions/v1/instances/instance-1`.
+ string name = 1 [(google.api.field_behavior) = OUTPUT_ONLY];
+
+ // Output only. Relative name of the instance within the version.
+ // Example: `instance-1`.
+ string id = 2 [(google.api.field_behavior) = OUTPUT_ONLY];
+
+ // Output only. App Engine release this instance is running on.
+ string app_engine_release = 3 [(google.api.field_behavior) = OUTPUT_ONLY];
+
+ // Output only. Availability of the instance.
+ Availability availability = 4 [(google.api.field_behavior) = OUTPUT_ONLY];
+
+ // Output only. Name of the virtual machine where this instance lives. Only applicable
+ // for instances in App Engine flexible environment.
+ string vm_name = 5 [(google.api.field_behavior) = OUTPUT_ONLY];
+
+ // Output only. Zone where the virtual machine is located. Only applicable for instances
+ // in App Engine flexible environment.
+ string vm_zone_name = 6 [(google.api.field_behavior) = OUTPUT_ONLY];
+
+ // Output only. Virtual machine ID of this instance. Only applicable for instances in
+ // App Engine flexible environment.
+ string vm_id = 7 [(google.api.field_behavior) = OUTPUT_ONLY];
+
+ // Output only. Time that this instance was started.
+ //
+ // @OutputOnly
+ google.protobuf.Timestamp start_time = 8 [(google.api.field_behavior) = OUTPUT_ONLY];
+
+ // Output only. Number of requests since this instance was started.
+ int32 requests = 9 [(google.api.field_behavior) = OUTPUT_ONLY];
+
+ // Output only. Number of errors since this instance was started.
+ int32 errors = 10 [(google.api.field_behavior) = OUTPUT_ONLY];
+
+ // Output only. Average queries per second (QPS) over the last minute.
+ float qps = 11 [(google.api.field_behavior) = OUTPUT_ONLY];
+
+ // Output only. Average latency (ms) over the last minute.
+ int32 average_latency = 12 [(google.api.field_behavior) = OUTPUT_ONLY];
+
+ // Output only. Total memory in use (bytes).
+ int64 memory_usage = 13 [(google.api.field_behavior) = OUTPUT_ONLY];
+
+ // Output only. Status of the virtual machine where this instance lives. Only applicable
+ // for instances in App Engine flexible environment.
+ string vm_status = 14 [(google.api.field_behavior) = OUTPUT_ONLY];
+
+ // Output only. Whether this instance is in debug mode. Only applicable for instances in
+ // App Engine flexible environment.
+ bool vm_debug_enabled = 15 [(google.api.field_behavior) = OUTPUT_ONLY];
+
+ // Output only. The IP address of this instance. Only applicable for instances in App
+ // Engine flexible environment.
+ string vm_ip = 16 [(google.api.field_behavior) = OUTPUT_ONLY];
+
+ // Output only. The liveness health check of this instance. Only applicable for instances
+ // in App Engine flexible environment.
+ Liveness.LivenessState vm_liveness = 17 [(google.api.field_behavior) = OUTPUT_ONLY];
+}
diff --git a/third_party/googleapis/google/appengine/v1/location.proto b/third_party/googleapis/google/appengine/v1/location.proto
new file mode 100644
index 0000000..995a5ff
--- /dev/null
+++ b/third_party/googleapis/google/appengine/v1/location.proto
@@ -0,0 +1,44 @@
+// Copyright 2022 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.appengine.v1;
+
+import "google/api/field_behavior.proto";
+
+option csharp_namespace = "Google.Cloud.AppEngine.V1";
+option go_package = "google.golang.org/genproto/googleapis/appengine/v1;appengine";
+option java_multiple_files = true;
+option java_outer_classname = "LocationProto";
+option java_package = "com.google.appengine.v1";
+option php_namespace = "Google\\Cloud\\AppEngine\\V1";
+option ruby_package = "Google::Cloud::AppEngine::V1";
+
+// Metadata for the given [google.cloud.location.Location][google.cloud.location.Location].
+message LocationMetadata {
+ // App Engine standard environment is available in the given location.
+ //
+ // @OutputOnly
+ bool standard_environment_available = 2;
+
+ // App Engine flexible environment is available in the given location.
+ //
+ // @OutputOnly
+ bool flexible_environment_available = 4;
+
+ // Output only. [Search API](https://cloud.google.com/appengine/docs/standard/python/search)
+ // is available in the given location.
+ bool search_api_available = 6 [(google.api.field_behavior) = OUTPUT_ONLY];
+}
diff --git a/third_party/googleapis/google/appengine/v1/network_settings.proto b/third_party/googleapis/google/appengine/v1/network_settings.proto
new file mode 100644
index 0000000..2645e8c
--- /dev/null
+++ b/third_party/googleapis/google/appengine/v1/network_settings.proto
@@ -0,0 +1,47 @@
+// Copyright 2022 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.appengine.v1;
+
+option csharp_namespace = "Google.Cloud.AppEngine.V1";
+option go_package = "google.golang.org/genproto/googleapis/appengine/v1;appengine";
+option java_multiple_files = true;
+option java_outer_classname = "NetworkSettingsProto";
+option java_package = "com.google.appengine.v1";
+option php_namespace = "Google\\Cloud\\AppEngine\\V1";
+option ruby_package = "Google::Cloud::AppEngine::V1";
+
+// A NetworkSettings resource is a container for ingress settings for a version
+// or service.
+message NetworkSettings {
+ // If unspecified, INGRESS_TRAFFIC_ALLOWED_ALL will be used.
+ enum IngressTrafficAllowed {
+ // Unspecified
+ INGRESS_TRAFFIC_ALLOWED_UNSPECIFIED = 0;
+
+ // Allow HTTP traffic from public and private sources.
+ INGRESS_TRAFFIC_ALLOWED_ALL = 1;
+
+ // Allow HTTP traffic from only private VPC sources.
+ INGRESS_TRAFFIC_ALLOWED_INTERNAL_ONLY = 2;
+
+ // Allow HTTP traffic from private VPC sources and through load balancers.
+ INGRESS_TRAFFIC_ALLOWED_INTERNAL_AND_LB = 3;
+ }
+
+ // The ingress settings for version or service.
+ IngressTrafficAllowed ingress_traffic_allowed = 1;
+}
diff --git a/third_party/googleapis/google/appengine/v1/operation.proto b/third_party/googleapis/google/appengine/v1/operation.proto
new file mode 100644
index 0000000..a2636cb
--- /dev/null
+++ b/third_party/googleapis/google/appengine/v1/operation.proto
@@ -0,0 +1,79 @@
+// Copyright 2022 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.appengine.v1;
+
+import "google/protobuf/timestamp.proto";
+
+option csharp_namespace = "Google.Cloud.AppEngine.V1";
+option go_package = "google.golang.org/genproto/googleapis/appengine/v1;appengine";
+option java_multiple_files = true;
+option java_outer_classname = "OperationProto";
+option java_package = "com.google.appengine.v1";
+option php_namespace = "Google\\Cloud\\AppEngine\\V1";
+option ruby_package = "Google::Cloud::AppEngine::V1";
+
+// Metadata for the given [google.longrunning.Operation][google.longrunning.Operation].
+message OperationMetadataV1 {
+ // API method that initiated this operation. Example:
+ // `google.appengine.v1.Versions.CreateVersion`.
+ //
+ // @OutputOnly
+ string method = 1;
+
+ // Time that this operation was created.
+ //
+ // @OutputOnly
+ google.protobuf.Timestamp insert_time = 2;
+
+ // Time that this operation completed.
+ //
+ // @OutputOnly
+ google.protobuf.Timestamp end_time = 3;
+
+ // User who requested this operation.
+ //
+ // @OutputOnly
+ string user = 4;
+
+ // Name of the resource that this operation is acting on. Example:
+ // `apps/myapp/services/default`.
+ //
+ // @OutputOnly
+ string target = 5;
+
+ // Ephemeral message that may change every time the operation is polled.
+ // @OutputOnly
+ string ephemeral_message = 6;
+
+ // Durable messages that persist on every operation poll.
+ // @OutputOnly
+ repeated string warning = 7;
+
+ // Metadata specific to the type of operation in progress.
+ // @OutputOnly
+ oneof method_metadata {
+ CreateVersionMetadataV1 create_version_metadata = 8;
+ }
+}
+
+// Metadata for the given [google.longrunning.Operation][google.longrunning.Operation] during a
+// [google.appengine.v1.CreateVersionRequest][google.appengine.v1.CreateVersionRequest].
+message CreateVersionMetadataV1 {
+ // The Cloud Build ID if one was created as part of the version create.
+ // @OutputOnly
+ string cloud_build_id = 1;
+}
diff --git a/third_party/googleapis/google/appengine/v1/service.proto b/third_party/googleapis/google/appengine/v1/service.proto
new file mode 100644
index 0000000..b3ed6de
--- /dev/null
+++ b/third_party/googleapis/google/appengine/v1/service.proto
@@ -0,0 +1,106 @@
+// Copyright 2022 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.appengine.v1;
+
+import "google/appengine/v1/network_settings.proto";
+
+option csharp_namespace = "Google.Cloud.AppEngine.V1";
+option go_package = "google.golang.org/genproto/googleapis/appengine/v1;appengine";
+option java_multiple_files = true;
+option java_outer_classname = "ServiceProto";
+option java_package = "com.google.appengine.v1";
+option php_namespace = "Google\\Cloud\\AppEngine\\V1";
+option ruby_package = "Google::Cloud::AppEngine::V1";
+
+// A Service resource is a logical component of an application that can share
+// state and communicate in a secure fashion with other services.
+// For example, an application that handles customer requests might
+// include separate services to handle tasks such as backend data
+// analysis or API requests from mobile devices. Each service has a
+// collection of versions that define a specific set of code used to
+// implement the functionality of that service.
+message Service {
+ // Full path to the Service resource in the API.
+ // Example: `apps/myapp/services/default`.
+ //
+ // @OutputOnly
+ string name = 1;
+
+ // Relative name of the service within the application.
+ // Example: `default`.
+ //
+ // @OutputOnly
+ string id = 2;
+
+ // Mapping that defines fractional HTTP traffic diversion to
+ // different versions within the service.
+ TrafficSplit split = 3;
+
+ // A set of labels to apply to this service. Labels are key/value pairs that
+ // describe the service and all resources that belong to it (e.g.,
+ // versions). The labels can be used to search and group resources, and are
+ // propagated to the usage and billing reports, enabling fine-grain analysis
+ // of costs. An example of using labels is to tag resources belonging to
+ // different environments (e.g., "env=prod", "env=qa").
+ //
+ // <p>Label keys and values can be no longer than 63 characters and can only
+ // contain lowercase letters, numeric characters, underscores, dashes, and
+ // international characters. Label keys must start with a lowercase letter
+ // or an international character. Each service can have at most 32 labels.
+ map<string, string> labels = 4;
+
+ // Ingress settings for this service. Will apply to all versions.
+ NetworkSettings network_settings = 6;
+}
+
+// Traffic routing configuration for versions within a single service. Traffic
+// splits define how traffic directed to the service is assigned to versions.
+message TrafficSplit {
+ // Available sharding mechanisms.
+ enum ShardBy {
+ // Diversion method unspecified.
+ UNSPECIFIED = 0;
+
+ // Diversion based on a specially named cookie, "GOOGAPPUID." The cookie
+ // must be set by the application itself or no diversion will occur.
+ COOKIE = 1;
+
+ // Diversion based on applying the modulus operation to a fingerprint
+ // of the IP address.
+ IP = 2;
+
+ // Diversion based on weighted random assignment. An incoming request is
+ // randomly routed to a version in the traffic split, with probability
+ // proportional to the version's traffic share.
+ RANDOM = 3;
+ }
+
+ // Mechanism used to determine which version a request is sent to.
+ // The traffic selection algorithm will
+ // be stable for either type until allocations are changed.
+ ShardBy shard_by = 1;
+
+ // Mapping from version IDs within the service to fractional
+ // (0.000, 1] allocations of traffic for that version. Each version can
+ // be specified only once, but some versions in the service may not
+ // have any traffic allocation. Services that have traffic allocated
+ // cannot be deleted until either the service is deleted or
+ // their traffic allocation is removed. Allocations must sum to 1.
+ // Up to two decimal place precision is supported for IP-based splits and
+ // up to three decimal places is supported for cookie-based splits.
+ map<string, double> allocations = 2;
+}
diff --git a/third_party/googleapis/google/appengine/v1/version.proto b/third_party/googleapis/google/appengine/v1/version.proto
new file mode 100644
index 0000000..2caab51
--- /dev/null
+++ b/third_party/googleapis/google/appengine/v1/version.proto
@@ -0,0 +1,594 @@
+// Copyright 2022 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.appengine.v1;
+
+import "google/appengine/v1/app_yaml.proto";
+import "google/appengine/v1/deploy.proto";
+import "google/protobuf/duration.proto";
+import "google/protobuf/timestamp.proto";
+
+option csharp_namespace = "Google.Cloud.AppEngine.V1";
+option go_package = "google.golang.org/genproto/googleapis/appengine/v1;appengine";
+option java_multiple_files = true;
+option java_outer_classname = "VersionProto";
+option java_package = "com.google.appengine.v1";
+option php_namespace = "Google\\Cloud\\AppEngine\\V1";
+option ruby_package = "Google::Cloud::AppEngine::V1";
+
+// A Version resource is a specific set of source code and configuration files
+// that are deployed into a service.
+message Version {
+ // Full path to the Version resource in the API. Example:
+ // `apps/myapp/services/default/versions/v1`.
+ //
+ // @OutputOnly
+ string name = 1;
+
+ // Relative name of the version within the service. Example: `v1`.
+ // Version names can contain only lowercase letters, numbers, or hyphens.
+ // Reserved names: "default", "latest", and any name with the prefix "ah-".
+ string id = 2;
+
+ // Controls how instances are created, scaled, and reaped.
+ //
+ // Defaults to `AutomaticScaling`.
+ oneof scaling {
+ // Automatic scaling is based on request rate, response latencies, and other
+ // application metrics. Instances are dynamically created and destroyed as
+ // needed in order to handle traffic.
+ AutomaticScaling automatic_scaling = 3;
+
+ // A service with basic scaling will create an instance when the application
+ // receives a request. The instance will be turned down when the app becomes
+ // idle. Basic scaling is ideal for work that is intermittent or driven by
+ // user activity.
+ BasicScaling basic_scaling = 4;
+
+ // A service with manual scaling runs continuously, allowing you to perform
+ // complex initialization and rely on the state of its memory over time.
+ // Manually scaled versions are sometimes referred to as "backends".
+ ManualScaling manual_scaling = 5;
+ }
+
+ // Before an application can receive email or XMPP messages, the application
+ // must be configured to enable the service.
+ repeated InboundServiceType inbound_services = 6;
+
+ // Instance class that is used to run this version. Valid values are:
+ //
+ // * AutomaticScaling: `F1`, `F2`, `F4`, `F4_1G`
+ // * ManualScaling or BasicScaling: `B1`, `B2`, `B4`, `B8`, `B4_1G`
+ //
+ // Defaults to `F1` for AutomaticScaling and `B1` for ManualScaling or
+ // BasicScaling.
+ string instance_class = 7;
+
+ // Extra network settings.
+ // Only applicable in the App Engine flexible environment.
+ Network network = 8;
+
+ // The Google Compute Engine zones that are supported by this version in the
+ // App Engine flexible environment. Deprecated.
+ repeated string zones = 118;
+
+ // Machine resources for this version.
+ // Only applicable in the App Engine flexible environment.
+ Resources resources = 9;
+
+ // Desired runtime. Example: `python27`.
+ string runtime = 10;
+
+ // The channel of the runtime to use. Only available for some
+ // runtimes. Defaults to the `default` channel.
+ string runtime_channel = 117;
+
+ // Whether multiple requests can be dispatched to this version at once.
+ bool threadsafe = 11;
+
+ // Whether to deploy this version in a container on a virtual machine.
+ bool vm = 12;
+
+ // Allows App Engine second generation runtimes to access the legacy bundled
+ // services.
+ bool app_engine_apis = 128;
+
+ // Metadata settings that are supplied to this version to enable
+ // beta runtime features.
+ map<string, string> beta_settings = 13;
+
+ // App Engine execution environment for this version.
+ //
+ // Defaults to `standard`.
+ string env = 14;
+
+ // Current serving status of this version. Only the versions with a
+ // `SERVING` status create instances and can be billed.
+ //
+ // `SERVING_STATUS_UNSPECIFIED` is an invalid value. Defaults to `SERVING`.
+ ServingStatus serving_status = 15;
+
+ // Email address of the user who created this version.
+ //
+ // @OutputOnly
+ string created_by = 16;
+
+ // Time that this version was created.
+ //
+ // @OutputOnly
+ google.protobuf.Timestamp create_time = 17;
+
+ // Total size in bytes of all the files that are included in this version
+ // and currently hosted on the App Engine disk.
+ //
+ // @OutputOnly
+ int64 disk_usage_bytes = 18;
+
+ // The version of the API in the given runtime environment. Please see the
+ // app.yaml reference for valid values at
+ // https://cloud.google.com/appengine/docs/standard/<language>/config/appref
+ string runtime_api_version = 21;
+
+ // The path or name of the app's main executable.
+ string runtime_main_executable_path = 22;
+
+ // The identity that the deployed version will run as.
+ // Admin API will use the App Engine Appspot service account as default if
+ // this field is neither provided in app.yaml file nor through CLI flag.
+ string service_account = 127;
+
+ // An ordered list of URL-matching patterns that should be applied to incoming
+ // requests. The first matching URL handles the request and other request
+ // handlers are not attempted.
+ //
+ // Only returned in `GET` requests if `view=FULL` is set.
+ repeated UrlMap handlers = 100;
+
+ // Custom static error pages. Limited to 10KB per page.
+ //
+ // Only returned in `GET` requests if `view=FULL` is set.
+ repeated ErrorHandler error_handlers = 101;
+
+ // Configuration for third-party Python runtime libraries that are required
+ // by the application.
+ //
+ // Only returned in `GET` requests if `view=FULL` is set.
+ repeated Library libraries = 102;
+
+ // Serving configuration for
+ // [Google Cloud Endpoints](https://cloud.google.com/appengine/docs/python/endpoints/).
+ //
+ // Only returned in `GET` requests if `view=FULL` is set.
+ ApiConfigHandler api_config = 103;
+
+ // Environment variables available to the application.
+ //
+ // Only returned in `GET` requests if `view=FULL` is set.
+ map<string, string> env_variables = 104;
+
+ // Environment variables available to the build environment.
+ //
+ // Only returned in `GET` requests if `view=FULL` is set.
+ map<string, string> build_env_variables = 125;
+
+ // Duration that static files should be cached by web proxies and browsers.
+ // Only applicable if the corresponding
+ // [StaticFilesHandler](https://cloud.google.com/appengine/docs/admin-api/reference/rest/v1/apps.services.versions#StaticFilesHandler)
+ // does not specify its own expiration time.
+ //
+ // Only returned in `GET` requests if `view=FULL` is set.
+ google.protobuf.Duration default_expiration = 105;
+
+ // Configures health checking for instances. Unhealthy instances are
+ // stopped and replaced with new instances.
+ // Only applicable in the App Engine flexible environment.
+ //
+ // Only returned in `GET` requests if `view=FULL` is set.
+ HealthCheck health_check = 106;
+
+ // Configures readiness health checking for instances.
+ // Unhealthy instances are not put into the backend traffic rotation.
+ //
+ // Only returned in `GET` requests if `view=FULL` is set.
+ ReadinessCheck readiness_check = 112;
+
+ // Configures liveness health checking for instances.
+ // Unhealthy instances are stopped and replaced with new instances
+ //
+ // Only returned in `GET` requests if `view=FULL` is set.
+ LivenessCheck liveness_check = 113;
+
+ // Files that match this pattern will not be built into this version.
+ // Only applicable for Go runtimes.
+ //
+ // Only returned in `GET` requests if `view=FULL` is set.
+ string nobuild_files_regex = 107;
+
+ // Code and application artifacts that make up this version.
+ //
+ // Only returned in `GET` requests if `view=FULL` is set.
+ Deployment deployment = 108;
+
+ // Serving URL for this version. Example:
+ // "https://myversion-dot-myservice-dot-myapp.appspot.com"
+ //
+ // @OutputOnly
+ string version_url = 109;
+
+ // Cloud Endpoints configuration.
+ //
+ // If endpoints_api_service is set, the Cloud Endpoints Extensible Service
+ // Proxy will be provided to serve the API implemented by the app.
+ EndpointsApiService endpoints_api_service = 110;
+
+ // The entrypoint for the application.
+ Entrypoint entrypoint = 122;
+
+ // Enables VPC connectivity for standard apps.
+ VpcAccessConnector vpc_access_connector = 121;
+}
+
+// [Cloud Endpoints](https://cloud.google.com/endpoints) configuration.
+// The Endpoints API Service provides tooling for serving Open API and gRPC
+// endpoints via an NGINX proxy. Only valid for App Engine Flexible environment
+// deployments.
+//
+// The fields here refer to the name and configuration ID of a "service"
+// resource in the [Service Management API](https://cloud.google.com/service-management/overview).
+message EndpointsApiService {
+ // Available rollout strategies.
+ enum RolloutStrategy {
+ // Not specified. Defaults to `FIXED`.
+ UNSPECIFIED_ROLLOUT_STRATEGY = 0;
+
+ // Endpoints service configuration ID will be fixed to the configuration ID
+ // specified by `config_id`.
+ FIXED = 1;
+
+ // Endpoints service configuration ID will be updated with each rollout.
+ MANAGED = 2;
+ }
+
+ // Endpoints service name which is the name of the "service" resource in the
+ // Service Management API. For example "myapi.endpoints.myproject.cloud.goog"
+ string name = 1;
+
+ // Endpoints service configuration ID as specified by the Service Management
+ // API. For example "2016-09-19r1".
+ //
+ // By default, the rollout strategy for Endpoints is `RolloutStrategy.FIXED`.
+ // This means that Endpoints starts up with a particular configuration ID.
+ // When a new configuration is rolled out, Endpoints must be given the new
+ // configuration ID. The `config_id` field is used to give the configuration
+ // ID and is required in this case.
+ //
+ // Endpoints also has a rollout strategy called `RolloutStrategy.MANAGED`.
+ // When using this, Endpoints fetches the latest configuration and does not
+ // need the configuration ID. In this case, `config_id` must be omitted.
+ string config_id = 2;
+
+ // Endpoints rollout strategy. If `FIXED`, `config_id` must be specified. If
+ // `MANAGED`, `config_id` must be omitted.
+ RolloutStrategy rollout_strategy = 3;
+
+ // Enable or disable trace sampling. By default, this is set to false for
+ // enabled.
+ bool disable_trace_sampling = 4;
+}
+
+// Automatic scaling is based on request rate, response latencies, and other
+// application metrics.
+message AutomaticScaling {
+ // The time period that the
+ // [Autoscaler](https://cloud.google.com/compute/docs/autoscaler/)
+ // should wait before it starts collecting information from a new instance.
+ // This prevents the autoscaler from collecting information when the instance
+ // is initializing, during which the collected usage would not be reliable.
+ // Only applicable in the App Engine flexible environment.
+ google.protobuf.Duration cool_down_period = 1;
+
+ // Target scaling by CPU usage.
+ CpuUtilization cpu_utilization = 2;
+
+ // Number of concurrent requests an automatic scaling instance can accept
+ // before the scheduler spawns a new instance.
+ //
+ // Defaults to a runtime-specific value.
+ int32 max_concurrent_requests = 3;
+
+ // Maximum number of idle instances that should be maintained for this
+ // version.
+ int32 max_idle_instances = 4;
+
+ // Maximum number of instances that should be started to handle requests for
+ // this version.
+ int32 max_total_instances = 5;
+
+ // Maximum amount of time that a request should wait in the pending queue
+ // before starting a new instance to handle it.
+ google.protobuf.Duration max_pending_latency = 6;
+
+ // Minimum number of idle instances that should be maintained for
+ // this version. Only applicable for the default version of a service.
+ int32 min_idle_instances = 7;
+
+ // Minimum number of running instances that should be maintained for this
+ // version.
+ int32 min_total_instances = 8;
+
+ // Minimum amount of time a request should wait in the pending queue before
+ // starting a new instance to handle it.
+ google.protobuf.Duration min_pending_latency = 9;
+
+ // Target scaling by request utilization.
+ RequestUtilization request_utilization = 10;
+
+ // Target scaling by disk usage.
+ DiskUtilization disk_utilization = 11;
+
+ // Target scaling by network usage.
+ NetworkUtilization network_utilization = 12;
+
+ // Scheduler settings for standard environment.
+ StandardSchedulerSettings standard_scheduler_settings = 20;
+}
+
+// A service with basic scaling will create an instance when the application
+// receives a request. The instance will be turned down when the app becomes
+// idle. Basic scaling is ideal for work that is intermittent or driven by
+// user activity.
+message BasicScaling {
+ // Duration of time after the last request that an instance must wait before
+ // the instance is shut down.
+ google.protobuf.Duration idle_timeout = 1;
+
+ // Maximum number of instances to create for this version.
+ int32 max_instances = 2;
+}
+
+// A service with manual scaling runs continuously, allowing you to perform
+// complex initialization and rely on the state of its memory over time.
+message ManualScaling {
+ // Number of instances to assign to the service at the start. This number
+ // can later be altered by using the
+ // [Modules API](https://cloud.google.com/appengine/docs/python/modules/functions)
+ // `set_num_instances()` function.
+ int32 instances = 1;
+}
+
+// Target scaling by CPU usage.
+message CpuUtilization {
+ // Period of time over which CPU utilization is calculated.
+ google.protobuf.Duration aggregation_window_length = 1;
+
+ // Target CPU utilization ratio to maintain when scaling. Must be between 0
+ // and 1.
+ double target_utilization = 2;
+}
+
+// Target scaling by request utilization.
+// Only applicable in the App Engine flexible environment.
+message RequestUtilization {
+ // Target requests per second.
+ int32 target_request_count_per_second = 1;
+
+ // Target number of concurrent requests.
+ int32 target_concurrent_requests = 2;
+}
+
+// Target scaling by disk usage.
+// Only applicable in the App Engine flexible environment.
+message DiskUtilization {
+ // Target bytes written per second.
+ int32 target_write_bytes_per_second = 14;
+
+ // Target ops written per second.
+ int32 target_write_ops_per_second = 15;
+
+ // Target bytes read per second.
+ int32 target_read_bytes_per_second = 16;
+
+ // Target ops read per seconds.
+ int32 target_read_ops_per_second = 17;
+}
+
+// Target scaling by network usage.
+// Only applicable in the App Engine flexible environment.
+message NetworkUtilization {
+ // Target bytes sent per second.
+ int32 target_sent_bytes_per_second = 1;
+
+ // Target packets sent per second.
+ int32 target_sent_packets_per_second = 11;
+
+ // Target bytes received per second.
+ int32 target_received_bytes_per_second = 12;
+
+ // Target packets received per second.
+ int32 target_received_packets_per_second = 13;
+}
+
+// Scheduler settings for standard environment.
+message StandardSchedulerSettings {
+ // Target CPU utilization ratio to maintain when scaling.
+ double target_cpu_utilization = 1;
+
+ // Target throughput utilization ratio to maintain when scaling
+ double target_throughput_utilization = 2;
+
+ // Minimum number of instances to run for this version. Set to zero to disable
+ // `min_instances` configuration.
+ int32 min_instances = 3;
+
+ // Maximum number of instances to run for this version. Set to zero to disable
+ // `max_instances` configuration.
+ int32 max_instances = 4;
+}
+
+// Extra network settings.
+// Only applicable in the App Engine flexible environment.
+message Network {
+ // List of ports, or port pairs, to forward from the virtual machine to the
+ // application container.
+ // Only applicable in the App Engine flexible environment.
+ repeated string forwarded_ports = 1;
+
+ // Tag to apply to the instance during creation.
+ // Only applicable in the App Engine flexible environment.
+ string instance_tag = 2;
+
+ // Google Compute Engine network where the virtual machines are created.
+ // Specify the short name, not the resource path.
+ //
+ // Defaults to `default`.
+ string name = 3;
+
+ // Google Cloud Platform sub-network where the virtual machines are created.
+ // Specify the short name, not the resource path.
+ //
+ // If a subnetwork name is specified, a network name will also be required
+ // unless it is for the default network.
+ //
+ // * If the network that the instance is being created in is a Legacy network,
+ // then the IP address is allocated from the IPv4Range.
+ // * If the network that the instance is being created in is an auto Subnet
+ // Mode Network, then only network name should be specified (not the
+ // subnetwork_name) and the IP address is created from the IPCidrRange of the
+ // subnetwork that exists in that zone for that network.
+ // * If the network that the instance is being created in is a custom Subnet
+ // Mode Network, then the subnetwork_name must be specified and the
+ // IP address is created from the IPCidrRange of the subnetwork.
+ //
+ // If specified, the subnetwork must exist in the same region as the
+ // App Engine flexible environment application.
+ string subnetwork_name = 4;
+
+ // Enable session affinity.
+ // Only applicable in the App Engine flexible environment.
+ bool session_affinity = 5;
+}
+
+// Volumes mounted within the app container.
+// Only applicable in the App Engine flexible environment.
+message Volume {
+ // Unique name for the volume.
+ string name = 1;
+
+ // Underlying volume type, e.g. 'tmpfs'.
+ string volume_type = 2;
+
+ // Volume size in gigabytes.
+ double size_gb = 3;
+}
+
+// Machine resources for a version.
+message Resources {
+ // Number of CPU cores needed.
+ double cpu = 1;
+
+ // Disk size (GB) needed.
+ double disk_gb = 2;
+
+ // Memory (GB) needed.
+ double memory_gb = 3;
+
+ // User specified volumes.
+ repeated Volume volumes = 4;
+
+ // The name of the encryption key that is stored in Google Cloud KMS.
+ // Only should be used by Cloud Composer to encrypt the vm disk
+ string kms_key_reference = 5;
+}
+
+// Available inbound services.
+enum InboundServiceType {
+ // Not specified.
+ INBOUND_SERVICE_UNSPECIFIED = 0;
+
+ // Allows an application to receive mail.
+ INBOUND_SERVICE_MAIL = 1;
+
+ // Allows an application to receive email-bound notifications.
+ INBOUND_SERVICE_MAIL_BOUNCE = 2;
+
+ // Allows an application to receive error stanzas.
+ INBOUND_SERVICE_XMPP_ERROR = 3;
+
+ // Allows an application to receive instant messages.
+ INBOUND_SERVICE_XMPP_MESSAGE = 4;
+
+ // Allows an application to receive user subscription POSTs.
+ INBOUND_SERVICE_XMPP_SUBSCRIBE = 5;
+
+ // Allows an application to receive a user's chat presence.
+ INBOUND_SERVICE_XMPP_PRESENCE = 6;
+
+ // Registers an application for notifications when a client connects or
+ // disconnects from a channel.
+ INBOUND_SERVICE_CHANNEL_PRESENCE = 7;
+
+ // Enables warmup requests.
+ INBOUND_SERVICE_WARMUP = 9;
+}
+
+// Run states of a version.
+enum ServingStatus {
+ // Not specified.
+ SERVING_STATUS_UNSPECIFIED = 0;
+
+ // Currently serving. Instances are created according to the
+ // scaling settings of the version.
+ SERVING = 1;
+
+ // Disabled. No instances will be created and the scaling
+ // settings are ignored until the state of the version changes
+ // to `SERVING`.
+ STOPPED = 2;
+}
+
+// VPC access connector specification.
+message VpcAccessConnector {
+ // Available egress settings.
+ //
+ // This controls what traffic is diverted through the VPC Access Connector
+ // resource. By default PRIVATE_IP_RANGES will be used.
+ enum EgressSetting {
+ EGRESS_SETTING_UNSPECIFIED = 0;
+
+ // Force the use of VPC Access for all egress traffic from the function.
+ ALL_TRAFFIC = 1;
+
+ // Use the VPC Access Connector for private IP space from RFC1918.
+ PRIVATE_IP_RANGES = 2;
+ }
+
+ // Full Serverless VPC Access Connector name e.g.
+ // /projects/my-project/locations/us-central1/connectors/c1.
+ string name = 1;
+
+ // The egress setting for the connector, controlling what traffic is diverted
+ // through it.
+ EgressSetting egress_setting = 2;
+}
+
+// The entrypoint for the application.
+message Entrypoint {
+ // The command to run.
+ oneof command {
+ // The format should be a shell command that can be fed to `bash -c`.
+ string shell = 1;
+ }
+}
diff --git a/third_party/googleapis/google/appengine/v1beta/BUILD.bazel b/third_party/googleapis/google/appengine/v1beta/BUILD.bazel
new file mode 100644
index 0000000..e79f083
--- /dev/null
+++ b/third_party/googleapis/google/appengine/v1beta/BUILD.bazel
@@ -0,0 +1,192 @@
+# This file was automatically generated by BuildFileGenerator
+
+# This is an API workspace, having public visibility by default makes perfect sense.
+package(default_visibility = ["//visibility:public"])
+
+##############################################################################
+# Common
+##############################################################################
+load("@rules_proto//proto:defs.bzl", "proto_library")
+
+proto_library(
+ name = "appengine_proto",
+ srcs = [
+ "app_yaml.proto",
+ "appengine.proto",
+ "application.proto",
+ "audit_data.proto",
+ "certificate.proto",
+ "deploy.proto",
+ "domain.proto",
+ "domain_mapping.proto",
+ "firewall.proto",
+ "instance.proto",
+ "location.proto",
+ "network_settings.proto",
+ "operation.proto",
+ "service.proto",
+ "version.proto",
+ ],
+ deps = [
+ "//google/api:annotations_proto",
+ "//google/api:client_proto",
+ "//google/api:field_behavior_proto",
+ "//google/api:resource_proto",
+ "//google/longrunning:operations_proto",
+ "@com_google_protobuf//:duration_proto",
+ "@com_google_protobuf//:empty_proto",
+ "@com_google_protobuf//:field_mask_proto",
+ "@com_google_protobuf//:timestamp_proto",
+ ],
+)
+
+##############################################################################
+# Java
+##############################################################################
+load(
+ "@com_google_googleapis_imports//:imports.bzl",
+ "java_grpc_library",
+ "java_proto_library",
+)
+
+java_proto_library(
+ name = "appengine_java_proto",
+ deps = [":appengine_proto"],
+)
+
+java_grpc_library(
+ name = "appengine_java_grpc",
+ srcs = [":appengine_proto"],
+ deps = [":appengine_java_proto"],
+)
+
+##############################################################################
+# Go
+##############################################################################
+load(
+ "@com_google_googleapis_imports//:imports.bzl",
+ "go_proto_library",
+)
+
+go_proto_library(
+ name = "appengine_go_proto",
+ compilers = ["@io_bazel_rules_go//proto:go_grpc"],
+ importpath = "google.golang.org/genproto/googleapis/appengine/v1beta",
+ protos = [":appengine_proto"],
+ deps = [
+ "//google/api:annotations_go_proto",
+ "//google/longrunning:longrunning_go_proto",
+ ],
+)
+
+##############################################################################
+# Python
+##############################################################################
+load(
+ "@com_google_googleapis_imports//:imports.bzl",
+ "moved_proto_library",
+ "py_grpc_library",
+ "py_proto_library",
+)
+
+moved_proto_library(
+ name = "appengine_moved_proto",
+ srcs = [":appengine_proto"],
+ deps = [
+ "//google/api:annotations_proto",
+ "//google/api:client_proto",
+ "//google/api:field_behavior_proto",
+ "//google/api:resource_proto",
+ "//google/longrunning:operations_proto",
+ "@com_google_protobuf//:duration_proto",
+ "@com_google_protobuf//:empty_proto",
+ "@com_google_protobuf//:field_mask_proto",
+ "@com_google_protobuf//:timestamp_proto",
+ ],
+)
+
+py_proto_library(
+ name = "appengine_py_proto",
+ deps = [":appengine_moved_proto"],
+)
+
+py_grpc_library(
+ name = "appengine_py_grpc",
+ srcs = [":appengine_moved_proto"],
+ deps = [":appengine_py_proto"],
+)
+
+##############################################################################
+# PHP
+##############################################################################
+load(
+ "@com_google_googleapis_imports//:imports.bzl",
+ "php_grpc_library",
+ "php_proto_library",
+)
+
+php_proto_library(
+ name = "appengine_php_proto",
+ deps = [":appengine_proto"],
+)
+
+php_grpc_library(
+ name = "appengine_php_grpc",
+ srcs = [":appengine_proto"],
+ deps = [":appengine_php_proto"],
+)
+
+##############################################################################
+# Node.js
+##############################################################################
+load(
+ "@com_google_googleapis_imports//:imports.bzl",
+ "nodejs_gapic_assembly_pkg",
+ "nodejs_gapic_library",
+)
+
+
+##############################################################################
+# Ruby
+##############################################################################
+load(
+ "@com_google_googleapis_imports//:imports.bzl",
+ "ruby_grpc_library",
+ "ruby_proto_library",
+)
+
+ruby_proto_library(
+ name = "appengine_ruby_proto",
+ deps = [":appengine_proto"],
+)
+
+ruby_grpc_library(
+ name = "appengine_ruby_grpc",
+ srcs = [":appengine_proto"],
+ deps = [":appengine_ruby_proto"],
+)
+
+##############################################################################
+# C#
+##############################################################################
+load(
+ "@com_google_googleapis_imports//:imports.bzl",
+ "csharp_grpc_library",
+ "csharp_proto_library",
+)
+
+csharp_proto_library(
+ name = "appengine_csharp_proto",
+ deps = [":appengine_proto"],
+)
+
+csharp_grpc_library(
+ name = "appengine_csharp_grpc",
+ srcs = [":appengine_proto"],
+ deps = [":appengine_csharp_proto"],
+)
+
+##############################################################################
+# C++
+##############################################################################
+# Put your C++ code here
diff --git a/third_party/googleapis/google/appengine/v1beta/app_yaml.proto b/third_party/googleapis/google/appengine/v1beta/app_yaml.proto
new file mode 100644
index 0000000..a18e9d5
--- /dev/null
+++ b/third_party/googleapis/google/appengine/v1beta/app_yaml.proto
@@ -0,0 +1,348 @@
+// Copyright 2021 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.appengine.v1beta;
+
+import "google/protobuf/duration.proto";
+
+option csharp_namespace = "Google.Cloud.AppEngine.V1Beta";
+option go_package = "google.golang.org/genproto/googleapis/appengine/v1beta;appengine";
+option java_multiple_files = true;
+option java_outer_classname = "AppYamlProto";
+option java_package = "com.google.appengine.v1beta";
+option php_namespace = "Google\\Cloud\\AppEngine\\V1beta";
+option ruby_package = "Google::Cloud::AppEngine::V1beta";
+
+// [Google Cloud Endpoints](https://cloud.google.com/appengine/docs/python/endpoints/)
+// configuration for API handlers.
+message ApiConfigHandler {
+ // Action to take when users access resources that require
+ // authentication. Defaults to `redirect`.
+ AuthFailAction auth_fail_action = 1;
+
+ // Level of login required to access this resource. Defaults to
+ // `optional`.
+ LoginRequirement login = 2;
+
+ // Path to the script from the application root directory.
+ string script = 3;
+
+ // Security (HTTPS) enforcement for this URL.
+ SecurityLevel security_level = 4;
+
+ // URL to serve the endpoint at.
+ string url = 5;
+}
+
+// Custom static error page to be served when an error occurs.
+message ErrorHandler {
+ // Error codes.
+ enum ErrorCode {
+ option allow_alias = true;
+
+ // Not specified. ERROR_CODE_DEFAULT is assumed.
+ ERROR_CODE_UNSPECIFIED = 0;
+
+ // All other error types.
+ ERROR_CODE_DEFAULT = 0;
+
+ // Application has exceeded a resource quota.
+ ERROR_CODE_OVER_QUOTA = 1;
+
+ // Client blocked by the application's Denial of Service protection
+ // configuration.
+ ERROR_CODE_DOS_API_DENIAL = 2;
+
+ // Deadline reached before the application responds.
+ ERROR_CODE_TIMEOUT = 3;
+ }
+
+ // Error condition this handler applies to.
+ ErrorCode error_code = 1;
+
+ // Static file content to be served for this error.
+ string static_file = 2;
+
+ // MIME type of file. Defaults to `text/html`.
+ string mime_type = 3;
+}
+
+// URL pattern and description of how the URL should be handled. App Engine can
+// handle URLs by executing application code or by serving static files
+// uploaded with the version, such as images, CSS, or JavaScript.
+message UrlMap {
+ // Redirect codes.
+ enum RedirectHttpResponseCode {
+ // Not specified. `302` is assumed.
+ REDIRECT_HTTP_RESPONSE_CODE_UNSPECIFIED = 0;
+
+ // `301 Moved Permanently` code.
+ REDIRECT_HTTP_RESPONSE_CODE_301 = 1;
+
+ // `302 Moved Temporarily` code.
+ REDIRECT_HTTP_RESPONSE_CODE_302 = 2;
+
+ // `303 See Other` code.
+ REDIRECT_HTTP_RESPONSE_CODE_303 = 3;
+
+ // `307 Temporary Redirect` code.
+ REDIRECT_HTTP_RESPONSE_CODE_307 = 4;
+ }
+
+ // URL prefix. Uses regular expression syntax, which means regexp
+ // special characters must be escaped, but should not contain groupings.
+ // All URLs that begin with this prefix are handled by this handler, using the
+ // portion of the URL after the prefix as part of the file path.
+ string url_regex = 1;
+
+ // Type of handler for this URL pattern.
+ oneof handler_type {
+ // Returns the contents of a file, such as an image, as the response.
+ StaticFilesHandler static_files = 2;
+
+ // Executes a script to handle the requests that match this URL
+ // pattern. Only the `auto` value is supported for Node.js in the
+ // App Engine standard environment, for example `"script": "auto"`.
+ ScriptHandler script = 3;
+
+ // Uses API Endpoints to handle requests.
+ ApiEndpointHandler api_endpoint = 4;
+ }
+
+ // Security (HTTPS) enforcement for this URL.
+ SecurityLevel security_level = 5;
+
+ // Level of login required to access this resource. Not supported for Node.js
+ // in the App Engine standard environment.
+ LoginRequirement login = 6;
+
+ // Action to take when users access resources that require
+ // authentication. Defaults to `redirect`.
+ AuthFailAction auth_fail_action = 7;
+
+ // `30x` code to use when performing redirects for the `secure` field.
+ // Defaults to `302`.
+ RedirectHttpResponseCode redirect_http_response_code = 8;
+}
+
+// Files served directly to the user for a given URL, such as images, CSS
+// stylesheets, or JavaScript source files. Static file handlers describe which
+// files in the application directory are static files, and which URLs serve
+// them.
+message StaticFilesHandler {
+ // Path to the static files matched by the URL pattern, from the
+ // application root directory. The path can refer to text matched in groupings
+ // in the URL pattern.
+ string path = 1;
+
+ // Regular expression that matches the file paths for all files that should be
+ // referenced by this handler.
+ string upload_path_regex = 2;
+
+ // HTTP headers to use for all responses from these URLs.
+ map<string, string> http_headers = 3;
+
+ // MIME type used to serve all files served by this handler.
+ //
+ // Defaults to file-specific MIME types, which are derived from each file's
+ // filename extension.
+ string mime_type = 4;
+
+ // Time a static file served by this handler should be cached
+ // by web proxies and browsers.
+ google.protobuf.Duration expiration = 5;
+
+ // Whether this handler should match the request if the file
+ // referenced by the handler does not exist.
+ bool require_matching_file = 6;
+
+ // Whether files should also be uploaded as code data. By default, files
+ // declared in static file handlers are uploaded as static
+ // data and are only served to end users; they cannot be read by the
+ // application. If enabled, uploads are charged against both your code and
+ // static data storage resource quotas.
+ bool application_readable = 7;
+}
+
+// Executes a script to handle the request that matches the URL pattern.
+message ScriptHandler {
+ // Path to the script from the application root directory.
+ string script_path = 1;
+}
+
+// Uses Google Cloud Endpoints to handle requests.
+message ApiEndpointHandler {
+ // Path to the script from the application root directory.
+ string script_path = 1;
+}
+
+// Health checking configuration for VM instances. Unhealthy instances
+// are killed and replaced with new instances. Only applicable for
+// instances in App Engine flexible environment.
+message HealthCheck {
+ // Whether to explicitly disable health checks for this instance.
+ bool disable_health_check = 1;
+
+ // Host header to send when performing an HTTP health check.
+ // Example: "myapp.appspot.com"
+ string host = 2;
+
+ // Number of consecutive successful health checks required before receiving
+ // traffic.
+ uint32 healthy_threshold = 3;
+
+ // Number of consecutive failed health checks required before removing
+ // traffic.
+ uint32 unhealthy_threshold = 4;
+
+ // Number of consecutive failed health checks required before an instance is
+ // restarted.
+ uint32 restart_threshold = 5;
+
+ // Interval between health checks.
+ google.protobuf.Duration check_interval = 6;
+
+ // Time before the health check is considered failed.
+ google.protobuf.Duration timeout = 7;
+}
+
+// Readiness checking configuration for VM instances. Unhealthy instances
+// are removed from traffic rotation.
+message ReadinessCheck {
+ // The request path.
+ string path = 1;
+
+ // Host header to send when performing a HTTP Readiness check.
+ // Example: "myapp.appspot.com"
+ string host = 2;
+
+ // Number of consecutive failed checks required before removing
+ // traffic.
+ uint32 failure_threshold = 3;
+
+ // Number of consecutive successful checks required before receiving
+ // traffic.
+ uint32 success_threshold = 4;
+
+ // Interval between health checks.
+ google.protobuf.Duration check_interval = 5;
+
+ // Time before the check is considered failed.
+ google.protobuf.Duration timeout = 6;
+
+ // A maximum time limit on application initialization, measured from moment
+ // the application successfully replies to a healthcheck until it is ready to
+ // serve traffic.
+ google.protobuf.Duration app_start_timeout = 7;
+}
+
+// Health checking configuration for VM instances. Unhealthy instances
+// are killed and replaced with new instances.
+message LivenessCheck {
+ // The request path.
+ string path = 1;
+
+ // Host header to send when performing a HTTP Liveness check.
+ // Example: "myapp.appspot.com"
+ string host = 2;
+
+ // Number of consecutive failed checks required before considering the
+ // VM unhealthy.
+ uint32 failure_threshold = 3;
+
+ // Number of consecutive successful checks required before considering
+ // the VM healthy.
+ uint32 success_threshold = 4;
+
+ // Interval between health checks.
+ google.protobuf.Duration check_interval = 5;
+
+ // Time before the check is considered failed.
+ google.protobuf.Duration timeout = 6;
+
+ // The initial delay before starting to execute the checks.
+ google.protobuf.Duration initial_delay = 7;
+}
+
+// Third-party Python runtime library that is required by the application.
+message Library {
+ // Name of the library. Example: "django".
+ string name = 1;
+
+ // Version of the library to select, or "latest".
+ string version = 2;
+}
+
+// Actions to take when the user is not logged in.
+enum AuthFailAction {
+ // Not specified. `AUTH_FAIL_ACTION_REDIRECT` is assumed.
+ AUTH_FAIL_ACTION_UNSPECIFIED = 0;
+
+ // Redirects user to "accounts.google.com". The user is redirected back to the
+ // application URL after signing in or creating an account.
+ AUTH_FAIL_ACTION_REDIRECT = 1;
+
+ // Rejects request with a `401` HTTP status code and an error
+ // message.
+ AUTH_FAIL_ACTION_UNAUTHORIZED = 2;
+}
+
+// Methods to restrict access to a URL based on login status.
+enum LoginRequirement {
+ // Not specified. `LOGIN_OPTIONAL` is assumed.
+ LOGIN_UNSPECIFIED = 0;
+
+ // Does not require that the user is signed in.
+ LOGIN_OPTIONAL = 1;
+
+ // If the user is not signed in, the `auth_fail_action` is taken.
+ // In addition, if the user is not an administrator for the
+ // application, they are given an error message regardless of
+ // `auth_fail_action`. If the user is an administrator, the handler
+ // proceeds.
+ LOGIN_ADMIN = 2;
+
+ // If the user has signed in, the handler proceeds normally. Otherwise, the
+ // auth_fail_action is taken.
+ LOGIN_REQUIRED = 3;
+}
+
+// Methods to enforce security (HTTPS) on a URL.
+enum SecurityLevel {
+ option allow_alias = true;
+
+ // Not specified.
+ SECURE_UNSPECIFIED = 0;
+
+ // Both HTTP and HTTPS requests with URLs that match the handler succeed
+ // without redirects. The application can examine the request to determine
+ // which protocol was used, and respond accordingly.
+ SECURE_DEFAULT = 0;
+
+ // Requests for a URL that match this handler that use HTTPS are automatically
+ // redirected to the HTTP equivalent URL.
+ SECURE_NEVER = 1;
+
+ // Both HTTP and HTTPS requests with URLs that match the handler succeed
+ // without redirects. The application can examine the request to determine
+ // which protocol was used and respond accordingly.
+ SECURE_OPTIONAL = 2;
+
+ // Requests for a URL that match this handler that do not use HTTPS are
+ // automatically redirected to the HTTPS URL with the same path. Query
+ // parameters are reserved for the redirect.
+ SECURE_ALWAYS = 3;
+}
diff --git a/third_party/googleapis/google/appengine/v1beta/appengine.proto b/third_party/googleapis/google/appengine/v1beta/appengine.proto
new file mode 100644
index 0000000..9b26dab
--- /dev/null
+++ b/third_party/googleapis/google/appengine/v1beta/appengine.proto
@@ -0,0 +1,1006 @@
+// Copyright 2021 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.appengine.v1beta;
+
+import "google/appengine/v1beta/application.proto";
+import "google/appengine/v1beta/certificate.proto";
+import "google/appengine/v1beta/domain.proto";
+import "google/appengine/v1beta/domain_mapping.proto";
+import "google/appengine/v1beta/firewall.proto";
+import "google/appengine/v1beta/instance.proto";
+import "google/appengine/v1beta/version.proto";
+import "google/appengine/v1beta/service.proto";
+import "google/api/annotations.proto";
+import "google/longrunning/operations.proto";
+import "google/protobuf/empty.proto";
+import "google/protobuf/field_mask.proto";
+import "google/api/client.proto";
+
+option csharp_namespace = "Google.Cloud.AppEngine.V1Beta";
+option go_package = "google.golang.org/genproto/googleapis/appengine/v1beta;appengine";
+option java_multiple_files = true;
+option java_outer_classname = "AppengineProto";
+option java_package = "com.google.appengine.v1beta";
+option php_namespace = "Google\\Cloud\\AppEngine\\V1beta";
+option ruby_package = "Google::Cloud::AppEngine::V1beta";
+
+// Manages App Engine applications.
+service Applications {
+ option (google.api.default_host) = "appengine.googleapis.com";
+ option (google.api.oauth_scopes) =
+ "https://www.googleapis.com/auth/appengine.admin,"
+ "https://www.googleapis.com/auth/cloud-platform,"
+ "https://www.googleapis.com/auth/cloud-platform.read-only";
+
+ // Gets information about an application.
+ rpc GetApplication(GetApplicationRequest) returns (Application) {
+ option (google.api.http) = {
+ get: "/v1beta/{name=apps/*}"
+ };
+ }
+
+ // Creates an App Engine application for a Google Cloud Platform project.
+ // Required fields:
+ //
+ // * `id` - The ID of the target Cloud Platform project.
+ // * *location* - The [region](https://cloud.google.com/appengine/docs/locations) where you want the App Engine application located.
+ //
+ // For more information about App Engine applications, see [Managing Projects, Applications, and Billing](https://cloud.google.com/appengine/docs/standard/python/console/).
+ rpc CreateApplication(CreateApplicationRequest) returns (google.longrunning.Operation) {
+ option (google.api.http) = {
+ post: "/v1beta/apps"
+ body: "application"
+ };
+ option (google.longrunning.operation_info) = {
+ response_type: "Application"
+ metadata_type: "OperationMetadataV1Beta"
+ };
+ }
+
+ // Updates the specified Application resource.
+ // You can update the following fields:
+ //
+ // * `auth_domain` - Google authentication domain for controlling user access to the application.
+ // * `default_cookie_expiration` - Cookie expiration policy for the application.
+ rpc UpdateApplication(UpdateApplicationRequest) returns (google.longrunning.Operation) {
+ option (google.api.http) = {
+ patch: "/v1beta/{name=apps/*}"
+ body: "application"
+ };
+ option (google.longrunning.operation_info) = {
+ response_type: "Application"
+ metadata_type: "OperationMetadataV1Beta"
+ };
+ }
+
+ // Recreates the required App Engine features for the specified App Engine
+ // application, for example a Cloud Storage bucket or App Engine service
+ // account.
+ // Use this method if you receive an error message about a missing feature,
+ // for example, *Error retrieving the App Engine service account*.
+ // If you have deleted your App Engine service account, this will
+ // not be able to recreate it. Instead, you should attempt to use the
+ // IAM undelete API if possible at https://cloud.google.com/iam/reference/rest/v1/projects.serviceAccounts/undelete?apix_params=%7B"name"%3A"projects%2F-%2FserviceAccounts%2Funique_id"%2C"resource"%3A%7B%7D%7D .
+ // If the deletion was recent, the numeric ID can be found in the Cloud
+ // Console Activity Log.
+ rpc RepairApplication(RepairApplicationRequest) returns (google.longrunning.Operation) {
+ option (google.api.http) = {
+ post: "/v1beta/{name=apps/*}:repair"
+ body: "*"
+ };
+ option (google.longrunning.operation_info) = {
+ response_type: "Application"
+ metadata_type: "OperationMetadataV1Beta"
+ };
+ }
+}
+
+// Request message for `Applications.GetApplication`.
+message GetApplicationRequest {
+ // Name of the Application resource to get. Example: `apps/myapp`.
+ string name = 1;
+}
+
+// Request message for `Applications.CreateApplication`.
+message CreateApplicationRequest {
+ // Application configuration.
+ Application application = 2;
+}
+
+// Request message for `Applications.UpdateApplication`.
+message UpdateApplicationRequest {
+ // Name of the Application resource to update. Example: `apps/myapp`.
+ string name = 1;
+
+ // An Application containing the updated resource.
+ Application application = 2;
+
+ // Standard field mask for the set of fields to be updated.
+ google.protobuf.FieldMask update_mask = 3;
+}
+
+// Request message for 'Applications.RepairApplication'.
+message RepairApplicationRequest {
+ // Name of the application to repair. Example: `apps/myapp`
+ string name = 1;
+}
+
+// Manages services of an application.
+service Services {
+ option (google.api.default_host) = "appengine.googleapis.com";
+ option (google.api.oauth_scopes) =
+ "https://www.googleapis.com/auth/appengine.admin,"
+ "https://www.googleapis.com/auth/cloud-platform,"
+ "https://www.googleapis.com/auth/cloud-platform.read-only";
+
+ // Lists all the services in the application.
+ rpc ListServices(ListServicesRequest) returns (ListServicesResponse) {
+ option (google.api.http) = {
+ get: "/v1beta/{parent=apps/*}/services"
+ };
+ }
+
+ // Gets the current configuration of the specified service.
+ rpc GetService(GetServiceRequest) returns (Service) {
+ option (google.api.http) = {
+ get: "/v1beta/{name=apps/*/services/*}"
+ };
+ }
+
+ // Updates the configuration of the specified service.
+ rpc UpdateService(UpdateServiceRequest) returns (google.longrunning.Operation) {
+ option (google.api.http) = {
+ patch: "/v1beta/{name=apps/*/services/*}"
+ body: "service"
+ };
+ option (google.longrunning.operation_info) = {
+ response_type: "Service"
+ metadata_type: "OperationMetadataV1Beta"
+ };
+ }
+
+ // Deletes the specified service and all enclosed versions.
+ rpc DeleteService(DeleteServiceRequest) returns (google.longrunning.Operation) {
+ option (google.api.http) = {
+ delete: "/v1beta/{name=apps/*/services/*}"
+ };
+ option (google.longrunning.operation_info) = {
+ response_type: "google.protobuf.Empty"
+ metadata_type: "OperationMetadataV1Beta"
+ };
+ }
+}
+
+// Request message for `Services.ListServices`.
+message ListServicesRequest {
+ // Name of the parent Application resource. Example: `apps/myapp`.
+ string parent = 1;
+
+ // Maximum results to return per page.
+ int32 page_size = 2;
+
+ // Continuation token for fetching the next page of results.
+ string page_token = 3;
+}
+
+// Response message for `Services.ListServices`.
+message ListServicesResponse {
+ // The services belonging to the requested application.
+ repeated Service services = 1;
+
+ // Continuation token for fetching the next page of results.
+ string next_page_token = 2;
+}
+
+// Request message for `Services.GetService`.
+message GetServiceRequest {
+ // Name of the resource requested. Example: `apps/myapp/services/default`.
+ string name = 1;
+}
+
+// Request message for `Services.UpdateService`.
+message UpdateServiceRequest {
+ // Name of the resource to update. Example: `apps/myapp/services/default`.
+ string name = 1;
+
+ // A Service resource containing the updated service. Only fields set in the
+ // field mask will be updated.
+ Service service = 2;
+
+ // Standard field mask for the set of fields to be updated.
+ google.protobuf.FieldMask update_mask = 3;
+
+ // Set to `true` to gradually shift traffic to one or more versions that you
+ // specify. By default, traffic is shifted immediately.
+ // For gradual traffic migration, the target versions
+ // must be located within instances that are configured for both
+ // [warmup requests](https://cloud.google.com/appengine/docs/admin-api/reference/rest/v1beta/apps.services.versions#InboundServiceType)
+ // and
+ // [automatic scaling](https://cloud.google.com/appengine/docs/admin-api/reference/rest/v1beta/apps.services.versions#AutomaticScaling).
+ // You must specify the
+ // [`shardBy`](https://cloud.google.com/appengine/docs/admin-api/reference/rest/v1beta/apps.services#ShardBy)
+ // field in the Service resource. Gradual traffic migration is not
+ // supported in the App Engine flexible environment. For examples, see
+ // [Migrating and Splitting Traffic](https://cloud.google.com/appengine/docs/admin-api/migrating-splitting-traffic).
+ bool migrate_traffic = 4;
+}
+
+// Request message for `Services.DeleteService`.
+message DeleteServiceRequest {
+ // Name of the resource requested. Example: `apps/myapp/services/default`.
+ string name = 1;
+}
+
+// Manages versions of a service.
+service Versions {
+ option (google.api.default_host) = "appengine.googleapis.com";
+ option (google.api.oauth_scopes) =
+ "https://www.googleapis.com/auth/appengine.admin,"
+ "https://www.googleapis.com/auth/cloud-platform,"
+ "https://www.googleapis.com/auth/cloud-platform.read-only";
+
+ // Lists the versions of a service.
+ rpc ListVersions(ListVersionsRequest) returns (ListVersionsResponse) {
+ option (google.api.http) = {
+ get: "/v1beta/{parent=apps/*/services/*}/versions"
+ };
+ }
+
+ // Gets the specified Version resource.
+ // By default, only a `BASIC_VIEW` will be returned.
+ // Specify the `FULL_VIEW` parameter to get the full resource.
+ rpc GetVersion(GetVersionRequest) returns (Version) {
+ option (google.api.http) = {
+ get: "/v1beta/{name=apps/*/services/*/versions/*}"
+ };
+ }
+
+ // Deploys code and resource files to a new version.
+ rpc CreateVersion(CreateVersionRequest) returns (google.longrunning.Operation) {
+ option (google.api.http) = {
+ post: "/v1beta/{parent=apps/*/services/*}/versions"
+ body: "version"
+ };
+ option (google.longrunning.operation_info) = {
+ response_type: "Version"
+ metadata_type: "CreateVersionMetadataV1Beta"
+ };
+ }
+
+ // Updates the specified Version resource.
+ // You can specify the following fields depending on the App Engine
+ // environment and type of scaling that the version resource uses:
+ //
+ // **Standard environment**
+ //
+ // * [`instance_class`](https://cloud.google.com/appengine/docs/admin-api/reference/rest/v1beta/apps.services.versions#Version.FIELDS.instance_class)
+ //
+ // *automatic scaling* in the standard environment:
+ //
+ // * [`automatic_scaling.min_idle_instances`](https://cloud.google.com/appengine/docs/admin-api/reference/rest/v1beta/apps.services.versions#Version.FIELDS.automatic_scaling)
+ // * [`automatic_scaling.max_idle_instances`](https://cloud.google.com/appengine/docs/admin-api/reference/rest/v1beta/apps.services.versions#Version.FIELDS.automatic_scaling)
+ // * [`automaticScaling.standard_scheduler_settings.max_instances`](https://cloud.google.com/appengine/docs/admin-api/reference/rest/v1beta/apps.services.versions#StandardSchedulerSettings)
+ // * [`automaticScaling.standard_scheduler_settings.min_instances`](https://cloud.google.com/appengine/docs/admin-api/reference/rest/v1beta/apps.services.versions#StandardSchedulerSettings)
+ // * [`automaticScaling.standard_scheduler_settings.target_cpu_utilization`](https://cloud.google.com/appengine/docs/admin-api/reference/rest/v1beta/apps.services.versions#StandardSchedulerSettings)
+ // * [`automaticScaling.standard_scheduler_settings.target_throughput_utilization`](https://cloud.google.com/appengine/docs/admin-api/reference/rest/v1beta/apps.services.versions#StandardSchedulerSettings)
+ //
+ // *basic scaling* or *manual scaling* in the standard environment:
+ //
+ // * [`serving_status`](https://cloud.google.com/appengine/docs/admin-api/reference/rest/v1beta/apps.services.versions#Version.FIELDS.serving_status)
+ // * [`manual_scaling.instances`](https://cloud.google.com/appengine/docs/admin-api/reference/rest/v1beta/apps.services.versions#manualscaling)
+ //
+ // **Flexible environment**
+ //
+ // * [`serving_status`](https://cloud.google.com/appengine/docs/admin-api/reference/rest/v1beta/apps.services.versions#Version.FIELDS.serving_status)
+ //
+ // *automatic scaling* in the flexible environment:
+ //
+ // * [`automatic_scaling.min_total_instances`](https://cloud.google.com/appengine/docs/admin-api/reference/rest/v1beta/apps.services.versions#Version.FIELDS.automatic_scaling)
+ // * [`automatic_scaling.max_total_instances`](https://cloud.google.com/appengine/docs/admin-api/reference/rest/v1beta/apps.services.versions#Version.FIELDS.automatic_scaling)
+ // * [`automatic_scaling.cool_down_period_sec`](https://cloud.google.com/appengine/docs/admin-api/reference/rest/v1beta/apps.services.versions#Version.FIELDS.automatic_scaling)
+ // * [`automatic_scaling.cpu_utilization.target_utilization`](https://cloud.google.com/appengine/docs/admin-api/reference/rest/v1beta/apps.services.versions#Version.FIELDS.automatic_scaling)
+ //
+ // *manual scaling* in the flexible environment:
+ //
+ // * [`manual_scaling.instances`](https://cloud.google.com/appengine/docs/admin-api/reference/rest/v1beta/apps.services.versions#manualscaling)
+ rpc UpdateVersion(UpdateVersionRequest) returns (google.longrunning.Operation) {
+ option (google.api.http) = {
+ patch: "/v1beta/{name=apps/*/services/*/versions/*}"
+ body: "version"
+ };
+ option (google.longrunning.operation_info) = {
+ response_type: "Version"
+ metadata_type: "OperationMetadataV1Beta"
+ };
+ }
+
+ // Deletes an existing Version resource.
+ rpc DeleteVersion(DeleteVersionRequest) returns (google.longrunning.Operation) {
+ option (google.api.http) = {
+ delete: "/v1beta/{name=apps/*/services/*/versions/*}"
+ };
+ option (google.longrunning.operation_info) = {
+ response_type: "google.protobuf.Empty"
+ metadata_type: "OperationMetadataV1Beta"
+ };
+ }
+}
+
+// Request message for `Versions.ListVersions`.
+message ListVersionsRequest {
+ // Name of the parent Service resource. Example:
+ // `apps/myapp/services/default`.
+ string parent = 1;
+
+ // Controls the set of fields returned in the `List` response.
+ VersionView view = 2;
+
+ // Maximum results to return per page.
+ int32 page_size = 3;
+
+ // Continuation token for fetching the next page of results.
+ string page_token = 4;
+}
+
+// Response message for `Versions.ListVersions`.
+message ListVersionsResponse {
+ // The versions belonging to the requested service.
+ repeated Version versions = 1;
+
+ // Continuation token for fetching the next page of results.
+ string next_page_token = 2;
+}
+
+// Request message for `Versions.GetVersion`.
+message GetVersionRequest {
+ // Name of the resource requested. Example:
+ // `apps/myapp/services/default/versions/v1`.
+ string name = 1;
+
+ // Controls the set of fields returned in the `Get` response.
+ VersionView view = 2;
+}
+
+// Request message for `Versions.CreateVersion`.
+message CreateVersionRequest {
+ // Name of the parent resource to create this version under. Example:
+ // `apps/myapp/services/default`.
+ string parent = 1;
+
+ // Application deployment configuration.
+ Version version = 2;
+}
+
+// Request message for `Versions.UpdateVersion`.
+message UpdateVersionRequest {
+ // Name of the resource to update. Example:
+ // `apps/myapp/services/default/versions/1`.
+ string name = 1;
+
+ // A Version containing the updated resource. Only fields set in the field
+ // mask will be updated.
+ Version version = 2;
+
+ // Standard field mask for the set of fields to be updated.
+ google.protobuf.FieldMask update_mask = 3;
+}
+
+// Fields that should be returned when [Version][google.appengine.v1beta.Version] resources
+// are retrieved.
+enum VersionView {
+ // Basic version information including scaling and inbound services,
+ // but not detailed deployment information.
+ BASIC = 0;
+
+ // The information from `BASIC`, plus detailed information about the
+ // deployment. This format is required when creating resources, but
+ // is not returned in `Get` or `List` by default.
+ FULL = 1;
+}
+
+// Request message for `Versions.DeleteVersion`.
+message DeleteVersionRequest {
+ // Name of the resource requested. Example:
+ // `apps/myapp/services/default/versions/v1`.
+ string name = 1;
+}
+
+// Request message for `Instances.ListInstances`.
+message ListInstancesRequest {
+ // Name of the parent Version resource. Example:
+ // `apps/myapp/services/default/versions/v1`.
+ string parent = 1;
+
+ // Maximum results to return per page.
+ int32 page_size = 2;
+
+ // Continuation token for fetching the next page of results.
+ string page_token = 3;
+}
+
+// Response message for `Instances.ListInstances`.
+message ListInstancesResponse {
+ // The instances belonging to the requested version.
+ repeated Instance instances = 1;
+
+ // Continuation token for fetching the next page of results.
+ string next_page_token = 2;
+}
+
+// Request message for `Instances.GetInstance`.
+message GetInstanceRequest {
+ // Name of the resource requested. Example:
+ // `apps/myapp/services/default/versions/v1/instances/instance-1`.
+ string name = 1;
+}
+
+// Request message for `Instances.DeleteInstance`.
+message DeleteInstanceRequest {
+ // Name of the resource requested. Example:
+ // `apps/myapp/services/default/versions/v1/instances/instance-1`.
+ string name = 1;
+}
+
+// Request message for `Instances.DebugInstance`.
+message DebugInstanceRequest {
+ // Name of the resource requested. Example:
+ // `apps/myapp/services/default/versions/v1/instances/instance-1`.
+ string name = 1;
+
+ // Public SSH key to add to the instance. Examples:
+ //
+ // * `[USERNAME]:ssh-rsa [KEY_VALUE] [USERNAME]`
+ // * `[USERNAME]:ssh-rsa [KEY_VALUE] google-ssh {"userName":"[USERNAME]","expireOn":"[EXPIRE_TIME]"}`
+ //
+ // For more information, see
+ // [Adding and Removing SSH Keys](https://cloud.google.com/compute/docs/instances/adding-removing-ssh-keys).
+ string ssh_key = 2;
+}
+
+// Request message for `Firewall.ListIngressRules`.
+message ListIngressRulesRequest {
+ // Name of the Firewall collection to retrieve.
+ // Example: `apps/myapp/firewall/ingressRules`.
+ string parent = 1;
+
+ // Maximum results to return per page.
+ int32 page_size = 2;
+
+ // Continuation token for fetching the next page of results.
+ string page_token = 3;
+
+ // A valid IP Address. If set, only rules matching this address will be
+ // returned. The first returned rule will be the rule that fires on requests
+ // from this IP.
+ string matching_address = 4;
+}
+
+// Manages instances of a version.
+service Instances {
+ option (google.api.default_host) = "appengine.googleapis.com";
+ option (google.api.oauth_scopes) =
+ "https://www.googleapis.com/auth/appengine.admin,"
+ "https://www.googleapis.com/auth/cloud-platform,"
+ "https://www.googleapis.com/auth/cloud-platform.read-only";
+
+ // Lists the instances of a version.
+ //
+ // Tip: To aggregate details about instances over time, see the
+ // [Stackdriver Monitoring API](https://cloud.google.com/monitoring/api/ref_v3/rest/v3/projects.timeSeries/list).
+ rpc ListInstances(ListInstancesRequest) returns (ListInstancesResponse) {
+ option (google.api.http) = {
+ get: "/v1beta/{parent=apps/*/services/*/versions/*}/instances"
+ };
+ }
+
+ // Gets instance information.
+ rpc GetInstance(GetInstanceRequest) returns (Instance) {
+ option (google.api.http) = {
+ get: "/v1beta/{name=apps/*/services/*/versions/*/instances/*}"
+ };
+ }
+
+ // Stops a running instance.
+ //
+ // The instance might be automatically recreated based on the scaling settings
+ // of the version. For more information, see "How Instances are Managed"
+ // ([standard environment](https://cloud.google.com/appengine/docs/standard/python/how-instances-are-managed) |
+ // [flexible environment](https://cloud.google.com/appengine/docs/flexible/python/how-instances-are-managed)).
+ //
+ // To ensure that instances are not re-created and avoid getting billed, you
+ // can stop all instances within the target version by changing the serving
+ // status of the version to `STOPPED` with the
+ // [`apps.services.versions.patch`](https://cloud.google.com/appengine/docs/admin-api/reference/rest/v1/apps.services.versions/patch)
+ // method.
+ rpc DeleteInstance(DeleteInstanceRequest) returns (google.longrunning.Operation) {
+ option (google.api.http) = {
+ delete: "/v1beta/{name=apps/*/services/*/versions/*/instances/*}"
+ };
+ option (google.longrunning.operation_info) = {
+ response_type: "google.protobuf.Empty"
+ metadata_type: "OperationMetadataV1Beta"
+ };
+ }
+
+ // Enables debugging on a VM instance. This allows you to use the SSH
+ // command to connect to the virtual machine where the instance lives.
+ // While in "debug mode", the instance continues to serve live traffic.
+ // You should delete the instance when you are done debugging and then
+ // allow the system to take over and determine if another instance
+ // should be started.
+ //
+ // Only applicable for instances in App Engine flexible environment.
+ rpc DebugInstance(DebugInstanceRequest) returns (google.longrunning.Operation) {
+ option (google.api.http) = {
+ post: "/v1beta/{name=apps/*/services/*/versions/*/instances/*}:debug"
+ body: "*"
+ };
+ option (google.longrunning.operation_info) = {
+ response_type: "Instance"
+ metadata_type: "OperationMetadataV1Beta"
+ };
+ }
+}
+
+// Response message for `Firewall.ListIngressRules`.
+message ListIngressRulesResponse {
+ // The ingress FirewallRules for this application.
+ repeated FirewallRule ingress_rules = 1;
+
+ // Continuation token for fetching the next page of results.
+ string next_page_token = 2;
+}
+
+// Request message for `Firewall.BatchUpdateIngressRules`.
+message BatchUpdateIngressRulesRequest {
+ // Name of the Firewall collection to set.
+ // Example: `apps/myapp/firewall/ingressRules`.
+ string name = 1;
+
+ // A list of FirewallRules to replace the existing set.
+ repeated FirewallRule ingress_rules = 2;
+}
+
+// Response message for `Firewall.UpdateAllIngressRules`.
+message BatchUpdateIngressRulesResponse {
+ // The full list of ingress FirewallRules for this application.
+ repeated FirewallRule ingress_rules = 1;
+}
+
+// Request message for `Firewall.CreateIngressRule`.
+message CreateIngressRuleRequest {
+ // Name of the parent Firewall collection in which to create a new rule.
+ // Example: `apps/myapp/firewall/ingressRules`.
+ string parent = 1;
+
+ // A FirewallRule containing the new resource.
+ //
+ // The user may optionally provide a position at which the new rule will be
+ // placed. The positions define a sequential list starting at 1. If a rule
+ // already exists at the given position, rules greater than the provided
+ // position will be moved forward by one.
+ //
+ // If no position is provided, the server will place the rule as the second to
+ // last rule in the sequence before the required default allow-all or deny-all
+ // rule.
+ FirewallRule rule = 2;
+}
+
+// Request message for `Firewall.GetIngressRule`.
+message GetIngressRuleRequest {
+ // Name of the Firewall resource to retrieve.
+ // Example: `apps/myapp/firewall/ingressRules/100`.
+ string name = 1;
+}
+
+// Request message for `Firewall.UpdateIngressRule`.
+message UpdateIngressRuleRequest {
+ // Name of the Firewall resource to update.
+ // Example: `apps/myapp/firewall/ingressRules/100`.
+ string name = 1;
+
+ // A FirewallRule containing the updated resource
+ FirewallRule rule = 2;
+
+ // Standard field mask for the set of fields to be updated.
+ google.protobuf.FieldMask update_mask = 3;
+}
+
+// Request message for `Firewall.DeleteIngressRule`.
+message DeleteIngressRuleRequest {
+ // Name of the Firewall resource to delete.
+ // Example: `apps/myapp/firewall/ingressRules/100`.
+ string name = 1;
+}
+
+// Request message for `AuthorizedDomains.ListAuthorizedDomains`.
+message ListAuthorizedDomainsRequest {
+ // Name of the parent Application resource. Example: `apps/myapp`.
+ string parent = 1;
+
+ // Maximum results to return per page.
+ int32 page_size = 2;
+
+ // Continuation token for fetching the next page of results.
+ string page_token = 3;
+}
+
+// Response message for `AuthorizedDomains.ListAuthorizedDomains`.
+message ListAuthorizedDomainsResponse {
+ // The authorized domains belonging to the user.
+ repeated AuthorizedDomain domains = 1;
+
+ // Continuation token for fetching the next page of results.
+ string next_page_token = 2;
+}
+
+// Request message for `AuthorizedCertificates.ListAuthorizedCertificates`.
+message ListAuthorizedCertificatesRequest {
+ // Name of the parent `Application` resource. Example: `apps/myapp`.
+ string parent = 1;
+
+ // Controls the set of fields returned in the `LIST` response.
+ AuthorizedCertificateView view = 4;
+
+ // Maximum results to return per page.
+ int32 page_size = 2;
+
+ // Continuation token for fetching the next page of results.
+ string page_token = 3;
+}
+
+// Response message for `AuthorizedCertificates.ListAuthorizedCertificates`.
+message ListAuthorizedCertificatesResponse {
+ // The SSL certificates the user is authorized to administer.
+ repeated AuthorizedCertificate certificates = 1;
+
+ // Continuation token for fetching the next page of results.
+ string next_page_token = 2;
+}
+
+// Firewall resources are used to define a collection of access control rules
+// for an Application. Each rule is defined with a position which specifies
+// the rule's order in the sequence of rules, an IP range to be matched against
+// requests, and an action to take upon matching requests.
+//
+// Every request is evaluated against the Firewall rules in priority order.
+// Processesing stops at the first rule which matches the request's IP address.
+// A final rule always specifies an action that applies to all remaining
+// IP addresses. The default final rule for a newly-created application will be
+// set to "allow" if not otherwise specified by the user.
+service Firewall {
+ option (google.api.default_host) = "appengine.googleapis.com";
+ option (google.api.oauth_scopes) =
+ "https://www.googleapis.com/auth/appengine.admin,"
+ "https://www.googleapis.com/auth/cloud-platform,"
+ "https://www.googleapis.com/auth/cloud-platform.read-only";
+
+ // Lists the firewall rules of an application.
+ rpc ListIngressRules(ListIngressRulesRequest) returns (ListIngressRulesResponse) {
+ option (google.api.http) = {
+ get: "/v1beta/{parent=apps/*}/firewall/ingressRules"
+ };
+ }
+
+ // Replaces the entire firewall ruleset in one bulk operation. This overrides
+ // and replaces the rules of an existing firewall with the new rules.
+ //
+ // If the final rule does not match traffic with the '*' wildcard IP range,
+ // then an "allow all" rule is explicitly added to the end of the list.
+ rpc BatchUpdateIngressRules(BatchUpdateIngressRulesRequest) returns (BatchUpdateIngressRulesResponse) {
+ option (google.api.http) = {
+ post: "/v1beta/{name=apps/*/firewall/ingressRules}:batchUpdate"
+ body: "*"
+ };
+ }
+
+ // Creates a firewall rule for the application.
+ rpc CreateIngressRule(CreateIngressRuleRequest) returns (FirewallRule) {
+ option (google.api.http) = {
+ post: "/v1beta/{parent=apps/*}/firewall/ingressRules"
+ body: "rule"
+ };
+ }
+
+ // Gets the specified firewall rule.
+ rpc GetIngressRule(GetIngressRuleRequest) returns (FirewallRule) {
+ option (google.api.http) = {
+ get: "/v1beta/{name=apps/*/firewall/ingressRules/*}"
+ };
+ }
+
+ // Updates the specified firewall rule.
+ rpc UpdateIngressRule(UpdateIngressRuleRequest) returns (FirewallRule) {
+ option (google.api.http) = {
+ patch: "/v1beta/{name=apps/*/firewall/ingressRules/*}"
+ body: "rule"
+ };
+ }
+
+ // Deletes the specified firewall rule.
+ rpc DeleteIngressRule(DeleteIngressRuleRequest) returns (google.protobuf.Empty) {
+ option (google.api.http) = {
+ delete: "/v1beta/{name=apps/*/firewall/ingressRules/*}"
+ };
+ }
+}
+
+// Request message for `AuthorizedCertificates.GetAuthorizedCertificate`.
+message GetAuthorizedCertificateRequest {
+ // Name of the resource requested. Example:
+ // `apps/myapp/authorizedCertificates/12345`.
+ string name = 1;
+
+ // Controls the set of fields returned in the `GET` response.
+ AuthorizedCertificateView view = 2;
+}
+
+// Request message for `AuthorizedCertificates.CreateAuthorizedCertificate`.
+message CreateAuthorizedCertificateRequest {
+ // Name of the parent `Application` resource. Example: `apps/myapp`.
+ string parent = 1;
+
+ // SSL certificate data.
+ AuthorizedCertificate certificate = 2;
+}
+
+// Request message for `AuthorizedCertificates.UpdateAuthorizedCertificate`.
+message UpdateAuthorizedCertificateRequest {
+ // Name of the resource to update. Example:
+ // `apps/myapp/authorizedCertificates/12345`.
+ string name = 1;
+
+ // An `AuthorizedCertificate` containing the updated resource. Only fields set
+ // in the field mask will be updated.
+ AuthorizedCertificate certificate = 2;
+
+ // Standard field mask for the set of fields to be updated. Updates are only
+ // supported on the `certificate_raw_data` and `display_name` fields.
+ google.protobuf.FieldMask update_mask = 3;
+}
+
+// Request message for `AuthorizedCertificates.DeleteAuthorizedCertificate`.
+message DeleteAuthorizedCertificateRequest {
+ // Name of the resource to delete. Example:
+ // `apps/myapp/authorizedCertificates/12345`.
+ string name = 1;
+}
+
+// Request message for `DomainMappings.ListDomainMappings`.
+message ListDomainMappingsRequest {
+ // Name of the parent Application resource. Example: `apps/myapp`.
+ string parent = 1;
+
+ // Maximum results to return per page.
+ int32 page_size = 2;
+
+ // Continuation token for fetching the next page of results.
+ string page_token = 3;
+}
+
+// Response message for `DomainMappings.ListDomainMappings`.
+message ListDomainMappingsResponse {
+ // The domain mappings for the application.
+ repeated DomainMapping domain_mappings = 1;
+
+ // Continuation token for fetching the next page of results.
+ string next_page_token = 2;
+}
+
+// Request message for `DomainMappings.GetDomainMapping`.
+message GetDomainMappingRequest {
+ // Name of the resource requested. Example:
+ // `apps/myapp/domainMappings/example.com`.
+ string name = 1;
+}
+
+// Request message for `DomainMappings.CreateDomainMapping`.
+message CreateDomainMappingRequest {
+ // Name of the parent Application resource. Example: `apps/myapp`.
+ string parent = 1;
+
+ // Domain mapping configuration.
+ DomainMapping domain_mapping = 2;
+
+ // Whether the domain creation should override any existing mappings for this
+ // domain. By default, overrides are rejected.
+ DomainOverrideStrategy override_strategy = 4;
+}
+
+// Manages domains a user is authorized to administer. To authorize use of a
+// domain, verify ownership via
+// [Webmaster Central](https://www.google.com/webmasters/verification/home).
+service AuthorizedDomains {
+ option (google.api.default_host) = "appengine.googleapis.com";
+ option (google.api.oauth_scopes) =
+ "https://www.googleapis.com/auth/appengine.admin,"
+ "https://www.googleapis.com/auth/cloud-platform,"
+ "https://www.googleapis.com/auth/cloud-platform.read-only";
+
+ // Lists all domains the user is authorized to administer.
+ rpc ListAuthorizedDomains(ListAuthorizedDomainsRequest) returns (ListAuthorizedDomainsResponse) {
+ option (google.api.http) = {
+ get: "/v1beta/{parent=apps/*}/authorizedDomains"
+ };
+ }
+}
+
+// Request message for `DomainMappings.UpdateDomainMapping`.
+message UpdateDomainMappingRequest {
+ // Name of the resource to update. Example:
+ // `apps/myapp/domainMappings/example.com`.
+ string name = 1;
+
+ // A domain mapping containing the updated resource. Only fields set
+ // in the field mask will be updated.
+ DomainMapping domain_mapping = 2;
+
+ // Standard field mask for the set of fields to be updated.
+ google.protobuf.FieldMask update_mask = 3;
+}
+
+// Request message for `DomainMappings.DeleteDomainMapping`.
+message DeleteDomainMappingRequest {
+ // Name of the resource to delete. Example:
+ // `apps/myapp/domainMappings/example.com`.
+ string name = 1;
+}
+
+// Manages SSL certificates a user is authorized to administer. A user can
+// administer any SSL certificates applicable to their authorized domains.
+service AuthorizedCertificates {
+ option (google.api.default_host) = "appengine.googleapis.com";
+ option (google.api.oauth_scopes) =
+ "https://www.googleapis.com/auth/appengine.admin,"
+ "https://www.googleapis.com/auth/cloud-platform,"
+ "https://www.googleapis.com/auth/cloud-platform.read-only";
+
+ // Lists all SSL certificates the user is authorized to administer.
+ rpc ListAuthorizedCertificates(ListAuthorizedCertificatesRequest) returns (ListAuthorizedCertificatesResponse) {
+ option (google.api.http) = {
+ get: "/v1beta/{parent=apps/*}/authorizedCertificates"
+ };
+ }
+
+ // Gets the specified SSL certificate.
+ rpc GetAuthorizedCertificate(GetAuthorizedCertificateRequest) returns (AuthorizedCertificate) {
+ option (google.api.http) = {
+ get: "/v1beta/{name=apps/*/authorizedCertificates/*}"
+ };
+ }
+
+ // Uploads the specified SSL certificate.
+ rpc CreateAuthorizedCertificate(CreateAuthorizedCertificateRequest) returns (AuthorizedCertificate) {
+ option (google.api.http) = {
+ post: "/v1beta/{parent=apps/*}/authorizedCertificates"
+ body: "certificate"
+ };
+ }
+
+ // Updates the specified SSL certificate. To renew a certificate and maintain
+ // its existing domain mappings, update `certificate_data` with a new
+ // certificate. The new certificate must be applicable to the same domains as
+ // the original certificate. The certificate `display_name` may also be
+ // updated.
+ rpc UpdateAuthorizedCertificate(UpdateAuthorizedCertificateRequest) returns (AuthorizedCertificate) {
+ option (google.api.http) = {
+ patch: "/v1beta/{name=apps/*/authorizedCertificates/*}"
+ body: "certificate"
+ };
+ }
+
+ // Deletes the specified SSL certificate.
+ rpc DeleteAuthorizedCertificate(DeleteAuthorizedCertificateRequest) returns (google.protobuf.Empty) {
+ option (google.api.http) = {
+ delete: "/v1beta/{name=apps/*/authorizedCertificates/*}"
+ };
+ }
+}
+
+// Fields that should be returned when an AuthorizedCertificate resource is
+// retrieved.
+enum AuthorizedCertificateView {
+ // Basic certificate information, including applicable domains and expiration
+ // date.
+ BASIC_CERTIFICATE = 0;
+
+ // The information from `BASIC_CERTIFICATE`, plus detailed information on the
+ // domain mappings that have this certificate mapped.
+ FULL_CERTIFICATE = 1;
+}
+
+// Override strategy for mutating an existing mapping.
+enum DomainOverrideStrategy {
+ // Strategy unspecified. Defaults to `STRICT`.
+ UNSPECIFIED_DOMAIN_OVERRIDE_STRATEGY = 0;
+
+ // Overrides not allowed. If a mapping already exists for the
+ // specified domain, the request will return an ALREADY_EXISTS (409).
+ STRICT = 1;
+
+ // Overrides allowed. If a mapping already exists for the specified domain,
+ // the request will overwrite it. Note that this might stop another
+ // Google product from serving. For example, if the domain is
+ // mapped to another App Engine application, that app will no
+ // longer serve from that domain.
+ OVERRIDE = 2;
+}
+
+// Manages domains serving an application.
+service DomainMappings {
+ option (google.api.default_host) = "appengine.googleapis.com";
+ option (google.api.oauth_scopes) =
+ "https://www.googleapis.com/auth/appengine.admin,"
+ "https://www.googleapis.com/auth/cloud-platform,"
+ "https://www.googleapis.com/auth/cloud-platform.read-only";
+
+ // Lists the domain mappings on an application.
+ rpc ListDomainMappings(ListDomainMappingsRequest) returns (ListDomainMappingsResponse) {
+ option (google.api.http) = {
+ get: "/v1beta/{parent=apps/*}/domainMappings"
+ };
+ }
+
+ // Gets the specified domain mapping.
+ rpc GetDomainMapping(GetDomainMappingRequest) returns (DomainMapping) {
+ option (google.api.http) = {
+ get: "/v1beta/{name=apps/*/domainMappings/*}"
+ };
+ }
+
+ // Maps a domain to an application. A user must be authorized to administer a
+ // domain in order to map it to an application. For a list of available
+ // authorized domains, see [`AuthorizedDomains.ListAuthorizedDomains`]().
+ rpc CreateDomainMapping(CreateDomainMappingRequest) returns (google.longrunning.Operation) {
+ option (google.api.http) = {
+ post: "/v1beta/{parent=apps/*}/domainMappings"
+ body: "domain_mapping"
+ };
+ option (google.longrunning.operation_info) = {
+ response_type: "DomainMapping"
+ metadata_type: "OperationMetadataV1Beta"
+ };
+ }
+
+ // Updates the specified domain mapping. To map an SSL certificate to a
+ // domain mapping, update `certificate_id` to point to an `AuthorizedCertificate`
+ // resource. A user must be authorized to administer the associated domain
+ // in order to update a `DomainMapping` resource.
+ rpc UpdateDomainMapping(UpdateDomainMappingRequest) returns (google.longrunning.Operation) {
+ option (google.api.http) = {
+ patch: "/v1beta/{name=apps/*/domainMappings/*}"
+ body: "domain_mapping"
+ };
+ option (google.longrunning.operation_info) = {
+ response_type: "DomainMapping"
+ metadata_type: "OperationMetadataV1Beta"
+ };
+ }
+
+ // Deletes the specified domain mapping. A user must be authorized to
+ // administer the associated domain in order to delete a `DomainMapping`
+ // resource.
+ rpc DeleteDomainMapping(DeleteDomainMappingRequest) returns (google.longrunning.Operation) {
+ option (google.api.http) = {
+ delete: "/v1beta/{name=apps/*/domainMappings/*}"
+ };
+ option (google.longrunning.operation_info) = {
+ response_type: "google.protobuf.Empty"
+ metadata_type: "OperationMetadataV1Beta"
+ };
+ }
+}
diff --git a/third_party/googleapis/google/appengine/v1beta/application.proto b/third_party/googleapis/google/appengine/v1beta/application.proto
new file mode 100644
index 0000000..f99046d
--- /dev/null
+++ b/third_party/googleapis/google/appengine/v1beta/application.proto
@@ -0,0 +1,193 @@
+// Copyright 2021 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.appengine.v1beta;
+
+import "google/protobuf/duration.proto";
+
+option csharp_namespace = "Google.Cloud.AppEngine.V1Beta";
+option go_package = "google.golang.org/genproto/googleapis/appengine/v1beta;appengine";
+option java_multiple_files = true;
+option java_outer_classname = "ApplicationProto";
+option java_package = "com.google.appengine.v1beta";
+option php_namespace = "Google\\Cloud\\AppEngine\\V1beta";
+option ruby_package = "Google::Cloud::AppEngine::V1beta";
+
+// An Application resource contains the top-level configuration of an App
+// Engine application.
+message Application {
+ // Identity-Aware Proxy
+ message IdentityAwareProxy {
+ // Whether the serving infrastructure will authenticate and
+ // authorize all incoming requests.
+ //
+ // If true, the `oauth2_client_id` and `oauth2_client_secret`
+ // fields must be non-empty.
+ bool enabled = 1;
+
+ // OAuth2 client ID to use for the authentication flow.
+ string oauth2_client_id = 2;
+
+ // OAuth2 client secret to use for the authentication flow.
+ //
+ // For security reasons, this value cannot be retrieved via the API.
+ // Instead, the SHA-256 hash of the value is returned in the
+ // `oauth2_client_secret_sha256` field.
+ //
+ // @InputOnly
+ string oauth2_client_secret = 3;
+
+ // Hex-encoded SHA-256 hash of the client secret.
+ //
+ // @OutputOnly
+ string oauth2_client_secret_sha256 = 4;
+ }
+
+ // The feature specific settings to be used in the application. These define
+ // behaviors that are user configurable.
+ message FeatureSettings {
+ // Boolean value indicating if split health checks should be used instead
+ // of the legacy health checks. At an app.yaml level, this means defaulting
+ // to 'readiness_check' and 'liveness_check' values instead of
+ // 'health_check' ones. Once the legacy 'health_check' behavior is
+ // deprecated, and this value is always true, this setting can
+ // be removed.
+ bool split_health_checks = 1;
+
+ // If true, use [Container-Optimized OS](https://cloud.google.com/container-optimized-os/)
+ // base image for VMs, rather than a base Debian image.
+ bool use_container_optimized_os = 2;
+ }
+
+ enum ServingStatus {
+ // Serving status is unspecified.
+ UNSPECIFIED = 0;
+
+ // Application is serving.
+ SERVING = 1;
+
+ // Application has been disabled by the user.
+ USER_DISABLED = 2;
+
+ // Application has been disabled by the system.
+ SYSTEM_DISABLED = 3;
+ }
+
+ enum DatabaseType {
+ // Database type is unspecified.
+ DATABASE_TYPE_UNSPECIFIED = 0;
+
+ // Cloud Datastore
+ CLOUD_DATASTORE = 1;
+
+ // Cloud Firestore Native
+ CLOUD_FIRESTORE = 2;
+
+ // Cloud Firestore in Datastore Mode
+ CLOUD_DATASTORE_COMPATIBILITY = 3;
+ }
+
+ // Full path to the Application resource in the API.
+ // Example: `apps/myapp`.
+ //
+ // @OutputOnly
+ string name = 1;
+
+ // Identifier of the Application resource. This identifier is equivalent
+ // to the project ID of the Google Cloud Platform project where you want to
+ // deploy your application.
+ // Example: `myapp`.
+ string id = 2;
+
+ // HTTP path dispatch rules for requests to the application that do not
+ // explicitly target a service or version. Rules are order-dependent.
+ // Up to 20 dispatch rules can be supported.
+ repeated UrlDispatchRule dispatch_rules = 3;
+
+ // Google Apps authentication domain that controls which users can access
+ // this application.
+ //
+ // Defaults to open access for any Google Account.
+ string auth_domain = 6;
+
+ // Location from which this application runs. Application instances
+ // run out of the data centers in the specified location, which is also where
+ // all of the application's end user content is stored.
+ //
+ // Defaults to `us-central`.
+ //
+ // View the list of
+ // [supported locations](https://cloud.google.com/appengine/docs/locations).
+ string location_id = 7;
+
+ // Google Cloud Storage bucket that can be used for storing files
+ // associated with this application. This bucket is associated with the
+ // application and can be used by the gcloud deployment commands.
+ //
+ // @OutputOnly
+ string code_bucket = 8;
+
+ // Cookie expiration policy for this application.
+ google.protobuf.Duration default_cookie_expiration = 9;
+
+ // Serving status of this application.
+ ServingStatus serving_status = 10;
+
+ // Hostname used to reach this application, as resolved by App Engine.
+ //
+ // @OutputOnly
+ string default_hostname = 11;
+
+ // Google Cloud Storage bucket that can be used by this application to store
+ // content.
+ //
+ // @OutputOnly
+ string default_bucket = 12;
+
+ IdentityAwareProxy iap = 14;
+
+ // The Google Container Registry domain used for storing managed build docker
+ // images for this application.
+ string gcr_domain = 16;
+
+ // The type of the Cloud Firestore or Cloud Datastore database associated with
+ // this application.
+ DatabaseType database_type = 17;
+
+ // The feature specific settings to be used in the application.
+ FeatureSettings feature_settings = 18;
+}
+
+// Rules to match an HTTP request and dispatch that request to a service.
+message UrlDispatchRule {
+ // Domain name to match against. The wildcard "`*`" is supported if
+ // specified before a period: "`*.`".
+ //
+ // Defaults to matching all domains: "`*`".
+ string domain = 1;
+
+ // Pathname within the host. Must start with a "`/`". A
+ // single "`*`" can be included at the end of the path.
+ //
+ // The sum of the lengths of the domain and path may not
+ // exceed 100 characters.
+ string path = 2;
+
+ // Resource ID of a service in this application that should
+ // serve the matched request. The service must already
+ // exist. Example: `default`.
+ string service = 3;
+}
diff --git a/third_party/googleapis/google/appengine/v1beta/audit_data.proto b/third_party/googleapis/google/appengine/v1beta/audit_data.proto
new file mode 100644
index 0000000..254a46d
--- /dev/null
+++ b/third_party/googleapis/google/appengine/v1beta/audit_data.proto
@@ -0,0 +1,54 @@
+// 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.appengine.v1beta;
+
+import "google/appengine/v1beta/appengine.proto";
+
+option csharp_namespace = "Google.Cloud.AppEngine.V1Beta";
+option go_package = "google.golang.org/genproto/googleapis/appengine/v1beta;appengine";
+option java_multiple_files = true;
+option java_outer_classname = "AuditDataProto";
+option java_package = "com.google.appengine.v1beta";
+option php_namespace = "Google\\Cloud\\AppEngine\\V1beta";
+option ruby_package = "Google::Cloud::AppEngine::V1beta";
+
+// App Engine admin service audit log.
+message AuditData {
+ // Detailed information about methods that require it. Does not include
+ // simple Get, List or Delete methods because all significant information
+ // (resource name, number of returned elements for List operations) is already
+ // included in parent audit log message.
+ oneof method {
+ // Detailed information about UpdateService call.
+ UpdateServiceMethod update_service = 1;
+
+ // Detailed information about CreateVersion call.
+ CreateVersionMethod create_version = 2;
+ }
+}
+
+// Detailed information about UpdateService call.
+message UpdateServiceMethod {
+ // Update service request.
+ UpdateServiceRequest request = 1;
+}
+
+// Detailed information about CreateVersion call.
+message CreateVersionMethod {
+ // Create version request.
+ CreateVersionRequest request = 1;
+}
diff --git a/third_party/googleapis/google/appengine/v1beta/certificate.proto b/third_party/googleapis/google/appengine/v1beta/certificate.proto
new file mode 100644
index 0000000..fda072d
--- /dev/null
+++ b/third_party/googleapis/google/appengine/v1beta/certificate.proto
@@ -0,0 +1,172 @@
+// Copyright 2021 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.appengine.v1beta;
+
+import "google/protobuf/timestamp.proto";
+
+option csharp_namespace = "Google.Cloud.AppEngine.V1Beta";
+option go_package = "google.golang.org/genproto/googleapis/appengine/v1beta;appengine";
+option java_multiple_files = true;
+option java_outer_classname = "CertificateProto";
+option java_package = "com.google.appengine.v1beta";
+option php_namespace = "Google\\Cloud\\AppEngine\\V1beta";
+option ruby_package = "Google::Cloud::AppEngine::V1beta";
+
+// An SSL certificate that a user has been authorized to administer. A user
+// is authorized to administer any certificate that applies to one of their
+// authorized domains.
+message AuthorizedCertificate {
+ // Full path to the `AuthorizedCertificate` resource in the API. Example:
+ // `apps/myapp/authorizedCertificates/12345`.
+ //
+ // @OutputOnly
+ string name = 1;
+
+ // Relative name of the certificate. This is a unique value autogenerated
+ // on `AuthorizedCertificate` resource creation. Example: `12345`.
+ //
+ // @OutputOnly
+ string id = 2;
+
+ // The user-specified display name of the certificate. This is not
+ // guaranteed to be unique. Example: `My Certificate`.
+ string display_name = 3;
+
+ // Topmost applicable domains of this certificate. This certificate
+ // applies to these domains and their subdomains. Example: `example.com`.
+ //
+ // @OutputOnly
+ repeated string domain_names = 4;
+
+ // The time when this certificate expires. To update the renewal time on this
+ // certificate, upload an SSL certificate with a different expiration time
+ // using [`AuthorizedCertificates.UpdateAuthorizedCertificate`]().
+ //
+ // @OutputOnly
+ google.protobuf.Timestamp expire_time = 5;
+
+ // The SSL certificate serving the `AuthorizedCertificate` resource. This
+ // must be obtained independently from a certificate authority.
+ CertificateRawData certificate_raw_data = 6;
+
+ // Only applicable if this certificate is managed by App Engine. Managed
+ // certificates are tied to the lifecycle of a `DomainMapping` and cannot be
+ // updated or deleted via the `AuthorizedCertificates` API. If this
+ // certificate is manually administered by the user, this field will be empty.
+ //
+ // @OutputOnly
+ ManagedCertificate managed_certificate = 7;
+
+ // The full paths to user visible Domain Mapping resources that have this
+ // certificate mapped. Example: `apps/myapp/domainMappings/example.com`.
+ //
+ // This may not represent the full list of mapped domain mappings if the user
+ // does not have `VIEWER` permissions on all of the applications that have
+ // this certificate mapped. See `domain_mappings_count` for a complete count.
+ //
+ // Only returned by `GET` or `LIST` requests when specifically requested by
+ // the `view=FULL_CERTIFICATE` option.
+ //
+ // @OutputOnly
+ repeated string visible_domain_mappings = 8;
+
+ // Aggregate count of the domain mappings with this certificate mapped. This
+ // count includes domain mappings on applications for which the user does not
+ // have `VIEWER` permissions.
+ //
+ // Only returned by `GET` or `LIST` requests when specifically requested by
+ // the `view=FULL_CERTIFICATE` option.
+ //
+ // @OutputOnly
+ int32 domain_mappings_count = 9;
+}
+
+// An SSL certificate obtained from a certificate authority.
+message CertificateRawData {
+ // PEM encoded x.509 public key certificate. This field is set once on
+ // certificate creation. Must include the header and footer. Example:
+ // <pre>
+ // -----BEGIN CERTIFICATE-----
+ // <certificate_value>
+ // -----END CERTIFICATE-----
+ // </pre>
+ string public_certificate = 1;
+
+ // Unencrypted PEM encoded RSA private key. This field is set once on
+ // certificate creation and then encrypted. The key size must be 2048
+ // bits or fewer. Must include the header and footer. Example:
+ // <pre>
+ // -----BEGIN RSA PRIVATE KEY-----
+ // <unencrypted_key_value>
+ // -----END RSA PRIVATE KEY-----
+ // </pre>
+ // @InputOnly
+ string private_key = 2;
+}
+
+// State of certificate management. Refers to the most recent certificate
+// acquisition or renewal attempt.
+enum ManagementStatus {
+ MANAGEMENT_STATUS_UNSPECIFIED = 0;
+
+ // Certificate was successfully obtained and inserted into the serving
+ // system.
+ OK = 1;
+
+ // Certificate is under active attempts to acquire or renew.
+ PENDING = 2;
+
+ // Most recent renewal failed due to an invalid DNS setup and will be
+ // retried. Renewal attempts will continue to fail until the certificate
+ // domain's DNS configuration is fixed. The last successfully provisioned
+ // certificate may still be serving.
+ FAILED_RETRYING_NOT_VISIBLE = 4;
+
+ // All renewal attempts have been exhausted, likely due to an invalid DNS
+ // setup.
+ FAILED_PERMANENT = 6;
+
+ // Most recent renewal failed due to an explicit CAA record that does not
+ // include one of the in-use CAs (Google CA and Let's Encrypt). Renewals will
+ // continue to fail until the CAA is reconfigured. The last successfully
+ // provisioned certificate may still be serving.
+ FAILED_RETRYING_CAA_FORBIDDEN = 7;
+
+ // Most recent renewal failed due to a CAA retrieval failure. This means that
+ // the domain's DNS provider does not properly handle CAA records, failing
+ // requests for CAA records when no CAA records are defined. Renewals will
+ // continue to fail until the DNS provider is changed or a CAA record is
+ // added for the given domain. The last successfully provisioned certificate
+ // may still be serving.
+ FAILED_RETRYING_CAA_CHECKING = 8;
+}
+
+// A certificate managed by App Engine.
+message ManagedCertificate {
+ // Time at which the certificate was last renewed. The renewal process is
+ // fully managed. Certificate renewal will automatically occur before the
+ // certificate expires. Renewal errors can be tracked via `ManagementStatus`.
+ //
+ // @OutputOnly
+ google.protobuf.Timestamp last_renewal_time = 1;
+
+ // Status of certificate management. Refers to the most recent certificate
+ // acquisition or renewal attempt.
+ //
+ // @OutputOnly
+ ManagementStatus status = 2;
+}
diff --git a/third_party/googleapis/google/appengine/v1beta/deploy.proto b/third_party/googleapis/google/appengine/v1beta/deploy.proto
new file mode 100644
index 0000000..4714915
--- /dev/null
+++ b/third_party/googleapis/google/appengine/v1beta/deploy.proto
@@ -0,0 +1,118 @@
+// Copyright 2021 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.appengine.v1beta;
+
+import "google/protobuf/duration.proto";
+
+option csharp_namespace = "Google.Cloud.AppEngine.V1Beta";
+option go_package = "google.golang.org/genproto/googleapis/appengine/v1beta;appengine";
+option java_multiple_files = true;
+option java_outer_classname = "DeployProto";
+option java_package = "com.google.appengine.v1beta";
+option php_namespace = "Google\\Cloud\\AppEngine\\V1beta";
+option ruby_package = "Google::Cloud::AppEngine::V1beta";
+
+// Code and application artifacts used to deploy a version to App Engine.
+message Deployment {
+ // Manifest of the files stored in Google Cloud Storage that are included
+ // as part of this version. All files must be readable using the
+ // credentials supplied with this call.
+ map<string, FileInfo> files = 1;
+
+ // The Docker image for the container that runs the version.
+ // Only applicable for instances running in the App Engine flexible environment.
+ ContainerInfo container = 2;
+
+ // The zip file for this deployment, if this is a zip deployment.
+ ZipInfo zip = 3;
+
+ // Google Cloud Build build information. Only applicable for instances running
+ // in the App Engine flexible environment.
+ BuildInfo build = 5;
+
+ // Options for any Google Cloud Build builds created as a part of this
+ // deployment.
+ //
+ // These options will only be used if a new build is created, such as when
+ // deploying to the App Engine flexible environment using files or zip.
+ CloudBuildOptions cloud_build_options = 6;
+}
+
+// Single source file that is part of the version to be deployed. Each source
+// file that is deployed must be specified separately.
+message FileInfo {
+ // URL source to use to fetch this file. Must be a URL to a resource in
+ // Google Cloud Storage in the form
+ // 'http(s)://storage.googleapis.com/\<bucket\>/\<object\>'.
+ string source_url = 1;
+
+ // The SHA1 hash of the file, in hex.
+ string sha1_sum = 2;
+
+ // The MIME type of the file.
+ //
+ // Defaults to the value from Google Cloud Storage.
+ string mime_type = 3;
+}
+
+// Docker image that is used to create a container and start a VM instance for
+// the version that you deploy. Only applicable for instances running in the App
+// Engine flexible environment.
+message ContainerInfo {
+ // URI to the hosted container image in Google Container Registry. The URI
+ // must be fully qualified and include a tag or digest.
+ // Examples: "gcr.io/my-project/image:tag" or "gcr.io/my-project/image@digest"
+ string image = 1;
+}
+
+// Google Cloud Build information.
+message BuildInfo {
+ // The Google Cloud Build id.
+ // Example: "f966068f-08b2-42c8-bdfe-74137dff2bf9"
+ string cloud_build_id = 1;
+}
+
+// Options for the build operations performed as a part of the version
+// deployment. Only applicable for App Engine flexible environment when creating
+// a version using source code directly.
+message CloudBuildOptions {
+ // Path to the yaml file used in deployment, used to determine runtime
+ // configuration details.
+ //
+ // Required for flexible environment builds.
+ //
+ // See https://cloud.google.com/appengine/docs/standard/python/config/appref
+ // for more details.
+ string app_yaml_path = 1;
+
+ // The Cloud Build timeout used as part of any dependent builds performed by
+ // version creation. Defaults to 10 minutes.
+ google.protobuf.Duration cloud_build_timeout = 2;
+}
+
+// The zip file information for a zip deployment.
+message ZipInfo {
+ // URL of the zip file to deploy from. Must be a URL to a resource in
+ // Google Cloud Storage in the form
+ // 'http(s)://storage.googleapis.com/\<bucket\>/\<object\>'.
+ string source_url = 3;
+
+ // An estimate of the number of files in a zip for a zip deployment.
+ // If set, must be greater than or equal to the actual number of files.
+ // Used for optimizing performance; if not provided, deployment may be slow.
+ int32 files_count = 4;
+}
diff --git a/third_party/googleapis/google/appengine/v1beta/domain.proto b/third_party/googleapis/google/appengine/v1beta/domain.proto
new file mode 100644
index 0000000..94bbcd9
--- /dev/null
+++ b/third_party/googleapis/google/appengine/v1beta/domain.proto
@@ -0,0 +1,41 @@
+// Copyright 2021 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.appengine.v1beta;
+
+
+option csharp_namespace = "Google.Cloud.AppEngine.V1Beta";
+option go_package = "google.golang.org/genproto/googleapis/appengine/v1beta;appengine";
+option java_multiple_files = true;
+option java_outer_classname = "DomainProto";
+option java_package = "com.google.appengine.v1beta";
+option php_namespace = "Google\\Cloud\\AppEngine\\V1beta";
+option ruby_package = "Google::Cloud::AppEngine::V1beta";
+
+// A domain that a user has been authorized to administer. To authorize use
+// of a domain, verify ownership via
+// [Webmaster Central](https://www.google.com/webmasters/verification/home).
+message AuthorizedDomain {
+ // Full path to the `AuthorizedDomain` resource in the API. Example:
+ // `apps/myapp/authorizedDomains/example.com`.
+ //
+ // @OutputOnly
+ string name = 1;
+
+ // Fully qualified domain name of the domain authorized for use. Example:
+ // `example.com`.
+ string id = 2;
+}
diff --git a/third_party/googleapis/google/appengine/v1beta/domain_mapping.proto b/third_party/googleapis/google/appengine/v1beta/domain_mapping.proto
new file mode 100644
index 0000000..9a0bebc
--- /dev/null
+++ b/third_party/googleapis/google/appengine/v1beta/domain_mapping.proto
@@ -0,0 +1,118 @@
+// Copyright 2021 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.appengine.v1beta;
+
+
+option csharp_namespace = "Google.Cloud.AppEngine.V1Beta";
+option go_package = "google.golang.org/genproto/googleapis/appengine/v1beta;appengine";
+option java_multiple_files = true;
+option java_outer_classname = "DomainMappingProto";
+option java_package = "com.google.appengine.v1beta";
+option php_namespace = "Google\\Cloud\\AppEngine\\V1beta";
+option ruby_package = "Google::Cloud::AppEngine::V1beta";
+
+// A domain serving an App Engine application.
+message DomainMapping {
+ // Full path to the `DomainMapping` resource in the API. Example:
+ // `apps/myapp/domainMapping/example.com`.
+ //
+ // @OutputOnly
+ string name = 1;
+
+ // Relative name of the domain serving the application. Example:
+ // `example.com`.
+ string id = 2;
+
+ // SSL configuration for this domain. If unconfigured, this domain will not
+ // serve with SSL.
+ SslSettings ssl_settings = 3;
+
+ // The resource records required to configure this domain mapping. These
+ // records must be added to the domain's DNS configuration in order to
+ // serve the application via this domain mapping.
+ //
+ // @OutputOnly
+ repeated ResourceRecord resource_records = 4;
+}
+
+// SSL configuration for a `DomainMapping` resource.
+message SslSettings {
+ // The SSL management type for this domain.
+ enum SslManagementType {
+ // SSL support for this domain is configured automatically. The mapped SSL
+ // certificate will be automatically renewed.
+ AUTOMATIC = 0;
+
+ // SSL support for this domain is configured manually by the user. Either
+ // the domain has no SSL support or a user-obtained SSL certificate has been
+ // explictly mapped to this domain.
+ MANUAL = 1;
+ }
+
+ // ID of the `AuthorizedCertificate` resource configuring SSL for the
+ // application. Clearing this field will remove SSL support.
+ //
+ // By default, a managed certificate is automatically created for every
+ // domain mapping. To omit SSL support or to configure SSL manually, specify
+ // `SslManagementType.MANUAL` on a `CREATE` or `UPDATE` request. You must
+ // be authorized to administer the `AuthorizedCertificate` resource to
+ // manually map it to a `DomainMapping` resource.
+ // Example: `12345`.
+ string certificate_id = 1;
+
+ // SSL management type for this domain. If `AUTOMATIC`, a managed certificate
+ // is automatically provisioned. If `MANUAL`, `certificate_id` must be
+ // manually specified in order to configure SSL for this domain.
+ SslManagementType ssl_management_type = 3;
+
+ // ID of the managed `AuthorizedCertificate` resource currently being
+ // provisioned, if applicable. Until the new managed certificate has been
+ // successfully provisioned, the previous SSL state will be preserved. Once
+ // the provisioning process completes, the `certificate_id` field will reflect
+ // the new managed certificate and this field will be left empty. To remove
+ // SSL support while there is still a pending managed certificate, clear the
+ // `certificate_id` field with an `UpdateDomainMappingRequest`.
+ //
+ // @OutputOnly
+ string pending_managed_certificate_id = 4;
+}
+
+// A DNS resource record.
+message ResourceRecord {
+ // A resource record type.
+ enum RecordType {
+ // An A resource record. Data is an IPv4 address.
+ A = 0;
+
+ // An AAAA resource record. Data is an IPv6 address.
+ AAAA = 1;
+
+ // A CNAME resource record. Data is a domain name to be aliased.
+ CNAME = 2;
+ }
+
+ // Relative name of the object affected by this record. Only applicable for
+ // `CNAME` records. Example: 'www'.
+ string name = 1;
+
+ // Data for this record. Values vary by record type, as defined in RFC 1035
+ // (section 5) and RFC 1034 (section 3.6.1).
+ string rrdata = 2;
+
+ // Resource record type. Example: `AAAA`.
+ RecordType type = 3;
+}
diff --git a/third_party/googleapis/google/appengine/v1beta/firewall.proto b/third_party/googleapis/google/appengine/v1beta/firewall.proto
new file mode 100644
index 0000000..f853327
--- /dev/null
+++ b/third_party/googleapis/google/appengine/v1beta/firewall.proto
@@ -0,0 +1,69 @@
+// Copyright 2021 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.appengine.v1beta;
+
+
+option csharp_namespace = "Google.Cloud.AppEngine.V1Beta";
+option go_package = "google.golang.org/genproto/googleapis/appengine/v1beta;appengine";
+option java_multiple_files = true;
+option java_outer_classname = "FirewallProto";
+option java_package = "com.google.appengine.v1beta.firewall";
+option php_namespace = "Google\\Cloud\\AppEngine\\V1beta";
+option ruby_package = "Google::Cloud::AppEngine::V1beta";
+
+// A single firewall rule that is evaluated against incoming traffic
+// and provides an action to take on matched requests.
+message FirewallRule {
+ // Available actions to take on matching requests.
+ enum Action {
+ UNSPECIFIED_ACTION = 0;
+
+ // Matching requests are allowed.
+ ALLOW = 1;
+
+ // Matching requests are denied.
+ DENY = 2;
+ }
+
+ // A positive integer between [1, Int32.MaxValue-1] that defines the order of
+ // rule evaluation. Rules with the lowest priority are evaluated first.
+ //
+ // A default rule at priority Int32.MaxValue matches all IPv4 and IPv6 traffic
+ // when no previous rule matches. Only the action of this rule can be modified
+ // by the user.
+ int32 priority = 1;
+
+ // The action to take on matched requests.
+ Action action = 2;
+
+ // IP address or range, defined using CIDR notation, of requests that this
+ // rule applies to. You can use the wildcard character "*" to match all IPs
+ // equivalent to "0/0" and "::/0" together.
+ // Examples: `192.168.1.1` or `192.168.0.0/16` or `2001:db8::/32`
+ // or `2001:0db8:0000:0042:0000:8a2e:0370:7334`.
+ //
+ //
+ // <p>Truncation will be silently performed on addresses which are not
+ // properly truncated. For example, `1.2.3.4/24` is accepted as the same
+ // address as `1.2.3.0/24`. Similarly, for IPv6, `2001:db8::1/32` is accepted
+ // as the same address as `2001:db8::/32`.
+ string source_range = 3;
+
+ // An optional string description of this rule.
+ // This field has a maximum length of 100 characters.
+ string description = 4;
+}
diff --git a/third_party/googleapis/google/appengine/v1beta/instance.proto b/third_party/googleapis/google/appengine/v1beta/instance.proto
new file mode 100644
index 0000000..f544450
--- /dev/null
+++ b/third_party/googleapis/google/appengine/v1beta/instance.proto
@@ -0,0 +1,143 @@
+// Copyright 2021 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.appengine.v1beta;
+
+import "google/api/field_behavior.proto";
+import "google/api/resource.proto";
+import "google/protobuf/timestamp.proto";
+
+option csharp_namespace = "Google.Cloud.AppEngine.V1Beta";
+option go_package = "google.golang.org/genproto/googleapis/appengine/v1beta;appengine";
+option java_multiple_files = true;
+option java_outer_classname = "InstanceProto";
+option java_package = "com.google.appengine.v1beta";
+option php_namespace = "Google\\Cloud\\AppEngine\\V1beta";
+option ruby_package = "Google::Cloud::AppEngine::V1beta";
+
+// An Instance resource is the computing unit that App Engine uses to
+// automatically scale an application.
+message Instance {
+ option (google.api.resource) = {
+ type: "appengine.googleapis.com/Instance"
+ pattern: "apps/{app}/services/{service}/versions/{version}/instances/{instance}"
+ };
+
+ // Wrapper for LivenessState enum.
+ message Liveness {
+ // Liveness health check status for Flex instances.
+ enum LivenessState {
+ // There is no liveness health check for the instance. Only applicable for
+ // instances in App Engine standard environment.
+ LIVENESS_STATE_UNSPECIFIED = 0;
+
+ // The health checking system is aware of the instance but its health is
+ // not known at the moment.
+ UNKNOWN = 1;
+
+ // The instance is reachable i.e. a connection to the application health
+ // checking endpoint can be established, and conforms to the requirements
+ // defined by the health check.
+ HEALTHY = 2;
+
+ // The instance is reachable, but does not conform to the requirements
+ // defined by the health check.
+ UNHEALTHY = 3;
+
+ // The instance is being drained. The existing connections to the instance
+ // have time to complete, but the new ones are being refused.
+ DRAINING = 4;
+
+ // The instance is unreachable i.e. a connection to the application health
+ // checking endpoint cannot be established, or the server does not respond
+ // within the specified timeout.
+ TIMEOUT = 5;
+ }
+
+
+ }
+
+ // Availability of the instance.
+ enum Availability {
+ UNSPECIFIED = 0;
+
+ RESIDENT = 1;
+
+ DYNAMIC = 2;
+ }
+
+ // Output only. Full path to the Instance resource in the API.
+ // Example: `apps/myapp/services/default/versions/v1/instances/instance-1`.
+ string name = 1 [(google.api.field_behavior) = OUTPUT_ONLY];
+
+ // Output only. Relative name of the instance within the version.
+ // Example: `instance-1`.
+ string id = 2 [(google.api.field_behavior) = OUTPUT_ONLY];
+
+ // Output only. App Engine release this instance is running on.
+ string app_engine_release = 3 [(google.api.field_behavior) = OUTPUT_ONLY];
+
+ // Output only. Availability of the instance.
+ Availability availability = 4 [(google.api.field_behavior) = OUTPUT_ONLY];
+
+ // Output only. Name of the virtual machine where this instance lives. Only applicable
+ // for instances in App Engine flexible environment.
+ string vm_name = 5 [(google.api.field_behavior) = OUTPUT_ONLY];
+
+ // Output only. Zone where the virtual machine is located. Only applicable for instances
+ // in App Engine flexible environment.
+ string vm_zone_name = 6 [(google.api.field_behavior) = OUTPUT_ONLY];
+
+ // Output only. Virtual machine ID of this instance. Only applicable for instances in
+ // App Engine flexible environment.
+ string vm_id = 7 [(google.api.field_behavior) = OUTPUT_ONLY];
+
+ // Output only. Time that this instance was started.
+ //
+ // @OutputOnly
+ google.protobuf.Timestamp start_time = 8 [(google.api.field_behavior) = OUTPUT_ONLY];
+
+ // Output only. Number of requests since this instance was started.
+ int32 requests = 9 [(google.api.field_behavior) = OUTPUT_ONLY];
+
+ // Output only. Number of errors since this instance was started.
+ int32 errors = 10 [(google.api.field_behavior) = OUTPUT_ONLY];
+
+ // Output only. Average queries per second (QPS) over the last minute.
+ float qps = 11 [(google.api.field_behavior) = OUTPUT_ONLY];
+
+ // Output only. Average latency (ms) over the last minute.
+ int32 average_latency = 12 [(google.api.field_behavior) = OUTPUT_ONLY];
+
+ // Output only. Total memory in use (bytes).
+ int64 memory_usage = 13 [(google.api.field_behavior) = OUTPUT_ONLY];
+
+ // Output only. Status of the virtual machine where this instance lives. Only applicable
+ // for instances in App Engine flexible environment.
+ string vm_status = 14 [(google.api.field_behavior) = OUTPUT_ONLY];
+
+ // Output only. Whether this instance is in debug mode. Only applicable for instances in
+ // App Engine flexible environment.
+ bool vm_debug_enabled = 15 [(google.api.field_behavior) = OUTPUT_ONLY];
+
+ // Output only. The IP address of this instance. Only applicable for instances in App
+ // Engine flexible environment.
+ string vm_ip = 16 [(google.api.field_behavior) = OUTPUT_ONLY];
+
+ // Output only. The liveness health check of this instance. Only applicable for instances
+ // in App Engine flexible environment.
+ Liveness.LivenessState vm_liveness = 17 [(google.api.field_behavior) = OUTPUT_ONLY];
+}
diff --git a/third_party/googleapis/google/appengine/v1beta/location.proto b/third_party/googleapis/google/appengine/v1beta/location.proto
new file mode 100644
index 0000000..e4689d2
--- /dev/null
+++ b/third_party/googleapis/google/appengine/v1beta/location.proto
@@ -0,0 +1,44 @@
+// Copyright 2021 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.appengine.v1beta;
+
+import "google/api/field_behavior.proto";
+
+option csharp_namespace = "Google.Cloud.AppEngine.V1Beta";
+option go_package = "google.golang.org/genproto/googleapis/appengine/v1beta;appengine";
+option java_multiple_files = true;
+option java_outer_classname = "LocationProto";
+option java_package = "com.google.appengine.v1beta";
+option php_namespace = "Google\\Cloud\\AppEngine\\V1beta";
+option ruby_package = "Google::Cloud::AppEngine::V1beta";
+
+// Metadata for the given [google.cloud.location.Location][google.cloud.location.Location].
+message LocationMetadata {
+ // App Engine standard environment is available in the given location.
+ //
+ // @OutputOnly
+ bool standard_environment_available = 2;
+
+ // App Engine flexible environment is available in the given location.
+ //
+ // @OutputOnly
+ bool flexible_environment_available = 4;
+
+ // Output only. [Search API](https://cloud.google.com/appengine/docs/standard/python/search)
+ // is available in the given location.
+ bool search_api_available = 6 [(google.api.field_behavior) = OUTPUT_ONLY];
+}
diff --git a/third_party/googleapis/google/appengine/v1beta/network_settings.proto b/third_party/googleapis/google/appengine/v1beta/network_settings.proto
new file mode 100644
index 0000000..1e84f69
--- /dev/null
+++ b/third_party/googleapis/google/appengine/v1beta/network_settings.proto
@@ -0,0 +1,48 @@
+// Copyright 2021 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.appengine.v1beta;
+
+
+option csharp_namespace = "Google.Cloud.AppEngine.V1Beta";
+option go_package = "google.golang.org/genproto/googleapis/appengine/v1beta;appengine";
+option java_multiple_files = true;
+option java_outer_classname = "NetworkSettingsProto";
+option java_package = "com.google.appengine.v1beta";
+option php_namespace = "Google\\Cloud\\AppEngine\\V1beta";
+option ruby_package = "Google::Cloud::AppEngine::V1beta";
+
+// A NetworkSettings resource is a container for ingress settings for a version
+// or service.
+message NetworkSettings {
+ // If unspecified, INGRESS_TRAFFIC_ALLOWED_ALL will be used.
+ enum IngressTrafficAllowed {
+ // Unspecified
+ INGRESS_TRAFFIC_ALLOWED_UNSPECIFIED = 0;
+
+ // Allow HTTP traffic from public and private sources.
+ INGRESS_TRAFFIC_ALLOWED_ALL = 1;
+
+ // Allow HTTP traffic from only private VPC sources.
+ INGRESS_TRAFFIC_ALLOWED_INTERNAL_ONLY = 2;
+
+ // Allow HTTP traffic from private VPC sources and through load balancers.
+ INGRESS_TRAFFIC_ALLOWED_INTERNAL_AND_LB = 3;
+ }
+
+ // The ingress settings for version or service.
+ IngressTrafficAllowed ingress_traffic_allowed = 1;
+}
diff --git a/third_party/googleapis/google/appengine/v1beta/operation.proto b/third_party/googleapis/google/appengine/v1beta/operation.proto
new file mode 100644
index 0000000..10c5ea3
--- /dev/null
+++ b/third_party/googleapis/google/appengine/v1beta/operation.proto
@@ -0,0 +1,79 @@
+// Copyright 2021 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.appengine.v1beta;
+
+import "google/protobuf/timestamp.proto";
+
+option csharp_namespace = "Google.Cloud.AppEngine.V1Beta";
+option go_package = "google.golang.org/genproto/googleapis/appengine/v1beta;appengine";
+option java_multiple_files = true;
+option java_outer_classname = "OperationProto";
+option java_package = "com.google.appengine.v1beta";
+option php_namespace = "Google\\Cloud\\AppEngine\\V1beta";
+option ruby_package = "Google::Cloud::AppEngine::V1beta";
+
+// Metadata for the given [google.longrunning.Operation][google.longrunning.Operation].
+message OperationMetadataV1Beta {
+ // API method that initiated this operation. Example:
+ // `google.appengine.v1beta.Versions.CreateVersion`.
+ //
+ // @OutputOnly
+ string method = 1;
+
+ // Time that this operation was created.
+ //
+ // @OutputOnly
+ google.protobuf.Timestamp insert_time = 2;
+
+ // Time that this operation completed.
+ //
+ // @OutputOnly
+ google.protobuf.Timestamp end_time = 3;
+
+ // User who requested this operation.
+ //
+ // @OutputOnly
+ string user = 4;
+
+ // Name of the resource that this operation is acting on. Example:
+ // `apps/myapp/services/default`.
+ //
+ // @OutputOnly
+ string target = 5;
+
+ // Ephemeral message that may change every time the operation is polled.
+ // @OutputOnly
+ string ephemeral_message = 6;
+
+ // Durable messages that persist on every operation poll.
+ // @OutputOnly
+ repeated string warning = 7;
+
+ // Metadata specific to the type of operation in progress.
+ // @OutputOnly
+ oneof method_metadata {
+ CreateVersionMetadataV1Beta create_version_metadata = 8;
+ }
+}
+
+// Metadata for the given [google.longrunning.Operation][google.longrunning.Operation] during a
+// [google.appengine.v1beta.CreateVersionRequest][google.appengine.v1beta.CreateVersionRequest].
+message CreateVersionMetadataV1Beta {
+ // The Cloud Build ID if one was created as part of the version create.
+ // @OutputOnly
+ string cloud_build_id = 1;
+}
diff --git a/third_party/googleapis/google/appengine/v1beta/service.proto b/third_party/googleapis/google/appengine/v1beta/service.proto
new file mode 100644
index 0000000..7c4a2a8
--- /dev/null
+++ b/third_party/googleapis/google/appengine/v1beta/service.proto
@@ -0,0 +1,93 @@
+// Copyright 2021 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.appengine.v1beta;
+
+import "google/appengine/v1beta/network_settings.proto";
+
+option csharp_namespace = "Google.Cloud.AppEngine.V1Beta";
+option go_package = "google.golang.org/genproto/googleapis/appengine/v1beta;appengine";
+option java_multiple_files = true;
+option java_outer_classname = "ServiceProto";
+option java_package = "com.google.appengine.v1beta";
+option php_namespace = "Google\\Cloud\\AppEngine\\V1beta";
+option ruby_package = "Google::Cloud::AppEngine::V1beta";
+
+// A Service resource is a logical component of an application that can share
+// state and communicate in a secure fashion with other services.
+// For example, an application that handles customer requests might
+// include separate services to handle tasks such as backend data
+// analysis or API requests from mobile devices. Each service has a
+// collection of versions that define a specific set of code used to
+// implement the functionality of that service.
+message Service {
+ // Full path to the Service resource in the API.
+ // Example: `apps/myapp/services/default`.
+ //
+ // @OutputOnly
+ string name = 1;
+
+ // Relative name of the service within the application.
+ // Example: `default`.
+ //
+ // @OutputOnly
+ string id = 2;
+
+ // Mapping that defines fractional HTTP traffic diversion to
+ // different versions within the service.
+ TrafficSplit split = 3;
+
+ // Ingress settings for this service. Will apply to all versions.
+ NetworkSettings network_settings = 6;
+}
+
+// Traffic routing configuration for versions within a single service. Traffic
+// splits define how traffic directed to the service is assigned to versions.
+message TrafficSplit {
+ // Available sharding mechanisms.
+ enum ShardBy {
+ // Diversion method unspecified.
+ UNSPECIFIED = 0;
+
+ // Diversion based on a specially named cookie, "GOOGAPPUID." The cookie
+ // must be set by the application itself or no diversion will occur.
+ COOKIE = 1;
+
+ // Diversion based on applying the modulus operation to a fingerprint
+ // of the IP address.
+ IP = 2;
+
+ // Diversion based on weighted random assignment. An incoming request is
+ // randomly routed to a version in the traffic split, with probability
+ // proportional to the version's traffic share.
+ RANDOM = 3;
+ }
+
+ // Mechanism used to determine which version a request is sent to.
+ // The traffic selection algorithm will
+ // be stable for either type until allocations are changed.
+ ShardBy shard_by = 1;
+
+ // Mapping from version IDs within the service to fractional
+ // (0.000, 1] allocations of traffic for that version. Each version can
+ // be specified only once, but some versions in the service may not
+ // have any traffic allocation. Services that have traffic allocated
+ // cannot be deleted until either the service is deleted or
+ // their traffic allocation is removed. Allocations must sum to 1.
+ // Up to two decimal place precision is supported for IP-based splits and
+ // up to three decimal places is supported for cookie-based splits.
+ map<string, double> allocations = 2;
+}
diff --git a/third_party/googleapis/google/appengine/v1beta/version.proto b/third_party/googleapis/google/appengine/v1beta/version.proto
new file mode 100644
index 0000000..e32f2d2
--- /dev/null
+++ b/third_party/googleapis/google/appengine/v1beta/version.proto
@@ -0,0 +1,607 @@
+// Copyright 2021 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.appengine.v1beta;
+
+import "google/appengine/v1beta/app_yaml.proto";
+import "google/appengine/v1beta/deploy.proto";
+import "google/appengine/v1beta/network_settings.proto";
+import "google/protobuf/duration.proto";
+import "google/protobuf/timestamp.proto";
+
+option csharp_namespace = "Google.Cloud.AppEngine.V1Beta";
+option go_package = "google.golang.org/genproto/googleapis/appengine/v1beta;appengine";
+option java_multiple_files = true;
+option java_outer_classname = "VersionProto";
+option java_package = "com.google.appengine.v1beta";
+option php_namespace = "Google\\Cloud\\AppEngine\\V1beta";
+option ruby_package = "Google::Cloud::AppEngine::V1beta";
+
+// A Version resource is a specific set of source code and configuration files
+// that are deployed into a service.
+message Version {
+ // Full path to the Version resource in the API. Example:
+ // `apps/myapp/services/default/versions/v1`.
+ //
+ // @OutputOnly
+ string name = 1;
+
+ // Relative name of the version within the service. Example: `v1`.
+ // Version names can contain only lowercase letters, numbers, or hyphens.
+ // Reserved names: "default", "latest", and any name with the prefix "ah-".
+ string id = 2;
+
+ // Controls how instances are created, scaled, and reaped.
+ //
+ // Defaults to `AutomaticScaling`.
+ oneof scaling {
+ // Automatic scaling is based on request rate, response latencies, and other
+ // application metrics. Instances are dynamically created and destroyed as
+ // needed in order to handle traffic.
+ AutomaticScaling automatic_scaling = 3;
+
+ // A service with basic scaling will create an instance when the application
+ // receives a request. The instance will be turned down when the app becomes
+ // idle. Basic scaling is ideal for work that is intermittent or driven by
+ // user activity.
+ BasicScaling basic_scaling = 4;
+
+ // A service with manual scaling runs continuously, allowing you to perform
+ // complex initialization and rely on the state of its memory over time.
+ // Manually scaled versions are sometimes referred to as "backends".
+ ManualScaling manual_scaling = 5;
+ }
+
+ // Before an application can receive email or XMPP messages, the application
+ // must be configured to enable the service.
+ repeated InboundServiceType inbound_services = 6;
+
+ // Instance class that is used to run this version. Valid values are:
+ //
+ // * AutomaticScaling: `F1`, `F2`, `F4`, `F4_1G`
+ // * ManualScaling or BasicScaling: `B1`, `B2`, `B4`, `B8`, `B4_1G`
+ //
+ // Defaults to `F1` for AutomaticScaling and `B1` for ManualScaling or
+ // BasicScaling.
+ string instance_class = 7;
+
+ // Extra network settings.
+ // Only applicable in the App Engine flexible environment.
+ Network network = 8;
+
+ // The Google Compute Engine zones that are supported by this version in the
+ // App Engine flexible environment. Deprecated.
+ repeated string zones = 118;
+
+ // Machine resources for this version.
+ // Only applicable in the App Engine flexible environment.
+ Resources resources = 9;
+
+ // Desired runtime. Example: `python27`.
+ string runtime = 10;
+
+ // The channel of the runtime to use. Only available for some
+ // runtimes. Defaults to the `default` channel.
+ string runtime_channel = 117;
+
+ // Whether multiple requests can be dispatched to this version at once.
+ bool threadsafe = 11;
+
+ // Whether to deploy this version in a container on a virtual machine.
+ bool vm = 12;
+
+ // app_engine_apis allows second generation runtimes to access the
+ // App Engine APIs.
+ bool app_engine_apis = 128;
+
+ // Metadata settings that are supplied to this version to enable
+ // beta runtime features.
+ map<string, string> beta_settings = 13;
+
+ // App Engine execution environment for this version.
+ //
+ // Defaults to `standard`.
+ string env = 14;
+
+ // Current serving status of this version. Only the versions with a
+ // `SERVING` status create instances and can be billed.
+ //
+ // `SERVING_STATUS_UNSPECIFIED` is an invalid value. Defaults to `SERVING`.
+ ServingStatus serving_status = 15;
+
+ // Email address of the user who created this version.
+ //
+ // @OutputOnly
+ string created_by = 16;
+
+ // Time that this version was created.
+ //
+ // @OutputOnly
+ google.protobuf.Timestamp create_time = 17;
+
+ // Total size in bytes of all the files that are included in this version
+ // and currently hosted on the App Engine disk.
+ //
+ // @OutputOnly
+ int64 disk_usage_bytes = 18;
+
+ // The version of the API in the given runtime environment. Please see the
+ // app.yaml reference for valid values at
+ // https://cloud.google.com/appengine/docs/standard/<language>/config/appref
+ string runtime_api_version = 21;
+
+ // The path or name of the app's main executable.
+ string runtime_main_executable_path = 22;
+
+ // The identity that the deployed version will run as.
+ // Admin API will use the App Engine Appspot service account as default if
+ // this field is neither provided in app.yaml file nor through CLI flag.
+ string service_account = 127;
+
+ // An ordered list of URL-matching patterns that should be applied to incoming
+ // requests. The first matching URL handles the request and other request
+ // handlers are not attempted.
+ //
+ // Only returned in `GET` requests if `view=FULL` is set.
+ repeated UrlMap handlers = 100;
+
+ // Custom static error pages. Limited to 10KB per page.
+ //
+ // Only returned in `GET` requests if `view=FULL` is set.
+ repeated ErrorHandler error_handlers = 101;
+
+ // Configuration for third-party Python runtime libraries that are required
+ // by the application.
+ //
+ // Only returned in `GET` requests if `view=FULL` is set.
+ repeated Library libraries = 102;
+
+ // Serving configuration for
+ // [Google Cloud Endpoints](https://cloud.google.com/appengine/docs/python/endpoints/).
+ //
+ // Only returned in `GET` requests if `view=FULL` is set.
+ ApiConfigHandler api_config = 103;
+
+ // Environment variables available to the application.
+ //
+ // Only returned in `GET` requests if `view=FULL` is set.
+ map<string, string> env_variables = 104;
+
+ // Environment variables available to the build environment.
+ //
+ // Only returned in `GET` requests if `view=FULL` is set.
+ map<string, string> build_env_variables = 125;
+
+ // Duration that static files should be cached by web proxies and browsers.
+ // Only applicable if the corresponding
+ // [StaticFilesHandler](https://cloud.google.com/appengine/docs/admin-api/reference/rest/v1beta/apps.services.versions#StaticFilesHandler)
+ // does not specify its own expiration time.
+ //
+ // Only returned in `GET` requests if `view=FULL` is set.
+ google.protobuf.Duration default_expiration = 105;
+
+ // Configures health checking for instances. Unhealthy instances are
+ // stopped and replaced with new instances.
+ // Only applicable in the App Engine flexible environment.
+ //
+ // Only returned in `GET` requests if `view=FULL` is set.
+ HealthCheck health_check = 106;
+
+ // Configures readiness health checking for instances.
+ // Unhealthy instances are not put into the backend traffic rotation.
+ //
+ // Only returned in `GET` requests if `view=FULL` is set.
+ ReadinessCheck readiness_check = 112;
+
+ // Configures liveness health checking for instances.
+ // Unhealthy instances are stopped and replaced with new instances
+ //
+ // Only returned in `GET` requests if `view=FULL` is set.
+ LivenessCheck liveness_check = 113;
+
+ // Files that match this pattern will not be built into this version.
+ // Only applicable for Go runtimes.
+ //
+ // Only returned in `GET` requests if `view=FULL` is set.
+ string nobuild_files_regex = 107;
+
+ // Code and application artifacts that make up this version.
+ //
+ // Only returned in `GET` requests if `view=FULL` is set.
+ Deployment deployment = 108;
+
+ // Serving URL for this version. Example:
+ // "https://myversion-dot-myservice-dot-myapp.appspot.com"
+ //
+ // @OutputOnly
+ string version_url = 109;
+
+ // Cloud Endpoints configuration.
+ //
+ // If endpoints_api_service is set, the Cloud Endpoints Extensible Service
+ // Proxy will be provided to serve the API implemented by the app.
+ EndpointsApiService endpoints_api_service = 110;
+
+ // The entrypoint for the application.
+ Entrypoint entrypoint = 122;
+
+ // Enables VPC connectivity for standard apps.
+ VpcAccessConnector vpc_access_connector = 121;
+}
+
+// [Cloud Endpoints](https://cloud.google.com/endpoints) configuration.
+// The Endpoints API Service provides tooling for serving Open API and gRPC
+// endpoints via an NGINX proxy. Only valid for App Engine Flexible environment
+// deployments.
+//
+// The fields here refer to the name and configuration ID of a "service"
+// resource in the [Service Management API](https://cloud.google.com/service-management/overview).
+message EndpointsApiService {
+ // Available rollout strategies.
+ enum RolloutStrategy {
+ // Not specified. Defaults to `FIXED`.
+ UNSPECIFIED_ROLLOUT_STRATEGY = 0;
+
+ // Endpoints service configuration ID will be fixed to the configuration ID
+ // specified by `config_id`.
+ FIXED = 1;
+
+ // Endpoints service configuration ID will be updated with each rollout.
+ MANAGED = 2;
+ }
+
+ // Endpoints service name which is the name of the "service" resource in the
+ // Service Management API. For example "myapi.endpoints.myproject.cloud.goog"
+ string name = 1;
+
+ // Endpoints service configuration ID as specified by the Service Management
+ // API. For example "2016-09-19r1".
+ //
+ // By default, the rollout strategy for Endpoints is `RolloutStrategy.FIXED`.
+ // This means that Endpoints starts up with a particular configuration ID.
+ // When a new configuration is rolled out, Endpoints must be given the new
+ // configuration ID. The `config_id` field is used to give the configuration
+ // ID and is required in this case.
+ //
+ // Endpoints also has a rollout strategy called `RolloutStrategy.MANAGED`.
+ // When using this, Endpoints fetches the latest configuration and does not
+ // need the configuration ID. In this case, `config_id` must be omitted.
+ string config_id = 2;
+
+ // Endpoints rollout strategy. If `FIXED`, `config_id` must be specified. If
+ // `MANAGED`, `config_id` must be omitted.
+ RolloutStrategy rollout_strategy = 3;
+
+ // Enable or disable trace sampling. By default, this is set to false for
+ // enabled.
+ bool disable_trace_sampling = 4;
+}
+
+// Automatic scaling is based on request rate, response latencies, and other
+// application metrics.
+message AutomaticScaling {
+ // The time period that the
+ // [Autoscaler](https://cloud.google.com/compute/docs/autoscaler/)
+ // should wait before it starts collecting information from a new instance.
+ // This prevents the autoscaler from collecting information when the instance
+ // is initializing, during which the collected usage would not be reliable.
+ // Only applicable in the App Engine flexible environment.
+ google.protobuf.Duration cool_down_period = 1;
+
+ // Target scaling by CPU usage.
+ CpuUtilization cpu_utilization = 2;
+
+ // Number of concurrent requests an automatic scaling instance can accept
+ // before the scheduler spawns a new instance.
+ //
+ // Defaults to a runtime-specific value.
+ int32 max_concurrent_requests = 3;
+
+ // Maximum number of idle instances that should be maintained for this
+ // version.
+ int32 max_idle_instances = 4;
+
+ // Maximum number of instances that should be started to handle requests for
+ // this version.
+ int32 max_total_instances = 5;
+
+ // Maximum amount of time that a request should wait in the pending queue
+ // before starting a new instance to handle it.
+ google.protobuf.Duration max_pending_latency = 6;
+
+ // Minimum number of idle instances that should be maintained for
+ // this version. Only applicable for the default version of a service.
+ int32 min_idle_instances = 7;
+
+ // Minimum number of running instances that should be maintained for this
+ // version.
+ int32 min_total_instances = 8;
+
+ // Minimum amount of time a request should wait in the pending queue before
+ // starting a new instance to handle it.
+ google.protobuf.Duration min_pending_latency = 9;
+
+ // Target scaling by request utilization.
+ RequestUtilization request_utilization = 10;
+
+ // Target scaling by disk usage.
+ DiskUtilization disk_utilization = 11;
+
+ // Target scaling by network usage.
+ NetworkUtilization network_utilization = 12;
+
+ // Target scaling by user-provided metrics.
+ // Only applicable in the App Engine flexible environment.
+ repeated CustomMetric custom_metrics = 21;
+
+ // Scheduler settings for standard environment.
+ StandardSchedulerSettings standard_scheduler_settings = 20;
+}
+
+// A service with basic scaling will create an instance when the application
+// receives a request. The instance will be turned down when the app becomes
+// idle. Basic scaling is ideal for work that is intermittent or driven by
+// user activity.
+message BasicScaling {
+ // Duration of time after the last request that an instance must wait before
+ // the instance is shut down.
+ google.protobuf.Duration idle_timeout = 1;
+
+ // Maximum number of instances to create for this version.
+ int32 max_instances = 2;
+}
+
+// A service with manual scaling runs continuously, allowing you to perform
+// complex initialization and rely on the state of its memory over time.
+message ManualScaling {
+ // Number of instances to assign to the service at the start. This number
+ // can later be altered by using the
+ // [Modules API](https://cloud.google.com/appengine/docs/python/modules/functions)
+ // `set_num_instances()` function.
+ int32 instances = 1;
+}
+
+// Target scaling by CPU usage.
+message CpuUtilization {
+ // Period of time over which CPU utilization is calculated.
+ google.protobuf.Duration aggregation_window_length = 1;
+
+ // Target CPU utilization ratio to maintain when scaling. Must be between 0
+ // and 1.
+ double target_utilization = 2;
+}
+
+// Target scaling by request utilization.
+// Only applicable in the App Engine flexible environment.
+message RequestUtilization {
+ // Target requests per second.
+ int32 target_request_count_per_second = 1;
+
+ // Target number of concurrent requests.
+ int32 target_concurrent_requests = 2;
+}
+
+// Target scaling by disk usage.
+// Only applicable in the App Engine flexible environment.
+message DiskUtilization {
+ // Target bytes written per second.
+ int32 target_write_bytes_per_second = 14;
+
+ // Target ops written per second.
+ int32 target_write_ops_per_second = 15;
+
+ // Target bytes read per second.
+ int32 target_read_bytes_per_second = 16;
+
+ // Target ops read per seconds.
+ int32 target_read_ops_per_second = 17;
+}
+
+// Target scaling by network usage.
+// Only applicable in the App Engine flexible environment.
+message NetworkUtilization {
+ // Target bytes sent per second.
+ int32 target_sent_bytes_per_second = 1;
+
+ // Target packets sent per second.
+ int32 target_sent_packets_per_second = 11;
+
+ // Target bytes received per second.
+ int32 target_received_bytes_per_second = 12;
+
+ // Target packets received per second.
+ int32 target_received_packets_per_second = 13;
+}
+
+// Allows autoscaling based on Stackdriver metrics.
+message CustomMetric {
+ // The name of the metric.
+ string metric_name = 1;
+
+ // The type of the metric. Must be a string representing a Stackdriver
+ // metric type e.g. GAGUE, DELTA_PER_SECOND, etc.
+ string target_type = 2;
+
+ // The target spec.
+ oneof target_spec {
+ // The target value for the metric.
+ double target_utilization = 3;
+
+ // May be used instead of `target_utilization` when an instance can handle a
+ // specific amount of work/resources and the metric value is equal to the
+ // current amount of work remaining. The autoscaler will try to keep the
+ // number of instances equal to the metric value divided by
+ // `single_instance_assignment`.
+ double single_instance_assignment = 4;
+ }
+
+ // Allows filtering on the metric's fields.
+ string filter = 5;
+}
+
+// Scheduler settings for standard environment.
+message StandardSchedulerSettings {
+ // Target CPU utilization ratio to maintain when scaling.
+ double target_cpu_utilization = 1;
+
+ // Target throughput utilization ratio to maintain when scaling
+ double target_throughput_utilization = 2;
+
+ // Minimum number of instances to run for this version. Set to zero to disable
+ // `min_instances` configuration.
+ int32 min_instances = 3;
+
+ // Maximum number of instances to run for this version. Set to zero to disable
+ // `max_instances` configuration.
+ int32 max_instances = 4;
+}
+
+// Extra network settings.
+// Only applicable in the App Engine flexible environment.
+message Network {
+ // List of ports, or port pairs, to forward from the virtual machine to the
+ // application container.
+ // Only applicable in the App Engine flexible environment.
+ repeated string forwarded_ports = 1;
+
+ // Tag to apply to the instance during creation.
+ // Only applicable in the App Engine flexible environment.
+ string instance_tag = 2;
+
+ // Google Compute Engine network where the virtual machines are created.
+ // Specify the short name, not the resource path.
+ //
+ // Defaults to `default`.
+ string name = 3;
+
+ // Google Cloud Platform sub-network where the virtual machines are created.
+ // Specify the short name, not the resource path.
+ //
+ // If a subnetwork name is specified, a network name will also be required
+ // unless it is for the default network.
+ //
+ // * If the network that the instance is being created in is a Legacy network,
+ // then the IP address is allocated from the IPv4Range.
+ // * If the network that the instance is being created in is an auto Subnet
+ // Mode Network, then only network name should be specified (not the
+ // subnetwork_name) and the IP address is created from the IPCidrRange of the
+ // subnetwork that exists in that zone for that network.
+ // * If the network that the instance is being created in is a custom Subnet
+ // Mode Network, then the subnetwork_name must be specified and the
+ // IP address is created from the IPCidrRange of the subnetwork.
+ //
+ // If specified, the subnetwork must exist in the same region as the
+ // App Engine flexible environment application.
+ string subnetwork_name = 4;
+
+ // Enable session affinity.
+ // Only applicable in the App Engine flexible environment.
+ bool session_affinity = 5;
+}
+
+// Volumes mounted within the app container.
+// Only applicable in the App Engine flexible environment.
+message Volume {
+ // Unique name for the volume.
+ string name = 1;
+
+ // Underlying volume type, e.g. 'tmpfs'.
+ string volume_type = 2;
+
+ // Volume size in gigabytes.
+ double size_gb = 3;
+}
+
+// Machine resources for a version.
+message Resources {
+ // Number of CPU cores needed.
+ double cpu = 1;
+
+ // Disk size (GB) needed.
+ double disk_gb = 2;
+
+ // Memory (GB) needed.
+ double memory_gb = 3;
+
+ // User specified volumes.
+ repeated Volume volumes = 4;
+
+ // The name of the encryption key that is stored in Google Cloud KMS.
+ // Only should be used by Cloud Composer to encrypt the vm disk
+ string kms_key_reference = 5;
+}
+
+// VPC access connector specification.
+message VpcAccessConnector {
+ // Full Serverless VPC Access Connector name e.g.
+ // /projects/my-project/locations/us-central1/connectors/c1.
+ string name = 1;
+}
+
+// The entrypoint for the application.
+message Entrypoint {
+ // The command to run.
+ oneof command {
+ // The format should be a shell command that can be fed to `bash -c`.
+ string shell = 1;
+ }
+}
+
+// Available inbound services.
+enum InboundServiceType {
+ // Not specified.
+ INBOUND_SERVICE_UNSPECIFIED = 0;
+
+ // Allows an application to receive mail.
+ INBOUND_SERVICE_MAIL = 1;
+
+ // Allows an application to receive email-bound notifications.
+ INBOUND_SERVICE_MAIL_BOUNCE = 2;
+
+ // Allows an application to receive error stanzas.
+ INBOUND_SERVICE_XMPP_ERROR = 3;
+
+ // Allows an application to receive instant messages.
+ INBOUND_SERVICE_XMPP_MESSAGE = 4;
+
+ // Allows an application to receive user subscription POSTs.
+ INBOUND_SERVICE_XMPP_SUBSCRIBE = 5;
+
+ // Allows an application to receive a user's chat presence.
+ INBOUND_SERVICE_XMPP_PRESENCE = 6;
+
+ // Registers an application for notifications when a client connects or
+ // disconnects from a channel.
+ INBOUND_SERVICE_CHANNEL_PRESENCE = 7;
+
+ // Enables warmup requests.
+ INBOUND_SERVICE_WARMUP = 9;
+}
+
+// Run states of a version.
+enum ServingStatus {
+ // Not specified.
+ SERVING_STATUS_UNSPECIFIED = 0;
+
+ // Currently serving. Instances are created according to the
+ // scaling settings of the version.
+ SERVING = 1;
+
+ // Disabled. No instances will be created and the scaling
+ // settings are ignored until the state of the version changes
+ // to `SERVING`.
+ STOPPED = 2;
+}