service.proto 6.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191
  1. // Copyright 2023 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. syntax = "proto3";
  15. package google.api;
  16. import "google/api/auth.proto";
  17. import "google/api/backend.proto";
  18. import "google/api/billing.proto";
  19. import "google/api/client.proto";
  20. import "google/api/context.proto";
  21. import "google/api/control.proto";
  22. import "google/api/documentation.proto";
  23. import "google/api/endpoint.proto";
  24. import "google/api/http.proto";
  25. import "google/api/log.proto";
  26. import "google/api/logging.proto";
  27. import "google/api/metric.proto";
  28. import "google/api/monitored_resource.proto";
  29. import "google/api/monitoring.proto";
  30. import "google/api/quota.proto";
  31. import "google/api/source_info.proto";
  32. import "google/api/system_parameter.proto";
  33. import "google/api/usage.proto";
  34. import "google/protobuf/api.proto";
  35. import "google/protobuf/type.proto";
  36. import "google/protobuf/wrappers.proto";
  37. option go_package = "google.golang.org/genproto/googleapis/api/serviceconfig;serviceconfig";
  38. option java_multiple_files = true;
  39. option java_outer_classname = "ServiceProto";
  40. option java_package = "com.google.api";
  41. option objc_class_prefix = "GAPI";
  42. // `Service` is the root object of Google API service configuration (service
  43. // config). It describes the basic information about a logical service,
  44. // such as the service name and the user-facing title, and delegates other
  45. // aspects to sub-sections. Each sub-section is either a proto message or a
  46. // repeated proto message that configures a specific aspect, such as auth.
  47. // For more information, see each proto message definition.
  48. //
  49. // Example:
  50. //
  51. // type: google.api.Service
  52. // name: calendar.googleapis.com
  53. // title: Google Calendar API
  54. // apis:
  55. // - name: google.calendar.v3.Calendar
  56. //
  57. // visibility:
  58. // rules:
  59. // - selector: "google.calendar.v3.*"
  60. // restriction: PREVIEW
  61. // backend:
  62. // rules:
  63. // - selector: "google.calendar.v3.*"
  64. // address: calendar.example.com
  65. //
  66. // authentication:
  67. // providers:
  68. // - id: google_calendar_auth
  69. // jwks_uri: https://www.googleapis.com/oauth2/v1/certs
  70. // issuer: https://securetoken.google.com
  71. // rules:
  72. // - selector: "*"
  73. // requirements:
  74. // provider_id: google_calendar_auth
  75. message Service {
  76. // The service name, which is a DNS-like logical identifier for the
  77. // service, such as `calendar.googleapis.com`. The service name
  78. // typically goes through DNS verification to make sure the owner
  79. // of the service also owns the DNS name.
  80. string name = 1;
  81. // The product title for this service, it is the name displayed in Google
  82. // Cloud Console.
  83. string title = 2;
  84. // The Google project that owns this service.
  85. string producer_project_id = 22;
  86. // A unique ID for a specific instance of this message, typically assigned
  87. // by the client for tracking purpose. Must be no longer than 63 characters
  88. // and only lower case letters, digits, '.', '_' and '-' are allowed. If
  89. // empty, the server may choose to generate one instead.
  90. string id = 33;
  91. // A list of API interfaces exported by this service. Only the `name` field
  92. // of the [google.protobuf.Api][google.protobuf.Api] needs to be provided by
  93. // the configuration author, as the remaining fields will be derived from the
  94. // IDL during the normalization process. It is an error to specify an API
  95. // interface here which cannot be resolved against the associated IDL files.
  96. repeated google.protobuf.Api apis = 3;
  97. // A list of all proto message types included in this API service.
  98. // Types referenced directly or indirectly by the `apis` are automatically
  99. // included. Messages which are not referenced but shall be included, such as
  100. // types used by the `google.protobuf.Any` type, should be listed here by
  101. // name by the configuration author. Example:
  102. //
  103. // types:
  104. // - name: google.protobuf.Int32
  105. repeated google.protobuf.Type types = 4;
  106. // A list of all enum types included in this API service. Enums referenced
  107. // directly or indirectly by the `apis` are automatically included. Enums
  108. // which are not referenced but shall be included should be listed here by
  109. // name by the configuration author. Example:
  110. //
  111. // enums:
  112. // - name: google.someapi.v1.SomeEnum
  113. repeated google.protobuf.Enum enums = 5;
  114. // Additional API documentation.
  115. Documentation documentation = 6;
  116. // API backend configuration.
  117. Backend backend = 8;
  118. // HTTP configuration.
  119. Http http = 9;
  120. // Quota configuration.
  121. Quota quota = 10;
  122. // Auth configuration.
  123. Authentication authentication = 11;
  124. // Context configuration.
  125. Context context = 12;
  126. // Configuration controlling usage of this service.
  127. Usage usage = 15;
  128. // Configuration for network endpoints. If this is empty, then an endpoint
  129. // with the same name as the service is automatically generated to service all
  130. // defined APIs.
  131. repeated Endpoint endpoints = 18;
  132. // Configuration for the service control plane.
  133. Control control = 21;
  134. // Defines the logs used by this service.
  135. repeated LogDescriptor logs = 23;
  136. // Defines the metrics used by this service.
  137. repeated MetricDescriptor metrics = 24;
  138. // Defines the monitored resources used by this service. This is required
  139. // by the [Service.monitoring][google.api.Service.monitoring] and
  140. // [Service.logging][google.api.Service.logging] configurations.
  141. repeated MonitoredResourceDescriptor monitored_resources = 25;
  142. // Billing configuration.
  143. Billing billing = 26;
  144. // Logging configuration.
  145. Logging logging = 27;
  146. // Monitoring configuration.
  147. Monitoring monitoring = 28;
  148. // System parameter configuration.
  149. SystemParameters system_parameters = 29;
  150. // Output only. The source information for this configuration if available.
  151. SourceInfo source_info = 37;
  152. // Settings for [Google Cloud Client
  153. // libraries](https://cloud.google.com/apis/docs/cloud-client-libraries)
  154. // generated from APIs defined as protocol buffers.
  155. Publishing publishing = 45;
  156. // Obsolete. Do not use.
  157. //
  158. // This field has no semantic meaning. The service config compiler always
  159. // sets this field to `3`.
  160. google.protobuf.UInt32Value config_version = 20;
  161. }