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
@@ -12,22 +12,21 @@
12
12
  # See the License for the specific language governing permissions and
13
13
  # limitations under the License.
14
14
 
15
- require 'google/apis/servicebroker_v1alpha1/service.rb'
16
- require 'google/apis/servicebroker_v1alpha1/classes.rb'
17
- require 'google/apis/servicebroker_v1alpha1/representations.rb'
15
+ require 'google/apis/osconfig_v1beta/service.rb'
16
+ require 'google/apis/osconfig_v1beta/classes.rb'
17
+ require 'google/apis/osconfig_v1beta/representations.rb'
18
18
 
19
19
  module Google
20
20
  module Apis
21
- # Service Broker API
21
+ # Cloud OS Config API
22
22
  #
23
- # The Google Cloud Platform Service Broker API provides Google hosted
24
- # implementation of the Open Service Broker API
25
- # (https://www.openservicebrokerapi.org/).
23
+ # OS management tools that can be used for patch management, patch compliance,
24
+ # and configuration management on VM instances.
26
25
  #
27
- # @see https://cloud.google.com/kubernetes-engine/docs/concepts/add-on/service-broker
28
- module ServicebrokerV1alpha1
29
- VERSION = 'V1alpha1'
30
- REVISION = '20191202'
26
+ # @see https://cloud.google.com/
27
+ module OsconfigV1beta
28
+ VERSION = 'V1beta'
29
+ REVISION = '20200207'
31
30
 
32
31
  # View and manage your data across Google Cloud Platform services
33
32
  AUTH_CLOUD_PLATFORM = 'https://www.googleapis.com/auth/cloud-platform'
@@ -0,0 +1,2357 @@
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 OsconfigV1beta
24
+
25
+ # Represents a single Apt package repository. This repository is added to
26
+ # a repo file that is stored at
27
+ # `/etc/apt/sources.list.d/google_osconfig.list`.
28
+ class AptRepository
29
+ include Google::Apis::Core::Hashable
30
+
31
+ # Type of archive files in this repository. The default behavior is DEB.
32
+ # Corresponds to the JSON property `archiveType`
33
+ # @return [String]
34
+ attr_accessor :archive_type
35
+
36
+ # Required. List of components for this repository. Must contain at least one
37
+ # item.
38
+ # Corresponds to the JSON property `components`
39
+ # @return [Array<String>]
40
+ attr_accessor :components
41
+
42
+ # Required. Distribution of this repository.
43
+ # Corresponds to the JSON property `distribution`
44
+ # @return [String]
45
+ attr_accessor :distribution
46
+
47
+ # URI of the key file for this repository. The agent maintains
48
+ # a keyring at `/etc/apt/trusted.gpg.d/osconfig_agent_managed.gpg` containing
49
+ # all the keys in any applied guest policy.
50
+ # Corresponds to the JSON property `gpgKey`
51
+ # @return [String]
52
+ attr_accessor :gpg_key
53
+
54
+ # Required. URI for this repository.
55
+ # Corresponds to the JSON property `uri`
56
+ # @return [String]
57
+ attr_accessor :uri
58
+
59
+ def initialize(**args)
60
+ update!(**args)
61
+ end
62
+
63
+ # Update properties of this object
64
+ def update!(**args)
65
+ @archive_type = args[:archive_type] if args.key?(:archive_type)
66
+ @components = args[:components] if args.key?(:components)
67
+ @distribution = args[:distribution] if args.key?(:distribution)
68
+ @gpg_key = args[:gpg_key] if args.key?(:gpg_key)
69
+ @uri = args[:uri] if args.key?(:uri)
70
+ end
71
+ end
72
+
73
+ # Apt patching is completed by executing `apt-get update && apt-get
74
+ # upgrade`. Additional options can be set to control how this is executed.
75
+ class AptSettings
76
+ include Google::Apis::Core::Hashable
77
+
78
+ # List of packages to exclude from update. These packages will be excluded
79
+ # Corresponds to the JSON property `excludes`
80
+ # @return [Array<String>]
81
+ attr_accessor :excludes
82
+
83
+ # An exclusive list of packages to be updated. These are the only packages
84
+ # that will be updated. If these packages are not installed, they will be
85
+ # ignored. This field cannot be specified with any other patch configuration
86
+ # fields.
87
+ # Corresponds to the JSON property `exclusivePackages`
88
+ # @return [Array<String>]
89
+ attr_accessor :exclusive_packages
90
+
91
+ # By changing the type to DIST, the patching is performed
92
+ # using `apt-get dist-upgrade` instead.
93
+ # Corresponds to the JSON property `type`
94
+ # @return [String]
95
+ attr_accessor :type
96
+
97
+ def initialize(**args)
98
+ update!(**args)
99
+ end
100
+
101
+ # Update properties of this object
102
+ def update!(**args)
103
+ @excludes = args[:excludes] if args.key?(:excludes)
104
+ @exclusive_packages = args[:exclusive_packages] if args.key?(:exclusive_packages)
105
+ @type = args[:type] if args.key?(:type)
106
+ end
107
+ end
108
+
109
+ # An assignment represents the group or groups of VM instances that the policy
110
+ # applies to.
111
+ # If an assignment is empty, it applies to all VM instances. Otherwise, the
112
+ # targeted VM instances must meet all the criteria specified. So if both
113
+ # labels and zones are specified, the policy applies to VM instances with those
114
+ # labels and in those zones.
115
+ class Assignment
116
+ include Google::Apis::Core::Hashable
117
+
118
+ # Targets instances matching at least one of these label sets. This allows
119
+ # an assignment to target disparate groups, for example "env=prod or
120
+ # env=staging".
121
+ # Corresponds to the JSON property `groupLabels`
122
+ # @return [Array<Google::Apis::OsconfigV1beta::AssignmentGroupLabel>]
123
+ attr_accessor :group_labels
124
+
125
+ # Targets VM instances whose name starts with one of these prefixes.
126
+ # Like labels, this is another way to group VM instances when targeting
127
+ # configs, for example prefix="prod-".
128
+ # Only supported for project-level policies.
129
+ # Corresponds to the JSON property `instanceNamePrefixes`
130
+ # @return [Array<String>]
131
+ attr_accessor :instance_name_prefixes
132
+
133
+ # Targets any of the instances specified. Instances are specified by their
134
+ # URI in the form `zones/[ZONE]/instances/[INSTANCE_NAME]`.
135
+ # Instance targeting is uncommon and is supported to facilitate the
136
+ # management of changes by the instance or to target specific VM instances
137
+ # for development and testing.
138
+ # Only supported for project-level policies and must reference instances
139
+ # within this project.
140
+ # Corresponds to the JSON property `instances`
141
+ # @return [Array<String>]
142
+ attr_accessor :instances
143
+
144
+ # Targets VM instances matching at least one of the following OS types.
145
+ # VM instances must match all supplied criteria for a given OsType to be
146
+ # included.
147
+ # Corresponds to the JSON property `osTypes`
148
+ # @return [Array<Google::Apis::OsconfigV1beta::AssignmentOsType>]
149
+ attr_accessor :os_types
150
+
151
+ # Targets instances in any of these zones. Leave empty to target instances
152
+ # in any zone.
153
+ # Zonal targeting is uncommon and is supported to facilitate the management
154
+ # of changes by zone.
155
+ # Corresponds to the JSON property `zones`
156
+ # @return [Array<String>]
157
+ attr_accessor :zones
158
+
159
+ def initialize(**args)
160
+ update!(**args)
161
+ end
162
+
163
+ # Update properties of this object
164
+ def update!(**args)
165
+ @group_labels = args[:group_labels] if args.key?(:group_labels)
166
+ @instance_name_prefixes = args[:instance_name_prefixes] if args.key?(:instance_name_prefixes)
167
+ @instances = args[:instances] if args.key?(:instances)
168
+ @os_types = args[:os_types] if args.key?(:os_types)
169
+ @zones = args[:zones] if args.key?(:zones)
170
+ end
171
+ end
172
+
173
+ # Represents a group of VM intances that can be identified as having all
174
+ # these labels, for example "env=prod and app=web".
175
+ class AssignmentGroupLabel
176
+ include Google::Apis::Core::Hashable
177
+
178
+ # Google Compute Engine instance labels that must be present for an
179
+ # instance to be included in this assignment group.
180
+ # Corresponds to the JSON property `labels`
181
+ # @return [Hash<String,String>]
182
+ attr_accessor :labels
183
+
184
+ def initialize(**args)
185
+ update!(**args)
186
+ end
187
+
188
+ # Update properties of this object
189
+ def update!(**args)
190
+ @labels = args[:labels] if args.key?(:labels)
191
+ end
192
+ end
193
+
194
+ # Defines the criteria for selecting VM Instances by OS type.
195
+ class AssignmentOsType
196
+ include Google::Apis::Core::Hashable
197
+
198
+ # Targets VM instances with OS Inventory enabled and having the following
199
+ # OS architecture.
200
+ # Corresponds to the JSON property `osArchitecture`
201
+ # @return [String]
202
+ attr_accessor :os_architecture
203
+
204
+ # Targets VM instances with OS Inventory enabled and having the following
205
+ # OS short name, for example "debian" or "windows".
206
+ # Corresponds to the JSON property `osShortName`
207
+ # @return [String]
208
+ attr_accessor :os_short_name
209
+
210
+ # Targets VM instances with OS Inventory enabled and having the following
211
+ # following OS version.
212
+ # Corresponds to the JSON property `osVersion`
213
+ # @return [String]
214
+ attr_accessor :os_version
215
+
216
+ def initialize(**args)
217
+ update!(**args)
218
+ end
219
+
220
+ # Update properties of this object
221
+ def update!(**args)
222
+ @os_architecture = args[:os_architecture] if args.key?(:os_architecture)
223
+ @os_short_name = args[:os_short_name] if args.key?(:os_short_name)
224
+ @os_version = args[:os_version] if args.key?(:os_version)
225
+ end
226
+ end
227
+
228
+ # Message for canceling a patch job.
229
+ class CancelPatchJobRequest
230
+ include Google::Apis::Core::Hashable
231
+
232
+ def initialize(**args)
233
+ update!(**args)
234
+ end
235
+
236
+ # Update properties of this object
237
+ def update!(**args)
238
+ end
239
+ end
240
+
241
+ # The effective guest policy that applies to a VM instance.
242
+ class EffectiveGuestPolicy
243
+ include Google::Apis::Core::Hashable
244
+
245
+ # List of package repository configurations assigned to the VM instance.
246
+ # Corresponds to the JSON property `packageRepositories`
247
+ # @return [Array<Google::Apis::OsconfigV1beta::EffectiveGuestPolicySourcedPackageRepository>]
248
+ attr_accessor :package_repositories
249
+
250
+ # List of package configurations assigned to the VM instance.
251
+ # Corresponds to the JSON property `packages`
252
+ # @return [Array<Google::Apis::OsconfigV1beta::EffectiveGuestPolicySourcedPackage>]
253
+ attr_accessor :packages
254
+
255
+ # List of recipes assigned to the VM instance.
256
+ # Corresponds to the JSON property `softwareRecipes`
257
+ # @return [Array<Google::Apis::OsconfigV1beta::EffectiveGuestPolicySourcedSoftwareRecipe>]
258
+ attr_accessor :software_recipes
259
+
260
+ def initialize(**args)
261
+ update!(**args)
262
+ end
263
+
264
+ # Update properties of this object
265
+ def update!(**args)
266
+ @package_repositories = args[:package_repositories] if args.key?(:package_repositories)
267
+ @packages = args[:packages] if args.key?(:packages)
268
+ @software_recipes = args[:software_recipes] if args.key?(:software_recipes)
269
+ end
270
+ end
271
+
272
+ # A guest policy package including its source.
273
+ class EffectiveGuestPolicySourcedPackage
274
+ include Google::Apis::Core::Hashable
275
+
276
+ # Package is a reference to the software package to be installed or removed.
277
+ # The agent on the VM instance uses the system package manager to apply the
278
+ # config.
279
+ # These are the commands that the agent uses to install or remove
280
+ # packages.
281
+ # Apt
282
+ # install: `apt-get update && apt-get -y install package1 package2 package3`
283
+ # remove: `apt-get -y remove package1 package2 package3`
284
+ # Yum
285
+ # install: `yum -y install package1 package2 package3`
286
+ # remove: `yum -y remove package1 package2 package3`
287
+ # Zypper
288
+ # install: `zypper install package1 package2 package3`
289
+ # remove: `zypper rm package1 package2`
290
+ # Googet
291
+ # install: `googet -noconfirm install package1 package2 package3`
292
+ # remove: `googet -noconfirm remove package1 package2 package3`
293
+ # Corresponds to the JSON property `package`
294
+ # @return [Google::Apis::OsconfigV1beta::Package]
295
+ attr_accessor :package
296
+
297
+ # Name of the guest policy providing this config.
298
+ # Corresponds to the JSON property `source`
299
+ # @return [String]
300
+ attr_accessor :source
301
+
302
+ def initialize(**args)
303
+ update!(**args)
304
+ end
305
+
306
+ # Update properties of this object
307
+ def update!(**args)
308
+ @package = args[:package] if args.key?(:package)
309
+ @source = args[:source] if args.key?(:source)
310
+ end
311
+ end
312
+
313
+ # A guest policy package repository including its source.
314
+ class EffectiveGuestPolicySourcedPackageRepository
315
+ include Google::Apis::Core::Hashable
316
+
317
+ # A package repository.
318
+ # Corresponds to the JSON property `packageRepository`
319
+ # @return [Google::Apis::OsconfigV1beta::PackageRepository]
320
+ attr_accessor :package_repository
321
+
322
+ # Name of the guest policy providing this config.
323
+ # Corresponds to the JSON property `source`
324
+ # @return [String]
325
+ attr_accessor :source
326
+
327
+ def initialize(**args)
328
+ update!(**args)
329
+ end
330
+
331
+ # Update properties of this object
332
+ def update!(**args)
333
+ @package_repository = args[:package_repository] if args.key?(:package_repository)
334
+ @source = args[:source] if args.key?(:source)
335
+ end
336
+ end
337
+
338
+ # A guest policy recipe including its source.
339
+ class EffectiveGuestPolicySourcedSoftwareRecipe
340
+ include Google::Apis::Core::Hashable
341
+
342
+ # A software recipe is a set of instructions for installing and configuring a
343
+ # piece of software. It consists of a set of artifacts that are
344
+ # downloaded, and a set of steps that install, configure, and/or update the
345
+ # software.
346
+ # Recipes support installing and updating software from artifacts in the
347
+ # following formats:
348
+ # Zip archive, Tar archive, Windows MSI, Debian package, and RPM package.
349
+ # Additionally, recipes support executing a script (either defined in a file or
350
+ # directly in this api) in bash, sh, cmd, and powershell.
351
+ # Updating a software recipe
352
+ # If a recipe is assigned to an instance and there is a recipe with the same
353
+ # name but a lower version already installed and the assigned state
354
+ # of the recipe is `INSTALLED_KEEP_UPDATED`, then the recipe is updated to
355
+ # the new version.
356
+ # Script Working Directories
357
+ # Each script or execution step is run in its own temporary directory which
358
+ # is deleted after completing the step.
359
+ # Corresponds to the JSON property `softwareRecipe`
360
+ # @return [Google::Apis::OsconfigV1beta::SoftwareRecipe]
361
+ attr_accessor :software_recipe
362
+
363
+ # Name of the guest policy providing this config.
364
+ # Corresponds to the JSON property `source`
365
+ # @return [String]
366
+ attr_accessor :source
367
+
368
+ def initialize(**args)
369
+ update!(**args)
370
+ end
371
+
372
+ # Update properties of this object
373
+ def update!(**args)
374
+ @software_recipe = args[:software_recipe] if args.key?(:software_recipe)
375
+ @source = args[:source] if args.key?(:source)
376
+ end
377
+ end
378
+
379
+ # A generic empty message that you can re-use to avoid defining duplicated
380
+ # empty messages in your APIs. A typical example is to use it as the request
381
+ # or the response type of an API method. For instance:
382
+ # service Foo `
383
+ # rpc Bar(google.protobuf.Empty) returns (google.protobuf.Empty);
384
+ # `
385
+ # The JSON representation for `Empty` is empty JSON object ````.
386
+ class Empty
387
+ include Google::Apis::Core::Hashable
388
+
389
+ def initialize(**args)
390
+ update!(**args)
391
+ end
392
+
393
+ # Update properties of this object
394
+ def update!(**args)
395
+ end
396
+ end
397
+
398
+ # A step that runs an executable for a PatchJob.
399
+ class ExecStep
400
+ include Google::Apis::Core::Hashable
401
+
402
+ # Common configurations for an ExecStep.
403
+ # Corresponds to the JSON property `linuxExecStepConfig`
404
+ # @return [Google::Apis::OsconfigV1beta::ExecStepConfig]
405
+ attr_accessor :linux_exec_step_config
406
+
407
+ # Common configurations for an ExecStep.
408
+ # Corresponds to the JSON property `windowsExecStepConfig`
409
+ # @return [Google::Apis::OsconfigV1beta::ExecStepConfig]
410
+ attr_accessor :windows_exec_step_config
411
+
412
+ def initialize(**args)
413
+ update!(**args)
414
+ end
415
+
416
+ # Update properties of this object
417
+ def update!(**args)
418
+ @linux_exec_step_config = args[:linux_exec_step_config] if args.key?(:linux_exec_step_config)
419
+ @windows_exec_step_config = args[:windows_exec_step_config] if args.key?(:windows_exec_step_config)
420
+ end
421
+ end
422
+
423
+ # Common configurations for an ExecStep.
424
+ class ExecStepConfig
425
+ include Google::Apis::Core::Hashable
426
+
427
+ # Defaults to [0]. A list of possible return values that the
428
+ # execution can return to indicate a success.
429
+ # Corresponds to the JSON property `allowedSuccessCodes`
430
+ # @return [Array<Fixnum>]
431
+ attr_accessor :allowed_success_codes
432
+
433
+ # Google Cloud Storage object representation.
434
+ # Corresponds to the JSON property `gcsObject`
435
+ # @return [Google::Apis::OsconfigV1beta::GcsObject]
436
+ attr_accessor :gcs_object
437
+
438
+ # The script interpreter to use to run the script. If no interpreter is
439
+ # specified the script will be executed directly, which will likely
440
+ # only succeed for scripts with [shebang lines]
441
+ # (https://en.wikipedia.org/wiki/Shebang_\(Unix\)).
442
+ # Corresponds to the JSON property `interpreter`
443
+ # @return [String]
444
+ attr_accessor :interpreter
445
+
446
+ # An absolute path to the executable on the VM.
447
+ # Corresponds to the JSON property `localPath`
448
+ # @return [String]
449
+ attr_accessor :local_path
450
+
451
+ def initialize(**args)
452
+ update!(**args)
453
+ end
454
+
455
+ # Update properties of this object
456
+ def update!(**args)
457
+ @allowed_success_codes = args[:allowed_success_codes] if args.key?(:allowed_success_codes)
458
+ @gcs_object = args[:gcs_object] if args.key?(:gcs_object)
459
+ @interpreter = args[:interpreter] if args.key?(:interpreter)
460
+ @local_path = args[:local_path] if args.key?(:local_path)
461
+ end
462
+ end
463
+
464
+ # A request message to initiate patching across Google Compute Engine
465
+ # instances.
466
+ class ExecutePatchJobRequest
467
+ include Google::Apis::Core::Hashable
468
+
469
+ # Description of the patch job. Length of the description is limited
470
+ # to 1024 characters.
471
+ # Corresponds to the JSON property `description`
472
+ # @return [String]
473
+ attr_accessor :description
474
+
475
+ # Display name for this patch job. This does not have to be unique.
476
+ # Corresponds to the JSON property `displayName`
477
+ # @return [String]
478
+ attr_accessor :display_name
479
+
480
+ # If this patch is a dry-run only, instances are contacted but
481
+ # will do nothing.
482
+ # Corresponds to the JSON property `dryRun`
483
+ # @return [Boolean]
484
+ attr_accessor :dry_run
485
+ alias_method :dry_run?, :dry_run
486
+
487
+ # Duration of the patch job. After the duration ends, the patch job
488
+ # times out.
489
+ # Corresponds to the JSON property `duration`
490
+ # @return [String]
491
+ attr_accessor :duration
492
+
493
+ # A filter to target VM instances for patching. The targeted
494
+ # VMs must meet all criteria specified. So if both labels and zones are
495
+ # specified, the patch job targets only VMs with those labels and in those
496
+ # zones.
497
+ # Corresponds to the JSON property `instanceFilter`
498
+ # @return [Google::Apis::OsconfigV1beta::PatchInstanceFilter]
499
+ attr_accessor :instance_filter
500
+
501
+ # Patch configuration specifications. Contains details on how to apply the
502
+ # patch(es) to a VM instance.
503
+ # Corresponds to the JSON property `patchConfig`
504
+ # @return [Google::Apis::OsconfigV1beta::PatchConfig]
505
+ attr_accessor :patch_config
506
+
507
+ def initialize(**args)
508
+ update!(**args)
509
+ end
510
+
511
+ # Update properties of this object
512
+ def update!(**args)
513
+ @description = args[:description] if args.key?(:description)
514
+ @display_name = args[:display_name] if args.key?(:display_name)
515
+ @dry_run = args[:dry_run] if args.key?(:dry_run)
516
+ @duration = args[:duration] if args.key?(:duration)
517
+ @instance_filter = args[:instance_filter] if args.key?(:instance_filter)
518
+ @patch_config = args[:patch_config] if args.key?(:patch_config)
519
+ end
520
+ end
521
+
522
+ # Google Cloud Storage object representation.
523
+ class GcsObject
524
+ include Google::Apis::Core::Hashable
525
+
526
+ # Required. Bucket of the Google Cloud Storage object.
527
+ # Corresponds to the JSON property `bucket`
528
+ # @return [String]
529
+ attr_accessor :bucket
530
+
531
+ # Required. Generation number of the Google Cloud Storage object. This is used
532
+ # to
533
+ # ensure that the ExecStep specified by this PatchJob does not change.
534
+ # Corresponds to the JSON property `generationNumber`
535
+ # @return [Fixnum]
536
+ attr_accessor :generation_number
537
+
538
+ # Required. Name of the Google Cloud Storage object.
539
+ # Corresponds to the JSON property `object`
540
+ # @return [String]
541
+ attr_accessor :object
542
+
543
+ def initialize(**args)
544
+ update!(**args)
545
+ end
546
+
547
+ # Update properties of this object
548
+ def update!(**args)
549
+ @bucket = args[:bucket] if args.key?(:bucket)
550
+ @generation_number = args[:generation_number] if args.key?(:generation_number)
551
+ @object = args[:object] if args.key?(:object)
552
+ end
553
+ end
554
+
555
+ # Represents a Goo package repository. These is added to a repo file
556
+ # that is stored at C:/ProgramData/GooGet/repos/google_osconfig.repo.
557
+ class GooRepository
558
+ include Google::Apis::Core::Hashable
559
+
560
+ # Required. The name of the repository.
561
+ # Corresponds to the JSON property `name`
562
+ # @return [String]
563
+ attr_accessor :name
564
+
565
+ # Required. The url of the repository.
566
+ # Corresponds to the JSON property `url`
567
+ # @return [String]
568
+ attr_accessor :url
569
+
570
+ def initialize(**args)
571
+ update!(**args)
572
+ end
573
+
574
+ # Update properties of this object
575
+ def update!(**args)
576
+ @name = args[:name] if args.key?(:name)
577
+ @url = args[:url] if args.key?(:url)
578
+ end
579
+ end
580
+
581
+ # Googet patching is performed by running `googet update`.
582
+ class GooSettings
583
+ include Google::Apis::Core::Hashable
584
+
585
+ def initialize(**args)
586
+ update!(**args)
587
+ end
588
+
589
+ # Update properties of this object
590
+ def update!(**args)
591
+ end
592
+ end
593
+
594
+ # An OS Config resource representing a guest configuration policy. These
595
+ # policies represent the desired state for VM instance guest environments
596
+ # including packages to install or remove, package repository configurations,
597
+ # and software to install.
598
+ class GuestPolicy
599
+ include Google::Apis::Core::Hashable
600
+
601
+ # An assignment represents the group or groups of VM instances that the policy
602
+ # applies to.
603
+ # If an assignment is empty, it applies to all VM instances. Otherwise, the
604
+ # targeted VM instances must meet all the criteria specified. So if both
605
+ # labels and zones are specified, the policy applies to VM instances with those
606
+ # labels and in those zones.
607
+ # Corresponds to the JSON property `assignment`
608
+ # @return [Google::Apis::OsconfigV1beta::Assignment]
609
+ attr_accessor :assignment
610
+
611
+ # Output only. Time this guest policy was created.
612
+ # Corresponds to the JSON property `createTime`
613
+ # @return [String]
614
+ attr_accessor :create_time
615
+
616
+ # Description of the guest policy. Length of the description is limited
617
+ # to 1024 characters.
618
+ # Corresponds to the JSON property `description`
619
+ # @return [String]
620
+ attr_accessor :description
621
+
622
+ # The etag for this guest policy.
623
+ # If this is provided on update, it must match the server's etag.
624
+ # Corresponds to the JSON property `etag`
625
+ # @return [String]
626
+ attr_accessor :etag
627
+
628
+ # Required. Unique name of the resource in this project using one of the
629
+ # following
630
+ # forms:
631
+ # `projects/`project_number`/guestPolicies/`guest_policy_id``.
632
+ # Corresponds to the JSON property `name`
633
+ # @return [String]
634
+ attr_accessor :name
635
+
636
+ # A list of package repositories to configure on the VM instance. This is
637
+ # done before any other configs are applied so they can use these repos.
638
+ # Package repositories are only configured if the corresponding package
639
+ # manager(s) are available.
640
+ # Corresponds to the JSON property `packageRepositories`
641
+ # @return [Array<Google::Apis::OsconfigV1beta::PackageRepository>]
642
+ attr_accessor :package_repositories
643
+
644
+ # The software packages to be managed by this policy.
645
+ # Corresponds to the JSON property `packages`
646
+ # @return [Array<Google::Apis::OsconfigV1beta::Package>]
647
+ attr_accessor :packages
648
+
649
+ # A list of Recipes to install on the VM instance.
650
+ # Corresponds to the JSON property `recipes`
651
+ # @return [Array<Google::Apis::OsconfigV1beta::SoftwareRecipe>]
652
+ attr_accessor :recipes
653
+
654
+ # Output only. Last time this guest policy was updated.
655
+ # Corresponds to the JSON property `updateTime`
656
+ # @return [String]
657
+ attr_accessor :update_time
658
+
659
+ def initialize(**args)
660
+ update!(**args)
661
+ end
662
+
663
+ # Update properties of this object
664
+ def update!(**args)
665
+ @assignment = args[:assignment] if args.key?(:assignment)
666
+ @create_time = args[:create_time] if args.key?(:create_time)
667
+ @description = args[:description] if args.key?(:description)
668
+ @etag = args[:etag] if args.key?(:etag)
669
+ @name = args[:name] if args.key?(:name)
670
+ @package_repositories = args[:package_repositories] if args.key?(:package_repositories)
671
+ @packages = args[:packages] if args.key?(:packages)
672
+ @recipes = args[:recipes] if args.key?(:recipes)
673
+ @update_time = args[:update_time] if args.key?(:update_time)
674
+ end
675
+ end
676
+
677
+ # A response message for listing guest policies.
678
+ class ListGuestPoliciesResponse
679
+ include Google::Apis::Core::Hashable
680
+
681
+ # The list of GuestPolicies.
682
+ # Corresponds to the JSON property `guestPolicies`
683
+ # @return [Array<Google::Apis::OsconfigV1beta::GuestPolicy>]
684
+ attr_accessor :guest_policies
685
+
686
+ # A pagination token that can be used to get the next page
687
+ # of guest policies.
688
+ # Corresponds to the JSON property `nextPageToken`
689
+ # @return [String]
690
+ attr_accessor :next_page_token
691
+
692
+ def initialize(**args)
693
+ update!(**args)
694
+ end
695
+
696
+ # Update properties of this object
697
+ def update!(**args)
698
+ @guest_policies = args[:guest_policies] if args.key?(:guest_policies)
699
+ @next_page_token = args[:next_page_token] if args.key?(:next_page_token)
700
+ end
701
+ end
702
+
703
+ # A response message for listing patch deployments.
704
+ class ListPatchDeploymentsResponse
705
+ include Google::Apis::Core::Hashable
706
+
707
+ # A pagination token that can be used to get the next page of patch
708
+ # deployments.
709
+ # Corresponds to the JSON property `nextPageToken`
710
+ # @return [String]
711
+ attr_accessor :next_page_token
712
+
713
+ # The list of patch deployments.
714
+ # Corresponds to the JSON property `patchDeployments`
715
+ # @return [Array<Google::Apis::OsconfigV1beta::PatchDeployment>]
716
+ attr_accessor :patch_deployments
717
+
718
+ def initialize(**args)
719
+ update!(**args)
720
+ end
721
+
722
+ # Update properties of this object
723
+ def update!(**args)
724
+ @next_page_token = args[:next_page_token] if args.key?(:next_page_token)
725
+ @patch_deployments = args[:patch_deployments] if args.key?(:patch_deployments)
726
+ end
727
+ end
728
+
729
+ # A response message for listing the instances details for a patch job.
730
+ class ListPatchJobInstanceDetailsResponse
731
+ include Google::Apis::Core::Hashable
732
+
733
+ # A pagination token that can be used to get the next page of results.
734
+ # Corresponds to the JSON property `nextPageToken`
735
+ # @return [String]
736
+ attr_accessor :next_page_token
737
+
738
+ # A list of instance status.
739
+ # Corresponds to the JSON property `patchJobInstanceDetails`
740
+ # @return [Array<Google::Apis::OsconfigV1beta::PatchJobInstanceDetails>]
741
+ attr_accessor :patch_job_instance_details
742
+
743
+ def initialize(**args)
744
+ update!(**args)
745
+ end
746
+
747
+ # Update properties of this object
748
+ def update!(**args)
749
+ @next_page_token = args[:next_page_token] if args.key?(:next_page_token)
750
+ @patch_job_instance_details = args[:patch_job_instance_details] if args.key?(:patch_job_instance_details)
751
+ end
752
+ end
753
+
754
+ # A response message for listing patch jobs.
755
+ class ListPatchJobsResponse
756
+ include Google::Apis::Core::Hashable
757
+
758
+ # A pagination token that can be used to get the next page of results.
759
+ # Corresponds to the JSON property `nextPageToken`
760
+ # @return [String]
761
+ attr_accessor :next_page_token
762
+
763
+ # The list of patch jobs.
764
+ # Corresponds to the JSON property `patchJobs`
765
+ # @return [Array<Google::Apis::OsconfigV1beta::PatchJob>]
766
+ attr_accessor :patch_jobs
767
+
768
+ def initialize(**args)
769
+ update!(**args)
770
+ end
771
+
772
+ # Update properties of this object
773
+ def update!(**args)
774
+ @next_page_token = args[:next_page_token] if args.key?(:next_page_token)
775
+ @patch_jobs = args[:patch_jobs] if args.key?(:patch_jobs)
776
+ end
777
+ end
778
+
779
+ # A request message for getting the effective guest policy assigned to the
780
+ # instance.
781
+ class LookupEffectiveGuestPolicyRequest
782
+ include Google::Apis::Core::Hashable
783
+
784
+ # Architecture of OS running on the instance. The OS Config agent only
785
+ # provides this field for targeting if OS Inventory is enabled for that
786
+ # instance.
787
+ # Corresponds to the JSON property `osArchitecture`
788
+ # @return [String]
789
+ attr_accessor :os_architecture
790
+
791
+ # Short name of the OS running on the instance. The OS Config agent only
792
+ # provides this field for targeting if OS Inventory is enabled for that
793
+ # instance.
794
+ # Corresponds to the JSON property `osShortName`
795
+ # @return [String]
796
+ attr_accessor :os_short_name
797
+
798
+ # Version of the OS running on the instance. The OS Config agent only
799
+ # provides this field for targeting if OS Inventory is enabled for that
800
+ # VM instance.
801
+ # Corresponds to the JSON property `osVersion`
802
+ # @return [String]
803
+ attr_accessor :os_version
804
+
805
+ def initialize(**args)
806
+ update!(**args)
807
+ end
808
+
809
+ # Update properties of this object
810
+ def update!(**args)
811
+ @os_architecture = args[:os_architecture] if args.key?(:os_architecture)
812
+ @os_short_name = args[:os_short_name] if args.key?(:os_short_name)
813
+ @os_version = args[:os_version] if args.key?(:os_version)
814
+ end
815
+ end
816
+
817
+ # Represents a monthly schedule. An example of a valid monthly schedule is
818
+ # "on the third Tuesday of the month" or "on the 15th of the month".
819
+ class MonthlySchedule
820
+ include Google::Apis::Core::Hashable
821
+
822
+ # Required. One day of the month. 1-31 indicates the 1st to the 31st day. -1
823
+ # indicates the last day of the month.
824
+ # Months without the target day will be skipped. For example, a schedule to
825
+ # run "every month on the 31st" will not run in February, April, June, etc.
826
+ # Corresponds to the JSON property `monthDay`
827
+ # @return [Fixnum]
828
+ attr_accessor :month_day
829
+
830
+ # Represents one week day in a month. An example is "the 4th Sunday".
831
+ # Corresponds to the JSON property `weekDayOfMonth`
832
+ # @return [Google::Apis::OsconfigV1beta::WeekDayOfMonth]
833
+ attr_accessor :week_day_of_month
834
+
835
+ def initialize(**args)
836
+ update!(**args)
837
+ end
838
+
839
+ # Update properties of this object
840
+ def update!(**args)
841
+ @month_day = args[:month_day] if args.key?(:month_day)
842
+ @week_day_of_month = args[:week_day_of_month] if args.key?(:week_day_of_month)
843
+ end
844
+ end
845
+
846
+ # Sets the time for a one time patch deployment. Timestamp is in
847
+ # <a href="https://www.ietf.org/rfc/rfc3339.txt" target="_blank">RFC3339</a>
848
+ # text format.
849
+ class OneTimeSchedule
850
+ include Google::Apis::Core::Hashable
851
+
852
+ # Required. The desired patch job execution time.
853
+ # Corresponds to the JSON property `executeTime`
854
+ # @return [String]
855
+ attr_accessor :execute_time
856
+
857
+ def initialize(**args)
858
+ update!(**args)
859
+ end
860
+
861
+ # Update properties of this object
862
+ def update!(**args)
863
+ @execute_time = args[:execute_time] if args.key?(:execute_time)
864
+ end
865
+ end
866
+
867
+ # Package is a reference to the software package to be installed or removed.
868
+ # The agent on the VM instance uses the system package manager to apply the
869
+ # config.
870
+ # These are the commands that the agent uses to install or remove
871
+ # packages.
872
+ # Apt
873
+ # install: `apt-get update && apt-get -y install package1 package2 package3`
874
+ # remove: `apt-get -y remove package1 package2 package3`
875
+ # Yum
876
+ # install: `yum -y install package1 package2 package3`
877
+ # remove: `yum -y remove package1 package2 package3`
878
+ # Zypper
879
+ # install: `zypper install package1 package2 package3`
880
+ # remove: `zypper rm package1 package2`
881
+ # Googet
882
+ # install: `googet -noconfirm install package1 package2 package3`
883
+ # remove: `googet -noconfirm remove package1 package2 package3`
884
+ class Package
885
+ include Google::Apis::Core::Hashable
886
+
887
+ # The desired_state the agent should maintain for this package. The
888
+ # default is to ensure the package is installed.
889
+ # Corresponds to the JSON property `desiredState`
890
+ # @return [String]
891
+ attr_accessor :desired_state
892
+
893
+ # Type of package manager that can be used to install this package.
894
+ # If a system does not have the package manager, the package is not
895
+ # installed or removed no error message is returned. By default,
896
+ # or if you specify `ANY`,
897
+ # the agent attempts to install and remove this package using the default
898
+ # package manager. This is useful when creating a policy that applies to
899
+ # different types of systems.
900
+ # The default behavior is ANY.
901
+ # Corresponds to the JSON property `manager`
902
+ # @return [String]
903
+ attr_accessor :manager
904
+
905
+ # Required. The name of the package. A package is uniquely identified for
906
+ # conflict
907
+ # validation by checking the package name and the manager(s) that the
908
+ # package targets.
909
+ # Corresponds to the JSON property `name`
910
+ # @return [String]
911
+ attr_accessor :name
912
+
913
+ def initialize(**args)
914
+ update!(**args)
915
+ end
916
+
917
+ # Update properties of this object
918
+ def update!(**args)
919
+ @desired_state = args[:desired_state] if args.key?(:desired_state)
920
+ @manager = args[:manager] if args.key?(:manager)
921
+ @name = args[:name] if args.key?(:name)
922
+ end
923
+ end
924
+
925
+ # A package repository.
926
+ class PackageRepository
927
+ include Google::Apis::Core::Hashable
928
+
929
+ # Represents a single Apt package repository. This repository is added to
930
+ # a repo file that is stored at
931
+ # `/etc/apt/sources.list.d/google_osconfig.list`.
932
+ # Corresponds to the JSON property `apt`
933
+ # @return [Google::Apis::OsconfigV1beta::AptRepository]
934
+ attr_accessor :apt
935
+
936
+ # Represents a Goo package repository. These is added to a repo file
937
+ # that is stored at C:/ProgramData/GooGet/repos/google_osconfig.repo.
938
+ # Corresponds to the JSON property `goo`
939
+ # @return [Google::Apis::OsconfigV1beta::GooRepository]
940
+ attr_accessor :goo
941
+
942
+ # Represents a single Yum package repository. This repository is added to a
943
+ # repo file that is stored at `/etc/yum.repos.d/google_osconfig.repo`.
944
+ # Corresponds to the JSON property `yum`
945
+ # @return [Google::Apis::OsconfigV1beta::YumRepository]
946
+ attr_accessor :yum
947
+
948
+ # Represents a single Zypper package repository. This repository is added to a
949
+ # repo file that is stored at `/etc/zypp/repos.d/google_osconfig.repo`.
950
+ # Corresponds to the JSON property `zypper`
951
+ # @return [Google::Apis::OsconfigV1beta::ZypperRepository]
952
+ attr_accessor :zypper
953
+
954
+ def initialize(**args)
955
+ update!(**args)
956
+ end
957
+
958
+ # Update properties of this object
959
+ def update!(**args)
960
+ @apt = args[:apt] if args.key?(:apt)
961
+ @goo = args[:goo] if args.key?(:goo)
962
+ @yum = args[:yum] if args.key?(:yum)
963
+ @zypper = args[:zypper] if args.key?(:zypper)
964
+ end
965
+ end
966
+
967
+ # Patch configuration specifications. Contains details on how to apply the
968
+ # patch(es) to a VM instance.
969
+ class PatchConfig
970
+ include Google::Apis::Core::Hashable
971
+
972
+ # Apt patching is completed by executing `apt-get update && apt-get
973
+ # upgrade`. Additional options can be set to control how this is executed.
974
+ # Corresponds to the JSON property `apt`
975
+ # @return [Google::Apis::OsconfigV1beta::AptSettings]
976
+ attr_accessor :apt
977
+
978
+ # Googet patching is performed by running `googet update`.
979
+ # Corresponds to the JSON property `goo`
980
+ # @return [Google::Apis::OsconfigV1beta::GooSettings]
981
+ attr_accessor :goo
982
+
983
+ # A step that runs an executable for a PatchJob.
984
+ # Corresponds to the JSON property `postStep`
985
+ # @return [Google::Apis::OsconfigV1beta::ExecStep]
986
+ attr_accessor :post_step
987
+
988
+ # A step that runs an executable for a PatchJob.
989
+ # Corresponds to the JSON property `preStep`
990
+ # @return [Google::Apis::OsconfigV1beta::ExecStep]
991
+ attr_accessor :pre_step
992
+
993
+ # Post-patch reboot settings.
994
+ # Corresponds to the JSON property `rebootConfig`
995
+ # @return [String]
996
+ attr_accessor :reboot_config
997
+
998
+ # Windows patching is performed using the Windows Update Agent.
999
+ # Corresponds to the JSON property `windowsUpdate`
1000
+ # @return [Google::Apis::OsconfigV1beta::WindowsUpdateSettings]
1001
+ attr_accessor :windows_update
1002
+
1003
+ # Yum patching is performed by executing `yum update`. Additional options
1004
+ # can be set to control how this is executed.
1005
+ # Note that not all settings are supported on all platforms.
1006
+ # Corresponds to the JSON property `yum`
1007
+ # @return [Google::Apis::OsconfigV1beta::YumSettings]
1008
+ attr_accessor :yum
1009
+
1010
+ # Zypper patching is performed by running `zypper patch`.
1011
+ # See also https://en.opensuse.org/SDB:Zypper_manual.
1012
+ # Corresponds to the JSON property `zypper`
1013
+ # @return [Google::Apis::OsconfigV1beta::ZypperSettings]
1014
+ attr_accessor :zypper
1015
+
1016
+ def initialize(**args)
1017
+ update!(**args)
1018
+ end
1019
+
1020
+ # Update properties of this object
1021
+ def update!(**args)
1022
+ @apt = args[:apt] if args.key?(:apt)
1023
+ @goo = args[:goo] if args.key?(:goo)
1024
+ @post_step = args[:post_step] if args.key?(:post_step)
1025
+ @pre_step = args[:pre_step] if args.key?(:pre_step)
1026
+ @reboot_config = args[:reboot_config] if args.key?(:reboot_config)
1027
+ @windows_update = args[:windows_update] if args.key?(:windows_update)
1028
+ @yum = args[:yum] if args.key?(:yum)
1029
+ @zypper = args[:zypper] if args.key?(:zypper)
1030
+ end
1031
+ end
1032
+
1033
+ # Patch deployments are configurations that individual patch jobs use to
1034
+ # complete a patch. These configurations include instance filter, package
1035
+ # repository settings, and a schedule.
1036
+ class PatchDeployment
1037
+ include Google::Apis::Core::Hashable
1038
+
1039
+ # Output only. Time the patch deployment was created. Timestamp is in
1040
+ # <a href="https://www.ietf.org/rfc/rfc3339.txt" target="_blank">RFC3339</a>
1041
+ # text format.
1042
+ # Corresponds to the JSON property `createTime`
1043
+ # @return [String]
1044
+ attr_accessor :create_time
1045
+
1046
+ # Optional. Description of the patch deployment. Length of the description is
1047
+ # limited
1048
+ # to 1024 characters.
1049
+ # Corresponds to the JSON property `description`
1050
+ # @return [String]
1051
+ attr_accessor :description
1052
+
1053
+ # Optional. Duration of the patch. After the duration ends, the patch times out.
1054
+ # Corresponds to the JSON property `duration`
1055
+ # @return [String]
1056
+ attr_accessor :duration
1057
+
1058
+ # A filter to target VM instances for patching. The targeted
1059
+ # VMs must meet all criteria specified. So if both labels and zones are
1060
+ # specified, the patch job targets only VMs with those labels and in those
1061
+ # zones.
1062
+ # Corresponds to the JSON property `instanceFilter`
1063
+ # @return [Google::Apis::OsconfigV1beta::PatchInstanceFilter]
1064
+ attr_accessor :instance_filter
1065
+
1066
+ # Output only. The last time a patch job was started by this deployment.
1067
+ # Timestamp is in
1068
+ # <a href="https://www.ietf.org/rfc/rfc3339.txt" target="_blank">RFC3339</a>
1069
+ # text format.
1070
+ # Corresponds to the JSON property `lastExecuteTime`
1071
+ # @return [String]
1072
+ attr_accessor :last_execute_time
1073
+
1074
+ # Unique name for the patch deployment resource in a project. The patch
1075
+ # deployment name is in the form:
1076
+ # `projects/`project_id`/patchDeployments/`patch_deployment_id``.
1077
+ # This field is ignored when you create a new patch deployment.
1078
+ # Corresponds to the JSON property `name`
1079
+ # @return [String]
1080
+ attr_accessor :name
1081
+
1082
+ # Sets the time for a one time patch deployment. Timestamp is in
1083
+ # <a href="https://www.ietf.org/rfc/rfc3339.txt" target="_blank">RFC3339</a>
1084
+ # text format.
1085
+ # Corresponds to the JSON property `oneTimeSchedule`
1086
+ # @return [Google::Apis::OsconfigV1beta::OneTimeSchedule]
1087
+ attr_accessor :one_time_schedule
1088
+
1089
+ # Patch configuration specifications. Contains details on how to apply the
1090
+ # patch(es) to a VM instance.
1091
+ # Corresponds to the JSON property `patchConfig`
1092
+ # @return [Google::Apis::OsconfigV1beta::PatchConfig]
1093
+ attr_accessor :patch_config
1094
+
1095
+ # Sets the time for recurring patch deployments.
1096
+ # Corresponds to the JSON property `recurringSchedule`
1097
+ # @return [Google::Apis::OsconfigV1beta::RecurringSchedule]
1098
+ attr_accessor :recurring_schedule
1099
+
1100
+ # Output only. Time the patch deployment was last updated. Timestamp is in
1101
+ # <a href="https://www.ietf.org/rfc/rfc3339.txt" target="_blank">RFC3339</a>
1102
+ # text format.
1103
+ # Corresponds to the JSON property `updateTime`
1104
+ # @return [String]
1105
+ attr_accessor :update_time
1106
+
1107
+ def initialize(**args)
1108
+ update!(**args)
1109
+ end
1110
+
1111
+ # Update properties of this object
1112
+ def update!(**args)
1113
+ @create_time = args[:create_time] if args.key?(:create_time)
1114
+ @description = args[:description] if args.key?(:description)
1115
+ @duration = args[:duration] if args.key?(:duration)
1116
+ @instance_filter = args[:instance_filter] if args.key?(:instance_filter)
1117
+ @last_execute_time = args[:last_execute_time] if args.key?(:last_execute_time)
1118
+ @name = args[:name] if args.key?(:name)
1119
+ @one_time_schedule = args[:one_time_schedule] if args.key?(:one_time_schedule)
1120
+ @patch_config = args[:patch_config] if args.key?(:patch_config)
1121
+ @recurring_schedule = args[:recurring_schedule] if args.key?(:recurring_schedule)
1122
+ @update_time = args[:update_time] if args.key?(:update_time)
1123
+ end
1124
+ end
1125
+
1126
+ # A filter to target VM instances for patching. The targeted
1127
+ # VMs must meet all criteria specified. So if both labels and zones are
1128
+ # specified, the patch job targets only VMs with those labels and in those
1129
+ # zones.
1130
+ class PatchInstanceFilter
1131
+ include Google::Apis::Core::Hashable
1132
+
1133
+ # Target all VM instances in the project. If true, no other criteria is
1134
+ # permitted.
1135
+ # Corresponds to the JSON property `all`
1136
+ # @return [Boolean]
1137
+ attr_accessor :all
1138
+ alias_method :all?, :all
1139
+
1140
+ # Targets VM instances matching at least one of these label sets. This allows
1141
+ # targeting of disparate groups, for example "env=prod or env=staging".
1142
+ # Corresponds to the JSON property `groupLabels`
1143
+ # @return [Array<Google::Apis::OsconfigV1beta::PatchInstanceFilterGroupLabel>]
1144
+ attr_accessor :group_labels
1145
+
1146
+ # Targets VMs whose name starts with one of these prefixes. Similar to
1147
+ # labels, this is another way to group VMs when targeting configs, for
1148
+ # example prefix="prod-".
1149
+ # Corresponds to the JSON property `instanceNamePrefixes`
1150
+ # @return [Array<String>]
1151
+ attr_accessor :instance_name_prefixes
1152
+
1153
+ # Targets any of the VM instances specified. Instances are specified by their
1154
+ # URI in the form `zones/[ZONE]/instances/[INSTANCE_NAME],
1155
+ # `projects/[PROJECT_ID]/zones/[ZONE]/instances/[INSTANCE_NAME]`, or
1156
+ # `https://www.googleapis.com/compute/v1/projects/[PROJECT_ID]/zones/[ZONE]/
1157
+ # instances/[INSTANCE_NAME]`
1158
+ # Corresponds to the JSON property `instances`
1159
+ # @return [Array<String>]
1160
+ attr_accessor :instances
1161
+
1162
+ # Targets VM instances in ANY of these zones. Leave empty to target VM
1163
+ # instances in any zone.
1164
+ # Corresponds to the JSON property `zones`
1165
+ # @return [Array<String>]
1166
+ attr_accessor :zones
1167
+
1168
+ def initialize(**args)
1169
+ update!(**args)
1170
+ end
1171
+
1172
+ # Update properties of this object
1173
+ def update!(**args)
1174
+ @all = args[:all] if args.key?(:all)
1175
+ @group_labels = args[:group_labels] if args.key?(:group_labels)
1176
+ @instance_name_prefixes = args[:instance_name_prefixes] if args.key?(:instance_name_prefixes)
1177
+ @instances = args[:instances] if args.key?(:instances)
1178
+ @zones = args[:zones] if args.key?(:zones)
1179
+ end
1180
+ end
1181
+
1182
+ # Represents a group of VMs that can be identified as having all these
1183
+ # labels, for example "env=prod and app=web".
1184
+ class PatchInstanceFilterGroupLabel
1185
+ include Google::Apis::Core::Hashable
1186
+
1187
+ # Google Compute Engine instance labels that must be present for a VM
1188
+ # instance to be targeted by this filter.
1189
+ # Corresponds to the JSON property `labels`
1190
+ # @return [Hash<String,String>]
1191
+ attr_accessor :labels
1192
+
1193
+ def initialize(**args)
1194
+ update!(**args)
1195
+ end
1196
+
1197
+ # Update properties of this object
1198
+ def update!(**args)
1199
+ @labels = args[:labels] if args.key?(:labels)
1200
+ end
1201
+ end
1202
+
1203
+ # A high level representation of a patch job that is either in progress
1204
+ # or has completed.
1205
+ # Instances details are not included in the job. To paginate through instance
1206
+ # details, use ListPatchJobInstanceDetails.
1207
+ class PatchJob
1208
+ include Google::Apis::Core::Hashable
1209
+
1210
+ # Time this patch job was created.
1211
+ # Corresponds to the JSON property `createTime`
1212
+ # @return [String]
1213
+ attr_accessor :create_time
1214
+
1215
+ # Description of the patch job. Length of the description is limited
1216
+ # to 1024 characters.
1217
+ # Corresponds to the JSON property `description`
1218
+ # @return [String]
1219
+ attr_accessor :description
1220
+
1221
+ # Display name for this patch job. This is not a unique identifier.
1222
+ # Corresponds to the JSON property `displayName`
1223
+ # @return [String]
1224
+ attr_accessor :display_name
1225
+
1226
+ # If this patch job is a dry run, the agent reports that it has
1227
+ # finished without running any updates on the VM instance.
1228
+ # Corresponds to the JSON property `dryRun`
1229
+ # @return [Boolean]
1230
+ attr_accessor :dry_run
1231
+ alias_method :dry_run?, :dry_run
1232
+
1233
+ # Duration of the patch job. After the duration ends, the
1234
+ # patch job times out.
1235
+ # Corresponds to the JSON property `duration`
1236
+ # @return [String]
1237
+ attr_accessor :duration
1238
+
1239
+ # If this patch job failed, this message provides information about the
1240
+ # failure.
1241
+ # Corresponds to the JSON property `errorMessage`
1242
+ # @return [String]
1243
+ attr_accessor :error_message
1244
+
1245
+ # A summary of the current patch state across all instances that this patch
1246
+ # job affects. Contains counts of instances in different states. These states
1247
+ # map to `InstancePatchState`. List patch job instance details to see the
1248
+ # specific states of each instance.
1249
+ # Corresponds to the JSON property `instanceDetailsSummary`
1250
+ # @return [Google::Apis::OsconfigV1beta::PatchJobInstanceDetailsSummary]
1251
+ attr_accessor :instance_details_summary
1252
+
1253
+ # A filter to target VM instances for patching. The targeted
1254
+ # VMs must meet all criteria specified. So if both labels and zones are
1255
+ # specified, the patch job targets only VMs with those labels and in those
1256
+ # zones.
1257
+ # Corresponds to the JSON property `instanceFilter`
1258
+ # @return [Google::Apis::OsconfigV1beta::PatchInstanceFilter]
1259
+ attr_accessor :instance_filter
1260
+
1261
+ # Unique identifier for this patch job in the form
1262
+ # `projects/*/patchJobs/*`
1263
+ # Corresponds to the JSON property `name`
1264
+ # @return [String]
1265
+ attr_accessor :name
1266
+
1267
+ # Patch configuration specifications. Contains details on how to apply the
1268
+ # patch(es) to a VM instance.
1269
+ # Corresponds to the JSON property `patchConfig`
1270
+ # @return [Google::Apis::OsconfigV1beta::PatchConfig]
1271
+ attr_accessor :patch_config
1272
+
1273
+ # Output only. Name of the patch deployment that created this patch job.
1274
+ # Corresponds to the JSON property `patchDeployment`
1275
+ # @return [String]
1276
+ attr_accessor :patch_deployment
1277
+
1278
+ # Reflects the overall progress of the patch job in the range of
1279
+ # 0.0 being no progress to 100.0 being complete.
1280
+ # Corresponds to the JSON property `percentComplete`
1281
+ # @return [Float]
1282
+ attr_accessor :percent_complete
1283
+
1284
+ # The current state of the PatchJob .
1285
+ # Corresponds to the JSON property `state`
1286
+ # @return [String]
1287
+ attr_accessor :state
1288
+
1289
+ # Last time this patch job was updated.
1290
+ # Corresponds to the JSON property `updateTime`
1291
+ # @return [String]
1292
+ attr_accessor :update_time
1293
+
1294
+ def initialize(**args)
1295
+ update!(**args)
1296
+ end
1297
+
1298
+ # Update properties of this object
1299
+ def update!(**args)
1300
+ @create_time = args[:create_time] if args.key?(:create_time)
1301
+ @description = args[:description] if args.key?(:description)
1302
+ @display_name = args[:display_name] if args.key?(:display_name)
1303
+ @dry_run = args[:dry_run] if args.key?(:dry_run)
1304
+ @duration = args[:duration] if args.key?(:duration)
1305
+ @error_message = args[:error_message] if args.key?(:error_message)
1306
+ @instance_details_summary = args[:instance_details_summary] if args.key?(:instance_details_summary)
1307
+ @instance_filter = args[:instance_filter] if args.key?(:instance_filter)
1308
+ @name = args[:name] if args.key?(:name)
1309
+ @patch_config = args[:patch_config] if args.key?(:patch_config)
1310
+ @patch_deployment = args[:patch_deployment] if args.key?(:patch_deployment)
1311
+ @percent_complete = args[:percent_complete] if args.key?(:percent_complete)
1312
+ @state = args[:state] if args.key?(:state)
1313
+ @update_time = args[:update_time] if args.key?(:update_time)
1314
+ end
1315
+ end
1316
+
1317
+ # Patch details for a VM instance.
1318
+ class PatchJobInstanceDetails
1319
+ include Google::Apis::Core::Hashable
1320
+
1321
+ # The number of times the agent that the agent attempts to apply the patch.
1322
+ # Corresponds to the JSON property `attemptCount`
1323
+ # @return [Fixnum]
1324
+ attr_accessor :attempt_count
1325
+
1326
+ # If the patch fails, this field provides the reason.
1327
+ # Corresponds to the JSON property `failureReason`
1328
+ # @return [String]
1329
+ attr_accessor :failure_reason
1330
+
1331
+ # The unique identifier for the instance. This identifier is
1332
+ # defined by the server.
1333
+ # Corresponds to the JSON property `instanceSystemId`
1334
+ # @return [String]
1335
+ attr_accessor :instance_system_id
1336
+
1337
+ # The instance name in the form `projects/*/zones/*/instances/*`
1338
+ # Corresponds to the JSON property `name`
1339
+ # @return [String]
1340
+ attr_accessor :name
1341
+
1342
+ # Current state of instance patch.
1343
+ # Corresponds to the JSON property `state`
1344
+ # @return [String]
1345
+ attr_accessor :state
1346
+
1347
+ def initialize(**args)
1348
+ update!(**args)
1349
+ end
1350
+
1351
+ # Update properties of this object
1352
+ def update!(**args)
1353
+ @attempt_count = args[:attempt_count] if args.key?(:attempt_count)
1354
+ @failure_reason = args[:failure_reason] if args.key?(:failure_reason)
1355
+ @instance_system_id = args[:instance_system_id] if args.key?(:instance_system_id)
1356
+ @name = args[:name] if args.key?(:name)
1357
+ @state = args[:state] if args.key?(:state)
1358
+ end
1359
+ end
1360
+
1361
+ # A summary of the current patch state across all instances that this patch
1362
+ # job affects. Contains counts of instances in different states. These states
1363
+ # map to `InstancePatchState`. List patch job instance details to see the
1364
+ # specific states of each instance.
1365
+ class PatchJobInstanceDetailsSummary
1366
+ include Google::Apis::Core::Hashable
1367
+
1368
+ # Number of instances that have acked and will start shortly.
1369
+ # Corresponds to the JSON property `ackedInstanceCount`
1370
+ # @return [Fixnum]
1371
+ attr_accessor :acked_instance_count
1372
+
1373
+ # Number of instances that are applying patches.
1374
+ # Corresponds to the JSON property `applyingPatchesInstanceCount`
1375
+ # @return [Fixnum]
1376
+ attr_accessor :applying_patches_instance_count
1377
+
1378
+ # Number of instances that are downloading patches.
1379
+ # Corresponds to the JSON property `downloadingPatchesInstanceCount`
1380
+ # @return [Fixnum]
1381
+ attr_accessor :downloading_patches_instance_count
1382
+
1383
+ # Number of instances that failed.
1384
+ # Corresponds to the JSON property `failedInstanceCount`
1385
+ # @return [Fixnum]
1386
+ attr_accessor :failed_instance_count
1387
+
1388
+ # Number of instances that are inactive.
1389
+ # Corresponds to the JSON property `inactiveInstanceCount`
1390
+ # @return [Fixnum]
1391
+ attr_accessor :inactive_instance_count
1392
+
1393
+ # Number of instances that do not appear to be running the agent. Check to
1394
+ # ensure that the agent is installed, running, and able to communicate with
1395
+ # the service.
1396
+ # Corresponds to the JSON property `noAgentDetectedInstanceCount`
1397
+ # @return [Fixnum]
1398
+ attr_accessor :no_agent_detected_instance_count
1399
+
1400
+ # Number of instances notified about patch job.
1401
+ # Corresponds to the JSON property `notifiedInstanceCount`
1402
+ # @return [Fixnum]
1403
+ attr_accessor :notified_instance_count
1404
+
1405
+ # Number of instances pending patch job.
1406
+ # Corresponds to the JSON property `pendingInstanceCount`
1407
+ # @return [Fixnum]
1408
+ attr_accessor :pending_instance_count
1409
+
1410
+ # Number of instances that are running the post-patch step.
1411
+ # Corresponds to the JSON property `postPatchStepInstanceCount`
1412
+ # @return [Fixnum]
1413
+ attr_accessor :post_patch_step_instance_count
1414
+
1415
+ # Number of instances that are running the pre-patch step.
1416
+ # Corresponds to the JSON property `prePatchStepInstanceCount`
1417
+ # @return [Fixnum]
1418
+ attr_accessor :pre_patch_step_instance_count
1419
+
1420
+ # Number of instances rebooting.
1421
+ # Corresponds to the JSON property `rebootingInstanceCount`
1422
+ # @return [Fixnum]
1423
+ attr_accessor :rebooting_instance_count
1424
+
1425
+ # Number of instances that have started.
1426
+ # Corresponds to the JSON property `startedInstanceCount`
1427
+ # @return [Fixnum]
1428
+ attr_accessor :started_instance_count
1429
+
1430
+ # Number of instances that have completed successfully.
1431
+ # Corresponds to the JSON property `succeededInstanceCount`
1432
+ # @return [Fixnum]
1433
+ attr_accessor :succeeded_instance_count
1434
+
1435
+ # Number of instances that require reboot.
1436
+ # Corresponds to the JSON property `succeededRebootRequiredInstanceCount`
1437
+ # @return [Fixnum]
1438
+ attr_accessor :succeeded_reboot_required_instance_count
1439
+
1440
+ # Number of instances that exceeded the time out while applying the patch.
1441
+ # Corresponds to the JSON property `timedOutInstanceCount`
1442
+ # @return [Fixnum]
1443
+ attr_accessor :timed_out_instance_count
1444
+
1445
+ def initialize(**args)
1446
+ update!(**args)
1447
+ end
1448
+
1449
+ # Update properties of this object
1450
+ def update!(**args)
1451
+ @acked_instance_count = args[:acked_instance_count] if args.key?(:acked_instance_count)
1452
+ @applying_patches_instance_count = args[:applying_patches_instance_count] if args.key?(:applying_patches_instance_count)
1453
+ @downloading_patches_instance_count = args[:downloading_patches_instance_count] if args.key?(:downloading_patches_instance_count)
1454
+ @failed_instance_count = args[:failed_instance_count] if args.key?(:failed_instance_count)
1455
+ @inactive_instance_count = args[:inactive_instance_count] if args.key?(:inactive_instance_count)
1456
+ @no_agent_detected_instance_count = args[:no_agent_detected_instance_count] if args.key?(:no_agent_detected_instance_count)
1457
+ @notified_instance_count = args[:notified_instance_count] if args.key?(:notified_instance_count)
1458
+ @pending_instance_count = args[:pending_instance_count] if args.key?(:pending_instance_count)
1459
+ @post_patch_step_instance_count = args[:post_patch_step_instance_count] if args.key?(:post_patch_step_instance_count)
1460
+ @pre_patch_step_instance_count = args[:pre_patch_step_instance_count] if args.key?(:pre_patch_step_instance_count)
1461
+ @rebooting_instance_count = args[:rebooting_instance_count] if args.key?(:rebooting_instance_count)
1462
+ @started_instance_count = args[:started_instance_count] if args.key?(:started_instance_count)
1463
+ @succeeded_instance_count = args[:succeeded_instance_count] if args.key?(:succeeded_instance_count)
1464
+ @succeeded_reboot_required_instance_count = args[:succeeded_reboot_required_instance_count] if args.key?(:succeeded_reboot_required_instance_count)
1465
+ @timed_out_instance_count = args[:timed_out_instance_count] if args.key?(:timed_out_instance_count)
1466
+ end
1467
+ end
1468
+
1469
+ # Sets the time for recurring patch deployments.
1470
+ class RecurringSchedule
1471
+ include Google::Apis::Core::Hashable
1472
+
1473
+ # Optional. The end time at which a recurring patch deployment schedule is no
1474
+ # longer
1475
+ # active.
1476
+ # Corresponds to the JSON property `endTime`
1477
+ # @return [String]
1478
+ attr_accessor :end_time
1479
+
1480
+ # Required. The frequency unit of this recurring schedule.
1481
+ # Corresponds to the JSON property `frequency`
1482
+ # @return [String]
1483
+ attr_accessor :frequency
1484
+
1485
+ # Output only. The time the last patch job ran successfully.
1486
+ # Corresponds to the JSON property `lastExecuteTime`
1487
+ # @return [String]
1488
+ attr_accessor :last_execute_time
1489
+
1490
+ # Represents a monthly schedule. An example of a valid monthly schedule is
1491
+ # "on the third Tuesday of the month" or "on the 15th of the month".
1492
+ # Corresponds to the JSON property `monthly`
1493
+ # @return [Google::Apis::OsconfigV1beta::MonthlySchedule]
1494
+ attr_accessor :monthly
1495
+
1496
+ # Output only. The time the next patch job is scheduled to run.
1497
+ # Corresponds to the JSON property `nextExecuteTime`
1498
+ # @return [String]
1499
+ attr_accessor :next_execute_time
1500
+
1501
+ # Optional. The time that the recurring schedule becomes effective.
1502
+ # Defaults to `create_time` of the patch deployment.
1503
+ # Corresponds to the JSON property `startTime`
1504
+ # @return [String]
1505
+ attr_accessor :start_time
1506
+
1507
+ # Represents a time of day. The date and time zone are either not significant
1508
+ # or are specified elsewhere. An API may choose to allow leap seconds. Related
1509
+ # types are google.type.Date and `google.protobuf.Timestamp`.
1510
+ # Corresponds to the JSON property `timeOfDay`
1511
+ # @return [Google::Apis::OsconfigV1beta::TimeOfDay]
1512
+ attr_accessor :time_of_day
1513
+
1514
+ # Represents a time zone from the
1515
+ # [IANA Time Zone Database](https://www.iana.org/time-zones).
1516
+ # Corresponds to the JSON property `timeZone`
1517
+ # @return [Google::Apis::OsconfigV1beta::TimeZone]
1518
+ attr_accessor :time_zone
1519
+
1520
+ # Represents a weekly schedule.
1521
+ # Corresponds to the JSON property `weekly`
1522
+ # @return [Google::Apis::OsconfigV1beta::WeeklySchedule]
1523
+ attr_accessor :weekly
1524
+
1525
+ def initialize(**args)
1526
+ update!(**args)
1527
+ end
1528
+
1529
+ # Update properties of this object
1530
+ def update!(**args)
1531
+ @end_time = args[:end_time] if args.key?(:end_time)
1532
+ @frequency = args[:frequency] if args.key?(:frequency)
1533
+ @last_execute_time = args[:last_execute_time] if args.key?(:last_execute_time)
1534
+ @monthly = args[:monthly] if args.key?(:monthly)
1535
+ @next_execute_time = args[:next_execute_time] if args.key?(:next_execute_time)
1536
+ @start_time = args[:start_time] if args.key?(:start_time)
1537
+ @time_of_day = args[:time_of_day] if args.key?(:time_of_day)
1538
+ @time_zone = args[:time_zone] if args.key?(:time_zone)
1539
+ @weekly = args[:weekly] if args.key?(:weekly)
1540
+ end
1541
+ end
1542
+
1543
+ # A software recipe is a set of instructions for installing and configuring a
1544
+ # piece of software. It consists of a set of artifacts that are
1545
+ # downloaded, and a set of steps that install, configure, and/or update the
1546
+ # software.
1547
+ # Recipes support installing and updating software from artifacts in the
1548
+ # following formats:
1549
+ # Zip archive, Tar archive, Windows MSI, Debian package, and RPM package.
1550
+ # Additionally, recipes support executing a script (either defined in a file or
1551
+ # directly in this api) in bash, sh, cmd, and powershell.
1552
+ # Updating a software recipe
1553
+ # If a recipe is assigned to an instance and there is a recipe with the same
1554
+ # name but a lower version already installed and the assigned state
1555
+ # of the recipe is `INSTALLED_KEEP_UPDATED`, then the recipe is updated to
1556
+ # the new version.
1557
+ # Script Working Directories
1558
+ # Each script or execution step is run in its own temporary directory which
1559
+ # is deleted after completing the step.
1560
+ class SoftwareRecipe
1561
+ include Google::Apis::Core::Hashable
1562
+
1563
+ # Resources available to be used in the steps in the recipe.
1564
+ # Corresponds to the JSON property `artifacts`
1565
+ # @return [Array<Google::Apis::OsconfigV1beta::SoftwareRecipeArtifact>]
1566
+ attr_accessor :artifacts
1567
+
1568
+ # Default is INSTALLED. The desired state the agent should maintain for this
1569
+ # recipe.
1570
+ # INSTALLED: The software recipe is installed on the instance but
1571
+ # won't be updated to new versions.
1572
+ # INSTALLED_KEEP_UPDATED: The software recipe is installed on the
1573
+ # instance. The recipe is updated to a higher
1574
+ # version, if a higher version of the recipe is
1575
+ # assigned to this instance.
1576
+ # REMOVE: Remove is unsupported for software recipes and attempts to
1577
+ # create or update a recipe to the REMOVE state is rejected.
1578
+ # Corresponds to the JSON property `desiredState`
1579
+ # @return [String]
1580
+ attr_accessor :desired_state
1581
+
1582
+ # Actions to be taken for installing this recipe. On failure it stops
1583
+ # executing steps and does not attempt another installation. Any steps taken
1584
+ # (including partially completed steps) are not rolled back.
1585
+ # Corresponds to the JSON property `installSteps`
1586
+ # @return [Array<Google::Apis::OsconfigV1beta::SoftwareRecipeStep>]
1587
+ attr_accessor :install_steps
1588
+
1589
+ # Required. Unique identifier for the recipe. Only one recipe with a given name
1590
+ # is
1591
+ # installed on an instance.
1592
+ # Names are also used to identify resources which helps to determine whether
1593
+ # guest policies have conflicts. This means that requests to create multiple
1594
+ # recipes with the same name and version are rejected since they
1595
+ # could potentially have conflicting assignments.
1596
+ # Corresponds to the JSON property `name`
1597
+ # @return [String]
1598
+ attr_accessor :name
1599
+
1600
+ # Actions to be taken for updating this recipe. On failure it stops
1601
+ # executing steps and does not attempt another update for this recipe. Any
1602
+ # steps taken (including partially completed steps) are not rolled back.
1603
+ # Corresponds to the JSON property `updateSteps`
1604
+ # @return [Array<Google::Apis::OsconfigV1beta::SoftwareRecipeStep>]
1605
+ attr_accessor :update_steps
1606
+
1607
+ # The version of this software recipe. Version can be up to 4 period
1608
+ # separated numbers (e.g. 12.34.56.78).
1609
+ # Corresponds to the JSON property `version`
1610
+ # @return [String]
1611
+ attr_accessor :version
1612
+
1613
+ def initialize(**args)
1614
+ update!(**args)
1615
+ end
1616
+
1617
+ # Update properties of this object
1618
+ def update!(**args)
1619
+ @artifacts = args[:artifacts] if args.key?(:artifacts)
1620
+ @desired_state = args[:desired_state] if args.key?(:desired_state)
1621
+ @install_steps = args[:install_steps] if args.key?(:install_steps)
1622
+ @name = args[:name] if args.key?(:name)
1623
+ @update_steps = args[:update_steps] if args.key?(:update_steps)
1624
+ @version = args[:version] if args.key?(:version)
1625
+ end
1626
+ end
1627
+
1628
+ # Specifies a resource to be used in the recipe.
1629
+ class SoftwareRecipeArtifact
1630
+ include Google::Apis::Core::Hashable
1631
+
1632
+ # Defaults to false. When false, recipes are subject to validations
1633
+ # based on the artifact type:
1634
+ # Remote: A checksum must be specified, and only protocols with
1635
+ # transport-layer security are permitted.
1636
+ # GCS: An object generation number must be specified.
1637
+ # Corresponds to the JSON property `allowInsecure`
1638
+ # @return [Boolean]
1639
+ attr_accessor :allow_insecure
1640
+ alias_method :allow_insecure?, :allow_insecure
1641
+
1642
+ # Specifies an artifact available as a Google Cloud Storage object.
1643
+ # Corresponds to the JSON property `gcs`
1644
+ # @return [Google::Apis::OsconfigV1beta::SoftwareRecipeArtifactGcs]
1645
+ attr_accessor :gcs
1646
+
1647
+ # Required. Id of the artifact, which the installation and update steps of this
1648
+ # recipe can reference. Artifacts in a recipe cannot have the same id.
1649
+ # Corresponds to the JSON property `id`
1650
+ # @return [String]
1651
+ attr_accessor :id
1652
+
1653
+ # Specifies an artifact available via some URI.
1654
+ # Corresponds to the JSON property `remote`
1655
+ # @return [Google::Apis::OsconfigV1beta::SoftwareRecipeArtifactRemote]
1656
+ attr_accessor :remote
1657
+
1658
+ def initialize(**args)
1659
+ update!(**args)
1660
+ end
1661
+
1662
+ # Update properties of this object
1663
+ def update!(**args)
1664
+ @allow_insecure = args[:allow_insecure] if args.key?(:allow_insecure)
1665
+ @gcs = args[:gcs] if args.key?(:gcs)
1666
+ @id = args[:id] if args.key?(:id)
1667
+ @remote = args[:remote] if args.key?(:remote)
1668
+ end
1669
+ end
1670
+
1671
+ # Specifies an artifact available as a Google Cloud Storage object.
1672
+ class SoftwareRecipeArtifactGcs
1673
+ include Google::Apis::Core::Hashable
1674
+
1675
+ # Bucket of the Google Cloud Storage object.
1676
+ # Given an example URL:
1677
+ # `https://storage.googleapis.com/my-bucket/foo/bar#1234567`
1678
+ # this value would be `my-bucket`.
1679
+ # Corresponds to the JSON property `bucket`
1680
+ # @return [String]
1681
+ attr_accessor :bucket
1682
+
1683
+ # Must be provided if allow_insecure is false.
1684
+ # Generation number of the Google Cloud Storage object.
1685
+ # `https://storage.googleapis.com/my-bucket/foo/bar#1234567`
1686
+ # this value would be `1234567`.
1687
+ # Corresponds to the JSON property `generation`
1688
+ # @return [Fixnum]
1689
+ attr_accessor :generation
1690
+
1691
+ # Name of the Google Cloud Storage object.
1692
+ # As specified [here]
1693
+ # (https://cloud.google.com/storage/docs/naming#objectnames)
1694
+ # Given an example URL:
1695
+ # `https://storage.googleapis.com/my-bucket/foo/bar#1234567`
1696
+ # this value would be `foo/bar`.
1697
+ # Corresponds to the JSON property `object`
1698
+ # @return [String]
1699
+ attr_accessor :object
1700
+
1701
+ def initialize(**args)
1702
+ update!(**args)
1703
+ end
1704
+
1705
+ # Update properties of this object
1706
+ def update!(**args)
1707
+ @bucket = args[:bucket] if args.key?(:bucket)
1708
+ @generation = args[:generation] if args.key?(:generation)
1709
+ @object = args[:object] if args.key?(:object)
1710
+ end
1711
+ end
1712
+
1713
+ # Specifies an artifact available via some URI.
1714
+ class SoftwareRecipeArtifactRemote
1715
+ include Google::Apis::Core::Hashable
1716
+
1717
+ # Must be provided if `allow_insecure` is `false`.
1718
+ # SHA256 checksum in hex format, to compare to the checksum of the
1719
+ # artifact. If the checksum is not empty and it doesn't match the
1720
+ # artifact then the recipe installation fails before running any of the
1721
+ # steps.
1722
+ # Corresponds to the JSON property `checksum`
1723
+ # @return [String]
1724
+ attr_accessor :checksum
1725
+
1726
+ # URI from which to fetch the object. It should contain both the protocol
1727
+ # and path following the format `protocol`://`location`.
1728
+ # Corresponds to the JSON property `uri`
1729
+ # @return [String]
1730
+ attr_accessor :uri
1731
+
1732
+ def initialize(**args)
1733
+ update!(**args)
1734
+ end
1735
+
1736
+ # Update properties of this object
1737
+ def update!(**args)
1738
+ @checksum = args[:checksum] if args.key?(:checksum)
1739
+ @uri = args[:uri] if args.key?(:uri)
1740
+ end
1741
+ end
1742
+
1743
+ # An action that can be taken as part of installing or updating a recipe.
1744
+ class SoftwareRecipeStep
1745
+ include Google::Apis::Core::Hashable
1746
+
1747
+ # Extracts an archive of the type specified in the specified directory.
1748
+ # Corresponds to the JSON property `archiveExtraction`
1749
+ # @return [Google::Apis::OsconfigV1beta::SoftwareRecipeStepExtractArchive]
1750
+ attr_accessor :archive_extraction
1751
+
1752
+ # Installs a deb via dpkg.
1753
+ # Corresponds to the JSON property `dpkgInstallation`
1754
+ # @return [Google::Apis::OsconfigV1beta::SoftwareRecipeStepInstallDpkg]
1755
+ attr_accessor :dpkg_installation
1756
+
1757
+ # Copies the artifact to the specified path on the instance.
1758
+ # Corresponds to the JSON property `fileCopy`
1759
+ # @return [Google::Apis::OsconfigV1beta::SoftwareRecipeStepCopyFile]
1760
+ attr_accessor :file_copy
1761
+
1762
+ # Executes an artifact or local file.
1763
+ # Corresponds to the JSON property `fileExec`
1764
+ # @return [Google::Apis::OsconfigV1beta::SoftwareRecipeStepExecFile]
1765
+ attr_accessor :file_exec
1766
+
1767
+ # Installs an MSI file.
1768
+ # Corresponds to the JSON property `msiInstallation`
1769
+ # @return [Google::Apis::OsconfigV1beta::SoftwareRecipeStepInstallMsi]
1770
+ attr_accessor :msi_installation
1771
+
1772
+ # Installs an rpm file via the rpm utility.
1773
+ # Corresponds to the JSON property `rpmInstallation`
1774
+ # @return [Google::Apis::OsconfigV1beta::SoftwareRecipeStepInstallRpm]
1775
+ attr_accessor :rpm_installation
1776
+
1777
+ # Runs a script through an interpreter.
1778
+ # Corresponds to the JSON property `scriptRun`
1779
+ # @return [Google::Apis::OsconfigV1beta::SoftwareRecipeStepRunScript]
1780
+ attr_accessor :script_run
1781
+
1782
+ def initialize(**args)
1783
+ update!(**args)
1784
+ end
1785
+
1786
+ # Update properties of this object
1787
+ def update!(**args)
1788
+ @archive_extraction = args[:archive_extraction] if args.key?(:archive_extraction)
1789
+ @dpkg_installation = args[:dpkg_installation] if args.key?(:dpkg_installation)
1790
+ @file_copy = args[:file_copy] if args.key?(:file_copy)
1791
+ @file_exec = args[:file_exec] if args.key?(:file_exec)
1792
+ @msi_installation = args[:msi_installation] if args.key?(:msi_installation)
1793
+ @rpm_installation = args[:rpm_installation] if args.key?(:rpm_installation)
1794
+ @script_run = args[:script_run] if args.key?(:script_run)
1795
+ end
1796
+ end
1797
+
1798
+ # Copies the artifact to the specified path on the instance.
1799
+ class SoftwareRecipeStepCopyFile
1800
+ include Google::Apis::Core::Hashable
1801
+
1802
+ # Required. The id of the relevant artifact in the recipe.
1803
+ # Corresponds to the JSON property `artifactId`
1804
+ # @return [String]
1805
+ attr_accessor :artifact_id
1806
+
1807
+ # Required. The absolute path on the instance to put the file.
1808
+ # Corresponds to the JSON property `destination`
1809
+ # @return [String]
1810
+ attr_accessor :destination
1811
+
1812
+ # Whether to allow this step to overwrite existing files. If this is
1813
+ # false and the file already exists the file is not overwritten
1814
+ # and the step is considered a success. Defaults to false.
1815
+ # Corresponds to the JSON property `overwrite`
1816
+ # @return [Boolean]
1817
+ attr_accessor :overwrite
1818
+ alias_method :overwrite?, :overwrite
1819
+
1820
+ # Consists of three octal digits which represent, in
1821
+ # order, the permissions of the owner, group, and other users for the
1822
+ # file (similarly to the numeric mode used in the linux chmod utility).
1823
+ # Each digit represents a three bit number with the 4 bit
1824
+ # corresponding to the read permissions, the 2 bit corresponds to the
1825
+ # write bit, and the one bit corresponds to the execute permission.
1826
+ # Default behavior is 755.
1827
+ # Below are some examples of permissions and their associated values:
1828
+ # read, write, and execute: 7
1829
+ # read and execute: 5
1830
+ # read and write: 6
1831
+ # read only: 4
1832
+ # Corresponds to the JSON property `permissions`
1833
+ # @return [String]
1834
+ attr_accessor :permissions
1835
+
1836
+ def initialize(**args)
1837
+ update!(**args)
1838
+ end
1839
+
1840
+ # Update properties of this object
1841
+ def update!(**args)
1842
+ @artifact_id = args[:artifact_id] if args.key?(:artifact_id)
1843
+ @destination = args[:destination] if args.key?(:destination)
1844
+ @overwrite = args[:overwrite] if args.key?(:overwrite)
1845
+ @permissions = args[:permissions] if args.key?(:permissions)
1846
+ end
1847
+ end
1848
+
1849
+ # Executes an artifact or local file.
1850
+ class SoftwareRecipeStepExecFile
1851
+ include Google::Apis::Core::Hashable
1852
+
1853
+ # Defaults to [0]. A list of possible return values that the program
1854
+ # can return to indicate a success.
1855
+ # Corresponds to the JSON property `allowedExitCodes`
1856
+ # @return [Array<Fixnum>]
1857
+ attr_accessor :allowed_exit_codes
1858
+
1859
+ # Arguments to be passed to the provided executable.
1860
+ # Corresponds to the JSON property `args`
1861
+ # @return [Array<String>]
1862
+ attr_accessor :args
1863
+
1864
+ # The id of the relevant artifact in the recipe.
1865
+ # Corresponds to the JSON property `artifactId`
1866
+ # @return [String]
1867
+ attr_accessor :artifact_id
1868
+
1869
+ # The absolute path of the file on the local filesystem.
1870
+ # Corresponds to the JSON property `localPath`
1871
+ # @return [String]
1872
+ attr_accessor :local_path
1873
+
1874
+ def initialize(**args)
1875
+ update!(**args)
1876
+ end
1877
+
1878
+ # Update properties of this object
1879
+ def update!(**args)
1880
+ @allowed_exit_codes = args[:allowed_exit_codes] if args.key?(:allowed_exit_codes)
1881
+ @args = args[:args] if args.key?(:args)
1882
+ @artifact_id = args[:artifact_id] if args.key?(:artifact_id)
1883
+ @local_path = args[:local_path] if args.key?(:local_path)
1884
+ end
1885
+ end
1886
+
1887
+ # Extracts an archive of the type specified in the specified directory.
1888
+ class SoftwareRecipeStepExtractArchive
1889
+ include Google::Apis::Core::Hashable
1890
+
1891
+ # Required. The id of the relevant artifact in the recipe.
1892
+ # Corresponds to the JSON property `artifactId`
1893
+ # @return [String]
1894
+ attr_accessor :artifact_id
1895
+
1896
+ # Directory to extract archive to.
1897
+ # Defaults to `/` on Linux or `C:\` on Windows.
1898
+ # Corresponds to the JSON property `destination`
1899
+ # @return [String]
1900
+ attr_accessor :destination
1901
+
1902
+ # Required. The type of the archive to extract.
1903
+ # Corresponds to the JSON property `type`
1904
+ # @return [String]
1905
+ attr_accessor :type
1906
+
1907
+ def initialize(**args)
1908
+ update!(**args)
1909
+ end
1910
+
1911
+ # Update properties of this object
1912
+ def update!(**args)
1913
+ @artifact_id = args[:artifact_id] if args.key?(:artifact_id)
1914
+ @destination = args[:destination] if args.key?(:destination)
1915
+ @type = args[:type] if args.key?(:type)
1916
+ end
1917
+ end
1918
+
1919
+ # Installs a deb via dpkg.
1920
+ class SoftwareRecipeStepInstallDpkg
1921
+ include Google::Apis::Core::Hashable
1922
+
1923
+ # Required. The id of the relevant artifact in the recipe.
1924
+ # Corresponds to the JSON property `artifactId`
1925
+ # @return [String]
1926
+ attr_accessor :artifact_id
1927
+
1928
+ def initialize(**args)
1929
+ update!(**args)
1930
+ end
1931
+
1932
+ # Update properties of this object
1933
+ def update!(**args)
1934
+ @artifact_id = args[:artifact_id] if args.key?(:artifact_id)
1935
+ end
1936
+ end
1937
+
1938
+ # Installs an MSI file.
1939
+ class SoftwareRecipeStepInstallMsi
1940
+ include Google::Apis::Core::Hashable
1941
+
1942
+ # Return codes that indicate that the software installed or updated
1943
+ # successfully. Behaviour defaults to [0]
1944
+ # Corresponds to the JSON property `allowedExitCodes`
1945
+ # @return [Array<Fixnum>]
1946
+ attr_accessor :allowed_exit_codes
1947
+
1948
+ # Required. The id of the relevant artifact in the recipe.
1949
+ # Corresponds to the JSON property `artifactId`
1950
+ # @return [String]
1951
+ attr_accessor :artifact_id
1952
+
1953
+ # The flags to use when installing the MSI
1954
+ # defaults to ["/i"] (i.e. the install flag).
1955
+ # Corresponds to the JSON property `flags`
1956
+ # @return [Array<String>]
1957
+ attr_accessor :flags
1958
+
1959
+ def initialize(**args)
1960
+ update!(**args)
1961
+ end
1962
+
1963
+ # Update properties of this object
1964
+ def update!(**args)
1965
+ @allowed_exit_codes = args[:allowed_exit_codes] if args.key?(:allowed_exit_codes)
1966
+ @artifact_id = args[:artifact_id] if args.key?(:artifact_id)
1967
+ @flags = args[:flags] if args.key?(:flags)
1968
+ end
1969
+ end
1970
+
1971
+ # Installs an rpm file via the rpm utility.
1972
+ class SoftwareRecipeStepInstallRpm
1973
+ include Google::Apis::Core::Hashable
1974
+
1975
+ # Required. The id of the relevant artifact in the recipe.
1976
+ # Corresponds to the JSON property `artifactId`
1977
+ # @return [String]
1978
+ attr_accessor :artifact_id
1979
+
1980
+ def initialize(**args)
1981
+ update!(**args)
1982
+ end
1983
+
1984
+ # Update properties of this object
1985
+ def update!(**args)
1986
+ @artifact_id = args[:artifact_id] if args.key?(:artifact_id)
1987
+ end
1988
+ end
1989
+
1990
+ # Runs a script through an interpreter.
1991
+ class SoftwareRecipeStepRunScript
1992
+ include Google::Apis::Core::Hashable
1993
+
1994
+ # Return codes that indicate that the software installed or updated
1995
+ # successfully. Behaviour defaults to [0]
1996
+ # Corresponds to the JSON property `allowedExitCodes`
1997
+ # @return [Array<Fixnum>]
1998
+ attr_accessor :allowed_exit_codes
1999
+
2000
+ # The script interpreter to use to run the script. If no interpreter is
2001
+ # specified the script is executed directly, which likely
2002
+ # only succeed for scripts with
2003
+ # [shebang lines](https://en.wikipedia.org/wiki/Shebang_\(Unix\)).
2004
+ # Corresponds to the JSON property `interpreter`
2005
+ # @return [String]
2006
+ attr_accessor :interpreter
2007
+
2008
+ # Required. The shell script to be executed.
2009
+ # Corresponds to the JSON property `script`
2010
+ # @return [String]
2011
+ attr_accessor :script
2012
+
2013
+ def initialize(**args)
2014
+ update!(**args)
2015
+ end
2016
+
2017
+ # Update properties of this object
2018
+ def update!(**args)
2019
+ @allowed_exit_codes = args[:allowed_exit_codes] if args.key?(:allowed_exit_codes)
2020
+ @interpreter = args[:interpreter] if args.key?(:interpreter)
2021
+ @script = args[:script] if args.key?(:script)
2022
+ end
2023
+ end
2024
+
2025
+ # Represents a time of day. The date and time zone are either not significant
2026
+ # or are specified elsewhere. An API may choose to allow leap seconds. Related
2027
+ # types are google.type.Date and `google.protobuf.Timestamp`.
2028
+ class TimeOfDay
2029
+ include Google::Apis::Core::Hashable
2030
+
2031
+ # Hours of day in 24 hour format. Should be from 0 to 23. An API may choose
2032
+ # to allow the value "24:00:00" for scenarios like business closing time.
2033
+ # Corresponds to the JSON property `hours`
2034
+ # @return [Fixnum]
2035
+ attr_accessor :hours
2036
+
2037
+ # Minutes of hour of day. Must be from 0 to 59.
2038
+ # Corresponds to the JSON property `minutes`
2039
+ # @return [Fixnum]
2040
+ attr_accessor :minutes
2041
+
2042
+ # Fractions of seconds in nanoseconds. Must be from 0 to 999,999,999.
2043
+ # Corresponds to the JSON property `nanos`
2044
+ # @return [Fixnum]
2045
+ attr_accessor :nanos
2046
+
2047
+ # Seconds of minutes of the time. Must normally be from 0 to 59. An API may
2048
+ # allow the value 60 if it allows leap-seconds.
2049
+ # Corresponds to the JSON property `seconds`
2050
+ # @return [Fixnum]
2051
+ attr_accessor :seconds
2052
+
2053
+ def initialize(**args)
2054
+ update!(**args)
2055
+ end
2056
+
2057
+ # Update properties of this object
2058
+ def update!(**args)
2059
+ @hours = args[:hours] if args.key?(:hours)
2060
+ @minutes = args[:minutes] if args.key?(:minutes)
2061
+ @nanos = args[:nanos] if args.key?(:nanos)
2062
+ @seconds = args[:seconds] if args.key?(:seconds)
2063
+ end
2064
+ end
2065
+
2066
+ # Represents a time zone from the
2067
+ # [IANA Time Zone Database](https://www.iana.org/time-zones).
2068
+ class TimeZone
2069
+ include Google::Apis::Core::Hashable
2070
+
2071
+ # IANA Time Zone Database time zone, e.g. "America/New_York".
2072
+ # Corresponds to the JSON property `id`
2073
+ # @return [String]
2074
+ attr_accessor :id
2075
+
2076
+ # Optional. IANA Time Zone Database version number, e.g. "2019a".
2077
+ # Corresponds to the JSON property `version`
2078
+ # @return [String]
2079
+ attr_accessor :version
2080
+
2081
+ def initialize(**args)
2082
+ update!(**args)
2083
+ end
2084
+
2085
+ # Update properties of this object
2086
+ def update!(**args)
2087
+ @id = args[:id] if args.key?(:id)
2088
+ @version = args[:version] if args.key?(:version)
2089
+ end
2090
+ end
2091
+
2092
+ # Represents one week day in a month. An example is "the 4th Sunday".
2093
+ class WeekDayOfMonth
2094
+ include Google::Apis::Core::Hashable
2095
+
2096
+ # Required. A day of the week.
2097
+ # Corresponds to the JSON property `dayOfWeek`
2098
+ # @return [String]
2099
+ attr_accessor :day_of_week
2100
+
2101
+ # Required. Week number in a month. 1-4 indicates the 1st to 4th week of the
2102
+ # month. -1
2103
+ # indicates the last week of the month.
2104
+ # Corresponds to the JSON property `weekOrdinal`
2105
+ # @return [Fixnum]
2106
+ attr_accessor :week_ordinal
2107
+
2108
+ def initialize(**args)
2109
+ update!(**args)
2110
+ end
2111
+
2112
+ # Update properties of this object
2113
+ def update!(**args)
2114
+ @day_of_week = args[:day_of_week] if args.key?(:day_of_week)
2115
+ @week_ordinal = args[:week_ordinal] if args.key?(:week_ordinal)
2116
+ end
2117
+ end
2118
+
2119
+ # Represents a weekly schedule.
2120
+ class WeeklySchedule
2121
+ include Google::Apis::Core::Hashable
2122
+
2123
+ # Required. Day of the week.
2124
+ # Corresponds to the JSON property `dayOfWeek`
2125
+ # @return [String]
2126
+ attr_accessor :day_of_week
2127
+
2128
+ def initialize(**args)
2129
+ update!(**args)
2130
+ end
2131
+
2132
+ # Update properties of this object
2133
+ def update!(**args)
2134
+ @day_of_week = args[:day_of_week] if args.key?(:day_of_week)
2135
+ end
2136
+ end
2137
+
2138
+ # Windows patching is performed using the Windows Update Agent.
2139
+ class WindowsUpdateSettings
2140
+ include Google::Apis::Core::Hashable
2141
+
2142
+ # Only apply updates of these windows update classifications. If empty, all
2143
+ # updates are applied.
2144
+ # Corresponds to the JSON property `classifications`
2145
+ # @return [Array<String>]
2146
+ attr_accessor :classifications
2147
+
2148
+ # List of KBs to exclude from update.
2149
+ # Corresponds to the JSON property `excludes`
2150
+ # @return [Array<String>]
2151
+ attr_accessor :excludes
2152
+
2153
+ # An exclusive list of kbs to be updated. These are the only patches
2154
+ # that will be updated. This field must not be used with other
2155
+ # patch configurations.
2156
+ # Corresponds to the JSON property `exclusivePatches`
2157
+ # @return [Array<String>]
2158
+ attr_accessor :exclusive_patches
2159
+
2160
+ def initialize(**args)
2161
+ update!(**args)
2162
+ end
2163
+
2164
+ # Update properties of this object
2165
+ def update!(**args)
2166
+ @classifications = args[:classifications] if args.key?(:classifications)
2167
+ @excludes = args[:excludes] if args.key?(:excludes)
2168
+ @exclusive_patches = args[:exclusive_patches] if args.key?(:exclusive_patches)
2169
+ end
2170
+ end
2171
+
2172
+ # Represents a single Yum package repository. This repository is added to a
2173
+ # repo file that is stored at `/etc/yum.repos.d/google_osconfig.repo`.
2174
+ class YumRepository
2175
+ include Google::Apis::Core::Hashable
2176
+
2177
+ # Required. The location of the repository directory.
2178
+ # Corresponds to the JSON property `baseUrl`
2179
+ # @return [String]
2180
+ attr_accessor :base_url
2181
+
2182
+ # The display name of the repository.
2183
+ # Corresponds to the JSON property `displayName`
2184
+ # @return [String]
2185
+ attr_accessor :display_name
2186
+
2187
+ # URIs of GPG keys.
2188
+ # Corresponds to the JSON property `gpgKeys`
2189
+ # @return [Array<String>]
2190
+ attr_accessor :gpg_keys
2191
+
2192
+ # Required. A one word, unique name for this repository. This is
2193
+ # the `repo id` in the Yum config file and also the `display_name` if
2194
+ # `display_name` is omitted. This id is also used as the unique identifier
2195
+ # when checking for guest policy conflicts.
2196
+ # Corresponds to the JSON property `id`
2197
+ # @return [String]
2198
+ attr_accessor :id
2199
+
2200
+ def initialize(**args)
2201
+ update!(**args)
2202
+ end
2203
+
2204
+ # Update properties of this object
2205
+ def update!(**args)
2206
+ @base_url = args[:base_url] if args.key?(:base_url)
2207
+ @display_name = args[:display_name] if args.key?(:display_name)
2208
+ @gpg_keys = args[:gpg_keys] if args.key?(:gpg_keys)
2209
+ @id = args[:id] if args.key?(:id)
2210
+ end
2211
+ end
2212
+
2213
+ # Yum patching is performed by executing `yum update`. Additional options
2214
+ # can be set to control how this is executed.
2215
+ # Note that not all settings are supported on all platforms.
2216
+ class YumSettings
2217
+ include Google::Apis::Core::Hashable
2218
+
2219
+ # List of packages to exclude from update. These packages are excluded by
2220
+ # using the yum `--exclude` flag.
2221
+ # Corresponds to the JSON property `excludes`
2222
+ # @return [Array<String>]
2223
+ attr_accessor :excludes
2224
+
2225
+ # An exclusive list of packages to be updated. These are the only packages
2226
+ # that will be updated. If these packages are not installed, they will be
2227
+ # ignored. This field must not be specified with any other patch
2228
+ # configuration fields.
2229
+ # Corresponds to the JSON property `exclusivePackages`
2230
+ # @return [Array<String>]
2231
+ attr_accessor :exclusive_packages
2232
+
2233
+ # Will cause patch to run `yum update-minimal` instead.
2234
+ # Corresponds to the JSON property `minimal`
2235
+ # @return [Boolean]
2236
+ attr_accessor :minimal
2237
+ alias_method :minimal?, :minimal
2238
+
2239
+ # Adds the `--security` flag to `yum update`. Not supported on
2240
+ # all platforms.
2241
+ # Corresponds to the JSON property `security`
2242
+ # @return [Boolean]
2243
+ attr_accessor :security
2244
+ alias_method :security?, :security
2245
+
2246
+ def initialize(**args)
2247
+ update!(**args)
2248
+ end
2249
+
2250
+ # Update properties of this object
2251
+ def update!(**args)
2252
+ @excludes = args[:excludes] if args.key?(:excludes)
2253
+ @exclusive_packages = args[:exclusive_packages] if args.key?(:exclusive_packages)
2254
+ @minimal = args[:minimal] if args.key?(:minimal)
2255
+ @security = args[:security] if args.key?(:security)
2256
+ end
2257
+ end
2258
+
2259
+ # Represents a single Zypper package repository. This repository is added to a
2260
+ # repo file that is stored at `/etc/zypp/repos.d/google_osconfig.repo`.
2261
+ class ZypperRepository
2262
+ include Google::Apis::Core::Hashable
2263
+
2264
+ # Required. The location of the repository directory.
2265
+ # Corresponds to the JSON property `baseUrl`
2266
+ # @return [String]
2267
+ attr_accessor :base_url
2268
+
2269
+ # The display name of the repository.
2270
+ # Corresponds to the JSON property `displayName`
2271
+ # @return [String]
2272
+ attr_accessor :display_name
2273
+
2274
+ # URIs of GPG keys.
2275
+ # Corresponds to the JSON property `gpgKeys`
2276
+ # @return [Array<String>]
2277
+ attr_accessor :gpg_keys
2278
+
2279
+ # Required. A one word, unique name for this repository. This is
2280
+ # the `repo id` in the zypper config file and also the `display_name` if
2281
+ # `display_name` is omitted. This id is also used as the unique identifier
2282
+ # when checking for guest policy conflicts.
2283
+ # Corresponds to the JSON property `id`
2284
+ # @return [String]
2285
+ attr_accessor :id
2286
+
2287
+ def initialize(**args)
2288
+ update!(**args)
2289
+ end
2290
+
2291
+ # Update properties of this object
2292
+ def update!(**args)
2293
+ @base_url = args[:base_url] if args.key?(:base_url)
2294
+ @display_name = args[:display_name] if args.key?(:display_name)
2295
+ @gpg_keys = args[:gpg_keys] if args.key?(:gpg_keys)
2296
+ @id = args[:id] if args.key?(:id)
2297
+ end
2298
+ end
2299
+
2300
+ # Zypper patching is performed by running `zypper patch`.
2301
+ # See also https://en.opensuse.org/SDB:Zypper_manual.
2302
+ class ZypperSettings
2303
+ include Google::Apis::Core::Hashable
2304
+
2305
+ # Install only patches with these categories.
2306
+ # Common categories include security, recommended, and feature.
2307
+ # Corresponds to the JSON property `categories`
2308
+ # @return [Array<String>]
2309
+ attr_accessor :categories
2310
+
2311
+ # List of patches to exclude from update.
2312
+ # Corresponds to the JSON property `excludes`
2313
+ # @return [Array<String>]
2314
+ attr_accessor :excludes
2315
+
2316
+ # An exclusive list of patches to be updated. These are the only patches
2317
+ # that will be installed using 'zypper patch patch:<patch_name>' command.
2318
+ # This field must not be used with any other patch configuration fields.
2319
+ # Corresponds to the JSON property `exclusivePatches`
2320
+ # @return [Array<String>]
2321
+ attr_accessor :exclusive_patches
2322
+
2323
+ # Install only patches with these severities.
2324
+ # Common severities include critical, important, moderate, and low.
2325
+ # Corresponds to the JSON property `severities`
2326
+ # @return [Array<String>]
2327
+ attr_accessor :severities
2328
+
2329
+ # Adds the `--with-optional` flag to `zypper patch`.
2330
+ # Corresponds to the JSON property `withOptional`
2331
+ # @return [Boolean]
2332
+ attr_accessor :with_optional
2333
+ alias_method :with_optional?, :with_optional
2334
+
2335
+ # Adds the `--with-update` flag, to `zypper patch`.
2336
+ # Corresponds to the JSON property `withUpdate`
2337
+ # @return [Boolean]
2338
+ attr_accessor :with_update
2339
+ alias_method :with_update?, :with_update
2340
+
2341
+ def initialize(**args)
2342
+ update!(**args)
2343
+ end
2344
+
2345
+ # Update properties of this object
2346
+ def update!(**args)
2347
+ @categories = args[:categories] if args.key?(:categories)
2348
+ @excludes = args[:excludes] if args.key?(:excludes)
2349
+ @exclusive_patches = args[:exclusive_patches] if args.key?(:exclusive_patches)
2350
+ @severities = args[:severities] if args.key?(:severities)
2351
+ @with_optional = args[:with_optional] if args.key?(:with_optional)
2352
+ @with_update = args[:with_update] if args.key?(:with_update)
2353
+ end
2354
+ end
2355
+ end
2356
+ end
2357
+ end