google-api-client 0.36.4 → 0.37.0

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