feat: public protos for API Gateway API
PiperOrigin-RevId: 347907714
This commit is contained in:
parent
360a0e1773
commit
48fa7512d3
|
|
@ -0,0 +1,176 @@
|
|||
# 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 = "apigateway_proto",
|
||||
srcs = [
|
||||
"apigateway.proto",
|
||||
"apigateway_service.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//: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 = "apigateway_java_proto",
|
||||
deps = [":apigateway_proto"],
|
||||
)
|
||||
|
||||
java_grpc_library(
|
||||
name = "apigateway_java_grpc",
|
||||
srcs = [":apigateway_proto"],
|
||||
deps = [":apigateway_java_proto"],
|
||||
)
|
||||
|
||||
##############################################################################
|
||||
# Go
|
||||
##############################################################################
|
||||
load(
|
||||
"@com_google_googleapis_imports//:imports.bzl",
|
||||
"go_proto_library",
|
||||
)
|
||||
|
||||
go_proto_library(
|
||||
name = "apigateway_go_proto",
|
||||
compilers = ["@io_bazel_rules_go//proto:go_grpc"],
|
||||
importpath = "google.golang.org/genproto/googleapis/cloud/apigateway/v1",
|
||||
protos = [":apigateway_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 = "apigateway_moved_proto",
|
||||
srcs = [":apigateway_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//:field_mask_proto",
|
||||
"@com_google_protobuf//:timestamp_proto",
|
||||
],
|
||||
)
|
||||
|
||||
py_proto_library(
|
||||
name = "apigateway_py_proto",
|
||||
plugin = "@protoc_docs_plugin//:docs_plugin",
|
||||
deps = [":apigateway_moved_proto"],
|
||||
)
|
||||
|
||||
py_grpc_library(
|
||||
name = "apigateway_py_grpc",
|
||||
srcs = [":apigateway_moved_proto"],
|
||||
deps = [":apigateway_py_proto"],
|
||||
)
|
||||
|
||||
##############################################################################
|
||||
# PHP
|
||||
##############################################################################
|
||||
load(
|
||||
"@com_google_googleapis_imports//:imports.bzl",
|
||||
"php_grpc_library",
|
||||
"php_proto_library",
|
||||
)
|
||||
|
||||
php_proto_library(
|
||||
name = "apigateway_php_proto",
|
||||
deps = [":apigateway_proto"],
|
||||
)
|
||||
|
||||
php_grpc_library(
|
||||
name = "apigateway_php_grpc",
|
||||
srcs = [":apigateway_proto"],
|
||||
deps = [":apigateway_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 = "apigateway_ruby_proto",
|
||||
deps = [":apigateway_proto"],
|
||||
)
|
||||
|
||||
ruby_grpc_library(
|
||||
name = "apigateway_ruby_grpc",
|
||||
srcs = [":apigateway_proto"],
|
||||
deps = [":apigateway_ruby_proto"],
|
||||
)
|
||||
|
||||
##############################################################################
|
||||
# C#
|
||||
##############################################################################
|
||||
load(
|
||||
"@com_google_googleapis_imports//:imports.bzl",
|
||||
"csharp_grpc_library",
|
||||
"csharp_proto_library",
|
||||
)
|
||||
|
||||
csharp_proto_library(
|
||||
name = "apigateway_csharp_proto",
|
||||
deps = [":apigateway_proto"],
|
||||
)
|
||||
|
||||
csharp_grpc_library(
|
||||
name = "apigateway_csharp_grpc",
|
||||
srcs = [":apigateway_proto"],
|
||||
deps = [":apigateway_csharp_proto"],
|
||||
)
|
||||
|
||||
##############################################################################
|
||||
# C++
|
||||
##############################################################################
|
||||
# Put your C++ code here
|
||||
|
|
@ -0,0 +1,615 @@
|
|||
// Copyright 2020 Google LLC
|
||||
//
|
||||
// Licensed under the Apache License, Version 2.0 (the "License");
|
||||
// you may not use this file except in compliance with the License.
|
||||
// You may obtain a copy of the License at
|
||||
//
|
||||
// http://www.apache.org/licenses/LICENSE-2.0
|
||||
//
|
||||
// Unless required by applicable law or agreed to in writing, software
|
||||
// distributed under the License is distributed on an "AS IS" BASIS,
|
||||
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
// See the License for the specific language governing permissions and
|
||||
// limitations under the License.
|
||||
|
||||
syntax = "proto3";
|
||||
|
||||
package google.cloud.apigateway.v1;
|
||||
|
||||
import "google/api/field_behavior.proto";
|
||||
import "google/api/resource.proto";
|
||||
import "google/protobuf/field_mask.proto";
|
||||
import "google/protobuf/timestamp.proto";
|
||||
import "google/api/annotations.proto";
|
||||
|
||||
option go_package = "google.golang.org/genproto/googleapis/cloud/apigateway/v1;apigateway";
|
||||
option java_multiple_files = true;
|
||||
option java_package = "com.google.cloud.apigateway.v1";
|
||||
|
||||
// An API that can be served by one or more Gateways.
|
||||
message Api {
|
||||
option (google.api.resource) = {
|
||||
type: "apigateway.googleapis.com/Api"
|
||||
pattern: "projects/{project}/locations/global/apis/{api}"
|
||||
};
|
||||
|
||||
// All the possible API states.
|
||||
enum State {
|
||||
// API does not have a state yet.
|
||||
STATE_UNSPECIFIED = 0;
|
||||
|
||||
// API is being created.
|
||||
CREATING = 1;
|
||||
|
||||
// API is active.
|
||||
ACTIVE = 2;
|
||||
|
||||
// API creation failed.
|
||||
FAILED = 3;
|
||||
|
||||
// API is being deleted.
|
||||
DELETING = 4;
|
||||
|
||||
// API is being updated.
|
||||
UPDATING = 5;
|
||||
}
|
||||
|
||||
// Output only. Resource name of the API.
|
||||
// Format: projects/{project}/locations/global/apis/{api}
|
||||
string name = 1 [(google.api.field_behavior) = OUTPUT_ONLY];
|
||||
|
||||
// Output only. Created time.
|
||||
google.protobuf.Timestamp create_time = 2 [(google.api.field_behavior) = OUTPUT_ONLY];
|
||||
|
||||
// Output only. Updated time.
|
||||
google.protobuf.Timestamp update_time = 3 [(google.api.field_behavior) = OUTPUT_ONLY];
|
||||
|
||||
// Optional. Resource labels to represent user-provided metadata.
|
||||
// Refer to cloud documentation on labels for more details.
|
||||
// https://cloud.google.com/compute/docs/labeling-resources
|
||||
map<string, string> labels = 4 [(google.api.field_behavior) = OPTIONAL];
|
||||
|
||||
// Optional. Display name.
|
||||
string display_name = 5 [(google.api.field_behavior) = OPTIONAL];
|
||||
|
||||
// Optional. Immutable. The name of a Google Managed Service (
|
||||
// https://cloud.google.com/service-infrastructure/docs/glossary#managed). If
|
||||
// not specified, a new Service will automatically be created in the same
|
||||
// project as this API.
|
||||
string managed_service = 7 [
|
||||
(google.api.field_behavior) = IMMUTABLE,
|
||||
(google.api.field_behavior) = OPTIONAL
|
||||
];
|
||||
|
||||
// Output only. State of the API.
|
||||
State state = 12 [(google.api.field_behavior) = OUTPUT_ONLY];
|
||||
}
|
||||
|
||||
// An API Configuration is a combination of settings for both the Managed
|
||||
// Service and Gateways serving this API Config.
|
||||
message ApiConfig {
|
||||
option (google.api.resource) = {
|
||||
type: "apigateway.googleapis.com/ApiConfig"
|
||||
pattern: "projects/{project}/locations/global/apis/{api}/configs/{api_config}"
|
||||
};
|
||||
|
||||
// A lightweight description of a file.
|
||||
message File {
|
||||
// The file path (full or relative path). This is typically the path of the
|
||||
// file when it is uploaded.
|
||||
string path = 1;
|
||||
|
||||
// The bytes that constitute the file.
|
||||
bytes contents = 2;
|
||||
}
|
||||
|
||||
// An OpenAPI Specification Document describing an API.
|
||||
message OpenApiDocument {
|
||||
// The OpenAPI Specification document file.
|
||||
File document = 1;
|
||||
}
|
||||
|
||||
// A gRPC service definition.
|
||||
message GrpcServiceDefinition {
|
||||
// Input only. File descriptor set, generated by protoc.
|
||||
//
|
||||
// To generate, use protoc with imports and source info included.
|
||||
// For an example test.proto file, the following command would put the value
|
||||
// in a new file named out.pb.
|
||||
//
|
||||
// $ protoc --include_imports --include_source_info test.proto -o out.pb
|
||||
File file_descriptor_set = 1 [(google.api.field_behavior) = INPUT_ONLY];
|
||||
|
||||
// Optional. Uncompiled proto files associated with the descriptor set, used for
|
||||
// display purposes (server-side compilation is not supported). These
|
||||
// should match the inputs to 'protoc' command used to generate
|
||||
// file_descriptor_set.
|
||||
repeated File source = 2 [(google.api.field_behavior) = OPTIONAL];
|
||||
}
|
||||
|
||||
// All the possible API Config states.
|
||||
enum State {
|
||||
// API Config does not have a state yet.
|
||||
STATE_UNSPECIFIED = 0;
|
||||
|
||||
// API Config is being created and deployed to the API Controller.
|
||||
CREATING = 1;
|
||||
|
||||
// API Config is ready for use by Gateways.
|
||||
ACTIVE = 2;
|
||||
|
||||
// API Config creation failed.
|
||||
FAILED = 3;
|
||||
|
||||
// API Config is being deleted.
|
||||
DELETING = 4;
|
||||
|
||||
// API Config is being updated.
|
||||
UPDATING = 5;
|
||||
|
||||
// API Config settings are being activated in downstream systems.
|
||||
// API Configs in this state cannot be used by Gateways.
|
||||
ACTIVATING = 6;
|
||||
}
|
||||
|
||||
// Output only. Resource name of the API Config.
|
||||
// Format: projects/{project}/locations/global/apis/{api}/configs/{api_config}
|
||||
string name = 1 [(google.api.field_behavior) = OUTPUT_ONLY];
|
||||
|
||||
// Output only. Created time.
|
||||
google.protobuf.Timestamp create_time = 2 [(google.api.field_behavior) = OUTPUT_ONLY];
|
||||
|
||||
// Output only. Updated time.
|
||||
google.protobuf.Timestamp update_time = 3 [(google.api.field_behavior) = OUTPUT_ONLY];
|
||||
|
||||
// Optional. Resource labels to represent user-provided metadata.
|
||||
// Refer to cloud documentation on labels for more details.
|
||||
// https://cloud.google.com/compute/docs/labeling-resources
|
||||
map<string, string> labels = 4 [(google.api.field_behavior) = OPTIONAL];
|
||||
|
||||
// Optional. Display name.
|
||||
string display_name = 5 [(google.api.field_behavior) = OPTIONAL];
|
||||
|
||||
// Immutable. The Google Cloud IAM Service Account that Gateways serving this config
|
||||
// should use to authenticate to other services. This may either be the
|
||||
// Service Account's email
|
||||
// (`{ACCOUNT_ID}@{PROJECT}.iam.gserviceaccount.com`) or its full resource
|
||||
// name (`projects/{PROJECT}/accounts/{UNIQUE_ID}`). This is most often used
|
||||
// when the service is a GCP resource such as a Cloud Run Service or an
|
||||
// IAP-secured service.
|
||||
string gateway_service_account = 14 [
|
||||
(google.api.field_behavior) = IMMUTABLE,
|
||||
(google.api.resource_reference) = {
|
||||
type: "iam.googleapis.com/ServiceAccount"
|
||||
}
|
||||
];
|
||||
|
||||
// Output only. The ID of the associated Service Config (
|
||||
// https://cloud.google.com/service-infrastructure/docs/glossary#config).
|
||||
string service_config_id = 12 [
|
||||
(google.api.field_behavior) = OUTPUT_ONLY,
|
||||
(google.api.resource_reference) = {
|
||||
type: "servicemanagement.googleapis.com/Service"
|
||||
}
|
||||
];
|
||||
|
||||
// Output only. State of the API Config.
|
||||
State state = 8 [(google.api.field_behavior) = OUTPUT_ONLY];
|
||||
|
||||
// Optional. OpenAPI specification documents. If specified, grpc_services and
|
||||
// managed_service_configs must not be included.
|
||||
repeated OpenApiDocument openapi_documents = 9 [(google.api.field_behavior) = OPTIONAL];
|
||||
|
||||
// Optional. gRPC service definition files. If specified, openapi_documents must
|
||||
// not be included.
|
||||
repeated GrpcServiceDefinition grpc_services = 10 [(google.api.field_behavior) = OPTIONAL];
|
||||
|
||||
// Optional. Service Configuration files. At least one must be included when using gRPC
|
||||
// service definitions. See
|
||||
// https://cloud.google.com/endpoints/docs/grpc/grpc-service-config#service_configuration_overview
|
||||
// for the expected file contents.
|
||||
//
|
||||
// If multiple files are specified, the files are merged with the following
|
||||
// rules:
|
||||
// * All singular scalar fields are merged using "last one wins" semantics in
|
||||
// the order of the files uploaded.
|
||||
// * Repeated fields are concatenated.
|
||||
// * Singular embedded messages are merged using these rules for nested
|
||||
// fields.
|
||||
repeated File managed_service_configs = 11 [(google.api.field_behavior) = OPTIONAL];
|
||||
}
|
||||
|
||||
// A Gateway is an API-aware HTTP proxy. It performs API-Method and/or
|
||||
// API-Consumer specific actions based on an API Config such as authentication,
|
||||
// policy enforcement, and backend selection.
|
||||
message Gateway {
|
||||
option (google.api.resource) = {
|
||||
type: "apigateway.googleapis.com/Gateway"
|
||||
pattern: "projects/{project}/locations/{location}/gateways/{gateway}"
|
||||
};
|
||||
|
||||
// All the possible Gateway states.
|
||||
enum State {
|
||||
// Gateway does not have a state yet.
|
||||
STATE_UNSPECIFIED = 0;
|
||||
|
||||
// Gateway is being created.
|
||||
CREATING = 1;
|
||||
|
||||
// Gateway is running and ready for requests.
|
||||
ACTIVE = 2;
|
||||
|
||||
// Gateway creation failed.
|
||||
FAILED = 3;
|
||||
|
||||
// Gateway is being deleted.
|
||||
DELETING = 4;
|
||||
|
||||
// Gateway is being updated.
|
||||
UPDATING = 5;
|
||||
}
|
||||
|
||||
// Output only. Resource name of the Gateway.
|
||||
// Format: projects/{project}/locations/{location}/gateways/{gateway}
|
||||
string name = 1 [(google.api.field_behavior) = OUTPUT_ONLY];
|
||||
|
||||
// Output only. Created time.
|
||||
google.protobuf.Timestamp create_time = 2 [(google.api.field_behavior) = OUTPUT_ONLY];
|
||||
|
||||
// Output only. Updated time.
|
||||
google.protobuf.Timestamp update_time = 3 [(google.api.field_behavior) = OUTPUT_ONLY];
|
||||
|
||||
// Optional. Resource labels to represent user-provided metadata.
|
||||
// Refer to cloud documentation on labels for more details.
|
||||
// https://cloud.google.com/compute/docs/labeling-resources
|
||||
map<string, string> labels = 4 [(google.api.field_behavior) = OPTIONAL];
|
||||
|
||||
// Optional. Display name.
|
||||
string display_name = 5 [(google.api.field_behavior) = OPTIONAL];
|
||||
|
||||
// Required. Resource name of the API Config for this Gateway.
|
||||
// Format: projects/{project}/locations/global/apis/{api}/configs/{apiConfig}
|
||||
string api_config = 6 [
|
||||
(google.api.field_behavior) = REQUIRED,
|
||||
(google.api.resource_reference) = {
|
||||
type: "apigateway.googleapis.com/ApiConfig"
|
||||
}
|
||||
];
|
||||
|
||||
// Output only. The current state of the Gateway.
|
||||
State state = 7 [(google.api.field_behavior) = OUTPUT_ONLY];
|
||||
|
||||
// Output only. The default API Gateway host name of the form
|
||||
// `{gateway_id}-{hash}.{region_code}.gateway.dev`.
|
||||
string default_hostname = 9 [(google.api.field_behavior) = OUTPUT_ONLY];
|
||||
}
|
||||
|
||||
// Request message for ApiGatewayService.ListGateways
|
||||
message ListGatewaysRequest {
|
||||
// Required. Parent resource of the Gateway, of the form:
|
||||
// `projects/*/locations/*`
|
||||
string parent = 1 [
|
||||
(google.api.field_behavior) = REQUIRED,
|
||||
(google.api.resource_reference) = {
|
||||
type: "locations.googleapis.com/Location"
|
||||
}
|
||||
];
|
||||
|
||||
// Page size.
|
||||
int32 page_size = 2;
|
||||
|
||||
// Page token.
|
||||
string page_token = 3;
|
||||
|
||||
// Filter.
|
||||
string filter = 4;
|
||||
|
||||
// Order by parameters.
|
||||
string order_by = 5;
|
||||
}
|
||||
|
||||
// Response message for ApiGatewayService.ListGateways
|
||||
message ListGatewaysResponse {
|
||||
// Gateways.
|
||||
repeated Gateway gateways = 1;
|
||||
|
||||
// Next page token.
|
||||
string next_page_token = 2;
|
||||
|
||||
// Locations that could not be reached.
|
||||
repeated string unreachable_locations = 3;
|
||||
}
|
||||
|
||||
// Request message for ApiGatewayService.GetGateway
|
||||
message GetGatewayRequest {
|
||||
// Required. Resource name of the form:
|
||||
// `projects/*/locations/*/gateways/*`
|
||||
string name = 1 [
|
||||
(google.api.field_behavior) = REQUIRED,
|
||||
(google.api.resource_reference) = {
|
||||
type: "apigateway.googleapis.com/Gateway"
|
||||
}
|
||||
];
|
||||
}
|
||||
|
||||
// Request message for ApiGatewayService.CreateGateway
|
||||
message CreateGatewayRequest {
|
||||
// Required. Parent resource of the Gateway, of the form:
|
||||
// `projects/*/locations/*`
|
||||
string parent = 1 [
|
||||
(google.api.field_behavior) = REQUIRED,
|
||||
(google.api.resource_reference) = {
|
||||
type: "locations.googleapis.com/Location"
|
||||
}
|
||||
];
|
||||
|
||||
// Required. Identifier to assign to the Gateway. Must be unique within scope of
|
||||
// the parent resource.
|
||||
string gateway_id = 2 [(google.api.field_behavior) = REQUIRED];
|
||||
|
||||
// Required. Gateway resource.
|
||||
Gateway gateway = 3 [(google.api.field_behavior) = REQUIRED];
|
||||
}
|
||||
|
||||
// Request message for ApiGatewayService.UpdateGateway
|
||||
message UpdateGatewayRequest {
|
||||
// Field mask is used to specify the fields to be overwritten in the
|
||||
// Gateway resource by the update.
|
||||
// The fields specified in the update_mask are relative to the resource, not
|
||||
// the full request. A field will be overwritten if it is in the mask. If the
|
||||
// user does not provide a mask then all fields will be overwritten.
|
||||
google.protobuf.FieldMask update_mask = 1;
|
||||
|
||||
// Required. Gateway resource.
|
||||
Gateway gateway = 2 [(google.api.field_behavior) = REQUIRED];
|
||||
}
|
||||
|
||||
// Request message for ApiGatewayService.DeleteGateway
|
||||
message DeleteGatewayRequest {
|
||||
// Required. Resource name of the form:
|
||||
// `projects/*/locations/*/gateways/*`
|
||||
string name = 1 [
|
||||
(google.api.field_behavior) = REQUIRED,
|
||||
(google.api.resource_reference) = {
|
||||
type: "apigateway.googleapis.com/Gateway"
|
||||
}
|
||||
];
|
||||
}
|
||||
|
||||
// Request message for ApiGatewayService.ListApis
|
||||
message ListApisRequest {
|
||||
// Required. Parent resource of the API, of the form:
|
||||
// `projects/*/locations/global`
|
||||
string parent = 1 [
|
||||
(google.api.field_behavior) = REQUIRED,
|
||||
(google.api.resource_reference) = {
|
||||
type: "locations.googleapis.com/Location"
|
||||
}
|
||||
];
|
||||
|
||||
// Page size.
|
||||
int32 page_size = 2;
|
||||
|
||||
// Page token.
|
||||
string page_token = 3;
|
||||
|
||||
// Filter.
|
||||
string filter = 4;
|
||||
|
||||
// Order by parameters.
|
||||
string order_by = 5;
|
||||
}
|
||||
|
||||
// Response message for ApiGatewayService.ListApis
|
||||
message ListApisResponse {
|
||||
// APIs.
|
||||
repeated Api apis = 1;
|
||||
|
||||
// Next page token.
|
||||
string next_page_token = 2;
|
||||
|
||||
// Locations that could not be reached.
|
||||
repeated string unreachable_locations = 3;
|
||||
}
|
||||
|
||||
// Request message for ApiGatewayService.GetApi
|
||||
message GetApiRequest {
|
||||
// Required. Resource name of the form:
|
||||
// `projects/*/locations/global/apis/*`
|
||||
string name = 1 [
|
||||
(google.api.field_behavior) = REQUIRED,
|
||||
(google.api.resource_reference) = {
|
||||
type: "apigateway.googleapis.com/Api"
|
||||
}
|
||||
];
|
||||
}
|
||||
|
||||
// Request message for ApiGatewayService.CreateApi
|
||||
message CreateApiRequest {
|
||||
// Required. Parent resource of the API, of the form:
|
||||
// `projects/*/locations/global`
|
||||
string parent = 1 [
|
||||
(google.api.field_behavior) = REQUIRED,
|
||||
(google.api.resource_reference) = {
|
||||
type: "locations.googleapis.com/Location"
|
||||
}
|
||||
];
|
||||
|
||||
// Required. Identifier to assign to the API. Must be unique within scope of
|
||||
// the parent resource.
|
||||
string api_id = 2 [(google.api.field_behavior) = REQUIRED];
|
||||
|
||||
// Required. API resource.
|
||||
Api api = 3 [(google.api.field_behavior) = REQUIRED];
|
||||
}
|
||||
|
||||
// Request message for ApiGatewayService.UpdateApi
|
||||
message UpdateApiRequest {
|
||||
// Field mask is used to specify the fields to be overwritten in the
|
||||
// Api resource by the update.
|
||||
// The fields specified in the update_mask are relative to the resource, not
|
||||
// the full request. A field will be overwritten if it is in the mask. If the
|
||||
// user does not provide a mask then all fields will be overwritten.
|
||||
google.protobuf.FieldMask update_mask = 1;
|
||||
|
||||
// Required. API resource.
|
||||
Api api = 2 [(google.api.field_behavior) = REQUIRED];
|
||||
}
|
||||
|
||||
// Request message for ApiGatewayService.DeleteApi
|
||||
message DeleteApiRequest {
|
||||
// Required. Resource name of the form:
|
||||
// `projects/*/locations/global/apis/*`
|
||||
string name = 1 [
|
||||
(google.api.field_behavior) = REQUIRED,
|
||||
(google.api.resource_reference) = {
|
||||
type: "apigateway.googleapis.com/Api"
|
||||
}
|
||||
];
|
||||
}
|
||||
|
||||
// Request message for ApiGatewayService.ListApiConfigs
|
||||
message ListApiConfigsRequest {
|
||||
// Required. Parent resource of the API Config, of the form:
|
||||
// `projects/*/locations/global/apis/*`
|
||||
string parent = 1 [
|
||||
(google.api.field_behavior) = REQUIRED,
|
||||
(google.api.resource_reference) = {
|
||||
type: "apigateway.googleapis.com/Api"
|
||||
}
|
||||
];
|
||||
|
||||
// Page size.
|
||||
int32 page_size = 2;
|
||||
|
||||
// Page token.
|
||||
string page_token = 3;
|
||||
|
||||
// Filter.
|
||||
string filter = 4;
|
||||
|
||||
// Order by parameters.
|
||||
string order_by = 5;
|
||||
}
|
||||
|
||||
// Response message for ApiGatewayService.ListApiConfigs
|
||||
message ListApiConfigsResponse {
|
||||
// API Configs.
|
||||
repeated ApiConfig api_configs = 1;
|
||||
|
||||
// Next page token.
|
||||
string next_page_token = 2;
|
||||
|
||||
// Locations that could not be reached.
|
||||
repeated string unreachable_locations = 3;
|
||||
}
|
||||
|
||||
// Request message for ApiGatewayService.GetApiConfig
|
||||
message GetApiConfigRequest {
|
||||
// Enum to control which fields should be included in the response.
|
||||
enum ConfigView {
|
||||
CONFIG_VIEW_UNSPECIFIED = 0;
|
||||
|
||||
// Do not include configuration source files.
|
||||
BASIC = 1;
|
||||
|
||||
// Include configuration source files.
|
||||
FULL = 2;
|
||||
}
|
||||
|
||||
// Required. Resource name of the form:
|
||||
// `projects/*/locations/global/apis/*/configs/*`
|
||||
string name = 1 [
|
||||
(google.api.field_behavior) = REQUIRED,
|
||||
(google.api.resource_reference) = {
|
||||
type: "apigateway.googleapis.com/ApiConfig"
|
||||
}
|
||||
];
|
||||
|
||||
// Specifies which fields of the API Config are returned in the response.
|
||||
// Defaults to `BASIC` view.
|
||||
ConfigView view = 3;
|
||||
}
|
||||
|
||||
// Request message for ApiGatewayService.CreateApiConfig
|
||||
message CreateApiConfigRequest {
|
||||
// Required. Parent resource of the API Config, of the form:
|
||||
// `projects/*/locations/global/apis/*`
|
||||
string parent = 1 [
|
||||
(google.api.field_behavior) = REQUIRED,
|
||||
(google.api.resource_reference) = {
|
||||
type: "apigateway.googleapis.com/Api"
|
||||
}
|
||||
];
|
||||
|
||||
// Required. Identifier to assign to the API Config. Must be unique within scope of
|
||||
// the parent resource.
|
||||
string api_config_id = 2 [(google.api.field_behavior) = REQUIRED];
|
||||
|
||||
// Required. API resource.
|
||||
ApiConfig api_config = 3 [(google.api.field_behavior) = REQUIRED];
|
||||
}
|
||||
|
||||
// Request message for ApiGatewayService.UpdateApiConfig
|
||||
message UpdateApiConfigRequest {
|
||||
// Field mask is used to specify the fields to be overwritten in the
|
||||
// ApiConfig resource by the update.
|
||||
// The fields specified in the update_mask are relative to the resource, not
|
||||
// the full request. A field will be overwritten if it is in the mask. If the
|
||||
// user does not provide a mask then all fields will be overwritten.
|
||||
google.protobuf.FieldMask update_mask = 1;
|
||||
|
||||
// Required. API Config resource.
|
||||
ApiConfig api_config = 2 [(google.api.field_behavior) = REQUIRED];
|
||||
}
|
||||
|
||||
// Request message for ApiGatewayService.DeleteApiConfig
|
||||
message DeleteApiConfigRequest {
|
||||
// Required. Resource name of the form:
|
||||
// `projects/*/locations/global/apis/*/configs/*`
|
||||
string name = 1 [
|
||||
(google.api.field_behavior) = REQUIRED,
|
||||
(google.api.resource_reference) = {
|
||||
type: "apigateway.googleapis.com/ApiConfig"
|
||||
}
|
||||
];
|
||||
}
|
||||
|
||||
// Represents the metadata of the long-running operation.
|
||||
message OperationMetadata {
|
||||
// Diagnostic information from configuration processing.
|
||||
message Diagnostic {
|
||||
// Location of the diagnostic.
|
||||
string location = 1;
|
||||
|
||||
// The diagnostic message.
|
||||
string message = 2;
|
||||
}
|
||||
|
||||
// Output only. The time the operation was created.
|
||||
google.protobuf.Timestamp create_time = 1 [(google.api.field_behavior) = OUTPUT_ONLY];
|
||||
|
||||
// Output only. The time the operation finished running.
|
||||
google.protobuf.Timestamp end_time = 2 [(google.api.field_behavior) = OUTPUT_ONLY];
|
||||
|
||||
// Output only. Server-defined resource path for the target of the operation.
|
||||
string target = 3 [(google.api.field_behavior) = OUTPUT_ONLY];
|
||||
|
||||
// Output only. Name of the verb executed by the operation.
|
||||
string verb = 4 [(google.api.field_behavior) = OUTPUT_ONLY];
|
||||
|
||||
// Output only. Human-readable status of the operation, if any.
|
||||
string status_message = 5 [(google.api.field_behavior) = OUTPUT_ONLY];
|
||||
|
||||
// Output only. Identifies whether the user has requested cancellation
|
||||
// of the operation. Operations that have successfully been cancelled
|
||||
// have [Operation.error][] value with a [google.rpc.Status.code][google.rpc.Status.code] of 1,
|
||||
// corresponding to `Code.CANCELLED`.
|
||||
bool requested_cancellation = 6 [(google.api.field_behavior) = OUTPUT_ONLY];
|
||||
|
||||
// Output only. API version used to start the operation.
|
||||
string api_version = 7 [(google.api.field_behavior) = OUTPUT_ONLY];
|
||||
|
||||
// Output only. Diagnostics generated during processing of configuration source files.
|
||||
repeated Diagnostic diagnostics = 8 [(google.api.field_behavior) = OUTPUT_ONLY];
|
||||
}
|
||||
|
|
@ -0,0 +1,54 @@
|
|||
{
|
||||
"methodConfig": [
|
||||
{
|
||||
"name": [
|
||||
{
|
||||
"service": "google.cloud.apigateway.v1.ApiGatewayService",
|
||||
"method": "CreateApi"
|
||||
},
|
||||
{
|
||||
"service": "google.cloud.apigateway.v1.ApiGatewayService",
|
||||
"method": "CreateApiConfig"
|
||||
},
|
||||
{
|
||||
"service": "google.cloud.apigateway.v1.ApiGatewayService",
|
||||
"method": "CreateGateway"
|
||||
},
|
||||
{
|
||||
"service": "google.cloud.apigateway.v1.ApiGatewayService",
|
||||
"method": "UpdateApi"
|
||||
},
|
||||
{
|
||||
"service": "google.cloud.apigateway.v1.ApiGatewayService",
|
||||
"method": "UpdateApiConfig"
|
||||
},
|
||||
{
|
||||
"service": "google.cloud.apigateway.v1.ApiGatewayService",
|
||||
"method": "UpdateGateway"
|
||||
},
|
||||
{
|
||||
"service": "google.cloud.apigateway.v1.ApiGatewayService",
|
||||
"method": "DeleteApi"
|
||||
},
|
||||
{
|
||||
"service": "google.cloud.apigateway.v1.ApiGatewayService",
|
||||
"method": "DeleteApiConfig"
|
||||
},
|
||||
{
|
||||
"service": "google.cloud.apigateway.v1.ApiGatewayService",
|
||||
"method": "DeleteGateway"
|
||||
}
|
||||
],
|
||||
"timeout": "60s",
|
||||
"retryPolicy": {
|
||||
"initialBackoff": "1s",
|
||||
"maxBackoff": "60s",
|
||||
"backoffMultiplier": 2,
|
||||
"retryableStatusCodes": [
|
||||
"UNKNOWN",
|
||||
"UNAVAILABLE"
|
||||
]
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
||||
|
|
@ -0,0 +1,194 @@
|
|||
// Copyright 2020 Google LLC
|
||||
//
|
||||
// Licensed under the Apache License, Version 2.0 (the "License");
|
||||
// you may not use this file except in compliance with the License.
|
||||
// You may obtain a copy of the License at
|
||||
//
|
||||
// http://www.apache.org/licenses/LICENSE-2.0
|
||||
//
|
||||
// Unless required by applicable law or agreed to in writing, software
|
||||
// distributed under the License is distributed on an "AS IS" BASIS,
|
||||
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
// See the License for the specific language governing permissions and
|
||||
// limitations under the License.
|
||||
|
||||
syntax = "proto3";
|
||||
|
||||
package google.cloud.apigateway.v1;
|
||||
|
||||
import "google/api/annotations.proto";
|
||||
import "google/api/client.proto";
|
||||
import "google/cloud/apigateway/v1/apigateway.proto";
|
||||
import "google/longrunning/operations.proto";
|
||||
|
||||
option go_package = "google.golang.org/genproto/googleapis/cloud/apigateway/v1;apigateway";
|
||||
option java_multiple_files = true;
|
||||
option java_package = "com.google.cloud.apigateway.v1";
|
||||
|
||||
// The API Gateway Service is the interface for managing API Gateways.
|
||||
service ApiGatewayService {
|
||||
option (google.api.default_host) = "apigateway.googleapis.com";
|
||||
option (google.api.oauth_scopes) = "https://www.googleapis.com/auth/cloud-platform";
|
||||
|
||||
// Lists Gateways in a given project and location.
|
||||
rpc ListGateways(ListGatewaysRequest) returns (ListGatewaysResponse) {
|
||||
option (google.api.http) = {
|
||||
get: "/v1/{parent=projects/*/locations/*}/gateways"
|
||||
};
|
||||
option (google.api.method_signature) = "parent";
|
||||
}
|
||||
|
||||
// Gets details of a single Gateway.
|
||||
rpc GetGateway(GetGatewayRequest) returns (Gateway) {
|
||||
option (google.api.http) = {
|
||||
get: "/v1/{name=projects/*/locations/*/gateways/*}"
|
||||
};
|
||||
option (google.api.method_signature) = "name";
|
||||
}
|
||||
|
||||
// Creates a new Gateway in a given project and location.
|
||||
rpc CreateGateway(CreateGatewayRequest) returns (google.longrunning.Operation) {
|
||||
option (google.api.http) = {
|
||||
post: "/v1/{parent=projects/*/locations/*}/gateways"
|
||||
body: "gateway"
|
||||
};
|
||||
option (google.api.method_signature) = "parent,gateway,gateway_id";
|
||||
option (google.longrunning.operation_info) = {
|
||||
response_type: "Gateway"
|
||||
metadata_type: "OperationMetadata"
|
||||
};
|
||||
}
|
||||
|
||||
// Updates the parameters of a single Gateway.
|
||||
rpc UpdateGateway(UpdateGatewayRequest) returns (google.longrunning.Operation) {
|
||||
option (google.api.http) = {
|
||||
patch: "/v1/{gateway.name=projects/*/locations/*/gateways/*}"
|
||||
body: "gateway"
|
||||
};
|
||||
option (google.api.method_signature) = "gateway,update_mask";
|
||||
option (google.longrunning.operation_info) = {
|
||||
response_type: "Gateway"
|
||||
metadata_type: "OperationMetadata"
|
||||
};
|
||||
}
|
||||
|
||||
// Deletes a single Gateway.
|
||||
rpc DeleteGateway(DeleteGatewayRequest) returns (google.longrunning.Operation) {
|
||||
option (google.api.http) = {
|
||||
delete: "/v1/{name=projects/*/locations/*/gateways/*}"
|
||||
};
|
||||
option (google.api.method_signature) = "name";
|
||||
option (google.longrunning.operation_info) = {
|
||||
response_type: "google.protobuf.Empty"
|
||||
metadata_type: "OperationMetadata"
|
||||
};
|
||||
}
|
||||
|
||||
// Lists Apis in a given project and location.
|
||||
rpc ListApis(ListApisRequest) returns (ListApisResponse) {
|
||||
option (google.api.http) = {
|
||||
get: "/v1/{parent=projects/*/locations/*}/apis"
|
||||
};
|
||||
option (google.api.method_signature) = "parent";
|
||||
}
|
||||
|
||||
// Gets details of a single Api.
|
||||
rpc GetApi(GetApiRequest) returns (Api) {
|
||||
option (google.api.http) = {
|
||||
get: "/v1/{name=projects/*/locations/*/apis/*}"
|
||||
};
|
||||
option (google.api.method_signature) = "name";
|
||||
}
|
||||
|
||||
// Creates a new Api in a given project and location.
|
||||
rpc CreateApi(CreateApiRequest) returns (google.longrunning.Operation) {
|
||||
option (google.api.http) = {
|
||||
post: "/v1/{parent=projects/*/locations/*}/apis"
|
||||
body: "api"
|
||||
};
|
||||
option (google.api.method_signature) = "parent,api,api_id";
|
||||
option (google.longrunning.operation_info) = {
|
||||
response_type: "Api"
|
||||
metadata_type: "OperationMetadata"
|
||||
};
|
||||
}
|
||||
|
||||
// Updates the parameters of a single Api.
|
||||
rpc UpdateApi(UpdateApiRequest) returns (google.longrunning.Operation) {
|
||||
option (google.api.http) = {
|
||||
patch: "/v1/{api.name=projects/*/locations/*/apis/*}"
|
||||
body: "api"
|
||||
};
|
||||
option (google.api.method_signature) = "api,update_mask";
|
||||
option (google.longrunning.operation_info) = {
|
||||
response_type: "Api"
|
||||
metadata_type: "OperationMetadata"
|
||||
};
|
||||
}
|
||||
|
||||
// Deletes a single Api.
|
||||
rpc DeleteApi(DeleteApiRequest) returns (google.longrunning.Operation) {
|
||||
option (google.api.http) = {
|
||||
delete: "/v1/{name=projects/*/locations/*/apis/*}"
|
||||
};
|
||||
option (google.api.method_signature) = "name";
|
||||
option (google.longrunning.operation_info) = {
|
||||
response_type: "google.protobuf.Empty"
|
||||
metadata_type: "OperationMetadata"
|
||||
};
|
||||
}
|
||||
|
||||
// Lists ApiConfigs in a given project and location.
|
||||
rpc ListApiConfigs(ListApiConfigsRequest) returns (ListApiConfigsResponse) {
|
||||
option (google.api.http) = {
|
||||
get: "/v1/{parent=projects/*/locations/*/apis/*}/configs"
|
||||
};
|
||||
option (google.api.method_signature) = "parent";
|
||||
}
|
||||
|
||||
// Gets details of a single ApiConfig.
|
||||
rpc GetApiConfig(GetApiConfigRequest) returns (ApiConfig) {
|
||||
option (google.api.http) = {
|
||||
get: "/v1/{name=projects/*/locations/*/apis/*/configs/*}"
|
||||
};
|
||||
option (google.api.method_signature) = "name";
|
||||
}
|
||||
|
||||
// Creates a new ApiConfig in a given project and location.
|
||||
rpc CreateApiConfig(CreateApiConfigRequest) returns (google.longrunning.Operation) {
|
||||
option (google.api.http) = {
|
||||
post: "/v1/{parent=projects/*/locations/*/apis/*}/configs"
|
||||
body: "api_config"
|
||||
};
|
||||
option (google.api.method_signature) = "parent,api_config,api_config_id";
|
||||
option (google.longrunning.operation_info) = {
|
||||
response_type: "ApiConfig"
|
||||
metadata_type: "OperationMetadata"
|
||||
};
|
||||
}
|
||||
|
||||
// Updates the parameters of a single ApiConfig.
|
||||
rpc UpdateApiConfig(UpdateApiConfigRequest) returns (google.longrunning.Operation) {
|
||||
option (google.api.http) = {
|
||||
patch: "/v1/{api_config.name=projects/*/locations/*/apis/*/configs/*}"
|
||||
body: "api_config"
|
||||
};
|
||||
option (google.api.method_signature) = "api_config,update_mask";
|
||||
option (google.longrunning.operation_info) = {
|
||||
response_type: "ApiConfig"
|
||||
metadata_type: "OperationMetadata"
|
||||
};
|
||||
}
|
||||
|
||||
// Deletes a single ApiConfig.
|
||||
rpc DeleteApiConfig(DeleteApiConfigRequest) returns (google.longrunning.Operation) {
|
||||
option (google.api.http) = {
|
||||
delete: "/v1/{name=projects/*/locations/*/apis/*/configs/*}"
|
||||
};
|
||||
option (google.api.method_signature) = "name";
|
||||
option (google.longrunning.operation_info) = {
|
||||
response_type: "google.protobuf.Empty"
|
||||
metadata_type: "OperationMetadata"
|
||||
};
|
||||
}
|
||||
}
|
||||
|
|
@ -0,0 +1,61 @@
|
|||
type: google.api.Service
|
||||
config_version: 3
|
||||
name: apigateway.googleapis.com
|
||||
title: API Gateway API
|
||||
|
||||
apis:
|
||||
- name: google.cloud.apigateway.v1.ApiGatewayService
|
||||
|
||||
types:
|
||||
- name: google.cloud.apigateway.v1.OperationMetadata
|
||||
|
||||
documentation:
|
||||
rules:
|
||||
- selector: google.iam.v1.IAMPolicy.GetIamPolicy
|
||||
description: |-
|
||||
Gets the access control policy for a resource. Returns an empty policy
|
||||
if the resource exists and does not have a policy set.
|
||||
|
||||
- selector: google.iam.v1.IAMPolicy.SetIamPolicy
|
||||
description: |-
|
||||
Sets the access control policy on the specified resource. Replaces
|
||||
any existing policy.
|
||||
|
||||
Can return `NOT_FOUND`, `INVALID_ARGUMENT`, and `PERMISSION_DENIED`
|
||||
errors.
|
||||
|
||||
- selector: google.iam.v1.IAMPolicy.TestIamPermissions
|
||||
description: |-
|
||||
Returns permissions that a caller has on the specified resource. If the
|
||||
resource does not exist, this will return an empty set of
|
||||
permissions, not a `NOT_FOUND` error.
|
||||
|
||||
Note: This operation is designed to be used for building
|
||||
permission-aware UIs and command-line tools, not for authorization
|
||||
checking. This operation may "fail open" without warning.
|
||||
|
||||
backend:
|
||||
rules:
|
||||
- selector: 'google.cloud.apigateway.v1.ApiGatewayService.*'
|
||||
deadline: 60.0
|
||||
- selector: 'google.iam.v1.IAMPolicy.*'
|
||||
deadline: 60.0
|
||||
- selector: 'google.longrunning.Operations.*'
|
||||
deadline: 60.0
|
||||
- selector: google.longrunning.Operations.GetOperation
|
||||
deadline: 5.0
|
||||
|
||||
authentication:
|
||||
rules:
|
||||
- selector: 'google.cloud.apigateway.v1.ApiGatewayService.*'
|
||||
oauth:
|
||||
canonical_scopes: |-
|
||||
https://www.googleapis.com/auth/cloud-platform
|
||||
- selector: 'google.iam.v1.IAMPolicy.*'
|
||||
oauth:
|
||||
canonical_scopes: |-
|
||||
https://www.googleapis.com/auth/cloud-platform
|
||||
- selector: 'google.longrunning.Operations.*'
|
||||
oauth:
|
||||
canonical_scopes: |-
|
||||
https://www.googleapis.com/auth/cloud-platform
|
||||
Loading…
Reference in New Issue