1// Copyright 2020 Google LLC. 2// 3// Licensed under the Apache License, Version 2.0 (the "License"); 4// you may not use this file except in compliance with the License. 5// You may obtain a copy of the License at 6// 7// http://www.apache.org/licenses/LICENSE-2.0 8// 9// Unless required by applicable law or agreed to in writing, software 10// distributed under the License is distributed on an "AS IS" BASIS, 11// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12// See the License for the specific language governing permissions and 13// limitations under the License. 14// 15 16syntax = "proto3"; 17 18package google.gapic.metadata; 19 20option csharp_namespace = "Google.Gapic.Metadata"; 21option go_package = "google.golang.org/genproto/googleapis/gapic/metadata;metadata"; 22option java_multiple_files = true; 23option java_outer_classname = "GapicMetadataProto"; 24option java_package = "com.google.gapic.metadata"; 25option php_namespace = "Google\\Gapic\\Metadata"; 26option ruby_package = "Google::Gapic::Metadata"; 27 28// Metadata about a GAPIC library for a specific combination of API, version, and 29// computer language. 30message GapicMetadata { 31 // Schema version of this proto. Current value: 1.0 32 string schema = 1; 33 34 // Any human-readable comments to be included in this file. 35 string comment = 2; 36 37 // Computer language of this generated language. This must be 38 // spelled out as it spoken in English, with no capitalization or 39 // separators (e.g. "csharp", "nodejs"). 40 string language = 3; 41 42 // The proto package containing the API definition for which this 43 // GAPIC library was generated. 44 string proto_package = 4; 45 46 // The language-specific library package for this GAPIC library. 47 string library_package = 5; 48 49 // A map from each proto-defined service to ServiceForTransports, 50 // which allows listing information about transport-specific 51 // implementations of the service. 52 // 53 // The key is the name of the service as it appears in the .proto 54 // file. 55 map<string, ServiceForTransport> services = 6; 56 57 // A map from a transport name to ServiceAsClient, which allows 58 // listing information about the client objects that implement the 59 // parent RPC service for the specified transport. 60 // 61 // The key name is the transport, lower-cased with no separators 62 // (e.g. "grpc", "rest"). 63 message ServiceForTransport { 64 map<string, ServiceAsClient> clients = 1; 65 } 66 67 // Information about a specific client implementing a proto-defined service. 68 message ServiceAsClient { 69 // The name of the library client formatted as it appears in the source code 70 string library_client = 1; 71 72 // A mapping from each proto-defined RPC name to the the list of 73 // methods in library_client that implement it. There can be more 74 // than one library_client method for each RPC. RPCs with no 75 // library_client methods need not be included. 76 // 77 // The key name is the name of the RPC as defined and formated in 78 // the proto file. 79 map<string, MethodList> rpcs = 2; 80 } 81 82 // List of GAPIC client methods implementing the proto-defined RPC 83 // for the transport and service specified in the containing 84 // structures. 85 message MethodList { 86 // List of methods for a specific proto-service client in the 87 // GAPIC. These names should be formatted as they appear in the 88 // source code. 89 repeated string methods = 1; 90 } 91 92} 93