google-api-client 0.28.4 → 0.29.2

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