google-api-client 0.24.3 → 0.25.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (262) hide show
  1. checksums.yaml +4 -4
  2. data/.travis.yml +0 -2
  3. data/CHANGELOG.md +99 -0
  4. data/Gemfile +1 -0
  5. data/generated/google/apis/abusiveexperiencereport_v1.rb +2 -2
  6. data/generated/google/apis/abusiveexperiencereport_v1/classes.rb +0 -1
  7. data/generated/google/apis/abusiveexperiencereport_v1/service.rb +1 -1
  8. data/generated/google/apis/{content_v2sandbox.rb → accesscontextmanager_v1beta.rb} +11 -12
  9. data/generated/google/apis/accesscontextmanager_v1beta/classes.rb +697 -0
  10. data/generated/google/apis/accesscontextmanager_v1beta/representations.rb +240 -0
  11. data/generated/google/apis/accesscontextmanager_v1beta/service.rb +666 -0
  12. data/generated/google/apis/adexchangebuyer2_v2beta1.rb +1 -1
  13. data/generated/google/apis/adexchangebuyer2_v2beta1/classes.rb +16 -0
  14. data/generated/google/apis/adexchangebuyer2_v2beta1/representations.rb +2 -0
  15. data/generated/google/apis/adexchangebuyer2_v2beta1/service.rb +2 -2
  16. data/generated/google/apis/adexperiencereport_v1.rb +2 -2
  17. data/generated/google/apis/adexperiencereport_v1/service.rb +1 -1
  18. data/generated/google/apis/alertcenter_v1beta1.rb +4 -3
  19. data/generated/google/apis/alertcenter_v1beta1/classes.rb +9 -2
  20. data/generated/google/apis/alertcenter_v1beta1/representations.rb +1 -0
  21. data/generated/google/apis/alertcenter_v1beta1/service.rb +3 -2
  22. data/generated/google/apis/androiddeviceprovisioning_v1.rb +1 -1
  23. data/generated/google/apis/androiddeviceprovisioning_v1/service.rb +3 -2
  24. data/generated/google/apis/androidenterprise_v1.rb +1 -1
  25. data/generated/google/apis/androidenterprise_v1/classes.rb +68 -6
  26. data/generated/google/apis/androidenterprise_v1/representations.rb +20 -0
  27. data/generated/google/apis/androidmanagement_v1.rb +1 -1
  28. data/generated/google/apis/androidmanagement_v1/classes.rb +92 -0
  29. data/generated/google/apis/androidmanagement_v1/representations.rb +36 -0
  30. data/generated/google/apis/androidpublisher_v1.rb +2 -2
  31. data/generated/google/apis/androidpublisher_v1/service.rb +1 -1
  32. data/generated/google/apis/androidpublisher_v1_1.rb +2 -2
  33. data/generated/google/apis/androidpublisher_v1_1/service.rb +1 -1
  34. data/generated/google/apis/androidpublisher_v2.rb +2 -2
  35. data/generated/google/apis/androidpublisher_v2/service.rb +3 -2
  36. data/generated/google/apis/androidpublisher_v3.rb +2 -2
  37. data/generated/google/apis/androidpublisher_v3/service.rb +3 -2
  38. data/generated/google/apis/appengine_v1.rb +2 -3
  39. data/generated/google/apis/appengine_v1/service.rb +1 -2
  40. data/generated/google/apis/appengine_v1alpha.rb +2 -3
  41. data/generated/google/apis/appengine_v1alpha/service.rb +1 -2
  42. data/generated/google/apis/appengine_v1beta.rb +2 -3
  43. data/generated/google/apis/appengine_v1beta/service.rb +1 -2
  44. data/generated/google/apis/appengine_v1beta4.rb +2 -3
  45. data/generated/google/apis/appengine_v1beta4/service.rb +1 -2
  46. data/generated/google/apis/appengine_v1beta5.rb +2 -3
  47. data/generated/google/apis/appengine_v1beta5/service.rb +1 -2
  48. data/generated/google/apis/bigquery_v2.rb +1 -1
  49. data/generated/google/apis/bigquery_v2/classes.rb +98 -7
  50. data/generated/google/apis/bigquery_v2/representations.rb +35 -0
  51. data/generated/google/apis/bigquerydatatransfer_v1.rb +1 -1
  52. data/generated/google/apis/civicinfo_v2.rb +1 -1
  53. data/generated/google/apis/civicinfo_v2/classes.rb +18 -0
  54. data/generated/google/apis/civicinfo_v2/representations.rb +2 -0
  55. data/generated/google/apis/cloudasset_v1beta1.rb +1 -1
  56. data/generated/google/apis/cloudasset_v1beta1/classes.rb +5 -5
  57. data/generated/google/apis/cloudbuild_v1.rb +1 -1
  58. data/generated/google/apis/cloudbuild_v1/classes.rb +10 -1
  59. data/generated/google/apis/cloudbuild_v1/representations.rb +1 -0
  60. data/generated/google/apis/cloudfunctions_v1.rb +1 -1
  61. data/generated/google/apis/cloudfunctions_v1/classes.rb +418 -0
  62. data/generated/google/apis/cloudfunctions_v1/representations.rb +121 -0
  63. data/generated/google/apis/cloudfunctions_v1/service.rb +107 -0
  64. data/generated/google/apis/cloudfunctions_v1beta2.rb +1 -1
  65. data/generated/google/apis/cloudfunctions_v1beta2/classes.rb +16 -0
  66. data/generated/google/apis/cloudfunctions_v1beta2/representations.rb +1 -0
  67. data/generated/google/apis/cloudkms_v1.rb +1 -1
  68. data/generated/google/apis/cloudresourcemanager_v1.rb +3 -3
  69. data/generated/google/apis/cloudresourcemanager_v1/classes.rb +2 -1
  70. data/generated/google/apis/cloudresourcemanager_v1/service.rb +2 -2
  71. data/generated/google/apis/cloudresourcemanager_v1beta1.rb +3 -3
  72. data/generated/google/apis/cloudresourcemanager_v1beta1/classes.rb +2 -1
  73. data/generated/google/apis/cloudresourcemanager_v1beta1/service.rb +2 -2
  74. data/generated/google/apis/cloudresourcemanager_v2.rb +3 -3
  75. data/generated/google/apis/cloudresourcemanager_v2/service.rb +2 -2
  76. data/generated/google/apis/cloudresourcemanager_v2beta1.rb +3 -3
  77. data/generated/google/apis/cloudresourcemanager_v2beta1/service.rb +2 -2
  78. data/generated/google/apis/cloudsearch_v1.rb +59 -0
  79. data/generated/google/apis/cloudsearch_v1/classes.rb +4697 -0
  80. data/generated/google/apis/cloudsearch_v1/representations.rb +2151 -0
  81. data/generated/google/apis/cloudsearch_v1/service.rb +1351 -0
  82. data/generated/google/apis/cloudtasks_v2beta2.rb +1 -1
  83. data/generated/google/apis/cloudtasks_v2beta2/classes.rb +34 -0
  84. data/generated/google/apis/cloudtasks_v2beta3.rb +1 -1
  85. data/generated/google/apis/cloudtasks_v2beta3/classes.rb +34 -30
  86. data/generated/google/apis/composer_v1beta1.rb +1 -1
  87. data/generated/google/apis/composer_v1beta1/classes.rb +5 -8
  88. data/generated/google/apis/compute_alpha.rb +1 -1
  89. data/generated/google/apis/compute_beta.rb +1 -1
  90. data/generated/google/apis/compute_v1.rb +1 -1
  91. data/generated/google/apis/content_v2.rb +1 -1
  92. data/generated/google/apis/content_v2/classes.rb +197 -69
  93. data/generated/google/apis/content_v2/representations.rb +64 -33
  94. data/generated/google/apis/content_v2/service.rb +1 -1
  95. data/generated/google/apis/dataflow_v1b3.rb +1 -1
  96. data/generated/google/apis/dataflow_v1b3/classes.rb +42 -0
  97. data/generated/google/apis/dataflow_v1b3/representations.rb +17 -0
  98. data/generated/google/apis/dataproc_v1.rb +1 -1
  99. data/generated/google/apis/dataproc_v1/classes.rb +19 -19
  100. data/generated/google/apis/dataproc_v1beta2.rb +1 -1
  101. data/generated/google/apis/dataproc_v1beta2/classes.rb +19 -19
  102. data/generated/google/apis/dialogflow_v2.rb +6 -3
  103. data/generated/google/apis/dialogflow_v2/classes.rb +112 -8
  104. data/generated/google/apis/dialogflow_v2/representations.rb +30 -0
  105. data/generated/google/apis/dialogflow_v2/service.rb +7 -2
  106. data/generated/google/apis/dialogflow_v2beta1.rb +6 -3
  107. data/generated/google/apis/dialogflow_v2beta1/classes.rb +116 -8
  108. data/generated/google/apis/dialogflow_v2beta1/representations.rb +30 -0
  109. data/generated/google/apis/dialogflow_v2beta1/service.rb +19 -8
  110. data/generated/google/apis/digitalassetlinks_v1.rb +2 -3
  111. data/generated/google/apis/digitalassetlinks_v1/service.rb +1 -2
  112. data/generated/google/apis/dlp_v2.rb +1 -1
  113. data/generated/google/apis/dlp_v2/classes.rb +17 -5
  114. data/generated/google/apis/dlp_v2/representations.rb +2 -0
  115. data/generated/google/apis/dns_v1beta2.rb +1 -1
  116. data/generated/google/apis/dns_v1beta2/classes.rb +81 -0
  117. data/generated/google/apis/dns_v1beta2/representations.rb +34 -0
  118. data/generated/google/apis/doubleclicksearch_v2.rb +1 -1
  119. data/generated/google/apis/doubleclicksearch_v2/classes.rb +1 -1
  120. data/generated/google/apis/drive_v2.rb +1 -1
  121. data/generated/google/apis/drive_v2/classes.rb +3 -1
  122. data/generated/google/apis/firebaserules_v1.rb +1 -1
  123. data/generated/google/apis/firestore_v1.rb +1 -1
  124. data/generated/google/apis/firestore_v1/classes.rb +637 -0
  125. data/generated/google/apis/firestore_v1/representations.rb +260 -0
  126. data/generated/google/apis/firestore_v1/service.rb +377 -0
  127. data/generated/google/apis/firestore_v1beta2.rb +1 -1
  128. data/generated/google/apis/firestore_v1beta2/classes.rb +205 -0
  129. data/generated/google/apis/firestore_v1beta2/representations.rb +83 -0
  130. data/generated/google/apis/firestore_v1beta2/service.rb +79 -0
  131. data/generated/google/apis/genomics_v1.rb +2 -2
  132. data/generated/google/apis/genomics_v1/service.rb +1 -1
  133. data/generated/google/apis/genomics_v1alpha2.rb +2 -2
  134. data/generated/google/apis/genomics_v1alpha2/service.rb +1 -1
  135. data/generated/google/apis/genomics_v2alpha1.rb +2 -2
  136. data/generated/google/apis/genomics_v2alpha1/service.rb +1 -1
  137. data/generated/google/apis/iam_v1.rb +1 -1
  138. data/generated/google/apis/iam_v1/classes.rb +4 -3
  139. data/generated/google/apis/iamcredentials_v1.rb +2 -2
  140. data/generated/google/apis/iamcredentials_v1/service.rb +1 -1
  141. data/generated/google/apis/indexing_v3.rb +2 -3
  142. data/generated/google/apis/indexing_v3/service.rb +1 -2
  143. data/generated/google/apis/jobs_v2.rb +1 -1
  144. data/generated/google/apis/jobs_v2/classes.rb +2 -2
  145. data/generated/google/apis/jobs_v3.rb +1 -1
  146. data/generated/google/apis/jobs_v3/classes.rb +3 -3
  147. data/generated/google/apis/jobs_v3/service.rb +20 -2
  148. data/generated/google/apis/jobs_v3p1beta1.rb +1 -1
  149. data/generated/google/apis/jobs_v3p1beta1/classes.rb +3 -3
  150. data/generated/google/apis/jobs_v3p1beta1/service.rb +20 -2
  151. data/generated/google/apis/language_v1.rb +4 -4
  152. data/generated/google/apis/language_v1/service.rb +3 -3
  153. data/generated/google/apis/language_v1beta1.rb +4 -4
  154. data/generated/google/apis/language_v1beta1/service.rb +3 -3
  155. data/generated/google/apis/language_v1beta2.rb +4 -4
  156. data/generated/google/apis/language_v1beta2/service.rb +3 -3
  157. data/generated/google/apis/logging_v2.rb +1 -1
  158. data/generated/google/apis/logging_v2/classes.rb +2 -13
  159. data/generated/google/apis/logging_v2/representations.rb +0 -2
  160. data/generated/google/apis/logging_v2beta1.rb +1 -1
  161. data/generated/google/apis/logging_v2beta1/classes.rb +2 -41
  162. data/generated/google/apis/logging_v2beta1/representations.rb +0 -16
  163. data/generated/google/apis/logging_v2beta1/service.rb +0 -255
  164. data/generated/google/apis/monitoring_v3.rb +1 -1
  165. data/generated/google/apis/monitoring_v3/classes.rb +25 -15
  166. data/generated/google/apis/monitoring_v3/representations.rb +1 -0
  167. data/generated/google/apis/monitoring_v3/service.rb +366 -1
  168. data/generated/google/apis/oslogin_v1.rb +1 -1
  169. data/generated/google/apis/oslogin_v1/service.rb +7 -1
  170. data/generated/google/apis/oslogin_v1alpha.rb +1 -1
  171. data/generated/google/apis/oslogin_v1alpha/service.rb +10 -1
  172. data/generated/google/apis/oslogin_v1beta.rb +1 -1
  173. data/generated/google/apis/oslogin_v1beta/service.rb +7 -1
  174. data/generated/google/apis/redis_v1.rb +1 -1
  175. data/generated/google/apis/redis_v1/classes.rb +6 -0
  176. data/generated/google/apis/redis_v1/representations.rb +1 -0
  177. data/generated/google/apis/redis_v1beta1.rb +1 -1
  178. data/generated/google/apis/redis_v1beta1/classes.rb +6 -0
  179. data/generated/google/apis/redis_v1beta1/representations.rb +1 -0
  180. data/generated/google/apis/runtimeconfig_v1beta1.rb +1 -1
  181. data/generated/google/apis/runtimeconfig_v1beta1/classes.rb +7 -6
  182. data/generated/google/apis/script_v1.rb +2 -2
  183. data/generated/google/apis/script_v1/service.rb +7 -3
  184. data/generated/google/apis/serviceconsumermanagement_v1.rb +2 -3
  185. data/generated/google/apis/serviceconsumermanagement_v1/classes.rb +7 -0
  186. data/generated/google/apis/serviceconsumermanagement_v1/representations.rb +1 -0
  187. data/generated/google/apis/serviceconsumermanagement_v1/service.rb +1 -2
  188. data/generated/google/apis/servicecontrol_v1.rb +3 -3
  189. data/generated/google/apis/servicecontrol_v1/classes.rb +18 -230
  190. data/generated/google/apis/servicecontrol_v1/representations.rb +2 -99
  191. data/generated/google/apis/servicecontrol_v1/service.rb +2 -140
  192. data/generated/google/apis/servicemanagement_v1.rb +1 -1
  193. data/generated/google/apis/servicemanagement_v1/classes.rb +1 -1
  194. data/generated/google/apis/servicenetworking_v1beta.rb +1 -1
  195. data/generated/google/apis/servicenetworking_v1beta/classes.rb +24 -0
  196. data/generated/google/apis/servicenetworking_v1beta/representations.rb +3 -0
  197. data/generated/google/apis/serviceusage_v1.rb +1 -1
  198. data/generated/google/apis/serviceusage_v1/classes.rb +7 -0
  199. data/generated/google/apis/serviceusage_v1/representations.rb +1 -0
  200. data/generated/google/apis/serviceusage_v1beta1.rb +1 -1
  201. data/generated/google/apis/serviceusage_v1beta1/classes.rb +7 -0
  202. data/generated/google/apis/serviceusage_v1beta1/representations.rb +1 -0
  203. data/generated/google/apis/slides_v1.rb +2 -2
  204. data/generated/google/apis/slides_v1/classes.rb +4 -3
  205. data/generated/google/apis/slides_v1/service.rb +1 -1
  206. data/generated/google/apis/storage_v1.rb +1 -1
  207. data/generated/google/apis/storage_v1/service.rb +2 -3
  208. data/generated/google/apis/testing_v1.rb +1 -1
  209. data/generated/google/apis/testing_v1/classes.rb +9 -0
  210. data/generated/google/apis/testing_v1/representations.rb +1 -0
  211. data/generated/google/apis/toolresults_v1beta3.rb +1 -1
  212. data/generated/google/apis/toolresults_v1beta3/service.rb +1 -1
  213. data/generated/google/apis/tpu_v1.rb +1 -1
  214. data/generated/google/apis/tpu_v1/classes.rb +6 -0
  215. data/generated/google/apis/tpu_v1/representations.rb +1 -0
  216. data/generated/google/apis/tpu_v1alpha1.rb +1 -1
  217. data/generated/google/apis/tpu_v1alpha1/classes.rb +6 -0
  218. data/generated/google/apis/tpu_v1alpha1/representations.rb +1 -0
  219. data/generated/google/apis/vault_v1.rb +1 -1
  220. data/generated/google/apis/vault_v1/classes.rb +7 -0
  221. data/generated/google/apis/vault_v1/representations.rb +1 -0
  222. data/generated/google/apis/videointelligence_v1.rb +3 -2
  223. data/generated/google/apis/videointelligence_v1/classes.rb +547 -12
  224. data/generated/google/apis/videointelligence_v1/representations.rb +190 -2
  225. data/generated/google/apis/videointelligence_v1/service.rb +2 -1
  226. data/generated/google/apis/videointelligence_v1beta2.rb +3 -2
  227. data/generated/google/apis/videointelligence_v1beta2/classes.rb +547 -12
  228. data/generated/google/apis/videointelligence_v1beta2/representations.rb +190 -2
  229. data/generated/google/apis/videointelligence_v1beta2/service.rb +2 -1
  230. data/generated/google/apis/videointelligence_v1p1beta1.rb +3 -2
  231. data/generated/google/apis/videointelligence_v1p1beta1/classes.rb +418 -13
  232. data/generated/google/apis/videointelligence_v1p1beta1/representations.rb +153 -2
  233. data/generated/google/apis/videointelligence_v1p1beta1/service.rb +2 -1
  234. data/generated/google/apis/vision_v1.rb +1 -1
  235. data/generated/google/apis/vision_v1/classes.rb +1139 -54
  236. data/generated/google/apis/vision_v1/representations.rb +478 -0
  237. data/generated/google/apis/vision_v1/service.rb +744 -0
  238. data/generated/google/apis/vision_v1p1beta1.rb +1 -1
  239. data/generated/google/apis/vision_v1p1beta1/classes.rb +761 -16
  240. data/generated/google/apis/vision_v1p1beta1/representations.rb +333 -0
  241. data/generated/google/apis/vision_v1p2beta1.rb +1 -1
  242. data/generated/google/apis/vision_v1p2beta1/classes.rb +758 -13
  243. data/generated/google/apis/vision_v1p2beta1/representations.rb +333 -0
  244. data/generated/google/apis/websecurityscanner_v1alpha.rb +2 -2
  245. data/generated/google/apis/websecurityscanner_v1alpha/service.rb +1 -1
  246. data/generated/google/apis/youtube_partner_v1.rb +1 -1
  247. data/generated/google/apis/youtube_v3.rb +1 -1
  248. data/lib/google/apis/core/http_command.rb +83 -10
  249. data/lib/google/apis/options.rb +5 -1
  250. data/lib/google/apis/version.rb +1 -1
  251. metadata +10 -14
  252. data/generated/google/apis/content_v2sandbox/classes.rb +0 -4436
  253. data/generated/google/apis/content_v2sandbox/representations.rb +0 -1956
  254. data/generated/google/apis/content_v2sandbox/service.rb +0 -1296
  255. data/generated/google/apis/dfareporting_v2_8.rb +0 -40
  256. data/generated/google/apis/dfareporting_v2_8/classes.rb +0 -12043
  257. data/generated/google/apis/dfareporting_v2_8/representations.rb +0 -4311
  258. data/generated/google/apis/dfareporting_v2_8/service.rb +0 -8727
  259. data/generated/google/apis/serviceuser_v1.rb +0 -42
  260. data/generated/google/apis/serviceuser_v1/classes.rb +0 -3472
  261. data/generated/google/apis/serviceuser_v1/representations.rb +0 -1030
  262. data/generated/google/apis/serviceuser_v1/service.rb +0 -215
@@ -1,42 +0,0 @@
1
- # Copyright 2015 Google Inc.
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
- require 'google/apis/serviceuser_v1/service.rb'
16
- require 'google/apis/serviceuser_v1/classes.rb'
17
- require 'google/apis/serviceuser_v1/representations.rb'
18
-
19
- module Google
20
- module Apis
21
- # Service User API
22
- #
23
- # Enables services that service consumers want to use on Google Cloud Platform,
24
- # lists the available or enabled services, or disables services that service
25
- # consumers no longer use.
26
- #
27
- # @see https://cloud.google.com/service-management/
28
- module ServiceuserV1
29
- VERSION = 'V1'
30
- REVISION = '20180922'
31
-
32
- # View and manage your data across Google Cloud Platform services
33
- AUTH_CLOUD_PLATFORM = 'https://www.googleapis.com/auth/cloud-platform'
34
-
35
- # View your data across Google Cloud Platform services
36
- AUTH_CLOUD_PLATFORM_READ_ONLY = 'https://www.googleapis.com/auth/cloud-platform.read-only'
37
-
38
- # Manage your Google API service configuration
39
- AUTH_SERVICE_MANAGEMENT = 'https://www.googleapis.com/auth/service.management'
40
- end
41
- end
42
- end
@@ -1,3472 +0,0 @@
1
- # Copyright 2015 Google Inc.
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
- require 'date'
16
- require 'google/apis/core/base_service'
17
- require 'google/apis/core/json_representation'
18
- require 'google/apis/core/hashable'
19
- require 'google/apis/errors'
20
-
21
- module Google
22
- module Apis
23
- module ServiceuserV1
24
-
25
- # Api is a light-weight descriptor for an API Interface.
26
- # Interfaces are also described as "protocol buffer services" in some contexts,
27
- # such as by the "service" keyword in a .proto file, but they are different
28
- # from API Services, which represent a concrete implementation of an interface
29
- # as opposed to simply a description of methods and bindings. They are also
30
- # sometimes simply referred to as "APIs" in other contexts, such as the name of
31
- # this message itself. See https://cloud.google.com/apis/design/glossary for
32
- # detailed terminology.
33
- class Api
34
- include Google::Apis::Core::Hashable
35
-
36
- # The methods of this interface, in unspecified order.
37
- # Corresponds to the JSON property `methods`
38
- # @return [Array<Google::Apis::ServiceuserV1::MethodProp>]
39
- attr_accessor :methods_prop
40
-
41
- # Included interfaces. See Mixin.
42
- # Corresponds to the JSON property `mixins`
43
- # @return [Array<Google::Apis::ServiceuserV1::Mixin>]
44
- attr_accessor :mixins
45
-
46
- # The fully qualified name of this interface, including package name
47
- # followed by the interface's simple name.
48
- # Corresponds to the JSON property `name`
49
- # @return [String]
50
- attr_accessor :name
51
-
52
- # Any metadata attached to the interface.
53
- # Corresponds to the JSON property `options`
54
- # @return [Array<Google::Apis::ServiceuserV1::Option>]
55
- attr_accessor :options
56
-
57
- # `SourceContext` represents information about the source of a
58
- # protobuf element, like the file in which it is defined.
59
- # Corresponds to the JSON property `sourceContext`
60
- # @return [Google::Apis::ServiceuserV1::SourceContext]
61
- attr_accessor :source_context
62
-
63
- # The source syntax of the service.
64
- # Corresponds to the JSON property `syntax`
65
- # @return [String]
66
- attr_accessor :syntax
67
-
68
- # A version string for this interface. If specified, must have the form
69
- # `major-version.minor-version`, as in `1.10`. If the minor version is
70
- # omitted, it defaults to zero. If the entire version field is empty, the
71
- # major version is derived from the package name, as outlined below. If the
72
- # field is not empty, the version in the package name will be verified to be
73
- # consistent with what is provided here.
74
- # The versioning schema uses [semantic
75
- # versioning](http://semver.org) where the major version number
76
- # indicates a breaking change and the minor version an additive,
77
- # non-breaking change. Both version numbers are signals to users
78
- # what to expect from different versions, and should be carefully
79
- # chosen based on the product plan.
80
- # The major version is also reflected in the package name of the
81
- # interface, which must end in `v<major-version>`, as in
82
- # `google.feature.v1`. For major versions 0 and 1, the suffix can
83
- # be omitted. Zero major versions must only be used for
84
- # experimental, non-GA interfaces.
85
- # Corresponds to the JSON property `version`
86
- # @return [String]
87
- attr_accessor :version
88
-
89
- def initialize(**args)
90
- update!(**args)
91
- end
92
-
93
- # Update properties of this object
94
- def update!(**args)
95
- @methods_prop = args[:methods_prop] if args.key?(:methods_prop)
96
- @mixins = args[:mixins] if args.key?(:mixins)
97
- @name = args[:name] if args.key?(:name)
98
- @options = args[:options] if args.key?(:options)
99
- @source_context = args[:source_context] if args.key?(:source_context)
100
- @syntax = args[:syntax] if args.key?(:syntax)
101
- @version = args[:version] if args.key?(:version)
102
- end
103
- end
104
-
105
- # Configuration for an anthentication provider, including support for
106
- # [JSON Web Token (JWT)](https://tools.ietf.org/html/draft-ietf-oauth-json-web-
107
- # token-32).
108
- class AuthProvider
109
- include Google::Apis::Core::Hashable
110
-
111
- # The list of JWT
112
- # [audiences](https://tools.ietf.org/html/draft-ietf-oauth-json-web-token-32#
113
- # section-4.1.3).
114
- # that are allowed to access. A JWT containing any of these audiences will
115
- # be accepted. When this setting is absent, only JWTs with audience
116
- # "https://Service_name/API_name"
117
- # will be accepted. For example, if no audiences are in the setting,
118
- # LibraryService API will only accept JWTs with the following audience
119
- # "https://library-example.googleapis.com/google.example.library.v1.
120
- # LibraryService".
121
- # Example:
122
- # audiences: bookstore_android.apps.googleusercontent.com,
123
- # bookstore_web.apps.googleusercontent.com
124
- # Corresponds to the JSON property `audiences`
125
- # @return [String]
126
- attr_accessor :audiences
127
-
128
- # Redirect URL if JWT token is required but no present or is expired.
129
- # Implement authorizationUrl of securityDefinitions in OpenAPI spec.
130
- # Corresponds to the JSON property `authorizationUrl`
131
- # @return [String]
132
- attr_accessor :authorization_url
133
-
134
- # The unique identifier of the auth provider. It will be referred to by
135
- # `AuthRequirement.provider_id`.
136
- # Example: "bookstore_auth".
137
- # Corresponds to the JSON property `id`
138
- # @return [String]
139
- attr_accessor :id
140
-
141
- # Identifies the principal that issued the JWT. See
142
- # https://tools.ietf.org/html/draft-ietf-oauth-json-web-token-32#section-4.1.1
143
- # Usually a URL or an email address.
144
- # Example: https://securetoken.google.com
145
- # Example: 1234567-compute@developer.gserviceaccount.com
146
- # Corresponds to the JSON property `issuer`
147
- # @return [String]
148
- attr_accessor :issuer
149
-
150
- # URL of the provider's public key set to validate signature of the JWT. See
151
- # [OpenID Discovery](https://openid.net/specs/openid-connect-discovery-1_0.html#
152
- # ProviderMetadata).
153
- # Optional if the key set document:
154
- # - can be retrieved from
155
- # [OpenID Discovery](https://openid.net/specs/openid-connect-discovery-1_0.
156
- # html
157
- # of the issuer.
158
- # - can be inferred from the email domain of the issuer (e.g. a Google service
159
- # account).
160
- # Example: https://www.googleapis.com/oauth2/v1/certs
161
- # Corresponds to the JSON property `jwksUri`
162
- # @return [String]
163
- attr_accessor :jwks_uri
164
-
165
- def initialize(**args)
166
- update!(**args)
167
- end
168
-
169
- # Update properties of this object
170
- def update!(**args)
171
- @audiences = args[:audiences] if args.key?(:audiences)
172
- @authorization_url = args[:authorization_url] if args.key?(:authorization_url)
173
- @id = args[:id] if args.key?(:id)
174
- @issuer = args[:issuer] if args.key?(:issuer)
175
- @jwks_uri = args[:jwks_uri] if args.key?(:jwks_uri)
176
- end
177
- end
178
-
179
- # User-defined authentication requirements, including support for
180
- # [JSON Web Token (JWT)](https://tools.ietf.org/html/draft-ietf-oauth-json-web-
181
- # token-32).
182
- class AuthRequirement
183
- include Google::Apis::Core::Hashable
184
-
185
- # NOTE: This will be deprecated soon, once AuthProvider.audiences is
186
- # implemented and accepted in all the runtime components.
187
- # The list of JWT
188
- # [audiences](https://tools.ietf.org/html/draft-ietf-oauth-json-web-token-32#
189
- # section-4.1.3).
190
- # that are allowed to access. A JWT containing any of these audiences will
191
- # be accepted. When this setting is absent, only JWTs with audience
192
- # "https://Service_name/API_name"
193
- # will be accepted. For example, if no audiences are in the setting,
194
- # LibraryService API will only accept JWTs with the following audience
195
- # "https://library-example.googleapis.com/google.example.library.v1.
196
- # LibraryService".
197
- # Example:
198
- # audiences: bookstore_android.apps.googleusercontent.com,
199
- # bookstore_web.apps.googleusercontent.com
200
- # Corresponds to the JSON property `audiences`
201
- # @return [String]
202
- attr_accessor :audiences
203
-
204
- # id from authentication provider.
205
- # Example:
206
- # provider_id: bookstore_auth
207
- # Corresponds to the JSON property `providerId`
208
- # @return [String]
209
- attr_accessor :provider_id
210
-
211
- def initialize(**args)
212
- update!(**args)
213
- end
214
-
215
- # Update properties of this object
216
- def update!(**args)
217
- @audiences = args[:audiences] if args.key?(:audiences)
218
- @provider_id = args[:provider_id] if args.key?(:provider_id)
219
- end
220
- end
221
-
222
- # `Authentication` defines the authentication configuration for an API.
223
- # Example for an API targeted for external use:
224
- # name: calendar.googleapis.com
225
- # authentication:
226
- # providers:
227
- # - id: google_calendar_auth
228
- # jwks_uri: https://www.googleapis.com/oauth2/v1/certs
229
- # issuer: https://securetoken.google.com
230
- # rules:
231
- # - selector: "*"
232
- # requirements:
233
- # provider_id: google_calendar_auth
234
- class Authentication
235
- include Google::Apis::Core::Hashable
236
-
237
- # Defines a set of authentication providers that a service supports.
238
- # Corresponds to the JSON property `providers`
239
- # @return [Array<Google::Apis::ServiceuserV1::AuthProvider>]
240
- attr_accessor :providers
241
-
242
- # A list of authentication rules that apply to individual API methods.
243
- # **NOTE:** All service configuration rules follow "last one wins" order.
244
- # Corresponds to the JSON property `rules`
245
- # @return [Array<Google::Apis::ServiceuserV1::AuthenticationRule>]
246
- attr_accessor :rules
247
-
248
- def initialize(**args)
249
- update!(**args)
250
- end
251
-
252
- # Update properties of this object
253
- def update!(**args)
254
- @providers = args[:providers] if args.key?(:providers)
255
- @rules = args[:rules] if args.key?(:rules)
256
- end
257
- end
258
-
259
- # Authentication rules for the service.
260
- # By default, if a method has any authentication requirements, every request
261
- # must include a valid credential matching one of the requirements.
262
- # It's an error to include more than one kind of credential in a single
263
- # request.
264
- # If a method doesn't have any auth requirements, request credentials will be
265
- # ignored.
266
- class AuthenticationRule
267
- include Google::Apis::Core::Hashable
268
-
269
- # If true, the service accepts API keys without any other credential.
270
- # Corresponds to the JSON property `allowWithoutCredential`
271
- # @return [Boolean]
272
- attr_accessor :allow_without_credential
273
- alias_method :allow_without_credential?, :allow_without_credential
274
-
275
- # OAuth scopes are a way to define data and permissions on data. For example,
276
- # there are scopes defined for "Read-only access to Google Calendar" and
277
- # "Access to Cloud Platform". Users can consent to a scope for an application,
278
- # giving it permission to access that data on their behalf.
279
- # OAuth scope specifications should be fairly coarse grained; a user will need
280
- # to see and understand the text description of what your scope means.
281
- # In most cases: use one or at most two OAuth scopes for an entire family of
282
- # products. If your product has multiple APIs, you should probably be sharing
283
- # the OAuth scope across all of those APIs.
284
- # When you need finer grained OAuth consent screens: talk with your product
285
- # management about how developers will use them in practice.
286
- # Please note that even though each of the canonical scopes is enough for a
287
- # request to be accepted and passed to the backend, a request can still fail
288
- # due to the backend requiring additional scopes or permissions.
289
- # Corresponds to the JSON property `oauth`
290
- # @return [Google::Apis::ServiceuserV1::OAuthRequirements]
291
- attr_accessor :oauth
292
-
293
- # Requirements for additional authentication providers.
294
- # Corresponds to the JSON property `requirements`
295
- # @return [Array<Google::Apis::ServiceuserV1::AuthRequirement>]
296
- attr_accessor :requirements
297
-
298
- # Selects the methods to which this rule applies.
299
- # Refer to selector for syntax details.
300
- # Corresponds to the JSON property `selector`
301
- # @return [String]
302
- attr_accessor :selector
303
-
304
- def initialize(**args)
305
- update!(**args)
306
- end
307
-
308
- # Update properties of this object
309
- def update!(**args)
310
- @allow_without_credential = args[:allow_without_credential] if args.key?(:allow_without_credential)
311
- @oauth = args[:oauth] if args.key?(:oauth)
312
- @requirements = args[:requirements] if args.key?(:requirements)
313
- @selector = args[:selector] if args.key?(:selector)
314
- end
315
- end
316
-
317
- # Configuration of authorization.
318
- # This section determines the authorization provider, if unspecified, then no
319
- # authorization check will be done.
320
- # Example:
321
- # experimental:
322
- # authorization:
323
- # provider: firebaserules.googleapis.com
324
- class AuthorizationConfig
325
- include Google::Apis::Core::Hashable
326
-
327
- # The name of the authorization provider, such as
328
- # firebaserules.googleapis.com.
329
- # Corresponds to the JSON property `provider`
330
- # @return [String]
331
- attr_accessor :provider
332
-
333
- def initialize(**args)
334
- update!(**args)
335
- end
336
-
337
- # Update properties of this object
338
- def update!(**args)
339
- @provider = args[:provider] if args.key?(:provider)
340
- end
341
- end
342
-
343
- # `Backend` defines the backend configuration for a service.
344
- class Backend
345
- include Google::Apis::Core::Hashable
346
-
347
- # A list of API backend rules that apply to individual API methods.
348
- # **NOTE:** All service configuration rules follow "last one wins" order.
349
- # Corresponds to the JSON property `rules`
350
- # @return [Array<Google::Apis::ServiceuserV1::BackendRule>]
351
- attr_accessor :rules
352
-
353
- def initialize(**args)
354
- update!(**args)
355
- end
356
-
357
- # Update properties of this object
358
- def update!(**args)
359
- @rules = args[:rules] if args.key?(:rules)
360
- end
361
- end
362
-
363
- # A backend rule provides configuration for an individual API element.
364
- class BackendRule
365
- include Google::Apis::Core::Hashable
366
-
367
- # The address of the API backend.
368
- # Corresponds to the JSON property `address`
369
- # @return [String]
370
- attr_accessor :address
371
-
372
- # The number of seconds to wait for a response from a request. The default
373
- # deadline for gRPC is infinite (no deadline) and HTTP requests is 5 seconds.
374
- # Corresponds to the JSON property `deadline`
375
- # @return [Float]
376
- attr_accessor :deadline
377
-
378
- # Minimum deadline in seconds needed for this method. Calls having deadline
379
- # value lower than this will be rejected.
380
- # Corresponds to the JSON property `minDeadline`
381
- # @return [Float]
382
- attr_accessor :min_deadline
383
-
384
- # Selects the methods to which this rule applies.
385
- # Refer to selector for syntax details.
386
- # Corresponds to the JSON property `selector`
387
- # @return [String]
388
- attr_accessor :selector
389
-
390
- def initialize(**args)
391
- update!(**args)
392
- end
393
-
394
- # Update properties of this object
395
- def update!(**args)
396
- @address = args[:address] if args.key?(:address)
397
- @deadline = args[:deadline] if args.key?(:deadline)
398
- @min_deadline = args[:min_deadline] if args.key?(:min_deadline)
399
- @selector = args[:selector] if args.key?(:selector)
400
- end
401
- end
402
-
403
- # Billing related configuration of the service.
404
- # The following example shows how to configure monitored resources and metrics
405
- # for billing:
406
- # monitored_resources:
407
- # - type: library.googleapis.com/branch
408
- # labels:
409
- # - key: /city
410
- # description: The city where the library branch is located in.
411
- # - key: /name
412
- # description: The name of the branch.
413
- # metrics:
414
- # - name: library.googleapis.com/book/borrowed_count
415
- # metric_kind: DELTA
416
- # value_type: INT64
417
- # billing:
418
- # consumer_destinations:
419
- # - monitored_resource: library.googleapis.com/branch
420
- # metrics:
421
- # - library.googleapis.com/book/borrowed_count
422
- class Billing
423
- include Google::Apis::Core::Hashable
424
-
425
- # Billing configurations for sending metrics to the consumer project.
426
- # There can be multiple consumer destinations per service, each one must have
427
- # a different monitored resource type. A metric can be used in at most
428
- # one consumer destination.
429
- # Corresponds to the JSON property `consumerDestinations`
430
- # @return [Array<Google::Apis::ServiceuserV1::BillingDestination>]
431
- attr_accessor :consumer_destinations
432
-
433
- def initialize(**args)
434
- update!(**args)
435
- end
436
-
437
- # Update properties of this object
438
- def update!(**args)
439
- @consumer_destinations = args[:consumer_destinations] if args.key?(:consumer_destinations)
440
- end
441
- end
442
-
443
- # Configuration of a specific billing destination (Currently only support
444
- # bill against consumer project).
445
- class BillingDestination
446
- include Google::Apis::Core::Hashable
447
-
448
- # Names of the metrics to report to this billing destination.
449
- # Each name must be defined in Service.metrics section.
450
- # Corresponds to the JSON property `metrics`
451
- # @return [Array<String>]
452
- attr_accessor :metrics
453
-
454
- # The monitored resource type. The type must be defined in
455
- # Service.monitored_resources section.
456
- # Corresponds to the JSON property `monitoredResource`
457
- # @return [String]
458
- attr_accessor :monitored_resource
459
-
460
- def initialize(**args)
461
- update!(**args)
462
- end
463
-
464
- # Update properties of this object
465
- def update!(**args)
466
- @metrics = args[:metrics] if args.key?(:metrics)
467
- @monitored_resource = args[:monitored_resource] if args.key?(:monitored_resource)
468
- end
469
- end
470
-
471
- # `Context` defines which contexts an API requests.
472
- # Example:
473
- # context:
474
- # rules:
475
- # - selector: "*"
476
- # requested:
477
- # - google.rpc.context.ProjectContext
478
- # - google.rpc.context.OriginContext
479
- # The above specifies that all methods in the API request
480
- # `google.rpc.context.ProjectContext` and
481
- # `google.rpc.context.OriginContext`.
482
- # Available context types are defined in package
483
- # `google.rpc.context`.
484
- # This also provides mechanism to whitelist any protobuf message extension that
485
- # can be sent in grpc metadata using “x-goog-ext-<extension_id>-bin” and
486
- # “x-goog-ext-<extension_id>-jspb” format. For example, list any service
487
- # specific protobuf types that can appear in grpc metadata as follows in your
488
- # yaml file:
489
- # Example:
490
- # context:
491
- # rules:
492
- # - selector: "google.example.library.v1.LibraryService.CreateBook"
493
- # allowed_request_extensions:
494
- # - google.foo.v1.NewExtension
495
- # allowed_response_extensions:
496
- # - google.foo.v1.NewExtension
497
- # You can also specify extension ID instead of fully qualified extension name
498
- # here.
499
- class Context
500
- include Google::Apis::Core::Hashable
501
-
502
- # A list of RPC context rules that apply to individual API methods.
503
- # **NOTE:** All service configuration rules follow "last one wins" order.
504
- # Corresponds to the JSON property `rules`
505
- # @return [Array<Google::Apis::ServiceuserV1::ContextRule>]
506
- attr_accessor :rules
507
-
508
- def initialize(**args)
509
- update!(**args)
510
- end
511
-
512
- # Update properties of this object
513
- def update!(**args)
514
- @rules = args[:rules] if args.key?(:rules)
515
- end
516
- end
517
-
518
- # A context rule provides information about the context for an individual API
519
- # element.
520
- class ContextRule
521
- include Google::Apis::Core::Hashable
522
-
523
- # A list of full type names or extension IDs of extensions allowed in grpc
524
- # side channel from client to backend.
525
- # Corresponds to the JSON property `allowedRequestExtensions`
526
- # @return [Array<String>]
527
- attr_accessor :allowed_request_extensions
528
-
529
- # A list of full type names or extension IDs of extensions allowed in grpc
530
- # side channel from backend to client.
531
- # Corresponds to the JSON property `allowedResponseExtensions`
532
- # @return [Array<String>]
533
- attr_accessor :allowed_response_extensions
534
-
535
- # A list of full type names of provided contexts.
536
- # Corresponds to the JSON property `provided`
537
- # @return [Array<String>]
538
- attr_accessor :provided
539
-
540
- # A list of full type names of requested contexts.
541
- # Corresponds to the JSON property `requested`
542
- # @return [Array<String>]
543
- attr_accessor :requested
544
-
545
- # Selects the methods to which this rule applies.
546
- # Refer to selector for syntax details.
547
- # Corresponds to the JSON property `selector`
548
- # @return [String]
549
- attr_accessor :selector
550
-
551
- def initialize(**args)
552
- update!(**args)
553
- end
554
-
555
- # Update properties of this object
556
- def update!(**args)
557
- @allowed_request_extensions = args[:allowed_request_extensions] if args.key?(:allowed_request_extensions)
558
- @allowed_response_extensions = args[:allowed_response_extensions] if args.key?(:allowed_response_extensions)
559
- @provided = args[:provided] if args.key?(:provided)
560
- @requested = args[:requested] if args.key?(:requested)
561
- @selector = args[:selector] if args.key?(:selector)
562
- end
563
- end
564
-
565
- # Selects and configures the service controller used by the service. The
566
- # service controller handles features like abuse, quota, billing, logging,
567
- # monitoring, etc.
568
- class Control
569
- include Google::Apis::Core::Hashable
570
-
571
- # The service control environment to use. If empty, no control plane
572
- # feature (like quota and billing) will be enabled.
573
- # Corresponds to the JSON property `environment`
574
- # @return [String]
575
- attr_accessor :environment
576
-
577
- def initialize(**args)
578
- update!(**args)
579
- end
580
-
581
- # Update properties of this object
582
- def update!(**args)
583
- @environment = args[:environment] if args.key?(:environment)
584
- end
585
- end
586
-
587
- # Customize service error responses. For example, list any service
588
- # specific protobuf types that can appear in error detail lists of
589
- # error responses.
590
- # Example:
591
- # custom_error:
592
- # types:
593
- # - google.foo.v1.CustomError
594
- # - google.foo.v1.AnotherError
595
- class CustomError
596
- include Google::Apis::Core::Hashable
597
-
598
- # The list of custom error rules that apply to individual API messages.
599
- # **NOTE:** All service configuration rules follow "last one wins" order.
600
- # Corresponds to the JSON property `rules`
601
- # @return [Array<Google::Apis::ServiceuserV1::CustomErrorRule>]
602
- attr_accessor :rules
603
-
604
- # The list of custom error detail types, e.g. 'google.foo.v1.CustomError'.
605
- # Corresponds to the JSON property `types`
606
- # @return [Array<String>]
607
- attr_accessor :types
608
-
609
- def initialize(**args)
610
- update!(**args)
611
- end
612
-
613
- # Update properties of this object
614
- def update!(**args)
615
- @rules = args[:rules] if args.key?(:rules)
616
- @types = args[:types] if args.key?(:types)
617
- end
618
- end
619
-
620
- # A custom error rule.
621
- class CustomErrorRule
622
- include Google::Apis::Core::Hashable
623
-
624
- # Mark this message as possible payload in error response. Otherwise,
625
- # objects of this type will be filtered when they appear in error payload.
626
- # Corresponds to the JSON property `isErrorType`
627
- # @return [Boolean]
628
- attr_accessor :is_error_type
629
- alias_method :is_error_type?, :is_error_type
630
-
631
- # Selects messages to which this rule applies.
632
- # Refer to selector for syntax details.
633
- # Corresponds to the JSON property `selector`
634
- # @return [String]
635
- attr_accessor :selector
636
-
637
- def initialize(**args)
638
- update!(**args)
639
- end
640
-
641
- # Update properties of this object
642
- def update!(**args)
643
- @is_error_type = args[:is_error_type] if args.key?(:is_error_type)
644
- @selector = args[:selector] if args.key?(:selector)
645
- end
646
- end
647
-
648
- # A custom pattern is used for defining custom HTTP verb.
649
- class CustomHttpPattern
650
- include Google::Apis::Core::Hashable
651
-
652
- # The name of this custom HTTP verb.
653
- # Corresponds to the JSON property `kind`
654
- # @return [String]
655
- attr_accessor :kind
656
-
657
- # The path matched by this custom verb.
658
- # Corresponds to the JSON property `path`
659
- # @return [String]
660
- attr_accessor :path
661
-
662
- def initialize(**args)
663
- update!(**args)
664
- end
665
-
666
- # Update properties of this object
667
- def update!(**args)
668
- @kind = args[:kind] if args.key?(:kind)
669
- @path = args[:path] if args.key?(:path)
670
- end
671
- end
672
-
673
- # Request message for DisableService method.
674
- class DisableServiceRequest
675
- include Google::Apis::Core::Hashable
676
-
677
- def initialize(**args)
678
- update!(**args)
679
- end
680
-
681
- # Update properties of this object
682
- def update!(**args)
683
- end
684
- end
685
-
686
- # `Documentation` provides the information for describing a service.
687
- # Example:
688
- # <pre><code>documentation:
689
- # summary: >
690
- # The Google Calendar API gives access
691
- # to most calendar features.
692
- # pages:
693
- # - name: Overview
694
- # content: &#40;== include google/foo/overview.md ==&#41;
695
- # - name: Tutorial
696
- # content: &#40;== include google/foo/tutorial.md ==&#41;
697
- # subpages;
698
- # - name: Java
699
- # content: &#40;== include google/foo/tutorial_java.md ==&#41;
700
- # rules:
701
- # - selector: google.calendar.Calendar.Get
702
- # description: >
703
- # ...
704
- # - selector: google.calendar.Calendar.Put
705
- # description: >
706
- # ...
707
- # </code></pre>
708
- # Documentation is provided in markdown syntax. In addition to
709
- # standard markdown features, definition lists, tables and fenced
710
- # code blocks are supported. Section headers can be provided and are
711
- # interpreted relative to the section nesting of the context where
712
- # a documentation fragment is embedded.
713
- # Documentation from the IDL is merged with documentation defined
714
- # via the config at normalization time, where documentation provided
715
- # by config rules overrides IDL provided.
716
- # A number of constructs specific to the API platform are supported
717
- # in documentation text.
718
- # In order to reference a proto element, the following
719
- # notation can be used:
720
- # <pre><code>&#91;fully.qualified.proto.name]&#91;]</code></pre>
721
- # To override the display text used for the link, this can be used:
722
- # <pre><code>&#91;display text]&#91;fully.qualified.proto.name]</code></pre>
723
- # Text can be excluded from doc using the following notation:
724
- # <pre><code>&#40;-- internal comment --&#41;</code></pre>
725
- # A few directives are available in documentation. Note that
726
- # directives must appear on a single line to be properly
727
- # identified. The `include` directive includes a markdown file from
728
- # an external source:
729
- # <pre><code>&#40;== include path/to/file ==&#41;</code></pre>
730
- # The `resource_for` directive marks a message to be the resource of
731
- # a collection in REST view. If it is not specified, tools attempt
732
- # to infer the resource from the operations in a collection:
733
- # <pre><code>&#40;== resource_for v1.shelves.books ==&#41;</code></pre>
734
- # The directive `suppress_warning` does not directly affect documentation
735
- # and is documented together with service config validation.
736
- class Documentation
737
- include Google::Apis::Core::Hashable
738
-
739
- # The URL to the root of documentation.
740
- # Corresponds to the JSON property `documentationRootUrl`
741
- # @return [String]
742
- attr_accessor :documentation_root_url
743
-
744
- # Declares a single overview page. For example:
745
- # <pre><code>documentation:
746
- # summary: ...
747
- # overview: &#40;== include overview.md ==&#41;
748
- # </code></pre>
749
- # This is a shortcut for the following declaration (using pages style):
750
- # <pre><code>documentation:
751
- # summary: ...
752
- # pages:
753
- # - name: Overview
754
- # content: &#40;== include overview.md ==&#41;
755
- # </code></pre>
756
- # Note: you cannot specify both `overview` field and `pages` field.
757
- # Corresponds to the JSON property `overview`
758
- # @return [String]
759
- attr_accessor :overview
760
-
761
- # The top level pages for the documentation set.
762
- # Corresponds to the JSON property `pages`
763
- # @return [Array<Google::Apis::ServiceuserV1::Page>]
764
- attr_accessor :pages
765
-
766
- # A list of documentation rules that apply to individual API elements.
767
- # **NOTE:** All service configuration rules follow "last one wins" order.
768
- # Corresponds to the JSON property `rules`
769
- # @return [Array<Google::Apis::ServiceuserV1::DocumentationRule>]
770
- attr_accessor :rules
771
-
772
- # A short summary of what the service does. Can only be provided by
773
- # plain text.
774
- # Corresponds to the JSON property `summary`
775
- # @return [String]
776
- attr_accessor :summary
777
-
778
- def initialize(**args)
779
- update!(**args)
780
- end
781
-
782
- # Update properties of this object
783
- def update!(**args)
784
- @documentation_root_url = args[:documentation_root_url] if args.key?(:documentation_root_url)
785
- @overview = args[:overview] if args.key?(:overview)
786
- @pages = args[:pages] if args.key?(:pages)
787
- @rules = args[:rules] if args.key?(:rules)
788
- @summary = args[:summary] if args.key?(:summary)
789
- end
790
- end
791
-
792
- # A documentation rule provides information about individual API elements.
793
- class DocumentationRule
794
- include Google::Apis::Core::Hashable
795
-
796
- # Deprecation description of the selected element(s). It can be provided if an
797
- # element is marked as `deprecated`.
798
- # Corresponds to the JSON property `deprecationDescription`
799
- # @return [String]
800
- attr_accessor :deprecation_description
801
-
802
- # Description of the selected API(s).
803
- # Corresponds to the JSON property `description`
804
- # @return [String]
805
- attr_accessor :description
806
-
807
- # The selector is a comma-separated list of patterns. Each pattern is a
808
- # qualified name of the element which may end in "*", indicating a wildcard.
809
- # Wildcards are only allowed at the end and for a whole component of the
810
- # qualified name, i.e. "foo.*" is ok, but not "foo.b*" or "foo.*.bar". To
811
- # specify a default for all applicable elements, the whole pattern "*"
812
- # is used.
813
- # Corresponds to the JSON property `selector`
814
- # @return [String]
815
- attr_accessor :selector
816
-
817
- def initialize(**args)
818
- update!(**args)
819
- end
820
-
821
- # Update properties of this object
822
- def update!(**args)
823
- @deprecation_description = args[:deprecation_description] if args.key?(:deprecation_description)
824
- @description = args[:description] if args.key?(:description)
825
- @selector = args[:selector] if args.key?(:selector)
826
- end
827
- end
828
-
829
- # Request message for EnableService method.
830
- class EnableServiceRequest
831
- include Google::Apis::Core::Hashable
832
-
833
- def initialize(**args)
834
- update!(**args)
835
- end
836
-
837
- # Update properties of this object
838
- def update!(**args)
839
- end
840
- end
841
-
842
- # `Endpoint` describes a network endpoint that serves a set of APIs.
843
- # A service may expose any number of endpoints, and all endpoints share the
844
- # same service configuration, such as quota configuration and monitoring
845
- # configuration.
846
- # Example service configuration:
847
- # name: library-example.googleapis.com
848
- # endpoints:
849
- # # Below entry makes 'google.example.library.v1.Library'
850
- # # API be served from endpoint address library-example.googleapis.com.
851
- # # It also allows HTTP OPTIONS calls to be passed to the backend, for
852
- # # it to decide whether the subsequent cross-origin request is
853
- # # allowed to proceed.
854
- # - name: library-example.googleapis.com
855
- # allow_cors: true
856
- class Endpoint
857
- include Google::Apis::Core::Hashable
858
-
859
- # DEPRECATED: This field is no longer supported. Instead of using aliases,
860
- # please specify multiple google.api.Endpoint for each of the intended
861
- # aliases.
862
- # Additional names that this endpoint will be hosted on.
863
- # Corresponds to the JSON property `aliases`
864
- # @return [Array<String>]
865
- attr_accessor :aliases
866
-
867
- # Allowing
868
- # [CORS](https://en.wikipedia.org/wiki/Cross-origin_resource_sharing), aka
869
- # cross-domain traffic, would allow the backends served from this endpoint to
870
- # receive and respond to HTTP OPTIONS requests. The response will be used by
871
- # the browser to determine whether the subsequent cross-origin request is
872
- # allowed to proceed.
873
- # Corresponds to the JSON property `allowCors`
874
- # @return [Boolean]
875
- attr_accessor :allow_cors
876
- alias_method :allow_cors?, :allow_cors
877
-
878
- # The list of features enabled on this endpoint.
879
- # Corresponds to the JSON property `features`
880
- # @return [Array<String>]
881
- attr_accessor :features
882
-
883
- # The canonical name of this endpoint.
884
- # Corresponds to the JSON property `name`
885
- # @return [String]
886
- attr_accessor :name
887
-
888
- # The specification of an Internet routable address of API frontend that will
889
- # handle requests to this [API Endpoint](https://cloud.google.com/apis/design/
890
- # glossary).
891
- # It should be either a valid IPv4 address or a fully-qualified domain name.
892
- # For example, "8.8.8.8" or "myservice.appspot.com".
893
- # Corresponds to the JSON property `target`
894
- # @return [String]
895
- attr_accessor :target
896
-
897
- def initialize(**args)
898
- update!(**args)
899
- end
900
-
901
- # Update properties of this object
902
- def update!(**args)
903
- @aliases = args[:aliases] if args.key?(:aliases)
904
- @allow_cors = args[:allow_cors] if args.key?(:allow_cors)
905
- @features = args[:features] if args.key?(:features)
906
- @name = args[:name] if args.key?(:name)
907
- @target = args[:target] if args.key?(:target)
908
- end
909
- end
910
-
911
- # Enum type definition.
912
- class Enum
913
- include Google::Apis::Core::Hashable
914
-
915
- # Enum value definitions.
916
- # Corresponds to the JSON property `enumvalue`
917
- # @return [Array<Google::Apis::ServiceuserV1::EnumValue>]
918
- attr_accessor :enumvalue
919
-
920
- # Enum type name.
921
- # Corresponds to the JSON property `name`
922
- # @return [String]
923
- attr_accessor :name
924
-
925
- # Protocol buffer options.
926
- # Corresponds to the JSON property `options`
927
- # @return [Array<Google::Apis::ServiceuserV1::Option>]
928
- attr_accessor :options
929
-
930
- # `SourceContext` represents information about the source of a
931
- # protobuf element, like the file in which it is defined.
932
- # Corresponds to the JSON property `sourceContext`
933
- # @return [Google::Apis::ServiceuserV1::SourceContext]
934
- attr_accessor :source_context
935
-
936
- # The source syntax.
937
- # Corresponds to the JSON property `syntax`
938
- # @return [String]
939
- attr_accessor :syntax
940
-
941
- def initialize(**args)
942
- update!(**args)
943
- end
944
-
945
- # Update properties of this object
946
- def update!(**args)
947
- @enumvalue = args[:enumvalue] if args.key?(:enumvalue)
948
- @name = args[:name] if args.key?(:name)
949
- @options = args[:options] if args.key?(:options)
950
- @source_context = args[:source_context] if args.key?(:source_context)
951
- @syntax = args[:syntax] if args.key?(:syntax)
952
- end
953
- end
954
-
955
- # Enum value definition.
956
- class EnumValue
957
- include Google::Apis::Core::Hashable
958
-
959
- # Enum value name.
960
- # Corresponds to the JSON property `name`
961
- # @return [String]
962
- attr_accessor :name
963
-
964
- # Enum value number.
965
- # Corresponds to the JSON property `number`
966
- # @return [Fixnum]
967
- attr_accessor :number
968
-
969
- # Protocol buffer options.
970
- # Corresponds to the JSON property `options`
971
- # @return [Array<Google::Apis::ServiceuserV1::Option>]
972
- attr_accessor :options
973
-
974
- def initialize(**args)
975
- update!(**args)
976
- end
977
-
978
- # Update properties of this object
979
- def update!(**args)
980
- @name = args[:name] if args.key?(:name)
981
- @number = args[:number] if args.key?(:number)
982
- @options = args[:options] if args.key?(:options)
983
- end
984
- end
985
-
986
- # Experimental service configuration. These configuration options can
987
- # only be used by whitelisted users.
988
- class Experimental
989
- include Google::Apis::Core::Hashable
990
-
991
- # Configuration of authorization.
992
- # This section determines the authorization provider, if unspecified, then no
993
- # authorization check will be done.
994
- # Example:
995
- # experimental:
996
- # authorization:
997
- # provider: firebaserules.googleapis.com
998
- # Corresponds to the JSON property `authorization`
999
- # @return [Google::Apis::ServiceuserV1::AuthorizationConfig]
1000
- attr_accessor :authorization
1001
-
1002
- def initialize(**args)
1003
- update!(**args)
1004
- end
1005
-
1006
- # Update properties of this object
1007
- def update!(**args)
1008
- @authorization = args[:authorization] if args.key?(:authorization)
1009
- end
1010
- end
1011
-
1012
- # A single field of a message type.
1013
- class Field
1014
- include Google::Apis::Core::Hashable
1015
-
1016
- # The field cardinality.
1017
- # Corresponds to the JSON property `cardinality`
1018
- # @return [String]
1019
- attr_accessor :cardinality
1020
-
1021
- # The string value of the default value of this field. Proto2 syntax only.
1022
- # Corresponds to the JSON property `defaultValue`
1023
- # @return [String]
1024
- attr_accessor :default_value
1025
-
1026
- # The field JSON name.
1027
- # Corresponds to the JSON property `jsonName`
1028
- # @return [String]
1029
- attr_accessor :json_name
1030
-
1031
- # The field type.
1032
- # Corresponds to the JSON property `kind`
1033
- # @return [String]
1034
- attr_accessor :kind
1035
-
1036
- # The field name.
1037
- # Corresponds to the JSON property `name`
1038
- # @return [String]
1039
- attr_accessor :name
1040
-
1041
- # The field number.
1042
- # Corresponds to the JSON property `number`
1043
- # @return [Fixnum]
1044
- attr_accessor :number
1045
-
1046
- # The index of the field type in `Type.oneofs`, for message or enumeration
1047
- # types. The first type has index 1; zero means the type is not in the list.
1048
- # Corresponds to the JSON property `oneofIndex`
1049
- # @return [Fixnum]
1050
- attr_accessor :oneof_index
1051
-
1052
- # The protocol buffer options.
1053
- # Corresponds to the JSON property `options`
1054
- # @return [Array<Google::Apis::ServiceuserV1::Option>]
1055
- attr_accessor :options
1056
-
1057
- # Whether to use alternative packed wire representation.
1058
- # Corresponds to the JSON property `packed`
1059
- # @return [Boolean]
1060
- attr_accessor :packed
1061
- alias_method :packed?, :packed
1062
-
1063
- # The field type URL, without the scheme, for message or enumeration
1064
- # types. Example: `"type.googleapis.com/google.protobuf.Timestamp"`.
1065
- # Corresponds to the JSON property `typeUrl`
1066
- # @return [String]
1067
- attr_accessor :type_url
1068
-
1069
- def initialize(**args)
1070
- update!(**args)
1071
- end
1072
-
1073
- # Update properties of this object
1074
- def update!(**args)
1075
- @cardinality = args[:cardinality] if args.key?(:cardinality)
1076
- @default_value = args[:default_value] if args.key?(:default_value)
1077
- @json_name = args[:json_name] if args.key?(:json_name)
1078
- @kind = args[:kind] if args.key?(:kind)
1079
- @name = args[:name] if args.key?(:name)
1080
- @number = args[:number] if args.key?(:number)
1081
- @oneof_index = args[:oneof_index] if args.key?(:oneof_index)
1082
- @options = args[:options] if args.key?(:options)
1083
- @packed = args[:packed] if args.key?(:packed)
1084
- @type_url = args[:type_url] if args.key?(:type_url)
1085
- end
1086
- end
1087
-
1088
- # Defines the HTTP configuration for an API service. It contains a list of
1089
- # HttpRule, each specifying the mapping of an RPC method
1090
- # to one or more HTTP REST API methods.
1091
- class Http
1092
- include Google::Apis::Core::Hashable
1093
-
1094
- # When set to true, URL path parmeters will be fully URI-decoded except in
1095
- # cases of single segment matches in reserved expansion, where "%2F" will be
1096
- # left encoded.
1097
- # The default behavior is to not decode RFC 6570 reserved characters in multi
1098
- # segment matches.
1099
- # Corresponds to the JSON property `fullyDecodeReservedExpansion`
1100
- # @return [Boolean]
1101
- attr_accessor :fully_decode_reserved_expansion
1102
- alias_method :fully_decode_reserved_expansion?, :fully_decode_reserved_expansion
1103
-
1104
- # A list of HTTP configuration rules that apply to individual API methods.
1105
- # **NOTE:** All service configuration rules follow "last one wins" order.
1106
- # Corresponds to the JSON property `rules`
1107
- # @return [Array<Google::Apis::ServiceuserV1::HttpRule>]
1108
- attr_accessor :rules
1109
-
1110
- def initialize(**args)
1111
- update!(**args)
1112
- end
1113
-
1114
- # Update properties of this object
1115
- def update!(**args)
1116
- @fully_decode_reserved_expansion = args[:fully_decode_reserved_expansion] if args.key?(:fully_decode_reserved_expansion)
1117
- @rules = args[:rules] if args.key?(:rules)
1118
- end
1119
- end
1120
-
1121
- # # gRPC Transcoding
1122
- # gRPC Transcoding is a feature for mapping between a gRPC method and one or
1123
- # more HTTP REST endpoints. It allows developers to build a single API service
1124
- # that supports both gRPC APIs and REST APIs. Many systems, including [Google
1125
- # APIs](https://github.com/googleapis/googleapis),
1126
- # [Cloud Endpoints](https://cloud.google.com/endpoints), [gRPC
1127
- # Gateway](https://github.com/grpc-ecosystem/grpc-gateway),
1128
- # and [Envoy](https://github.com/envoyproxy/envoy) proxy support this feature
1129
- # and use it for large scale production services.
1130
- # `HttpRule` defines the schema of the gRPC/REST mapping. The mapping specifies
1131
- # how different portions of the gRPC request message are mapped to the URL
1132
- # path, URL query parameters, and HTTP request body. It also controls how the
1133
- # gRPC response message is mapped to the HTTP response body. `HttpRule` is
1134
- # typically specified as an `google.api.http` annotation on the gRPC method.
1135
- # Each mapping specifies a URL path template and an HTTP method. The path
1136
- # template may refer to one or more fields in the gRPC request message, as long
1137
- # as each field is a non-repeated field with a primitive (non-message) type.
1138
- # The path template controls how fields of the request message are mapped to
1139
- # the URL path.
1140
- # Example:
1141
- # service Messaging `
1142
- # rpc GetMessage(GetMessageRequest) returns (Message) `
1143
- # option (google.api.http) = `
1144
- # get: "/v1/`name=messages/*"`"
1145
- # `;
1146
- # `
1147
- # `
1148
- # message GetMessageRequest `
1149
- # string name = 1; // Mapped to URL path.
1150
- # `
1151
- # message Message `
1152
- # string text = 1; // The resource content.
1153
- # `
1154
- # This enables an HTTP REST to gRPC mapping as below:
1155
- # HTTP | gRPC
1156
- # -----|-----
1157
- # `GET /v1/messages/123456` | `GetMessage(name: "messages/123456")`
1158
- # Any fields in the request message which are not bound by the path template
1159
- # automatically become HTTP query parameters if there is no HTTP request body.
1160
- # For example:
1161
- # service Messaging `
1162
- # rpc GetMessage(GetMessageRequest) returns (Message) `
1163
- # option (google.api.http) = `
1164
- # get:"/v1/messages/`message_id`"
1165
- # `;
1166
- # `
1167
- # `
1168
- # message GetMessageRequest `
1169
- # message SubMessage `
1170
- # string subfield = 1;
1171
- # `
1172
- # string message_id = 1; // Mapped to URL path.
1173
- # int64 revision = 2; // Mapped to URL query parameter `revision`.
1174
- # SubMessage sub = 3; // Mapped to URL query parameter `sub.subfield`.
1175
- # `
1176
- # This enables a HTTP JSON to RPC mapping as below:
1177
- # HTTP | gRPC
1178
- # -----|-----
1179
- # `GET /v1/messages/123456?revision=2&sub.subfield=foo` | `GetMessage(message_id:
1180
- # "123456" revision: 2 sub: SubMessage(subfield: "foo"))`
1181
- # Note that fields which are mapped to URL query parameters must have a
1182
- # primitive type or a repeated primitive type or a non-repeated message type.
1183
- # In the case of a repeated type, the parameter can be repeated in the URL
1184
- # as `...?param=A&param=B`. In the case of a message type, each field of the
1185
- # message is mapped to a separate parameter, such as
1186
- # `...?foo.a=A&foo.b=B&foo.c=C`.
1187
- # For HTTP methods that allow a request body, the `body` field
1188
- # specifies the mapping. Consider a REST update method on the
1189
- # message resource collection:
1190
- # service Messaging `
1191
- # rpc UpdateMessage(UpdateMessageRequest) returns (Message) `
1192
- # option (google.api.http) = `
1193
- # patch: "/v1/messages/`message_id`"
1194
- # body: "message"
1195
- # `;
1196
- # `
1197
- # `
1198
- # message UpdateMessageRequest `
1199
- # string message_id = 1; // mapped to the URL
1200
- # Message message = 2; // mapped to the body
1201
- # `
1202
- # The following HTTP JSON to RPC mapping is enabled, where the
1203
- # representation of the JSON in the request body is determined by
1204
- # protos JSON encoding:
1205
- # HTTP | gRPC
1206
- # -----|-----
1207
- # `PATCH /v1/messages/123456 ` "text": "Hi!" `` | `UpdateMessage(message_id: "
1208
- # 123456" message ` text: "Hi!" `)`
1209
- # The special name `*` can be used in the body mapping to define that
1210
- # every field not bound by the path template should be mapped to the
1211
- # request body. This enables the following alternative definition of
1212
- # the update method:
1213
- # service Messaging `
1214
- # rpc UpdateMessage(Message) returns (Message) `
1215
- # option (google.api.http) = `
1216
- # patch: "/v1/messages/`message_id`"
1217
- # body: "*"
1218
- # `;
1219
- # `
1220
- # `
1221
- # message Message `
1222
- # string message_id = 1;
1223
- # string text = 2;
1224
- # `
1225
- # The following HTTP JSON to RPC mapping is enabled:
1226
- # HTTP | gRPC
1227
- # -----|-----
1228
- # `PATCH /v1/messages/123456 ` "text": "Hi!" `` | `UpdateMessage(message_id: "
1229
- # 123456" text: "Hi!")`
1230
- # Note that when using `*` in the body mapping, it is not possible to
1231
- # have HTTP parameters, as all fields not bound by the path end in
1232
- # the body. This makes this option more rarely used in practice when
1233
- # defining REST APIs. The common usage of `*` is in custom methods
1234
- # which don't use the URL at all for transferring data.
1235
- # It is possible to define multiple HTTP methods for one RPC by using
1236
- # the `additional_bindings` option. Example:
1237
- # service Messaging `
1238
- # rpc GetMessage(GetMessageRequest) returns (Message) `
1239
- # option (google.api.http) = `
1240
- # get: "/v1/messages/`message_id`"
1241
- # additional_bindings `
1242
- # get: "/v1/users/`user_id`/messages/`message_id`"
1243
- # `
1244
- # `;
1245
- # `
1246
- # `
1247
- # message GetMessageRequest `
1248
- # string message_id = 1;
1249
- # string user_id = 2;
1250
- # `
1251
- # This enables the following two alternative HTTP JSON to RPC mappings:
1252
- # HTTP | gRPC
1253
- # -----|-----
1254
- # `GET /v1/messages/123456` | `GetMessage(message_id: "123456")`
1255
- # `GET /v1/users/me/messages/123456` | `GetMessage(user_id: "me" message_id: "
1256
- # 123456")`
1257
- # ## Rules for HTTP mapping
1258
- # 1. Leaf request fields (recursive expansion nested messages in the request
1259
- # message) are classified into three categories:
1260
- # - Fields referred by the path template. They are passed via the URL path.
1261
- # - Fields referred by the HttpRule.body. They are passed via the HTTP
1262
- # request body.
1263
- # - All other fields are passed via the URL query parameters, and the
1264
- # parameter name is the field path in the request message. A repeated
1265
- # field can be represented as multiple query parameters under the same
1266
- # name.
1267
- # 2. If HttpRule.body is "*", there is no URL query parameter, all fields
1268
- # are passed via URL path and HTTP request body.
1269
- # 3. If HttpRule.body is omitted, there is no HTTP request body, all
1270
- # fields are passed via URL path and URL query parameters.
1271
- # ### Path template syntax
1272
- # Template = "/" Segments [ Verb ] ;
1273
- # Segments = Segment ` "/" Segment ` ;
1274
- # Segment = "*" | "**" | LITERAL | Variable ;
1275
- # Variable = "`" FieldPath [ "=" Segments ] "`" ;
1276
- # FieldPath = IDENT ` "." IDENT ` ;
1277
- # Verb = ":" LITERAL ;
1278
- # The syntax `*` matches a single URL path segment. The syntax `**` matches
1279
- # zero or more URL path segments, which must be the last part of the URL path
1280
- # except the `Verb`.
1281
- # The syntax `Variable` matches part of the URL path as specified by its
1282
- # template. A variable template must not contain other variables. If a variable
1283
- # matches a single path segment, its template may be omitted, e.g. ``var``
1284
- # is equivalent to ``var=*``.
1285
- # The syntax `LITERAL` matches literal text in the URL path. If the `LITERAL`
1286
- # contains any reserved character, such characters should be percent-encoded
1287
- # before the matching.
1288
- # If a variable contains exactly one path segment, such as `"`var`"` or
1289
- # `"`var=*`"`, when such a variable is expanded into a URL path on the client
1290
- # side, all characters except `[-_.~0-9a-zA-Z]` are percent-encoded. The
1291
- # server side does the reverse decoding. Such variables show up in the
1292
- # [Discovery Document](https://developers.google.com/discovery/v1/reference/apis)
1293
- # as ``var``.
1294
- # If a variable contains multiple path segments, such as `"`var=foo/*`"`
1295
- # or `"`var=**`"`, when such a variable is expanded into a URL path on the
1296
- # client side, all characters except `[-_.~/0-9a-zA-Z]` are percent-encoded.
1297
- # The server side does the reverse decoding, except "%2F" and "%2f" are left
1298
- # unchanged. Such variables show up in the
1299
- # [Discovery Document](https://developers.google.com/discovery/v1/reference/apis)
1300
- # as ``+var``.
1301
- # ## Using gRPC API Service Configuration
1302
- # gRPC API Service Configuration (service config) is a configuration language
1303
- # for configuring a gRPC service to become a user-facing product. The
1304
- # service config is simply the YAML representation of the `google.api.Service`
1305
- # proto message.
1306
- # As an alternative to annotating your proto file, you can configure gRPC
1307
- # transcoding in your service config YAML files. You do this by specifying a
1308
- # `HttpRule` that maps the gRPC method to a REST endpoint, achieving the same
1309
- # effect as the proto annotation. This can be particularly useful if you
1310
- # have a proto that is reused in multiple services. Note that any transcoding
1311
- # specified in the service config will override any matching transcoding
1312
- # configuration in the proto.
1313
- # Example:
1314
- # http:
1315
- # rules:
1316
- # # Selects a gRPC method and applies HttpRule to it.
1317
- # - selector: example.v1.Messaging.GetMessage
1318
- # get: /v1/messages/`message_id`/`sub.subfield`
1319
- # ## Special notes
1320
- # When gRPC Transcoding is used to map a gRPC to JSON REST endpoints, the
1321
- # proto to JSON conversion must follow the [proto3
1322
- # specification](https://developers.google.com/protocol-buffers/docs/proto3#json)
1323
- # .
1324
- # While the single segment variable follows the semantics of
1325
- # [RFC 6570](https://tools.ietf.org/html/rfc6570) Section 3.2.2 Simple String
1326
- # Expansion, the multi segment variable **does not** follow RFC 6570 Section
1327
- # 3.2.3 Reserved Expansion. The reason is that the Reserved Expansion
1328
- # does not expand special characters like `?` and `#`, which would lead
1329
- # to invalid URLs. As the result, gRPC Transcoding uses a custom encoding
1330
- # for multi segment variables.
1331
- # The path variables **must not** refer to any repeated or mapped field,
1332
- # because client libraries are not capable of handling such variable expansion.
1333
- # The path variables **must not** capture the leading "/" character. The reason
1334
- # is that the most common use case "`var`" does not capture the leading "/"
1335
- # character. For consistency, all path variables must share the same behavior.
1336
- # Repeated message fields must not be mapped to URL query parameters, because
1337
- # no client library can support such complicated mapping.
1338
- # If an API needs to use a JSON array for request or response body, it can map
1339
- # the request or response body to a repeated field. However, some gRPC
1340
- # Transcoding implementations may not support this feature.
1341
- class HttpRule
1342
- include Google::Apis::Core::Hashable
1343
-
1344
- # Additional HTTP bindings for the selector. Nested bindings must
1345
- # not contain an `additional_bindings` field themselves (that is,
1346
- # the nesting may only be one level deep).
1347
- # Corresponds to the JSON property `additionalBindings`
1348
- # @return [Array<Google::Apis::ServiceuserV1::HttpRule>]
1349
- attr_accessor :additional_bindings
1350
-
1351
- # The name of the request field whose value is mapped to the HTTP request
1352
- # body, or `*` for mapping all request fields not captured by the path
1353
- # pattern to the HTTP body, or omitted for not having any HTTP request body.
1354
- # NOTE: the referred field must be present at the top-level of the request
1355
- # message type.
1356
- # Corresponds to the JSON property `body`
1357
- # @return [String]
1358
- attr_accessor :body
1359
-
1360
- # A custom pattern is used for defining custom HTTP verb.
1361
- # Corresponds to the JSON property `custom`
1362
- # @return [Google::Apis::ServiceuserV1::CustomHttpPattern]
1363
- attr_accessor :custom
1364
-
1365
- # Maps to HTTP DELETE. Used for deleting a resource.
1366
- # Corresponds to the JSON property `delete`
1367
- # @return [String]
1368
- attr_accessor :delete
1369
-
1370
- # Maps to HTTP GET. Used for listing and getting information about
1371
- # resources.
1372
- # Corresponds to the JSON property `get`
1373
- # @return [String]
1374
- attr_accessor :get
1375
-
1376
- # Maps to HTTP PATCH. Used for updating a resource.
1377
- # Corresponds to the JSON property `patch`
1378
- # @return [String]
1379
- attr_accessor :patch
1380
-
1381
- # Maps to HTTP POST. Used for creating a resource or performing an action.
1382
- # Corresponds to the JSON property `post`
1383
- # @return [String]
1384
- attr_accessor :post
1385
-
1386
- # Maps to HTTP PUT. Used for replacing a resource.
1387
- # Corresponds to the JSON property `put`
1388
- # @return [String]
1389
- attr_accessor :put
1390
-
1391
- # Optional. The name of the response field whose value is mapped to the HTTP
1392
- # response body. When omitted, the entire response message will be used
1393
- # as the HTTP response body.
1394
- # NOTE: The referred field must be present at the top-level of the response
1395
- # message type.
1396
- # Corresponds to the JSON property `responseBody`
1397
- # @return [String]
1398
- attr_accessor :response_body
1399
-
1400
- # Selects a method to which this rule applies.
1401
- # Refer to selector for syntax details.
1402
- # Corresponds to the JSON property `selector`
1403
- # @return [String]
1404
- attr_accessor :selector
1405
-
1406
- def initialize(**args)
1407
- update!(**args)
1408
- end
1409
-
1410
- # Update properties of this object
1411
- def update!(**args)
1412
- @additional_bindings = args[:additional_bindings] if args.key?(:additional_bindings)
1413
- @body = args[:body] if args.key?(:body)
1414
- @custom = args[:custom] if args.key?(:custom)
1415
- @delete = args[:delete] if args.key?(:delete)
1416
- @get = args[:get] if args.key?(:get)
1417
- @patch = args[:patch] if args.key?(:patch)
1418
- @post = args[:post] if args.key?(:post)
1419
- @put = args[:put] if args.key?(:put)
1420
- @response_body = args[:response_body] if args.key?(:response_body)
1421
- @selector = args[:selector] if args.key?(:selector)
1422
- end
1423
- end
1424
-
1425
- # A description of a label.
1426
- class LabelDescriptor
1427
- include Google::Apis::Core::Hashable
1428
-
1429
- # A human-readable description for the label.
1430
- # Corresponds to the JSON property `description`
1431
- # @return [String]
1432
- attr_accessor :description
1433
-
1434
- # The label key.
1435
- # Corresponds to the JSON property `key`
1436
- # @return [String]
1437
- attr_accessor :key
1438
-
1439
- # The type of data that can be assigned to the label.
1440
- # Corresponds to the JSON property `valueType`
1441
- # @return [String]
1442
- attr_accessor :value_type
1443
-
1444
- def initialize(**args)
1445
- update!(**args)
1446
- end
1447
-
1448
- # Update properties of this object
1449
- def update!(**args)
1450
- @description = args[:description] if args.key?(:description)
1451
- @key = args[:key] if args.key?(:key)
1452
- @value_type = args[:value_type] if args.key?(:value_type)
1453
- end
1454
- end
1455
-
1456
- # Response message for `ListEnabledServices` method.
1457
- class ListEnabledServicesResponse
1458
- include Google::Apis::Core::Hashable
1459
-
1460
- # Token that can be passed to `ListEnabledServices` to resume a paginated
1461
- # query.
1462
- # Corresponds to the JSON property `nextPageToken`
1463
- # @return [String]
1464
- attr_accessor :next_page_token
1465
-
1466
- # Services enabled for the specified parent.
1467
- # Corresponds to the JSON property `services`
1468
- # @return [Array<Google::Apis::ServiceuserV1::PublishedService>]
1469
- attr_accessor :services
1470
-
1471
- def initialize(**args)
1472
- update!(**args)
1473
- end
1474
-
1475
- # Update properties of this object
1476
- def update!(**args)
1477
- @next_page_token = args[:next_page_token] if args.key?(:next_page_token)
1478
- @services = args[:services] if args.key?(:services)
1479
- end
1480
- end
1481
-
1482
- # A description of a log type. Example in YAML format:
1483
- # - name: library.googleapis.com/activity_history
1484
- # description: The history of borrowing and returning library items.
1485
- # display_name: Activity
1486
- # labels:
1487
- # - key: /customer_id
1488
- # description: Identifier of a library customer
1489
- class LogDescriptor
1490
- include Google::Apis::Core::Hashable
1491
-
1492
- # A human-readable description of this log. This information appears in
1493
- # the documentation and can contain details.
1494
- # Corresponds to the JSON property `description`
1495
- # @return [String]
1496
- attr_accessor :description
1497
-
1498
- # The human-readable name for this log. This information appears on
1499
- # the user interface and should be concise.
1500
- # Corresponds to the JSON property `displayName`
1501
- # @return [String]
1502
- attr_accessor :display_name
1503
-
1504
- # The set of labels that are available to describe a specific log entry.
1505
- # Runtime requests that contain labels not specified here are
1506
- # considered invalid.
1507
- # Corresponds to the JSON property `labels`
1508
- # @return [Array<Google::Apis::ServiceuserV1::LabelDescriptor>]
1509
- attr_accessor :labels
1510
-
1511
- # The name of the log. It must be less than 512 characters long and can
1512
- # include the following characters: upper- and lower-case alphanumeric
1513
- # characters [A-Za-z0-9], and punctuation characters including
1514
- # slash, underscore, hyphen, period [/_-.].
1515
- # Corresponds to the JSON property `name`
1516
- # @return [String]
1517
- attr_accessor :name
1518
-
1519
- def initialize(**args)
1520
- update!(**args)
1521
- end
1522
-
1523
- # Update properties of this object
1524
- def update!(**args)
1525
- @description = args[:description] if args.key?(:description)
1526
- @display_name = args[:display_name] if args.key?(:display_name)
1527
- @labels = args[:labels] if args.key?(:labels)
1528
- @name = args[:name] if args.key?(:name)
1529
- end
1530
- end
1531
-
1532
- # Logging configuration of the service.
1533
- # The following example shows how to configure logs to be sent to the
1534
- # producer and consumer projects. In the example, the `activity_history`
1535
- # log is sent to both the producer and consumer projects, whereas the
1536
- # `purchase_history` log is only sent to the producer project.
1537
- # monitored_resources:
1538
- # - type: library.googleapis.com/branch
1539
- # labels:
1540
- # - key: /city
1541
- # description: The city where the library branch is located in.
1542
- # - key: /name
1543
- # description: The name of the branch.
1544
- # logs:
1545
- # - name: activity_history
1546
- # labels:
1547
- # - key: /customer_id
1548
- # - name: purchase_history
1549
- # logging:
1550
- # producer_destinations:
1551
- # - monitored_resource: library.googleapis.com/branch
1552
- # logs:
1553
- # - activity_history
1554
- # - purchase_history
1555
- # consumer_destinations:
1556
- # - monitored_resource: library.googleapis.com/branch
1557
- # logs:
1558
- # - activity_history
1559
- class Logging
1560
- include Google::Apis::Core::Hashable
1561
-
1562
- # Logging configurations for sending logs to the consumer project.
1563
- # There can be multiple consumer destinations, each one must have a
1564
- # different monitored resource type. A log can be used in at most
1565
- # one consumer destination.
1566
- # Corresponds to the JSON property `consumerDestinations`
1567
- # @return [Array<Google::Apis::ServiceuserV1::LoggingDestination>]
1568
- attr_accessor :consumer_destinations
1569
-
1570
- # Logging configurations for sending logs to the producer project.
1571
- # There can be multiple producer destinations, each one must have a
1572
- # different monitored resource type. A log can be used in at most
1573
- # one producer destination.
1574
- # Corresponds to the JSON property `producerDestinations`
1575
- # @return [Array<Google::Apis::ServiceuserV1::LoggingDestination>]
1576
- attr_accessor :producer_destinations
1577
-
1578
- def initialize(**args)
1579
- update!(**args)
1580
- end
1581
-
1582
- # Update properties of this object
1583
- def update!(**args)
1584
- @consumer_destinations = args[:consumer_destinations] if args.key?(:consumer_destinations)
1585
- @producer_destinations = args[:producer_destinations] if args.key?(:producer_destinations)
1586
- end
1587
- end
1588
-
1589
- # Configuration of a specific logging destination (the producer project
1590
- # or the consumer project).
1591
- class LoggingDestination
1592
- include Google::Apis::Core::Hashable
1593
-
1594
- # Names of the logs to be sent to this destination. Each name must
1595
- # be defined in the Service.logs section. If the log name is
1596
- # not a domain scoped name, it will be automatically prefixed with
1597
- # the service name followed by "/".
1598
- # Corresponds to the JSON property `logs`
1599
- # @return [Array<String>]
1600
- attr_accessor :logs
1601
-
1602
- # The monitored resource type. The type must be defined in the
1603
- # Service.monitored_resources section.
1604
- # Corresponds to the JSON property `monitoredResource`
1605
- # @return [String]
1606
- attr_accessor :monitored_resource
1607
-
1608
- def initialize(**args)
1609
- update!(**args)
1610
- end
1611
-
1612
- # Update properties of this object
1613
- def update!(**args)
1614
- @logs = args[:logs] if args.key?(:logs)
1615
- @monitored_resource = args[:monitored_resource] if args.key?(:monitored_resource)
1616
- end
1617
- end
1618
-
1619
- # Method represents a method of an API interface.
1620
- class MethodProp
1621
- include Google::Apis::Core::Hashable
1622
-
1623
- # The simple name of this method.
1624
- # Corresponds to the JSON property `name`
1625
- # @return [String]
1626
- attr_accessor :name
1627
-
1628
- # Any metadata attached to the method.
1629
- # Corresponds to the JSON property `options`
1630
- # @return [Array<Google::Apis::ServiceuserV1::Option>]
1631
- attr_accessor :options
1632
-
1633
- # If true, the request is streamed.
1634
- # Corresponds to the JSON property `requestStreaming`
1635
- # @return [Boolean]
1636
- attr_accessor :request_streaming
1637
- alias_method :request_streaming?, :request_streaming
1638
-
1639
- # A URL of the input message type.
1640
- # Corresponds to the JSON property `requestTypeUrl`
1641
- # @return [String]
1642
- attr_accessor :request_type_url
1643
-
1644
- # If true, the response is streamed.
1645
- # Corresponds to the JSON property `responseStreaming`
1646
- # @return [Boolean]
1647
- attr_accessor :response_streaming
1648
- alias_method :response_streaming?, :response_streaming
1649
-
1650
- # The URL of the output message type.
1651
- # Corresponds to the JSON property `responseTypeUrl`
1652
- # @return [String]
1653
- attr_accessor :response_type_url
1654
-
1655
- # The source syntax of this method.
1656
- # Corresponds to the JSON property `syntax`
1657
- # @return [String]
1658
- attr_accessor :syntax
1659
-
1660
- def initialize(**args)
1661
- update!(**args)
1662
- end
1663
-
1664
- # Update properties of this object
1665
- def update!(**args)
1666
- @name = args[:name] if args.key?(:name)
1667
- @options = args[:options] if args.key?(:options)
1668
- @request_streaming = args[:request_streaming] if args.key?(:request_streaming)
1669
- @request_type_url = args[:request_type_url] if args.key?(:request_type_url)
1670
- @response_streaming = args[:response_streaming] if args.key?(:response_streaming)
1671
- @response_type_url = args[:response_type_url] if args.key?(:response_type_url)
1672
- @syntax = args[:syntax] if args.key?(:syntax)
1673
- end
1674
- end
1675
-
1676
- # Defines a metric type and its schema. Once a metric descriptor is created,
1677
- # deleting or altering it stops data collection and makes the metric type's
1678
- # existing data unusable.
1679
- class MetricDescriptor
1680
- include Google::Apis::Core::Hashable
1681
-
1682
- # A detailed description of the metric, which can be used in documentation.
1683
- # Corresponds to the JSON property `description`
1684
- # @return [String]
1685
- attr_accessor :description
1686
-
1687
- # A concise name for the metric, which can be displayed in user interfaces.
1688
- # Use sentence case without an ending period, for example "Request count".
1689
- # This field is optional but it is recommended to be set for any metrics
1690
- # associated with user-visible concepts, such as Quota.
1691
- # Corresponds to the JSON property `displayName`
1692
- # @return [String]
1693
- attr_accessor :display_name
1694
-
1695
- # The set of labels that can be used to describe a specific
1696
- # instance of this metric type. For example, the
1697
- # `appengine.googleapis.com/http/server/response_latencies` metric
1698
- # type has a label for the HTTP response code, `response_code`, so
1699
- # you can look at latencies for successful responses or just
1700
- # for responses that failed.
1701
- # Corresponds to the JSON property `labels`
1702
- # @return [Array<Google::Apis::ServiceuserV1::LabelDescriptor>]
1703
- attr_accessor :labels
1704
-
1705
- # Additional annotations that can be used to guide the usage of a metric.
1706
- # Corresponds to the JSON property `metadata`
1707
- # @return [Google::Apis::ServiceuserV1::MetricDescriptorMetadata]
1708
- attr_accessor :metadata
1709
-
1710
- # Whether the metric records instantaneous values, changes to a value, etc.
1711
- # Some combinations of `metric_kind` and `value_type` might not be supported.
1712
- # Corresponds to the JSON property `metricKind`
1713
- # @return [String]
1714
- attr_accessor :metric_kind
1715
-
1716
- # The resource name of the metric descriptor.
1717
- # Corresponds to the JSON property `name`
1718
- # @return [String]
1719
- attr_accessor :name
1720
-
1721
- # The metric type, including its DNS name prefix. The type is not
1722
- # URL-encoded. All user-defined metric types have the DNS name
1723
- # `custom.googleapis.com` or `external.googleapis.com`. Metric types should
1724
- # use a natural hierarchical grouping. For example:
1725
- # "custom.googleapis.com/invoice/paid/amount"
1726
- # "external.googleapis.com/prometheus/up"
1727
- # "appengine.googleapis.com/http/server/response_latencies"
1728
- # Corresponds to the JSON property `type`
1729
- # @return [String]
1730
- attr_accessor :type
1731
-
1732
- # The unit in which the metric value is reported. It is only applicable
1733
- # if the `value_type` is `INT64`, `DOUBLE`, or `DISTRIBUTION`. The
1734
- # supported units are a subset of [The Unified Code for Units of
1735
- # Measure](http://unitsofmeasure.org/ucum.html) standard:
1736
- # **Basic units (UNIT)**
1737
- # * `bit` bit
1738
- # * `By` byte
1739
- # * `s` second
1740
- # * `min` minute
1741
- # * `h` hour
1742
- # * `d` day
1743
- # **Prefixes (PREFIX)**
1744
- # * `k` kilo (10**3)
1745
- # * `M` mega (10**6)
1746
- # * `G` giga (10**9)
1747
- # * `T` tera (10**12)
1748
- # * `P` peta (10**15)
1749
- # * `E` exa (10**18)
1750
- # * `Z` zetta (10**21)
1751
- # * `Y` yotta (10**24)
1752
- # * `m` milli (10**-3)
1753
- # * `u` micro (10**-6)
1754
- # * `n` nano (10**-9)
1755
- # * `p` pico (10**-12)
1756
- # * `f` femto (10**-15)
1757
- # * `a` atto (10**-18)
1758
- # * `z` zepto (10**-21)
1759
- # * `y` yocto (10**-24)
1760
- # * `Ki` kibi (2**10)
1761
- # * `Mi` mebi (2**20)
1762
- # * `Gi` gibi (2**30)
1763
- # * `Ti` tebi (2**40)
1764
- # **Grammar**
1765
- # The grammar also includes these connectors:
1766
- # * `/` division (as an infix operator, e.g. `1/s`).
1767
- # * `.` multiplication (as an infix operator, e.g. `GBy.d`)
1768
- # The grammar for a unit is as follows:
1769
- # Expression = Component ` "." Component ` ` "/" Component ` ;
1770
- # Component = ( [ PREFIX ] UNIT | "%" ) [ Annotation ]
1771
- # | Annotation
1772
- # | "1"
1773
- # ;
1774
- # Annotation = "`" NAME "`" ;
1775
- # Notes:
1776
- # * `Annotation` is just a comment if it follows a `UNIT` and is
1777
- # equivalent to `1` if it is used alone. For examples,
1778
- # ``requests`/s == 1/s`, `By`transmitted`/s == By/s`.
1779
- # * `NAME` is a sequence of non-blank printable ASCII characters not
1780
- # containing '`' or '`'.
1781
- # * `1` represents dimensionless value 1, such as in `1/s`.
1782
- # * `%` represents dimensionless value 1/100, and annotates values giving
1783
- # a percentage.
1784
- # Corresponds to the JSON property `unit`
1785
- # @return [String]
1786
- attr_accessor :unit
1787
-
1788
- # Whether the measurement is an integer, a floating-point number, etc.
1789
- # Some combinations of `metric_kind` and `value_type` might not be supported.
1790
- # Corresponds to the JSON property `valueType`
1791
- # @return [String]
1792
- attr_accessor :value_type
1793
-
1794
- def initialize(**args)
1795
- update!(**args)
1796
- end
1797
-
1798
- # Update properties of this object
1799
- def update!(**args)
1800
- @description = args[:description] if args.key?(:description)
1801
- @display_name = args[:display_name] if args.key?(:display_name)
1802
- @labels = args[:labels] if args.key?(:labels)
1803
- @metadata = args[:metadata] if args.key?(:metadata)
1804
- @metric_kind = args[:metric_kind] if args.key?(:metric_kind)
1805
- @name = args[:name] if args.key?(:name)
1806
- @type = args[:type] if args.key?(:type)
1807
- @unit = args[:unit] if args.key?(:unit)
1808
- @value_type = args[:value_type] if args.key?(:value_type)
1809
- end
1810
- end
1811
-
1812
- # Additional annotations that can be used to guide the usage of a metric.
1813
- class MetricDescriptorMetadata
1814
- include Google::Apis::Core::Hashable
1815
-
1816
- # The delay of data points caused by ingestion. Data points older than this
1817
- # age are guaranteed to be ingested and available to be read, excluding
1818
- # data loss due to errors.
1819
- # Corresponds to the JSON property `ingestDelay`
1820
- # @return [String]
1821
- attr_accessor :ingest_delay
1822
-
1823
- # The launch stage of the metric definition.
1824
- # Corresponds to the JSON property `launchStage`
1825
- # @return [String]
1826
- attr_accessor :launch_stage
1827
-
1828
- # The sampling period of metric data points. For metrics which are written
1829
- # periodically, consecutive data points are stored at this time interval,
1830
- # excluding data loss due to errors. Metrics with a higher granularity have
1831
- # a smaller sampling period.
1832
- # Corresponds to the JSON property `samplePeriod`
1833
- # @return [String]
1834
- attr_accessor :sample_period
1835
-
1836
- def initialize(**args)
1837
- update!(**args)
1838
- end
1839
-
1840
- # Update properties of this object
1841
- def update!(**args)
1842
- @ingest_delay = args[:ingest_delay] if args.key?(:ingest_delay)
1843
- @launch_stage = args[:launch_stage] if args.key?(:launch_stage)
1844
- @sample_period = args[:sample_period] if args.key?(:sample_period)
1845
- end
1846
- end
1847
-
1848
- # Bind API methods to metrics. Binding a method to a metric causes that
1849
- # metric's configured quota behaviors to apply to the method call.
1850
- class MetricRule
1851
- include Google::Apis::Core::Hashable
1852
-
1853
- # Metrics to update when the selected methods are called, and the associated
1854
- # cost applied to each metric.
1855
- # The key of the map is the metric name, and the values are the amount
1856
- # increased for the metric against which the quota limits are defined.
1857
- # The value must not be negative.
1858
- # Corresponds to the JSON property `metricCosts`
1859
- # @return [Hash<String,Fixnum>]
1860
- attr_accessor :metric_costs
1861
-
1862
- # Selects the methods to which this rule applies.
1863
- # Refer to selector for syntax details.
1864
- # Corresponds to the JSON property `selector`
1865
- # @return [String]
1866
- attr_accessor :selector
1867
-
1868
- def initialize(**args)
1869
- update!(**args)
1870
- end
1871
-
1872
- # Update properties of this object
1873
- def update!(**args)
1874
- @metric_costs = args[:metric_costs] if args.key?(:metric_costs)
1875
- @selector = args[:selector] if args.key?(:selector)
1876
- end
1877
- end
1878
-
1879
- # Declares an API Interface to be included in this interface. The including
1880
- # interface must redeclare all the methods from the included interface, but
1881
- # documentation and options are inherited as follows:
1882
- # - If after comment and whitespace stripping, the documentation
1883
- # string of the redeclared method is empty, it will be inherited
1884
- # from the original method.
1885
- # - Each annotation belonging to the service config (http,
1886
- # visibility) which is not set in the redeclared method will be
1887
- # inherited.
1888
- # - If an http annotation is inherited, the path pattern will be
1889
- # modified as follows. Any version prefix will be replaced by the
1890
- # version of the including interface plus the root path if
1891
- # specified.
1892
- # Example of a simple mixin:
1893
- # package google.acl.v1;
1894
- # service AccessControl `
1895
- # // Get the underlying ACL object.
1896
- # rpc GetAcl(GetAclRequest) returns (Acl) `
1897
- # option (google.api.http).get = "/v1/`resource=**`:getAcl";
1898
- # `
1899
- # `
1900
- # package google.storage.v2;
1901
- # service Storage `
1902
- # // rpc GetAcl(GetAclRequest) returns (Acl);
1903
- # // Get a data record.
1904
- # rpc GetData(GetDataRequest) returns (Data) `
1905
- # option (google.api.http).get = "/v2/`resource=**`";
1906
- # `
1907
- # `
1908
- # Example of a mixin configuration:
1909
- # apis:
1910
- # - name: google.storage.v2.Storage
1911
- # mixins:
1912
- # - name: google.acl.v1.AccessControl
1913
- # The mixin construct implies that all methods in `AccessControl` are
1914
- # also declared with same name and request/response types in
1915
- # `Storage`. A documentation generator or annotation processor will
1916
- # see the effective `Storage.GetAcl` method after inherting
1917
- # documentation and annotations as follows:
1918
- # service Storage `
1919
- # // Get the underlying ACL object.
1920
- # rpc GetAcl(GetAclRequest) returns (Acl) `
1921
- # option (google.api.http).get = "/v2/`resource=**`:getAcl";
1922
- # `
1923
- # ...
1924
- # `
1925
- # Note how the version in the path pattern changed from `v1` to `v2`.
1926
- # If the `root` field in the mixin is specified, it should be a
1927
- # relative path under which inherited HTTP paths are placed. Example:
1928
- # apis:
1929
- # - name: google.storage.v2.Storage
1930
- # mixins:
1931
- # - name: google.acl.v1.AccessControl
1932
- # root: acls
1933
- # This implies the following inherited HTTP annotation:
1934
- # service Storage `
1935
- # // Get the underlying ACL object.
1936
- # rpc GetAcl(GetAclRequest) returns (Acl) `
1937
- # option (google.api.http).get = "/v2/acls/`resource=**`:getAcl";
1938
- # `
1939
- # ...
1940
- # `
1941
- class Mixin
1942
- include Google::Apis::Core::Hashable
1943
-
1944
- # The fully qualified name of the interface which is included.
1945
- # Corresponds to the JSON property `name`
1946
- # @return [String]
1947
- attr_accessor :name
1948
-
1949
- # If non-empty specifies a path under which inherited HTTP paths
1950
- # are rooted.
1951
- # Corresponds to the JSON property `root`
1952
- # @return [String]
1953
- attr_accessor :root
1954
-
1955
- def initialize(**args)
1956
- update!(**args)
1957
- end
1958
-
1959
- # Update properties of this object
1960
- def update!(**args)
1961
- @name = args[:name] if args.key?(:name)
1962
- @root = args[:root] if args.key?(:root)
1963
- end
1964
- end
1965
-
1966
- # An object that describes the schema of a MonitoredResource object using a
1967
- # type name and a set of labels. For example, the monitored resource
1968
- # descriptor for Google Compute Engine VM instances has a type of
1969
- # `"gce_instance"` and specifies the use of the labels `"instance_id"` and
1970
- # `"zone"` to identify particular VM instances.
1971
- # Different APIs can support different monitored resource types. APIs generally
1972
- # provide a `list` method that returns the monitored resource descriptors used
1973
- # by the API.
1974
- class MonitoredResourceDescriptor
1975
- include Google::Apis::Core::Hashable
1976
-
1977
- # Optional. A detailed description of the monitored resource type that might
1978
- # be used in documentation.
1979
- # Corresponds to the JSON property `description`
1980
- # @return [String]
1981
- attr_accessor :description
1982
-
1983
- # Optional. A concise name for the monitored resource type that might be
1984
- # displayed in user interfaces. It should be a Title Cased Noun Phrase,
1985
- # without any article or other determiners. For example,
1986
- # `"Google Cloud SQL Database"`.
1987
- # Corresponds to the JSON property `displayName`
1988
- # @return [String]
1989
- attr_accessor :display_name
1990
-
1991
- # Required. A set of labels used to describe instances of this monitored
1992
- # resource type. For example, an individual Google Cloud SQL database is
1993
- # identified by values for the labels `"database_id"` and `"zone"`.
1994
- # Corresponds to the JSON property `labels`
1995
- # @return [Array<Google::Apis::ServiceuserV1::LabelDescriptor>]
1996
- attr_accessor :labels
1997
-
1998
- # Optional. The resource name of the monitored resource descriptor:
1999
- # `"projects/`project_id`/monitoredResourceDescriptors/`type`"` where
2000
- # `type` is the value of the `type` field in this object and
2001
- # `project_id` is a project ID that provides API-specific context for
2002
- # accessing the type. APIs that do not use project information can use the
2003
- # resource name format `"monitoredResourceDescriptors/`type`"`.
2004
- # Corresponds to the JSON property `name`
2005
- # @return [String]
2006
- attr_accessor :name
2007
-
2008
- # Required. The monitored resource type. For example, the type
2009
- # `"cloudsql_database"` represents databases in Google Cloud SQL.
2010
- # The maximum length of this value is 256 characters.
2011
- # Corresponds to the JSON property `type`
2012
- # @return [String]
2013
- attr_accessor :type
2014
-
2015
- def initialize(**args)
2016
- update!(**args)
2017
- end
2018
-
2019
- # Update properties of this object
2020
- def update!(**args)
2021
- @description = args[:description] if args.key?(:description)
2022
- @display_name = args[:display_name] if args.key?(:display_name)
2023
- @labels = args[:labels] if args.key?(:labels)
2024
- @name = args[:name] if args.key?(:name)
2025
- @type = args[:type] if args.key?(:type)
2026
- end
2027
- end
2028
-
2029
- # Monitoring configuration of the service.
2030
- # The example below shows how to configure monitored resources and metrics
2031
- # for monitoring. In the example, a monitored resource and two metrics are
2032
- # defined. The `library.googleapis.com/book/returned_count` metric is sent
2033
- # to both producer and consumer projects, whereas the
2034
- # `library.googleapis.com/book/overdue_count` metric is only sent to the
2035
- # consumer project.
2036
- # monitored_resources:
2037
- # - type: library.googleapis.com/branch
2038
- # labels:
2039
- # - key: /city
2040
- # description: The city where the library branch is located in.
2041
- # - key: /name
2042
- # description: The name of the branch.
2043
- # metrics:
2044
- # - name: library.googleapis.com/book/returned_count
2045
- # metric_kind: DELTA
2046
- # value_type: INT64
2047
- # labels:
2048
- # - key: /customer_id
2049
- # - name: library.googleapis.com/book/overdue_count
2050
- # metric_kind: GAUGE
2051
- # value_type: INT64
2052
- # labels:
2053
- # - key: /customer_id
2054
- # monitoring:
2055
- # producer_destinations:
2056
- # - monitored_resource: library.googleapis.com/branch
2057
- # metrics:
2058
- # - library.googleapis.com/book/returned_count
2059
- # consumer_destinations:
2060
- # - monitored_resource: library.googleapis.com/branch
2061
- # metrics:
2062
- # - library.googleapis.com/book/returned_count
2063
- # - library.googleapis.com/book/overdue_count
2064
- class Monitoring
2065
- include Google::Apis::Core::Hashable
2066
-
2067
- # Monitoring configurations for sending metrics to the consumer project.
2068
- # There can be multiple consumer destinations, each one must have a
2069
- # different monitored resource type. A metric can be used in at most
2070
- # one consumer destination.
2071
- # Corresponds to the JSON property `consumerDestinations`
2072
- # @return [Array<Google::Apis::ServiceuserV1::MonitoringDestination>]
2073
- attr_accessor :consumer_destinations
2074
-
2075
- # Monitoring configurations for sending metrics to the producer project.
2076
- # There can be multiple producer destinations, each one must have a
2077
- # different monitored resource type. A metric can be used in at most
2078
- # one producer destination.
2079
- # Corresponds to the JSON property `producerDestinations`
2080
- # @return [Array<Google::Apis::ServiceuserV1::MonitoringDestination>]
2081
- attr_accessor :producer_destinations
2082
-
2083
- def initialize(**args)
2084
- update!(**args)
2085
- end
2086
-
2087
- # Update properties of this object
2088
- def update!(**args)
2089
- @consumer_destinations = args[:consumer_destinations] if args.key?(:consumer_destinations)
2090
- @producer_destinations = args[:producer_destinations] if args.key?(:producer_destinations)
2091
- end
2092
- end
2093
-
2094
- # Configuration of a specific monitoring destination (the producer project
2095
- # or the consumer project).
2096
- class MonitoringDestination
2097
- include Google::Apis::Core::Hashable
2098
-
2099
- # Names of the metrics to report to this monitoring destination.
2100
- # Each name must be defined in Service.metrics section.
2101
- # Corresponds to the JSON property `metrics`
2102
- # @return [Array<String>]
2103
- attr_accessor :metrics
2104
-
2105
- # The monitored resource type. The type must be defined in
2106
- # Service.monitored_resources section.
2107
- # Corresponds to the JSON property `monitoredResource`
2108
- # @return [String]
2109
- attr_accessor :monitored_resource
2110
-
2111
- def initialize(**args)
2112
- update!(**args)
2113
- end
2114
-
2115
- # Update properties of this object
2116
- def update!(**args)
2117
- @metrics = args[:metrics] if args.key?(:metrics)
2118
- @monitored_resource = args[:monitored_resource] if args.key?(:monitored_resource)
2119
- end
2120
- end
2121
-
2122
- # OAuth scopes are a way to define data and permissions on data. For example,
2123
- # there are scopes defined for "Read-only access to Google Calendar" and
2124
- # "Access to Cloud Platform". Users can consent to a scope for an application,
2125
- # giving it permission to access that data on their behalf.
2126
- # OAuth scope specifications should be fairly coarse grained; a user will need
2127
- # to see and understand the text description of what your scope means.
2128
- # In most cases: use one or at most two OAuth scopes for an entire family of
2129
- # products. If your product has multiple APIs, you should probably be sharing
2130
- # the OAuth scope across all of those APIs.
2131
- # When you need finer grained OAuth consent screens: talk with your product
2132
- # management about how developers will use them in practice.
2133
- # Please note that even though each of the canonical scopes is enough for a
2134
- # request to be accepted and passed to the backend, a request can still fail
2135
- # due to the backend requiring additional scopes or permissions.
2136
- class OAuthRequirements
2137
- include Google::Apis::Core::Hashable
2138
-
2139
- # The list of publicly documented OAuth scopes that are allowed access. An
2140
- # OAuth token containing any of these scopes will be accepted.
2141
- # Example:
2142
- # canonical_scopes: https://www.googleapis.com/auth/calendar,
2143
- # https://www.googleapis.com/auth/calendar.read
2144
- # Corresponds to the JSON property `canonicalScopes`
2145
- # @return [String]
2146
- attr_accessor :canonical_scopes
2147
-
2148
- def initialize(**args)
2149
- update!(**args)
2150
- end
2151
-
2152
- # Update properties of this object
2153
- def update!(**args)
2154
- @canonical_scopes = args[:canonical_scopes] if args.key?(:canonical_scopes)
2155
- end
2156
- end
2157
-
2158
- # This resource represents a long-running operation that is the result of a
2159
- # network API call.
2160
- class Operation
2161
- include Google::Apis::Core::Hashable
2162
-
2163
- # If the value is `false`, it means the operation is still in progress.
2164
- # If `true`, the operation is completed, and either `error` or `response` is
2165
- # available.
2166
- # Corresponds to the JSON property `done`
2167
- # @return [Boolean]
2168
- attr_accessor :done
2169
- alias_method :done?, :done
2170
-
2171
- # The `Status` type defines a logical error model that is suitable for different
2172
- # programming environments, including REST APIs and RPC APIs. It is used by
2173
- # [gRPC](https://github.com/grpc). The error model is designed to be:
2174
- # - Simple to use and understand for most users
2175
- # - Flexible enough to meet unexpected needs
2176
- # # Overview
2177
- # The `Status` message contains three pieces of data: error code, error message,
2178
- # and error details. The error code should be an enum value of
2179
- # google.rpc.Code, but it may accept additional error codes if needed. The
2180
- # error message should be a developer-facing English message that helps
2181
- # developers *understand* and *resolve* the error. If a localized user-facing
2182
- # error message is needed, put the localized message in the error details or
2183
- # localize it in the client. The optional error details may contain arbitrary
2184
- # information about the error. There is a predefined set of error detail types
2185
- # in the package `google.rpc` that can be used for common error conditions.
2186
- # # Language mapping
2187
- # The `Status` message is the logical representation of the error model, but it
2188
- # is not necessarily the actual wire format. When the `Status` message is
2189
- # exposed in different client libraries and different wire protocols, it can be
2190
- # mapped differently. For example, it will likely be mapped to some exceptions
2191
- # in Java, but more likely mapped to some error codes in C.
2192
- # # Other uses
2193
- # The error model and the `Status` message can be used in a variety of
2194
- # environments, either with or without APIs, to provide a
2195
- # consistent developer experience across different environments.
2196
- # Example uses of this error model include:
2197
- # - Partial errors. If a service needs to return partial errors to the client,
2198
- # it may embed the `Status` in the normal response to indicate the partial
2199
- # errors.
2200
- # - Workflow errors. A typical workflow has multiple steps. Each step may
2201
- # have a `Status` message for error reporting.
2202
- # - Batch operations. If a client uses batch request and batch response, the
2203
- # `Status` message should be used directly inside batch response, one for
2204
- # each error sub-response.
2205
- # - Asynchronous operations. If an API call embeds asynchronous operation
2206
- # results in its response, the status of those operations should be
2207
- # represented directly using the `Status` message.
2208
- # - Logging. If some API errors are stored in logs, the message `Status` could
2209
- # be used directly after any stripping needed for security/privacy reasons.
2210
- # Corresponds to the JSON property `error`
2211
- # @return [Google::Apis::ServiceuserV1::Status]
2212
- attr_accessor :error
2213
-
2214
- # Service-specific metadata associated with the operation. It typically
2215
- # contains progress information and common metadata such as create time.
2216
- # Some services might not provide such metadata. Any method that returns a
2217
- # long-running operation should document the metadata type, if any.
2218
- # Corresponds to the JSON property `metadata`
2219
- # @return [Hash<String,Object>]
2220
- attr_accessor :metadata
2221
-
2222
- # The server-assigned name, which is only unique within the same service that
2223
- # originally returns it. If you use the default HTTP mapping, the
2224
- # `name` should have the format of `operations/some/unique/name`.
2225
- # Corresponds to the JSON property `name`
2226
- # @return [String]
2227
- attr_accessor :name
2228
-
2229
- # The normal response of the operation in case of success. If the original
2230
- # method returns no data on success, such as `Delete`, the response is
2231
- # `google.protobuf.Empty`. If the original method is standard
2232
- # `Get`/`Create`/`Update`, the response should be the resource. For other
2233
- # methods, the response should have the type `XxxResponse`, where `Xxx`
2234
- # is the original method name. For example, if the original method name
2235
- # is `TakeSnapshot()`, the inferred response type is
2236
- # `TakeSnapshotResponse`.
2237
- # Corresponds to the JSON property `response`
2238
- # @return [Hash<String,Object>]
2239
- attr_accessor :response
2240
-
2241
- def initialize(**args)
2242
- update!(**args)
2243
- end
2244
-
2245
- # Update properties of this object
2246
- def update!(**args)
2247
- @done = args[:done] if args.key?(:done)
2248
- @error = args[:error] if args.key?(:error)
2249
- @metadata = args[:metadata] if args.key?(:metadata)
2250
- @name = args[:name] if args.key?(:name)
2251
- @response = args[:response] if args.key?(:response)
2252
- end
2253
- end
2254
-
2255
- # The metadata associated with a long running operation resource.
2256
- class OperationMetadata
2257
- include Google::Apis::Core::Hashable
2258
-
2259
- # Percentage of completion of this operation, ranging from 0 to 100.
2260
- # Corresponds to the JSON property `progressPercentage`
2261
- # @return [Fixnum]
2262
- attr_accessor :progress_percentage
2263
-
2264
- # The full name of the resources that this operation is directly
2265
- # associated with.
2266
- # Corresponds to the JSON property `resourceNames`
2267
- # @return [Array<String>]
2268
- attr_accessor :resource_names
2269
-
2270
- # The start time of the operation.
2271
- # Corresponds to the JSON property `startTime`
2272
- # @return [String]
2273
- attr_accessor :start_time
2274
-
2275
- # Detailed status information for each step. The order is undetermined.
2276
- # Corresponds to the JSON property `steps`
2277
- # @return [Array<Google::Apis::ServiceuserV1::Step>]
2278
- attr_accessor :steps
2279
-
2280
- def initialize(**args)
2281
- update!(**args)
2282
- end
2283
-
2284
- # Update properties of this object
2285
- def update!(**args)
2286
- @progress_percentage = args[:progress_percentage] if args.key?(:progress_percentage)
2287
- @resource_names = args[:resource_names] if args.key?(:resource_names)
2288
- @start_time = args[:start_time] if args.key?(:start_time)
2289
- @steps = args[:steps] if args.key?(:steps)
2290
- end
2291
- end
2292
-
2293
- # A protocol buffer option, which can be attached to a message, field,
2294
- # enumeration, etc.
2295
- class Option
2296
- include Google::Apis::Core::Hashable
2297
-
2298
- # The option's name. For protobuf built-in options (options defined in
2299
- # descriptor.proto), this is the short name. For example, `"map_entry"`.
2300
- # For custom options, it should be the fully-qualified name. For example,
2301
- # `"google.api.http"`.
2302
- # Corresponds to the JSON property `name`
2303
- # @return [String]
2304
- attr_accessor :name
2305
-
2306
- # The option's value packed in an Any message. If the value is a primitive,
2307
- # the corresponding wrapper type defined in google/protobuf/wrappers.proto
2308
- # should be used. If the value is an enum, it should be stored as an int32
2309
- # value using the google.protobuf.Int32Value type.
2310
- # Corresponds to the JSON property `value`
2311
- # @return [Hash<String,Object>]
2312
- attr_accessor :value
2313
-
2314
- def initialize(**args)
2315
- update!(**args)
2316
- end
2317
-
2318
- # Update properties of this object
2319
- def update!(**args)
2320
- @name = args[:name] if args.key?(:name)
2321
- @value = args[:value] if args.key?(:value)
2322
- end
2323
- end
2324
-
2325
- # Represents a documentation page. A page can contain subpages to represent
2326
- # nested documentation set structure.
2327
- class Page
2328
- include Google::Apis::Core::Hashable
2329
-
2330
- # The Markdown content of the page. You can use <code>&#40;== include `path` ==&#
2331
- # 41;</code>
2332
- # to include content from a Markdown file.
2333
- # Corresponds to the JSON property `content`
2334
- # @return [String]
2335
- attr_accessor :content
2336
-
2337
- # The name of the page. It will be used as an identity of the page to
2338
- # generate URI of the page, text of the link to this page in navigation,
2339
- # etc. The full page name (start from the root page name to this page
2340
- # concatenated with `.`) can be used as reference to the page in your
2341
- # documentation. For example:
2342
- # <pre><code>pages:
2343
- # - name: Tutorial
2344
- # content: &#40;== include tutorial.md ==&#41;
2345
- # subpages:
2346
- # - name: Java
2347
- # content: &#40;== include tutorial_java.md ==&#41;
2348
- # </code></pre>
2349
- # You can reference `Java` page using Markdown reference link syntax:
2350
- # `Java`.
2351
- # Corresponds to the JSON property `name`
2352
- # @return [String]
2353
- attr_accessor :name
2354
-
2355
- # Subpages of this page. The order of subpages specified here will be
2356
- # honored in the generated docset.
2357
- # Corresponds to the JSON property `subpages`
2358
- # @return [Array<Google::Apis::ServiceuserV1::Page>]
2359
- attr_accessor :subpages
2360
-
2361
- def initialize(**args)
2362
- update!(**args)
2363
- end
2364
-
2365
- # Update properties of this object
2366
- def update!(**args)
2367
- @content = args[:content] if args.key?(:content)
2368
- @name = args[:name] if args.key?(:name)
2369
- @subpages = args[:subpages] if args.key?(:subpages)
2370
- end
2371
- end
2372
-
2373
- # The published version of a Service that is managed by
2374
- # Google Service Management.
2375
- class PublishedService
2376
- include Google::Apis::Core::Hashable
2377
-
2378
- # The resource name of the service.
2379
- # A valid name would be:
2380
- # - services/serviceuser.googleapis.com
2381
- # Corresponds to the JSON property `name`
2382
- # @return [String]
2383
- attr_accessor :name
2384
-
2385
- # `Service` is the root object of Google service configuration schema. It
2386
- # describes basic information about a service, such as the name and the
2387
- # title, and delegates other aspects to sub-sections. Each sub-section is
2388
- # either a proto message or a repeated proto message that configures a
2389
- # specific aspect, such as auth. See each proto message definition for details.
2390
- # Example:
2391
- # type: google.api.Service
2392
- # config_version: 3
2393
- # name: calendar.googleapis.com
2394
- # title: Google Calendar API
2395
- # apis:
2396
- # - name: google.calendar.v3.Calendar
2397
- # authentication:
2398
- # providers:
2399
- # - id: google_calendar_auth
2400
- # jwks_uri: https://www.googleapis.com/oauth2/v1/certs
2401
- # issuer: https://securetoken.google.com
2402
- # rules:
2403
- # - selector: "*"
2404
- # requirements:
2405
- # provider_id: google_calendar_auth
2406
- # Corresponds to the JSON property `service`
2407
- # @return [Google::Apis::ServiceuserV1::Service]
2408
- attr_accessor :service
2409
-
2410
- def initialize(**args)
2411
- update!(**args)
2412
- end
2413
-
2414
- # Update properties of this object
2415
- def update!(**args)
2416
- @name = args[:name] if args.key?(:name)
2417
- @service = args[:service] if args.key?(:service)
2418
- end
2419
- end
2420
-
2421
- # Quota configuration helps to achieve fairness and budgeting in service
2422
- # usage.
2423
- # The quota configuration works this way:
2424
- # - The service configuration defines a set of metrics.
2425
- # - For API calls, the quota.metric_rules maps methods to metrics with
2426
- # corresponding costs.
2427
- # - The quota.limits defines limits on the metrics, which will be used for
2428
- # quota checks at runtime.
2429
- # An example quota configuration in yaml format:
2430
- # quota:
2431
- # limits:
2432
- # - name: apiWriteQpsPerProject
2433
- # metric: library.googleapis.com/write_calls
2434
- # unit: "1/min/`project`" # rate limit for consumer projects
2435
- # values:
2436
- # STANDARD: 10000
2437
- # # The metric rules bind all methods to the read_calls metric,
2438
- # # except for the UpdateBook and DeleteBook methods. These two methods
2439
- # # are mapped to the write_calls metric, with the UpdateBook method
2440
- # # consuming at twice rate as the DeleteBook method.
2441
- # metric_rules:
2442
- # - selector: "*"
2443
- # metric_costs:
2444
- # library.googleapis.com/read_calls: 1
2445
- # - selector: google.example.library.v1.LibraryService.UpdateBook
2446
- # metric_costs:
2447
- # library.googleapis.com/write_calls: 2
2448
- # - selector: google.example.library.v1.LibraryService.DeleteBook
2449
- # metric_costs:
2450
- # library.googleapis.com/write_calls: 1
2451
- # Corresponding Metric definition:
2452
- # metrics:
2453
- # - name: library.googleapis.com/read_calls
2454
- # display_name: Read requests
2455
- # metric_kind: DELTA
2456
- # value_type: INT64
2457
- # - name: library.googleapis.com/write_calls
2458
- # display_name: Write requests
2459
- # metric_kind: DELTA
2460
- # value_type: INT64
2461
- class Quota
2462
- include Google::Apis::Core::Hashable
2463
-
2464
- # List of `QuotaLimit` definitions for the service.
2465
- # Corresponds to the JSON property `limits`
2466
- # @return [Array<Google::Apis::ServiceuserV1::QuotaLimit>]
2467
- attr_accessor :limits
2468
-
2469
- # List of `MetricRule` definitions, each one mapping a selected method to one
2470
- # or more metrics.
2471
- # Corresponds to the JSON property `metricRules`
2472
- # @return [Array<Google::Apis::ServiceuserV1::MetricRule>]
2473
- attr_accessor :metric_rules
2474
-
2475
- def initialize(**args)
2476
- update!(**args)
2477
- end
2478
-
2479
- # Update properties of this object
2480
- def update!(**args)
2481
- @limits = args[:limits] if args.key?(:limits)
2482
- @metric_rules = args[:metric_rules] if args.key?(:metric_rules)
2483
- end
2484
- end
2485
-
2486
- # `QuotaLimit` defines a specific limit that applies over a specified duration
2487
- # for a limit type. There can be at most one limit for a duration and limit
2488
- # type combination defined within a `QuotaGroup`.
2489
- class QuotaLimit
2490
- include Google::Apis::Core::Hashable
2491
-
2492
- # Default number of tokens that can be consumed during the specified
2493
- # duration. This is the number of tokens assigned when a client
2494
- # application developer activates the service for his/her project.
2495
- # Specifying a value of 0 will block all requests. This can be used if you
2496
- # are provisioning quota to selected consumers and blocking others.
2497
- # Similarly, a value of -1 will indicate an unlimited quota. No other
2498
- # negative values are allowed.
2499
- # Used by group-based quotas only.
2500
- # Corresponds to the JSON property `defaultLimit`
2501
- # @return [Fixnum]
2502
- attr_accessor :default_limit
2503
-
2504
- # Optional. User-visible, extended description for this quota limit.
2505
- # Should be used only when more context is needed to understand this limit
2506
- # than provided by the limit's display name (see: `display_name`).
2507
- # Corresponds to the JSON property `description`
2508
- # @return [String]
2509
- attr_accessor :description
2510
-
2511
- # User-visible display name for this limit.
2512
- # Optional. If not set, the UI will provide a default display name based on
2513
- # the quota configuration. This field can be used to override the default
2514
- # display name generated from the configuration.
2515
- # Corresponds to the JSON property `displayName`
2516
- # @return [String]
2517
- attr_accessor :display_name
2518
-
2519
- # Duration of this limit in textual notation. Example: "100s", "24h", "1d".
2520
- # For duration longer than a day, only multiple of days is supported. We
2521
- # support only "100s" and "1d" for now. Additional support will be added in
2522
- # the future. "0" indicates indefinite duration.
2523
- # Used by group-based quotas only.
2524
- # Corresponds to the JSON property `duration`
2525
- # @return [String]
2526
- attr_accessor :duration
2527
-
2528
- # Free tier value displayed in the Developers Console for this limit.
2529
- # The free tier is the number of tokens that will be subtracted from the
2530
- # billed amount when billing is enabled.
2531
- # This field can only be set on a limit with duration "1d", in a billable
2532
- # group; it is invalid on any other limit. If this field is not set, it
2533
- # defaults to 0, indicating that there is no free tier for this service.
2534
- # Used by group-based quotas only.
2535
- # Corresponds to the JSON property `freeTier`
2536
- # @return [Fixnum]
2537
- attr_accessor :free_tier
2538
-
2539
- # Maximum number of tokens that can be consumed during the specified
2540
- # duration. Client application developers can override the default limit up
2541
- # to this maximum. If specified, this value cannot be set to a value less
2542
- # than the default limit. If not specified, it is set to the default limit.
2543
- # To allow clients to apply overrides with no upper bound, set this to -1,
2544
- # indicating unlimited maximum quota.
2545
- # Used by group-based quotas only.
2546
- # Corresponds to the JSON property `maxLimit`
2547
- # @return [Fixnum]
2548
- attr_accessor :max_limit
2549
-
2550
- # The name of the metric this quota limit applies to. The quota limits with
2551
- # the same metric will be checked together during runtime. The metric must be
2552
- # defined within the service config.
2553
- # Corresponds to the JSON property `metric`
2554
- # @return [String]
2555
- attr_accessor :metric
2556
-
2557
- # Name of the quota limit.
2558
- # The name must be provided, and it must be unique within the service. The
2559
- # name can only include alphanumeric characters as well as '-'.
2560
- # The maximum length of the limit name is 64 characters.
2561
- # Corresponds to the JSON property `name`
2562
- # @return [String]
2563
- attr_accessor :name
2564
-
2565
- # Specify the unit of the quota limit. It uses the same syntax as
2566
- # Metric.unit. The supported unit kinds are determined by the quota
2567
- # backend system.
2568
- # Here are some examples:
2569
- # * "1/min/`project`" for quota per minute per project.
2570
- # Note: the order of unit components is insignificant.
2571
- # The "1" at the beginning is required to follow the metric unit syntax.
2572
- # Corresponds to the JSON property `unit`
2573
- # @return [String]
2574
- attr_accessor :unit
2575
-
2576
- # Tiered limit values. You must specify this as a key:value pair, with an
2577
- # integer value that is the maximum number of requests allowed for the
2578
- # specified unit. Currently only STANDARD is supported.
2579
- # Corresponds to the JSON property `values`
2580
- # @return [Hash<String,Fixnum>]
2581
- attr_accessor :values
2582
-
2583
- def initialize(**args)
2584
- update!(**args)
2585
- end
2586
-
2587
- # Update properties of this object
2588
- def update!(**args)
2589
- @default_limit = args[:default_limit] if args.key?(:default_limit)
2590
- @description = args[:description] if args.key?(:description)
2591
- @display_name = args[:display_name] if args.key?(:display_name)
2592
- @duration = args[:duration] if args.key?(:duration)
2593
- @free_tier = args[:free_tier] if args.key?(:free_tier)
2594
- @max_limit = args[:max_limit] if args.key?(:max_limit)
2595
- @metric = args[:metric] if args.key?(:metric)
2596
- @name = args[:name] if args.key?(:name)
2597
- @unit = args[:unit] if args.key?(:unit)
2598
- @values = args[:values] if args.key?(:values)
2599
- end
2600
- end
2601
-
2602
- # Response message for SearchServices method.
2603
- class SearchServicesResponse
2604
- include Google::Apis::Core::Hashable
2605
-
2606
- # Token that can be passed to `ListAvailableServices` to resume a paginated
2607
- # query.
2608
- # Corresponds to the JSON property `nextPageToken`
2609
- # @return [String]
2610
- attr_accessor :next_page_token
2611
-
2612
- # Services available publicly or available to the authenticated caller.
2613
- # Corresponds to the JSON property `services`
2614
- # @return [Array<Google::Apis::ServiceuserV1::PublishedService>]
2615
- attr_accessor :services
2616
-
2617
- def initialize(**args)
2618
- update!(**args)
2619
- end
2620
-
2621
- # Update properties of this object
2622
- def update!(**args)
2623
- @next_page_token = args[:next_page_token] if args.key?(:next_page_token)
2624
- @services = args[:services] if args.key?(:services)
2625
- end
2626
- end
2627
-
2628
- # `Service` is the root object of Google service configuration schema. It
2629
- # describes basic information about a service, such as the name and the
2630
- # title, and delegates other aspects to sub-sections. Each sub-section is
2631
- # either a proto message or a repeated proto message that configures a
2632
- # specific aspect, such as auth. See each proto message definition for details.
2633
- # Example:
2634
- # type: google.api.Service
2635
- # config_version: 3
2636
- # name: calendar.googleapis.com
2637
- # title: Google Calendar API
2638
- # apis:
2639
- # - name: google.calendar.v3.Calendar
2640
- # authentication:
2641
- # providers:
2642
- # - id: google_calendar_auth
2643
- # jwks_uri: https://www.googleapis.com/oauth2/v1/certs
2644
- # issuer: https://securetoken.google.com
2645
- # rules:
2646
- # - selector: "*"
2647
- # requirements:
2648
- # provider_id: google_calendar_auth
2649
- class Service
2650
- include Google::Apis::Core::Hashable
2651
-
2652
- # A list of API interfaces exported by this service. Only the `name` field
2653
- # of the google.protobuf.Api needs to be provided by the configuration
2654
- # author, as the remaining fields will be derived from the IDL during the
2655
- # normalization process. It is an error to specify an API interface here
2656
- # which cannot be resolved against the associated IDL files.
2657
- # Corresponds to the JSON property `apis`
2658
- # @return [Array<Google::Apis::ServiceuserV1::Api>]
2659
- attr_accessor :apis
2660
-
2661
- # `Authentication` defines the authentication configuration for an API.
2662
- # Example for an API targeted for external use:
2663
- # name: calendar.googleapis.com
2664
- # authentication:
2665
- # providers:
2666
- # - id: google_calendar_auth
2667
- # jwks_uri: https://www.googleapis.com/oauth2/v1/certs
2668
- # issuer: https://securetoken.google.com
2669
- # rules:
2670
- # - selector: "*"
2671
- # requirements:
2672
- # provider_id: google_calendar_auth
2673
- # Corresponds to the JSON property `authentication`
2674
- # @return [Google::Apis::ServiceuserV1::Authentication]
2675
- attr_accessor :authentication
2676
-
2677
- # `Backend` defines the backend configuration for a service.
2678
- # Corresponds to the JSON property `backend`
2679
- # @return [Google::Apis::ServiceuserV1::Backend]
2680
- attr_accessor :backend
2681
-
2682
- # Billing related configuration of the service.
2683
- # The following example shows how to configure monitored resources and metrics
2684
- # for billing:
2685
- # monitored_resources:
2686
- # - type: library.googleapis.com/branch
2687
- # labels:
2688
- # - key: /city
2689
- # description: The city where the library branch is located in.
2690
- # - key: /name
2691
- # description: The name of the branch.
2692
- # metrics:
2693
- # - name: library.googleapis.com/book/borrowed_count
2694
- # metric_kind: DELTA
2695
- # value_type: INT64
2696
- # billing:
2697
- # consumer_destinations:
2698
- # - monitored_resource: library.googleapis.com/branch
2699
- # metrics:
2700
- # - library.googleapis.com/book/borrowed_count
2701
- # Corresponds to the JSON property `billing`
2702
- # @return [Google::Apis::ServiceuserV1::Billing]
2703
- attr_accessor :billing
2704
-
2705
- # The semantic version of the service configuration. The config version
2706
- # affects the interpretation of the service configuration. For example,
2707
- # certain features are enabled by default for certain config versions.
2708
- # The latest config version is `3`.
2709
- # Corresponds to the JSON property `configVersion`
2710
- # @return [Fixnum]
2711
- attr_accessor :config_version
2712
-
2713
- # `Context` defines which contexts an API requests.
2714
- # Example:
2715
- # context:
2716
- # rules:
2717
- # - selector: "*"
2718
- # requested:
2719
- # - google.rpc.context.ProjectContext
2720
- # - google.rpc.context.OriginContext
2721
- # The above specifies that all methods in the API request
2722
- # `google.rpc.context.ProjectContext` and
2723
- # `google.rpc.context.OriginContext`.
2724
- # Available context types are defined in package
2725
- # `google.rpc.context`.
2726
- # This also provides mechanism to whitelist any protobuf message extension that
2727
- # can be sent in grpc metadata using “x-goog-ext-<extension_id>-bin” and
2728
- # “x-goog-ext-<extension_id>-jspb” format. For example, list any service
2729
- # specific protobuf types that can appear in grpc metadata as follows in your
2730
- # yaml file:
2731
- # Example:
2732
- # context:
2733
- # rules:
2734
- # - selector: "google.example.library.v1.LibraryService.CreateBook"
2735
- # allowed_request_extensions:
2736
- # - google.foo.v1.NewExtension
2737
- # allowed_response_extensions:
2738
- # - google.foo.v1.NewExtension
2739
- # You can also specify extension ID instead of fully qualified extension name
2740
- # here.
2741
- # Corresponds to the JSON property `context`
2742
- # @return [Google::Apis::ServiceuserV1::Context]
2743
- attr_accessor :context
2744
-
2745
- # Selects and configures the service controller used by the service. The
2746
- # service controller handles features like abuse, quota, billing, logging,
2747
- # monitoring, etc.
2748
- # Corresponds to the JSON property `control`
2749
- # @return [Google::Apis::ServiceuserV1::Control]
2750
- attr_accessor :control
2751
-
2752
- # Customize service error responses. For example, list any service
2753
- # specific protobuf types that can appear in error detail lists of
2754
- # error responses.
2755
- # Example:
2756
- # custom_error:
2757
- # types:
2758
- # - google.foo.v1.CustomError
2759
- # - google.foo.v1.AnotherError
2760
- # Corresponds to the JSON property `customError`
2761
- # @return [Google::Apis::ServiceuserV1::CustomError]
2762
- attr_accessor :custom_error
2763
-
2764
- # `Documentation` provides the information for describing a service.
2765
- # Example:
2766
- # <pre><code>documentation:
2767
- # summary: >
2768
- # The Google Calendar API gives access
2769
- # to most calendar features.
2770
- # pages:
2771
- # - name: Overview
2772
- # content: &#40;== include google/foo/overview.md ==&#41;
2773
- # - name: Tutorial
2774
- # content: &#40;== include google/foo/tutorial.md ==&#41;
2775
- # subpages;
2776
- # - name: Java
2777
- # content: &#40;== include google/foo/tutorial_java.md ==&#41;
2778
- # rules:
2779
- # - selector: google.calendar.Calendar.Get
2780
- # description: >
2781
- # ...
2782
- # - selector: google.calendar.Calendar.Put
2783
- # description: >
2784
- # ...
2785
- # </code></pre>
2786
- # Documentation is provided in markdown syntax. In addition to
2787
- # standard markdown features, definition lists, tables and fenced
2788
- # code blocks are supported. Section headers can be provided and are
2789
- # interpreted relative to the section nesting of the context where
2790
- # a documentation fragment is embedded.
2791
- # Documentation from the IDL is merged with documentation defined
2792
- # via the config at normalization time, where documentation provided
2793
- # by config rules overrides IDL provided.
2794
- # A number of constructs specific to the API platform are supported
2795
- # in documentation text.
2796
- # In order to reference a proto element, the following
2797
- # notation can be used:
2798
- # <pre><code>&#91;fully.qualified.proto.name]&#91;]</code></pre>
2799
- # To override the display text used for the link, this can be used:
2800
- # <pre><code>&#91;display text]&#91;fully.qualified.proto.name]</code></pre>
2801
- # Text can be excluded from doc using the following notation:
2802
- # <pre><code>&#40;-- internal comment --&#41;</code></pre>
2803
- # A few directives are available in documentation. Note that
2804
- # directives must appear on a single line to be properly
2805
- # identified. The `include` directive includes a markdown file from
2806
- # an external source:
2807
- # <pre><code>&#40;== include path/to/file ==&#41;</code></pre>
2808
- # The `resource_for` directive marks a message to be the resource of
2809
- # a collection in REST view. If it is not specified, tools attempt
2810
- # to infer the resource from the operations in a collection:
2811
- # <pre><code>&#40;== resource_for v1.shelves.books ==&#41;</code></pre>
2812
- # The directive `suppress_warning` does not directly affect documentation
2813
- # and is documented together with service config validation.
2814
- # Corresponds to the JSON property `documentation`
2815
- # @return [Google::Apis::ServiceuserV1::Documentation]
2816
- attr_accessor :documentation
2817
-
2818
- # Configuration for network endpoints. If this is empty, then an endpoint
2819
- # with the same name as the service is automatically generated to service all
2820
- # defined APIs.
2821
- # Corresponds to the JSON property `endpoints`
2822
- # @return [Array<Google::Apis::ServiceuserV1::Endpoint>]
2823
- attr_accessor :endpoints
2824
-
2825
- # A list of all enum types included in this API service. Enums
2826
- # referenced directly or indirectly by the `apis` are automatically
2827
- # included. Enums which are not referenced but shall be included
2828
- # should be listed here by name. Example:
2829
- # enums:
2830
- # - name: google.someapi.v1.SomeEnum
2831
- # Corresponds to the JSON property `enums`
2832
- # @return [Array<Google::Apis::ServiceuserV1::Enum>]
2833
- attr_accessor :enums
2834
-
2835
- # Experimental service configuration. These configuration options can
2836
- # only be used by whitelisted users.
2837
- # Corresponds to the JSON property `experimental`
2838
- # @return [Google::Apis::ServiceuserV1::Experimental]
2839
- attr_accessor :experimental
2840
-
2841
- # Defines the HTTP configuration for an API service. It contains a list of
2842
- # HttpRule, each specifying the mapping of an RPC method
2843
- # to one or more HTTP REST API methods.
2844
- # Corresponds to the JSON property `http`
2845
- # @return [Google::Apis::ServiceuserV1::Http]
2846
- attr_accessor :http
2847
-
2848
- # A unique ID for a specific instance of this message, typically assigned
2849
- # by the client for tracking purpose. If empty, the server may choose to
2850
- # generate one instead. Must be no longer than 60 characters.
2851
- # Corresponds to the JSON property `id`
2852
- # @return [String]
2853
- attr_accessor :id
2854
-
2855
- # Logging configuration of the service.
2856
- # The following example shows how to configure logs to be sent to the
2857
- # producer and consumer projects. In the example, the `activity_history`
2858
- # log is sent to both the producer and consumer projects, whereas the
2859
- # `purchase_history` log is only sent to the producer project.
2860
- # monitored_resources:
2861
- # - type: library.googleapis.com/branch
2862
- # labels:
2863
- # - key: /city
2864
- # description: The city where the library branch is located in.
2865
- # - key: /name
2866
- # description: The name of the branch.
2867
- # logs:
2868
- # - name: activity_history
2869
- # labels:
2870
- # - key: /customer_id
2871
- # - name: purchase_history
2872
- # logging:
2873
- # producer_destinations:
2874
- # - monitored_resource: library.googleapis.com/branch
2875
- # logs:
2876
- # - activity_history
2877
- # - purchase_history
2878
- # consumer_destinations:
2879
- # - monitored_resource: library.googleapis.com/branch
2880
- # logs:
2881
- # - activity_history
2882
- # Corresponds to the JSON property `logging`
2883
- # @return [Google::Apis::ServiceuserV1::Logging]
2884
- attr_accessor :logging
2885
-
2886
- # Defines the logs used by this service.
2887
- # Corresponds to the JSON property `logs`
2888
- # @return [Array<Google::Apis::ServiceuserV1::LogDescriptor>]
2889
- attr_accessor :logs
2890
-
2891
- # Defines the metrics used by this service.
2892
- # Corresponds to the JSON property `metrics`
2893
- # @return [Array<Google::Apis::ServiceuserV1::MetricDescriptor>]
2894
- attr_accessor :metrics
2895
-
2896
- # Defines the monitored resources used by this service. This is required
2897
- # by the Service.monitoring and Service.logging configurations.
2898
- # Corresponds to the JSON property `monitoredResources`
2899
- # @return [Array<Google::Apis::ServiceuserV1::MonitoredResourceDescriptor>]
2900
- attr_accessor :monitored_resources
2901
-
2902
- # Monitoring configuration of the service.
2903
- # The example below shows how to configure monitored resources and metrics
2904
- # for monitoring. In the example, a monitored resource and two metrics are
2905
- # defined. The `library.googleapis.com/book/returned_count` metric is sent
2906
- # to both producer and consumer projects, whereas the
2907
- # `library.googleapis.com/book/overdue_count` metric is only sent to the
2908
- # consumer project.
2909
- # monitored_resources:
2910
- # - type: library.googleapis.com/branch
2911
- # labels:
2912
- # - key: /city
2913
- # description: The city where the library branch is located in.
2914
- # - key: /name
2915
- # description: The name of the branch.
2916
- # metrics:
2917
- # - name: library.googleapis.com/book/returned_count
2918
- # metric_kind: DELTA
2919
- # value_type: INT64
2920
- # labels:
2921
- # - key: /customer_id
2922
- # - name: library.googleapis.com/book/overdue_count
2923
- # metric_kind: GAUGE
2924
- # value_type: INT64
2925
- # labels:
2926
- # - key: /customer_id
2927
- # monitoring:
2928
- # producer_destinations:
2929
- # - monitored_resource: library.googleapis.com/branch
2930
- # metrics:
2931
- # - library.googleapis.com/book/returned_count
2932
- # consumer_destinations:
2933
- # - monitored_resource: library.googleapis.com/branch
2934
- # metrics:
2935
- # - library.googleapis.com/book/returned_count
2936
- # - library.googleapis.com/book/overdue_count
2937
- # Corresponds to the JSON property `monitoring`
2938
- # @return [Google::Apis::ServiceuserV1::Monitoring]
2939
- attr_accessor :monitoring
2940
-
2941
- # The DNS address at which this service is available,
2942
- # e.g. `calendar.googleapis.com`.
2943
- # Corresponds to the JSON property `name`
2944
- # @return [String]
2945
- attr_accessor :name
2946
-
2947
- # The Google project that owns this service.
2948
- # Corresponds to the JSON property `producerProjectId`
2949
- # @return [String]
2950
- attr_accessor :producer_project_id
2951
-
2952
- # Quota configuration helps to achieve fairness and budgeting in service
2953
- # usage.
2954
- # The quota configuration works this way:
2955
- # - The service configuration defines a set of metrics.
2956
- # - For API calls, the quota.metric_rules maps methods to metrics with
2957
- # corresponding costs.
2958
- # - The quota.limits defines limits on the metrics, which will be used for
2959
- # quota checks at runtime.
2960
- # An example quota configuration in yaml format:
2961
- # quota:
2962
- # limits:
2963
- # - name: apiWriteQpsPerProject
2964
- # metric: library.googleapis.com/write_calls
2965
- # unit: "1/min/`project`" # rate limit for consumer projects
2966
- # values:
2967
- # STANDARD: 10000
2968
- # # The metric rules bind all methods to the read_calls metric,
2969
- # # except for the UpdateBook and DeleteBook methods. These two methods
2970
- # # are mapped to the write_calls metric, with the UpdateBook method
2971
- # # consuming at twice rate as the DeleteBook method.
2972
- # metric_rules:
2973
- # - selector: "*"
2974
- # metric_costs:
2975
- # library.googleapis.com/read_calls: 1
2976
- # - selector: google.example.library.v1.LibraryService.UpdateBook
2977
- # metric_costs:
2978
- # library.googleapis.com/write_calls: 2
2979
- # - selector: google.example.library.v1.LibraryService.DeleteBook
2980
- # metric_costs:
2981
- # library.googleapis.com/write_calls: 1
2982
- # Corresponding Metric definition:
2983
- # metrics:
2984
- # - name: library.googleapis.com/read_calls
2985
- # display_name: Read requests
2986
- # metric_kind: DELTA
2987
- # value_type: INT64
2988
- # - name: library.googleapis.com/write_calls
2989
- # display_name: Write requests
2990
- # metric_kind: DELTA
2991
- # value_type: INT64
2992
- # Corresponds to the JSON property `quota`
2993
- # @return [Google::Apis::ServiceuserV1::Quota]
2994
- attr_accessor :quota
2995
-
2996
- # Source information used to create a Service Config
2997
- # Corresponds to the JSON property `sourceInfo`
2998
- # @return [Google::Apis::ServiceuserV1::SourceInfo]
2999
- attr_accessor :source_info
3000
-
3001
- # ### System parameter configuration
3002
- # A system parameter is a special kind of parameter defined by the API
3003
- # system, not by an individual API. It is typically mapped to an HTTP header
3004
- # and/or a URL query parameter. This configuration specifies which methods
3005
- # change the names of the system parameters.
3006
- # Corresponds to the JSON property `systemParameters`
3007
- # @return [Google::Apis::ServiceuserV1::SystemParameters]
3008
- attr_accessor :system_parameters
3009
-
3010
- # A list of all proto message types included in this API service.
3011
- # It serves similar purpose as [google.api.Service.types], except that
3012
- # these types are not needed by user-defined APIs. Therefore, they will not
3013
- # show up in the generated discovery doc. This field should only be used
3014
- # to define system APIs in ESF.
3015
- # Corresponds to the JSON property `systemTypes`
3016
- # @return [Array<Google::Apis::ServiceuserV1::Type>]
3017
- attr_accessor :system_types
3018
-
3019
- # The product title for this service.
3020
- # Corresponds to the JSON property `title`
3021
- # @return [String]
3022
- attr_accessor :title
3023
-
3024
- # A list of all proto message types included in this API service.
3025
- # Types referenced directly or indirectly by the `apis` are
3026
- # automatically included. Messages which are not referenced but
3027
- # shall be included, such as types used by the `google.protobuf.Any` type,
3028
- # should be listed here by name. Example:
3029
- # types:
3030
- # - name: google.protobuf.Int32
3031
- # Corresponds to the JSON property `types`
3032
- # @return [Array<Google::Apis::ServiceuserV1::Type>]
3033
- attr_accessor :types
3034
-
3035
- # Configuration controlling usage of a service.
3036
- # Corresponds to the JSON property `usage`
3037
- # @return [Google::Apis::ServiceuserV1::Usage]
3038
- attr_accessor :usage
3039
-
3040
- def initialize(**args)
3041
- update!(**args)
3042
- end
3043
-
3044
- # Update properties of this object
3045
- def update!(**args)
3046
- @apis = args[:apis] if args.key?(:apis)
3047
- @authentication = args[:authentication] if args.key?(:authentication)
3048
- @backend = args[:backend] if args.key?(:backend)
3049
- @billing = args[:billing] if args.key?(:billing)
3050
- @config_version = args[:config_version] if args.key?(:config_version)
3051
- @context = args[:context] if args.key?(:context)
3052
- @control = args[:control] if args.key?(:control)
3053
- @custom_error = args[:custom_error] if args.key?(:custom_error)
3054
- @documentation = args[:documentation] if args.key?(:documentation)
3055
- @endpoints = args[:endpoints] if args.key?(:endpoints)
3056
- @enums = args[:enums] if args.key?(:enums)
3057
- @experimental = args[:experimental] if args.key?(:experimental)
3058
- @http = args[:http] if args.key?(:http)
3059
- @id = args[:id] if args.key?(:id)
3060
- @logging = args[:logging] if args.key?(:logging)
3061
- @logs = args[:logs] if args.key?(:logs)
3062
- @metrics = args[:metrics] if args.key?(:metrics)
3063
- @monitored_resources = args[:monitored_resources] if args.key?(:monitored_resources)
3064
- @monitoring = args[:monitoring] if args.key?(:monitoring)
3065
- @name = args[:name] if args.key?(:name)
3066
- @producer_project_id = args[:producer_project_id] if args.key?(:producer_project_id)
3067
- @quota = args[:quota] if args.key?(:quota)
3068
- @source_info = args[:source_info] if args.key?(:source_info)
3069
- @system_parameters = args[:system_parameters] if args.key?(:system_parameters)
3070
- @system_types = args[:system_types] if args.key?(:system_types)
3071
- @title = args[:title] if args.key?(:title)
3072
- @types = args[:types] if args.key?(:types)
3073
- @usage = args[:usage] if args.key?(:usage)
3074
- end
3075
- end
3076
-
3077
- # `SourceContext` represents information about the source of a
3078
- # protobuf element, like the file in which it is defined.
3079
- class SourceContext
3080
- include Google::Apis::Core::Hashable
3081
-
3082
- # The path-qualified name of the .proto file that contained the associated
3083
- # protobuf element. For example: `"google/protobuf/source_context.proto"`.
3084
- # Corresponds to the JSON property `fileName`
3085
- # @return [String]
3086
- attr_accessor :file_name
3087
-
3088
- def initialize(**args)
3089
- update!(**args)
3090
- end
3091
-
3092
- # Update properties of this object
3093
- def update!(**args)
3094
- @file_name = args[:file_name] if args.key?(:file_name)
3095
- end
3096
- end
3097
-
3098
- # Source information used to create a Service Config
3099
- class SourceInfo
3100
- include Google::Apis::Core::Hashable
3101
-
3102
- # All files used during config generation.
3103
- # Corresponds to the JSON property `sourceFiles`
3104
- # @return [Array<Hash<String,Object>>]
3105
- attr_accessor :source_files
3106
-
3107
- def initialize(**args)
3108
- update!(**args)
3109
- end
3110
-
3111
- # Update properties of this object
3112
- def update!(**args)
3113
- @source_files = args[:source_files] if args.key?(:source_files)
3114
- end
3115
- end
3116
-
3117
- # The `Status` type defines a logical error model that is suitable for different
3118
- # programming environments, including REST APIs and RPC APIs. It is used by
3119
- # [gRPC](https://github.com/grpc). The error model is designed to be:
3120
- # - Simple to use and understand for most users
3121
- # - Flexible enough to meet unexpected needs
3122
- # # Overview
3123
- # The `Status` message contains three pieces of data: error code, error message,
3124
- # and error details. The error code should be an enum value of
3125
- # google.rpc.Code, but it may accept additional error codes if needed. The
3126
- # error message should be a developer-facing English message that helps
3127
- # developers *understand* and *resolve* the error. If a localized user-facing
3128
- # error message is needed, put the localized message in the error details or
3129
- # localize it in the client. The optional error details may contain arbitrary
3130
- # information about the error. There is a predefined set of error detail types
3131
- # in the package `google.rpc` that can be used for common error conditions.
3132
- # # Language mapping
3133
- # The `Status` message is the logical representation of the error model, but it
3134
- # is not necessarily the actual wire format. When the `Status` message is
3135
- # exposed in different client libraries and different wire protocols, it can be
3136
- # mapped differently. For example, it will likely be mapped to some exceptions
3137
- # in Java, but more likely mapped to some error codes in C.
3138
- # # Other uses
3139
- # The error model and the `Status` message can be used in a variety of
3140
- # environments, either with or without APIs, to provide a
3141
- # consistent developer experience across different environments.
3142
- # Example uses of this error model include:
3143
- # - Partial errors. If a service needs to return partial errors to the client,
3144
- # it may embed the `Status` in the normal response to indicate the partial
3145
- # errors.
3146
- # - Workflow errors. A typical workflow has multiple steps. Each step may
3147
- # have a `Status` message for error reporting.
3148
- # - Batch operations. If a client uses batch request and batch response, the
3149
- # `Status` message should be used directly inside batch response, one for
3150
- # each error sub-response.
3151
- # - Asynchronous operations. If an API call embeds asynchronous operation
3152
- # results in its response, the status of those operations should be
3153
- # represented directly using the `Status` message.
3154
- # - Logging. If some API errors are stored in logs, the message `Status` could
3155
- # be used directly after any stripping needed for security/privacy reasons.
3156
- class Status
3157
- include Google::Apis::Core::Hashable
3158
-
3159
- # The status code, which should be an enum value of google.rpc.Code.
3160
- # Corresponds to the JSON property `code`
3161
- # @return [Fixnum]
3162
- attr_accessor :code
3163
-
3164
- # A list of messages that carry the error details. There is a common set of
3165
- # message types for APIs to use.
3166
- # Corresponds to the JSON property `details`
3167
- # @return [Array<Hash<String,Object>>]
3168
- attr_accessor :details
3169
-
3170
- # A developer-facing error message, which should be in English. Any
3171
- # user-facing error message should be localized and sent in the
3172
- # google.rpc.Status.details field, or localized by the client.
3173
- # Corresponds to the JSON property `message`
3174
- # @return [String]
3175
- attr_accessor :message
3176
-
3177
- def initialize(**args)
3178
- update!(**args)
3179
- end
3180
-
3181
- # Update properties of this object
3182
- def update!(**args)
3183
- @code = args[:code] if args.key?(:code)
3184
- @details = args[:details] if args.key?(:details)
3185
- @message = args[:message] if args.key?(:message)
3186
- end
3187
- end
3188
-
3189
- # Represents the status of one operation step.
3190
- class Step
3191
- include Google::Apis::Core::Hashable
3192
-
3193
- # The short description of the step.
3194
- # Corresponds to the JSON property `description`
3195
- # @return [String]
3196
- attr_accessor :description
3197
-
3198
- # The status code.
3199
- # Corresponds to the JSON property `status`
3200
- # @return [String]
3201
- attr_accessor :status
3202
-
3203
- def initialize(**args)
3204
- update!(**args)
3205
- end
3206
-
3207
- # Update properties of this object
3208
- def update!(**args)
3209
- @description = args[:description] if args.key?(:description)
3210
- @status = args[:status] if args.key?(:status)
3211
- end
3212
- end
3213
-
3214
- # Define a parameter's name and location. The parameter may be passed as either
3215
- # an HTTP header or a URL query parameter, and if both are passed the behavior
3216
- # is implementation-dependent.
3217
- class SystemParameter
3218
- include Google::Apis::Core::Hashable
3219
-
3220
- # Define the HTTP header name to use for the parameter. It is case
3221
- # insensitive.
3222
- # Corresponds to the JSON property `httpHeader`
3223
- # @return [String]
3224
- attr_accessor :http_header
3225
-
3226
- # Define the name of the parameter, such as "api_key" . It is case sensitive.
3227
- # Corresponds to the JSON property `name`
3228
- # @return [String]
3229
- attr_accessor :name
3230
-
3231
- # Define the URL query parameter name to use for the parameter. It is case
3232
- # sensitive.
3233
- # Corresponds to the JSON property `urlQueryParameter`
3234
- # @return [String]
3235
- attr_accessor :url_query_parameter
3236
-
3237
- def initialize(**args)
3238
- update!(**args)
3239
- end
3240
-
3241
- # Update properties of this object
3242
- def update!(**args)
3243
- @http_header = args[:http_header] if args.key?(:http_header)
3244
- @name = args[:name] if args.key?(:name)
3245
- @url_query_parameter = args[:url_query_parameter] if args.key?(:url_query_parameter)
3246
- end
3247
- end
3248
-
3249
- # Define a system parameter rule mapping system parameter definitions to
3250
- # methods.
3251
- class SystemParameterRule
3252
- include Google::Apis::Core::Hashable
3253
-
3254
- # Define parameters. Multiple names may be defined for a parameter.
3255
- # For a given method call, only one of them should be used. If multiple
3256
- # names are used the behavior is implementation-dependent.
3257
- # If none of the specified names are present the behavior is
3258
- # parameter-dependent.
3259
- # Corresponds to the JSON property `parameters`
3260
- # @return [Array<Google::Apis::ServiceuserV1::SystemParameter>]
3261
- attr_accessor :parameters
3262
-
3263
- # Selects the methods to which this rule applies. Use '*' to indicate all
3264
- # methods in all APIs.
3265
- # Refer to selector for syntax details.
3266
- # Corresponds to the JSON property `selector`
3267
- # @return [String]
3268
- attr_accessor :selector
3269
-
3270
- def initialize(**args)
3271
- update!(**args)
3272
- end
3273
-
3274
- # Update properties of this object
3275
- def update!(**args)
3276
- @parameters = args[:parameters] if args.key?(:parameters)
3277
- @selector = args[:selector] if args.key?(:selector)
3278
- end
3279
- end
3280
-
3281
- # ### System parameter configuration
3282
- # A system parameter is a special kind of parameter defined by the API
3283
- # system, not by an individual API. It is typically mapped to an HTTP header
3284
- # and/or a URL query parameter. This configuration specifies which methods
3285
- # change the names of the system parameters.
3286
- class SystemParameters
3287
- include Google::Apis::Core::Hashable
3288
-
3289
- # Define system parameters.
3290
- # The parameters defined here will override the default parameters
3291
- # implemented by the system. If this field is missing from the service
3292
- # config, default system parameters will be used. Default system parameters
3293
- # and names is implementation-dependent.
3294
- # Example: define api key for all methods
3295
- # system_parameters
3296
- # rules:
3297
- # - selector: "*"
3298
- # parameters:
3299
- # - name: api_key
3300
- # url_query_parameter: api_key
3301
- # Example: define 2 api key names for a specific method.
3302
- # system_parameters
3303
- # rules:
3304
- # - selector: "/ListShelves"
3305
- # parameters:
3306
- # - name: api_key
3307
- # http_header: Api-Key1
3308
- # - name: api_key
3309
- # http_header: Api-Key2
3310
- # **NOTE:** All service configuration rules follow "last one wins" order.
3311
- # Corresponds to the JSON property `rules`
3312
- # @return [Array<Google::Apis::ServiceuserV1::SystemParameterRule>]
3313
- attr_accessor :rules
3314
-
3315
- def initialize(**args)
3316
- update!(**args)
3317
- end
3318
-
3319
- # Update properties of this object
3320
- def update!(**args)
3321
- @rules = args[:rules] if args.key?(:rules)
3322
- end
3323
- end
3324
-
3325
- # A protocol buffer message type.
3326
- class Type
3327
- include Google::Apis::Core::Hashable
3328
-
3329
- # The list of fields.
3330
- # Corresponds to the JSON property `fields`
3331
- # @return [Array<Google::Apis::ServiceuserV1::Field>]
3332
- attr_accessor :fields
3333
-
3334
- # The fully qualified message name.
3335
- # Corresponds to the JSON property `name`
3336
- # @return [String]
3337
- attr_accessor :name
3338
-
3339
- # The list of types appearing in `oneof` definitions in this type.
3340
- # Corresponds to the JSON property `oneofs`
3341
- # @return [Array<String>]
3342
- attr_accessor :oneofs
3343
-
3344
- # The protocol buffer options.
3345
- # Corresponds to the JSON property `options`
3346
- # @return [Array<Google::Apis::ServiceuserV1::Option>]
3347
- attr_accessor :options
3348
-
3349
- # `SourceContext` represents information about the source of a
3350
- # protobuf element, like the file in which it is defined.
3351
- # Corresponds to the JSON property `sourceContext`
3352
- # @return [Google::Apis::ServiceuserV1::SourceContext]
3353
- attr_accessor :source_context
3354
-
3355
- # The source syntax.
3356
- # Corresponds to the JSON property `syntax`
3357
- # @return [String]
3358
- attr_accessor :syntax
3359
-
3360
- def initialize(**args)
3361
- update!(**args)
3362
- end
3363
-
3364
- # Update properties of this object
3365
- def update!(**args)
3366
- @fields = args[:fields] if args.key?(:fields)
3367
- @name = args[:name] if args.key?(:name)
3368
- @oneofs = args[:oneofs] if args.key?(:oneofs)
3369
- @options = args[:options] if args.key?(:options)
3370
- @source_context = args[:source_context] if args.key?(:source_context)
3371
- @syntax = args[:syntax] if args.key?(:syntax)
3372
- end
3373
- end
3374
-
3375
- # Configuration controlling usage of a service.
3376
- class Usage
3377
- include Google::Apis::Core::Hashable
3378
-
3379
- # The full resource name of a channel used for sending notifications to the
3380
- # service producer.
3381
- # Google Service Management currently only supports
3382
- # [Google Cloud Pub/Sub](https://cloud.google.com/pubsub) as a notification
3383
- # channel. To use Google Cloud Pub/Sub as the channel, this must be the name
3384
- # of a Cloud Pub/Sub topic that uses the Cloud Pub/Sub topic name format
3385
- # documented in https://cloud.google.com/pubsub/docs/overview.
3386
- # Corresponds to the JSON property `producerNotificationChannel`
3387
- # @return [String]
3388
- attr_accessor :producer_notification_channel
3389
-
3390
- # Requirements that must be satisfied before a consumer project can use the
3391
- # service. Each requirement is of the form <service.name>/<requirement-id>;
3392
- # for example 'serviceusage.googleapis.com/billing-enabled'.
3393
- # Corresponds to the JSON property `requirements`
3394
- # @return [Array<String>]
3395
- attr_accessor :requirements
3396
-
3397
- # A list of usage rules that apply to individual API methods.
3398
- # **NOTE:** All service configuration rules follow "last one wins" order.
3399
- # Corresponds to the JSON property `rules`
3400
- # @return [Array<Google::Apis::ServiceuserV1::UsageRule>]
3401
- attr_accessor :rules
3402
-
3403
- def initialize(**args)
3404
- update!(**args)
3405
- end
3406
-
3407
- # Update properties of this object
3408
- def update!(**args)
3409
- @producer_notification_channel = args[:producer_notification_channel] if args.key?(:producer_notification_channel)
3410
- @requirements = args[:requirements] if args.key?(:requirements)
3411
- @rules = args[:rules] if args.key?(:rules)
3412
- end
3413
- end
3414
-
3415
- # Usage configuration rules for the service.
3416
- # NOTE: Under development.
3417
- # Use this rule to configure unregistered calls for the service. Unregistered
3418
- # calls are calls that do not contain consumer project identity.
3419
- # (Example: calls that do not contain an API key).
3420
- # By default, API methods do not allow unregistered calls, and each method call
3421
- # must be identified by a consumer project identity. Use this rule to
3422
- # allow/disallow unregistered calls.
3423
- # Example of an API that wants to allow unregistered calls for entire service.
3424
- # usage:
3425
- # rules:
3426
- # - selector: "*"
3427
- # allow_unregistered_calls: true
3428
- # Example of a method that wants to allow unregistered calls.
3429
- # usage:
3430
- # rules:
3431
- # - selector: "google.example.library.v1.LibraryService.CreateBook"
3432
- # allow_unregistered_calls: true
3433
- class UsageRule
3434
- include Google::Apis::Core::Hashable
3435
-
3436
- # If true, the selected method allows unregistered calls, e.g. calls
3437
- # that don't identify any user or application.
3438
- # Corresponds to the JSON property `allowUnregisteredCalls`
3439
- # @return [Boolean]
3440
- attr_accessor :allow_unregistered_calls
3441
- alias_method :allow_unregistered_calls?, :allow_unregistered_calls
3442
-
3443
- # Selects the methods to which this rule applies. Use '*' to indicate all
3444
- # methods in all APIs.
3445
- # Refer to selector for syntax details.
3446
- # Corresponds to the JSON property `selector`
3447
- # @return [String]
3448
- attr_accessor :selector
3449
-
3450
- # If true, the selected method should skip service control and the control
3451
- # plane features, such as quota and billing, will not be available.
3452
- # This flag is used by Google Cloud Endpoints to bypass checks for internal
3453
- # methods, such as service health check methods.
3454
- # Corresponds to the JSON property `skipServiceControl`
3455
- # @return [Boolean]
3456
- attr_accessor :skip_service_control
3457
- alias_method :skip_service_control?, :skip_service_control
3458
-
3459
- def initialize(**args)
3460
- update!(**args)
3461
- end
3462
-
3463
- # Update properties of this object
3464
- def update!(**args)
3465
- @allow_unregistered_calls = args[:allow_unregistered_calls] if args.key?(:allow_unregistered_calls)
3466
- @selector = args[:selector] if args.key?(:selector)
3467
- @skip_service_control = args[:skip_service_control] if args.key?(:skip_service_control)
3468
- end
3469
- end
3470
- end
3471
- end
3472
- end