google-api-client 0.37.3 → 0.38.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (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