google-api-client 0.41.0 → 0.42.2

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 (447) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +295 -0
  3. data/bin/generate-api +1 -3
  4. data/generated/google/apis/accessapproval_v1.rb +1 -1
  5. data/generated/google/apis/accessapproval_v1/service.rb +3 -0
  6. data/generated/google/apis/accessapproval_v1beta1.rb +1 -1
  7. data/generated/google/apis/accessapproval_v1beta1/service.rb +3 -0
  8. data/generated/google/apis/admin_directory_v1.rb +1 -1
  9. data/generated/google/apis/admin_directory_v1/classes.rb +31 -0
  10. data/generated/google/apis/admin_directory_v1/representations.rb +16 -0
  11. data/generated/google/apis/admin_directory_v1/service.rb +3 -5
  12. data/generated/google/apis/admob_v1.rb +1 -1
  13. data/generated/google/apis/admob_v1/classes.rb +3 -1
  14. data/generated/google/apis/androiddeviceprovisioning_v1.rb +1 -1
  15. data/generated/google/apis/androiddeviceprovisioning_v1/classes.rb +32 -26
  16. data/generated/google/apis/androidenterprise_v1.rb +1 -1
  17. data/generated/google/apis/androidpublisher_v3.rb +1 -1
  18. data/generated/google/apis/androidpublisher_v3/classes.rb +78 -0
  19. data/generated/google/apis/androidpublisher_v3/representations.rb +44 -0
  20. data/generated/google/apis/androidpublisher_v3/service.rb +149 -1
  21. data/generated/google/apis/apigee_v1.rb +1 -1
  22. data/generated/google/apis/apigee_v1/classes.rb +1475 -107
  23. data/generated/google/apis/apigee_v1/representations.rb +558 -0
  24. data/generated/google/apis/apigee_v1/service.rb +1175 -117
  25. data/generated/google/apis/appengine_v1.rb +1 -1
  26. data/generated/google/apis/appengine_v1/service.rb +6 -3
  27. data/generated/google/apis/appengine_v1beta.rb +1 -1
  28. data/generated/google/apis/appengine_v1beta/service.rb +6 -2
  29. data/generated/google/apis/appsmarket_v2.rb +1 -1
  30. data/generated/google/apis/artifactregistry_v1beta1.rb +1 -1
  31. data/generated/google/apis/bigquery_v2.rb +1 -1
  32. data/generated/google/apis/bigquery_v2/classes.rb +234 -9
  33. data/generated/google/apis/bigquery_v2/representations.rb +74 -0
  34. data/generated/google/apis/bigqueryconnection_v1beta1.rb +1 -1
  35. data/generated/google/apis/bigqueryconnection_v1beta1/classes.rb +6 -6
  36. data/generated/google/apis/bigqueryreservation_v1.rb +1 -1
  37. data/generated/google/apis/bigqueryreservation_v1/classes.rb +34 -0
  38. data/generated/google/apis/bigqueryreservation_v1/representations.rb +16 -0
  39. data/generated/google/apis/bigqueryreservation_v1/service.rb +60 -0
  40. data/generated/google/apis/bigqueryreservation_v1beta1.rb +1 -1
  41. data/generated/google/apis/bigqueryreservation_v1beta1/classes.rb +8 -0
  42. data/generated/google/apis/bigqueryreservation_v1beta1/representations.rb +1 -0
  43. data/generated/google/apis/bigtableadmin_v1.rb +1 -1
  44. data/generated/google/apis/bigtableadmin_v1/classes.rb +267 -0
  45. data/generated/google/apis/bigtableadmin_v1/representations.rb +100 -0
  46. data/generated/google/apis/bigtableadmin_v2.rb +1 -1
  47. data/generated/google/apis/bigtableadmin_v2/classes.rb +361 -6
  48. data/generated/google/apis/bigtableadmin_v2/representations.rb +146 -0
  49. data/generated/google/apis/bigtableadmin_v2/service.rb +298 -0
  50. data/generated/google/apis/billingbudgets_v1beta1.rb +1 -1
  51. data/generated/google/apis/billingbudgets_v1beta1/classes.rb +28 -13
  52. data/generated/google/apis/billingbudgets_v1beta1/representations.rb +1 -0
  53. data/generated/google/apis/blogger_v3.rb +1 -1
  54. data/generated/google/apis/books_v1.rb +1 -1
  55. data/generated/google/apis/books_v1/classes.rb +140 -159
  56. data/generated/google/apis/books_v1/service.rb +47 -49
  57. data/generated/google/apis/chat_v1.rb +1 -1
  58. data/generated/google/apis/chat_v1/classes.rb +130 -0
  59. data/generated/google/apis/chat_v1/representations.rb +63 -0
  60. data/generated/google/apis/chat_v1/service.rb +71 -0
  61. data/generated/google/apis/chromeuxreport_v1.rb +1 -1
  62. data/generated/google/apis/chromeuxreport_v1/classes.rb +22 -0
  63. data/generated/google/apis/chromeuxreport_v1/representations.rb +2 -0
  64. data/generated/google/apis/civicinfo_v2.rb +2 -2
  65. data/generated/google/apis/civicinfo_v2/classes.rb +21 -801
  66. data/generated/google/apis/civicinfo_v2/representations.rb +1 -295
  67. data/generated/google/apis/civicinfo_v2/service.rb +28 -63
  68. data/generated/google/apis/classroom_v1.rb +1 -1
  69. data/generated/google/apis/classroom_v1/service.rb +9 -5
  70. data/generated/google/apis/cloudasset_v1.rb +1 -1
  71. data/generated/google/apis/cloudasset_v1/classes.rb +391 -3
  72. data/generated/google/apis/cloudasset_v1/representations.rb +101 -0
  73. data/generated/google/apis/cloudasset_v1/service.rb +178 -0
  74. data/generated/google/apis/{androidpublisher_v2.rb → cloudasset_v1p5beta1.rb} +11 -11
  75. data/generated/google/apis/cloudasset_v1p5beta1/classes.rb +1537 -0
  76. data/generated/google/apis/cloudasset_v1p5beta1/representations.rb +399 -0
  77. data/generated/google/apis/cloudasset_v1p5beta1/service.rb +129 -0
  78. data/generated/google/apis/cloudbilling_v1.rb +1 -1
  79. data/generated/google/apis/cloudbilling_v1/classes.rb +38 -6
  80. data/generated/google/apis/cloudbilling_v1/representations.rb +16 -0
  81. data/generated/google/apis/cloudbuild_v1.rb +1 -1
  82. data/generated/google/apis/cloudbuild_v1/classes.rb +272 -12
  83. data/generated/google/apis/cloudbuild_v1/representations.rb +130 -4
  84. data/generated/google/apis/cloudbuild_v1/service.rb +0 -136
  85. data/generated/google/apis/cloudbuild_v1alpha1.rb +1 -1
  86. data/generated/google/apis/cloudbuild_v1alpha1/classes.rb +284 -24
  87. data/generated/google/apis/cloudbuild_v1alpha1/representations.rb +135 -9
  88. data/generated/google/apis/cloudbuild_v1alpha1/service.rb +0 -47
  89. data/generated/google/apis/cloudbuild_v1alpha2.rb +1 -1
  90. data/generated/google/apis/cloudbuild_v1alpha2/classes.rb +284 -24
  91. data/generated/google/apis/cloudbuild_v1alpha2/representations.rb +135 -9
  92. data/generated/google/apis/cloudbuild_v1alpha2/service.rb +0 -47
  93. data/generated/google/apis/cloudfunctions_v1.rb +1 -1
  94. data/generated/google/apis/cloudfunctions_v1/classes.rb +18 -49
  95. data/generated/google/apis/cloudfunctions_v1/representations.rb +2 -17
  96. data/generated/google/apis/cloudidentity_v1.rb +1 -1
  97. data/generated/google/apis/cloudidentity_v1beta1.rb +1 -1
  98. data/generated/google/apis/cloudidentity_v1beta1/classes.rb +32 -1
  99. data/generated/google/apis/cloudidentity_v1beta1/representations.rb +16 -0
  100. data/generated/google/apis/cloudresourcemanager_v1.rb +1 -1
  101. data/generated/google/apis/cloudresourcemanager_v1/classes.rb +503 -755
  102. data/generated/google/apis/cloudresourcemanager_v1/service.rb +198 -249
  103. data/generated/google/apis/cloudresourcemanager_v1beta1.rb +1 -1
  104. data/generated/google/apis/cloudresourcemanager_v1beta1/classes.rb +258 -430
  105. data/generated/google/apis/cloudresourcemanager_v1beta1/service.rb +136 -178
  106. data/generated/google/apis/cloudresourcemanager_v2.rb +1 -1
  107. data/generated/google/apis/cloudresourcemanager_v2/classes.rb +258 -414
  108. data/generated/google/apis/cloudresourcemanager_v2/service.rb +96 -129
  109. data/generated/google/apis/cloudresourcemanager_v2beta1.rb +1 -1
  110. data/generated/google/apis/cloudresourcemanager_v2beta1/classes.rb +258 -414
  111. data/generated/google/apis/cloudresourcemanager_v2beta1/service.rb +96 -129
  112. data/generated/google/apis/cloudscheduler_v1.rb +1 -1
  113. data/generated/google/apis/cloudscheduler_v1/classes.rb +18 -6
  114. data/generated/google/apis/cloudscheduler_v1/representations.rb +1 -0
  115. data/generated/google/apis/cloudscheduler_v1beta1.rb +1 -1
  116. data/generated/google/apis/cloudscheduler_v1beta1/classes.rb +18 -6
  117. data/generated/google/apis/cloudscheduler_v1beta1/representations.rb +1 -0
  118. data/generated/google/apis/cloudshell_v1.rb +1 -1
  119. data/generated/google/apis/cloudshell_v1/classes.rb +2 -2
  120. data/generated/google/apis/cloudshell_v1alpha1.rb +1 -1
  121. data/generated/google/apis/cloudshell_v1alpha1/classes.rb +8 -5
  122. data/generated/google/apis/cloudtrace_v1.rb +1 -1
  123. data/generated/google/apis/cloudtrace_v1/classes.rb +2 -3
  124. data/generated/google/apis/cloudtrace_v1/service.rb +1 -7
  125. data/generated/google/apis/cloudtrace_v2.rb +1 -1
  126. data/generated/google/apis/cloudtrace_v2/classes.rb +6 -5
  127. data/generated/google/apis/cloudtrace_v2/service.rb +3 -6
  128. data/generated/google/apis/composer_v1beta1.rb +1 -1
  129. data/generated/google/apis/composer_v1beta1/classes.rb +4 -3
  130. data/generated/google/apis/composer_v1beta1/service.rb +13 -0
  131. data/generated/google/apis/compute_alpha.rb +1 -1
  132. data/generated/google/apis/compute_alpha/classes.rb +99 -61
  133. data/generated/google/apis/compute_alpha/representations.rb +3 -0
  134. data/generated/google/apis/compute_alpha/service.rb +32 -33
  135. data/generated/google/apis/compute_beta.rb +1 -1
  136. data/generated/google/apis/compute_beta/classes.rb +596 -60
  137. data/generated/google/apis/compute_beta/representations.rb +162 -0
  138. data/generated/google/apis/compute_beta/service.rb +565 -33
  139. data/generated/google/apis/compute_v1.rb +1 -1
  140. data/generated/google/apis/compute_v1/classes.rb +967 -70
  141. data/generated/google/apis/compute_v1/representations.rb +289 -0
  142. data/generated/google/apis/compute_v1/service.rb +784 -38
  143. data/generated/google/apis/container_v1.rb +1 -1
  144. data/generated/google/apis/container_v1/classes.rb +132 -5
  145. data/generated/google/apis/container_v1/representations.rb +51 -0
  146. data/generated/google/apis/container_v1beta1.rb +1 -1
  147. data/generated/google/apis/container_v1beta1/classes.rb +136 -17
  148. data/generated/google/apis/container_v1beta1/representations.rb +39 -0
  149. data/generated/google/apis/containeranalysis_v1beta1.rb +1 -1
  150. data/generated/google/apis/containeranalysis_v1beta1/classes.rb +1 -1
  151. data/generated/google/apis/content_v2.rb +1 -1
  152. data/generated/google/apis/content_v2/classes.rb +8 -2
  153. data/generated/google/apis/content_v2/representations.rb +1 -0
  154. data/generated/google/apis/content_v2_1.rb +1 -1
  155. data/generated/google/apis/content_v2_1/classes.rb +182 -4
  156. data/generated/google/apis/content_v2_1/representations.rb +72 -0
  157. data/generated/google/apis/{androidpublisher_v1.rb → customsearch_v1.rb} +8 -8
  158. data/generated/google/apis/customsearch_v1/classes.rb +1610 -0
  159. data/generated/google/apis/customsearch_v1/representations.rb +372 -0
  160. data/generated/google/apis/customsearch_v1/service.rb +618 -0
  161. data/generated/google/apis/datacatalog_v1beta1.rb +1 -1
  162. data/generated/google/apis/datacatalog_v1beta1/classes.rb +400 -565
  163. data/generated/google/apis/datacatalog_v1beta1/representations.rb +13 -0
  164. data/generated/google/apis/datacatalog_v1beta1/service.rb +351 -435
  165. data/generated/google/apis/dataflow_v1b3.rb +1 -1
  166. data/generated/google/apis/dataflow_v1b3/classes.rb +21 -1
  167. data/generated/google/apis/dataflow_v1b3/representations.rb +3 -0
  168. data/generated/google/apis/dataflow_v1b3/service.rb +2 -2
  169. data/generated/google/apis/dataproc_v1.rb +1 -1
  170. data/generated/google/apis/dataproc_v1/classes.rb +15 -14
  171. data/generated/google/apis/dataproc_v1beta2.rb +1 -1
  172. data/generated/google/apis/dataproc_v1beta2/classes.rb +44 -14
  173. data/generated/google/apis/dataproc_v1beta2/representations.rb +4 -0
  174. data/generated/google/apis/datastore_v1.rb +1 -1
  175. data/generated/google/apis/datastore_v1/classes.rb +1 -1
  176. data/generated/google/apis/deploymentmanager_v2.rb +1 -1
  177. data/generated/google/apis/dfareporting_v3_4.rb +1 -1
  178. data/generated/google/apis/dfareporting_v3_4/classes.rb +421 -0
  179. data/generated/google/apis/dfareporting_v3_4/representations.rb +182 -0
  180. data/generated/google/apis/dialogflow_v2.rb +1 -1
  181. data/generated/google/apis/dialogflow_v2/classes.rb +416 -63
  182. data/generated/google/apis/dialogflow_v2/representations.rb +108 -0
  183. data/generated/google/apis/dialogflow_v2/service.rb +4 -0
  184. data/generated/google/apis/dialogflow_v2beta1.rb +1 -1
  185. data/generated/google/apis/dialogflow_v2beta1/classes.rb +436 -66
  186. data/generated/google/apis/dialogflow_v2beta1/representations.rb +108 -0
  187. data/generated/google/apis/dialogflow_v2beta1/service.rb +58 -44
  188. data/generated/google/apis/displayvideo_v1.rb +7 -1
  189. data/generated/google/apis/displayvideo_v1/classes.rb +1727 -1680
  190. data/generated/google/apis/displayvideo_v1/representations.rb +275 -0
  191. data/generated/google/apis/displayvideo_v1/service.rb +1245 -924
  192. data/generated/google/apis/dlp_v2.rb +1 -1
  193. data/generated/google/apis/dlp_v2/classes.rb +5 -2
  194. data/generated/google/apis/dns_v1.rb +4 -4
  195. data/generated/google/apis/dns_v1/classes.rb +313 -162
  196. data/generated/google/apis/dns_v1/service.rb +247 -180
  197. data/generated/google/apis/dns_v1beta2.rb +4 -4
  198. data/generated/google/apis/dns_v1beta2/classes.rb +325 -171
  199. data/generated/google/apis/dns_v1beta2/service.rb +247 -180
  200. data/generated/google/apis/dns_v2beta1.rb +4 -4
  201. data/generated/google/apis/dns_v2beta1/classes.rb +313 -162
  202. data/generated/google/apis/dns_v2beta1/service.rb +247 -180
  203. data/generated/google/apis/documentai_v1beta2.rb +1 -1
  204. data/generated/google/apis/doubleclickbidmanager_v1_1.rb +1 -1
  205. data/generated/google/apis/doubleclicksearch_v2.rb +4 -4
  206. data/generated/google/apis/doubleclicksearch_v2/classes.rb +75 -76
  207. data/generated/google/apis/doubleclicksearch_v2/representations.rb +4 -6
  208. data/generated/google/apis/doubleclicksearch_v2/service.rb +43 -75
  209. data/generated/google/apis/drive_v2.rb +1 -1
  210. data/generated/google/apis/drive_v2/classes.rb +75 -2
  211. data/generated/google/apis/drive_v2/representations.rb +23 -0
  212. data/generated/google/apis/drive_v2/service.rb +23 -10
  213. data/generated/google/apis/drive_v3.rb +1 -1
  214. data/generated/google/apis/drive_v3/classes.rb +74 -2
  215. data/generated/google/apis/drive_v3/representations.rb +23 -0
  216. data/generated/google/apis/drive_v3/service.rb +8 -5
  217. data/generated/google/apis/fcm_v1.rb +1 -1
  218. data/generated/google/apis/fcm_v1/classes.rb +245 -393
  219. data/generated/google/apis/fcm_v1/service.rb +5 -6
  220. data/generated/google/apis/file_v1.rb +1 -1
  221. data/generated/google/apis/file_v1beta1.rb +1 -1
  222. data/generated/google/apis/firebase_v1beta1.rb +1 -1
  223. data/generated/google/apis/firebase_v1beta1/classes.rb +10 -16
  224. data/generated/google/apis/{groupsmigration_v1.rb → firebasehosting_v1.rb} +10 -12
  225. data/generated/google/apis/firebasehosting_v1/classes.rb +186 -0
  226. data/generated/google/apis/{androidpublisher_v2 → firebasehosting_v1}/representations.rb +22 -32
  227. data/generated/google/apis/firebasehosting_v1/service.rb +183 -0
  228. data/generated/google/apis/firebasehosting_v1beta1.rb +1 -1
  229. data/generated/google/apis/firebasehosting_v1beta1/service.rb +2 -0
  230. data/generated/google/apis/firebaseml_v1beta2.rb +1 -1
  231. data/generated/google/apis/firebaseml_v1beta2/classes.rb +9 -0
  232. data/generated/google/apis/firebaseml_v1beta2/representations.rb +1 -0
  233. data/generated/google/apis/firestore_v1.rb +1 -1
  234. data/generated/google/apis/firestore_v1/classes.rb +152 -0
  235. data/generated/google/apis/firestore_v1/representations.rb +63 -0
  236. data/generated/google/apis/firestore_v1/service.rb +78 -0
  237. data/generated/google/apis/firestore_v1beta1.rb +1 -1
  238. data/generated/google/apis/firestore_v1beta1/classes.rb +152 -0
  239. data/generated/google/apis/firestore_v1beta1/representations.rb +63 -0
  240. data/generated/google/apis/firestore_v1beta1/service.rb +78 -0
  241. data/generated/google/apis/games_configuration_v1configuration.rb +1 -1
  242. data/generated/google/apis/games_configuration_v1configuration/service.rb +2 -2
  243. data/generated/google/apis/games_management_v1management.rb +1 -1
  244. data/generated/google/apis/games_management_v1management/service.rb +2 -2
  245. data/generated/google/apis/games_v1.rb +6 -4
  246. data/generated/google/apis/games_v1/classes.rb +354 -2112
  247. data/generated/google/apis/games_v1/representations.rb +12 -647
  248. data/generated/google/apis/games_v1/service.rb +213 -1155
  249. data/generated/google/apis/{cloudfunctions_v1beta2.rb → gameservices_v1.rb} +9 -9
  250. data/generated/google/apis/gameservices_v1/classes.rb +2354 -0
  251. data/generated/google/apis/gameservices_v1/representations.rb +971 -0
  252. data/generated/google/apis/gameservices_v1/service.rb +1472 -0
  253. data/generated/google/apis/gameservices_v1beta.rb +1 -1
  254. data/generated/google/apis/gameservices_v1beta/classes.rb +6 -6
  255. data/generated/google/apis/gmail_v1.rb +1 -1
  256. data/generated/google/apis/gmail_v1/classes.rb +55 -55
  257. data/generated/google/apis/gmail_v1/service.rb +74 -73
  258. data/generated/google/apis/gmailpostmastertools_v1beta1.rb +36 -0
  259. data/generated/google/apis/gmailpostmastertools_v1beta1/classes.rb +306 -0
  260. data/generated/google/apis/gmailpostmastertools_v1beta1/representations.rb +141 -0
  261. data/generated/google/apis/gmailpostmastertools_v1beta1/service.rb +236 -0
  262. data/generated/google/apis/groupssettings_v1.rb +1 -1
  263. data/generated/google/apis/groupssettings_v1/classes.rb +1 -1
  264. data/generated/google/apis/healthcare_v1.rb +1 -1
  265. data/generated/google/apis/healthcare_v1/classes.rb +6 -6
  266. data/generated/google/apis/healthcare_v1/service.rb +48 -1
  267. data/generated/google/apis/healthcare_v1beta1.rb +1 -1
  268. data/generated/google/apis/healthcare_v1beta1/classes.rb +6 -6
  269. data/generated/google/apis/healthcare_v1beta1/service.rb +60 -1
  270. data/generated/google/apis/iam_v1.rb +1 -1
  271. data/generated/google/apis/iam_v1/classes.rb +22 -3
  272. data/generated/google/apis/iam_v1/service.rb +18 -6
  273. data/generated/google/apis/logging_v2.rb +1 -1
  274. data/generated/google/apis/logging_v2/classes.rb +69 -21
  275. data/generated/google/apis/managedidentities_v1.rb +1 -1
  276. data/generated/google/apis/managedidentities_v1/classes.rb +54 -10
  277. data/generated/google/apis/managedidentities_v1/representations.rb +15 -0
  278. data/generated/google/apis/managedidentities_v1/service.rb +3 -0
  279. data/generated/google/apis/managedidentities_v1alpha1.rb +1 -1
  280. data/generated/google/apis/managedidentities_v1alpha1/classes.rb +54 -10
  281. data/generated/google/apis/managedidentities_v1alpha1/representations.rb +15 -0
  282. data/generated/google/apis/managedidentities_v1alpha1/service.rb +3 -0
  283. data/generated/google/apis/managedidentities_v1beta1.rb +1 -1
  284. data/generated/google/apis/managedidentities_v1beta1/classes.rb +54 -10
  285. data/generated/google/apis/managedidentities_v1beta1/representations.rb +15 -0
  286. data/generated/google/apis/managedidentities_v1beta1/service.rb +3 -0
  287. data/generated/google/apis/memcache_v1beta2.rb +1 -1
  288. data/generated/google/apis/memcache_v1beta2/classes.rb +1 -1
  289. data/generated/google/apis/ml_v1.rb +1 -1
  290. data/generated/google/apis/ml_v1/classes.rb +28 -14
  291. data/generated/google/apis/ml_v1/representations.rb +1 -0
  292. data/generated/google/apis/monitoring_v1.rb +1 -1
  293. data/generated/google/apis/monitoring_v1/classes.rb +2 -1
  294. data/generated/google/apis/monitoring_v3.rb +1 -1
  295. data/generated/google/apis/monitoring_v3/classes.rb +71 -38
  296. data/generated/google/apis/monitoring_v3/representations.rb +1 -0
  297. data/generated/google/apis/monitoring_v3/service.rb +13 -9
  298. data/generated/google/apis/networkmanagement_v1.rb +1 -1
  299. data/generated/google/apis/networkmanagement_v1/classes.rb +6 -6
  300. data/generated/google/apis/networkmanagement_v1beta1.rb +1 -1
  301. data/generated/google/apis/networkmanagement_v1beta1/classes.rb +6 -6
  302. data/generated/google/apis/osconfig_v1.rb +1 -1
  303. data/generated/google/apis/osconfig_v1/classes.rb +77 -2
  304. data/generated/google/apis/osconfig_v1/representations.rb +35 -0
  305. data/generated/google/apis/osconfig_v1beta.rb +1 -1
  306. data/generated/google/apis/osconfig_v1beta/classes.rb +77 -2
  307. data/generated/google/apis/osconfig_v1beta/representations.rb +35 -0
  308. data/generated/google/apis/pagespeedonline_v5.rb +1 -1
  309. data/generated/google/apis/people_v1.rb +4 -1
  310. data/generated/google/apis/people_v1/classes.rb +243 -397
  311. data/generated/google/apis/people_v1/service.rb +156 -384
  312. data/generated/google/apis/{androidpublisher_v1/classes.rb → playablelocations_v3.rb} +11 -6
  313. data/generated/google/apis/playablelocations_v3/classes.rb +633 -0
  314. data/generated/google/apis/playablelocations_v3/representations.rb +273 -0
  315. data/generated/google/apis/playablelocations_v3/service.rb +157 -0
  316. data/generated/google/apis/prod_tt_sasportal_v1alpha1.rb +1 -1
  317. data/generated/google/apis/prod_tt_sasportal_v1alpha1/classes.rb +19 -0
  318. data/generated/google/apis/prod_tt_sasportal_v1alpha1/representations.rb +14 -0
  319. data/generated/google/apis/pubsub_v1.rb +1 -1
  320. data/generated/google/apis/pubsub_v1/classes.rb +49 -30
  321. data/generated/google/apis/pubsub_v1/representations.rb +2 -0
  322. data/generated/google/apis/pubsub_v1/service.rb +35 -44
  323. data/generated/google/apis/realtimebidding_v1.rb +40 -0
  324. data/generated/google/apis/realtimebidding_v1/classes.rb +1436 -0
  325. data/generated/google/apis/realtimebidding_v1/representations.rb +565 -0
  326. data/generated/google/apis/realtimebidding_v1/service.rb +661 -0
  327. data/generated/google/apis/recommendationengine_v1beta1.rb +36 -0
  328. data/generated/google/apis/recommendationengine_v1beta1/classes.rb +2015 -0
  329. data/generated/google/apis/recommendationengine_v1beta1/representations.rb +848 -0
  330. data/generated/google/apis/recommendationengine_v1beta1/service.rb +990 -0
  331. data/generated/google/apis/recommender_v1.rb +1 -1
  332. data/generated/google/apis/recommender_v1/classes.rb +211 -0
  333. data/generated/google/apis/recommender_v1/representations.rb +96 -0
  334. data/generated/google/apis/recommender_v1/service.rb +123 -0
  335. data/generated/google/apis/redis_v1.rb +1 -1
  336. data/generated/google/apis/redis_v1/classes.rb +398 -1
  337. data/generated/google/apis/redis_v1/representations.rb +139 -0
  338. data/generated/google/apis/redis_v1/service.rb +1 -1
  339. data/generated/google/apis/redis_v1beta1.rb +1 -1
  340. data/generated/google/apis/redis_v1beta1/classes.rb +398 -1
  341. data/generated/google/apis/redis_v1beta1/representations.rb +139 -0
  342. data/generated/google/apis/redis_v1beta1/service.rb +1 -1
  343. data/generated/google/apis/remotebuildexecution_v1.rb +1 -1
  344. data/generated/google/apis/remotebuildexecution_v1/classes.rb +1 -1
  345. data/generated/google/apis/remotebuildexecution_v1alpha.rb +1 -1
  346. data/generated/google/apis/remotebuildexecution_v1alpha/classes.rb +1 -1
  347. data/generated/google/apis/remotebuildexecution_v2.rb +1 -1
  348. data/generated/google/apis/remotebuildexecution_v2/classes.rb +1 -1
  349. data/generated/google/apis/reseller_v1.rb +4 -3
  350. data/generated/google/apis/reseller_v1/classes.rb +219 -160
  351. data/generated/google/apis/reseller_v1/service.rb +247 -252
  352. data/generated/google/apis/run_v1.rb +2 -2
  353. data/generated/google/apis/run_v1/classes.rb +835 -1245
  354. data/generated/google/apis/run_v1/service.rb +196 -246
  355. data/generated/google/apis/run_v1alpha1.rb +2 -2
  356. data/generated/google/apis/run_v1alpha1/classes.rb +934 -1331
  357. data/generated/google/apis/run_v1alpha1/service.rb +322 -378
  358. data/generated/google/apis/run_v1beta1.rb +2 -2
  359. data/generated/google/apis/run_v1beta1/classes.rb +209 -276
  360. data/generated/google/apis/run_v1beta1/service.rb +17 -19
  361. data/generated/google/apis/sasportal_v1alpha1.rb +1 -1
  362. data/generated/google/apis/sasportal_v1alpha1/classes.rb +19 -0
  363. data/generated/google/apis/sasportal_v1alpha1/representations.rb +14 -0
  364. data/generated/google/apis/searchconsole_v1.rb +4 -3
  365. data/generated/google/apis/searchconsole_v1/service.rb +3 -2
  366. data/generated/google/apis/secretmanager_v1.rb +1 -1
  367. data/generated/google/apis/secretmanager_v1beta1.rb +1 -1
  368. data/generated/google/apis/securitycenter_v1.rb +1 -1
  369. data/generated/google/apis/securitycenter_v1/service.rb +4 -5
  370. data/generated/google/apis/securitycenter_v1p1beta1.rb +1 -1
  371. data/generated/google/apis/securitycenter_v1p1beta1/service.rb +2 -5
  372. data/generated/google/apis/serviceconsumermanagement_v1.rb +1 -1
  373. data/generated/google/apis/serviceconsumermanagement_v1/classes.rb +3 -3
  374. data/generated/google/apis/serviceconsumermanagement_v1/service.rb +7 -7
  375. data/generated/google/apis/serviceconsumermanagement_v1beta1.rb +1 -1
  376. data/generated/google/apis/serviceconsumermanagement_v1beta1/classes.rb +2 -2
  377. data/generated/google/apis/servicecontrol_v1.rb +1 -1
  378. data/generated/google/apis/servicecontrol_v1/classes.rb +12 -6
  379. data/generated/google/apis/servicecontrol_v1/representations.rb +1 -0
  380. data/generated/google/apis/servicemanagement_v1.rb +1 -1
  381. data/generated/google/apis/servicemanagement_v1/classes.rb +3 -2
  382. data/generated/google/apis/servicenetworking_v1.rb +1 -1
  383. data/generated/google/apis/servicenetworking_v1/classes.rb +2 -2
  384. data/generated/google/apis/servicenetworking_v1beta.rb +1 -1
  385. data/generated/google/apis/servicenetworking_v1beta/classes.rb +2 -2
  386. data/generated/google/apis/serviceusage_v1.rb +1 -1
  387. data/generated/google/apis/serviceusage_v1/classes.rb +2 -2
  388. data/generated/google/apis/serviceusage_v1beta1.rb +1 -1
  389. data/generated/google/apis/serviceusage_v1beta1/classes.rb +2 -2
  390. data/generated/google/apis/sheets_v4.rb +1 -1
  391. data/generated/google/apis/sheets_v4/classes.rb +118 -28
  392. data/generated/google/apis/spanner_v1.rb +1 -1
  393. data/generated/google/apis/spanner_v1/classes.rb +25 -20
  394. data/generated/google/apis/spanner_v1/service.rb +7 -0
  395. data/generated/google/apis/speech_v1.rb +1 -1
  396. data/generated/google/apis/speech_v1p1beta1.rb +1 -1
  397. data/generated/google/apis/sql_v1beta4.rb +1 -1
  398. data/generated/google/apis/sql_v1beta4/classes.rb +207 -200
  399. data/generated/google/apis/sql_v1beta4/representations.rb +2 -1
  400. data/generated/google/apis/sql_v1beta4/service.rb +2 -2
  401. data/generated/google/apis/storage_v1.rb +1 -1
  402. data/generated/google/apis/storage_v1/service.rb +2 -3
  403. data/generated/google/apis/testing_v1.rb +1 -1
  404. data/generated/google/apis/testing_v1/classes.rb +80 -6
  405. data/generated/google/apis/testing_v1/representations.rb +33 -0
  406. data/generated/google/apis/texttospeech_v1.rb +1 -1
  407. data/generated/google/apis/texttospeech_v1beta1.rb +1 -1
  408. data/generated/google/apis/toolresults_v1beta3.rb +1 -1
  409. data/generated/google/apis/toolresults_v1beta3/classes.rb +9 -0
  410. data/generated/google/apis/toolresults_v1beta3/representations.rb +1 -0
  411. data/generated/google/apis/toolresults_v1beta3/service.rb +498 -498
  412. data/generated/google/apis/{androidpublisher_v1/representations.rb → vectortile_v1.rb} +11 -6
  413. data/generated/google/apis/vectortile_v1/classes.rb +881 -0
  414. data/generated/google/apis/{cloudfunctions_v1beta2 → vectortile_v1}/representations.rb +105 -121
  415. data/generated/google/apis/vectortile_v1/service.rb +268 -0
  416. data/generated/google/apis/vision_v1.rb +1 -1
  417. data/generated/google/apis/vision_v1/classes.rb +2 -0
  418. data/generated/google/apis/vision_v1p1beta1.rb +1 -1
  419. data/generated/google/apis/vision_v1p1beta1/classes.rb +2 -0
  420. data/generated/google/apis/vision_v1p2beta1.rb +1 -1
  421. data/generated/google/apis/vision_v1p2beta1/classes.rb +2 -0
  422. data/generated/google/apis/webfonts_v1.rb +5 -5
  423. data/generated/google/apis/webfonts_v1/classes.rb +4 -3
  424. data/generated/google/apis/webfonts_v1/representations.rb +1 -2
  425. data/generated/google/apis/webfonts_v1/service.rb +15 -22
  426. data/generated/google/apis/youtube_partner_v1.rb +4 -3
  427. data/generated/google/apis/youtube_partner_v1/classes.rb +1106 -690
  428. data/generated/google/apis/youtube_partner_v1/representations.rb +357 -256
  429. data/generated/google/apis/youtube_partner_v1/service.rb +526 -1086
  430. data/generated/google/apis/youtube_v3.rb +1 -1
  431. data/generated/google/apis/youtube_v3/classes.rb +562 -2
  432. data/generated/google/apis/youtube_v3/representations.rb +282 -0
  433. data/generated/google/apis/youtube_v3/service.rb +270 -10
  434. data/lib/google/apis/version.rb +1 -1
  435. metadata +39 -23
  436. data/generated/google/apis/androidpublisher_v1/service.rb +0 -64
  437. data/generated/google/apis/androidpublisher_v1_1.rb +0 -34
  438. data/generated/google/apis/androidpublisher_v1_1/classes.rb +0 -94
  439. data/generated/google/apis/androidpublisher_v1_1/representations.rb +0 -45
  440. data/generated/google/apis/androidpublisher_v1_1/service.rb +0 -104
  441. data/generated/google/apis/androidpublisher_v2/classes.rb +0 -223
  442. data/generated/google/apis/androidpublisher_v2/service.rb +0 -160
  443. data/generated/google/apis/cloudfunctions_v1beta2/classes.rb +0 -841
  444. data/generated/google/apis/cloudfunctions_v1beta2/service.rb +0 -486
  445. data/generated/google/apis/groupsmigration_v1/classes.rb +0 -51
  446. data/generated/google/apis/groupsmigration_v1/representations.rb +0 -40
  447. data/generated/google/apis/groupsmigration_v1/service.rb +0 -100
@@ -70,6 +70,12 @@ module Google
70
70
  include Google::Apis::Core::JsonObjectSupport
71
71
  end
72
72
 
73
+ class Explanation
74
+ class Representation < Google::Apis::Core::JsonRepresentation; end
75
+
76
+ include Google::Apis::Core::JsonObjectSupport
77
+ end
78
+
73
79
  class ExportAssetsRequest
74
80
  class Representation < Google::Apis::Core::JsonRepresentation; end
75
81
 
@@ -184,6 +190,12 @@ module Google
184
190
  include Google::Apis::Core::JsonObjectSupport
185
191
  end
186
192
 
193
+ class IamPolicySearchResult
194
+ class Representation < Google::Apis::Core::JsonRepresentation; end
195
+
196
+ include Google::Apis::Core::JsonObjectSupport
197
+ end
198
+
187
199
  class ListFeedsResponse
188
200
  class Representation < Google::Apis::Core::JsonRepresentation; end
189
201
 
@@ -202,6 +214,12 @@ module Google
202
214
  include Google::Apis::Core::JsonObjectSupport
203
215
  end
204
216
 
217
+ class Permissions
218
+ class Representation < Google::Apis::Core::JsonRepresentation; end
219
+
220
+ include Google::Apis::Core::JsonObjectSupport
221
+ end
222
+
205
223
  class Policy
206
224
  class Representation < Google::Apis::Core::JsonRepresentation; end
207
225
 
@@ -220,6 +238,24 @@ module Google
220
238
  include Google::Apis::Core::JsonObjectSupport
221
239
  end
222
240
 
241
+ class ResourceSearchResult
242
+ class Representation < Google::Apis::Core::JsonRepresentation; end
243
+
244
+ include Google::Apis::Core::JsonObjectSupport
245
+ end
246
+
247
+ class SearchAllIamPoliciesResponse
248
+ class Representation < Google::Apis::Core::JsonRepresentation; end
249
+
250
+ include Google::Apis::Core::JsonObjectSupport
251
+ end
252
+
253
+ class SearchAllResourcesResponse
254
+ class Representation < Google::Apis::Core::JsonRepresentation; end
255
+
256
+ include Google::Apis::Core::JsonObjectSupport
257
+ end
258
+
223
259
  class Status
224
260
  class Representation < Google::Apis::Core::JsonRepresentation; end
225
261
 
@@ -325,6 +361,14 @@ module Google
325
361
  end
326
362
  end
327
363
 
364
+ class Explanation
365
+ # @private
366
+ class Representation < Google::Apis::Core::JsonRepresentation
367
+ hash :matched_permissions, as: 'matchedPermissions', class: Google::Apis::CloudassetV1::Permissions, decorator: Google::Apis::CloudassetV1::Permissions::Representation
368
+
369
+ end
370
+ end
371
+
328
372
  class ExportAssetsRequest
329
373
  # @private
330
374
  class Representation < Google::Apis::Core::JsonRepresentation
@@ -351,6 +395,8 @@ module Google
351
395
  class Representation < Google::Apis::Core::JsonRepresentation
352
396
  collection :asset_names, as: 'assetNames'
353
397
  collection :asset_types, as: 'assetTypes'
398
+ property :condition, as: 'condition', class: Google::Apis::CloudassetV1::Expr, decorator: Google::Apis::CloudassetV1::Expr::Representation
399
+
354
400
  property :content_type, as: 'contentType'
355
401
  property :feed_output_config, as: 'feedOutputConfig', class: Google::Apis::CloudassetV1::FeedOutputConfig, decorator: Google::Apis::CloudassetV1::FeedOutputConfig::Representation
356
402
 
@@ -523,6 +569,18 @@ module Google
523
569
  end
524
570
  end
525
571
 
572
+ class IamPolicySearchResult
573
+ # @private
574
+ class Representation < Google::Apis::Core::JsonRepresentation
575
+ property :explanation, as: 'explanation', class: Google::Apis::CloudassetV1::Explanation, decorator: Google::Apis::CloudassetV1::Explanation::Representation
576
+
577
+ property :policy, as: 'policy', class: Google::Apis::CloudassetV1::Policy, decorator: Google::Apis::CloudassetV1::Policy::Representation
578
+
579
+ property :project, as: 'project'
580
+ property :resource, as: 'resource'
581
+ end
582
+ end
583
+
526
584
  class ListFeedsResponse
527
585
  # @private
528
586
  class Representation < Google::Apis::Core::JsonRepresentation
@@ -553,6 +611,13 @@ module Google
553
611
  end
554
612
  end
555
613
 
614
+ class Permissions
615
+ # @private
616
+ class Representation < Google::Apis::Core::JsonRepresentation
617
+ collection :permissions, as: 'permissions'
618
+ end
619
+ end
620
+
556
621
  class Policy
557
622
  # @private
558
623
  class Representation < Google::Apis::Core::JsonRepresentation
@@ -585,6 +650,39 @@ module Google
585
650
  end
586
651
  end
587
652
 
653
+ class ResourceSearchResult
654
+ # @private
655
+ class Representation < Google::Apis::Core::JsonRepresentation
656
+ hash :additional_attributes, as: 'additionalAttributes'
657
+ property :asset_type, as: 'assetType'
658
+ property :description, as: 'description'
659
+ property :display_name, as: 'displayName'
660
+ hash :labels, as: 'labels'
661
+ property :location, as: 'location'
662
+ property :name, as: 'name'
663
+ collection :network_tags, as: 'networkTags'
664
+ property :project, as: 'project'
665
+ end
666
+ end
667
+
668
+ class SearchAllIamPoliciesResponse
669
+ # @private
670
+ class Representation < Google::Apis::Core::JsonRepresentation
671
+ property :next_page_token, as: 'nextPageToken'
672
+ collection :results, as: 'results', class: Google::Apis::CloudassetV1::IamPolicySearchResult, decorator: Google::Apis::CloudassetV1::IamPolicySearchResult::Representation
673
+
674
+ end
675
+ end
676
+
677
+ class SearchAllResourcesResponse
678
+ # @private
679
+ class Representation < Google::Apis::Core::JsonRepresentation
680
+ property :next_page_token, as: 'nextPageToken'
681
+ collection :results, as: 'results', class: Google::Apis::CloudassetV1::ResourceSearchResult, decorator: Google::Apis::CloudassetV1::ResourceSearchResult::Representation
682
+
683
+ end
684
+ end
685
+
588
686
  class Status
589
687
  # @private
590
688
  class Representation < Google::Apis::Core::JsonRepresentation
@@ -600,6 +698,9 @@ module Google
600
698
  property :asset, as: 'asset', class: Google::Apis::CloudassetV1::Asset, decorator: Google::Apis::CloudassetV1::Asset::Representation
601
699
 
602
700
  property :deleted, as: 'deleted'
701
+ property :prior_asset, as: 'priorAsset', class: Google::Apis::CloudassetV1::Asset, decorator: Google::Apis::CloudassetV1::Asset::Representation
702
+
703
+ property :prior_asset_state, as: 'priorAssetState'
603
704
  property :window, as: 'window', class: Google::Apis::CloudassetV1::TimeWindow, decorator: Google::Apis::CloudassetV1::TimeWindow::Representation
604
705
 
605
706
  end
@@ -354,6 +354,184 @@ module Google
354
354
  command.query['quotaUser'] = quota_user unless quota_user.nil?
355
355
  execute_or_queue_command(command, &block)
356
356
  end
357
+
358
+ # Searches all the IAM policies within the given accessible scope (e.g., a
359
+ # project, a folder or an organization). Callers should have
360
+ # `cloud.assets.SearchAllIamPolicies` permission upon the requested scope,
361
+ # otherwise the request will be rejected.
362
+ # @param [String] scope
363
+ # Required. A scope can be a project, a folder or an organization. The search is
364
+ # limited to the IAM policies within the `scope`.
365
+ # The allowed values are:
366
+ # * projects/`PROJECT_ID`
367
+ # * projects/`PROJECT_NUMBER`
368
+ # * folders/`FOLDER_NUMBER`
369
+ # * organizations/`ORGANIZATION_NUMBER`
370
+ # @param [Fixnum] page_size
371
+ # Optional. The page size for search result pagination. Page size is capped at
372
+ # 500 even
373
+ # if a larger value is given. If set to zero, server will pick an appropriate
374
+ # default. Returned results may be fewer than requested. When this happens,
375
+ # there could be more results as long as `next_page_token` is returned.
376
+ # @param [String] page_token
377
+ # Optional. If present, retrieve the next batch of results from the preceding
378
+ # call to
379
+ # this method. `page_token` must be the value of `next_page_token` from the
380
+ # previous response. The values of all other method parameters must be
381
+ # identical to those in the previous call.
382
+ # @param [String] query
383
+ # Optional. The query statement. An empty query can be specified to search all
384
+ # the IAM
385
+ # policies within the given `scope`.
386
+ # Examples:
387
+ # * `policy : "amy@gmail.com"` to find Cloud IAM policy bindings that
388
+ # specify user "amy@gmail.com".
389
+ # * `policy : "roles/compute.admin"` to find Cloud IAM policy bindings that
390
+ # specify the Compute Admin role.
391
+ # * `policy.role.permissions : "storage.buckets.update"` to find Cloud IAM
392
+ # policy bindings that specify a role containing "storage.buckets.update"
393
+ # permission.
394
+ # * `resource : "organizations/123"` to find Cloud IAM policy bindings that
395
+ # are set on "organizations/123".
396
+ # * `(resource : ("organizations/123" OR "folders/1234") AND policy : "amy")`
397
+ # to find Cloud IAM policy bindings that are set on "organizations/123" or
398
+ # "folders/1234", and also specify user "amy".
399
+ # See [how to construct a
400
+ # query](https://cloud.google.com/asset-inventory/docs/searching-iam-policies#
401
+ # how_to_construct_a_query)
402
+ # for more details.
403
+ # @param [String] fields
404
+ # Selector specifying which fields to include in a partial response.
405
+ # @param [String] quota_user
406
+ # Available to use for quota purposes for server-side applications. Can be any
407
+ # arbitrary string assigned to a user, but should not exceed 40 characters.
408
+ # @param [Google::Apis::RequestOptions] options
409
+ # Request-specific options
410
+ #
411
+ # @yield [result, err] Result & error if block supplied
412
+ # @yieldparam result [Google::Apis::CloudassetV1::SearchAllIamPoliciesResponse] parsed result object
413
+ # @yieldparam err [StandardError] error object if request failed
414
+ #
415
+ # @return [Google::Apis::CloudassetV1::SearchAllIamPoliciesResponse]
416
+ #
417
+ # @raise [Google::Apis::ServerError] An error occurred on the server and the request can be retried
418
+ # @raise [Google::Apis::ClientError] The request is invalid and should not be retried without modification
419
+ # @raise [Google::Apis::AuthorizationError] Authorization is required
420
+ def search_all_iam_policies(scope, page_size: nil, page_token: nil, query: nil, fields: nil, quota_user: nil, options: nil, &block)
421
+ command = make_simple_command(:get, 'v1/{+scope}:searchAllIamPolicies', options)
422
+ command.response_representation = Google::Apis::CloudassetV1::SearchAllIamPoliciesResponse::Representation
423
+ command.response_class = Google::Apis::CloudassetV1::SearchAllIamPoliciesResponse
424
+ command.params['scope'] = scope unless scope.nil?
425
+ command.query['pageSize'] = page_size unless page_size.nil?
426
+ command.query['pageToken'] = page_token unless page_token.nil?
427
+ command.query['query'] = query unless query.nil?
428
+ command.query['fields'] = fields unless fields.nil?
429
+ command.query['quotaUser'] = quota_user unless quota_user.nil?
430
+ execute_or_queue_command(command, &block)
431
+ end
432
+
433
+ # Searches all the resources within the given accessible scope (e.g., a
434
+ # project, a folder or an organization). Callers should have
435
+ # `cloud.assets.SearchAllResources` permission upon the requested scope,
436
+ # otherwise the request will be rejected.
437
+ # @param [String] scope
438
+ # Required. A scope can be a project, a folder or an organization. The search is
439
+ # limited to the resources within the `scope`.
440
+ # The allowed values are:
441
+ # * projects/`PROJECT_ID`
442
+ # * projects/`PROJECT_NUMBER`
443
+ # * folders/`FOLDER_NUMBER`
444
+ # * organizations/`ORGANIZATION_NUMBER`
445
+ # @param [Array<String>, String] asset_types
446
+ # Optional. A list of asset types that this request searches for. If empty, it
447
+ # will
448
+ # search all the [searchable asset
449
+ # types](https://cloud.google.com/asset-inventory/docs/supported-asset-types#
450
+ # searchable_asset_types).
451
+ # @param [String] order_by
452
+ # Optional. A comma separated list of fields specifying the sorting order of the
453
+ # results. The default order is ascending. Add " DESC" after the field name
454
+ # to indicate descending order. Redundant space characters are ignored.
455
+ # Example: "location DESC, name". Only string fields in the response are
456
+ # sortable, including `name`, `displayName`, `description`, `location`. All
457
+ # the other fields such as repeated fields (e.g., `networkTags`), map
458
+ # fields (e.g., `labels`) and struct fields (e.g., `additionalAttributes`)
459
+ # are not supported.
460
+ # @param [Fixnum] page_size
461
+ # Optional. The page size for search result pagination. Page size is capped at
462
+ # 500 even
463
+ # if a larger value is given. If set to zero, server will pick an appropriate
464
+ # default. Returned results may be fewer than requested. When this happens,
465
+ # there could be more results as long as `next_page_token` is returned.
466
+ # @param [String] page_token
467
+ # Optional. If present, then retrieve the next batch of results from the
468
+ # preceding call
469
+ # to this method. `page_token` must be the value of `next_page_token` from
470
+ # the previous response. The values of all other method parameters, must be
471
+ # identical to those in the previous call.
472
+ # @param [String] query
473
+ # Optional. The query statement. An empty query can be specified to search all
474
+ # the
475
+ # resources of certain `asset_types` within the given `scope`.
476
+ # Examples:
477
+ # * `name : "Important"` to find Cloud resources whose name contains
478
+ # "Important" as a word.
479
+ # * `displayName : "Impor*"` to find Cloud resources whose display name
480
+ # contains "Impor" as a word prefix.
481
+ # * `description : "*por*"` to find Cloud resources whose description
482
+ # contains "por" as a substring.
483
+ # * `location : "us-west*"` to find Cloud resources whose location is
484
+ # prefixed with "us-west".
485
+ # * `labels : "prod"` to find Cloud resources whose labels contain "prod" as
486
+ # a key or value.
487
+ # * `labels.env : "prod"` to find Cloud resources which have a label "env"
488
+ # and its value is "prod".
489
+ # * `labels.env : *` to find Cloud resources which have a label "env".
490
+ # * `"Important"` to find Cloud resources which contain "Important" as a word
491
+ # in any of the searchable fields.
492
+ # * `"Impor*"` to find Cloud resources which contain "Impor" as a word prefix
493
+ # in any of the searchable fields.
494
+ # * `"*por*"` to find Cloud resources which contain "por" as a substring in
495
+ # any of the searchable fields.
496
+ # * `("Important" AND location : ("us-west1" OR "global"))` to find Cloud
497
+ # resources which contain "Important" as a word in any of the searchable
498
+ # fields and are also located in the "us-west1" region or the "global"
499
+ # location.
500
+ # See [how to construct a
501
+ # query](https://cloud.google.com/asset-inventory/docs/searching-resources#
502
+ # how_to_construct_a_query)
503
+ # for more details.
504
+ # @param [String] fields
505
+ # Selector specifying which fields to include in a partial response.
506
+ # @param [String] quota_user
507
+ # Available to use for quota purposes for server-side applications. Can be any
508
+ # arbitrary string assigned to a user, but should not exceed 40 characters.
509
+ # @param [Google::Apis::RequestOptions] options
510
+ # Request-specific options
511
+ #
512
+ # @yield [result, err] Result & error if block supplied
513
+ # @yieldparam result [Google::Apis::CloudassetV1::SearchAllResourcesResponse] parsed result object
514
+ # @yieldparam err [StandardError] error object if request failed
515
+ #
516
+ # @return [Google::Apis::CloudassetV1::SearchAllResourcesResponse]
517
+ #
518
+ # @raise [Google::Apis::ServerError] An error occurred on the server and the request can be retried
519
+ # @raise [Google::Apis::ClientError] The request is invalid and should not be retried without modification
520
+ # @raise [Google::Apis::AuthorizationError] Authorization is required
521
+ def search_all_resources(scope, asset_types: nil, order_by: nil, page_size: nil, page_token: nil, query: nil, fields: nil, quota_user: nil, options: nil, &block)
522
+ command = make_simple_command(:get, 'v1/{+scope}:searchAllResources', options)
523
+ command.response_representation = Google::Apis::CloudassetV1::SearchAllResourcesResponse::Representation
524
+ command.response_class = Google::Apis::CloudassetV1::SearchAllResourcesResponse
525
+ command.params['scope'] = scope unless scope.nil?
526
+ command.query['assetTypes'] = asset_types unless asset_types.nil?
527
+ command.query['orderBy'] = order_by unless order_by.nil?
528
+ command.query['pageSize'] = page_size unless page_size.nil?
529
+ command.query['pageToken'] = page_token unless page_token.nil?
530
+ command.query['query'] = query unless query.nil?
531
+ command.query['fields'] = fields unless fields.nil?
532
+ command.query['quotaUser'] = quota_user unless quota_user.nil?
533
+ execute_or_queue_command(command, &block)
534
+ end
357
535
 
358
536
  protected
359
537
 
@@ -12,23 +12,23 @@
12
12
  # See the License for the specific language governing permissions and
13
13
  # limitations under the License.
14
14
 
15
- require 'google/apis/androidpublisher_v2/service.rb'
16
- require 'google/apis/androidpublisher_v2/classes.rb'
17
- require 'google/apis/androidpublisher_v2/representations.rb'
15
+ require 'google/apis/cloudasset_v1p5beta1/service.rb'
16
+ require 'google/apis/cloudasset_v1p5beta1/classes.rb'
17
+ require 'google/apis/cloudasset_v1p5beta1/representations.rb'
18
18
 
19
19
  module Google
20
20
  module Apis
21
- # Google Play Developer API
21
+ # Cloud Asset API
22
22
  #
23
- # Accesses Android application developers' Google Play accounts.
23
+ # The cloud asset API manages the history and inventory of cloud resources.
24
24
  #
25
- # @see https://developers.google.com/android-publisher
26
- module AndroidpublisherV2
27
- VERSION = 'V2'
28
- REVISION = '20200428'
25
+ # @see https://cloud.google.com/asset-inventory/docs/quickstart
26
+ module CloudassetV1p5beta1
27
+ VERSION = 'V1p5beta1'
28
+ REVISION = '20200717'
29
29
 
30
- # View and manage your Google Play Developer account
31
- AUTH_ANDROIDPUBLISHER = 'https://www.googleapis.com/auth/androidpublisher'
30
+ # View and manage your data across Google Cloud Platform services
31
+ AUTH_CLOUD_PLATFORM = 'https://www.googleapis.com/auth/cloud-platform'
32
32
  end
33
33
  end
34
34
  end
@@ -0,0 +1,1537 @@
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 CloudassetV1p5beta1
24
+
25
+ # An asset in Google Cloud. An asset can be any resource in the Google Cloud
26
+ # [resource
27
+ # hierarchy](https://cloud.google.com/resource-manager/docs/cloud-platform-
28
+ # resource-hierarchy),
29
+ # a resource outside the Google Cloud resource hierarchy (such as Google
30
+ # Kubernetes Engine clusters and objects), or a policy (e.g. Cloud IAM policy).
31
+ # See [Supported asset
32
+ # types](https://cloud.google.com/asset-inventory/docs/supported-asset-types)
33
+ # for more information.
34
+ class Asset
35
+ include Google::Apis::Core::Hashable
36
+
37
+ # An `AccessLevel` is a label that can be applied to requests to Google Cloud
38
+ # services, along with a list of requirements necessary for the label to be
39
+ # applied.
40
+ # Corresponds to the JSON property `accessLevel`
41
+ # @return [Google::Apis::CloudassetV1p5beta1::GoogleIdentityAccesscontextmanagerV1AccessLevel]
42
+ attr_accessor :access_level
43
+
44
+ # `AccessPolicy` is a container for `AccessLevels` (which define the necessary
45
+ # attributes to use Google Cloud services) and `ServicePerimeters` (which
46
+ # define regions of services able to freely pass data within a perimeter). An
47
+ # access policy is globally visible within an organization, and the
48
+ # restrictions it specifies apply to all projects within an organization.
49
+ # Corresponds to the JSON property `accessPolicy`
50
+ # @return [Google::Apis::CloudassetV1p5beta1::GoogleIdentityAccesscontextmanagerV1AccessPolicy]
51
+ attr_accessor :access_policy
52
+
53
+ # The ancestry path of an asset in Google Cloud [resource
54
+ # hierarchy](https://cloud.google.com/resource-manager/docs/cloud-platform-
55
+ # resource-hierarchy),
56
+ # represented as a list of relative resource names. An ancestry path starts
57
+ # with the closest ancestor in the hierarchy and ends at root. If the asset
58
+ # is a project, folder, or organization, the ancestry path starts from the
59
+ # asset itself.
60
+ # Example: `["projects/123456789", "folders/5432", "organizations/1234"]`
61
+ # Corresponds to the JSON property `ancestors`
62
+ # @return [Array<String>]
63
+ attr_accessor :ancestors
64
+
65
+ # The type of the asset. Example: `compute.googleapis.com/Disk`
66
+ # See [Supported asset
67
+ # types](https://cloud.google.com/asset-inventory/docs/supported-asset-types)
68
+ # for more information.
69
+ # Corresponds to the JSON property `assetType`
70
+ # @return [String]
71
+ attr_accessor :asset_type
72
+
73
+ # An Identity and Access Management (IAM) policy, which specifies access
74
+ # controls for Google Cloud resources.
75
+ # A `Policy` is a collection of `bindings`. A `binding` binds one or more
76
+ # `members` to a single `role`. Members can be user accounts, service accounts,
77
+ # Google groups, and domains (such as G Suite). A `role` is a named list of
78
+ # permissions; each `role` can be an IAM predefined role or a user-created
79
+ # custom role.
80
+ # For some types of Google Cloud resources, a `binding` can also specify a
81
+ # `condition`, which is a logical expression that allows access to a resource
82
+ # only if the expression evaluates to `true`. A condition can add constraints
83
+ # based on attributes of the request, the resource, or both. To learn which
84
+ # resources support conditions in their IAM policies, see the
85
+ # [IAM documentation](https://cloud.google.com/iam/help/conditions/resource-
86
+ # policies).
87
+ # **JSON example:**
88
+ # `
89
+ # "bindings": [
90
+ # `
91
+ # "role": "roles/resourcemanager.organizationAdmin",
92
+ # "members": [
93
+ # "user:mike@example.com",
94
+ # "group:admins@example.com",
95
+ # "domain:google.com",
96
+ # "serviceAccount:my-project-id@appspot.gserviceaccount.com"
97
+ # ]
98
+ # `,
99
+ # `
100
+ # "role": "roles/resourcemanager.organizationViewer",
101
+ # "members": [
102
+ # "user:eve@example.com"
103
+ # ],
104
+ # "condition": `
105
+ # "title": "expirable access",
106
+ # "description": "Does not grant access after Sep 2020",
107
+ # "expression": "request.time < timestamp('2020-10-01T00:00:00.000Z')
108
+ # ",
109
+ # `
110
+ # `
111
+ # ],
112
+ # "etag": "BwWWja0YfJA=",
113
+ # "version": 3
114
+ # `
115
+ # **YAML example:**
116
+ # bindings:
117
+ # - members:
118
+ # - user:mike@example.com
119
+ # - group:admins@example.com
120
+ # - domain:google.com
121
+ # - serviceAccount:my-project-id@appspot.gserviceaccount.com
122
+ # role: roles/resourcemanager.organizationAdmin
123
+ # - members:
124
+ # - user:eve@example.com
125
+ # role: roles/resourcemanager.organizationViewer
126
+ # condition:
127
+ # title: expirable access
128
+ # description: Does not grant access after Sep 2020
129
+ # expression: request.time < timestamp('2020-10-01T00:00:00.000Z')
130
+ # - etag: BwWWja0YfJA=
131
+ # - version: 3
132
+ # For a description of IAM and its features, see the
133
+ # [IAM documentation](https://cloud.google.com/iam/docs/).
134
+ # Corresponds to the JSON property `iamPolicy`
135
+ # @return [Google::Apis::CloudassetV1p5beta1::Policy]
136
+ attr_accessor :iam_policy
137
+
138
+ # The full name of the asset. Example:
139
+ # `//compute.googleapis.com/projects/my_project_123/zones/zone1/instances/
140
+ # instance1`
141
+ # See [Resource
142
+ # names](https://cloud.google.com/apis/design/resource_names#full_resource_name)
143
+ # for more information.
144
+ # Corresponds to the JSON property `name`
145
+ # @return [String]
146
+ attr_accessor :name
147
+
148
+ # A representation of an [organization
149
+ # policy](https://cloud.google.com/resource-manager/docs/organization-policy/
150
+ # overview#organization_policy).
151
+ # There can be more than one organization policy with different constraints
152
+ # set on a given resource.
153
+ # Corresponds to the JSON property `orgPolicy`
154
+ # @return [Array<Google::Apis::CloudassetV1p5beta1::GoogleCloudOrgpolicyV1Policy>]
155
+ attr_accessor :org_policy
156
+
157
+ # A representation of a Google Cloud resource.
158
+ # Corresponds to the JSON property `resource`
159
+ # @return [Google::Apis::CloudassetV1p5beta1::Resource]
160
+ attr_accessor :resource
161
+
162
+ # `ServicePerimeter` describes a set of Google Cloud resources which can freely
163
+ # import and export data amongst themselves, but not export outside of the
164
+ # `ServicePerimeter`. If a request with a source within this `ServicePerimeter`
165
+ # has a target outside of the `ServicePerimeter`, the request will be blocked.
166
+ # Otherwise the request is allowed. There are two types of Service Perimeter -
167
+ # Regular and Bridge. Regular Service Perimeters cannot overlap, a single
168
+ # Google Cloud project can only belong to a single regular Service Perimeter.
169
+ # Service Perimeter Bridges can contain only Google Cloud projects as members,
170
+ # a single Google Cloud project may belong to multiple Service Perimeter
171
+ # Bridges.
172
+ # Corresponds to the JSON property `servicePerimeter`
173
+ # @return [Google::Apis::CloudassetV1p5beta1::GoogleIdentityAccesscontextmanagerV1ServicePerimeter]
174
+ attr_accessor :service_perimeter
175
+
176
+ def initialize(**args)
177
+ update!(**args)
178
+ end
179
+
180
+ # Update properties of this object
181
+ def update!(**args)
182
+ @access_level = args[:access_level] if args.key?(:access_level)
183
+ @access_policy = args[:access_policy] if args.key?(:access_policy)
184
+ @ancestors = args[:ancestors] if args.key?(:ancestors)
185
+ @asset_type = args[:asset_type] if args.key?(:asset_type)
186
+ @iam_policy = args[:iam_policy] if args.key?(:iam_policy)
187
+ @name = args[:name] if args.key?(:name)
188
+ @org_policy = args[:org_policy] if args.key?(:org_policy)
189
+ @resource = args[:resource] if args.key?(:resource)
190
+ @service_perimeter = args[:service_perimeter] if args.key?(:service_perimeter)
191
+ end
192
+ end
193
+
194
+ # Specifies the audit configuration for a service.
195
+ # The configuration determines which permission types are logged, and what
196
+ # identities, if any, are exempted from logging.
197
+ # An AuditConfig must have one or more AuditLogConfigs.
198
+ # If there are AuditConfigs for both `allServices` and a specific service,
199
+ # the union of the two AuditConfigs is used for that service: the log_types
200
+ # specified in each AuditConfig are enabled, and the exempted_members in each
201
+ # AuditLogConfig are exempted.
202
+ # Example Policy with multiple AuditConfigs:
203
+ # `
204
+ # "audit_configs": [
205
+ # `
206
+ # "service": "allServices",
207
+ # "audit_log_configs": [
208
+ # `
209
+ # "log_type": "DATA_READ",
210
+ # "exempted_members": [
211
+ # "user:jose@example.com"
212
+ # ]
213
+ # `,
214
+ # `
215
+ # "log_type": "DATA_WRITE"
216
+ # `,
217
+ # `
218
+ # "log_type": "ADMIN_READ"
219
+ # `
220
+ # ]
221
+ # `,
222
+ # `
223
+ # "service": "sampleservice.googleapis.com",
224
+ # "audit_log_configs": [
225
+ # `
226
+ # "log_type": "DATA_READ"
227
+ # `,
228
+ # `
229
+ # "log_type": "DATA_WRITE",
230
+ # "exempted_members": [
231
+ # "user:aliya@example.com"
232
+ # ]
233
+ # `
234
+ # ]
235
+ # `
236
+ # ]
237
+ # `
238
+ # For sampleservice, this policy enables DATA_READ, DATA_WRITE and ADMIN_READ
239
+ # logging. It also exempts jose@example.com from DATA_READ logging, and
240
+ # aliya@example.com from DATA_WRITE logging.
241
+ class AuditConfig
242
+ include Google::Apis::Core::Hashable
243
+
244
+ # The configuration for logging of each type of permission.
245
+ # Corresponds to the JSON property `auditLogConfigs`
246
+ # @return [Array<Google::Apis::CloudassetV1p5beta1::AuditLogConfig>]
247
+ attr_accessor :audit_log_configs
248
+
249
+ # Specifies a service that will be enabled for audit logging.
250
+ # For example, `storage.googleapis.com`, `cloudsql.googleapis.com`.
251
+ # `allServices` is a special value that covers all services.
252
+ # Corresponds to the JSON property `service`
253
+ # @return [String]
254
+ attr_accessor :service
255
+
256
+ def initialize(**args)
257
+ update!(**args)
258
+ end
259
+
260
+ # Update properties of this object
261
+ def update!(**args)
262
+ @audit_log_configs = args[:audit_log_configs] if args.key?(:audit_log_configs)
263
+ @service = args[:service] if args.key?(:service)
264
+ end
265
+ end
266
+
267
+ # Provides the configuration for logging a type of permissions.
268
+ # Example:
269
+ # `
270
+ # "audit_log_configs": [
271
+ # `
272
+ # "log_type": "DATA_READ",
273
+ # "exempted_members": [
274
+ # "user:jose@example.com"
275
+ # ]
276
+ # `,
277
+ # `
278
+ # "log_type": "DATA_WRITE"
279
+ # `
280
+ # ]
281
+ # `
282
+ # This enables 'DATA_READ' and 'DATA_WRITE' logging, while exempting
283
+ # jose@example.com from DATA_READ logging.
284
+ class AuditLogConfig
285
+ include Google::Apis::Core::Hashable
286
+
287
+ # Specifies the identities that do not cause logging for this type of
288
+ # permission.
289
+ # Follows the same format of Binding.members.
290
+ # Corresponds to the JSON property `exemptedMembers`
291
+ # @return [Array<String>]
292
+ attr_accessor :exempted_members
293
+
294
+ # The log type that this config enables.
295
+ # Corresponds to the JSON property `logType`
296
+ # @return [String]
297
+ attr_accessor :log_type
298
+
299
+ def initialize(**args)
300
+ update!(**args)
301
+ end
302
+
303
+ # Update properties of this object
304
+ def update!(**args)
305
+ @exempted_members = args[:exempted_members] if args.key?(:exempted_members)
306
+ @log_type = args[:log_type] if args.key?(:log_type)
307
+ end
308
+ end
309
+
310
+ # Associates `members` with a `role`.
311
+ class Binding
312
+ include Google::Apis::Core::Hashable
313
+
314
+ # Represents a textual expression in the Common Expression Language (CEL)
315
+ # syntax. CEL is a C-like expression language. The syntax and semantics of CEL
316
+ # are documented at https://github.com/google/cel-spec.
317
+ # Example (Comparison):
318
+ # title: "Summary size limit"
319
+ # description: "Determines if a summary is less than 100 chars"
320
+ # expression: "document.summary.size() < 100"
321
+ # Example (Equality):
322
+ # title: "Requestor is owner"
323
+ # description: "Determines if requestor is the document owner"
324
+ # expression: "document.owner == request.auth.claims.email"
325
+ # Example (Logic):
326
+ # title: "Public documents"
327
+ # description: "Determine whether the document should be publicly visible"
328
+ # expression: "document.type != 'private' && document.type != 'internal'"
329
+ # Example (Data Manipulation):
330
+ # title: "Notification string"
331
+ # description: "Create a notification string with a timestamp."
332
+ # expression: "'New message received at ' + string(document.create_time)"
333
+ # The exact variables and functions that may be referenced within an expression
334
+ # are determined by the service that evaluates it. See the service
335
+ # documentation for additional information.
336
+ # Corresponds to the JSON property `condition`
337
+ # @return [Google::Apis::CloudassetV1p5beta1::Expr]
338
+ attr_accessor :condition
339
+
340
+ # Specifies the identities requesting access for a Cloud Platform resource.
341
+ # `members` can have the following values:
342
+ # * `allUsers`: A special identifier that represents anyone who is
343
+ # on the internet; with or without a Google account.
344
+ # * `allAuthenticatedUsers`: A special identifier that represents anyone
345
+ # who is authenticated with a Google account or a service account.
346
+ # * `user:`emailid``: An email address that represents a specific Google
347
+ # account. For example, `alice@example.com` .
348
+ # * `serviceAccount:`emailid``: An email address that represents a service
349
+ # account. For example, `my-other-app@appspot.gserviceaccount.com`.
350
+ # * `group:`emailid``: An email address that represents a Google group.
351
+ # For example, `admins@example.com`.
352
+ # * `deleted:user:`emailid`?uid=`uniqueid``: An email address (plus unique
353
+ # identifier) representing a user that has been recently deleted. For
354
+ # example, `alice@example.com?uid=123456789012345678901`. If the user is
355
+ # recovered, this value reverts to `user:`emailid`` and the recovered user
356
+ # retains the role in the binding.
357
+ # * `deleted:serviceAccount:`emailid`?uid=`uniqueid``: An email address (plus
358
+ # unique identifier) representing a service account that has been recently
359
+ # deleted. For example,
360
+ # `my-other-app@appspot.gserviceaccount.com?uid=123456789012345678901`.
361
+ # If the service account is undeleted, this value reverts to
362
+ # `serviceAccount:`emailid`` and the undeleted service account retains the
363
+ # role in the binding.
364
+ # * `deleted:group:`emailid`?uid=`uniqueid``: An email address (plus unique
365
+ # identifier) representing a Google group that has been recently
366
+ # deleted. For example, `admins@example.com?uid=123456789012345678901`. If
367
+ # the group is recovered, this value reverts to `group:`emailid`` and the
368
+ # recovered group retains the role in the binding.
369
+ # * `domain:`domain``: The G Suite domain (primary) that represents all the
370
+ # users of that domain. For example, `google.com` or `example.com`.
371
+ # Corresponds to the JSON property `members`
372
+ # @return [Array<String>]
373
+ attr_accessor :members
374
+
375
+ # Role that is assigned to `members`.
376
+ # For example, `roles/viewer`, `roles/editor`, or `roles/owner`.
377
+ # Corresponds to the JSON property `role`
378
+ # @return [String]
379
+ attr_accessor :role
380
+
381
+ def initialize(**args)
382
+ update!(**args)
383
+ end
384
+
385
+ # Update properties of this object
386
+ def update!(**args)
387
+ @condition = args[:condition] if args.key?(:condition)
388
+ @members = args[:members] if args.key?(:members)
389
+ @role = args[:role] if args.key?(:role)
390
+ end
391
+ end
392
+
393
+ # Represents a textual expression in the Common Expression Language (CEL)
394
+ # syntax. CEL is a C-like expression language. The syntax and semantics of CEL
395
+ # are documented at https://github.com/google/cel-spec.
396
+ # Example (Comparison):
397
+ # title: "Summary size limit"
398
+ # description: "Determines if a summary is less than 100 chars"
399
+ # expression: "document.summary.size() < 100"
400
+ # Example (Equality):
401
+ # title: "Requestor is owner"
402
+ # description: "Determines if requestor is the document owner"
403
+ # expression: "document.owner == request.auth.claims.email"
404
+ # Example (Logic):
405
+ # title: "Public documents"
406
+ # description: "Determine whether the document should be publicly visible"
407
+ # expression: "document.type != 'private' && document.type != 'internal'"
408
+ # Example (Data Manipulation):
409
+ # title: "Notification string"
410
+ # description: "Create a notification string with a timestamp."
411
+ # expression: "'New message received at ' + string(document.create_time)"
412
+ # The exact variables and functions that may be referenced within an expression
413
+ # are determined by the service that evaluates it. See the service
414
+ # documentation for additional information.
415
+ class Expr
416
+ include Google::Apis::Core::Hashable
417
+
418
+ # Optional. Description of the expression. This is a longer text which
419
+ # describes the expression, e.g. when hovered over it in a UI.
420
+ # Corresponds to the JSON property `description`
421
+ # @return [String]
422
+ attr_accessor :description
423
+
424
+ # Textual representation of an expression in Common Expression Language
425
+ # syntax.
426
+ # Corresponds to the JSON property `expression`
427
+ # @return [String]
428
+ attr_accessor :expression
429
+
430
+ # Optional. String indicating the location of the expression for error
431
+ # reporting, e.g. a file name and a position in the file.
432
+ # Corresponds to the JSON property `location`
433
+ # @return [String]
434
+ attr_accessor :location
435
+
436
+ # Optional. Title for the expression, i.e. a short string describing
437
+ # its purpose. This can be used e.g. in UIs which allow to enter the
438
+ # expression.
439
+ # Corresponds to the JSON property `title`
440
+ # @return [String]
441
+ attr_accessor :title
442
+
443
+ def initialize(**args)
444
+ update!(**args)
445
+ end
446
+
447
+ # Update properties of this object
448
+ def update!(**args)
449
+ @description = args[:description] if args.key?(:description)
450
+ @expression = args[:expression] if args.key?(:expression)
451
+ @location = args[:location] if args.key?(:location)
452
+ @title = args[:title] if args.key?(:title)
453
+ end
454
+ end
455
+
456
+ # Used in `policy_type` to specify how `boolean_policy` will behave at this
457
+ # resource.
458
+ class GoogleCloudOrgpolicyV1BooleanPolicy
459
+ include Google::Apis::Core::Hashable
460
+
461
+ # If `true`, then the `Policy` is enforced. If `false`, then any
462
+ # configuration is acceptable.
463
+ # Suppose you have a `Constraint`
464
+ # `constraints/compute.disableSerialPortAccess` with `constraint_default`
465
+ # set to `ALLOW`. A `Policy` for that `Constraint` exhibits the following
466
+ # behavior:
467
+ # - If the `Policy` at this resource has enforced set to `false`, serial
468
+ # port connection attempts will be allowed.
469
+ # - If the `Policy` at this resource has enforced set to `true`, serial
470
+ # port connection attempts will be refused.
471
+ # - If the `Policy` at this resource is `RestoreDefault`, serial port
472
+ # connection attempts will be allowed.
473
+ # - If no `Policy` is set at this resource or anywhere higher in the
474
+ # resource hierarchy, serial port connection attempts will be allowed.
475
+ # - If no `Policy` is set at this resource, but one exists higher in the
476
+ # resource hierarchy, the behavior is as if the`Policy` were set at
477
+ # this resource.
478
+ # The following examples demonstrate the different possible layerings:
479
+ # Example 1 (nearest `Constraint` wins):
480
+ # `organizations/foo` has a `Policy` with:
481
+ # `enforced: false`
482
+ # `projects/bar` has no `Policy` set.
483
+ # The constraint at `projects/bar` and `organizations/foo` will not be
484
+ # enforced.
485
+ # Example 2 (enforcement gets replaced):
486
+ # `organizations/foo` has a `Policy` with:
487
+ # `enforced: false`
488
+ # `projects/bar` has a `Policy` with:
489
+ # `enforced: true`
490
+ # The constraint at `organizations/foo` is not enforced.
491
+ # The constraint at `projects/bar` is enforced.
492
+ # Example 3 (RestoreDefault):
493
+ # `organizations/foo` has a `Policy` with:
494
+ # `enforced: true`
495
+ # `projects/bar` has a `Policy` with:
496
+ # `RestoreDefault: ```
497
+ # The constraint at `organizations/foo` is enforced.
498
+ # The constraint at `projects/bar` is not enforced, because
499
+ # `constraint_default` for the `Constraint` is `ALLOW`.
500
+ # Corresponds to the JSON property `enforced`
501
+ # @return [Boolean]
502
+ attr_accessor :enforced
503
+ alias_method :enforced?, :enforced
504
+
505
+ def initialize(**args)
506
+ update!(**args)
507
+ end
508
+
509
+ # Update properties of this object
510
+ def update!(**args)
511
+ @enforced = args[:enforced] if args.key?(:enforced)
512
+ end
513
+ end
514
+
515
+ # Used in `policy_type` to specify how `list_policy` behaves at this
516
+ # resource.
517
+ # `ListPolicy` can define specific values and subtrees of Cloud Resource
518
+ # Manager resource hierarchy (`Organizations`, `Folders`, `Projects`) that
519
+ # are allowed or denied by setting the `allowed_values` and `denied_values`
520
+ # fields. This is achieved by using the `under:` and optional `is:` prefixes.
521
+ # The `under:` prefix is used to denote resource subtree values.
522
+ # The `is:` prefix is used to denote specific values, and is required only
523
+ # if the value contains a ":". Values prefixed with "is:" are treated the
524
+ # same as values with no prefix.
525
+ # Ancestry subtrees must be in one of the following formats:
526
+ # - "projects/<project-id>", e.g. "projects/tokyo-rain-123"
527
+ # - "folders/<folder-id>", e.g. "folders/1234"
528
+ # - "organizations/<organization-id>", e.g. "organizations/1234"
529
+ # The `supports_under` field of the associated `Constraint` defines whether
530
+ # ancestry prefixes can be used. You can set `allowed_values` and
531
+ # `denied_values` in the same `Policy` if `all_values` is
532
+ # `ALL_VALUES_UNSPECIFIED`. `ALLOW` or `DENY` are used to allow or deny all
533
+ # values. If `all_values` is set to either `ALLOW` or `DENY`,
534
+ # `allowed_values` and `denied_values` must be unset.
535
+ class GoogleCloudOrgpolicyV1ListPolicy
536
+ include Google::Apis::Core::Hashable
537
+
538
+ # The policy all_values state.
539
+ # Corresponds to the JSON property `allValues`
540
+ # @return [String]
541
+ attr_accessor :all_values
542
+
543
+ # List of values allowed at this resource. Can only be set if `all_values`
544
+ # is set to `ALL_VALUES_UNSPECIFIED`.
545
+ # Corresponds to the JSON property `allowedValues`
546
+ # @return [Array<String>]
547
+ attr_accessor :allowed_values
548
+
549
+ # List of values denied at this resource. Can only be set if `all_values`
550
+ # is set to `ALL_VALUES_UNSPECIFIED`.
551
+ # Corresponds to the JSON property `deniedValues`
552
+ # @return [Array<String>]
553
+ attr_accessor :denied_values
554
+
555
+ # Determines the inheritance behavior for this `Policy`.
556
+ # By default, a `ListPolicy` set at a resource supersedes any `Policy` set
557
+ # anywhere up the resource hierarchy. However, if `inherit_from_parent` is
558
+ # set to `true`, then the values from the effective `Policy` of the parent
559
+ # resource are inherited, meaning the values set in this `Policy` are
560
+ # added to the values inherited up the hierarchy.
561
+ # Setting `Policy` hierarchies that inherit both allowed values and denied
562
+ # values isn't recommended in most circumstances to keep the configuration
563
+ # simple and understandable. However, it is possible to set a `Policy` with
564
+ # `allowed_values` set that inherits a `Policy` with `denied_values` set.
565
+ # In this case, the values that are allowed must be in `allowed_values` and
566
+ # not present in `denied_values`.
567
+ # For example, suppose you have a `Constraint`
568
+ # `constraints/serviceuser.services`, which has a `constraint_type` of
569
+ # `list_constraint`, and with `constraint_default` set to `ALLOW`.
570
+ # Suppose that at the Organization level, a `Policy` is applied that
571
+ # restricts the allowed API activations to ``E1`, `E2``. Then, if a
572
+ # `Policy` is applied to a project below the Organization that has
573
+ # `inherit_from_parent` set to `false` and field all_values set to DENY,
574
+ # then an attempt to activate any API will be denied.
575
+ # The following examples demonstrate different possible layerings for
576
+ # `projects/bar` parented by `organizations/foo`:
577
+ # Example 1 (no inherited values):
578
+ # `organizations/foo` has a `Policy` with values:
579
+ # `allowed_values: "E1" allowed_values:"E2"`
580
+ # `projects/bar` has `inherit_from_parent` `false` and values:
581
+ # `allowed_values: "E3" allowed_values: "E4"`
582
+ # The accepted values at `organizations/foo` are `E1`, `E2`.
583
+ # The accepted values at `projects/bar` are `E3`, and `E4`.
584
+ # Example 2 (inherited values):
585
+ # `organizations/foo` has a `Policy` with values:
586
+ # `allowed_values: "E1" allowed_values:"E2"`
587
+ # `projects/bar` has a `Policy` with values:
588
+ # `value: "E3" value: "E4" inherit_from_parent: true`
589
+ # The accepted values at `organizations/foo` are `E1`, `E2`.
590
+ # The accepted values at `projects/bar` are `E1`, `E2`, `E3`, and `E4`.
591
+ # Example 3 (inheriting both allowed and denied values):
592
+ # `organizations/foo` has a `Policy` with values:
593
+ # `allowed_values: "E1" allowed_values: "E2"`
594
+ # `projects/bar` has a `Policy` with:
595
+ # `denied_values: "E1"`
596
+ # The accepted values at `organizations/foo` are `E1`, `E2`.
597
+ # The value accepted at `projects/bar` is `E2`.
598
+ # Example 4 (RestoreDefault):
599
+ # `organizations/foo` has a `Policy` with values:
600
+ # `allowed_values: "E1" allowed_values:"E2"`
601
+ # `projects/bar` has a `Policy` with values:
602
+ # `RestoreDefault: ```
603
+ # The accepted values at `organizations/foo` are `E1`, `E2`.
604
+ # The accepted values at `projects/bar` are either all or none depending on
605
+ # the value of `constraint_default` (if `ALLOW`, all; if
606
+ # `DENY`, none).
607
+ # Example 5 (no policy inherits parent policy):
608
+ # `organizations/foo` has no `Policy` set.
609
+ # `projects/bar` has no `Policy` set.
610
+ # The accepted values at both levels are either all or none depending on
611
+ # the value of `constraint_default` (if `ALLOW`, all; if
612
+ # `DENY`, none).
613
+ # Example 6 (ListConstraint allowing all):
614
+ # `organizations/foo` has a `Policy` with values:
615
+ # `allowed_values: "E1" allowed_values: "E2"`
616
+ # `projects/bar` has a `Policy` with:
617
+ # `all: ALLOW`
618
+ # The accepted values at `organizations/foo` are `E1`, E2`.
619
+ # Any value is accepted at `projects/bar`.
620
+ # Example 7 (ListConstraint allowing none):
621
+ # `organizations/foo` has a `Policy` with values:
622
+ # `allowed_values: "E1" allowed_values: "E2"`
623
+ # `projects/bar` has a `Policy` with:
624
+ # `all: DENY`
625
+ # The accepted values at `organizations/foo` are `E1`, E2`.
626
+ # No value is accepted at `projects/bar`.
627
+ # Example 10 (allowed and denied subtrees of Resource Manager hierarchy):
628
+ # Given the following resource hierarchy
629
+ # O1->`F1, F2`; F1->`P1`; F2->`P2, P3`,
630
+ # `organizations/foo` has a `Policy` with values:
631
+ # `allowed_values: "under:organizations/O1"`
632
+ # `projects/bar` has a `Policy` with:
633
+ # `allowed_values: "under:projects/P3"`
634
+ # `denied_values: "under:folders/F2"`
635
+ # The accepted values at `organizations/foo` are `organizations/O1`,
636
+ # `folders/F1`, `folders/F2`, `projects/P1`, `projects/P2`,
637
+ # `projects/P3`.
638
+ # The accepted values at `projects/bar` are `organizations/O1`,
639
+ # `folders/F1`, `projects/P1`.
640
+ # Corresponds to the JSON property `inheritFromParent`
641
+ # @return [Boolean]
642
+ attr_accessor :inherit_from_parent
643
+ alias_method :inherit_from_parent?, :inherit_from_parent
644
+
645
+ # Optional. The Google Cloud Console will try to default to a configuration
646
+ # that matches the value specified in this `Policy`. If `suggested_value`
647
+ # is not set, it will inherit the value specified higher in the hierarchy,
648
+ # unless `inherit_from_parent` is `false`.
649
+ # Corresponds to the JSON property `suggestedValue`
650
+ # @return [String]
651
+ attr_accessor :suggested_value
652
+
653
+ def initialize(**args)
654
+ update!(**args)
655
+ end
656
+
657
+ # Update properties of this object
658
+ def update!(**args)
659
+ @all_values = args[:all_values] if args.key?(:all_values)
660
+ @allowed_values = args[:allowed_values] if args.key?(:allowed_values)
661
+ @denied_values = args[:denied_values] if args.key?(:denied_values)
662
+ @inherit_from_parent = args[:inherit_from_parent] if args.key?(:inherit_from_parent)
663
+ @suggested_value = args[:suggested_value] if args.key?(:suggested_value)
664
+ end
665
+ end
666
+
667
+ # Defines a Cloud Organization `Policy` which is used to specify `Constraints`
668
+ # for configurations of Cloud Platform resources.
669
+ class GoogleCloudOrgpolicyV1Policy
670
+ include Google::Apis::Core::Hashable
671
+
672
+ # Used in `policy_type` to specify how `boolean_policy` will behave at this
673
+ # resource.
674
+ # Corresponds to the JSON property `booleanPolicy`
675
+ # @return [Google::Apis::CloudassetV1p5beta1::GoogleCloudOrgpolicyV1BooleanPolicy]
676
+ attr_accessor :boolean_policy
677
+
678
+ # The name of the `Constraint` the `Policy` is configuring, for example,
679
+ # `constraints/serviceuser.services`.
680
+ # A [list of available
681
+ # constraints](/resource-manager/docs/organization-policy/org-policy-constraints)
682
+ # is available.
683
+ # Immutable after creation.
684
+ # Corresponds to the JSON property `constraint`
685
+ # @return [String]
686
+ attr_accessor :constraint
687
+
688
+ # An opaque tag indicating the current version of the `Policy`, used for
689
+ # concurrency control.
690
+ # When the `Policy` is returned from either a `GetPolicy` or a
691
+ # `ListOrgPolicy` request, this `etag` indicates the version of the current
692
+ # `Policy` to use when executing a read-modify-write loop.
693
+ # When the `Policy` is returned from a `GetEffectivePolicy` request, the
694
+ # `etag` will be unset.
695
+ # When the `Policy` is used in a `SetOrgPolicy` method, use the `etag` value
696
+ # that was returned from a `GetOrgPolicy` request as part of a
697
+ # read-modify-write loop for concurrency control. Not setting the `etag`in a
698
+ # `SetOrgPolicy` request will result in an unconditional write of the
699
+ # `Policy`.
700
+ # Corresponds to the JSON property `etag`
701
+ # NOTE: Values are automatically base64 encoded/decoded in the client library.
702
+ # @return [String]
703
+ attr_accessor :etag
704
+
705
+ # Used in `policy_type` to specify how `list_policy` behaves at this
706
+ # resource.
707
+ # `ListPolicy` can define specific values and subtrees of Cloud Resource
708
+ # Manager resource hierarchy (`Organizations`, `Folders`, `Projects`) that
709
+ # are allowed or denied by setting the `allowed_values` and `denied_values`
710
+ # fields. This is achieved by using the `under:` and optional `is:` prefixes.
711
+ # The `under:` prefix is used to denote resource subtree values.
712
+ # The `is:` prefix is used to denote specific values, and is required only
713
+ # if the value contains a ":". Values prefixed with "is:" are treated the
714
+ # same as values with no prefix.
715
+ # Ancestry subtrees must be in one of the following formats:
716
+ # - "projects/<project-id>", e.g. "projects/tokyo-rain-123"
717
+ # - "folders/<folder-id>", e.g. "folders/1234"
718
+ # - "organizations/<organization-id>", e.g. "organizations/1234"
719
+ # The `supports_under` field of the associated `Constraint` defines whether
720
+ # ancestry prefixes can be used. You can set `allowed_values` and
721
+ # `denied_values` in the same `Policy` if `all_values` is
722
+ # `ALL_VALUES_UNSPECIFIED`. `ALLOW` or `DENY` are used to allow or deny all
723
+ # values. If `all_values` is set to either `ALLOW` or `DENY`,
724
+ # `allowed_values` and `denied_values` must be unset.
725
+ # Corresponds to the JSON property `listPolicy`
726
+ # @return [Google::Apis::CloudassetV1p5beta1::GoogleCloudOrgpolicyV1ListPolicy]
727
+ attr_accessor :list_policy
728
+
729
+ # Ignores policies set above this resource and restores the
730
+ # `constraint_default` enforcement behavior of the specific `Constraint` at
731
+ # this resource.
732
+ # Suppose that `constraint_default` is set to `ALLOW` for the
733
+ # `Constraint` `constraints/serviceuser.services`. Suppose that organization
734
+ # foo.com sets a `Policy` at their Organization resource node that restricts
735
+ # the allowed service activations to deny all service activations. They
736
+ # could then set a `Policy` with the `policy_type` `restore_default` on
737
+ # several experimental projects, restoring the `constraint_default`
738
+ # enforcement of the `Constraint` for only those projects, allowing those
739
+ # projects to have all services activated.
740
+ # Corresponds to the JSON property `restoreDefault`
741
+ # @return [Google::Apis::CloudassetV1p5beta1::GoogleCloudOrgpolicyV1RestoreDefault]
742
+ attr_accessor :restore_default
743
+
744
+ # The time stamp the `Policy` was previously updated. This is set by the
745
+ # server, not specified by the caller, and represents the last time a call to
746
+ # `SetOrgPolicy` was made for that `Policy`. Any value set by the client will
747
+ # be ignored.
748
+ # Corresponds to the JSON property `updateTime`
749
+ # @return [String]
750
+ attr_accessor :update_time
751
+
752
+ # Version of the `Policy`. Default version is 0;
753
+ # Corresponds to the JSON property `version`
754
+ # @return [Fixnum]
755
+ attr_accessor :version
756
+
757
+ def initialize(**args)
758
+ update!(**args)
759
+ end
760
+
761
+ # Update properties of this object
762
+ def update!(**args)
763
+ @boolean_policy = args[:boolean_policy] if args.key?(:boolean_policy)
764
+ @constraint = args[:constraint] if args.key?(:constraint)
765
+ @etag = args[:etag] if args.key?(:etag)
766
+ @list_policy = args[:list_policy] if args.key?(:list_policy)
767
+ @restore_default = args[:restore_default] if args.key?(:restore_default)
768
+ @update_time = args[:update_time] if args.key?(:update_time)
769
+ @version = args[:version] if args.key?(:version)
770
+ end
771
+ end
772
+
773
+ # Ignores policies set above this resource and restores the
774
+ # `constraint_default` enforcement behavior of the specific `Constraint` at
775
+ # this resource.
776
+ # Suppose that `constraint_default` is set to `ALLOW` for the
777
+ # `Constraint` `constraints/serviceuser.services`. Suppose that organization
778
+ # foo.com sets a `Policy` at their Organization resource node that restricts
779
+ # the allowed service activations to deny all service activations. They
780
+ # could then set a `Policy` with the `policy_type` `restore_default` on
781
+ # several experimental projects, restoring the `constraint_default`
782
+ # enforcement of the `Constraint` for only those projects, allowing those
783
+ # projects to have all services activated.
784
+ class GoogleCloudOrgpolicyV1RestoreDefault
785
+ include Google::Apis::Core::Hashable
786
+
787
+ def initialize(**args)
788
+ update!(**args)
789
+ end
790
+
791
+ # Update properties of this object
792
+ def update!(**args)
793
+ end
794
+ end
795
+
796
+ # An `AccessLevel` is a label that can be applied to requests to Google Cloud
797
+ # services, along with a list of requirements necessary for the label to be
798
+ # applied.
799
+ class GoogleIdentityAccesscontextmanagerV1AccessLevel
800
+ include Google::Apis::Core::Hashable
801
+
802
+ # `BasicLevel` is an `AccessLevel` using a set of recommended features.
803
+ # Corresponds to the JSON property `basic`
804
+ # @return [Google::Apis::CloudassetV1p5beta1::GoogleIdentityAccesscontextmanagerV1BasicLevel]
805
+ attr_accessor :basic
806
+
807
+ # `CustomLevel` is an `AccessLevel` using the Cloud Common Expression Language
808
+ # to represent the necessary conditions for the level to apply to a request.
809
+ # See CEL spec at: https://github.com/google/cel-spec
810
+ # Corresponds to the JSON property `custom`
811
+ # @return [Google::Apis::CloudassetV1p5beta1::GoogleIdentityAccesscontextmanagerV1CustomLevel]
812
+ attr_accessor :custom
813
+
814
+ # Description of the `AccessLevel` and its use. Does not affect behavior.
815
+ # Corresponds to the JSON property `description`
816
+ # @return [String]
817
+ attr_accessor :description
818
+
819
+ # Required. Resource name for the Access Level. The `short_name` component
820
+ # must begin with a letter and only include alphanumeric and '_'. Format:
821
+ # `accessPolicies/`policy_id`/accessLevels/`short_name``. The maximum length
822
+ # of the `short_name` component is 50 characters.
823
+ # Corresponds to the JSON property `name`
824
+ # @return [String]
825
+ attr_accessor :name
826
+
827
+ # Human readable title. Must be unique within the Policy.
828
+ # Corresponds to the JSON property `title`
829
+ # @return [String]
830
+ attr_accessor :title
831
+
832
+ def initialize(**args)
833
+ update!(**args)
834
+ end
835
+
836
+ # Update properties of this object
837
+ def update!(**args)
838
+ @basic = args[:basic] if args.key?(:basic)
839
+ @custom = args[:custom] if args.key?(:custom)
840
+ @description = args[:description] if args.key?(:description)
841
+ @name = args[:name] if args.key?(:name)
842
+ @title = args[:title] if args.key?(:title)
843
+ end
844
+ end
845
+
846
+ # `AccessPolicy` is a container for `AccessLevels` (which define the necessary
847
+ # attributes to use Google Cloud services) and `ServicePerimeters` (which
848
+ # define regions of services able to freely pass data within a perimeter). An
849
+ # access policy is globally visible within an organization, and the
850
+ # restrictions it specifies apply to all projects within an organization.
851
+ class GoogleIdentityAccesscontextmanagerV1AccessPolicy
852
+ include Google::Apis::Core::Hashable
853
+
854
+ # Output only. An opaque identifier for the current version of the
855
+ # `AccessPolicy`. This will always be a strongly validated etag, meaning that
856
+ # two Access Polices will be identical if and only if their etags are
857
+ # identical. Clients should not expect this to be in any specific format.
858
+ # Corresponds to the JSON property `etag`
859
+ # @return [String]
860
+ attr_accessor :etag
861
+
862
+ # Output only. Resource name of the `AccessPolicy`. Format:
863
+ # `accessPolicies/`policy_id``
864
+ # Corresponds to the JSON property `name`
865
+ # @return [String]
866
+ attr_accessor :name
867
+
868
+ # Required. The parent of this `AccessPolicy` in the Cloud Resource
869
+ # Hierarchy. Currently immutable once created. Format:
870
+ # `organizations/`organization_id``
871
+ # Corresponds to the JSON property `parent`
872
+ # @return [String]
873
+ attr_accessor :parent
874
+
875
+ # Required. Human readable title. Does not affect behavior.
876
+ # Corresponds to the JSON property `title`
877
+ # @return [String]
878
+ attr_accessor :title
879
+
880
+ def initialize(**args)
881
+ update!(**args)
882
+ end
883
+
884
+ # Update properties of this object
885
+ def update!(**args)
886
+ @etag = args[:etag] if args.key?(:etag)
887
+ @name = args[:name] if args.key?(:name)
888
+ @parent = args[:parent] if args.key?(:parent)
889
+ @title = args[:title] if args.key?(:title)
890
+ end
891
+ end
892
+
893
+ # `BasicLevel` is an `AccessLevel` using a set of recommended features.
894
+ class GoogleIdentityAccesscontextmanagerV1BasicLevel
895
+ include Google::Apis::Core::Hashable
896
+
897
+ # How the `conditions` list should be combined to determine if a request is
898
+ # granted this `AccessLevel`. If AND is used, each `Condition` in
899
+ # `conditions` must be satisfied for the `AccessLevel` to be applied. If OR
900
+ # is used, at least one `Condition` in `conditions` must be satisfied for the
901
+ # `AccessLevel` to be applied. Default behavior is AND.
902
+ # Corresponds to the JSON property `combiningFunction`
903
+ # @return [String]
904
+ attr_accessor :combining_function
905
+
906
+ # Required. A list of requirements for the `AccessLevel` to be granted.
907
+ # Corresponds to the JSON property `conditions`
908
+ # @return [Array<Google::Apis::CloudassetV1p5beta1::GoogleIdentityAccesscontextmanagerV1Condition>]
909
+ attr_accessor :conditions
910
+
911
+ def initialize(**args)
912
+ update!(**args)
913
+ end
914
+
915
+ # Update properties of this object
916
+ def update!(**args)
917
+ @combining_function = args[:combining_function] if args.key?(:combining_function)
918
+ @conditions = args[:conditions] if args.key?(:conditions)
919
+ end
920
+ end
921
+
922
+ # A condition necessary for an `AccessLevel` to be granted. The Condition is an
923
+ # AND over its fields. So a Condition is true if: 1) the request IP is from one
924
+ # of the listed subnetworks AND 2) the originating device complies with the
925
+ # listed device policy AND 3) all listed access levels are granted AND 4) the
926
+ # request was sent at a time allowed by the DateTimeRestriction.
927
+ class GoogleIdentityAccesscontextmanagerV1Condition
928
+ include Google::Apis::Core::Hashable
929
+
930
+ # `DevicePolicy` specifies device specific restrictions necessary to acquire a
931
+ # given access level. A `DevicePolicy` specifies requirements for requests from
932
+ # devices to be granted access levels, it does not do any enforcement on the
933
+ # device. `DevicePolicy` acts as an AND over all specified fields, and each
934
+ # repeated field is an OR over its elements. Any unset fields are ignored. For
935
+ # example, if the proto is ` os_type : DESKTOP_WINDOWS, os_type :
936
+ # DESKTOP_LINUX, encryption_status: ENCRYPTED`, then the DevicePolicy will be
937
+ # true for requests originating from encrypted Linux desktops and encrypted
938
+ # Windows desktops.
939
+ # Corresponds to the JSON property `devicePolicy`
940
+ # @return [Google::Apis::CloudassetV1p5beta1::GoogleIdentityAccesscontextmanagerV1DevicePolicy]
941
+ attr_accessor :device_policy
942
+
943
+ # CIDR block IP subnetwork specification. May be IPv4 or IPv6. Note that for
944
+ # a CIDR IP address block, the specified IP address portion must be properly
945
+ # truncated (i.e. all the host bits must be zero) or the input is considered
946
+ # malformed. For example, "192.0.2.0/24" is accepted but "192.0.2.1/24" is
947
+ # not. Similarly, for IPv6, "2001:db8::/32" is accepted whereas
948
+ # "2001:db8::1/32" is not. The originating IP of a request must be in one of
949
+ # the listed subnets in order for this Condition to be true. If empty, all IP
950
+ # addresses are allowed.
951
+ # Corresponds to the JSON property `ipSubnetworks`
952
+ # @return [Array<String>]
953
+ attr_accessor :ip_subnetworks
954
+
955
+ # The request must be made by one of the provided user or service
956
+ # accounts. Groups are not supported.
957
+ # Syntax:
958
+ # `user:`emailid``
959
+ # `serviceAccount:`emailid``
960
+ # If not specified, a request may come from any user.
961
+ # Corresponds to the JSON property `members`
962
+ # @return [Array<String>]
963
+ attr_accessor :members
964
+
965
+ # Whether to negate the Condition. If true, the Condition becomes a NAND over
966
+ # its non-empty fields, each field must be false for the Condition overall to
967
+ # be satisfied. Defaults to false.
968
+ # Corresponds to the JSON property `negate`
969
+ # @return [Boolean]
970
+ attr_accessor :negate
971
+ alias_method :negate?, :negate
972
+
973
+ # The request must originate from one of the provided countries/regions.
974
+ # Must be valid ISO 3166-1 alpha-2 codes.
975
+ # Corresponds to the JSON property `regions`
976
+ # @return [Array<String>]
977
+ attr_accessor :regions
978
+
979
+ # A list of other access levels defined in the same `Policy`, referenced by
980
+ # resource name. Referencing an `AccessLevel` which does not exist is an
981
+ # error. All access levels listed must be granted for the Condition
982
+ # to be true. Example:
983
+ # "`accessPolicies/MY_POLICY/accessLevels/LEVEL_NAME"`
984
+ # Corresponds to the JSON property `requiredAccessLevels`
985
+ # @return [Array<String>]
986
+ attr_accessor :required_access_levels
987
+
988
+ def initialize(**args)
989
+ update!(**args)
990
+ end
991
+
992
+ # Update properties of this object
993
+ def update!(**args)
994
+ @device_policy = args[:device_policy] if args.key?(:device_policy)
995
+ @ip_subnetworks = args[:ip_subnetworks] if args.key?(:ip_subnetworks)
996
+ @members = args[:members] if args.key?(:members)
997
+ @negate = args[:negate] if args.key?(:negate)
998
+ @regions = args[:regions] if args.key?(:regions)
999
+ @required_access_levels = args[:required_access_levels] if args.key?(:required_access_levels)
1000
+ end
1001
+ end
1002
+
1003
+ # `CustomLevel` is an `AccessLevel` using the Cloud Common Expression Language
1004
+ # to represent the necessary conditions for the level to apply to a request.
1005
+ # See CEL spec at: https://github.com/google/cel-spec
1006
+ class GoogleIdentityAccesscontextmanagerV1CustomLevel
1007
+ include Google::Apis::Core::Hashable
1008
+
1009
+ # Represents a textual expression in the Common Expression Language (CEL)
1010
+ # syntax. CEL is a C-like expression language. The syntax and semantics of CEL
1011
+ # are documented at https://github.com/google/cel-spec.
1012
+ # Example (Comparison):
1013
+ # title: "Summary size limit"
1014
+ # description: "Determines if a summary is less than 100 chars"
1015
+ # expression: "document.summary.size() < 100"
1016
+ # Example (Equality):
1017
+ # title: "Requestor is owner"
1018
+ # description: "Determines if requestor is the document owner"
1019
+ # expression: "document.owner == request.auth.claims.email"
1020
+ # Example (Logic):
1021
+ # title: "Public documents"
1022
+ # description: "Determine whether the document should be publicly visible"
1023
+ # expression: "document.type != 'private' && document.type != 'internal'"
1024
+ # Example (Data Manipulation):
1025
+ # title: "Notification string"
1026
+ # description: "Create a notification string with a timestamp."
1027
+ # expression: "'New message received at ' + string(document.create_time)"
1028
+ # The exact variables and functions that may be referenced within an expression
1029
+ # are determined by the service that evaluates it. See the service
1030
+ # documentation for additional information.
1031
+ # Corresponds to the JSON property `expr`
1032
+ # @return [Google::Apis::CloudassetV1p5beta1::Expr]
1033
+ attr_accessor :expr
1034
+
1035
+ def initialize(**args)
1036
+ update!(**args)
1037
+ end
1038
+
1039
+ # Update properties of this object
1040
+ def update!(**args)
1041
+ @expr = args[:expr] if args.key?(:expr)
1042
+ end
1043
+ end
1044
+
1045
+ # `DevicePolicy` specifies device specific restrictions necessary to acquire a
1046
+ # given access level. A `DevicePolicy` specifies requirements for requests from
1047
+ # devices to be granted access levels, it does not do any enforcement on the
1048
+ # device. `DevicePolicy` acts as an AND over all specified fields, and each
1049
+ # repeated field is an OR over its elements. Any unset fields are ignored. For
1050
+ # example, if the proto is ` os_type : DESKTOP_WINDOWS, os_type :
1051
+ # DESKTOP_LINUX, encryption_status: ENCRYPTED`, then the DevicePolicy will be
1052
+ # true for requests originating from encrypted Linux desktops and encrypted
1053
+ # Windows desktops.
1054
+ class GoogleIdentityAccesscontextmanagerV1DevicePolicy
1055
+ include Google::Apis::Core::Hashable
1056
+
1057
+ # Allowed device management levels, an empty list allows all management
1058
+ # levels.
1059
+ # Corresponds to the JSON property `allowedDeviceManagementLevels`
1060
+ # @return [Array<String>]
1061
+ attr_accessor :allowed_device_management_levels
1062
+
1063
+ # Allowed encryptions statuses, an empty list allows all statuses.
1064
+ # Corresponds to the JSON property `allowedEncryptionStatuses`
1065
+ # @return [Array<String>]
1066
+ attr_accessor :allowed_encryption_statuses
1067
+
1068
+ # Allowed OS versions, an empty list allows all types and all versions.
1069
+ # Corresponds to the JSON property `osConstraints`
1070
+ # @return [Array<Google::Apis::CloudassetV1p5beta1::GoogleIdentityAccesscontextmanagerV1OsConstraint>]
1071
+ attr_accessor :os_constraints
1072
+
1073
+ # Whether the device needs to be approved by the customer admin.
1074
+ # Corresponds to the JSON property `requireAdminApproval`
1075
+ # @return [Boolean]
1076
+ attr_accessor :require_admin_approval
1077
+ alias_method :require_admin_approval?, :require_admin_approval
1078
+
1079
+ # Whether the device needs to be corp owned.
1080
+ # Corresponds to the JSON property `requireCorpOwned`
1081
+ # @return [Boolean]
1082
+ attr_accessor :require_corp_owned
1083
+ alias_method :require_corp_owned?, :require_corp_owned
1084
+
1085
+ # Whether or not screenlock is required for the DevicePolicy to be true.
1086
+ # Defaults to `false`.
1087
+ # Corresponds to the JSON property `requireScreenlock`
1088
+ # @return [Boolean]
1089
+ attr_accessor :require_screenlock
1090
+ alias_method :require_screenlock?, :require_screenlock
1091
+
1092
+ def initialize(**args)
1093
+ update!(**args)
1094
+ end
1095
+
1096
+ # Update properties of this object
1097
+ def update!(**args)
1098
+ @allowed_device_management_levels = args[:allowed_device_management_levels] if args.key?(:allowed_device_management_levels)
1099
+ @allowed_encryption_statuses = args[:allowed_encryption_statuses] if args.key?(:allowed_encryption_statuses)
1100
+ @os_constraints = args[:os_constraints] if args.key?(:os_constraints)
1101
+ @require_admin_approval = args[:require_admin_approval] if args.key?(:require_admin_approval)
1102
+ @require_corp_owned = args[:require_corp_owned] if args.key?(:require_corp_owned)
1103
+ @require_screenlock = args[:require_screenlock] if args.key?(:require_screenlock)
1104
+ end
1105
+ end
1106
+
1107
+ # A restriction on the OS type and version of devices making requests.
1108
+ class GoogleIdentityAccesscontextmanagerV1OsConstraint
1109
+ include Google::Apis::Core::Hashable
1110
+
1111
+ # The minimum allowed OS version. If not set, any version of this OS
1112
+ # satisfies the constraint. Format: `"major.minor.patch"`.
1113
+ # Examples: `"10.5.301"`, `"9.2.1"`.
1114
+ # Corresponds to the JSON property `minimumVersion`
1115
+ # @return [String]
1116
+ attr_accessor :minimum_version
1117
+
1118
+ # Required. The allowed OS type.
1119
+ # Corresponds to the JSON property `osType`
1120
+ # @return [String]
1121
+ attr_accessor :os_type
1122
+
1123
+ # Only allows requests from devices with a verified Chrome OS.
1124
+ # Verifications includes requirements that the device is enterprise-managed,
1125
+ # conformant to domain policies, and the caller has permission to call
1126
+ # the API targeted by the request.
1127
+ # Corresponds to the JSON property `requireVerifiedChromeOs`
1128
+ # @return [Boolean]
1129
+ attr_accessor :require_verified_chrome_os
1130
+ alias_method :require_verified_chrome_os?, :require_verified_chrome_os
1131
+
1132
+ def initialize(**args)
1133
+ update!(**args)
1134
+ end
1135
+
1136
+ # Update properties of this object
1137
+ def update!(**args)
1138
+ @minimum_version = args[:minimum_version] if args.key?(:minimum_version)
1139
+ @os_type = args[:os_type] if args.key?(:os_type)
1140
+ @require_verified_chrome_os = args[:require_verified_chrome_os] if args.key?(:require_verified_chrome_os)
1141
+ end
1142
+ end
1143
+
1144
+ # `ServicePerimeter` describes a set of Google Cloud resources which can freely
1145
+ # import and export data amongst themselves, but not export outside of the
1146
+ # `ServicePerimeter`. If a request with a source within this `ServicePerimeter`
1147
+ # has a target outside of the `ServicePerimeter`, the request will be blocked.
1148
+ # Otherwise the request is allowed. There are two types of Service Perimeter -
1149
+ # Regular and Bridge. Regular Service Perimeters cannot overlap, a single
1150
+ # Google Cloud project can only belong to a single regular Service Perimeter.
1151
+ # Service Perimeter Bridges can contain only Google Cloud projects as members,
1152
+ # a single Google Cloud project may belong to multiple Service Perimeter
1153
+ # Bridges.
1154
+ class GoogleIdentityAccesscontextmanagerV1ServicePerimeter
1155
+ include Google::Apis::Core::Hashable
1156
+
1157
+ # Description of the `ServicePerimeter` and its use. Does not affect
1158
+ # behavior.
1159
+ # Corresponds to the JSON property `description`
1160
+ # @return [String]
1161
+ attr_accessor :description
1162
+
1163
+ # Required. Resource name for the ServicePerimeter. The `short_name`
1164
+ # component must begin with a letter and only include alphanumeric and '_'.
1165
+ # Format: `accessPolicies/`policy_id`/servicePerimeters/`short_name``
1166
+ # Corresponds to the JSON property `name`
1167
+ # @return [String]
1168
+ attr_accessor :name
1169
+
1170
+ # Perimeter type indicator. A single project is
1171
+ # allowed to be a member of single regular perimeter, but multiple service
1172
+ # perimeter bridges. A project cannot be a included in a perimeter bridge
1173
+ # without being included in regular perimeter. For perimeter bridges,
1174
+ # the restricted service list as well as access level lists must be
1175
+ # empty.
1176
+ # Corresponds to the JSON property `perimeterType`
1177
+ # @return [String]
1178
+ attr_accessor :perimeter_type
1179
+
1180
+ # `ServicePerimeterConfig` specifies a set of Google Cloud resources that
1181
+ # describe specific Service Perimeter configuration.
1182
+ # Corresponds to the JSON property `spec`
1183
+ # @return [Google::Apis::CloudassetV1p5beta1::GoogleIdentityAccesscontextmanagerV1ServicePerimeterConfig]
1184
+ attr_accessor :spec
1185
+
1186
+ # `ServicePerimeterConfig` specifies a set of Google Cloud resources that
1187
+ # describe specific Service Perimeter configuration.
1188
+ # Corresponds to the JSON property `status`
1189
+ # @return [Google::Apis::CloudassetV1p5beta1::GoogleIdentityAccesscontextmanagerV1ServicePerimeterConfig]
1190
+ attr_accessor :status
1191
+
1192
+ # Human readable title. Must be unique within the Policy.
1193
+ # Corresponds to the JSON property `title`
1194
+ # @return [String]
1195
+ attr_accessor :title
1196
+
1197
+ # Use explicit dry run spec flag. Ordinarily, a dry-run spec implicitly
1198
+ # exists for all Service Perimeters, and that spec is identical to the
1199
+ # status for those Service Perimeters. When this flag is set, it inhibits the
1200
+ # generation of the implicit spec, thereby allowing the user to explicitly
1201
+ # provide a configuration ("spec") to use in a dry-run version of the Service
1202
+ # Perimeter. This allows the user to test changes to the enforced config
1203
+ # ("status") without actually enforcing them. This testing is done through
1204
+ # analyzing the differences between currently enforced and suggested
1205
+ # restrictions. use_explicit_dry_run_spec must bet set to True if any of the
1206
+ # fields in the spec are set to non-default values.
1207
+ # Corresponds to the JSON property `useExplicitDryRunSpec`
1208
+ # @return [Boolean]
1209
+ attr_accessor :use_explicit_dry_run_spec
1210
+ alias_method :use_explicit_dry_run_spec?, :use_explicit_dry_run_spec
1211
+
1212
+ def initialize(**args)
1213
+ update!(**args)
1214
+ end
1215
+
1216
+ # Update properties of this object
1217
+ def update!(**args)
1218
+ @description = args[:description] if args.key?(:description)
1219
+ @name = args[:name] if args.key?(:name)
1220
+ @perimeter_type = args[:perimeter_type] if args.key?(:perimeter_type)
1221
+ @spec = args[:spec] if args.key?(:spec)
1222
+ @status = args[:status] if args.key?(:status)
1223
+ @title = args[:title] if args.key?(:title)
1224
+ @use_explicit_dry_run_spec = args[:use_explicit_dry_run_spec] if args.key?(:use_explicit_dry_run_spec)
1225
+ end
1226
+ end
1227
+
1228
+ # `ServicePerimeterConfig` specifies a set of Google Cloud resources that
1229
+ # describe specific Service Perimeter configuration.
1230
+ class GoogleIdentityAccesscontextmanagerV1ServicePerimeterConfig
1231
+ include Google::Apis::Core::Hashable
1232
+
1233
+ # A list of `AccessLevel` resource names that allow resources within the
1234
+ # `ServicePerimeter` to be accessed from the internet. `AccessLevels` listed
1235
+ # must be in the same policy as this `ServicePerimeter`. Referencing a
1236
+ # nonexistent `AccessLevel` is a syntax error. If no `AccessLevel` names are
1237
+ # listed, resources within the perimeter can only be accessed via Google
1238
+ # Cloud calls with request origins within the perimeter. Example:
1239
+ # `"accessPolicies/MY_POLICY/accessLevels/MY_LEVEL"`.
1240
+ # For Service Perimeter Bridge, must be empty.
1241
+ # Corresponds to the JSON property `accessLevels`
1242
+ # @return [Array<String>]
1243
+ attr_accessor :access_levels
1244
+
1245
+ # A list of Google Cloud resources that are inside of the service perimeter.
1246
+ # Currently only projects are allowed. Format: `projects/`project_number``
1247
+ # Corresponds to the JSON property `resources`
1248
+ # @return [Array<String>]
1249
+ attr_accessor :resources
1250
+
1251
+ # Google Cloud services that are subject to the Service Perimeter
1252
+ # restrictions. For example, if `storage.googleapis.com` is specified, access
1253
+ # to the storage buckets inside the perimeter must meet the perimeter's
1254
+ # access restrictions.
1255
+ # Corresponds to the JSON property `restrictedServices`
1256
+ # @return [Array<String>]
1257
+ attr_accessor :restricted_services
1258
+
1259
+ # Specifies how APIs are allowed to communicate within the Service
1260
+ # Perimeter.
1261
+ # Corresponds to the JSON property `vpcAccessibleServices`
1262
+ # @return [Google::Apis::CloudassetV1p5beta1::GoogleIdentityAccesscontextmanagerV1VpcAccessibleServices]
1263
+ attr_accessor :vpc_accessible_services
1264
+
1265
+ def initialize(**args)
1266
+ update!(**args)
1267
+ end
1268
+
1269
+ # Update properties of this object
1270
+ def update!(**args)
1271
+ @access_levels = args[:access_levels] if args.key?(:access_levels)
1272
+ @resources = args[:resources] if args.key?(:resources)
1273
+ @restricted_services = args[:restricted_services] if args.key?(:restricted_services)
1274
+ @vpc_accessible_services = args[:vpc_accessible_services] if args.key?(:vpc_accessible_services)
1275
+ end
1276
+ end
1277
+
1278
+ # Specifies how APIs are allowed to communicate within the Service
1279
+ # Perimeter.
1280
+ class GoogleIdentityAccesscontextmanagerV1VpcAccessibleServices
1281
+ include Google::Apis::Core::Hashable
1282
+
1283
+ # The list of APIs usable within the Service Perimeter. Must be empty
1284
+ # unless 'enable_restriction' is True.
1285
+ # Corresponds to the JSON property `allowedServices`
1286
+ # @return [Array<String>]
1287
+ attr_accessor :allowed_services
1288
+
1289
+ # Whether to restrict API calls within the Service Perimeter to the list of
1290
+ # APIs specified in 'allowed_services'.
1291
+ # Corresponds to the JSON property `enableRestriction`
1292
+ # @return [Boolean]
1293
+ attr_accessor :enable_restriction
1294
+ alias_method :enable_restriction?, :enable_restriction
1295
+
1296
+ def initialize(**args)
1297
+ update!(**args)
1298
+ end
1299
+
1300
+ # Update properties of this object
1301
+ def update!(**args)
1302
+ @allowed_services = args[:allowed_services] if args.key?(:allowed_services)
1303
+ @enable_restriction = args[:enable_restriction] if args.key?(:enable_restriction)
1304
+ end
1305
+ end
1306
+
1307
+ # ListAssets response.
1308
+ class ListAssetsResponse
1309
+ include Google::Apis::Core::Hashable
1310
+
1311
+ # Assets.
1312
+ # Corresponds to the JSON property `assets`
1313
+ # @return [Array<Google::Apis::CloudassetV1p5beta1::Asset>]
1314
+ attr_accessor :assets
1315
+
1316
+ # Token to retrieve the next page of results. Set to empty if there are no
1317
+ # remaining results.
1318
+ # Corresponds to the JSON property `nextPageToken`
1319
+ # @return [String]
1320
+ attr_accessor :next_page_token
1321
+
1322
+ # Time the snapshot was taken.
1323
+ # Corresponds to the JSON property `readTime`
1324
+ # @return [String]
1325
+ attr_accessor :read_time
1326
+
1327
+ def initialize(**args)
1328
+ update!(**args)
1329
+ end
1330
+
1331
+ # Update properties of this object
1332
+ def update!(**args)
1333
+ @assets = args[:assets] if args.key?(:assets)
1334
+ @next_page_token = args[:next_page_token] if args.key?(:next_page_token)
1335
+ @read_time = args[:read_time] if args.key?(:read_time)
1336
+ end
1337
+ end
1338
+
1339
+ # An Identity and Access Management (IAM) policy, which specifies access
1340
+ # controls for Google Cloud resources.
1341
+ # A `Policy` is a collection of `bindings`. A `binding` binds one or more
1342
+ # `members` to a single `role`. Members can be user accounts, service accounts,
1343
+ # Google groups, and domains (such as G Suite). A `role` is a named list of
1344
+ # permissions; each `role` can be an IAM predefined role or a user-created
1345
+ # custom role.
1346
+ # For some types of Google Cloud resources, a `binding` can also specify a
1347
+ # `condition`, which is a logical expression that allows access to a resource
1348
+ # only if the expression evaluates to `true`. A condition can add constraints
1349
+ # based on attributes of the request, the resource, or both. To learn which
1350
+ # resources support conditions in their IAM policies, see the
1351
+ # [IAM documentation](https://cloud.google.com/iam/help/conditions/resource-
1352
+ # policies).
1353
+ # **JSON example:**
1354
+ # `
1355
+ # "bindings": [
1356
+ # `
1357
+ # "role": "roles/resourcemanager.organizationAdmin",
1358
+ # "members": [
1359
+ # "user:mike@example.com",
1360
+ # "group:admins@example.com",
1361
+ # "domain:google.com",
1362
+ # "serviceAccount:my-project-id@appspot.gserviceaccount.com"
1363
+ # ]
1364
+ # `,
1365
+ # `
1366
+ # "role": "roles/resourcemanager.organizationViewer",
1367
+ # "members": [
1368
+ # "user:eve@example.com"
1369
+ # ],
1370
+ # "condition": `
1371
+ # "title": "expirable access",
1372
+ # "description": "Does not grant access after Sep 2020",
1373
+ # "expression": "request.time < timestamp('2020-10-01T00:00:00.000Z')
1374
+ # ",
1375
+ # `
1376
+ # `
1377
+ # ],
1378
+ # "etag": "BwWWja0YfJA=",
1379
+ # "version": 3
1380
+ # `
1381
+ # **YAML example:**
1382
+ # bindings:
1383
+ # - members:
1384
+ # - user:mike@example.com
1385
+ # - group:admins@example.com
1386
+ # - domain:google.com
1387
+ # - serviceAccount:my-project-id@appspot.gserviceaccount.com
1388
+ # role: roles/resourcemanager.organizationAdmin
1389
+ # - members:
1390
+ # - user:eve@example.com
1391
+ # role: roles/resourcemanager.organizationViewer
1392
+ # condition:
1393
+ # title: expirable access
1394
+ # description: Does not grant access after Sep 2020
1395
+ # expression: request.time < timestamp('2020-10-01T00:00:00.000Z')
1396
+ # - etag: BwWWja0YfJA=
1397
+ # - version: 3
1398
+ # For a description of IAM and its features, see the
1399
+ # [IAM documentation](https://cloud.google.com/iam/docs/).
1400
+ class Policy
1401
+ include Google::Apis::Core::Hashable
1402
+
1403
+ # Specifies cloud audit logging configuration for this policy.
1404
+ # Corresponds to the JSON property `auditConfigs`
1405
+ # @return [Array<Google::Apis::CloudassetV1p5beta1::AuditConfig>]
1406
+ attr_accessor :audit_configs
1407
+
1408
+ # Associates a list of `members` to a `role`. Optionally, may specify a
1409
+ # `condition` that determines how and when the `bindings` are applied. Each
1410
+ # of the `bindings` must contain at least one member.
1411
+ # Corresponds to the JSON property `bindings`
1412
+ # @return [Array<Google::Apis::CloudassetV1p5beta1::Binding>]
1413
+ attr_accessor :bindings
1414
+
1415
+ # `etag` is used for optimistic concurrency control as a way to help
1416
+ # prevent simultaneous updates of a policy from overwriting each other.
1417
+ # It is strongly suggested that systems make use of the `etag` in the
1418
+ # read-modify-write cycle to perform policy updates in order to avoid race
1419
+ # conditions: An `etag` is returned in the response to `getIamPolicy`, and
1420
+ # systems are expected to put that etag in the request to `setIamPolicy` to
1421
+ # ensure that their change will be applied to the same version of the policy.
1422
+ # **Important:** If you use IAM Conditions, you must include the `etag` field
1423
+ # whenever you call `setIamPolicy`. If you omit this field, then IAM allows
1424
+ # you to overwrite a version `3` policy with a version `1` policy, and all of
1425
+ # the conditions in the version `3` policy are lost.
1426
+ # Corresponds to the JSON property `etag`
1427
+ # NOTE: Values are automatically base64 encoded/decoded in the client library.
1428
+ # @return [String]
1429
+ attr_accessor :etag
1430
+
1431
+ # Specifies the format of the policy.
1432
+ # Valid values are `0`, `1`, and `3`. Requests that specify an invalid value
1433
+ # are rejected.
1434
+ # Any operation that affects conditional role bindings must specify version
1435
+ # `3`. This requirement applies to the following operations:
1436
+ # * Getting a policy that includes a conditional role binding
1437
+ # * Adding a conditional role binding to a policy
1438
+ # * Changing a conditional role binding in a policy
1439
+ # * Removing any role binding, with or without a condition, from a policy
1440
+ # that includes conditions
1441
+ # **Important:** If you use IAM Conditions, you must include the `etag` field
1442
+ # whenever you call `setIamPolicy`. If you omit this field, then IAM allows
1443
+ # you to overwrite a version `3` policy with a version `1` policy, and all of
1444
+ # the conditions in the version `3` policy are lost.
1445
+ # If a policy does not include any conditions, operations on that policy may
1446
+ # specify any valid version or leave the field unset.
1447
+ # To learn which resources support conditions in their IAM policies, see the
1448
+ # [IAM documentation](https://cloud.google.com/iam/help/conditions/resource-
1449
+ # policies).
1450
+ # Corresponds to the JSON property `version`
1451
+ # @return [Fixnum]
1452
+ attr_accessor :version
1453
+
1454
+ def initialize(**args)
1455
+ update!(**args)
1456
+ end
1457
+
1458
+ # Update properties of this object
1459
+ def update!(**args)
1460
+ @audit_configs = args[:audit_configs] if args.key?(:audit_configs)
1461
+ @bindings = args[:bindings] if args.key?(:bindings)
1462
+ @etag = args[:etag] if args.key?(:etag)
1463
+ @version = args[:version] if args.key?(:version)
1464
+ end
1465
+ end
1466
+
1467
+ # A representation of a Google Cloud resource.
1468
+ class Resource
1469
+ include Google::Apis::Core::Hashable
1470
+
1471
+ # The content of the resource, in which some sensitive fields are removed
1472
+ # and may not be present.
1473
+ # Corresponds to the JSON property `data`
1474
+ # @return [Hash<String,Object>]
1475
+ attr_accessor :data
1476
+
1477
+ # The URL of the discovery document containing the resource's JSON schema.
1478
+ # Example:
1479
+ # `https://www.googleapis.com/discovery/v1/apis/compute/v1/rest`
1480
+ # This value is unspecified for resources that do not have an API based on a
1481
+ # discovery document, such as Cloud Bigtable.
1482
+ # Corresponds to the JSON property `discoveryDocumentUri`
1483
+ # @return [String]
1484
+ attr_accessor :discovery_document_uri
1485
+
1486
+ # The JSON schema name listed in the discovery document. Example:
1487
+ # `Project`
1488
+ # This value is unspecified for resources that do not have an API based on a
1489
+ # discovery document, such as Cloud Bigtable.
1490
+ # Corresponds to the JSON property `discoveryName`
1491
+ # @return [String]
1492
+ attr_accessor :discovery_name
1493
+
1494
+ # The full name of the immediate parent of this resource. See
1495
+ # [Resource
1496
+ # Names](https://cloud.google.com/apis/design/resource_names#full_resource_name)
1497
+ # for more information.
1498
+ # For Google Cloud assets, this value is the parent resource defined in the
1499
+ # [Cloud IAM policy
1500
+ # hierarchy](https://cloud.google.com/iam/docs/overview#policy_hierarchy).
1501
+ # Example:
1502
+ # `//cloudresourcemanager.googleapis.com/projects/my_project_123`
1503
+ # For third-party assets, this field may be set differently.
1504
+ # Corresponds to the JSON property `parent`
1505
+ # @return [String]
1506
+ attr_accessor :parent
1507
+
1508
+ # The REST URL for accessing the resource. An HTTP `GET` request using this
1509
+ # URL returns the resource itself. Example:
1510
+ # `https://cloudresourcemanager.googleapis.com/v1/projects/my-project-123`
1511
+ # This value is unspecified for resources without a REST API.
1512
+ # Corresponds to the JSON property `resourceUrl`
1513
+ # @return [String]
1514
+ attr_accessor :resource_url
1515
+
1516
+ # The API version. Example: "v1".
1517
+ # Corresponds to the JSON property `version`
1518
+ # @return [String]
1519
+ attr_accessor :version
1520
+
1521
+ def initialize(**args)
1522
+ update!(**args)
1523
+ end
1524
+
1525
+ # Update properties of this object
1526
+ def update!(**args)
1527
+ @data = args[:data] if args.key?(:data)
1528
+ @discovery_document_uri = args[:discovery_document_uri] if args.key?(:discovery_document_uri)
1529
+ @discovery_name = args[:discovery_name] if args.key?(:discovery_name)
1530
+ @parent = args[:parent] if args.key?(:parent)
1531
+ @resource_url = args[:resource_url] if args.key?(:resource_url)
1532
+ @version = args[:version] if args.key?(:version)
1533
+ end
1534
+ end
1535
+ end
1536
+ end
1537
+ end