google-api-client 0.36.4 → 0.37.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (481) hide show
  1. checksums.yaml +4 -4
  2. data/.yardopts +1 -0
  3. data/CHANGELOG.md +184 -0
  4. data/generated/google/apis/abusiveexperiencereport_v1.rb +1 -4
  5. data/generated/google/apis/acceleratedmobilepageurl_v1.rb +1 -1
  6. data/generated/google/apis/{servicebroker_v1.rb → accessapproval_v1.rb} +8 -10
  7. data/generated/google/apis/accessapproval_v1/classes.rb +417 -0
  8. data/generated/google/apis/accessapproval_v1/representations.rb +203 -0
  9. data/generated/google/apis/accessapproval_v1/service.rb +869 -0
  10. data/generated/google/apis/accesscontextmanager_v1.rb +1 -1
  11. data/generated/google/apis/accesscontextmanager_v1/classes.rb +113 -0
  12. data/generated/google/apis/accesscontextmanager_v1/representations.rb +32 -0
  13. data/generated/google/apis/accesscontextmanager_v1beta.rb +1 -1
  14. data/generated/google/apis/accesscontextmanager_v1beta/classes.rb +151 -0
  15. data/generated/google/apis/accesscontextmanager_v1beta/representations.rb +48 -0
  16. data/generated/google/apis/adexchangebuyer2_v2beta1.rb +1 -1
  17. data/generated/google/apis/adexperiencereport_v1.rb +1 -4
  18. data/generated/google/apis/{analytics_v2_4/classes.rb → admob_v1.rb} +11 -6
  19. data/generated/google/apis/admob_v1/classes.rb +951 -0
  20. data/generated/google/apis/admob_v1/representations.rb +378 -0
  21. data/generated/google/apis/admob_v1/service.rb +196 -0
  22. data/generated/google/apis/alertcenter_v1beta1.rb +1 -1
  23. data/generated/google/apis/alertcenter_v1beta1/classes.rb +252 -0
  24. data/generated/google/apis/alertcenter_v1beta1/representations.rb +126 -0
  25. data/generated/google/apis/analyticsreporting_v4.rb +1 -1
  26. data/generated/google/apis/androiddeviceprovisioning_v1.rb +1 -1
  27. data/generated/google/apis/androidenterprise_v1.rb +1 -1
  28. data/generated/google/apis/androidenterprise_v1/classes.rb +7 -1
  29. data/generated/google/apis/androidenterprise_v1/representations.rb +1 -0
  30. data/generated/google/apis/androidenterprise_v1/service.rb +0 -403
  31. data/generated/google/apis/androidmanagement_v1.rb +1 -1
  32. data/generated/google/apis/androidmanagement_v1/classes.rb +8 -2
  33. data/generated/google/apis/androidmanagement_v1/representations.rb +1 -0
  34. data/generated/google/apis/androidpublisher_v2.rb +1 -1
  35. data/generated/google/apis/androidpublisher_v2/classes.rb +1 -94
  36. data/generated/google/apis/androidpublisher_v2/representations.rb +0 -50
  37. data/generated/google/apis/androidpublisher_v3.rb +1 -1
  38. data/generated/google/apis/androidpublisher_v3/classes.rb +134 -94
  39. data/generated/google/apis/androidpublisher_v3/representations.rb +63 -50
  40. data/generated/google/apis/androidpublisher_v3/service.rb +158 -0
  41. data/generated/google/apis/appengine_v1beta.rb +1 -1
  42. data/generated/google/apis/appengine_v1beta/classes.rb +0 -38
  43. data/generated/google/apis/appengine_v1beta/representations.rb +0 -17
  44. data/generated/google/apis/appsactivity_v1.rb +1 -1
  45. data/generated/google/apis/bigqueryconnection_v1beta1.rb +1 -1
  46. data/generated/google/apis/bigqueryconnection_v1beta1/classes.rb +49 -15
  47. data/generated/google/apis/bigquerydatatransfer_v1.rb +1 -1
  48. data/generated/google/apis/bigquerydatatransfer_v1/classes.rb +49 -0
  49. data/generated/google/apis/bigquerydatatransfer_v1/representations.rb +19 -0
  50. data/generated/google/apis/bigqueryreservation_v1.rb +1 -1
  51. data/generated/google/apis/bigqueryreservation_v1/classes.rb +0 -22
  52. data/generated/google/apis/bigqueryreservation_v1/representations.rb +0 -13
  53. data/generated/google/apis/bigqueryreservation_v1alpha2.rb +1 -1
  54. data/generated/google/apis/bigqueryreservation_v1alpha2/classes.rb +0 -22
  55. data/generated/google/apis/bigqueryreservation_v1alpha2/representations.rb +0 -13
  56. data/generated/google/apis/bigqueryreservation_v1beta1.rb +1 -1
  57. data/generated/google/apis/bigqueryreservation_v1beta1/classes.rb +5 -99
  58. data/generated/google/apis/bigqueryreservation_v1beta1/representations.rb +0 -45
  59. data/generated/google/apis/bigqueryreservation_v1beta1/service.rb +1 -70
  60. data/generated/google/apis/bigtableadmin_v2.rb +1 -1
  61. data/generated/google/apis/bigtableadmin_v2/classes.rb +49 -15
  62. data/generated/google/apis/bigtableadmin_v2/service.rb +76 -4
  63. data/generated/google/apis/binaryauthorization_v1.rb +1 -1
  64. data/generated/google/apis/binaryauthorization_v1/classes.rb +49 -15
  65. data/generated/google/apis/binaryauthorization_v1beta1.rb +1 -1
  66. data/generated/google/apis/binaryauthorization_v1beta1/classes.rb +49 -15
  67. data/generated/google/apis/chat_v1.rb +1 -1
  68. data/generated/google/apis/classroom_v1.rb +1 -1
  69. data/generated/google/apis/cloudasset_v1.rb +2 -2
  70. data/generated/google/apis/cloudasset_v1/classes.rb +103 -20
  71. data/generated/google/apis/cloudasset_v1/representations.rb +16 -0
  72. data/generated/google/apis/cloudasset_v1/service.rb +1 -1
  73. data/generated/google/apis/cloudasset_v1beta1.rb +2 -2
  74. data/generated/google/apis/cloudasset_v1beta1/classes.rb +49 -15
  75. data/generated/google/apis/cloudasset_v1beta1/service.rb +1 -1
  76. data/generated/google/apis/cloudbilling_v1.rb +1 -1
  77. data/generated/google/apis/cloudbilling_v1/classes.rb +51 -16
  78. data/generated/google/apis/cloudbilling_v1/service.rb +8 -6
  79. data/generated/google/apis/cloudbuild_v1.rb +1 -1
  80. data/generated/google/apis/cloudbuild_v1/classes.rb +1 -1
  81. data/generated/google/apis/{servicebroker_v1beta1.rb → cloudbuild_v1alpha2.rb} +9 -11
  82. data/generated/google/apis/cloudbuild_v1alpha2/classes.rb +1124 -0
  83. data/generated/google/apis/cloudbuild_v1alpha2/representations.rb +429 -0
  84. data/generated/google/apis/cloudbuild_v1alpha2/service.rb +232 -0
  85. data/generated/google/apis/clouddebugger_v2.rb +1 -1
  86. data/generated/google/apis/clouderrorreporting_v1beta1.rb +1 -1
  87. data/generated/google/apis/clouderrorreporting_v1beta1/classes.rb +1 -1
  88. data/generated/google/apis/clouderrorreporting_v1beta1/service.rb +12 -12
  89. data/generated/google/apis/cloudfunctions_v1.rb +1 -1
  90. data/generated/google/apis/cloudfunctions_v1/classes.rb +63 -15
  91. data/generated/google/apis/cloudfunctions_v1/representations.rb +2 -0
  92. data/generated/google/apis/cloudidentity_v1.rb +1 -1
  93. data/generated/google/apis/cloudidentity_v1/classes.rb +560 -0
  94. data/generated/google/apis/cloudidentity_v1/representations.rb +226 -0
  95. data/generated/google/apis/cloudidentity_v1/service.rb +20 -13
  96. data/generated/google/apis/cloudidentity_v1beta1.rb +1 -1
  97. data/generated/google/apis/cloudidentity_v1beta1/classes.rb +765 -72
  98. data/generated/google/apis/cloudidentity_v1beta1/representations.rb +289 -0
  99. data/generated/google/apis/cloudidentity_v1beta1/service.rb +189 -79
  100. data/generated/google/apis/cloudiot_v1.rb +1 -1
  101. data/generated/google/apis/cloudiot_v1/classes.rb +49 -15
  102. data/generated/google/apis/cloudkms_v1.rb +1 -1
  103. data/generated/google/apis/cloudkms_v1/classes.rb +64 -21
  104. data/generated/google/apis/cloudkms_v1/representations.rb +1 -0
  105. data/generated/google/apis/cloudprivatecatalog_v1beta1.rb +1 -1
  106. data/generated/google/apis/cloudprivatecatalogproducer_v1beta1.rb +1 -1
  107. data/generated/google/apis/cloudprivatecatalogproducer_v1beta1/classes.rb +49 -15
  108. data/generated/google/apis/cloudprofiler_v2.rb +1 -1
  109. data/generated/google/apis/cloudresourcemanager_v1.rb +1 -1
  110. data/generated/google/apis/cloudresourcemanager_v1/classes.rb +49 -15
  111. data/generated/google/apis/cloudresourcemanager_v1/service.rb +3 -3
  112. data/generated/google/apis/cloudresourcemanager_v1beta1.rb +1 -1
  113. data/generated/google/apis/cloudresourcemanager_v1beta1/classes.rb +49 -15
  114. data/generated/google/apis/cloudresourcemanager_v2.rb +1 -1
  115. data/generated/google/apis/cloudresourcemanager_v2/classes.rb +49 -15
  116. data/generated/google/apis/cloudresourcemanager_v2beta1.rb +1 -1
  117. data/generated/google/apis/cloudresourcemanager_v2beta1/classes.rb +49 -15
  118. data/generated/google/apis/cloudscheduler_v1.rb +1 -1
  119. data/generated/google/apis/cloudscheduler_v1beta1.rb +1 -1
  120. data/generated/google/apis/cloudsearch_v1.rb +1 -1
  121. data/generated/google/apis/cloudsearch_v1/classes.rb +8 -0
  122. data/generated/google/apis/cloudsearch_v1/representations.rb +1 -0
  123. data/generated/google/apis/cloudshell_v1.rb +1 -1
  124. data/generated/google/apis/cloudshell_v1alpha1.rb +1 -1
  125. data/generated/google/apis/cloudtasks_v2.rb +1 -1
  126. data/generated/google/apis/cloudtasks_v2/classes.rb +49 -15
  127. data/generated/google/apis/cloudtasks_v2beta2.rb +1 -1
  128. data/generated/google/apis/cloudtasks_v2beta2/classes.rb +49 -15
  129. data/generated/google/apis/cloudtasks_v2beta3.rb +1 -1
  130. data/generated/google/apis/cloudtasks_v2beta3/classes.rb +49 -15
  131. data/generated/google/apis/cloudtrace_v1.rb +1 -1
  132. data/generated/google/apis/cloudtrace_v1/service.rb +6 -0
  133. data/generated/google/apis/cloudtrace_v2.rb +1 -1
  134. data/generated/google/apis/cloudtrace_v2/service.rb +4 -0
  135. data/generated/google/apis/commentanalyzer_v1alpha1.rb +1 -1
  136. data/generated/google/apis/composer_v1.rb +1 -1
  137. data/generated/google/apis/composer_v1/classes.rb +2 -0
  138. data/generated/google/apis/composer_v1beta1.rb +1 -1
  139. data/generated/google/apis/composer_v1beta1/classes.rb +59 -0
  140. data/generated/google/apis/composer_v1beta1/representations.rb +30 -0
  141. data/generated/google/apis/compute_alpha.rb +1 -1
  142. data/generated/google/apis/compute_alpha/classes.rb +429 -237
  143. data/generated/google/apis/compute_alpha/representations.rb +42 -3
  144. data/generated/google/apis/compute_alpha/service.rb +99 -32
  145. data/generated/google/apis/compute_beta.rb +1 -1
  146. data/generated/google/apis/compute_beta/classes.rb +1054 -235
  147. data/generated/google/apis/compute_beta/representations.rb +266 -0
  148. data/generated/google/apis/compute_beta/service.rb +5821 -4671
  149. data/generated/google/apis/compute_v1.rb +1 -1
  150. data/generated/google/apis/compute_v1/classes.rb +1118 -314
  151. data/generated/google/apis/compute_v1/representations.rb +313 -0
  152. data/generated/google/apis/compute_v1/service.rb +612 -24
  153. data/generated/google/apis/container_v1.rb +1 -1
  154. data/generated/google/apis/container_v1/classes.rb +247 -3
  155. data/generated/google/apis/container_v1/representations.rb +74 -0
  156. data/generated/google/apis/container_v1/service.rb +8 -0
  157. data/generated/google/apis/container_v1beta1.rb +1 -1
  158. data/generated/google/apis/container_v1beta1/classes.rb +284 -80
  159. data/generated/google/apis/container_v1beta1/representations.rb +85 -0
  160. data/generated/google/apis/container_v1beta1/service.rb +129 -121
  161. data/generated/google/apis/containeranalysis_v1alpha1.rb +1 -1
  162. data/generated/google/apis/containeranalysis_v1alpha1/classes.rb +49 -15
  163. data/generated/google/apis/containeranalysis_v1beta1.rb +1 -1
  164. data/generated/google/apis/containeranalysis_v1beta1/classes.rb +49 -15
  165. data/generated/google/apis/content_v2.rb +1 -1
  166. data/generated/google/apis/content_v2/classes.rb +97 -0
  167. data/generated/google/apis/content_v2/representations.rb +47 -0
  168. data/generated/google/apis/content_v2/service.rb +33 -0
  169. data/generated/google/apis/content_v2_1.rb +1 -1
  170. data/generated/google/apis/content_v2_1/classes.rb +191 -0
  171. data/generated/google/apis/content_v2_1/representations.rb +94 -0
  172. data/generated/google/apis/content_v2_1/service.rb +77 -0
  173. data/generated/google/apis/datacatalog_v1beta1.rb +1 -1
  174. data/generated/google/apis/datacatalog_v1beta1/classes.rb +157 -24
  175. data/generated/google/apis/datacatalog_v1beta1/representations.rb +33 -0
  176. data/generated/google/apis/datacatalog_v1beta1/service.rb +151 -66
  177. data/generated/google/apis/dataflow_v1b3.rb +1 -1
  178. data/generated/google/apis/dataflow_v1b3/classes.rb +120 -2
  179. data/generated/google/apis/dataflow_v1b3/representations.rb +63 -0
  180. data/generated/google/apis/dataflow_v1b3/service.rb +38 -0
  181. data/generated/google/apis/datafusion_v1beta1.rb +1 -1
  182. data/generated/google/apis/datafusion_v1beta1/classes.rb +134 -387
  183. data/generated/google/apis/datafusion_v1beta1/representations.rb +1 -132
  184. data/generated/google/apis/datafusion_v1beta1/service.rb +5 -1
  185. data/generated/google/apis/dataproc_v1.rb +1 -1
  186. data/generated/google/apis/dataproc_v1/classes.rb +156 -122
  187. data/generated/google/apis/dataproc_v1/service.rb +16 -14
  188. data/generated/google/apis/dataproc_v1beta2.rb +1 -1
  189. data/generated/google/apis/dataproc_v1beta2/classes.rb +155 -121
  190. data/generated/google/apis/dataproc_v1beta2/service.rb +28 -26
  191. data/generated/google/apis/dialogflow_v2.rb +1 -1
  192. data/generated/google/apis/dialogflow_v2/classes.rb +506 -9
  193. data/generated/google/apis/dialogflow_v2/representations.rb +191 -0
  194. data/generated/google/apis/dialogflow_v2/service.rb +477 -0
  195. data/generated/google/apis/dialogflow_v2beta1.rb +1 -1
  196. data/generated/google/apis/dialogflow_v2beta1/classes.rb +404 -9
  197. data/generated/google/apis/dialogflow_v2beta1/representations.rb +160 -0
  198. data/generated/google/apis/dialogflow_v2beta1/service.rb +919 -45
  199. data/generated/google/apis/dlp_v2.rb +1 -1
  200. data/generated/google/apis/dlp_v2/classes.rb +101 -92
  201. data/generated/google/apis/dlp_v2/service.rb +56 -56
  202. data/generated/google/apis/docs_v1.rb +1 -1
  203. data/generated/google/apis/docs_v1/classes.rb +275 -18
  204. data/generated/google/apis/docs_v1/representations.rb +75 -0
  205. data/generated/google/apis/doubleclickbidmanager_v1_1.rb +1 -1
  206. data/generated/google/apis/doubleclickbidmanager_v1_1/classes.rb +34 -0
  207. data/generated/google/apis/doubleclickbidmanager_v1_1/representations.rb +16 -0
  208. data/generated/google/apis/drive_v2.rb +1 -1
  209. data/generated/google/apis/drive_v2/classes.rb +1 -2
  210. data/generated/google/apis/drive_v2/service.rb +0 -92
  211. data/generated/google/apis/driveactivity_v2.rb +1 -1
  212. data/generated/google/apis/factchecktools_v1alpha1.rb +1 -1
  213. data/generated/google/apis/fcm_v1.rb +1 -1
  214. data/generated/google/apis/file_v1.rb +1 -1
  215. data/generated/google/apis/file_v1beta1.rb +1 -1
  216. data/generated/google/apis/file_v1beta1/classes.rb +1 -1
  217. data/generated/google/apis/firebase_v1beta1.rb +1 -1
  218. data/generated/google/apis/firebasedynamiclinks_v1.rb +1 -1
  219. data/generated/google/apis/firebasehosting_v1beta1.rb +1 -1
  220. data/generated/google/apis/firebasehosting_v1beta1/classes.rb +161 -0
  221. data/generated/google/apis/firebasehosting_v1beta1/representations.rb +64 -0
  222. data/generated/google/apis/firebasehosting_v1beta1/service.rb +67 -0
  223. data/generated/google/apis/firebaserules_v1.rb +1 -1
  224. data/generated/google/apis/firebaserules_v1/classes.rb +12 -0
  225. data/generated/google/apis/firebaserules_v1/representations.rb +2 -0
  226. data/generated/google/apis/firestore_v1.rb +1 -1
  227. data/generated/google/apis/firestore_v1/classes.rb +4 -2
  228. data/generated/google/apis/firestore_v1beta1.rb +1 -1
  229. data/generated/google/apis/firestore_v1beta1/classes.rb +4 -2
  230. data/generated/google/apis/fitness_v1.rb +1 -1
  231. data/generated/google/apis/fitness_v1/classes.rb +8 -4
  232. data/generated/google/apis/fitness_v1/service.rb +26 -8
  233. data/generated/google/apis/genomics_v1.rb +1 -1
  234. data/generated/google/apis/genomics_v1alpha2.rb +1 -1
  235. data/generated/google/apis/genomics_v2alpha1.rb +1 -1
  236. data/generated/google/apis/gmail_v1.rb +13 -1
  237. data/generated/google/apis/gmail_v1/service.rb +1 -1
  238. data/generated/google/apis/healthcare_v1beta1.rb +1 -1
  239. data/generated/google/apis/healthcare_v1beta1/classes.rb +113 -35
  240. data/generated/google/apis/healthcare_v1beta1/representations.rb +3 -0
  241. data/generated/google/apis/healthcare_v1beta1/service.rb +68 -36
  242. data/generated/google/apis/homegraph_v1.rb +1 -1
  243. data/generated/google/apis/iam_v1.rb +1 -1
  244. data/generated/google/apis/iam_v1/classes.rb +93 -23
  245. data/generated/google/apis/iap_v1.rb +1 -1
  246. data/generated/google/apis/iap_v1/classes.rb +66 -17
  247. data/generated/google/apis/iap_v1/representations.rb +1 -0
  248. data/generated/google/apis/iap_v1/service.rb +31 -33
  249. data/generated/google/apis/iap_v1beta1.rb +1 -1
  250. data/generated/google/apis/iap_v1beta1/classes.rb +49 -15
  251. data/generated/google/apis/jobs_v3.rb +1 -1
  252. data/generated/google/apis/jobs_v3/classes.rb +1 -0
  253. data/generated/google/apis/jobs_v3p1beta1.rb +1 -1
  254. data/generated/google/apis/jobs_v3p1beta1/classes.rb +8 -2
  255. data/generated/google/apis/kgsearch_v1.rb +1 -1
  256. data/generated/google/apis/language_v1.rb +1 -1
  257. data/generated/google/apis/language_v1beta1.rb +1 -1
  258. data/generated/google/apis/language_v1beta2.rb +1 -1
  259. data/generated/google/apis/libraryagent_v1.rb +1 -1
  260. data/generated/google/apis/logging_v2.rb +1 -1
  261. data/generated/google/apis/logging_v2/classes.rb +106 -4
  262. data/generated/google/apis/logging_v2/representations.rb +16 -0
  263. data/generated/google/apis/logging_v2/service.rb +184 -0
  264. data/generated/google/apis/manufacturers_v1.rb +1 -1
  265. data/generated/google/apis/ml_v1.rb +4 -1
  266. data/generated/google/apis/ml_v1/classes.rb +131 -26
  267. data/generated/google/apis/ml_v1/representations.rb +15 -0
  268. data/generated/google/apis/ml_v1/service.rb +2 -7
  269. data/generated/google/apis/monitoring_v1.rb +1 -1
  270. data/generated/google/apis/monitoring_v1/classes.rb +144 -109
  271. data/generated/google/apis/monitoring_v1/representations.rb +0 -18
  272. data/generated/google/apis/monitoring_v1/service.rb +11 -10
  273. data/generated/google/apis/monitoring_v3.rb +1 -1
  274. data/generated/google/apis/monitoring_v3/classes.rb +211 -99
  275. data/generated/google/apis/monitoring_v3/representations.rb +18 -0
  276. data/generated/google/apis/monitoring_v3/service.rb +178 -153
  277. data/generated/google/apis/{servicebroker_v1alpha1.rb → osconfig_v1beta.rb} +10 -11
  278. data/generated/google/apis/osconfig_v1beta/classes.rb +2357 -0
  279. data/generated/google/apis/osconfig_v1beta/representations.rb +966 -0
  280. data/generated/google/apis/osconfig_v1beta/service.rb +605 -0
  281. data/generated/google/apis/oslogin_v1.rb +1 -2
  282. data/generated/google/apis/oslogin_v1/service.rb +0 -1
  283. data/generated/google/apis/oslogin_v1alpha.rb +1 -2
  284. data/generated/google/apis/oslogin_v1alpha/service.rb +0 -1
  285. data/generated/google/apis/oslogin_v1beta.rb +1 -2
  286. data/generated/google/apis/oslogin_v1beta/service.rb +0 -1
  287. data/generated/google/apis/pagespeedonline_v5.rb +9 -4
  288. data/generated/google/apis/pagespeedonline_v5/classes.rb +529 -498
  289. data/generated/google/apis/pagespeedonline_v5/representations.rb +225 -221
  290. data/generated/google/apis/pagespeedonline_v5/service.rb +22 -24
  291. data/generated/google/apis/people_v1.rb +1 -1
  292. data/generated/google/apis/people_v1/classes.rb +14 -13
  293. data/generated/google/apis/people_v1/service.rb +12 -16
  294. data/generated/google/apis/policytroubleshooter_v1.rb +1 -1
  295. data/generated/google/apis/policytroubleshooter_v1/classes.rb +71 -19
  296. data/generated/google/apis/policytroubleshooter_v1beta.rb +1 -1
  297. data/generated/google/apis/policytroubleshooter_v1beta/classes.rb +71 -19
  298. data/generated/google/apis/poly_v1.rb +1 -1
  299. data/generated/google/apis/prod_tt_sasportal_v1alpha1.rb +1 -1
  300. data/generated/google/apis/prod_tt_sasportal_v1alpha1/classes.rb +39 -0
  301. data/generated/google/apis/prod_tt_sasportal_v1alpha1/representations.rb +27 -0
  302. data/generated/google/apis/prod_tt_sasportal_v1alpha1/service.rb +66 -0
  303. data/generated/google/apis/pubsub_v1.rb +1 -1
  304. data/generated/google/apis/pubsub_v1/classes.rb +119 -15
  305. data/generated/google/apis/pubsub_v1/representations.rb +17 -0
  306. data/generated/google/apis/pubsub_v1beta2.rb +1 -1
  307. data/generated/google/apis/pubsub_v1beta2/classes.rb +49 -15
  308. data/generated/google/apis/recommender_v1beta1.rb +1 -1
  309. data/generated/google/apis/recommender_v1beta1/classes.rb +2 -5
  310. data/generated/google/apis/recommender_v1beta1/service.rb +13 -11
  311. data/generated/google/apis/redis_v1.rb +1 -1
  312. data/generated/google/apis/redis_v1/classes.rb +10 -3
  313. data/generated/google/apis/redis_v1/representations.rb +1 -0
  314. data/generated/google/apis/redis_v1beta1.rb +1 -1
  315. data/generated/google/apis/redis_v1beta1/classes.rb +29 -3
  316. data/generated/google/apis/redis_v1beta1/representations.rb +14 -0
  317. data/generated/google/apis/redis_v1beta1/service.rb +36 -0
  318. data/generated/google/apis/remotebuildexecution_v1.rb +1 -1
  319. data/generated/google/apis/remotebuildexecution_v1/classes.rb +6 -0
  320. data/generated/google/apis/remotebuildexecution_v1/representations.rb +1 -0
  321. data/generated/google/apis/remotebuildexecution_v1alpha.rb +1 -1
  322. data/generated/google/apis/remotebuildexecution_v1alpha/classes.rb +6 -0
  323. data/generated/google/apis/remotebuildexecution_v1alpha/representations.rb +1 -0
  324. data/generated/google/apis/remotebuildexecution_v2.rb +1 -1
  325. data/generated/google/apis/remotebuildexecution_v2/classes.rb +6 -0
  326. data/generated/google/apis/remotebuildexecution_v2/representations.rb +1 -0
  327. data/generated/google/apis/run_v1.rb +1 -1
  328. data/generated/google/apis/run_v1/classes.rb +49 -15
  329. data/generated/google/apis/run_v1/service.rb +0 -30
  330. data/generated/google/apis/run_v1alpha1.rb +1 -1
  331. data/generated/google/apis/run_v1alpha1/classes.rb +278 -572
  332. data/generated/google/apis/run_v1alpha1/representations.rb +82 -223
  333. data/generated/google/apis/run_v1alpha1/service.rb +272 -682
  334. data/generated/google/apis/run_v1beta1.rb +4 -1
  335. data/generated/google/apis/runtimeconfig_v1.rb +1 -1
  336. data/generated/google/apis/runtimeconfig_v1beta1.rb +1 -1
  337. data/generated/google/apis/runtimeconfig_v1beta1/classes.rb +49 -15
  338. data/generated/google/apis/safebrowsing_v4.rb +1 -1
  339. data/generated/google/apis/safebrowsing_v4/classes.rb +2 -2
  340. data/generated/google/apis/sasportal_v1alpha1.rb +1 -1
  341. data/generated/google/apis/sasportal_v1alpha1/classes.rb +39 -0
  342. data/generated/google/apis/sasportal_v1alpha1/representations.rb +27 -0
  343. data/generated/google/apis/sasportal_v1alpha1/service.rb +66 -0
  344. data/generated/google/apis/script_v1.rb +1 -1
  345. data/generated/google/apis/searchconsole_v1.rb +1 -1
  346. data/generated/google/apis/secretmanager_v1beta1.rb +3 -2
  347. data/generated/google/apis/secretmanager_v1beta1/classes.rb +49 -15
  348. data/generated/google/apis/secretmanager_v1beta1/service.rb +2 -1
  349. data/generated/google/apis/securitycenter_v1.rb +1 -1
  350. data/generated/google/apis/securitycenter_v1/classes.rb +449 -15
  351. data/generated/google/apis/securitycenter_v1/representations.rb +138 -0
  352. data/generated/google/apis/securitycenter_v1beta1.rb +1 -1
  353. data/generated/google/apis/securitycenter_v1beta1/classes.rb +442 -15
  354. data/generated/google/apis/securitycenter_v1beta1/representations.rb +138 -0
  355. data/generated/google/apis/securitycenter_v1p1alpha1.rb +1 -1
  356. data/generated/google/apis/securitycenter_v1p1alpha1/classes.rb +393 -0
  357. data/generated/google/apis/securitycenter_v1p1alpha1/representations.rb +138 -0
  358. data/generated/google/apis/securitycenter_v1p1beta1.rb +35 -0
  359. data/generated/google/apis/securitycenter_v1p1beta1/classes.rb +1999 -0
  360. data/generated/google/apis/securitycenter_v1p1beta1/representations.rb +699 -0
  361. data/generated/google/apis/securitycenter_v1p1beta1/service.rb +1315 -0
  362. data/generated/google/apis/serviceconsumermanagement_v1.rb +1 -1
  363. data/generated/google/apis/serviceconsumermanagement_v1/classes.rb +101 -5
  364. data/generated/google/apis/serviceconsumermanagement_v1/representations.rb +19 -0
  365. data/generated/google/apis/servicecontrol_v1.rb +1 -1
  366. data/generated/google/apis/servicecontrol_v1/classes.rb +238 -0
  367. data/generated/google/apis/servicecontrol_v1/representations.rb +86 -0
  368. data/generated/google/apis/servicemanagement_v1.rb +1 -1
  369. data/generated/google/apis/servicemanagement_v1/classes.rb +156 -20
  370. data/generated/google/apis/servicemanagement_v1/representations.rb +18 -0
  371. data/generated/google/apis/servicenetworking_v1.rb +1 -1
  372. data/generated/google/apis/servicenetworking_v1/classes.rb +101 -5
  373. data/generated/google/apis/servicenetworking_v1/representations.rb +19 -0
  374. data/generated/google/apis/servicenetworking_v1beta.rb +1 -1
  375. data/generated/google/apis/servicenetworking_v1beta/classes.rb +101 -5
  376. data/generated/google/apis/servicenetworking_v1beta/representations.rb +19 -0
  377. data/generated/google/apis/serviceusage_v1.rb +1 -1
  378. data/generated/google/apis/serviceusage_v1/classes.rb +101 -5
  379. data/generated/google/apis/serviceusage_v1/representations.rb +19 -0
  380. data/generated/google/apis/serviceusage_v1beta1.rb +1 -1
  381. data/generated/google/apis/serviceusage_v1beta1/classes.rb +101 -5
  382. data/generated/google/apis/serviceusage_v1beta1/representations.rb +19 -0
  383. data/generated/google/apis/sheets_v4.rb +1 -1
  384. data/generated/google/apis/sheets_v4/classes.rb +195 -31
  385. data/generated/google/apis/sheets_v4/representations.rb +56 -0
  386. data/generated/google/apis/sheets_v4/service.rb +9 -11
  387. data/generated/google/apis/sourcerepo_v1.rb +1 -1
  388. data/generated/google/apis/sourcerepo_v1/classes.rb +172 -65
  389. data/generated/google/apis/sourcerepo_v1/service.rb +9 -1
  390. data/generated/google/apis/spanner_v1.rb +1 -1
  391. data/generated/google/apis/spanner_v1/classes.rb +49 -15
  392. data/generated/google/apis/spanner_v1/service.rb +1 -1
  393. data/generated/google/apis/speech_v1.rb +1 -1
  394. data/generated/google/apis/speech_v1/classes.rb +1 -8
  395. data/generated/google/apis/speech_v1/representations.rb +0 -1
  396. data/generated/google/apis/speech_v1p1beta1.rb +1 -1
  397. data/generated/google/apis/speech_v1p1beta1/classes.rb +3 -8
  398. data/generated/google/apis/speech_v1p1beta1/representations.rb +0 -1
  399. data/generated/google/apis/sql_v1beta4.rb +1 -1
  400. data/generated/google/apis/sql_v1beta4/classes.rb +130 -2
  401. data/generated/google/apis/sql_v1beta4/representations.rb +52 -0
  402. data/generated/google/apis/sql_v1beta4/service.rb +190 -9
  403. data/generated/google/apis/storage_v1.rb +1 -1
  404. data/generated/google/apis/storage_v1/classes.rb +16 -7
  405. data/generated/google/apis/storage_v1/service.rb +1 -1
  406. data/generated/google/apis/storage_v1beta2.rb +1 -1
  407. data/generated/google/apis/storage_v1beta2/service.rb +1 -1
  408. data/generated/google/apis/storagetransfer_v1.rb +1 -1
  409. data/generated/google/apis/storagetransfer_v1/classes.rb +13 -4
  410. data/generated/google/apis/storagetransfer_v1/service.rb +0 -30
  411. data/generated/google/apis/streetviewpublish_v1.rb +1 -1
  412. data/generated/google/apis/tagmanager_v1.rb +1 -1
  413. data/generated/google/apis/tagmanager_v1/classes.rb +2 -0
  414. data/generated/google/apis/tagmanager_v2.rb +1 -1
  415. data/generated/google/apis/tagmanager_v2/classes.rb +170 -0
  416. data/generated/google/apis/tagmanager_v2/representations.rb +49 -0
  417. data/generated/google/apis/tasks_v1.rb +1 -1
  418. data/generated/google/apis/tasks_v1/service.rb +4 -1
  419. data/generated/google/apis/toolresults_v1.rb +1 -1
  420. data/generated/google/apis/tpu_v1.rb +1 -1
  421. data/generated/google/apis/tpu_v1/classes.rb +0 -1
  422. data/generated/google/apis/tpu_v1alpha1.rb +1 -1
  423. data/generated/google/apis/tpu_v1alpha1/classes.rb +0 -1
  424. data/generated/google/apis/translate_v3.rb +37 -0
  425. data/generated/google/apis/translate_v3/classes.rb +943 -0
  426. data/generated/google/apis/translate_v3/representations.rb +439 -0
  427. data/generated/google/apis/translate_v3/service.rb +781 -0
  428. data/generated/google/apis/videointelligence_v1.rb +1 -1
  429. data/generated/google/apis/videointelligence_v1/classes.rb +97 -0
  430. data/generated/google/apis/videointelligence_v1/representations.rb +51 -0
  431. data/generated/google/apis/videointelligence_v1beta2.rb +1 -1
  432. data/generated/google/apis/videointelligence_v1beta2/classes.rb +97 -0
  433. data/generated/google/apis/videointelligence_v1beta2/representations.rb +51 -0
  434. data/generated/google/apis/videointelligence_v1p1beta1.rb +1 -1
  435. data/generated/google/apis/videointelligence_v1p1beta1/classes.rb +97 -0
  436. data/generated/google/apis/videointelligence_v1p1beta1/representations.rb +51 -0
  437. data/generated/google/apis/videointelligence_v1p2beta1.rb +1 -1
  438. data/generated/google/apis/videointelligence_v1p2beta1/classes.rb +97 -0
  439. data/generated/google/apis/videointelligence_v1p2beta1/representations.rb +51 -0
  440. data/generated/google/apis/videointelligence_v1p3beta1.rb +1 -1
  441. data/generated/google/apis/videointelligence_v1p3beta1/classes.rb +184 -0
  442. data/generated/google/apis/videointelligence_v1p3beta1/representations.rb +85 -0
  443. data/generated/google/apis/websecurityscanner_v1.rb +1 -1
  444. data/generated/google/apis/websecurityscanner_v1/classes.rb +63 -0
  445. data/generated/google/apis/websecurityscanner_v1/representations.rb +31 -0
  446. data/generated/google/apis/websecurityscanner_v1alpha.rb +1 -1
  447. data/generated/google/apis/websecurityscanner_v1beta.rb +1 -1
  448. data/generated/google/apis/websecurityscanner_v1beta/classes.rb +63 -0
  449. data/generated/google/apis/websecurityscanner_v1beta/representations.rb +31 -0
  450. data/generated/google/apis/youtube_analytics_v1.rb +1 -1
  451. data/generated/google/apis/youtube_analytics_v2.rb +1 -1
  452. data/generated/google/apis/youtube_partner_v1.rb +1 -1
  453. data/generated/google/apis/youtube_v3.rb +1 -1
  454. data/generated/google/apis/youtube_v3/classes.rb +61 -9
  455. data/generated/google/apis/youtube_v3/representations.rb +8 -1
  456. data/generated/google/apis/youtube_v3/service.rb +8 -2
  457. data/generated/google/apis/youtubereporting_v1.rb +1 -1
  458. data/lib/google/apis/core/base_service.rb +1 -1
  459. data/lib/google/apis/core/http_command.rb +1 -2
  460. data/lib/google/apis/version.rb +1 -1
  461. metadata +27 -27
  462. data/generated/google/apis/analytics_v2_4.rb +0 -37
  463. data/generated/google/apis/analytics_v2_4/representations.rb +0 -26
  464. data/generated/google/apis/analytics_v2_4/service.rb +0 -331
  465. data/generated/google/apis/plus_domains_v1.rb +0 -55
  466. data/generated/google/apis/plus_domains_v1/classes.rb +0 -2609
  467. data/generated/google/apis/plus_domains_v1/representations.rb +0 -1111
  468. data/generated/google/apis/plus_domains_v1/service.rb +0 -489
  469. data/generated/google/apis/replicapool_v1beta1.rb +0 -50
  470. data/generated/google/apis/replicapool_v1beta1/classes.rb +0 -918
  471. data/generated/google/apis/replicapool_v1beta1/representations.rb +0 -409
  472. data/generated/google/apis/replicapool_v1beta1/service.rb +0 -489
  473. data/generated/google/apis/servicebroker_v1/classes.rb +0 -368
  474. data/generated/google/apis/servicebroker_v1/representations.rb +0 -114
  475. data/generated/google/apis/servicebroker_v1/service.rb +0 -177
  476. data/generated/google/apis/servicebroker_v1alpha1/classes.rb +0 -1072
  477. data/generated/google/apis/servicebroker_v1alpha1/representations.rb +0 -367
  478. data/generated/google/apis/servicebroker_v1alpha1/service.rb +0 -737
  479. data/generated/google/apis/servicebroker_v1beta1/classes.rb +0 -1208
  480. data/generated/google/apis/servicebroker_v1beta1/representations.rb +0 -416
  481. data/generated/google/apis/servicebroker_v1beta1/service.rb +0 -926
@@ -40,6 +40,54 @@ module Google
40
40
  include Google::Apis::Core::JsonObjectSupport
41
41
  end
42
42
 
43
+ class GoogleCloudSecuritycenterV1p1beta1Asset
44
+ class Representation < Google::Apis::Core::JsonRepresentation; end
45
+
46
+ include Google::Apis::Core::JsonObjectSupport
47
+ end
48
+
49
+ class GoogleCloudSecuritycenterV1p1beta1Finding
50
+ class Representation < Google::Apis::Core::JsonRepresentation; end
51
+
52
+ include Google::Apis::Core::JsonObjectSupport
53
+ end
54
+
55
+ class GoogleCloudSecuritycenterV1p1beta1IamPolicy
56
+ class Representation < Google::Apis::Core::JsonRepresentation; end
57
+
58
+ include Google::Apis::Core::JsonObjectSupport
59
+ end
60
+
61
+ class GoogleCloudSecuritycenterV1p1beta1NotificationMessage
62
+ class Representation < Google::Apis::Core::JsonRepresentation; end
63
+
64
+ include Google::Apis::Core::JsonObjectSupport
65
+ end
66
+
67
+ class GoogleCloudSecuritycenterV1p1beta1RunAssetDiscoveryResponse
68
+ class Representation < Google::Apis::Core::JsonRepresentation; end
69
+
70
+ include Google::Apis::Core::JsonObjectSupport
71
+ end
72
+
73
+ class GoogleCloudSecuritycenterV1p1beta1SecurityCenterProperties
74
+ class Representation < Google::Apis::Core::JsonRepresentation; end
75
+
76
+ include Google::Apis::Core::JsonObjectSupport
77
+ end
78
+
79
+ class GoogleCloudSecuritycenterV1p1beta1SecurityMarks
80
+ class Representation < Google::Apis::Core::JsonRepresentation; end
81
+
82
+ include Google::Apis::Core::JsonObjectSupport
83
+ end
84
+
85
+ class GoogleCloudSecuritycenterV1p1beta1TemporalAsset
86
+ class Representation < Google::Apis::Core::JsonRepresentation; end
87
+
88
+ include Google::Apis::Core::JsonObjectSupport
89
+ end
90
+
43
91
  class ListOperationsResponse
44
92
  class Representation < Google::Apis::Core::JsonRepresentation; end
45
93
 
@@ -80,6 +128,96 @@ module Google
80
128
  end
81
129
  end
82
130
 
131
+ class GoogleCloudSecuritycenterV1p1beta1Asset
132
+ # @private
133
+ class Representation < Google::Apis::Core::JsonRepresentation
134
+ property :create_time, as: 'createTime'
135
+ property :iam_policy, as: 'iamPolicy', class: Google::Apis::SecuritycenterV1p1alpha1::GoogleCloudSecuritycenterV1p1beta1IamPolicy, decorator: Google::Apis::SecuritycenterV1p1alpha1::GoogleCloudSecuritycenterV1p1beta1IamPolicy::Representation
136
+
137
+ property :name, as: 'name'
138
+ hash :resource_properties, as: 'resourceProperties'
139
+ property :security_center_properties, as: 'securityCenterProperties', class: Google::Apis::SecuritycenterV1p1alpha1::GoogleCloudSecuritycenterV1p1beta1SecurityCenterProperties, decorator: Google::Apis::SecuritycenterV1p1alpha1::GoogleCloudSecuritycenterV1p1beta1SecurityCenterProperties::Representation
140
+
141
+ property :security_marks, as: 'securityMarks', class: Google::Apis::SecuritycenterV1p1alpha1::GoogleCloudSecuritycenterV1p1beta1SecurityMarks, decorator: Google::Apis::SecuritycenterV1p1alpha1::GoogleCloudSecuritycenterV1p1beta1SecurityMarks::Representation
142
+
143
+ property :update_time, as: 'updateTime'
144
+ end
145
+ end
146
+
147
+ class GoogleCloudSecuritycenterV1p1beta1Finding
148
+ # @private
149
+ class Representation < Google::Apis::Core::JsonRepresentation
150
+ property :category, as: 'category'
151
+ property :create_time, as: 'createTime'
152
+ property :event_time, as: 'eventTime'
153
+ property :external_uri, as: 'externalUri'
154
+ property :name, as: 'name'
155
+ property :parent, as: 'parent'
156
+ property :resource_name, as: 'resourceName'
157
+ property :security_marks, as: 'securityMarks', class: Google::Apis::SecuritycenterV1p1alpha1::GoogleCloudSecuritycenterV1p1beta1SecurityMarks, decorator: Google::Apis::SecuritycenterV1p1alpha1::GoogleCloudSecuritycenterV1p1beta1SecurityMarks::Representation
158
+
159
+ hash :source_properties, as: 'sourceProperties'
160
+ property :state, as: 'state'
161
+ end
162
+ end
163
+
164
+ class GoogleCloudSecuritycenterV1p1beta1IamPolicy
165
+ # @private
166
+ class Representation < Google::Apis::Core::JsonRepresentation
167
+ property :policy_blob, as: 'policyBlob'
168
+ end
169
+ end
170
+
171
+ class GoogleCloudSecuritycenterV1p1beta1NotificationMessage
172
+ # @private
173
+ class Representation < Google::Apis::Core::JsonRepresentation
174
+ property :finding, as: 'finding', class: Google::Apis::SecuritycenterV1p1alpha1::GoogleCloudSecuritycenterV1p1beta1Finding, decorator: Google::Apis::SecuritycenterV1p1alpha1::GoogleCloudSecuritycenterV1p1beta1Finding::Representation
175
+
176
+ property :notification_config_name, as: 'notificationConfigName'
177
+ property :temporal_asset, as: 'temporalAsset', class: Google::Apis::SecuritycenterV1p1alpha1::GoogleCloudSecuritycenterV1p1beta1TemporalAsset, decorator: Google::Apis::SecuritycenterV1p1alpha1::GoogleCloudSecuritycenterV1p1beta1TemporalAsset::Representation
178
+
179
+ end
180
+ end
181
+
182
+ class GoogleCloudSecuritycenterV1p1beta1RunAssetDiscoveryResponse
183
+ # @private
184
+ class Representation < Google::Apis::Core::JsonRepresentation
185
+ property :duration, as: 'duration'
186
+ property :state, as: 'state'
187
+ end
188
+ end
189
+
190
+ class GoogleCloudSecuritycenterV1p1beta1SecurityCenterProperties
191
+ # @private
192
+ class Representation < Google::Apis::Core::JsonRepresentation
193
+ property :resource_display_name, as: 'resourceDisplayName'
194
+ property :resource_name, as: 'resourceName'
195
+ collection :resource_owners, as: 'resourceOwners'
196
+ property :resource_parent, as: 'resourceParent'
197
+ property :resource_parent_display_name, as: 'resourceParentDisplayName'
198
+ property :resource_project, as: 'resourceProject'
199
+ property :resource_project_display_name, as: 'resourceProjectDisplayName'
200
+ property :resource_type, as: 'resourceType'
201
+ end
202
+ end
203
+
204
+ class GoogleCloudSecuritycenterV1p1beta1SecurityMarks
205
+ # @private
206
+ class Representation < Google::Apis::Core::JsonRepresentation
207
+ hash :marks, as: 'marks'
208
+ property :name, as: 'name'
209
+ end
210
+ end
211
+
212
+ class GoogleCloudSecuritycenterV1p1beta1TemporalAsset
213
+ # @private
214
+ class Representation < Google::Apis::Core::JsonRepresentation
215
+ property :asset, as: 'asset', class: Google::Apis::SecuritycenterV1p1alpha1::GoogleCloudSecuritycenterV1p1beta1Asset, decorator: Google::Apis::SecuritycenterV1p1alpha1::GoogleCloudSecuritycenterV1p1beta1Asset::Representation
216
+
217
+ property :change_type, as: 'changeType'
218
+ end
219
+ end
220
+
83
221
  class ListOperationsResponse
84
222
  # @private
85
223
  class Representation < Google::Apis::Core::JsonRepresentation
@@ -0,0 +1,35 @@
1
+ # Copyright 2015 Google Inc.
2
+ #
3
+ # Licensed under the Apache License, Version 2.0 (the "License");
4
+ # you may not use this file except in compliance with the License.
5
+ # You may obtain a copy of the License at
6
+ #
7
+ # http://www.apache.org/licenses/LICENSE-2.0
8
+ #
9
+ # Unless required by applicable law or agreed to in writing, software
10
+ # distributed under the License is distributed on an "AS IS" BASIS,
11
+ # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12
+ # See the License for the specific language governing permissions and
13
+ # limitations under the License.
14
+
15
+ require 'google/apis/securitycenter_v1p1beta1/service.rb'
16
+ require 'google/apis/securitycenter_v1p1beta1/classes.rb'
17
+ require 'google/apis/securitycenter_v1p1beta1/representations.rb'
18
+
19
+ module Google
20
+ module Apis
21
+ # Cloud Security Command Center API
22
+ #
23
+ # Cloud Security Command Center API provides access to temporal views of assets
24
+ # and findings within an organization.
25
+ #
26
+ # @see https://console.cloud.google.com/apis/api/securitycenter.googleapis.com/overview
27
+ module SecuritycenterV1p1beta1
28
+ VERSION = 'V1p1beta1'
29
+ REVISION = '20200131'
30
+
31
+ # View and manage your data across Google Cloud Platform services
32
+ AUTH_CLOUD_PLATFORM = 'https://www.googleapis.com/auth/cloud-platform'
33
+ end
34
+ end
35
+ end
@@ -0,0 +1,1999 @@
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 SecuritycenterV1p1beta1
24
+
25
+ # The configuration used for Asset Discovery runs.
26
+ class AssetDiscoveryConfig
27
+ include Google::Apis::Core::Hashable
28
+
29
+ # The mode to use for filtering asset discovery.
30
+ # Corresponds to the JSON property `inclusionMode`
31
+ # @return [String]
32
+ attr_accessor :inclusion_mode
33
+
34
+ # The project ids to use for filtering asset discovery.
35
+ # Corresponds to the JSON property `projectIds`
36
+ # @return [Array<String>]
37
+ attr_accessor :project_ids
38
+
39
+ def initialize(**args)
40
+ update!(**args)
41
+ end
42
+
43
+ # Update properties of this object
44
+ def update!(**args)
45
+ @inclusion_mode = args[:inclusion_mode] if args.key?(:inclusion_mode)
46
+ @project_ids = args[:project_ids] if args.key?(:project_ids)
47
+ end
48
+ end
49
+
50
+ # Specifies the audit configuration for a service.
51
+ # The configuration determines which permission types are logged, and what
52
+ # identities, if any, are exempted from logging.
53
+ # An AuditConfig must have one or more AuditLogConfigs.
54
+ # If there are AuditConfigs for both `allServices` and a specific service,
55
+ # the union of the two AuditConfigs is used for that service: the log_types
56
+ # specified in each AuditConfig are enabled, and the exempted_members in each
57
+ # AuditLogConfig are exempted.
58
+ # Example Policy with multiple AuditConfigs:
59
+ # `
60
+ # "audit_configs": [
61
+ # `
62
+ # "service": "allServices"
63
+ # "audit_log_configs": [
64
+ # `
65
+ # "log_type": "DATA_READ",
66
+ # "exempted_members": [
67
+ # "user:jose@example.com"
68
+ # ]
69
+ # `,
70
+ # `
71
+ # "log_type": "DATA_WRITE",
72
+ # `,
73
+ # `
74
+ # "log_type": "ADMIN_READ",
75
+ # `
76
+ # ]
77
+ # `,
78
+ # `
79
+ # "service": "sampleservice.googleapis.com"
80
+ # "audit_log_configs": [
81
+ # `
82
+ # "log_type": "DATA_READ",
83
+ # `,
84
+ # `
85
+ # "log_type": "DATA_WRITE",
86
+ # "exempted_members": [
87
+ # "user:aliya@example.com"
88
+ # ]
89
+ # `
90
+ # ]
91
+ # `
92
+ # ]
93
+ # `
94
+ # For sampleservice, this policy enables DATA_READ, DATA_WRITE and ADMIN_READ
95
+ # logging. It also exempts jose@example.com from DATA_READ logging, and
96
+ # aliya@example.com from DATA_WRITE logging.
97
+ class AuditConfig
98
+ include Google::Apis::Core::Hashable
99
+
100
+ # The configuration for logging of each type of permission.
101
+ # Corresponds to the JSON property `auditLogConfigs`
102
+ # @return [Array<Google::Apis::SecuritycenterV1p1beta1::AuditLogConfig>]
103
+ attr_accessor :audit_log_configs
104
+
105
+ # Specifies a service that will be enabled for audit logging.
106
+ # For example, `storage.googleapis.com`, `cloudsql.googleapis.com`.
107
+ # `allServices` is a special value that covers all services.
108
+ # Corresponds to the JSON property `service`
109
+ # @return [String]
110
+ attr_accessor :service
111
+
112
+ def initialize(**args)
113
+ update!(**args)
114
+ end
115
+
116
+ # Update properties of this object
117
+ def update!(**args)
118
+ @audit_log_configs = args[:audit_log_configs] if args.key?(:audit_log_configs)
119
+ @service = args[:service] if args.key?(:service)
120
+ end
121
+ end
122
+
123
+ # Provides the configuration for logging a type of permissions.
124
+ # Example:
125
+ # `
126
+ # "audit_log_configs": [
127
+ # `
128
+ # "log_type": "DATA_READ",
129
+ # "exempted_members": [
130
+ # "user:jose@example.com"
131
+ # ]
132
+ # `,
133
+ # `
134
+ # "log_type": "DATA_WRITE",
135
+ # `
136
+ # ]
137
+ # `
138
+ # This enables 'DATA_READ' and 'DATA_WRITE' logging, while exempting
139
+ # jose@example.com from DATA_READ logging.
140
+ class AuditLogConfig
141
+ include Google::Apis::Core::Hashable
142
+
143
+ # Specifies the identities that do not cause logging for this type of
144
+ # permission.
145
+ # Follows the same format of Binding.members.
146
+ # Corresponds to the JSON property `exemptedMembers`
147
+ # @return [Array<String>]
148
+ attr_accessor :exempted_members
149
+
150
+ # The log type that this config enables.
151
+ # Corresponds to the JSON property `logType`
152
+ # @return [String]
153
+ attr_accessor :log_type
154
+
155
+ def initialize(**args)
156
+ update!(**args)
157
+ end
158
+
159
+ # Update properties of this object
160
+ def update!(**args)
161
+ @exempted_members = args[:exempted_members] if args.key?(:exempted_members)
162
+ @log_type = args[:log_type] if args.key?(:log_type)
163
+ end
164
+ end
165
+
166
+ # Associates `members` with a `role`.
167
+ class Binding
168
+ include Google::Apis::Core::Hashable
169
+
170
+ # Represents a textual expression in the Common Expression Language (CEL)
171
+ # syntax. CEL is a C-like expression language. The syntax and semantics of CEL
172
+ # are documented at https://github.com/google/cel-spec.
173
+ # Example (Comparison):
174
+ # title: "Summary size limit"
175
+ # description: "Determines if a summary is less than 100 chars"
176
+ # expression: "document.summary.size() < 100"
177
+ # Example (Equality):
178
+ # title: "Requestor is owner"
179
+ # description: "Determines if requestor is the document owner"
180
+ # expression: "document.owner == request.auth.claims.email"
181
+ # Example (Logic):
182
+ # title: "Public documents"
183
+ # description: "Determine whether the document should be publicly visible"
184
+ # expression: "document.type != 'private' && document.type != 'internal'"
185
+ # Example (Data Manipulation):
186
+ # title: "Notification string"
187
+ # description: "Create a notification string with a timestamp."
188
+ # expression: "'New message received at ' + string(document.create_time)"
189
+ # The exact variables and functions that may be referenced within an expression
190
+ # are determined by the service that evaluates it. See the service
191
+ # documentation for additional information.
192
+ # Corresponds to the JSON property `condition`
193
+ # @return [Google::Apis::SecuritycenterV1p1beta1::Expr]
194
+ attr_accessor :condition
195
+
196
+ # Specifies the identities requesting access for a Cloud Platform resource.
197
+ # `members` can have the following values:
198
+ # * `allUsers`: A special identifier that represents anyone who is
199
+ # on the internet; with or without a Google account.
200
+ # * `allAuthenticatedUsers`: A special identifier that represents anyone
201
+ # who is authenticated with a Google account or a service account.
202
+ # * `user:`emailid``: An email address that represents a specific Google
203
+ # account. For example, `alice@example.com` .
204
+ # * `serviceAccount:`emailid``: An email address that represents a service
205
+ # account. For example, `my-other-app@appspot.gserviceaccount.com`.
206
+ # * `group:`emailid``: An email address that represents a Google group.
207
+ # For example, `admins@example.com`.
208
+ # * `deleted:user:`emailid`?uid=`uniqueid``: An email address (plus unique
209
+ # identifier) representing a user that has been recently deleted. For
210
+ # example, `alice@example.com?uid=123456789012345678901`. If the user is
211
+ # recovered, this value reverts to `user:`emailid`` and the recovered user
212
+ # retains the role in the binding.
213
+ # * `deleted:serviceAccount:`emailid`?uid=`uniqueid``: An email address (plus
214
+ # unique identifier) representing a service account that has been recently
215
+ # deleted. For example,
216
+ # `my-other-app@appspot.gserviceaccount.com?uid=123456789012345678901`.
217
+ # If the service account is undeleted, this value reverts to
218
+ # `serviceAccount:`emailid`` and the undeleted service account retains the
219
+ # role in the binding.
220
+ # * `deleted:group:`emailid`?uid=`uniqueid``: An email address (plus unique
221
+ # identifier) representing a Google group that has been recently
222
+ # deleted. For example, `admins@example.com?uid=123456789012345678901`. If
223
+ # the group is recovered, this value reverts to `group:`emailid`` and the
224
+ # recovered group retains the role in the binding.
225
+ # * `domain:`domain``: The G Suite domain (primary) that represents all the
226
+ # users of that domain. For example, `google.com` or `example.com`.
227
+ # Corresponds to the JSON property `members`
228
+ # @return [Array<String>]
229
+ attr_accessor :members
230
+
231
+ # Role that is assigned to `members`.
232
+ # For example, `roles/viewer`, `roles/editor`, or `roles/owner`.
233
+ # Corresponds to the JSON property `role`
234
+ # @return [String]
235
+ attr_accessor :role
236
+
237
+ def initialize(**args)
238
+ update!(**args)
239
+ end
240
+
241
+ # Update properties of this object
242
+ def update!(**args)
243
+ @condition = args[:condition] if args.key?(:condition)
244
+ @members = args[:members] if args.key?(:members)
245
+ @role = args[:role] if args.key?(:role)
246
+ end
247
+ end
248
+
249
+ # A generic empty message that you can re-use to avoid defining duplicated
250
+ # empty messages in your APIs. A typical example is to use it as the request
251
+ # or the response type of an API method. For instance:
252
+ # service Foo `
253
+ # rpc Bar(google.protobuf.Empty) returns (google.protobuf.Empty);
254
+ # `
255
+ # The JSON representation for `Empty` is empty JSON object ````.
256
+ class Empty
257
+ include Google::Apis::Core::Hashable
258
+
259
+ def initialize(**args)
260
+ update!(**args)
261
+ end
262
+
263
+ # Update properties of this object
264
+ def update!(**args)
265
+ end
266
+ end
267
+
268
+ # Represents a textual expression in the Common Expression Language (CEL)
269
+ # syntax. CEL is a C-like expression language. The syntax and semantics of CEL
270
+ # are documented at https://github.com/google/cel-spec.
271
+ # Example (Comparison):
272
+ # title: "Summary size limit"
273
+ # description: "Determines if a summary is less than 100 chars"
274
+ # expression: "document.summary.size() < 100"
275
+ # Example (Equality):
276
+ # title: "Requestor is owner"
277
+ # description: "Determines if requestor is the document owner"
278
+ # expression: "document.owner == request.auth.claims.email"
279
+ # Example (Logic):
280
+ # title: "Public documents"
281
+ # description: "Determine whether the document should be publicly visible"
282
+ # expression: "document.type != 'private' && document.type != 'internal'"
283
+ # Example (Data Manipulation):
284
+ # title: "Notification string"
285
+ # description: "Create a notification string with a timestamp."
286
+ # expression: "'New message received at ' + string(document.create_time)"
287
+ # The exact variables and functions that may be referenced within an expression
288
+ # are determined by the service that evaluates it. See the service
289
+ # documentation for additional information.
290
+ class Expr
291
+ include Google::Apis::Core::Hashable
292
+
293
+ # Optional. Description of the expression. This is a longer text which
294
+ # describes the expression, e.g. when hovered over it in a UI.
295
+ # Corresponds to the JSON property `description`
296
+ # @return [String]
297
+ attr_accessor :description
298
+
299
+ # Textual representation of an expression in Common Expression Language
300
+ # syntax.
301
+ # Corresponds to the JSON property `expression`
302
+ # @return [String]
303
+ attr_accessor :expression
304
+
305
+ # Optional. String indicating the location of the expression for error
306
+ # reporting, e.g. a file name and a position in the file.
307
+ # Corresponds to the JSON property `location`
308
+ # @return [String]
309
+ attr_accessor :location
310
+
311
+ # Optional. Title for the expression, i.e. a short string describing
312
+ # its purpose. This can be used e.g. in UIs which allow to enter the
313
+ # expression.
314
+ # Corresponds to the JSON property `title`
315
+ # @return [String]
316
+ attr_accessor :title
317
+
318
+ def initialize(**args)
319
+ update!(**args)
320
+ end
321
+
322
+ # Update properties of this object
323
+ def update!(**args)
324
+ @description = args[:description] if args.key?(:description)
325
+ @expression = args[:expression] if args.key?(:expression)
326
+ @location = args[:location] if args.key?(:location)
327
+ @title = args[:title] if args.key?(:title)
328
+ end
329
+ end
330
+
331
+ # Request message for `GetIamPolicy` method.
332
+ class GetIamPolicyRequest
333
+ include Google::Apis::Core::Hashable
334
+
335
+ # Encapsulates settings provided to GetIamPolicy.
336
+ # Corresponds to the JSON property `options`
337
+ # @return [Google::Apis::SecuritycenterV1p1beta1::GetPolicyOptions]
338
+ attr_accessor :options
339
+
340
+ def initialize(**args)
341
+ update!(**args)
342
+ end
343
+
344
+ # Update properties of this object
345
+ def update!(**args)
346
+ @options = args[:options] if args.key?(:options)
347
+ end
348
+ end
349
+
350
+ # Encapsulates settings provided to GetIamPolicy.
351
+ class GetPolicyOptions
352
+ include Google::Apis::Core::Hashable
353
+
354
+ # Optional. The policy format version to be returned.
355
+ # Valid values are 0, 1, and 3. Requests specifying an invalid value will be
356
+ # rejected.
357
+ # Requests for policies with any conditional bindings must specify version 3.
358
+ # Policies without any conditional bindings may specify any valid value or
359
+ # leave the field unset.
360
+ # Corresponds to the JSON property `requestedPolicyVersion`
361
+ # @return [Fixnum]
362
+ attr_accessor :requested_policy_version
363
+
364
+ def initialize(**args)
365
+ update!(**args)
366
+ end
367
+
368
+ # Update properties of this object
369
+ def update!(**args)
370
+ @requested_policy_version = args[:requested_policy_version] if args.key?(:requested_policy_version)
371
+ end
372
+ end
373
+
374
+ # Response of asset discovery run
375
+ class GoogleCloudSecuritycenterV1RunAssetDiscoveryResponse
376
+ include Google::Apis::Core::Hashable
377
+
378
+ # The duration between asset discovery run start and end
379
+ # Corresponds to the JSON property `duration`
380
+ # @return [String]
381
+ attr_accessor :duration
382
+
383
+ # The state of an asset discovery run.
384
+ # Corresponds to the JSON property `state`
385
+ # @return [String]
386
+ attr_accessor :state
387
+
388
+ def initialize(**args)
389
+ update!(**args)
390
+ end
391
+
392
+ # Update properties of this object
393
+ def update!(**args)
394
+ @duration = args[:duration] if args.key?(:duration)
395
+ @state = args[:state] if args.key?(:state)
396
+ end
397
+ end
398
+
399
+ # Response of asset discovery run
400
+ class GoogleCloudSecuritycenterV1beta1RunAssetDiscoveryResponse
401
+ include Google::Apis::Core::Hashable
402
+
403
+ # The duration between asset discovery run start and end
404
+ # Corresponds to the JSON property `duration`
405
+ # @return [String]
406
+ attr_accessor :duration
407
+
408
+ # The state of an asset discovery run.
409
+ # Corresponds to the JSON property `state`
410
+ # @return [String]
411
+ attr_accessor :state
412
+
413
+ def initialize(**args)
414
+ update!(**args)
415
+ end
416
+
417
+ # Update properties of this object
418
+ def update!(**args)
419
+ @duration = args[:duration] if args.key?(:duration)
420
+ @state = args[:state] if args.key?(:state)
421
+ end
422
+ end
423
+
424
+ # Cloud Security Command Center's (Cloud SCC) representation of a Google Cloud
425
+ # Platform (GCP) resource.
426
+ # The Asset is a Cloud SCC resource that captures information about a single
427
+ # GCP resource. All modifications to an Asset are only within the context of
428
+ # Cloud SCC and don't affect the referenced GCP resource.
429
+ class GoogleCloudSecuritycenterV1p1beta1Asset
430
+ include Google::Apis::Core::Hashable
431
+
432
+ # The time at which the asset was created in Cloud SCC.
433
+ # Corresponds to the JSON property `createTime`
434
+ # @return [String]
435
+ attr_accessor :create_time
436
+
437
+ # IAM Policy information associated with the GCP resource described by the
438
+ # Cloud SCC asset. This information is managed and defined by the GCP
439
+ # resource and cannot be modified by the user.
440
+ # Corresponds to the JSON property `iamPolicy`
441
+ # @return [Google::Apis::SecuritycenterV1p1beta1::GoogleCloudSecuritycenterV1p1beta1IamPolicy]
442
+ attr_accessor :iam_policy
443
+
444
+ # The relative resource name of this asset. See:
445
+ # https://cloud.google.com/apis/design/resource_names#relative_resource_name
446
+ # Example:
447
+ # "organizations/`organization_id`/assets/`asset_id`".
448
+ # Corresponds to the JSON property `name`
449
+ # @return [String]
450
+ attr_accessor :name
451
+
452
+ # Resource managed properties. These properties are managed and defined by
453
+ # the GCP resource and cannot be modified by the user.
454
+ # Corresponds to the JSON property `resourceProperties`
455
+ # @return [Hash<String,Object>]
456
+ attr_accessor :resource_properties
457
+
458
+ # Cloud SCC managed properties. These properties are managed by Cloud SCC and
459
+ # cannot be modified by the user.
460
+ # Corresponds to the JSON property `securityCenterProperties`
461
+ # @return [Google::Apis::SecuritycenterV1p1beta1::GoogleCloudSecuritycenterV1p1beta1SecurityCenterProperties]
462
+ attr_accessor :security_center_properties
463
+
464
+ # User specified security marks that are attached to the parent Cloud Security
465
+ # Command Center (Cloud SCC) resource. Security marks are scoped within a Cloud
466
+ # SCC organization -- they can be modified and viewed by all users who have
467
+ # proper permissions on the organization.
468
+ # Corresponds to the JSON property `securityMarks`
469
+ # @return [Google::Apis::SecuritycenterV1p1beta1::GoogleCloudSecuritycenterV1p1beta1SecurityMarks]
470
+ attr_accessor :security_marks
471
+
472
+ # The time at which the asset was last updated, added, or deleted in Cloud
473
+ # SCC.
474
+ # Corresponds to the JSON property `updateTime`
475
+ # @return [String]
476
+ attr_accessor :update_time
477
+
478
+ def initialize(**args)
479
+ update!(**args)
480
+ end
481
+
482
+ # Update properties of this object
483
+ def update!(**args)
484
+ @create_time = args[:create_time] if args.key?(:create_time)
485
+ @iam_policy = args[:iam_policy] if args.key?(:iam_policy)
486
+ @name = args[:name] if args.key?(:name)
487
+ @resource_properties = args[:resource_properties] if args.key?(:resource_properties)
488
+ @security_center_properties = args[:security_center_properties] if args.key?(:security_center_properties)
489
+ @security_marks = args[:security_marks] if args.key?(:security_marks)
490
+ @update_time = args[:update_time] if args.key?(:update_time)
491
+ end
492
+ end
493
+
494
+ # Cloud Security Command Center (Cloud SCC) finding.
495
+ # A finding is a record of assessment data (security, risk, health or privacy)
496
+ # ingested into Cloud SCC for presentation, notification, analysis,
497
+ # policy testing, and enforcement. For example, an XSS vulnerability in an
498
+ # App Engine application is a finding.
499
+ class GoogleCloudSecuritycenterV1p1beta1Finding
500
+ include Google::Apis::Core::Hashable
501
+
502
+ # The additional taxonomy group within findings from a given source.
503
+ # This field is immutable after creation time.
504
+ # Example: "XSS_FLASH_INJECTION"
505
+ # Corresponds to the JSON property `category`
506
+ # @return [String]
507
+ attr_accessor :category
508
+
509
+ # The time at which the finding was created in Cloud SCC.
510
+ # Corresponds to the JSON property `createTime`
511
+ # @return [String]
512
+ attr_accessor :create_time
513
+
514
+ # The time at which the event took place. For example, if the finding
515
+ # represents an open firewall it would capture the time the detector believes
516
+ # the firewall became open. The accuracy is determined by the detector.
517
+ # Corresponds to the JSON property `eventTime`
518
+ # @return [String]
519
+ attr_accessor :event_time
520
+
521
+ # The URI that, if available, points to a web page outside of Cloud SCC
522
+ # where additional information about the finding can be found. This field is
523
+ # guaranteed to be either empty or a well formed URL.
524
+ # Corresponds to the JSON property `externalUri`
525
+ # @return [String]
526
+ attr_accessor :external_uri
527
+
528
+ # The relative resource name of this finding. See:
529
+ # https://cloud.google.com/apis/design/resource_names#relative_resource_name
530
+ # Example:
531
+ # "organizations/`organization_id`/sources/`source_id`/findings/`finding_id`"
532
+ # Corresponds to the JSON property `name`
533
+ # @return [String]
534
+ attr_accessor :name
535
+
536
+ # The relative resource name of the source the finding belongs to. See:
537
+ # https://cloud.google.com/apis/design/resource_names#relative_resource_name
538
+ # This field is immutable after creation time.
539
+ # For example:
540
+ # "organizations/`organization_id`/sources/`source_id`"
541
+ # Corresponds to the JSON property `parent`
542
+ # @return [String]
543
+ attr_accessor :parent
544
+
545
+ # For findings on Google Cloud Platform (GCP) resources, the full resource
546
+ # name of the GCP resource this finding is for. See:
547
+ # https://cloud.google.com/apis/design/resource_names#full_resource_name
548
+ # When the finding is for a non-GCP resource, the resourceName can be a
549
+ # customer or partner defined string.
550
+ # This field is immutable after creation time.
551
+ # Corresponds to the JSON property `resourceName`
552
+ # @return [String]
553
+ attr_accessor :resource_name
554
+
555
+ # User specified security marks that are attached to the parent Cloud Security
556
+ # Command Center (Cloud SCC) resource. Security marks are scoped within a Cloud
557
+ # SCC organization -- they can be modified and viewed by all users who have
558
+ # proper permissions on the organization.
559
+ # Corresponds to the JSON property `securityMarks`
560
+ # @return [Google::Apis::SecuritycenterV1p1beta1::GoogleCloudSecuritycenterV1p1beta1SecurityMarks]
561
+ attr_accessor :security_marks
562
+
563
+ # Source specific properties. These properties are managed by the source
564
+ # that writes the finding. The key names in the source_properties map must be
565
+ # between 1 and 255 characters, and must start with a letter and contain
566
+ # alphanumeric characters or underscores only.
567
+ # Corresponds to the JSON property `sourceProperties`
568
+ # @return [Hash<String,Object>]
569
+ attr_accessor :source_properties
570
+
571
+ # The state of the finding.
572
+ # Corresponds to the JSON property `state`
573
+ # @return [String]
574
+ attr_accessor :state
575
+
576
+ def initialize(**args)
577
+ update!(**args)
578
+ end
579
+
580
+ # Update properties of this object
581
+ def update!(**args)
582
+ @category = args[:category] if args.key?(:category)
583
+ @create_time = args[:create_time] if args.key?(:create_time)
584
+ @event_time = args[:event_time] if args.key?(:event_time)
585
+ @external_uri = args[:external_uri] if args.key?(:external_uri)
586
+ @name = args[:name] if args.key?(:name)
587
+ @parent = args[:parent] if args.key?(:parent)
588
+ @resource_name = args[:resource_name] if args.key?(:resource_name)
589
+ @security_marks = args[:security_marks] if args.key?(:security_marks)
590
+ @source_properties = args[:source_properties] if args.key?(:source_properties)
591
+ @state = args[:state] if args.key?(:state)
592
+ end
593
+ end
594
+
595
+ # IAM Policy information associated with the GCP resource described by the
596
+ # Cloud SCC asset. This information is managed and defined by the GCP
597
+ # resource and cannot be modified by the user.
598
+ class GoogleCloudSecuritycenterV1p1beta1IamPolicy
599
+ include Google::Apis::Core::Hashable
600
+
601
+ # The JSON representation of the Policy associated with the asset.
602
+ # See https://cloud.google.com/iam/reference/rest/v1p1beta1/Policy for
603
+ # format details.
604
+ # Corresponds to the JSON property `policyBlob`
605
+ # @return [String]
606
+ attr_accessor :policy_blob
607
+
608
+ def initialize(**args)
609
+ update!(**args)
610
+ end
611
+
612
+ # Update properties of this object
613
+ def update!(**args)
614
+ @policy_blob = args[:policy_blob] if args.key?(:policy_blob)
615
+ end
616
+ end
617
+
618
+ # Cloud SCC's Notification
619
+ class GoogleCloudSecuritycenterV1p1beta1NotificationMessage
620
+ include Google::Apis::Core::Hashable
621
+
622
+ # Cloud Security Command Center (Cloud SCC) finding.
623
+ # A finding is a record of assessment data (security, risk, health or privacy)
624
+ # ingested into Cloud SCC for presentation, notification, analysis,
625
+ # policy testing, and enforcement. For example, an XSS vulnerability in an
626
+ # App Engine application is a finding.
627
+ # Corresponds to the JSON property `finding`
628
+ # @return [Google::Apis::SecuritycenterV1p1beta1::GoogleCloudSecuritycenterV1p1beta1Finding]
629
+ attr_accessor :finding
630
+
631
+ # Name of the notification config that generated current notification.
632
+ # Corresponds to the JSON property `notificationConfigName`
633
+ # @return [String]
634
+ attr_accessor :notification_config_name
635
+
636
+ # Wrapper over asset object that also captures the state change for the asset
637
+ # e.g. if it was a newly created asset vs updated or deleted asset.
638
+ # Corresponds to the JSON property `temporalAsset`
639
+ # @return [Google::Apis::SecuritycenterV1p1beta1::GoogleCloudSecuritycenterV1p1beta1TemporalAsset]
640
+ attr_accessor :temporal_asset
641
+
642
+ def initialize(**args)
643
+ update!(**args)
644
+ end
645
+
646
+ # Update properties of this object
647
+ def update!(**args)
648
+ @finding = args[:finding] if args.key?(:finding)
649
+ @notification_config_name = args[:notification_config_name] if args.key?(:notification_config_name)
650
+ @temporal_asset = args[:temporal_asset] if args.key?(:temporal_asset)
651
+ end
652
+ end
653
+
654
+ # Response of asset discovery run
655
+ class GoogleCloudSecuritycenterV1p1beta1RunAssetDiscoveryResponse
656
+ include Google::Apis::Core::Hashable
657
+
658
+ # The duration between asset discovery run start and end
659
+ # Corresponds to the JSON property `duration`
660
+ # @return [String]
661
+ attr_accessor :duration
662
+
663
+ # The state of an asset discovery run.
664
+ # Corresponds to the JSON property `state`
665
+ # @return [String]
666
+ attr_accessor :state
667
+
668
+ def initialize(**args)
669
+ update!(**args)
670
+ end
671
+
672
+ # Update properties of this object
673
+ def update!(**args)
674
+ @duration = args[:duration] if args.key?(:duration)
675
+ @state = args[:state] if args.key?(:state)
676
+ end
677
+ end
678
+
679
+ # Cloud SCC managed properties. These properties are managed by Cloud SCC and
680
+ # cannot be modified by the user.
681
+ class GoogleCloudSecuritycenterV1p1beta1SecurityCenterProperties
682
+ include Google::Apis::Core::Hashable
683
+
684
+ # The user defined display name for this resource.
685
+ # Corresponds to the JSON property `resourceDisplayName`
686
+ # @return [String]
687
+ attr_accessor :resource_display_name
688
+
689
+ # The full resource name of the GCP resource this asset
690
+ # represents. This field is immutable after create time. See:
691
+ # https://cloud.google.com/apis/design/resource_names#full_resource_name
692
+ # Corresponds to the JSON property `resourceName`
693
+ # @return [String]
694
+ attr_accessor :resource_name
695
+
696
+ # Owners of the Google Cloud resource.
697
+ # Corresponds to the JSON property `resourceOwners`
698
+ # @return [Array<String>]
699
+ attr_accessor :resource_owners
700
+
701
+ # The full resource name of the immediate parent of the resource. See:
702
+ # https://cloud.google.com/apis/design/resource_names#full_resource_name
703
+ # Corresponds to the JSON property `resourceParent`
704
+ # @return [String]
705
+ attr_accessor :resource_parent
706
+
707
+ # The user defined display name for the parent of this resource.
708
+ # Corresponds to the JSON property `resourceParentDisplayName`
709
+ # @return [String]
710
+ attr_accessor :resource_parent_display_name
711
+
712
+ # The full resource name of the project the resource belongs to. See:
713
+ # https://cloud.google.com/apis/design/resource_names#full_resource_name
714
+ # Corresponds to the JSON property `resourceProject`
715
+ # @return [String]
716
+ attr_accessor :resource_project
717
+
718
+ # The user defined display name for the project of this resource.
719
+ # Corresponds to the JSON property `resourceProjectDisplayName`
720
+ # @return [String]
721
+ attr_accessor :resource_project_display_name
722
+
723
+ # The type of the GCP resource. Examples include: APPLICATION,
724
+ # PROJECT, and ORGANIZATION. This is a case insensitive field defined by
725
+ # Cloud SCC and/or the producer of the resource and is immutable
726
+ # after create time.
727
+ # Corresponds to the JSON property `resourceType`
728
+ # @return [String]
729
+ attr_accessor :resource_type
730
+
731
+ def initialize(**args)
732
+ update!(**args)
733
+ end
734
+
735
+ # Update properties of this object
736
+ def update!(**args)
737
+ @resource_display_name = args[:resource_display_name] if args.key?(:resource_display_name)
738
+ @resource_name = args[:resource_name] if args.key?(:resource_name)
739
+ @resource_owners = args[:resource_owners] if args.key?(:resource_owners)
740
+ @resource_parent = args[:resource_parent] if args.key?(:resource_parent)
741
+ @resource_parent_display_name = args[:resource_parent_display_name] if args.key?(:resource_parent_display_name)
742
+ @resource_project = args[:resource_project] if args.key?(:resource_project)
743
+ @resource_project_display_name = args[:resource_project_display_name] if args.key?(:resource_project_display_name)
744
+ @resource_type = args[:resource_type] if args.key?(:resource_type)
745
+ end
746
+ end
747
+
748
+ # User specified security marks that are attached to the parent Cloud Security
749
+ # Command Center (Cloud SCC) resource. Security marks are scoped within a Cloud
750
+ # SCC organization -- they can be modified and viewed by all users who have
751
+ # proper permissions on the organization.
752
+ class GoogleCloudSecuritycenterV1p1beta1SecurityMarks
753
+ include Google::Apis::Core::Hashable
754
+
755
+ # Mutable user specified security marks belonging to the parent resource.
756
+ # Constraints are as follows:
757
+ # * Keys and values are treated as case insensitive
758
+ # * Keys must be between 1 - 256 characters (inclusive)
759
+ # * Keys must be letters, numbers, underscores, or dashes
760
+ # * Values have leading and trailing whitespace trimmed, remaining
761
+ # characters must be between 1 - 4096 characters (inclusive)
762
+ # Corresponds to the JSON property `marks`
763
+ # @return [Hash<String,String>]
764
+ attr_accessor :marks
765
+
766
+ # The relative resource name of the SecurityMarks. See:
767
+ # https://cloud.google.com/apis/design/resource_names#relative_resource_name
768
+ # Examples:
769
+ # "organizations/`organization_id`/assets/`asset_id`/securityMarks"
770
+ # "organizations/`organization_id`/sources/`source_id`/findings/`finding_id`/
771
+ # securityMarks".
772
+ # Corresponds to the JSON property `name`
773
+ # @return [String]
774
+ attr_accessor :name
775
+
776
+ def initialize(**args)
777
+ update!(**args)
778
+ end
779
+
780
+ # Update properties of this object
781
+ def update!(**args)
782
+ @marks = args[:marks] if args.key?(:marks)
783
+ @name = args[:name] if args.key?(:name)
784
+ end
785
+ end
786
+
787
+ # Wrapper over asset object that also captures the state change for the asset
788
+ # e.g. if it was a newly created asset vs updated or deleted asset.
789
+ class GoogleCloudSecuritycenterV1p1beta1TemporalAsset
790
+ include Google::Apis::Core::Hashable
791
+
792
+ # Cloud Security Command Center's (Cloud SCC) representation of a Google Cloud
793
+ # Platform (GCP) resource.
794
+ # The Asset is a Cloud SCC resource that captures information about a single
795
+ # GCP resource. All modifications to an Asset are only within the context of
796
+ # Cloud SCC and don't affect the referenced GCP resource.
797
+ # Corresponds to the JSON property `asset`
798
+ # @return [Google::Apis::SecuritycenterV1p1beta1::GoogleCloudSecuritycenterV1p1beta1Asset]
799
+ attr_accessor :asset
800
+
801
+ # Represents if the asset was created/updated/deleted.
802
+ # Corresponds to the JSON property `changeType`
803
+ # @return [String]
804
+ attr_accessor :change_type
805
+
806
+ def initialize(**args)
807
+ update!(**args)
808
+ end
809
+
810
+ # Update properties of this object
811
+ def update!(**args)
812
+ @asset = args[:asset] if args.key?(:asset)
813
+ @change_type = args[:change_type] if args.key?(:change_type)
814
+ end
815
+ end
816
+
817
+ # Request message for grouping by assets.
818
+ class GroupAssetsRequest
819
+ include Google::Apis::Core::Hashable
820
+
821
+ # When compare_duration is set, the GroupResult's "state_change" property is
822
+ # updated to indicate whether the asset was added, removed, or remained
823
+ # present during the compare_duration period of time that precedes the
824
+ # read_time. This is the time between (read_time - compare_duration) and
825
+ # read_time.
826
+ # The state change value is derived based on the presence of the asset at the
827
+ # two points in time. Intermediate state changes between the two times don't
828
+ # affect the result. For example, the results aren't affected if the asset is
829
+ # removed and re-created again.
830
+ # Possible "state_change" values when compare_duration is specified:
831
+ # * "ADDED": indicates that the asset was not present at the start of
832
+ # compare_duration, but present at reference_time.
833
+ # * "REMOVED": indicates that the asset was present at the start of
834
+ # compare_duration, but not present at reference_time.
835
+ # * "ACTIVE": indicates that the asset was present at both the
836
+ # start and the end of the time period defined by
837
+ # compare_duration and reference_time.
838
+ # If compare_duration is not specified, then the only possible state_change
839
+ # is "UNUSED", which will be the state_change set for all assets present at
840
+ # read_time.
841
+ # If this field is set then `state_change` must be a specified field in
842
+ # `group_by`.
843
+ # Corresponds to the JSON property `compareDuration`
844
+ # @return [String]
845
+ attr_accessor :compare_duration
846
+
847
+ # Expression that defines the filter to apply across assets.
848
+ # The expression is a list of zero or more restrictions combined via logical
849
+ # operators `AND` and `OR`.
850
+ # Parentheses are supported, and `OR` has higher precedence than `AND`.
851
+ # Restrictions have the form `<field> <operator> <value>` and may have a `-`
852
+ # character in front of them to indicate negation. The fields map to those
853
+ # defined in the Asset resource. Examples include:
854
+ # * name
855
+ # * security_center_properties.resource_name
856
+ # * resource_properties.a_property
857
+ # * security_marks.marks.marka
858
+ # The supported operators are:
859
+ # * `=` for all value types.
860
+ # * `>`, `<`, `>=`, `<=` for integer values.
861
+ # * `:`, meaning substring matching, for strings.
862
+ # The supported value types are:
863
+ # * string literals in quotes.
864
+ # * integer literals without quotes.
865
+ # * boolean literals `true` and `false` without quotes.
866
+ # The following field and operator combinations are supported:
867
+ # * name: `=`
868
+ # * update_time: `=`, `>`, `<`, `>=`, `<=`
869
+ # Usage: This should be milliseconds since epoch or an RFC3339 string.
870
+ # Examples:
871
+ # "update_time = \"2019-06-10T16:07:18-07:00\""
872
+ # "update_time = 1560208038000"
873
+ # * create_time: `=`, `>`, `<`, `>=`, `<=`
874
+ # Usage: This should be milliseconds since epoch or an RFC3339 string.
875
+ # Examples:
876
+ # "create_time = \"2019-06-10T16:07:18-07:00\""
877
+ # "create_time = 1560208038000"
878
+ # * iam_policy.policy_blob: `=`, `:`
879
+ # * resource_properties: `=`, `:`, `>`, `<`, `>=`, `<=`
880
+ # * security_marks.marks: `=`, `:`
881
+ # * security_center_properties.resource_name: `=`, `:`
882
+ # * security_center_properties.resource_name_display_name: `=`, `:`
883
+ # * security_center_properties.resource_type: `=`, `:`
884
+ # * security_center_properties.resource_parent: `=`, `:`
885
+ # * security_center_properties.resource_parent_display_name: `=`, `:`
886
+ # * security_center_properties.resource_project: `=`, `:`
887
+ # * security_center_properties.resource_project_display_name: `=`, `:`
888
+ # * security_center_properties.resource_owners: `=`, `:`
889
+ # For example, `resource_properties.size = 100` is a valid filter string.
890
+ # Corresponds to the JSON property `filter`
891
+ # @return [String]
892
+ attr_accessor :filter
893
+
894
+ # Required. Expression that defines what assets fields to use for grouping. The
895
+ # string
896
+ # value should follow SQL syntax: comma separated list of fields. For
897
+ # example:
898
+ # "security_center_properties.resource_project,security_center_properties.
899
+ # project".
900
+ # The following fields are supported when compare_duration is not set:
901
+ # * security_center_properties.resource_project
902
+ # * security_center_properties.resource_project_display_name
903
+ # * security_center_properties.resource_type
904
+ # * security_center_properties.resource_parent
905
+ # * security_center_properties.resource_parent_display_name
906
+ # The following fields are supported when compare_duration is set:
907
+ # * security_center_properties.resource_type
908
+ # * security_center_properties.resource_project_display_name
909
+ # * security_center_properties.resource_parent_display_name
910
+ # Corresponds to the JSON property `groupBy`
911
+ # @return [String]
912
+ attr_accessor :group_by
913
+
914
+ # The maximum number of results to return in a single response. Default is
915
+ # 10, minimum is 1, maximum is 1000.
916
+ # Corresponds to the JSON property `pageSize`
917
+ # @return [Fixnum]
918
+ attr_accessor :page_size
919
+
920
+ # The value returned by the last `GroupAssetsResponse`; indicates
921
+ # that this is a continuation of a prior `GroupAssets` call, and that the
922
+ # system should return the next page of data.
923
+ # Corresponds to the JSON property `pageToken`
924
+ # @return [String]
925
+ attr_accessor :page_token
926
+
927
+ # Time used as a reference point when filtering assets. The filter is limited
928
+ # to assets existing at the supplied time and their values are those at that
929
+ # specific time. Absence of this field will default to the API's version of
930
+ # NOW.
931
+ # Corresponds to the JSON property `readTime`
932
+ # @return [String]
933
+ attr_accessor :read_time
934
+
935
+ def initialize(**args)
936
+ update!(**args)
937
+ end
938
+
939
+ # Update properties of this object
940
+ def update!(**args)
941
+ @compare_duration = args[:compare_duration] if args.key?(:compare_duration)
942
+ @filter = args[:filter] if args.key?(:filter)
943
+ @group_by = args[:group_by] if args.key?(:group_by)
944
+ @page_size = args[:page_size] if args.key?(:page_size)
945
+ @page_token = args[:page_token] if args.key?(:page_token)
946
+ @read_time = args[:read_time] if args.key?(:read_time)
947
+ end
948
+ end
949
+
950
+ # Response message for grouping by assets.
951
+ class GroupAssetsResponse
952
+ include Google::Apis::Core::Hashable
953
+
954
+ # Group results. There exists an element for each existing unique
955
+ # combination of property/values. The element contains a count for the number
956
+ # of times those specific property/values appear.
957
+ # Corresponds to the JSON property `groupByResults`
958
+ # @return [Array<Google::Apis::SecuritycenterV1p1beta1::GroupResult>]
959
+ attr_accessor :group_by_results
960
+
961
+ # Token to retrieve the next page of results, or empty if there are no more
962
+ # results.
963
+ # Corresponds to the JSON property `nextPageToken`
964
+ # @return [String]
965
+ attr_accessor :next_page_token
966
+
967
+ # Time used for executing the groupBy request.
968
+ # Corresponds to the JSON property `readTime`
969
+ # @return [String]
970
+ attr_accessor :read_time
971
+
972
+ # The total number of results matching the query.
973
+ # Corresponds to the JSON property `totalSize`
974
+ # @return [Fixnum]
975
+ attr_accessor :total_size
976
+
977
+ def initialize(**args)
978
+ update!(**args)
979
+ end
980
+
981
+ # Update properties of this object
982
+ def update!(**args)
983
+ @group_by_results = args[:group_by_results] if args.key?(:group_by_results)
984
+ @next_page_token = args[:next_page_token] if args.key?(:next_page_token)
985
+ @read_time = args[:read_time] if args.key?(:read_time)
986
+ @total_size = args[:total_size] if args.key?(:total_size)
987
+ end
988
+ end
989
+
990
+ # Request message for grouping by findings.
991
+ class GroupFindingsRequest
992
+ include Google::Apis::Core::Hashable
993
+
994
+ # When compare_duration is set, the GroupResult's "state_change" attribute is
995
+ # updated to indicate whether the finding had its state changed, the
996
+ # finding's state remained unchanged, or if the finding was added during the
997
+ # compare_duration period of time that precedes the read_time. This is the
998
+ # time between (read_time - compare_duration) and read_time.
999
+ # The state_change value is derived based on the presence and state of the
1000
+ # finding at the two points in time. Intermediate state changes between the
1001
+ # two times don't affect the result. For example, the results aren't affected
1002
+ # if the finding is made inactive and then active again.
1003
+ # Possible "state_change" values when compare_duration is specified:
1004
+ # * "CHANGED": indicates that the finding was present at the start of
1005
+ # compare_duration, but changed its state at read_time.
1006
+ # * "UNCHANGED": indicates that the finding was present at the start of
1007
+ # compare_duration and did not change state at read_time.
1008
+ # * "ADDED": indicates that the finding was not present at the start
1009
+ # of compare_duration, but was present at read_time.
1010
+ # If compare_duration is not specified, then the only possible state_change
1011
+ # is "UNUSED", which will be the state_change set for all findings present
1012
+ # at read_time.
1013
+ # If this field is set then `state_change` must be a specified field in
1014
+ # `group_by`.
1015
+ # Corresponds to the JSON property `compareDuration`
1016
+ # @return [String]
1017
+ attr_accessor :compare_duration
1018
+
1019
+ # Expression that defines the filter to apply across findings.
1020
+ # The expression is a list of one or more restrictions combined via logical
1021
+ # operators `AND` and `OR`.
1022
+ # Parentheses are supported, and `OR` has higher precedence than `AND`.
1023
+ # Restrictions have the form `<field> <operator> <value>` and may have a `-`
1024
+ # character in front of them to indicate negation. Examples include:
1025
+ # * name
1026
+ # * source_properties.a_property
1027
+ # * security_marks.marks.marka
1028
+ # The supported operators are:
1029
+ # * `=` for all value types.
1030
+ # * `>`, `<`, `>=`, `<=` for integer values.
1031
+ # * `:`, meaning substring matching, for strings.
1032
+ # The supported value types are:
1033
+ # * string literals in quotes.
1034
+ # * integer literals without quotes.
1035
+ # * boolean literals `true` and `false` without quotes.
1036
+ # The following field and operator combinations are supported:
1037
+ # * name: `=`
1038
+ # * parent: `=`, `:`
1039
+ # * resource_name: `=`, `:`
1040
+ # * state: `=`, `:`
1041
+ # * category: `=`, `:`
1042
+ # * external_uri: `=`, `:`
1043
+ # * event_time: `=`, `>`, `<`, `>=`, `<=`
1044
+ # Usage: This should be milliseconds since epoch or an RFC3339 string.
1045
+ # Examples:
1046
+ # "event_time = \"2019-06-10T16:07:18-07:00\""
1047
+ # "event_time = 1560208038000"
1048
+ # * security_marks.marks: `=`, `:`
1049
+ # * source_properties: `=`, `:`, `>`, `<`, `>=`, `<=`
1050
+ # For example, `source_properties.size = 100` is a valid filter string.
1051
+ # Corresponds to the JSON property `filter`
1052
+ # @return [String]
1053
+ attr_accessor :filter
1054
+
1055
+ # Required. Expression that defines what assets fields to use for grouping (
1056
+ # including
1057
+ # `state_change`). The string value should follow SQL syntax: comma separated
1058
+ # list of fields. For example: "parent,resource_name".
1059
+ # The following fields are supported:
1060
+ # * resource_name
1061
+ # * category
1062
+ # * state
1063
+ # * parent
1064
+ # The following fields are supported when compare_duration is set:
1065
+ # * state_change
1066
+ # Corresponds to the JSON property `groupBy`
1067
+ # @return [String]
1068
+ attr_accessor :group_by
1069
+
1070
+ # The maximum number of results to return in a single response. Default is
1071
+ # 10, minimum is 1, maximum is 1000.
1072
+ # Corresponds to the JSON property `pageSize`
1073
+ # @return [Fixnum]
1074
+ attr_accessor :page_size
1075
+
1076
+ # The value returned by the last `GroupFindingsResponse`; indicates
1077
+ # that this is a continuation of a prior `GroupFindings` call, and
1078
+ # that the system should return the next page of data.
1079
+ # Corresponds to the JSON property `pageToken`
1080
+ # @return [String]
1081
+ attr_accessor :page_token
1082
+
1083
+ # Time used as a reference point when filtering findings. The filter is
1084
+ # limited to findings existing at the supplied time and their values are
1085
+ # those at that specific time. Absence of this field will default to the
1086
+ # API's version of NOW.
1087
+ # Corresponds to the JSON property `readTime`
1088
+ # @return [String]
1089
+ attr_accessor :read_time
1090
+
1091
+ def initialize(**args)
1092
+ update!(**args)
1093
+ end
1094
+
1095
+ # Update properties of this object
1096
+ def update!(**args)
1097
+ @compare_duration = args[:compare_duration] if args.key?(:compare_duration)
1098
+ @filter = args[:filter] if args.key?(:filter)
1099
+ @group_by = args[:group_by] if args.key?(:group_by)
1100
+ @page_size = args[:page_size] if args.key?(:page_size)
1101
+ @page_token = args[:page_token] if args.key?(:page_token)
1102
+ @read_time = args[:read_time] if args.key?(:read_time)
1103
+ end
1104
+ end
1105
+
1106
+ # Response message for group by findings.
1107
+ class GroupFindingsResponse
1108
+ include Google::Apis::Core::Hashable
1109
+
1110
+ # Group results. There exists an element for each existing unique
1111
+ # combination of property/values. The element contains a count for the number
1112
+ # of times those specific property/values appear.
1113
+ # Corresponds to the JSON property `groupByResults`
1114
+ # @return [Array<Google::Apis::SecuritycenterV1p1beta1::GroupResult>]
1115
+ attr_accessor :group_by_results
1116
+
1117
+ # Token to retrieve the next page of results, or empty if there are no more
1118
+ # results.
1119
+ # Corresponds to the JSON property `nextPageToken`
1120
+ # @return [String]
1121
+ attr_accessor :next_page_token
1122
+
1123
+ # Time used for executing the groupBy request.
1124
+ # Corresponds to the JSON property `readTime`
1125
+ # @return [String]
1126
+ attr_accessor :read_time
1127
+
1128
+ # The total number of results matching the query.
1129
+ # Corresponds to the JSON property `totalSize`
1130
+ # @return [Fixnum]
1131
+ attr_accessor :total_size
1132
+
1133
+ def initialize(**args)
1134
+ update!(**args)
1135
+ end
1136
+
1137
+ # Update properties of this object
1138
+ def update!(**args)
1139
+ @group_by_results = args[:group_by_results] if args.key?(:group_by_results)
1140
+ @next_page_token = args[:next_page_token] if args.key?(:next_page_token)
1141
+ @read_time = args[:read_time] if args.key?(:read_time)
1142
+ @total_size = args[:total_size] if args.key?(:total_size)
1143
+ end
1144
+ end
1145
+
1146
+ # Result containing the properties and count of a groupBy request.
1147
+ class GroupResult
1148
+ include Google::Apis::Core::Hashable
1149
+
1150
+ # Total count of resources for the given properties.
1151
+ # Corresponds to the JSON property `count`
1152
+ # @return [Fixnum]
1153
+ attr_accessor :count
1154
+
1155
+ # Properties matching the groupBy fields in the request.
1156
+ # Corresponds to the JSON property `properties`
1157
+ # @return [Hash<String,Object>]
1158
+ attr_accessor :properties
1159
+
1160
+ def initialize(**args)
1161
+ update!(**args)
1162
+ end
1163
+
1164
+ # Update properties of this object
1165
+ def update!(**args)
1166
+ @count = args[:count] if args.key?(:count)
1167
+ @properties = args[:properties] if args.key?(:properties)
1168
+ end
1169
+ end
1170
+
1171
+ # Response message for listing assets.
1172
+ class ListAssetsResponse
1173
+ include Google::Apis::Core::Hashable
1174
+
1175
+ # Assets matching the list request.
1176
+ # Corresponds to the JSON property `listAssetsResults`
1177
+ # @return [Array<Google::Apis::SecuritycenterV1p1beta1::ListAssetsResult>]
1178
+ attr_accessor :list_assets_results
1179
+
1180
+ # Token to retrieve the next page of results, or empty if there are no more
1181
+ # results.
1182
+ # Corresponds to the JSON property `nextPageToken`
1183
+ # @return [String]
1184
+ attr_accessor :next_page_token
1185
+
1186
+ # Time used for executing the list request.
1187
+ # Corresponds to the JSON property `readTime`
1188
+ # @return [String]
1189
+ attr_accessor :read_time
1190
+
1191
+ # The total number of assets matching the query.
1192
+ # Corresponds to the JSON property `totalSize`
1193
+ # @return [Fixnum]
1194
+ attr_accessor :total_size
1195
+
1196
+ def initialize(**args)
1197
+ update!(**args)
1198
+ end
1199
+
1200
+ # Update properties of this object
1201
+ def update!(**args)
1202
+ @list_assets_results = args[:list_assets_results] if args.key?(:list_assets_results)
1203
+ @next_page_token = args[:next_page_token] if args.key?(:next_page_token)
1204
+ @read_time = args[:read_time] if args.key?(:read_time)
1205
+ @total_size = args[:total_size] if args.key?(:total_size)
1206
+ end
1207
+ end
1208
+
1209
+ # Result containing the Asset and its State.
1210
+ class ListAssetsResult
1211
+ include Google::Apis::Core::Hashable
1212
+
1213
+ # Cloud Security Command Center's (Cloud SCC) representation of a Google Cloud
1214
+ # Platform (GCP) resource.
1215
+ # The Asset is a Cloud SCC resource that captures information about a single
1216
+ # GCP resource. All modifications to an Asset are only within the context of
1217
+ # Cloud SCC and don't affect the referenced GCP resource.
1218
+ # Corresponds to the JSON property `asset`
1219
+ # @return [Google::Apis::SecuritycenterV1p1beta1::GoogleCloudSecuritycenterV1p1beta1Asset]
1220
+ attr_accessor :asset
1221
+
1222
+ # State change of the asset between the points in time.
1223
+ # Corresponds to the JSON property `stateChange`
1224
+ # @return [String]
1225
+ attr_accessor :state_change
1226
+
1227
+ def initialize(**args)
1228
+ update!(**args)
1229
+ end
1230
+
1231
+ # Update properties of this object
1232
+ def update!(**args)
1233
+ @asset = args[:asset] if args.key?(:asset)
1234
+ @state_change = args[:state_change] if args.key?(:state_change)
1235
+ end
1236
+ end
1237
+
1238
+ # Response message for listing findings.
1239
+ class ListFindingsResponse
1240
+ include Google::Apis::Core::Hashable
1241
+
1242
+ # Findings matching the list request.
1243
+ # Corresponds to the JSON property `listFindingsResults`
1244
+ # @return [Array<Google::Apis::SecuritycenterV1p1beta1::ListFindingsResult>]
1245
+ attr_accessor :list_findings_results
1246
+
1247
+ # Token to retrieve the next page of results, or empty if there are no more
1248
+ # results.
1249
+ # Corresponds to the JSON property `nextPageToken`
1250
+ # @return [String]
1251
+ attr_accessor :next_page_token
1252
+
1253
+ # Time used for executing the list request.
1254
+ # Corresponds to the JSON property `readTime`
1255
+ # @return [String]
1256
+ attr_accessor :read_time
1257
+
1258
+ # The total number of findings matching the query.
1259
+ # Corresponds to the JSON property `totalSize`
1260
+ # @return [Fixnum]
1261
+ attr_accessor :total_size
1262
+
1263
+ def initialize(**args)
1264
+ update!(**args)
1265
+ end
1266
+
1267
+ # Update properties of this object
1268
+ def update!(**args)
1269
+ @list_findings_results = args[:list_findings_results] if args.key?(:list_findings_results)
1270
+ @next_page_token = args[:next_page_token] if args.key?(:next_page_token)
1271
+ @read_time = args[:read_time] if args.key?(:read_time)
1272
+ @total_size = args[:total_size] if args.key?(:total_size)
1273
+ end
1274
+ end
1275
+
1276
+ # Result containing the Finding and its StateChange.
1277
+ class ListFindingsResult
1278
+ include Google::Apis::Core::Hashable
1279
+
1280
+ # Cloud Security Command Center (Cloud SCC) finding.
1281
+ # A finding is a record of assessment data (security, risk, health or privacy)
1282
+ # ingested into Cloud SCC for presentation, notification, analysis,
1283
+ # policy testing, and enforcement. For example, an XSS vulnerability in an
1284
+ # App Engine application is a finding.
1285
+ # Corresponds to the JSON property `finding`
1286
+ # @return [Google::Apis::SecuritycenterV1p1beta1::GoogleCloudSecuritycenterV1p1beta1Finding]
1287
+ attr_accessor :finding
1288
+
1289
+ # Information related to the Google Cloud Platform (GCP) resource that is
1290
+ # associated with this finding.
1291
+ # Corresponds to the JSON property `resource`
1292
+ # @return [Google::Apis::SecuritycenterV1p1beta1::Resource]
1293
+ attr_accessor :resource
1294
+
1295
+ # State change of the finding between the points in time.
1296
+ # Corresponds to the JSON property `stateChange`
1297
+ # @return [String]
1298
+ attr_accessor :state_change
1299
+
1300
+ def initialize(**args)
1301
+ update!(**args)
1302
+ end
1303
+
1304
+ # Update properties of this object
1305
+ def update!(**args)
1306
+ @finding = args[:finding] if args.key?(:finding)
1307
+ @resource = args[:resource] if args.key?(:resource)
1308
+ @state_change = args[:state_change] if args.key?(:state_change)
1309
+ end
1310
+ end
1311
+
1312
+ # Response message for listing notification configs.
1313
+ class ListNotificationConfigsResponse
1314
+ include Google::Apis::Core::Hashable
1315
+
1316
+ # Token to retrieve the next page of results, or empty if there are no more
1317
+ # results.
1318
+ # Corresponds to the JSON property `nextPageToken`
1319
+ # @return [String]
1320
+ attr_accessor :next_page_token
1321
+
1322
+ # Notification configs belonging to the requested parent.
1323
+ # Corresponds to the JSON property `notificationConfigs`
1324
+ # @return [Array<Google::Apis::SecuritycenterV1p1beta1::NotificationConfig>]
1325
+ attr_accessor :notification_configs
1326
+
1327
+ def initialize(**args)
1328
+ update!(**args)
1329
+ end
1330
+
1331
+ # Update properties of this object
1332
+ def update!(**args)
1333
+ @next_page_token = args[:next_page_token] if args.key?(:next_page_token)
1334
+ @notification_configs = args[:notification_configs] if args.key?(:notification_configs)
1335
+ end
1336
+ end
1337
+
1338
+ # The response message for Operations.ListOperations.
1339
+ class ListOperationsResponse
1340
+ include Google::Apis::Core::Hashable
1341
+
1342
+ # The standard List next-page token.
1343
+ # Corresponds to the JSON property `nextPageToken`
1344
+ # @return [String]
1345
+ attr_accessor :next_page_token
1346
+
1347
+ # A list of operations that matches the specified filter in the request.
1348
+ # Corresponds to the JSON property `operations`
1349
+ # @return [Array<Google::Apis::SecuritycenterV1p1beta1::Operation>]
1350
+ attr_accessor :operations
1351
+
1352
+ def initialize(**args)
1353
+ update!(**args)
1354
+ end
1355
+
1356
+ # Update properties of this object
1357
+ def update!(**args)
1358
+ @next_page_token = args[:next_page_token] if args.key?(:next_page_token)
1359
+ @operations = args[:operations] if args.key?(:operations)
1360
+ end
1361
+ end
1362
+
1363
+ # Response message for listing sources.
1364
+ class ListSourcesResponse
1365
+ include Google::Apis::Core::Hashable
1366
+
1367
+ # Token to retrieve the next page of results, or empty if there are no more
1368
+ # results.
1369
+ # Corresponds to the JSON property `nextPageToken`
1370
+ # @return [String]
1371
+ attr_accessor :next_page_token
1372
+
1373
+ # Sources belonging to the requested parent.
1374
+ # Corresponds to the JSON property `sources`
1375
+ # @return [Array<Google::Apis::SecuritycenterV1p1beta1::Source>]
1376
+ attr_accessor :sources
1377
+
1378
+ def initialize(**args)
1379
+ update!(**args)
1380
+ end
1381
+
1382
+ # Update properties of this object
1383
+ def update!(**args)
1384
+ @next_page_token = args[:next_page_token] if args.key?(:next_page_token)
1385
+ @sources = args[:sources] if args.key?(:sources)
1386
+ end
1387
+ end
1388
+
1389
+ # Cloud Security Command Center (Cloud SCC) notification configs.
1390
+ # A notification config is a Cloud SCC resource that contains the configuration
1391
+ # to send notifications for create/update events of findings, assets and etc.
1392
+ class NotificationConfig
1393
+ include Google::Apis::Core::Hashable
1394
+
1395
+ # The description of the notification config (max of 1024 characters).
1396
+ # Corresponds to the JSON property `description`
1397
+ # @return [String]
1398
+ attr_accessor :description
1399
+
1400
+ # The type of events the config is for, e.g. FINDING.
1401
+ # Corresponds to the JSON property `eventType`
1402
+ # @return [String]
1403
+ attr_accessor :event_type
1404
+
1405
+ # The relative resource name of this notification config. See:
1406
+ # https://cloud.google.com/apis/design/resource_names#relative_resource_name
1407
+ # Example:
1408
+ # "organizations/`organization_id`/notificationConfigs/notify_public_bucket".
1409
+ # Corresponds to the JSON property `name`
1410
+ # @return [String]
1411
+ attr_accessor :name
1412
+
1413
+ # The PubSub topic to send notifications to. Its format is
1414
+ # "projects/[project_id]/topics/[topic]".
1415
+ # Corresponds to the JSON property `pubsubTopic`
1416
+ # @return [String]
1417
+ attr_accessor :pubsub_topic
1418
+
1419
+ # Output only. The service account that needs "pubsub.topics.publish"
1420
+ # permission to publish to the PubSub topic.
1421
+ # Corresponds to the JSON property `serviceAccount`
1422
+ # @return [String]
1423
+ attr_accessor :service_account
1424
+
1425
+ # The config for streaming-based notifications, which send each event as soon
1426
+ # as it is detected.
1427
+ # Corresponds to the JSON property `streamingConfig`
1428
+ # @return [Google::Apis::SecuritycenterV1p1beta1::StreamingConfig]
1429
+ attr_accessor :streaming_config
1430
+
1431
+ def initialize(**args)
1432
+ update!(**args)
1433
+ end
1434
+
1435
+ # Update properties of this object
1436
+ def update!(**args)
1437
+ @description = args[:description] if args.key?(:description)
1438
+ @event_type = args[:event_type] if args.key?(:event_type)
1439
+ @name = args[:name] if args.key?(:name)
1440
+ @pubsub_topic = args[:pubsub_topic] if args.key?(:pubsub_topic)
1441
+ @service_account = args[:service_account] if args.key?(:service_account)
1442
+ @streaming_config = args[:streaming_config] if args.key?(:streaming_config)
1443
+ end
1444
+ end
1445
+
1446
+ # This resource represents a long-running operation that is the result of a
1447
+ # network API call.
1448
+ class Operation
1449
+ include Google::Apis::Core::Hashable
1450
+
1451
+ # If the value is `false`, it means the operation is still in progress.
1452
+ # If `true`, the operation is completed, and either `error` or `response` is
1453
+ # available.
1454
+ # Corresponds to the JSON property `done`
1455
+ # @return [Boolean]
1456
+ attr_accessor :done
1457
+ alias_method :done?, :done
1458
+
1459
+ # The `Status` type defines a logical error model that is suitable for
1460
+ # different programming environments, including REST APIs and RPC APIs. It is
1461
+ # used by [gRPC](https://github.com/grpc). Each `Status` message contains
1462
+ # three pieces of data: error code, error message, and error details.
1463
+ # You can find out more about this error model and how to work with it in the
1464
+ # [API Design Guide](https://cloud.google.com/apis/design/errors).
1465
+ # Corresponds to the JSON property `error`
1466
+ # @return [Google::Apis::SecuritycenterV1p1beta1::Status]
1467
+ attr_accessor :error
1468
+
1469
+ # Service-specific metadata associated with the operation. It typically
1470
+ # contains progress information and common metadata such as create time.
1471
+ # Some services might not provide such metadata. Any method that returns a
1472
+ # long-running operation should document the metadata type, if any.
1473
+ # Corresponds to the JSON property `metadata`
1474
+ # @return [Hash<String,Object>]
1475
+ attr_accessor :metadata
1476
+
1477
+ # The server-assigned name, which is only unique within the same service that
1478
+ # originally returns it. If you use the default HTTP mapping, the
1479
+ # `name` should be a resource name ending with `operations/`unique_id``.
1480
+ # Corresponds to the JSON property `name`
1481
+ # @return [String]
1482
+ attr_accessor :name
1483
+
1484
+ # The normal response of the operation in case of success. If the original
1485
+ # method returns no data on success, such as `Delete`, the response is
1486
+ # `google.protobuf.Empty`. If the original method is standard
1487
+ # `Get`/`Create`/`Update`, the response should be the resource. For other
1488
+ # methods, the response should have the type `XxxResponse`, where `Xxx`
1489
+ # is the original method name. For example, if the original method name
1490
+ # is `TakeSnapshot()`, the inferred response type is
1491
+ # `TakeSnapshotResponse`.
1492
+ # Corresponds to the JSON property `response`
1493
+ # @return [Hash<String,Object>]
1494
+ attr_accessor :response
1495
+
1496
+ def initialize(**args)
1497
+ update!(**args)
1498
+ end
1499
+
1500
+ # Update properties of this object
1501
+ def update!(**args)
1502
+ @done = args[:done] if args.key?(:done)
1503
+ @error = args[:error] if args.key?(:error)
1504
+ @metadata = args[:metadata] if args.key?(:metadata)
1505
+ @name = args[:name] if args.key?(:name)
1506
+ @response = args[:response] if args.key?(:response)
1507
+ end
1508
+ end
1509
+
1510
+ # User specified settings that are attached to the Cloud Security Command
1511
+ # Center (Cloud SCC) organization.
1512
+ class OrganizationSettings
1513
+ include Google::Apis::Core::Hashable
1514
+
1515
+ # The configuration used for Asset Discovery runs.
1516
+ # Corresponds to the JSON property `assetDiscoveryConfig`
1517
+ # @return [Google::Apis::SecuritycenterV1p1beta1::AssetDiscoveryConfig]
1518
+ attr_accessor :asset_discovery_config
1519
+
1520
+ # A flag that indicates if Asset Discovery should be enabled. If the flag is
1521
+ # set to `true`, then discovery of assets will occur. If it is set to `false,
1522
+ # all historical assets will remain, but discovery of future assets will not
1523
+ # occur.
1524
+ # Corresponds to the JSON property `enableAssetDiscovery`
1525
+ # @return [Boolean]
1526
+ attr_accessor :enable_asset_discovery
1527
+ alias_method :enable_asset_discovery?, :enable_asset_discovery
1528
+
1529
+ # The relative resource name of the settings. See:
1530
+ # https://cloud.google.com/apis/design/resource_names#relative_resource_name
1531
+ # Example:
1532
+ # "organizations/`organization_id`/organizationSettings".
1533
+ # Corresponds to the JSON property `name`
1534
+ # @return [String]
1535
+ attr_accessor :name
1536
+
1537
+ def initialize(**args)
1538
+ update!(**args)
1539
+ end
1540
+
1541
+ # Update properties of this object
1542
+ def update!(**args)
1543
+ @asset_discovery_config = args[:asset_discovery_config] if args.key?(:asset_discovery_config)
1544
+ @enable_asset_discovery = args[:enable_asset_discovery] if args.key?(:enable_asset_discovery)
1545
+ @name = args[:name] if args.key?(:name)
1546
+ end
1547
+ end
1548
+
1549
+ # An Identity and Access Management (IAM) policy, which specifies access
1550
+ # controls for Google Cloud resources.
1551
+ # A `Policy` is a collection of `bindings`. A `binding` binds one or more
1552
+ # `members` to a single `role`. Members can be user accounts, service accounts,
1553
+ # Google groups, and domains (such as G Suite). A `role` is a named list of
1554
+ # permissions; each `role` can be an IAM predefined role or a user-created
1555
+ # custom role.
1556
+ # Optionally, a `binding` can specify a `condition`, which is a logical
1557
+ # expression that allows access to a resource only if the expression evaluates
1558
+ # to `true`. A condition can add constraints based on attributes of the
1559
+ # request, the resource, or both.
1560
+ # **JSON example:**
1561
+ # `
1562
+ # "bindings": [
1563
+ # `
1564
+ # "role": "roles/resourcemanager.organizationAdmin",
1565
+ # "members": [
1566
+ # "user:mike@example.com",
1567
+ # "group:admins@example.com",
1568
+ # "domain:google.com",
1569
+ # "serviceAccount:my-project-id@appspot.gserviceaccount.com"
1570
+ # ]
1571
+ # `,
1572
+ # `
1573
+ # "role": "roles/resourcemanager.organizationViewer",
1574
+ # "members": ["user:eve@example.com"],
1575
+ # "condition": `
1576
+ # "title": "expirable access",
1577
+ # "description": "Does not grant access after Sep 2020",
1578
+ # "expression": "request.time < timestamp('2020-10-01T00:00:00.000Z')
1579
+ # ",
1580
+ # `
1581
+ # `
1582
+ # ],
1583
+ # "etag": "BwWWja0YfJA=",
1584
+ # "version": 3
1585
+ # `
1586
+ # **YAML example:**
1587
+ # bindings:
1588
+ # - members:
1589
+ # - user:mike@example.com
1590
+ # - group:admins@example.com
1591
+ # - domain:google.com
1592
+ # - serviceAccount:my-project-id@appspot.gserviceaccount.com
1593
+ # role: roles/resourcemanager.organizationAdmin
1594
+ # - members:
1595
+ # - user:eve@example.com
1596
+ # role: roles/resourcemanager.organizationViewer
1597
+ # condition:
1598
+ # title: expirable access
1599
+ # description: Does not grant access after Sep 2020
1600
+ # expression: request.time < timestamp('2020-10-01T00:00:00.000Z')
1601
+ # - etag: BwWWja0YfJA=
1602
+ # - version: 3
1603
+ # For a description of IAM and its features, see the
1604
+ # [IAM documentation](https://cloud.google.com/iam/docs/).
1605
+ class Policy
1606
+ include Google::Apis::Core::Hashable
1607
+
1608
+ # Specifies cloud audit logging configuration for this policy.
1609
+ # Corresponds to the JSON property `auditConfigs`
1610
+ # @return [Array<Google::Apis::SecuritycenterV1p1beta1::AuditConfig>]
1611
+ attr_accessor :audit_configs
1612
+
1613
+ # Associates a list of `members` to a `role`. Optionally, may specify a
1614
+ # `condition` that determines how and when the `bindings` are applied. Each
1615
+ # of the `bindings` must contain at least one member.
1616
+ # Corresponds to the JSON property `bindings`
1617
+ # @return [Array<Google::Apis::SecuritycenterV1p1beta1::Binding>]
1618
+ attr_accessor :bindings
1619
+
1620
+ # `etag` is used for optimistic concurrency control as a way to help
1621
+ # prevent simultaneous updates of a policy from overwriting each other.
1622
+ # It is strongly suggested that systems make use of the `etag` in the
1623
+ # read-modify-write cycle to perform policy updates in order to avoid race
1624
+ # conditions: An `etag` is returned in the response to `getIamPolicy`, and
1625
+ # systems are expected to put that etag in the request to `setIamPolicy` to
1626
+ # ensure that their change will be applied to the same version of the policy.
1627
+ # **Important:** If you use IAM Conditions, you must include the `etag` field
1628
+ # whenever you call `setIamPolicy`. If you omit this field, then IAM allows
1629
+ # you to overwrite a version `3` policy with a version `1` policy, and all of
1630
+ # the conditions in the version `3` policy are lost.
1631
+ # Corresponds to the JSON property `etag`
1632
+ # NOTE: Values are automatically base64 encoded/decoded in the client library.
1633
+ # @return [String]
1634
+ attr_accessor :etag
1635
+
1636
+ # Specifies the format of the policy.
1637
+ # Valid values are `0`, `1`, and `3`. Requests that specify an invalid value
1638
+ # are rejected.
1639
+ # Any operation that affects conditional role bindings must specify version
1640
+ # `3`. This requirement applies to the following operations:
1641
+ # * Getting a policy that includes a conditional role binding
1642
+ # * Adding a conditional role binding to a policy
1643
+ # * Changing a conditional role binding in a policy
1644
+ # * Removing any role binding, with or without a condition, from a policy
1645
+ # that includes conditions
1646
+ # **Important:** If you use IAM Conditions, you must include the `etag` field
1647
+ # whenever you call `setIamPolicy`. If you omit this field, then IAM allows
1648
+ # you to overwrite a version `3` policy with a version `1` policy, and all of
1649
+ # the conditions in the version `3` policy are lost.
1650
+ # If a policy does not include any conditions, operations on that policy may
1651
+ # specify any valid version or leave the field unset.
1652
+ # Corresponds to the JSON property `version`
1653
+ # @return [Fixnum]
1654
+ attr_accessor :version
1655
+
1656
+ def initialize(**args)
1657
+ update!(**args)
1658
+ end
1659
+
1660
+ # Update properties of this object
1661
+ def update!(**args)
1662
+ @audit_configs = args[:audit_configs] if args.key?(:audit_configs)
1663
+ @bindings = args[:bindings] if args.key?(:bindings)
1664
+ @etag = args[:etag] if args.key?(:etag)
1665
+ @version = args[:version] if args.key?(:version)
1666
+ end
1667
+ end
1668
+
1669
+ # Information related to the Google Cloud Platform (GCP) resource that is
1670
+ # associated with this finding.
1671
+ class Resource
1672
+ include Google::Apis::Core::Hashable
1673
+
1674
+ # The full resource name of the resource. See:
1675
+ # https://cloud.google.com/apis/design/resource_names#full_resource_name
1676
+ # Corresponds to the JSON property `name`
1677
+ # @return [String]
1678
+ attr_accessor :name
1679
+
1680
+ # The human readable name of resource's parent.
1681
+ # Corresponds to the JSON property `parentDisplayName`
1682
+ # @return [String]
1683
+ attr_accessor :parent_display_name
1684
+
1685
+ # The full resource name of resource's parent.
1686
+ # Corresponds to the JSON property `parentName`
1687
+ # @return [String]
1688
+ attr_accessor :parent_name
1689
+
1690
+ # The human readable name of project that the resource belongs to.
1691
+ # Corresponds to the JSON property `projectDisplayName`
1692
+ # @return [String]
1693
+ attr_accessor :project_display_name
1694
+
1695
+ # The full resource name of project that the resource belongs to.
1696
+ # Corresponds to the JSON property `projectName`
1697
+ # @return [String]
1698
+ attr_accessor :project_name
1699
+
1700
+ def initialize(**args)
1701
+ update!(**args)
1702
+ end
1703
+
1704
+ # Update properties of this object
1705
+ def update!(**args)
1706
+ @name = args[:name] if args.key?(:name)
1707
+ @parent_display_name = args[:parent_display_name] if args.key?(:parent_display_name)
1708
+ @parent_name = args[:parent_name] if args.key?(:parent_name)
1709
+ @project_display_name = args[:project_display_name] if args.key?(:project_display_name)
1710
+ @project_name = args[:project_name] if args.key?(:project_name)
1711
+ end
1712
+ end
1713
+
1714
+ # Request message for running asset discovery for an organization.
1715
+ class RunAssetDiscoveryRequest
1716
+ include Google::Apis::Core::Hashable
1717
+
1718
+ def initialize(**args)
1719
+ update!(**args)
1720
+ end
1721
+
1722
+ # Update properties of this object
1723
+ def update!(**args)
1724
+ end
1725
+ end
1726
+
1727
+ # Request message for updating a finding's state.
1728
+ class SetFindingStateRequest
1729
+ include Google::Apis::Core::Hashable
1730
+
1731
+ # Required. The time at which the updated state takes effect.
1732
+ # Corresponds to the JSON property `startTime`
1733
+ # @return [String]
1734
+ attr_accessor :start_time
1735
+
1736
+ # Required. The desired State of the finding.
1737
+ # Corresponds to the JSON property `state`
1738
+ # @return [String]
1739
+ attr_accessor :state
1740
+
1741
+ def initialize(**args)
1742
+ update!(**args)
1743
+ end
1744
+
1745
+ # Update properties of this object
1746
+ def update!(**args)
1747
+ @start_time = args[:start_time] if args.key?(:start_time)
1748
+ @state = args[:state] if args.key?(:state)
1749
+ end
1750
+ end
1751
+
1752
+ # Request message for `SetIamPolicy` method.
1753
+ class SetIamPolicyRequest
1754
+ include Google::Apis::Core::Hashable
1755
+
1756
+ # An Identity and Access Management (IAM) policy, which specifies access
1757
+ # controls for Google Cloud resources.
1758
+ # A `Policy` is a collection of `bindings`. A `binding` binds one or more
1759
+ # `members` to a single `role`. Members can be user accounts, service accounts,
1760
+ # Google groups, and domains (such as G Suite). A `role` is a named list of
1761
+ # permissions; each `role` can be an IAM predefined role or a user-created
1762
+ # custom role.
1763
+ # Optionally, a `binding` can specify a `condition`, which is a logical
1764
+ # expression that allows access to a resource only if the expression evaluates
1765
+ # to `true`. A condition can add constraints based on attributes of the
1766
+ # request, the resource, or both.
1767
+ # **JSON example:**
1768
+ # `
1769
+ # "bindings": [
1770
+ # `
1771
+ # "role": "roles/resourcemanager.organizationAdmin",
1772
+ # "members": [
1773
+ # "user:mike@example.com",
1774
+ # "group:admins@example.com",
1775
+ # "domain:google.com",
1776
+ # "serviceAccount:my-project-id@appspot.gserviceaccount.com"
1777
+ # ]
1778
+ # `,
1779
+ # `
1780
+ # "role": "roles/resourcemanager.organizationViewer",
1781
+ # "members": ["user:eve@example.com"],
1782
+ # "condition": `
1783
+ # "title": "expirable access",
1784
+ # "description": "Does not grant access after Sep 2020",
1785
+ # "expression": "request.time < timestamp('2020-10-01T00:00:00.000Z')
1786
+ # ",
1787
+ # `
1788
+ # `
1789
+ # ],
1790
+ # "etag": "BwWWja0YfJA=",
1791
+ # "version": 3
1792
+ # `
1793
+ # **YAML example:**
1794
+ # bindings:
1795
+ # - members:
1796
+ # - user:mike@example.com
1797
+ # - group:admins@example.com
1798
+ # - domain:google.com
1799
+ # - serviceAccount:my-project-id@appspot.gserviceaccount.com
1800
+ # role: roles/resourcemanager.organizationAdmin
1801
+ # - members:
1802
+ # - user:eve@example.com
1803
+ # role: roles/resourcemanager.organizationViewer
1804
+ # condition:
1805
+ # title: expirable access
1806
+ # description: Does not grant access after Sep 2020
1807
+ # expression: request.time < timestamp('2020-10-01T00:00:00.000Z')
1808
+ # - etag: BwWWja0YfJA=
1809
+ # - version: 3
1810
+ # For a description of IAM and its features, see the
1811
+ # [IAM documentation](https://cloud.google.com/iam/docs/).
1812
+ # Corresponds to the JSON property `policy`
1813
+ # @return [Google::Apis::SecuritycenterV1p1beta1::Policy]
1814
+ attr_accessor :policy
1815
+
1816
+ # OPTIONAL: A FieldMask specifying which fields of the policy to modify. Only
1817
+ # the fields in the mask will be modified. If no mask is provided, the
1818
+ # following default mask is used:
1819
+ # paths: "bindings, etag"
1820
+ # This field is only used by Cloud IAM.
1821
+ # Corresponds to the JSON property `updateMask`
1822
+ # @return [String]
1823
+ attr_accessor :update_mask
1824
+
1825
+ def initialize(**args)
1826
+ update!(**args)
1827
+ end
1828
+
1829
+ # Update properties of this object
1830
+ def update!(**args)
1831
+ @policy = args[:policy] if args.key?(:policy)
1832
+ @update_mask = args[:update_mask] if args.key?(:update_mask)
1833
+ end
1834
+ end
1835
+
1836
+ # Cloud Security Command Center's (Cloud SCC) finding source. A finding source
1837
+ # is an entity or a mechanism that can produce a finding. A source is like a
1838
+ # container of findings that come from the same scanner, logger, monitor, etc.
1839
+ class Source
1840
+ include Google::Apis::Core::Hashable
1841
+
1842
+ # The description of the source (max of 1024 characters).
1843
+ # Example:
1844
+ # "Cloud Security Scanner is a web security scanner for common
1845
+ # vulnerabilities in App Engine applications. It can automatically
1846
+ # scan and detect four common vulnerabilities, including cross-site-scripting
1847
+ # (XSS), Flash injection, mixed content (HTTP in HTTPS), and
1848
+ # outdated/insecure libraries."
1849
+ # Corresponds to the JSON property `description`
1850
+ # @return [String]
1851
+ attr_accessor :description
1852
+
1853
+ # The source's display name.
1854
+ # A source's display name must be unique amongst its siblings, for example,
1855
+ # two sources with the same parent can't share the same display name.
1856
+ # The display name must have a length between 1 and 64 characters
1857
+ # (inclusive).
1858
+ # Corresponds to the JSON property `displayName`
1859
+ # @return [String]
1860
+ attr_accessor :display_name
1861
+
1862
+ # The relative resource name of this source. See:
1863
+ # https://cloud.google.com/apis/design/resource_names#relative_resource_name
1864
+ # Example:
1865
+ # "organizations/`organization_id`/sources/`source_id`"
1866
+ # Corresponds to the JSON property `name`
1867
+ # @return [String]
1868
+ attr_accessor :name
1869
+
1870
+ def initialize(**args)
1871
+ update!(**args)
1872
+ end
1873
+
1874
+ # Update properties of this object
1875
+ def update!(**args)
1876
+ @description = args[:description] if args.key?(:description)
1877
+ @display_name = args[:display_name] if args.key?(:display_name)
1878
+ @name = args[:name] if args.key?(:name)
1879
+ end
1880
+ end
1881
+
1882
+ # The `Status` type defines a logical error model that is suitable for
1883
+ # different programming environments, including REST APIs and RPC APIs. It is
1884
+ # used by [gRPC](https://github.com/grpc). Each `Status` message contains
1885
+ # three pieces of data: error code, error message, and error details.
1886
+ # You can find out more about this error model and how to work with it in the
1887
+ # [API Design Guide](https://cloud.google.com/apis/design/errors).
1888
+ class Status
1889
+ include Google::Apis::Core::Hashable
1890
+
1891
+ # The status code, which should be an enum value of google.rpc.Code.
1892
+ # Corresponds to the JSON property `code`
1893
+ # @return [Fixnum]
1894
+ attr_accessor :code
1895
+
1896
+ # A list of messages that carry the error details. There is a common set of
1897
+ # message types for APIs to use.
1898
+ # Corresponds to the JSON property `details`
1899
+ # @return [Array<Hash<String,Object>>]
1900
+ attr_accessor :details
1901
+
1902
+ # A developer-facing error message, which should be in English. Any
1903
+ # user-facing error message should be localized and sent in the
1904
+ # google.rpc.Status.details field, or localized by the client.
1905
+ # Corresponds to the JSON property `message`
1906
+ # @return [String]
1907
+ attr_accessor :message
1908
+
1909
+ def initialize(**args)
1910
+ update!(**args)
1911
+ end
1912
+
1913
+ # Update properties of this object
1914
+ def update!(**args)
1915
+ @code = args[:code] if args.key?(:code)
1916
+ @details = args[:details] if args.key?(:details)
1917
+ @message = args[:message] if args.key?(:message)
1918
+ end
1919
+ end
1920
+
1921
+ # The config for streaming-based notifications, which send each event as soon
1922
+ # as it is detected.
1923
+ class StreamingConfig
1924
+ include Google::Apis::Core::Hashable
1925
+
1926
+ # Expression that defines the filter to apply across create/update events
1927
+ # of assets or findings as specified by the event type. The expression is a
1928
+ # list of zero or more restrictions combined via logical operators `AND`
1929
+ # and `OR`. Parentheses are supported, and `OR` has higher precedence than
1930
+ # `AND`.
1931
+ # Restrictions have the form `<field> <operator> <value>` and may have a
1932
+ # `-` character in front of them to indicate negation. The fields map to
1933
+ # those defined in the corresponding resource.
1934
+ # The supported operators are:
1935
+ # * `=` for all value types.
1936
+ # * `>`, `<`, `>=`, `<=` for integer values.
1937
+ # * `:`, meaning substring matching, for strings.
1938
+ # The supported value types are:
1939
+ # * string literals in quotes.
1940
+ # * integer literals without quotes.
1941
+ # * boolean literals `true` and `false` without quotes.
1942
+ # Corresponds to the JSON property `filter`
1943
+ # @return [String]
1944
+ attr_accessor :filter
1945
+
1946
+ def initialize(**args)
1947
+ update!(**args)
1948
+ end
1949
+
1950
+ # Update properties of this object
1951
+ def update!(**args)
1952
+ @filter = args[:filter] if args.key?(:filter)
1953
+ end
1954
+ end
1955
+
1956
+ # Request message for `TestIamPermissions` method.
1957
+ class TestIamPermissionsRequest
1958
+ include Google::Apis::Core::Hashable
1959
+
1960
+ # The set of permissions to check for the `resource`. Permissions with
1961
+ # wildcards (such as '*' or 'storage.*') are not allowed. For more
1962
+ # information see
1963
+ # [IAM Overview](https://cloud.google.com/iam/docs/overview#permissions).
1964
+ # Corresponds to the JSON property `permissions`
1965
+ # @return [Array<String>]
1966
+ attr_accessor :permissions
1967
+
1968
+ def initialize(**args)
1969
+ update!(**args)
1970
+ end
1971
+
1972
+ # Update properties of this object
1973
+ def update!(**args)
1974
+ @permissions = args[:permissions] if args.key?(:permissions)
1975
+ end
1976
+ end
1977
+
1978
+ # Response message for `TestIamPermissions` method.
1979
+ class TestIamPermissionsResponse
1980
+ include Google::Apis::Core::Hashable
1981
+
1982
+ # A subset of `TestPermissionsRequest.permissions` that the caller is
1983
+ # allowed.
1984
+ # Corresponds to the JSON property `permissions`
1985
+ # @return [Array<String>]
1986
+ attr_accessor :permissions
1987
+
1988
+ def initialize(**args)
1989
+ update!(**args)
1990
+ end
1991
+
1992
+ # Update properties of this object
1993
+ def update!(**args)
1994
+ @permissions = args[:permissions] if args.key?(:permissions)
1995
+ end
1996
+ end
1997
+ end
1998
+ end
1999
+ end