google-api-client 0.28.4 → 0.28.5

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