Public interface definitions of Google APIs. Topics (grpc依赖)
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 

632 lines
20 KiB

// 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.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";
option csharp_namespace = "Google.Cloud.ApiGateway.V1";
option go_package = "cloud.google.com/go/apigateway/apiv1/apigatewaypb;apigatewaypb";
option java_multiple_files = true;
option java_package = "com.google.cloud.apigateway.v1";
option php_namespace = "Google\\Cloud\\ApiGateway\\V1";
option ruby_package = "Google::Cloud::ApiGateway::V1";
option (google.api.resource_definition) = {
type: "iam.googleapis.com/ServiceAccount"
pattern: "projects/{project}/serviceAccounts/{service_account}"
};
option (google.api.resource_definition) = {
type: "servicemanagement.googleapis.com/ManagedService"
pattern: "services/{service}"
};
option (google.api.resource_definition) = {
type: "servicemanagement.googleapis.com/Service"
pattern: "services/{service}/configs/{config}"
};
// 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,
(google.api.resource_reference) = {
type: "servicemanagement.googleapis.com/ManagedService"
}
];
// 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];
}