google-api-client 0.36.0 → 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 (560) hide show
  1. checksums.yaml +4 -4
  2. data/.yardopts +1 -0
  3. data/CHANGELOG.md +316 -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/accessapproval_v1/classes.rb +417 -0
  7. data/generated/google/apis/accessapproval_v1/representations.rb +203 -0
  8. data/generated/google/apis/accessapproval_v1/service.rb +869 -0
  9. data/generated/google/apis/{servicebroker_v1.rb → accessapproval_v1.rb} +8 -10
  10. data/generated/google/apis/accesscontextmanager_v1/classes.rb +113 -0
  11. data/generated/google/apis/accesscontextmanager_v1/representations.rb +32 -0
  12. data/generated/google/apis/accesscontextmanager_v1.rb +1 -1
  13. data/generated/google/apis/accesscontextmanager_v1beta/classes.rb +151 -0
  14. data/generated/google/apis/accesscontextmanager_v1beta/representations.rb +48 -0
  15. data/generated/google/apis/accesscontextmanager_v1beta.rb +1 -1
  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/admob_v1/classes.rb +951 -0
  19. data/generated/google/apis/admob_v1/representations.rb +378 -0
  20. data/generated/google/apis/admob_v1/service.rb +196 -0
  21. data/generated/google/apis/{analytics_v2_4/classes.rb → admob_v1.rb} +11 -6
  22. data/generated/google/apis/alertcenter_v1beta1/classes.rb +252 -0
  23. data/generated/google/apis/alertcenter_v1beta1/representations.rb +126 -0
  24. data/generated/google/apis/alertcenter_v1beta1.rb +1 -1
  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/classes.rb +37 -59
  28. data/generated/google/apis/androidenterprise_v1/representations.rb +1 -0
  29. data/generated/google/apis/androidenterprise_v1/service.rb +0 -403
  30. data/generated/google/apis/androidenterprise_v1.rb +1 -1
  31. data/generated/google/apis/androidmanagement_v1/classes.rb +203 -6
  32. data/generated/google/apis/androidmanagement_v1/representations.rb +68 -0
  33. data/generated/google/apis/androidmanagement_v1/service.rb +6 -1
  34. data/generated/google/apis/androidmanagement_v1.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_v2.rb +1 -1
  38. data/generated/google/apis/androidpublisher_v3/classes.rb +151 -111
  39. data/generated/google/apis/androidpublisher_v3/representations.rb +69 -56
  40. data/generated/google/apis/androidpublisher_v3/service.rb +158 -0
  41. data/generated/google/apis/androidpublisher_v3.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/appengine_v1beta.rb +1 -1
  45. data/generated/google/apis/appsactivity_v1.rb +1 -1
  46. data/generated/google/apis/bigquery_v2/classes.rb +8 -1
  47. data/generated/google/apis/bigquery_v2/representations.rb +1 -0
  48. data/generated/google/apis/bigquery_v2/service.rb +19 -2
  49. data/generated/google/apis/bigquery_v2.rb +1 -1
  50. data/generated/google/apis/bigqueryconnection_v1beta1/classes.rb +130 -56
  51. data/generated/google/apis/bigqueryconnection_v1beta1/representations.rb +2 -0
  52. data/generated/google/apis/bigqueryconnection_v1beta1/service.rb +8 -8
  53. data/generated/google/apis/bigqueryconnection_v1beta1.rb +1 -1
  54. data/generated/google/apis/bigquerydatatransfer_v1/classes.rb +49 -0
  55. data/generated/google/apis/bigquerydatatransfer_v1/representations.rb +19 -0
  56. data/generated/google/apis/bigquerydatatransfer_v1/service.rb +60 -30
  57. data/generated/google/apis/bigquerydatatransfer_v1.rb +1 -1
  58. data/generated/google/apis/bigqueryreservation_v1/classes.rb +0 -22
  59. data/generated/google/apis/bigqueryreservation_v1/representations.rb +0 -13
  60. data/generated/google/apis/bigqueryreservation_v1.rb +1 -1
  61. data/generated/google/apis/bigqueryreservation_v1alpha2/classes.rb +6 -22
  62. data/generated/google/apis/bigqueryreservation_v1alpha2/representations.rb +1 -13
  63. data/generated/google/apis/bigqueryreservation_v1alpha2.rb +1 -1
  64. data/generated/google/apis/bigqueryreservation_v1beta1/classes.rb +11 -99
  65. data/generated/google/apis/bigqueryreservation_v1beta1/representations.rb +1 -45
  66. data/generated/google/apis/bigqueryreservation_v1beta1/service.rb +1 -70
  67. data/generated/google/apis/bigqueryreservation_v1beta1.rb +1 -1
  68. data/generated/google/apis/bigtableadmin_v2/classes.rb +124 -55
  69. data/generated/google/apis/bigtableadmin_v2/service.rb +76 -4
  70. data/generated/google/apis/bigtableadmin_v2.rb +1 -1
  71. data/generated/google/apis/binaryauthorization_v1/classes.rb +124 -56
  72. data/generated/google/apis/binaryauthorization_v1.rb +1 -1
  73. data/generated/google/apis/binaryauthorization_v1beta1/classes.rb +124 -56
  74. data/generated/google/apis/binaryauthorization_v1beta1.rb +1 -1
  75. data/generated/google/apis/chat_v1/service.rb +5 -2
  76. data/generated/google/apis/chat_v1.rb +1 -1
  77. data/generated/google/apis/classroom_v1.rb +1 -1
  78. data/generated/google/apis/cloudasset_v1/classes.rb +304 -15
  79. data/generated/google/apis/cloudasset_v1/representations.rb +117 -0
  80. data/generated/google/apis/cloudasset_v1/service.rb +175 -1
  81. data/generated/google/apis/cloudasset_v1.rb +2 -2
  82. data/generated/google/apis/cloudasset_v1beta1/classes.rb +49 -15
  83. data/generated/google/apis/cloudasset_v1beta1/service.rb +1 -1
  84. data/generated/google/apis/cloudasset_v1beta1.rb +2 -2
  85. data/generated/google/apis/cloudbilling_v1/classes.rb +110 -57
  86. data/generated/google/apis/cloudbilling_v1/service.rb +8 -6
  87. data/generated/google/apis/cloudbilling_v1.rb +1 -1
  88. data/generated/google/apis/cloudbuild_v1/classes.rb +10 -6
  89. data/generated/google/apis/cloudbuild_v1.rb +1 -1
  90. data/generated/google/apis/cloudbuild_v1alpha1/classes.rb +1174 -0
  91. data/generated/google/apis/cloudbuild_v1alpha1/representations.rb +435 -0
  92. data/generated/google/apis/cloudbuild_v1alpha1/service.rb +223 -0
  93. data/generated/google/apis/{servicebroker_v1alpha1.rb → cloudbuild_v1alpha1.rb} +8 -10
  94. data/generated/google/apis/cloudbuild_v1alpha2/classes.rb +1124 -0
  95. data/generated/google/apis/cloudbuild_v1alpha2/representations.rb +429 -0
  96. data/generated/google/apis/cloudbuild_v1alpha2/service.rb +232 -0
  97. data/generated/google/apis/cloudbuild_v1alpha2.rb +34 -0
  98. data/generated/google/apis/clouddebugger_v2.rb +1 -1
  99. data/generated/google/apis/clouderrorreporting_v1beta1/classes.rb +1 -1
  100. data/generated/google/apis/clouderrorreporting_v1beta1/service.rb +12 -12
  101. data/generated/google/apis/clouderrorreporting_v1beta1.rb +1 -1
  102. data/generated/google/apis/cloudfunctions_v1/classes.rb +138 -56
  103. data/generated/google/apis/cloudfunctions_v1/representations.rb +2 -0
  104. data/generated/google/apis/cloudfunctions_v1.rb +1 -1
  105. data/generated/google/apis/cloudidentity_v1/classes.rb +560 -0
  106. data/generated/google/apis/cloudidentity_v1/representations.rb +226 -0
  107. data/generated/google/apis/cloudidentity_v1/service.rb +20 -13
  108. data/generated/google/apis/cloudidentity_v1.rb +1 -1
  109. data/generated/google/apis/cloudidentity_v1beta1/classes.rb +765 -72
  110. data/generated/google/apis/cloudidentity_v1beta1/representations.rb +289 -0
  111. data/generated/google/apis/cloudidentity_v1beta1/service.rb +189 -79
  112. data/generated/google/apis/cloudidentity_v1beta1.rb +1 -1
  113. data/generated/google/apis/cloudiot_v1/classes.rb +124 -56
  114. data/generated/google/apis/cloudiot_v1.rb +1 -1
  115. data/generated/google/apis/cloudkms_v1/classes.rb +162 -56
  116. data/generated/google/apis/cloudkms_v1/representations.rb +16 -0
  117. data/generated/google/apis/cloudkms_v1.rb +1 -1
  118. data/generated/google/apis/cloudprivatecatalog_v1beta1.rb +1 -1
  119. data/generated/google/apis/cloudprivatecatalogproducer_v1beta1/classes.rb +49 -15
  120. data/generated/google/apis/cloudprivatecatalogproducer_v1beta1.rb +1 -1
  121. data/generated/google/apis/cloudprofiler_v2.rb +1 -1
  122. data/generated/google/apis/cloudresourcemanager_v1/classes.rb +124 -56
  123. data/generated/google/apis/cloudresourcemanager_v1/service.rb +3 -3
  124. data/generated/google/apis/cloudresourcemanager_v1.rb +1 -1
  125. data/generated/google/apis/cloudresourcemanager_v1beta1/classes.rb +124 -56
  126. data/generated/google/apis/cloudresourcemanager_v1beta1/service.rb +1 -1
  127. data/generated/google/apis/cloudresourcemanager_v1beta1.rb +1 -1
  128. data/generated/google/apis/cloudresourcemanager_v2/classes.rb +124 -56
  129. data/generated/google/apis/cloudresourcemanager_v2.rb +1 -1
  130. data/generated/google/apis/cloudresourcemanager_v2beta1/classes.rb +124 -56
  131. data/generated/google/apis/cloudresourcemanager_v2beta1.rb +1 -1
  132. data/generated/google/apis/cloudscheduler_v1.rb +1 -1
  133. data/generated/google/apis/cloudscheduler_v1beta1.rb +1 -1
  134. data/generated/google/apis/cloudsearch_v1/classes.rb +11 -2
  135. data/generated/google/apis/cloudsearch_v1/representations.rb +1 -0
  136. data/generated/google/apis/cloudsearch_v1.rb +1 -1
  137. data/generated/google/apis/cloudshell_v1.rb +1 -1
  138. data/generated/google/apis/cloudshell_v1alpha1.rb +1 -1
  139. data/generated/google/apis/cloudtasks_v2/classes.rb +130 -62
  140. data/generated/google/apis/cloudtasks_v2.rb +1 -1
  141. data/generated/google/apis/cloudtasks_v2beta2/classes.rb +124 -56
  142. data/generated/google/apis/cloudtasks_v2beta2.rb +1 -1
  143. data/generated/google/apis/cloudtasks_v2beta3/classes.rb +130 -62
  144. data/generated/google/apis/cloudtasks_v2beta3.rb +1 -1
  145. data/generated/google/apis/cloudtrace_v1/service.rb +6 -0
  146. data/generated/google/apis/cloudtrace_v1.rb +1 -1
  147. data/generated/google/apis/cloudtrace_v2/classes.rb +5 -3
  148. data/generated/google/apis/cloudtrace_v2/service.rb +4 -0
  149. data/generated/google/apis/cloudtrace_v2.rb +1 -1
  150. data/generated/google/apis/commentanalyzer_v1alpha1.rb +1 -1
  151. data/generated/google/apis/composer_v1/classes.rb +2 -0
  152. data/generated/google/apis/composer_v1.rb +1 -1
  153. data/generated/google/apis/composer_v1beta1/classes.rb +59 -0
  154. data/generated/google/apis/composer_v1beta1/representations.rb +30 -0
  155. data/generated/google/apis/composer_v1beta1.rb +1 -1
  156. data/generated/google/apis/compute_alpha/classes.rb +710 -503
  157. data/generated/google/apis/compute_alpha/representations.rb +51 -51
  158. data/generated/google/apis/compute_alpha/service.rb +1383 -1097
  159. data/generated/google/apis/compute_alpha.rb +1 -1
  160. data/generated/google/apis/compute_beta/classes.rb +2543 -395
  161. data/generated/google/apis/compute_beta/representations.rb +805 -4
  162. data/generated/google/apis/compute_beta/service.rb +7496 -5509
  163. data/generated/google/apis/compute_beta.rb +1 -1
  164. data/generated/google/apis/compute_v1/classes.rb +1713 -562
  165. data/generated/google/apis/compute_v1/representations.rb +441 -0
  166. data/generated/google/apis/compute_v1/service.rb +1513 -860
  167. data/generated/google/apis/compute_v1.rb +1 -1
  168. data/generated/google/apis/container_v1/classes.rb +247 -3
  169. data/generated/google/apis/container_v1/representations.rb +74 -0
  170. data/generated/google/apis/container_v1/service.rb +8 -0
  171. data/generated/google/apis/container_v1.rb +1 -1
  172. data/generated/google/apis/container_v1beta1/classes.rb +284 -80
  173. data/generated/google/apis/container_v1beta1/representations.rb +85 -0
  174. data/generated/google/apis/container_v1beta1/service.rb +129 -121
  175. data/generated/google/apis/container_v1beta1.rb +1 -1
  176. data/generated/google/apis/containeranalysis_v1alpha1/classes.rb +124 -56
  177. data/generated/google/apis/containeranalysis_v1alpha1.rb +1 -1
  178. data/generated/google/apis/containeranalysis_v1beta1/classes.rb +126 -58
  179. data/generated/google/apis/containeranalysis_v1beta1/service.rb +26 -20
  180. data/generated/google/apis/containeranalysis_v1beta1.rb +1 -1
  181. data/generated/google/apis/content_v2/classes.rb +143 -42
  182. data/generated/google/apis/content_v2/representations.rb +47 -0
  183. data/generated/google/apis/content_v2/service.rb +33 -0
  184. data/generated/google/apis/content_v2.rb +1 -1
  185. data/generated/google/apis/content_v2_1/classes.rb +237 -42
  186. data/generated/google/apis/content_v2_1/representations.rb +94 -0
  187. data/generated/google/apis/content_v2_1/service.rb +77 -0
  188. data/generated/google/apis/content_v2_1.rb +1 -1
  189. data/generated/google/apis/datacatalog_v1beta1/classes.rb +241 -72
  190. data/generated/google/apis/datacatalog_v1beta1/representations.rb +34 -0
  191. data/generated/google/apis/datacatalog_v1beta1/service.rb +159 -69
  192. data/generated/google/apis/datacatalog_v1beta1.rb +1 -1
  193. data/generated/google/apis/dataflow_v1b3/classes.rb +189 -2
  194. data/generated/google/apis/dataflow_v1b3/representations.rb +97 -0
  195. data/generated/google/apis/dataflow_v1b3/service.rb +38 -0
  196. data/generated/google/apis/dataflow_v1b3.rb +1 -1
  197. data/generated/google/apis/datafusion_v1beta1/classes.rb +134 -387
  198. data/generated/google/apis/datafusion_v1beta1/representations.rb +1 -132
  199. data/generated/google/apis/datafusion_v1beta1/service.rb +5 -1
  200. data/generated/google/apis/datafusion_v1beta1.rb +1 -1
  201. data/generated/google/apis/dataproc_v1/classes.rb +229 -165
  202. data/generated/google/apis/dataproc_v1/service.rb +16 -14
  203. data/generated/google/apis/dataproc_v1.rb +1 -1
  204. data/generated/google/apis/dataproc_v1beta2/classes.rb +228 -164
  205. data/generated/google/apis/dataproc_v1beta2/service.rb +28 -26
  206. data/generated/google/apis/dataproc_v1beta2.rb +1 -1
  207. data/generated/google/apis/datastore_v1/classes.rb +16 -22
  208. data/generated/google/apis/datastore_v1/service.rb +10 -10
  209. data/generated/google/apis/datastore_v1.rb +1 -1
  210. data/generated/google/apis/datastore_v1beta3/classes.rb +5 -4
  211. data/generated/google/apis/datastore_v1beta3/service.rb +8 -8
  212. data/generated/google/apis/datastore_v1beta3.rb +1 -1
  213. data/generated/google/apis/dfareporting_v3_4/classes.rb +88 -88
  214. data/generated/google/apis/dfareporting_v3_4/representations.rb +39 -39
  215. data/generated/google/apis/dfareporting_v3_4.rb +1 -1
  216. data/generated/google/apis/dialogflow_v2/classes.rb +551 -21
  217. data/generated/google/apis/dialogflow_v2/representations.rb +191 -0
  218. data/generated/google/apis/dialogflow_v2/service.rb +477 -0
  219. data/generated/google/apis/dialogflow_v2.rb +1 -1
  220. data/generated/google/apis/dialogflow_v2beta1/classes.rb +449 -21
  221. data/generated/google/apis/dialogflow_v2beta1/representations.rb +160 -0
  222. data/generated/google/apis/dialogflow_v2beta1/service.rb +939 -45
  223. data/generated/google/apis/dialogflow_v2beta1.rb +1 -1
  224. data/generated/google/apis/dlp_v2/classes.rb +178 -92
  225. data/generated/google/apis/dlp_v2/representations.rb +42 -0
  226. data/generated/google/apis/dlp_v2/service.rb +56 -56
  227. data/generated/google/apis/dlp_v2.rb +1 -1
  228. data/generated/google/apis/dns_v1/classes.rb +70 -0
  229. data/generated/google/apis/dns_v1/representations.rb +32 -0
  230. data/generated/google/apis/dns_v1.rb +1 -1
  231. data/generated/google/apis/dns_v2beta1/classes.rb +70 -0
  232. data/generated/google/apis/dns_v2beta1/representations.rb +32 -0
  233. data/generated/google/apis/dns_v2beta1.rb +1 -1
  234. data/generated/google/apis/docs_v1/classes.rb +427 -18
  235. data/generated/google/apis/docs_v1/representations.rb +131 -0
  236. data/generated/google/apis/docs_v1.rb +1 -1
  237. data/generated/google/apis/doubleclickbidmanager_v1.rb +1 -1
  238. data/generated/google/apis/doubleclickbidmanager_v1_1/classes.rb +34 -0
  239. data/generated/google/apis/doubleclickbidmanager_v1_1/representations.rb +16 -0
  240. data/generated/google/apis/doubleclickbidmanager_v1_1.rb +1 -1
  241. data/generated/google/apis/drive_v2/classes.rb +1 -2
  242. data/generated/google/apis/drive_v2/service.rb +0 -92
  243. data/generated/google/apis/drive_v2.rb +1 -1
  244. data/generated/google/apis/driveactivity_v2/classes.rb +6 -0
  245. data/generated/google/apis/driveactivity_v2/representations.rb +2 -0
  246. data/generated/google/apis/driveactivity_v2.rb +1 -1
  247. data/generated/google/apis/factchecktools_v1alpha1.rb +1 -1
  248. data/generated/google/apis/fcm_v1.rb +1 -1
  249. data/generated/google/apis/file_v1/classes.rb +59 -12
  250. data/generated/google/apis/file_v1/representations.rb +19 -2
  251. data/generated/google/apis/file_v1/service.rb +8 -4
  252. data/generated/google/apis/file_v1.rb +1 -1
  253. data/generated/google/apis/file_v1beta1/classes.rb +60 -13
  254. data/generated/google/apis/file_v1beta1/representations.rb +19 -2
  255. data/generated/google/apis/file_v1beta1/service.rb +8 -4
  256. data/generated/google/apis/file_v1beta1.rb +1 -1
  257. data/generated/google/apis/firebase_v1beta1.rb +1 -1
  258. data/generated/google/apis/firebasedynamiclinks_v1.rb +1 -1
  259. data/generated/google/apis/firebasehosting_v1beta1/classes.rb +161 -0
  260. data/generated/google/apis/firebasehosting_v1beta1/representations.rb +64 -0
  261. data/generated/google/apis/firebasehosting_v1beta1/service.rb +67 -0
  262. data/generated/google/apis/firebasehosting_v1beta1.rb +1 -1
  263. data/generated/google/apis/firebaserules_v1/classes.rb +87 -0
  264. data/generated/google/apis/firebaserules_v1/representations.rb +37 -0
  265. data/generated/google/apis/firebaserules_v1.rb +1 -1
  266. data/generated/google/apis/firestore_v1/classes.rb +5 -3
  267. data/generated/google/apis/firestore_v1/service.rb +24 -22
  268. data/generated/google/apis/firestore_v1.rb +1 -1
  269. data/generated/google/apis/firestore_v1beta1/classes.rb +5 -3
  270. data/generated/google/apis/firestore_v1beta1/service.rb +16 -14
  271. data/generated/google/apis/firestore_v1beta1.rb +1 -1
  272. data/generated/google/apis/fitness_v1/classes.rb +8 -4
  273. data/generated/google/apis/fitness_v1/service.rb +26 -8
  274. data/generated/google/apis/fitness_v1.rb +11 -11
  275. data/generated/google/apis/games_management_v1management/service.rb +5 -7
  276. data/generated/google/apis/games_management_v1management.rb +1 -1
  277. data/generated/google/apis/genomics_v1.rb +1 -1
  278. data/generated/google/apis/genomics_v1alpha2.rb +1 -1
  279. data/generated/google/apis/genomics_v2alpha1.rb +1 -1
  280. data/generated/google/apis/gmail_v1/classes.rb +6 -2
  281. data/generated/google/apis/gmail_v1/service.rb +1 -1
  282. data/generated/google/apis/gmail_v1.rb +13 -1
  283. data/generated/google/apis/healthcare_v1beta1/classes.rb +199 -77
  284. data/generated/google/apis/healthcare_v1beta1/representations.rb +4 -0
  285. data/generated/google/apis/healthcare_v1beta1/service.rb +251 -75
  286. data/generated/google/apis/healthcare_v1beta1.rb +1 -1
  287. data/generated/google/apis/homegraph_v1.rb +1 -1
  288. data/generated/google/apis/iam_v1/classes.rb +176 -164
  289. data/generated/google/apis/iam_v1/representations.rb +0 -6
  290. data/generated/google/apis/iam_v1/service.rb +11 -21
  291. data/generated/google/apis/iam_v1.rb +1 -1
  292. data/generated/google/apis/iamcredentials_v1/classes.rb +7 -4
  293. data/generated/google/apis/iamcredentials_v1/service.rb +4 -4
  294. data/generated/google/apis/iamcredentials_v1.rb +1 -1
  295. data/generated/google/apis/iap_v1/classes.rb +291 -57
  296. data/generated/google/apis/iap_v1/representations.rb +85 -0
  297. data/generated/google/apis/iap_v1/service.rb +290 -0
  298. data/generated/google/apis/iap_v1.rb +1 -1
  299. data/generated/google/apis/iap_v1beta1/classes.rb +124 -55
  300. data/generated/google/apis/iap_v1beta1.rb +1 -1
  301. data/generated/google/apis/jobs_v3/classes.rb +1 -0
  302. data/generated/google/apis/jobs_v3.rb +1 -1
  303. data/generated/google/apis/jobs_v3p1beta1/classes.rb +8 -2
  304. data/generated/google/apis/jobs_v3p1beta1.rb +1 -1
  305. data/generated/google/apis/kgsearch_v1.rb +1 -1
  306. data/generated/google/apis/language_v1.rb +1 -1
  307. data/generated/google/apis/language_v1beta1.rb +1 -1
  308. data/generated/google/apis/language_v1beta2/classes.rb +15 -0
  309. data/generated/google/apis/language_v1beta2/representations.rb +2 -0
  310. data/generated/google/apis/language_v1beta2.rb +1 -1
  311. data/generated/google/apis/libraryagent_v1.rb +1 -1
  312. data/generated/google/apis/logging_v2/classes.rb +129 -39
  313. data/generated/google/apis/logging_v2/representations.rb +16 -0
  314. data/generated/google/apis/logging_v2/service.rb +186 -1
  315. data/generated/google/apis/logging_v2.rb +3 -2
  316. data/generated/google/apis/manufacturers_v1.rb +1 -1
  317. data/generated/google/apis/ml_v1/classes.rb +145 -47
  318. data/generated/google/apis/ml_v1/representations.rb +15 -0
  319. data/generated/google/apis/ml_v1/service.rb +14 -22
  320. data/generated/google/apis/ml_v1.rb +4 -1
  321. data/generated/google/apis/monitoring_v1/classes.rb +159 -120
  322. data/generated/google/apis/monitoring_v1/representations.rb +0 -18
  323. data/generated/google/apis/monitoring_v1/service.rb +11 -10
  324. data/generated/google/apis/monitoring_v1.rb +1 -1
  325. data/generated/google/apis/monitoring_v3/classes.rb +214 -106
  326. data/generated/google/apis/monitoring_v3/representations.rb +18 -1
  327. data/generated/google/apis/monitoring_v3/service.rb +178 -153
  328. data/generated/google/apis/monitoring_v3.rb +1 -1
  329. data/generated/google/apis/osconfig_v1beta/classes.rb +2357 -0
  330. data/generated/google/apis/osconfig_v1beta/representations.rb +966 -0
  331. data/generated/google/apis/osconfig_v1beta/service.rb +605 -0
  332. data/generated/google/apis/osconfig_v1beta.rb +35 -0
  333. data/generated/google/apis/oslogin_v1/service.rb +0 -1
  334. data/generated/google/apis/oslogin_v1.rb +1 -2
  335. data/generated/google/apis/oslogin_v1alpha/service.rb +0 -1
  336. data/generated/google/apis/oslogin_v1alpha.rb +1 -2
  337. data/generated/google/apis/oslogin_v1beta/service.rb +0 -1
  338. data/generated/google/apis/oslogin_v1beta.rb +1 -2
  339. data/generated/google/apis/pagespeedonline_v5/classes.rb +529 -498
  340. data/generated/google/apis/pagespeedonline_v5/representations.rb +225 -221
  341. data/generated/google/apis/pagespeedonline_v5/service.rb +22 -24
  342. data/generated/google/apis/pagespeedonline_v5.rb +9 -4
  343. data/generated/google/apis/people_v1/classes.rb +14 -13
  344. data/generated/google/apis/people_v1/service.rb +12 -16
  345. data/generated/google/apis/people_v1.rb +4 -1
  346. data/generated/google/apis/policytroubleshooter_v1/classes.rb +752 -0
  347. data/generated/google/apis/policytroubleshooter_v1/representations.rb +203 -0
  348. data/generated/google/apis/policytroubleshooter_v1/service.rb +90 -0
  349. data/generated/google/apis/policytroubleshooter_v1.rb +34 -0
  350. data/generated/google/apis/policytroubleshooter_v1beta/classes.rb +71 -19
  351. data/generated/google/apis/policytroubleshooter_v1beta.rb +1 -1
  352. data/generated/google/apis/poly_v1.rb +1 -1
  353. data/generated/google/apis/prod_tt_sasportal_v1alpha1/classes.rb +1123 -0
  354. data/generated/google/apis/prod_tt_sasportal_v1alpha1/representations.rb +530 -0
  355. data/generated/google/apis/prod_tt_sasportal_v1alpha1/service.rb +1388 -0
  356. data/generated/google/apis/{surveys_v2.rb → prod_tt_sasportal_v1alpha1.rb} +9 -15
  357. data/generated/google/apis/pubsub_v1/classes.rb +194 -56
  358. data/generated/google/apis/pubsub_v1/representations.rb +17 -0
  359. data/generated/google/apis/pubsub_v1.rb +1 -1
  360. data/generated/google/apis/pubsub_v1beta2/classes.rb +124 -56
  361. data/generated/google/apis/pubsub_v1beta2.rb +1 -1
  362. data/generated/google/apis/recommender_v1beta1/classes.rb +8 -5
  363. data/generated/google/apis/recommender_v1beta1/service.rb +13 -11
  364. data/generated/google/apis/recommender_v1beta1.rb +1 -1
  365. data/generated/google/apis/redis_v1/classes.rb +10 -3
  366. data/generated/google/apis/redis_v1/representations.rb +1 -0
  367. data/generated/google/apis/redis_v1.rb +1 -1
  368. data/generated/google/apis/redis_v1beta1/classes.rb +29 -3
  369. data/generated/google/apis/redis_v1beta1/representations.rb +14 -0
  370. data/generated/google/apis/redis_v1beta1/service.rb +36 -0
  371. data/generated/google/apis/redis_v1beta1.rb +1 -1
  372. data/generated/google/apis/remotebuildexecution_v1/classes.rb +7 -1
  373. data/generated/google/apis/remotebuildexecution_v1/representations.rb +1 -0
  374. data/generated/google/apis/remotebuildexecution_v1.rb +1 -1
  375. data/generated/google/apis/remotebuildexecution_v1alpha/classes.rb +7 -1
  376. data/generated/google/apis/remotebuildexecution_v1alpha/representations.rb +1 -0
  377. data/generated/google/apis/remotebuildexecution_v1alpha.rb +1 -1
  378. data/generated/google/apis/remotebuildexecution_v2/classes.rb +7 -1
  379. data/generated/google/apis/remotebuildexecution_v2/representations.rb +1 -0
  380. data/generated/google/apis/remotebuildexecution_v2.rb +1 -1
  381. data/generated/google/apis/run_v1/classes.rb +124 -56
  382. data/generated/google/apis/run_v1/service.rb +0 -30
  383. data/generated/google/apis/run_v1.rb +1 -1
  384. data/generated/google/apis/run_v1alpha1/classes.rb +740 -569
  385. data/generated/google/apis/run_v1alpha1/representations.rb +204 -182
  386. data/generated/google/apis/run_v1alpha1/service.rb +764 -358
  387. data/generated/google/apis/run_v1alpha1.rb +1 -1
  388. data/generated/google/apis/run_v1beta1/classes.rb +1 -1
  389. data/generated/google/apis/run_v1beta1.rb +4 -1
  390. data/generated/google/apis/runtimeconfig_v1.rb +1 -1
  391. data/generated/google/apis/runtimeconfig_v1beta1/classes.rb +49 -15
  392. data/generated/google/apis/runtimeconfig_v1beta1.rb +1 -1
  393. data/generated/google/apis/safebrowsing_v4/classes.rb +2 -2
  394. data/generated/google/apis/safebrowsing_v4.rb +1 -1
  395. data/generated/google/apis/sasportal_v1alpha1/classes.rb +1123 -0
  396. data/generated/google/apis/sasportal_v1alpha1/representations.rb +530 -0
  397. data/generated/google/apis/sasportal_v1alpha1/service.rb +1388 -0
  398. data/generated/google/apis/{fusiontables_v1.rb → sasportal_v1alpha1.rb} +11 -14
  399. data/generated/google/apis/script_v1.rb +1 -1
  400. data/generated/google/apis/searchconsole_v1.rb +1 -1
  401. data/generated/google/apis/secretmanager_v1beta1/classes.rb +970 -0
  402. data/generated/google/apis/{servicebroker_v1alpha1 → secretmanager_v1beta1}/representations.rb +140 -119
  403. data/generated/google/apis/secretmanager_v1beta1/service.rb +675 -0
  404. data/generated/google/apis/{servicebroker_v1beta1.rb → secretmanager_v1beta1.rb} +9 -10
  405. data/generated/google/apis/securitycenter_v1/classes.rb +467 -15
  406. data/generated/google/apis/securitycenter_v1/representations.rb +141 -0
  407. data/generated/google/apis/securitycenter_v1/service.rb +6 -0
  408. data/generated/google/apis/securitycenter_v1.rb +1 -1
  409. data/generated/google/apis/securitycenter_v1beta1/classes.rb +442 -15
  410. data/generated/google/apis/securitycenter_v1beta1/representations.rb +138 -0
  411. data/generated/google/apis/securitycenter_v1beta1.rb +1 -1
  412. data/generated/google/apis/securitycenter_v1p1alpha1/classes.rb +393 -0
  413. data/generated/google/apis/securitycenter_v1p1alpha1/representations.rb +138 -0
  414. data/generated/google/apis/securitycenter_v1p1alpha1.rb +1 -1
  415. data/generated/google/apis/securitycenter_v1p1beta1/classes.rb +1999 -0
  416. data/generated/google/apis/securitycenter_v1p1beta1/representations.rb +699 -0
  417. data/generated/google/apis/securitycenter_v1p1beta1/service.rb +1315 -0
  418. data/generated/google/apis/securitycenter_v1p1beta1.rb +35 -0
  419. data/generated/google/apis/serviceconsumermanagement_v1/classes.rb +225 -3
  420. data/generated/google/apis/serviceconsumermanagement_v1/representations.rb +51 -0
  421. data/generated/google/apis/serviceconsumermanagement_v1.rb +1 -1
  422. data/generated/google/apis/servicecontrol_v1/classes.rb +242 -3
  423. data/generated/google/apis/servicecontrol_v1/representations.rb +86 -0
  424. data/generated/google/apis/servicecontrol_v1/service.rb +2 -1
  425. data/generated/google/apis/servicecontrol_v1.rb +1 -1
  426. data/generated/google/apis/servicemanagement_v1/classes.rb +169 -18
  427. data/generated/google/apis/servicemanagement_v1/representations.rb +19 -0
  428. data/generated/google/apis/servicemanagement_v1.rb +1 -1
  429. data/generated/google/apis/servicenetworking_v1/classes.rb +178 -3
  430. data/generated/google/apis/servicenetworking_v1/representations.rb +33 -0
  431. data/generated/google/apis/servicenetworking_v1/service.rb +35 -0
  432. data/generated/google/apis/servicenetworking_v1.rb +1 -1
  433. data/generated/google/apis/servicenetworking_v1beta/classes.rb +156 -3
  434. data/generated/google/apis/servicenetworking_v1beta/representations.rb +20 -0
  435. data/generated/google/apis/servicenetworking_v1beta.rb +1 -1
  436. data/generated/google/apis/serviceusage_v1/classes.rb +156 -3
  437. data/generated/google/apis/serviceusage_v1/representations.rb +20 -0
  438. data/generated/google/apis/serviceusage_v1.rb +1 -1
  439. data/generated/google/apis/serviceusage_v1beta1/classes.rb +156 -3
  440. data/generated/google/apis/serviceusage_v1beta1/representations.rb +20 -0
  441. data/generated/google/apis/serviceusage_v1beta1.rb +1 -1
  442. data/generated/google/apis/sheets_v4/classes.rb +380 -31
  443. data/generated/google/apis/sheets_v4/representations.rb +103 -0
  444. data/generated/google/apis/sheets_v4/service.rb +9 -11
  445. data/generated/google/apis/sheets_v4.rb +1 -1
  446. data/generated/google/apis/sourcerepo_v1/classes.rb +172 -65
  447. data/generated/google/apis/sourcerepo_v1/service.rb +9 -1
  448. data/generated/google/apis/sourcerepo_v1.rb +1 -1
  449. data/generated/google/apis/spanner_v1/classes.rb +153 -66
  450. data/generated/google/apis/spanner_v1/representations.rb +1 -0
  451. data/generated/google/apis/spanner_v1/service.rb +7 -2
  452. data/generated/google/apis/spanner_v1.rb +1 -1
  453. data/generated/google/apis/speech_v1/classes.rb +1 -8
  454. data/generated/google/apis/speech_v1/representations.rb +0 -1
  455. data/generated/google/apis/speech_v1.rb +1 -1
  456. data/generated/google/apis/speech_v1p1beta1/classes.rb +3 -8
  457. data/generated/google/apis/speech_v1p1beta1/representations.rb +0 -1
  458. data/generated/google/apis/speech_v1p1beta1.rb +1 -1
  459. data/generated/google/apis/sql_v1beta4/classes.rb +204 -5
  460. data/generated/google/apis/sql_v1beta4/representations.rb +84 -0
  461. data/generated/google/apis/sql_v1beta4/service.rb +279 -14
  462. data/generated/google/apis/sql_v1beta4.rb +1 -1
  463. data/generated/google/apis/storage_v1/classes.rb +16 -7
  464. data/generated/google/apis/storage_v1/service.rb +1 -1
  465. data/generated/google/apis/storage_v1.rb +1 -1
  466. data/generated/google/apis/storage_v1beta2/service.rb +1 -1
  467. data/generated/google/apis/storage_v1beta2.rb +1 -1
  468. data/generated/google/apis/storagetransfer_v1/classes.rb +13 -4
  469. data/generated/google/apis/storagetransfer_v1/service.rb +4 -32
  470. data/generated/google/apis/storagetransfer_v1.rb +1 -1
  471. data/generated/google/apis/streetviewpublish_v1.rb +1 -1
  472. data/generated/google/apis/tagmanager_v1/classes.rb +2 -0
  473. data/generated/google/apis/tagmanager_v1.rb +1 -1
  474. data/generated/google/apis/tagmanager_v2/classes.rb +170 -0
  475. data/generated/google/apis/tagmanager_v2/representations.rb +49 -0
  476. data/generated/google/apis/tagmanager_v2.rb +1 -1
  477. data/generated/google/apis/tasks_v1/service.rb +4 -1
  478. data/generated/google/apis/tasks_v1.rb +1 -1
  479. data/generated/google/apis/testing_v1/classes.rb +2 -2
  480. data/generated/google/apis/testing_v1.rb +1 -1
  481. data/generated/google/apis/toolresults_v1/classes.rb +696 -0
  482. data/generated/google/apis/toolresults_v1/representations.rb +438 -0
  483. data/generated/google/apis/toolresults_v1/service.rb +59 -0
  484. data/generated/google/apis/{analytics_v2_4/representations.rb → toolresults_v1.rb} +11 -6
  485. data/generated/google/apis/toolresults_v1beta3/classes.rb +374 -2
  486. data/generated/google/apis/toolresults_v1beta3/representations.rb +109 -0
  487. data/generated/google/apis/toolresults_v1beta3/service.rb +98 -0
  488. data/generated/google/apis/toolresults_v1beta3.rb +1 -1
  489. data/generated/google/apis/tpu_v1/classes.rb +0 -1
  490. data/generated/google/apis/tpu_v1.rb +1 -1
  491. data/generated/google/apis/tpu_v1alpha1/classes.rb +0 -1
  492. data/generated/google/apis/tpu_v1alpha1.rb +1 -1
  493. data/generated/google/apis/translate_v3/classes.rb +943 -0
  494. data/generated/google/apis/translate_v3/representations.rb +439 -0
  495. data/generated/google/apis/translate_v3/service.rb +781 -0
  496. data/generated/google/apis/translate_v3.rb +37 -0
  497. data/generated/google/apis/videointelligence_v1/classes.rb +97 -0
  498. data/generated/google/apis/videointelligence_v1/representations.rb +51 -0
  499. data/generated/google/apis/videointelligence_v1.rb +1 -1
  500. data/generated/google/apis/videointelligence_v1beta2/classes.rb +97 -0
  501. data/generated/google/apis/videointelligence_v1beta2/representations.rb +51 -0
  502. data/generated/google/apis/videointelligence_v1beta2.rb +1 -1
  503. data/generated/google/apis/videointelligence_v1p1beta1/classes.rb +97 -0
  504. data/generated/google/apis/videointelligence_v1p1beta1/representations.rb +51 -0
  505. data/generated/google/apis/videointelligence_v1p1beta1.rb +1 -1
  506. data/generated/google/apis/videointelligence_v1p2beta1/classes.rb +97 -0
  507. data/generated/google/apis/videointelligence_v1p2beta1/representations.rb +51 -0
  508. data/generated/google/apis/videointelligence_v1p2beta1.rb +1 -1
  509. data/generated/google/apis/videointelligence_v1p3beta1/classes.rb +184 -0
  510. data/generated/google/apis/videointelligence_v1p3beta1/representations.rb +85 -0
  511. data/generated/google/apis/videointelligence_v1p3beta1.rb +1 -1
  512. data/generated/google/apis/vision_v1/service.rb +1 -1
  513. data/generated/google/apis/vision_v1.rb +1 -1
  514. data/generated/google/apis/websecurityscanner_v1/classes.rb +63 -0
  515. data/generated/google/apis/websecurityscanner_v1/representations.rb +31 -0
  516. data/generated/google/apis/websecurityscanner_v1.rb +1 -1
  517. data/generated/google/apis/websecurityscanner_v1alpha.rb +1 -1
  518. data/generated/google/apis/websecurityscanner_v1beta/classes.rb +63 -0
  519. data/generated/google/apis/websecurityscanner_v1beta/representations.rb +31 -0
  520. data/generated/google/apis/websecurityscanner_v1beta.rb +1 -1
  521. data/generated/google/apis/youtube_analytics_v1.rb +1 -1
  522. data/generated/google/apis/youtube_analytics_v2.rb +1 -1
  523. data/generated/google/apis/youtube_partner_v1.rb +1 -1
  524. data/generated/google/apis/youtube_v3/classes.rb +61 -9
  525. data/generated/google/apis/youtube_v3/representations.rb +8 -1
  526. data/generated/google/apis/youtube_v3/service.rb +8 -2
  527. data/generated/google/apis/youtube_v3.rb +1 -1
  528. data/generated/google/apis/youtubereporting_v1.rb +1 -1
  529. data/lib/google/apis/core/base_service.rb +1 -1
  530. data/lib/google/apis/core/http_command.rb +1 -2
  531. data/lib/google/apis/version.rb +1 -1
  532. metadata +51 -39
  533. data/generated/google/apis/analytics_v2_4/service.rb +0 -331
  534. data/generated/google/apis/analytics_v2_4.rb +0 -37
  535. data/generated/google/apis/fusiontables_v1/classes.rb +0 -977
  536. data/generated/google/apis/fusiontables_v1/representations.rb +0 -449
  537. data/generated/google/apis/fusiontables_v1/service.rb +0 -1307
  538. data/generated/google/apis/fusiontables_v2/classes.rb +0 -1049
  539. data/generated/google/apis/fusiontables_v2/representations.rb +0 -457
  540. data/generated/google/apis/fusiontables_v2/service.rb +0 -1431
  541. data/generated/google/apis/fusiontables_v2.rb +0 -37
  542. data/generated/google/apis/plus_domains_v1/classes.rb +0 -2609
  543. data/generated/google/apis/plus_domains_v1/representations.rb +0 -1111
  544. data/generated/google/apis/plus_domains_v1/service.rb +0 -489
  545. data/generated/google/apis/plus_domains_v1.rb +0 -55
  546. data/generated/google/apis/replicapool_v1beta1/classes.rb +0 -918
  547. data/generated/google/apis/replicapool_v1beta1/representations.rb +0 -409
  548. data/generated/google/apis/replicapool_v1beta1/service.rb +0 -489
  549. data/generated/google/apis/replicapool_v1beta1.rb +0 -50
  550. data/generated/google/apis/servicebroker_v1/classes.rb +0 -368
  551. data/generated/google/apis/servicebroker_v1/representations.rb +0 -114
  552. data/generated/google/apis/servicebroker_v1/service.rb +0 -177
  553. data/generated/google/apis/servicebroker_v1alpha1/classes.rb +0 -1072
  554. data/generated/google/apis/servicebroker_v1alpha1/service.rb +0 -737
  555. data/generated/google/apis/servicebroker_v1beta1/classes.rb +0 -1208
  556. data/generated/google/apis/servicebroker_v1beta1/representations.rb +0 -416
  557. data/generated/google/apis/servicebroker_v1beta1/service.rb +0 -926
  558. data/generated/google/apis/surveys_v2/classes.rb +0 -691
  559. data/generated/google/apis/surveys_v2/representations.rb +0 -305
  560. data/generated/google/apis/surveys_v2/service.rb +0 -348
@@ -56,8 +56,7 @@ module Google
56
56
  # Google Cloud Platform provides graphics processing units (accelerators) that
57
57
  # you can add to VM instances to improve or accelerate performance when working
58
58
  # with intensive workloads. For more information, read GPUs on Compute Engine. (=
59
- # = resource_for beta.acceleratorTypes ==) (== resource_for v1.acceleratorTypes =
60
- # =)
59
+ # = resource_for `$api_version`.acceleratorTypes ==)
61
60
  class AcceleratorType
62
61
  include Google::Apis::Core::Hashable
63
62
 
@@ -527,21 +526,22 @@ module Google
527
526
  end
528
527
  end
529
528
 
530
- # Represents an IP Address resource.
531
- # An address resource represents a regional internal IP address. Regional
532
- # internal IP addresses are RFC 1918 addresses that come from either a primary
533
- # or secondary IP range of a subnet in a VPC network. Regional external IP
534
- # addresses can be assigned to GCP VM instances, Cloud VPN gateways, regional
535
- # external forwarding rules for network load balancers (in either Standard or
536
- # Premium Tier), and regional external forwarding rules for HTTP(S), SSL Proxy,
537
- # and TCP Proxy load balancers in Standard Tier. For more information, read IP
538
- # addresses.
539
- # A globalAddresses resource represent a global external IP address. Global
540
- # external IP addresses are IPv4 or IPv6 addresses. They can only be assigned to
541
- # global forwarding rules for HTTP(S), SSL Proxy, or TCP Proxy load balancers in
542
- # Premium Tier. For more information, read Global resources. (== resource_for
543
- # beta.addresses ==) (== resource_for v1.addresses ==) (== resource_for beta.
544
- # globalAddresses ==) (== resource_for v1.globalAddresses ==)
529
+ # Use global external addresses for GFE-based external HTTP(S) load balancers in
530
+ # Premium Tier.
531
+ # Use global internal addresses for reserved peering network range.
532
+ # Use regional external addresses for the following resources:
533
+ # - External IP addresses for VM instances - Regional external forwarding rules -
534
+ # Cloud NAT external IP addresses - GFE based LBs in Standard Tier - Network
535
+ # LBs in Premium or Standard Tier - Cloud VPN gateways (both Classic and HA)
536
+ # Use regional internal IP addresses for subnet IP ranges (primary and secondary)
537
+ # . This includes:
538
+ # - Internal IP addresses for VM instances - Alias IP ranges of VM instances (/
539
+ # 32 only) - Regional internal forwarding rules - Internal TCP/UDP load balancer
540
+ # addresses - Internal HTTP(S) load balancer addresses - Cloud DNS inbound
541
+ # forwarding IP addresses
542
+ # For more information, read reserved IP address.
543
+ # (== resource_for `$api_version`.addresses ==) (== resource_for `$api_version`.
544
+ # globalAddresses ==)
545
545
  class Address
546
546
  include Google::Apis::Core::Hashable
547
547
 
@@ -1196,6 +1196,11 @@ module Google
1196
1196
  # @return [Google::Apis::ComputeBeta::CustomerEncryptionKey]
1197
1197
  attr_accessor :disk_encryption_key
1198
1198
 
1199
+ # The size of the disk in GB.
1200
+ # Corresponds to the JSON property `diskSizeGb`
1201
+ # @return [Fixnum]
1202
+ attr_accessor :disk_size_gb
1203
+
1199
1204
  # A list of features to enable on the guest operating system. Applicable only
1200
1205
  # for bootable images. Read Enabling guest operating system features to see a
1201
1206
  # list of available options.
@@ -1274,6 +1279,7 @@ module Google
1274
1279
  @boot = args[:boot] if args.key?(:boot)
1275
1280
  @device_name = args[:device_name] if args.key?(:device_name)
1276
1281
  @disk_encryption_key = args[:disk_encryption_key] if args.key?(:disk_encryption_key)
1282
+ @disk_size_gb = args[:disk_size_gb] if args.key?(:disk_size_gb)
1277
1283
  @guest_os_features = args[:guest_os_features] if args.key?(:guest_os_features)
1278
1284
  @index = args[:index] if args.key?(:index)
1279
1285
  @initialize_params = args[:initialize_params] if args.key?(:initialize_params)
@@ -1306,9 +1312,10 @@ module Google
1306
1312
  # @return [String]
1307
1313
  attr_accessor :disk_name
1308
1314
 
1309
- # Specifies the size of the disk in base-2 GB. If not specified, the disk will
1310
- # be the same size as the image (usually 10GB). If specified, the size must be
1311
- # equal to or larger than 10GB.
1315
+ # Specifies the size of the disk in base-2 GB. The size must be at least 10 GB.
1316
+ # If you specify a sourceImage, which is required for boot disks, the default
1317
+ # size is the size of the sourceImage. If you do not specify a sourceImage, the
1318
+ # default disk size is 500 GB.
1312
1319
  # Corresponds to the JSON property `diskSizeGb`
1313
1320
  # @return [Fixnum]
1314
1321
  attr_accessor :disk_size_gb
@@ -1519,14 +1526,16 @@ module Google
1519
1526
  end
1520
1527
 
1521
1528
  # Represents an Autoscaler resource.
1529
+ # Google Compute Engine has two Autoscaler resources:
1530
+ # * [Global](/compute/docs/reference/rest/latest/autoscalers) * [Regional](/
1531
+ # compute/docs/reference/rest/latest/regionAutoscalers)
1522
1532
  # Use autoscalers to automatically add or delete instances from a managed
1523
1533
  # instance group according to your defined autoscaling policy. For more
1524
1534
  # information, read Autoscaling Groups of Instances.
1525
1535
  # For zonal managed instance groups resource, use the autoscaler resource.
1526
1536
  # For regional managed instance groups, use the regionAutoscalers resource. (==
1527
- # resource_for beta.autoscalers ==) (== resource_for v1.autoscalers ==) (==
1528
- # resource_for beta.regionAutoscalers ==) (== resource_for v1.regionAutoscalers =
1529
- # =)
1537
+ # resource_for `$api_version`.autoscalers ==) (== resource_for `$api_version`.
1538
+ # regionAutoscalers ==)
1530
1539
  class Autoscaler
1531
1540
  include Google::Apis::Core::Hashable
1532
1541
 
@@ -1588,12 +1597,13 @@ module Google
1588
1597
  attr_accessor :self_link
1589
1598
 
1590
1599
  # [Output Only] The status of the autoscaler configuration. Current set of
1591
- # possible values: PENDING: Autoscaler backend hasn't read new/updated
1592
- # configuration DELETING: Configuration is being deleted ACTIVE: Configuration
1593
- # is acknowledged to be effective. Some warnings might or might not be present
1594
- # in the status_details field. ERROR: Configuration has errors. Actionable for
1595
- # users. Details are present in the status_details field. New values might be
1596
- # added in the future.
1600
+ # possible values:
1601
+ # - PENDING: Autoscaler backend hasn't read new/updated configuration.
1602
+ # - DELETING: Configuration is being deleted.
1603
+ # - ACTIVE: Configuration is acknowledged to be effective. Some warnings might
1604
+ # be present in the statusDetails field.
1605
+ # - ERROR: Configuration has errors. Actionable for users. Details are present
1606
+ # in the statusDetails field. New values might be added in the future.
1597
1607
  # Corresponds to the JSON property `status`
1598
1608
  # @return [String]
1599
1609
  attr_accessor :status
@@ -1883,38 +1893,45 @@ module Google
1883
1893
  # @return [String]
1884
1894
  attr_accessor :message
1885
1895
 
1886
- # The type of error, warning or notice returned. Current set of possible values:
1887
- # ALL_INSTANCES_UNHEALTHY (WARNING): All instances in the instance group are
1888
- # unhealthy (not in RUNNING state). BACKEND_SERVICE_DOES_NOT_EXIST (ERROR):
1889
- # There is no backend service attached to the instance group.
1890
- # CAPPED_AT_MAX_NUM_REPLICAS (WARNING): Autoscaler recommends size bigger than
1891
- # maxNumReplicas. CUSTOM_METRIC_DATA_POINTS_TOO_SPARSE (WARNING): The custom
1892
- # metric samples are not exported often enough to be a credible base for
1893
- # autoscaling. CUSTOM_METRIC_INVALID (ERROR): The custom metric that was
1894
- # specified does not exist or does not have the necessary labels. MIN_EQUALS_MAX
1895
- # (WARNING): The minNumReplicas is equal to maxNumReplicas. This means the
1896
- # autoscaler cannot add or remove instances from the instance group.
1897
- # MISSING_CUSTOM_METRIC_DATA_POINTS (WARNING): The autoscaler did not receive
1896
+ # The type of error, warning, or notice returned. Current set of possible values:
1897
+ #
1898
+ # - ALL_INSTANCES_UNHEALTHY (WARNING): All instances in the instance group are
1899
+ # unhealthy (not in RUNNING state).
1900
+ # - BACKEND_SERVICE_DOES_NOT_EXIST (ERROR): There is no backend service attached
1901
+ # to the instance group.
1902
+ # - CAPPED_AT_MAX_NUM_REPLICAS (WARNING): Autoscaler recommends a size greater
1903
+ # than maxNumReplicas.
1904
+ # - CUSTOM_METRIC_DATA_POINTS_TOO_SPARSE (WARNING): The custom metric samples
1905
+ # are not exported often enough to be a credible base for autoscaling.
1906
+ # - CUSTOM_METRIC_INVALID (ERROR): The custom metric that was specified does not
1907
+ # exist or does not have the necessary labels.
1908
+ # - MIN_EQUALS_MAX (WARNING): The minNumReplicas is equal to maxNumReplicas.
1909
+ # This means the autoscaler cannot add or remove instances from the instance
1910
+ # group.
1911
+ # - MISSING_CUSTOM_METRIC_DATA_POINTS (WARNING): The autoscaler did not receive
1898
1912
  # any data from the custom metric configured for autoscaling.
1899
- # MISSING_LOAD_BALANCING_DATA_POINTS (WARNING): The autoscaler is configured to
1900
- # scale based on a load balancing signal but the instance group has not received
1901
- # any requests from the load balancer. MODE_OFF (WARNING): Autoscaling is turned
1902
- # off. The number of instances in the group won't change automatically. The
1903
- # autoscaling configuration is preserved. MODE_ONLY_UP (WARNING): Autoscaling is
1904
- # in the "Autoscale only up" mode. Instances in the group will be only added.
1905
- # MORE_THAN_ONE_BACKEND_SERVICE (ERROR): The instance group cannot be autoscaled
1906
- # because it has more than one backend service attached to it.
1907
- # NOT_ENOUGH_QUOTA_AVAILABLE (ERROR): Exceeded quota for necessary resources,
1908
- # such as CPU, number of instances and so on. REGION_RESOURCE_STOCKOUT (ERROR):
1909
- # Showed only for regional autoscalers: there is a resource stockout in the
1910
- # chosen region. SCALING_TARGET_DOES_NOT_EXIST (ERROR): The target to be scaled
1911
- # does not exist. UNSUPPORTED_MAX_RATE_LOAD_BALANCING_CONFIGURATION (ERROR):
1912
- # Autoscaling does not work with an HTTP/S load balancer that has been
1913
- # configured for maxRate. ZONE_RESOURCE_STOCKOUT (ERROR): For zonal autoscalers:
1914
- # there is a resource stockout in the chosen zone. For regional autoscalers: in
1915
- # at least one of the zones you're using there is a resource stockout. New
1916
- # values might be added in the future. Some of the values might not be available
1917
- # in all API versions.
1913
+ # - MISSING_LOAD_BALANCING_DATA_POINTS (WARNING): The autoscaler is configured
1914
+ # to scale based on a load balancing signal but the instance group has not
1915
+ # received any requests from the load balancer.
1916
+ # - MODE_OFF (WARNING): Autoscaling is turned off. The number of instances in
1917
+ # the group won't change automatically. The autoscaling configuration is
1918
+ # preserved.
1919
+ # - MODE_ONLY_UP (WARNING): Autoscaling is in the "Autoscale only up" mode. The
1920
+ # autoscaler can add instances but not remove any.
1921
+ # - MORE_THAN_ONE_BACKEND_SERVICE (ERROR): The instance group cannot be
1922
+ # autoscaled because it has more than one backend service attached to it.
1923
+ # - NOT_ENOUGH_QUOTA_AVAILABLE (ERROR): There is insufficient quota for the
1924
+ # necessary resources, such as CPU or number of instances.
1925
+ # - REGION_RESOURCE_STOCKOUT (ERROR): Shown only for regional autoscalers: there
1926
+ # is a resource stockout in the chosen region.
1927
+ # - SCALING_TARGET_DOES_NOT_EXIST (ERROR): The target to be scaled does not
1928
+ # exist.
1929
+ # - UNSUPPORTED_MAX_RATE_LOAD_BALANCING_CONFIGURATION (ERROR): Autoscaling does
1930
+ # not work with an HTTP/S load balancer that has been configured for maxRate.
1931
+ # - ZONE_RESOURCE_STOCKOUT (ERROR): For zonal autoscalers: there is a resource
1932
+ # stockout in the chosen zone. For regional autoscalers: in at least one of the
1933
+ # zones you're using there is a resource stockout. New values might be added in
1934
+ # the future. Some of the values might not be available in all API versions.
1918
1935
  # Corresponds to the JSON property `type`
1919
1936
  # @return [String]
1920
1937
  attr_accessor :type
@@ -2071,6 +2088,13 @@ module Google
2071
2088
  # @return [String]
2072
2089
  attr_accessor :mode
2073
2090
 
2091
+ # Configuration that allows for slower scale down so that even if Autoscaler
2092
+ # recommends an abrupt scale down of a MIG, it will be throttled as specified by
2093
+ # the parameters below.
2094
+ # Corresponds to the JSON property `scaleDownControl`
2095
+ # @return [Google::Apis::ComputeBeta::AutoscalingPolicyScaleDownControl]
2096
+ attr_accessor :scale_down_control
2097
+
2074
2098
  def initialize(**args)
2075
2099
  update!(**args)
2076
2100
  end
@@ -2084,6 +2108,7 @@ module Google
2084
2108
  @max_num_replicas = args[:max_num_replicas] if args.key?(:max_num_replicas)
2085
2109
  @min_num_replicas = args[:min_num_replicas] if args.key?(:min_num_replicas)
2086
2110
  @mode = args[:mode] if args.key?(:mode)
2111
+ @scale_down_control = args[:scale_down_control] if args.key?(:scale_down_control)
2087
2112
  end
2088
2113
  end
2089
2114
 
@@ -2221,6 +2246,62 @@ module Google
2221
2246
  end
2222
2247
  end
2223
2248
 
2249
+ # Configuration that allows for slower scale down so that even if Autoscaler
2250
+ # recommends an abrupt scale down of a MIG, it will be throttled as specified by
2251
+ # the parameters below.
2252
+ class AutoscalingPolicyScaleDownControl
2253
+ include Google::Apis::Core::Hashable
2254
+
2255
+ # Encapsulates numeric value that can be either absolute or relative.
2256
+ # Corresponds to the JSON property `maxScaledDownReplicas`
2257
+ # @return [Google::Apis::ComputeBeta::FixedOrPercent]
2258
+ attr_accessor :max_scaled_down_replicas
2259
+
2260
+ # A Duration represents a signed, fixed-length span of time represented as a
2261
+ # count of seconds and fractions of seconds at nanosecond resolution. It is
2262
+ # independent of any calendar and concepts like "day" or "month". It is related
2263
+ # to Timestamp in that the difference between two Timestamp values is a Duration
2264
+ # and it can be added or subtracted from a Timestamp. Range is approximately +-
2265
+ # 10,000 years.
2266
+ # # Examples
2267
+ # Example 1: Compute Duration from two Timestamps in pseudo code.
2268
+ # Timestamp start = ...; Timestamp end = ...; Duration duration = ...;
2269
+ # duration.seconds = end.seconds - start.seconds; duration.nanos = end.nanos -
2270
+ # start.nanos;
2271
+ # if (duration.seconds 0) ` duration.seconds += 1; duration.nanos -= 1000000000;
2272
+ # ` else if (duration.seconds > 0 && duration.nanos < 0) ` duration.seconds -=
2273
+ # 1; duration.nanos += 1000000000; `
2274
+ # Example 2: Compute Timestamp from Timestamp + Duration in pseudo code.
2275
+ # Timestamp start = ...; Duration duration = ...; Timestamp end = ...;
2276
+ # end.seconds = start.seconds + duration.seconds; end.nanos = start.nanos +
2277
+ # duration.nanos;
2278
+ # if (end.nanos = 1000000000) ` end.seconds += 1; end.nanos -= 1000000000; `
2279
+ # Example 3: Compute Duration from datetime.timedelta in Python.
2280
+ # td = datetime.timedelta(days=3, minutes=10) duration = Duration() duration.
2281
+ # FromTimedelta(td)
2282
+ # # JSON Mapping
2283
+ # In JSON format, the Duration type is encoded as a string rather than an object,
2284
+ # where the string ends in the suffix "s" (indicating seconds) and is preceded
2285
+ # by the number of seconds, with nanoseconds expressed as fractional seconds.
2286
+ # For example, 3 seconds with 0 nanoseconds should be encoded in JSON format as "
2287
+ # 3s", while 3 seconds and 1 nanosecond should be expressed in JSON format as "3.
2288
+ # 000000001s", and 3 seconds and 1 microsecond should be expressed in JSON
2289
+ # format as "3.000001s".
2290
+ # Corresponds to the JSON property `timeWindow`
2291
+ # @return [Google::Apis::ComputeBeta::GoogleDuration]
2292
+ attr_accessor :time_window
2293
+
2294
+ def initialize(**args)
2295
+ update!(**args)
2296
+ end
2297
+
2298
+ # Update properties of this object
2299
+ def update!(**args)
2300
+ @max_scaled_down_replicas = args[:max_scaled_down_replicas] if args.key?(:max_scaled_down_replicas)
2301
+ @time_window = args[:time_window] if args.key?(:time_window)
2302
+ end
2303
+ end
2304
+
2224
2305
  # Message containing information of one individual backend.
2225
2306
  class Backend
2226
2307
  include Google::Apis::Core::Hashable
@@ -2626,8 +2707,12 @@ module Google
2626
2707
  # Represents a Backend Service resource.
2627
2708
  # A backend service contains configuration values for Google Cloud Platform load
2628
2709
  # balancing services.
2710
+ # Backend services in Google Compute Engine can be either regionally or globally
2711
+ # scoped.
2712
+ # * [Global](/compute/docs/reference/rest/latest/backendServices) * [Regional](/
2713
+ # compute/docs/reference/rest/latest/regionBackendServices)
2629
2714
  # For more information, read Backend Services.
2630
- # (== resource_for v1.backendService ==) (== resource_for beta.backendService ==)
2715
+ # (== resource_for `$api_version`.backendService ==)
2631
2716
  class BackendService
2632
2717
  include Google::Apis::Core::Hashable
2633
2718
 
@@ -2705,9 +2790,11 @@ module Google
2705
2790
 
2706
2791
  # The list of URLs to the HttpHealthCheck or HttpsHealthCheck resource for
2707
2792
  # health checking this BackendService. Currently at most one health check can be
2708
- # specified, and a health check is required for Compute Engine backend services.
2709
- # A health check must not be specified for App Engine backend and Cloud Function
2710
- # backend.
2793
+ # specified. Health check is optional for Compute Engine backend services if
2794
+ # there is no backend. A health check must not be specified when adding Internet
2795
+ # Network Endpoint Group or Serverless Network Endpoint Group as backends. In
2796
+ # all other cases, a health check is required for Compute Engine backend
2797
+ # services.
2711
2798
  # For internal load balancing, a URL to a HealthCheck resource must be specified
2712
2799
  # instead.
2713
2800
  # Corresponds to the JSON property `healthChecks`
@@ -2764,6 +2851,8 @@ module Google
2764
2851
  # HTTP2, and load_balancing_scheme set to INTERNAL_MANAGED.
2765
2852
  # - A global backend service with the load_balancing_scheme set to
2766
2853
  # INTERNAL_SELF_MANAGED.
2854
+ # If sessionAffinity is not NONE, and this field is not set to >MAGLEV or
2855
+ # RING_HASH, session affinity settings will not take effect.
2767
2856
  # Corresponds to the JSON property `localityLbPolicy`
2768
2857
  # @return [String]
2769
2858
  attr_accessor :locality_lb_policy
@@ -2850,8 +2939,9 @@ module Google
2850
2939
  # HTTPS.
2851
2940
  # When the loadBalancingScheme is INTERNAL, possible values are NONE, CLIENT_IP,
2852
2941
  # CLIENT_IP_PROTO, or CLIENT_IP_PORT_PROTO.
2853
- # When the loadBalancingScheme is INTERNAL_SELF_MANAGED, possible values are
2854
- # NONE, CLIENT_IP, GENERATED_COOKIE, HEADER_FIELD, or HTTP_COOKIE.
2942
+ # When the loadBalancingScheme is INTERNAL_SELF_MANAGED, or INTERNAL_MANAGED,
2943
+ # possible values are NONE, CLIENT_IP, GENERATED_COOKIE, HEADER_FIELD, or
2944
+ # HTTP_COOKIE.
2855
2945
  # Corresponds to the JSON property `sessionAffinity`
2856
2946
  # @return [String]
2857
2947
  attr_accessor :session_affinity
@@ -3104,6 +3194,11 @@ module Google
3104
3194
  class BackendServiceGroupHealth
3105
3195
  include Google::Apis::Core::Hashable
3106
3196
 
3197
+ # Metadata defined as annotations on the network endpoint group.
3198
+ # Corresponds to the JSON property `annotations`
3199
+ # @return [Hash<String,String>]
3200
+ attr_accessor :annotations
3201
+
3107
3202
  # Health state of the backend instances or endpoints in requested instance or
3108
3203
  # network endpoint group, determined based on configured health checks.
3109
3204
  # Corresponds to the JSON property `healthStatus`
@@ -3122,6 +3217,7 @@ module Google
3122
3217
 
3123
3218
  # Update properties of this object
3124
3219
  def update!(**args)
3220
+ @annotations = args[:annotations] if args.key?(:annotations)
3125
3221
  @health_status = args[:health_status] if args.key?(:health_status)
3126
3222
  @kind = args[:kind] if args.key?(:kind)
3127
3223
  end
@@ -3697,6 +3793,22 @@ module Google
3697
3793
  # account. For example, `my-other-app@appspot.gserviceaccount.com`.
3698
3794
  # * `group:`emailid``: An email address that represents a Google group. For
3699
3795
  # example, `admins@example.com`.
3796
+ # * `deleted:user:`emailid`?uid=`uniqueid``: An email address (plus unique
3797
+ # identifier) representing a user that has been recently deleted. For example, `
3798
+ # alice@example.com?uid=123456789012345678901`. If the user is recovered, this
3799
+ # value reverts to `user:`emailid`` and the recovered user retains the role in
3800
+ # the binding.
3801
+ # * `deleted:serviceAccount:`emailid`?uid=`uniqueid``: An email address (plus
3802
+ # unique identifier) representing a service account that has been recently
3803
+ # deleted. For example, `my-other-app@appspot.gserviceaccount.com?uid=
3804
+ # 123456789012345678901`. If the service account is undeleted, this value
3805
+ # reverts to `serviceAccount:`emailid`` and the undeleted service account
3806
+ # retains the role in the binding.
3807
+ # * `deleted:group:`emailid`?uid=`uniqueid``: An email address (plus unique
3808
+ # identifier) representing a Google group that has been recently deleted. For
3809
+ # example, `admins@example.com?uid=123456789012345678901`. If the group is
3810
+ # recovered, this value reverts to `group:`emailid`` and the recovered group
3811
+ # retains the role in the binding.
3700
3812
  # * `domain:`domain``: The G Suite domain (primary) that represents all the
3701
3813
  # users of that domain. For example, `google.com` or `example.com`.
3702
3814
  # Corresponds to the JSON property `members`
@@ -3866,8 +3978,8 @@ module Google
3866
3978
  # Creating a commitment resource means that you are purchasing a committed use
3867
3979
  # contract with an explicit start and end time. You can create commitments based
3868
3980
  # on vCPUs and memory usage and receive discounted rates. For full details, read
3869
- # Signing Up for Committed Use Discounts. (== resource_for beta.
3870
- # regionCommitments ==) (== resource_for v1.regionCommitments ==)
3981
+ # Signing Up for Committed Use Discounts. (== resource_for `$api_version`.
3982
+ # regionCommitments ==)
3871
3983
  class Commitment
3872
3984
  include Google::Apis::Core::Hashable
3873
3985
 
@@ -4497,8 +4609,8 @@ module Google
4497
4609
  # @return [Array<String>]
4498
4610
  attr_accessor :expose_headers
4499
4611
 
4500
- # Specifies how long the results of a preflight request can be cached. This
4501
- # translates to the content for the Access-Control-Max-Age header.
4612
+ # Specifies how long results of a preflight request can be cached in seconds.
4613
+ # This translates to the Access-Control-Max-Age header.
4502
4614
  # Corresponds to the JSON property `maxAge`
4503
4615
  # @return [Fixnum]
4504
4616
  attr_accessor :max_age
@@ -4530,7 +4642,7 @@ module Google
4530
4642
  attr_accessor :kms_key_name
4531
4643
 
4532
4644
  # The service account being used for the encryption request for the given KMS
4533
- # key. If absent, default GCE compute robot account will be used
4645
+ # key. If absent, the Compute Engine default service account is used.
4534
4646
  # Corresponds to the JSON property `kmsKeyServiceAccount`
4535
4647
  # @return [String]
4536
4648
  attr_accessor :kms_key_service_account
@@ -4656,15 +4768,17 @@ module Google
4656
4768
  end
4657
4769
 
4658
4770
  # Represents a Persistent Disk resource.
4771
+ # Google Compute Engine has two Disk resources:
4772
+ # * [Global](/compute/docs/reference/rest/latest/disks) * [Regional](/compute/
4773
+ # docs/reference/rest/latest/regionDisks)
4659
4774
  # Persistent disks are required for running your VM instances. Create both boot
4660
4775
  # and non-boot (data) persistent disks. For more information, read Persistent
4661
4776
  # Disks. For more storage options, read Storage options.
4662
4777
  # The disks resource represents a zonal persistent disk. For more information,
4663
4778
  # read Zonal persistent disks.
4664
4779
  # The regionDisks resource represents a regional persistent disk. For more
4665
- # information, read Regional resources. (== resource_for beta.disks ==) (==
4666
- # resource_for v1.disks ==) (== resource_for v1.regionDisks ==) (== resource_for
4667
- # beta.regionDisks ==)
4780
+ # information, read Regional resources. (== resource_for `$api_version`.disks ==
4781
+ # ) (== resource_for `$api_version`.regionDisks ==)
4668
4782
  class Disk
4669
4783
  include Google::Apis::Core::Hashable
4670
4784
 
@@ -4684,6 +4798,13 @@ module Google
4684
4798
  # @return [Google::Apis::ComputeBeta::CustomerEncryptionKey]
4685
4799
  attr_accessor :disk_encryption_key
4686
4800
 
4801
+ # Specifies whether the disk restored from a source snapshot should erase
4802
+ # Windows specific VSS signature.
4803
+ # Corresponds to the JSON property `eraseWindowsVssSignature`
4804
+ # @return [Boolean]
4805
+ attr_accessor :erase_windows_vss_signature
4806
+ alias_method :erase_windows_vss_signature?, :erase_windows_vss_signature
4807
+
4687
4808
  # A list of features to enable on the guest operating system. Applicable only
4688
4809
  # for bootable images. Read Enabling guest operating system features to see a
4689
4810
  # list of available options.
@@ -4895,6 +5016,7 @@ module Google
4895
5016
  @creation_timestamp = args[:creation_timestamp] if args.key?(:creation_timestamp)
4896
5017
  @description = args[:description] if args.key?(:description)
4897
5018
  @disk_encryption_key = args[:disk_encryption_key] if args.key?(:disk_encryption_key)
5019
+ @erase_windows_vss_signature = args[:erase_windows_vss_signature] if args.key?(:erase_windows_vss_signature)
4898
5020
  @guest_os_features = args[:guest_os_features] if args.key?(:guest_os_features)
4899
5021
  @id = args[:id] if args.key?(:id)
4900
5022
  @kind = args[:kind] if args.key?(:kind)
@@ -5248,14 +5370,16 @@ module Google
5248
5370
  end
5249
5371
 
5250
5372
  # Represents a Disk Type resource.
5373
+ # Google Compute Engine has two Disk Type resources:
5374
+ # * [Global](/compute/docs/reference/rest/latest/diskTypes) * [Regional](/
5375
+ # compute/docs/reference/rest/latest/regionDiskTypes)
5251
5376
  # You can choose from a variety of disk types based on your needs. For more
5252
5377
  # information, read Storage options.
5253
5378
  # The diskTypes resource represents disk types for a zonal persistent disk. For
5254
5379
  # more information, read Zonal persistent disks.
5255
5380
  # The regionDiskTypes resource represents disk types for a regional persistent
5256
- # disk. For more information, read Regional persistent disks. (== resource_for
5257
- # beta.diskTypes ==) (== resource_for v1.diskTypes ==) (== resource_for v1.
5258
- # regionDiskTypes ==) (== resource_for beta.regionDiskTypes ==)
5381
+ # disk. For more information, read Regional persistent disks. (== resource_for `$
5382
+ # api_version`.diskTypes ==) (== resource_for `$api_version`.regionDiskTypes ==)
5259
5383
  class DiskType
5260
5384
  include Google::Apis::Core::Hashable
5261
5385
 
@@ -6116,7 +6240,7 @@ module Google
6116
6240
  end
6117
6241
 
6118
6242
  # External VPN gateway is the on-premises VPN gateway(s) or another cloud
6119
- # provider?s VPN gateway that connects to your Google Cloud VPN gateway. To
6243
+ # provider's VPN gateway that connects to your Google Cloud VPN gateway. To
6120
6244
  # create a highly available VPN from Google Cloud to your on-premises side or
6121
6245
  # another Cloud provider's VPN gateway, you must create a external VPN gateway
6122
6246
  # resource in GCP, which provides the information to GCP about your external VPN
@@ -6225,7 +6349,7 @@ module Google
6225
6349
 
6226
6350
  # IP address of the interface in the external VPN gateway. Only IPv4 is
6227
6351
  # supported. This IP address can be either from your on-premise gateway or
6228
- # another Cloud provider?s VPN gateway, it cannot be an IP address from Google
6352
+ # another Cloud provider's VPN gateway, it cannot be an IP address from Google
6229
6353
  # Compute Engine.
6230
6354
  # Corresponds to the JSON property `ipAddress`
6231
6355
  # @return [String]
@@ -6760,6 +6884,13 @@ module Google
6760
6884
  attr_accessor :enable
6761
6885
  alias_method :enable?, :enable
6762
6886
 
6887
+ # This field can only be specified for a particular firewall rule if logging is
6888
+ # enabled for that rule. This field denotes whether to include or exclude
6889
+ # metadata for firewall logs.
6890
+ # Corresponds to the JSON property `metadata`
6891
+ # @return [String]
6892
+ attr_accessor :metadata
6893
+
6763
6894
  def initialize(**args)
6764
6895
  update!(**args)
6765
6896
  end
@@ -6767,6 +6898,7 @@ module Google
6767
6898
  # Update properties of this object
6768
6899
  def update!(**args)
6769
6900
  @enable = args[:enable] if args.key?(:enable)
6901
+ @metadata = args[:metadata] if args.key?(:metadata)
6770
6902
  end
6771
6903
  end
6772
6904
 
@@ -6811,16 +6943,18 @@ module Google
6811
6943
  end
6812
6944
 
6813
6945
  # Represents a Forwarding Rule resource.
6946
+ # Forwarding rule resources in GCP can be either regional or global in scope:
6947
+ # * [Global](/compute/docs/reference/rest/latest/globalForwardingRules) * [
6948
+ # Regional](/compute/docs/reference/rest/latest/forwardingRules)
6814
6949
  # A forwarding rule and its corresponding IP address represent the frontend
6815
6950
  # configuration of a Google Cloud Platform load balancer. Forwarding rules can
6816
6951
  # also reference target instances and Cloud VPN Classic gateways (
6817
6952
  # targetVpnGateway).
6818
6953
  # For more information, read Forwarding rule concepts and Using protocol
6819
6954
  # forwarding.
6820
- # (== resource_for beta.forwardingRules ==) (== resource_for v1.forwardingRules =
6821
- # =) (== resource_for beta.globalForwardingRules ==) (== resource_for v1.
6822
- # globalForwardingRules ==) (== resource_for beta.regionForwardingRules ==) (==
6823
- # resource_for v1.regionForwardingRules ==)
6955
+ # (== resource_for `$api_version`.forwardingRules ==) (== resource_for `$
6956
+ # api_version`.globalForwardingRules ==) (== resource_for `$api_version`.
6957
+ # regionForwardingRules ==)
6824
6958
  class ForwardingRule
6825
6959
  include Google::Apis::Core::Hashable
6826
6960
 
@@ -6842,8 +6976,8 @@ module Google
6842
6976
  # @return [String]
6843
6977
  attr_accessor :ip_address
6844
6978
 
6845
- # The IP protocol to which this rule applies. Valid options are TCP, UDP, ESP,
6846
- # AH, SCTP or ICMP.
6979
+ # The IP protocol to which this rule applies. For protocol forwarding, valid
6980
+ # options are TCP, UDP, ESP, AH, SCTP or ICMP.
6847
6981
  # For Internal TCP/UDP Load Balancing, the load balancing scheme is INTERNAL,
6848
6982
  # and one of TCP or UDP are valid. For Traffic Director, the load balancing
6849
6983
  # scheme is INTERNAL_SELF_MANAGED, and only TCPis valid. For Internal HTTP(S)
@@ -6955,28 +7089,37 @@ module Google
6955
7089
  # @return [Hash<String,String>]
6956
7090
  attr_accessor :labels
6957
7091
 
6958
- # Specifies the forwarding rule type. EXTERNAL is used for: - Classic Cloud VPN
6959
- # gateways - Protocol forwarding to VMs from an external IP address - The
6960
- # following load balancers: HTTP(S), SSL Proxy, TCP Proxy, and Network TCP/UDP.
6961
- # INTERNAL is used for: - Protocol forwarding to VMs from an internal IP address
7092
+ # Specifies the forwarding rule type.
7093
+ #
7094
+ # - EXTERNAL is used for:
7095
+ # - Classic Cloud VPN gateways
7096
+ # - Protocol forwarding to VMs from an external IP address
7097
+ # - The following load balancers: HTTP(S), SSL Proxy, TCP Proxy, and Network TCP/
7098
+ # UDP
7099
+ # - INTERNAL is used for:
7100
+ # - Protocol forwarding to VMs from an internal IP address
6962
7101
  # - Internal TCP/UDP load balancers
6963
- # INTERNAL_MANAGED is used for: - Internal HTTP(S) load balancers
6964
- # INTERNAL_SELF_MANAGED is used for: - Traffic Director
7102
+ # - INTERNAL_MANAGED is used for:
7103
+ # - Internal HTTP(S) load balancers
7104
+ # - >INTERNAL_SELF_MANAGED is used for:
7105
+ # - Traffic Director
6965
7106
  # For more information about forwarding rules, refer to Forwarding rule concepts.
6966
7107
  # Corresponds to the JSON property `loadBalancingScheme`
6967
7108
  # @return [String]
6968
7109
  attr_accessor :load_balancing_scheme
6969
7110
 
6970
7111
  # Opaque filter criteria used by Loadbalancer to restrict routing configuration
6971
- # to a limited set xDS compliant clients. In their xDS requests to Loadbalancer,
6972
- # xDS clients present node metadata. If a match takes place, the relevant
6973
- # routing configuration is made available to those proxies.
7112
+ # to a limited set of xDS compliant clients. In their xDS requests to
7113
+ # Loadbalancer, xDS clients present node metadata. If a match takes place, the
7114
+ # relevant configuration is made available to those proxies. Otherwise, all the
7115
+ # resources (e.g. TargetHttpProxy, UrlMap) referenced by the ForwardingRule will
7116
+ # not be visible to those proxies.
6974
7117
  # For each metadataFilter in this list, if its filterMatchCriteria is set to
6975
7118
  # MATCH_ANY, at least one of the filterLabels must match the corresponding label
6976
7119
  # provided in the metadata. If its filterMatchCriteria is set to MATCH_ALL, then
6977
- # all of its filterLabels must match with corresponding labels in the provided
7120
+ # all of its filterLabels must match with corresponding labels provided in the
6978
7121
  # metadata.
6979
- # metadataFilters specified here can be overridden by those specified in the
7122
+ # metadataFilters specified here will be applifed before those specified in the
6980
7123
  # UrlMap that this ForwardingRule references.
6981
7124
  # metadataFilters only applies to Loadbalancers that have their
6982
7125
  # loadBalancingScheme set to INTERNAL_SELF_MANAGED.
@@ -7012,23 +7155,16 @@ module Google
7012
7155
  # @return [String]
7013
7156
  attr_accessor :network_tier
7014
7157
 
7015
- # This field is deprecated. See the port
7016
- # field.
7017
- # Corresponds to the JSON property `portRange`
7018
- # @return [String]
7019
- attr_accessor :port_range
7020
-
7021
- # List of comma-separated ports. The forwarding rule forwards packets with
7022
- # matching destination ports. If the forwarding rule's loadBalancingScheme is
7023
- # EXTERNAL, and the forwarding rule references a target pool, specifying ports
7024
- # is optional. You can specify an unlimited number of ports, but they must be
7025
- # contiguous. If you omit ports, GCP forwards traffic on any port of the
7026
- # forwarding rule's protocol.
7027
- # If the forwarding rule's loadBalancingScheme is EXTERNAL, and the forwarding
7028
- # rule references a target HTTP proxy, target HTTPS proxy, target TCP proxy,
7029
- # target SSL proxy, or target VPN gateway, you must specify ports using the
7030
- # following constraints:
7031
- #
7158
+ # When the load balancing scheme is EXTERNAL, INTERNAL_SELF_MANAGED and
7159
+ # INTERNAL_MANAGED, you can specify a port_range. Use with a forwarding rule
7160
+ # that points to a target proxy or a target pool. Do not use with a forwarding
7161
+ # rule that points to a backend service. This field is used along with the
7162
+ # target field for TargetHttpProxy, TargetHttpsProxy, TargetSslProxy,
7163
+ # TargetTcpProxy, TargetVpnGateway, TargetPool, TargetInstance.
7164
+ # Applicable only when IPProtocol is TCP, UDP, or SCTP, only packets addressed
7165
+ # to ports in the specified range will be forwarded to target. Forwarding rules
7166
+ # with the same [IPAddress, IPProtocol] pair must have disjoint port ranges.
7167
+ # Some types of forwarding target have constraints on the acceptable ports:
7032
7168
  # - TargetHttpProxy: 80, 8080
7033
7169
  # - TargetHttpsProxy: 443
7034
7170
  # - TargetTcpProxy: 25, 43, 110, 143, 195, 443, 465, 587, 700, 993, 995, 1688,
@@ -7036,16 +7172,20 @@ module Google
7036
7172
  # - TargetSslProxy: 25, 43, 110, 143, 195, 443, 465, 587, 700, 993, 995, 1688,
7037
7173
  # 1883, 5222
7038
7174
  # - TargetVpnGateway: 500, 4500
7039
- # If the forwarding rule's loadBalancingScheme is INTERNAL, you must specify
7175
+ # Corresponds to the JSON property `portRange`
7176
+ # @return [String]
7177
+ attr_accessor :port_range
7178
+
7179
+ # This field is used along with the backend_service field for internal load
7180
+ # balancing.
7181
+ # When the load balancing scheme is INTERNAL, a list of ports can be configured,
7182
+ # for example, ['80'], ['8000','9000']. Only packets addressed to these ports
7183
+ # are forwarded to the backends configured with the forwarding rule.
7184
+ # If the forwarding rule's loadBalancingScheme is INTERNAL, you can specify
7040
7185
  # ports in one of the following ways:
7041
7186
  # * A list of up to five ports, which can be non-contiguous * Keyword ALL, which
7042
7187
  # causes the forwarding rule to forward traffic on any port of the forwarding
7043
7188
  # rule's protocol.
7044
- # The ports field is used along with the target field for TargetHttpProxy,
7045
- # TargetHttpsProxy, TargetSslProxy, TargetTcpProxy, TargetVpnGateway, TargetPool,
7046
- # TargetInstance.
7047
- # Applicable only when IPProtocol is TCP, UDP, or SCTP. Forwarding rules with
7048
- # the same [IPAddress, IPProtocol] pair must have disjoint port ranges.
7049
7189
  # Corresponds to the JSON property `ports`
7050
7190
  # @return [Array<String>]
7051
7191
  attr_accessor :ports
@@ -7096,8 +7236,8 @@ module Google
7096
7236
  # forwarding rules, this target must live in the same region as the forwarding
7097
7237
  # rule. For global forwarding rules, this target must be a global load balancing
7098
7238
  # resource. The forwarded traffic must be of a type appropriate to the target
7099
- # object. For INTERNAL_SELF_MANAGED load balancing, only HTTP and HTTPS targets
7100
- # are valid.
7239
+ # object. For INTERNAL_SELF_MANAGED load balancing, only targetHttpProxy is
7240
+ # valid, not targetHttpsProxy.
7101
7241
  # Corresponds to the JSON property `target`
7102
7242
  # @return [String]
7103
7243
  attr_accessor :target
@@ -7483,6 +7623,44 @@ module Google
7483
7623
  end
7484
7624
  end
7485
7625
 
7626
+ #
7627
+ class GlobalNetworkEndpointGroupsAttachEndpointsRequest
7628
+ include Google::Apis::Core::Hashable
7629
+
7630
+ # The list of network endpoints to be attached.
7631
+ # Corresponds to the JSON property `networkEndpoints`
7632
+ # @return [Array<Google::Apis::ComputeBeta::NetworkEndpoint>]
7633
+ attr_accessor :network_endpoints
7634
+
7635
+ def initialize(**args)
7636
+ update!(**args)
7637
+ end
7638
+
7639
+ # Update properties of this object
7640
+ def update!(**args)
7641
+ @network_endpoints = args[:network_endpoints] if args.key?(:network_endpoints)
7642
+ end
7643
+ end
7644
+
7645
+ #
7646
+ class GlobalNetworkEndpointGroupsDetachEndpointsRequest
7647
+ include Google::Apis::Core::Hashable
7648
+
7649
+ # The list of network endpoints to be detached.
7650
+ # Corresponds to the JSON property `networkEndpoints`
7651
+ # @return [Array<Google::Apis::ComputeBeta::NetworkEndpoint>]
7652
+ attr_accessor :network_endpoints
7653
+
7654
+ def initialize(**args)
7655
+ update!(**args)
7656
+ end
7657
+
7658
+ # Update properties of this object
7659
+ def update!(**args)
7660
+ @network_endpoints = args[:network_endpoints] if args.key?(:network_endpoints)
7661
+ end
7662
+ end
7663
+
7486
7664
  #
7487
7665
  class GlobalSetLabelsRequest
7488
7666
  include Google::Apis::Core::Hashable
@@ -7537,32 +7715,34 @@ module Google
7537
7715
  # @return [String]
7538
7716
  attr_accessor :etag
7539
7717
 
7540
- # Defines an Identity and Access Management (IAM) policy. It is used to specify
7541
- # access control policies for Cloud Platform resources.
7718
+ # An Identity and Access Management (IAM) policy, which specifies access
7719
+ # controls for Google Cloud resources.
7542
7720
  # A `Policy` is a collection of `bindings`. A `binding` binds one or more `
7543
7721
  # members` to a single `role`. Members can be user accounts, service accounts,
7544
7722
  # Google groups, and domains (such as G Suite). A `role` is a named list of
7545
- # permissions (defined by IAM or configured by users). A `binding` can
7546
- # optionally specify a `condition`, which is a logic expression that further
7547
- # constrains the role binding based on attributes about the request and/or
7548
- # target resource.
7549
- # **JSON Example**
7723
+ # permissions; each `role` can be an IAM predefined role or a user-created
7724
+ # custom role.
7725
+ # Optionally, a `binding` can specify a `condition`, which is a logical
7726
+ # expression that allows access to a resource only if the expression evaluates
7727
+ # to `true`. A condition can add constraints based on attributes of the request,
7728
+ # the resource, or both.
7729
+ # **JSON example:**
7550
7730
  # ` "bindings": [ ` "role": "roles/resourcemanager.organizationAdmin", "members":
7551
7731
  # [ "user:mike@example.com", "group:admins@example.com", "domain:google.com", "
7552
7732
  # serviceAccount:my-project-id@appspot.gserviceaccount.com" ] `, ` "role": "
7553
7733
  # roles/resourcemanager.organizationViewer", "members": ["user:eve@example.com"],
7554
7734
  # "condition": ` "title": "expirable access", "description": "Does not grant
7555
7735
  # access after Sep 2020", "expression": "request.time < timestamp('2020-10-01T00:
7556
- # 00:00.000Z')", ` ` ] `
7557
- # **YAML Example**
7736
+ # 00:00.000Z')", ` ` ], "etag": "BwWWja0YfJA=", "version": 3 `
7737
+ # **YAML example:**
7558
7738
  # bindings: - members: - user:mike@example.com - group:admins@example.com -
7559
7739
  # domain:google.com - serviceAccount:my-project-id@appspot.gserviceaccount.com
7560
7740
  # role: roles/resourcemanager.organizationAdmin - members: - user:eve@example.
7561
7741
  # com role: roles/resourcemanager.organizationViewer condition: title: expirable
7562
7742
  # access description: Does not grant access after Sep 2020 expression: request.
7563
- # time < timestamp('2020-10-01T00:00:00.000Z')
7564
- # For a description of IAM and its features, see the [IAM developer's guide](
7565
- # https://cloud.google.com/iam/docs).
7743
+ # time < timestamp('2020-10-01T00:00:00.000Z') - etag: BwWWja0YfJA= - version: 3
7744
+ # For a description of IAM and its features, see the [IAM documentation](https://
7745
+ # cloud.google.com/iam/docs/).
7566
7746
  # Corresponds to the JSON property `policy`
7567
7747
  # @return [Google::Apis::ComputeBeta::Policy]
7568
7748
  attr_accessor :policy
@@ -7579,6 +7759,66 @@ module Google
7579
7759
  end
7580
7760
  end
7581
7761
 
7762
+ # A Duration represents a signed, fixed-length span of time represented as a
7763
+ # count of seconds and fractions of seconds at nanosecond resolution. It is
7764
+ # independent of any calendar and concepts like "day" or "month". It is related
7765
+ # to Timestamp in that the difference between two Timestamp values is a Duration
7766
+ # and it can be added or subtracted from a Timestamp. Range is approximately +-
7767
+ # 10,000 years.
7768
+ # # Examples
7769
+ # Example 1: Compute Duration from two Timestamps in pseudo code.
7770
+ # Timestamp start = ...; Timestamp end = ...; Duration duration = ...;
7771
+ # duration.seconds = end.seconds - start.seconds; duration.nanos = end.nanos -
7772
+ # start.nanos;
7773
+ # if (duration.seconds 0) ` duration.seconds += 1; duration.nanos -= 1000000000;
7774
+ # ` else if (duration.seconds > 0 && duration.nanos < 0) ` duration.seconds -=
7775
+ # 1; duration.nanos += 1000000000; `
7776
+ # Example 2: Compute Timestamp from Timestamp + Duration in pseudo code.
7777
+ # Timestamp start = ...; Duration duration = ...; Timestamp end = ...;
7778
+ # end.seconds = start.seconds + duration.seconds; end.nanos = start.nanos +
7779
+ # duration.nanos;
7780
+ # if (end.nanos = 1000000000) ` end.seconds += 1; end.nanos -= 1000000000; `
7781
+ # Example 3: Compute Duration from datetime.timedelta in Python.
7782
+ # td = datetime.timedelta(days=3, minutes=10) duration = Duration() duration.
7783
+ # FromTimedelta(td)
7784
+ # # JSON Mapping
7785
+ # In JSON format, the Duration type is encoded as a string rather than an object,
7786
+ # where the string ends in the suffix "s" (indicating seconds) and is preceded
7787
+ # by the number of seconds, with nanoseconds expressed as fractional seconds.
7788
+ # For example, 3 seconds with 0 nanoseconds should be encoded in JSON format as "
7789
+ # 3s", while 3 seconds and 1 nanosecond should be expressed in JSON format as "3.
7790
+ # 000000001s", and 3 seconds and 1 microsecond should be expressed in JSON
7791
+ # format as "3.000001s".
7792
+ class GoogleDuration
7793
+ include Google::Apis::Core::Hashable
7794
+
7795
+ # Signed fractions of a second at nanosecond resolution of the span of time.
7796
+ # Durations less than one second are represented with a 0 `seconds` field and a
7797
+ # positive or negative `nanos` field. For durations of one second or more, a non-
7798
+ # zero value for the `nanos` field must be of the same sign as the `seconds`
7799
+ # field. Must be from -999,999,999 to +999,999,999 inclusive.
7800
+ # Corresponds to the JSON property `nanos`
7801
+ # @return [Fixnum]
7802
+ attr_accessor :nanos
7803
+
7804
+ # Signed seconds of the span of time. Must be from -315,576,000,000 to +315,576,
7805
+ # 000,000 inclusive. Note: these bounds are computed from: 60 sec/min * 60 min/
7806
+ # hr * 24 hr/day * 365.25 days/year * 10000 years
7807
+ # Corresponds to the JSON property `seconds`
7808
+ # @return [Fixnum]
7809
+ attr_accessor :seconds
7810
+
7811
+ def initialize(**args)
7812
+ update!(**args)
7813
+ end
7814
+
7815
+ # Update properties of this object
7816
+ def update!(**args)
7817
+ @nanos = args[:nanos] if args.key?(:nanos)
7818
+ @seconds = args[:seconds] if args.key?(:seconds)
7819
+ end
7820
+ end
7821
+
7582
7822
  # A guest attributes entry.
7583
7823
  class GuestAttributes
7584
7824
  include Google::Apis::Core::Hashable
@@ -7590,7 +7830,7 @@ module Google
7590
7830
  attr_accessor :kind
7591
7831
 
7592
7832
  # The path to be queried. This can be the default namespace ('/') or a nested
7593
- # namespace ('//') or a specified key ('//')
7833
+ # namespace ('/\/') or a specified key ('/\/\')
7594
7834
  # Corresponds to the JSON property `queryPath`
7595
7835
  # @return [String]
7596
7836
  attr_accessor :query_path
@@ -7725,20 +7965,13 @@ module Google
7725
7965
 
7726
7966
  # Specifies how port is selected for health checking, can be one of following
7727
7967
  # values:
7728
- # USE_FIXED_PORT: The port number in
7729
- # port
7730
- # is used for health checking.
7731
- # USE_NAMED_PORT: The
7732
- # portName
7733
- # is used for health checking.
7968
+ # USE_FIXED_PORT: The port number in port is used for health checking.
7969
+ # USE_NAMED_PORT: The portName is used for health checking.
7734
7970
  # USE_SERVING_PORT: For NetworkEndpointGroup, the port specified for each
7735
7971
  # network endpoint is used for health checking. For other backends, the port or
7736
7972
  # named port specified in the Backend Service is used for health checking.
7737
- # If not specified, HTTP2 health check follows behavior specified in
7738
- # port
7739
- # and
7740
- # portName
7741
- # fields.
7973
+ # If not specified, HTTP2 health check follows behavior specified in port and
7974
+ # portName fields.
7742
7975
  # Corresponds to the JSON property `portSpecification`
7743
7976
  # @return [String]
7744
7977
  attr_accessor :port_specification
@@ -7802,20 +8035,13 @@ module Google
7802
8035
 
7803
8036
  # Specifies how port is selected for health checking, can be one of following
7804
8037
  # values:
7805
- # USE_FIXED_PORT: The port number in
7806
- # port
7807
- # is used for health checking.
7808
- # USE_NAMED_PORT: The
7809
- # portName
7810
- # is used for health checking.
8038
+ # USE_FIXED_PORT: The port number in port is used for health checking.
8039
+ # USE_NAMED_PORT: The portName is used for health checking.
7811
8040
  # USE_SERVING_PORT: For NetworkEndpointGroup, the port specified for each
7812
8041
  # network endpoint is used for health checking. For other backends, the port or
7813
8042
  # named port specified in the Backend Service is used for health checking.
7814
- # If not specified, HTTP health check follows behavior specified in
7815
- # port
7816
- # and
7817
- # portName
7818
- # fields.
8043
+ # If not specified, HTTP health check follows behavior specified in port and
8044
+ # portName fields.
7819
8045
  # Corresponds to the JSON property `portSpecification`
7820
8046
  # @return [String]
7821
8047
  attr_accessor :port_specification
@@ -7879,20 +8105,13 @@ module Google
7879
8105
 
7880
8106
  # Specifies how port is selected for health checking, can be one of following
7881
8107
  # values:
7882
- # USE_FIXED_PORT: The port number in
7883
- # port
7884
- # is used for health checking.
7885
- # USE_NAMED_PORT: The
7886
- # portName
7887
- # is used for health checking.
8108
+ # USE_FIXED_PORT: The port number in port is used for health checking.
8109
+ # USE_NAMED_PORT: The portName is used for health checking.
7888
8110
  # USE_SERVING_PORT: For NetworkEndpointGroup, the port specified for each
7889
8111
  # network endpoint is used for health checking. For other backends, the port or
7890
8112
  # named port specified in the Backend Service is used for health checking.
7891
- # If not specified, HTTPS health check follows behavior specified in
7892
- # port
7893
- # and
7894
- # portName
7895
- # fields.
8113
+ # If not specified, HTTPS health check follows behavior specified in port and
8114
+ # portName fields.
7896
8115
  # Corresponds to the JSON property `portSpecification`
7897
8116
  # @return [String]
7898
8117
  attr_accessor :port_specification
@@ -7932,8 +8151,12 @@ module Google
7932
8151
  end
7933
8152
 
7934
8153
  # Represents a Health Check resource.
7935
- # Health checks are used for most GCP load balancers and managed instance group
7936
- # auto-healing. For more information, read Health Check Concepts.
8154
+ # Google Compute Engine has two Health Check resources:
8155
+ # * [Global](/compute/docs/reference/rest/latest/healthChecks) * [Regional](/
8156
+ # compute/docs/reference/rest/latest/regionHealthChecks)
8157
+ # Internal HTTP(S) load balancers use regional health checks. All other types of
8158
+ # GCP load balancers and managed instance group auto-healing use global health
8159
+ # checks. For more information, read Health Check Concepts.
7937
8160
  # To perform health checks on network load balancers, you must use either
7938
8161
  # httpHealthChecks or httpsHealthChecks.
7939
8162
  class HealthCheck
@@ -7987,6 +8210,12 @@ module Google
7987
8210
  # @return [String]
7988
8211
  attr_accessor :kind
7989
8212
 
8213
+ # Configuration of logging on a health check. If logging is enabled, logs will
8214
+ # be exported to Stackdriver.
8215
+ # Corresponds to the JSON property `logConfig`
8216
+ # @return [Google::Apis::ComputeBeta::HealthCheckLogConfig]
8217
+ attr_accessor :log_config
8218
+
7990
8219
  # Name of the resource. Provided by the client when the resource is created. The
7991
8220
  # name must be 1-63 characters long, and comply with RFC1035. Specifically, the
7992
8221
  # name must be 1-63 characters long and match the regular expression `[a-z]([-a-
@@ -8053,6 +8282,7 @@ module Google
8053
8282
  @https_health_check = args[:https_health_check] if args.key?(:https_health_check)
8054
8283
  @id = args[:id] if args.key?(:id)
8055
8284
  @kind = args[:kind] if args.key?(:kind)
8285
+ @log_config = args[:log_config] if args.key?(:log_config)
8056
8286
  @name = args[:name] if args.key?(:name)
8057
8287
  @region = args[:region] if args.key?(:region)
8058
8288
  @self_link = args[:self_link] if args.key?(:self_link)
@@ -8181,6 +8411,28 @@ module Google
8181
8411
  end
8182
8412
  end
8183
8413
 
8414
+ # Configuration of logging on a health check. If logging is enabled, logs will
8415
+ # be exported to Stackdriver.
8416
+ class HealthCheckLogConfig
8417
+ include Google::Apis::Core::Hashable
8418
+
8419
+ # Indicates whether or not to export logs. This is false by default, which means
8420
+ # no health check logging will be done.
8421
+ # Corresponds to the JSON property `enable`
8422
+ # @return [Boolean]
8423
+ attr_accessor :enable
8424
+ alias_method :enable?, :enable
8425
+
8426
+ def initialize(**args)
8427
+ update!(**args)
8428
+ end
8429
+
8430
+ # Update properties of this object
8431
+ def update!(**args)
8432
+ @enable = args[:enable] if args.key?(:enable)
8433
+ end
8434
+ end
8435
+
8184
8436
  # A full or valid partial URL to a health check. For example, the following are
8185
8437
  # valid URLs:
8186
8438
  # - https://www.googleapis.com/compute/beta/projects/project-id/global/
@@ -8205,8 +8457,142 @@ module Google
8205
8457
  end
8206
8458
  end
8207
8459
 
8460
+ # A HealthCheckService defines a set of backends on which to perform periodic
8461
+ # health checks and an endpoint to which to send notification of changes in the
8462
+ # health status of the backends.
8463
+ class HealthCheckService
8464
+ include Google::Apis::Core::Hashable
8465
+
8466
+ # [Output Only] Creation timestamp in RFC3339 text format.
8467
+ # Corresponds to the JSON property `creationTimestamp`
8468
+ # @return [String]
8469
+ attr_accessor :creation_timestamp
8470
+
8471
+ # An optional description of this resource. Provide this property when you
8472
+ # create the resource.
8473
+ # Corresponds to the JSON property `description`
8474
+ # @return [String]
8475
+ attr_accessor :description
8476
+
8477
+ # Fingerprint of this resource. A hash of the contents stored in this object.
8478
+ # This field is used in optimistic locking. This field will be ignored when
8479
+ # inserting a HealthCheckService. An up-to-date fingerprint must be provided in
8480
+ # order to patch/update the HealthCheckService; Otherwise, the request will fail
8481
+ # with error 412 conditionNotMet. To see the latest fingerprint, make a get()
8482
+ # request to retrieve the HealthCheckService.
8483
+ # Corresponds to the JSON property `fingerprint`
8484
+ # NOTE: Values are automatically base64 encoded/decoded in the client library.
8485
+ # @return [String]
8486
+ attr_accessor :fingerprint
8487
+
8488
+ # List of URLs to the HealthCheck resources. Must have at least one HealthCheck,
8489
+ # and not more than 10. HealthCheck resources must have portSpecification=
8490
+ # USE_SERVING_PORT. For regional HealthCheckService, the HealthCheck must be
8491
+ # regional and in the same region. For global HealthCheckService, HealthCheck
8492
+ # must be global. Mix of regional and global HealthChecks is not supported.
8493
+ # Multiple regional HealthChecks must belong to the same region. Regional
8494
+ # HealthChecks</code? must belong to the same region as zones of NEGs.
8495
+ # Corresponds to the JSON property `healthChecks`
8496
+ # @return [Array<String>]
8497
+ attr_accessor :health_checks
8498
+
8499
+ # Optional. Policy for how the results from multiple health checks for the same
8500
+ # endpoint are aggregated. Defaults to NO_AGGREGATION if unspecified.
8501
+ # - NO_AGGREGATION. An EndpointHealth message is returned for each backend in
8502
+ # the health check service.
8503
+ # - AND. If any backend's health check reports UNHEALTHY, then UNHEALTHY is the
8504
+ # HealthState of the entire health check service. If all backend's are healthy,
8505
+ # the HealthState of the health check service is HEALTHY. .
8506
+ # Corresponds to the JSON property `healthStatusAggregationPolicy`
8507
+ # @return [String]
8508
+ attr_accessor :health_status_aggregation_policy
8509
+
8510
+ # Policy for how the results from multiple health checks for the same endpoint
8511
+ # are aggregated.
8512
+ # - NO_AGGREGATION. An EndpointHealth message is returned for each backend in
8513
+ # the health check service.
8514
+ # - AND. If any backend's health check reports UNHEALTHY, then UNHEALTHY is the
8515
+ # HealthState of the entire health check service. If all backend's are healthy,
8516
+ # the HealthState of the health check service is HEALTHY. .
8517
+ # Corresponds to the JSON property `healthStatusAggregationStrategy`
8518
+ # @return [Object]
8519
+ attr_accessor :health_status_aggregation_strategy
8520
+
8521
+ # [Output Only] The unique identifier for the resource. This identifier is
8522
+ # defined by the server.
8523
+ # Corresponds to the JSON property `id`
8524
+ # @return [Fixnum]
8525
+ attr_accessor :id
8526
+
8527
+ # [Output only] Type of the resource. Always compute#healthCheckServicefor
8528
+ # health check services.
8529
+ # Corresponds to the JSON property `kind`
8530
+ # @return [String]
8531
+ attr_accessor :kind
8532
+
8533
+ # Name of the resource. The name must be 1-63 characters long, and comply with
8534
+ # RFC1035. Specifically, the name must be 1-63 characters long and match the
8535
+ # regular expression `[a-z]([-a-z0-9]*[a-z0-9])?` which means the first
8536
+ # character must be a lowercase letter, and all following characters must be a
8537
+ # dash, lowercase letter, or digit, except the last character, which cannot be a
8538
+ # dash.
8539
+ # Corresponds to the JSON property `name`
8540
+ # @return [String]
8541
+ attr_accessor :name
8542
+
8543
+ # List of URLs to the NetworkEndpointGroup resources. Must not have more than
8544
+ # 100. For regional HealthCheckService, NEGs must be in zones in the region of
8545
+ # the HealthCheckService.
8546
+ # Corresponds to the JSON property `networkEndpointGroups`
8547
+ # @return [Array<String>]
8548
+ attr_accessor :network_endpoint_groups
8549
+
8550
+ # List of URLs to the NotificationEndpoint resources. Must not have more than 10.
8551
+ # A list of endpoints for receiving notifications of change in health status.
8552
+ # For regional HealthCheckService, NotificationEndpoint must be regional and in
8553
+ # the same region. For global HealthCheckService, NotificationEndpoint must be
8554
+ # global.
8555
+ # Corresponds to the JSON property `notificationEndpoints`
8556
+ # @return [Array<String>]
8557
+ attr_accessor :notification_endpoints
8558
+
8559
+ # [Output Only] URL of the region where the health check service resides. This
8560
+ # field is not applicable to global health check services. You must specify this
8561
+ # field as part of the HTTP request URL. It is not settable as a field in the
8562
+ # request body.
8563
+ # Corresponds to the JSON property `region`
8564
+ # @return [String]
8565
+ attr_accessor :region
8566
+
8567
+ # [Output Only] Server-defined URL for the resource.
8568
+ # Corresponds to the JSON property `selfLink`
8569
+ # @return [String]
8570
+ attr_accessor :self_link
8571
+
8572
+ def initialize(**args)
8573
+ update!(**args)
8574
+ end
8575
+
8576
+ # Update properties of this object
8577
+ def update!(**args)
8578
+ @creation_timestamp = args[:creation_timestamp] if args.key?(:creation_timestamp)
8579
+ @description = args[:description] if args.key?(:description)
8580
+ @fingerprint = args[:fingerprint] if args.key?(:fingerprint)
8581
+ @health_checks = args[:health_checks] if args.key?(:health_checks)
8582
+ @health_status_aggregation_policy = args[:health_status_aggregation_policy] if args.key?(:health_status_aggregation_policy)
8583
+ @health_status_aggregation_strategy = args[:health_status_aggregation_strategy] if args.key?(:health_status_aggregation_strategy)
8584
+ @id = args[:id] if args.key?(:id)
8585
+ @kind = args[:kind] if args.key?(:kind)
8586
+ @name = args[:name] if args.key?(:name)
8587
+ @network_endpoint_groups = args[:network_endpoint_groups] if args.key?(:network_endpoint_groups)
8588
+ @notification_endpoints = args[:notification_endpoints] if args.key?(:notification_endpoints)
8589
+ @region = args[:region] if args.key?(:region)
8590
+ @self_link = args[:self_link] if args.key?(:self_link)
8591
+ end
8592
+ end
8593
+
8208
8594
  #
8209
- class HealthChecksAggregatedList
8595
+ class HealthCheckServicesList
8210
8596
  include Google::Apis::Core::Hashable
8211
8597
 
8212
8598
  # [Output Only] Unique identifier for the resource; defined by the server.
@@ -8214,12 +8600,13 @@ module Google
8214
8600
  # @return [String]
8215
8601
  attr_accessor :id
8216
8602
 
8217
- # A list of HealthChecksScopedList resources.
8603
+ # A list of HealthCheckService resources.
8218
8604
  # Corresponds to the JSON property `items`
8219
- # @return [Hash<String,Google::Apis::ComputeBeta::HealthChecksScopedList>]
8605
+ # @return [Array<Google::Apis::ComputeBeta::HealthCheckService>]
8220
8606
  attr_accessor :items
8221
8607
 
8222
- # Type of resource.
8608
+ # [Output Only] Type of the resource. Always compute#healthCheckServicesList for
8609
+ # lists of HealthCheckServices.
8223
8610
  # Corresponds to the JSON property `kind`
8224
8611
  # @return [String]
8225
8612
  attr_accessor :kind
@@ -8240,7 +8627,7 @@ module Google
8240
8627
 
8241
8628
  # [Output Only] Informational warning message.
8242
8629
  # Corresponds to the JSON property `warning`
8243
- # @return [Google::Apis::ComputeBeta::HealthChecksAggregatedList::Warning]
8630
+ # @return [Google::Apis::ComputeBeta::HealthCheckServicesList::Warning]
8244
8631
  attr_accessor :warning
8245
8632
 
8246
8633
  def initialize(**args)
@@ -8270,7 +8657,7 @@ module Google
8270
8657
  # [Output Only] Metadata about this warning in key: value format. For example:
8271
8658
  # "data": [ ` "key": "scope", "value": "zones/us-east1-d" `
8272
8659
  # Corresponds to the JSON property `data`
8273
- # @return [Array<Google::Apis::ComputeBeta::HealthChecksAggregatedList::Warning::Datum>]
8660
+ # @return [Array<Google::Apis::ComputeBeta::HealthCheckServicesList::Warning::Datum>]
8274
8661
  attr_accessor :data
8275
8662
 
8276
8663
  # [Output Only] A human-readable description of the warning code.
@@ -8323,18 +8710,41 @@ module Google
8323
8710
  end
8324
8711
 
8325
8712
  #
8326
- class HealthChecksScopedList
8713
+ class HealthChecksAggregatedList
8327
8714
  include Google::Apis::Core::Hashable
8328
8715
 
8329
- # A list of HealthChecks contained in this scope.
8330
- # Corresponds to the JSON property `healthChecks`
8331
- # @return [Array<Google::Apis::ComputeBeta::HealthCheck>]
8332
- attr_accessor :health_checks
8716
+ # [Output Only] Unique identifier for the resource; defined by the server.
8717
+ # Corresponds to the JSON property `id`
8718
+ # @return [String]
8719
+ attr_accessor :id
8333
8720
 
8334
- # Informational warning which replaces the list of backend services when the
8335
- # list is empty.
8721
+ # A list of HealthChecksScopedList resources.
8722
+ # Corresponds to the JSON property `items`
8723
+ # @return [Hash<String,Google::Apis::ComputeBeta::HealthChecksScopedList>]
8724
+ attr_accessor :items
8725
+
8726
+ # Type of resource.
8727
+ # Corresponds to the JSON property `kind`
8728
+ # @return [String]
8729
+ attr_accessor :kind
8730
+
8731
+ # [Output Only] This token allows you to get the next page of results for list
8732
+ # requests. If the number of results is larger than maxResults, use the
8733
+ # nextPageToken as a value for the query parameter pageToken in the next list
8734
+ # request. Subsequent list requests will have their own nextPageToken to
8735
+ # continue paging through the results.
8736
+ # Corresponds to the JSON property `nextPageToken`
8737
+ # @return [String]
8738
+ attr_accessor :next_page_token
8739
+
8740
+ # [Output Only] Server-defined URL for this resource.
8741
+ # Corresponds to the JSON property `selfLink`
8742
+ # @return [String]
8743
+ attr_accessor :self_link
8744
+
8745
+ # [Output Only] Informational warning message.
8336
8746
  # Corresponds to the JSON property `warning`
8337
- # @return [Google::Apis::ComputeBeta::HealthChecksScopedList::Warning]
8747
+ # @return [Google::Apis::ComputeBeta::HealthChecksAggregatedList::Warning]
8338
8748
  attr_accessor :warning
8339
8749
 
8340
8750
  def initialize(**args)
@@ -8343,12 +8753,15 @@ module Google
8343
8753
 
8344
8754
  # Update properties of this object
8345
8755
  def update!(**args)
8346
- @health_checks = args[:health_checks] if args.key?(:health_checks)
8756
+ @id = args[:id] if args.key?(:id)
8757
+ @items = args[:items] if args.key?(:items)
8758
+ @kind = args[:kind] if args.key?(:kind)
8759
+ @next_page_token = args[:next_page_token] if args.key?(:next_page_token)
8760
+ @self_link = args[:self_link] if args.key?(:self_link)
8347
8761
  @warning = args[:warning] if args.key?(:warning)
8348
8762
  end
8349
8763
 
8350
- # Informational warning which replaces the list of backend services when the
8351
- # list is empty.
8764
+ # [Output Only] Informational warning message.
8352
8765
  class Warning
8353
8766
  include Google::Apis::Core::Hashable
8354
8767
 
@@ -8361,7 +8774,98 @@ module Google
8361
8774
  # [Output Only] Metadata about this warning in key: value format. For example:
8362
8775
  # "data": [ ` "key": "scope", "value": "zones/us-east1-d" `
8363
8776
  # Corresponds to the JSON property `data`
8364
- # @return [Array<Google::Apis::ComputeBeta::HealthChecksScopedList::Warning::Datum>]
8777
+ # @return [Array<Google::Apis::ComputeBeta::HealthChecksAggregatedList::Warning::Datum>]
8778
+ attr_accessor :data
8779
+
8780
+ # [Output Only] A human-readable description of the warning code.
8781
+ # Corresponds to the JSON property `message`
8782
+ # @return [String]
8783
+ attr_accessor :message
8784
+
8785
+ def initialize(**args)
8786
+ update!(**args)
8787
+ end
8788
+
8789
+ # Update properties of this object
8790
+ def update!(**args)
8791
+ @code = args[:code] if args.key?(:code)
8792
+ @data = args[:data] if args.key?(:data)
8793
+ @message = args[:message] if args.key?(:message)
8794
+ end
8795
+
8796
+ #
8797
+ class Datum
8798
+ include Google::Apis::Core::Hashable
8799
+
8800
+ # [Output Only] A key that provides more detail on the warning being returned.
8801
+ # For example, for warnings where there are no results in a list request for a
8802
+ # particular zone, this key might be scope and the key value might be the zone
8803
+ # name. Other examples might be a key indicating a deprecated resource and a
8804
+ # suggested replacement, or a warning about invalid network settings (for
8805
+ # example, if an instance attempts to perform IP forwarding but is not enabled
8806
+ # for IP forwarding).
8807
+ # Corresponds to the JSON property `key`
8808
+ # @return [String]
8809
+ attr_accessor :key
8810
+
8811
+ # [Output Only] A warning data value corresponding to the key.
8812
+ # Corresponds to the JSON property `value`
8813
+ # @return [String]
8814
+ attr_accessor :value
8815
+
8816
+ def initialize(**args)
8817
+ update!(**args)
8818
+ end
8819
+
8820
+ # Update properties of this object
8821
+ def update!(**args)
8822
+ @key = args[:key] if args.key?(:key)
8823
+ @value = args[:value] if args.key?(:value)
8824
+ end
8825
+ end
8826
+ end
8827
+ end
8828
+
8829
+ #
8830
+ class HealthChecksScopedList
8831
+ include Google::Apis::Core::Hashable
8832
+
8833
+ # A list of HealthChecks contained in this scope.
8834
+ # Corresponds to the JSON property `healthChecks`
8835
+ # @return [Array<Google::Apis::ComputeBeta::HealthCheck>]
8836
+ attr_accessor :health_checks
8837
+
8838
+ # Informational warning which replaces the list of backend services when the
8839
+ # list is empty.
8840
+ # Corresponds to the JSON property `warning`
8841
+ # @return [Google::Apis::ComputeBeta::HealthChecksScopedList::Warning]
8842
+ attr_accessor :warning
8843
+
8844
+ def initialize(**args)
8845
+ update!(**args)
8846
+ end
8847
+
8848
+ # Update properties of this object
8849
+ def update!(**args)
8850
+ @health_checks = args[:health_checks] if args.key?(:health_checks)
8851
+ @warning = args[:warning] if args.key?(:warning)
8852
+ end
8853
+
8854
+ # Informational warning which replaces the list of backend services when the
8855
+ # list is empty.
8856
+ class Warning
8857
+ include Google::Apis::Core::Hashable
8858
+
8859
+ # [Output Only] A warning code, if applicable. For example, Compute Engine
8860
+ # returns NO_RESULTS_ON_PAGE if there are no results in the response.
8861
+ # Corresponds to the JSON property `code`
8862
+ # @return [String]
8863
+ attr_accessor :code
8864
+
8865
+ # [Output Only] Metadata about this warning in key: value format. For example:
8866
+ # "data": [ ` "key": "scope", "value": "zones/us-east1-d" `
8867
+ # Corresponds to the JSON property `data`
8868
+ # @return [Array<Google::Apis::ComputeBeta::HealthChecksScopedList::Warning::Datum>]
8365
8869
  attr_accessor :data
8366
8870
 
8367
8871
  # [Output Only] A human-readable description of the warning code.
@@ -8417,6 +8921,11 @@ module Google
8417
8921
  class HealthStatus
8418
8922
  include Google::Apis::Core::Hashable
8419
8923
 
8924
+ # Metadata defined as annotations for network endpoint.
8925
+ # Corresponds to the JSON property `annotations`
8926
+ # @return [Hash<String,String>]
8927
+ attr_accessor :annotations
8928
+
8420
8929
  # Health state of the instance.
8421
8930
  # Corresponds to the JSON property `healthState`
8422
8931
  # @return [String]
@@ -8443,6 +8952,7 @@ module Google
8443
8952
 
8444
8953
  # Update properties of this object
8445
8954
  def update!(**args)
8955
+ @annotations = args[:annotations] if args.key?(:annotations)
8446
8956
  @health_state = args[:health_state] if args.key?(:health_state)
8447
8957
  @instance = args[:instance] if args.key?(:instance)
8448
8958
  @ip_address = args[:ip_address] if args.key?(:ip_address)
@@ -8698,7 +9208,7 @@ module Google
8698
9208
  attr_accessor :prefix_match
8699
9209
 
8700
9210
  # A header with the contents of headerName must exist. The match takes place
8701
- # whether or not the request's header has a value or not.
9211
+ # whether or not the request's header has a value.
8702
9212
  # Only one of exactMatch, prefixMatch, suffixMatch, regexMatch, presentMatch or
8703
9213
  # rangeMatch must be set.
8704
9214
  # Corresponds to the JSON property `presentMatch`
@@ -8712,7 +9222,7 @@ module Google
8712
9222
  # @return [Google::Apis::ComputeBeta::Int64RangeMatch]
8713
9223
  attr_accessor :range_match
8714
9224
 
8715
- # The value of the header must match the regualar expression specified in
9225
+ # The value of the header must match the regular expression specified in
8716
9226
  # regexMatch. For regular expression grammar, please see: en.cppreference.com/w/
8717
9227
  # cpp/regex/ecmascript
8718
9228
  # For matching against a port specified in the HTTP request, use a headerMatch
@@ -8720,6 +9230,8 @@ module Google
8720
9230
  # RFC2616 Host header's port specifier.
8721
9231
  # Only one of exactMatch, prefixMatch, suffixMatch, regexMatch, presentMatch or
8722
9232
  # rangeMatch must be set.
9233
+ # Note that regexMatch only applies to Loadbalancers that have their
9234
+ # loadBalancingScheme set to INTERNAL_SELF_MANAGED.
8723
9235
  # Corresponds to the JSON property `regexMatch`
8724
9236
  # @return [String]
8725
9237
  attr_accessor :regex_match
@@ -9014,7 +9526,7 @@ module Google
9014
9526
 
9015
9527
  # The queryParameterMatch matches if the value of the parameter exactly matches
9016
9528
  # the contents of exactMatch.
9017
- # Only one of presentMatch, exactMatch and regexMatch must be set.
9529
+ # Only one of presentMatch, exactMatch or regexMatch must be set.
9018
9530
  # Corresponds to the JSON property `exactMatch`
9019
9531
  # @return [String]
9020
9532
  attr_accessor :exact_match
@@ -9027,7 +9539,7 @@ module Google
9027
9539
 
9028
9540
  # Specifies that the queryParameterMatch matches if the request contains the
9029
9541
  # query parameter, irrespective of whether the parameter has a value or not.
9030
- # Only one of presentMatch, exactMatch and regexMatch must be set.
9542
+ # Only one of presentMatch, exactMatch or regexMatch must be set.
9031
9543
  # Corresponds to the JSON property `presentMatch`
9032
9544
  # @return [Boolean]
9033
9545
  attr_accessor :present_match
@@ -9036,7 +9548,9 @@ module Google
9036
9548
  # The queryParameterMatch matches if the value of the parameter matches the
9037
9549
  # regular expression specified by regexMatch. For the regular expression grammar,
9038
9550
  # please see en.cppreference.com/w/cpp/regex/ecmascript
9039
- # Only one of presentMatch, exactMatch and regexMatch must be set.
9551
+ # Only one of presentMatch, exactMatch or regexMatch must be set.
9552
+ # Note that regexMatch only applies when the loadBalancingScheme is set to
9553
+ # INTERNAL_SELF_MANAGED.
9040
9554
  # Corresponds to the JSON property `regexMatch`
9041
9555
  # @return [String]
9042
9556
  attr_accessor :regex_match
@@ -9078,7 +9592,9 @@ module Google
9078
9592
 
9079
9593
  # The path that will be used in the redirect response instead of the one that
9080
9594
  # was supplied in the request.
9081
- # Only one of pathRedirect or prefixRedirect must be specified.
9595
+ # pathRedirect cannot be supplied together with prefixRedirect. Supply one alone
9596
+ # or neither. If neither is supplied, the path of the original request will be
9597
+ # used for the redirect.
9082
9598
  # The value must be between 1 and 1024 characters.
9083
9599
  # Corresponds to the JSON property `pathRedirect`
9084
9600
  # @return [String]
@@ -9086,6 +9602,10 @@ module Google
9086
9602
 
9087
9603
  # The prefix that replaces the prefixMatch specified in the HttpRouteRuleMatch,
9088
9604
  # retaining the remaining portion of the URL before redirecting the request.
9605
+ # prefixRedirect cannot be supplied together with pathRedirect. Supply one alone
9606
+ # or neither. If neither is supplied, the path of the original request will be
9607
+ # used for the redirect.
9608
+ # The value must be between 1 and 1024 characters.
9089
9609
  # Corresponds to the JSON property `prefixRedirect`
9090
9610
  # @return [String]
9091
9611
  attr_accessor :prefix_redirect
@@ -9305,7 +9825,8 @@ module Google
9305
9825
  # forwarding the request to the selected backend. If routeAction specifies any
9306
9826
  # weightedBackendServices, service must not be set. Conversely if service is set,
9307
9827
  # routeAction cannot contain any weightedBackendServices.
9308
- # Only one of routeAction or urlRedirect must be set.
9828
+ # Only one of urlRedirect, service or routeAction.weightedBackendService must be
9829
+ # set.
9309
9830
  # Corresponds to the JSON property `routeAction`
9310
9831
  # @return [Google::Apis::ComputeBeta::HttpRouteAction]
9311
9832
  attr_accessor :route_action
@@ -9348,10 +9869,10 @@ module Google
9348
9869
  class HttpRouteRuleMatch
9349
9870
  include Google::Apis::Core::Hashable
9350
9871
 
9351
- # For satifying the matchRule condition, the path of the request must exactly
9872
+ # For satisfying the matchRule condition, the path of the request must exactly
9352
9873
  # match the value specified in fullPathMatch after removing any query parameters
9353
9874
  # and anchor that may be part of the original URL.
9354
- # FullPathMatch must be between 1 and 1024 characters.
9875
+ # fullPathMatch must be between 1 and 1024 characters.
9355
9876
  # Only one of prefixMatch, fullPathMatch or regexMatch must be specified.
9356
9877
  # Corresponds to the JSON property `fullPathMatch`
9357
9878
  # @return [String]
@@ -9365,30 +9886,30 @@ module Google
9365
9886
 
9366
9887
  # Specifies that prefixMatch and fullPathMatch matches are case sensitive.
9367
9888
  # The default value is false.
9368
- # caseSensitive must not be used with regexMatch.
9889
+ # ignoreCase must not be used with regexMatch.
9369
9890
  # Corresponds to the JSON property `ignoreCase`
9370
9891
  # @return [Boolean]
9371
9892
  attr_accessor :ignore_case
9372
9893
  alias_method :ignore_case?, :ignore_case
9373
9894
 
9374
9895
  # Opaque filter criteria used by Loadbalancer to restrict routing configuration
9375
- # to a limited set xDS compliant clients. In their xDS requests to Loadbalancer,
9376
- # xDS clients present node metadata. If a match takes place, the relevant
9377
- # routing configuration is made available to those proxies.
9896
+ # to a limited set of xDS compliant clients. In their xDS requests to
9897
+ # Loadbalancer, xDS clients present node metadata. If a match takes place, the
9898
+ # relevant routing configuration is made available to those proxies.
9378
9899
  # For each metadataFilter in this list, if its filterMatchCriteria is set to
9379
9900
  # MATCH_ANY, at least one of the filterLabels must match the corresponding label
9380
9901
  # provided in the metadata. If its filterMatchCriteria is set to MATCH_ALL, then
9381
- # all of its filterLabels must match with corresponding labels in the provided
9902
+ # all of its filterLabels must match with corresponding labels provided in the
9382
9903
  # metadata.
9383
- # metadataFilters specified here can be overrides those specified in
9384
- # ForwardingRule that refers to this UrlMap.
9904
+ # metadataFilters specified here will be applied after those specified in
9905
+ # ForwardingRule that refers to the UrlMap this HttpRouteRuleMatch belongs to.
9385
9906
  # metadataFilters only applies to Loadbalancers that have their
9386
9907
  # loadBalancingScheme set to INTERNAL_SELF_MANAGED.
9387
9908
  # Corresponds to the JSON property `metadataFilters`
9388
9909
  # @return [Array<Google::Apis::ComputeBeta::MetadataFilter>]
9389
9910
  attr_accessor :metadata_filters
9390
9911
 
9391
- # For satifying the matchRule condition, the request's path must begin with the
9912
+ # For satisfying the matchRule condition, the request's path must begin with the
9392
9913
  # specified prefixMatch. prefixMatch must begin with a /.
9393
9914
  # The value must be between 1 and 1024 characters.
9394
9915
  # Only one of prefixMatch, fullPathMatch or regexMatch must be specified.
@@ -9402,11 +9923,13 @@ module Google
9402
9923
  # @return [Array<Google::Apis::ComputeBeta::HttpQueryParameterMatch>]
9403
9924
  attr_accessor :query_parameter_matches
9404
9925
 
9405
- # For satifying the matchRule condition, the path of the request must satisfy
9926
+ # For satisfying the matchRule condition, the path of the request must satisfy
9406
9927
  # the regular expression specified in regexMatch after removing any query
9407
9928
  # parameters and anchor supplied with the original URL. For regular expression
9408
9929
  # grammar please see en.cppreference.com/w/cpp/regex/ecmascript
9409
9930
  # Only one of prefixMatch, fullPathMatch or regexMatch must be specified.
9931
+ # Note that regexMatch only applies to Loadbalancers that have their
9932
+ # loadBalancingScheme set to INTERNAL_SELF_MANAGED.
9410
9933
  # Corresponds to the JSON property `regexMatch`
9411
9934
  # @return [String]
9412
9935
  attr_accessor :regex_match
@@ -9653,8 +10176,7 @@ module Google
9653
10176
 
9654
10177
  # Represents an Image resource.
9655
10178
  # You can use images to create boot disks for your VM instances. For more
9656
- # information, read Images. (== resource_for beta.images ==) (== resource_for v1.
9657
- # images ==)
10179
+ # information, read Images. (== resource_for `$api_version`.images ==)
9658
10180
  class Image
9659
10181
  include Google::Apis::Core::Hashable
9660
10182
 
@@ -10041,8 +10563,8 @@ module Google
10041
10563
 
10042
10564
  # Represents an Instance resource.
10043
10565
  # An instance is a virtual machine that is hosted on Google Cloud Platform. For
10044
- # more information, read Virtual Machine Instances. (== resource_for beta.
10045
- # instances ==) (== resource_for v1.instances ==)
10566
+ # more information, read Virtual Machine Instances. (== resource_for `$
10567
+ # api_version`.instances ==)
10046
10568
  class Instance
10047
10569
  include Google::Apis::Core::Hashable
10048
10570
 
@@ -10087,6 +10609,13 @@ module Google
10087
10609
  # @return [Google::Apis::ComputeBeta::DisplayDevice]
10088
10610
  attr_accessor :display_device
10089
10611
 
10612
+ # Specifies whether the disks restored from source snapshots or source machine
10613
+ # image should erase Windows specific VSS signature.
10614
+ # Corresponds to the JSON property `eraseWindowsVssSignature`
10615
+ # @return [Boolean]
10616
+ attr_accessor :erase_windows_vss_signature
10617
+ alias_method :erase_windows_vss_signature?, :erase_windows_vss_signature
10618
+
10090
10619
  # A list of the type and count of accelerator cards attached to the instance.
10091
10620
  # Corresponds to the JSON property `guestAccelerators`
10092
10621
  # @return [Array<Google::Apis::ComputeBeta::AcceleratorConfig>]
@@ -10180,6 +10709,11 @@ module Google
10180
10709
  # @return [Google::Apis::ComputeBeta::ReservationAffinity]
10181
10710
  attr_accessor :reservation_affinity
10182
10711
 
10712
+ # Resource policies applied to this instance.
10713
+ # Corresponds to the JSON property `resourcePolicies`
10714
+ # @return [Array<String>]
10715
+ attr_accessor :resource_policies
10716
+
10183
10717
  # Sets the scheduling options for an Instance. NextID: 9
10184
10718
  # Corresponds to the JSON property `scheduling`
10185
10719
  # @return [Google::Apis::ComputeBeta::Scheduling]
@@ -10221,6 +10755,16 @@ module Google
10221
10755
  # @return [Google::Apis::ComputeBeta::ShieldedVmIntegrityPolicy]
10222
10756
  attr_accessor :shielded_vm_integrity_policy
10223
10757
 
10758
+ # Source machine image
10759
+ # Corresponds to the JSON property `sourceMachineImage`
10760
+ # @return [String]
10761
+ attr_accessor :source_machine_image
10762
+
10763
+ # Represents a customer-supplied encryption key
10764
+ # Corresponds to the JSON property `sourceMachineImageEncryptionKey`
10765
+ # @return [Google::Apis::ComputeBeta::CustomerEncryptionKey]
10766
+ attr_accessor :source_machine_image_encryption_key
10767
+
10224
10768
  # [Output Only] Whether a VM has been restricted for start because Compute
10225
10769
  # Engine has detected suspicious activity.
10226
10770
  # Corresponds to the JSON property `startRestricted`
@@ -10265,6 +10809,7 @@ module Google
10265
10809
  @description = args[:description] if args.key?(:description)
10266
10810
  @disks = args[:disks] if args.key?(:disks)
10267
10811
  @display_device = args[:display_device] if args.key?(:display_device)
10812
+ @erase_windows_vss_signature = args[:erase_windows_vss_signature] if args.key?(:erase_windows_vss_signature)
10268
10813
  @guest_accelerators = args[:guest_accelerators] if args.key?(:guest_accelerators)
10269
10814
  @hostname = args[:hostname] if args.key?(:hostname)
10270
10815
  @id = args[:id] if args.key?(:id)
@@ -10277,6 +10822,7 @@ module Google
10277
10822
  @name = args[:name] if args.key?(:name)
10278
10823
  @network_interfaces = args[:network_interfaces] if args.key?(:network_interfaces)
10279
10824
  @reservation_affinity = args[:reservation_affinity] if args.key?(:reservation_affinity)
10825
+ @resource_policies = args[:resource_policies] if args.key?(:resource_policies)
10280
10826
  @scheduling = args[:scheduling] if args.key?(:scheduling)
10281
10827
  @self_link = args[:self_link] if args.key?(:self_link)
10282
10828
  @service_accounts = args[:service_accounts] if args.key?(:service_accounts)
@@ -10284,6 +10830,8 @@ module Google
10284
10830
  @shielded_instance_integrity_policy = args[:shielded_instance_integrity_policy] if args.key?(:shielded_instance_integrity_policy)
10285
10831
  @shielded_vm_config = args[:shielded_vm_config] if args.key?(:shielded_vm_config)
10286
10832
  @shielded_vm_integrity_policy = args[:shielded_vm_integrity_policy] if args.key?(:shielded_vm_integrity_policy)
10833
+ @source_machine_image = args[:source_machine_image] if args.key?(:source_machine_image)
10834
+ @source_machine_image_encryption_key = args[:source_machine_image_encryption_key] if args.key?(:source_machine_image_encryption_key)
10287
10835
  @start_restricted = args[:start_restricted] if args.key?(:start_restricted)
10288
10836
  @status = args[:status] if args.key?(:status)
10289
10837
  @status_message = args[:status_message] if args.key?(:status_message)
@@ -10410,15 +10958,17 @@ module Google
10410
10958
  end
10411
10959
  end
10412
10960
 
10413
- # Represents an unmanaged Instance Group resource.
10414
- # Use unmanaged instance groups if you need to apply load balancing to groups of
10415
- # heterogeneous instances or if you need to manage the instances yourself. For
10416
- # more information, read Instance groups.
10417
- # For zonal unmanaged Instance Group, use instanceGroups resource.
10418
- # For regional unmanaged Instance Group, use regionInstanceGroups resource. (==
10419
- # resource_for beta.instanceGroups ==) (== resource_for v1.instanceGroups ==) (==
10420
- # resource_for beta.regionInstanceGroups ==) (== resource_for v1.
10421
- # regionInstanceGroups ==)
10961
+ # Represents an Instance Group resource.
10962
+ # Instance Groups can be used to configure a target for load balancing.
10963
+ # Instance groups can either be managed or unmanaged.
10964
+ # To create managed instance groups, use the instanceGroupManager or
10965
+ # regionInstanceGroupManager resource instead.
10966
+ # Use zonal unmanaged instance groups if you need to apply load balancing to
10967
+ # groups of heterogeneous instances or if you need to manage the instances
10968
+ # yourself. You cannot create regional unmanaged instance groups.
10969
+ # For more information, read Instance groups.
10970
+ # (== resource_for `$api_version`.instanceGroups ==) (== resource_for `$
10971
+ # api_version`.regionInstanceGroups ==)
10422
10972
  class InstanceGroup
10423
10973
  include Google::Apis::Core::Hashable
10424
10974
 
@@ -10765,9 +11315,8 @@ module Google
10765
11315
  # single entity. For more information, read Instance groups.
10766
11316
  # For zonal Managed Instance Group, use the instanceGroupManagers resource.
10767
11317
  # For regional Managed Instance Group, use the regionInstanceGroupManagers
10768
- # resource. (== resource_for beta.instanceGroupManagers ==) (== resource_for v1.
10769
- # instanceGroupManagers ==) (== resource_for beta.regionInstanceGroupManagers ==)
10770
- # (== resource_for v1.regionInstanceGroupManagers ==)
11318
+ # resource. (== resource_for `$api_version`.instanceGroupManagers ==) (==
11319
+ # resource_for `$api_version`.regionInstanceGroupManagers ==)
10771
11320
  class InstanceGroupManager
10772
11321
  include Google::Apis::Core::Hashable
10773
11322
 
@@ -10891,6 +11440,11 @@ module Google
10891
11440
  # @return [String]
10892
11441
  attr_accessor :service_account
10893
11442
 
11443
+ # Stateful configuration for this Instanced Group Manager
11444
+ # Corresponds to the JSON property `statefulPolicy`
11445
+ # @return [Google::Apis::ComputeBeta::StatefulPolicy]
11446
+ attr_accessor :stateful_policy
11447
+
10894
11448
  # [Output Only] The status of this managed instance group.
10895
11449
  # Corresponds to the JSON property `status`
10896
11450
  # @return [Google::Apis::ComputeBeta::InstanceGroupManagerStatus]
@@ -10957,6 +11511,7 @@ module Google
10957
11511
  @region = args[:region] if args.key?(:region)
10958
11512
  @self_link = args[:self_link] if args.key?(:self_link)
10959
11513
  @service_account = args[:service_account] if args.key?(:service_account)
11514
+ @stateful_policy = args[:stateful_policy] if args.key?(:stateful_policy)
10960
11515
  @status = args[:status] if args.key?(:status)
10961
11516
  @target_pools = args[:target_pools] if args.key?(:target_pools)
10962
11517
  @target_size = args[:target_size] if args.key?(:target_size)
@@ -11373,6 +11928,12 @@ module Google
11373
11928
  class InstanceGroupManagerStatus
11374
11929
  include Google::Apis::Core::Hashable
11375
11930
 
11931
+ # [Output Only] The URL of the Autoscaler that targets this instance group
11932
+ # manager.
11933
+ # Corresponds to the JSON property `autoscaler`
11934
+ # @return [String]
11935
+ attr_accessor :autoscaler
11936
+
11376
11937
  # [Output Only] A bit indicating whether the managed instance group is in a
11377
11938
  # stable state. A stable state means that: none of the instances in the managed
11378
11939
  # instance group is currently undergoing any type of change (for example,
@@ -11384,6 +11945,11 @@ module Google
11384
11945
  attr_accessor :is_stable
11385
11946
  alias_method :is_stable?, :is_stable
11386
11947
 
11948
+ # [Output Only] Stateful status of the given Instance Group Manager.
11949
+ # Corresponds to the JSON property `stateful`
11950
+ # @return [Google::Apis::ComputeBeta::InstanceGroupManagerStatusStateful]
11951
+ attr_accessor :stateful
11952
+
11387
11953
  # [Output Only] A status of consistency of Instances' versions with their target
11388
11954
  # version specified by version field on Instance Group Manager.
11389
11955
  # Corresponds to the JSON property `versionTarget`
@@ -11396,11 +11962,36 @@ module Google
11396
11962
 
11397
11963
  # Update properties of this object
11398
11964
  def update!(**args)
11965
+ @autoscaler = args[:autoscaler] if args.key?(:autoscaler)
11399
11966
  @is_stable = args[:is_stable] if args.key?(:is_stable)
11967
+ @stateful = args[:stateful] if args.key?(:stateful)
11400
11968
  @version_target = args[:version_target] if args.key?(:version_target)
11401
11969
  end
11402
11970
  end
11403
11971
 
11972
+ #
11973
+ class InstanceGroupManagerStatusStateful
11974
+ include Google::Apis::Core::Hashable
11975
+
11976
+ # [Output Only] A bit indicating whether the managed instance group is stateful,
11977
+ # i.e. has any disks in Stateful Policy or at least one per-instance config.
11978
+ # This is determined based on the user intent, the group may be reported as not
11979
+ # stateful even when there is still some preserved state on managed instances.
11980
+ # Corresponds to the JSON property `isStateful`
11981
+ # @return [Boolean]
11982
+ attr_accessor :is_stateful
11983
+ alias_method :is_stateful?, :is_stateful
11984
+
11985
+ def initialize(**args)
11986
+ update!(**args)
11987
+ end
11988
+
11989
+ # Update properties of this object
11990
+ def update!(**args)
11991
+ @is_stateful = args[:is_stateful] if args.key?(:is_stateful)
11992
+ end
11993
+ end
11994
+
11404
11995
  #
11405
11996
  class InstanceGroupManagerStatusVersionTarget
11406
11997
  include Google::Apis::Core::Hashable
@@ -11463,6 +12054,11 @@ module Google
11463
12054
  # @return [String]
11464
12055
  attr_accessor :minimal_action
11465
12056
 
12057
+ # What action should be used to replace instances. See minimal_action.REPLACE
12058
+ # Corresponds to the JSON property `replacementMethod`
12059
+ # @return [String]
12060
+ attr_accessor :replacement_method
12061
+
11466
12062
  # The type of update process. You can specify either PROACTIVE so that the
11467
12063
  # instance group manager proactively executes actions in order to bring
11468
12064
  # instances to their target versions or OPPORTUNISTIC so that no action is
@@ -11483,6 +12079,7 @@ module Google
11483
12079
  @max_unavailable = args[:max_unavailable] if args.key?(:max_unavailable)
11484
12080
  @min_ready_sec = args[:min_ready_sec] if args.key?(:min_ready_sec)
11485
12081
  @minimal_action = args[:minimal_action] if args.key?(:minimal_action)
12082
+ @replacement_method = args[:replacement_method] if args.key?(:replacement_method)
11486
12083
  @type = args[:type] if args.key?(:type)
11487
12084
  end
11488
12085
  end
@@ -11627,6 +12224,55 @@ module Google
11627
12224
  end
11628
12225
  end
11629
12226
 
12227
+ # InstanceGroupManagers.deletePerInstanceConfigs
12228
+ class InstanceGroupManagersDeletePerInstanceConfigsReq
12229
+ include Google::Apis::Core::Hashable
12230
+
12231
+ # The list of instance names for which we want to delete per-instance configs on
12232
+ # this managed instance group.
12233
+ # Corresponds to the JSON property `names`
12234
+ # @return [Array<String>]
12235
+ attr_accessor :names
12236
+
12237
+ def initialize(**args)
12238
+ update!(**args)
12239
+ end
12240
+
12241
+ # Update properties of this object
12242
+ def update!(**args)
12243
+ @names = args[:names] if args.key?(:names)
12244
+ end
12245
+ end
12246
+
12247
+ #
12248
+ class InstanceGroupManagersListErrorsResponse
12249
+ include Google::Apis::Core::Hashable
12250
+
12251
+ # [Output Only] The list of errors of the managed instance group.
12252
+ # Corresponds to the JSON property `items`
12253
+ # @return [Array<Google::Apis::ComputeBeta::InstanceManagedByIgmError>]
12254
+ attr_accessor :items
12255
+
12256
+ # [Output Only] This token allows you to get the next page of results for list
12257
+ # requests. If the number of results is larger than maxResults, use the
12258
+ # nextPageToken as a value for the query parameter pageToken in the next list
12259
+ # request. Subsequent list requests will have their own nextPageToken to
12260
+ # continue paging through the results.
12261
+ # Corresponds to the JSON property `nextPageToken`
12262
+ # @return [String]
12263
+ attr_accessor :next_page_token
12264
+
12265
+ def initialize(**args)
12266
+ update!(**args)
12267
+ end
12268
+
12269
+ # Update properties of this object
12270
+ def update!(**args)
12271
+ @items = args[:items] if args.key?(:items)
12272
+ @next_page_token = args[:next_page_token] if args.key?(:next_page_token)
12273
+ end
12274
+ end
12275
+
11630
12276
  #
11631
12277
  class InstanceGroupManagersListManagedInstancesResponse
11632
12278
  include Google::Apis::Core::Hashable
@@ -11656,6 +12302,125 @@ module Google
11656
12302
  end
11657
12303
  end
11658
12304
 
12305
+ #
12306
+ class InstanceGroupManagersListPerInstanceConfigsResp
12307
+ include Google::Apis::Core::Hashable
12308
+
12309
+ # [Output Only] The list of PerInstanceConfig.
12310
+ # Corresponds to the JSON property `items`
12311
+ # @return [Array<Google::Apis::ComputeBeta::PerInstanceConfig>]
12312
+ attr_accessor :items
12313
+
12314
+ # [Output Only] This token allows you to get the next page of results for list
12315
+ # requests. If the number of results is larger than maxResults, use the
12316
+ # nextPageToken as a value for the query parameter pageToken in the next list
12317
+ # request. Subsequent list requests will have their own nextPageToken to
12318
+ # continue paging through the results.
12319
+ # Corresponds to the JSON property `nextPageToken`
12320
+ # @return [String]
12321
+ attr_accessor :next_page_token
12322
+
12323
+ # [Output Only] Informational warning message.
12324
+ # Corresponds to the JSON property `warning`
12325
+ # @return [Google::Apis::ComputeBeta::InstanceGroupManagersListPerInstanceConfigsResp::Warning]
12326
+ attr_accessor :warning
12327
+
12328
+ def initialize(**args)
12329
+ update!(**args)
12330
+ end
12331
+
12332
+ # Update properties of this object
12333
+ def update!(**args)
12334
+ @items = args[:items] if args.key?(:items)
12335
+ @next_page_token = args[:next_page_token] if args.key?(:next_page_token)
12336
+ @warning = args[:warning] if args.key?(:warning)
12337
+ end
12338
+
12339
+ # [Output Only] Informational warning message.
12340
+ class Warning
12341
+ include Google::Apis::Core::Hashable
12342
+
12343
+ # [Output Only] A warning code, if applicable. For example, Compute Engine
12344
+ # returns NO_RESULTS_ON_PAGE if there are no results in the response.
12345
+ # Corresponds to the JSON property `code`
12346
+ # @return [String]
12347
+ attr_accessor :code
12348
+
12349
+ # [Output Only] Metadata about this warning in key: value format. For example:
12350
+ # "data": [ ` "key": "scope", "value": "zones/us-east1-d" `
12351
+ # Corresponds to the JSON property `data`
12352
+ # @return [Array<Google::Apis::ComputeBeta::InstanceGroupManagersListPerInstanceConfigsResp::Warning::Datum>]
12353
+ attr_accessor :data
12354
+
12355
+ # [Output Only] A human-readable description of the warning code.
12356
+ # Corresponds to the JSON property `message`
12357
+ # @return [String]
12358
+ attr_accessor :message
12359
+
12360
+ def initialize(**args)
12361
+ update!(**args)
12362
+ end
12363
+
12364
+ # Update properties of this object
12365
+ def update!(**args)
12366
+ @code = args[:code] if args.key?(:code)
12367
+ @data = args[:data] if args.key?(:data)
12368
+ @message = args[:message] if args.key?(:message)
12369
+ end
12370
+
12371
+ #
12372
+ class Datum
12373
+ include Google::Apis::Core::Hashable
12374
+
12375
+ # [Output Only] A key that provides more detail on the warning being returned.
12376
+ # For example, for warnings where there are no results in a list request for a
12377
+ # particular zone, this key might be scope and the key value might be the zone
12378
+ # name. Other examples might be a key indicating a deprecated resource and a
12379
+ # suggested replacement, or a warning about invalid network settings (for
12380
+ # example, if an instance attempts to perform IP forwarding but is not enabled
12381
+ # for IP forwarding).
12382
+ # Corresponds to the JSON property `key`
12383
+ # @return [String]
12384
+ attr_accessor :key
12385
+
12386
+ # [Output Only] A warning data value corresponding to the key.
12387
+ # Corresponds to the JSON property `value`
12388
+ # @return [String]
12389
+ attr_accessor :value
12390
+
12391
+ def initialize(**args)
12392
+ update!(**args)
12393
+ end
12394
+
12395
+ # Update properties of this object
12396
+ def update!(**args)
12397
+ @key = args[:key] if args.key?(:key)
12398
+ @value = args[:value] if args.key?(:value)
12399
+ end
12400
+ end
12401
+ end
12402
+ end
12403
+
12404
+ # InstanceGroupManagers.patchPerInstanceConfigs
12405
+ class InstanceGroupManagersPatchPerInstanceConfigsReq
12406
+ include Google::Apis::Core::Hashable
12407
+
12408
+ # The list of per-instance configs to insert or patch on this managed instance
12409
+ # group.
12410
+ # Corresponds to the JSON property `perInstanceConfigs`
12411
+ # @return [Array<Google::Apis::ComputeBeta::PerInstanceConfig>]
12412
+ attr_accessor :per_instance_configs
12413
+
12414
+ def initialize(**args)
12415
+ update!(**args)
12416
+ end
12417
+
12418
+ # Update properties of this object
12419
+ def update!(**args)
12420
+ @per_instance_configs = args[:per_instance_configs] if args.key?(:per_instance_configs)
12421
+ end
12422
+ end
12423
+
11659
12424
  #
11660
12425
  class InstanceGroupManagersRecreateInstancesRequest
11661
12426
  include Google::Apis::Core::Hashable
@@ -11884,6 +12649,26 @@ module Google
11884
12649
  end
11885
12650
  end
11886
12651
 
12652
+ # InstanceGroupManagers.updatePerInstanceConfigs
12653
+ class InstanceGroupManagersUpdatePerInstanceConfigsReq
12654
+ include Google::Apis::Core::Hashable
12655
+
12656
+ # The list of per-instance configs to insert or patch on this managed instance
12657
+ # group.
12658
+ # Corresponds to the JSON property `perInstanceConfigs`
12659
+ # @return [Array<Google::Apis::ComputeBeta::PerInstanceConfig>]
12660
+ attr_accessor :per_instance_configs
12661
+
12662
+ def initialize(**args)
12663
+ update!(**args)
12664
+ end
12665
+
12666
+ # Update properties of this object
12667
+ def update!(**args)
12668
+ @per_instance_configs = args[:per_instance_configs] if args.key?(:per_instance_configs)
12669
+ end
12670
+ end
12671
+
11887
12672
  #
11888
12673
  class InstanceGroupsAddInstancesRequest
11889
12674
  include Google::Apis::Core::Hashable
@@ -12421,6 +13206,101 @@ module Google
12421
13206
  end
12422
13207
  end
12423
13208
 
13209
+ #
13210
+ class InstanceManagedByIgmError
13211
+ include Google::Apis::Core::Hashable
13212
+
13213
+ # [Output Only] Contents of the error.
13214
+ # Corresponds to the JSON property `error`
13215
+ # @return [Google::Apis::ComputeBeta::InstanceManagedByIgmErrorManagedInstanceError]
13216
+ attr_accessor :error
13217
+
13218
+ # [Output Only] Details of the instance action that triggered this error. May be
13219
+ # null, if the error was not caused by an action on an instance. This field is
13220
+ # optional.
13221
+ # Corresponds to the JSON property `instanceActionDetails`
13222
+ # @return [Google::Apis::ComputeBeta::InstanceManagedByIgmErrorInstanceActionDetails]
13223
+ attr_accessor :instance_action_details
13224
+
13225
+ # [Output Only] The time that this error occurred. This value is in RFC3339 text
13226
+ # format.
13227
+ # Corresponds to the JSON property `timestamp`
13228
+ # @return [String]
13229
+ attr_accessor :timestamp
13230
+
13231
+ def initialize(**args)
13232
+ update!(**args)
13233
+ end
13234
+
13235
+ # Update properties of this object
13236
+ def update!(**args)
13237
+ @error = args[:error] if args.key?(:error)
13238
+ @instance_action_details = args[:instance_action_details] if args.key?(:instance_action_details)
13239
+ @timestamp = args[:timestamp] if args.key?(:timestamp)
13240
+ end
13241
+ end
13242
+
13243
+ #
13244
+ class InstanceManagedByIgmErrorInstanceActionDetails
13245
+ include Google::Apis::Core::Hashable
13246
+
13247
+ # [Output Only] Action that managed instance group was executing on the instance
13248
+ # when the error occurred. Possible values:
13249
+ # Corresponds to the JSON property `action`
13250
+ # @return [String]
13251
+ attr_accessor :action
13252
+
13253
+ # [Output Only] The URL of the instance. The URL can be set even if the instance
13254
+ # has not yet been created.
13255
+ # Corresponds to the JSON property `instance`
13256
+ # @return [String]
13257
+ attr_accessor :instance
13258
+
13259
+ # [Output Only] Version this instance was created from, or was being created
13260
+ # from, but the creation failed. Corresponds to one of the versions that were
13261
+ # set on the Instance Group Manager resource at the time this instance was being
13262
+ # created.
13263
+ # Corresponds to the JSON property `version`
13264
+ # @return [Google::Apis::ComputeBeta::ManagedInstanceVersion]
13265
+ attr_accessor :version
13266
+
13267
+ def initialize(**args)
13268
+ update!(**args)
13269
+ end
13270
+
13271
+ # Update properties of this object
13272
+ def update!(**args)
13273
+ @action = args[:action] if args.key?(:action)
13274
+ @instance = args[:instance] if args.key?(:instance)
13275
+ @version = args[:version] if args.key?(:version)
13276
+ end
13277
+ end
13278
+
13279
+ #
13280
+ class InstanceManagedByIgmErrorManagedInstanceError
13281
+ include Google::Apis::Core::Hashable
13282
+
13283
+ # [Output Only] Error code.
13284
+ # Corresponds to the JSON property `code`
13285
+ # @return [String]
13286
+ attr_accessor :code
13287
+
13288
+ # [Output Only] Error message.
13289
+ # Corresponds to the JSON property `message`
13290
+ # @return [String]
13291
+ attr_accessor :message
13292
+
13293
+ def initialize(**args)
13294
+ update!(**args)
13295
+ end
13296
+
13297
+ # Update properties of this object
13298
+ def update!(**args)
13299
+ @code = args[:code] if args.key?(:code)
13300
+ @message = args[:message] if args.key?(:message)
13301
+ end
13302
+ end
13303
+
12424
13304
  #
12425
13305
  class MoveInstanceRequest
12426
13306
  include Google::Apis::Core::Hashable
@@ -12527,6 +13407,12 @@ module Google
12527
13407
  # @return [Google::Apis::ComputeBeta::ReservationAffinity]
12528
13408
  attr_accessor :reservation_affinity
12529
13409
 
13410
+ # Resource policies (names, not ULRs) applied to instances created from this
13411
+ # templae.
13412
+ # Corresponds to the JSON property `resourcePolicies`
13413
+ # @return [Array<String>]
13414
+ attr_accessor :resource_policies
13415
+
12530
13416
  # Sets the scheduling options for an Instance. NextID: 9
12531
13417
  # Corresponds to the JSON property `scheduling`
12532
13418
  # @return [Google::Apis::ComputeBeta::Scheduling]
@@ -12571,6 +13457,7 @@ module Google
12571
13457
  @min_cpu_platform = args[:min_cpu_platform] if args.key?(:min_cpu_platform)
12572
13458
  @network_interfaces = args[:network_interfaces] if args.key?(:network_interfaces)
12573
13459
  @reservation_affinity = args[:reservation_affinity] if args.key?(:reservation_affinity)
13460
+ @resource_policies = args[:resource_policies] if args.key?(:resource_policies)
12574
13461
  @scheduling = args[:scheduling] if args.key?(:scheduling)
12575
13462
  @service_accounts = args[:service_accounts] if args.key?(:service_accounts)
12576
13463
  @shielded_instance_config = args[:shielded_instance_config] if args.key?(:shielded_instance_config)
@@ -12600,8 +13487,8 @@ module Google
12600
13487
 
12601
13488
  # Represents an Instance Template resource.
12602
13489
  # You can use instance templates to create VM instances and managed instance
12603
- # groups. For more information, read Instance Templates. (== resource_for beta.
12604
- # instanceTemplates ==) (== resource_for v1.instanceTemplates ==)
13490
+ # groups. For more information, read Instance Templates. (== resource_for `$
13491
+ # api_version`.instanceTemplates ==)
12605
13492
  class InstanceTemplate
12606
13493
  include Google::Apis::Core::Hashable
12607
13494
 
@@ -13118,8 +14005,7 @@ module Google
13118
14005
  # Represents an Interconnect resource.
13119
14006
  # An Interconnect resource is a dedicated connection between the GCP network and
13120
14007
  # your on-premises network. For more information, read the Dedicated
13121
- # Interconnect Overview. (== resource_for v1.interconnects ==) (== resource_for
13122
- # beta.interconnects ==)
14008
+ # Interconnect Overview. (== resource_for `$api_version`.interconnects ==)
13123
14009
  class Interconnect
13124
14010
  include Google::Apis::Core::Hashable
13125
14011
 
@@ -13335,8 +14221,8 @@ module Google
13335
14221
  # Represents an Interconnect Attachment (VLAN) resource.
13336
14222
  # You can use Interconnect attachments (VLANS) to connect your Virtual Private
13337
14223
  # Cloud networks to your on-premises networks through an Interconnect. For more
13338
- # information, read Creating VLAN Attachments. (== resource_for beta.
13339
- # interconnectAttachments ==) (== resource_for v1.interconnectAttachments ==)
14224
+ # information, read Creating VLAN Attachments. (== resource_for `$api_version`.
14225
+ # interconnectAttachments ==)
13340
14226
  class InterconnectAttachment
13341
14227
  include Google::Apis::Core::Hashable
13342
14228
 
@@ -13373,7 +14259,7 @@ module Google
13373
14259
  # prefixes must be within link-local address space (169.254.0.0/16) and must be /
13374
14260
  # 29 or shorter (/28, /27, etc). Google will attempt to select an unused /29
13375
14261
  # from the supplied candidate prefix(es). The request will fail if all possible /
13376
- # 29s are in use on Google?s edge. If not supplied, Google will randomly select
14262
+ # 29s are in use on Google's edge. If not supplied, Google will randomly select
13377
14263
  # an unused /29 from all of link-local space.
13378
14264
  # Corresponds to the JSON property `candidateSubnets`
13379
14265
  # @return [Array<String>]
@@ -13844,7 +14730,7 @@ module Google
13844
14730
  include Google::Apis::Core::Hashable
13845
14731
 
13846
14732
  # Plain text name of the Interconnect this attachment is connected to, as
13847
- # displayed in the Partner?s portal. For instance "Chicago 1". This value may be
14733
+ # displayed in the Partner's portal. For instance "Chicago 1". This value may be
13848
14734
  # validated to match approved Partner values.
13849
14735
  # Corresponds to the JSON property `interconnectName`
13850
14736
  # @return [String]
@@ -13856,7 +14742,7 @@ module Google
13856
14742
  # @return [String]
13857
14743
  attr_accessor :partner_name
13858
14744
 
13859
- # URL of the Partner?s portal for this Attachment. Partners may customise this
14745
+ # URL of the Partner's portal for this Attachment. Partners may customise this
13860
14746
  # to be a deep link to the specific resource on the Partner portal. This value
13861
14747
  # may be validated to match approved Partner values.
13862
14748
  # Corresponds to the JSON property `portalUrl`
@@ -14022,7 +14908,7 @@ module Google
14022
14908
  end
14023
14909
 
14024
14910
  # Diagnostics information about interconnect, contains detailed and current
14025
- # technical information about Google?s side of the connection.
14911
+ # technical information about Google's side of the connection.
14026
14912
  class InterconnectDiagnostics
14027
14913
  include Google::Apis::Core::Hashable
14028
14914
 
@@ -14085,12 +14971,12 @@ module Google
14085
14971
  class InterconnectDiagnosticsLinkLacpStatus
14086
14972
  include Google::Apis::Core::Hashable
14087
14973
 
14088
- # System ID of the port on Google?s side of the LACP exchange.
14974
+ # System ID of the port on Google's side of the LACP exchange.
14089
14975
  # Corresponds to the JSON property `googleSystemId`
14090
14976
  # @return [String]
14091
14977
  attr_accessor :google_system_id
14092
14978
 
14093
- # System ID of the port on the neighbor?s side of the LACP exchange.
14979
+ # System ID of the port on the neighbor's side of the LACP exchange.
14094
14980
  # Corresponds to the JSON property `neighborSystemId`
14095
14981
  # @return [String]
14096
14982
  attr_accessor :neighbor_system_id
@@ -14678,7 +15564,7 @@ module Google
14678
15564
  include Google::Apis::Core::Hashable
14679
15565
 
14680
15566
  # Diagnostics information about interconnect, contains detailed and current
14681
- # technical information about Google?s side of the connection.
15567
+ # technical information about Google's side of the connection.
14682
15568
  # Corresponds to the JSON property `result`
14683
15569
  # @return [Google::Apis::ComputeBeta::InterconnectDiagnostics]
14684
15570
  attr_accessor :result
@@ -15174,10 +16060,245 @@ module Google
15174
16060
  end
15175
16061
  end
15176
16062
 
16063
+ # Machine image resource.
16064
+ class MachineImage
16065
+ include Google::Apis::Core::Hashable
16066
+
16067
+ # [Output Only] The creation timestamp for this machine image in RFC3339 text
16068
+ # format.
16069
+ # Corresponds to the JSON property `creationTimestamp`
16070
+ # @return [String]
16071
+ attr_accessor :creation_timestamp
16072
+
16073
+ # An optional description of this resource. Provide this property when you
16074
+ # create the resource.
16075
+ # Corresponds to the JSON property `description`
16076
+ # @return [String]
16077
+ attr_accessor :description
16078
+
16079
+ # [Input Only] Specifies to create an application consistent machine image by
16080
+ # informing the OS to prepare for the snapshot process. Currently only supported
16081
+ # on Windows instances using the Volume Shadow Copy Service (VSS).
16082
+ # Corresponds to the JSON property `guestFlush`
16083
+ # @return [Boolean]
16084
+ attr_accessor :guest_flush
16085
+ alias_method :guest_flush?, :guest_flush
16086
+
16087
+ # [Output Only] A unique identifier for this machine image. The server defines
16088
+ # this identifier.
16089
+ # Corresponds to the JSON property `id`
16090
+ # @return [Fixnum]
16091
+ attr_accessor :id
16092
+
16093
+ # [Output Only] The resource type, which is always compute#machineImage for
16094
+ # machine image.
16095
+ # Corresponds to the JSON property `kind`
16096
+ # @return [String]
16097
+ attr_accessor :kind
16098
+
16099
+ # Represents a customer-supplied encryption key
16100
+ # Corresponds to the JSON property `machineImageEncryptionKey`
16101
+ # @return [Google::Apis::ComputeBeta::CustomerEncryptionKey]
16102
+ attr_accessor :machine_image_encryption_key
16103
+
16104
+ # Name of the resource; provided by the client when the resource is created. The
16105
+ # name must be 1-63 characters long, and comply with RFC1035. Specifically, the
16106
+ # name must be 1-63 characters long and match the regular expression `[a-z]([-a-
16107
+ # z0-9]*[a-z0-9])?` which means the first character must be a lowercase letter,
16108
+ # and all following characters must be a dash, lowercase letter, or digit,
16109
+ # except the last character, which cannot be a dash.
16110
+ # Corresponds to the JSON property `name`
16111
+ # @return [String]
16112
+ attr_accessor :name
16113
+
16114
+ # [Output Only] The URL for this machine image. The server defines this URL.
16115
+ # Corresponds to the JSON property `selfLink`
16116
+ # @return [String]
16117
+ attr_accessor :self_link
16118
+
16119
+ # [Input Only] The customer-supplied encryption key of the disks attached to the
16120
+ # source instance. Required if the source disk is protected by a customer-
16121
+ # supplied encryption key.
16122
+ # Corresponds to the JSON property `sourceDiskEncryptionKeys`
16123
+ # @return [Array<Google::Apis::ComputeBeta::SourceDiskEncryptionKey>]
16124
+ attr_accessor :source_disk_encryption_keys
16125
+
16126
+ # The source instance used to create the machine image. You can provide this as
16127
+ # a partial or full URL to the resource. For example, the following are valid
16128
+ # values:
16129
+ # - https://www.googleapis.com/compute/v1/projects/project/zones/zone/instances/
16130
+ # instance
16131
+ # - projects/project/zones/zone/instances/instance
16132
+ # Corresponds to the JSON property `sourceInstance`
16133
+ # @return [String]
16134
+ attr_accessor :source_instance
16135
+
16136
+ #
16137
+ # Corresponds to the JSON property `sourceInstanceProperties`
16138
+ # @return [Google::Apis::ComputeBeta::SourceInstanceProperties]
16139
+ attr_accessor :source_instance_properties
16140
+
16141
+ # [Output Only] The status of the machine image. One of the following values:
16142
+ # INVALID, CREATING, READY, DELETING, and UPLOADING.
16143
+ # Corresponds to the JSON property `status`
16144
+ # @return [String]
16145
+ attr_accessor :status
16146
+
16147
+ # GCS bucket storage location of the machine image (regional or multi-regional).
16148
+ # Corresponds to the JSON property `storageLocations`
16149
+ # @return [Array<String>]
16150
+ attr_accessor :storage_locations
16151
+
16152
+ # [Output Only] Total size of the storage used by the machine image.
16153
+ # Corresponds to the JSON property `totalStorageBytes`
16154
+ # @return [Fixnum]
16155
+ attr_accessor :total_storage_bytes
16156
+
16157
+ def initialize(**args)
16158
+ update!(**args)
16159
+ end
16160
+
16161
+ # Update properties of this object
16162
+ def update!(**args)
16163
+ @creation_timestamp = args[:creation_timestamp] if args.key?(:creation_timestamp)
16164
+ @description = args[:description] if args.key?(:description)
16165
+ @guest_flush = args[:guest_flush] if args.key?(:guest_flush)
16166
+ @id = args[:id] if args.key?(:id)
16167
+ @kind = args[:kind] if args.key?(:kind)
16168
+ @machine_image_encryption_key = args[:machine_image_encryption_key] if args.key?(:machine_image_encryption_key)
16169
+ @name = args[:name] if args.key?(:name)
16170
+ @self_link = args[:self_link] if args.key?(:self_link)
16171
+ @source_disk_encryption_keys = args[:source_disk_encryption_keys] if args.key?(:source_disk_encryption_keys)
16172
+ @source_instance = args[:source_instance] if args.key?(:source_instance)
16173
+ @source_instance_properties = args[:source_instance_properties] if args.key?(:source_instance_properties)
16174
+ @status = args[:status] if args.key?(:status)
16175
+ @storage_locations = args[:storage_locations] if args.key?(:storage_locations)
16176
+ @total_storage_bytes = args[:total_storage_bytes] if args.key?(:total_storage_bytes)
16177
+ end
16178
+ end
16179
+
16180
+ # A list of machine images.
16181
+ class MachineImageList
16182
+ include Google::Apis::Core::Hashable
16183
+
16184
+ # [Output Only] Unique identifier for the resource; defined by the server.
16185
+ # Corresponds to the JSON property `id`
16186
+ # @return [String]
16187
+ attr_accessor :id
16188
+
16189
+ # A list of MachineImage resources.
16190
+ # Corresponds to the JSON property `items`
16191
+ # @return [Array<Google::Apis::ComputeBeta::MachineImage>]
16192
+ attr_accessor :items
16193
+
16194
+ # [Output Only] The resource type, which is always compute#
16195
+ # machineImagesListResponse for machine image lists.
16196
+ # Corresponds to the JSON property `kind`
16197
+ # @return [String]
16198
+ attr_accessor :kind
16199
+
16200
+ # [Output Only] This token allows you to get the next page of results for list
16201
+ # requests. If the number of results is larger than maxResults, use the
16202
+ # nextPageToken as a value for the query parameter pageToken in the next list
16203
+ # request. Subsequent list requests will have their own nextPageToken to
16204
+ # continue paging through the results.
16205
+ # Corresponds to the JSON property `nextPageToken`
16206
+ # @return [String]
16207
+ attr_accessor :next_page_token
16208
+
16209
+ # [Output Only] Server-defined URL for this resource.
16210
+ # Corresponds to the JSON property `selfLink`
16211
+ # @return [String]
16212
+ attr_accessor :self_link
16213
+
16214
+ # [Output Only] Informational warning message.
16215
+ # Corresponds to the JSON property `warning`
16216
+ # @return [Google::Apis::ComputeBeta::MachineImageList::Warning]
16217
+ attr_accessor :warning
16218
+
16219
+ def initialize(**args)
16220
+ update!(**args)
16221
+ end
16222
+
16223
+ # Update properties of this object
16224
+ def update!(**args)
16225
+ @id = args[:id] if args.key?(:id)
16226
+ @items = args[:items] if args.key?(:items)
16227
+ @kind = args[:kind] if args.key?(:kind)
16228
+ @next_page_token = args[:next_page_token] if args.key?(:next_page_token)
16229
+ @self_link = args[:self_link] if args.key?(:self_link)
16230
+ @warning = args[:warning] if args.key?(:warning)
16231
+ end
16232
+
16233
+ # [Output Only] Informational warning message.
16234
+ class Warning
16235
+ include Google::Apis::Core::Hashable
16236
+
16237
+ # [Output Only] A warning code, if applicable. For example, Compute Engine
16238
+ # returns NO_RESULTS_ON_PAGE if there are no results in the response.
16239
+ # Corresponds to the JSON property `code`
16240
+ # @return [String]
16241
+ attr_accessor :code
16242
+
16243
+ # [Output Only] Metadata about this warning in key: value format. For example:
16244
+ # "data": [ ` "key": "scope", "value": "zones/us-east1-d" `
16245
+ # Corresponds to the JSON property `data`
16246
+ # @return [Array<Google::Apis::ComputeBeta::MachineImageList::Warning::Datum>]
16247
+ attr_accessor :data
16248
+
16249
+ # [Output Only] A human-readable description of the warning code.
16250
+ # Corresponds to the JSON property `message`
16251
+ # @return [String]
16252
+ attr_accessor :message
16253
+
16254
+ def initialize(**args)
16255
+ update!(**args)
16256
+ end
16257
+
16258
+ # Update properties of this object
16259
+ def update!(**args)
16260
+ @code = args[:code] if args.key?(:code)
16261
+ @data = args[:data] if args.key?(:data)
16262
+ @message = args[:message] if args.key?(:message)
16263
+ end
16264
+
16265
+ #
16266
+ class Datum
16267
+ include Google::Apis::Core::Hashable
16268
+
16269
+ # [Output Only] A key that provides more detail on the warning being returned.
16270
+ # For example, for warnings where there are no results in a list request for a
16271
+ # particular zone, this key might be scope and the key value might be the zone
16272
+ # name. Other examples might be a key indicating a deprecated resource and a
16273
+ # suggested replacement, or a warning about invalid network settings (for
16274
+ # example, if an instance attempts to perform IP forwarding but is not enabled
16275
+ # for IP forwarding).
16276
+ # Corresponds to the JSON property `key`
16277
+ # @return [String]
16278
+ attr_accessor :key
16279
+
16280
+ # [Output Only] A warning data value corresponding to the key.
16281
+ # Corresponds to the JSON property `value`
16282
+ # @return [String]
16283
+ attr_accessor :value
16284
+
16285
+ def initialize(**args)
16286
+ update!(**args)
16287
+ end
16288
+
16289
+ # Update properties of this object
16290
+ def update!(**args)
16291
+ @key = args[:key] if args.key?(:key)
16292
+ @value = args[:value] if args.key?(:value)
16293
+ end
16294
+ end
16295
+ end
16296
+ end
16297
+
15177
16298
  # Represents a Machine Type resource.
15178
16299
  # You can use specific machine types for your VM instances based on performance
15179
16300
  # and pricing requirements. For more information, read Machine Types. (==
15180
- # resource_for v1.machineTypes ==) (== resource_for beta.machineTypes ==)
16301
+ # resource_for `$api_version`.machineTypes ==)
15181
16302
  class MachineType
15182
16303
  include Google::Apis::Core::Hashable
15183
16304
 
@@ -15658,6 +16779,16 @@ module Google
15658
16779
  # @return [Google::Apis::ComputeBeta::ManagedInstanceLastAttempt]
15659
16780
  attr_accessor :last_attempt
15660
16781
 
16782
+ # Preserved state for a given instance.
16783
+ # Corresponds to the JSON property `preservedStateFromConfig`
16784
+ # @return [Google::Apis::ComputeBeta::PreservedState]
16785
+ attr_accessor :preserved_state_from_config
16786
+
16787
+ # Preserved state for a given instance.
16788
+ # Corresponds to the JSON property `preservedStateFromPolicy`
16789
+ # @return [Google::Apis::ComputeBeta::PreservedState]
16790
+ attr_accessor :preserved_state_from_policy
16791
+
15661
16792
  # [Output Only] Intended version of this instance.
15662
16793
  # Corresponds to the JSON property `version`
15663
16794
  # @return [Google::Apis::ComputeBeta::ManagedInstanceVersion]
@@ -15675,6 +16806,8 @@ module Google
15675
16806
  @instance_health = args[:instance_health] if args.key?(:instance_health)
15676
16807
  @instance_status = args[:instance_status] if args.key?(:instance_status)
15677
16808
  @last_attempt = args[:last_attempt] if args.key?(:last_attempt)
16809
+ @preserved_state_from_config = args[:preserved_state_from_config] if args.key?(:preserved_state_from_config)
16810
+ @preserved_state_from_policy = args[:preserved_state_from_policy] if args.key?(:preserved_state_from_policy)
15678
16811
  @version = args[:version] if args.key?(:version)
15679
16812
  end
15680
16813
  end
@@ -15876,12 +17009,12 @@ module Google
15876
17009
  # Opaque filter criteria used by loadbalancers to restrict routing configuration
15877
17010
  # to a limited set of loadbalancing proxies. Proxies and sidecars involved in
15878
17011
  # loadbalancing would typically present metadata to the loadbalancers which need
15879
- # to match criteria specified here. If a match takes place, the relevant routing
17012
+ # to match criteria specified here. If a match takes place, the relevant
15880
17013
  # configuration is made available to those proxies.
15881
17014
  # For each metadataFilter in this list, if its filterMatchCriteria is set to
15882
17015
  # MATCH_ANY, at least one of the filterLabels must match the corresponding label
15883
17016
  # provided in the metadata. If its filterMatchCriteria is set to MATCH_ALL, then
15884
- # all of its filterLabels must match with corresponding labels in the provided
17017
+ # all of its filterLabels must match with corresponding labels provided in the
15885
17018
  # metadata.
15886
17019
  # An example for using metadataFilters would be: if loadbalancing involves
15887
17020
  # Envoys, they will only receive routing configuration when values in
@@ -15977,8 +17110,8 @@ module Google
15977
17110
 
15978
17111
  # Represents a VPC Network resource.
15979
17112
  # Networks connect resources to each other and to the internet. For more
15980
- # information, read Virtual Private Cloud (VPC) Network. (== resource_for v1.
15981
- # networks ==) (== resource_for beta.networks ==)
17113
+ # information, read Virtual Private Cloud (VPC) Network. (== resource_for `$
17114
+ # api_version`.networks ==)
15982
17115
  class Network
15983
17116
  include Google::Apis::Core::Hashable
15984
17117
 
@@ -16029,7 +17162,7 @@ module Google
16029
17162
  # Name of the resource. Provided by the client when the resource is created. The
16030
17163
  # name must be 1-63 characters long, and comply with RFC1035. Specifically, the
16031
17164
  # name must be 1-63 characters long and match the regular expression `[a-z]([-a-
16032
- # z0-9]*[a-z0-9])?. The first character must be a lowercase letter, and all
17165
+ # z0-9]*[a-z0-9])?`. The first character must be a lowercase letter, and all
16033
17166
  # following characters (except for the last character) must be a dash, lowercase
16034
17167
  # letter, or digit. The last character must be a lowercase letter or digit.
16035
17168
  # Corresponds to the JSON property `name`
@@ -16080,10 +17213,21 @@ module Google
16080
17213
  end
16081
17214
  end
16082
17215
 
16083
- # The network endpoint.
17216
+ # The network endpoint. Next ID: 7
16084
17217
  class NetworkEndpoint
16085
17218
  include Google::Apis::Core::Hashable
16086
17219
 
17220
+ # Metadata defined as annotations on the network endpoint.
17221
+ # Corresponds to the JSON property `annotations`
17222
+ # @return [Hash<String,String>]
17223
+ attr_accessor :annotations
17224
+
17225
+ # Optional fully qualified domain name of network endpoint. This can only be
17226
+ # specified when NetworkEndpointGroup.network_endpoint_type is NON_GCP_FQDN_PORT.
17227
+ # Corresponds to the JSON property `fqdn`
17228
+ # @return [String]
17229
+ attr_accessor :fqdn
17230
+
16087
17231
  # The name for a specific VM instance that the IP address belongs to. This is
16088
17232
  # required for network endpoints of type GCE_VM_IP_PORT. The instance must be in
16089
17233
  # the same zone of network endpoint group.
@@ -16114,6 +17258,8 @@ module Google
16114
17258
 
16115
17259
  # Update properties of this object
16116
17260
  def update!(**args)
17261
+ @annotations = args[:annotations] if args.key?(:annotations)
17262
+ @fqdn = args[:fqdn] if args.key?(:fqdn)
16117
17263
  @instance = args[:instance] if args.key?(:instance)
16118
17264
  @ip_address = args[:ip_address] if args.key?(:ip_address)
16119
17265
  @port = args[:port] if args.key?(:port)
@@ -16122,11 +17268,15 @@ module Google
16122
17268
 
16123
17269
  # Represents a collection of network endpoints.
16124
17270
  # For more information read Setting up network endpoint groups in load balancing.
16125
- # (== resource_for v1.networkEndpointGroups ==) (== resource_for beta.
16126
- # networkEndpointGroups ==)
17271
+ # (== resource_for `$api_version`.networkEndpointGroups ==) Next ID: 21
16127
17272
  class NetworkEndpointGroup
16128
17273
  include Google::Apis::Core::Hashable
16129
17274
 
17275
+ # Metadata defined as annotations on the network endpoint group.
17276
+ # Corresponds to the JSON property `annotations`
17277
+ # @return [Hash<String,String>]
17278
+ attr_accessor :annotations
17279
+
16130
17280
  # [Output Only] Creation timestamp in RFC3339 text format.
16131
17281
  # Corresponds to the JSON property `creationTimestamp`
16132
17282
  # @return [String]
@@ -16210,6 +17360,7 @@ module Google
16210
17360
 
16211
17361
  # Update properties of this object
16212
17362
  def update!(**args)
17363
+ @annotations = args[:annotations] if args.key?(:annotations)
16213
17364
  @creation_timestamp = args[:creation_timestamp] if args.key?(:creation_timestamp)
16214
17365
  @default_port = args[:default_port] if args.key?(:default_port)
16215
17366
  @description = args[:description] if args.key?(:description)
@@ -16777,7 +17928,7 @@ module Google
16777
17928
  # @return [Array<Google::Apis::ComputeBeta::HealthStatusForNetworkEndpoint>]
16778
17929
  attr_accessor :healths
16779
17930
 
16780
- # The network endpoint.
17931
+ # The network endpoint. Next ID: 7
16781
17932
  # Corresponds to the JSON property `networkEndpoint`
16782
17933
  # @return [Google::Apis::ComputeBeta::NetworkEndpoint]
16783
17934
  attr_accessor :network_endpoint
@@ -16819,6 +17970,11 @@ module Google
16819
17970
  # @return [String]
16820
17971
  attr_accessor :fingerprint
16821
17972
 
17973
+ # [Output Only] An IPv6 internal network address for this network interface.
17974
+ # Corresponds to the JSON property `ipv6Address`
17975
+ # @return [String]
17976
+ attr_accessor :ipv6_address
17977
+
16822
17978
  # [Output Only] Type of the resource. Always compute#networkInterface for
16823
17979
  # network interfaces.
16824
17980
  # Corresponds to the JSON property `kind`
@@ -16874,6 +18030,7 @@ module Google
16874
18030
  @access_configs = args[:access_configs] if args.key?(:access_configs)
16875
18031
  @alias_ip_ranges = args[:alias_ip_ranges] if args.key?(:alias_ip_ranges)
16876
18032
  @fingerprint = args[:fingerprint] if args.key?(:fingerprint)
18033
+ @ipv6_address = args[:ipv6_address] if args.key?(:ipv6_address)
16877
18034
  @kind = args[:kind] if args.key?(:kind)
16878
18035
  @name = args[:name] if args.key?(:name)
16879
18036
  @network = args[:network] if args.key?(:network)
@@ -17199,11 +18356,15 @@ module Google
17199
18356
  # instances only for your specific project. Use sole-tenant nodes to keep your
17200
18357
  # instances physically separated from instances in other projects, or to group
17201
18358
  # your instances together on the same host hardware. For more information, read
17202
- # Sole-tenant nodes. (== resource_for beta.nodeGroups ==) (== resource_for v1.
17203
- # nodeGroups ==) NextID: 16
18359
+ # Sole-tenant nodes. (== resource_for `$api_version`.nodeGroups ==)
17204
18360
  class NodeGroup
17205
18361
  include Google::Apis::Core::Hashable
17206
18362
 
18363
+ # Specifies how autoscaling should behave.
18364
+ # Corresponds to the JSON property `autoscalingPolicy`
18365
+ # @return [Google::Apis::ComputeBeta::NodeGroupAutoscalingPolicy]
18366
+ attr_accessor :autoscaling_policy
18367
+
17207
18368
  # [Output Only] Creation timestamp in RFC3339 text format.
17208
18369
  # Corresponds to the JSON property `creationTimestamp`
17209
18370
  # @return [String]
@@ -17215,6 +18376,12 @@ module Google
17215
18376
  # @return [String]
17216
18377
  attr_accessor :description
17217
18378
 
18379
+ #
18380
+ # Corresponds to the JSON property `fingerprint`
18381
+ # NOTE: Values are automatically base64 encoded/decoded in the client library.
18382
+ # @return [String]
18383
+ attr_accessor :fingerprint
18384
+
17218
18385
  # [Output Only] The unique identifier for the resource. This identifier is
17219
18386
  # defined by the server.
17220
18387
  # Corresponds to the JSON property `id`
@@ -17227,6 +18394,12 @@ module Google
17227
18394
  # @return [String]
17228
18395
  attr_accessor :kind
17229
18396
 
18397
+ # Specifies how to handle instances when a node in the group undergoes
18398
+ # maintenance.
18399
+ # Corresponds to the JSON property `maintenancePolicy`
18400
+ # @return [String]
18401
+ attr_accessor :maintenance_policy
18402
+
17230
18403
  # The name of the resource, provided by the client when initially creating the
17231
18404
  # resource. The resource name must be 1-63 characters long, and comply with
17232
18405
  # RFC1035. Specifically, the name must be 1-63 characters long and match the
@@ -17270,10 +18443,13 @@ module Google
17270
18443
 
17271
18444
  # Update properties of this object
17272
18445
  def update!(**args)
18446
+ @autoscaling_policy = args[:autoscaling_policy] if args.key?(:autoscaling_policy)
17273
18447
  @creation_timestamp = args[:creation_timestamp] if args.key?(:creation_timestamp)
17274
18448
  @description = args[:description] if args.key?(:description)
18449
+ @fingerprint = args[:fingerprint] if args.key?(:fingerprint)
17275
18450
  @id = args[:id] if args.key?(:id)
17276
18451
  @kind = args[:kind] if args.key?(:kind)
18452
+ @maintenance_policy = args[:maintenance_policy] if args.key?(:maintenance_policy)
17277
18453
  @name = args[:name] if args.key?(:name)
17278
18454
  @node_template = args[:node_template] if args.key?(:node_template)
17279
18455
  @self_link = args[:self_link] if args.key?(:self_link)
@@ -17401,6 +18577,37 @@ module Google
17401
18577
  end
17402
18578
  end
17403
18579
 
18580
+ #
18581
+ class NodeGroupAutoscalingPolicy
18582
+ include Google::Apis::Core::Hashable
18583
+
18584
+ # The maximum number of nodes that the group should have.
18585
+ # Corresponds to the JSON property `maxNodes`
18586
+ # @return [Fixnum]
18587
+ attr_accessor :max_nodes
18588
+
18589
+ # The minimum number of nodes that the group should have.
18590
+ # Corresponds to the JSON property `minNodes`
18591
+ # @return [Fixnum]
18592
+ attr_accessor :min_nodes
18593
+
18594
+ # The autoscaling mode.
18595
+ # Corresponds to the JSON property `mode`
18596
+ # @return [String]
18597
+ attr_accessor :mode
18598
+
18599
+ def initialize(**args)
18600
+ update!(**args)
18601
+ end
18602
+
18603
+ # Update properties of this object
18604
+ def update!(**args)
18605
+ @max_nodes = args[:max_nodes] if args.key?(:max_nodes)
18606
+ @min_nodes = args[:min_nodes] if args.key?(:min_nodes)
18607
+ @mode = args[:mode] if args.key?(:mode)
18608
+ end
18609
+ end
18610
+
17404
18611
  # Contains a list of nodeGroups.
17405
18612
  class NodeGroupList
17406
18613
  include Google::Apis::Core::Hashable
@@ -17543,6 +18750,11 @@ module Google
17543
18750
  # @return [Google::Apis::ComputeBeta::ServerBinding]
17544
18751
  attr_accessor :server_binding
17545
18752
 
18753
+ # Server ID associated with this node.
18754
+ # Corresponds to the JSON property `serverId`
18755
+ # @return [String]
18756
+ attr_accessor :server_id
18757
+
17546
18758
  #
17547
18759
  # Corresponds to the JSON property `status`
17548
18760
  # @return [String]
@@ -17558,6 +18770,7 @@ module Google
17558
18770
  @name = args[:name] if args.key?(:name)
17559
18771
  @node_type = args[:node_type] if args.key?(:node_type)
17560
18772
  @server_binding = args[:server_binding] if args.key?(:server_binding)
18773
+ @server_id = args[:server_id] if args.key?(:server_id)
17561
18774
  @status = args[:status] if args.key?(:status)
17562
18775
  end
17563
18776
  end
@@ -17831,8 +19044,8 @@ module Google
17831
19044
 
17832
19045
  # Represent a sole-tenant Node Template resource.
17833
19046
  # You can use a template to define properties for nodes in a node group. For
17834
- # more information, read Creating node groups and instances. (== resource_for
17835
- # beta.nodeTemplates ==) (== resource_for v1.nodeTemplates ==) (== NextID: 16 ==)
19047
+ # more information, read Creating node groups and instances. (== resource_for `$
19048
+ # api_version`.nodeTemplates ==) (== NextID: 18 ==)
17836
19049
  class NodeTemplate
17837
19050
  include Google::Apis::Core::Hashable
17838
19051
 
@@ -18305,7 +19518,7 @@ module Google
18305
19518
  # total amount of cores and memory for that node. Currently, the only available
18306
19519
  # node type is n1-node-96-624 node type that has 96 vCPUs and 624 GB of memory,
18307
19520
  # available in multiple zones. For more information read Node types. (==
18308
- # resource_for beta.nodeTypes ==) (== resource_for v1.nodeTypes ==)
19521
+ # resource_for `$api_version`.nodeTypes ==)
18309
19522
  class NodeType
18310
19523
  include Google::Apis::Core::Hashable
18311
19524
 
@@ -18720,7 +19933,256 @@ module Google
18720
19933
  end
18721
19934
  end
18722
19935
 
19936
+ # A notification endpoint resource defines an endpoint to receive notifications
19937
+ # when there are status changes detected by the associated health check service.
19938
+ class NotificationEndpoint
19939
+ include Google::Apis::Core::Hashable
19940
+
19941
+ # [Output Only] Creation timestamp in RFC3339 text format.
19942
+ # Corresponds to the JSON property `creationTimestamp`
19943
+ # @return [String]
19944
+ attr_accessor :creation_timestamp
19945
+
19946
+ # An optional description of this resource. Provide this property when you
19947
+ # create the resource.
19948
+ # Corresponds to the JSON property `description`
19949
+ # @return [String]
19950
+ attr_accessor :description
19951
+
19952
+ # Represents a gRPC setting that describes one gRPC notification endpoint and
19953
+ # the retry duration attempting to send notification to this endpoint.
19954
+ # Corresponds to the JSON property `grpcSettings`
19955
+ # @return [Google::Apis::ComputeBeta::NotificationEndpointGrpcSettings]
19956
+ attr_accessor :grpc_settings
19957
+
19958
+ # [Output Only] A unique identifier for this resource type. The server generates
19959
+ # this identifier.
19960
+ # Corresponds to the JSON property `id`
19961
+ # @return [Fixnum]
19962
+ attr_accessor :id
19963
+
19964
+ # [Output Only] Type of the resource. Always compute#notificationEndpoint for
19965
+ # notification endpoints.
19966
+ # Corresponds to the JSON property `kind`
19967
+ # @return [String]
19968
+ attr_accessor :kind
19969
+
19970
+ # Name of the resource. Provided by the client when the resource is created. The
19971
+ # name must be 1-63 characters long, and comply with RFC1035. Specifically, the
19972
+ # name must be 1-63 characters long and match the regular expression `[a-z]([-a-
19973
+ # z0-9]*[a-z0-9])?` which means the first character must be a lowercase letter,
19974
+ # and all following characters must be a dash, lowercase letter, or digit,
19975
+ # except the last character, which cannot be a dash.
19976
+ # Corresponds to the JSON property `name`
19977
+ # @return [String]
19978
+ attr_accessor :name
19979
+
19980
+ # [Output Only] URL of the region where the notification endpoint resides. This
19981
+ # field applies only to the regional resource. You must specify this field as
19982
+ # part of the HTTP request URL. It is not settable as a field in the request
19983
+ # body.
19984
+ # Corresponds to the JSON property `region`
19985
+ # @return [String]
19986
+ attr_accessor :region
19987
+
19988
+ # [Output Only] Server-defined URL for the resource.
19989
+ # Corresponds to the JSON property `selfLink`
19990
+ # @return [String]
19991
+ attr_accessor :self_link
19992
+
19993
+ def initialize(**args)
19994
+ update!(**args)
19995
+ end
19996
+
19997
+ # Update properties of this object
19998
+ def update!(**args)
19999
+ @creation_timestamp = args[:creation_timestamp] if args.key?(:creation_timestamp)
20000
+ @description = args[:description] if args.key?(:description)
20001
+ @grpc_settings = args[:grpc_settings] if args.key?(:grpc_settings)
20002
+ @id = args[:id] if args.key?(:id)
20003
+ @kind = args[:kind] if args.key?(:kind)
20004
+ @name = args[:name] if args.key?(:name)
20005
+ @region = args[:region] if args.key?(:region)
20006
+ @self_link = args[:self_link] if args.key?(:self_link)
20007
+ end
20008
+ end
20009
+
20010
+ # Represents a gRPC setting that describes one gRPC notification endpoint and
20011
+ # the retry duration attempting to send notification to this endpoint.
20012
+ class NotificationEndpointGrpcSettings
20013
+ include Google::Apis::Core::Hashable
20014
+
20015
+ # Optional. If specified, this field is used to set the authority header by the
20016
+ # sender of notifications. See https://tools.ietf.org/html/rfc7540#section-8.1.2.
20017
+ # 3
20018
+ # Corresponds to the JSON property `authority`
20019
+ # @return [String]
20020
+ attr_accessor :authority
20021
+
20022
+ # Endpoint to which gRPC notifications are sent. This must be a valid gRPCLB DNS
20023
+ # name.
20024
+ # Corresponds to the JSON property `endpoint`
20025
+ # @return [String]
20026
+ attr_accessor :endpoint
20027
+
20028
+ # Optional. If specified, this field is used to populate the "name" field in
20029
+ # gRPC requests.
20030
+ # Corresponds to the JSON property `payloadName`
20031
+ # @return [String]
20032
+ attr_accessor :payload_name
20033
+
20034
+ # A Duration represents a fixed-length span of time represented as a count of
20035
+ # seconds and fractions of seconds at nanosecond resolution. It is independent
20036
+ # of any calendar and concepts like "day" or "month". Range is approximately 10,
20037
+ # 000 years.
20038
+ # Corresponds to the JSON property `resendInterval`
20039
+ # @return [Google::Apis::ComputeBeta::Duration]
20040
+ attr_accessor :resend_interval
20041
+
20042
+ # How much time (in seconds) is spent attempting notification retries until a
20043
+ # successful response is received. Default is 30s. Limit is 20m (1200s). Must be
20044
+ # a positive number.
20045
+ # Corresponds to the JSON property `retryDurationSec`
20046
+ # @return [Fixnum]
20047
+ attr_accessor :retry_duration_sec
20048
+
20049
+ def initialize(**args)
20050
+ update!(**args)
20051
+ end
20052
+
20053
+ # Update properties of this object
20054
+ def update!(**args)
20055
+ @authority = args[:authority] if args.key?(:authority)
20056
+ @endpoint = args[:endpoint] if args.key?(:endpoint)
20057
+ @payload_name = args[:payload_name] if args.key?(:payload_name)
20058
+ @resend_interval = args[:resend_interval] if args.key?(:resend_interval)
20059
+ @retry_duration_sec = args[:retry_duration_sec] if args.key?(:retry_duration_sec)
20060
+ end
20061
+ end
20062
+
20063
+ #
20064
+ class NotificationEndpointList
20065
+ include Google::Apis::Core::Hashable
20066
+
20067
+ # [Output Only] Unique identifier for the resource; defined by the server.
20068
+ # Corresponds to the JSON property `id`
20069
+ # @return [String]
20070
+ attr_accessor :id
20071
+
20072
+ # A list of NotificationEndpoint resources.
20073
+ # Corresponds to the JSON property `items`
20074
+ # @return [Array<Google::Apis::ComputeBeta::NotificationEndpoint>]
20075
+ attr_accessor :items
20076
+
20077
+ # [Output Only] Type of the resource. Always compute#notificationEndpoint for
20078
+ # notification endpoints.
20079
+ # Corresponds to the JSON property `kind`
20080
+ # @return [String]
20081
+ attr_accessor :kind
20082
+
20083
+ # [Output Only] This token allows you to get the next page of results for list
20084
+ # requests. If the number of results is larger than maxResults, use the
20085
+ # nextPageToken as a value for the query parameter pageToken in the next list
20086
+ # request. Subsequent list requests will have their own nextPageToken to
20087
+ # continue paging through the results.
20088
+ # Corresponds to the JSON property `nextPageToken`
20089
+ # @return [String]
20090
+ attr_accessor :next_page_token
20091
+
20092
+ # [Output Only] Server-defined URL for this resource.
20093
+ # Corresponds to the JSON property `selfLink`
20094
+ # @return [String]
20095
+ attr_accessor :self_link
20096
+
20097
+ # [Output Only] Informational warning message.
20098
+ # Corresponds to the JSON property `warning`
20099
+ # @return [Google::Apis::ComputeBeta::NotificationEndpointList::Warning]
20100
+ attr_accessor :warning
20101
+
20102
+ def initialize(**args)
20103
+ update!(**args)
20104
+ end
20105
+
20106
+ # Update properties of this object
20107
+ def update!(**args)
20108
+ @id = args[:id] if args.key?(:id)
20109
+ @items = args[:items] if args.key?(:items)
20110
+ @kind = args[:kind] if args.key?(:kind)
20111
+ @next_page_token = args[:next_page_token] if args.key?(:next_page_token)
20112
+ @self_link = args[:self_link] if args.key?(:self_link)
20113
+ @warning = args[:warning] if args.key?(:warning)
20114
+ end
20115
+
20116
+ # [Output Only] Informational warning message.
20117
+ class Warning
20118
+ include Google::Apis::Core::Hashable
20119
+
20120
+ # [Output Only] A warning code, if applicable. For example, Compute Engine
20121
+ # returns NO_RESULTS_ON_PAGE if there are no results in the response.
20122
+ # Corresponds to the JSON property `code`
20123
+ # @return [String]
20124
+ attr_accessor :code
20125
+
20126
+ # [Output Only] Metadata about this warning in key: value format. For example:
20127
+ # "data": [ ` "key": "scope", "value": "zones/us-east1-d" `
20128
+ # Corresponds to the JSON property `data`
20129
+ # @return [Array<Google::Apis::ComputeBeta::NotificationEndpointList::Warning::Datum>]
20130
+ attr_accessor :data
20131
+
20132
+ # [Output Only] A human-readable description of the warning code.
20133
+ # Corresponds to the JSON property `message`
20134
+ # @return [String]
20135
+ attr_accessor :message
20136
+
20137
+ def initialize(**args)
20138
+ update!(**args)
20139
+ end
20140
+
20141
+ # Update properties of this object
20142
+ def update!(**args)
20143
+ @code = args[:code] if args.key?(:code)
20144
+ @data = args[:data] if args.key?(:data)
20145
+ @message = args[:message] if args.key?(:message)
20146
+ end
20147
+
20148
+ #
20149
+ class Datum
20150
+ include Google::Apis::Core::Hashable
20151
+
20152
+ # [Output Only] A key that provides more detail on the warning being returned.
20153
+ # For example, for warnings where there are no results in a list request for a
20154
+ # particular zone, this key might be scope and the key value might be the zone
20155
+ # name. Other examples might be a key indicating a deprecated resource and a
20156
+ # suggested replacement, or a warning about invalid network settings (for
20157
+ # example, if an instance attempts to perform IP forwarding but is not enabled
20158
+ # for IP forwarding).
20159
+ # Corresponds to the JSON property `key`
20160
+ # @return [String]
20161
+ attr_accessor :key
20162
+
20163
+ # [Output Only] A warning data value corresponding to the key.
20164
+ # Corresponds to the JSON property `value`
20165
+ # @return [String]
20166
+ attr_accessor :value
20167
+
20168
+ def initialize(**args)
20169
+ update!(**args)
20170
+ end
20171
+
20172
+ # Update properties of this object
20173
+ def update!(**args)
20174
+ @key = args[:key] if args.key?(:key)
20175
+ @value = args[:value] if args.key?(:value)
20176
+ end
20177
+ end
20178
+ end
20179
+ end
20180
+
18723
20181
  # Represents an Operation resource.
20182
+ # Google Compute Engine has three Operation resources:
20183
+ # * [Global](/compute/docs/reference/rest/latest/globalOperations) * [Regional](/
20184
+ # compute/docs/reference/rest/latest/regionOperations) * [Zonal](/compute/docs/
20185
+ # reference/rest/latest/zoneOperations)
18724
20186
  # You can use an operation resource to manage asynchronous API requests. For
18725
20187
  # more information, read Handling API responses.
18726
20188
  # Operations can be global, regional or zonal.
@@ -18728,10 +20190,9 @@ module Google
18728
20190
  # - For regional operations, use the regionOperations resource.
18729
20191
  # - For zonal operations, use the zonalOperations resource.
18730
20192
  # For more information, read Global, Regional, and Zonal Resources. (==
18731
- # resource_for v1.globalOperations ==) (== resource_for beta.globalOperations ==)
18732
- # (== resource_for v1.regionOperations ==) (== resource_for beta.
18733
- # regionOperations ==) (== resource_for v1.zoneOperations ==) (== resource_for
18734
- # beta.zoneOperations ==)
20193
+ # resource_for `$api_version`.globalOperations ==) (== resource_for `$
20194
+ # api_version`.regionOperations ==) (== resource_for `$api_version`.
20195
+ # zoneOperations ==)
18735
20196
  class Operation
18736
20197
  include Google::Apis::Core::Hashable
18737
20198
 
@@ -20187,12 +21648,10 @@ module Google
20187
21648
  # @return [Array<Google::Apis::ComputeBeta::PathRule>]
20188
21649
  attr_accessor :path_rules
20189
21650
 
20190
- # The list of ordered HTTP route rules. Use this list instead of pathRules when
20191
- # advanced route matching and routing actions are desired. The order of
20192
- # specifying routeRules matters: the first rule that matches will cause its
20193
- # specified routing action to take effect.
20194
- # Within a given pathMatcher, only one of pathRules or routeRules must be set.
20195
- # routeRules are not supported in UrlMaps intended for External Load balancers.
21651
+ # The list of HTTP route rules. Use this list instead of pathRules when advanced
21652
+ # route matching and routing actions are desired. routeRules are evaluated in
21653
+ # order of priority, from the lowest to highest number.
21654
+ # Within a given pathMatcher, you can set only one of pathRules or routeRules.
20196
21655
  # Corresponds to the JSON property `routeRules`
20197
21656
  # @return [Array<Google::Apis::ComputeBeta::HttpRouteRule>]
20198
21657
  attr_accessor :route_rules
@@ -20290,6 +21749,11 @@ module Google
20290
21749
  # @return [String]
20291
21750
  attr_accessor :name
20292
21751
 
21752
+ # Preserved state for a given instance.
21753
+ # Corresponds to the JSON property `preservedState`
21754
+ # @return [Google::Apis::ComputeBeta::PreservedState]
21755
+ attr_accessor :preserved_state
21756
+
20293
21757
  def initialize(**args)
20294
21758
  update!(**args)
20295
21759
  end
@@ -20298,35 +21762,38 @@ module Google
20298
21762
  def update!(**args)
20299
21763
  @fingerprint = args[:fingerprint] if args.key?(:fingerprint)
20300
21764
  @name = args[:name] if args.key?(:name)
21765
+ @preserved_state = args[:preserved_state] if args.key?(:preserved_state)
20301
21766
  end
20302
21767
  end
20303
21768
 
20304
- # Defines an Identity and Access Management (IAM) policy. It is used to specify
20305
- # access control policies for Cloud Platform resources.
21769
+ # An Identity and Access Management (IAM) policy, which specifies access
21770
+ # controls for Google Cloud resources.
20306
21771
  # A `Policy` is a collection of `bindings`. A `binding` binds one or more `
20307
21772
  # members` to a single `role`. Members can be user accounts, service accounts,
20308
21773
  # Google groups, and domains (such as G Suite). A `role` is a named list of
20309
- # permissions (defined by IAM or configured by users). A `binding` can
20310
- # optionally specify a `condition`, which is a logic expression that further
20311
- # constrains the role binding based on attributes about the request and/or
20312
- # target resource.
20313
- # **JSON Example**
21774
+ # permissions; each `role` can be an IAM predefined role or a user-created
21775
+ # custom role.
21776
+ # Optionally, a `binding` can specify a `condition`, which is a logical
21777
+ # expression that allows access to a resource only if the expression evaluates
21778
+ # to `true`. A condition can add constraints based on attributes of the request,
21779
+ # the resource, or both.
21780
+ # **JSON example:**
20314
21781
  # ` "bindings": [ ` "role": "roles/resourcemanager.organizationAdmin", "members":
20315
21782
  # [ "user:mike@example.com", "group:admins@example.com", "domain:google.com", "
20316
21783
  # serviceAccount:my-project-id@appspot.gserviceaccount.com" ] `, ` "role": "
20317
21784
  # roles/resourcemanager.organizationViewer", "members": ["user:eve@example.com"],
20318
21785
  # "condition": ` "title": "expirable access", "description": "Does not grant
20319
21786
  # access after Sep 2020", "expression": "request.time < timestamp('2020-10-01T00:
20320
- # 00:00.000Z')", ` ` ] `
20321
- # **YAML Example**
21787
+ # 00:00.000Z')", ` ` ], "etag": "BwWWja0YfJA=", "version": 3 `
21788
+ # **YAML example:**
20322
21789
  # bindings: - members: - user:mike@example.com - group:admins@example.com -
20323
21790
  # domain:google.com - serviceAccount:my-project-id@appspot.gserviceaccount.com
20324
21791
  # role: roles/resourcemanager.organizationAdmin - members: - user:eve@example.
20325
21792
  # com role: roles/resourcemanager.organizationViewer condition: title: expirable
20326
21793
  # access description: Does not grant access after Sep 2020 expression: request.
20327
- # time < timestamp('2020-10-01T00:00:00.000Z')
20328
- # For a description of IAM and its features, see the [IAM developer's guide](
20329
- # https://cloud.google.com/iam/docs).
21794
+ # time < timestamp('2020-10-01T00:00:00.000Z') - etag: BwWWja0YfJA= - version: 3
21795
+ # For a description of IAM and its features, see the [IAM documentation](https://
21796
+ # cloud.google.com/iam/docs/).
20330
21797
  class Policy
20331
21798
  include Google::Apis::Core::Hashable
20332
21799
 
@@ -20335,9 +21802,9 @@ module Google
20335
21802
  # @return [Array<Google::Apis::ComputeBeta::AuditConfig>]
20336
21803
  attr_accessor :audit_configs
20337
21804
 
20338
- # Associates a list of `members` to a `role`. Optionally may specify a `
20339
- # condition` that determines when binding is in effect. `bindings` with no
20340
- # members will result in an error.
21805
+ # Associates a list of `members` to a `role`. Optionally, may specify a `
21806
+ # condition` that determines how and when the `bindings` are applied. Each of
21807
+ # the `bindings` must contain at least one member.
20341
21808
  # Corresponds to the JSON property `bindings`
20342
21809
  # @return [Array<Google::Apis::ComputeBeta::Binding>]
20343
21810
  attr_accessor :bindings
@@ -20349,10 +21816,10 @@ module Google
20349
21816
  # returned in the response to `getIamPolicy`, and systems are expected to put
20350
21817
  # that etag in the request to `setIamPolicy` to ensure that their change will be
20351
21818
  # applied to the same version of the policy.
20352
- # If no `etag` is provided in the call to `setIamPolicy`, then the existing
20353
- # policy is overwritten. Due to blind-set semantics of an etag-less policy, '
20354
- # setIamPolicy' will not fail even if either of incoming or stored policy does
20355
- # not meet the version requirements.
21819
+ # **Important:** If you use IAM Conditions, you must include the `etag` field
21820
+ # whenever you call `setIamPolicy`. If you omit this field, then IAM allows you
21821
+ # to overwrite a version `3` policy with a version `1` policy, and all of the
21822
+ # conditions in the version `3` policy are lost.
20356
21823
  # Corresponds to the JSON property `etag`
20357
21824
  # NOTE: Values are automatically base64 encoded/decoded in the client library.
20358
21825
  # @return [String]
@@ -20376,15 +21843,20 @@ module Google
20376
21843
  attr_accessor :rules
20377
21844
 
20378
21845
  # Specifies the format of the policy.
20379
- # Valid values are 0, 1, and 3. Requests specifying an invalid value will be
21846
+ # Valid values are `0`, `1`, and `3`. Requests that specify an invalid value are
20380
21847
  # rejected.
20381
- # Operations affecting conditional bindings must specify version 3. This can be
20382
- # either setting a conditional policy, modifying a conditional binding, or
20383
- # removing a conditional binding from the stored conditional policy. Operations
20384
- # on non-conditional policies may specify any valid value or leave the field
20385
- # unset.
20386
- # If no etag is provided in the call to `setIamPolicy`, any version compliance
20387
- # checks on the incoming and/or stored policy is skipped.
21848
+ # Any operation that affects conditional role bindings must specify version `3`.
21849
+ # This requirement applies to the following operations:
21850
+ # * Getting a policy that includes a conditional role binding * Adding a
21851
+ # conditional role binding to a policy * Changing a conditional role binding in
21852
+ # a policy * Removing any role binding, with or without a condition, from a
21853
+ # policy that includes conditions
21854
+ # **Important:** If you use IAM Conditions, you must include the `etag` field
21855
+ # whenever you call `setIamPolicy`. If you omit this field, then IAM allows you
21856
+ # to overwrite a version `3` policy with a version `1` policy, and all of the
21857
+ # conditions in the version `3` policy are lost.
21858
+ # If a policy does not include any conditions, operations on that policy may
21859
+ # specify any valid version or leave the field unset.
20388
21860
  # Corresponds to the JSON property `version`
20389
21861
  # @return [Fixnum]
20390
21862
  attr_accessor :version
@@ -20423,10 +21895,73 @@ module Google
20423
21895
  end
20424
21896
  end
20425
21897
 
21898
+ # Preserved state for a given instance.
21899
+ class PreservedState
21900
+ include Google::Apis::Core::Hashable
21901
+
21902
+ # Preserved disks defined for this instance. This map is keyed with the device
21903
+ # names of the disks.
21904
+ # Corresponds to the JSON property `disks`
21905
+ # @return [Hash<String,Google::Apis::ComputeBeta::PreservedStatePreservedDisk>]
21906
+ attr_accessor :disks
21907
+
21908
+ # Preserved metadata defined for this instance.
21909
+ # Corresponds to the JSON property `metadata`
21910
+ # @return [Hash<String,String>]
21911
+ attr_accessor :metadata
21912
+
21913
+ def initialize(**args)
21914
+ update!(**args)
21915
+ end
21916
+
21917
+ # Update properties of this object
21918
+ def update!(**args)
21919
+ @disks = args[:disks] if args.key?(:disks)
21920
+ @metadata = args[:metadata] if args.key?(:metadata)
21921
+ end
21922
+ end
21923
+
21924
+ #
21925
+ class PreservedStatePreservedDisk
21926
+ include Google::Apis::Core::Hashable
21927
+
21928
+ # These stateful disks will never be deleted during autohealing, update,
21929
+ # instance recreate operations. This flag is used to configure if the disk
21930
+ # should be deleted after it is no longer used by the group, e.g. when the given
21931
+ # instance or the whole MIG is deleted. Note: disks attached in READ_ONLY mode
21932
+ # cannot be auto-deleted.
21933
+ # Corresponds to the JSON property `autoDelete`
21934
+ # @return [String]
21935
+ attr_accessor :auto_delete
21936
+
21937
+ # The mode in which to attach this disk, either READ_WRITE or READ_ONLY. If not
21938
+ # specified, the default is to attach the disk in READ_WRITE mode.
21939
+ # Corresponds to the JSON property `mode`
21940
+ # @return [String]
21941
+ attr_accessor :mode
21942
+
21943
+ # The URL of the disk resource that is stateful and should be attached to the VM
21944
+ # instance.
21945
+ # Corresponds to the JSON property `source`
21946
+ # @return [String]
21947
+ attr_accessor :source
21948
+
21949
+ def initialize(**args)
21950
+ update!(**args)
21951
+ end
21952
+
21953
+ # Update properties of this object
21954
+ def update!(**args)
21955
+ @auto_delete = args[:auto_delete] if args.key?(:auto_delete)
21956
+ @mode = args[:mode] if args.key?(:mode)
21957
+ @source = args[:source] if args.key?(:source)
21958
+ end
21959
+ end
21960
+
20426
21961
  # Represents a Project resource.
20427
21962
  # A project is used to organize resources in a Google Cloud Platform environment.
20428
- # For more information, read about the Resource Hierarchy. (== resource_for v1.
20429
- # projects ==) (== resource_for beta.projects ==)
21963
+ # For more information, read about the Resource Hierarchy. (== resource_for `$
21964
+ # api_version`.projects ==)
20430
21965
  class Project
20431
21966
  include Google::Apis::Core::Hashable
20432
21967
 
@@ -20718,8 +22253,8 @@ module Google
20718
22253
 
20719
22254
  # Represents a Region resource.
20720
22255
  # A region is a geographical area where a resource is located. For more
20721
- # information, read Regions and Zones. (== resource_for beta.regions ==) (==
20722
- # resource_for v1.regions ==)
22256
+ # information, read Regions and Zones. (== resource_for `$api_version`.regions ==
22257
+ # )
20723
22258
  class Region
20724
22259
  include Google::Apis::Core::Hashable
20725
22260
 
@@ -21222,6 +22757,26 @@ module Google
21222
22757
  end
21223
22758
  end
21224
22759
 
22760
+ # RegionInstanceGroupManagers.deletePerInstanceConfigs
22761
+ class RegionInstanceGroupManagerDeleteInstanceConfigReq
22762
+ include Google::Apis::Core::Hashable
22763
+
22764
+ # The list of instance names for which we want to delete per-instance configs on
22765
+ # this managed instance group.
22766
+ # Corresponds to the JSON property `names`
22767
+ # @return [Array<String>]
22768
+ attr_accessor :names
22769
+
22770
+ def initialize(**args)
22771
+ update!(**args)
22772
+ end
22773
+
22774
+ # Update properties of this object
22775
+ def update!(**args)
22776
+ @names = args[:names] if args.key?(:names)
22777
+ end
22778
+ end
22779
+
21225
22780
  # Contains a list of managed instance groups.
21226
22781
  class RegionInstanceGroupManagerList
21227
22782
  include Google::Apis::Core::Hashable
@@ -21341,6 +22896,46 @@ module Google
21341
22896
  end
21342
22897
  end
21343
22898
 
22899
+ # RegionInstanceGroupManagers.patchPerInstanceConfigs
22900
+ class RegionInstanceGroupManagerPatchInstanceConfigReq
22901
+ include Google::Apis::Core::Hashable
22902
+
22903
+ # The list of per-instance configs to insert or patch on this managed instance
22904
+ # group.
22905
+ # Corresponds to the JSON property `perInstanceConfigs`
22906
+ # @return [Array<Google::Apis::ComputeBeta::PerInstanceConfig>]
22907
+ attr_accessor :per_instance_configs
22908
+
22909
+ def initialize(**args)
22910
+ update!(**args)
22911
+ end
22912
+
22913
+ # Update properties of this object
22914
+ def update!(**args)
22915
+ @per_instance_configs = args[:per_instance_configs] if args.key?(:per_instance_configs)
22916
+ end
22917
+ end
22918
+
22919
+ # RegionInstanceGroupManagers.updatePerInstanceConfigs
22920
+ class RegionInstanceGroupManagerUpdateInstanceConfigReq
22921
+ include Google::Apis::Core::Hashable
22922
+
22923
+ # The list of per-instance configs to insert or patch on this managed instance
22924
+ # group.
22925
+ # Corresponds to the JSON property `perInstanceConfigs`
22926
+ # @return [Array<Google::Apis::ComputeBeta::PerInstanceConfig>]
22927
+ attr_accessor :per_instance_configs
22928
+
22929
+ def initialize(**args)
22930
+ update!(**args)
22931
+ end
22932
+
22933
+ # Update properties of this object
22934
+ def update!(**args)
22935
+ @per_instance_configs = args[:per_instance_configs] if args.key?(:per_instance_configs)
22936
+ end
22937
+ end
22938
+
21344
22939
  #
21345
22940
  class RegionInstanceGroupManagersAbandonInstancesRequest
21346
22941
  include Google::Apis::Core::Hashable
@@ -21447,6 +23042,134 @@ module Google
21447
23042
  end
21448
23043
  end
21449
23044
 
23045
+ #
23046
+ class RegionInstanceGroupManagersListErrorsResponse
23047
+ include Google::Apis::Core::Hashable
23048
+
23049
+ # [Output Only] The list of errors of the managed instance group.
23050
+ # Corresponds to the JSON property `items`
23051
+ # @return [Array<Google::Apis::ComputeBeta::InstanceManagedByIgmError>]
23052
+ attr_accessor :items
23053
+
23054
+ # [Output Only] This token allows you to get the next page of results for list
23055
+ # requests. If the number of results is larger than maxResults, use the
23056
+ # nextPageToken as a value for the query parameter pageToken in the next list
23057
+ # request. Subsequent list requests will have their own nextPageToken to
23058
+ # continue paging through the results.
23059
+ # Corresponds to the JSON property `nextPageToken`
23060
+ # @return [String]
23061
+ attr_accessor :next_page_token
23062
+
23063
+ def initialize(**args)
23064
+ update!(**args)
23065
+ end
23066
+
23067
+ # Update properties of this object
23068
+ def update!(**args)
23069
+ @items = args[:items] if args.key?(:items)
23070
+ @next_page_token = args[:next_page_token] if args.key?(:next_page_token)
23071
+ end
23072
+ end
23073
+
23074
+ #
23075
+ class RegionInstanceGroupManagersListInstanceConfigsResp
23076
+ include Google::Apis::Core::Hashable
23077
+
23078
+ # [Output Only] The list of PerInstanceConfig.
23079
+ # Corresponds to the JSON property `items`
23080
+ # @return [Array<Google::Apis::ComputeBeta::PerInstanceConfig>]
23081
+ attr_accessor :items
23082
+
23083
+ # [Output Only] This token allows you to get the next page of results for list
23084
+ # requests. If the number of results is larger than maxResults, use the
23085
+ # nextPageToken as a value for the query parameter pageToken in the next list
23086
+ # request. Subsequent list requests will have their own nextPageToken to
23087
+ # continue paging through the results.
23088
+ # Corresponds to the JSON property `nextPageToken`
23089
+ # @return [String]
23090
+ attr_accessor :next_page_token
23091
+
23092
+ # [Output Only] Informational warning message.
23093
+ # Corresponds to the JSON property `warning`
23094
+ # @return [Google::Apis::ComputeBeta::RegionInstanceGroupManagersListInstanceConfigsResp::Warning]
23095
+ attr_accessor :warning
23096
+
23097
+ def initialize(**args)
23098
+ update!(**args)
23099
+ end
23100
+
23101
+ # Update properties of this object
23102
+ def update!(**args)
23103
+ @items = args[:items] if args.key?(:items)
23104
+ @next_page_token = args[:next_page_token] if args.key?(:next_page_token)
23105
+ @warning = args[:warning] if args.key?(:warning)
23106
+ end
23107
+
23108
+ # [Output Only] Informational warning message.
23109
+ class Warning
23110
+ include Google::Apis::Core::Hashable
23111
+
23112
+ # [Output Only] A warning code, if applicable. For example, Compute Engine
23113
+ # returns NO_RESULTS_ON_PAGE if there are no results in the response.
23114
+ # Corresponds to the JSON property `code`
23115
+ # @return [String]
23116
+ attr_accessor :code
23117
+
23118
+ # [Output Only] Metadata about this warning in key: value format. For example:
23119
+ # "data": [ ` "key": "scope", "value": "zones/us-east1-d" `
23120
+ # Corresponds to the JSON property `data`
23121
+ # @return [Array<Google::Apis::ComputeBeta::RegionInstanceGroupManagersListInstanceConfigsResp::Warning::Datum>]
23122
+ attr_accessor :data
23123
+
23124
+ # [Output Only] A human-readable description of the warning code.
23125
+ # Corresponds to the JSON property `message`
23126
+ # @return [String]
23127
+ attr_accessor :message
23128
+
23129
+ def initialize(**args)
23130
+ update!(**args)
23131
+ end
23132
+
23133
+ # Update properties of this object
23134
+ def update!(**args)
23135
+ @code = args[:code] if args.key?(:code)
23136
+ @data = args[:data] if args.key?(:data)
23137
+ @message = args[:message] if args.key?(:message)
23138
+ end
23139
+
23140
+ #
23141
+ class Datum
23142
+ include Google::Apis::Core::Hashable
23143
+
23144
+ # [Output Only] A key that provides more detail on the warning being returned.
23145
+ # For example, for warnings where there are no results in a list request for a
23146
+ # particular zone, this key might be scope and the key value might be the zone
23147
+ # name. Other examples might be a key indicating a deprecated resource and a
23148
+ # suggested replacement, or a warning about invalid network settings (for
23149
+ # example, if an instance attempts to perform IP forwarding but is not enabled
23150
+ # for IP forwarding).
23151
+ # Corresponds to the JSON property `key`
23152
+ # @return [String]
23153
+ attr_accessor :key
23154
+
23155
+ # [Output Only] A warning data value corresponding to the key.
23156
+ # Corresponds to the JSON property `value`
23157
+ # @return [String]
23158
+ attr_accessor :value
23159
+
23160
+ def initialize(**args)
23161
+ update!(**args)
23162
+ end
23163
+
23164
+ # Update properties of this object
23165
+ def update!(**args)
23166
+ @key = args[:key] if args.key?(:key)
23167
+ @value = args[:value] if args.key?(:value)
23168
+ end
23169
+ end
23170
+ end
23171
+ end
23172
+
21450
23173
  #
21451
23174
  class RegionInstanceGroupManagersListInstancesResponse
21452
23175
  include Google::Apis::Core::Hashable
@@ -21905,32 +23628,34 @@ module Google
21905
23628
  # @return [String]
21906
23629
  attr_accessor :etag
21907
23630
 
21908
- # Defines an Identity and Access Management (IAM) policy. It is used to specify
21909
- # access control policies for Cloud Platform resources.
23631
+ # An Identity and Access Management (IAM) policy, which specifies access
23632
+ # controls for Google Cloud resources.
21910
23633
  # A `Policy` is a collection of `bindings`. A `binding` binds one or more `
21911
23634
  # members` to a single `role`. Members can be user accounts, service accounts,
21912
23635
  # Google groups, and domains (such as G Suite). A `role` is a named list of
21913
- # permissions (defined by IAM or configured by users). A `binding` can
21914
- # optionally specify a `condition`, which is a logic expression that further
21915
- # constrains the role binding based on attributes about the request and/or
21916
- # target resource.
21917
- # **JSON Example**
23636
+ # permissions; each `role` can be an IAM predefined role or a user-created
23637
+ # custom role.
23638
+ # Optionally, a `binding` can specify a `condition`, which is a logical
23639
+ # expression that allows access to a resource only if the expression evaluates
23640
+ # to `true`. A condition can add constraints based on attributes of the request,
23641
+ # the resource, or both.
23642
+ # **JSON example:**
21918
23643
  # ` "bindings": [ ` "role": "roles/resourcemanager.organizationAdmin", "members":
21919
23644
  # [ "user:mike@example.com", "group:admins@example.com", "domain:google.com", "
21920
23645
  # serviceAccount:my-project-id@appspot.gserviceaccount.com" ] `, ` "role": "
21921
23646
  # roles/resourcemanager.organizationViewer", "members": ["user:eve@example.com"],
21922
23647
  # "condition": ` "title": "expirable access", "description": "Does not grant
21923
23648
  # access after Sep 2020", "expression": "request.time < timestamp('2020-10-01T00:
21924
- # 00:00.000Z')", ` ` ] `
21925
- # **YAML Example**
23649
+ # 00:00.000Z')", ` ` ], "etag": "BwWWja0YfJA=", "version": 3 `
23650
+ # **YAML example:**
21926
23651
  # bindings: - members: - user:mike@example.com - group:admins@example.com -
21927
23652
  # domain:google.com - serviceAccount:my-project-id@appspot.gserviceaccount.com
21928
23653
  # role: roles/resourcemanager.organizationAdmin - members: - user:eve@example.
21929
23654
  # com role: roles/resourcemanager.organizationViewer condition: title: expirable
21930
23655
  # access description: Does not grant access after Sep 2020 expression: request.
21931
- # time < timestamp('2020-10-01T00:00:00.000Z')
21932
- # For a description of IAM and its features, see the [IAM developer's guide](
21933
- # https://cloud.google.com/iam/docs).
23656
+ # time < timestamp('2020-10-01T00:00:00.000Z') - etag: BwWWja0YfJA= - version: 3
23657
+ # For a description of IAM and its features, see the [IAM documentation](https://
23658
+ # cloud.google.com/iam/docs/).
21934
23659
  # Corresponds to the JSON property `policy`
21935
23660
  # @return [Google::Apis::ComputeBeta::Policy]
21936
23661
  attr_accessor :policy
@@ -21972,12 +23697,19 @@ module Google
21972
23697
  include Google::Apis::Core::Hashable
21973
23698
 
21974
23699
  # Represents a URL Map resource.
21975
- # A URL map resource is a component of certain types of load balancers. This
21976
- # resource defines mappings from host names and URL paths to either a backend
21977
- # service or a backend bucket.
21978
- # To use this resource, the backend service must have a loadBalancingScheme of
21979
- # either EXTERNAL, INTERNAL_SELF_MANAGED, or INTERNAL_MANAGED For more
21980
- # information, read URL Map Concepts.
23700
+ # Google Compute Engine has two URL Map resources:
23701
+ # * [Global](/compute/docs/reference/rest/latest/urlMaps) * [Regional](/compute/
23702
+ # docs/reference/rest/latest/regionUrlMaps)
23703
+ # A URL map resource is a component of certain types of GCP load balancers and
23704
+ # Traffic Director.
23705
+ # * urlMaps are used by external HTTP(S) load balancers and Traffic Director. *
23706
+ # regionUrlMaps are used by internal HTTP(S) load balancers.
23707
+ # This resource defines mappings from host names and URL paths to either a
23708
+ # backend service or a backend bucket.
23709
+ # To use the global urlMaps resource, the backend service must have a
23710
+ # loadBalancingScheme of either EXTERNAL or INTERNAL_SELF_MANAGED. To use the
23711
+ # regionUrlMaps resource, the backend service must have a loadBalancingScheme of
23712
+ # INTERNAL_MANAGED. For more information, read URL Map Concepts.
21981
23713
  # Corresponds to the JSON property `resource`
21982
23714
  # @return [Google::Apis::ComputeBeta::UrlMap]
21983
23715
  attr_accessor :resource
@@ -22016,8 +23748,8 @@ module Google
22016
23748
 
22017
23749
  # Represents a reservation resource. A reservation ensures that capacity is held
22018
23750
  # in a specific zone even if the reserved VMs are not running. For more
22019
- # information, read Reserving zonal resources. (== resource_for beta.
22020
- # reservations ==) (== resource_for v1.reservations ==)
23751
+ # information, read Reserving zonal resources. (== resource_for `$api_version`.
23752
+ # reservations ==)
22021
23753
  class Reservation
22022
23754
  include Google::Apis::Core::Hashable
22023
23755
 
@@ -22654,6 +24386,12 @@ module Google
22654
24386
  # @return [String]
22655
24387
  attr_accessor :description
22656
24388
 
24389
+ # A GroupPlacementPolicy specifies resource placement configuration. It
24390
+ # specifies the failure bucket separation as well as network locality
24391
+ # Corresponds to the JSON property `groupPlacementPolicy`
24392
+ # @return [Google::Apis::ComputeBeta::ResourcePolicyGroupPlacementPolicy]
24393
+ attr_accessor :group_placement_policy
24394
+
22657
24395
  # [Output Only] The unique identifier for the resource. This identifier is
22658
24396
  # defined by the server.
22659
24397
  # Corresponds to the JSON property `id`
@@ -22707,6 +24445,7 @@ module Google
22707
24445
  def update!(**args)
22708
24446
  @creation_timestamp = args[:creation_timestamp] if args.key?(:creation_timestamp)
22709
24447
  @description = args[:description] if args.key?(:description)
24448
+ @group_placement_policy = args[:group_placement_policy] if args.key?(:group_placement_policy)
22710
24449
  @id = args[:id] if args.key?(:id)
22711
24450
  @kind = args[:kind] if args.key?(:kind)
22712
24451
  @name = args[:name] if args.key?(:name)
@@ -22874,6 +24613,40 @@ module Google
22874
24613
  end
22875
24614
  end
22876
24615
 
24616
+ # A GroupPlacementPolicy specifies resource placement configuration. It
24617
+ # specifies the failure bucket separation as well as network locality
24618
+ class ResourcePolicyGroupPlacementPolicy
24619
+ include Google::Apis::Core::Hashable
24620
+
24621
+ # The number of availability domains instances will be spread across. If two
24622
+ # instances are in different availability domain, they will not be put in the
24623
+ # same low latency network
24624
+ # Corresponds to the JSON property `availabilityDomainCount`
24625
+ # @return [Fixnum]
24626
+ attr_accessor :availability_domain_count
24627
+
24628
+ # Specifies network collocation
24629
+ # Corresponds to the JSON property `collocation`
24630
+ # @return [String]
24631
+ attr_accessor :collocation
24632
+
24633
+ # Number of vms in this placement group
24634
+ # Corresponds to the JSON property `vmCount`
24635
+ # @return [Fixnum]
24636
+ attr_accessor :vm_count
24637
+
24638
+ def initialize(**args)
24639
+ update!(**args)
24640
+ end
24641
+
24642
+ # Update properties of this object
24643
+ def update!(**args)
24644
+ @availability_domain_count = args[:availability_domain_count] if args.key?(:availability_domain_count)
24645
+ @collocation = args[:collocation] if args.key?(:collocation)
24646
+ @vm_count = args[:vm_count] if args.key?(:vm_count)
24647
+ end
24648
+ end
24649
+
22877
24650
  # Time window specified for hourly operations.
22878
24651
  class ResourcePolicyHourlyCycle
22879
24652
  include Google::Apis::Core::Hashable
@@ -23126,7 +24899,7 @@ module Google
23126
24899
  class ResourcePolicySnapshotSchedulePolicySnapshotProperties
23127
24900
  include Google::Apis::Core::Hashable
23128
24901
 
23129
- # Indication to perform a ?guest aware? snapshot.
24902
+ # Indication to perform a 'guest aware' snapshot.
23130
24903
  # Corresponds to the JSON property `guestFlush`
23131
24904
  # @return [Boolean]
23132
24905
  attr_accessor :guest_flush
@@ -23211,8 +24984,8 @@ module Google
23211
24984
  # Represents a Route resource.
23212
24985
  # A route defines a path from VM instances in the VPC network to a specific
23213
24986
  # destination. This destination can be inside or outside the VPC network. For
23214
- # more information, read the Routes overview. (== resource_for beta.routes ==) (=
23215
- # = resource_for v1.routes ==)
24987
+ # more information, read the Routes overview. (== resource_for `$api_version`.
24988
+ # routes ==)
23216
24989
  class Route
23217
24990
  include Google::Apis::Core::Hashable
23218
24991
 
@@ -23824,7 +25597,7 @@ module Google
23824
25597
  # peer. Hold time is three times the interval at which keepalive messages are
23825
25598
  # sent, and the hold time is the maximum number of seconds allowed to elapse
23826
25599
  # between successive keepalive messages that BGP receives from a peer. BGP will
23827
- # use the smaller of either the local hold time value or the peer?s hold time
25600
+ # use the smaller of either the local hold time value or the peer's hold time
23828
25601
  # value as the hold time for the BGP connection between the two peers. If set,
23829
25602
  # this value must be between 1 and 120. The default is 20.
23830
25603
  # Corresponds to the JSON property `keepaliveInterval`
@@ -24774,20 +26547,13 @@ module Google
24774
26547
 
24775
26548
  # Specifies how port is selected for health checking, can be one of following
24776
26549
  # values:
24777
- # USE_FIXED_PORT: The port number in
24778
- # port
24779
- # is used for health checking.
24780
- # USE_NAMED_PORT: The
24781
- # portName
24782
- # is used for health checking.
26550
+ # USE_FIXED_PORT: The port number in port is used for health checking.
26551
+ # USE_NAMED_PORT: The portName is used for health checking.
24783
26552
  # USE_SERVING_PORT: For NetworkEndpointGroup, the port specified for each
24784
26553
  # network endpoint is used for health checking. For other backends, the port or
24785
26554
  # named port specified in the Backend Service is used for health checking.
24786
- # If not specified, SSL health check follows behavior specified in
24787
- # port
24788
- # and
24789
- # portName
24790
- # fields.
26555
+ # If not specified, SSL health check follows behavior specified in port and
26556
+ # portName fields.
24791
26557
  # Corresponds to the JSON property `portSpecification`
24792
26558
  # @return [String]
24793
26559
  attr_accessor :port_specification
@@ -24828,6 +26594,129 @@ module Google
24828
26594
  end
24829
26595
  end
24830
26596
 
26597
+ # An instance-attached disk resource.
26598
+ class SavedAttachedDisk
26599
+ include Google::Apis::Core::Hashable
26600
+
26601
+ # Specifies whether the disk will be auto-deleted when the instance is deleted (
26602
+ # but not when the disk is detached from the instance).
26603
+ # Corresponds to the JSON property `autoDelete`
26604
+ # @return [Boolean]
26605
+ attr_accessor :auto_delete
26606
+ alias_method :auto_delete?, :auto_delete
26607
+
26608
+ # Indicates that this is a boot disk. The virtual machine will use the first
26609
+ # partition of the disk for its root filesystem.
26610
+ # Corresponds to the JSON property `boot`
26611
+ # @return [Boolean]
26612
+ attr_accessor :boot
26613
+ alias_method :boot?, :boot
26614
+
26615
+ # Specifies the name of the disk attached to the source instance.
26616
+ # Corresponds to the JSON property `deviceName`
26617
+ # @return [String]
26618
+ attr_accessor :device_name
26619
+
26620
+ # Represents a customer-supplied encryption key
26621
+ # Corresponds to the JSON property `diskEncryptionKey`
26622
+ # @return [Google::Apis::ComputeBeta::CustomerEncryptionKey]
26623
+ attr_accessor :disk_encryption_key
26624
+
26625
+ # The size of the disk in base-2 GB.
26626
+ # Corresponds to the JSON property `diskSizeGb`
26627
+ # @return [Fixnum]
26628
+ attr_accessor :disk_size_gb
26629
+
26630
+ # [Output Only] URL of the disk type resource. For example: projects/project/
26631
+ # zones/zone/diskTypes/pd-standard or pd-ssd
26632
+ # Corresponds to the JSON property `diskType`
26633
+ # @return [String]
26634
+ attr_accessor :disk_type
26635
+
26636
+ # A list of features to enable on the guest operating system. Applicable only
26637
+ # for bootable images. Read Enabling guest operating system features to see a
26638
+ # list of available options.
26639
+ # Corresponds to the JSON property `guestOsFeatures`
26640
+ # @return [Array<Google::Apis::ComputeBeta::GuestOsFeature>]
26641
+ attr_accessor :guest_os_features
26642
+
26643
+ # Specifies zero-based index of the disk that is attached to the source instance.
26644
+ # Corresponds to the JSON property `index`
26645
+ # @return [Fixnum]
26646
+ attr_accessor :index
26647
+
26648
+ # Specifies the disk interface to use for attaching this disk, which is either
26649
+ # SCSI or NVME.
26650
+ # Corresponds to the JSON property `interface`
26651
+ # @return [String]
26652
+ attr_accessor :interface
26653
+
26654
+ # [Output Only] Type of the resource. Always compute#attachedDisk for attached
26655
+ # disks.
26656
+ # Corresponds to the JSON property `kind`
26657
+ # @return [String]
26658
+ attr_accessor :kind
26659
+
26660
+ # [Output Only] Any valid publicly visible licenses.
26661
+ # Corresponds to the JSON property `licenses`
26662
+ # @return [Array<String>]
26663
+ attr_accessor :licenses
26664
+
26665
+ # The mode in which this disk is attached to the source instance, either
26666
+ # READ_WRITE or READ_ONLY.
26667
+ # Corresponds to the JSON property `mode`
26668
+ # @return [String]
26669
+ attr_accessor :mode
26670
+
26671
+ # Specifies a URL of the disk attached to the source instance.
26672
+ # Corresponds to the JSON property `source`
26673
+ # @return [String]
26674
+ attr_accessor :source
26675
+
26676
+ # [Output Only] A size of the storage used by the disk's snapshot by this
26677
+ # machine image.
26678
+ # Corresponds to the JSON property `storageBytes`
26679
+ # @return [Fixnum]
26680
+ attr_accessor :storage_bytes
26681
+
26682
+ # [Output Only] An indicator whether storageBytes is in a stable state or it is
26683
+ # being adjusted as a result of shared storage reallocation. This status can
26684
+ # either be UPDATING, meaning the size of the snapshot is being updated, or
26685
+ # UP_TO_DATE, meaning the size of the snapshot is up-to-date.
26686
+ # Corresponds to the JSON property `storageBytesStatus`
26687
+ # @return [String]
26688
+ attr_accessor :storage_bytes_status
26689
+
26690
+ # Specifies the type of the attached disk, either SCRATCH or PERSISTENT.
26691
+ # Corresponds to the JSON property `type`
26692
+ # @return [String]
26693
+ attr_accessor :type
26694
+
26695
+ def initialize(**args)
26696
+ update!(**args)
26697
+ end
26698
+
26699
+ # Update properties of this object
26700
+ def update!(**args)
26701
+ @auto_delete = args[:auto_delete] if args.key?(:auto_delete)
26702
+ @boot = args[:boot] if args.key?(:boot)
26703
+ @device_name = args[:device_name] if args.key?(:device_name)
26704
+ @disk_encryption_key = args[:disk_encryption_key] if args.key?(:disk_encryption_key)
26705
+ @disk_size_gb = args[:disk_size_gb] if args.key?(:disk_size_gb)
26706
+ @disk_type = args[:disk_type] if args.key?(:disk_type)
26707
+ @guest_os_features = args[:guest_os_features] if args.key?(:guest_os_features)
26708
+ @index = args[:index] if args.key?(:index)
26709
+ @interface = args[:interface] if args.key?(:interface)
26710
+ @kind = args[:kind] if args.key?(:kind)
26711
+ @licenses = args[:licenses] if args.key?(:licenses)
26712
+ @mode = args[:mode] if args.key?(:mode)
26713
+ @source = args[:source] if args.key?(:source)
26714
+ @storage_bytes = args[:storage_bytes] if args.key?(:storage_bytes)
26715
+ @storage_bytes_status = args[:storage_bytes_status] if args.key?(:storage_bytes_status)
26716
+ @type = args[:type] if args.key?(:type)
26717
+ end
26718
+ end
26719
+
24831
26720
  # Sets the scheduling options for an Instance. NextID: 9
24832
26721
  class Scheduling
24833
26722
  include Google::Apis::Core::Hashable
@@ -24843,6 +26732,12 @@ module Google
24843
26732
  attr_accessor :automatic_restart
24844
26733
  alias_method :automatic_restart?, :automatic_restart
24845
26734
 
26735
+ # The minimum number of virtual CPUs this instance will consume when running on
26736
+ # a sole-tenant node.
26737
+ # Corresponds to the JSON property `minNodeCpus`
26738
+ # @return [Fixnum]
26739
+ attr_accessor :min_node_cpus
26740
+
24846
26741
  # A set of node affinity and anti-affinity configurations. Refer to Configuring
24847
26742
  # node affinity for more information.
24848
26743
  # Corresponds to the JSON property `nodeAffinities`
@@ -24872,6 +26767,7 @@ module Google
24872
26767
  # Update properties of this object
24873
26768
  def update!(**args)
24874
26769
  @automatic_restart = args[:automatic_restart] if args.key?(:automatic_restart)
26770
+ @min_node_cpus = args[:min_node_cpus] if args.key?(:min_node_cpus)
24875
26771
  @node_affinities = args[:node_affinities] if args.key?(:node_affinities)
24876
26772
  @on_host_maintenance = args[:on_host_maintenance] if args.key?(:on_host_maintenance)
24877
26773
  @preemptible = args[:preemptible] if args.key?(:preemptible)
@@ -24952,8 +26848,7 @@ module Google
24952
26848
  # Represents a Cloud Armor Security Policy resource.
24953
26849
  # Only external backend services that use load balancers can reference a
24954
26850
  # Security Policy. For more information, read Cloud Armor Security Policy
24955
- # Concepts. (== resource_for v1.securityPolicies ==) (== resource_for beta.
24956
- # securityPolicies ==)
26851
+ # Concepts. (== resource_for `$api_version`.securityPolicies ==)
24957
26852
  class SecurityPolicy
24958
26853
  include Google::Apis::Core::Hashable
24959
26854
 
@@ -25651,13 +27546,13 @@ module Google
25651
27546
 
25652
27547
  # Represents a Persistent Disk Snapshot resource.
25653
27548
  # You can use snapshots to back up data on a regular interval. For more
25654
- # information, read Creating persistent disk snapshots. (== resource_for beta.
25655
- # snapshots ==) (== resource_for v1.snapshots ==)
27549
+ # information, read Creating persistent disk snapshots. (== resource_for `$
27550
+ # api_version`.snapshots ==)
25656
27551
  class Snapshot
25657
27552
  include Google::Apis::Core::Hashable
25658
27553
 
25659
- # [Output Only] Set to true if snapshots are automatically by applying resource
25660
- # policy on the target disk.
27554
+ # [Output Only] Set to true if snapshots are automatically created by applying
27555
+ # resource policy on the target disk.
25661
27556
  # Corresponds to the JSON property `autoCreated`
25662
27557
  # @return [Boolean]
25663
27558
  attr_accessor :auto_created
@@ -25679,6 +27574,11 @@ module Google
25679
27574
  # @return [Fixnum]
25680
27575
  attr_accessor :disk_size_gb
25681
27576
 
27577
+ # [Output Only] Number of bytes downloaded to restore a snapshot to a disk.
27578
+ # Corresponds to the JSON property `downloadBytes`
27579
+ # @return [Fixnum]
27580
+ attr_accessor :download_bytes
27581
+
25682
27582
  # [Output Only] The unique identifier for the resource. This identifier is
25683
27583
  # defined by the server.
25684
27584
  # Corresponds to the JSON property `id`
@@ -25795,6 +27695,7 @@ module Google
25795
27695
  @creation_timestamp = args[:creation_timestamp] if args.key?(:creation_timestamp)
25796
27696
  @description = args[:description] if args.key?(:description)
25797
27697
  @disk_size_gb = args[:disk_size_gb] if args.key?(:disk_size_gb)
27698
+ @download_bytes = args[:download_bytes] if args.key?(:download_bytes)
25798
27699
  @id = args[:id] if args.key?(:id)
25799
27700
  @kind = args[:kind] if args.key?(:kind)
25800
27701
  @label_fingerprint = args[:label_fingerprint] if args.key?(:label_fingerprint)
@@ -25931,6 +27832,35 @@ module Google
25931
27832
  end
25932
27833
  end
25933
27834
 
27835
+ #
27836
+ class SourceDiskEncryptionKey
27837
+ include Google::Apis::Core::Hashable
27838
+
27839
+ # Represents a customer-supplied encryption key
27840
+ # Corresponds to the JSON property `diskEncryptionKey`
27841
+ # @return [Google::Apis::ComputeBeta::CustomerEncryptionKey]
27842
+ attr_accessor :disk_encryption_key
27843
+
27844
+ # URL of the disk attached to the source instance. This can be a full or valid
27845
+ # partial URL. For example, the following are valid values:
27846
+ # - https://www.googleapis.com/compute/v1/projects/project/zones/zone/disks/disk
27847
+ # - projects/project/zones/zone/disks/disk
27848
+ # - zones/zone/disks/disk
27849
+ # Corresponds to the JSON property `sourceDisk`
27850
+ # @return [String]
27851
+ attr_accessor :source_disk
27852
+
27853
+ def initialize(**args)
27854
+ update!(**args)
27855
+ end
27856
+
27857
+ # Update properties of this object
27858
+ def update!(**args)
27859
+ @disk_encryption_key = args[:disk_encryption_key] if args.key?(:disk_encryption_key)
27860
+ @source_disk = args[:source_disk] if args.key?(:source_disk)
27861
+ end
27862
+ end
27863
+
25934
27864
  # A specification of the parameters to use when creating the instance template
25935
27865
  # from a source instance.
25936
27866
  class SourceInstanceParams
@@ -25954,11 +27884,127 @@ module Google
25954
27884
  end
25955
27885
  end
25956
27886
 
27887
+ #
27888
+ class SourceInstanceProperties
27889
+ include Google::Apis::Core::Hashable
27890
+
27891
+ # Enables instances created based on this machine image to send packets with
27892
+ # source IP addresses other than their own and receive packets with destination
27893
+ # IP addresses other than their own. If these instances will be used as an IP
27894
+ # gateway or it will be set as the next-hop in a Route resource, specify true.
27895
+ # If unsure, leave this set to false. See the Enable IP forwarding documentation
27896
+ # for more information.
27897
+ # Corresponds to the JSON property `canIpForward`
27898
+ # @return [Boolean]
27899
+ attr_accessor :can_ip_forward
27900
+ alias_method :can_ip_forward?, :can_ip_forward
27901
+
27902
+ # Whether the instance created from this machine image should be protected
27903
+ # against deletion.
27904
+ # Corresponds to the JSON property `deletionProtection`
27905
+ # @return [Boolean]
27906
+ attr_accessor :deletion_protection
27907
+ alias_method :deletion_protection?, :deletion_protection
27908
+
27909
+ # An optional text description for the instances that are created from this
27910
+ # machine image.
27911
+ # Corresponds to the JSON property `description`
27912
+ # @return [String]
27913
+ attr_accessor :description
27914
+
27915
+ # An array of disks that are associated with the instances that are created from
27916
+ # this machine image.
27917
+ # Corresponds to the JSON property `disks`
27918
+ # @return [Array<Google::Apis::ComputeBeta::SavedAttachedDisk>]
27919
+ attr_accessor :disks
27920
+
27921
+ # A list of guest accelerator cards' type and count to use for instances created
27922
+ # from this machine image.
27923
+ # Corresponds to the JSON property `guestAccelerators`
27924
+ # @return [Array<Google::Apis::ComputeBeta::AcceleratorConfig>]
27925
+ attr_accessor :guest_accelerators
27926
+
27927
+ # Labels to apply to instances that are created from this machine image.
27928
+ # Corresponds to the JSON property `labels`
27929
+ # @return [Hash<String,String>]
27930
+ attr_accessor :labels
27931
+
27932
+ # The machine type to use for instances that are created from this machine image.
27933
+ # Corresponds to the JSON property `machineType`
27934
+ # @return [String]
27935
+ attr_accessor :machine_type
27936
+
27937
+ # A metadata key/value entry.
27938
+ # Corresponds to the JSON property `metadata`
27939
+ # @return [Google::Apis::ComputeBeta::Metadata]
27940
+ attr_accessor :metadata
27941
+
27942
+ # Minimum cpu/platform to be used by instances created from this machine image.
27943
+ # The instance may be scheduled on the specified or newer cpu/platform.
27944
+ # Applicable values are the friendly names of CPU platforms, such as
27945
+ # minCpuPlatform: "Intel Haswell" or minCpuPlatform: "Intel Sandy Bridge". For
27946
+ # more information, read Specifying a Minimum CPU Platform.
27947
+ # Corresponds to the JSON property `minCpuPlatform`
27948
+ # @return [String]
27949
+ attr_accessor :min_cpu_platform
27950
+
27951
+ # An array of network access configurations for this interface.
27952
+ # Corresponds to the JSON property `networkInterfaces`
27953
+ # @return [Array<Google::Apis::ComputeBeta::NetworkInterface>]
27954
+ attr_accessor :network_interfaces
27955
+
27956
+ # Sets the scheduling options for an Instance. NextID: 9
27957
+ # Corresponds to the JSON property `scheduling`
27958
+ # @return [Google::Apis::ComputeBeta::Scheduling]
27959
+ attr_accessor :scheduling
27960
+
27961
+ # A list of service accounts with specified scopes. Access tokens for these
27962
+ # service accounts are available to the instances that are created from this
27963
+ # machine image. Use metadata queries to obtain the access tokens for these
27964
+ # instances.
27965
+ # Corresponds to the JSON property `serviceAccounts`
27966
+ # @return [Array<Google::Apis::ComputeBeta::ServiceAccount>]
27967
+ attr_accessor :service_accounts
27968
+
27969
+ # A set of instance tags.
27970
+ # Corresponds to the JSON property `tags`
27971
+ # @return [Google::Apis::ComputeBeta::Tags]
27972
+ attr_accessor :tags
27973
+
27974
+ def initialize(**args)
27975
+ update!(**args)
27976
+ end
27977
+
27978
+ # Update properties of this object
27979
+ def update!(**args)
27980
+ @can_ip_forward = args[:can_ip_forward] if args.key?(:can_ip_forward)
27981
+ @deletion_protection = args[:deletion_protection] if args.key?(:deletion_protection)
27982
+ @description = args[:description] if args.key?(:description)
27983
+ @disks = args[:disks] if args.key?(:disks)
27984
+ @guest_accelerators = args[:guest_accelerators] if args.key?(:guest_accelerators)
27985
+ @labels = args[:labels] if args.key?(:labels)
27986
+ @machine_type = args[:machine_type] if args.key?(:machine_type)
27987
+ @metadata = args[:metadata] if args.key?(:metadata)
27988
+ @min_cpu_platform = args[:min_cpu_platform] if args.key?(:min_cpu_platform)
27989
+ @network_interfaces = args[:network_interfaces] if args.key?(:network_interfaces)
27990
+ @scheduling = args[:scheduling] if args.key?(:scheduling)
27991
+ @service_accounts = args[:service_accounts] if args.key?(:service_accounts)
27992
+ @tags = args[:tags] if args.key?(:tags)
27993
+ end
27994
+ end
27995
+
25957
27996
  # Represents an SSL Certificate resource.
27997
+ # Google Compute Engine has two SSL Certificate resources:
27998
+ # * [Global](/compute/docs/reference/rest/latest/sslCertificates) * [Regional](/
27999
+ # compute/docs/reference/rest/latest/regionSslCertificates)
28000
+ # - sslCertificates are used by: - external HTTPS load balancers - SSL proxy
28001
+ # load balancers
28002
+ # - regionSslCertificates are used by: - internal HTTPS load balancers
25958
28003
  # This SSL certificate resource also contains a private key. You can use SSL
25959
28004
  # keys and certificates to secure connections to a load balancer. For more
25960
- # information, read Creating and Using SSL Certificates. (== resource_for beta.
25961
- # sslCertificates ==) (== resource_for v1.sslCertificates ==)
28005
+ # information, read Creating and Using SSL Certificates. (== resource_for `$
28006
+ # api_version`.sslCertificates ==) (== resource_for `$api_version`.
28007
+ # regionSslCertificates ==) Next ID: 17
25962
28008
  class SslCertificate
25963
28009
  include Google::Apis::Core::Hashable
25964
28010
 
@@ -26597,8 +28643,7 @@ module Google
26597
28643
  # Represents a Cloud Armor Security Policy resource.
26598
28644
  # Only external backend services used by HTTP or HTTPS load balancers can
26599
28645
  # reference a Security Policy. For more information, read read Cloud Armor
26600
- # Security Policy Concepts. (== resource_for beta.sslPolicies ==) (==
26601
- # resource_for v1.sslPolicies ==)
28646
+ # Security Policy Concepts. (== resource_for `$api_version`.sslPolicies ==)
26602
28647
  class SslPolicy
26603
28648
  include Google::Apis::Core::Hashable
26604
28649
 
@@ -26788,11 +28833,73 @@ module Google
26788
28833
  end
26789
28834
  end
26790
28835
 
28836
+ #
28837
+ class StatefulPolicy
28838
+ include Google::Apis::Core::Hashable
28839
+
28840
+ # Configuration of preserved resources.
28841
+ # Corresponds to the JSON property `preservedState`
28842
+ # @return [Google::Apis::ComputeBeta::StatefulPolicyPreservedState]
28843
+ attr_accessor :preserved_state
28844
+
28845
+ def initialize(**args)
28846
+ update!(**args)
28847
+ end
28848
+
28849
+ # Update properties of this object
28850
+ def update!(**args)
28851
+ @preserved_state = args[:preserved_state] if args.key?(:preserved_state)
28852
+ end
28853
+ end
28854
+
28855
+ # Configuration of preserved resources.
28856
+ class StatefulPolicyPreservedState
28857
+ include Google::Apis::Core::Hashable
28858
+
28859
+ # Disks created on the instances that will be preserved on instance delete,
28860
+ # update, etc. This map is keyed with the device names of the disks.
28861
+ # Corresponds to the JSON property `disks`
28862
+ # @return [Hash<String,Google::Apis::ComputeBeta::StatefulPolicyPreservedStateDiskDevice>]
28863
+ attr_accessor :disks
28864
+
28865
+ def initialize(**args)
28866
+ update!(**args)
28867
+ end
28868
+
28869
+ # Update properties of this object
28870
+ def update!(**args)
28871
+ @disks = args[:disks] if args.key?(:disks)
28872
+ end
28873
+ end
28874
+
28875
+ #
28876
+ class StatefulPolicyPreservedStateDiskDevice
28877
+ include Google::Apis::Core::Hashable
28878
+
28879
+ # These stateful disks will never be deleted during autohealing, update or VM
28880
+ # instance recreate operations. This flag is used to configure if the disk
28881
+ # should be deleted after it is no longer used by the group, e.g. when the given
28882
+ # instance or the whole group is deleted. Note: disks attached in READ_ONLY mode
28883
+ # cannot be auto-deleted.
28884
+ # Corresponds to the JSON property `autoDelete`
28885
+ # @return [String]
28886
+ attr_accessor :auto_delete
28887
+
28888
+ def initialize(**args)
28889
+ update!(**args)
28890
+ end
28891
+
28892
+ # Update properties of this object
28893
+ def update!(**args)
28894
+ @auto_delete = args[:auto_delete] if args.key?(:auto_delete)
28895
+ end
28896
+ end
28897
+
26791
28898
  # Represents a Subnetwork resource.
26792
28899
  # A subnetwork (also known as a subnet) is a logical partition of a Virtual
26793
28900
  # Private Cloud network with one primary IP range and zero or more secondary IP
26794
28901
  # ranges. For more information, read Virtual Private Cloud (VPC) Network. (==
26795
- # resource_for beta.subnetworks ==) (== resource_for v1.subnetworks ==)
28902
+ # resource_for `$api_version`.subnetworks ==)
26796
28903
  class Subnetwork
26797
28904
  include Google::Apis::Core::Hashable
26798
28905
 
@@ -26862,6 +28969,12 @@ module Google
26862
28969
  # @return [String]
26863
28970
  attr_accessor :ip_cidr_range
26864
28971
 
28972
+ # [Output Only] The range of internal IPv6 addresses that are owned by this
28973
+ # subnetwork.
28974
+ # Corresponds to the JSON property `ipv6CidrRange`
28975
+ # @return [String]
28976
+ attr_accessor :ipv6_cidr_range
28977
+
26865
28978
  # [Output Only] Type of the resource. Always compute#subnetwork for Subnetwork
26866
28979
  # resources.
26867
28980
  # Corresponds to the JSON property `kind`
@@ -26899,6 +29012,24 @@ module Google
26899
29012
  attr_accessor :private_ip_google_access
26900
29013
  alias_method :private_ip_google_access?, :private_ip_google_access
26901
29014
 
29015
+ # The private IPv6 google access type for the VMs in this subnet. This is an
29016
+ # expanded field of enablePrivateV6Access. If both fields are set,
29017
+ # privateIpv6GoogleAccess will take priority.
29018
+ # This field can be both set at resource creation time and updated using patch.
29019
+ # Corresponds to the JSON property `privateIpv6GoogleAccess`
29020
+ # @return [String]
29021
+ attr_accessor :private_ipv6_google_access
29022
+
29023
+ # Deprecated in favor of enable PrivateIpv6GoogleAccess on instance directly.
29024
+ # The service accounts can be used to selectively turn on Private IPv6 Google
29025
+ # Access only on the VMs primary service account matching the value. This value
29026
+ # only takes effect when PrivateIpv6GoogleAccess is
29027
+ # ENABLE_OUTBOUND_VM_ACCESS_TO_GOOGLE_FOR_SERVICE_ACCOUNTS or
29028
+ # ENABLE_BIDIRECTIONAL_ACCESS_TO_GOOGLE_FOR_SERVICE_ACCOUNTS.
29029
+ # Corresponds to the JSON property `privateIpv6GoogleAccessServiceAccounts`
29030
+ # @return [Array<String>]
29031
+ attr_accessor :private_ipv6_google_access_service_accounts
29032
+
26902
29033
  # The purpose of the resource. This field can be either PRIVATE_RFC_1918 or
26903
29034
  # INTERNAL_HTTPS_LOAD_BALANCER. A subnetwork with purpose set to
26904
29035
  # INTERNAL_HTTPS_LOAD_BALANCER is a user-created subnetwork that is reserved for
@@ -26961,11 +29092,14 @@ module Google
26961
29092
  @gateway_address = args[:gateway_address] if args.key?(:gateway_address)
26962
29093
  @id = args[:id] if args.key?(:id)
26963
29094
  @ip_cidr_range = args[:ip_cidr_range] if args.key?(:ip_cidr_range)
29095
+ @ipv6_cidr_range = args[:ipv6_cidr_range] if args.key?(:ipv6_cidr_range)
26964
29096
  @kind = args[:kind] if args.key?(:kind)
26965
29097
  @log_config = args[:log_config] if args.key?(:log_config)
26966
29098
  @name = args[:name] if args.key?(:name)
26967
29099
  @network = args[:network] if args.key?(:network)
26968
29100
  @private_ip_google_access = args[:private_ip_google_access] if args.key?(:private_ip_google_access)
29101
+ @private_ipv6_google_access = args[:private_ipv6_google_access] if args.key?(:private_ipv6_google_access)
29102
+ @private_ipv6_google_access_service_accounts = args[:private_ipv6_google_access_service_accounts] if args.key?(:private_ipv6_google_access_service_accounts)
26969
29103
  @purpose = args[:purpose] if args.key?(:purpose)
26970
29104
  @region = args[:region] if args.key?(:region)
26971
29105
  @role = args[:role] if args.key?(:role)
@@ -27439,20 +29573,13 @@ module Google
27439
29573
 
27440
29574
  # Specifies how port is selected for health checking, can be one of following
27441
29575
  # values:
27442
- # USE_FIXED_PORT: The port number in
27443
- # port
27444
- # is used for health checking.
27445
- # USE_NAMED_PORT: The
27446
- # portName
27447
- # is used for health checking.
29576
+ # USE_FIXED_PORT: The port number in port is used for health checking.
29577
+ # USE_NAMED_PORT: The portName is used for health checking.
27448
29578
  # USE_SERVING_PORT: For NetworkEndpointGroup, the port specified for each
27449
29579
  # network endpoint is used for health checking. For other backends, the port or
27450
29580
  # named port specified in the Backend Service is used for health checking.
27451
- # If not specified, TCP health check follows behavior specified in
27452
- # port
27453
- # and
27454
- # portName
27455
- # fields.
29581
+ # If not specified, TCP health check follows behavior specified in port and
29582
+ # portName fields.
27456
29583
  # Corresponds to the JSON property `portSpecification`
27457
29584
  # @return [String]
27458
29585
  attr_accessor :port_specification
@@ -27617,11 +29744,16 @@ module Google
27617
29744
  end
27618
29745
 
27619
29746
  # Represents a Target HTTP Proxy resource.
27620
- # A target HTTP proxy is a component of certain types of load balancers. Global
27621
- # forwarding rules reference a target HTTP proxy, and the target proxy then
27622
- # references a URL map. For more information, read Using Target Proxies. (==
27623
- # resource_for beta.targetHttpProxies ==) (== resource_for v1.targetHttpProxies =
27624
- # =)
29747
+ # Google Compute Engine has two Target HTTP Proxy resources:
29748
+ # * [Global](/compute/docs/reference/rest/latest/targetHttpProxies) * [Regional](
29749
+ # /compute/docs/reference/rest/latest/regionTargetHttpProxies)
29750
+ # A target HTTP proxy is a component of GCP HTTP load balancers.
29751
+ # * targetHttpProxies are used by external HTTP load balancers and Traffic
29752
+ # Director. * regionTargetHttpProxies are used by internal HTTP load balancers.
29753
+ # Forwarding rules reference a target HTTP proxy, and the target proxy then
29754
+ # references a URL map. For more information, read Using Target Proxies and
29755
+ # Forwarding rule concepts. (== resource_for `$api_version`.targetHttpProxies ==)
29756
+ # (== resource_for `$api_version`.regionTargetHttpProxies ==)
27625
29757
  class TargetHttpProxy
27626
29758
  include Google::Apis::Core::Hashable
27627
29759
 
@@ -28059,11 +30191,16 @@ module Google
28059
30191
  end
28060
30192
 
28061
30193
  # Represents a Target HTTPS Proxy resource.
28062
- # A target HTTPS proxy is a component of certain types of load balancers. Global
28063
- # forwarding rules reference a target HTTPS proxy, and the target proxy then
28064
- # references a URL map. For more information, read Using Target Proxies. (==
28065
- # resource_for beta.targetHttpsProxies ==) (== resource_for v1.
28066
- # targetHttpsProxies ==)
30194
+ # Google Compute Engine has two Target HTTPS Proxy resources:
30195
+ # * [Global](/compute/docs/reference/rest/latest/targetHttpsProxies) * [Regional]
30196
+ # (/compute/docs/reference/rest/latest/regionTargetHttpsProxies)
30197
+ # A target HTTPS proxy is a component of GCP HTTPS load balancers.
30198
+ # * targetHttpsProxies are used by external HTTPS load balancers. *
30199
+ # regionTargetHttpsProxies are used by internal HTTPS load balancers.
30200
+ # Forwarding rules reference a target HTTPS proxy, and the target proxy then
30201
+ # references a URL map. For more information, read Using Target Proxies and
30202
+ # Forwarding rule concepts. (== resource_for `$api_version`.targetHttpsProxies ==
30203
+ # ) (== resource_for `$api_version`.regionTargetHttpsProxies ==)
28067
30204
  class TargetHttpsProxy
28068
30205
  include Google::Apis::Core::Hashable
28069
30206
 
@@ -28408,8 +30545,7 @@ module Google
28408
30545
  # You can use a target instance to handle traffic for one or more forwarding
28409
30546
  # rules, which is ideal for forwarding protocol traffic that is managed by a
28410
30547
  # single source. For example, ESP, AH, TCP, or UDP. For more information, read
28411
- # Target instances. (== resource_for beta.targetInstances ==) (== resource_for
28412
- # v1.targetInstances ==)
30548
+ # Target instances. (== resource_for `$api_version`.targetInstances ==)
28413
30549
  class TargetInstance
28414
30550
  include Google::Apis::Core::Hashable
28415
30551
 
@@ -28823,8 +30959,7 @@ module Google
28823
30959
  # Target pools are used for network TCP/UDP load balancing. A target pool
28824
30960
  # references member instances, an associated legacy HttpHealthCheck resource,
28825
30961
  # and, optionally, a backup target pool. For more information, read Using target
28826
- # pools. (== resource_for beta.targetPools ==) (== resource_for v1.targetPools ==
28827
- # )
30962
+ # pools. (== resource_for `$api_version`.targetPools ==)
28828
30963
  class TargetPool
28829
30964
  include Google::Apis::Core::Hashable
28830
30965
 
@@ -29467,8 +31602,7 @@ module Google
29467
31602
  # A target SSL proxy is a component of a SSL Proxy load balancer. Global
29468
31603
  # forwarding rules reference a target SSL proxy, and the target proxy then
29469
31604
  # references an external backend service. For more information, read Using
29470
- # Target Proxies. (== resource_for beta.targetSslProxies ==) (== resource_for v1.
29471
- # targetSslProxies ==)
31605
+ # Target Proxies. (== resource_for `$api_version`.targetSslProxies ==)
29472
31606
  class TargetSslProxy
29473
31607
  include Google::Apis::Core::Hashable
29474
31608
 
@@ -29714,8 +31848,7 @@ module Google
29714
31848
  # A target TCP proxy is a component of a TCP Proxy load balancer. Global
29715
31849
  # forwarding rules reference target TCP proxy, and the target proxy then
29716
31850
  # references an external backend service. For more information, read TCP Proxy
29717
- # Load Balancing Concepts. (== resource_for beta.targetTcpProxies ==) (==
29718
- # resource_for v1.targetTcpProxies ==)
31851
+ # Load Balancing Concepts. (== resource_for `$api_version`.targetTcpProxies ==)
29719
31852
  class TargetTcpProxy
29720
31853
  include Google::Apis::Core::Hashable
29721
31854
 
@@ -29904,8 +32037,8 @@ module Google
29904
32037
 
29905
32038
  # Represents a Target VPN Gateway resource.
29906
32039
  # The target VPN gateway resource represents a Classic Cloud VPN gateway. For
29907
- # more information, read the the Cloud VPN Overview. (== resource_for beta.
29908
- # targetVpnGateways ==) (== resource_for v1.targetVpnGateways ==)
32040
+ # more information, read the the Cloud VPN Overview. (== resource_for `$
32041
+ # api_version`.targetVpnGateways ==)
29909
32042
  class TargetVpnGateway
29910
32043
  include Google::Apis::Core::Hashable
29911
32044
 
@@ -30425,12 +32558,19 @@ module Google
30425
32558
  end
30426
32559
 
30427
32560
  # Represents a URL Map resource.
30428
- # A URL map resource is a component of certain types of load balancers. This
30429
- # resource defines mappings from host names and URL paths to either a backend
30430
- # service or a backend bucket.
30431
- # To use this resource, the backend service must have a loadBalancingScheme of
30432
- # either EXTERNAL, INTERNAL_SELF_MANAGED, or INTERNAL_MANAGED For more
30433
- # information, read URL Map Concepts.
32561
+ # Google Compute Engine has two URL Map resources:
32562
+ # * [Global](/compute/docs/reference/rest/latest/urlMaps) * [Regional](/compute/
32563
+ # docs/reference/rest/latest/regionUrlMaps)
32564
+ # A URL map resource is a component of certain types of GCP load balancers and
32565
+ # Traffic Director.
32566
+ # * urlMaps are used by external HTTP(S) load balancers and Traffic Director. *
32567
+ # regionUrlMaps are used by internal HTTP(S) load balancers.
32568
+ # This resource defines mappings from host names and URL paths to either a
32569
+ # backend service or a backend bucket.
32570
+ # To use the global urlMaps resource, the backend service must have a
32571
+ # loadBalancingScheme of either EXTERNAL or INTERNAL_SELF_MANAGED. To use the
32572
+ # regionUrlMaps resource, the backend service must have a loadBalancingScheme of
32573
+ # INTERNAL_MANAGED. For more information, read URL Map Concepts.
30434
32574
  class UrlMap
30435
32575
  include Google::Apis::Core::Hashable
30436
32576
 
@@ -30992,12 +33132,19 @@ module Google
30992
33132
  include Google::Apis::Core::Hashable
30993
33133
 
30994
33134
  # Represents a URL Map resource.
30995
- # A URL map resource is a component of certain types of load balancers. This
30996
- # resource defines mappings from host names and URL paths to either a backend
30997
- # service or a backend bucket.
30998
- # To use this resource, the backend service must have a loadBalancingScheme of
30999
- # either EXTERNAL, INTERNAL_SELF_MANAGED, or INTERNAL_MANAGED For more
31000
- # information, read URL Map Concepts.
33135
+ # Google Compute Engine has two URL Map resources:
33136
+ # * [Global](/compute/docs/reference/rest/latest/urlMaps) * [Regional](/compute/
33137
+ # docs/reference/rest/latest/regionUrlMaps)
33138
+ # A URL map resource is a component of certain types of GCP load balancers and
33139
+ # Traffic Director.
33140
+ # * urlMaps are used by external HTTP(S) load balancers and Traffic Director. *
33141
+ # regionUrlMaps are used by internal HTTP(S) load balancers.
33142
+ # This resource defines mappings from host names and URL paths to either a
33143
+ # backend service or a backend bucket.
33144
+ # To use the global urlMaps resource, the backend service must have a
33145
+ # loadBalancingScheme of either EXTERNAL or INTERNAL_SELF_MANAGED. To use the
33146
+ # regionUrlMaps resource, the backend service must have a loadBalancingScheme of
33147
+ # INTERNAL_MANAGED. For more information, read URL Map Concepts.
31001
33148
  # Corresponds to the JSON property `resource`
31002
33149
  # @return [Google::Apis::ComputeBeta::UrlMap]
31003
33150
  attr_accessor :resource
@@ -31478,7 +33625,7 @@ module Google
31478
33625
  end
31479
33626
  end
31480
33627
 
31481
- # Represents a VPN gateway resource.
33628
+ # Represents a VPN gateway resource. Next ID: 13
31482
33629
  class VpnGateway
31483
33630
  include Google::Apis::Core::Hashable
31484
33631
 
@@ -32069,7 +34216,7 @@ module Google
32069
34216
 
32070
34217
  # Represents a Cloud VPN Tunnel resource.
32071
34218
  # For more information about VPN, read the the Cloud VPN Overview. (==
32072
- # resource_for beta.vpnTunnels ==) (== resource_for v1.vpnTunnels ==)
34219
+ # resource_for `$api_version`.vpnTunnels ==)
32073
34220
  class VpnTunnel
32074
34221
  include Google::Apis::Core::Hashable
32075
34222
 
@@ -32856,8 +35003,7 @@ module Google
32856
35003
  # Represents a Zone resource.
32857
35004
  # A zone is a deployment area. These deployment areas are subsets of a region.
32858
35005
  # For example the zone us-east1-a is located in the us-east1 region. For more
32859
- # information, read Regions and Zones. (== resource_for beta.zones ==) (==
32860
- # resource_for v1.zones ==)
35006
+ # information, read Regions and Zones. (== resource_for `$api_version`.zones ==)
32861
35007
  class Zone
32862
35008
  include Google::Apis::Core::Hashable
32863
35009
 
@@ -33095,32 +35241,34 @@ module Google
33095
35241
  # @return [String]
33096
35242
  attr_accessor :etag
33097
35243
 
33098
- # Defines an Identity and Access Management (IAM) policy. It is used to specify
33099
- # access control policies for Cloud Platform resources.
35244
+ # An Identity and Access Management (IAM) policy, which specifies access
35245
+ # controls for Google Cloud resources.
33100
35246
  # A `Policy` is a collection of `bindings`. A `binding` binds one or more `
33101
35247
  # members` to a single `role`. Members can be user accounts, service accounts,
33102
35248
  # Google groups, and domains (such as G Suite). A `role` is a named list of
33103
- # permissions (defined by IAM or configured by users). A `binding` can
33104
- # optionally specify a `condition`, which is a logic expression that further
33105
- # constrains the role binding based on attributes about the request and/or
33106
- # target resource.
33107
- # **JSON Example**
35249
+ # permissions; each `role` can be an IAM predefined role or a user-created
35250
+ # custom role.
35251
+ # Optionally, a `binding` can specify a `condition`, which is a logical
35252
+ # expression that allows access to a resource only if the expression evaluates
35253
+ # to `true`. A condition can add constraints based on attributes of the request,
35254
+ # the resource, or both.
35255
+ # **JSON example:**
33108
35256
  # ` "bindings": [ ` "role": "roles/resourcemanager.organizationAdmin", "members":
33109
35257
  # [ "user:mike@example.com", "group:admins@example.com", "domain:google.com", "
33110
35258
  # serviceAccount:my-project-id@appspot.gserviceaccount.com" ] `, ` "role": "
33111
35259
  # roles/resourcemanager.organizationViewer", "members": ["user:eve@example.com"],
33112
35260
  # "condition": ` "title": "expirable access", "description": "Does not grant
33113
35261
  # access after Sep 2020", "expression": "request.time < timestamp('2020-10-01T00:
33114
- # 00:00.000Z')", ` ` ] `
33115
- # **YAML Example**
35262
+ # 00:00.000Z')", ` ` ], "etag": "BwWWja0YfJA=", "version": 3 `
35263
+ # **YAML example:**
33116
35264
  # bindings: - members: - user:mike@example.com - group:admins@example.com -
33117
35265
  # domain:google.com - serviceAccount:my-project-id@appspot.gserviceaccount.com
33118
35266
  # role: roles/resourcemanager.organizationAdmin - members: - user:eve@example.
33119
35267
  # com role: roles/resourcemanager.organizationViewer condition: title: expirable
33120
35268
  # access description: Does not grant access after Sep 2020 expression: request.
33121
- # time < timestamp('2020-10-01T00:00:00.000Z')
33122
- # For a description of IAM and its features, see the [IAM developer's guide](
33123
- # https://cloud.google.com/iam/docs).
35269
+ # time < timestamp('2020-10-01T00:00:00.000Z') - etag: BwWWja0YfJA= - version: 3
35270
+ # For a description of IAM and its features, see the [IAM documentation](https://
35271
+ # cloud.google.com/iam/docs/).
33124
35272
  # Corresponds to the JSON property `policy`
33125
35273
  # @return [Google::Apis::ComputeBeta::Policy]
33126
35274
  attr_accessor :policy