google-api-client 0.28.4 → 0.28.5

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