google-api-client 0.37.3 → 0.38.0

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