google-api-client 0.28.4 → 0.29.2

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