parent
360a0e1773
commit
48fa7512d3
5 changed files with 1100 additions and 0 deletions
@ -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