google-api-client 0.32.1 → 0.40.0

Sign up to get free protection for your applications and to get access to all the features.
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