google-api-client 0.32.1 → 0.40.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (948) hide show
  1. checksums.yaml +5 -5
  2. data/.kokoro/continuous/linux.cfg +2 -2
  3. data/.kokoro/continuous/post.cfg +30 -0
  4. data/.kokoro/presubmit/linux.cfg +1 -1
  5. data/.kokoro/release.cfg +94 -0
  6. data/.repo-metadata.json +5 -0
  7. data/.rubocop.yml +5 -0
  8. data/.yardopts +16 -2
  9. data/CHANGELOG.md +1354 -0
  10. data/Gemfile +1 -0
  11. data/OVERVIEW.md +36 -0
  12. data/README.md +50 -2
  13. data/Rakefile +71 -2
  14. data/api_list_config.yaml +1 -0
  15. data/api_names.yaml +2 -0
  16. data/bin/generate-api +10 -2
  17. data/docs/api-keys.md +20 -0
  18. data/docs/auth.md +53 -0
  19. data/docs/client-secrets.md +69 -0
  20. data/docs/getting-started.md +340 -0
  21. data/docs/installation.md +0 -0
  22. data/docs/logging.md +34 -0
  23. data/docs/media-upload.md +25 -0
  24. data/docs/oauth-installed.md +191 -0
  25. data/docs/oauth-server.md +135 -0
  26. data/docs/oauth-web.md +280 -0
  27. data/docs/oauth.md +268 -0
  28. data/docs/pagination.md +29 -0
  29. data/docs/performance.md +25 -0
  30. data/generated/google/apis/abusiveexperiencereport_v1.rb +1 -4
  31. data/generated/google/apis/acceleratedmobilepageurl_v1.rb +1 -1
  32. data/generated/google/apis/accessapproval_v1/classes.rb +417 -0
  33. data/generated/google/apis/accessapproval_v1/representations.rb +203 -0
  34. data/generated/google/apis/accessapproval_v1/service.rb +869 -0
  35. data/generated/google/apis/{servicebroker_v1.rb → accessapproval_v1.rb} +8 -10
  36. data/generated/google/apis/accessapproval_v1beta1/classes.rb +35 -2
  37. data/generated/google/apis/accessapproval_v1beta1/representations.rb +13 -0
  38. data/generated/google/apis/accessapproval_v1beta1/service.rb +108 -6
  39. data/generated/google/apis/accessapproval_v1beta1.rb +1 -1
  40. data/generated/google/apis/accesscontextmanager_v1/classes.rb +357 -56
  41. data/generated/google/apis/accesscontextmanager_v1/representations.rb +137 -6
  42. data/generated/google/apis/accesscontextmanager_v1/service.rb +143 -5
  43. data/generated/google/apis/accesscontextmanager_v1.rb +1 -1
  44. data/generated/google/apis/accesscontextmanager_v1beta/classes.rb +133 -125
  45. data/generated/google/apis/accesscontextmanager_v1beta/representations.rb +21 -27
  46. data/generated/google/apis/accesscontextmanager_v1beta/service.rb +6 -5
  47. data/generated/google/apis/accesscontextmanager_v1beta.rb +1 -1
  48. data/generated/google/apis/adexchangebuyer2_v2beta1/classes.rb +35 -5
  49. data/generated/google/apis/adexchangebuyer2_v2beta1/representations.rb +4 -0
  50. data/generated/google/apis/adexchangebuyer2_v2beta1.rb +1 -1
  51. data/generated/google/apis/adexchangebuyer_v1_3/classes.rb +24 -2
  52. data/generated/google/apis/adexchangebuyer_v1_3/representations.rb +1 -0
  53. data/generated/google/apis/adexchangebuyer_v1_3.rb +1 -1
  54. data/generated/google/apis/adexchangebuyer_v1_4/classes.rb +25 -3
  55. data/generated/google/apis/adexchangebuyer_v1_4/representations.rb +1 -0
  56. data/generated/google/apis/adexchangebuyer_v1_4.rb +1 -1
  57. data/generated/google/apis/adexperiencereport_v1.rb +1 -4
  58. data/generated/google/apis/admin_datatransfer_v1/classes.rb +5 -5
  59. data/generated/google/apis/admin_datatransfer_v1/service.rb +2 -2
  60. data/generated/google/apis/admin_datatransfer_v1.rb +1 -1
  61. data/generated/google/apis/admin_directory_v1/classes.rb +4 -150
  62. data/generated/google/apis/admin_directory_v1/representations.rb +0 -54
  63. data/generated/google/apis/admin_directory_v1/service.rb +0 -60
  64. data/generated/google/apis/admin_directory_v1.rb +4 -1
  65. data/generated/google/apis/admin_reports_v1/classes.rb +87 -44
  66. data/generated/google/apis/admin_reports_v1/service.rb +310 -64
  67. data/generated/google/apis/admin_reports_v1.rb +2 -2
  68. data/generated/google/apis/admob_v1/classes.rb +951 -0
  69. data/generated/google/apis/admob_v1/representations.rb +378 -0
  70. data/generated/google/apis/admob_v1/service.rb +196 -0
  71. data/generated/google/apis/{analytics_v2_4/classes.rb → admob_v1.rb} +11 -6
  72. data/generated/google/apis/adsense_v1_4.rb +1 -1
  73. data/generated/google/apis/adsensehost_v4_1/service.rb +5 -1
  74. data/generated/google/apis/adsensehost_v4_1.rb +1 -1
  75. data/generated/google/apis/alertcenter_v1beta1/classes.rb +259 -7
  76. data/generated/google/apis/alertcenter_v1beta1/representations.rb +126 -0
  77. data/generated/google/apis/alertcenter_v1beta1.rb +1 -1
  78. data/generated/google/apis/analyticsreporting_v4.rb +1 -1
  79. data/generated/google/apis/androiddeviceprovisioning_v1/classes.rb +2 -2
  80. data/generated/google/apis/androiddeviceprovisioning_v1.rb +1 -1
  81. data/generated/google/apis/androidenterprise_v1/classes.rb +39 -60
  82. data/generated/google/apis/androidenterprise_v1/representations.rb +1 -0
  83. data/generated/google/apis/androidenterprise_v1/service.rb +0 -403
  84. data/generated/google/apis/androidenterprise_v1.rb +1 -1
  85. data/generated/google/apis/androidmanagement_v1/classes.rb +203 -6
  86. data/generated/google/apis/androidmanagement_v1/representations.rb +68 -0
  87. data/generated/google/apis/androidmanagement_v1/service.rb +6 -1
  88. data/generated/google/apis/androidmanagement_v1.rb +1 -1
  89. data/generated/google/apis/androidpublisher_v1/classes.rb +0 -41
  90. data/generated/google/apis/androidpublisher_v1/representations.rb +0 -16
  91. data/generated/google/apis/androidpublisher_v1/service.rb +1 -81
  92. data/generated/google/apis/androidpublisher_v1.rb +1 -4
  93. data/generated/google/apis/androidpublisher_v1_1/classes.rb +0 -41
  94. data/generated/google/apis/androidpublisher_v1_1/representations.rb +0 -16
  95. data/generated/google/apis/androidpublisher_v1_1/service.rb +0 -80
  96. data/generated/google/apis/androidpublisher_v1_1.rb +1 -1
  97. data/generated/google/apis/androidpublisher_v2/classes.rb +37 -1755
  98. data/generated/google/apis/androidpublisher_v2/representations.rb +15 -804
  99. data/generated/google/apis/androidpublisher_v2/service.rb +0 -2359
  100. data/generated/google/apis/androidpublisher_v2.rb +1 -1
  101. data/generated/google/apis/androidpublisher_v3/classes.rb +404 -65
  102. data/generated/google/apis/androidpublisher_v3/representations.rb +180 -27
  103. data/generated/google/apis/androidpublisher_v3/service.rb +162 -3
  104. data/generated/google/apis/androidpublisher_v3.rb +1 -1
  105. data/generated/google/apis/apigee_v1/classes.rb +4928 -0
  106. data/generated/google/apis/apigee_v1/representations.rb +1822 -0
  107. data/generated/google/apis/apigee_v1/service.rb +5578 -0
  108. data/generated/google/apis/apigee_v1.rb +40 -0
  109. data/generated/google/apis/appengine_v1/classes.rb +7 -0
  110. data/generated/google/apis/appengine_v1/representations.rb +1 -0
  111. data/generated/google/apis/appengine_v1/service.rb +10 -6
  112. data/generated/google/apis/appengine_v1.rb +1 -1
  113. data/generated/google/apis/appengine_v1alpha.rb +1 -1
  114. data/generated/google/apis/appengine_v1beta/classes.rb +7 -38
  115. data/generated/google/apis/appengine_v1beta/representations.rb +1 -17
  116. data/generated/google/apis/appengine_v1beta/service.rb +10 -6
  117. data/generated/google/apis/appengine_v1beta.rb +1 -1
  118. data/generated/google/apis/appsactivity_v1.rb +1 -1
  119. data/generated/google/apis/appsmarket_v2.rb +1 -1
  120. data/generated/google/apis/{cloudprivatecatalogproducer_v1beta1 → artifactregistry_v1beta1}/classes.rb +591 -765
  121. data/generated/google/apis/{servicebroker_v1alpha1 → artifactregistry_v1beta1}/representations.rb +128 -115
  122. data/generated/google/apis/artifactregistry_v1beta1/service.rb +957 -0
  123. data/generated/google/apis/artifactregistry_v1beta1.rb +38 -0
  124. data/generated/google/apis/bigquery_v2/classes.rb +993 -43
  125. data/generated/google/apis/bigquery_v2/representations.rb +273 -2
  126. data/generated/google/apis/bigquery_v2/service.rb +137 -4
  127. data/generated/google/apis/bigquery_v2.rb +1 -1
  128. data/generated/google/apis/bigqueryconnection_v1beta1/classes.rb +149 -59
  129. data/generated/google/apis/bigqueryconnection_v1beta1/representations.rb +2 -0
  130. data/generated/google/apis/bigqueryconnection_v1beta1/service.rb +11 -10
  131. data/generated/google/apis/bigqueryconnection_v1beta1.rb +1 -1
  132. data/generated/google/apis/bigquerydatatransfer_v1/classes.rb +49 -0
  133. data/generated/google/apis/bigquerydatatransfer_v1/representations.rb +19 -0
  134. data/generated/google/apis/bigquerydatatransfer_v1/service.rb +90 -34
  135. data/generated/google/apis/bigquerydatatransfer_v1.rb +1 -1
  136. data/generated/google/apis/bigqueryreservation_v1/classes.rb +392 -16
  137. data/generated/google/apis/bigqueryreservation_v1/representations.rb +174 -6
  138. data/generated/google/apis/bigqueryreservation_v1/service.rb +758 -0
  139. data/generated/google/apis/bigqueryreservation_v1.rb +1 -1
  140. data/generated/google/apis/bigqueryreservation_v1alpha2/classes.rb +109 -10
  141. data/generated/google/apis/bigqueryreservation_v1alpha2/representations.rb +26 -3
  142. data/generated/google/apis/bigqueryreservation_v1alpha2/service.rb +71 -0
  143. data/generated/google/apis/bigqueryreservation_v1alpha2.rb +1 -1
  144. data/generated/google/apis/bigqueryreservation_v1beta1/classes.rb +166 -160
  145. data/generated/google/apis/bigqueryreservation_v1beta1/representations.rb +49 -38
  146. data/generated/google/apis/bigqueryreservation_v1beta1/service.rb +257 -146
  147. data/generated/google/apis/bigqueryreservation_v1beta1.rb +1 -1
  148. data/generated/google/apis/bigtableadmin_v1/classes.rb +21 -18
  149. data/generated/google/apis/bigtableadmin_v1.rb +1 -1
  150. data/generated/google/apis/bigtableadmin_v2/classes.rb +189 -82
  151. data/generated/google/apis/bigtableadmin_v2/service.rb +170 -58
  152. data/generated/google/apis/bigtableadmin_v2.rb +1 -1
  153. data/generated/google/apis/billingbudgets_v1beta1/classes.rb +413 -0
  154. data/generated/google/apis/billingbudgets_v1beta1/representations.rb +197 -0
  155. data/generated/google/apis/billingbudgets_v1beta1/service.rb +244 -0
  156. data/generated/google/apis/{servicebroker_v1beta1.rb → billingbudgets_v1beta1.rb} +9 -10
  157. data/generated/google/apis/binaryauthorization_v1/classes.rb +143 -58
  158. data/generated/google/apis/binaryauthorization_v1/service.rb +10 -2
  159. data/generated/google/apis/binaryauthorization_v1.rb +1 -1
  160. data/generated/google/apis/binaryauthorization_v1beta1/classes.rb +139 -57
  161. data/generated/google/apis/binaryauthorization_v1beta1/service.rb +10 -2
  162. data/generated/google/apis/binaryauthorization_v1beta1.rb +1 -1
  163. data/generated/google/apis/blogger_v2/classes.rb +297 -45
  164. data/generated/google/apis/blogger_v2/representations.rb +105 -26
  165. data/generated/google/apis/blogger_v2/service.rb +79 -134
  166. data/generated/google/apis/blogger_v2.rb +5 -4
  167. data/generated/google/apis/blogger_v3/classes.rb +60 -53
  168. data/generated/google/apis/blogger_v3/representations.rb +10 -18
  169. data/generated/google/apis/blogger_v3/service.rb +183 -463
  170. data/generated/google/apis/blogger_v3.rb +4 -3
  171. data/generated/google/apis/books_v1/classes.rb +494 -242
  172. data/generated/google/apis/books_v1/representations.rb +145 -72
  173. data/generated/google/apis/books_v1/service.rb +354 -484
  174. data/generated/google/apis/books_v1.rb +3 -3
  175. data/generated/google/apis/calendar_v3/classes.rb +8 -21
  176. data/generated/google/apis/calendar_v3/service.rb +18 -30
  177. data/generated/google/apis/calendar_v3.rb +1 -1
  178. data/generated/google/apis/chat_v1/classes.rb +29 -3
  179. data/generated/google/apis/chat_v1/representations.rb +3 -0
  180. data/generated/google/apis/chat_v1/service.rb +5 -2
  181. data/generated/google/apis/chat_v1.rb +1 -1
  182. data/generated/google/apis/chromeuxreport_v1/classes.rb +297 -0
  183. data/generated/google/apis/chromeuxreport_v1/representations.rb +147 -0
  184. data/generated/google/apis/chromeuxreport_v1/service.rb +92 -0
  185. data/generated/google/apis/{pagespeedonline_v1.rb → chromeuxreport_v1.rb} +9 -9
  186. data/generated/google/apis/civicinfo_v2/classes.rb +0 -156
  187. data/generated/google/apis/civicinfo_v2/representations.rb +2 -60
  188. data/generated/google/apis/civicinfo_v2.rb +1 -1
  189. data/generated/google/apis/classroom_v1/classes.rb +14 -14
  190. data/generated/google/apis/classroom_v1/service.rb +11 -11
  191. data/generated/google/apis/classroom_v1.rb +1 -1
  192. data/generated/google/apis/cloudasset_v1/classes.rb +917 -195
  193. data/generated/google/apis/cloudasset_v1/representations.rb +234 -6
  194. data/generated/google/apis/cloudasset_v1/service.rb +363 -12
  195. data/generated/google/apis/cloudasset_v1.rb +2 -2
  196. data/generated/google/apis/cloudasset_v1beta1/classes.rb +139 -57
  197. data/generated/google/apis/cloudasset_v1beta1/service.rb +13 -4
  198. data/generated/google/apis/cloudasset_v1beta1.rb +2 -2
  199. data/generated/google/apis/cloudasset_v1p1beta1/classes.rb +701 -0
  200. data/generated/google/apis/cloudasset_v1p1beta1/representations.rb +201 -0
  201. data/generated/google/apis/cloudasset_v1p1beta1/service.rb +189 -0
  202. data/generated/google/apis/cloudasset_v1p1beta1.rb +34 -0
  203. data/generated/google/apis/cloudasset_v1p4beta1/classes.rb +924 -0
  204. data/generated/google/apis/cloudasset_v1p4beta1/representations.rb +377 -0
  205. data/generated/google/apis/cloudasset_v1p4beta1/service.rb +217 -0
  206. data/generated/google/apis/cloudasset_v1p4beta1.rb +34 -0
  207. data/generated/google/apis/cloudbilling_v1/classes.rb +179 -68
  208. data/generated/google/apis/cloudbilling_v1/representations.rb +0 -1
  209. data/generated/google/apis/cloudbilling_v1/service.rb +16 -9
  210. data/generated/google/apis/cloudbilling_v1.rb +1 -1
  211. data/generated/google/apis/cloudbuild_v1/classes.rb +55 -10
  212. data/generated/google/apis/cloudbuild_v1/representations.rb +5 -0
  213. data/generated/google/apis/cloudbuild_v1/service.rb +139 -18
  214. data/generated/google/apis/cloudbuild_v1.rb +1 -1
  215. data/generated/google/apis/cloudbuild_v1alpha1/classes.rb +170 -5
  216. data/generated/google/apis/cloudbuild_v1alpha1/representations.rb +63 -0
  217. data/generated/google/apis/cloudbuild_v1alpha1/service.rb +121 -5
  218. data/generated/google/apis/cloudbuild_v1alpha1.rb +1 -1
  219. data/generated/google/apis/cloudbuild_v1alpha2/classes.rb +1283 -0
  220. data/generated/google/apis/cloudbuild_v1alpha2/representations.rb +491 -0
  221. data/generated/google/apis/cloudbuild_v1alpha2/service.rb +353 -0
  222. data/generated/google/apis/cloudbuild_v1alpha2.rb +34 -0
  223. data/generated/google/apis/clouddebugger_v2/classes.rb +34 -0
  224. data/generated/google/apis/clouddebugger_v2/representations.rb +4 -0
  225. data/generated/google/apis/clouddebugger_v2/service.rb +24 -17
  226. data/generated/google/apis/clouddebugger_v2.rb +2 -2
  227. data/generated/google/apis/clouderrorreporting_v1beta1/classes.rb +1 -1
  228. data/generated/google/apis/clouderrorreporting_v1beta1/service.rb +13 -13
  229. data/generated/google/apis/clouderrorreporting_v1beta1.rb +2 -2
  230. data/generated/google/apis/cloudfunctions_v1/classes.rb +161 -59
  231. data/generated/google/apis/cloudfunctions_v1/representations.rb +3 -0
  232. data/generated/google/apis/cloudfunctions_v1/service.rb +13 -4
  233. data/generated/google/apis/cloudfunctions_v1.rb +1 -1
  234. data/generated/google/apis/cloudfunctions_v1beta2/classes.rb +7 -0
  235. data/generated/google/apis/cloudfunctions_v1beta2/representations.rb +1 -0
  236. data/generated/google/apis/cloudfunctions_v1beta2/service.rb +10 -4
  237. data/generated/google/apis/cloudfunctions_v1beta2.rb +1 -1
  238. data/generated/google/apis/cloudidentity_v1/classes.rb +11 -8
  239. data/generated/google/apis/cloudidentity_v1/service.rb +22 -14
  240. data/generated/google/apis/cloudidentity_v1.rb +1 -1
  241. data/generated/google/apis/cloudidentity_v1beta1/classes.rb +1009 -69
  242. data/generated/google/apis/cloudidentity_v1beta1/representations.rb +390 -0
  243. data/generated/google/apis/cloudidentity_v1beta1/service.rb +189 -78
  244. data/generated/google/apis/cloudidentity_v1beta1.rb +1 -1
  245. data/generated/google/apis/cloudiot_v1/classes.rb +142 -57
  246. data/generated/google/apis/cloudiot_v1.rb +1 -1
  247. data/generated/google/apis/cloudkms_v1/classes.rb +461 -61
  248. data/generated/google/apis/cloudkms_v1/representations.rb +33 -0
  249. data/generated/google/apis/cloudkms_v1/service.rb +15 -3
  250. data/generated/google/apis/cloudkms_v1.rb +1 -1
  251. data/generated/google/apis/cloudprofiler_v2.rb +1 -1
  252. data/generated/google/apis/cloudresourcemanager_v1/classes.rb +155 -71
  253. data/generated/google/apis/cloudresourcemanager_v1/service.rb +6 -3
  254. data/generated/google/apis/cloudresourcemanager_v1.rb +1 -1
  255. data/generated/google/apis/cloudresourcemanager_v1beta1/classes.rb +143 -59
  256. data/generated/google/apis/cloudresourcemanager_v1beta1/service.rb +1 -1
  257. data/generated/google/apis/cloudresourcemanager_v1beta1.rb +1 -1
  258. data/generated/google/apis/cloudresourcemanager_v2/classes.rb +147 -67
  259. data/generated/google/apis/cloudresourcemanager_v2/service.rb +11 -13
  260. data/generated/google/apis/cloudresourcemanager_v2.rb +1 -1
  261. data/generated/google/apis/cloudresourcemanager_v2beta1/classes.rb +147 -67
  262. data/generated/google/apis/cloudresourcemanager_v2beta1/service.rb +11 -13
  263. data/generated/google/apis/cloudresourcemanager_v2beta1.rb +1 -1
  264. data/generated/google/apis/cloudscheduler_v1/classes.rb +3 -2
  265. data/generated/google/apis/cloudscheduler_v1.rb +1 -1
  266. data/generated/google/apis/cloudscheduler_v1beta1/classes.rb +3 -2
  267. data/generated/google/apis/cloudscheduler_v1beta1.rb +1 -1
  268. data/generated/google/apis/cloudsearch_v1/classes.rb +86 -195
  269. data/generated/google/apis/cloudsearch_v1/representations.rb +1 -75
  270. data/generated/google/apis/cloudsearch_v1/service.rb +62 -10
  271. data/generated/google/apis/cloudsearch_v1.rb +8 -8
  272. data/generated/google/apis/cloudshell_v1/classes.rb +24 -1
  273. data/generated/google/apis/cloudshell_v1/representations.rb +3 -0
  274. data/generated/google/apis/cloudshell_v1.rb +1 -1
  275. data/generated/google/apis/cloudshell_v1alpha1/classes.rb +30 -1
  276. data/generated/google/apis/cloudshell_v1alpha1/representations.rb +5 -0
  277. data/generated/google/apis/cloudshell_v1alpha1.rb +1 -1
  278. data/generated/google/apis/cloudtasks_v2/classes.rb +388 -70
  279. data/generated/google/apis/cloudtasks_v2/representations.rb +65 -0
  280. data/generated/google/apis/cloudtasks_v2.rb +1 -1
  281. data/generated/google/apis/cloudtasks_v2beta2/classes.rb +148 -66
  282. data/generated/google/apis/cloudtasks_v2beta2/service.rb +6 -1
  283. data/generated/google/apis/cloudtasks_v2beta2.rb +1 -1
  284. data/generated/google/apis/cloudtasks_v2beta3/classes.rb +156 -74
  285. data/generated/google/apis/cloudtasks_v2beta3.rb +1 -1
  286. data/generated/google/apis/cloudtrace_v1/service.rb +10 -4
  287. data/generated/google/apis/cloudtrace_v1.rb +5 -5
  288. data/generated/google/apis/cloudtrace_v2/classes.rb +8 -7
  289. data/generated/google/apis/cloudtrace_v2/service.rb +8 -4
  290. data/generated/google/apis/cloudtrace_v2.rb +5 -5
  291. data/generated/google/apis/cloudtrace_v2beta1/classes.rb +143 -0
  292. data/generated/google/apis/{oauth2_v1 → cloudtrace_v2beta1}/representations.rb +36 -27
  293. data/generated/google/apis/cloudtrace_v2beta1/service.rb +258 -0
  294. data/generated/google/apis/cloudtrace_v2beta1.rb +44 -0
  295. data/generated/google/apis/composer_v1/classes.rb +180 -0
  296. data/generated/google/apis/composer_v1/representations.rb +54 -0
  297. data/generated/google/apis/composer_v1.rb +1 -1
  298. data/generated/google/apis/composer_v1beta1/classes.rb +152 -5
  299. data/generated/google/apis/composer_v1beta1/representations.rb +64 -0
  300. data/generated/google/apis/composer_v1beta1/service.rb +5 -0
  301. data/generated/google/apis/composer_v1beta1.rb +1 -1
  302. data/generated/google/apis/compute_alpha/classes.rb +3252 -973
  303. data/generated/google/apis/compute_alpha/representations.rb +634 -69
  304. data/generated/google/apis/compute_alpha/service.rb +9085 -6210
  305. data/generated/google/apis/compute_alpha.rb +1 -1
  306. data/generated/google/apis/compute_beta/classes.rb +4787 -1066
  307. data/generated/google/apis/compute_beta/representations.rb +1394 -31
  308. data/generated/google/apis/compute_beta/service.rb +8858 -5018
  309. data/generated/google/apis/compute_beta.rb +1 -1
  310. data/generated/google/apis/compute_v1/classes.rb +2976 -599
  311. data/generated/google/apis/compute_v1/representations.rb +850 -0
  312. data/generated/google/apis/compute_v1/service.rb +4634 -2481
  313. data/generated/google/apis/compute_v1.rb +1 -1
  314. data/generated/google/apis/container_v1/classes.rb +925 -164
  315. data/generated/google/apis/container_v1/representations.rb +278 -0
  316. data/generated/google/apis/container_v1/service.rb +175 -158
  317. data/generated/google/apis/container_v1.rb +1 -1
  318. data/generated/google/apis/container_v1beta1/classes.rb +803 -340
  319. data/generated/google/apis/container_v1beta1/representations.rb +185 -39
  320. data/generated/google/apis/container_v1beta1/service.rb +294 -277
  321. data/generated/google/apis/container_v1beta1.rb +1 -1
  322. data/generated/google/apis/containeranalysis_v1alpha1/classes.rb +142 -57
  323. data/generated/google/apis/containeranalysis_v1alpha1.rb +1 -1
  324. data/generated/google/apis/containeranalysis_v1beta1/classes.rb +478 -59
  325. data/generated/google/apis/containeranalysis_v1beta1/representations.rb +159 -0
  326. data/generated/google/apis/containeranalysis_v1beta1/service.rb +26 -20
  327. data/generated/google/apis/containeranalysis_v1beta1.rb +1 -1
  328. data/generated/google/apis/content_v2/classes.rb +1566 -634
  329. data/generated/google/apis/content_v2/representations.rb +78 -115
  330. data/generated/google/apis/content_v2/service.rb +81 -206
  331. data/generated/google/apis/content_v2.rb +1 -1
  332. data/generated/google/apis/content_v2_1/classes.rb +2706 -683
  333. data/generated/google/apis/content_v2_1/representations.rb +551 -0
  334. data/generated/google/apis/content_v2_1/service.rb +520 -46
  335. data/generated/google/apis/content_v2_1.rb +1 -1
  336. data/generated/google/apis/customsearch_v1/classes.rb +1194 -353
  337. data/generated/google/apis/customsearch_v1/representations.rb +166 -95
  338. data/generated/google/apis/customsearch_v1/service.rb +373 -104
  339. data/generated/google/apis/customsearch_v1.rb +3 -3
  340. data/generated/google/apis/datacatalog_v1beta1/classes.rb +1907 -0
  341. data/generated/google/apis/datacatalog_v1beta1/representations.rb +739 -0
  342. data/generated/google/apis/datacatalog_v1beta1/service.rb +2247 -0
  343. data/generated/google/apis/{cloudprivatecatalog_v1beta1.rb → datacatalog_v1beta1.rb} +9 -9
  344. data/generated/google/apis/dataflow_v1b3/classes.rb +786 -11
  345. data/generated/google/apis/dataflow_v1b3/representations.rb +377 -1
  346. data/generated/google/apis/dataflow_v1b3/service.rb +626 -0
  347. data/generated/google/apis/dataflow_v1b3.rb +1 -1
  348. data/generated/google/apis/datafusion_v1beta1/classes.rb +245 -362
  349. data/generated/google/apis/datafusion_v1beta1/representations.rb +29 -112
  350. data/generated/google/apis/datafusion_v1beta1/service.rb +15 -2
  351. data/generated/google/apis/datafusion_v1beta1.rb +1 -1
  352. data/generated/google/apis/dataproc_v1/classes.rb +533 -177
  353. data/generated/google/apis/dataproc_v1/representations.rb +85 -0
  354. data/generated/google/apis/dataproc_v1/service.rb +102 -36
  355. data/generated/google/apis/dataproc_v1.rb +1 -1
  356. data/generated/google/apis/dataproc_v1beta2/classes.rb +477 -182
  357. data/generated/google/apis/dataproc_v1beta2/representations.rb +81 -0
  358. data/generated/google/apis/dataproc_v1beta2/service.rb +199 -43
  359. data/generated/google/apis/dataproc_v1beta2.rb +1 -1
  360. data/generated/google/apis/datastore_v1/classes.rb +17 -23
  361. data/generated/google/apis/datastore_v1/service.rb +93 -9
  362. data/generated/google/apis/datastore_v1.rb +1 -1
  363. data/generated/google/apis/datastore_v1beta1.rb +1 -1
  364. data/generated/google/apis/datastore_v1beta3/classes.rb +6 -5
  365. data/generated/google/apis/datastore_v1beta3/service.rb +7 -7
  366. data/generated/google/apis/datastore_v1beta3.rb +1 -1
  367. data/generated/google/apis/deploymentmanager_alpha/classes.rb +362 -176
  368. data/generated/google/apis/deploymentmanager_alpha/representations.rb +22 -4
  369. data/generated/google/apis/deploymentmanager_alpha/service.rb +198 -311
  370. data/generated/google/apis/deploymentmanager_alpha.rb +1 -1
  371. data/generated/google/apis/deploymentmanager_v2/classes.rb +295 -146
  372. data/generated/google/apis/deploymentmanager_v2/representations.rb +17 -1
  373. data/generated/google/apis/deploymentmanager_v2/service.rb +101 -99
  374. data/generated/google/apis/deploymentmanager_v2.rb +1 -1
  375. data/generated/google/apis/deploymentmanager_v2beta/classes.rb +350 -170
  376. data/generated/google/apis/deploymentmanager_v2beta/representations.rb +18 -1
  377. data/generated/google/apis/deploymentmanager_v2beta/service.rb +154 -152
  378. data/generated/google/apis/deploymentmanager_v2beta.rb +1 -1
  379. data/generated/google/apis/dfareporting_v3_3/classes.rb +39 -13
  380. data/generated/google/apis/dfareporting_v3_3/service.rb +9 -8
  381. data/generated/google/apis/dfareporting_v3_3.rb +1 -1
  382. data/generated/google/apis/{dfareporting_v3_2 → dfareporting_v3_4}/classes.rb +1361 -813
  383. data/generated/google/apis/{dfareporting_v3_2 → dfareporting_v3_4}/representations.rb +639 -396
  384. data/generated/google/apis/{dfareporting_v3_2 → dfareporting_v3_4}/service.rb +969 -1076
  385. data/generated/google/apis/{dfareporting_v3_2.rb → dfareporting_v3_4.rb} +6 -6
  386. data/generated/google/apis/dialogflow_v2/classes.rb +1778 -219
  387. data/generated/google/apis/dialogflow_v2/representations.rb +603 -0
  388. data/generated/google/apis/dialogflow_v2/service.rb +849 -158
  389. data/generated/google/apis/dialogflow_v2.rb +1 -1
  390. data/generated/google/apis/dialogflow_v2beta1/classes.rb +1776 -242
  391. data/generated/google/apis/dialogflow_v2beta1/representations.rb +592 -0
  392. data/generated/google/apis/dialogflow_v2beta1/service.rb +436 -172
  393. data/generated/google/apis/dialogflow_v2beta1.rb +1 -1
  394. data/generated/google/apis/dialogflow_v3alpha1/classes.rb +5579 -0
  395. data/generated/google/apis/dialogflow_v3alpha1/representations.rb +2295 -0
  396. data/generated/google/apis/dialogflow_v3alpha1/service.rb +296 -0
  397. data/generated/google/apis/dialogflow_v3alpha1.rb +38 -0
  398. data/generated/google/apis/digitalassetlinks_v1.rb +1 -1
  399. data/generated/google/apis/displayvideo_v1/classes.rb +7527 -0
  400. data/generated/google/apis/displayvideo_v1/representations.rb +3034 -0
  401. data/generated/google/apis/displayvideo_v1/service.rb +3126 -0
  402. data/generated/google/apis/displayvideo_v1.rb +38 -0
  403. data/generated/google/apis/dlp_v2/classes.rb +798 -130
  404. data/generated/google/apis/dlp_v2/representations.rb +277 -3
  405. data/generated/google/apis/dlp_v2/service.rb +2074 -231
  406. data/generated/google/apis/dlp_v2.rb +1 -1
  407. data/generated/google/apis/dns_v1/classes.rb +220 -251
  408. data/generated/google/apis/dns_v1/representations.rb +49 -0
  409. data/generated/google/apis/dns_v1/service.rb +21 -141
  410. data/generated/google/apis/dns_v1.rb +1 -1
  411. data/generated/google/apis/dns_v1beta2/classes.rb +224 -261
  412. data/generated/google/apis/dns_v1beta2/representations.rb +49 -0
  413. data/generated/google/apis/dns_v1beta2/service.rb +21 -141
  414. data/generated/google/apis/dns_v1beta2.rb +1 -1
  415. data/generated/google/apis/dns_v2beta1/classes.rb +220 -251
  416. data/generated/google/apis/dns_v2beta1/representations.rb +49 -0
  417. data/generated/google/apis/dns_v2beta1/service.rb +21 -141
  418. data/generated/google/apis/dns_v2beta1.rb +1 -1
  419. data/generated/google/apis/docs_v1/classes.rb +608 -2
  420. data/generated/google/apis/docs_v1/representations.rb +211 -0
  421. data/generated/google/apis/docs_v1.rb +1 -1
  422. data/generated/google/apis/domainsrdap_v1.rb +1 -1
  423. data/generated/google/apis/doubleclickbidmanager_v1/classes.rb +1 -1
  424. data/generated/google/apis/doubleclickbidmanager_v1.rb +1 -1
  425. data/generated/google/apis/doubleclickbidmanager_v1_1/classes.rb +860 -0
  426. data/generated/google/apis/doubleclickbidmanager_v1_1/representations.rb +388 -0
  427. data/generated/google/apis/{surveys_v2 → doubleclickbidmanager_v1_1}/service.rb +140 -110
  428. data/generated/google/apis/{proximitybeacon_v1beta1.rb → doubleclickbidmanager_v1_1.rb} +11 -11
  429. data/generated/google/apis/doubleclicksearch_v2/service.rb +0 -55
  430. data/generated/google/apis/doubleclicksearch_v2.rb +1 -1
  431. data/generated/google/apis/drive_v2/classes.rb +58 -5
  432. data/generated/google/apis/drive_v2/representations.rb +18 -0
  433. data/generated/google/apis/drive_v2/service.rb +92 -118
  434. data/generated/google/apis/drive_v2.rb +1 -1
  435. data/generated/google/apis/drive_v3/classes.rb +66 -5
  436. data/generated/google/apis/drive_v3/representations.rb +18 -0
  437. data/generated/google/apis/drive_v3/service.rb +46 -14
  438. data/generated/google/apis/drive_v3.rb +1 -1
  439. data/generated/google/apis/driveactivity_v2/classes.rb +15 -5
  440. data/generated/google/apis/driveactivity_v2/representations.rb +2 -0
  441. data/generated/google/apis/driveactivity_v2.rb +1 -1
  442. data/generated/google/apis/factchecktools_v1alpha1.rb +1 -1
  443. data/generated/google/apis/fcm_v1/classes.rb +15 -0
  444. data/generated/google/apis/fcm_v1/representations.rb +2 -0
  445. data/generated/google/apis/fcm_v1.rb +1 -1
  446. data/generated/google/apis/file_v1/classes.rb +1235 -158
  447. data/generated/google/apis/file_v1/representations.rb +401 -22
  448. data/generated/google/apis/file_v1/service.rb +14 -10
  449. data/generated/google/apis/file_v1.rb +1 -1
  450. data/generated/google/apis/file_v1beta1/classes.rb +1236 -159
  451. data/generated/google/apis/file_v1beta1/representations.rb +401 -22
  452. data/generated/google/apis/file_v1beta1/service.rb +18 -11
  453. data/generated/google/apis/file_v1beta1.rb +1 -1
  454. data/generated/google/apis/firebase_v1beta1/classes.rb +20 -16
  455. data/generated/google/apis/firebase_v1beta1/representations.rb +2 -0
  456. data/generated/google/apis/firebase_v1beta1/service.rb +22 -16
  457. data/generated/google/apis/firebase_v1beta1.rb +1 -1
  458. data/generated/google/apis/firebasedynamiclinks_v1.rb +1 -1
  459. data/generated/google/apis/firebasehosting_v1beta1/classes.rb +174 -1
  460. data/generated/google/apis/firebasehosting_v1beta1/representations.rb +65 -0
  461. data/generated/google/apis/firebasehosting_v1beta1/service.rb +805 -2
  462. data/generated/google/apis/firebasehosting_v1beta1.rb +1 -1
  463. data/generated/google/apis/firebaseml_v1/classes.rb +213 -0
  464. data/generated/google/apis/{servicebroker_v1 → firebaseml_v1}/representations.rb +26 -28
  465. data/generated/google/apis/firebaseml_v1/service.rb +181 -0
  466. data/generated/google/apis/firebaseml_v1.rb +34 -0
  467. data/generated/google/apis/firebaseml_v1beta2/classes.rb +344 -0
  468. data/generated/google/apis/{cloudprivatecatalog_v1beta1 → firebaseml_v1beta2}/representations.rb +62 -31
  469. data/generated/google/apis/firebaseml_v1beta2/service.rb +267 -0
  470. data/generated/google/apis/firebaseml_v1beta2.rb +34 -0
  471. data/generated/google/apis/firebaserules_v1/classes.rb +113 -0
  472. data/generated/google/apis/firebaserules_v1/representations.rb +52 -0
  473. data/generated/google/apis/firebaserules_v1.rb +1 -1
  474. data/generated/google/apis/firestore_v1/classes.rb +16 -5
  475. data/generated/google/apis/firestore_v1/representations.rb +2 -0
  476. data/generated/google/apis/firestore_v1/service.rb +26 -24
  477. data/generated/google/apis/firestore_v1.rb +1 -1
  478. data/generated/google/apis/firestore_v1beta1/classes.rb +16 -5
  479. data/generated/google/apis/firestore_v1beta1/representations.rb +2 -0
  480. data/generated/google/apis/firestore_v1beta1/service.rb +18 -16
  481. data/generated/google/apis/firestore_v1beta1.rb +1 -1
  482. data/generated/google/apis/firestore_v1beta2.rb +1 -1
  483. data/generated/google/apis/fitness_v1/classes.rb +189 -153
  484. data/generated/google/apis/fitness_v1/service.rb +192 -198
  485. data/generated/google/apis/fitness_v1.rb +14 -14
  486. data/generated/google/apis/games_configuration_v1configuration/classes.rb +38 -53
  487. data/generated/google/apis/games_configuration_v1configuration/service.rb +58 -169
  488. data/generated/google/apis/games_configuration_v1configuration.rb +4 -3
  489. data/generated/google/apis/games_management_v1management/classes.rb +50 -109
  490. data/generated/google/apis/games_management_v1management/representations.rb +0 -30
  491. data/generated/google/apis/games_management_v1management/service.rb +116 -452
  492. data/generated/google/apis/games_management_v1management.rb +6 -4
  493. data/generated/google/apis/games_v1/classes.rb +14 -293
  494. data/generated/google/apis/games_v1/representations.rb +2 -98
  495. data/generated/google/apis/games_v1/service.rb +3 -135
  496. data/generated/google/apis/games_v1.rb +1 -1
  497. data/generated/google/apis/gameservices_v1beta/classes.rb +2354 -0
  498. data/generated/google/apis/gameservices_v1beta/representations.rb +971 -0
  499. data/generated/google/apis/gameservices_v1beta/service.rb +1472 -0
  500. data/generated/google/apis/gameservices_v1beta.rb +34 -0
  501. data/generated/google/apis/genomics_v1.rb +1 -1
  502. data/generated/google/apis/genomics_v1alpha2.rb +1 -1
  503. data/generated/google/apis/genomics_v2alpha1/classes.rb +32 -0
  504. data/generated/google/apis/genomics_v2alpha1/representations.rb +16 -0
  505. data/generated/google/apis/genomics_v2alpha1/service.rb +34 -0
  506. data/generated/google/apis/genomics_v2alpha1.rb +1 -1
  507. data/generated/google/apis/gmail_v1/classes.rb +6 -2
  508. data/generated/google/apis/gmail_v1/service.rb +1 -1
  509. data/generated/google/apis/gmail_v1.rb +13 -1
  510. data/generated/google/apis/healthcare_v1/classes.rb +2659 -0
  511. data/generated/google/apis/healthcare_v1/representations.rb +1114 -0
  512. data/generated/google/apis/healthcare_v1/service.rb +3439 -0
  513. data/generated/google/apis/healthcare_v1.rb +34 -0
  514. data/generated/google/apis/healthcare_v1beta1/classes.rb +1013 -128
  515. data/generated/google/apis/healthcare_v1beta1/representations.rb +341 -1
  516. data/generated/google/apis/healthcare_v1beta1/service.rb +762 -275
  517. data/generated/google/apis/healthcare_v1beta1.rb +1 -1
  518. data/generated/google/apis/homegraph_v1/classes.rb +79 -56
  519. data/generated/google/apis/homegraph_v1/representations.rb +2 -1
  520. data/generated/google/apis/homegraph_v1/service.rb +43 -47
  521. data/generated/google/apis/homegraph_v1.rb +1 -1
  522. data/generated/google/apis/iam_v1/classes.rb +201 -169
  523. data/generated/google/apis/iam_v1/representations.rb +1 -6
  524. data/generated/google/apis/iam_v1/service.rb +18 -21
  525. data/generated/google/apis/iam_v1.rb +1 -1
  526. data/generated/google/apis/iamcredentials_v1/classes.rb +40 -8
  527. data/generated/google/apis/iamcredentials_v1/service.rb +4 -4
  528. data/generated/google/apis/iamcredentials_v1.rb +1 -1
  529. data/generated/google/apis/iap_v1/classes.rb +691 -59
  530. data/generated/google/apis/iap_v1/representations.rb +254 -0
  531. data/generated/google/apis/iap_v1/service.rb +362 -0
  532. data/generated/google/apis/iap_v1.rb +1 -1
  533. data/generated/google/apis/iap_v1beta1/classes.rb +144 -59
  534. data/generated/google/apis/iap_v1beta1.rb +1 -1
  535. data/generated/google/apis/indexing_v3.rb +1 -1
  536. data/generated/google/apis/jobs_v2/classes.rb +167 -0
  537. data/generated/google/apis/jobs_v2/representations.rb +40 -0
  538. data/generated/google/apis/jobs_v2.rb +1 -1
  539. data/generated/google/apis/jobs_v3/classes.rb +180 -0
  540. data/generated/google/apis/jobs_v3/representations.rb +41 -0
  541. data/generated/google/apis/jobs_v3.rb +1 -1
  542. data/generated/google/apis/jobs_v3p1beta1/classes.rb +187 -2
  543. data/generated/google/apis/jobs_v3p1beta1/representations.rb +41 -0
  544. data/generated/google/apis/jobs_v3p1beta1.rb +1 -1
  545. data/generated/google/apis/kgsearch_v1.rb +1 -1
  546. data/generated/google/apis/language_v1/classes.rb +6 -6
  547. data/generated/google/apis/language_v1.rb +1 -1
  548. data/generated/google/apis/language_v1beta1/classes.rb +5 -5
  549. data/generated/google/apis/language_v1beta1.rb +1 -1
  550. data/generated/google/apis/language_v1beta2/classes.rb +23 -7
  551. data/generated/google/apis/language_v1beta2/representations.rb +2 -0
  552. data/generated/google/apis/language_v1beta2.rb +1 -1
  553. data/generated/google/apis/libraryagent_v1.rb +1 -1
  554. data/generated/google/apis/licensing_v1/classes.rb +15 -7
  555. data/generated/google/apis/licensing_v1/service.rb +81 -37
  556. data/generated/google/apis/licensing_v1.rb +4 -4
  557. data/generated/google/apis/lifesciences_v2beta/classes.rb +1329 -0
  558. data/generated/google/apis/lifesciences_v2beta/representations.rb +533 -0
  559. data/generated/google/apis/lifesciences_v2beta/service.rb +303 -0
  560. data/generated/google/apis/lifesciences_v2beta.rb +35 -0
  561. data/generated/google/apis/logging_v2/classes.rb +292 -91
  562. data/generated/google/apis/logging_v2/representations.rb +51 -0
  563. data/generated/google/apis/logging_v2/service.rb +888 -15
  564. data/generated/google/apis/logging_v2.rb +6 -6
  565. data/generated/google/apis/managedidentities_v1/classes.rb +1571 -0
  566. data/generated/google/apis/managedidentities_v1/representations.rb +560 -0
  567. data/generated/google/apis/managedidentities_v1/service.rb +779 -0
  568. data/generated/google/apis/managedidentities_v1.rb +35 -0
  569. data/generated/google/apis/managedidentities_v1alpha1/classes.rb +1570 -0
  570. data/generated/google/apis/managedidentities_v1alpha1/representations.rb +560 -0
  571. data/generated/google/apis/managedidentities_v1alpha1/service.rb +782 -0
  572. data/generated/google/apis/{servicebroker_v1alpha1.rb → managedidentities_v1alpha1.rb} +9 -10
  573. data/generated/google/apis/managedidentities_v1beta1/classes.rb +1568 -0
  574. data/generated/google/apis/managedidentities_v1beta1/representations.rb +560 -0
  575. data/generated/google/apis/managedidentities_v1beta1/service.rb +778 -0
  576. data/generated/google/apis/managedidentities_v1beta1.rb +35 -0
  577. data/generated/google/apis/manufacturers_v1/classes.rb +7 -0
  578. data/generated/google/apis/manufacturers_v1/representations.rb +1 -0
  579. data/generated/google/apis/manufacturers_v1.rb +1 -1
  580. data/generated/google/apis/memcache_v1beta2/classes.rb +1587 -0
  581. data/generated/google/apis/memcache_v1beta2/representations.rb +557 -0
  582. data/generated/google/apis/memcache_v1beta2/service.rb +677 -0
  583. data/generated/google/apis/memcache_v1beta2.rb +35 -0
  584. data/generated/google/apis/ml_v1/classes.rb +1518 -233
  585. data/generated/google/apis/ml_v1/representations.rb +559 -0
  586. data/generated/google/apis/ml_v1/service.rb +560 -25
  587. data/generated/google/apis/ml_v1.rb +5 -2
  588. data/generated/google/apis/monitoring_v1/classes.rb +1231 -0
  589. data/generated/google/apis/monitoring_v1/representations.rb +513 -0
  590. data/generated/google/apis/monitoring_v1/service.rb +246 -0
  591. data/generated/google/apis/monitoring_v1.rb +47 -0
  592. data/generated/google/apis/monitoring_v3/classes.rb +1330 -172
  593. data/generated/google/apis/monitoring_v3/representations.rb +482 -1
  594. data/generated/google/apis/monitoring_v3/service.rb +614 -162
  595. data/generated/google/apis/monitoring_v3.rb +7 -8
  596. data/generated/google/apis/networkmanagement_v1/classes.rb +1868 -0
  597. data/generated/google/apis/networkmanagement_v1/representations.rb +661 -0
  598. data/generated/google/apis/networkmanagement_v1/service.rb +667 -0
  599. data/generated/google/apis/networkmanagement_v1.rb +35 -0
  600. data/generated/google/apis/networkmanagement_v1beta1/classes.rb +1868 -0
  601. data/generated/google/apis/networkmanagement_v1beta1/representations.rb +661 -0
  602. data/generated/google/apis/networkmanagement_v1beta1/service.rb +667 -0
  603. data/generated/google/apis/{cloudprivatecatalogproducer_v1beta1.rb → networkmanagement_v1beta1.rb} +9 -9
  604. data/generated/google/apis/oauth2_v2/classes.rb +1 -81
  605. data/generated/google/apis/oauth2_v2/representations.rb +2 -36
  606. data/generated/google/apis/oauth2_v2/service.rb +10 -42
  607. data/generated/google/apis/oauth2_v2.rb +5 -5
  608. data/generated/google/apis/osconfig_v1/classes.rb +1225 -0
  609. data/generated/google/apis/osconfig_v1/representations.rb +506 -0
  610. data/generated/google/apis/osconfig_v1/service.rb +386 -0
  611. data/generated/google/apis/osconfig_v1.rb +35 -0
  612. data/generated/google/apis/osconfig_v1beta/classes.rb +2362 -0
  613. data/generated/google/apis/osconfig_v1beta/representations.rb +966 -0
  614. data/generated/google/apis/osconfig_v1beta/service.rb +605 -0
  615. data/generated/google/apis/osconfig_v1beta.rb +35 -0
  616. data/generated/google/apis/oslogin_v1/classes.rb +1 -1
  617. data/generated/google/apis/oslogin_v1/service.rb +10 -7
  618. data/generated/google/apis/oslogin_v1.rb +1 -2
  619. data/generated/google/apis/oslogin_v1alpha/service.rb +0 -1
  620. data/generated/google/apis/oslogin_v1alpha.rb +1 -2
  621. data/generated/google/apis/oslogin_v1beta/classes.rb +1 -1
  622. data/generated/google/apis/oslogin_v1beta/service.rb +9 -6
  623. data/generated/google/apis/oslogin_v1beta.rb +1 -2
  624. data/generated/google/apis/pagespeedonline_v5/classes.rb +534 -495
  625. data/generated/google/apis/pagespeedonline_v5/representations.rb +226 -221
  626. data/generated/google/apis/pagespeedonline_v5/service.rb +22 -24
  627. data/generated/google/apis/pagespeedonline_v5.rb +9 -4
  628. data/generated/google/apis/people_v1/classes.rb +104 -81
  629. data/generated/google/apis/people_v1/representations.rb +1 -0
  630. data/generated/google/apis/people_v1/service.rb +72 -79
  631. data/generated/google/apis/people_v1.rb +10 -1
  632. data/generated/google/apis/policytroubleshooter_v1/classes.rb +765 -0
  633. data/generated/google/apis/policytroubleshooter_v1/representations.rb +203 -0
  634. data/generated/google/apis/policytroubleshooter_v1/service.rb +90 -0
  635. data/generated/google/apis/policytroubleshooter_v1.rb +34 -0
  636. data/generated/google/apis/policytroubleshooter_v1beta/classes.rb +254 -111
  637. data/generated/google/apis/policytroubleshooter_v1beta/service.rb +2 -3
  638. data/generated/google/apis/policytroubleshooter_v1beta.rb +1 -1
  639. data/generated/google/apis/poly_v1.rb +1 -1
  640. data/generated/google/apis/prod_tt_sasportal_v1alpha1/classes.rb +1137 -0
  641. data/generated/google/apis/prod_tt_sasportal_v1alpha1/representations.rb +532 -0
  642. data/generated/google/apis/prod_tt_sasportal_v1alpha1/service.rb +1676 -0
  643. data/generated/google/apis/{pagespeedonline_v4.rb → prod_tt_sasportal_v1alpha1.rb} +12 -10
  644. data/generated/google/apis/pubsub_v1/classes.rb +248 -76
  645. data/generated/google/apis/pubsub_v1/representations.rb +18 -0
  646. data/generated/google/apis/pubsub_v1/service.rb +43 -31
  647. data/generated/google/apis/pubsub_v1.rb +1 -1
  648. data/generated/google/apis/pubsub_v1beta1a.rb +1 -1
  649. data/generated/google/apis/pubsub_v1beta2/classes.rb +144 -59
  650. data/generated/google/apis/pubsub_v1beta2/service.rb +10 -2
  651. data/generated/google/apis/pubsub_v1beta2.rb +1 -1
  652. data/generated/google/apis/recommender_v1beta1/classes.rb +221 -7
  653. data/generated/google/apis/recommender_v1beta1/representations.rb +96 -0
  654. data/generated/google/apis/recommender_v1beta1/service.rb +146 -19
  655. data/generated/google/apis/recommender_v1beta1.rb +1 -1
  656. data/generated/google/apis/redis_v1/classes.rb +48 -18
  657. data/generated/google/apis/redis_v1/representations.rb +14 -0
  658. data/generated/google/apis/redis_v1/service.rb +41 -5
  659. data/generated/google/apis/redis_v1.rb +1 -1
  660. data/generated/google/apis/redis_v1beta1/classes.rb +48 -18
  661. data/generated/google/apis/redis_v1beta1/representations.rb +14 -0
  662. data/generated/google/apis/redis_v1beta1/service.rb +41 -5
  663. data/generated/google/apis/redis_v1beta1.rb +1 -1
  664. data/generated/google/apis/remotebuildexecution_v1/classes.rb +352 -37
  665. data/generated/google/apis/remotebuildexecution_v1/representations.rb +99 -0
  666. data/generated/google/apis/remotebuildexecution_v1.rb +1 -1
  667. data/generated/google/apis/remotebuildexecution_v1alpha/classes.rb +352 -37
  668. data/generated/google/apis/remotebuildexecution_v1alpha/representations.rb +99 -0
  669. data/generated/google/apis/remotebuildexecution_v1alpha.rb +1 -1
  670. data/generated/google/apis/remotebuildexecution_v2/classes.rb +362 -45
  671. data/generated/google/apis/remotebuildexecution_v2/representations.rb +100 -0
  672. data/generated/google/apis/remotebuildexecution_v2/service.rb +5 -1
  673. data/generated/google/apis/remotebuildexecution_v2.rb +1 -1
  674. data/generated/google/apis/reseller_v1/service.rb +1 -1
  675. data/generated/google/apis/reseller_v1.rb +1 -1
  676. data/generated/google/apis/run_v1/classes.rb +308 -325
  677. data/generated/google/apis/run_v1/representations.rb +63 -103
  678. data/generated/google/apis/run_v1/service.rb +336 -933
  679. data/generated/google/apis/run_v1.rb +1 -1
  680. data/generated/google/apis/run_v1alpha1/classes.rb +1045 -392
  681. data/generated/google/apis/run_v1alpha1/representations.rb +343 -144
  682. data/generated/google/apis/run_v1alpha1/service.rb +1735 -492
  683. data/generated/google/apis/run_v1alpha1.rb +1 -1
  684. data/generated/google/apis/run_v1beta1/classes.rb +1 -1
  685. data/generated/google/apis/run_v1beta1.rb +4 -1
  686. data/generated/google/apis/runtimeconfig_v1.rb +1 -1
  687. data/generated/google/apis/runtimeconfig_v1beta1/classes.rb +139 -57
  688. data/generated/google/apis/runtimeconfig_v1beta1/service.rb +8 -5
  689. data/generated/google/apis/runtimeconfig_v1beta1.rb +1 -1
  690. data/generated/google/apis/safebrowsing_v4/classes.rb +2 -2
  691. data/generated/google/apis/safebrowsing_v4.rb +1 -1
  692. data/generated/google/apis/sasportal_v1alpha1/classes.rb +1137 -0
  693. data/generated/google/apis/sasportal_v1alpha1/representations.rb +532 -0
  694. data/generated/google/apis/sasportal_v1alpha1/service.rb +1676 -0
  695. data/generated/google/apis/{pagespeedonline_v2.rb → sasportal_v1alpha1.rb} +12 -10
  696. data/generated/google/apis/script_v1/classes.rb +4 -22
  697. data/generated/google/apis/script_v1.rb +1 -1
  698. data/generated/google/apis/searchconsole_v1.rb +1 -1
  699. data/generated/google/apis/secretmanager_v1/classes.rb +982 -0
  700. data/generated/google/apis/{cloudprivatecatalogproducer_v1beta1 → secretmanager_v1}/representations.rb +105 -116
  701. data/generated/google/apis/secretmanager_v1/service.rb +681 -0
  702. data/generated/google/apis/secretmanager_v1.rb +35 -0
  703. data/generated/google/apis/secretmanager_v1beta1/classes.rb +982 -0
  704. data/generated/google/apis/{servicebroker_v1beta1 → secretmanager_v1beta1}/representations.rb +114 -142
  705. data/generated/google/apis/secretmanager_v1beta1/service.rb +681 -0
  706. data/generated/google/apis/secretmanager_v1beta1.rb +35 -0
  707. data/generated/google/apis/securitycenter_v1/classes.rb +862 -138
  708. data/generated/google/apis/securitycenter_v1/representations.rb +221 -0
  709. data/generated/google/apis/securitycenter_v1/service.rb +225 -21
  710. data/generated/google/apis/securitycenter_v1.rb +4 -4
  711. data/generated/google/apis/securitycenter_v1beta1/classes.rb +782 -125
  712. data/generated/google/apis/securitycenter_v1beta1/representations.rb +192 -2
  713. data/generated/google/apis/securitycenter_v1beta1/service.rb +53 -51
  714. data/generated/google/apis/securitycenter_v1beta1.rb +4 -4
  715. data/generated/google/apis/securitycenter_v1p1alpha1/classes.rb +568 -0
  716. data/generated/google/apis/securitycenter_v1p1alpha1/representations.rb +190 -0
  717. data/generated/google/apis/securitycenter_v1p1alpha1/service.rb +3 -3
  718. data/generated/google/apis/securitycenter_v1p1alpha1.rb +4 -4
  719. data/generated/google/apis/securitycenter_v1p1beta1/classes.rb +2205 -0
  720. data/generated/google/apis/securitycenter_v1p1beta1/representations.rb +751 -0
  721. data/generated/google/apis/securitycenter_v1p1beta1/service.rb +1329 -0
  722. data/generated/google/apis/securitycenter_v1p1beta1.rb +35 -0
  723. data/generated/google/apis/serviceconsumermanagement_v1/classes.rb +419 -64
  724. data/generated/google/apis/serviceconsumermanagement_v1/representations.rb +98 -0
  725. data/generated/google/apis/serviceconsumermanagement_v1.rb +1 -1
  726. data/generated/google/apis/serviceconsumermanagement_v1beta1/classes.rb +4159 -0
  727. data/generated/google/apis/serviceconsumermanagement_v1beta1/representations.rb +1307 -0
  728. data/generated/google/apis/serviceconsumermanagement_v1beta1/service.rb +428 -0
  729. data/generated/google/apis/serviceconsumermanagement_v1beta1.rb +34 -0
  730. data/generated/google/apis/servicecontrol_v1/classes.rb +255 -20
  731. data/generated/google/apis/servicecontrol_v1/representations.rb +87 -1
  732. data/generated/google/apis/servicecontrol_v1/service.rb +2 -1
  733. data/generated/google/apis/servicecontrol_v1.rb +1 -1
  734. data/generated/google/apis/servicedirectory_v1beta1/classes.rb +816 -0
  735. data/generated/google/apis/{surveys_v2 → servicedirectory_v1beta1}/representations.rb +103 -104
  736. data/generated/google/apis/servicedirectory_v1beta1/service.rb +992 -0
  737. data/generated/google/apis/servicedirectory_v1beta1.rb +35 -0
  738. data/generated/google/apis/servicemanagement_v1/classes.rb +459 -125
  739. data/generated/google/apis/servicemanagement_v1/representations.rb +61 -0
  740. data/generated/google/apis/servicemanagement_v1/service.rb +40 -29
  741. data/generated/google/apis/servicemanagement_v1.rb +1 -1
  742. data/generated/google/apis/servicenetworking_v1/classes.rb +986 -68
  743. data/generated/google/apis/servicenetworking_v1/representations.rb +403 -0
  744. data/generated/google/apis/servicenetworking_v1/service.rb +351 -23
  745. data/generated/google/apis/servicenetworking_v1.rb +1 -1
  746. data/generated/google/apis/servicenetworking_v1beta/classes.rb +575 -57
  747. data/generated/google/apis/servicenetworking_v1beta/representations.rb +223 -0
  748. data/generated/google/apis/servicenetworking_v1beta.rb +1 -1
  749. data/generated/google/apis/serviceusage_v1/classes.rb +417 -64
  750. data/generated/google/apis/serviceusage_v1/representations.rb +110 -0
  751. data/generated/google/apis/serviceusage_v1/service.rb +42 -0
  752. data/generated/google/apis/serviceusage_v1.rb +1 -1
  753. data/generated/google/apis/serviceusage_v1beta1/classes.rb +644 -64
  754. data/generated/google/apis/serviceusage_v1beta1/representations.rb +198 -0
  755. data/generated/google/apis/serviceusage_v1beta1/service.rb +472 -0
  756. data/generated/google/apis/serviceusage_v1beta1.rb +1 -1
  757. data/generated/google/apis/sheets_v4/classes.rb +1741 -253
  758. data/generated/google/apis/sheets_v4/representations.rb +283 -0
  759. data/generated/google/apis/sheets_v4/service.rb +9 -11
  760. data/generated/google/apis/sheets_v4.rb +1 -1
  761. data/generated/google/apis/slides_v1/classes.rb +1 -1
  762. data/generated/google/apis/slides_v1/service.rb +1 -1
  763. data/generated/google/apis/slides_v1.rb +1 -1
  764. data/generated/google/apis/sourcerepo_v1/classes.rb +173 -67
  765. data/generated/google/apis/sourcerepo_v1/service.rb +9 -1
  766. data/generated/google/apis/sourcerepo_v1.rb +1 -1
  767. data/generated/google/apis/spanner_v1/classes.rb +706 -71
  768. data/generated/google/apis/spanner_v1/representations.rb +194 -0
  769. data/generated/google/apis/spanner_v1/service.rb +770 -7
  770. data/generated/google/apis/spanner_v1.rb +1 -1
  771. data/generated/google/apis/speech_v1/classes.rb +15 -11
  772. data/generated/google/apis/speech_v1/representations.rb +2 -1
  773. data/generated/google/apis/speech_v1.rb +1 -1
  774. data/generated/google/apis/speech_v1p1beta1/classes.rb +197 -11
  775. data/generated/google/apis/speech_v1p1beta1/representations.rb +79 -1
  776. data/generated/google/apis/speech_v1p1beta1.rb +1 -1
  777. data/generated/google/apis/{speech_v2beta → speech_v2beta1}/classes.rb +16 -8
  778. data/generated/google/apis/{speech_v2beta → speech_v2beta1}/representations.rb +7 -6
  779. data/generated/google/apis/{speech_v2beta → speech_v2beta1}/service.rb +13 -13
  780. data/generated/google/apis/{speech_v2beta.rb → speech_v2beta1.rb} +6 -6
  781. data/generated/google/apis/{sqladmin_v1beta4 → sql_v1beta4}/classes.rb +701 -383
  782. data/generated/google/apis/{sqladmin_v1beta4 → sql_v1beta4}/representations.rb +209 -104
  783. data/generated/google/apis/{sqladmin_v1beta4 → sql_v1beta4}/service.rb +579 -597
  784. data/generated/google/apis/{sqladmin_v1beta4.rb → sql_v1beta4.rb} +7 -8
  785. data/generated/google/apis/storage_v1/classes.rb +73 -7
  786. data/generated/google/apis/storage_v1/representations.rb +10 -0
  787. data/generated/google/apis/storage_v1/service.rb +29 -4
  788. data/generated/google/apis/storage_v1.rb +1 -1
  789. data/generated/google/apis/storage_v1beta2/service.rb +1 -1
  790. data/generated/google/apis/storage_v1beta2.rb +1 -1
  791. data/generated/google/apis/storagetransfer_v1/classes.rb +280 -79
  792. data/generated/google/apis/storagetransfer_v1/representations.rb +52 -0
  793. data/generated/google/apis/storagetransfer_v1/service.rb +19 -41
  794. data/generated/google/apis/storagetransfer_v1.rb +1 -1
  795. data/generated/google/apis/streetviewpublish_v1/classes.rb +1 -1
  796. data/generated/google/apis/streetviewpublish_v1/service.rb +1 -1
  797. data/generated/google/apis/streetviewpublish_v1.rb +1 -1
  798. data/generated/google/apis/tagmanager_v1/classes.rb +2 -0
  799. data/generated/google/apis/tagmanager_v1/service.rb +1 -1
  800. data/generated/google/apis/tagmanager_v1.rb +1 -1
  801. data/generated/google/apis/tagmanager_v2/classes.rb +170 -0
  802. data/generated/google/apis/tagmanager_v2/representations.rb +49 -0
  803. data/generated/google/apis/tagmanager_v2/service.rb +1 -1
  804. data/generated/google/apis/tagmanager_v2.rb +1 -1
  805. data/generated/google/apis/tasks_v1/classes.rb +26 -25
  806. data/generated/google/apis/tasks_v1/representations.rb +4 -8
  807. data/generated/google/apis/tasks_v1/service.rb +78 -124
  808. data/generated/google/apis/tasks_v1.rb +3 -3
  809. data/generated/google/apis/testing_v1/classes.rb +187 -1
  810. data/generated/google/apis/testing_v1/representations.rb +93 -0
  811. data/generated/google/apis/testing_v1.rb +1 -1
  812. data/generated/google/apis/texttospeech_v1.rb +1 -1
  813. data/generated/google/apis/texttospeech_v1beta1.rb +1 -1
  814. data/generated/google/apis/toolresults_v1beta3/classes.rb +2061 -1133
  815. data/generated/google/apis/toolresults_v1beta3/representations.rb +723 -13
  816. data/generated/google/apis/toolresults_v1beta3/service.rb +663 -591
  817. data/generated/google/apis/toolresults_v1beta3.rb +2 -2
  818. data/generated/google/apis/tpu_v1/classes.rb +3 -4
  819. data/generated/google/apis/tpu_v1.rb +1 -1
  820. data/generated/google/apis/tpu_v1alpha1/classes.rb +3 -4
  821. data/generated/google/apis/tpu_v1alpha1.rb +1 -1
  822. data/generated/google/apis/translate_v3/classes.rb +946 -0
  823. data/generated/google/apis/translate_v3/representations.rb +439 -0
  824. data/generated/google/apis/translate_v3/service.rb +781 -0
  825. data/generated/google/apis/translate_v3.rb +37 -0
  826. data/generated/google/apis/translate_v3beta1.rb +1 -1
  827. data/generated/google/apis/vault_v1/classes.rb +10 -7
  828. data/generated/google/apis/vault_v1/service.rb +7 -7
  829. data/generated/google/apis/vault_v1.rb +1 -1
  830. data/generated/google/apis/verifiedaccess_v1/service.rb +2 -2
  831. data/generated/google/apis/verifiedaccess_v1.rb +3 -3
  832. data/generated/google/apis/videointelligence_v1/classes.rb +1205 -118
  833. data/generated/google/apis/videointelligence_v1/representations.rb +492 -0
  834. data/generated/google/apis/videointelligence_v1.rb +1 -1
  835. data/generated/google/apis/videointelligence_v1beta2/classes.rb +1205 -118
  836. data/generated/google/apis/videointelligence_v1beta2/representations.rb +492 -0
  837. data/generated/google/apis/videointelligence_v1beta2.rb +1 -1
  838. data/generated/google/apis/videointelligence_v1p1beta1/classes.rb +1216 -129
  839. data/generated/google/apis/videointelligence_v1p1beta1/representations.rb +492 -0
  840. data/generated/google/apis/videointelligence_v1p1beta1.rb +1 -1
  841. data/generated/google/apis/videointelligence_v1p2beta1/classes.rb +1205 -118
  842. data/generated/google/apis/videointelligence_v1p2beta1/representations.rb +492 -0
  843. data/generated/google/apis/videointelligence_v1p2beta1.rb +1 -1
  844. data/generated/google/apis/videointelligence_v1p3beta1/classes.rb +1290 -116
  845. data/generated/google/apis/videointelligence_v1p3beta1/representations.rb +526 -0
  846. data/generated/google/apis/videointelligence_v1p3beta1.rb +1 -1
  847. data/generated/google/apis/vision_v1/classes.rb +67 -1
  848. data/generated/google/apis/vision_v1/representations.rb +32 -0
  849. data/generated/google/apis/vision_v1/service.rb +1 -1
  850. data/generated/google/apis/vision_v1.rb +1 -1
  851. data/generated/google/apis/vision_v1p1beta1/classes.rb +67 -1
  852. data/generated/google/apis/vision_v1p1beta1/representations.rb +32 -0
  853. data/generated/google/apis/vision_v1p1beta1.rb +1 -1
  854. data/generated/google/apis/vision_v1p2beta1/classes.rb +67 -1
  855. data/generated/google/apis/vision_v1p2beta1/representations.rb +32 -0
  856. data/generated/google/apis/vision_v1p2beta1.rb +1 -1
  857. data/generated/google/apis/websecurityscanner_v1/classes.rb +75 -4
  858. data/generated/google/apis/websecurityscanner_v1/representations.rb +32 -0
  859. data/generated/google/apis/websecurityscanner_v1/service.rb +1 -1
  860. data/generated/google/apis/websecurityscanner_v1.rb +2 -2
  861. data/generated/google/apis/websecurityscanner_v1alpha/classes.rb +5 -4
  862. data/generated/google/apis/websecurityscanner_v1alpha/service.rb +1 -1
  863. data/generated/google/apis/websecurityscanner_v1alpha.rb +2 -2
  864. data/generated/google/apis/websecurityscanner_v1beta/classes.rb +77 -6
  865. data/generated/google/apis/websecurityscanner_v1beta/representations.rb +32 -0
  866. data/generated/google/apis/websecurityscanner_v1beta/service.rb +1 -1
  867. data/generated/google/apis/websecurityscanner_v1beta.rb +2 -2
  868. data/generated/google/apis/youtube_analytics_v1.rb +1 -1
  869. data/generated/google/apis/youtube_analytics_v2.rb +1 -1
  870. data/generated/google/apis/youtube_partner_v1/service.rb +2 -2
  871. data/generated/google/apis/youtube_partner_v1.rb +1 -1
  872. data/generated/google/apis/youtube_v3/classes.rb +1376 -1262
  873. data/generated/google/apis/youtube_v3/representations.rb +99 -191
  874. data/generated/google/apis/youtube_v3/service.rb +1829 -2150
  875. data/generated/google/apis/youtube_v3.rb +8 -5
  876. data/generated/google/apis/youtubereporting_v1.rb +1 -1
  877. data/google-api-client.gemspec +6 -3
  878. data/lib/google/apis/core/api_command.rb +7 -0
  879. data/lib/google/apis/core/base_service.rb +1 -1
  880. data/lib/google/apis/core/http_command.rb +11 -10
  881. data/lib/google/apis/core/upload.rb +4 -0
  882. data/lib/google/apis/generator/annotator.rb +1 -1
  883. data/lib/google/apis/version.rb +9 -4
  884. data/rakelib/devsite/devsite_builder.rb +126 -0
  885. data/rakelib/devsite/link_checker.rb +64 -0
  886. data/rakelib/devsite/repo_metadata.rb +56 -0
  887. metadata +193 -110
  888. data/generated/google/apis/analytics_v2_4/representations.rb +0 -26
  889. data/generated/google/apis/analytics_v2_4/service.rb +0 -331
  890. data/generated/google/apis/analytics_v2_4.rb +0 -37
  891. data/generated/google/apis/cloudprivatecatalog_v1beta1/classes.rb +0 -358
  892. data/generated/google/apis/cloudprivatecatalog_v1beta1/service.rb +0 -486
  893. data/generated/google/apis/cloudprivatecatalogproducer_v1beta1/service.rb +0 -1081
  894. data/generated/google/apis/commentanalyzer_v1alpha1/classes.rb +0 -485
  895. data/generated/google/apis/commentanalyzer_v1alpha1/representations.rb +0 -210
  896. data/generated/google/apis/commentanalyzer_v1alpha1/service.rb +0 -124
  897. data/generated/google/apis/commentanalyzer_v1alpha1.rb +0 -39
  898. data/generated/google/apis/fusiontables_v1/classes.rb +0 -977
  899. data/generated/google/apis/fusiontables_v1/representations.rb +0 -449
  900. data/generated/google/apis/fusiontables_v1/service.rb +0 -1307
  901. data/generated/google/apis/fusiontables_v1.rb +0 -37
  902. data/generated/google/apis/fusiontables_v2/classes.rb +0 -1049
  903. data/generated/google/apis/fusiontables_v2/representations.rb +0 -457
  904. data/generated/google/apis/fusiontables_v2/service.rb +0 -1431
  905. data/generated/google/apis/fusiontables_v2.rb +0 -37
  906. data/generated/google/apis/mirror_v1/classes.rb +0 -1072
  907. data/generated/google/apis/mirror_v1/representations.rb +0 -390
  908. data/generated/google/apis/mirror_v1/service.rb +0 -928
  909. data/generated/google/apis/mirror_v1.rb +0 -37
  910. data/generated/google/apis/oauth2_v1/classes.rb +0 -197
  911. data/generated/google/apis/oauth2_v1/service.rb +0 -160
  912. data/generated/google/apis/oauth2_v1.rb +0 -40
  913. data/generated/google/apis/pagespeedonline_v1/classes.rb +0 -542
  914. data/generated/google/apis/pagespeedonline_v1/representations.rb +0 -258
  915. data/generated/google/apis/pagespeedonline_v1/service.rb +0 -116
  916. data/generated/google/apis/pagespeedonline_v2/classes.rb +0 -621
  917. data/generated/google/apis/pagespeedonline_v2/representations.rb +0 -273
  918. data/generated/google/apis/pagespeedonline_v2/service.rb +0 -116
  919. data/generated/google/apis/pagespeedonline_v4/classes.rb +0 -795
  920. data/generated/google/apis/pagespeedonline_v4/representations.rb +0 -335
  921. data/generated/google/apis/pagespeedonline_v4/service.rb +0 -125
  922. data/generated/google/apis/plus_domains_v1/classes.rb +0 -2609
  923. data/generated/google/apis/plus_domains_v1/representations.rb +0 -1111
  924. data/generated/google/apis/plus_domains_v1/service.rb +0 -489
  925. data/generated/google/apis/plus_domains_v1.rb +0 -55
  926. data/generated/google/apis/proximitybeacon_v1beta1/classes.rb +0 -845
  927. data/generated/google/apis/proximitybeacon_v1beta1/representations.rb +0 -350
  928. data/generated/google/apis/proximitybeacon_v1beta1/service.rb +0 -933
  929. data/generated/google/apis/replicapool_v1beta1/classes.rb +0 -918
  930. data/generated/google/apis/replicapool_v1beta1/representations.rb +0 -409
  931. data/generated/google/apis/replicapool_v1beta1/service.rb +0 -489
  932. data/generated/google/apis/replicapool_v1beta1.rb +0 -50
  933. data/generated/google/apis/servicebroker_v1/classes.rb +0 -333
  934. data/generated/google/apis/servicebroker_v1/service.rb +0 -177
  935. data/generated/google/apis/servicebroker_v1alpha1/classes.rb +0 -1037
  936. data/generated/google/apis/servicebroker_v1alpha1/service.rb +0 -737
  937. data/generated/google/apis/servicebroker_v1beta1/classes.rb +0 -1173
  938. data/generated/google/apis/servicebroker_v1beta1/service.rb +0 -926
  939. data/generated/google/apis/storage_v1beta1/classes.rb +0 -616
  940. data/generated/google/apis/storage_v1beta1/representations.rb +0 -249
  941. data/generated/google/apis/storage_v1beta1/service.rb +0 -1032
  942. data/generated/google/apis/storage_v1beta1.rb +0 -40
  943. data/generated/google/apis/surveys_v2/classes.rb +0 -691
  944. data/generated/google/apis/surveys_v2.rb +0 -40
  945. data/generated/google/apis/urlshortener_v1/classes.rb +0 -246
  946. data/generated/google/apis/urlshortener_v1/representations.rb +0 -121
  947. data/generated/google/apis/urlshortener_v1/service.rb +0 -169
  948. data/generated/google/apis/urlshortener_v1.rb +0 -34
@@ -0,0 +1,4159 @@
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 ServiceconsumermanagementV1beta1
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::ServiceconsumermanagementV1beta1::MethodProp>]
39
+ attr_accessor :methods_prop
40
+
41
+ # Included interfaces. See Mixin.
42
+ # Corresponds to the JSON property `mixins`
43
+ # @return [Array<Google::Apis::ServiceconsumermanagementV1beta1::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::ServiceconsumermanagementV1beta1::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::ServiceconsumermanagementV1beta1::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 authentication provider, including support for
106
+ # [JSON Web Token
107
+ # (JWT)](https://tools.ietf.org/html/draft-ietf-oauth-json-web-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, JWTs with audiences:
116
+ # - "https://[service.name]/[google.protobuf.Api.name]"
117
+ # - "https://[service.name]/"
118
+ # will be accepted.
119
+ # For example, if no audiences are in the setting, LibraryService API will
120
+ # accept JWTs with the following audiences:
121
+ # -
122
+ # https://library-example.googleapis.com/google.example.library.v1.
123
+ # LibraryService
124
+ # - https://library-example.googleapis.com/
125
+ # Example:
126
+ # audiences: bookstore_android.apps.googleusercontent.com,
127
+ # bookstore_web.apps.googleusercontent.com
128
+ # Corresponds to the JSON property `audiences`
129
+ # @return [String]
130
+ attr_accessor :audiences
131
+
132
+ # Redirect URL if JWT token is required but not present or is expired.
133
+ # Implement authorizationUrl of securityDefinitions in OpenAPI spec.
134
+ # Corresponds to the JSON property `authorizationUrl`
135
+ # @return [String]
136
+ attr_accessor :authorization_url
137
+
138
+ # The unique identifier of the auth provider. It will be referred to by
139
+ # `AuthRequirement.provider_id`.
140
+ # Example: "bookstore_auth".
141
+ # Corresponds to the JSON property `id`
142
+ # @return [String]
143
+ attr_accessor :id
144
+
145
+ # Identifies the principal that issued the JWT. See
146
+ # https://tools.ietf.org/html/draft-ietf-oauth-json-web-token-32#section-4.1.1
147
+ # Usually a URL or an email address.
148
+ # Example: https://securetoken.google.com
149
+ # Example: 1234567-compute@developer.gserviceaccount.com
150
+ # Corresponds to the JSON property `issuer`
151
+ # @return [String]
152
+ attr_accessor :issuer
153
+
154
+ # URL of the provider's public key set to validate signature of the JWT. See
155
+ # [OpenID
156
+ # Discovery](https://openid.net/specs/openid-connect-discovery-1_0.html#
157
+ # ProviderMetadata).
158
+ # Optional if the key set document:
159
+ # - can be retrieved from
160
+ # [OpenID
161
+ # Discovery](https://openid.net/specs/openid-connect-discovery-1_0.html of
162
+ # the issuer.
163
+ # - can be inferred from the email domain of the issuer (e.g. a Google
164
+ # service account).
165
+ # Example: https://www.googleapis.com/oauth2/v1/certs
166
+ # Corresponds to the JSON property `jwksUri`
167
+ # @return [String]
168
+ attr_accessor :jwks_uri
169
+
170
+ # Defines the locations to extract the JWT.
171
+ # JWT locations can be either from HTTP headers or URL query parameters.
172
+ # The rule is that the first match wins. The checking order is: checking
173
+ # all headers first, then URL query parameters.
174
+ # If not specified, default to use following 3 locations:
175
+ # 1) Authorization: Bearer
176
+ # 2) x-goog-iap-jwt-assertion
177
+ # 3) access_token query parameter
178
+ # Default locations can be specified as followings:
179
+ # jwt_locations:
180
+ # - header: Authorization
181
+ # value_prefix: "Bearer "
182
+ # - header: x-goog-iap-jwt-assertion
183
+ # - query: access_token
184
+ # Corresponds to the JSON property `jwtLocations`
185
+ # @return [Array<Google::Apis::ServiceconsumermanagementV1beta1::JwtLocation>]
186
+ attr_accessor :jwt_locations
187
+
188
+ def initialize(**args)
189
+ update!(**args)
190
+ end
191
+
192
+ # Update properties of this object
193
+ def update!(**args)
194
+ @audiences = args[:audiences] if args.key?(:audiences)
195
+ @authorization_url = args[:authorization_url] if args.key?(:authorization_url)
196
+ @id = args[:id] if args.key?(:id)
197
+ @issuer = args[:issuer] if args.key?(:issuer)
198
+ @jwks_uri = args[:jwks_uri] if args.key?(:jwks_uri)
199
+ @jwt_locations = args[:jwt_locations] if args.key?(:jwt_locations)
200
+ end
201
+ end
202
+
203
+ # User-defined authentication requirements, including support for
204
+ # [JSON Web Token
205
+ # (JWT)](https://tools.ietf.org/html/draft-ietf-oauth-json-web-token-32).
206
+ class AuthRequirement
207
+ include Google::Apis::Core::Hashable
208
+
209
+ # NOTE: This will be deprecated soon, once AuthProvider.audiences is
210
+ # implemented and accepted in all the runtime components.
211
+ # The list of JWT
212
+ # [audiences](https://tools.ietf.org/html/draft-ietf-oauth-json-web-token-32#
213
+ # section-4.1.3).
214
+ # that are allowed to access. A JWT containing any of these audiences will
215
+ # be accepted. When this setting is absent, only JWTs with audience
216
+ # "https://Service_name/API_name"
217
+ # will be accepted. For example, if no audiences are in the setting,
218
+ # LibraryService API will only accept JWTs with the following audience
219
+ # "https://library-example.googleapis.com/google.example.library.v1.
220
+ # LibraryService".
221
+ # Example:
222
+ # audiences: bookstore_android.apps.googleusercontent.com,
223
+ # bookstore_web.apps.googleusercontent.com
224
+ # Corresponds to the JSON property `audiences`
225
+ # @return [String]
226
+ attr_accessor :audiences
227
+
228
+ # id from authentication provider.
229
+ # Example:
230
+ # provider_id: bookstore_auth
231
+ # Corresponds to the JSON property `providerId`
232
+ # @return [String]
233
+ attr_accessor :provider_id
234
+
235
+ def initialize(**args)
236
+ update!(**args)
237
+ end
238
+
239
+ # Update properties of this object
240
+ def update!(**args)
241
+ @audiences = args[:audiences] if args.key?(:audiences)
242
+ @provider_id = args[:provider_id] if args.key?(:provider_id)
243
+ end
244
+ end
245
+
246
+ # `Authentication` defines the authentication configuration for an API.
247
+ # Example for an API targeted for external use:
248
+ # name: calendar.googleapis.com
249
+ # authentication:
250
+ # providers:
251
+ # - id: google_calendar_auth
252
+ # jwks_uri: https://www.googleapis.com/oauth2/v1/certs
253
+ # issuer: https://securetoken.google.com
254
+ # rules:
255
+ # - selector: "*"
256
+ # requirements:
257
+ # provider_id: google_calendar_auth
258
+ class Authentication
259
+ include Google::Apis::Core::Hashable
260
+
261
+ # Defines a set of authentication providers that a service supports.
262
+ # Corresponds to the JSON property `providers`
263
+ # @return [Array<Google::Apis::ServiceconsumermanagementV1beta1::AuthProvider>]
264
+ attr_accessor :providers
265
+
266
+ # A list of authentication rules that apply to individual API methods.
267
+ # **NOTE:** All service configuration rules follow "last one wins" order.
268
+ # Corresponds to the JSON property `rules`
269
+ # @return [Array<Google::Apis::ServiceconsumermanagementV1beta1::AuthenticationRule>]
270
+ attr_accessor :rules
271
+
272
+ def initialize(**args)
273
+ update!(**args)
274
+ end
275
+
276
+ # Update properties of this object
277
+ def update!(**args)
278
+ @providers = args[:providers] if args.key?(:providers)
279
+ @rules = args[:rules] if args.key?(:rules)
280
+ end
281
+ end
282
+
283
+ # Authentication rules for the service.
284
+ # By default, if a method has any authentication requirements, every request
285
+ # must include a valid credential matching one of the requirements.
286
+ # It's an error to include more than one kind of credential in a single
287
+ # request.
288
+ # If a method doesn't have any auth requirements, request credentials will be
289
+ # ignored.
290
+ class AuthenticationRule
291
+ include Google::Apis::Core::Hashable
292
+
293
+ # If true, the service accepts API keys without any other credential.
294
+ # Corresponds to the JSON property `allowWithoutCredential`
295
+ # @return [Boolean]
296
+ attr_accessor :allow_without_credential
297
+ alias_method :allow_without_credential?, :allow_without_credential
298
+
299
+ # OAuth scopes are a way to define data and permissions on data. For example,
300
+ # there are scopes defined for "Read-only access to Google Calendar" and
301
+ # "Access to Cloud Platform". Users can consent to a scope for an application,
302
+ # giving it permission to access that data on their behalf.
303
+ # OAuth scope specifications should be fairly coarse grained; a user will need
304
+ # to see and understand the text description of what your scope means.
305
+ # In most cases: use one or at most two OAuth scopes for an entire family of
306
+ # products. If your product has multiple APIs, you should probably be sharing
307
+ # the OAuth scope across all of those APIs.
308
+ # When you need finer grained OAuth consent screens: talk with your product
309
+ # management about how developers will use them in practice.
310
+ # Please note that even though each of the canonical scopes is enough for a
311
+ # request to be accepted and passed to the backend, a request can still fail
312
+ # due to the backend requiring additional scopes or permissions.
313
+ # Corresponds to the JSON property `oauth`
314
+ # @return [Google::Apis::ServiceconsumermanagementV1beta1::OAuthRequirements]
315
+ attr_accessor :oauth
316
+
317
+ # Requirements for additional authentication providers.
318
+ # Corresponds to the JSON property `requirements`
319
+ # @return [Array<Google::Apis::ServiceconsumermanagementV1beta1::AuthRequirement>]
320
+ attr_accessor :requirements
321
+
322
+ # Selects the methods to which this rule applies.
323
+ # Refer to selector for syntax details.
324
+ # Corresponds to the JSON property `selector`
325
+ # @return [String]
326
+ attr_accessor :selector
327
+
328
+ def initialize(**args)
329
+ update!(**args)
330
+ end
331
+
332
+ # Update properties of this object
333
+ def update!(**args)
334
+ @allow_without_credential = args[:allow_without_credential] if args.key?(:allow_without_credential)
335
+ @oauth = args[:oauth] if args.key?(:oauth)
336
+ @requirements = args[:requirements] if args.key?(:requirements)
337
+ @selector = args[:selector] if args.key?(:selector)
338
+ end
339
+ end
340
+
341
+ # `Backend` defines the backend configuration for a service.
342
+ class Backend
343
+ include Google::Apis::Core::Hashable
344
+
345
+ # A list of API backend rules that apply to individual API methods.
346
+ # **NOTE:** All service configuration rules follow "last one wins" order.
347
+ # Corresponds to the JSON property `rules`
348
+ # @return [Array<Google::Apis::ServiceconsumermanagementV1beta1::BackendRule>]
349
+ attr_accessor :rules
350
+
351
+ def initialize(**args)
352
+ update!(**args)
353
+ end
354
+
355
+ # Update properties of this object
356
+ def update!(**args)
357
+ @rules = args[:rules] if args.key?(:rules)
358
+ end
359
+ end
360
+
361
+ # A backend rule provides configuration for an individual API element.
362
+ class BackendRule
363
+ include Google::Apis::Core::Hashable
364
+
365
+ # The address of the API backend.
366
+ # The scheme is used to determine the backend protocol and security.
367
+ # The following schemes are accepted:
368
+ # SCHEME PROTOCOL SECURITY
369
+ # http:// HTTP None
370
+ # https:// HTTP TLS
371
+ # grpc:// gRPC None
372
+ # grpcs:// gRPC TLS
373
+ # It is recommended to explicitly include a scheme. Leaving out the scheme
374
+ # may cause constrasting behaviors across platforms.
375
+ # If the port is unspecified, the default is:
376
+ # - 80 for schemes without TLS
377
+ # - 443 for schemes with TLS
378
+ # For HTTP backends, use protocol
379
+ # to specify the protocol version.
380
+ # Corresponds to the JSON property `address`
381
+ # @return [String]
382
+ attr_accessor :address
383
+
384
+ # The number of seconds to wait for a response from a request. The default
385
+ # varies based on the request protocol and deployment environment.
386
+ # Corresponds to the JSON property `deadline`
387
+ # @return [Float]
388
+ attr_accessor :deadline
389
+
390
+ # When disable_auth is true, a JWT ID token won't be generated and the
391
+ # original "Authorization" HTTP header will be preserved. If the header is
392
+ # used to carry the original token and is expected by the backend, this
393
+ # field must be set to true to preserve the header.
394
+ # Corresponds to the JSON property `disableAuth`
395
+ # @return [Boolean]
396
+ attr_accessor :disable_auth
397
+ alias_method :disable_auth?, :disable_auth
398
+
399
+ # The JWT audience is used when generating a JWT ID token for the backend.
400
+ # This ID token will be added in the HTTP "authorization" header, and sent
401
+ # to the backend.
402
+ # Corresponds to the JSON property `jwtAudience`
403
+ # @return [String]
404
+ attr_accessor :jwt_audience
405
+
406
+ # Minimum deadline in seconds needed for this method. Calls having deadline
407
+ # value lower than this will be rejected.
408
+ # Corresponds to the JSON property `minDeadline`
409
+ # @return [Float]
410
+ attr_accessor :min_deadline
411
+
412
+ # The number of seconds to wait for the completion of a long running
413
+ # operation. The default is no deadline.
414
+ # Corresponds to the JSON property `operationDeadline`
415
+ # @return [Float]
416
+ attr_accessor :operation_deadline
417
+
418
+ #
419
+ # Corresponds to the JSON property `pathTranslation`
420
+ # @return [String]
421
+ attr_accessor :path_translation
422
+
423
+ # The protocol used for sending a request to the backend.
424
+ # The supported values are "http/1.1" and "h2".
425
+ # The default value is inferred from the scheme in the
426
+ # address field:
427
+ # SCHEME PROTOCOL
428
+ # http:// http/1.1
429
+ # https:// http/1.1
430
+ # grpc:// h2
431
+ # grpcs:// h2
432
+ # For secure HTTP backends (https://) that support HTTP/2, set this field
433
+ # to "h2" for improved performance.
434
+ # Configuring this field to non-default values is only supported for secure
435
+ # HTTP backends. This field will be ignored for all other backends.
436
+ # See
437
+ # https://www.iana.org/assignments/tls-extensiontype-values/tls-extensiontype-
438
+ # values.xhtml#alpn-protocol-ids
439
+ # for more details on the supported values.
440
+ # Corresponds to the JSON property `protocol`
441
+ # @return [String]
442
+ attr_accessor :protocol
443
+
444
+ # Selects the methods to which this rule applies.
445
+ # Refer to selector for syntax details.
446
+ # Corresponds to the JSON property `selector`
447
+ # @return [String]
448
+ attr_accessor :selector
449
+
450
+ def initialize(**args)
451
+ update!(**args)
452
+ end
453
+
454
+ # Update properties of this object
455
+ def update!(**args)
456
+ @address = args[:address] if args.key?(:address)
457
+ @deadline = args[:deadline] if args.key?(:deadline)
458
+ @disable_auth = args[:disable_auth] if args.key?(:disable_auth)
459
+ @jwt_audience = args[:jwt_audience] if args.key?(:jwt_audience)
460
+ @min_deadline = args[:min_deadline] if args.key?(:min_deadline)
461
+ @operation_deadline = args[:operation_deadline] if args.key?(:operation_deadline)
462
+ @path_translation = args[:path_translation] if args.key?(:path_translation)
463
+ @protocol = args[:protocol] if args.key?(:protocol)
464
+ @selector = args[:selector] if args.key?(:selector)
465
+ end
466
+ end
467
+
468
+ # Billing related configuration of the service.
469
+ # The following example shows how to configure monitored resources and metrics
470
+ # for billing, `consumer_destinations` is the only supported destination and
471
+ # the monitored resources need at least one label key
472
+ # `cloud.googleapis.com/location` to indicate the location of the billing
473
+ # usage, using different monitored resources between monitoring and billing is
474
+ # recommended so they can be evolved independently:
475
+ # monitored_resources:
476
+ # - type: library.googleapis.com/billing_branch
477
+ # labels:
478
+ # - key: cloud.googleapis.com/location
479
+ # description: |
480
+ # Predefined label to support billing location restriction.
481
+ # - key: city
482
+ # description: |
483
+ # Custom label to define the city where the library branch is located
484
+ # in.
485
+ # - key: name
486
+ # description: Custom label to define the name of the library branch.
487
+ # metrics:
488
+ # - name: library.googleapis.com/book/borrowed_count
489
+ # metric_kind: DELTA
490
+ # value_type: INT64
491
+ # unit: "1"
492
+ # billing:
493
+ # consumer_destinations:
494
+ # - monitored_resource: library.googleapis.com/billing_branch
495
+ # metrics:
496
+ # - library.googleapis.com/book/borrowed_count
497
+ class Billing
498
+ include Google::Apis::Core::Hashable
499
+
500
+ # Billing configurations for sending metrics to the consumer project.
501
+ # There can be multiple consumer destinations per service, each one must have
502
+ # a different monitored resource type. A metric can be used in at most
503
+ # one consumer destination.
504
+ # Corresponds to the JSON property `consumerDestinations`
505
+ # @return [Array<Google::Apis::ServiceconsumermanagementV1beta1::BillingDestination>]
506
+ attr_accessor :consumer_destinations
507
+
508
+ def initialize(**args)
509
+ update!(**args)
510
+ end
511
+
512
+ # Update properties of this object
513
+ def update!(**args)
514
+ @consumer_destinations = args[:consumer_destinations] if args.key?(:consumer_destinations)
515
+ end
516
+ end
517
+
518
+ # Configuration of a specific billing destination (Currently only support
519
+ # bill against consumer project).
520
+ class BillingDestination
521
+ include Google::Apis::Core::Hashable
522
+
523
+ # Names of the metrics to report to this billing destination.
524
+ # Each name must be defined in Service.metrics section.
525
+ # Corresponds to the JSON property `metrics`
526
+ # @return [Array<String>]
527
+ attr_accessor :metrics
528
+
529
+ # The monitored resource type. The type must be defined in
530
+ # Service.monitored_resources section.
531
+ # Corresponds to the JSON property `monitoredResource`
532
+ # @return [String]
533
+ attr_accessor :monitored_resource
534
+
535
+ def initialize(**args)
536
+ update!(**args)
537
+ end
538
+
539
+ # Update properties of this object
540
+ def update!(**args)
541
+ @metrics = args[:metrics] if args.key?(:metrics)
542
+ @monitored_resource = args[:monitored_resource] if args.key?(:monitored_resource)
543
+ end
544
+ end
545
+
546
+ # `Context` defines which contexts an API requests.
547
+ # Example:
548
+ # context:
549
+ # rules:
550
+ # - selector: "*"
551
+ # requested:
552
+ # - google.rpc.context.ProjectContext
553
+ # - google.rpc.context.OriginContext
554
+ # The above specifies that all methods in the API request
555
+ # `google.rpc.context.ProjectContext` and
556
+ # `google.rpc.context.OriginContext`.
557
+ # Available context types are defined in package
558
+ # `google.rpc.context`.
559
+ # This also provides mechanism to whitelist any protobuf message extension that
560
+ # can be sent in grpc metadata using “x-goog-ext-<extension_id>-bin” and
561
+ # “x-goog-ext-<extension_id>-jspb” format. For example, list any service
562
+ # specific protobuf types that can appear in grpc metadata as follows in your
563
+ # yaml file:
564
+ # Example:
565
+ # context:
566
+ # rules:
567
+ # - selector: "google.example.library.v1.LibraryService.CreateBook"
568
+ # allowed_request_extensions:
569
+ # - google.foo.v1.NewExtension
570
+ # allowed_response_extensions:
571
+ # - google.foo.v1.NewExtension
572
+ # You can also specify extension ID instead of fully qualified extension name
573
+ # here.
574
+ class Context
575
+ include Google::Apis::Core::Hashable
576
+
577
+ # A list of RPC context rules that apply to individual API methods.
578
+ # **NOTE:** All service configuration rules follow "last one wins" order.
579
+ # Corresponds to the JSON property `rules`
580
+ # @return [Array<Google::Apis::ServiceconsumermanagementV1beta1::ContextRule>]
581
+ attr_accessor :rules
582
+
583
+ def initialize(**args)
584
+ update!(**args)
585
+ end
586
+
587
+ # Update properties of this object
588
+ def update!(**args)
589
+ @rules = args[:rules] if args.key?(:rules)
590
+ end
591
+ end
592
+
593
+ # A context rule provides information about the context for an individual API
594
+ # element.
595
+ class ContextRule
596
+ include Google::Apis::Core::Hashable
597
+
598
+ # A list of full type names or extension IDs of extensions allowed in grpc
599
+ # side channel from client to backend.
600
+ # Corresponds to the JSON property `allowedRequestExtensions`
601
+ # @return [Array<String>]
602
+ attr_accessor :allowed_request_extensions
603
+
604
+ # A list of full type names or extension IDs of extensions allowed in grpc
605
+ # side channel from backend to client.
606
+ # Corresponds to the JSON property `allowedResponseExtensions`
607
+ # @return [Array<String>]
608
+ attr_accessor :allowed_response_extensions
609
+
610
+ # A list of full type names of provided contexts.
611
+ # Corresponds to the JSON property `provided`
612
+ # @return [Array<String>]
613
+ attr_accessor :provided
614
+
615
+ # A list of full type names of requested contexts.
616
+ # Corresponds to the JSON property `requested`
617
+ # @return [Array<String>]
618
+ attr_accessor :requested
619
+
620
+ # Selects the methods to which this rule applies.
621
+ # Refer to selector for syntax details.
622
+ # Corresponds to the JSON property `selector`
623
+ # @return [String]
624
+ attr_accessor :selector
625
+
626
+ def initialize(**args)
627
+ update!(**args)
628
+ end
629
+
630
+ # Update properties of this object
631
+ def update!(**args)
632
+ @allowed_request_extensions = args[:allowed_request_extensions] if args.key?(:allowed_request_extensions)
633
+ @allowed_response_extensions = args[:allowed_response_extensions] if args.key?(:allowed_response_extensions)
634
+ @provided = args[:provided] if args.key?(:provided)
635
+ @requested = args[:requested] if args.key?(:requested)
636
+ @selector = args[:selector] if args.key?(:selector)
637
+ end
638
+ end
639
+
640
+ # Selects and configures the service controller used by the service. The
641
+ # service controller handles features like abuse, quota, billing, logging,
642
+ # monitoring, etc.
643
+ class Control
644
+ include Google::Apis::Core::Hashable
645
+
646
+ # The service control environment to use. If empty, no control plane
647
+ # feature (like quota and billing) will be enabled.
648
+ # Corresponds to the JSON property `environment`
649
+ # @return [String]
650
+ attr_accessor :environment
651
+
652
+ def initialize(**args)
653
+ update!(**args)
654
+ end
655
+
656
+ # Update properties of this object
657
+ def update!(**args)
658
+ @environment = args[:environment] if args.key?(:environment)
659
+ end
660
+ end
661
+
662
+ # Customize service error responses. For example, list any service
663
+ # specific protobuf types that can appear in error detail lists of
664
+ # error responses.
665
+ # Example:
666
+ # custom_error:
667
+ # types:
668
+ # - google.foo.v1.CustomError
669
+ # - google.foo.v1.AnotherError
670
+ class CustomError
671
+ include Google::Apis::Core::Hashable
672
+
673
+ # The list of custom error rules that apply to individual API messages.
674
+ # **NOTE:** All service configuration rules follow "last one wins" order.
675
+ # Corresponds to the JSON property `rules`
676
+ # @return [Array<Google::Apis::ServiceconsumermanagementV1beta1::CustomErrorRule>]
677
+ attr_accessor :rules
678
+
679
+ # The list of custom error detail types, e.g. 'google.foo.v1.CustomError'.
680
+ # Corresponds to the JSON property `types`
681
+ # @return [Array<String>]
682
+ attr_accessor :types
683
+
684
+ def initialize(**args)
685
+ update!(**args)
686
+ end
687
+
688
+ # Update properties of this object
689
+ def update!(**args)
690
+ @rules = args[:rules] if args.key?(:rules)
691
+ @types = args[:types] if args.key?(:types)
692
+ end
693
+ end
694
+
695
+ # A custom error rule.
696
+ class CustomErrorRule
697
+ include Google::Apis::Core::Hashable
698
+
699
+ # Mark this message as possible payload in error response. Otherwise,
700
+ # objects of this type will be filtered when they appear in error payload.
701
+ # Corresponds to the JSON property `isErrorType`
702
+ # @return [Boolean]
703
+ attr_accessor :is_error_type
704
+ alias_method :is_error_type?, :is_error_type
705
+
706
+ # Selects messages to which this rule applies.
707
+ # Refer to selector for syntax details.
708
+ # Corresponds to the JSON property `selector`
709
+ # @return [String]
710
+ attr_accessor :selector
711
+
712
+ def initialize(**args)
713
+ update!(**args)
714
+ end
715
+
716
+ # Update properties of this object
717
+ def update!(**args)
718
+ @is_error_type = args[:is_error_type] if args.key?(:is_error_type)
719
+ @selector = args[:selector] if args.key?(:selector)
720
+ end
721
+ end
722
+
723
+ # A custom pattern is used for defining custom HTTP verb.
724
+ class CustomHttpPattern
725
+ include Google::Apis::Core::Hashable
726
+
727
+ # The name of this custom HTTP verb.
728
+ # Corresponds to the JSON property `kind`
729
+ # @return [String]
730
+ attr_accessor :kind
731
+
732
+ # The path matched by this custom verb.
733
+ # Corresponds to the JSON property `path`
734
+ # @return [String]
735
+ attr_accessor :path
736
+
737
+ def initialize(**args)
738
+ update!(**args)
739
+ end
740
+
741
+ # Update properties of this object
742
+ def update!(**args)
743
+ @kind = args[:kind] if args.key?(:kind)
744
+ @path = args[:path] if args.key?(:path)
745
+ end
746
+ end
747
+
748
+ # `Documentation` provides the information for describing a service.
749
+ # Example:
750
+ # <pre><code>documentation:
751
+ # summary: >
752
+ # The Google Calendar API gives access
753
+ # to most calendar features.
754
+ # pages:
755
+ # - name: Overview
756
+ # content: &#40;== include google/foo/overview.md ==&#41;
757
+ # - name: Tutorial
758
+ # content: &#40;== include google/foo/tutorial.md ==&#41;
759
+ # subpages;
760
+ # - name: Java
761
+ # content: &#40;== include google/foo/tutorial_java.md ==&#41;
762
+ # rules:
763
+ # - selector: google.calendar.Calendar.Get
764
+ # description: >
765
+ # ...
766
+ # - selector: google.calendar.Calendar.Put
767
+ # description: >
768
+ # ...
769
+ # </code></pre>
770
+ # Documentation is provided in markdown syntax. In addition to
771
+ # standard markdown features, definition lists, tables and fenced
772
+ # code blocks are supported. Section headers can be provided and are
773
+ # interpreted relative to the section nesting of the context where
774
+ # a documentation fragment is embedded.
775
+ # Documentation from the IDL is merged with documentation defined
776
+ # via the config at normalization time, where documentation provided
777
+ # by config rules overrides IDL provided.
778
+ # A number of constructs specific to the API platform are supported
779
+ # in documentation text.
780
+ # In order to reference a proto element, the following
781
+ # notation can be used:
782
+ # <pre><code>&#91;fully.qualified.proto.name]&#91;]</code></pre>
783
+ # To override the display text used for the link, this can be used:
784
+ # <pre><code>&#91;display text]&#91;fully.qualified.proto.name]</code></pre>
785
+ # Text can be excluded from doc using the following notation:
786
+ # <pre><code>&#40;-- internal comment --&#41;</code></pre>
787
+ # A few directives are available in documentation. Note that
788
+ # directives must appear on a single line to be properly
789
+ # identified. The `include` directive includes a markdown file from
790
+ # an external source:
791
+ # <pre><code>&#40;== include path/to/file ==&#41;</code></pre>
792
+ # The `resource_for` directive marks a message to be the resource of
793
+ # a collection in REST view. If it is not specified, tools attempt
794
+ # to infer the resource from the operations in a collection:
795
+ # <pre><code>&#40;== resource_for v1.shelves.books ==&#41;</code></pre>
796
+ # The directive `suppress_warning` does not directly affect documentation
797
+ # and is documented together with service config validation.
798
+ class Documentation
799
+ include Google::Apis::Core::Hashable
800
+
801
+ # The URL to the root of documentation.
802
+ # Corresponds to the JSON property `documentationRootUrl`
803
+ # @return [String]
804
+ attr_accessor :documentation_root_url
805
+
806
+ # Declares a single overview page. For example:
807
+ # <pre><code>documentation:
808
+ # summary: ...
809
+ # overview: &#40;== include overview.md ==&#41;
810
+ # </code></pre>
811
+ # This is a shortcut for the following declaration (using pages style):
812
+ # <pre><code>documentation:
813
+ # summary: ...
814
+ # pages:
815
+ # - name: Overview
816
+ # content: &#40;== include overview.md ==&#41;
817
+ # </code></pre>
818
+ # Note: you cannot specify both `overview` field and `pages` field.
819
+ # Corresponds to the JSON property `overview`
820
+ # @return [String]
821
+ attr_accessor :overview
822
+
823
+ # The top level pages for the documentation set.
824
+ # Corresponds to the JSON property `pages`
825
+ # @return [Array<Google::Apis::ServiceconsumermanagementV1beta1::Page>]
826
+ attr_accessor :pages
827
+
828
+ # A list of documentation rules that apply to individual API elements.
829
+ # **NOTE:** All service configuration rules follow "last one wins" order.
830
+ # Corresponds to the JSON property `rules`
831
+ # @return [Array<Google::Apis::ServiceconsumermanagementV1beta1::DocumentationRule>]
832
+ attr_accessor :rules
833
+
834
+ # Specifies the service root url if the default one (the service name
835
+ # from the yaml file) is not suitable. This can be seen in any fully
836
+ # specified service urls as well as sections that show a base that other
837
+ # urls are relative to.
838
+ # Corresponds to the JSON property `serviceRootUrl`
839
+ # @return [String]
840
+ attr_accessor :service_root_url
841
+
842
+ # A short summary of what the service does. Can only be provided by
843
+ # plain text.
844
+ # Corresponds to the JSON property `summary`
845
+ # @return [String]
846
+ attr_accessor :summary
847
+
848
+ def initialize(**args)
849
+ update!(**args)
850
+ end
851
+
852
+ # Update properties of this object
853
+ def update!(**args)
854
+ @documentation_root_url = args[:documentation_root_url] if args.key?(:documentation_root_url)
855
+ @overview = args[:overview] if args.key?(:overview)
856
+ @pages = args[:pages] if args.key?(:pages)
857
+ @rules = args[:rules] if args.key?(:rules)
858
+ @service_root_url = args[:service_root_url] if args.key?(:service_root_url)
859
+ @summary = args[:summary] if args.key?(:summary)
860
+ end
861
+ end
862
+
863
+ # A documentation rule provides information about individual API elements.
864
+ class DocumentationRule
865
+ include Google::Apis::Core::Hashable
866
+
867
+ # Deprecation description of the selected element(s). It can be provided if
868
+ # an element is marked as `deprecated`.
869
+ # Corresponds to the JSON property `deprecationDescription`
870
+ # @return [String]
871
+ attr_accessor :deprecation_description
872
+
873
+ # Description of the selected API(s).
874
+ # Corresponds to the JSON property `description`
875
+ # @return [String]
876
+ attr_accessor :description
877
+
878
+ # The selector is a comma-separated list of patterns. Each pattern is a
879
+ # qualified name of the element which may end in "*", indicating a wildcard.
880
+ # Wildcards are only allowed at the end and for a whole component of the
881
+ # qualified name, i.e. "foo.*" is ok, but not "foo.b*" or "foo.*.bar". A
882
+ # wildcard will match one or more components. To specify a default for all
883
+ # applicable elements, the whole pattern "*" is used.
884
+ # Corresponds to the JSON property `selector`
885
+ # @return [String]
886
+ attr_accessor :selector
887
+
888
+ def initialize(**args)
889
+ update!(**args)
890
+ end
891
+
892
+ # Update properties of this object
893
+ def update!(**args)
894
+ @deprecation_description = args[:deprecation_description] if args.key?(:deprecation_description)
895
+ @description = args[:description] if args.key?(:description)
896
+ @selector = args[:selector] if args.key?(:selector)
897
+ end
898
+ end
899
+
900
+ # A generic empty message that you can re-use to avoid defining duplicated
901
+ # empty messages in your APIs. A typical example is to use it as the request
902
+ # or the response type of an API method. For instance:
903
+ # service Foo `
904
+ # rpc Bar(google.protobuf.Empty) returns (google.protobuf.Empty);
905
+ # `
906
+ # The JSON representation for `Empty` is empty JSON object ````.
907
+ class Empty
908
+ include Google::Apis::Core::Hashable
909
+
910
+ def initialize(**args)
911
+ update!(**args)
912
+ end
913
+
914
+ # Update properties of this object
915
+ def update!(**args)
916
+ end
917
+ end
918
+
919
+ # `Endpoint` describes a network endpoint that serves a set of APIs.
920
+ # A service may expose any number of endpoints, and all endpoints share the
921
+ # same service configuration, such as quota configuration and monitoring
922
+ # configuration.
923
+ # Example service configuration:
924
+ # name: library-example.googleapis.com
925
+ # endpoints:
926
+ # # Below entry makes 'google.example.library.v1.Library'
927
+ # # API be served from endpoint address library-example.googleapis.com.
928
+ # # It also allows HTTP OPTIONS calls to be passed to the backend, for
929
+ # # it to decide whether the subsequent cross-origin request is
930
+ # # allowed to proceed.
931
+ # - name: library-example.googleapis.com
932
+ # allow_cors: true
933
+ class Endpoint
934
+ include Google::Apis::Core::Hashable
935
+
936
+ # DEPRECATED: This field is no longer supported. Instead of using aliases,
937
+ # please specify multiple google.api.Endpoint for each of the intended
938
+ # aliases.
939
+ # Additional names that this endpoint will be hosted on.
940
+ # Corresponds to the JSON property `aliases`
941
+ # @return [Array<String>]
942
+ attr_accessor :aliases
943
+
944
+ # Allowing
945
+ # [CORS](https://en.wikipedia.org/wiki/Cross-origin_resource_sharing), aka
946
+ # cross-domain traffic, would allow the backends served from this endpoint to
947
+ # receive and respond to HTTP OPTIONS requests. The response will be used by
948
+ # the browser to determine whether the subsequent cross-origin request is
949
+ # allowed to proceed.
950
+ # Corresponds to the JSON property `allowCors`
951
+ # @return [Boolean]
952
+ attr_accessor :allow_cors
953
+ alias_method :allow_cors?, :allow_cors
954
+
955
+ # The list of features enabled on this endpoint.
956
+ # Corresponds to the JSON property `features`
957
+ # @return [Array<String>]
958
+ attr_accessor :features
959
+
960
+ # The canonical name of this endpoint.
961
+ # Corresponds to the JSON property `name`
962
+ # @return [String]
963
+ attr_accessor :name
964
+
965
+ # The specification of an Internet routable address of API frontend that will
966
+ # handle requests to this [API
967
+ # Endpoint](https://cloud.google.com/apis/design/glossary). It should be
968
+ # either a valid IPv4 address or a fully-qualified domain name. For example,
969
+ # "8.8.8.8" or "myservice.appspot.com".
970
+ # Corresponds to the JSON property `target`
971
+ # @return [String]
972
+ attr_accessor :target
973
+
974
+ def initialize(**args)
975
+ update!(**args)
976
+ end
977
+
978
+ # Update properties of this object
979
+ def update!(**args)
980
+ @aliases = args[:aliases] if args.key?(:aliases)
981
+ @allow_cors = args[:allow_cors] if args.key?(:allow_cors)
982
+ @features = args[:features] if args.key?(:features)
983
+ @name = args[:name] if args.key?(:name)
984
+ @target = args[:target] if args.key?(:target)
985
+ end
986
+ end
987
+
988
+ # Enum type definition.
989
+ class Enum
990
+ include Google::Apis::Core::Hashable
991
+
992
+ # Enum value definitions.
993
+ # Corresponds to the JSON property `enumvalue`
994
+ # @return [Array<Google::Apis::ServiceconsumermanagementV1beta1::EnumValue>]
995
+ attr_accessor :enumvalue
996
+
997
+ # Enum type name.
998
+ # Corresponds to the JSON property `name`
999
+ # @return [String]
1000
+ attr_accessor :name
1001
+
1002
+ # Protocol buffer options.
1003
+ # Corresponds to the JSON property `options`
1004
+ # @return [Array<Google::Apis::ServiceconsumermanagementV1beta1::Option>]
1005
+ attr_accessor :options
1006
+
1007
+ # `SourceContext` represents information about the source of a
1008
+ # protobuf element, like the file in which it is defined.
1009
+ # Corresponds to the JSON property `sourceContext`
1010
+ # @return [Google::Apis::ServiceconsumermanagementV1beta1::SourceContext]
1011
+ attr_accessor :source_context
1012
+
1013
+ # The source syntax.
1014
+ # Corresponds to the JSON property `syntax`
1015
+ # @return [String]
1016
+ attr_accessor :syntax
1017
+
1018
+ def initialize(**args)
1019
+ update!(**args)
1020
+ end
1021
+
1022
+ # Update properties of this object
1023
+ def update!(**args)
1024
+ @enumvalue = args[:enumvalue] if args.key?(:enumvalue)
1025
+ @name = args[:name] if args.key?(:name)
1026
+ @options = args[:options] if args.key?(:options)
1027
+ @source_context = args[:source_context] if args.key?(:source_context)
1028
+ @syntax = args[:syntax] if args.key?(:syntax)
1029
+ end
1030
+ end
1031
+
1032
+ # Enum value definition.
1033
+ class EnumValue
1034
+ include Google::Apis::Core::Hashable
1035
+
1036
+ # Enum value name.
1037
+ # Corresponds to the JSON property `name`
1038
+ # @return [String]
1039
+ attr_accessor :name
1040
+
1041
+ # Enum value number.
1042
+ # Corresponds to the JSON property `number`
1043
+ # @return [Fixnum]
1044
+ attr_accessor :number
1045
+
1046
+ # Protocol buffer options.
1047
+ # Corresponds to the JSON property `options`
1048
+ # @return [Array<Google::Apis::ServiceconsumermanagementV1beta1::Option>]
1049
+ attr_accessor :options
1050
+
1051
+ def initialize(**args)
1052
+ update!(**args)
1053
+ end
1054
+
1055
+ # Update properties of this object
1056
+ def update!(**args)
1057
+ @name = args[:name] if args.key?(:name)
1058
+ @number = args[:number] if args.key?(:number)
1059
+ @options = args[:options] if args.key?(:options)
1060
+ end
1061
+ end
1062
+
1063
+ # A single field of a message type.
1064
+ class Field
1065
+ include Google::Apis::Core::Hashable
1066
+
1067
+ # The field cardinality.
1068
+ # Corresponds to the JSON property `cardinality`
1069
+ # @return [String]
1070
+ attr_accessor :cardinality
1071
+
1072
+ # The string value of the default value of this field. Proto2 syntax only.
1073
+ # Corresponds to the JSON property `defaultValue`
1074
+ # @return [String]
1075
+ attr_accessor :default_value
1076
+
1077
+ # The field JSON name.
1078
+ # Corresponds to the JSON property `jsonName`
1079
+ # @return [String]
1080
+ attr_accessor :json_name
1081
+
1082
+ # The field type.
1083
+ # Corresponds to the JSON property `kind`
1084
+ # @return [String]
1085
+ attr_accessor :kind
1086
+
1087
+ # The field name.
1088
+ # Corresponds to the JSON property `name`
1089
+ # @return [String]
1090
+ attr_accessor :name
1091
+
1092
+ # The field number.
1093
+ # Corresponds to the JSON property `number`
1094
+ # @return [Fixnum]
1095
+ attr_accessor :number
1096
+
1097
+ # The index of the field type in `Type.oneofs`, for message or enumeration
1098
+ # types. The first type has index 1; zero means the type is not in the list.
1099
+ # Corresponds to the JSON property `oneofIndex`
1100
+ # @return [Fixnum]
1101
+ attr_accessor :oneof_index
1102
+
1103
+ # The protocol buffer options.
1104
+ # Corresponds to the JSON property `options`
1105
+ # @return [Array<Google::Apis::ServiceconsumermanagementV1beta1::Option>]
1106
+ attr_accessor :options
1107
+
1108
+ # Whether to use alternative packed wire representation.
1109
+ # Corresponds to the JSON property `packed`
1110
+ # @return [Boolean]
1111
+ attr_accessor :packed
1112
+ alias_method :packed?, :packed
1113
+
1114
+ # The field type URL, without the scheme, for message or enumeration
1115
+ # types. Example: `"type.googleapis.com/google.protobuf.Timestamp"`.
1116
+ # Corresponds to the JSON property `typeUrl`
1117
+ # @return [String]
1118
+ attr_accessor :type_url
1119
+
1120
+ def initialize(**args)
1121
+ update!(**args)
1122
+ end
1123
+
1124
+ # Update properties of this object
1125
+ def update!(**args)
1126
+ @cardinality = args[:cardinality] if args.key?(:cardinality)
1127
+ @default_value = args[:default_value] if args.key?(:default_value)
1128
+ @json_name = args[:json_name] if args.key?(:json_name)
1129
+ @kind = args[:kind] if args.key?(:kind)
1130
+ @name = args[:name] if args.key?(:name)
1131
+ @number = args[:number] if args.key?(:number)
1132
+ @oneof_index = args[:oneof_index] if args.key?(:oneof_index)
1133
+ @options = args[:options] if args.key?(:options)
1134
+ @packed = args[:packed] if args.key?(:packed)
1135
+ @type_url = args[:type_url] if args.key?(:type_url)
1136
+ end
1137
+ end
1138
+
1139
+ # Defines the HTTP configuration for an API service. It contains a list of
1140
+ # HttpRule, each specifying the mapping of an RPC method
1141
+ # to one or more HTTP REST API methods.
1142
+ class Http
1143
+ include Google::Apis::Core::Hashable
1144
+
1145
+ # When set to true, URL path parameters will be fully URI-decoded except in
1146
+ # cases of single segment matches in reserved expansion, where "%2F" will be
1147
+ # left encoded.
1148
+ # The default behavior is to not decode RFC 6570 reserved characters in multi
1149
+ # segment matches.
1150
+ # Corresponds to the JSON property `fullyDecodeReservedExpansion`
1151
+ # @return [Boolean]
1152
+ attr_accessor :fully_decode_reserved_expansion
1153
+ alias_method :fully_decode_reserved_expansion?, :fully_decode_reserved_expansion
1154
+
1155
+ # A list of HTTP configuration rules that apply to individual API methods.
1156
+ # **NOTE:** All service configuration rules follow "last one wins" order.
1157
+ # Corresponds to the JSON property `rules`
1158
+ # @return [Array<Google::Apis::ServiceconsumermanagementV1beta1::HttpRule>]
1159
+ attr_accessor :rules
1160
+
1161
+ def initialize(**args)
1162
+ update!(**args)
1163
+ end
1164
+
1165
+ # Update properties of this object
1166
+ def update!(**args)
1167
+ @fully_decode_reserved_expansion = args[:fully_decode_reserved_expansion] if args.key?(:fully_decode_reserved_expansion)
1168
+ @rules = args[:rules] if args.key?(:rules)
1169
+ end
1170
+ end
1171
+
1172
+ # # gRPC Transcoding
1173
+ # gRPC Transcoding is a feature for mapping between a gRPC method and one or
1174
+ # more HTTP REST endpoints. It allows developers to build a single API service
1175
+ # that supports both gRPC APIs and REST APIs. Many systems, including [Google
1176
+ # APIs](https://github.com/googleapis/googleapis),
1177
+ # [Cloud Endpoints](https://cloud.google.com/endpoints), [gRPC
1178
+ # Gateway](https://github.com/grpc-ecosystem/grpc-gateway),
1179
+ # and [Envoy](https://github.com/envoyproxy/envoy) proxy support this feature
1180
+ # and use it for large scale production services.
1181
+ # `HttpRule` defines the schema of the gRPC/REST mapping. The mapping specifies
1182
+ # how different portions of the gRPC request message are mapped to the URL
1183
+ # path, URL query parameters, and HTTP request body. It also controls how the
1184
+ # gRPC response message is mapped to the HTTP response body. `HttpRule` is
1185
+ # typically specified as an `google.api.http` annotation on the gRPC method.
1186
+ # Each mapping specifies a URL path template and an HTTP method. The path
1187
+ # template may refer to one or more fields in the gRPC request message, as long
1188
+ # as each field is a non-repeated field with a primitive (non-message) type.
1189
+ # The path template controls how fields of the request message are mapped to
1190
+ # the URL path.
1191
+ # Example:
1192
+ # service Messaging `
1193
+ # rpc GetMessage(GetMessageRequest) returns (Message) `
1194
+ # option (google.api.http) = `
1195
+ # get: "/v1/`name=messages/*`"
1196
+ # `;
1197
+ # `
1198
+ # `
1199
+ # message GetMessageRequest `
1200
+ # string name = 1; // Mapped to URL path.
1201
+ # `
1202
+ # message Message `
1203
+ # string text = 1; // The resource content.
1204
+ # `
1205
+ # This enables an HTTP REST to gRPC mapping as below:
1206
+ # HTTP | gRPC
1207
+ # -----|-----
1208
+ # `GET /v1/messages/123456` | `GetMessage(name: "messages/123456")`
1209
+ # Any fields in the request message which are not bound by the path template
1210
+ # automatically become HTTP query parameters if there is no HTTP request body.
1211
+ # For example:
1212
+ # service Messaging `
1213
+ # rpc GetMessage(GetMessageRequest) returns (Message) `
1214
+ # option (google.api.http) = `
1215
+ # get:"/v1/messages/`message_id`"
1216
+ # `;
1217
+ # `
1218
+ # `
1219
+ # message GetMessageRequest `
1220
+ # message SubMessage `
1221
+ # string subfield = 1;
1222
+ # `
1223
+ # string message_id = 1; // Mapped to URL path.
1224
+ # int64 revision = 2; // Mapped to URL query parameter `revision`.
1225
+ # SubMessage sub = 3; // Mapped to URL query parameter `sub.subfield`.
1226
+ # `
1227
+ # This enables a HTTP JSON to RPC mapping as below:
1228
+ # HTTP | gRPC
1229
+ # -----|-----
1230
+ # `GET /v1/messages/123456?revision=2&sub.subfield=foo` |
1231
+ # `GetMessage(message_id: "123456" revision: 2 sub: SubMessage(subfield:
1232
+ # "foo"))`
1233
+ # Note that fields which are mapped to URL query parameters must have a
1234
+ # primitive type or a repeated primitive type or a non-repeated message type.
1235
+ # In the case of a repeated type, the parameter can be repeated in the URL
1236
+ # as `...?param=A&param=B`. In the case of a message type, each field of the
1237
+ # message is mapped to a separate parameter, such as
1238
+ # `...?foo.a=A&foo.b=B&foo.c=C`.
1239
+ # For HTTP methods that allow a request body, the `body` field
1240
+ # specifies the mapping. Consider a REST update method on the
1241
+ # message resource collection:
1242
+ # service Messaging `
1243
+ # rpc UpdateMessage(UpdateMessageRequest) returns (Message) `
1244
+ # option (google.api.http) = `
1245
+ # patch: "/v1/messages/`message_id`"
1246
+ # body: "message"
1247
+ # `;
1248
+ # `
1249
+ # `
1250
+ # message UpdateMessageRequest `
1251
+ # string message_id = 1; // mapped to the URL
1252
+ # Message message = 2; // mapped to the body
1253
+ # `
1254
+ # The following HTTP JSON to RPC mapping is enabled, where the
1255
+ # representation of the JSON in the request body is determined by
1256
+ # protos JSON encoding:
1257
+ # HTTP | gRPC
1258
+ # -----|-----
1259
+ # `PATCH /v1/messages/123456 ` "text": "Hi!" `` | `UpdateMessage(message_id:
1260
+ # "123456" message ` text: "Hi!" `)`
1261
+ # The special name `*` can be used in the body mapping to define that
1262
+ # every field not bound by the path template should be mapped to the
1263
+ # request body. This enables the following alternative definition of
1264
+ # the update method:
1265
+ # service Messaging `
1266
+ # rpc UpdateMessage(Message) returns (Message) `
1267
+ # option (google.api.http) = `
1268
+ # patch: "/v1/messages/`message_id`"
1269
+ # body: "*"
1270
+ # `;
1271
+ # `
1272
+ # `
1273
+ # message Message `
1274
+ # string message_id = 1;
1275
+ # string text = 2;
1276
+ # `
1277
+ # The following HTTP JSON to RPC mapping is enabled:
1278
+ # HTTP | gRPC
1279
+ # -----|-----
1280
+ # `PATCH /v1/messages/123456 ` "text": "Hi!" `` | `UpdateMessage(message_id:
1281
+ # "123456" text: "Hi!")`
1282
+ # Note that when using `*` in the body mapping, it is not possible to
1283
+ # have HTTP parameters, as all fields not bound by the path end in
1284
+ # the body. This makes this option more rarely used in practice when
1285
+ # defining REST APIs. The common usage of `*` is in custom methods
1286
+ # which don't use the URL at all for transferring data.
1287
+ # It is possible to define multiple HTTP methods for one RPC by using
1288
+ # the `additional_bindings` option. Example:
1289
+ # service Messaging `
1290
+ # rpc GetMessage(GetMessageRequest) returns (Message) `
1291
+ # option (google.api.http) = `
1292
+ # get: "/v1/messages/`message_id`"
1293
+ # additional_bindings `
1294
+ # get: "/v1/users/`user_id`/messages/`message_id`"
1295
+ # `
1296
+ # `;
1297
+ # `
1298
+ # `
1299
+ # message GetMessageRequest `
1300
+ # string message_id = 1;
1301
+ # string user_id = 2;
1302
+ # `
1303
+ # This enables the following two alternative HTTP JSON to RPC mappings:
1304
+ # HTTP | gRPC
1305
+ # -----|-----
1306
+ # `GET /v1/messages/123456` | `GetMessage(message_id: "123456")`
1307
+ # `GET /v1/users/me/messages/123456` | `GetMessage(user_id: "me" message_id:
1308
+ # "123456")`
1309
+ # ## Rules for HTTP mapping
1310
+ # 1. Leaf request fields (recursive expansion nested messages in the request
1311
+ # message) are classified into three categories:
1312
+ # - Fields referred by the path template. They are passed via the URL path.
1313
+ # - Fields referred by the HttpRule.body. They are passed via the HTTP
1314
+ # request body.
1315
+ # - All other fields are passed via the URL query parameters, and the
1316
+ # parameter name is the field path in the request message. A repeated
1317
+ # field can be represented as multiple query parameters under the same
1318
+ # name.
1319
+ # 2. If HttpRule.body is "*", there is no URL query parameter, all fields
1320
+ # are passed via URL path and HTTP request body.
1321
+ # 3. If HttpRule.body is omitted, there is no HTTP request body, all
1322
+ # fields are passed via URL path and URL query parameters.
1323
+ # ### Path template syntax
1324
+ # Template = "/" Segments [ Verb ] ;
1325
+ # Segments = Segment ` "/" Segment ` ;
1326
+ # Segment = "*" | "**" | LITERAL | Variable ;
1327
+ # Variable = "`" FieldPath [ "=" Segments ] "`" ;
1328
+ # FieldPath = IDENT ` "." IDENT ` ;
1329
+ # Verb = ":" LITERAL ;
1330
+ # The syntax `*` matches a single URL path segment. The syntax `**` matches
1331
+ # zero or more URL path segments, which must be the last part of the URL path
1332
+ # except the `Verb`.
1333
+ # The syntax `Variable` matches part of the URL path as specified by its
1334
+ # template. A variable template must not contain other variables. If a variable
1335
+ # matches a single path segment, its template may be omitted, e.g. ``var``
1336
+ # is equivalent to ``var=*``.
1337
+ # The syntax `LITERAL` matches literal text in the URL path. If the `LITERAL`
1338
+ # contains any reserved character, such characters should be percent-encoded
1339
+ # before the matching.
1340
+ # If a variable contains exactly one path segment, such as `"`var`"` or
1341
+ # `"`var=*`"`, when such a variable is expanded into a URL path on the client
1342
+ # side, all characters except `[-_.~0-9a-zA-Z]` are percent-encoded. The
1343
+ # server side does the reverse decoding. Such variables show up in the
1344
+ # [Discovery
1345
+ # Document](https://developers.google.com/discovery/v1/reference/apis) as
1346
+ # ``var``.
1347
+ # If a variable contains multiple path segments, such as `"`var=foo/*`"`
1348
+ # or `"`var=**`"`, when such a variable is expanded into a URL path on the
1349
+ # client side, all characters except `[-_.~/0-9a-zA-Z]` are percent-encoded.
1350
+ # The server side does the reverse decoding, except "%2F" and "%2f" are left
1351
+ # unchanged. Such variables show up in the
1352
+ # [Discovery
1353
+ # Document](https://developers.google.com/discovery/v1/reference/apis) as
1354
+ # ``+var``.
1355
+ # ## Using gRPC API Service Configuration
1356
+ # gRPC API Service Configuration (service config) is a configuration language
1357
+ # for configuring a gRPC service to become a user-facing product. The
1358
+ # service config is simply the YAML representation of the `google.api.Service`
1359
+ # proto message.
1360
+ # As an alternative to annotating your proto file, you can configure gRPC
1361
+ # transcoding in your service config YAML files. You do this by specifying a
1362
+ # `HttpRule` that maps the gRPC method to a REST endpoint, achieving the same
1363
+ # effect as the proto annotation. This can be particularly useful if you
1364
+ # have a proto that is reused in multiple services. Note that any transcoding
1365
+ # specified in the service config will override any matching transcoding
1366
+ # configuration in the proto.
1367
+ # Example:
1368
+ # http:
1369
+ # rules:
1370
+ # # Selects a gRPC method and applies HttpRule to it.
1371
+ # - selector: example.v1.Messaging.GetMessage
1372
+ # get: /v1/messages/`message_id`/`sub.subfield`
1373
+ # ## Special notes
1374
+ # When gRPC Transcoding is used to map a gRPC to JSON REST endpoints, the
1375
+ # proto to JSON conversion must follow the [proto3
1376
+ # specification](https://developers.google.com/protocol-buffers/docs/proto3#json)
1377
+ # .
1378
+ # While the single segment variable follows the semantics of
1379
+ # [RFC 6570](https://tools.ietf.org/html/rfc6570) Section 3.2.2 Simple String
1380
+ # Expansion, the multi segment variable **does not** follow RFC 6570 Section
1381
+ # 3.2.3 Reserved Expansion. The reason is that the Reserved Expansion
1382
+ # does not expand special characters like `?` and `#`, which would lead
1383
+ # to invalid URLs. As the result, gRPC Transcoding uses a custom encoding
1384
+ # for multi segment variables.
1385
+ # The path variables **must not** refer to any repeated or mapped field,
1386
+ # because client libraries are not capable of handling such variable expansion.
1387
+ # The path variables **must not** capture the leading "/" character. The reason
1388
+ # is that the most common use case "`var`" does not capture the leading "/"
1389
+ # character. For consistency, all path variables must share the same behavior.
1390
+ # Repeated message fields must not be mapped to URL query parameters, because
1391
+ # no client library can support such complicated mapping.
1392
+ # If an API needs to use a JSON array for request or response body, it can map
1393
+ # the request or response body to a repeated field. However, some gRPC
1394
+ # Transcoding implementations may not support this feature.
1395
+ class HttpRule
1396
+ include Google::Apis::Core::Hashable
1397
+
1398
+ # Additional HTTP bindings for the selector. Nested bindings must
1399
+ # not contain an `additional_bindings` field themselves (that is,
1400
+ # the nesting may only be one level deep).
1401
+ # Corresponds to the JSON property `additionalBindings`
1402
+ # @return [Array<Google::Apis::ServiceconsumermanagementV1beta1::HttpRule>]
1403
+ attr_accessor :additional_bindings
1404
+
1405
+ # When this flag is set to true, HTTP requests will be allowed to invoke a
1406
+ # half-duplex streaming method.
1407
+ # Corresponds to the JSON property `allowHalfDuplex`
1408
+ # @return [Boolean]
1409
+ attr_accessor :allow_half_duplex
1410
+ alias_method :allow_half_duplex?, :allow_half_duplex
1411
+
1412
+ # The name of the request field whose value is mapped to the HTTP request
1413
+ # body, or `*` for mapping all request fields not captured by the path
1414
+ # pattern to the HTTP body, or omitted for not having any HTTP request body.
1415
+ # NOTE: the referred field must be present at the top-level of the request
1416
+ # message type.
1417
+ # Corresponds to the JSON property `body`
1418
+ # @return [String]
1419
+ attr_accessor :body
1420
+
1421
+ # A custom pattern is used for defining custom HTTP verb.
1422
+ # Corresponds to the JSON property `custom`
1423
+ # @return [Google::Apis::ServiceconsumermanagementV1beta1::CustomHttpPattern]
1424
+ attr_accessor :custom
1425
+
1426
+ # Maps to HTTP DELETE. Used for deleting a resource.
1427
+ # Corresponds to the JSON property `delete`
1428
+ # @return [String]
1429
+ attr_accessor :delete
1430
+
1431
+ # Maps to HTTP GET. Used for listing and getting information about
1432
+ # resources.
1433
+ # Corresponds to the JSON property `get`
1434
+ # @return [String]
1435
+ attr_accessor :get
1436
+
1437
+ # Maps to HTTP PATCH. Used for updating a resource.
1438
+ # Corresponds to the JSON property `patch`
1439
+ # @return [String]
1440
+ attr_accessor :patch
1441
+
1442
+ # Maps to HTTP POST. Used for creating a resource or performing an action.
1443
+ # Corresponds to the JSON property `post`
1444
+ # @return [String]
1445
+ attr_accessor :post
1446
+
1447
+ # Maps to HTTP PUT. Used for replacing a resource.
1448
+ # Corresponds to the JSON property `put`
1449
+ # @return [String]
1450
+ attr_accessor :put
1451
+
1452
+ # Optional. The name of the response field whose value is mapped to the HTTP
1453
+ # response body. When omitted, the entire response message will be used
1454
+ # as the HTTP response body.
1455
+ # NOTE: The referred field must be present at the top-level of the response
1456
+ # message type.
1457
+ # Corresponds to the JSON property `responseBody`
1458
+ # @return [String]
1459
+ attr_accessor :response_body
1460
+
1461
+ # Selects a method to which this rule applies.
1462
+ # Refer to selector for syntax details.
1463
+ # Corresponds to the JSON property `selector`
1464
+ # @return [String]
1465
+ attr_accessor :selector
1466
+
1467
+ def initialize(**args)
1468
+ update!(**args)
1469
+ end
1470
+
1471
+ # Update properties of this object
1472
+ def update!(**args)
1473
+ @additional_bindings = args[:additional_bindings] if args.key?(:additional_bindings)
1474
+ @allow_half_duplex = args[:allow_half_duplex] if args.key?(:allow_half_duplex)
1475
+ @body = args[:body] if args.key?(:body)
1476
+ @custom = args[:custom] if args.key?(:custom)
1477
+ @delete = args[:delete] if args.key?(:delete)
1478
+ @get = args[:get] if args.key?(:get)
1479
+ @patch = args[:patch] if args.key?(:patch)
1480
+ @post = args[:post] if args.key?(:post)
1481
+ @put = args[:put] if args.key?(:put)
1482
+ @response_body = args[:response_body] if args.key?(:response_body)
1483
+ @selector = args[:selector] if args.key?(:selector)
1484
+ end
1485
+ end
1486
+
1487
+ # Specifies a location to extract JWT from an API request.
1488
+ class JwtLocation
1489
+ include Google::Apis::Core::Hashable
1490
+
1491
+ # Specifies HTTP header name to extract JWT token.
1492
+ # Corresponds to the JSON property `header`
1493
+ # @return [String]
1494
+ attr_accessor :header
1495
+
1496
+ # Specifies URL query parameter name to extract JWT token.
1497
+ # Corresponds to the JSON property `query`
1498
+ # @return [String]
1499
+ attr_accessor :query
1500
+
1501
+ # The value prefix. The value format is "value_prefix`token`"
1502
+ # Only applies to "in" header type. Must be empty for "in" query type.
1503
+ # If not empty, the header value has to match (case sensitive) this prefix.
1504
+ # If not matched, JWT will not be extracted. If matched, JWT will be
1505
+ # extracted after the prefix is removed.
1506
+ # For example, for "Authorization: Bearer `JWT`",
1507
+ # value_prefix="Bearer " with a space at the end.
1508
+ # Corresponds to the JSON property `valuePrefix`
1509
+ # @return [String]
1510
+ attr_accessor :value_prefix
1511
+
1512
+ def initialize(**args)
1513
+ update!(**args)
1514
+ end
1515
+
1516
+ # Update properties of this object
1517
+ def update!(**args)
1518
+ @header = args[:header] if args.key?(:header)
1519
+ @query = args[:query] if args.key?(:query)
1520
+ @value_prefix = args[:value_prefix] if args.key?(:value_prefix)
1521
+ end
1522
+ end
1523
+
1524
+ # A description of a label.
1525
+ class LabelDescriptor
1526
+ include Google::Apis::Core::Hashable
1527
+
1528
+ # A human-readable description for the label.
1529
+ # Corresponds to the JSON property `description`
1530
+ # @return [String]
1531
+ attr_accessor :description
1532
+
1533
+ # The label key.
1534
+ # Corresponds to the JSON property `key`
1535
+ # @return [String]
1536
+ attr_accessor :key
1537
+
1538
+ # The type of data that can be assigned to the label.
1539
+ # Corresponds to the JSON property `valueType`
1540
+ # @return [String]
1541
+ attr_accessor :value_type
1542
+
1543
+ def initialize(**args)
1544
+ update!(**args)
1545
+ end
1546
+
1547
+ # Update properties of this object
1548
+ def update!(**args)
1549
+ @description = args[:description] if args.key?(:description)
1550
+ @key = args[:key] if args.key?(:key)
1551
+ @value_type = args[:value_type] if args.key?(:value_type)
1552
+ end
1553
+ end
1554
+
1555
+ # A description of a log type. Example in YAML format:
1556
+ # - name: library.googleapis.com/activity_history
1557
+ # description: The history of borrowing and returning library items.
1558
+ # display_name: Activity
1559
+ # labels:
1560
+ # - key: /customer_id
1561
+ # description: Identifier of a library customer
1562
+ class LogDescriptor
1563
+ include Google::Apis::Core::Hashable
1564
+
1565
+ # A human-readable description of this log. This information appears in
1566
+ # the documentation and can contain details.
1567
+ # Corresponds to the JSON property `description`
1568
+ # @return [String]
1569
+ attr_accessor :description
1570
+
1571
+ # The human-readable name for this log. This information appears on
1572
+ # the user interface and should be concise.
1573
+ # Corresponds to the JSON property `displayName`
1574
+ # @return [String]
1575
+ attr_accessor :display_name
1576
+
1577
+ # The set of labels that are available to describe a specific log entry.
1578
+ # Runtime requests that contain labels not specified here are
1579
+ # considered invalid.
1580
+ # Corresponds to the JSON property `labels`
1581
+ # @return [Array<Google::Apis::ServiceconsumermanagementV1beta1::LabelDescriptor>]
1582
+ attr_accessor :labels
1583
+
1584
+ # The name of the log. It must be less than 512 characters long and can
1585
+ # include the following characters: upper- and lower-case alphanumeric
1586
+ # characters [A-Za-z0-9], and punctuation characters including
1587
+ # slash, underscore, hyphen, period [/_-.].
1588
+ # Corresponds to the JSON property `name`
1589
+ # @return [String]
1590
+ attr_accessor :name
1591
+
1592
+ def initialize(**args)
1593
+ update!(**args)
1594
+ end
1595
+
1596
+ # Update properties of this object
1597
+ def update!(**args)
1598
+ @description = args[:description] if args.key?(:description)
1599
+ @display_name = args[:display_name] if args.key?(:display_name)
1600
+ @labels = args[:labels] if args.key?(:labels)
1601
+ @name = args[:name] if args.key?(:name)
1602
+ end
1603
+ end
1604
+
1605
+ # Logging configuration of the service.
1606
+ # The following example shows how to configure logs to be sent to the
1607
+ # producer and consumer projects. In the example, the `activity_history`
1608
+ # log is sent to both the producer and consumer projects, whereas the
1609
+ # `purchase_history` log is only sent to the producer project.
1610
+ # monitored_resources:
1611
+ # - type: library.googleapis.com/branch
1612
+ # labels:
1613
+ # - key: /city
1614
+ # description: The city where the library branch is located in.
1615
+ # - key: /name
1616
+ # description: The name of the branch.
1617
+ # logs:
1618
+ # - name: activity_history
1619
+ # labels:
1620
+ # - key: /customer_id
1621
+ # - name: purchase_history
1622
+ # logging:
1623
+ # producer_destinations:
1624
+ # - monitored_resource: library.googleapis.com/branch
1625
+ # logs:
1626
+ # - activity_history
1627
+ # - purchase_history
1628
+ # consumer_destinations:
1629
+ # - monitored_resource: library.googleapis.com/branch
1630
+ # logs:
1631
+ # - activity_history
1632
+ class Logging
1633
+ include Google::Apis::Core::Hashable
1634
+
1635
+ # Logging configurations for sending logs to the consumer project.
1636
+ # There can be multiple consumer destinations, each one must have a
1637
+ # different monitored resource type. A log can be used in at most
1638
+ # one consumer destination.
1639
+ # Corresponds to the JSON property `consumerDestinations`
1640
+ # @return [Array<Google::Apis::ServiceconsumermanagementV1beta1::LoggingDestination>]
1641
+ attr_accessor :consumer_destinations
1642
+
1643
+ # Logging configurations for sending logs to the producer project.
1644
+ # There can be multiple producer destinations, each one must have a
1645
+ # different monitored resource type. A log can be used in at most
1646
+ # one producer destination.
1647
+ # Corresponds to the JSON property `producerDestinations`
1648
+ # @return [Array<Google::Apis::ServiceconsumermanagementV1beta1::LoggingDestination>]
1649
+ attr_accessor :producer_destinations
1650
+
1651
+ def initialize(**args)
1652
+ update!(**args)
1653
+ end
1654
+
1655
+ # Update properties of this object
1656
+ def update!(**args)
1657
+ @consumer_destinations = args[:consumer_destinations] if args.key?(:consumer_destinations)
1658
+ @producer_destinations = args[:producer_destinations] if args.key?(:producer_destinations)
1659
+ end
1660
+ end
1661
+
1662
+ # Configuration of a specific logging destination (the producer project
1663
+ # or the consumer project).
1664
+ class LoggingDestination
1665
+ include Google::Apis::Core::Hashable
1666
+
1667
+ # Names of the logs to be sent to this destination. Each name must
1668
+ # be defined in the Service.logs section. If the log name is
1669
+ # not a domain scoped name, it will be automatically prefixed with
1670
+ # the service name followed by "/".
1671
+ # Corresponds to the JSON property `logs`
1672
+ # @return [Array<String>]
1673
+ attr_accessor :logs
1674
+
1675
+ # The monitored resource type. The type must be defined in the
1676
+ # Service.monitored_resources section.
1677
+ # Corresponds to the JSON property `monitoredResource`
1678
+ # @return [String]
1679
+ attr_accessor :monitored_resource
1680
+
1681
+ def initialize(**args)
1682
+ update!(**args)
1683
+ end
1684
+
1685
+ # Update properties of this object
1686
+ def update!(**args)
1687
+ @logs = args[:logs] if args.key?(:logs)
1688
+ @monitored_resource = args[:monitored_resource] if args.key?(:monitored_resource)
1689
+ end
1690
+ end
1691
+
1692
+ # Method represents a method of an API interface.
1693
+ class MethodProp
1694
+ include Google::Apis::Core::Hashable
1695
+
1696
+ # The simple name of this method.
1697
+ # Corresponds to the JSON property `name`
1698
+ # @return [String]
1699
+ attr_accessor :name
1700
+
1701
+ # Any metadata attached to the method.
1702
+ # Corresponds to the JSON property `options`
1703
+ # @return [Array<Google::Apis::ServiceconsumermanagementV1beta1::Option>]
1704
+ attr_accessor :options
1705
+
1706
+ # If true, the request is streamed.
1707
+ # Corresponds to the JSON property `requestStreaming`
1708
+ # @return [Boolean]
1709
+ attr_accessor :request_streaming
1710
+ alias_method :request_streaming?, :request_streaming
1711
+
1712
+ # A URL of the input message type.
1713
+ # Corresponds to the JSON property `requestTypeUrl`
1714
+ # @return [String]
1715
+ attr_accessor :request_type_url
1716
+
1717
+ # If true, the response is streamed.
1718
+ # Corresponds to the JSON property `responseStreaming`
1719
+ # @return [Boolean]
1720
+ attr_accessor :response_streaming
1721
+ alias_method :response_streaming?, :response_streaming
1722
+
1723
+ # The URL of the output message type.
1724
+ # Corresponds to the JSON property `responseTypeUrl`
1725
+ # @return [String]
1726
+ attr_accessor :response_type_url
1727
+
1728
+ # The source syntax of this method.
1729
+ # Corresponds to the JSON property `syntax`
1730
+ # @return [String]
1731
+ attr_accessor :syntax
1732
+
1733
+ def initialize(**args)
1734
+ update!(**args)
1735
+ end
1736
+
1737
+ # Update properties of this object
1738
+ def update!(**args)
1739
+ @name = args[:name] if args.key?(:name)
1740
+ @options = args[:options] if args.key?(:options)
1741
+ @request_streaming = args[:request_streaming] if args.key?(:request_streaming)
1742
+ @request_type_url = args[:request_type_url] if args.key?(:request_type_url)
1743
+ @response_streaming = args[:response_streaming] if args.key?(:response_streaming)
1744
+ @response_type_url = args[:response_type_url] if args.key?(:response_type_url)
1745
+ @syntax = args[:syntax] if args.key?(:syntax)
1746
+ end
1747
+ end
1748
+
1749
+ # Defines a metric type and its schema. Once a metric descriptor is created,
1750
+ # deleting or altering it stops data collection and makes the metric type's
1751
+ # existing data unusable.
1752
+ class MetricDescriptor
1753
+ include Google::Apis::Core::Hashable
1754
+
1755
+ # A detailed description of the metric, which can be used in documentation.
1756
+ # Corresponds to the JSON property `description`
1757
+ # @return [String]
1758
+ attr_accessor :description
1759
+
1760
+ # A concise name for the metric, which can be displayed in user interfaces.
1761
+ # Use sentence case without an ending period, for example "Request count".
1762
+ # This field is optional but it is recommended to be set for any metrics
1763
+ # associated with user-visible concepts, such as Quota.
1764
+ # Corresponds to the JSON property `displayName`
1765
+ # @return [String]
1766
+ attr_accessor :display_name
1767
+
1768
+ # The set of labels that can be used to describe a specific
1769
+ # instance of this metric type. For example, the
1770
+ # `appengine.googleapis.com/http/server/response_latencies` metric
1771
+ # type has a label for the HTTP response code, `response_code`, so
1772
+ # you can look at latencies for successful responses or just
1773
+ # for responses that failed.
1774
+ # Corresponds to the JSON property `labels`
1775
+ # @return [Array<Google::Apis::ServiceconsumermanagementV1beta1::LabelDescriptor>]
1776
+ attr_accessor :labels
1777
+
1778
+ # Optional. The launch stage of the metric definition.
1779
+ # Corresponds to the JSON property `launchStage`
1780
+ # @return [String]
1781
+ attr_accessor :launch_stage
1782
+
1783
+ # Additional annotations that can be used to guide the usage of a metric.
1784
+ # Corresponds to the JSON property `metadata`
1785
+ # @return [Google::Apis::ServiceconsumermanagementV1beta1::MetricDescriptorMetadata]
1786
+ attr_accessor :metadata
1787
+
1788
+ # Whether the metric records instantaneous values, changes to a value, etc.
1789
+ # Some combinations of `metric_kind` and `value_type` might not be supported.
1790
+ # Corresponds to the JSON property `metricKind`
1791
+ # @return [String]
1792
+ attr_accessor :metric_kind
1793
+
1794
+ # Read-only. If present, then a time
1795
+ # series, which is identified partially by
1796
+ # a metric type and a MonitoredResourceDescriptor, that is associated
1797
+ # with this metric type can only be associated with one of the monitored
1798
+ # resource types listed here.
1799
+ # Corresponds to the JSON property `monitoredResourceTypes`
1800
+ # @return [Array<String>]
1801
+ attr_accessor :monitored_resource_types
1802
+
1803
+ # The resource name of the metric descriptor.
1804
+ # Corresponds to the JSON property `name`
1805
+ # @return [String]
1806
+ attr_accessor :name
1807
+
1808
+ # The metric type, including its DNS name prefix. The type is not
1809
+ # URL-encoded. All user-defined metric types have the DNS name
1810
+ # `custom.googleapis.com` or `external.googleapis.com`. Metric types should
1811
+ # use a natural hierarchical grouping. For example:
1812
+ # "custom.googleapis.com/invoice/paid/amount"
1813
+ # "external.googleapis.com/prometheus/up"
1814
+ # "appengine.googleapis.com/http/server/response_latencies"
1815
+ # Corresponds to the JSON property `type`
1816
+ # @return [String]
1817
+ attr_accessor :type
1818
+
1819
+ # The units in which the metric value is reported. It is only applicable
1820
+ # if the `value_type` is `INT64`, `DOUBLE`, or `DISTRIBUTION`. The `unit`
1821
+ # defines the representation of the stored metric values.
1822
+ # Different systems may scale the values to be more easily displayed (so a
1823
+ # value of `0.02KBy` _might_ be displayed as `20By`, and a value of
1824
+ # `3523KBy` _might_ be displayed as `3.5MBy`). However, if the `unit` is
1825
+ # `KBy`, then the value of the metric is always in thousands of bytes, no
1826
+ # matter how it may be displayed..
1827
+ # If you want a custom metric to record the exact number of CPU-seconds used
1828
+ # by a job, you can create an `INT64 CUMULATIVE` metric whose `unit` is
1829
+ # `s`CPU`` (or equivalently `1s`CPU`` or just `s`). If the job uses 12,005
1830
+ # CPU-seconds, then the value is written as `12005`.
1831
+ # Alternatively, if you want a custom metric to record data in a more
1832
+ # granular way, you can create a `DOUBLE CUMULATIVE` metric whose `unit` is
1833
+ # `ks`CPU``, and then write the value `12.005` (which is `12005/1000`),
1834
+ # or use `Kis`CPU`` and write `11.723` (which is `12005/1024`).
1835
+ # The supported units are a subset of [The Unified Code for Units of
1836
+ # Measure](http://unitsofmeasure.org/ucum.html) standard:
1837
+ # **Basic units (UNIT)**
1838
+ # * `bit` bit
1839
+ # * `By` byte
1840
+ # * `s` second
1841
+ # * `min` minute
1842
+ # * `h` hour
1843
+ # * `d` day
1844
+ # **Prefixes (PREFIX)**
1845
+ # * `k` kilo (10^3)
1846
+ # * `M` mega (10^6)
1847
+ # * `G` giga (10^9)
1848
+ # * `T` tera (10^12)
1849
+ # * `P` peta (10^15)
1850
+ # * `E` exa (10^18)
1851
+ # * `Z` zetta (10^21)
1852
+ # * `Y` yotta (10^24)
1853
+ # * `m` milli (10^-3)
1854
+ # * `u` micro (10^-6)
1855
+ # * `n` nano (10^-9)
1856
+ # * `p` pico (10^-12)
1857
+ # * `f` femto (10^-15)
1858
+ # * `a` atto (10^-18)
1859
+ # * `z` zepto (10^-21)
1860
+ # * `y` yocto (10^-24)
1861
+ # * `Ki` kibi (2^10)
1862
+ # * `Mi` mebi (2^20)
1863
+ # * `Gi` gibi (2^30)
1864
+ # * `Ti` tebi (2^40)
1865
+ # * `Pi` pebi (2^50)
1866
+ # **Grammar**
1867
+ # The grammar also includes these connectors:
1868
+ # * `/` division or ratio (as an infix operator). For examples,
1869
+ # `kBy/`email`` or `MiBy/10ms` (although you should almost never
1870
+ # have `/s` in a metric `unit`; rates should always be computed at
1871
+ # query time from the underlying cumulative or delta value).
1872
+ # * `.` multiplication or composition (as an infix operator). For
1873
+ # examples, `GBy.d` or `k`watt`.h`.
1874
+ # The grammar for a unit is as follows:
1875
+ # Expression = Component ` "." Component ` ` "/" Component ` ;
1876
+ # Component = ( [ PREFIX ] UNIT | "%" ) [ Annotation ]
1877
+ # | Annotation
1878
+ # | "1"
1879
+ # ;
1880
+ # Annotation = "`" NAME "`" ;
1881
+ # Notes:
1882
+ # * `Annotation` is just a comment if it follows a `UNIT`. If the annotation
1883
+ # is used alone, then the unit is equivalent to `1`. For examples,
1884
+ # ``request`/s == 1/s`, `By`transmitted`/s == By/s`.
1885
+ # * `NAME` is a sequence of non-blank printable ASCII characters not
1886
+ # containing ``` or ```.
1887
+ # * `1` represents a unitary [dimensionless
1888
+ # unit](https://en.wikipedia.org/wiki/Dimensionless_quantity) of 1, such
1889
+ # as in `1/s`. It is typically used when none of the basic units are
1890
+ # appropriate. For example, "new users per day" can be represented as
1891
+ # `1/d` or ``new-users`/d` (and a metric value `5` would mean "5 new
1892
+ # users). Alternatively, "thousands of page views per day" would be
1893
+ # represented as `1000/d` or `k1/d` or `k`page_views`/d` (and a metric
1894
+ # value of `5.3` would mean "5300 page views per day").
1895
+ # * `%` represents dimensionless value of 1/100, and annotates values giving
1896
+ # a percentage (so the metric values are typically in the range of 0..100,
1897
+ # and a metric value `3` means "3 percent").
1898
+ # * `10^2.%` indicates a metric contains a ratio, typically in the range
1899
+ # 0..1, that will be multiplied by 100 and displayed as a percentage
1900
+ # (so a metric value `0.03` means "3 percent").
1901
+ # Corresponds to the JSON property `unit`
1902
+ # @return [String]
1903
+ attr_accessor :unit
1904
+
1905
+ # Whether the measurement is an integer, a floating-point number, etc.
1906
+ # Some combinations of `metric_kind` and `value_type` might not be supported.
1907
+ # Corresponds to the JSON property `valueType`
1908
+ # @return [String]
1909
+ attr_accessor :value_type
1910
+
1911
+ def initialize(**args)
1912
+ update!(**args)
1913
+ end
1914
+
1915
+ # Update properties of this object
1916
+ def update!(**args)
1917
+ @description = args[:description] if args.key?(:description)
1918
+ @display_name = args[:display_name] if args.key?(:display_name)
1919
+ @labels = args[:labels] if args.key?(:labels)
1920
+ @launch_stage = args[:launch_stage] if args.key?(:launch_stage)
1921
+ @metadata = args[:metadata] if args.key?(:metadata)
1922
+ @metric_kind = args[:metric_kind] if args.key?(:metric_kind)
1923
+ @monitored_resource_types = args[:monitored_resource_types] if args.key?(:monitored_resource_types)
1924
+ @name = args[:name] if args.key?(:name)
1925
+ @type = args[:type] if args.key?(:type)
1926
+ @unit = args[:unit] if args.key?(:unit)
1927
+ @value_type = args[:value_type] if args.key?(:value_type)
1928
+ end
1929
+ end
1930
+
1931
+ # Additional annotations that can be used to guide the usage of a metric.
1932
+ class MetricDescriptorMetadata
1933
+ include Google::Apis::Core::Hashable
1934
+
1935
+ # The delay of data points caused by ingestion. Data points older than this
1936
+ # age are guaranteed to be ingested and available to be read, excluding
1937
+ # data loss due to errors.
1938
+ # Corresponds to the JSON property `ingestDelay`
1939
+ # @return [String]
1940
+ attr_accessor :ingest_delay
1941
+
1942
+ # Deprecated. Must use the MetricDescriptor.launch_stage instead.
1943
+ # Corresponds to the JSON property `launchStage`
1944
+ # @return [String]
1945
+ attr_accessor :launch_stage
1946
+
1947
+ # The sampling period of metric data points. For metrics which are written
1948
+ # periodically, consecutive data points are stored at this time interval,
1949
+ # excluding data loss due to errors. Metrics with a higher granularity have
1950
+ # a smaller sampling period.
1951
+ # Corresponds to the JSON property `samplePeriod`
1952
+ # @return [String]
1953
+ attr_accessor :sample_period
1954
+
1955
+ def initialize(**args)
1956
+ update!(**args)
1957
+ end
1958
+
1959
+ # Update properties of this object
1960
+ def update!(**args)
1961
+ @ingest_delay = args[:ingest_delay] if args.key?(:ingest_delay)
1962
+ @launch_stage = args[:launch_stage] if args.key?(:launch_stage)
1963
+ @sample_period = args[:sample_period] if args.key?(:sample_period)
1964
+ end
1965
+ end
1966
+
1967
+ # Bind API methods to metrics. Binding a method to a metric causes that
1968
+ # metric's configured quota behaviors to apply to the method call.
1969
+ class MetricRule
1970
+ include Google::Apis::Core::Hashable
1971
+
1972
+ # Metrics to update when the selected methods are called, and the associated
1973
+ # cost applied to each metric.
1974
+ # The key of the map is the metric name, and the values are the amount
1975
+ # increased for the metric against which the quota limits are defined.
1976
+ # The value must not be negative.
1977
+ # Corresponds to the JSON property `metricCosts`
1978
+ # @return [Hash<String,Fixnum>]
1979
+ attr_accessor :metric_costs
1980
+
1981
+ # Selects the methods to which this rule applies.
1982
+ # Refer to selector for syntax details.
1983
+ # Corresponds to the JSON property `selector`
1984
+ # @return [String]
1985
+ attr_accessor :selector
1986
+
1987
+ def initialize(**args)
1988
+ update!(**args)
1989
+ end
1990
+
1991
+ # Update properties of this object
1992
+ def update!(**args)
1993
+ @metric_costs = args[:metric_costs] if args.key?(:metric_costs)
1994
+ @selector = args[:selector] if args.key?(:selector)
1995
+ end
1996
+ end
1997
+
1998
+ # Declares an API Interface to be included in this interface. The including
1999
+ # interface must redeclare all the methods from the included interface, but
2000
+ # documentation and options are inherited as follows:
2001
+ # - If after comment and whitespace stripping, the documentation
2002
+ # string of the redeclared method is empty, it will be inherited
2003
+ # from the original method.
2004
+ # - Each annotation belonging to the service config (http,
2005
+ # visibility) which is not set in the redeclared method will be
2006
+ # inherited.
2007
+ # - If an http annotation is inherited, the path pattern will be
2008
+ # modified as follows. Any version prefix will be replaced by the
2009
+ # version of the including interface plus the root path if
2010
+ # specified.
2011
+ # Example of a simple mixin:
2012
+ # package google.acl.v1;
2013
+ # service AccessControl `
2014
+ # // Get the underlying ACL object.
2015
+ # rpc GetAcl(GetAclRequest) returns (Acl) `
2016
+ # option (google.api.http).get = "/v1/`resource=**`:getAcl";
2017
+ # `
2018
+ # `
2019
+ # package google.storage.v2;
2020
+ # service Storage `
2021
+ # // rpc GetAcl(GetAclRequest) returns (Acl);
2022
+ # // Get a data record.
2023
+ # rpc GetData(GetDataRequest) returns (Data) `
2024
+ # option (google.api.http).get = "/v2/`resource=**`";
2025
+ # `
2026
+ # `
2027
+ # Example of a mixin configuration:
2028
+ # apis:
2029
+ # - name: google.storage.v2.Storage
2030
+ # mixins:
2031
+ # - name: google.acl.v1.AccessControl
2032
+ # The mixin construct implies that all methods in `AccessControl` are
2033
+ # also declared with same name and request/response types in
2034
+ # `Storage`. A documentation generator or annotation processor will
2035
+ # see the effective `Storage.GetAcl` method after inherting
2036
+ # documentation and annotations as follows:
2037
+ # service Storage `
2038
+ # // Get the underlying ACL object.
2039
+ # rpc GetAcl(GetAclRequest) returns (Acl) `
2040
+ # option (google.api.http).get = "/v2/`resource=**`:getAcl";
2041
+ # `
2042
+ # ...
2043
+ # `
2044
+ # Note how the version in the path pattern changed from `v1` to `v2`.
2045
+ # If the `root` field in the mixin is specified, it should be a
2046
+ # relative path under which inherited HTTP paths are placed. Example:
2047
+ # apis:
2048
+ # - name: google.storage.v2.Storage
2049
+ # mixins:
2050
+ # - name: google.acl.v1.AccessControl
2051
+ # root: acls
2052
+ # This implies the following inherited HTTP annotation:
2053
+ # service Storage `
2054
+ # // Get the underlying ACL object.
2055
+ # rpc GetAcl(GetAclRequest) returns (Acl) `
2056
+ # option (google.api.http).get = "/v2/acls/`resource=**`:getAcl";
2057
+ # `
2058
+ # ...
2059
+ # `
2060
+ class Mixin
2061
+ include Google::Apis::Core::Hashable
2062
+
2063
+ # The fully qualified name of the interface which is included.
2064
+ # Corresponds to the JSON property `name`
2065
+ # @return [String]
2066
+ attr_accessor :name
2067
+
2068
+ # If non-empty specifies a path under which inherited HTTP paths
2069
+ # are rooted.
2070
+ # Corresponds to the JSON property `root`
2071
+ # @return [String]
2072
+ attr_accessor :root
2073
+
2074
+ def initialize(**args)
2075
+ update!(**args)
2076
+ end
2077
+
2078
+ # Update properties of this object
2079
+ def update!(**args)
2080
+ @name = args[:name] if args.key?(:name)
2081
+ @root = args[:root] if args.key?(:root)
2082
+ end
2083
+ end
2084
+
2085
+ # An object that describes the schema of a MonitoredResource object using a
2086
+ # type name and a set of labels. For example, the monitored resource
2087
+ # descriptor for Google Compute Engine VM instances has a type of
2088
+ # `"gce_instance"` and specifies the use of the labels `"instance_id"` and
2089
+ # `"zone"` to identify particular VM instances.
2090
+ # Different APIs can support different monitored resource types. APIs generally
2091
+ # provide a `list` method that returns the monitored resource descriptors used
2092
+ # by the API.
2093
+ class MonitoredResourceDescriptor
2094
+ include Google::Apis::Core::Hashable
2095
+
2096
+ # Optional. A detailed description of the monitored resource type that might
2097
+ # be used in documentation.
2098
+ # Corresponds to the JSON property `description`
2099
+ # @return [String]
2100
+ attr_accessor :description
2101
+
2102
+ # Optional. A concise name for the monitored resource type that might be
2103
+ # displayed in user interfaces. It should be a Title Cased Noun Phrase,
2104
+ # without any article or other determiners. For example,
2105
+ # `"Google Cloud SQL Database"`.
2106
+ # Corresponds to the JSON property `displayName`
2107
+ # @return [String]
2108
+ attr_accessor :display_name
2109
+
2110
+ # Required. A set of labels used to describe instances of this monitored
2111
+ # resource type. For example, an individual Google Cloud SQL database is
2112
+ # identified by values for the labels `"database_id"` and `"zone"`.
2113
+ # Corresponds to the JSON property `labels`
2114
+ # @return [Array<Google::Apis::ServiceconsumermanagementV1beta1::LabelDescriptor>]
2115
+ attr_accessor :labels
2116
+
2117
+ # Optional. The launch stage of the monitored resource definition.
2118
+ # Corresponds to the JSON property `launchStage`
2119
+ # @return [String]
2120
+ attr_accessor :launch_stage
2121
+
2122
+ # Optional. The resource name of the monitored resource descriptor:
2123
+ # `"projects/`project_id`/monitoredResourceDescriptors/`type`"` where
2124
+ # `type` is the value of the `type` field in this object and
2125
+ # `project_id` is a project ID that provides API-specific context for
2126
+ # accessing the type. APIs that do not use project information can use the
2127
+ # resource name format `"monitoredResourceDescriptors/`type`"`.
2128
+ # Corresponds to the JSON property `name`
2129
+ # @return [String]
2130
+ attr_accessor :name
2131
+
2132
+ # Required. The monitored resource type. For example, the type
2133
+ # `"cloudsql_database"` represents databases in Google Cloud SQL.
2134
+ # The maximum length of this value is 256 characters.
2135
+ # Corresponds to the JSON property `type`
2136
+ # @return [String]
2137
+ attr_accessor :type
2138
+
2139
+ def initialize(**args)
2140
+ update!(**args)
2141
+ end
2142
+
2143
+ # Update properties of this object
2144
+ def update!(**args)
2145
+ @description = args[:description] if args.key?(:description)
2146
+ @display_name = args[:display_name] if args.key?(:display_name)
2147
+ @labels = args[:labels] if args.key?(:labels)
2148
+ @launch_stage = args[:launch_stage] if args.key?(:launch_stage)
2149
+ @name = args[:name] if args.key?(:name)
2150
+ @type = args[:type] if args.key?(:type)
2151
+ end
2152
+ end
2153
+
2154
+ # Monitoring configuration of the service.
2155
+ # The example below shows how to configure monitored resources and metrics
2156
+ # for monitoring. In the example, a monitored resource and two metrics are
2157
+ # defined. The `library.googleapis.com/book/returned_count` metric is sent
2158
+ # to both producer and consumer projects, whereas the
2159
+ # `library.googleapis.com/book/overdue_count` metric is only sent to the
2160
+ # consumer project.
2161
+ # monitored_resources:
2162
+ # - type: library.googleapis.com/branch
2163
+ # labels:
2164
+ # - key: /city
2165
+ # description: The city where the library branch is located in.
2166
+ # - key: /name
2167
+ # description: The name of the branch.
2168
+ # metrics:
2169
+ # - name: library.googleapis.com/book/returned_count
2170
+ # metric_kind: DELTA
2171
+ # value_type: INT64
2172
+ # labels:
2173
+ # - key: /customer_id
2174
+ # - name: library.googleapis.com/book/overdue_count
2175
+ # metric_kind: GAUGE
2176
+ # value_type: INT64
2177
+ # labels:
2178
+ # - key: /customer_id
2179
+ # monitoring:
2180
+ # producer_destinations:
2181
+ # - monitored_resource: library.googleapis.com/branch
2182
+ # metrics:
2183
+ # - library.googleapis.com/book/returned_count
2184
+ # consumer_destinations:
2185
+ # - monitored_resource: library.googleapis.com/branch
2186
+ # metrics:
2187
+ # - library.googleapis.com/book/returned_count
2188
+ # - library.googleapis.com/book/overdue_count
2189
+ class Monitoring
2190
+ include Google::Apis::Core::Hashable
2191
+
2192
+ # Monitoring configurations for sending metrics to the consumer project.
2193
+ # There can be multiple consumer destinations. A monitored resouce type may
2194
+ # appear in multiple monitoring destinations if different aggregations are
2195
+ # needed for different sets of metrics associated with that monitored
2196
+ # resource type. A monitored resource and metric pair may only be used once
2197
+ # in the Monitoring configuration.
2198
+ # Corresponds to the JSON property `consumerDestinations`
2199
+ # @return [Array<Google::Apis::ServiceconsumermanagementV1beta1::MonitoringDestination>]
2200
+ attr_accessor :consumer_destinations
2201
+
2202
+ # Monitoring configurations for sending metrics to the producer project.
2203
+ # There can be multiple producer destinations. A monitored resouce type may
2204
+ # appear in multiple monitoring destinations if different aggregations are
2205
+ # needed for different sets of metrics associated with that monitored
2206
+ # resource type. A monitored resource and metric pair may only be used once
2207
+ # in the Monitoring configuration.
2208
+ # Corresponds to the JSON property `producerDestinations`
2209
+ # @return [Array<Google::Apis::ServiceconsumermanagementV1beta1::MonitoringDestination>]
2210
+ attr_accessor :producer_destinations
2211
+
2212
+ def initialize(**args)
2213
+ update!(**args)
2214
+ end
2215
+
2216
+ # Update properties of this object
2217
+ def update!(**args)
2218
+ @consumer_destinations = args[:consumer_destinations] if args.key?(:consumer_destinations)
2219
+ @producer_destinations = args[:producer_destinations] if args.key?(:producer_destinations)
2220
+ end
2221
+ end
2222
+
2223
+ # Configuration of a specific monitoring destination (the producer project
2224
+ # or the consumer project).
2225
+ class MonitoringDestination
2226
+ include Google::Apis::Core::Hashable
2227
+
2228
+ # Types of the metrics to report to this monitoring destination.
2229
+ # Each type must be defined in Service.metrics section.
2230
+ # Corresponds to the JSON property `metrics`
2231
+ # @return [Array<String>]
2232
+ attr_accessor :metrics
2233
+
2234
+ # The monitored resource type. The type must be defined in
2235
+ # Service.monitored_resources section.
2236
+ # Corresponds to the JSON property `monitoredResource`
2237
+ # @return [String]
2238
+ attr_accessor :monitored_resource
2239
+
2240
+ def initialize(**args)
2241
+ update!(**args)
2242
+ end
2243
+
2244
+ # Update properties of this object
2245
+ def update!(**args)
2246
+ @metrics = args[:metrics] if args.key?(:metrics)
2247
+ @monitored_resource = args[:monitored_resource] if args.key?(:monitored_resource)
2248
+ end
2249
+ end
2250
+
2251
+ # OAuth scopes are a way to define data and permissions on data. For example,
2252
+ # there are scopes defined for "Read-only access to Google Calendar" and
2253
+ # "Access to Cloud Platform". Users can consent to a scope for an application,
2254
+ # giving it permission to access that data on their behalf.
2255
+ # OAuth scope specifications should be fairly coarse grained; a user will need
2256
+ # to see and understand the text description of what your scope means.
2257
+ # In most cases: use one or at most two OAuth scopes for an entire family of
2258
+ # products. If your product has multiple APIs, you should probably be sharing
2259
+ # the OAuth scope across all of those APIs.
2260
+ # When you need finer grained OAuth consent screens: talk with your product
2261
+ # management about how developers will use them in practice.
2262
+ # Please note that even though each of the canonical scopes is enough for a
2263
+ # request to be accepted and passed to the backend, a request can still fail
2264
+ # due to the backend requiring additional scopes or permissions.
2265
+ class OAuthRequirements
2266
+ include Google::Apis::Core::Hashable
2267
+
2268
+ # The list of publicly documented OAuth scopes that are allowed access. An
2269
+ # OAuth token containing any of these scopes will be accepted.
2270
+ # Example:
2271
+ # canonical_scopes: https://www.googleapis.com/auth/calendar,
2272
+ # https://www.googleapis.com/auth/calendar.read
2273
+ # Corresponds to the JSON property `canonicalScopes`
2274
+ # @return [String]
2275
+ attr_accessor :canonical_scopes
2276
+
2277
+ def initialize(**args)
2278
+ update!(**args)
2279
+ end
2280
+
2281
+ # Update properties of this object
2282
+ def update!(**args)
2283
+ @canonical_scopes = args[:canonical_scopes] if args.key?(:canonical_scopes)
2284
+ end
2285
+ end
2286
+
2287
+ # This resource represents a long-running operation that is the result of a
2288
+ # network API call.
2289
+ class Operation
2290
+ include Google::Apis::Core::Hashable
2291
+
2292
+ # If the value is `false`, it means the operation is still in progress.
2293
+ # If `true`, the operation is completed, and either `error` or `response` is
2294
+ # available.
2295
+ # Corresponds to the JSON property `done`
2296
+ # @return [Boolean]
2297
+ attr_accessor :done
2298
+ alias_method :done?, :done
2299
+
2300
+ # The `Status` type defines a logical error model that is suitable for
2301
+ # different programming environments, including REST APIs and RPC APIs. It is
2302
+ # used by [gRPC](https://github.com/grpc). Each `Status` message contains
2303
+ # three pieces of data: error code, error message, and error details.
2304
+ # You can find out more about this error model and how to work with it in the
2305
+ # [API Design Guide](https://cloud.google.com/apis/design/errors).
2306
+ # Corresponds to the JSON property `error`
2307
+ # @return [Google::Apis::ServiceconsumermanagementV1beta1::Status]
2308
+ attr_accessor :error
2309
+
2310
+ # Service-specific metadata associated with the operation. It typically
2311
+ # contains progress information and common metadata such as create time.
2312
+ # Some services might not provide such metadata. Any method that returns a
2313
+ # long-running operation should document the metadata type, if any.
2314
+ # Corresponds to the JSON property `metadata`
2315
+ # @return [Hash<String,Object>]
2316
+ attr_accessor :metadata
2317
+
2318
+ # The server-assigned name, which is only unique within the same service that
2319
+ # originally returns it. If you use the default HTTP mapping, the
2320
+ # `name` should be a resource name ending with `operations/`unique_id``.
2321
+ # Corresponds to the JSON property `name`
2322
+ # @return [String]
2323
+ attr_accessor :name
2324
+
2325
+ # The normal response of the operation in case of success. If the original
2326
+ # method returns no data on success, such as `Delete`, the response is
2327
+ # `google.protobuf.Empty`. If the original method is standard
2328
+ # `Get`/`Create`/`Update`, the response should be the resource. For other
2329
+ # methods, the response should have the type `XxxResponse`, where `Xxx`
2330
+ # is the original method name. For example, if the original method name
2331
+ # is `TakeSnapshot()`, the inferred response type is
2332
+ # `TakeSnapshotResponse`.
2333
+ # Corresponds to the JSON property `response`
2334
+ # @return [Hash<String,Object>]
2335
+ attr_accessor :response
2336
+
2337
+ def initialize(**args)
2338
+ update!(**args)
2339
+ end
2340
+
2341
+ # Update properties of this object
2342
+ def update!(**args)
2343
+ @done = args[:done] if args.key?(:done)
2344
+ @error = args[:error] if args.key?(:error)
2345
+ @metadata = args[:metadata] if args.key?(:metadata)
2346
+ @name = args[:name] if args.key?(:name)
2347
+ @response = args[:response] if args.key?(:response)
2348
+ end
2349
+ end
2350
+
2351
+ # A protocol buffer option, which can be attached to a message, field,
2352
+ # enumeration, etc.
2353
+ class Option
2354
+ include Google::Apis::Core::Hashable
2355
+
2356
+ # The option's name. For protobuf built-in options (options defined in
2357
+ # descriptor.proto), this is the short name. For example, `"map_entry"`.
2358
+ # For custom options, it should be the fully-qualified name. For example,
2359
+ # `"google.api.http"`.
2360
+ # Corresponds to the JSON property `name`
2361
+ # @return [String]
2362
+ attr_accessor :name
2363
+
2364
+ # The option's value packed in an Any message. If the value is a primitive,
2365
+ # the corresponding wrapper type defined in google/protobuf/wrappers.proto
2366
+ # should be used. If the value is an enum, it should be stored as an int32
2367
+ # value using the google.protobuf.Int32Value type.
2368
+ # Corresponds to the JSON property `value`
2369
+ # @return [Hash<String,Object>]
2370
+ attr_accessor :value
2371
+
2372
+ def initialize(**args)
2373
+ update!(**args)
2374
+ end
2375
+
2376
+ # Update properties of this object
2377
+ def update!(**args)
2378
+ @name = args[:name] if args.key?(:name)
2379
+ @value = args[:value] if args.key?(:value)
2380
+ end
2381
+ end
2382
+
2383
+ # Represents a documentation page. A page can contain subpages to represent
2384
+ # nested documentation set structure.
2385
+ class Page
2386
+ include Google::Apis::Core::Hashable
2387
+
2388
+ # The Markdown content of the page. You can use <code>&#40;== include `path`
2389
+ # ==&#41;</code> to include content from a Markdown file.
2390
+ # Corresponds to the JSON property `content`
2391
+ # @return [String]
2392
+ attr_accessor :content
2393
+
2394
+ # The name of the page. It will be used as an identity of the page to
2395
+ # generate URI of the page, text of the link to this page in navigation,
2396
+ # etc. The full page name (start from the root page name to this page
2397
+ # concatenated with `.`) can be used as reference to the page in your
2398
+ # documentation. For example:
2399
+ # <pre><code>pages:
2400
+ # - name: Tutorial
2401
+ # content: &#40;== include tutorial.md ==&#41;
2402
+ # subpages:
2403
+ # - name: Java
2404
+ # content: &#40;== include tutorial_java.md ==&#41;
2405
+ # </code></pre>
2406
+ # You can reference `Java` page using Markdown reference link syntax:
2407
+ # `Java`.
2408
+ # Corresponds to the JSON property `name`
2409
+ # @return [String]
2410
+ attr_accessor :name
2411
+
2412
+ # Subpages of this page. The order of subpages specified here will be
2413
+ # honored in the generated docset.
2414
+ # Corresponds to the JSON property `subpages`
2415
+ # @return [Array<Google::Apis::ServiceconsumermanagementV1beta1::Page>]
2416
+ attr_accessor :subpages
2417
+
2418
+ def initialize(**args)
2419
+ update!(**args)
2420
+ end
2421
+
2422
+ # Update properties of this object
2423
+ def update!(**args)
2424
+ @content = args[:content] if args.key?(:content)
2425
+ @name = args[:name] if args.key?(:name)
2426
+ @subpages = args[:subpages] if args.key?(:subpages)
2427
+ end
2428
+ end
2429
+
2430
+ # Quota configuration helps to achieve fairness and budgeting in service
2431
+ # usage.
2432
+ # The metric based quota configuration works this way:
2433
+ # - The service configuration defines a set of metrics.
2434
+ # - For API calls, the quota.metric_rules maps methods to metrics with
2435
+ # corresponding costs.
2436
+ # - The quota.limits defines limits on the metrics, which will be used for
2437
+ # quota checks at runtime.
2438
+ # An example quota configuration in yaml format:
2439
+ # quota:
2440
+ # limits:
2441
+ # - name: apiWriteQpsPerProject
2442
+ # metric: library.googleapis.com/write_calls
2443
+ # unit: "1/min/`project`" # rate limit for consumer projects
2444
+ # values:
2445
+ # STANDARD: 10000
2446
+ # # The metric rules bind all methods to the read_calls metric,
2447
+ # # except for the UpdateBook and DeleteBook methods. These two methods
2448
+ # # are mapped to the write_calls metric, with the UpdateBook method
2449
+ # # consuming at twice rate as the DeleteBook method.
2450
+ # metric_rules:
2451
+ # - selector: "*"
2452
+ # metric_costs:
2453
+ # library.googleapis.com/read_calls: 1
2454
+ # - selector: google.example.library.v1.LibraryService.UpdateBook
2455
+ # metric_costs:
2456
+ # library.googleapis.com/write_calls: 2
2457
+ # - selector: google.example.library.v1.LibraryService.DeleteBook
2458
+ # metric_costs:
2459
+ # library.googleapis.com/write_calls: 1
2460
+ # Corresponding Metric definition:
2461
+ # metrics:
2462
+ # - name: library.googleapis.com/read_calls
2463
+ # display_name: Read requests
2464
+ # metric_kind: DELTA
2465
+ # value_type: INT64
2466
+ # - name: library.googleapis.com/write_calls
2467
+ # display_name: Write requests
2468
+ # metric_kind: DELTA
2469
+ # value_type: INT64
2470
+ class Quota
2471
+ include Google::Apis::Core::Hashable
2472
+
2473
+ # List of `QuotaLimit` definitions for the service.
2474
+ # Corresponds to the JSON property `limits`
2475
+ # @return [Array<Google::Apis::ServiceconsumermanagementV1beta1::QuotaLimit>]
2476
+ attr_accessor :limits
2477
+
2478
+ # List of `MetricRule` definitions, each one mapping a selected method to one
2479
+ # or more metrics.
2480
+ # Corresponds to the JSON property `metricRules`
2481
+ # @return [Array<Google::Apis::ServiceconsumermanagementV1beta1::MetricRule>]
2482
+ attr_accessor :metric_rules
2483
+
2484
+ def initialize(**args)
2485
+ update!(**args)
2486
+ end
2487
+
2488
+ # Update properties of this object
2489
+ def update!(**args)
2490
+ @limits = args[:limits] if args.key?(:limits)
2491
+ @metric_rules = args[:metric_rules] if args.key?(:metric_rules)
2492
+ end
2493
+ end
2494
+
2495
+ # `QuotaLimit` defines a specific limit that applies over a specified duration
2496
+ # for a limit type. There can be at most one limit for a duration and limit
2497
+ # type combination defined within a `QuotaGroup`.
2498
+ class QuotaLimit
2499
+ include Google::Apis::Core::Hashable
2500
+
2501
+ # Default number of tokens that can be consumed during the specified
2502
+ # duration. This is the number of tokens assigned when a client
2503
+ # application developer activates the service for his/her project.
2504
+ # Specifying a value of 0 will block all requests. This can be used if you
2505
+ # are provisioning quota to selected consumers and blocking others.
2506
+ # Similarly, a value of -1 will indicate an unlimited quota. No other
2507
+ # negative values are allowed.
2508
+ # Used by group-based quotas only.
2509
+ # Corresponds to the JSON property `defaultLimit`
2510
+ # @return [Fixnum]
2511
+ attr_accessor :default_limit
2512
+
2513
+ # Optional. User-visible, extended description for this quota limit.
2514
+ # Should be used only when more context is needed to understand this limit
2515
+ # than provided by the limit's display name (see: `display_name`).
2516
+ # Corresponds to the JSON property `description`
2517
+ # @return [String]
2518
+ attr_accessor :description
2519
+
2520
+ # User-visible display name for this limit.
2521
+ # Optional. If not set, the UI will provide a default display name based on
2522
+ # the quota configuration. This field can be used to override the default
2523
+ # display name generated from the configuration.
2524
+ # Corresponds to the JSON property `displayName`
2525
+ # @return [String]
2526
+ attr_accessor :display_name
2527
+
2528
+ # Duration of this limit in textual notation. Must be "100s" or "1d".
2529
+ # Used by group-based quotas only.
2530
+ # Corresponds to the JSON property `duration`
2531
+ # @return [String]
2532
+ attr_accessor :duration
2533
+
2534
+ # Free tier value displayed in the Developers Console for this limit.
2535
+ # The free tier is the number of tokens that will be subtracted from the
2536
+ # billed amount when billing is enabled.
2537
+ # This field can only be set on a limit with duration "1d", in a billable
2538
+ # group; it is invalid on any other limit. If this field is not set, it
2539
+ # defaults to 0, indicating that there is no free tier for this service.
2540
+ # Used by group-based quotas only.
2541
+ # Corresponds to the JSON property `freeTier`
2542
+ # @return [Fixnum]
2543
+ attr_accessor :free_tier
2544
+
2545
+ # Maximum number of tokens that can be consumed during the specified
2546
+ # duration. Client application developers can override the default limit up
2547
+ # to this maximum. If specified, this value cannot be set to a value less
2548
+ # than the default limit. If not specified, it is set to the default limit.
2549
+ # To allow clients to apply overrides with no upper bound, set this to -1,
2550
+ # indicating unlimited maximum quota.
2551
+ # Used by group-based quotas only.
2552
+ # Corresponds to the JSON property `maxLimit`
2553
+ # @return [Fixnum]
2554
+ attr_accessor :max_limit
2555
+
2556
+ # The name of the metric this quota limit applies to. The quota limits with
2557
+ # the same metric will be checked together during runtime. The metric must be
2558
+ # defined within the service config.
2559
+ # Corresponds to the JSON property `metric`
2560
+ # @return [String]
2561
+ attr_accessor :metric
2562
+
2563
+ # Name of the quota limit.
2564
+ # The name must be provided, and it must be unique within the service. The
2565
+ # name can only include alphanumeric characters as well as '-'.
2566
+ # The maximum length of the limit name is 64 characters.
2567
+ # Corresponds to the JSON property `name`
2568
+ # @return [String]
2569
+ attr_accessor :name
2570
+
2571
+ # Specify the unit of the quota limit. It uses the same syntax as
2572
+ # Metric.unit. The supported unit kinds are determined by the quota
2573
+ # backend system.
2574
+ # Here are some examples:
2575
+ # * "1/min/`project`" for quota per minute per project.
2576
+ # Note: the order of unit components is insignificant.
2577
+ # The "1" at the beginning is required to follow the metric unit syntax.
2578
+ # Corresponds to the JSON property `unit`
2579
+ # @return [String]
2580
+ attr_accessor :unit
2581
+
2582
+ # Tiered limit values. You must specify this as a key:value pair, with an
2583
+ # integer value that is the maximum number of requests allowed for the
2584
+ # specified unit. Currently only STANDARD is supported.
2585
+ # Corresponds to the JSON property `values`
2586
+ # @return [Hash<String,Fixnum>]
2587
+ attr_accessor :values
2588
+
2589
+ def initialize(**args)
2590
+ update!(**args)
2591
+ end
2592
+
2593
+ # Update properties of this object
2594
+ def update!(**args)
2595
+ @default_limit = args[:default_limit] if args.key?(:default_limit)
2596
+ @description = args[:description] if args.key?(:description)
2597
+ @display_name = args[:display_name] if args.key?(:display_name)
2598
+ @duration = args[:duration] if args.key?(:duration)
2599
+ @free_tier = args[:free_tier] if args.key?(:free_tier)
2600
+ @max_limit = args[:max_limit] if args.key?(:max_limit)
2601
+ @metric = args[:metric] if args.key?(:metric)
2602
+ @name = args[:name] if args.key?(:name)
2603
+ @unit = args[:unit] if args.key?(:unit)
2604
+ @values = args[:values] if args.key?(:values)
2605
+ end
2606
+ end
2607
+
2608
+ # `Service` is the root object of Google service configuration schema. It
2609
+ # describes basic information about a service, such as the name and the
2610
+ # title, and delegates other aspects to sub-sections. Each sub-section is
2611
+ # either a proto message or a repeated proto message that configures a
2612
+ # specific aspect, such as auth. See each proto message definition for details.
2613
+ # Example:
2614
+ # type: google.api.Service
2615
+ # config_version: 3
2616
+ # name: calendar.googleapis.com
2617
+ # title: Google Calendar API
2618
+ # apis:
2619
+ # - name: google.calendar.v3.Calendar
2620
+ # authentication:
2621
+ # providers:
2622
+ # - id: google_calendar_auth
2623
+ # jwks_uri: https://www.googleapis.com/oauth2/v1/certs
2624
+ # issuer: https://securetoken.google.com
2625
+ # rules:
2626
+ # - selector: "*"
2627
+ # requirements:
2628
+ # provider_id: google_calendar_auth
2629
+ class Service
2630
+ include Google::Apis::Core::Hashable
2631
+
2632
+ # A list of API interfaces exported by this service. Only the `name` field
2633
+ # of the google.protobuf.Api needs to be provided by the configuration
2634
+ # author, as the remaining fields will be derived from the IDL during the
2635
+ # normalization process. It is an error to specify an API interface here
2636
+ # which cannot be resolved against the associated IDL files.
2637
+ # Corresponds to the JSON property `apis`
2638
+ # @return [Array<Google::Apis::ServiceconsumermanagementV1beta1::Api>]
2639
+ attr_accessor :apis
2640
+
2641
+ # `Authentication` defines the authentication configuration for an API.
2642
+ # Example for an API targeted for external use:
2643
+ # name: calendar.googleapis.com
2644
+ # authentication:
2645
+ # providers:
2646
+ # - id: google_calendar_auth
2647
+ # jwks_uri: https://www.googleapis.com/oauth2/v1/certs
2648
+ # issuer: https://securetoken.google.com
2649
+ # rules:
2650
+ # - selector: "*"
2651
+ # requirements:
2652
+ # provider_id: google_calendar_auth
2653
+ # Corresponds to the JSON property `authentication`
2654
+ # @return [Google::Apis::ServiceconsumermanagementV1beta1::Authentication]
2655
+ attr_accessor :authentication
2656
+
2657
+ # `Backend` defines the backend configuration for a service.
2658
+ # Corresponds to the JSON property `backend`
2659
+ # @return [Google::Apis::ServiceconsumermanagementV1beta1::Backend]
2660
+ attr_accessor :backend
2661
+
2662
+ # Billing related configuration of the service.
2663
+ # The following example shows how to configure monitored resources and metrics
2664
+ # for billing, `consumer_destinations` is the only supported destination and
2665
+ # the monitored resources need at least one label key
2666
+ # `cloud.googleapis.com/location` to indicate the location of the billing
2667
+ # usage, using different monitored resources between monitoring and billing is
2668
+ # recommended so they can be evolved independently:
2669
+ # monitored_resources:
2670
+ # - type: library.googleapis.com/billing_branch
2671
+ # labels:
2672
+ # - key: cloud.googleapis.com/location
2673
+ # description: |
2674
+ # Predefined label to support billing location restriction.
2675
+ # - key: city
2676
+ # description: |
2677
+ # Custom label to define the city where the library branch is located
2678
+ # in.
2679
+ # - key: name
2680
+ # description: Custom label to define the name of the library branch.
2681
+ # metrics:
2682
+ # - name: library.googleapis.com/book/borrowed_count
2683
+ # metric_kind: DELTA
2684
+ # value_type: INT64
2685
+ # unit: "1"
2686
+ # billing:
2687
+ # consumer_destinations:
2688
+ # - monitored_resource: library.googleapis.com/billing_branch
2689
+ # metrics:
2690
+ # - library.googleapis.com/book/borrowed_count
2691
+ # Corresponds to the JSON property `billing`
2692
+ # @return [Google::Apis::ServiceconsumermanagementV1beta1::Billing]
2693
+ attr_accessor :billing
2694
+
2695
+ # The semantic version of the service configuration. The config version
2696
+ # affects the interpretation of the service configuration. For example,
2697
+ # certain features are enabled by default for certain config versions.
2698
+ # The latest config version is `3`.
2699
+ # Corresponds to the JSON property `configVersion`
2700
+ # @return [Fixnum]
2701
+ attr_accessor :config_version
2702
+
2703
+ # `Context` defines which contexts an API requests.
2704
+ # Example:
2705
+ # context:
2706
+ # rules:
2707
+ # - selector: "*"
2708
+ # requested:
2709
+ # - google.rpc.context.ProjectContext
2710
+ # - google.rpc.context.OriginContext
2711
+ # The above specifies that all methods in the API request
2712
+ # `google.rpc.context.ProjectContext` and
2713
+ # `google.rpc.context.OriginContext`.
2714
+ # Available context types are defined in package
2715
+ # `google.rpc.context`.
2716
+ # This also provides mechanism to whitelist any protobuf message extension that
2717
+ # can be sent in grpc metadata using “x-goog-ext-<extension_id>-bin” and
2718
+ # “x-goog-ext-<extension_id>-jspb” format. For example, list any service
2719
+ # specific protobuf types that can appear in grpc metadata as follows in your
2720
+ # yaml file:
2721
+ # Example:
2722
+ # context:
2723
+ # rules:
2724
+ # - selector: "google.example.library.v1.LibraryService.CreateBook"
2725
+ # allowed_request_extensions:
2726
+ # - google.foo.v1.NewExtension
2727
+ # allowed_response_extensions:
2728
+ # - google.foo.v1.NewExtension
2729
+ # You can also specify extension ID instead of fully qualified extension name
2730
+ # here.
2731
+ # Corresponds to the JSON property `context`
2732
+ # @return [Google::Apis::ServiceconsumermanagementV1beta1::Context]
2733
+ attr_accessor :context
2734
+
2735
+ # Selects and configures the service controller used by the service. The
2736
+ # service controller handles features like abuse, quota, billing, logging,
2737
+ # monitoring, etc.
2738
+ # Corresponds to the JSON property `control`
2739
+ # @return [Google::Apis::ServiceconsumermanagementV1beta1::Control]
2740
+ attr_accessor :control
2741
+
2742
+ # Customize service error responses. For example, list any service
2743
+ # specific protobuf types that can appear in error detail lists of
2744
+ # error responses.
2745
+ # Example:
2746
+ # custom_error:
2747
+ # types:
2748
+ # - google.foo.v1.CustomError
2749
+ # - google.foo.v1.AnotherError
2750
+ # Corresponds to the JSON property `customError`
2751
+ # @return [Google::Apis::ServiceconsumermanagementV1beta1::CustomError]
2752
+ attr_accessor :custom_error
2753
+
2754
+ # `Documentation` provides the information for describing a service.
2755
+ # Example:
2756
+ # <pre><code>documentation:
2757
+ # summary: >
2758
+ # The Google Calendar API gives access
2759
+ # to most calendar features.
2760
+ # pages:
2761
+ # - name: Overview
2762
+ # content: &#40;== include google/foo/overview.md ==&#41;
2763
+ # - name: Tutorial
2764
+ # content: &#40;== include google/foo/tutorial.md ==&#41;
2765
+ # subpages;
2766
+ # - name: Java
2767
+ # content: &#40;== include google/foo/tutorial_java.md ==&#41;
2768
+ # rules:
2769
+ # - selector: google.calendar.Calendar.Get
2770
+ # description: >
2771
+ # ...
2772
+ # - selector: google.calendar.Calendar.Put
2773
+ # description: >
2774
+ # ...
2775
+ # </code></pre>
2776
+ # Documentation is provided in markdown syntax. In addition to
2777
+ # standard markdown features, definition lists, tables and fenced
2778
+ # code blocks are supported. Section headers can be provided and are
2779
+ # interpreted relative to the section nesting of the context where
2780
+ # a documentation fragment is embedded.
2781
+ # Documentation from the IDL is merged with documentation defined
2782
+ # via the config at normalization time, where documentation provided
2783
+ # by config rules overrides IDL provided.
2784
+ # A number of constructs specific to the API platform are supported
2785
+ # in documentation text.
2786
+ # In order to reference a proto element, the following
2787
+ # notation can be used:
2788
+ # <pre><code>&#91;fully.qualified.proto.name]&#91;]</code></pre>
2789
+ # To override the display text used for the link, this can be used:
2790
+ # <pre><code>&#91;display text]&#91;fully.qualified.proto.name]</code></pre>
2791
+ # Text can be excluded from doc using the following notation:
2792
+ # <pre><code>&#40;-- internal comment --&#41;</code></pre>
2793
+ # A few directives are available in documentation. Note that
2794
+ # directives must appear on a single line to be properly
2795
+ # identified. The `include` directive includes a markdown file from
2796
+ # an external source:
2797
+ # <pre><code>&#40;== include path/to/file ==&#41;</code></pre>
2798
+ # The `resource_for` directive marks a message to be the resource of
2799
+ # a collection in REST view. If it is not specified, tools attempt
2800
+ # to infer the resource from the operations in a collection:
2801
+ # <pre><code>&#40;== resource_for v1.shelves.books ==&#41;</code></pre>
2802
+ # The directive `suppress_warning` does not directly affect documentation
2803
+ # and is documented together with service config validation.
2804
+ # Corresponds to the JSON property `documentation`
2805
+ # @return [Google::Apis::ServiceconsumermanagementV1beta1::Documentation]
2806
+ attr_accessor :documentation
2807
+
2808
+ # Configuration for network endpoints. If this is empty, then an endpoint
2809
+ # with the same name as the service is automatically generated to service all
2810
+ # defined APIs.
2811
+ # Corresponds to the JSON property `endpoints`
2812
+ # @return [Array<Google::Apis::ServiceconsumermanagementV1beta1::Endpoint>]
2813
+ attr_accessor :endpoints
2814
+
2815
+ # A list of all enum types included in this API service. Enums
2816
+ # referenced directly or indirectly by the `apis` are automatically
2817
+ # included. Enums which are not referenced but shall be included
2818
+ # should be listed here by name. Example:
2819
+ # enums:
2820
+ # - name: google.someapi.v1.SomeEnum
2821
+ # Corresponds to the JSON property `enums`
2822
+ # @return [Array<Google::Apis::ServiceconsumermanagementV1beta1::Enum>]
2823
+ attr_accessor :enums
2824
+
2825
+ # Defines the HTTP configuration for an API service. It contains a list of
2826
+ # HttpRule, each specifying the mapping of an RPC method
2827
+ # to one or more HTTP REST API methods.
2828
+ # Corresponds to the JSON property `http`
2829
+ # @return [Google::Apis::ServiceconsumermanagementV1beta1::Http]
2830
+ attr_accessor :http
2831
+
2832
+ # A unique ID for a specific instance of this message, typically assigned
2833
+ # by the client for tracking purpose. Must be no longer than 63 characters
2834
+ # and only lower case letters, digits, '.', '_' and '-' are allowed. If
2835
+ # empty, the server may choose to generate one instead.
2836
+ # Corresponds to the JSON property `id`
2837
+ # @return [String]
2838
+ attr_accessor :id
2839
+
2840
+ # Logging configuration of the service.
2841
+ # The following example shows how to configure logs to be sent to the
2842
+ # producer and consumer projects. In the example, the `activity_history`
2843
+ # log is sent to both the producer and consumer projects, whereas the
2844
+ # `purchase_history` log is only sent to the producer project.
2845
+ # monitored_resources:
2846
+ # - type: library.googleapis.com/branch
2847
+ # labels:
2848
+ # - key: /city
2849
+ # description: The city where the library branch is located in.
2850
+ # - key: /name
2851
+ # description: The name of the branch.
2852
+ # logs:
2853
+ # - name: activity_history
2854
+ # labels:
2855
+ # - key: /customer_id
2856
+ # - name: purchase_history
2857
+ # logging:
2858
+ # producer_destinations:
2859
+ # - monitored_resource: library.googleapis.com/branch
2860
+ # logs:
2861
+ # - activity_history
2862
+ # - purchase_history
2863
+ # consumer_destinations:
2864
+ # - monitored_resource: library.googleapis.com/branch
2865
+ # logs:
2866
+ # - activity_history
2867
+ # Corresponds to the JSON property `logging`
2868
+ # @return [Google::Apis::ServiceconsumermanagementV1beta1::Logging]
2869
+ attr_accessor :logging
2870
+
2871
+ # Defines the logs used by this service.
2872
+ # Corresponds to the JSON property `logs`
2873
+ # @return [Array<Google::Apis::ServiceconsumermanagementV1beta1::LogDescriptor>]
2874
+ attr_accessor :logs
2875
+
2876
+ # Defines the metrics used by this service.
2877
+ # Corresponds to the JSON property `metrics`
2878
+ # @return [Array<Google::Apis::ServiceconsumermanagementV1beta1::MetricDescriptor>]
2879
+ attr_accessor :metrics
2880
+
2881
+ # Defines the monitored resources used by this service. This is required
2882
+ # by the Service.monitoring and Service.logging configurations.
2883
+ # Corresponds to the JSON property `monitoredResources`
2884
+ # @return [Array<Google::Apis::ServiceconsumermanagementV1beta1::MonitoredResourceDescriptor>]
2885
+ attr_accessor :monitored_resources
2886
+
2887
+ # Monitoring configuration of the service.
2888
+ # The example below shows how to configure monitored resources and metrics
2889
+ # for monitoring. In the example, a monitored resource and two metrics are
2890
+ # defined. The `library.googleapis.com/book/returned_count` metric is sent
2891
+ # to both producer and consumer projects, whereas the
2892
+ # `library.googleapis.com/book/overdue_count` metric is only sent to the
2893
+ # consumer project.
2894
+ # monitored_resources:
2895
+ # - type: library.googleapis.com/branch
2896
+ # labels:
2897
+ # - key: /city
2898
+ # description: The city where the library branch is located in.
2899
+ # - key: /name
2900
+ # description: The name of the branch.
2901
+ # metrics:
2902
+ # - name: library.googleapis.com/book/returned_count
2903
+ # metric_kind: DELTA
2904
+ # value_type: INT64
2905
+ # labels:
2906
+ # - key: /customer_id
2907
+ # - name: library.googleapis.com/book/overdue_count
2908
+ # metric_kind: GAUGE
2909
+ # value_type: INT64
2910
+ # labels:
2911
+ # - key: /customer_id
2912
+ # monitoring:
2913
+ # producer_destinations:
2914
+ # - monitored_resource: library.googleapis.com/branch
2915
+ # metrics:
2916
+ # - library.googleapis.com/book/returned_count
2917
+ # consumer_destinations:
2918
+ # - monitored_resource: library.googleapis.com/branch
2919
+ # metrics:
2920
+ # - library.googleapis.com/book/returned_count
2921
+ # - library.googleapis.com/book/overdue_count
2922
+ # Corresponds to the JSON property `monitoring`
2923
+ # @return [Google::Apis::ServiceconsumermanagementV1beta1::Monitoring]
2924
+ attr_accessor :monitoring
2925
+
2926
+ # The service name, which is a DNS-like logical identifier for the
2927
+ # service, such as `calendar.googleapis.com`. The service name
2928
+ # typically goes through DNS verification to make sure the owner
2929
+ # of the service also owns the DNS name.
2930
+ # Corresponds to the JSON property `name`
2931
+ # @return [String]
2932
+ attr_accessor :name
2933
+
2934
+ # The Google project that owns this service.
2935
+ # Corresponds to the JSON property `producerProjectId`
2936
+ # @return [String]
2937
+ attr_accessor :producer_project_id
2938
+
2939
+ # Quota configuration helps to achieve fairness and budgeting in service
2940
+ # usage.
2941
+ # The metric based quota configuration works this way:
2942
+ # - The service configuration defines a set of metrics.
2943
+ # - For API calls, the quota.metric_rules maps methods to metrics with
2944
+ # corresponding costs.
2945
+ # - The quota.limits defines limits on the metrics, which will be used for
2946
+ # quota checks at runtime.
2947
+ # An example quota configuration in yaml format:
2948
+ # quota:
2949
+ # limits:
2950
+ # - name: apiWriteQpsPerProject
2951
+ # metric: library.googleapis.com/write_calls
2952
+ # unit: "1/min/`project`" # rate limit for consumer projects
2953
+ # values:
2954
+ # STANDARD: 10000
2955
+ # # The metric rules bind all methods to the read_calls metric,
2956
+ # # except for the UpdateBook and DeleteBook methods. These two methods
2957
+ # # are mapped to the write_calls metric, with the UpdateBook method
2958
+ # # consuming at twice rate as the DeleteBook method.
2959
+ # metric_rules:
2960
+ # - selector: "*"
2961
+ # metric_costs:
2962
+ # library.googleapis.com/read_calls: 1
2963
+ # - selector: google.example.library.v1.LibraryService.UpdateBook
2964
+ # metric_costs:
2965
+ # library.googleapis.com/write_calls: 2
2966
+ # - selector: google.example.library.v1.LibraryService.DeleteBook
2967
+ # metric_costs:
2968
+ # library.googleapis.com/write_calls: 1
2969
+ # Corresponding Metric definition:
2970
+ # metrics:
2971
+ # - name: library.googleapis.com/read_calls
2972
+ # display_name: Read requests
2973
+ # metric_kind: DELTA
2974
+ # value_type: INT64
2975
+ # - name: library.googleapis.com/write_calls
2976
+ # display_name: Write requests
2977
+ # metric_kind: DELTA
2978
+ # value_type: INT64
2979
+ # Corresponds to the JSON property `quota`
2980
+ # @return [Google::Apis::ServiceconsumermanagementV1beta1::Quota]
2981
+ attr_accessor :quota
2982
+
2983
+ # Source information used to create a Service Config
2984
+ # Corresponds to the JSON property `sourceInfo`
2985
+ # @return [Google::Apis::ServiceconsumermanagementV1beta1::SourceInfo]
2986
+ attr_accessor :source_info
2987
+
2988
+ # ### System parameter configuration
2989
+ # A system parameter is a special kind of parameter defined by the API
2990
+ # system, not by an individual API. It is typically mapped to an HTTP header
2991
+ # and/or a URL query parameter. This configuration specifies which methods
2992
+ # change the names of the system parameters.
2993
+ # Corresponds to the JSON property `systemParameters`
2994
+ # @return [Google::Apis::ServiceconsumermanagementV1beta1::SystemParameters]
2995
+ attr_accessor :system_parameters
2996
+
2997
+ # A list of all proto message types included in this API service.
2998
+ # It serves similar purpose as [google.api.Service.types], except that
2999
+ # these types are not needed by user-defined APIs. Therefore, they will not
3000
+ # show up in the generated discovery doc. This field should only be used
3001
+ # to define system APIs in ESF.
3002
+ # Corresponds to the JSON property `systemTypes`
3003
+ # @return [Array<Google::Apis::ServiceconsumermanagementV1beta1::Type>]
3004
+ attr_accessor :system_types
3005
+
3006
+ # The product title for this service.
3007
+ # Corresponds to the JSON property `title`
3008
+ # @return [String]
3009
+ attr_accessor :title
3010
+
3011
+ # A list of all proto message types included in this API service.
3012
+ # Types referenced directly or indirectly by the `apis` are
3013
+ # automatically included. Messages which are not referenced but
3014
+ # shall be included, such as types used by the `google.protobuf.Any` type,
3015
+ # should be listed here by name. Example:
3016
+ # types:
3017
+ # - name: google.protobuf.Int32
3018
+ # Corresponds to the JSON property `types`
3019
+ # @return [Array<Google::Apis::ServiceconsumermanagementV1beta1::Type>]
3020
+ attr_accessor :types
3021
+
3022
+ # Configuration controlling usage of a service.
3023
+ # Corresponds to the JSON property `usage`
3024
+ # @return [Google::Apis::ServiceconsumermanagementV1beta1::Usage]
3025
+ attr_accessor :usage
3026
+
3027
+ def initialize(**args)
3028
+ update!(**args)
3029
+ end
3030
+
3031
+ # Update properties of this object
3032
+ def update!(**args)
3033
+ @apis = args[:apis] if args.key?(:apis)
3034
+ @authentication = args[:authentication] if args.key?(:authentication)
3035
+ @backend = args[:backend] if args.key?(:backend)
3036
+ @billing = args[:billing] if args.key?(:billing)
3037
+ @config_version = args[:config_version] if args.key?(:config_version)
3038
+ @context = args[:context] if args.key?(:context)
3039
+ @control = args[:control] if args.key?(:control)
3040
+ @custom_error = args[:custom_error] if args.key?(:custom_error)
3041
+ @documentation = args[:documentation] if args.key?(:documentation)
3042
+ @endpoints = args[:endpoints] if args.key?(:endpoints)
3043
+ @enums = args[:enums] if args.key?(:enums)
3044
+ @http = args[:http] if args.key?(:http)
3045
+ @id = args[:id] if args.key?(:id)
3046
+ @logging = args[:logging] if args.key?(:logging)
3047
+ @logs = args[:logs] if args.key?(:logs)
3048
+ @metrics = args[:metrics] if args.key?(:metrics)
3049
+ @monitored_resources = args[:monitored_resources] if args.key?(:monitored_resources)
3050
+ @monitoring = args[:monitoring] if args.key?(:monitoring)
3051
+ @name = args[:name] if args.key?(:name)
3052
+ @producer_project_id = args[:producer_project_id] if args.key?(:producer_project_id)
3053
+ @quota = args[:quota] if args.key?(:quota)
3054
+ @source_info = args[:source_info] if args.key?(:source_info)
3055
+ @system_parameters = args[:system_parameters] if args.key?(:system_parameters)
3056
+ @system_types = args[:system_types] if args.key?(:system_types)
3057
+ @title = args[:title] if args.key?(:title)
3058
+ @types = args[:types] if args.key?(:types)
3059
+ @usage = args[:usage] if args.key?(:usage)
3060
+ end
3061
+ end
3062
+
3063
+ # The per-product per-project service identity for a service.
3064
+ # Use this field to configure per-product per-project service identity.
3065
+ # Example of a service identity configuration.
3066
+ # usage:
3067
+ # service_identity:
3068
+ # - service_account_parent: "projects/123456789"
3069
+ # display_name: "Cloud XXX Service Agent"
3070
+ # description: "Used as the identity of Cloud XXX to access resources"
3071
+ class ServiceIdentity
3072
+ include Google::Apis::Core::Hashable
3073
+
3074
+ # Optional. A user-specified opaque description of the service account.
3075
+ # Must be less than or equal to 256 UTF-8 bytes.
3076
+ # Corresponds to the JSON property `description`
3077
+ # @return [String]
3078
+ attr_accessor :description
3079
+
3080
+ # Optional. A user-specified name for the service account.
3081
+ # Must be less than or equal to 100 UTF-8 bytes.
3082
+ # Corresponds to the JSON property `displayName`
3083
+ # @return [String]
3084
+ attr_accessor :display_name
3085
+
3086
+ # A service account project that hosts the service accounts.
3087
+ # An example name would be:
3088
+ # `projects/123456789`
3089
+ # Corresponds to the JSON property `serviceAccountParent`
3090
+ # @return [String]
3091
+ attr_accessor :service_account_parent
3092
+
3093
+ def initialize(**args)
3094
+ update!(**args)
3095
+ end
3096
+
3097
+ # Update properties of this object
3098
+ def update!(**args)
3099
+ @description = args[:description] if args.key?(:description)
3100
+ @display_name = args[:display_name] if args.key?(:display_name)
3101
+ @service_account_parent = args[:service_account_parent] if args.key?(:service_account_parent)
3102
+ end
3103
+ end
3104
+
3105
+ # `SourceContext` represents information about the source of a
3106
+ # protobuf element, like the file in which it is defined.
3107
+ class SourceContext
3108
+ include Google::Apis::Core::Hashable
3109
+
3110
+ # The path-qualified name of the .proto file that contained the associated
3111
+ # protobuf element. For example: `"google/protobuf/source_context.proto"`.
3112
+ # Corresponds to the JSON property `fileName`
3113
+ # @return [String]
3114
+ attr_accessor :file_name
3115
+
3116
+ def initialize(**args)
3117
+ update!(**args)
3118
+ end
3119
+
3120
+ # Update properties of this object
3121
+ def update!(**args)
3122
+ @file_name = args[:file_name] if args.key?(:file_name)
3123
+ end
3124
+ end
3125
+
3126
+ # Source information used to create a Service Config
3127
+ class SourceInfo
3128
+ include Google::Apis::Core::Hashable
3129
+
3130
+ # All files used during config generation.
3131
+ # Corresponds to the JSON property `sourceFiles`
3132
+ # @return [Array<Hash<String,Object>>]
3133
+ attr_accessor :source_files
3134
+
3135
+ def initialize(**args)
3136
+ update!(**args)
3137
+ end
3138
+
3139
+ # Update properties of this object
3140
+ def update!(**args)
3141
+ @source_files = args[:source_files] if args.key?(:source_files)
3142
+ end
3143
+ end
3144
+
3145
+ # The `Status` type defines a logical error model that is suitable for
3146
+ # different programming environments, including REST APIs and RPC APIs. It is
3147
+ # used by [gRPC](https://github.com/grpc). Each `Status` message contains
3148
+ # three pieces of data: error code, error message, and error details.
3149
+ # You can find out more about this error model and how to work with it in the
3150
+ # [API Design Guide](https://cloud.google.com/apis/design/errors).
3151
+ class Status
3152
+ include Google::Apis::Core::Hashable
3153
+
3154
+ # The status code, which should be an enum value of google.rpc.Code.
3155
+ # Corresponds to the JSON property `code`
3156
+ # @return [Fixnum]
3157
+ attr_accessor :code
3158
+
3159
+ # A list of messages that carry the error details. There is a common set of
3160
+ # message types for APIs to use.
3161
+ # Corresponds to the JSON property `details`
3162
+ # @return [Array<Hash<String,Object>>]
3163
+ attr_accessor :details
3164
+
3165
+ # A developer-facing error message, which should be in English. Any
3166
+ # user-facing error message should be localized and sent in the
3167
+ # google.rpc.Status.details field, or localized by the client.
3168
+ # Corresponds to the JSON property `message`
3169
+ # @return [String]
3170
+ attr_accessor :message
3171
+
3172
+ def initialize(**args)
3173
+ update!(**args)
3174
+ end
3175
+
3176
+ # Update properties of this object
3177
+ def update!(**args)
3178
+ @code = args[:code] if args.key?(:code)
3179
+ @details = args[:details] if args.key?(:details)
3180
+ @message = args[:message] if args.key?(:message)
3181
+ end
3182
+ end
3183
+
3184
+ # Define a parameter's name and location. The parameter may be passed as either
3185
+ # an HTTP header or a URL query parameter, and if both are passed the behavior
3186
+ # is implementation-dependent.
3187
+ class SystemParameter
3188
+ include Google::Apis::Core::Hashable
3189
+
3190
+ # Define the HTTP header name to use for the parameter. It is case
3191
+ # insensitive.
3192
+ # Corresponds to the JSON property `httpHeader`
3193
+ # @return [String]
3194
+ attr_accessor :http_header
3195
+
3196
+ # Define the name of the parameter, such as "api_key" . It is case sensitive.
3197
+ # Corresponds to the JSON property `name`
3198
+ # @return [String]
3199
+ attr_accessor :name
3200
+
3201
+ # Define the URL query parameter name to use for the parameter. It is case
3202
+ # sensitive.
3203
+ # Corresponds to the JSON property `urlQueryParameter`
3204
+ # @return [String]
3205
+ attr_accessor :url_query_parameter
3206
+
3207
+ def initialize(**args)
3208
+ update!(**args)
3209
+ end
3210
+
3211
+ # Update properties of this object
3212
+ def update!(**args)
3213
+ @http_header = args[:http_header] if args.key?(:http_header)
3214
+ @name = args[:name] if args.key?(:name)
3215
+ @url_query_parameter = args[:url_query_parameter] if args.key?(:url_query_parameter)
3216
+ end
3217
+ end
3218
+
3219
+ # Define a system parameter rule mapping system parameter definitions to
3220
+ # methods.
3221
+ class SystemParameterRule
3222
+ include Google::Apis::Core::Hashable
3223
+
3224
+ # Define parameters. Multiple names may be defined for a parameter.
3225
+ # For a given method call, only one of them should be used. If multiple
3226
+ # names are used the behavior is implementation-dependent.
3227
+ # If none of the specified names are present the behavior is
3228
+ # parameter-dependent.
3229
+ # Corresponds to the JSON property `parameters`
3230
+ # @return [Array<Google::Apis::ServiceconsumermanagementV1beta1::SystemParameter>]
3231
+ attr_accessor :parameters
3232
+
3233
+ # Selects the methods to which this rule applies. Use '*' to indicate all
3234
+ # methods in all APIs.
3235
+ # Refer to selector for syntax details.
3236
+ # Corresponds to the JSON property `selector`
3237
+ # @return [String]
3238
+ attr_accessor :selector
3239
+
3240
+ def initialize(**args)
3241
+ update!(**args)
3242
+ end
3243
+
3244
+ # Update properties of this object
3245
+ def update!(**args)
3246
+ @parameters = args[:parameters] if args.key?(:parameters)
3247
+ @selector = args[:selector] if args.key?(:selector)
3248
+ end
3249
+ end
3250
+
3251
+ # ### System parameter configuration
3252
+ # A system parameter is a special kind of parameter defined by the API
3253
+ # system, not by an individual API. It is typically mapped to an HTTP header
3254
+ # and/or a URL query parameter. This configuration specifies which methods
3255
+ # change the names of the system parameters.
3256
+ class SystemParameters
3257
+ include Google::Apis::Core::Hashable
3258
+
3259
+ # Define system parameters.
3260
+ # The parameters defined here will override the default parameters
3261
+ # implemented by the system. If this field is missing from the service
3262
+ # config, default system parameters will be used. Default system parameters
3263
+ # and names is implementation-dependent.
3264
+ # Example: define api key for all methods
3265
+ # system_parameters
3266
+ # rules:
3267
+ # - selector: "*"
3268
+ # parameters:
3269
+ # - name: api_key
3270
+ # url_query_parameter: api_key
3271
+ # Example: define 2 api key names for a specific method.
3272
+ # system_parameters
3273
+ # rules:
3274
+ # - selector: "/ListShelves"
3275
+ # parameters:
3276
+ # - name: api_key
3277
+ # http_header: Api-Key1
3278
+ # - name: api_key
3279
+ # http_header: Api-Key2
3280
+ # **NOTE:** All service configuration rules follow "last one wins" order.
3281
+ # Corresponds to the JSON property `rules`
3282
+ # @return [Array<Google::Apis::ServiceconsumermanagementV1beta1::SystemParameterRule>]
3283
+ attr_accessor :rules
3284
+
3285
+ def initialize(**args)
3286
+ update!(**args)
3287
+ end
3288
+
3289
+ # Update properties of this object
3290
+ def update!(**args)
3291
+ @rules = args[:rules] if args.key?(:rules)
3292
+ end
3293
+ end
3294
+
3295
+ # A protocol buffer message type.
3296
+ class Type
3297
+ include Google::Apis::Core::Hashable
3298
+
3299
+ # The list of fields.
3300
+ # Corresponds to the JSON property `fields`
3301
+ # @return [Array<Google::Apis::ServiceconsumermanagementV1beta1::Field>]
3302
+ attr_accessor :fields
3303
+
3304
+ # The fully qualified message name.
3305
+ # Corresponds to the JSON property `name`
3306
+ # @return [String]
3307
+ attr_accessor :name
3308
+
3309
+ # The list of types appearing in `oneof` definitions in this type.
3310
+ # Corresponds to the JSON property `oneofs`
3311
+ # @return [Array<String>]
3312
+ attr_accessor :oneofs
3313
+
3314
+ # The protocol buffer options.
3315
+ # Corresponds to the JSON property `options`
3316
+ # @return [Array<Google::Apis::ServiceconsumermanagementV1beta1::Option>]
3317
+ attr_accessor :options
3318
+
3319
+ # `SourceContext` represents information about the source of a
3320
+ # protobuf element, like the file in which it is defined.
3321
+ # Corresponds to the JSON property `sourceContext`
3322
+ # @return [Google::Apis::ServiceconsumermanagementV1beta1::SourceContext]
3323
+ attr_accessor :source_context
3324
+
3325
+ # The source syntax.
3326
+ # Corresponds to the JSON property `syntax`
3327
+ # @return [String]
3328
+ attr_accessor :syntax
3329
+
3330
+ def initialize(**args)
3331
+ update!(**args)
3332
+ end
3333
+
3334
+ # Update properties of this object
3335
+ def update!(**args)
3336
+ @fields = args[:fields] if args.key?(:fields)
3337
+ @name = args[:name] if args.key?(:name)
3338
+ @oneofs = args[:oneofs] if args.key?(:oneofs)
3339
+ @options = args[:options] if args.key?(:options)
3340
+ @source_context = args[:source_context] if args.key?(:source_context)
3341
+ @syntax = args[:syntax] if args.key?(:syntax)
3342
+ end
3343
+ end
3344
+
3345
+ # Configuration controlling usage of a service.
3346
+ class Usage
3347
+ include Google::Apis::Core::Hashable
3348
+
3349
+ # The full resource name of a channel used for sending notifications to the
3350
+ # service producer.
3351
+ # Google Service Management currently only supports
3352
+ # [Google Cloud Pub/Sub](https://cloud.google.com/pubsub) as a notification
3353
+ # channel. To use Google Cloud Pub/Sub as the channel, this must be the name
3354
+ # of a Cloud Pub/Sub topic that uses the Cloud Pub/Sub topic name format
3355
+ # documented in https://cloud.google.com/pubsub/docs/overview.
3356
+ # Corresponds to the JSON property `producerNotificationChannel`
3357
+ # @return [String]
3358
+ attr_accessor :producer_notification_channel
3359
+
3360
+ # Requirements that must be satisfied before a consumer project can use the
3361
+ # service. Each requirement is of the form <service.name>/<requirement-id>;
3362
+ # for example 'serviceusage.googleapis.com/billing-enabled'.
3363
+ # Corresponds to the JSON property `requirements`
3364
+ # @return [Array<String>]
3365
+ attr_accessor :requirements
3366
+
3367
+ # A list of usage rules that apply to individual API methods.
3368
+ # **NOTE:** All service configuration rules follow "last one wins" order.
3369
+ # Corresponds to the JSON property `rules`
3370
+ # @return [Array<Google::Apis::ServiceconsumermanagementV1beta1::UsageRule>]
3371
+ attr_accessor :rules
3372
+
3373
+ # The per-product per-project service identity for a service.
3374
+ # Use this field to configure per-product per-project service identity.
3375
+ # Example of a service identity configuration.
3376
+ # usage:
3377
+ # service_identity:
3378
+ # - service_account_parent: "projects/123456789"
3379
+ # display_name: "Cloud XXX Service Agent"
3380
+ # description: "Used as the identity of Cloud XXX to access resources"
3381
+ # Corresponds to the JSON property `serviceIdentity`
3382
+ # @return [Google::Apis::ServiceconsumermanagementV1beta1::ServiceIdentity]
3383
+ attr_accessor :service_identity
3384
+
3385
+ def initialize(**args)
3386
+ update!(**args)
3387
+ end
3388
+
3389
+ # Update properties of this object
3390
+ def update!(**args)
3391
+ @producer_notification_channel = args[:producer_notification_channel] if args.key?(:producer_notification_channel)
3392
+ @requirements = args[:requirements] if args.key?(:requirements)
3393
+ @rules = args[:rules] if args.key?(:rules)
3394
+ @service_identity = args[:service_identity] if args.key?(:service_identity)
3395
+ end
3396
+ end
3397
+
3398
+ # Usage configuration rules for the service.
3399
+ # NOTE: Under development.
3400
+ # Use this rule to configure unregistered calls for the service. Unregistered
3401
+ # calls are calls that do not contain consumer project identity.
3402
+ # (Example: calls that do not contain an API key).
3403
+ # By default, API methods do not allow unregistered calls, and each method call
3404
+ # must be identified by a consumer project identity. Use this rule to
3405
+ # allow/disallow unregistered calls.
3406
+ # Example of an API that wants to allow unregistered calls for entire service.
3407
+ # usage:
3408
+ # rules:
3409
+ # - selector: "*"
3410
+ # allow_unregistered_calls: true
3411
+ # Example of a method that wants to allow unregistered calls.
3412
+ # usage:
3413
+ # rules:
3414
+ # - selector: "google.example.library.v1.LibraryService.CreateBook"
3415
+ # allow_unregistered_calls: true
3416
+ class UsageRule
3417
+ include Google::Apis::Core::Hashable
3418
+
3419
+ # If true, the selected method allows unregistered calls, e.g. calls
3420
+ # that don't identify any user or application.
3421
+ # Corresponds to the JSON property `allowUnregisteredCalls`
3422
+ # @return [Boolean]
3423
+ attr_accessor :allow_unregistered_calls
3424
+ alias_method :allow_unregistered_calls?, :allow_unregistered_calls
3425
+
3426
+ # Selects the methods to which this rule applies. Use '*' to indicate all
3427
+ # methods in all APIs.
3428
+ # Refer to selector for syntax details.
3429
+ # Corresponds to the JSON property `selector`
3430
+ # @return [String]
3431
+ attr_accessor :selector
3432
+
3433
+ # If true, the selected method should skip service control and the control
3434
+ # plane features, such as quota and billing, will not be available.
3435
+ # This flag is used by Google Cloud Endpoints to bypass checks for internal
3436
+ # methods, such as service health check methods.
3437
+ # Corresponds to the JSON property `skipServiceControl`
3438
+ # @return [Boolean]
3439
+ attr_accessor :skip_service_control
3440
+ alias_method :skip_service_control?, :skip_service_control
3441
+
3442
+ def initialize(**args)
3443
+ update!(**args)
3444
+ end
3445
+
3446
+ # Update properties of this object
3447
+ def update!(**args)
3448
+ @allow_unregistered_calls = args[:allow_unregistered_calls] if args.key?(:allow_unregistered_calls)
3449
+ @selector = args[:selector] if args.key?(:selector)
3450
+ @skip_service_control = args[:skip_service_control] if args.key?(:skip_service_control)
3451
+ end
3452
+ end
3453
+
3454
+ # Response message for BatchCreateProducerOverrides
3455
+ class V1Beta1BatchCreateProducerOverridesResponse
3456
+ include Google::Apis::Core::Hashable
3457
+
3458
+ # The overrides that were created.
3459
+ # Corresponds to the JSON property `overrides`
3460
+ # @return [Array<Google::Apis::ServiceconsumermanagementV1beta1::V1Beta1QuotaOverride>]
3461
+ attr_accessor :overrides
3462
+
3463
+ def initialize(**args)
3464
+ update!(**args)
3465
+ end
3466
+
3467
+ # Update properties of this object
3468
+ def update!(**args)
3469
+ @overrides = args[:overrides] if args.key?(:overrides)
3470
+ end
3471
+ end
3472
+
3473
+ # Consumer quota settings for a quota limit.
3474
+ class V1Beta1ConsumerQuotaLimit
3475
+ include Google::Apis::Core::Hashable
3476
+
3477
+ # Whether this limit is precise or imprecise.
3478
+ # Corresponds to the JSON property `isPrecise`
3479
+ # @return [Boolean]
3480
+ attr_accessor :is_precise
3481
+ alias_method :is_precise?, :is_precise
3482
+
3483
+ # The name of the parent metric of this limit.
3484
+ # An example name would be:
3485
+ # `compute.googleapis.com/cpus`
3486
+ # Corresponds to the JSON property `metric`
3487
+ # @return [String]
3488
+ attr_accessor :metric
3489
+
3490
+ # The resource name of the quota limit.
3491
+ # An example name would be:
3492
+ # `services/compute.googleapis.com/projects/123/quotas/metrics/compute.
3493
+ # googleapis.com%2Fcpus/limits/%2Fproject%2Fregion`
3494
+ # The resource name is intended to be opaque and should not be parsed for
3495
+ # its component strings, since its representation could change in the future.
3496
+ # Corresponds to the JSON property `name`
3497
+ # @return [String]
3498
+ attr_accessor :name
3499
+
3500
+ # Summary of the enforced quota buckets, organized by quota dimension,
3501
+ # ordered from least specific to most specific (for example, the global
3502
+ # default bucket, with no quota dimensions, will always appear first).
3503
+ # Corresponds to the JSON property `quotaBuckets`
3504
+ # @return [Array<Google::Apis::ServiceconsumermanagementV1beta1::V1Beta1QuotaBucket>]
3505
+ attr_accessor :quota_buckets
3506
+
3507
+ # The limit unit.
3508
+ # An example unit would be:
3509
+ # `1/`project`/`region``
3510
+ # Note that ``project`` and ``region`` are not placeholders in this example;
3511
+ # the literal characters ``` and ``` occur in the string.
3512
+ # Corresponds to the JSON property `unit`
3513
+ # @return [String]
3514
+ attr_accessor :unit
3515
+
3516
+ def initialize(**args)
3517
+ update!(**args)
3518
+ end
3519
+
3520
+ # Update properties of this object
3521
+ def update!(**args)
3522
+ @is_precise = args[:is_precise] if args.key?(:is_precise)
3523
+ @metric = args[:metric] if args.key?(:metric)
3524
+ @name = args[:name] if args.key?(:name)
3525
+ @quota_buckets = args[:quota_buckets] if args.key?(:quota_buckets)
3526
+ @unit = args[:unit] if args.key?(:unit)
3527
+ end
3528
+ end
3529
+
3530
+ # Consumer quota settings for a quota metric.
3531
+ class V1Beta1ConsumerQuotaMetric
3532
+ include Google::Apis::Core::Hashable
3533
+
3534
+ # The consumer quota for each quota limit defined on the metric.
3535
+ # Corresponds to the JSON property `consumerQuotaLimits`
3536
+ # @return [Array<Google::Apis::ServiceconsumermanagementV1beta1::V1Beta1ConsumerQuotaLimit>]
3537
+ attr_accessor :consumer_quota_limits
3538
+
3539
+ # The display name of the metric.
3540
+ # An example name would be:
3541
+ # "CPUs"
3542
+ # Corresponds to the JSON property `displayName`
3543
+ # @return [String]
3544
+ attr_accessor :display_name
3545
+
3546
+ # The name of the metric.
3547
+ # An example name would be:
3548
+ # `compute.googleapis.com/cpus`
3549
+ # Corresponds to the JSON property `metric`
3550
+ # @return [String]
3551
+ attr_accessor :metric
3552
+
3553
+ # The resource name of the quota settings on this metric for this consumer.
3554
+ # An example name would be:
3555
+ # `services/serviceconsumermanagement.googleapis.com/projects/123/quota/metrics/
3556
+ # compute.googleapis.com%2Fcpus
3557
+ # The resource name is intended to be opaque and should not be parsed for
3558
+ # its component strings, since its representation could change in the future.
3559
+ # Corresponds to the JSON property `name`
3560
+ # @return [String]
3561
+ attr_accessor :name
3562
+
3563
+ def initialize(**args)
3564
+ update!(**args)
3565
+ end
3566
+
3567
+ # Update properties of this object
3568
+ def update!(**args)
3569
+ @consumer_quota_limits = args[:consumer_quota_limits] if args.key?(:consumer_quota_limits)
3570
+ @display_name = args[:display_name] if args.key?(:display_name)
3571
+ @metric = args[:metric] if args.key?(:metric)
3572
+ @name = args[:name] if args.key?(:name)
3573
+ end
3574
+ end
3575
+
3576
+ # Response message for the `DisableConsumer` method.
3577
+ # This response message is assigned to the `response` field of the returned
3578
+ # Operation when that operation is done.
3579
+ class V1Beta1DisableConsumerResponse
3580
+ include Google::Apis::Core::Hashable
3581
+
3582
+ def initialize(**args)
3583
+ update!(**args)
3584
+ end
3585
+
3586
+ # Update properties of this object
3587
+ def update!(**args)
3588
+ end
3589
+ end
3590
+
3591
+ # Response message for the `EnableConsumer` method.
3592
+ # This response message is assigned to the `response` field of the returned
3593
+ # Operation when that operation is done.
3594
+ class V1Beta1EnableConsumerResponse
3595
+ include Google::Apis::Core::Hashable
3596
+
3597
+ def initialize(**args)
3598
+ update!(**args)
3599
+ end
3600
+
3601
+ # Update properties of this object
3602
+ def update!(**args)
3603
+ end
3604
+ end
3605
+
3606
+ # Response message for the `GenerateServiceIdentity` method.
3607
+ # This response message is assigned to the `response` field of the returned
3608
+ # Operation when that operation is done.
3609
+ class V1Beta1GenerateServiceIdentityResponse
3610
+ include Google::Apis::Core::Hashable
3611
+
3612
+ # A service identity in the Identity and Access Management API.
3613
+ # Corresponds to the JSON property `identity`
3614
+ # @return [Google::Apis::ServiceconsumermanagementV1beta1::V1Beta1ServiceIdentity]
3615
+ attr_accessor :identity
3616
+
3617
+ def initialize(**args)
3618
+ update!(**args)
3619
+ end
3620
+
3621
+ # Update properties of this object
3622
+ def update!(**args)
3623
+ @identity = args[:identity] if args.key?(:identity)
3624
+ end
3625
+ end
3626
+
3627
+ # Request message for ImportProducerOverrides
3628
+ class V1Beta1ImportProducerOverridesRequest
3629
+ include Google::Apis::Core::Hashable
3630
+
3631
+ # Whether to force the creation of the quota overrides.
3632
+ # If creating an override would cause the effective quota for the consumer to
3633
+ # decrease by more than 10 percent, the call is rejected, as a safety measure
3634
+ # to avoid accidentally decreasing quota too quickly. Setting the force
3635
+ # parameter to true ignores this restriction.
3636
+ # Corresponds to the JSON property `force`
3637
+ # @return [Boolean]
3638
+ attr_accessor :force
3639
+ alias_method :force?, :force
3640
+
3641
+ # Import data embedded in the request message
3642
+ # Corresponds to the JSON property `inlineSource`
3643
+ # @return [Google::Apis::ServiceconsumermanagementV1beta1::V1Beta1OverrideInlineSource]
3644
+ attr_accessor :inline_source
3645
+
3646
+ def initialize(**args)
3647
+ update!(**args)
3648
+ end
3649
+
3650
+ # Update properties of this object
3651
+ def update!(**args)
3652
+ @force = args[:force] if args.key?(:force)
3653
+ @inline_source = args[:inline_source] if args.key?(:inline_source)
3654
+ end
3655
+ end
3656
+
3657
+ # Response message for ImportProducerOverrides
3658
+ class V1Beta1ImportProducerOverridesResponse
3659
+ include Google::Apis::Core::Hashable
3660
+
3661
+ # The overrides that were created from the imported data.
3662
+ # Corresponds to the JSON property `overrides`
3663
+ # @return [Array<Google::Apis::ServiceconsumermanagementV1beta1::V1Beta1QuotaOverride>]
3664
+ attr_accessor :overrides
3665
+
3666
+ def initialize(**args)
3667
+ update!(**args)
3668
+ end
3669
+
3670
+ # Update properties of this object
3671
+ def update!(**args)
3672
+ @overrides = args[:overrides] if args.key?(:overrides)
3673
+ end
3674
+ end
3675
+
3676
+ # Response message for ListConsumerQuotaMetrics.
3677
+ class V1Beta1ListConsumerQuotaMetricsResponse
3678
+ include Google::Apis::Core::Hashable
3679
+
3680
+ # Quota settings for the consumer, organized by quota metric.
3681
+ # Corresponds to the JSON property `metrics`
3682
+ # @return [Array<Google::Apis::ServiceconsumermanagementV1beta1::V1Beta1ConsumerQuotaMetric>]
3683
+ attr_accessor :metrics
3684
+
3685
+ # Token identifying which result to start with; returned by a previous list
3686
+ # call.
3687
+ # Corresponds to the JSON property `nextPageToken`
3688
+ # @return [String]
3689
+ attr_accessor :next_page_token
3690
+
3691
+ def initialize(**args)
3692
+ update!(**args)
3693
+ end
3694
+
3695
+ # Update properties of this object
3696
+ def update!(**args)
3697
+ @metrics = args[:metrics] if args.key?(:metrics)
3698
+ @next_page_token = args[:next_page_token] if args.key?(:next_page_token)
3699
+ end
3700
+ end
3701
+
3702
+ # Response message for ListProducerOverrides.
3703
+ class V1Beta1ListProducerOverridesResponse
3704
+ include Google::Apis::Core::Hashable
3705
+
3706
+ # Token identifying which result to start with; returned by a previous list
3707
+ # call.
3708
+ # Corresponds to the JSON property `nextPageToken`
3709
+ # @return [String]
3710
+ attr_accessor :next_page_token
3711
+
3712
+ # Producer overrides on this limit.
3713
+ # Corresponds to the JSON property `overrides`
3714
+ # @return [Array<Google::Apis::ServiceconsumermanagementV1beta1::V1Beta1QuotaOverride>]
3715
+ attr_accessor :overrides
3716
+
3717
+ def initialize(**args)
3718
+ update!(**args)
3719
+ end
3720
+
3721
+ # Update properties of this object
3722
+ def update!(**args)
3723
+ @next_page_token = args[:next_page_token] if args.key?(:next_page_token)
3724
+ @overrides = args[:overrides] if args.key?(:overrides)
3725
+ end
3726
+ end
3727
+
3728
+ # Import data embedded in the request message
3729
+ class V1Beta1OverrideInlineSource
3730
+ include Google::Apis::Core::Hashable
3731
+
3732
+ # The overrides to create.
3733
+ # Each override must have a value for 'metric' and 'unit', to specify
3734
+ # which metric and which limit the override should be applied to.
3735
+ # Corresponds to the JSON property `overrides`
3736
+ # @return [Array<Google::Apis::ServiceconsumermanagementV1beta1::V1Beta1QuotaOverride>]
3737
+ attr_accessor :overrides
3738
+
3739
+ def initialize(**args)
3740
+ update!(**args)
3741
+ end
3742
+
3743
+ # Update properties of this object
3744
+ def update!(**args)
3745
+ @overrides = args[:overrides] if args.key?(:overrides)
3746
+ end
3747
+ end
3748
+
3749
+ # A quota bucket is a quota provisioning unit for a specific set of dimensions.
3750
+ class V1Beta1QuotaBucket
3751
+ include Google::Apis::Core::Hashable
3752
+
3753
+ # A quota override
3754
+ # Corresponds to the JSON property `adminOverride`
3755
+ # @return [Google::Apis::ServiceconsumermanagementV1beta1::V1Beta1QuotaOverride]
3756
+ attr_accessor :admin_override
3757
+
3758
+ # A quota override
3759
+ # Corresponds to the JSON property `consumerOverride`
3760
+ # @return [Google::Apis::ServiceconsumermanagementV1beta1::V1Beta1QuotaOverride]
3761
+ attr_accessor :consumer_override
3762
+
3763
+ # The default limit of this quota bucket, as specified by the service
3764
+ # configuration.
3765
+ # Corresponds to the JSON property `defaultLimit`
3766
+ # @return [Fixnum]
3767
+ attr_accessor :default_limit
3768
+
3769
+ # The dimensions of this quota bucket.
3770
+ # If this map is empty, this is the global bucket, which is the default quota
3771
+ # value applied to all requests that do not have a more specific override.
3772
+ # If this map is nonempty, the default limit, effective limit, and quota
3773
+ # overrides apply only to requests that have the dimensions given in the map.
3774
+ # For example, if the map has key "region" and value "us-east-1", then the
3775
+ # specified effective limit is only effective in that region, and the
3776
+ # specified overrides apply only in that region.
3777
+ # Corresponds to the JSON property `dimensions`
3778
+ # @return [Hash<String,String>]
3779
+ attr_accessor :dimensions
3780
+
3781
+ # The effective limit of this quota bucket. Equal to default_limit if there
3782
+ # are no overrides.
3783
+ # Corresponds to the JSON property `effectiveLimit`
3784
+ # @return [Fixnum]
3785
+ attr_accessor :effective_limit
3786
+
3787
+ # A quota override
3788
+ # Corresponds to the JSON property `producerOverride`
3789
+ # @return [Google::Apis::ServiceconsumermanagementV1beta1::V1Beta1QuotaOverride]
3790
+ attr_accessor :producer_override
3791
+
3792
+ def initialize(**args)
3793
+ update!(**args)
3794
+ end
3795
+
3796
+ # Update properties of this object
3797
+ def update!(**args)
3798
+ @admin_override = args[:admin_override] if args.key?(:admin_override)
3799
+ @consumer_override = args[:consumer_override] if args.key?(:consumer_override)
3800
+ @default_limit = args[:default_limit] if args.key?(:default_limit)
3801
+ @dimensions = args[:dimensions] if args.key?(:dimensions)
3802
+ @effective_limit = args[:effective_limit] if args.key?(:effective_limit)
3803
+ @producer_override = args[:producer_override] if args.key?(:producer_override)
3804
+ end
3805
+ end
3806
+
3807
+ # A quota override
3808
+ class V1Beta1QuotaOverride
3809
+ include Google::Apis::Core::Hashable
3810
+
3811
+ # If this map is nonempty, then this override applies only to specific values
3812
+ # for dimensions defined in the limit unit.
3813
+ # For example, an override on a limit with the unit 1/`project`/`region`
3814
+ # could contain an entry with the key "region" and the value "us-east-1";
3815
+ # the override is only applied to quota consumed in that region.
3816
+ # This map has the following restrictions:
3817
+ # * Keys that are not defined in the limit's unit are not valid keys.
3818
+ # Any string appearing in `brackets` in the unit (besides `project` or
3819
+ # `user`) is a defined key.
3820
+ # * "project" is not a valid key; the project is already specified in
3821
+ # the parent resource name.
3822
+ # * "user" is not a valid key; the API does not support quota overrides
3823
+ # that apply only to a specific user.
3824
+ # * If "region" appears as a key, its value must be a valid Cloud region.
3825
+ # * If "zone" appears as a key, its value must be a valid Cloud zone.
3826
+ # * If any valid key other than "region" or "zone" appears in the map, then
3827
+ # all valid keys other than "region" or "zone" must also appear in the
3828
+ # map.
3829
+ # Corresponds to the JSON property `dimensions`
3830
+ # @return [Hash<String,String>]
3831
+ attr_accessor :dimensions
3832
+
3833
+ # The name of the metric to which this override applies.
3834
+ # An example name would be:
3835
+ # `compute.googleapis.com/cpus`
3836
+ # Corresponds to the JSON property `metric`
3837
+ # @return [String]
3838
+ attr_accessor :metric
3839
+
3840
+ # The resource name of the producer override.
3841
+ # An example name would be:
3842
+ # `services/compute.googleapis.com/projects/123/consumerQuotaMetrics/compute.
3843
+ # googleapis.com%2Fcpus/limits/%2Fproject%2Fregion/producerOverrides/4a3f2c1d`
3844
+ # Corresponds to the JSON property `name`
3845
+ # @return [String]
3846
+ attr_accessor :name
3847
+
3848
+ # The overriding quota limit value.
3849
+ # Can be any nonnegative integer, or -1 (unlimited quota).
3850
+ # Corresponds to the JSON property `overrideValue`
3851
+ # @return [Fixnum]
3852
+ attr_accessor :override_value
3853
+
3854
+ # The limit unit of the limit to which this override applies.
3855
+ # An example unit would be:
3856
+ # `1/`project`/`region``
3857
+ # Note that ``project`` and ``region`` are not placeholders in this example;
3858
+ # the literal characters ``` and ``` occur in the string.
3859
+ # Corresponds to the JSON property `unit`
3860
+ # @return [String]
3861
+ attr_accessor :unit
3862
+
3863
+ def initialize(**args)
3864
+ update!(**args)
3865
+ end
3866
+
3867
+ # Update properties of this object
3868
+ def update!(**args)
3869
+ @dimensions = args[:dimensions] if args.key?(:dimensions)
3870
+ @metric = args[:metric] if args.key?(:metric)
3871
+ @name = args[:name] if args.key?(:name)
3872
+ @override_value = args[:override_value] if args.key?(:override_value)
3873
+ @unit = args[:unit] if args.key?(:unit)
3874
+ end
3875
+ end
3876
+
3877
+ # Response message for the `RefreshConsumer` method.
3878
+ # This response message is assigned to the `response` field of the returned
3879
+ # Operation when that operation is done.
3880
+ class V1Beta1RefreshConsumerResponse
3881
+ include Google::Apis::Core::Hashable
3882
+
3883
+ def initialize(**args)
3884
+ update!(**args)
3885
+ end
3886
+
3887
+ # Update properties of this object
3888
+ def update!(**args)
3889
+ end
3890
+ end
3891
+
3892
+ # A service identity in the Identity and Access Management API.
3893
+ class V1Beta1ServiceIdentity
3894
+ include Google::Apis::Core::Hashable
3895
+
3896
+ # The email address of the service identity.
3897
+ # Corresponds to the JSON property `email`
3898
+ # @return [String]
3899
+ attr_accessor :email
3900
+
3901
+ # P4 service identity resource name.
3902
+ # An example name would be:
3903
+ # `services/serviceconsumermanagement.googleapis.com/projects/123/
3904
+ # serviceIdentities/default`
3905
+ # Corresponds to the JSON property `name`
3906
+ # @return [String]
3907
+ attr_accessor :name
3908
+
3909
+ # The P4 service identity configuration tag. This must be defined in
3910
+ # activation_grants. If not specified when creating the account, the tag is
3911
+ # set to "default".
3912
+ # Corresponds to the JSON property `tag`
3913
+ # @return [String]
3914
+ attr_accessor :tag
3915
+
3916
+ # The unique and stable id of the service identity.
3917
+ # Corresponds to the JSON property `uniqueId`
3918
+ # @return [String]
3919
+ attr_accessor :unique_id
3920
+
3921
+ def initialize(**args)
3922
+ update!(**args)
3923
+ end
3924
+
3925
+ # Update properties of this object
3926
+ def update!(**args)
3927
+ @email = args[:email] if args.key?(:email)
3928
+ @name = args[:name] if args.key?(:name)
3929
+ @tag = args[:tag] if args.key?(:tag)
3930
+ @unique_id = args[:unique_id] if args.key?(:unique_id)
3931
+ end
3932
+ end
3933
+
3934
+ # Response message for the `AddVisibilityLabels` method.
3935
+ # This response message is assigned to the `response` field of the returned
3936
+ # Operation when that operation is done.
3937
+ class V1beta1AddVisibilityLabelsResponse
3938
+ include Google::Apis::Core::Hashable
3939
+
3940
+ # The updated set of visibility labels for this consumer on this service.
3941
+ # Corresponds to the JSON property `labels`
3942
+ # @return [Array<String>]
3943
+ attr_accessor :labels
3944
+
3945
+ def initialize(**args)
3946
+ update!(**args)
3947
+ end
3948
+
3949
+ # Update properties of this object
3950
+ def update!(**args)
3951
+ @labels = args[:labels] if args.key?(:labels)
3952
+ end
3953
+ end
3954
+
3955
+ # A default identity in the Identity and Access Management API.
3956
+ class V1beta1DefaultIdentity
3957
+ include Google::Apis::Core::Hashable
3958
+
3959
+ # The email address of the default identity.
3960
+ # Corresponds to the JSON property `email`
3961
+ # @return [String]
3962
+ attr_accessor :email
3963
+
3964
+ # Default identity resource name.
3965
+ # An example name would be:
3966
+ # `services/serviceconsumermanagement.googleapis.com/projects/123/
3967
+ # defaultIdentity`
3968
+ # Corresponds to the JSON property `name`
3969
+ # @return [String]
3970
+ attr_accessor :name
3971
+
3972
+ # The unique and stable id of the default identity.
3973
+ # Corresponds to the JSON property `uniqueId`
3974
+ # @return [String]
3975
+ attr_accessor :unique_id
3976
+
3977
+ def initialize(**args)
3978
+ update!(**args)
3979
+ end
3980
+
3981
+ # Update properties of this object
3982
+ def update!(**args)
3983
+ @email = args[:email] if args.key?(:email)
3984
+ @name = args[:name] if args.key?(:name)
3985
+ @unique_id = args[:unique_id] if args.key?(:unique_id)
3986
+ end
3987
+ end
3988
+
3989
+ # Response message for the `DisableConsumer` method.
3990
+ # This response message is assigned to the `response` field of the returned
3991
+ # Operation when that operation is done.
3992
+ class V1beta1DisableConsumerResponse
3993
+ include Google::Apis::Core::Hashable
3994
+
3995
+ def initialize(**args)
3996
+ update!(**args)
3997
+ end
3998
+
3999
+ # Update properties of this object
4000
+ def update!(**args)
4001
+ end
4002
+ end
4003
+
4004
+ # Response message for the `EnableConsumer` method.
4005
+ # This response message is assigned to the `response` field of the returned
4006
+ # Operation when that operation is done.
4007
+ class V1beta1EnableConsumerResponse
4008
+ include Google::Apis::Core::Hashable
4009
+
4010
+ def initialize(**args)
4011
+ update!(**args)
4012
+ end
4013
+
4014
+ # Update properties of this object
4015
+ def update!(**args)
4016
+ end
4017
+ end
4018
+
4019
+ # Response message for the `GenerateDefaultIdentity` method.
4020
+ # This response message is assigned to the `response` field of the returned
4021
+ # Operation when that operation is done.
4022
+ class V1beta1GenerateDefaultIdentityResponse
4023
+ include Google::Apis::Core::Hashable
4024
+
4025
+ # Status of the role attachment. Under development (go/si-attach-role),
4026
+ # currently always return ATTACH_STATUS_UNSPECIFIED)
4027
+ # Corresponds to the JSON property `attachStatus`
4028
+ # @return [String]
4029
+ attr_accessor :attach_status
4030
+
4031
+ # A default identity in the Identity and Access Management API.
4032
+ # Corresponds to the JSON property `identity`
4033
+ # @return [Google::Apis::ServiceconsumermanagementV1beta1::V1beta1DefaultIdentity]
4034
+ attr_accessor :identity
4035
+
4036
+ # Role attached to consumer project. Empty if not attached in this
4037
+ # request. (Under development, currently always return empty.)
4038
+ # Corresponds to the JSON property `role`
4039
+ # @return [String]
4040
+ attr_accessor :role
4041
+
4042
+ def initialize(**args)
4043
+ update!(**args)
4044
+ end
4045
+
4046
+ # Update properties of this object
4047
+ def update!(**args)
4048
+ @attach_status = args[:attach_status] if args.key?(:attach_status)
4049
+ @identity = args[:identity] if args.key?(:identity)
4050
+ @role = args[:role] if args.key?(:role)
4051
+ end
4052
+ end
4053
+
4054
+ # Response message for the `GenerateServiceAccount` method.
4055
+ # This response message is assigned to the `response` field of the returned
4056
+ # Operation when that operation is done.
4057
+ class V1beta1GenerateServiceAccountResponse
4058
+ include Google::Apis::Core::Hashable
4059
+
4060
+ # A service account in the Identity and Access Management API.
4061
+ # Corresponds to the JSON property `account`
4062
+ # @return [Google::Apis::ServiceconsumermanagementV1beta1::V1beta1ServiceAccount]
4063
+ attr_accessor :account
4064
+
4065
+ def initialize(**args)
4066
+ update!(**args)
4067
+ end
4068
+
4069
+ # Update properties of this object
4070
+ def update!(**args)
4071
+ @account = args[:account] if args.key?(:account)
4072
+ end
4073
+ end
4074
+
4075
+ # Response message for the `RefreshConsumer` method.
4076
+ # This response message is assigned to the `response` field of the returned
4077
+ # Operation when that operation is done.
4078
+ class V1beta1RefreshConsumerResponse
4079
+ include Google::Apis::Core::Hashable
4080
+
4081
+ def initialize(**args)
4082
+ update!(**args)
4083
+ end
4084
+
4085
+ # Update properties of this object
4086
+ def update!(**args)
4087
+ end
4088
+ end
4089
+
4090
+ # Response message for the `RemoveVisibilityLabels` method.
4091
+ # This response message is assigned to the `response` field of the returned
4092
+ # Operation when that operation is done.
4093
+ class V1beta1RemoveVisibilityLabelsResponse
4094
+ include Google::Apis::Core::Hashable
4095
+
4096
+ # The updated set of visibility labels for this consumer on this service.
4097
+ # Corresponds to the JSON property `labels`
4098
+ # @return [Array<String>]
4099
+ attr_accessor :labels
4100
+
4101
+ def initialize(**args)
4102
+ update!(**args)
4103
+ end
4104
+
4105
+ # Update properties of this object
4106
+ def update!(**args)
4107
+ @labels = args[:labels] if args.key?(:labels)
4108
+ end
4109
+ end
4110
+
4111
+ # A service account in the Identity and Access Management API.
4112
+ class V1beta1ServiceAccount
4113
+ include Google::Apis::Core::Hashable
4114
+
4115
+ # The email address of the service account.
4116
+ # Corresponds to the JSON property `email`
4117
+ # @return [String]
4118
+ attr_accessor :email
4119
+
4120
+ # Deprecated. See b/136209818.
4121
+ # Corresponds to the JSON property `iamAccountName`
4122
+ # @return [String]
4123
+ attr_accessor :iam_account_name
4124
+
4125
+ # P4 SA resource name.
4126
+ # An example name would be:
4127
+ # `services/serviceconsumermanagement.googleapis.com/projects/123/
4128
+ # serviceAccounts/default`
4129
+ # Corresponds to the JSON property `name`
4130
+ # @return [String]
4131
+ attr_accessor :name
4132
+
4133
+ # The P4 SA configuration tag. This must be defined in activation_grants.
4134
+ # If not specified when creating the account, the tag is set to "default".
4135
+ # Corresponds to the JSON property `tag`
4136
+ # @return [String]
4137
+ attr_accessor :tag
4138
+
4139
+ # The unique and stable id of the service account.
4140
+ # Corresponds to the JSON property `uniqueId`
4141
+ # @return [String]
4142
+ attr_accessor :unique_id
4143
+
4144
+ def initialize(**args)
4145
+ update!(**args)
4146
+ end
4147
+
4148
+ # Update properties of this object
4149
+ def update!(**args)
4150
+ @email = args[:email] if args.key?(:email)
4151
+ @iam_account_name = args[:iam_account_name] if args.key?(:iam_account_name)
4152
+ @name = args[:name] if args.key?(:name)
4153
+ @tag = args[:tag] if args.key?(:tag)
4154
+ @unique_id = args[:unique_id] if args.key?(:unique_id)
4155
+ end
4156
+ end
4157
+ end
4158
+ end
4159
+ end