google-api-client 0.9.8 → 0.10.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (320) hide show
  1. checksums.yaml +4 -4
  2. data/.travis.yml +15 -8
  3. data/CHANGELOG.md +84 -0
  4. data/Gemfile +10 -2
  5. data/README.md +10 -2
  6. data/api_names.yaml +37172 -135
  7. data/generated/google/apis/adexchangebuyer2_v2beta1.rb +35 -0
  8. data/generated/google/apis/adexchangebuyer2_v2beta1/classes.rb +1200 -0
  9. data/generated/google/apis/adexchangebuyer2_v2beta1/representations.rb +526 -0
  10. data/generated/google/apis/adexchangebuyer2_v2beta1/service.rb +844 -0
  11. data/generated/google/apis/adexchangebuyer_v1_4.rb +1 -1
  12. data/generated/google/apis/adexchangebuyer_v1_4/classes.rb +310 -28
  13. data/generated/google/apis/adexchangebuyer_v1_4/representations.rb +84 -0
  14. data/generated/google/apis/adexchangebuyer_v1_4/service.rb +60 -8
  15. data/generated/google/apis/adexchangeseller_v2_0.rb +2 -3
  16. data/generated/google/apis/adexchangeseller_v2_0/service.rb +1 -2
  17. data/generated/google/apis/admin_directory_v1.rb +1 -1
  18. data/generated/google/apis/admin_directory_v1/classes.rb +206 -0
  19. data/generated/google/apis/admin_directory_v1/representations.rb +63 -0
  20. data/generated/google/apis/admin_directory_v1/service.rb +41 -2
  21. data/generated/google/apis/admin_reports_v1.rb +5 -5
  22. data/generated/google/apis/admin_reports_v1/service.rb +6 -6
  23. data/generated/google/apis/adsense_v1_4.rb +1 -1
  24. data/generated/google/apis/adsense_v1_4/classes.rb +1 -1
  25. data/generated/google/apis/adsensehost_v4_1.rb +1 -1
  26. data/generated/google/apis/adsensehost_v4_1/classes.rb +1 -2
  27. data/generated/google/apis/analytics_v3.rb +1 -1
  28. data/generated/google/apis/analytics_v3/classes.rb +379 -3
  29. data/generated/google/apis/analytics_v3/representations.rb +136 -0
  30. data/generated/google/apis/analytics_v3/service.rb +256 -0
  31. data/generated/google/apis/analyticsreporting_v4.rb +1 -1
  32. data/generated/google/apis/analyticsreporting_v4/classes.rb +858 -823
  33. data/generated/google/apis/analyticsreporting_v4/representations.rb +194 -193
  34. data/generated/google/apis/analyticsreporting_v4/service.rb +4 -4
  35. data/generated/google/apis/androidenterprise_v1.rb +1 -1
  36. data/generated/google/apis/androidenterprise_v1/classes.rb +913 -220
  37. data/generated/google/apis/androidenterprise_v1/representations.rb +337 -30
  38. data/generated/google/apis/androidenterprise_v1/service.rb +1163 -561
  39. data/generated/google/apis/androidpublisher_v2.rb +1 -1
  40. data/generated/google/apis/androidpublisher_v2/classes.rb +230 -8
  41. data/generated/google/apis/androidpublisher_v2/representations.rb +90 -0
  42. data/generated/google/apis/androidpublisher_v2/service.rb +116 -3
  43. data/generated/google/apis/appengine_v1beta5.rb +7 -1
  44. data/generated/google/apis/appengine_v1beta5/classes.rb +810 -395
  45. data/generated/google/apis/appengine_v1beta5/representations.rb +188 -22
  46. data/generated/google/apis/appengine_v1beta5/service.rb +343 -39
  47. data/generated/google/apis/appsactivity_v1.rb +3 -3
  48. data/generated/google/apis/appsactivity_v1/classes.rb +7 -0
  49. data/generated/google/apis/appsactivity_v1/representations.rb +1 -0
  50. data/generated/google/apis/appsactivity_v1/service.rb +1 -1
  51. data/generated/google/apis/appstate_v1.rb +1 -1
  52. data/generated/google/apis/bigquery_v2.rb +1 -1
  53. data/generated/google/apis/bigquery_v2/classes.rb +360 -38
  54. data/generated/google/apis/bigquery_v2/representations.rb +106 -0
  55. data/generated/google/apis/bigquery_v2/service.rb +18 -4
  56. data/generated/google/apis/books_v1.rb +2 -2
  57. data/generated/google/apis/books_v1/classes.rb +83 -0
  58. data/generated/google/apis/books_v1/representations.rb +35 -0
  59. data/generated/google/apis/books_v1/service.rb +7 -3
  60. data/generated/google/apis/calendar_v3.rb +1 -1
  61. data/generated/google/apis/calendar_v3/classes.rb +208 -5
  62. data/generated/google/apis/calendar_v3/representations.rb +97 -0
  63. data/generated/google/apis/civicinfo_v2.rb +3 -2
  64. data/generated/google/apis/civicinfo_v2/classes.rb +377 -5
  65. data/generated/google/apis/civicinfo_v2/representations.rb +149 -0
  66. data/generated/google/apis/civicinfo_v2/service.rb +27 -6
  67. data/generated/google/apis/classroom_v1.rb +22 -25
  68. data/generated/google/apis/classroom_v1/classes.rb +998 -761
  69. data/generated/google/apis/classroom_v1/representations.rb +263 -198
  70. data/generated/google/apis/classroom_v1/service.rb +1349 -672
  71. data/generated/google/apis/cloudbilling_v1.rb +3 -3
  72. data/generated/google/apis/cloudbilling_v1/classes.rb +76 -75
  73. data/generated/google/apis/cloudbilling_v1/representations.rb +17 -17
  74. data/generated/google/apis/cloudbilling_v1/service.rb +117 -110
  75. data/generated/google/apis/cloudbuild_v1.rb +1 -1
  76. data/generated/google/apis/cloudbuild_v1/classes.rb +661 -264
  77. data/generated/google/apis/cloudbuild_v1/representations.rb +198 -48
  78. data/generated/google/apis/cloudbuild_v1/service.rb +259 -44
  79. data/generated/google/apis/clouddebugger_v2.rb +5 -8
  80. data/generated/google/apis/clouddebugger_v2/classes.rb +686 -616
  81. data/generated/google/apis/clouddebugger_v2/representations.rb +151 -151
  82. data/generated/google/apis/clouddebugger_v2/service.rb +165 -159
  83. data/generated/google/apis/cloudkms_v1.rb +35 -0
  84. data/generated/google/apis/cloudkms_v1/classes.rb +1022 -0
  85. data/generated/google/apis/cloudkms_v1/representations.rb +448 -0
  86. data/generated/google/apis/cloudkms_v1/service.rb +933 -0
  87. data/generated/google/apis/cloudkms_v1beta1.rb +35 -0
  88. data/generated/google/apis/cloudkms_v1beta1/classes.rb +1039 -0
  89. data/generated/google/apis/cloudkms_v1beta1/representations.rb +448 -0
  90. data/generated/google/apis/cloudkms_v1beta1/service.rb +933 -0
  91. data/generated/google/apis/cloudmonitoring_v2beta2.rb +1 -1
  92. data/generated/google/apis/cloudresourcemanager_v1.rb +4 -4
  93. data/generated/google/apis/cloudresourcemanager_v1/classes.rb +1529 -167
  94. data/generated/google/apis/cloudresourcemanager_v1/representations.rb +491 -26
  95. data/generated/google/apis/cloudresourcemanager_v1/service.rb +1593 -135
  96. data/generated/google/apis/cloudresourcemanager_v1beta1.rb +1 -1
  97. data/generated/google/apis/cloudresourcemanager_v1beta1/classes.rb +1155 -235
  98. data/generated/google/apis/cloudresourcemanager_v1beta1/representations.rb +344 -44
  99. data/generated/google/apis/cloudresourcemanager_v1beta1/service.rb +702 -310
  100. data/generated/google/apis/cloudtrace_v1.rb +9 -9
  101. data/generated/google/apis/cloudtrace_v1/classes.rb +98 -92
  102. data/generated/google/apis/cloudtrace_v1/representations.rb +24 -24
  103. data/generated/google/apis/cloudtrace_v1/service.rb +42 -37
  104. data/generated/google/apis/compute_beta.rb +1 -1
  105. data/generated/google/apis/compute_beta/classes.rb +7007 -3648
  106. data/generated/google/apis/compute_beta/representations.rb +1459 -120
  107. data/generated/google/apis/compute_beta/service.rb +7943 -3726
  108. data/generated/google/apis/compute_v1.rb +1 -1
  109. data/generated/google/apis/compute_v1/classes.rb +2567 -370
  110. data/generated/google/apis/compute_v1/representations.rb +855 -0
  111. data/generated/google/apis/compute_v1/service.rb +6388 -2908
  112. data/generated/google/apis/container_v1.rb +1 -1
  113. data/generated/google/apis/container_v1/classes.rb +287 -16
  114. data/generated/google/apis/container_v1/representations.rb +113 -2
  115. data/generated/google/apis/container_v1/service.rb +130 -0
  116. data/generated/google/apis/content_v2.rb +1 -1
  117. data/generated/google/apis/content_v2/classes.rb +778 -10
  118. data/generated/google/apis/content_v2/representations.rb +339 -0
  119. data/generated/google/apis/content_v2/service.rb +364 -49
  120. data/generated/google/apis/dataflow_v1b3.rb +37 -0
  121. data/generated/google/apis/dataflow_v1b3/classes.rb +4941 -0
  122. data/generated/google/apis/dataflow_v1b3/representations.rb +2037 -0
  123. data/generated/google/apis/dataflow_v1b3/service.rb +957 -0
  124. data/generated/google/apis/dataproc_v1.rb +1 -1
  125. data/generated/google/apis/dataproc_v1/classes.rb +1235 -963
  126. data/generated/google/apis/dataproc_v1/representations.rb +299 -225
  127. data/generated/google/apis/dataproc_v1/service.rb +277 -192
  128. data/generated/google/apis/datastore_v1.rb +38 -0
  129. data/generated/google/apis/datastore_v1/classes.rb +1289 -0
  130. data/generated/google/apis/datastore_v1/representations.rb +572 -0
  131. data/generated/google/apis/datastore_v1/service.rb +259 -0
  132. data/generated/google/apis/datastore_v1beta3.rb +38 -0
  133. data/generated/google/apis/datastore_v1beta3/classes.rb +1284 -0
  134. data/generated/google/apis/datastore_v1beta3/representations.rb +572 -0
  135. data/generated/google/apis/datastore_v1beta3/service.rb +259 -0
  136. data/generated/google/apis/deploymentmanager_v2.rb +1 -1
  137. data/generated/google/apis/deploymentmanager_v2/classes.rb +436 -3
  138. data/generated/google/apis/deploymentmanager_v2/representations.rb +178 -0
  139. data/generated/google/apis/deploymentmanager_v2/service.rb +226 -61
  140. data/generated/google/apis/dfareporting_v2_5.rb +40 -0
  141. data/generated/google/apis/dfareporting_v2_5/classes.rb +11225 -0
  142. data/generated/google/apis/dfareporting_v2_5/representations.rb +3982 -0
  143. data/generated/google/apis/dfareporting_v2_5/service.rb +8755 -0
  144. data/generated/google/apis/dfareporting_v2_6.rb +40 -0
  145. data/generated/google/apis/dfareporting_v2_6/classes.rb +11586 -0
  146. data/generated/google/apis/dfareporting_v2_6/representations.rb +4119 -0
  147. data/generated/google/apis/dfareporting_v2_6/service.rb +9025 -0
  148. data/generated/google/apis/dfareporting_v2_7.rb +40 -0
  149. data/generated/google/apis/dfareporting_v2_7/classes.rb +11876 -0
  150. data/generated/google/apis/dfareporting_v2_7/representations.rb +4243 -0
  151. data/generated/google/apis/dfareporting_v2_7/service.rb +9095 -0
  152. data/generated/google/apis/dns_v1.rb +1 -1
  153. data/generated/google/apis/dns_v1/classes.rb +1 -1
  154. data/generated/google/apis/dns_v2beta1.rb +43 -0
  155. data/generated/google/apis/dns_v2beta1/classes.rb +915 -0
  156. data/generated/google/apis/dns_v2beta1/representations.rb +368 -0
  157. data/generated/google/apis/dns_v2beta1/service.rb +768 -0
  158. data/generated/google/apis/doubleclickbidmanager_v1.rb +1 -1
  159. data/generated/google/apis/doubleclickbidmanager_v1/classes.rb +79 -86
  160. data/generated/google/apis/doubleclickbidmanager_v1/representations.rb +25 -28
  161. data/generated/google/apis/doubleclickbidmanager_v1/service.rb +10 -8
  162. data/generated/google/apis/doubleclicksearch_v2.rb +1 -1
  163. data/generated/google/apis/doubleclicksearch_v2/classes.rb +6 -4
  164. data/generated/google/apis/drive_v2.rb +1 -1
  165. data/generated/google/apis/drive_v2/classes.rb +595 -37
  166. data/generated/google/apis/drive_v2/representations.rb +140 -0
  167. data/generated/google/apis/drive_v2/service.rb +406 -40
  168. data/generated/google/apis/drive_v3.rb +1 -1
  169. data/generated/google/apis/drive_v3/classes.rb +507 -40
  170. data/generated/google/apis/drive_v3/representations.rb +105 -0
  171. data/generated/google/apis/drive_v3/service.rb +326 -29
  172. data/generated/google/apis/fitness_v1.rb +38 -2
  173. data/generated/google/apis/fitness_v1/classes.rb +65 -7
  174. data/generated/google/apis/fitness_v1/representations.rb +20 -0
  175. data/generated/google/apis/fitness_v1/service.rb +17 -18
  176. data/generated/google/apis/fusiontables_v2.rb +1 -1
  177. data/generated/google/apis/fusiontables_v2/classes.rb +4 -3
  178. data/generated/google/apis/games_configuration_v1configuration.rb +1 -1
  179. data/generated/google/apis/games_management_v1management.rb +1 -1
  180. data/generated/google/apis/games_v1.rb +1 -1
  181. data/generated/google/apis/genomics_v1.rb +10 -12
  182. data/generated/google/apis/genomics_v1/classes.rb +2276 -2165
  183. data/generated/google/apis/genomics_v1/representations.rb +468 -496
  184. data/generated/google/apis/genomics_v1/service.rb +978 -882
  185. data/generated/google/apis/gmail_v1.rb +11 -2
  186. data/generated/google/apis/gmail_v1/classes.rb +655 -5
  187. data/generated/google/apis/gmail_v1/representations.rb +261 -0
  188. data/generated/google/apis/gmail_v1/service.rb +1211 -48
  189. data/generated/google/apis/groupssettings_v1.rb +2 -2
  190. data/generated/google/apis/groupssettings_v1/classes.rb +12 -0
  191. data/generated/google/apis/groupssettings_v1/representations.rb +2 -0
  192. data/generated/google/apis/iam_v1.rb +2 -2
  193. data/generated/google/apis/iam_v1/classes.rb +446 -368
  194. data/generated/google/apis/iam_v1/representations.rb +109 -91
  195. data/generated/google/apis/iam_v1/service.rb +249 -162
  196. data/generated/google/apis/identitytoolkit_v3.rb +7 -1
  197. data/generated/google/apis/identitytoolkit_v3/classes.rb +254 -2
  198. data/generated/google/apis/identitytoolkit_v3/representations.rb +38 -0
  199. data/generated/google/apis/kgsearch_v1.rb +2 -3
  200. data/generated/google/apis/kgsearch_v1/classes.rb +13 -13
  201. data/generated/google/apis/kgsearch_v1/representations.rb +2 -2
  202. data/generated/google/apis/kgsearch_v1/service.rb +26 -24
  203. data/generated/google/apis/language_v1beta1.rb +36 -0
  204. data/generated/google/apis/language_v1beta1/classes.rb +757 -0
  205. data/generated/google/apis/language_v1beta1/representations.rb +339 -0
  206. data/generated/google/apis/language_v1beta1/service.rb +185 -0
  207. data/generated/google/apis/licensing_v1.rb +3 -3
  208. data/generated/google/apis/licensing_v1/classes.rb +14 -2
  209. data/generated/google/apis/licensing_v1/representations.rb +2 -0
  210. data/generated/google/apis/licensing_v1/service.rb +1 -1
  211. data/generated/google/apis/logging_v2beta1.rb +6 -6
  212. data/generated/google/apis/logging_v2beta1/classes.rb +900 -775
  213. data/generated/google/apis/logging_v2beta1/representations.rb +163 -142
  214. data/generated/google/apis/logging_v2beta1/service.rb +427 -155
  215. data/generated/google/apis/manufacturers_v1.rb +34 -0
  216. data/generated/google/apis/manufacturers_v1/classes.rb +605 -0
  217. data/generated/google/apis/manufacturers_v1/representations.rb +223 -0
  218. data/generated/google/apis/manufacturers_v1/service.rb +138 -0
  219. data/generated/google/apis/mirror_v1.rb +2 -2
  220. data/generated/google/apis/mirror_v1/service.rb +1 -1
  221. data/generated/google/apis/monitoring_v3.rb +45 -0
  222. data/generated/google/apis/monitoring_v3/classes.rb +1333 -0
  223. data/generated/google/apis/monitoring_v3/representations.rb +516 -0
  224. data/generated/google/apis/monitoring_v3/service.rb +706 -0
  225. data/generated/google/apis/oauth2_v2.rb +1 -1
  226. data/generated/google/apis/pagespeedonline_v2.rb +1 -1
  227. data/generated/google/apis/partners_v2.rb +3 -3
  228. data/generated/google/apis/partners_v2/classes.rb +1831 -477
  229. data/generated/google/apis/partners_v2/representations.rb +571 -114
  230. data/generated/google/apis/partners_v2/service.rb +898 -167
  231. data/generated/google/apis/people_v1.rb +15 -16
  232. data/generated/google/apis/people_v1/classes.rb +1047 -859
  233. data/generated/google/apis/people_v1/representations.rb +252 -213
  234. data/generated/google/apis/people_v1/service.rb +75 -62
  235. data/generated/google/apis/plus_domains_v1.rb +1 -1
  236. data/generated/google/apis/plus_v1.rb +1 -1
  237. data/generated/google/apis/proximitybeacon_v1beta1.rb +1 -1
  238. data/generated/google/apis/proximitybeacon_v1beta1/classes.rb +527 -456
  239. data/generated/google/apis/proximitybeacon_v1beta1/representations.rb +101 -100
  240. data/generated/google/apis/proximitybeacon_v1beta1/service.rb +467 -343
  241. data/generated/google/apis/pubsub_v1.rb +1 -1
  242. data/generated/google/apis/pubsub_v1/classes.rb +363 -310
  243. data/generated/google/apis/pubsub_v1/representations.rb +76 -76
  244. data/generated/google/apis/pubsub_v1/service.rb +464 -335
  245. data/generated/google/apis/qpx_express_v1.rb +1 -1
  246. data/generated/google/apis/qpx_express_v1/classes.rb +6 -0
  247. data/generated/google/apis/qpx_express_v1/representations.rb +1 -0
  248. data/generated/google/apis/replicapool_v1beta2.rb +1 -1
  249. data/generated/google/apis/replicapoolupdater_v1beta1.rb +4 -2
  250. data/generated/google/apis/replicapoolupdater_v1beta1/service.rb +3 -1
  251. data/generated/google/apis/reseller_v1.rb +1 -1
  252. data/generated/google/apis/reseller_v1/classes.rb +222 -61
  253. data/generated/google/apis/reseller_v1/representations.rb +28 -0
  254. data/generated/google/apis/reseller_v1/service.rb +240 -47
  255. data/generated/google/apis/script_v1.rb +19 -19
  256. data/generated/google/apis/script_v1/classes.rb +151 -137
  257. data/generated/google/apis/script_v1/representations.rb +26 -26
  258. data/generated/google/apis/script_v1/service.rb +9 -8
  259. data/generated/google/apis/sheets_v4.rb +7 -7
  260. data/generated/google/apis/sheets_v4/classes.rb +4530 -3506
  261. data/generated/google/apis/sheets_v4/representations.rb +988 -737
  262. data/generated/google/apis/sheets_v4/service.rb +266 -99
  263. data/generated/google/apis/site_verification_v1.rb +1 -1
  264. data/generated/google/apis/slides_v1.rb +49 -0
  265. data/generated/google/apis/slides_v1/classes.rb +4480 -0
  266. data/generated/google/apis/slides_v1/representations.rb +1926 -0
  267. data/generated/google/apis/slides_v1/service.rb +245 -0
  268. data/generated/google/apis/speech_v1beta1.rb +34 -0
  269. data/generated/google/apis/speech_v1beta1/classes.rb +498 -0
  270. data/generated/google/apis/speech_v1beta1/representations.rb +206 -0
  271. data/generated/google/apis/speech_v1beta1/service.rb +270 -0
  272. data/generated/google/apis/sqladmin_v1beta4.rb +1 -1
  273. data/generated/google/apis/sqladmin_v1beta4/classes.rb +131 -10
  274. data/generated/google/apis/sqladmin_v1beta4/representations.rb +50 -0
  275. data/generated/google/apis/sqladmin_v1beta4/service.rb +92 -2
  276. data/generated/google/apis/storage_v1.rb +1 -1
  277. data/generated/google/apis/storage_v1/classes.rb +205 -21
  278. data/generated/google/apis/storage_v1/representations.rb +51 -1
  279. data/generated/google/apis/storage_v1/service.rb +263 -9
  280. data/generated/google/apis/tagmanager_v1.rb +5 -5
  281. data/generated/google/apis/translate_v2.rb +2 -2
  282. data/generated/google/apis/translate_v2/service.rb +1 -1
  283. data/generated/google/apis/vision_v1.rb +1 -1
  284. data/generated/google/apis/vision_v1/classes.rb +1275 -731
  285. data/generated/google/apis/vision_v1/representations.rb +378 -111
  286. data/generated/google/apis/vision_v1/service.rb +4 -4
  287. data/generated/google/apis/webmasters_v3.rb +1 -1
  288. data/generated/google/apis/youtube_analytics_v1.rb +1 -1
  289. data/generated/google/apis/youtube_analytics_v1/classes.rb +0 -209
  290. data/generated/google/apis/youtube_analytics_v1/representations.rb +0 -99
  291. data/generated/google/apis/youtube_analytics_v1/service.rb +5 -77
  292. data/generated/google/apis/youtube_partner_v1.rb +1 -1
  293. data/generated/google/apis/youtube_partner_v1/classes.rb +155 -0
  294. data/generated/google/apis/youtube_partner_v1/representations.rb +69 -0
  295. data/generated/google/apis/youtube_partner_v1/service.rb +107 -3
  296. data/generated/google/apis/youtube_v3.rb +1 -1
  297. data/generated/google/apis/youtube_v3/classes.rb +430 -22
  298. data/generated/google/apis/youtube_v3/representations.rb +171 -4
  299. data/generated/google/apis/youtube_v3/service.rb +100 -9
  300. data/generated/google/apis/youtubereporting_v1.rb +4 -4
  301. data/generated/google/apis/youtubereporting_v1/classes.rb +140 -131
  302. data/generated/google/apis/youtubereporting_v1/representations.rb +37 -37
  303. data/generated/google/apis/youtubereporting_v1/service.rb +139 -135
  304. data/google-api-client.gemspec +4 -3
  305. data/lib/google/apis/core/api_command.rb +16 -6
  306. data/lib/google/apis/core/base_service.rb +17 -9
  307. data/lib/google/apis/core/download.rb +7 -2
  308. data/lib/google/apis/core/http_command.rb +5 -1
  309. data/lib/google/apis/core/json_representation.rb +2 -2
  310. data/lib/google/apis/core/upload.rb +7 -1
  311. data/lib/google/apis/errors.rb +6 -2
  312. data/lib/google/apis/generator/annotator.rb +6 -0
  313. data/lib/google/apis/version.rb +1 -1
  314. data/samples/cli/lib/samples/bigquery.rb +101 -0
  315. data/samples/cli/lib/samples/calendar.rb +1 -1
  316. data/samples/cli/lib/samples/gmail.rb +74 -0
  317. data/samples/cli/lib/samples/sheets.rb +61 -0
  318. data/samples/cli/lib/samples/you_tube.rb +4 -1
  319. data/sync.rb +71 -0
  320. metadata +86 -18
@@ -25,7 +25,7 @@ module Google
25
25
  # @see https://developers.google.com/compute/docs/reference/latest/
26
26
  module ComputeV1
27
27
  VERSION = 'V1'
28
- REVISION = '20160519'
28
+ REVISION = '20170302'
29
29
 
30
30
  # View and manage your data across Google Cloud Platform services
31
31
  AUTH_CLOUD_PLATFORM = 'https://www.googleapis.com/auth/cloud-platform'
@@ -22,7 +22,8 @@ module Google
22
22
  module Apis
23
23
  module ComputeV1
24
24
 
25
- # An access configuration attached to an instance's network interface.
25
+ # An access configuration attached to an instance's network interface. Only one
26
+ # access config per instance is supported.
26
27
  class AccessConfig
27
28
  include Google::Apis::Core::Hashable
28
29
 
@@ -68,7 +69,8 @@ module Google
68
69
  class Address
69
70
  include Google::Apis::Core::Hashable
70
71
 
71
- # The static external IP address represented by this resource.
72
+ # The static external IP address represented by this resource. Only IPv4 is
73
+ # supported.
72
74
  # Corresponds to the JSON property `address`
73
75
  # @return [String]
74
76
  attr_accessor :address
@@ -365,6 +367,11 @@ module Google
365
367
  # @return [String]
366
368
  attr_accessor :device_name
367
369
 
370
+ # Represents a customer-supplied encryption key
371
+ # Corresponds to the JSON property `diskEncryptionKey`
372
+ # @return [Google::Apis::ComputeV1::CustomerEncryptionKey]
373
+ attr_accessor :disk_encryption_key
374
+
368
375
  # Assigns a zero-based index to this disk, where 0 is reserved for the boot disk.
369
376
  # For example, if you have many disks attached to an instance, each disk would
370
377
  # have a unique index number. If not specified, the server will choose an
@@ -409,7 +416,12 @@ module Google
409
416
  attr_accessor :mode
410
417
 
411
418
  # Specifies a valid partial or full URL to an existing Persistent Disk resource.
412
- # This field is only applicable for persistent disks.
419
+ # When creating a new instance, one of initializeParams.sourceImage or disks.
420
+ # source is required.
421
+ # If desired, you can also attach existing non-root persistent disks using this
422
+ # property. This field is only applicable for persistent disks.
423
+ # Note that for InstanceTemplate, specify the disk name, not the URL for the
424
+ # disk.
413
425
  # Corresponds to the JSON property `source`
414
426
  # @return [String]
415
427
  attr_accessor :source
@@ -429,6 +441,7 @@ module Google
429
441
  @auto_delete = args[:auto_delete] if args.key?(:auto_delete)
430
442
  @boot = args[:boot] if args.key?(:boot)
431
443
  @device_name = args[:device_name] if args.key?(:device_name)
444
+ @disk_encryption_key = args[:disk_encryption_key] if args.key?(:disk_encryption_key)
432
445
  @index = args[:index] if args.key?(:index)
433
446
  @initialize_params = args[:initialize_params] if args.key?(:initialize_params)
434
447
  @interface = args[:interface] if args.key?(:interface)
@@ -469,13 +482,14 @@ module Google
469
482
  # - https://www.googleapis.com/compute/v1/projects/project/zones/zone/diskTypes/
470
483
  # diskType
471
484
  # - projects/project/zones/zone/diskTypes/diskType
472
- # - zones/zone/diskTypes/diskType
485
+ # - zones/zone/diskTypes/diskType Note that for InstanceTemplate, this is the
486
+ # name of the disk type, not URL.
473
487
  # Corresponds to the JSON property `diskType`
474
488
  # @return [String]
475
489
  attr_accessor :disk_type
476
490
 
477
- # The source image used to create this disk. If the source image is deleted,
478
- # this field will not be set.
491
+ # The source image to create this disk. When creating a new instance, one of
492
+ # initializeParams.sourceImage or disks.source is required.
479
493
  # To create a disk with one of the public operating system images, specify the
480
494
  # image by its family name. For example, specify family/debian-8 to use the
481
495
  # latest Debian 8 image:
@@ -489,10 +503,16 @@ module Google
489
503
  # latest version of the image in that family. Replace the image name with family/
490
504
  # family-name:
491
505
  # global/images/family/my-private-family
506
+ # If the source image is deleted later, this field will not be set.
492
507
  # Corresponds to the JSON property `sourceImage`
493
508
  # @return [String]
494
509
  attr_accessor :source_image
495
510
 
511
+ # Represents a customer-supplied encryption key
512
+ # Corresponds to the JSON property `sourceImageEncryptionKey`
513
+ # @return [Google::Apis::ComputeV1::CustomerEncryptionKey]
514
+ attr_accessor :source_image_encryption_key
515
+
496
516
  def initialize(**args)
497
517
  update!(**args)
498
518
  end
@@ -503,6 +523,7 @@ module Google
503
523
  @disk_size_gb = args[:disk_size_gb] if args.key?(:disk_size_gb)
504
524
  @disk_type = args[:disk_type] if args.key?(:disk_type)
505
525
  @source_image = args[:source_image] if args.key?(:source_image)
526
+ @source_image_encryption_key = args[:source_image_encryption_key] if args.key?(:source_image_encryption_key)
506
527
  end
507
528
  end
508
529
 
@@ -550,6 +571,12 @@ module Google
550
571
  # @return [String]
551
572
  attr_accessor :name
552
573
 
574
+ # [Output Only] URL of the region where the instance group resides (for
575
+ # autoscalers living in regional scope).
576
+ # Corresponds to the JSON property `region`
577
+ # @return [String]
578
+ attr_accessor :region
579
+
553
580
  # [Output Only] Server-defined URL for the resource.
554
581
  # Corresponds to the JSON property `selfLink`
555
582
  # @return [String]
@@ -560,7 +587,8 @@ module Google
560
587
  # @return [String]
561
588
  attr_accessor :target
562
589
 
563
- # [Output Only] URL of the zone where the instance group resides.
590
+ # [Output Only] URL of the zone where the instance group resides (for
591
+ # autoscalers living in zonal scope).
564
592
  # Corresponds to the JSON property `zone`
565
593
  # @return [String]
566
594
  attr_accessor :zone
@@ -577,6 +605,7 @@ module Google
577
605
  @id = args[:id] if args.key?(:id)
578
606
  @kind = args[:kind] if args.key?(:kind)
579
607
  @name = args[:name] if args.key?(:name)
608
+ @region = args[:region] if args.key?(:region)
580
609
  @self_link = args[:self_link] if args.key?(:self_link)
581
610
  @target = args[:target] if args.key?(:target)
582
611
  @zone = args[:zone] if args.key?(:zone)
@@ -837,7 +866,7 @@ module Google
837
866
  include Google::Apis::Core::Hashable
838
867
 
839
868
  # The target CPU utilization that the autoscaler should maintain. Must be a
840
- # float value in the range (0, 1]. If not specified, the default is 0.8.
869
+ # float value in the range (0, 1]. If not specified, the default is 0.6.
841
870
  # If the CPU level is below the target utilization, the autoscaler scales down
842
871
  # the number of instances until it reaches the minimum number of instances you
843
872
  # specified or until the average CPU of your instances reaches the target
@@ -863,12 +892,12 @@ module Google
863
892
  class AutoscalingPolicyCustomMetricUtilization
864
893
  include Google::Apis::Core::Hashable
865
894
 
866
- # The identifier of the Cloud Monitoring metric. The metric cannot have negative
867
- # values and should be a utilization metric, which means that the number of
868
- # virtual machines handling requests should increase or decrease proportionally
869
- # to the metric. The metric must also have a label of compute.googleapis.com/
870
- # resource_id with the value of the instance's unique ID, although this alone
871
- # does not guarantee that the metric is valid.
895
+ # The identifier of the Stackdriver Monitoring metric. The metric cannot have
896
+ # negative values and should be a utilization metric, which means that the
897
+ # number of virtual machines handling requests should increase or decrease
898
+ # proportionally to the metric. The metric must also have a label of compute.
899
+ # googleapis.com/resource_id with the value of the instance's unique ID,
900
+ # although this alone does not guarantee that the metric is valid.
872
901
  # For example, the following is a valid metric:
873
902
  # compute.googleapis.com/instance/network/received_bytes_count
874
903
  # The following is not a valid metric because it does not increase or decrease
@@ -884,7 +913,7 @@ module Google
884
913
  # @return [Float]
885
914
  attr_accessor :utilization_target
886
915
 
887
- # Defines how target utilization value is expressed for a Cloud Monitoring
916
+ # Defines how target utilization value is expressed for a Stackdriver Monitoring
888
917
  # metric. Either GAUGE, DELTA_PER_SECOND, or DELTA_PER_MINUTE. If not specified,
889
918
  # the default is GAUGE.
890
919
  # Corresponds to the JSON property `utilizationTargetType`
@@ -928,17 +957,20 @@ module Google
928
957
  class Backend
929
958
  include Google::Apis::Core::Hashable
930
959
 
931
- # Specifies the balancing mode for this backend. For global HTTP(S) load
932
- # balancing, the default is UTILIZATION. Valid values are UTILIZATION and RATE.
960
+ # Specifies the balancing mode for this backend. For global HTTP(S) or TCP/SSL
961
+ # load balancing, the default is UTILIZATION. Valid values are UTILIZATION, RATE
962
+ # (for HTTP(S)) and CONNECTION (for TCP/SSL).
963
+ # This cannot be used for internal load balancing.
933
964
  # Corresponds to the JSON property `balancingMode`
934
965
  # @return [String]
935
966
  attr_accessor :balancing_mode
936
967
 
937
- # A multiplier applied to the group's maximum servicing capacity (either
938
- # UTILIZATION or RATE). Default value is 1, which means the group will serve up
939
- # to 100% of its configured CPU or RPS (depending on balancingMode). A setting
940
- # of 0 means the group is completely drained, offering 0% of its available CPU
941
- # or RPS. Valid range is [0.0,1.0].
968
+ # A multiplier applied to the group's maximum servicing capacity (based on
969
+ # UTILIZATION, RATE or CONNECTION). Default value is 1, which means the group
970
+ # will serve up to 100% of its configured capacity (depending on balancingMode).
971
+ # A setting of 0 means the group is completely drained, offering 0% of its
972
+ # available Capacity. Valid range is [0.0,1.0].
973
+ # This cannot be used for internal load balancing.
942
974
  # Corresponds to the JSON property `capacityScaler`
943
975
  # @return [Float]
944
976
  attr_accessor :capacity_scaler
@@ -956,13 +988,33 @@ module Google
956
988
  # Instance Group resource.
957
989
  # Note that you must specify an Instance Group resource using the fully-
958
990
  # qualified URL, rather than a partial URL.
991
+ # When the BackendService has load balancing scheme INTERNAL, the instance group
992
+ # must be in a zone within the same region as the BackendService.
959
993
  # Corresponds to the JSON property `group`
960
994
  # @return [String]
961
995
  attr_accessor :group
962
996
 
997
+ # The max number of simultaneous connections for the group. Can be used with
998
+ # either CONNECTION or UTILIZATION balancing modes. For CONNECTION mode, either
999
+ # maxConnections or maxConnectionsPerInstance must be set.
1000
+ # This cannot be used for internal load balancing.
1001
+ # Corresponds to the JSON property `maxConnections`
1002
+ # @return [Fixnum]
1003
+ attr_accessor :max_connections
1004
+
1005
+ # The max number of simultaneous connections that a single backend instance can
1006
+ # handle. This is used to calculate the capacity of the group. Can be used in
1007
+ # either CONNECTION or UTILIZATION balancing modes. For CONNECTION mode, either
1008
+ # maxConnections or maxConnectionsPerInstance must be set.
1009
+ # This cannot be used for internal load balancing.
1010
+ # Corresponds to the JSON property `maxConnectionsPerInstance`
1011
+ # @return [Fixnum]
1012
+ attr_accessor :max_connections_per_instance
1013
+
963
1014
  # The max requests per second (RPS) of the group. Can be used with either RATE
964
1015
  # or UTILIZATION balancing modes, but required if RATE mode. For RATE mode,
965
1016
  # either maxRate or maxRatePerInstance must be set.
1017
+ # This cannot be used for internal load balancing.
966
1018
  # Corresponds to the JSON property `maxRate`
967
1019
  # @return [Fixnum]
968
1020
  attr_accessor :max_rate
@@ -971,12 +1023,14 @@ module Google
971
1023
  # This is used to calculate the capacity of the group. Can be used in either
972
1024
  # balancing mode. For RATE mode, either maxRate or maxRatePerInstance must be
973
1025
  # set.
1026
+ # This cannot be used for internal load balancing.
974
1027
  # Corresponds to the JSON property `maxRatePerInstance`
975
1028
  # @return [Float]
976
1029
  attr_accessor :max_rate_per_instance
977
1030
 
978
1031
  # Used when balancingMode is UTILIZATION. This ratio defines the CPU utilization
979
1032
  # target for the group. The default is 0.8. Valid range is [0.0, 1.0].
1033
+ # This cannot be used for internal load balancing.
980
1034
  # Corresponds to the JSON property `maxUtilization`
981
1035
  # @return [Float]
982
1036
  attr_accessor :max_utilization
@@ -991,22 +1045,148 @@ module Google
991
1045
  @capacity_scaler = args[:capacity_scaler] if args.key?(:capacity_scaler)
992
1046
  @description = args[:description] if args.key?(:description)
993
1047
  @group = args[:group] if args.key?(:group)
1048
+ @max_connections = args[:max_connections] if args.key?(:max_connections)
1049
+ @max_connections_per_instance = args[:max_connections_per_instance] if args.key?(:max_connections_per_instance)
994
1050
  @max_rate = args[:max_rate] if args.key?(:max_rate)
995
1051
  @max_rate_per_instance = args[:max_rate_per_instance] if args.key?(:max_rate_per_instance)
996
1052
  @max_utilization = args[:max_utilization] if args.key?(:max_utilization)
997
1053
  end
998
1054
  end
999
1055
 
1056
+ # A BackendBucket resource. This resource defines a Cloud Storage bucket.
1057
+ class BackendBucket
1058
+ include Google::Apis::Core::Hashable
1059
+
1060
+ # Cloud Storage bucket name.
1061
+ # Corresponds to the JSON property `bucketName`
1062
+ # @return [String]
1063
+ attr_accessor :bucket_name
1064
+
1065
+ # [Output Only] Creation timestamp in RFC3339 text format.
1066
+ # Corresponds to the JSON property `creationTimestamp`
1067
+ # @return [String]
1068
+ attr_accessor :creation_timestamp
1069
+
1070
+ # An optional textual description of the resource; provided by the client when
1071
+ # the resource is created.
1072
+ # Corresponds to the JSON property `description`
1073
+ # @return [String]
1074
+ attr_accessor :description
1075
+
1076
+ # If true, enable Cloud CDN for this BackendBucket.
1077
+ # Corresponds to the JSON property `enableCdn`
1078
+ # @return [Boolean]
1079
+ attr_accessor :enable_cdn
1080
+ alias_method :enable_cdn?, :enable_cdn
1081
+
1082
+ # [Output Only] Unique identifier for the resource; defined by the server.
1083
+ # Corresponds to the JSON property `id`
1084
+ # @return [String]
1085
+ attr_accessor :id
1086
+
1087
+ # Type of the resource.
1088
+ # Corresponds to the JSON property `kind`
1089
+ # @return [String]
1090
+ attr_accessor :kind
1091
+
1092
+ # Name of the resource. Provided by the client when the resource is created. The
1093
+ # name must be 1-63 characters long, and comply with RFC1035. Specifically, the
1094
+ # name must be 1-63 characters long and match the regular expression [a-z]([-a-
1095
+ # z0-9]*[a-z0-9])? which means the first character must be a lowercase letter,
1096
+ # and all following characters must be a dash, lowercase letter, or digit,
1097
+ # except the last character, which cannot be a dash.
1098
+ # Corresponds to the JSON property `name`
1099
+ # @return [String]
1100
+ attr_accessor :name
1101
+
1102
+ # [Output Only] Server-defined URL for the resource.
1103
+ # Corresponds to the JSON property `selfLink`
1104
+ # @return [String]
1105
+ attr_accessor :self_link
1106
+
1107
+ def initialize(**args)
1108
+ update!(**args)
1109
+ end
1110
+
1111
+ # Update properties of this object
1112
+ def update!(**args)
1113
+ @bucket_name = args[:bucket_name] if args.key?(:bucket_name)
1114
+ @creation_timestamp = args[:creation_timestamp] if args.key?(:creation_timestamp)
1115
+ @description = args[:description] if args.key?(:description)
1116
+ @enable_cdn = args[:enable_cdn] if args.key?(:enable_cdn)
1117
+ @id = args[:id] if args.key?(:id)
1118
+ @kind = args[:kind] if args.key?(:kind)
1119
+ @name = args[:name] if args.key?(:name)
1120
+ @self_link = args[:self_link] if args.key?(:self_link)
1121
+ end
1122
+ end
1123
+
1124
+ # Contains a list of BackendBucket resources.
1125
+ class BackendBucketList
1126
+ include Google::Apis::Core::Hashable
1127
+
1128
+ # [Output Only] Unique identifier for the resource; defined by the server.
1129
+ # Corresponds to the JSON property `id`
1130
+ # @return [String]
1131
+ attr_accessor :id
1132
+
1133
+ # A list of BackendBucket resources.
1134
+ # Corresponds to the JSON property `items`
1135
+ # @return [Array<Google::Apis::ComputeV1::BackendBucket>]
1136
+ attr_accessor :items
1137
+
1138
+ # Type of resource.
1139
+ # Corresponds to the JSON property `kind`
1140
+ # @return [String]
1141
+ attr_accessor :kind
1142
+
1143
+ # [Output Only] A token used to continue a truncated list request.
1144
+ # Corresponds to the JSON property `nextPageToken`
1145
+ # @return [String]
1146
+ attr_accessor :next_page_token
1147
+
1148
+ # [Output Only] Server-defined URL for this resource.
1149
+ # Corresponds to the JSON property `selfLink`
1150
+ # @return [String]
1151
+ attr_accessor :self_link
1152
+
1153
+ def initialize(**args)
1154
+ update!(**args)
1155
+ end
1156
+
1157
+ # Update properties of this object
1158
+ def update!(**args)
1159
+ @id = args[:id] if args.key?(:id)
1160
+ @items = args[:items] if args.key?(:items)
1161
+ @kind = args[:kind] if args.key?(:kind)
1162
+ @next_page_token = args[:next_page_token] if args.key?(:next_page_token)
1163
+ @self_link = args[:self_link] if args.key?(:self_link)
1164
+ end
1165
+ end
1166
+
1000
1167
  # A BackendService resource. This resource defines a group of backend virtual
1001
1168
  # machines and their serving capacity.
1002
1169
  class BackendService
1003
1170
  include Google::Apis::Core::Hashable
1004
1171
 
1172
+ # Lifetime of cookies in seconds if session_affinity is GENERATED_COOKIE. If set
1173
+ # to 0, the cookie is non-persistent and lasts only until the end of the browser
1174
+ # session (or equivalent). The maximum allowed value for TTL is one day.
1175
+ # When the load balancing scheme is INTERNAL, this field is not used.
1176
+ # Corresponds to the JSON property `affinityCookieTtlSec`
1177
+ # @return [Fixnum]
1178
+ attr_accessor :affinity_cookie_ttl_sec
1179
+
1005
1180
  # The list of backends that serve this BackendService.
1006
1181
  # Corresponds to the JSON property `backends`
1007
1182
  # @return [Array<Google::Apis::ComputeV1::Backend>]
1008
1183
  attr_accessor :backends
1009
1184
 
1185
+ # Message containing connection draining configuration.
1186
+ # Corresponds to the JSON property `connectionDraining`
1187
+ # @return [Google::Apis::ComputeV1::ConnectionDraining]
1188
+ attr_accessor :connection_draining
1189
+
1010
1190
  # [Output Only] Creation timestamp in RFC3339 text format.
1011
1191
  # Corresponds to the JSON property `creationTimestamp`
1012
1192
  # @return [String]
@@ -1018,6 +1198,13 @@ module Google
1018
1198
  # @return [String]
1019
1199
  attr_accessor :description
1020
1200
 
1201
+ # If true, enable Cloud CDN for this BackendService.
1202
+ # When the load balancing scheme is INTERNAL, this field is not used.
1203
+ # Corresponds to the JSON property `enableCDN`
1204
+ # @return [Boolean]
1205
+ attr_accessor :enable_cdn
1206
+ alias_method :enable_cdn?, :enable_cdn
1207
+
1021
1208
  # Fingerprint of this resource. A hash of the contents stored in this object.
1022
1209
  # This field is used in optimistic locking. This field will be ignored when
1023
1210
  # inserting a BackendService. An up-to-date fingerprint must be provided in
@@ -1029,6 +1216,8 @@ module Google
1029
1216
  # The list of URLs to the HttpHealthCheck or HttpsHealthCheck resource for
1030
1217
  # health checking this BackendService. Currently at most one health check can be
1031
1218
  # specified, and a health check is required.
1219
+ # For internal load balancing, a URL to a HealthCheck resource must be specified
1220
+ # instead.
1032
1221
  # Corresponds to the JSON property `healthChecks`
1033
1222
  # @return [Array<String>]
1034
1223
  attr_accessor :health_checks
@@ -1045,6 +1234,11 @@ module Google
1045
1234
  # @return [String]
1046
1235
  attr_accessor :kind
1047
1236
 
1237
+ #
1238
+ # Corresponds to the JSON property `loadBalancingScheme`
1239
+ # @return [String]
1240
+ attr_accessor :load_balancing_scheme
1241
+
1048
1242
  # Name of the resource. Provided by the client when the resource is created. The
1049
1243
  # name must be 1-63 characters long, and comply with RFC1035. Specifically, the
1050
1244
  # name must be 1-63 characters long and match the regular expression [a-z]([-a-
@@ -1057,18 +1251,23 @@ module Google
1057
1251
 
1058
1252
  # Deprecated in favor of portName. The TCP port to connect on the backend. The
1059
1253
  # default value is 80.
1254
+ # This cannot be used for internal load balancing.
1060
1255
  # Corresponds to the JSON property `port`
1061
1256
  # @return [Fixnum]
1062
1257
  attr_accessor :port
1063
1258
 
1064
1259
  # Name of backend port. The same name should appear in the instance groups
1065
- # referenced by this service. Required.
1260
+ # referenced by this service. Required when the load balancing scheme is
1261
+ # EXTERNAL.
1262
+ # When the load balancing scheme is INTERNAL, this field is not used.
1066
1263
  # Corresponds to the JSON property `portName`
1067
1264
  # @return [String]
1068
1265
  attr_accessor :port_name
1069
1266
 
1070
1267
  # The protocol this BackendService uses to communicate with backends.
1071
- # Possible values are HTTP, HTTPS, HTTP2, TCP and SSL.
1268
+ # Possible values are HTTP, HTTPS, TCP, and SSL. The default is HTTP.
1269
+ # For internal load balancing, the possible values are TCP and UDP, and the
1270
+ # default is TCP.
1072
1271
  # Corresponds to the JSON property `protocol`
1073
1272
  # @return [String]
1074
1273
  attr_accessor :protocol
@@ -1084,6 +1283,16 @@ module Google
1084
1283
  # @return [String]
1085
1284
  attr_accessor :self_link
1086
1285
 
1286
+ # Type of session affinity to use. The default is NONE.
1287
+ # When the load balancing scheme is EXTERNAL, can be NONE, CLIENT_IP, or
1288
+ # GENERATED_COOKIE.
1289
+ # When the load balancing scheme is INTERNAL, can be NONE, CLIENT_IP,
1290
+ # CLIENT_IP_PROTO, or CLIENT_IP_PORT_PROTO.
1291
+ # When the protocol is UDP, this field is not used.
1292
+ # Corresponds to the JSON property `sessionAffinity`
1293
+ # @return [String]
1294
+ attr_accessor :session_affinity
1295
+
1087
1296
  # How many seconds to wait for the backend before considering it a failed
1088
1297
  # request. Default is 30 seconds.
1089
1298
  # Corresponds to the JSON property `timeoutSec`
@@ -1096,23 +1305,71 @@ module Google
1096
1305
 
1097
1306
  # Update properties of this object
1098
1307
  def update!(**args)
1308
+ @affinity_cookie_ttl_sec = args[:affinity_cookie_ttl_sec] if args.key?(:affinity_cookie_ttl_sec)
1099
1309
  @backends = args[:backends] if args.key?(:backends)
1310
+ @connection_draining = args[:connection_draining] if args.key?(:connection_draining)
1100
1311
  @creation_timestamp = args[:creation_timestamp] if args.key?(:creation_timestamp)
1101
1312
  @description = args[:description] if args.key?(:description)
1313
+ @enable_cdn = args[:enable_cdn] if args.key?(:enable_cdn)
1102
1314
  @fingerprint = args[:fingerprint] if args.key?(:fingerprint)
1103
1315
  @health_checks = args[:health_checks] if args.key?(:health_checks)
1104
1316
  @id = args[:id] if args.key?(:id)
1105
1317
  @kind = args[:kind] if args.key?(:kind)
1318
+ @load_balancing_scheme = args[:load_balancing_scheme] if args.key?(:load_balancing_scheme)
1106
1319
  @name = args[:name] if args.key?(:name)
1107
1320
  @port = args[:port] if args.key?(:port)
1108
1321
  @port_name = args[:port_name] if args.key?(:port_name)
1109
1322
  @protocol = args[:protocol] if args.key?(:protocol)
1110
1323
  @region = args[:region] if args.key?(:region)
1111
1324
  @self_link = args[:self_link] if args.key?(:self_link)
1325
+ @session_affinity = args[:session_affinity] if args.key?(:session_affinity)
1112
1326
  @timeout_sec = args[:timeout_sec] if args.key?(:timeout_sec)
1113
1327
  end
1114
1328
  end
1115
1329
 
1330
+ # Contains a list of BackendServicesScopedList.
1331
+ class BackendServiceAggregatedList
1332
+ include Google::Apis::Core::Hashable
1333
+
1334
+ # [Output Only] Unique identifier for the resource; defined by the server.
1335
+ # Corresponds to the JSON property `id`
1336
+ # @return [String]
1337
+ attr_accessor :id
1338
+
1339
+ # A map of scoped BackendService lists.
1340
+ # Corresponds to the JSON property `items`
1341
+ # @return [Hash<String,Google::Apis::ComputeV1::BackendServicesScopedList>]
1342
+ attr_accessor :items
1343
+
1344
+ # Type of resource.
1345
+ # Corresponds to the JSON property `kind`
1346
+ # @return [String]
1347
+ attr_accessor :kind
1348
+
1349
+ # [Output Only] A token used to continue a truncated list request.
1350
+ # Corresponds to the JSON property `nextPageToken`
1351
+ # @return [String]
1352
+ attr_accessor :next_page_token
1353
+
1354
+ # [Output Only] Server-defined URL for this resource.
1355
+ # Corresponds to the JSON property `selfLink`
1356
+ # @return [String]
1357
+ attr_accessor :self_link
1358
+
1359
+ def initialize(**args)
1360
+ update!(**args)
1361
+ end
1362
+
1363
+ # Update properties of this object
1364
+ def update!(**args)
1365
+ @id = args[:id] if args.key?(:id)
1366
+ @items = args[:items] if args.key?(:items)
1367
+ @kind = args[:kind] if args.key?(:kind)
1368
+ @next_page_token = args[:next_page_token] if args.key?(:next_page_token)
1369
+ @self_link = args[:self_link] if args.key?(:self_link)
1370
+ end
1371
+ end
1372
+
1116
1373
  #
1117
1374
  class BackendServiceGroupHealth
1118
1375
  include Google::Apis::Core::Hashable
@@ -1143,8 +1400,7 @@ module Google
1143
1400
  class BackendServiceList
1144
1401
  include Google::Apis::Core::Hashable
1145
1402
 
1146
- # [Output Only] The unique identifier for the resource. This identifier is
1147
- # defined by the server.
1403
+ # [Output Only] Unique identifier for the resource; defined by the server.
1148
1404
  # Corresponds to the JSON property `id`
1149
1405
  # @return [String]
1150
1406
  attr_accessor :id
@@ -1188,43 +1444,20 @@ module Google
1188
1444
  end
1189
1445
  end
1190
1446
 
1191
- # Deprecation status for a public resource.
1192
- class DeprecationStatus
1447
+ #
1448
+ class BackendServicesScopedList
1193
1449
  include Google::Apis::Core::Hashable
1194
1450
 
1195
- # An optional RFC3339 timestamp on or after which the deprecation state of this
1196
- # resource will be changed to DELETED.
1197
- # Corresponds to the JSON property `deleted`
1198
- # @return [String]
1199
- attr_accessor :deleted
1200
-
1201
- # An optional RFC3339 timestamp on or after which the deprecation state of this
1202
- # resource will be changed to DEPRECATED.
1203
- # Corresponds to the JSON property `deprecated`
1204
- # @return [String]
1205
- attr_accessor :deprecated
1206
-
1207
- # An optional RFC3339 timestamp on or after which the deprecation state of this
1208
- # resource will be changed to OBSOLETE.
1209
- # Corresponds to the JSON property `obsolete`
1210
- # @return [String]
1211
- attr_accessor :obsolete
1212
-
1213
- # The URL of the suggested replacement for a deprecated resource. The suggested
1214
- # replacement resource must be the same kind of resource as the deprecated
1215
- # resource.
1216
- # Corresponds to the JSON property `replacement`
1217
- # @return [String]
1218
- attr_accessor :replacement
1451
+ # List of BackendServices contained in this scope.
1452
+ # Corresponds to the JSON property `backendServices`
1453
+ # @return [Array<Google::Apis::ComputeV1::BackendService>]
1454
+ attr_accessor :backend_services
1219
1455
 
1220
- # The deprecation state of this resource. This can be DEPRECATED, OBSOLETE, or
1221
- # DELETED. Operations which create a new resource using a DEPRECATED resource
1222
- # will return successfully, but with a warning indicating the deprecated
1223
- # resource and recommending its replacement. Operations which use OBSOLETE or
1224
- # DELETED resources will be rejected and result in an error.
1225
- # Corresponds to the JSON property `state`
1226
- # @return [String]
1227
- attr_accessor :state
1456
+ # Informational warning which replaces the list of backend services when the
1457
+ # list is empty.
1458
+ # Corresponds to the JSON property `warning`
1459
+ # @return [Google::Apis::ComputeV1::BackendServicesScopedList::Warning]
1460
+ attr_accessor :warning
1228
1461
 
1229
1462
  def initialize(**args)
1230
1463
  update!(**args)
@@ -1232,67 +1465,288 @@ module Google
1232
1465
 
1233
1466
  # Update properties of this object
1234
1467
  def update!(**args)
1235
- @deleted = args[:deleted] if args.key?(:deleted)
1236
- @deprecated = args[:deprecated] if args.key?(:deprecated)
1237
- @obsolete = args[:obsolete] if args.key?(:obsolete)
1238
- @replacement = args[:replacement] if args.key?(:replacement)
1239
- @state = args[:state] if args.key?(:state)
1468
+ @backend_services = args[:backend_services] if args.key?(:backend_services)
1469
+ @warning = args[:warning] if args.key?(:warning)
1240
1470
  end
1241
- end
1242
-
1243
- # A Disk resource.
1244
- class Disk
1245
- include Google::Apis::Core::Hashable
1246
-
1247
- # [Output Only] Creation timestamp in RFC3339 text format.
1248
- # Corresponds to the JSON property `creationTimestamp`
1249
- # @return [String]
1250
- attr_accessor :creation_timestamp
1251
-
1252
- # An optional description of this resource. Provide this property when you
1253
- # create the resource.
1254
- # Corresponds to the JSON property `description`
1255
- # @return [String]
1256
- attr_accessor :description
1257
-
1258
- # [Output Only] The unique identifier for the resource. This identifier is
1259
- # defined by the server.
1260
- # Corresponds to the JSON property `id`
1261
- # @return [String]
1262
- attr_accessor :id
1263
-
1264
- # [Output Only] Type of the resource. Always compute#disk for disks.
1265
- # Corresponds to the JSON property `kind`
1266
- # @return [String]
1267
- attr_accessor :kind
1268
-
1269
- # [Output Only] Last attach timestamp in RFC3339 text format.
1270
- # Corresponds to the JSON property `lastAttachTimestamp`
1271
- # @return [String]
1272
- attr_accessor :last_attach_timestamp
1273
-
1274
- # [Output Only] Last detach timestamp in RFC3339 text format.
1275
- # Corresponds to the JSON property `lastDetachTimestamp`
1276
- # @return [String]
1277
- attr_accessor :last_detach_timestamp
1278
-
1279
- # [Output Only] Any applicable publicly visible licenses.
1280
- # Corresponds to the JSON property `licenses`
1281
- # @return [Array<String>]
1282
- attr_accessor :licenses
1283
-
1284
- # Name of the resource. Provided by the client when the resource is created. The
1285
- # name must be 1-63 characters long, and comply with RFC1035. Specifically, the
1286
- # name must be 1-63 characters long and match the regular expression [a-z]([-a-
1287
- # z0-9]*[a-z0-9])? which means the first character must be a lowercase letter,
1288
- # and all following characters must be a dash, lowercase letter, or digit,
1289
- # except the last character, which cannot be a dash.
1290
- # Corresponds to the JSON property `name`
1291
- # @return [String]
1292
- attr_accessor :name
1293
-
1294
- # Internal use only.
1295
- # Corresponds to the JSON property `options`
1471
+
1472
+ # Informational warning which replaces the list of backend services when the
1473
+ # list is empty.
1474
+ class Warning
1475
+ include Google::Apis::Core::Hashable
1476
+
1477
+ # [Output Only] A warning code, if applicable. For example, Compute Engine
1478
+ # returns NO_RESULTS_ON_PAGE if there are no results in the response.
1479
+ # Corresponds to the JSON property `code`
1480
+ # @return [String]
1481
+ attr_accessor :code
1482
+
1483
+ # [Output Only] Metadata about this warning in key: value format. For example:
1484
+ # "data": [ ` "key": "scope", "value": "zones/us-east1-d" `
1485
+ # Corresponds to the JSON property `data`
1486
+ # @return [Array<Google::Apis::ComputeV1::BackendServicesScopedList::Warning::Datum>]
1487
+ attr_accessor :data
1488
+
1489
+ # [Output Only] A human-readable description of the warning code.
1490
+ # Corresponds to the JSON property `message`
1491
+ # @return [String]
1492
+ attr_accessor :message
1493
+
1494
+ def initialize(**args)
1495
+ update!(**args)
1496
+ end
1497
+
1498
+ # Update properties of this object
1499
+ def update!(**args)
1500
+ @code = args[:code] if args.key?(:code)
1501
+ @data = args[:data] if args.key?(:data)
1502
+ @message = args[:message] if args.key?(:message)
1503
+ end
1504
+
1505
+ #
1506
+ class Datum
1507
+ include Google::Apis::Core::Hashable
1508
+
1509
+ # [Output Only] A key that provides more detail on the warning being returned.
1510
+ # For example, for warnings where there are no results in a list request for a
1511
+ # particular zone, this key might be scope and the key value might be the zone
1512
+ # name. Other examples might be a key indicating a deprecated resource and a
1513
+ # suggested replacement, or a warning about invalid network settings (for
1514
+ # example, if an instance attempts to perform IP forwarding but is not enabled
1515
+ # for IP forwarding).
1516
+ # Corresponds to the JSON property `key`
1517
+ # @return [String]
1518
+ attr_accessor :key
1519
+
1520
+ # [Output Only] A warning data value corresponding to the key.
1521
+ # Corresponds to the JSON property `value`
1522
+ # @return [String]
1523
+ attr_accessor :value
1524
+
1525
+ def initialize(**args)
1526
+ update!(**args)
1527
+ end
1528
+
1529
+ # Update properties of this object
1530
+ def update!(**args)
1531
+ @key = args[:key] if args.key?(:key)
1532
+ @value = args[:value] if args.key?(:value)
1533
+ end
1534
+ end
1535
+ end
1536
+ end
1537
+
1538
+ #
1539
+ class CacheInvalidationRule
1540
+ include Google::Apis::Core::Hashable
1541
+
1542
+ # If set, this invalidation rule will only apply to requests with a Host header
1543
+ # matching host.
1544
+ # Corresponds to the JSON property `host`
1545
+ # @return [String]
1546
+ attr_accessor :host
1547
+
1548
+ #
1549
+ # Corresponds to the JSON property `path`
1550
+ # @return [String]
1551
+ attr_accessor :path
1552
+
1553
+ def initialize(**args)
1554
+ update!(**args)
1555
+ end
1556
+
1557
+ # Update properties of this object
1558
+ def update!(**args)
1559
+ @host = args[:host] if args.key?(:host)
1560
+ @path = args[:path] if args.key?(:path)
1561
+ end
1562
+ end
1563
+
1564
+ # Message containing connection draining configuration.
1565
+ class ConnectionDraining
1566
+ include Google::Apis::Core::Hashable
1567
+
1568
+ # Time for which instance will be drained (not accept new connections, but still
1569
+ # work to finish started).
1570
+ # Corresponds to the JSON property `drainingTimeoutSec`
1571
+ # @return [Fixnum]
1572
+ attr_accessor :draining_timeout_sec
1573
+
1574
+ def initialize(**args)
1575
+ update!(**args)
1576
+ end
1577
+
1578
+ # Update properties of this object
1579
+ def update!(**args)
1580
+ @draining_timeout_sec = args[:draining_timeout_sec] if args.key?(:draining_timeout_sec)
1581
+ end
1582
+ end
1583
+
1584
+ # Represents a customer-supplied encryption key
1585
+ class CustomerEncryptionKey
1586
+ include Google::Apis::Core::Hashable
1587
+
1588
+ # Specifies a 256-bit customer-supplied encryption key, encoded in RFC 4648
1589
+ # base64 to either encrypt or decrypt this resource.
1590
+ # Corresponds to the JSON property `rawKey`
1591
+ # @return [String]
1592
+ attr_accessor :raw_key
1593
+
1594
+ # [Output only] The RFC 4648 base64 encoded SHA-256 hash of the customer-
1595
+ # supplied encryption key that protects this resource.
1596
+ # Corresponds to the JSON property `sha256`
1597
+ # @return [String]
1598
+ attr_accessor :sha256
1599
+
1600
+ def initialize(**args)
1601
+ update!(**args)
1602
+ end
1603
+
1604
+ # Update properties of this object
1605
+ def update!(**args)
1606
+ @raw_key = args[:raw_key] if args.key?(:raw_key)
1607
+ @sha256 = args[:sha256] if args.key?(:sha256)
1608
+ end
1609
+ end
1610
+
1611
+ #
1612
+ class CustomerEncryptionKeyProtectedDisk
1613
+ include Google::Apis::Core::Hashable
1614
+
1615
+ # Represents a customer-supplied encryption key
1616
+ # Corresponds to the JSON property `diskEncryptionKey`
1617
+ # @return [Google::Apis::ComputeV1::CustomerEncryptionKey]
1618
+ attr_accessor :disk_encryption_key
1619
+
1620
+ # Specifies a valid partial or full URL to an existing Persistent Disk resource.
1621
+ # This field is only applicable for persistent disks.
1622
+ # Corresponds to the JSON property `source`
1623
+ # @return [String]
1624
+ attr_accessor :source
1625
+
1626
+ def initialize(**args)
1627
+ update!(**args)
1628
+ end
1629
+
1630
+ # Update properties of this object
1631
+ def update!(**args)
1632
+ @disk_encryption_key = args[:disk_encryption_key] if args.key?(:disk_encryption_key)
1633
+ @source = args[:source] if args.key?(:source)
1634
+ end
1635
+ end
1636
+
1637
+ # Deprecation status for a public resource.
1638
+ class DeprecationStatus
1639
+ include Google::Apis::Core::Hashable
1640
+
1641
+ # An optional RFC3339 timestamp on or after which the state of this resource is
1642
+ # intended to change to DELETED. This is only informational and the status will
1643
+ # not change unless the client explicitly changes it.
1644
+ # Corresponds to the JSON property `deleted`
1645
+ # @return [String]
1646
+ attr_accessor :deleted
1647
+
1648
+ # An optional RFC3339 timestamp on or after which the state of this resource is
1649
+ # intended to change to DEPRECATED. This is only informational and the status
1650
+ # will not change unless the client explicitly changes it.
1651
+ # Corresponds to the JSON property `deprecated`
1652
+ # @return [String]
1653
+ attr_accessor :deprecated
1654
+
1655
+ # An optional RFC3339 timestamp on or after which the state of this resource is
1656
+ # intended to change to OBSOLETE. This is only informational and the status will
1657
+ # not change unless the client explicitly changes it.
1658
+ # Corresponds to the JSON property `obsolete`
1659
+ # @return [String]
1660
+ attr_accessor :obsolete
1661
+
1662
+ # The URL of the suggested replacement for a deprecated resource. The suggested
1663
+ # replacement resource must be the same kind of resource as the deprecated
1664
+ # resource.
1665
+ # Corresponds to the JSON property `replacement`
1666
+ # @return [String]
1667
+ attr_accessor :replacement
1668
+
1669
+ # The deprecation state of this resource. This can be DEPRECATED, OBSOLETE, or
1670
+ # DELETED. Operations which create a new resource using a DEPRECATED resource
1671
+ # will return successfully, but with a warning indicating the deprecated
1672
+ # resource and recommending its replacement. Operations which use OBSOLETE or
1673
+ # DELETED resources will be rejected and result in an error.
1674
+ # Corresponds to the JSON property `state`
1675
+ # @return [String]
1676
+ attr_accessor :state
1677
+
1678
+ def initialize(**args)
1679
+ update!(**args)
1680
+ end
1681
+
1682
+ # Update properties of this object
1683
+ def update!(**args)
1684
+ @deleted = args[:deleted] if args.key?(:deleted)
1685
+ @deprecated = args[:deprecated] if args.key?(:deprecated)
1686
+ @obsolete = args[:obsolete] if args.key?(:obsolete)
1687
+ @replacement = args[:replacement] if args.key?(:replacement)
1688
+ @state = args[:state] if args.key?(:state)
1689
+ end
1690
+ end
1691
+
1692
+ # A Disk resource.
1693
+ class Disk
1694
+ include Google::Apis::Core::Hashable
1695
+
1696
+ # [Output Only] Creation timestamp in RFC3339 text format.
1697
+ # Corresponds to the JSON property `creationTimestamp`
1698
+ # @return [String]
1699
+ attr_accessor :creation_timestamp
1700
+
1701
+ # An optional description of this resource. Provide this property when you
1702
+ # create the resource.
1703
+ # Corresponds to the JSON property `description`
1704
+ # @return [String]
1705
+ attr_accessor :description
1706
+
1707
+ # Represents a customer-supplied encryption key
1708
+ # Corresponds to the JSON property `diskEncryptionKey`
1709
+ # @return [Google::Apis::ComputeV1::CustomerEncryptionKey]
1710
+ attr_accessor :disk_encryption_key
1711
+
1712
+ # [Output Only] The unique identifier for the resource. This identifier is
1713
+ # defined by the server.
1714
+ # Corresponds to the JSON property `id`
1715
+ # @return [String]
1716
+ attr_accessor :id
1717
+
1718
+ # [Output Only] Type of the resource. Always compute#disk for disks.
1719
+ # Corresponds to the JSON property `kind`
1720
+ # @return [String]
1721
+ attr_accessor :kind
1722
+
1723
+ # [Output Only] Last attach timestamp in RFC3339 text format.
1724
+ # Corresponds to the JSON property `lastAttachTimestamp`
1725
+ # @return [String]
1726
+ attr_accessor :last_attach_timestamp
1727
+
1728
+ # [Output Only] Last detach timestamp in RFC3339 text format.
1729
+ # Corresponds to the JSON property `lastDetachTimestamp`
1730
+ # @return [String]
1731
+ attr_accessor :last_detach_timestamp
1732
+
1733
+ # Any applicable publicly visible licenses.
1734
+ # Corresponds to the JSON property `licenses`
1735
+ # @return [Array<String>]
1736
+ attr_accessor :licenses
1737
+
1738
+ # Name of the resource. Provided by the client when the resource is created. The
1739
+ # name must be 1-63 characters long, and comply with RFC1035. Specifically, the
1740
+ # name must be 1-63 characters long and match the regular expression [a-z]([-a-
1741
+ # z0-9]*[a-z0-9])? which means the first character must be a lowercase letter,
1742
+ # and all following characters must be a dash, lowercase letter, or digit,
1743
+ # except the last character, which cannot be a dash.
1744
+ # Corresponds to the JSON property `name`
1745
+ # @return [String]
1746
+ attr_accessor :name
1747
+
1748
+ # Internal use only.
1749
+ # Corresponds to the JSON property `options`
1296
1750
  # @return [String]
1297
1751
  attr_accessor :options
1298
1752
 
@@ -1330,6 +1784,11 @@ module Google
1330
1784
  # @return [String]
1331
1785
  attr_accessor :source_image
1332
1786
 
1787
+ # Represents a customer-supplied encryption key
1788
+ # Corresponds to the JSON property `sourceImageEncryptionKey`
1789
+ # @return [Google::Apis::ComputeV1::CustomerEncryptionKey]
1790
+ attr_accessor :source_image_encryption_key
1791
+
1333
1792
  # [Output Only] The ID value of the image used to create this disk. This value
1334
1793
  # identifies the exact image that was used to create this persistent disk. For
1335
1794
  # example, if you created the persistent disk from an image that was later
@@ -1350,6 +1809,11 @@ module Google
1350
1809
  # @return [String]
1351
1810
  attr_accessor :source_snapshot
1352
1811
 
1812
+ # Represents a customer-supplied encryption key
1813
+ # Corresponds to the JSON property `sourceSnapshotEncryptionKey`
1814
+ # @return [Google::Apis::ComputeV1::CustomerEncryptionKey]
1815
+ attr_accessor :source_snapshot_encryption_key
1816
+
1353
1817
  # [Output Only] The unique ID of the snapshot used to create this disk. This
1354
1818
  # value identifies the exact snapshot that was used to create this persistent
1355
1819
  # disk. For example, if you created the persistent disk from a snapshot that was
@@ -1359,8 +1823,7 @@ module Google
1359
1823
  # @return [String]
1360
1824
  attr_accessor :source_snapshot_id
1361
1825
 
1362
- # [Output Only] The status of disk creation. Applicable statuses includes:
1363
- # CREATING, FAILED, READY, RESTORING.
1826
+ # [Output Only] The status of disk creation.
1364
1827
  # Corresponds to the JSON property `status`
1365
1828
  # @return [String]
1366
1829
  attr_accessor :status
@@ -1390,6 +1853,7 @@ module Google
1390
1853
  def update!(**args)
1391
1854
  @creation_timestamp = args[:creation_timestamp] if args.key?(:creation_timestamp)
1392
1855
  @description = args[:description] if args.key?(:description)
1856
+ @disk_encryption_key = args[:disk_encryption_key] if args.key?(:disk_encryption_key)
1393
1857
  @id = args[:id] if args.key?(:id)
1394
1858
  @kind = args[:kind] if args.key?(:kind)
1395
1859
  @last_attach_timestamp = args[:last_attach_timestamp] if args.key?(:last_attach_timestamp)
@@ -1400,8 +1864,10 @@ module Google
1400
1864
  @self_link = args[:self_link] if args.key?(:self_link)
1401
1865
  @size_gb = args[:size_gb] if args.key?(:size_gb)
1402
1866
  @source_image = args[:source_image] if args.key?(:source_image)
1867
+ @source_image_encryption_key = args[:source_image_encryption_key] if args.key?(:source_image_encryption_key)
1403
1868
  @source_image_id = args[:source_image_id] if args.key?(:source_image_id)
1404
1869
  @source_snapshot = args[:source_snapshot] if args.key?(:source_snapshot)
1870
+ @source_snapshot_encryption_key = args[:source_snapshot_encryption_key] if args.key?(:source_snapshot_encryption_key)
1405
1871
  @source_snapshot_id = args[:source_snapshot_id] if args.key?(:source_snapshot_id)
1406
1872
  @status = args[:status] if args.key?(:status)
1407
1873
  @type = args[:type] if args.key?(:type)
@@ -1435,7 +1901,8 @@ module Google
1435
1901
  # requests. If the number of results is larger than maxResults, use the
1436
1902
  # nextPageToken as a value for the query parameter pageToken in the next list
1437
1903
  # request. Subsequent list requests will have their own nextPageToken to
1438
- # continue paging through the results.
1904
+ # continue paging through the results. Acceptable values are 0 to 500, inclusive.
1905
+ # (Default: 500)
1439
1906
  # Corresponds to the JSON property `nextPageToken`
1440
1907
  # @return [String]
1441
1908
  attr_accessor :next_page_token
@@ -1463,13 +1930,12 @@ module Google
1463
1930
  class DiskList
1464
1931
  include Google::Apis::Core::Hashable
1465
1932
 
1466
- # [Output Only] The unique identifier for the resource. This identifier is
1467
- # defined by the server.
1933
+ # [Output Only] Unique identifier for the resource; defined by the server.
1468
1934
  # Corresponds to the JSON property `id`
1469
1935
  # @return [String]
1470
1936
  attr_accessor :id
1471
1937
 
1472
- # [Output Only] A list of persistent disks.
1938
+ # A list of Disk resources.
1473
1939
  # Corresponds to the JSON property `items`
1474
1940
  # @return [Array<Google::Apis::ComputeV1::Disk>]
1475
1941
  attr_accessor :items
@@ -1479,11 +1945,11 @@ module Google
1479
1945
  # @return [String]
1480
1946
  attr_accessor :kind
1481
1947
 
1482
- # [Output Only] This token allows you to get the next page of results for list
1483
- # requests. If the number of results is larger than maxResults, use the
1484
- # nextPageToken as a value for the query parameter pageToken in the next list
1485
- # request. Subsequent list requests will have their own nextPageToken to
1486
- # continue paging through the results.
1948
+ # This token allows you to get the next page of results for list requests. If
1949
+ # the number of results is larger than maxResults, use the nextPageToken as a
1950
+ # value for the query parameter pageToken in the next list request. Subsequent
1951
+ # list requests will have their own nextPageToken to continue paging through the
1952
+ # results.
1487
1953
  # Corresponds to the JSON property `nextPageToken`
1488
1954
  # @return [String]
1489
1955
  attr_accessor :next_page_token
@@ -1916,8 +2382,8 @@ module Google
1916
2382
  class Firewall
1917
2383
  include Google::Apis::Core::Hashable
1918
2384
 
1919
- # The list of rules specified by this firewall. Each rule specifies a protocol
1920
- # and port-range tuple that describes a permitted connection.
2385
+ # The list of ALLOW rules specified by this firewall. Each rule specifies a
2386
+ # protocol and port-range tuple that describes a permitted connection.
1921
2387
  # Corresponds to the JSON property `allowed`
1922
2388
  # @return [Array<Google::Apis::ComputeV1::Firewall::Allowed>]
1923
2389
  attr_accessor :allowed
@@ -1972,24 +2438,25 @@ module Google
1972
2438
  # @return [String]
1973
2439
  attr_accessor :self_link
1974
2440
 
1975
- # The IP address blocks that this rule applies to, expressed in CIDR format. One
1976
- # or both of sourceRanges and sourceTags may be set.
1977
- # If both properties are set, an inbound connection is allowed if the range
1978
- # matches the sourceRanges OR the tag of the source matches the sourceTags
1979
- # property. The connection does not need to match both properties.
2441
+ # If source ranges are specified, the firewall will apply only to traffic that
2442
+ # has source IP address in these ranges. These ranges must be expressed in CIDR
2443
+ # format. One or both of sourceRanges and sourceTags may be set. If both
2444
+ # properties are set, the firewall will apply to traffic that has source IP
2445
+ # address within sourceRanges OR the source IP that belongs to a tag listed in
2446
+ # the sourceTags property. The connection does not need to match both properties
2447
+ # for the firewall to apply. Only IPv4 is supported.
1980
2448
  # Corresponds to the JSON property `sourceRanges`
1981
2449
  # @return [Array<String>]
1982
2450
  attr_accessor :source_ranges
1983
2451
 
1984
- # A list of instance tags which this rule applies to. One or both of
1985
- # sourceRanges and sourceTags may be set.
1986
- # If both properties are set, an inbound connection is allowed if the range
1987
- # matches the sourceRanges OR the tag of the source matches the sourceTags
1988
- # property. The connection does not need to match both properties.
1989
- # Source tags cannot be used to allow access to an instance's external IP
1990
- # address. Because tags are associated with an instance, not an IP address,
1991
- # source tags can only be used to control traffic traveling from an instance
1992
- # inside the same network as the firewall.
2452
+ # If source tags are specified, the firewall will apply only to traffic with
2453
+ # source IP that belongs to a tag listed in source tags. Source tags cannot be
2454
+ # used to control traffic to an instance's external IP address. Because tags are
2455
+ # associated with an instance, not an IP address. One or both of sourceRanges
2456
+ # and sourceTags may be set. If both properties are set, the firewall will apply
2457
+ # to traffic that has source IP address within sourceRanges OR the source IP
2458
+ # that belongs to a tag listed in the sourceTags property. The connection does
2459
+ # not need to match both properties for the firewall to apply.
1993
2460
  # Corresponds to the JSON property `sourceTags`
1994
2461
  # @return [Array<String>]
1995
2462
  attr_accessor :source_tags
@@ -2025,17 +2492,17 @@ module Google
2025
2492
  class Allowed
2026
2493
  include Google::Apis::Core::Hashable
2027
2494
 
2028
- # The IP protocol that is allowed for this rule. The protocol type is required
2029
- # when creating a firewall rule. This value can either be one of the following
2030
- # well known protocol strings (tcp, udp, icmp, esp, ah, sctp), or the IP
2031
- # protocol number.
2495
+ # The IP protocol to which this rule applies. The protocol type is required when
2496
+ # creating a firewall rule. This value can either be one of the following well
2497
+ # known protocol strings (tcp, udp, icmp, esp, ah, sctp), or the IP protocol
2498
+ # number.
2032
2499
  # Corresponds to the JSON property `IPProtocol`
2033
2500
  # @return [String]
2034
2501
  attr_accessor :ip_protocol
2035
2502
 
2036
- # An optional list of ports which are allowed. This field is only applicable for
2037
- # UDP or TCP protocol. Each entry must be either an integer or a range. If not
2038
- # specified, connections through any port are allowed
2503
+ # An optional list of ports to which this rule applies. This field is only
2504
+ # applicable for UDP or TCP protocol. Each entry must be either an integer or a
2505
+ # range. If not specified, this rule applies to connections through any port.
2039
2506
  # Example inputs include: ["22"], ["80","443"], and ["12345-12349"].
2040
2507
  # Corresponds to the JSON property `ports`
2041
2508
  # @return [Array<String>]
@@ -2108,21 +2575,34 @@ module Google
2108
2575
  class ForwardingRule
2109
2576
  include Google::Apis::Core::Hashable
2110
2577
 
2111
- # Value of the reserved IP address that this forwarding rule is serving on
2112
- # behalf of. For global forwarding rules, the address must be a global IP; for
2113
- # regional forwarding rules, the address must live in the same region as the
2114
- # forwarding rule. If left empty (default value), an ephemeral IP from the same
2115
- # scope (global or regional) will be assigned.
2578
+ # The IP address that this forwarding rule is serving on behalf of.
2579
+ # For global forwarding rules, the address must be a global IP. For regional
2580
+ # forwarding rules, the address must live in the same region as the forwarding
2581
+ # rule. By default, this field is empty and an ephemeral IP from the same scope (
2582
+ # global or regional) will be assigned.
2583
+ # When the load balancing scheme is INTERNAL, this can only be an RFC 1918 IP
2584
+ # address belonging to the network/subnetwork configured for the forwarding rule.
2585
+ # A reserved address cannot be used. If the field is empty, the IP address will
2586
+ # be automatically allocated from the internal IP range of the subnetwork or
2587
+ # network configured for this forwarding rule. Only IPv4 is supported.
2116
2588
  # Corresponds to the JSON property `IPAddress`
2117
2589
  # @return [String]
2118
2590
  attr_accessor :ip_address
2119
2591
 
2120
2592
  # The IP protocol to which this rule applies. Valid options are TCP, UDP, ESP,
2121
2593
  # AH, SCTP or ICMP.
2594
+ # When the load balancing scheme is INTERNAL, only TCP and UDP are valid.
2122
2595
  # Corresponds to the JSON property `IPProtocol`
2123
2596
  # @return [String]
2124
2597
  attr_accessor :ip_protocol
2125
2598
 
2599
+ # This field is not used for external load balancing.
2600
+ # For internal load balancing, this field identifies the BackendService resource
2601
+ # to receive the matched traffic.
2602
+ # Corresponds to the JSON property `backendService`
2603
+ # @return [String]
2604
+ attr_accessor :backend_service
2605
+
2126
2606
  # [Output Only] Creation timestamp in RFC3339 text format.
2127
2607
  # Corresponds to the JSON property `creationTimestamp`
2128
2608
  # @return [String]
@@ -2146,6 +2626,15 @@ module Google
2146
2626
  # @return [String]
2147
2627
  attr_accessor :kind
2148
2628
 
2629
+ # This signifies what the ForwardingRule will be used for and can only take the
2630
+ # following values: INTERNAL, EXTERNAL The value of INTERNAL means that this
2631
+ # will be used for Internal Network Load Balancing (TCP, UDP). The value of
2632
+ # EXTERNAL means that this will be used for External Load Balancing (HTTP(S) LB,
2633
+ # External TCP/UDP LB, SSL Proxy)
2634
+ # Corresponds to the JSON property `loadBalancingScheme`
2635
+ # @return [String]
2636
+ attr_accessor :load_balancing_scheme
2637
+
2149
2638
  # Name of the resource; provided by the client when the resource is created. The
2150
2639
  # name must be 1-63 characters long, and comply with RFC1035. Specifically, the
2151
2640
  # name must be 1-63 characters long and match the regular expression [a-z]([-a-
@@ -2156,14 +2645,33 @@ module Google
2156
2645
  # @return [String]
2157
2646
  attr_accessor :name
2158
2647
 
2648
+ # This field is not used for external load balancing.
2649
+ # For internal load balancing, this field identifies the network that the load
2650
+ # balanced IP should belong to for this Forwarding Rule. If this field is not
2651
+ # specified, the default network will be used.
2652
+ # Corresponds to the JSON property `network`
2653
+ # @return [String]
2654
+ attr_accessor :network
2655
+
2159
2656
  # Applicable only when IPProtocol is TCP, UDP, or SCTP, only packets addressed
2160
2657
  # to ports in the specified range will be forwarded to target. Forwarding rules
2161
2658
  # with the same [IPAddress, IPProtocol] pair must have disjoint port ranges.
2659
+ # This field is not used for internal load balancing.
2162
2660
  # Corresponds to the JSON property `portRange`
2163
2661
  # @return [String]
2164
2662
  attr_accessor :port_range
2165
2663
 
2166
- # [Output Only] URL of the region where the regional forwarding rule resides.
2664
+ # This field is not used for external load balancing.
2665
+ # When the load balancing scheme is INTERNAL, a single port or a comma separated
2666
+ # list of ports can be configured. Only packets addressed to these ports will be
2667
+ # forwarded to the backends configured with this forwarding rule. If the port
2668
+ # list is not provided then all ports are allowed to pass through.
2669
+ # You may specify a maximum of up to 5 ports.
2670
+ # Corresponds to the JSON property `ports`
2671
+ # @return [Array<String>]
2672
+ attr_accessor :ports
2673
+
2674
+ # [Output Only] URL of the region where the regional forwarding rule resides.
2167
2675
  # This field is not applicable to global forwarding rules.
2168
2676
  # Corresponds to the JSON property `region`
2169
2677
  # @return [String]
@@ -2174,12 +2682,23 @@ module Google
2174
2682
  # @return [String]
2175
2683
  attr_accessor :self_link
2176
2684
 
2685
+ # This field is not used for external load balancing.
2686
+ # For internal load balancing, this field identifies the subnetwork that the
2687
+ # load balanced IP should belong to for this Forwarding Rule.
2688
+ # If the network specified is in auto subnet mode, this field is optional.
2689
+ # However, if the network is in custom subnet mode, a subnetwork must be
2690
+ # specified.
2691
+ # Corresponds to the JSON property `subnetwork`
2692
+ # @return [String]
2693
+ attr_accessor :subnetwork
2694
+
2177
2695
  # The URL of the target resource to receive the matched traffic. For regional
2178
2696
  # forwarding rules, this target must live in the same region as the forwarding
2179
- # rule. For global forwarding rules, this target must be a global
2180
- # TargetHttpProxy or TargetHttpsProxy resource. The forwarded traffic must be of
2181
- # a type appropriate to the target object. For example, TargetHttpProxy requires
2182
- # HTTP traffic, and TargetHttpsProxy requires HTTPS traffic.
2697
+ # rule. For global forwarding rules, this target must be a global load balancing
2698
+ # resource. The forwarded traffic must be of a type appropriate to the target
2699
+ # object. For example, TargetHttpProxy requires HTTP traffic, and
2700
+ # TargetHttpsProxy requires HTTPS traffic.
2701
+ # This field is not used for internal load balancing.
2183
2702
  # Corresponds to the JSON property `target`
2184
2703
  # @return [String]
2185
2704
  attr_accessor :target
@@ -2192,14 +2711,19 @@ module Google
2192
2711
  def update!(**args)
2193
2712
  @ip_address = args[:ip_address] if args.key?(:ip_address)
2194
2713
  @ip_protocol = args[:ip_protocol] if args.key?(:ip_protocol)
2714
+ @backend_service = args[:backend_service] if args.key?(:backend_service)
2195
2715
  @creation_timestamp = args[:creation_timestamp] if args.key?(:creation_timestamp)
2196
2716
  @description = args[:description] if args.key?(:description)
2197
2717
  @id = args[:id] if args.key?(:id)
2198
2718
  @kind = args[:kind] if args.key?(:kind)
2719
+ @load_balancing_scheme = args[:load_balancing_scheme] if args.key?(:load_balancing_scheme)
2199
2720
  @name = args[:name] if args.key?(:name)
2721
+ @network = args[:network] if args.key?(:network)
2200
2722
  @port_range = args[:port_range] if args.key?(:port_range)
2723
+ @ports = args[:ports] if args.key?(:ports)
2201
2724
  @region = args[:region] if args.key?(:region)
2202
2725
  @self_link = args[:self_link] if args.key?(:self_link)
2726
+ @subnetwork = args[:subnetwork] if args.key?(:subnetwork)
2203
2727
  @target = args[:target] if args.key?(:target)
2204
2728
  end
2205
2729
  end
@@ -2391,6 +2915,290 @@ module Google
2391
2915
  end
2392
2916
  end
2393
2917
 
2918
+ # Guest OS features.
2919
+ class GuestOsFeature
2920
+ include Google::Apis::Core::Hashable
2921
+
2922
+ # The type of supported feature. Currenty only VIRTIO_SCSI_MULTIQUEUE is
2923
+ # supported. For newer Windows images, the server might also populate this
2924
+ # property with the value WINDOWS to indicate that this is a Windows image. This
2925
+ # value is purely informational and does not enable or disable any features.
2926
+ # Corresponds to the JSON property `type`
2927
+ # @return [String]
2928
+ attr_accessor :type
2929
+
2930
+ def initialize(**args)
2931
+ update!(**args)
2932
+ end
2933
+
2934
+ # Update properties of this object
2935
+ def update!(**args)
2936
+ @type = args[:type] if args.key?(:type)
2937
+ end
2938
+ end
2939
+
2940
+ #
2941
+ class HttpHealthCheck
2942
+ include Google::Apis::Core::Hashable
2943
+
2944
+ # The value of the host header in the HTTP health check request. If left empty (
2945
+ # default value), the IP on behalf of which this health check is performed will
2946
+ # be used.
2947
+ # Corresponds to the JSON property `host`
2948
+ # @return [String]
2949
+ attr_accessor :host
2950
+
2951
+ # The TCP port number for the health check request. The default value is 80.
2952
+ # Valid values are 1 through 65535.
2953
+ # Corresponds to the JSON property `port`
2954
+ # @return [Fixnum]
2955
+ attr_accessor :port
2956
+
2957
+ # Port name as defined in InstanceGroup#NamedPort#name. If both port and
2958
+ # port_name are defined, port takes precedence.
2959
+ # Corresponds to the JSON property `portName`
2960
+ # @return [String]
2961
+ attr_accessor :port_name
2962
+
2963
+ # Specifies the type of proxy header to append before sending data to the
2964
+ # backend, either NONE or PROXY_V1. The default is NONE.
2965
+ # Corresponds to the JSON property `proxyHeader`
2966
+ # @return [String]
2967
+ attr_accessor :proxy_header
2968
+
2969
+ # The request path of the HTTP health check request. The default value is /.
2970
+ # Corresponds to the JSON property `requestPath`
2971
+ # @return [String]
2972
+ attr_accessor :request_path
2973
+
2974
+ def initialize(**args)
2975
+ update!(**args)
2976
+ end
2977
+
2978
+ # Update properties of this object
2979
+ def update!(**args)
2980
+ @host = args[:host] if args.key?(:host)
2981
+ @port = args[:port] if args.key?(:port)
2982
+ @port_name = args[:port_name] if args.key?(:port_name)
2983
+ @proxy_header = args[:proxy_header] if args.key?(:proxy_header)
2984
+ @request_path = args[:request_path] if args.key?(:request_path)
2985
+ end
2986
+ end
2987
+
2988
+ #
2989
+ class HttpsHealthCheck
2990
+ include Google::Apis::Core::Hashable
2991
+
2992
+ # The value of the host header in the HTTPS health check request. If left empty (
2993
+ # default value), the IP on behalf of which this health check is performed will
2994
+ # be used.
2995
+ # Corresponds to the JSON property `host`
2996
+ # @return [String]
2997
+ attr_accessor :host
2998
+
2999
+ # The TCP port number for the health check request. The default value is 443.
3000
+ # Valid values are 1 through 65535.
3001
+ # Corresponds to the JSON property `port`
3002
+ # @return [Fixnum]
3003
+ attr_accessor :port
3004
+
3005
+ # Port name as defined in InstanceGroup#NamedPort#name. If both port and
3006
+ # port_name are defined, port takes precedence.
3007
+ # Corresponds to the JSON property `portName`
3008
+ # @return [String]
3009
+ attr_accessor :port_name
3010
+
3011
+ # Specifies the type of proxy header to append before sending data to the
3012
+ # backend, either NONE or PROXY_V1. The default is NONE.
3013
+ # Corresponds to the JSON property `proxyHeader`
3014
+ # @return [String]
3015
+ attr_accessor :proxy_header
3016
+
3017
+ # The request path of the HTTPS health check request. The default value is /.
3018
+ # Corresponds to the JSON property `requestPath`
3019
+ # @return [String]
3020
+ attr_accessor :request_path
3021
+
3022
+ def initialize(**args)
3023
+ update!(**args)
3024
+ end
3025
+
3026
+ # Update properties of this object
3027
+ def update!(**args)
3028
+ @host = args[:host] if args.key?(:host)
3029
+ @port = args[:port] if args.key?(:port)
3030
+ @port_name = args[:port_name] if args.key?(:port_name)
3031
+ @proxy_header = args[:proxy_header] if args.key?(:proxy_header)
3032
+ @request_path = args[:request_path] if args.key?(:request_path)
3033
+ end
3034
+ end
3035
+
3036
+ # An HealthCheck resource. This resource defines a template for how individual
3037
+ # virtual machines should be checked for health, via one of the supported
3038
+ # protocols.
3039
+ class HealthCheck
3040
+ include Google::Apis::Core::Hashable
3041
+
3042
+ # How often (in seconds) to send a health check. The default value is 5 seconds.
3043
+ # Corresponds to the JSON property `checkIntervalSec`
3044
+ # @return [Fixnum]
3045
+ attr_accessor :check_interval_sec
3046
+
3047
+ # [Output Only] Creation timestamp in 3339 text format.
3048
+ # Corresponds to the JSON property `creationTimestamp`
3049
+ # @return [String]
3050
+ attr_accessor :creation_timestamp
3051
+
3052
+ # An optional description of this resource. Provide this property when you
3053
+ # create the resource.
3054
+ # Corresponds to the JSON property `description`
3055
+ # @return [String]
3056
+ attr_accessor :description
3057
+
3058
+ # A so-far unhealthy instance will be marked healthy after this many consecutive
3059
+ # successes. The default value is 2.
3060
+ # Corresponds to the JSON property `healthyThreshold`
3061
+ # @return [Fixnum]
3062
+ attr_accessor :healthy_threshold
3063
+
3064
+ #
3065
+ # Corresponds to the JSON property `httpHealthCheck`
3066
+ # @return [Google::Apis::ComputeV1::HttpHealthCheck]
3067
+ attr_accessor :http_health_check
3068
+
3069
+ #
3070
+ # Corresponds to the JSON property `httpsHealthCheck`
3071
+ # @return [Google::Apis::ComputeV1::HttpsHealthCheck]
3072
+ attr_accessor :https_health_check
3073
+
3074
+ # [Output Only] The unique identifier for the resource. This identifier is
3075
+ # defined by the server.
3076
+ # Corresponds to the JSON property `id`
3077
+ # @return [String]
3078
+ attr_accessor :id
3079
+
3080
+ # Type of the resource.
3081
+ # Corresponds to the JSON property `kind`
3082
+ # @return [String]
3083
+ attr_accessor :kind
3084
+
3085
+ # Name of the resource. Provided by the client when the resource is created. The
3086
+ # name must be 1-63 characters long, and comply with RFC1035. Specifically, the
3087
+ # name must be 1-63 characters long and match the regular expression [a-z]([-a-
3088
+ # z0-9]*[a-z0-9])? which means the first character must be a lowercase letter,
3089
+ # and all following characters must be a dash, lowercase letter, or digit,
3090
+ # except the last character, which cannot be a dash.
3091
+ # Corresponds to the JSON property `name`
3092
+ # @return [String]
3093
+ attr_accessor :name
3094
+
3095
+ # [Output Only] Server-defined URL for the resource.
3096
+ # Corresponds to the JSON property `selfLink`
3097
+ # @return [String]
3098
+ attr_accessor :self_link
3099
+
3100
+ #
3101
+ # Corresponds to the JSON property `sslHealthCheck`
3102
+ # @return [Google::Apis::ComputeV1::SslHealthCheck]
3103
+ attr_accessor :ssl_health_check
3104
+
3105
+ #
3106
+ # Corresponds to the JSON property `tcpHealthCheck`
3107
+ # @return [Google::Apis::ComputeV1::TcpHealthCheck]
3108
+ attr_accessor :tcp_health_check
3109
+
3110
+ # How long (in seconds) to wait before claiming failure. The default value is 5
3111
+ # seconds. It is invalid for timeoutSec to have greater value than
3112
+ # checkIntervalSec.
3113
+ # Corresponds to the JSON property `timeoutSec`
3114
+ # @return [Fixnum]
3115
+ attr_accessor :timeout_sec
3116
+
3117
+ # Specifies the type of the healthCheck, either TCP, SSL, HTTP or HTTPS. If not
3118
+ # specified, the default is TCP. Exactly one of the protocol-specific health
3119
+ # check field must be specified, which must match type field.
3120
+ # Corresponds to the JSON property `type`
3121
+ # @return [String]
3122
+ attr_accessor :type
3123
+
3124
+ # A so-far healthy instance will be marked unhealthy after this many consecutive
3125
+ # failures. The default value is 2.
3126
+ # Corresponds to the JSON property `unhealthyThreshold`
3127
+ # @return [Fixnum]
3128
+ attr_accessor :unhealthy_threshold
3129
+
3130
+ def initialize(**args)
3131
+ update!(**args)
3132
+ end
3133
+
3134
+ # Update properties of this object
3135
+ def update!(**args)
3136
+ @check_interval_sec = args[:check_interval_sec] if args.key?(:check_interval_sec)
3137
+ @creation_timestamp = args[:creation_timestamp] if args.key?(:creation_timestamp)
3138
+ @description = args[:description] if args.key?(:description)
3139
+ @healthy_threshold = args[:healthy_threshold] if args.key?(:healthy_threshold)
3140
+ @http_health_check = args[:http_health_check] if args.key?(:http_health_check)
3141
+ @https_health_check = args[:https_health_check] if args.key?(:https_health_check)
3142
+ @id = args[:id] if args.key?(:id)
3143
+ @kind = args[:kind] if args.key?(:kind)
3144
+ @name = args[:name] if args.key?(:name)
3145
+ @self_link = args[:self_link] if args.key?(:self_link)
3146
+ @ssl_health_check = args[:ssl_health_check] if args.key?(:ssl_health_check)
3147
+ @tcp_health_check = args[:tcp_health_check] if args.key?(:tcp_health_check)
3148
+ @timeout_sec = args[:timeout_sec] if args.key?(:timeout_sec)
3149
+ @type = args[:type] if args.key?(:type)
3150
+ @unhealthy_threshold = args[:unhealthy_threshold] if args.key?(:unhealthy_threshold)
3151
+ end
3152
+ end
3153
+
3154
+ # Contains a list of HealthCheck resources.
3155
+ class HealthCheckList
3156
+ include Google::Apis::Core::Hashable
3157
+
3158
+ # [Output Only] The unique identifier for the resource. This identifier is
3159
+ # defined by the server.
3160
+ # Corresponds to the JSON property `id`
3161
+ # @return [String]
3162
+ attr_accessor :id
3163
+
3164
+ # A list of HealthCheck resources.
3165
+ # Corresponds to the JSON property `items`
3166
+ # @return [Array<Google::Apis::ComputeV1::HealthCheck>]
3167
+ attr_accessor :items
3168
+
3169
+ # Type of resource.
3170
+ # Corresponds to the JSON property `kind`
3171
+ # @return [String]
3172
+ attr_accessor :kind
3173
+
3174
+ # [Output Only] This token allows you to get the next page of results for list
3175
+ # requests. If the number of results is larger than maxResults, use the
3176
+ # nextPageToken as a value for the query parameter pageToken in the next list
3177
+ # request. Subsequent list requests will have their own nextPageToken to
3178
+ # continue paging through the results.
3179
+ # Corresponds to the JSON property `nextPageToken`
3180
+ # @return [String]
3181
+ attr_accessor :next_page_token
3182
+
3183
+ # [Output Only] Server-defined URL for this resource.
3184
+ # Corresponds to the JSON property `selfLink`
3185
+ # @return [String]
3186
+ attr_accessor :self_link
3187
+
3188
+ def initialize(**args)
3189
+ update!(**args)
3190
+ end
3191
+
3192
+ # Update properties of this object
3193
+ def update!(**args)
3194
+ @id = args[:id] if args.key?(:id)
3195
+ @items = args[:items] if args.key?(:items)
3196
+ @kind = args[:kind] if args.key?(:kind)
3197
+ @next_page_token = args[:next_page_token] if args.key?(:next_page_token)
3198
+ @self_link = args[:self_link] if args.key?(:self_link)
3199
+ end
3200
+ end
3201
+
2394
3202
  # A full or valid partial URL to a health check. For example, the following are
2395
3203
  # valid URLs:
2396
3204
  # - https://www.googleapis.com/compute/beta/projects/project-id/global/
@@ -2826,23 +3634,42 @@ module Google
2826
3634
 
2827
3635
  # The name of the image family to which this image belongs. You can create disks
2828
3636
  # by specifying an image family instead of a specific image name. The image
2829
- # family always returns its latest image that is not deprecated.
3637
+ # family always returns its latest image that is not deprecated. The name of the
3638
+ # image family must comply with RFC1035.
2830
3639
  # Corresponds to the JSON property `family`
2831
3640
  # @return [String]
2832
3641
  attr_accessor :family
2833
3642
 
3643
+ # A list of features to enable on the guest OS. Applicable for bootable images
3644
+ # only. Currently, only one feature can be enabled, VIRTIO_SCSCI_MULTIQUEUE,
3645
+ # which allows each virtual CPU to have its own queue. For Windows images, you
3646
+ # can only enable VIRTIO_SCSCI_MULTIQUEUE on images with driver version 1.2.0.
3647
+ # 1621 or higher. Linux images with kernel versions 3.17 and higher will support
3648
+ # VIRTIO_SCSCI_MULTIQUEUE.
3649
+ # For new Windows images, the server might also populate this field with the
3650
+ # value WINDOWS, to indicate that this is a Windows image. This value is purely
3651
+ # informational and does not enable or disable any features.
3652
+ # Corresponds to the JSON property `guestOsFeatures`
3653
+ # @return [Array<Google::Apis::ComputeV1::GuestOsFeature>]
3654
+ attr_accessor :guest_os_features
3655
+
2834
3656
  # [Output Only] The unique identifier for the resource. This identifier is
2835
3657
  # defined by the server.
2836
3658
  # Corresponds to the JSON property `id`
2837
3659
  # @return [String]
2838
3660
  attr_accessor :id
2839
3661
 
3662
+ # Represents a customer-supplied encryption key
3663
+ # Corresponds to the JSON property `imageEncryptionKey`
3664
+ # @return [Google::Apis::ComputeV1::CustomerEncryptionKey]
3665
+ attr_accessor :image_encryption_key
3666
+
2840
3667
  # [Output Only] Type of the resource. Always compute#image for images.
2841
3668
  # Corresponds to the JSON property `kind`
2842
3669
  # @return [String]
2843
3670
  attr_accessor :kind
2844
3671
 
2845
- # Any applicable publicly visible licenses.
3672
+ # Any applicable license URI.
2846
3673
  # Corresponds to the JSON property `licenses`
2847
3674
  # @return [Array<String>]
2848
3675
  attr_accessor :licenses
@@ -2867,17 +3694,22 @@ module Google
2867
3694
  # @return [String]
2868
3695
  attr_accessor :self_link
2869
3696
 
2870
- # URL of the The source disk used to create this image. This can be a full or
2871
- # valid partial URL. You must provide either this property or the rawDisk.source
3697
+ # URL of the source disk used to create this image. This can be a full or valid
3698
+ # partial URL. You must provide either this property or the rawDisk.source
2872
3699
  # property but not both to create an image. For example, the following are valid
2873
3700
  # values:
2874
- # - https://www.googleapis.com/compute/v1/projects/project/zones/zone/disk/disk
2875
- # - projects/project/zones/zone/disk/disk
3701
+ # - https://www.googleapis.com/compute/v1/projects/project/zones/zone/disks/disk
3702
+ # - projects/project/zones/zone/disks/disk
2876
3703
  # - zones/zone/disks/disk
2877
3704
  # Corresponds to the JSON property `sourceDisk`
2878
3705
  # @return [String]
2879
3706
  attr_accessor :source_disk
2880
3707
 
3708
+ # Represents a customer-supplied encryption key
3709
+ # Corresponds to the JSON property `sourceDiskEncryptionKey`
3710
+ # @return [Google::Apis::ComputeV1::CustomerEncryptionKey]
3711
+ attr_accessor :source_disk_encryption_key
3712
+
2881
3713
  # The ID value of the disk used to create this image. This value may be used to
2882
3714
  # determine whether the image was taken from the current or a previous instance
2883
3715
  # of a given disk name.
@@ -2911,13 +3743,16 @@ module Google
2911
3743
  @description = args[:description] if args.key?(:description)
2912
3744
  @disk_size_gb = args[:disk_size_gb] if args.key?(:disk_size_gb)
2913
3745
  @family = args[:family] if args.key?(:family)
3746
+ @guest_os_features = args[:guest_os_features] if args.key?(:guest_os_features)
2914
3747
  @id = args[:id] if args.key?(:id)
3748
+ @image_encryption_key = args[:image_encryption_key] if args.key?(:image_encryption_key)
2915
3749
  @kind = args[:kind] if args.key?(:kind)
2916
3750
  @licenses = args[:licenses] if args.key?(:licenses)
2917
3751
  @name = args[:name] if args.key?(:name)
2918
3752
  @raw_disk = args[:raw_disk] if args.key?(:raw_disk)
2919
3753
  @self_link = args[:self_link] if args.key?(:self_link)
2920
3754
  @source_disk = args[:source_disk] if args.key?(:source_disk)
3755
+ @source_disk_encryption_key = args[:source_disk_encryption_key] if args.key?(:source_disk_encryption_key)
2921
3756
  @source_disk_id = args[:source_disk_id] if args.key?(:source_disk_id)
2922
3757
  @source_type = args[:source_type] if args.key?(:source_type)
2923
3758
  @status = args[:status] if args.key?(:status)
@@ -3086,7 +3921,7 @@ module Google
3086
3921
 
3087
3922
  # An array of configurations for this interface. This specifies how this
3088
3923
  # interface is configured to interact with other network services, such as
3089
- # connecting to the internet.
3924
+ # connecting to the internet. Only one interface is supported per instance.
3090
3925
  # Corresponds to the JSON property `networkInterfaces`
3091
3926
  # @return [Array<Google::Apis::ComputeV1::NetworkInterface>]
3092
3927
  attr_accessor :network_interfaces
@@ -3102,15 +3937,17 @@ module Google
3102
3937
  attr_accessor :self_link
3103
3938
 
3104
3939
  # A list of service accounts, with their specified scopes, authorized for this
3105
- # instance. Service accounts generate access tokens that can be accessed through
3106
- # the metadata server and used to authenticate applications on the instance. See
3107
- # Authenticating from Google Compute Engine for more information.
3940
+ # instance. Only one service account per VM instance is supported.
3941
+ # Service accounts generate access tokens that can be accessed through the
3942
+ # metadata server and used to authenticate applications on the instance. See
3943
+ # Service Accounts for more information.
3108
3944
  # Corresponds to the JSON property `serviceAccounts`
3109
3945
  # @return [Array<Google::Apis::ComputeV1::ServiceAccount>]
3110
3946
  attr_accessor :service_accounts
3111
3947
 
3112
3948
  # [Output Only] The status of the instance. One of the following values:
3113
- # PROVISIONING, STAGING, RUNNING, STOPPING, and TERMINATED.
3949
+ # PROVISIONING, STAGING, RUNNING, STOPPING, SUSPENDING, SUSPENDED, and
3950
+ # TERMINATED.
3114
3951
  # Corresponds to the JSON property `status`
3115
3952
  # @return [String]
3116
3953
  attr_accessor :status
@@ -3229,8 +4066,8 @@ module Google
3229
4066
  # @return [String]
3230
4067
  attr_accessor :fingerprint
3231
4068
 
3232
- # [Output Only] A unique identifier for this resource type. The server generates
3233
- # this identifier.
4069
+ # [Output Only] A unique identifier for this instance group, generated by the
4070
+ # server.
3234
4071
  # Corresponds to the JSON property `id`
3235
4072
  # @return [String]
3236
4073
  attr_accessor :id
@@ -3261,6 +4098,12 @@ module Google
3261
4098
  # @return [String]
3262
4099
  attr_accessor :network
3263
4100
 
4101
+ # The URL of the region where the instance group is located (for regional
4102
+ # resources).
4103
+ # Corresponds to the JSON property `region`
4104
+ # @return [String]
4105
+ attr_accessor :region
4106
+
3264
4107
  # [Output Only] The URL for this instance group. The server generates this URL.
3265
4108
  # Corresponds to the JSON property `selfLink`
3266
4109
  # @return [String]
@@ -3276,7 +4119,8 @@ module Google
3276
4119
  # @return [String]
3277
4120
  attr_accessor :subnetwork
3278
4121
 
3279
- # [Output Only] The URL of the zone where the instance group is located.
4122
+ # [Output Only] The URL of the zone where the instance group is located (for
4123
+ # zonal resources).
3280
4124
  # Corresponds to the JSON property `zone`
3281
4125
  # @return [String]
3282
4126
  attr_accessor :zone
@@ -3295,6 +4139,7 @@ module Google
3295
4139
  @name = args[:name] if args.key?(:name)
3296
4140
  @named_ports = args[:named_ports] if args.key?(:named_ports)
3297
4141
  @network = args[:network] if args.key?(:network)
4142
+ @region = args[:region] if args.key?(:region)
3298
4143
  @self_link = args[:self_link] if args.key?(:self_link)
3299
4144
  @size = args[:size] if args.key?(:size)
3300
4145
  @subnetwork = args[:subnetwork] if args.key?(:subnetwork)
@@ -3400,7 +4245,7 @@ module Google
3400
4245
  end
3401
4246
  end
3402
4247
 
3403
- #
4248
+ # An Instance Group Manager resource.
3404
4249
  class InstanceGroupManager
3405
4250
  include Google::Apis::Core::Hashable
3406
4251
 
@@ -3472,6 +4317,12 @@ module Google
3472
4317
  # @return [Array<Google::Apis::ComputeV1::NamedPort>]
3473
4318
  attr_accessor :named_ports
3474
4319
 
4320
+ # [Output Only] The URL of the region where the managed instance group resides (
4321
+ # for regional resources).
4322
+ # Corresponds to the JSON property `region`
4323
+ # @return [String]
4324
+ attr_accessor :region
4325
+
3475
4326
  # [Output Only] The URL for this managed instance group. The server defines this
3476
4327
  # URL.
3477
4328
  # Corresponds to the JSON property `selfLink`
@@ -3492,7 +4343,8 @@ module Google
3492
4343
  # @return [Fixnum]
3493
4344
  attr_accessor :target_size
3494
4345
 
3495
- # The name of the zone where the managed instance group is located.
4346
+ # [Output Only] The URL of the zone where the managed instance group is located (
4347
+ # for zonal resources).
3496
4348
  # Corresponds to the JSON property `zone`
3497
4349
  # @return [String]
3498
4350
  attr_accessor :zone
@@ -3514,6 +4366,7 @@ module Google
3514
4366
  @kind = args[:kind] if args.key?(:kind)
3515
4367
  @name = args[:name] if args.key?(:name)
3516
4368
  @named_ports = args[:named_ports] if args.key?(:named_ports)
4369
+ @region = args[:region] if args.key?(:region)
3517
4370
  @self_link = args[:self_link] if args.key?(:self_link)
3518
4371
  @target_pools = args[:target_pools] if args.key?(:target_pools)
3519
4372
  @target_size = args[:target_size] if args.key?(:target_size)
@@ -3534,13 +4387,23 @@ module Google
3534
4387
 
3535
4388
  # [Output Only] The number of instances in the managed instance group that are
3536
4389
  # scheduled to be created or are currently being created. If the group fails to
3537
- # create one of these instances, it tries again until it creates the instance
4390
+ # create any of these instances, it tries again until it creates the instance
3538
4391
  # successfully.
4392
+ # If you have disabled creation retries, this field will not be populated;
4393
+ # instead, the creatingWithoutRetries field will be populated.
3539
4394
  # Corresponds to the JSON property `creating`
3540
4395
  # @return [Fixnum]
3541
4396
  attr_accessor :creating
3542
4397
 
3543
- # [Output Only] The number of instances in the managed instance group that are
4398
+ # [Output Only] The number of instances that the managed instance group will
4399
+ # attempt to create. The group attempts to create each instance only once. If
4400
+ # the group fails to create any of these instances, it decreases the group's
4401
+ # targetSize value accordingly.
4402
+ # Corresponds to the JSON property `creatingWithoutRetries`
4403
+ # @return [Fixnum]
4404
+ attr_accessor :creating_without_retries
4405
+
4406
+ # [Output Only] The number of instances in the managed instance group that are
3544
4407
  # scheduled to be deleted or are currently being deleted.
3545
4408
  # Corresponds to the JSON property `deleting`
3546
4409
  # @return [Fixnum]
@@ -3581,6 +4444,7 @@ module Google
3581
4444
  def update!(**args)
3582
4445
  @abandoning = args[:abandoning] if args.key?(:abandoning)
3583
4446
  @creating = args[:creating] if args.key?(:creating)
4447
+ @creating_without_retries = args[:creating_without_retries] if args.key?(:creating_without_retries)
3584
4448
  @deleting = args[:deleting] if args.key?(:deleting)
3585
4449
  @none = args[:none] if args.key?(:none)
3586
4450
  @recreating = args[:recreating] if args.key?(:recreating)
@@ -3669,7 +4533,7 @@ module Google
3669
4533
  # @return [String]
3670
4534
  attr_accessor :next_page_token
3671
4535
 
3672
- # [Output Only] The URL for this resource type. The server generates this URL.
4536
+ # [Output Only] Server-defined URL for this resource.
3673
4537
  # Corresponds to the JSON property `selfLink`
3674
4538
  # @return [String]
3675
4539
  attr_accessor :self_link
@@ -3933,8 +4797,8 @@ module Google
3933
4797
  class InstanceGroupsListInstances
3934
4798
  include Google::Apis::Core::Hashable
3935
4799
 
3936
- # [Output Only] A unique identifier for this list of instance groups. The server
3937
- # generates this identifier.
4800
+ # [Output Only] A unique identifier for this list of instances in the specified
4801
+ # instance group. The server generates this identifier.
3938
4802
  # Corresponds to the JSON property `id`
3939
4803
  # @return [String]
3940
4804
  attr_accessor :id
@@ -3946,7 +4810,8 @@ module Google
3946
4810
  attr_accessor :items
3947
4811
 
3948
4812
  # [Output Only] The resource type, which is always compute#
3949
- # instanceGroupsListInstances for lists of instance groups.
4813
+ # instanceGroupsListInstances for the list of instances in the specified
4814
+ # instance group.
3950
4815
  # Corresponds to the JSON property `kind`
3951
4816
  # @return [String]
3952
4817
  attr_accessor :kind
@@ -3960,8 +4825,8 @@ module Google
3960
4825
  # @return [String]
3961
4826
  attr_accessor :next_page_token
3962
4827
 
3963
- # [Output Only] The URL for this list of instance groups. The server generates
3964
- # this URL.
4828
+ # [Output Only] The URL for this list of instances in the specified instance
4829
+ # groups. The server generates this URL.
3965
4830
  # Corresponds to the JSON property `selfLink`
3966
4831
  # @return [String]
3967
4832
  attr_accessor :self_link
@@ -4232,8 +5097,8 @@ module Google
4232
5097
  # IP addresses other than their own and receive packets with destination IP
4233
5098
  # addresses other than their own. If these instances will be used as an IP
4234
5099
  # gateway or it will be set as the next-hop in a Route resource, specify true.
4235
- # If unsure, leave this set to false. See the canIpForward documentation for
4236
- # more information.
5100
+ # If unsure, leave this set to false. See the Enable IP forwarding for instances
5101
+ # documentation for more information.
4237
5102
  # Corresponds to the JSON property `canIpForward`
4238
5103
  # @return [Boolean]
4239
5104
  attr_accessor :can_ip_forward
@@ -4577,6 +5442,55 @@ module Google
4577
5442
  end
4578
5443
  end
4579
5444
 
5445
+ #
5446
+ class InstancesSetServiceAccountRequest
5447
+ include Google::Apis::Core::Hashable
5448
+
5449
+ # Email address of the service account.
5450
+ # Corresponds to the JSON property `email`
5451
+ # @return [String]
5452
+ attr_accessor :email
5453
+
5454
+ # The list of scopes to be made available for this service account.
5455
+ # Corresponds to the JSON property `scopes`
5456
+ # @return [Array<String>]
5457
+ attr_accessor :scopes
5458
+
5459
+ def initialize(**args)
5460
+ update!(**args)
5461
+ end
5462
+
5463
+ # Update properties of this object
5464
+ def update!(**args)
5465
+ @email = args[:email] if args.key?(:email)
5466
+ @scopes = args[:scopes] if args.key?(:scopes)
5467
+ end
5468
+ end
5469
+
5470
+ #
5471
+ class InstancesStartWithEncryptionKeyRequest
5472
+ include Google::Apis::Core::Hashable
5473
+
5474
+ # Array of disks associated with this instance that are protected with a
5475
+ # customer-supplied encryption key.
5476
+ # In order to start the instance, the disk url and its corresponding key must be
5477
+ # provided.
5478
+ # If the disk is not protected with a customer-supplied encryption key it should
5479
+ # not be specified.
5480
+ # Corresponds to the JSON property `disks`
5481
+ # @return [Array<Google::Apis::ComputeV1::CustomerEncryptionKeyProtectedDisk>]
5482
+ attr_accessor :disks
5483
+
5484
+ def initialize(**args)
5485
+ update!(**args)
5486
+ end
5487
+
5488
+ # Update properties of this object
5489
+ def update!(**args)
5490
+ @disks = args[:disks] if args.key?(:disks)
5491
+ end
5492
+ end
5493
+
4580
5494
  # A license resource.
4581
5495
  class License
4582
5496
  include Google::Apis::Core::Hashable
@@ -4653,6 +5567,13 @@ module Google
4653
5567
  # @return [Fixnum]
4654
5568
  attr_accessor :image_space_gb
4655
5569
 
5570
+ # [Output Only] Whether this machine type has a shared CPU. See Shared-core
5571
+ # machine types for more information.
5572
+ # Corresponds to the JSON property `isSharedCpu`
5573
+ # @return [Boolean]
5574
+ attr_accessor :is_shared_cpu
5575
+ alias_method :is_shared_cpu?, :is_shared_cpu
5576
+
4656
5577
  # [Output Only] The type of the resource. Always compute#machineType for machine
4657
5578
  # types.
4658
5579
  # Corresponds to the JSON property `kind`
@@ -4708,6 +5629,7 @@ module Google
4708
5629
  @guest_cpus = args[:guest_cpus] if args.key?(:guest_cpus)
4709
5630
  @id = args[:id] if args.key?(:id)
4710
5631
  @image_space_gb = args[:image_space_gb] if args.key?(:image_space_gb)
5632
+ @is_shared_cpu = args[:is_shared_cpu] if args.key?(:is_shared_cpu)
4711
5633
  @kind = args[:kind] if args.key?(:kind)
4712
5634
  @maximum_persistent_disks = args[:maximum_persistent_disks] if args.key?(:maximum_persistent_disks)
4713
5635
  @maximum_persistent_disks_size_gb = args[:maximum_persistent_disks_size_gb] if args.key?(:maximum_persistent_disks_size_gb)
@@ -4939,7 +5861,7 @@ module Google
4939
5861
  # fails to create this instance, it will try again until it is successful.
4940
5862
  # - CREATING_WITHOUT_RETRIES The managed instance group is attempting to create
4941
5863
  # this instance only once. If the group fails to create this instance, it does
4942
- # not try again and the group's target_size value is decreased.
5864
+ # not try again and the group's targetSize value is decreased instead.
4943
5865
  # - RECREATING The managed instance group is recreating this instance.
4944
5866
  # - DELETING The managed instance group is permanently deleting this instance.
4945
5867
  # - ABANDONING The managed instance group is abandoning this instance. The
@@ -5250,23 +6172,31 @@ module Google
5250
6172
  class NetworkInterface
5251
6173
  include Google::Apis::Core::Hashable
5252
6174
 
5253
- # An array of configurations for this interface. Currently, ONE_TO_ONE_NAT is
5254
- # the only access config supported. If there are no accessConfigs specified,
6175
+ # An array of configurations for this interface. Currently, only one access
6176
+ # config, ONE_TO_ONE_NAT, is supported. If there are no accessConfigs specified,
5255
6177
  # then this instance will have no external internet access.
5256
6178
  # Corresponds to the JSON property `accessConfigs`
5257
6179
  # @return [Array<Google::Apis::ComputeV1::AccessConfig>]
5258
6180
  attr_accessor :access_configs
5259
6181
 
6182
+ # [Output Only] Type of the resource. Always compute#networkInterface for
6183
+ # network interfaces.
6184
+ # Corresponds to the JSON property `kind`
6185
+ # @return [String]
6186
+ attr_accessor :kind
6187
+
5260
6188
  # [Output Only] The name of the network interface, generated by the server. For
5261
6189
  # network devices, these are eth0, eth1, etc.
5262
6190
  # Corresponds to the JSON property `name`
5263
6191
  # @return [String]
5264
6192
  attr_accessor :name
5265
6193
 
5266
- # URL of the network resource for this instance. This is required for creating
5267
- # an instance but optional when creating a firewall rule. If not specified when
5268
- # creating a firewall rule, the default network is used:
5269
- # global/networks/default
6194
+ # URL of the network resource for this instance. When creating an instance, if
6195
+ # neither the network nor the subnetwork is specified, the default network
6196
+ # global/networks/default is used; if the network is not specified but the
6197
+ # subnetwork is specified, the network is inferred.
6198
+ # This field is optional when creating a firewall rule. If not specified when
6199
+ # creating a firewall rule, the default network global/networks/default is used.
5270
6200
  # If you specify this property, you can specify the network as a full or partial
5271
6201
  # URL. For example, the following are all valid URLs:
5272
6202
  # - https://www.googleapis.com/compute/v1/projects/project/global/networks/
@@ -5304,6 +6234,7 @@ module Google
5304
6234
  # Update properties of this object
5305
6235
  def update!(**args)
5306
6236
  @access_configs = args[:access_configs] if args.key?(:access_configs)
6237
+ @kind = args[:kind] if args.key?(:kind)
5307
6238
  @name = args[:name] if args.key?(:name)
5308
6239
  @network = args[:network] if args.key?(:network)
5309
6240
  @network_ip = args[:network_ip] if args.key?(:network_ip)
@@ -5341,7 +6272,7 @@ module Google
5341
6272
  # @return [String]
5342
6273
  attr_accessor :next_page_token
5343
6274
 
5344
- # [Output Only] Server-defined URL for this resource .
6275
+ # [Output Only] Server-defined URL for this resource.
5345
6276
  # Corresponds to the JSON property `selfLink`
5346
6277
  # @return [String]
5347
6278
  attr_accessor :self_link
@@ -5369,7 +6300,7 @@ module Google
5369
6300
  # @return [String]
5370
6301
  attr_accessor :client_operation_id
5371
6302
 
5372
- # [Output Only] Creation timestamp in RFC3339 text format.
6303
+ # [Deprecated] This field is deprecated.
5373
6304
  # Corresponds to the JSON property `creationTimestamp`
5374
6305
  # @return [String]
5375
6306
  attr_accessor :creation_timestamp
@@ -5477,7 +6408,9 @@ module Google
5477
6408
  # @return [String]
5478
6409
  attr_accessor :target_id
5479
6410
 
5480
- # [Output Only] The URL of the resource that the operation modifies.
6411
+ # [Output Only] The URL of the resource that the operation modifies. For
6412
+ # operations related to creating a snapshot, this points to the persistent disk
6413
+ # that the snapshot was created from.
5481
6414
  # Corresponds to the JSON property `targetLink`
5482
6415
  # @return [String]
5483
6416
  attr_accessor :target_link
@@ -5927,6 +6860,11 @@ module Google
5927
6860
  # @return [String]
5928
6861
  attr_accessor :creation_timestamp
5929
6862
 
6863
+ # [Output Only] Default service account used by VMs running in this project.
6864
+ # Corresponds to the JSON property `defaultServiceAccount`
6865
+ # @return [String]
6866
+ attr_accessor :default_service_account
6867
+
5930
6868
  # An optional textual description of the resource.
5931
6869
  # Corresponds to the JSON property `description`
5932
6870
  # @return [String]
@@ -5979,6 +6917,7 @@ module Google
5979
6917
  def update!(**args)
5980
6918
  @common_instance_metadata = args[:common_instance_metadata] if args.key?(:common_instance_metadata)
5981
6919
  @creation_timestamp = args[:creation_timestamp] if args.key?(:creation_timestamp)
6920
+ @default_service_account = args[:default_service_account] if args.key?(:default_service_account)
5982
6921
  @description = args[:description] if args.key?(:description)
5983
6922
  @enabled_features = args[:enabled_features] if args.key?(:enabled_features)
5984
6923
  @id = args[:id] if args.key?(:id)
@@ -6096,8 +7035,8 @@ module Google
6096
7035
  end
6097
7036
  end
6098
7037
 
6099
- # Contains a list of region resources.
6100
- class RegionList
7038
+ # Contains a list of autoscalers.
7039
+ class RegionAutoscalerList
6101
7040
  include Google::Apis::Core::Hashable
6102
7041
 
6103
7042
  # [Output Only] The unique identifier for the resource. This identifier is
@@ -6106,21 +7045,17 @@ module Google
6106
7045
  # @return [String]
6107
7046
  attr_accessor :id
6108
7047
 
6109
- # [Output Only] A list of Region resources.
7048
+ # A list of autoscalers.
6110
7049
  # Corresponds to the JSON property `items`
6111
- # @return [Array<Google::Apis::ComputeV1::Region>]
7050
+ # @return [Array<Google::Apis::ComputeV1::Autoscaler>]
6112
7051
  attr_accessor :items
6113
7052
 
6114
- # [Output Only] Type of resource. Always compute#regionList for lists of regions.
7053
+ # Type of resource.
6115
7054
  # Corresponds to the JSON property `kind`
6116
7055
  # @return [String]
6117
7056
  attr_accessor :kind
6118
7057
 
6119
- # [Output Only] This token allows you to get the next page of results for list
6120
- # requests. If the number of results is larger than maxResults, use the
6121
- # nextPageToken as a value for the query parameter pageToken in the next list
6122
- # request. Subsequent list requests will have their own nextPageToken to
6123
- # continue paging through the results.
7058
+ # [Output Only] A token used to continue a truncated list request.
6124
7059
  # Corresponds to the JSON property `nextPageToken`
6125
7060
  # @return [String]
6126
7061
  attr_accessor :next_page_token
@@ -6144,14 +7079,39 @@ module Google
6144
7079
  end
6145
7080
  end
6146
7081
 
6147
- #
6148
- class ResourceGroupReference
7082
+ # Contains a list of InstanceGroup resources.
7083
+ class RegionInstanceGroupList
6149
7084
  include Google::Apis::Core::Hashable
6150
7085
 
6151
- # A URI referencing one of the resource views listed in the backend service.
6152
- # Corresponds to the JSON property `group`
7086
+ # [Output Only] The unique identifier for the resource. This identifier is
7087
+ # defined by the server.
7088
+ # Corresponds to the JSON property `id`
6153
7089
  # @return [String]
6154
- attr_accessor :group
7090
+ attr_accessor :id
7091
+
7092
+ # A list of InstanceGroup resources.
7093
+ # Corresponds to the JSON property `items`
7094
+ # @return [Array<Google::Apis::ComputeV1::InstanceGroup>]
7095
+ attr_accessor :items
7096
+
7097
+ # The resource type.
7098
+ # Corresponds to the JSON property `kind`
7099
+ # @return [String]
7100
+ attr_accessor :kind
7101
+
7102
+ # [Output Only] This token allows you to get the next page of results for list
7103
+ # requests. If the number of results is larger than maxResults, use the
7104
+ # nextPageToken as a value for the query parameter pageToken in the next list
7105
+ # request. Subsequent list requests will have their own nextPageToken to
7106
+ # continue paging through the results.
7107
+ # Corresponds to the JSON property `nextPageToken`
7108
+ # @return [String]
7109
+ attr_accessor :next_page_token
7110
+
7111
+ # [Output Only] The URL for this resource type. The server generates this URL.
7112
+ # Corresponds to the JSON property `selfLink`
7113
+ # @return [String]
7114
+ attr_accessor :self_link
6155
7115
 
6156
7116
  def initialize(**args)
6157
7117
  update!(**args)
@@ -6159,121 +7119,87 @@ module Google
6159
7119
 
6160
7120
  # Update properties of this object
6161
7121
  def update!(**args)
6162
- @group = args[:group] if args.key?(:group)
7122
+ @id = args[:id] if args.key?(:id)
7123
+ @items = args[:items] if args.key?(:items)
7124
+ @kind = args[:kind] if args.key?(:kind)
7125
+ @next_page_token = args[:next_page_token] if args.key?(:next_page_token)
7126
+ @self_link = args[:self_link] if args.key?(:self_link)
6163
7127
  end
6164
7128
  end
6165
7129
 
6166
- # Represents a Route resource. A route specifies how certain packets should be
6167
- # handled by the network. Routes are associated with instances by tags and the
6168
- # set of routes for a particular instance is called its routing table.
6169
- # For each packet leaving a instance, the system searches that instance's
6170
- # routing table for a single best matching route. Routes match packets by
6171
- # destination IP address, preferring smaller or more specific ranges over larger
6172
- # ones. If there is a tie, the system selects the route with the smallest
6173
- # priority value. If there is still a tie, it uses the layer three and four
6174
- # packet headers to select just one of the remaining matching routes. The packet
6175
- # is then forwarded as specified by the nextHop field of the winning route -
6176
- # either to another instance destination, a instance gateway or a Google Compute
6177
- # Engine-operated gateway.
6178
- # Packets that do not match any route in the sending instance's routing table
6179
- # are dropped.
6180
- class Route
7130
+ # Contains a list of managed instance groups.
7131
+ class RegionInstanceGroupManagerList
6181
7132
  include Google::Apis::Core::Hashable
6182
7133
 
6183
- # [Output Only] Creation timestamp in RFC3339 text format.
6184
- # Corresponds to the JSON property `creationTimestamp`
6185
- # @return [String]
6186
- attr_accessor :creation_timestamp
6187
-
6188
- # An optional description of this resource. Provide this property when you
6189
- # create the resource.
6190
- # Corresponds to the JSON property `description`
6191
- # @return [String]
6192
- attr_accessor :description
6193
-
6194
- # The destination range of outgoing packets that this route applies to.
6195
- # Corresponds to the JSON property `destRange`
6196
- # @return [String]
6197
- attr_accessor :dest_range
6198
-
6199
7134
  # [Output Only] The unique identifier for the resource. This identifier is
6200
7135
  # defined by the server.
6201
7136
  # Corresponds to the JSON property `id`
6202
7137
  # @return [String]
6203
7138
  attr_accessor :id
6204
7139
 
6205
- # [Output Only] Type of this resource. Always compute#routes for Route resources.
7140
+ # A list of managed instance groups.
7141
+ # Corresponds to the JSON property `items`
7142
+ # @return [Array<Google::Apis::ComputeV1::InstanceGroupManager>]
7143
+ attr_accessor :items
7144
+
7145
+ # [Output Only] The resource type, which is always compute#
7146
+ # instanceGroupManagerList for a list of managed instance groups that exist in
7147
+ # th regional scope.
6206
7148
  # Corresponds to the JSON property `kind`
6207
7149
  # @return [String]
6208
7150
  attr_accessor :kind
6209
7151
 
6210
- # Name of the resource. Provided by the client when the resource is created. The
6211
- # name must be 1-63 characters long, and comply with RFC1035. Specifically, the
6212
- # name must be 1-63 characters long and match the regular expression [a-z]([-a-
6213
- # z0-9]*[a-z0-9])? which means the first character must be a lowercase letter,
6214
- # and all following characters must be a dash, lowercase letter, or digit,
6215
- # except the last character, which cannot be a dash.
6216
- # Corresponds to the JSON property `name`
7152
+ # [Output only] A token used to continue a truncated list request.
7153
+ # Corresponds to the JSON property `nextPageToken`
6217
7154
  # @return [String]
6218
- attr_accessor :name
7155
+ attr_accessor :next_page_token
6219
7156
 
6220
- # Fully-qualified URL of the network that this route applies to.
6221
- # Corresponds to the JSON property `network`
7157
+ # [Output only] The URL for this resource type. The server generates this URL.
7158
+ # Corresponds to the JSON property `selfLink`
6222
7159
  # @return [String]
6223
- attr_accessor :network
7160
+ attr_accessor :self_link
6224
7161
 
6225
- # The URL to a gateway that should handle matching packets. You can only specify
6226
- # the internet gateway using a full or partial valid URL: projects/<project-id>/
6227
- # global/gateways/default-internet-gateway
6228
- # Corresponds to the JSON property `nextHopGateway`
6229
- # @return [String]
6230
- attr_accessor :next_hop_gateway
7162
+ def initialize(**args)
7163
+ update!(**args)
7164
+ end
6231
7165
 
6232
- # The URL to an instance that should handle matching packets. You can specify
6233
- # this as a full or partial URL. For example:
6234
- # https://www.googleapis.com/compute/v1/projects/project/zones/zone/instances/
6235
- # Corresponds to the JSON property `nextHopInstance`
6236
- # @return [String]
6237
- attr_accessor :next_hop_instance
7166
+ # Update properties of this object
7167
+ def update!(**args)
7168
+ @id = args[:id] if args.key?(:id)
7169
+ @items = args[:items] if args.key?(:items)
7170
+ @kind = args[:kind] if args.key?(:kind)
7171
+ @next_page_token = args[:next_page_token] if args.key?(:next_page_token)
7172
+ @self_link = args[:self_link] if args.key?(:self_link)
7173
+ end
7174
+ end
6238
7175
 
6239
- # The network IP address of an instance that should handle matching packets.
6240
- # Corresponds to the JSON property `nextHopIp`
6241
- # @return [String]
6242
- attr_accessor :next_hop_ip
7176
+ #
7177
+ class RegionInstanceGroupManagersAbandonInstancesRequest
7178
+ include Google::Apis::Core::Hashable
6243
7179
 
6244
- # The URL of the local network if it should handle matching packets.
6245
- # Corresponds to the JSON property `nextHopNetwork`
6246
- # @return [String]
6247
- attr_accessor :next_hop_network
7180
+ # The names of one or more instances to abandon.
7181
+ # Corresponds to the JSON property `instances`
7182
+ # @return [Array<String>]
7183
+ attr_accessor :instances
6248
7184
 
6249
- # The URL to a VpnTunnel that should handle matching packets.
6250
- # Corresponds to the JSON property `nextHopVpnTunnel`
6251
- # @return [String]
6252
- attr_accessor :next_hop_vpn_tunnel
7185
+ def initialize(**args)
7186
+ update!(**args)
7187
+ end
6253
7188
 
6254
- # The priority of this route. Priority is used to break ties in cases where
6255
- # there is more than one matching route of equal prefix length. In the case of
6256
- # two routes with equal prefix length, the one with the lowest-numbered priority
6257
- # value wins. Default value is 1000. Valid range is 0 through 65535.
6258
- # Corresponds to the JSON property `priority`
6259
- # @return [Fixnum]
6260
- attr_accessor :priority
7189
+ # Update properties of this object
7190
+ def update!(**args)
7191
+ @instances = args[:instances] if args.key?(:instances)
7192
+ end
7193
+ end
6261
7194
 
6262
- # [Output Only] Server-defined fully-qualified URL for this resource.
6263
- # Corresponds to the JSON property `selfLink`
6264
- # @return [String]
6265
- attr_accessor :self_link
7195
+ #
7196
+ class RegionInstanceGroupManagersDeleteInstancesRequest
7197
+ include Google::Apis::Core::Hashable
6266
7198
 
6267
- # A list of instance tags to which this route applies.
6268
- # Corresponds to the JSON property `tags`
7199
+ # The names of one or more instances to delete.
7200
+ # Corresponds to the JSON property `instances`
6269
7201
  # @return [Array<String>]
6270
- attr_accessor :tags
6271
-
6272
- # [Output Only] If potential misconfigurations are detected for this route, this
6273
- # field will be populated with warning messages.
6274
- # Corresponds to the JSON property `warnings`
6275
- # @return [Array<Google::Apis::ComputeV1::Route::Warning>]
6276
- attr_accessor :warnings
7202
+ attr_accessor :instances
6277
7203
 
6278
7204
  def initialize(**args)
6279
7205
  update!(**args)
@@ -6281,38 +7207,1004 @@ module Google
6281
7207
 
6282
7208
  # Update properties of this object
6283
7209
  def update!(**args)
6284
- @creation_timestamp = args[:creation_timestamp] if args.key?(:creation_timestamp)
6285
- @description = args[:description] if args.key?(:description)
6286
- @dest_range = args[:dest_range] if args.key?(:dest_range)
6287
- @id = args[:id] if args.key?(:id)
6288
- @kind = args[:kind] if args.key?(:kind)
6289
- @name = args[:name] if args.key?(:name)
6290
- @network = args[:network] if args.key?(:network)
6291
- @next_hop_gateway = args[:next_hop_gateway] if args.key?(:next_hop_gateway)
6292
- @next_hop_instance = args[:next_hop_instance] if args.key?(:next_hop_instance)
6293
- @next_hop_ip = args[:next_hop_ip] if args.key?(:next_hop_ip)
6294
- @next_hop_network = args[:next_hop_network] if args.key?(:next_hop_network)
6295
- @next_hop_vpn_tunnel = args[:next_hop_vpn_tunnel] if args.key?(:next_hop_vpn_tunnel)
6296
- @priority = args[:priority] if args.key?(:priority)
6297
- @self_link = args[:self_link] if args.key?(:self_link)
6298
- @tags = args[:tags] if args.key?(:tags)
6299
- @warnings = args[:warnings] if args.key?(:warnings)
7210
+ @instances = args[:instances] if args.key?(:instances)
6300
7211
  end
6301
-
6302
- #
6303
- class Warning
6304
- include Google::Apis::Core::Hashable
6305
-
6306
- # [Output Only] A warning code, if applicable. For example, Compute Engine
6307
- # returns NO_RESULTS_ON_PAGE if there are no results in the response.
6308
- # Corresponds to the JSON property `code`
7212
+ end
7213
+
7214
+ #
7215
+ class RegionInstanceGroupManagersListInstancesResponse
7216
+ include Google::Apis::Core::Hashable
7217
+
7218
+ # List of managed instances.
7219
+ # Corresponds to the JSON property `managedInstances`
7220
+ # @return [Array<Google::Apis::ComputeV1::ManagedInstance>]
7221
+ attr_accessor :managed_instances
7222
+
7223
+ def initialize(**args)
7224
+ update!(**args)
7225
+ end
7226
+
7227
+ # Update properties of this object
7228
+ def update!(**args)
7229
+ @managed_instances = args[:managed_instances] if args.key?(:managed_instances)
7230
+ end
7231
+ end
7232
+
7233
+ #
7234
+ class RegionInstanceGroupManagersRecreateRequest
7235
+ include Google::Apis::Core::Hashable
7236
+
7237
+ # The URL for one or more instances to recreate.
7238
+ # Corresponds to the JSON property `instances`
7239
+ # @return [Array<String>]
7240
+ attr_accessor :instances
7241
+
7242
+ def initialize(**args)
7243
+ update!(**args)
7244
+ end
7245
+
7246
+ # Update properties of this object
7247
+ def update!(**args)
7248
+ @instances = args[:instances] if args.key?(:instances)
7249
+ end
7250
+ end
7251
+
7252
+ #
7253
+ class RegionInstanceGroupManagersSetTargetPoolsRequest
7254
+ include Google::Apis::Core::Hashable
7255
+
7256
+ # Fingerprint of the target pools information, which is a hash of the contents.
7257
+ # This field is used for optimistic locking when you update the target pool
7258
+ # entries. This field is optional.
7259
+ # Corresponds to the JSON property `fingerprint`
7260
+ # @return [String]
7261
+ attr_accessor :fingerprint
7262
+
7263
+ # The URL of all TargetPool resources to which instances in the instanceGroup
7264
+ # field are added. The target pools automatically apply to all of the instances
7265
+ # in the managed instance group.
7266
+ # Corresponds to the JSON property `targetPools`
7267
+ # @return [Array<String>]
7268
+ attr_accessor :target_pools
7269
+
7270
+ def initialize(**args)
7271
+ update!(**args)
7272
+ end
7273
+
7274
+ # Update properties of this object
7275
+ def update!(**args)
7276
+ @fingerprint = args[:fingerprint] if args.key?(:fingerprint)
7277
+ @target_pools = args[:target_pools] if args.key?(:target_pools)
7278
+ end
7279
+ end
7280
+
7281
+ #
7282
+ class RegionInstanceGroupManagersSetTemplateRequest
7283
+ include Google::Apis::Core::Hashable
7284
+
7285
+ # URL of the InstanceTemplate resource from which all new instances will be
7286
+ # created.
7287
+ # Corresponds to the JSON property `instanceTemplate`
7288
+ # @return [String]
7289
+ attr_accessor :instance_template
7290
+
7291
+ def initialize(**args)
7292
+ update!(**args)
7293
+ end
7294
+
7295
+ # Update properties of this object
7296
+ def update!(**args)
7297
+ @instance_template = args[:instance_template] if args.key?(:instance_template)
7298
+ end
7299
+ end
7300
+
7301
+ #
7302
+ class RegionInstanceGroupsListInstances
7303
+ include Google::Apis::Core::Hashable
7304
+
7305
+ # [Output Only] Unique identifier for the resource. Defined by the server.
7306
+ # Corresponds to the JSON property `id`
7307
+ # @return [String]
7308
+ attr_accessor :id
7309
+
7310
+ # A list of instances and any named ports that are assigned to those instances.
7311
+ # Corresponds to the JSON property `items`
7312
+ # @return [Array<Google::Apis::ComputeV1::InstanceWithNamedPorts>]
7313
+ attr_accessor :items
7314
+
7315
+ # The resource type.
7316
+ # Corresponds to the JSON property `kind`
7317
+ # @return [String]
7318
+ attr_accessor :kind
7319
+
7320
+ # [Output Only] This token allows you to get the next page of results for list
7321
+ # requests. If the number of results is larger than maxResults, use the
7322
+ # nextPageToken as a value for the query parameter pageToken in the next list
7323
+ # request. Subsequent list requests will have their own nextPageToken to
7324
+ # continue paging through the results.
7325
+ # Corresponds to the JSON property `nextPageToken`
7326
+ # @return [String]
7327
+ attr_accessor :next_page_token
7328
+
7329
+ # [Output Only] Server-defined URL for the resource.
7330
+ # Corresponds to the JSON property `selfLink`
7331
+ # @return [String]
7332
+ attr_accessor :self_link
7333
+
7334
+ def initialize(**args)
7335
+ update!(**args)
7336
+ end
7337
+
7338
+ # Update properties of this object
7339
+ def update!(**args)
7340
+ @id = args[:id] if args.key?(:id)
7341
+ @items = args[:items] if args.key?(:items)
7342
+ @kind = args[:kind] if args.key?(:kind)
7343
+ @next_page_token = args[:next_page_token] if args.key?(:next_page_token)
7344
+ @self_link = args[:self_link] if args.key?(:self_link)
7345
+ end
7346
+ end
7347
+
7348
+ #
7349
+ class RegionInstanceGroupsListInstancesRequest
7350
+ include Google::Apis::Core::Hashable
7351
+
7352
+ # Instances in which state should be returned. Valid options are: 'ALL', '
7353
+ # RUNNING'. By default, it lists all instances.
7354
+ # Corresponds to the JSON property `instanceState`
7355
+ # @return [String]
7356
+ attr_accessor :instance_state
7357
+
7358
+ # Name of port user is interested in. It is optional. If it is set, only
7359
+ # information about this ports will be returned. If it is not set, all the named
7360
+ # ports will be returned. Always lists all instances.
7361
+ # Corresponds to the JSON property `portName`
7362
+ # @return [String]
7363
+ attr_accessor :port_name
7364
+
7365
+ def initialize(**args)
7366
+ update!(**args)
7367
+ end
7368
+
7369
+ # Update properties of this object
7370
+ def update!(**args)
7371
+ @instance_state = args[:instance_state] if args.key?(:instance_state)
7372
+ @port_name = args[:port_name] if args.key?(:port_name)
7373
+ end
7374
+ end
7375
+
7376
+ #
7377
+ class RegionInstanceGroupsSetNamedPortsRequest
7378
+ include Google::Apis::Core::Hashable
7379
+
7380
+ # The fingerprint of the named ports information for this instance group. Use
7381
+ # this optional property to prevent conflicts when multiple users change the
7382
+ # named ports settings concurrently. Obtain the fingerprint with the
7383
+ # instanceGroups.get method. Then, include the fingerprint in your request to
7384
+ # ensure that you do not overwrite changes that were applied from another
7385
+ # concurrent request.
7386
+ # Corresponds to the JSON property `fingerprint`
7387
+ # @return [String]
7388
+ attr_accessor :fingerprint
7389
+
7390
+ # The list of named ports to set for this instance group.
7391
+ # Corresponds to the JSON property `namedPorts`
7392
+ # @return [Array<Google::Apis::ComputeV1::NamedPort>]
7393
+ attr_accessor :named_ports
7394
+
7395
+ def initialize(**args)
7396
+ update!(**args)
7397
+ end
7398
+
7399
+ # Update properties of this object
7400
+ def update!(**args)
7401
+ @fingerprint = args[:fingerprint] if args.key?(:fingerprint)
7402
+ @named_ports = args[:named_ports] if args.key?(:named_ports)
7403
+ end
7404
+ end
7405
+
7406
+ # Contains a list of region resources.
7407
+ class RegionList
7408
+ include Google::Apis::Core::Hashable
7409
+
7410
+ # [Output Only] The unique identifier for the resource. This identifier is
7411
+ # defined by the server.
7412
+ # Corresponds to the JSON property `id`
7413
+ # @return [String]
7414
+ attr_accessor :id
7415
+
7416
+ # [Output Only] A list of Region resources.
7417
+ # Corresponds to the JSON property `items`
7418
+ # @return [Array<Google::Apis::ComputeV1::Region>]
7419
+ attr_accessor :items
7420
+
7421
+ # [Output Only] Type of resource. Always compute#regionList for lists of regions.
7422
+ # Corresponds to the JSON property `kind`
7423
+ # @return [String]
7424
+ attr_accessor :kind
7425
+
7426
+ # [Output Only] This token allows you to get the next page of results for list
7427
+ # requests. If the number of results is larger than maxResults, use the
7428
+ # nextPageToken as a value for the query parameter pageToken in the next list
7429
+ # request. Subsequent list requests will have their own nextPageToken to
7430
+ # continue paging through the results.
7431
+ # Corresponds to the JSON property `nextPageToken`
7432
+ # @return [String]
7433
+ attr_accessor :next_page_token
7434
+
7435
+ # [Output Only] Server-defined URL for this resource.
7436
+ # Corresponds to the JSON property `selfLink`
7437
+ # @return [String]
7438
+ attr_accessor :self_link
7439
+
7440
+ def initialize(**args)
7441
+ update!(**args)
7442
+ end
7443
+
7444
+ # Update properties of this object
7445
+ def update!(**args)
7446
+ @id = args[:id] if args.key?(:id)
7447
+ @items = args[:items] if args.key?(:items)
7448
+ @kind = args[:kind] if args.key?(:kind)
7449
+ @next_page_token = args[:next_page_token] if args.key?(:next_page_token)
7450
+ @self_link = args[:self_link] if args.key?(:self_link)
7451
+ end
7452
+ end
7453
+
7454
+ #
7455
+ class ResourceGroupReference
7456
+ include Google::Apis::Core::Hashable
7457
+
7458
+ # A URI referencing one of the instance groups listed in the backend service.
7459
+ # Corresponds to the JSON property `group`
7460
+ # @return [String]
7461
+ attr_accessor :group
7462
+
7463
+ def initialize(**args)
7464
+ update!(**args)
7465
+ end
7466
+
7467
+ # Update properties of this object
7468
+ def update!(**args)
7469
+ @group = args[:group] if args.key?(:group)
7470
+ end
7471
+ end
7472
+
7473
+ # Represents a Route resource. A route specifies how certain packets should be
7474
+ # handled by the network. Routes are associated with instances by tags and the
7475
+ # set of routes for a particular instance is called its routing table.
7476
+ # For each packet leaving a instance, the system searches that instance's
7477
+ # routing table for a single best matching route. Routes match packets by
7478
+ # destination IP address, preferring smaller or more specific ranges over larger
7479
+ # ones. If there is a tie, the system selects the route with the smallest
7480
+ # priority value. If there is still a tie, it uses the layer three and four
7481
+ # packet headers to select just one of the remaining matching routes. The packet
7482
+ # is then forwarded as specified by the nextHop field of the winning route -
7483
+ # either to another instance destination, an instance gateway, or a Google
7484
+ # Compute Engine-operated gateway.
7485
+ # Packets that do not match any route in the sending instance's routing table
7486
+ # are dropped.
7487
+ class Route
7488
+ include Google::Apis::Core::Hashable
7489
+
7490
+ # [Output Only] Creation timestamp in RFC3339 text format.
7491
+ # Corresponds to the JSON property `creationTimestamp`
7492
+ # @return [String]
7493
+ attr_accessor :creation_timestamp
7494
+
7495
+ # An optional description of this resource. Provide this property when you
7496
+ # create the resource.
7497
+ # Corresponds to the JSON property `description`
7498
+ # @return [String]
7499
+ attr_accessor :description
7500
+
7501
+ # The destination range of outgoing packets that this route applies to. Only
7502
+ # IPv4 is supported.
7503
+ # Corresponds to the JSON property `destRange`
7504
+ # @return [String]
7505
+ attr_accessor :dest_range
7506
+
7507
+ # [Output Only] The unique identifier for the resource. This identifier is
7508
+ # defined by the server.
7509
+ # Corresponds to the JSON property `id`
7510
+ # @return [String]
7511
+ attr_accessor :id
7512
+
7513
+ # [Output Only] Type of this resource. Always compute#routes for Route resources.
7514
+ # Corresponds to the JSON property `kind`
7515
+ # @return [String]
7516
+ attr_accessor :kind
7517
+
7518
+ # Name of the resource. Provided by the client when the resource is created. The
7519
+ # name must be 1-63 characters long, and comply with RFC1035. Specifically, the
7520
+ # name must be 1-63 characters long and match the regular expression [a-z]([-a-
7521
+ # z0-9]*[a-z0-9])? which means the first character must be a lowercase letter,
7522
+ # and all following characters must be a dash, lowercase letter, or digit,
7523
+ # except the last character, which cannot be a dash.
7524
+ # Corresponds to the JSON property `name`
7525
+ # @return [String]
7526
+ attr_accessor :name
7527
+
7528
+ # Fully-qualified URL of the network that this route applies to.
7529
+ # Corresponds to the JSON property `network`
7530
+ # @return [String]
7531
+ attr_accessor :network
7532
+
7533
+ # The URL to a gateway that should handle matching packets. You can only specify
7534
+ # the internet gateway using a full or partial valid URL: projects/<project-id>/
7535
+ # global/gateways/default-internet-gateway
7536
+ # Corresponds to the JSON property `nextHopGateway`
7537
+ # @return [String]
7538
+ attr_accessor :next_hop_gateway
7539
+
7540
+ # The URL to an instance that should handle matching packets. You can specify
7541
+ # this as a full or partial URL. For example:
7542
+ # https://www.googleapis.com/compute/v1/projects/project/zones/zone/instances/
7543
+ # Corresponds to the JSON property `nextHopInstance`
7544
+ # @return [String]
7545
+ attr_accessor :next_hop_instance
7546
+
7547
+ # The network IP address of an instance that should handle matching packets.
7548
+ # Only IPv4 is supported.
7549
+ # Corresponds to the JSON property `nextHopIp`
7550
+ # @return [String]
7551
+ attr_accessor :next_hop_ip
7552
+
7553
+ # The URL of the local network if it should handle matching packets.
7554
+ # Corresponds to the JSON property `nextHopNetwork`
7555
+ # @return [String]
7556
+ attr_accessor :next_hop_network
7557
+
7558
+ # The URL to a VpnTunnel that should handle matching packets.
7559
+ # Corresponds to the JSON property `nextHopVpnTunnel`
7560
+ # @return [String]
7561
+ attr_accessor :next_hop_vpn_tunnel
7562
+
7563
+ # The priority of this route. Priority is used to break ties in cases where
7564
+ # there is more than one matching route of equal prefix length. In the case of
7565
+ # two routes with equal prefix length, the one with the lowest-numbered priority
7566
+ # value wins. Default value is 1000. Valid range is 0 through 65535.
7567
+ # Corresponds to the JSON property `priority`
7568
+ # @return [Fixnum]
7569
+ attr_accessor :priority
7570
+
7571
+ # [Output Only] Server-defined fully-qualified URL for this resource.
7572
+ # Corresponds to the JSON property `selfLink`
7573
+ # @return [String]
7574
+ attr_accessor :self_link
7575
+
7576
+ # A list of instance tags to which this route applies.
7577
+ # Corresponds to the JSON property `tags`
7578
+ # @return [Array<String>]
7579
+ attr_accessor :tags
7580
+
7581
+ # [Output Only] If potential misconfigurations are detected for this route, this
7582
+ # field will be populated with warning messages.
7583
+ # Corresponds to the JSON property `warnings`
7584
+ # @return [Array<Google::Apis::ComputeV1::Route::Warning>]
7585
+ attr_accessor :warnings
7586
+
7587
+ def initialize(**args)
7588
+ update!(**args)
7589
+ end
7590
+
7591
+ # Update properties of this object
7592
+ def update!(**args)
7593
+ @creation_timestamp = args[:creation_timestamp] if args.key?(:creation_timestamp)
7594
+ @description = args[:description] if args.key?(:description)
7595
+ @dest_range = args[:dest_range] if args.key?(:dest_range)
7596
+ @id = args[:id] if args.key?(:id)
7597
+ @kind = args[:kind] if args.key?(:kind)
7598
+ @name = args[:name] if args.key?(:name)
7599
+ @network = args[:network] if args.key?(:network)
7600
+ @next_hop_gateway = args[:next_hop_gateway] if args.key?(:next_hop_gateway)
7601
+ @next_hop_instance = args[:next_hop_instance] if args.key?(:next_hop_instance)
7602
+ @next_hop_ip = args[:next_hop_ip] if args.key?(:next_hop_ip)
7603
+ @next_hop_network = args[:next_hop_network] if args.key?(:next_hop_network)
7604
+ @next_hop_vpn_tunnel = args[:next_hop_vpn_tunnel] if args.key?(:next_hop_vpn_tunnel)
7605
+ @priority = args[:priority] if args.key?(:priority)
7606
+ @self_link = args[:self_link] if args.key?(:self_link)
7607
+ @tags = args[:tags] if args.key?(:tags)
7608
+ @warnings = args[:warnings] if args.key?(:warnings)
7609
+ end
7610
+
7611
+ #
7612
+ class Warning
7613
+ include Google::Apis::Core::Hashable
7614
+
7615
+ # [Output Only] A warning code, if applicable. For example, Compute Engine
7616
+ # returns NO_RESULTS_ON_PAGE if there are no results in the response.
7617
+ # Corresponds to the JSON property `code`
7618
+ # @return [String]
7619
+ attr_accessor :code
7620
+
7621
+ # [Output Only] Metadata about this warning in key: value format. For example:
7622
+ # "data": [ ` "key": "scope", "value": "zones/us-east1-d" `
7623
+ # Corresponds to the JSON property `data`
7624
+ # @return [Array<Google::Apis::ComputeV1::Route::Warning::Datum>]
7625
+ attr_accessor :data
7626
+
7627
+ # [Output Only] A human-readable description of the warning code.
7628
+ # Corresponds to the JSON property `message`
7629
+ # @return [String]
7630
+ attr_accessor :message
7631
+
7632
+ def initialize(**args)
7633
+ update!(**args)
7634
+ end
7635
+
7636
+ # Update properties of this object
7637
+ def update!(**args)
7638
+ @code = args[:code] if args.key?(:code)
7639
+ @data = args[:data] if args.key?(:data)
7640
+ @message = args[:message] if args.key?(:message)
7641
+ end
7642
+
7643
+ #
7644
+ class Datum
7645
+ include Google::Apis::Core::Hashable
7646
+
7647
+ # [Output Only] A key that provides more detail on the warning being returned.
7648
+ # For example, for warnings where there are no results in a list request for a
7649
+ # particular zone, this key might be scope and the key value might be the zone
7650
+ # name. Other examples might be a key indicating a deprecated resource and a
7651
+ # suggested replacement, or a warning about invalid network settings (for
7652
+ # example, if an instance attempts to perform IP forwarding but is not enabled
7653
+ # for IP forwarding).
7654
+ # Corresponds to the JSON property `key`
7655
+ # @return [String]
7656
+ attr_accessor :key
7657
+
7658
+ # [Output Only] A warning data value corresponding to the key.
7659
+ # Corresponds to the JSON property `value`
7660
+ # @return [String]
7661
+ attr_accessor :value
7662
+
7663
+ def initialize(**args)
7664
+ update!(**args)
7665
+ end
7666
+
7667
+ # Update properties of this object
7668
+ def update!(**args)
7669
+ @key = args[:key] if args.key?(:key)
7670
+ @value = args[:value] if args.key?(:value)
7671
+ end
7672
+ end
7673
+ end
7674
+ end
7675
+
7676
+ # Contains a list of Route resources.
7677
+ class RouteList
7678
+ include Google::Apis::Core::Hashable
7679
+
7680
+ # [Output Only] Unique identifier for the resource. Defined by the server.
7681
+ # Corresponds to the JSON property `id`
7682
+ # @return [String]
7683
+ attr_accessor :id
7684
+
7685
+ # [Output Only] A list of Route resources.
7686
+ # Corresponds to the JSON property `items`
7687
+ # @return [Array<Google::Apis::ComputeV1::Route>]
7688
+ attr_accessor :items
7689
+
7690
+ # Type of resource.
7691
+ # Corresponds to the JSON property `kind`
7692
+ # @return [String]
7693
+ attr_accessor :kind
7694
+
7695
+ # [Output Only] This token allows you to get the next page of results for list
7696
+ # requests. If the number of results is larger than maxResults, use the
7697
+ # nextPageToken as a value for the query parameter pageToken in the next list
7698
+ # request. Subsequent list requests will have their own nextPageToken to
7699
+ # continue paging through the results.
7700
+ # Corresponds to the JSON property `nextPageToken`
7701
+ # @return [String]
7702
+ attr_accessor :next_page_token
7703
+
7704
+ # [Output Only] Server-defined URL for this resource.
7705
+ # Corresponds to the JSON property `selfLink`
7706
+ # @return [String]
7707
+ attr_accessor :self_link
7708
+
7709
+ def initialize(**args)
7710
+ update!(**args)
7711
+ end
7712
+
7713
+ # Update properties of this object
7714
+ def update!(**args)
7715
+ @id = args[:id] if args.key?(:id)
7716
+ @items = args[:items] if args.key?(:items)
7717
+ @kind = args[:kind] if args.key?(:kind)
7718
+ @next_page_token = args[:next_page_token] if args.key?(:next_page_token)
7719
+ @self_link = args[:self_link] if args.key?(:self_link)
7720
+ end
7721
+ end
7722
+
7723
+ # Router resource.
7724
+ class Router
7725
+ include Google::Apis::Core::Hashable
7726
+
7727
+ # BGP information specific to this router.
7728
+ # Corresponds to the JSON property `bgp`
7729
+ # @return [Google::Apis::ComputeV1::RouterBgp]
7730
+ attr_accessor :bgp
7731
+
7732
+ # BGP information that needs to be configured into the routing stack to
7733
+ # establish the BGP peering. It must specify peer ASN and either interface name,
7734
+ # IP, or peer IP. Please refer to RFC4273.
7735
+ # Corresponds to the JSON property `bgpPeers`
7736
+ # @return [Array<Google::Apis::ComputeV1::RouterBgpPeer>]
7737
+ attr_accessor :bgp_peers
7738
+
7739
+ # [Output Only] Creation timestamp in RFC3339 text format.
7740
+ # Corresponds to the JSON property `creationTimestamp`
7741
+ # @return [String]
7742
+ attr_accessor :creation_timestamp
7743
+
7744
+ # An optional description of this resource. Provide this property when you
7745
+ # create the resource.
7746
+ # Corresponds to the JSON property `description`
7747
+ # @return [String]
7748
+ attr_accessor :description
7749
+
7750
+ # [Output Only] The unique identifier for the resource. This identifier is
7751
+ # defined by the server.
7752
+ # Corresponds to the JSON property `id`
7753
+ # @return [String]
7754
+ attr_accessor :id
7755
+
7756
+ # Router interfaces. Each interface requires either one linked resource (e.g.
7757
+ # linkedVpnTunnel), or IP address and IP address range (e.g. ipRange), or both.
7758
+ # Corresponds to the JSON property `interfaces`
7759
+ # @return [Array<Google::Apis::ComputeV1::RouterInterface>]
7760
+ attr_accessor :interfaces
7761
+
7762
+ # [Output Only] Type of resource. Always compute#router for routers.
7763
+ # Corresponds to the JSON property `kind`
7764
+ # @return [String]
7765
+ attr_accessor :kind
7766
+
7767
+ # Name of the resource. Provided by the client when the resource is created. The
7768
+ # name must be 1-63 characters long, and comply with RFC1035. Specifically, the
7769
+ # name must be 1-63 characters long and match the regular expression [a-z]([-a-
7770
+ # z0-9]*[a-z0-9])? which means the first character must be a lowercase letter,
7771
+ # and all following characters must be a dash, lowercase letter, or digit,
7772
+ # except the last character, which cannot be a dash.
7773
+ # Corresponds to the JSON property `name`
7774
+ # @return [String]
7775
+ attr_accessor :name
7776
+
7777
+ # URI of the network to which this router belongs.
7778
+ # Corresponds to the JSON property `network`
7779
+ # @return [String]
7780
+ attr_accessor :network
7781
+
7782
+ # [Output Only] URI of the region where the router resides.
7783
+ # Corresponds to the JSON property `region`
7784
+ # @return [String]
7785
+ attr_accessor :region
7786
+
7787
+ # [Output Only] Server-defined URL for the resource.
7788
+ # Corresponds to the JSON property `selfLink`
7789
+ # @return [String]
7790
+ attr_accessor :self_link
7791
+
7792
+ def initialize(**args)
7793
+ update!(**args)
7794
+ end
7795
+
7796
+ # Update properties of this object
7797
+ def update!(**args)
7798
+ @bgp = args[:bgp] if args.key?(:bgp)
7799
+ @bgp_peers = args[:bgp_peers] if args.key?(:bgp_peers)
7800
+ @creation_timestamp = args[:creation_timestamp] if args.key?(:creation_timestamp)
7801
+ @description = args[:description] if args.key?(:description)
7802
+ @id = args[:id] if args.key?(:id)
7803
+ @interfaces = args[:interfaces] if args.key?(:interfaces)
7804
+ @kind = args[:kind] if args.key?(:kind)
7805
+ @name = args[:name] if args.key?(:name)
7806
+ @network = args[:network] if args.key?(:network)
7807
+ @region = args[:region] if args.key?(:region)
7808
+ @self_link = args[:self_link] if args.key?(:self_link)
7809
+ end
7810
+ end
7811
+
7812
+ # Contains a list of routers.
7813
+ class RouterAggregatedList
7814
+ include Google::Apis::Core::Hashable
7815
+
7816
+ # [Output Only] The unique identifier for the resource. This identifier is
7817
+ # defined by the server.
7818
+ # Corresponds to the JSON property `id`
7819
+ # @return [String]
7820
+ attr_accessor :id
7821
+
7822
+ # A map of scoped router lists.
7823
+ # Corresponds to the JSON property `items`
7824
+ # @return [Hash<String,Google::Apis::ComputeV1::RoutersScopedList>]
7825
+ attr_accessor :items
7826
+
7827
+ # Type of resource.
7828
+ # Corresponds to the JSON property `kind`
7829
+ # @return [String]
7830
+ attr_accessor :kind
7831
+
7832
+ # [Output Only] This token allows you to get the next page of results for list
7833
+ # requests. If the number of results is larger than maxResults, use the
7834
+ # nextPageToken as a value for the query parameter pageToken in the next list
7835
+ # request. Subsequent list requests will have their own nextPageToken to
7836
+ # continue paging through the results.
7837
+ # Corresponds to the JSON property `nextPageToken`
7838
+ # @return [String]
7839
+ attr_accessor :next_page_token
7840
+
7841
+ # [Output Only] Server-defined URL for this resource.
7842
+ # Corresponds to the JSON property `selfLink`
7843
+ # @return [String]
7844
+ attr_accessor :self_link
7845
+
7846
+ def initialize(**args)
7847
+ update!(**args)
7848
+ end
7849
+
7850
+ # Update properties of this object
7851
+ def update!(**args)
7852
+ @id = args[:id] if args.key?(:id)
7853
+ @items = args[:items] if args.key?(:items)
7854
+ @kind = args[:kind] if args.key?(:kind)
7855
+ @next_page_token = args[:next_page_token] if args.key?(:next_page_token)
7856
+ @self_link = args[:self_link] if args.key?(:self_link)
7857
+ end
7858
+ end
7859
+
7860
+ #
7861
+ class RouterBgp
7862
+ include Google::Apis::Core::Hashable
7863
+
7864
+ # Local BGP Autonomous System Number (ASN). Must be an RFC6996 private ASN,
7865
+ # either 16-bit or 32-bit. The value will be fixed for this router resource. All
7866
+ # VPN tunnels that link to this router will have the same local ASN.
7867
+ # Corresponds to the JSON property `asn`
7868
+ # @return [Fixnum]
7869
+ attr_accessor :asn
7870
+
7871
+ def initialize(**args)
7872
+ update!(**args)
7873
+ end
7874
+
7875
+ # Update properties of this object
7876
+ def update!(**args)
7877
+ @asn = args[:asn] if args.key?(:asn)
7878
+ end
7879
+ end
7880
+
7881
+ #
7882
+ class RouterBgpPeer
7883
+ include Google::Apis::Core::Hashable
7884
+
7885
+ # The priority of routes advertised to this BGP peer. In the case where there is
7886
+ # more than one matching route of maximum length, the routes with lowest
7887
+ # priority value win.
7888
+ # Corresponds to the JSON property `advertisedRoutePriority`
7889
+ # @return [Fixnum]
7890
+ attr_accessor :advertised_route_priority
7891
+
7892
+ # Name of the interface the BGP peer is associated with.
7893
+ # Corresponds to the JSON property `interfaceName`
7894
+ # @return [String]
7895
+ attr_accessor :interface_name
7896
+
7897
+ # IP address of the interface inside Google Cloud Platform. Only IPv4 is
7898
+ # supported.
7899
+ # Corresponds to the JSON property `ipAddress`
7900
+ # @return [String]
7901
+ attr_accessor :ip_address
7902
+
7903
+ # Name of this BGP peer. The name must be 1-63 characters long and comply with
7904
+ # RFC1035.
7905
+ # Corresponds to the JSON property `name`
7906
+ # @return [String]
7907
+ attr_accessor :name
7908
+
7909
+ # Peer BGP Autonomous System Number (ASN). For VPN use case, this value can be
7910
+ # different for every tunnel.
7911
+ # Corresponds to the JSON property `peerAsn`
7912
+ # @return [Fixnum]
7913
+ attr_accessor :peer_asn
7914
+
7915
+ # IP address of the BGP interface outside Google cloud. Only IPv4 is supported.
7916
+ # Corresponds to the JSON property `peerIpAddress`
7917
+ # @return [String]
7918
+ attr_accessor :peer_ip_address
7919
+
7920
+ def initialize(**args)
7921
+ update!(**args)
7922
+ end
7923
+
7924
+ # Update properties of this object
7925
+ def update!(**args)
7926
+ @advertised_route_priority = args[:advertised_route_priority] if args.key?(:advertised_route_priority)
7927
+ @interface_name = args[:interface_name] if args.key?(:interface_name)
7928
+ @ip_address = args[:ip_address] if args.key?(:ip_address)
7929
+ @name = args[:name] if args.key?(:name)
7930
+ @peer_asn = args[:peer_asn] if args.key?(:peer_asn)
7931
+ @peer_ip_address = args[:peer_ip_address] if args.key?(:peer_ip_address)
7932
+ end
7933
+ end
7934
+
7935
+ #
7936
+ class RouterInterface
7937
+ include Google::Apis::Core::Hashable
7938
+
7939
+ # IP address and range of the interface. The IP range must be in the RFC3927
7940
+ # link-local IP space. The value must be a CIDR-formatted string, for example:
7941
+ # 169.254.0.1/30. NOTE: Do not truncate the address as it represents the IP
7942
+ # address of the interface.
7943
+ # Corresponds to the JSON property `ipRange`
7944
+ # @return [String]
7945
+ attr_accessor :ip_range
7946
+
7947
+ # URI of linked VPN tunnel. It must be in the same region as the router. Each
7948
+ # interface can have at most one linked resource.
7949
+ # Corresponds to the JSON property `linkedVpnTunnel`
7950
+ # @return [String]
7951
+ attr_accessor :linked_vpn_tunnel
7952
+
7953
+ # Name of this interface entry. The name must be 1-63 characters long and comply
7954
+ # with RFC1035.
7955
+ # Corresponds to the JSON property `name`
7956
+ # @return [String]
7957
+ attr_accessor :name
7958
+
7959
+ def initialize(**args)
7960
+ update!(**args)
7961
+ end
7962
+
7963
+ # Update properties of this object
7964
+ def update!(**args)
7965
+ @ip_range = args[:ip_range] if args.key?(:ip_range)
7966
+ @linked_vpn_tunnel = args[:linked_vpn_tunnel] if args.key?(:linked_vpn_tunnel)
7967
+ @name = args[:name] if args.key?(:name)
7968
+ end
7969
+ end
7970
+
7971
+ # Contains a list of Router resources.
7972
+ class RouterList
7973
+ include Google::Apis::Core::Hashable
7974
+
7975
+ # [Output Only] The unique identifier for the resource. This identifier is
7976
+ # defined by the server.
7977
+ # Corresponds to the JSON property `id`
7978
+ # @return [String]
7979
+ attr_accessor :id
7980
+
7981
+ # A list of Router resources.
7982
+ # Corresponds to the JSON property `items`
7983
+ # @return [Array<Google::Apis::ComputeV1::Router>]
7984
+ attr_accessor :items
7985
+
7986
+ # [Output Only] Type of resource. Always compute#router for routers.
7987
+ # Corresponds to the JSON property `kind`
7988
+ # @return [String]
7989
+ attr_accessor :kind
7990
+
7991
+ # [Output Only] This token allows you to get the next page of results for list
7992
+ # requests. If the number of results is larger than maxResults, use the
7993
+ # nextPageToken as a value for the query parameter pageToken in the next list
7994
+ # request. Subsequent list requests will have their own nextPageToken to
7995
+ # continue paging through the results.
7996
+ # Corresponds to the JSON property `nextPageToken`
7997
+ # @return [String]
7998
+ attr_accessor :next_page_token
7999
+
8000
+ # [Output Only] Server-defined URL for this resource.
8001
+ # Corresponds to the JSON property `selfLink`
8002
+ # @return [String]
8003
+ attr_accessor :self_link
8004
+
8005
+ def initialize(**args)
8006
+ update!(**args)
8007
+ end
8008
+
8009
+ # Update properties of this object
8010
+ def update!(**args)
8011
+ @id = args[:id] if args.key?(:id)
8012
+ @items = args[:items] if args.key?(:items)
8013
+ @kind = args[:kind] if args.key?(:kind)
8014
+ @next_page_token = args[:next_page_token] if args.key?(:next_page_token)
8015
+ @self_link = args[:self_link] if args.key?(:self_link)
8016
+ end
8017
+ end
8018
+
8019
+ #
8020
+ class RouterStatus
8021
+ include Google::Apis::Core::Hashable
8022
+
8023
+ # Best routes for this router's network.
8024
+ # Corresponds to the JSON property `bestRoutes`
8025
+ # @return [Array<Google::Apis::ComputeV1::Route>]
8026
+ attr_accessor :best_routes
8027
+
8028
+ #
8029
+ # Corresponds to the JSON property `bgpPeerStatus`
8030
+ # @return [Array<Google::Apis::ComputeV1::RouterStatusBgpPeerStatus>]
8031
+ attr_accessor :bgp_peer_status
8032
+
8033
+ # URI of the network to which this router belongs.
8034
+ # Corresponds to the JSON property `network`
8035
+ # @return [String]
8036
+ attr_accessor :network
8037
+
8038
+ def initialize(**args)
8039
+ update!(**args)
8040
+ end
8041
+
8042
+ # Update properties of this object
8043
+ def update!(**args)
8044
+ @best_routes = args[:best_routes] if args.key?(:best_routes)
8045
+ @bgp_peer_status = args[:bgp_peer_status] if args.key?(:bgp_peer_status)
8046
+ @network = args[:network] if args.key?(:network)
8047
+ end
8048
+ end
8049
+
8050
+ #
8051
+ class RouterStatusBgpPeerStatus
8052
+ include Google::Apis::Core::Hashable
8053
+
8054
+ # Routes that were advertised to the remote BGP peer
8055
+ # Corresponds to the JSON property `advertisedRoutes`
8056
+ # @return [Array<Google::Apis::ComputeV1::Route>]
8057
+ attr_accessor :advertised_routes
8058
+
8059
+ # IP address of the local BGP interface.
8060
+ # Corresponds to the JSON property `ipAddress`
8061
+ # @return [String]
8062
+ attr_accessor :ip_address
8063
+
8064
+ # URL of the VPN tunnel that this BGP peer controls.
8065
+ # Corresponds to the JSON property `linkedVpnTunnel`
8066
+ # @return [String]
8067
+ attr_accessor :linked_vpn_tunnel
8068
+
8069
+ # Name of this BGP peer. Unique within the Routers resource.
8070
+ # Corresponds to the JSON property `name`
8071
+ # @return [String]
8072
+ attr_accessor :name
8073
+
8074
+ # Number of routes learned from the remote BGP Peer.
8075
+ # Corresponds to the JSON property `numLearnedRoutes`
8076
+ # @return [Fixnum]
8077
+ attr_accessor :num_learned_routes
8078
+
8079
+ # IP address of the remote BGP interface.
8080
+ # Corresponds to the JSON property `peerIpAddress`
8081
+ # @return [String]
8082
+ attr_accessor :peer_ip_address
8083
+
8084
+ # BGP state as specified in RFC1771.
8085
+ # Corresponds to the JSON property `state`
8086
+ # @return [String]
8087
+ attr_accessor :state
8088
+
8089
+ # Status of the BGP peer: `UP, DOWN`
8090
+ # Corresponds to the JSON property `status`
8091
+ # @return [String]
8092
+ attr_accessor :status
8093
+
8094
+ # Time this session has been up. Format: 14 years, 51 weeks, 6 days, 23 hours,
8095
+ # 59 minutes, 59 seconds
8096
+ # Corresponds to the JSON property `uptime`
8097
+ # @return [String]
8098
+ attr_accessor :uptime
8099
+
8100
+ # Time this session has been up, in seconds. Format: 145
8101
+ # Corresponds to the JSON property `uptimeSeconds`
8102
+ # @return [String]
8103
+ attr_accessor :uptime_seconds
8104
+
8105
+ def initialize(**args)
8106
+ update!(**args)
8107
+ end
8108
+
8109
+ # Update properties of this object
8110
+ def update!(**args)
8111
+ @advertised_routes = args[:advertised_routes] if args.key?(:advertised_routes)
8112
+ @ip_address = args[:ip_address] if args.key?(:ip_address)
8113
+ @linked_vpn_tunnel = args[:linked_vpn_tunnel] if args.key?(:linked_vpn_tunnel)
8114
+ @name = args[:name] if args.key?(:name)
8115
+ @num_learned_routes = args[:num_learned_routes] if args.key?(:num_learned_routes)
8116
+ @peer_ip_address = args[:peer_ip_address] if args.key?(:peer_ip_address)
8117
+ @state = args[:state] if args.key?(:state)
8118
+ @status = args[:status] if args.key?(:status)
8119
+ @uptime = args[:uptime] if args.key?(:uptime)
8120
+ @uptime_seconds = args[:uptime_seconds] if args.key?(:uptime_seconds)
8121
+ end
8122
+ end
8123
+
8124
+ #
8125
+ class RouterStatusResponse
8126
+ include Google::Apis::Core::Hashable
8127
+
8128
+ # Type of resource.
8129
+ # Corresponds to the JSON property `kind`
8130
+ # @return [String]
8131
+ attr_accessor :kind
8132
+
8133
+ #
8134
+ # Corresponds to the JSON property `result`
8135
+ # @return [Google::Apis::ComputeV1::RouterStatus]
8136
+ attr_accessor :result
8137
+
8138
+ def initialize(**args)
8139
+ update!(**args)
8140
+ end
8141
+
8142
+ # Update properties of this object
8143
+ def update!(**args)
8144
+ @kind = args[:kind] if args.key?(:kind)
8145
+ @result = args[:result] if args.key?(:result)
8146
+ end
8147
+ end
8148
+
8149
+ #
8150
+ class RoutersPreviewResponse
8151
+ include Google::Apis::Core::Hashable
8152
+
8153
+ # Router resource.
8154
+ # Corresponds to the JSON property `resource`
8155
+ # @return [Google::Apis::ComputeV1::Router]
8156
+ attr_accessor :resource
8157
+
8158
+ def initialize(**args)
8159
+ update!(**args)
8160
+ end
8161
+
8162
+ # Update properties of this object
8163
+ def update!(**args)
8164
+ @resource = args[:resource] if args.key?(:resource)
8165
+ end
8166
+ end
8167
+
8168
+ #
8169
+ class RoutersScopedList
8170
+ include Google::Apis::Core::Hashable
8171
+
8172
+ # List of routers contained in this scope.
8173
+ # Corresponds to the JSON property `routers`
8174
+ # @return [Array<Google::Apis::ComputeV1::Router>]
8175
+ attr_accessor :routers
8176
+
8177
+ # Informational warning which replaces the list of routers when the list is
8178
+ # empty.
8179
+ # Corresponds to the JSON property `warning`
8180
+ # @return [Google::Apis::ComputeV1::RoutersScopedList::Warning]
8181
+ attr_accessor :warning
8182
+
8183
+ def initialize(**args)
8184
+ update!(**args)
8185
+ end
8186
+
8187
+ # Update properties of this object
8188
+ def update!(**args)
8189
+ @routers = args[:routers] if args.key?(:routers)
8190
+ @warning = args[:warning] if args.key?(:warning)
8191
+ end
8192
+
8193
+ # Informational warning which replaces the list of routers when the list is
8194
+ # empty.
8195
+ class Warning
8196
+ include Google::Apis::Core::Hashable
8197
+
8198
+ # [Output Only] A warning code, if applicable. For example, Compute Engine
8199
+ # returns NO_RESULTS_ON_PAGE if there are no results in the response.
8200
+ # Corresponds to the JSON property `code`
6309
8201
  # @return [String]
6310
8202
  attr_accessor :code
6311
8203
 
6312
8204
  # [Output Only] Metadata about this warning in key: value format. For example:
6313
8205
  # "data": [ ` "key": "scope", "value": "zones/us-east1-d" `
6314
8206
  # Corresponds to the JSON property `data`
6315
- # @return [Array<Google::Apis::ComputeV1::Route::Warning::Datum>]
8207
+ # @return [Array<Google::Apis::ComputeV1::RoutersScopedList::Warning::Datum>]
6316
8208
  attr_accessor :data
6317
8209
 
6318
8210
  # [Output Only] A human-readable description of the warning code.
@@ -6364,38 +8256,42 @@ module Google
6364
8256
  end
6365
8257
  end
6366
8258
 
6367
- # Contains a list of Route resources.
6368
- class RouteList
8259
+ #
8260
+ class SslHealthCheck
6369
8261
  include Google::Apis::Core::Hashable
6370
8262
 
6371
- # [Output Only] Unique identifier for the resource. Defined by the server.
6372
- # Corresponds to the JSON property `id`
6373
- # @return [String]
6374
- attr_accessor :id
8263
+ # The TCP port number for the health check request. The default value is 443.
8264
+ # Valid values are 1 through 65535.
8265
+ # Corresponds to the JSON property `port`
8266
+ # @return [Fixnum]
8267
+ attr_accessor :port
6375
8268
 
6376
- # [Output Only] A list of Route resources.
6377
- # Corresponds to the JSON property `items`
6378
- # @return [Array<Google::Apis::ComputeV1::Route>]
6379
- attr_accessor :items
8269
+ # Port name as defined in InstanceGroup#NamedPort#name. If both port and
8270
+ # port_name are defined, port takes precedence.
8271
+ # Corresponds to the JSON property `portName`
8272
+ # @return [String]
8273
+ attr_accessor :port_name
6380
8274
 
6381
- # Type of resource.
6382
- # Corresponds to the JSON property `kind`
8275
+ # Specifies the type of proxy header to append before sending data to the
8276
+ # backend, either NONE or PROXY_V1. The default is NONE.
8277
+ # Corresponds to the JSON property `proxyHeader`
6383
8278
  # @return [String]
6384
- attr_accessor :kind
8279
+ attr_accessor :proxy_header
6385
8280
 
6386
- # [Output Only] This token allows you to get the next page of results for list
6387
- # requests. If the number of results is larger than maxResults, use the
6388
- # nextPageToken as a value for the query parameter pageToken in the next list
6389
- # request. Subsequent list requests will have their own nextPageToken to
6390
- # continue paging through the results.
6391
- # Corresponds to the JSON property `nextPageToken`
8281
+ # The application data to send once the SSL connection has been established (
8282
+ # default value is empty). If both request and response are empty, the
8283
+ # connection establishment alone will indicate health. The request data can only
8284
+ # be ASCII.
8285
+ # Corresponds to the JSON property `request`
6392
8286
  # @return [String]
6393
- attr_accessor :next_page_token
8287
+ attr_accessor :request
6394
8288
 
6395
- # [Output Only] Server-defined URL for this resource.
6396
- # Corresponds to the JSON property `selfLink`
8289
+ # The bytes to match against the beginning of the response data. If left empty (
8290
+ # the default value), any response will indicate health. The response data can
8291
+ # only be ASCII.
8292
+ # Corresponds to the JSON property `response`
6397
8293
  # @return [String]
6398
- attr_accessor :self_link
8294
+ attr_accessor :response
6399
8295
 
6400
8296
  def initialize(**args)
6401
8297
  update!(**args)
@@ -6403,11 +8299,11 @@ module Google
6403
8299
 
6404
8300
  # Update properties of this object
6405
8301
  def update!(**args)
6406
- @id = args[:id] if args.key?(:id)
6407
- @items = args[:items] if args.key?(:items)
6408
- @kind = args[:kind] if args.key?(:kind)
6409
- @next_page_token = args[:next_page_token] if args.key?(:next_page_token)
6410
- @self_link = args[:self_link] if args.key?(:self_link)
8302
+ @port = args[:port] if args.key?(:port)
8303
+ @port_name = args[:port_name] if args.key?(:port_name)
8304
+ @proxy_header = args[:proxy_header] if args.key?(:proxy_header)
8305
+ @request = args[:request] if args.key?(:request)
8306
+ @response = args[:response] if args.key?(:response)
6411
8307
  end
6412
8308
  end
6413
8309
 
@@ -6465,11 +8361,25 @@ module Google
6465
8361
  # @return [String]
6466
8362
  attr_accessor :kind
6467
8363
 
6468
- # [Output Only] Server-defined URL for the resource.
8364
+ # [Output Only] The position of the next byte of content from the serial console
8365
+ # output. Use this value in the next request as the start parameter.
8366
+ # Corresponds to the JSON property `next`
8367
+ # @return [String]
8368
+ attr_accessor :next
8369
+
8370
+ # [Output Only] Server-defined URL for this resource.
6469
8371
  # Corresponds to the JSON property `selfLink`
6470
8372
  # @return [String]
6471
8373
  attr_accessor :self_link
6472
8374
 
8375
+ # The starting byte position of the output that was returned. This should match
8376
+ # the start parameter sent with the request. If the serial console output
8377
+ # exceeds the size of the buffer, older output will be overwritten by newer
8378
+ # content and the start values will be mismatched.
8379
+ # Corresponds to the JSON property `start`
8380
+ # @return [String]
8381
+ attr_accessor :start
8382
+
6473
8383
  def initialize(**args)
6474
8384
  update!(**args)
6475
8385
  end
@@ -6478,7 +8388,9 @@ module Google
6478
8388
  def update!(**args)
6479
8389
  @contents = args[:contents] if args.key?(:contents)
6480
8390
  @kind = args[:kind] if args.key?(:kind)
8391
+ @next = args[:next] if args.key?(:next)
6481
8392
  @self_link = args[:self_link] if args.key?(:self_link)
8393
+ @start = args[:start] if args.key?(:start)
6482
8394
  end
6483
8395
  end
6484
8396
 
@@ -6561,11 +8473,21 @@ module Google
6561
8473
  # @return [String]
6562
8474
  attr_accessor :self_link
6563
8475
 
8476
+ # Represents a customer-supplied encryption key
8477
+ # Corresponds to the JSON property `snapshotEncryptionKey`
8478
+ # @return [Google::Apis::ComputeV1::CustomerEncryptionKey]
8479
+ attr_accessor :snapshot_encryption_key
8480
+
6564
8481
  # [Output Only] The source disk used to create this snapshot.
6565
8482
  # Corresponds to the JSON property `sourceDisk`
6566
8483
  # @return [String]
6567
8484
  attr_accessor :source_disk
6568
8485
 
8486
+ # Represents a customer-supplied encryption key
8487
+ # Corresponds to the JSON property `sourceDiskEncryptionKey`
8488
+ # @return [Google::Apis::ComputeV1::CustomerEncryptionKey]
8489
+ attr_accessor :source_disk_encryption_key
8490
+
6569
8491
  # [Output Only] The ID value of the disk used to create this snapshot. This
6570
8492
  # value may be used to determine whether the snapshot was taken from the current
6571
8493
  # or a previous instance of a given disk name.
@@ -6608,7 +8530,9 @@ module Google
6608
8530
  @licenses = args[:licenses] if args.key?(:licenses)
6609
8531
  @name = args[:name] if args.key?(:name)
6610
8532
  @self_link = args[:self_link] if args.key?(:self_link)
8533
+ @snapshot_encryption_key = args[:snapshot_encryption_key] if args.key?(:snapshot_encryption_key)
6611
8534
  @source_disk = args[:source_disk] if args.key?(:source_disk)
8535
+ @source_disk_encryption_key = args[:source_disk_encryption_key] if args.key?(:source_disk_encryption_key)
6612
8536
  @source_disk_id = args[:source_disk_id] if args.key?(:source_disk_id)
6613
8537
  @status = args[:status] if args.key?(:status)
6614
8538
  @storage_bytes = args[:storage_bytes] if args.key?(:storage_bytes)
@@ -6710,7 +8634,7 @@ module Google
6710
8634
  # @return [String]
6711
8635
  attr_accessor :name
6712
8636
 
6713
- # A write-only private key in PEM format. Only insert RPCs will include this
8637
+ # A write-only private key in PEM format. Only insert requests will include this
6714
8638
  # field.
6715
8639
  # Corresponds to the JSON property `privateKey`
6716
8640
  # @return [String]
@@ -6814,7 +8738,8 @@ module Google
6814
8738
 
6815
8739
  # The range of internal addresses that are owned by this subnetwork. Provide
6816
8740
  # this property when you create the subnetwork. For example, 10.0.0.0/8 or 192.
6817
- # 168.0.0/16. Ranges must be unique and non-overlapping within a network.
8741
+ # 168.0.0/16. Ranges must be unique and non-overlapping within a network. Only
8742
+ # IPv4 is supported.
6818
8743
  # Corresponds to the JSON property `ipCidrRange`
6819
8744
  # @return [String]
6820
8745
  attr_accessor :ip_cidr_range
@@ -6969,6 +8894,28 @@ module Google
6969
8894
  end
6970
8895
  end
6971
8896
 
8897
+ #
8898
+ class SubnetworksExpandIpCidrRangeRequest
8899
+ include Google::Apis::Core::Hashable
8900
+
8901
+ # The IP (in CIDR format or netmask) of internal addresses that are legal on
8902
+ # this Subnetwork. This range should be disjoint from other subnetworks within
8903
+ # this network. This range can only be larger than (i.e. a superset of) the
8904
+ # range previously defined before the update.
8905
+ # Corresponds to the JSON property `ipCidrRange`
8906
+ # @return [String]
8907
+ attr_accessor :ip_cidr_range
8908
+
8909
+ def initialize(**args)
8910
+ update!(**args)
8911
+ end
8912
+
8913
+ # Update properties of this object
8914
+ def update!(**args)
8915
+ @ip_cidr_range = args[:ip_cidr_range] if args.key?(:ip_cidr_range)
8916
+ end
8917
+ end
8918
+
6972
8919
  #
6973
8920
  class SubnetworksScopedList
6974
8921
  include Google::Apis::Core::Hashable
@@ -7058,6 +9005,57 @@ module Google
7058
9005
  end
7059
9006
  end
7060
9007
 
9008
+ #
9009
+ class TcpHealthCheck
9010
+ include Google::Apis::Core::Hashable
9011
+
9012
+ # The TCP port number for the health check request. The default value is 80.
9013
+ # Valid values are 1 through 65535.
9014
+ # Corresponds to the JSON property `port`
9015
+ # @return [Fixnum]
9016
+ attr_accessor :port
9017
+
9018
+ # Port name as defined in InstanceGroup#NamedPort#name. If both port and
9019
+ # port_name are defined, port takes precedence.
9020
+ # Corresponds to the JSON property `portName`
9021
+ # @return [String]
9022
+ attr_accessor :port_name
9023
+
9024
+ # Specifies the type of proxy header to append before sending data to the
9025
+ # backend, either NONE or PROXY_V1. The default is NONE.
9026
+ # Corresponds to the JSON property `proxyHeader`
9027
+ # @return [String]
9028
+ attr_accessor :proxy_header
9029
+
9030
+ # The application data to send once the TCP connection has been established (
9031
+ # default value is empty). If both request and response are empty, the
9032
+ # connection establishment alone will indicate health. The request data can only
9033
+ # be ASCII.
9034
+ # Corresponds to the JSON property `request`
9035
+ # @return [String]
9036
+ attr_accessor :request
9037
+
9038
+ # The bytes to match against the beginning of the response data. If left empty (
9039
+ # the default value), any response will indicate health. The response data can
9040
+ # only be ASCII.
9041
+ # Corresponds to the JSON property `response`
9042
+ # @return [String]
9043
+ attr_accessor :response
9044
+
9045
+ def initialize(**args)
9046
+ update!(**args)
9047
+ end
9048
+
9049
+ # Update properties of this object
9050
+ def update!(**args)
9051
+ @port = args[:port] if args.key?(:port)
9052
+ @port_name = args[:port_name] if args.key?(:port_name)
9053
+ @proxy_header = args[:proxy_header] if args.key?(:proxy_header)
9054
+ @request = args[:request] if args.key?(:request)
9055
+ @response = args[:response] if args.key?(:response)
9056
+ end
9057
+ end
9058
+
7061
9059
  # A set of instance tags.
7062
9060
  class Tags
7063
9061
  include Google::Apis::Core::Hashable
@@ -7617,8 +9615,8 @@ module Google
7617
9615
  end
7618
9616
  end
7619
9617
 
7620
- # A TargetPool resource. This resource defines a pool of instances, associated
7621
- # HttpHealthCheck resources, and the fallback target pool.
9618
+ # A TargetPool resource. This resource defines a pool of instances, an
9619
+ # associated HttpHealthCheck resource, and the fallback target pool.
7622
9620
  class TargetPool
7623
9621
  include Google::Apis::Core::Hashable
7624
9622
 
@@ -7664,9 +9662,10 @@ module Google
7664
9662
  # @return [Float]
7665
9663
  attr_accessor :failover_ratio
7666
9664
 
7667
- # A list of URLs to the HttpHealthCheck resource. A member instance in this pool
7668
- # is considered healthy if and only if all specified health checks pass. An
7669
- # empty list means all member instances will be considered healthy at all times.
9665
+ # The URL of the HttpHealthCheck resource. A member instance in this pool is
9666
+ # considered healthy if and only if the health checks pass. An empty list means
9667
+ # all member instances will be considered healthy at all times. Only
9668
+ # HttpHealthChecks are supported. Only one health check may be specified.
7670
9669
  # Corresponds to the JSON property `healthChecks`
7671
9670
  # @return [Array<String>]
7672
9671
  attr_accessor :health_checks
@@ -7865,7 +9864,7 @@ module Google
7865
9864
  class AddTargetPoolsHealthCheckRequest
7866
9865
  include Google::Apis::Core::Hashable
7867
9866
 
7868
- # A list of HttpHealthCheck resources to add to the target pool.
9867
+ # The HttpHealthCheck to add to the target pool.
7869
9868
  # Corresponds to the JSON property `healthChecks`
7870
9869
  # @return [Array<Google::Apis::ComputeV1::HealthCheckReference>]
7871
9870
  attr_accessor :health_checks
@@ -8057,6 +10056,190 @@ module Google
8057
10056
  end
8058
10057
  end
8059
10058
 
10059
+ #
10060
+ class TargetSslProxiesSetBackendServiceRequest
10061
+ include Google::Apis::Core::Hashable
10062
+
10063
+ # The URL of the new BackendService resource for the targetSslProxy.
10064
+ # Corresponds to the JSON property `service`
10065
+ # @return [String]
10066
+ attr_accessor :service
10067
+
10068
+ def initialize(**args)
10069
+ update!(**args)
10070
+ end
10071
+
10072
+ # Update properties of this object
10073
+ def update!(**args)
10074
+ @service = args[:service] if args.key?(:service)
10075
+ end
10076
+ end
10077
+
10078
+ #
10079
+ class TargetSslProxiesSetProxyHeaderRequest
10080
+ include Google::Apis::Core::Hashable
10081
+
10082
+ # The new type of proxy header to append before sending data to the backend.
10083
+ # NONE or PROXY_V1 are allowed.
10084
+ # Corresponds to the JSON property `proxyHeader`
10085
+ # @return [String]
10086
+ attr_accessor :proxy_header
10087
+
10088
+ def initialize(**args)
10089
+ update!(**args)
10090
+ end
10091
+
10092
+ # Update properties of this object
10093
+ def update!(**args)
10094
+ @proxy_header = args[:proxy_header] if args.key?(:proxy_header)
10095
+ end
10096
+ end
10097
+
10098
+ #
10099
+ class TargetSslProxiesSetSslCertificatesRequest
10100
+ include Google::Apis::Core::Hashable
10101
+
10102
+ # New set of URLs to SslCertificate resources to associate with this
10103
+ # TargetSslProxy. Currently exactly one ssl certificate must be specified.
10104
+ # Corresponds to the JSON property `sslCertificates`
10105
+ # @return [Array<String>]
10106
+ attr_accessor :ssl_certificates
10107
+
10108
+ def initialize(**args)
10109
+ update!(**args)
10110
+ end
10111
+
10112
+ # Update properties of this object
10113
+ def update!(**args)
10114
+ @ssl_certificates = args[:ssl_certificates] if args.key?(:ssl_certificates)
10115
+ end
10116
+ end
10117
+
10118
+ # A TargetSslProxy resource. This resource defines an SSL proxy.
10119
+ class TargetSslProxy
10120
+ include Google::Apis::Core::Hashable
10121
+
10122
+ # [Output Only] Creation timestamp in RFC3339 text format.
10123
+ # Corresponds to the JSON property `creationTimestamp`
10124
+ # @return [String]
10125
+ attr_accessor :creation_timestamp
10126
+
10127
+ # An optional description of this resource. Provide this property when you
10128
+ # create the resource.
10129
+ # Corresponds to the JSON property `description`
10130
+ # @return [String]
10131
+ attr_accessor :description
10132
+
10133
+ # [Output Only] The unique identifier for the resource. This identifier is
10134
+ # defined by the server.
10135
+ # Corresponds to the JSON property `id`
10136
+ # @return [String]
10137
+ attr_accessor :id
10138
+
10139
+ # [Output Only] Type of the resource. Always compute#targetSslProxy for target
10140
+ # SSL proxies.
10141
+ # Corresponds to the JSON property `kind`
10142
+ # @return [String]
10143
+ attr_accessor :kind
10144
+
10145
+ # Name of the resource. Provided by the client when the resource is created. The
10146
+ # name must be 1-63 characters long, and comply with RFC1035. Specifically, the
10147
+ # name must be 1-63 characters long and match the regular expression [a-z]([-a-
10148
+ # z0-9]*[a-z0-9])? which means the first character must be a lowercase letter,
10149
+ # and all following characters must be a dash, lowercase letter, or digit,
10150
+ # except the last character, which cannot be a dash.
10151
+ # Corresponds to the JSON property `name`
10152
+ # @return [String]
10153
+ attr_accessor :name
10154
+
10155
+ # Specifies the type of proxy header to append before sending data to the
10156
+ # backend, either NONE or PROXY_V1. The default is NONE.
10157
+ # Corresponds to the JSON property `proxyHeader`
10158
+ # @return [String]
10159
+ attr_accessor :proxy_header
10160
+
10161
+ # [Output Only] Server-defined URL for the resource.
10162
+ # Corresponds to the JSON property `selfLink`
10163
+ # @return [String]
10164
+ attr_accessor :self_link
10165
+
10166
+ # URL to the BackendService resource.
10167
+ # Corresponds to the JSON property `service`
10168
+ # @return [String]
10169
+ attr_accessor :service
10170
+
10171
+ # URLs to SslCertificate resources that are used to authenticate connections to
10172
+ # Backends. Currently exactly one SSL certificate must be specified.
10173
+ # Corresponds to the JSON property `sslCertificates`
10174
+ # @return [Array<String>]
10175
+ attr_accessor :ssl_certificates
10176
+
10177
+ def initialize(**args)
10178
+ update!(**args)
10179
+ end
10180
+
10181
+ # Update properties of this object
10182
+ def update!(**args)
10183
+ @creation_timestamp = args[:creation_timestamp] if args.key?(:creation_timestamp)
10184
+ @description = args[:description] if args.key?(:description)
10185
+ @id = args[:id] if args.key?(:id)
10186
+ @kind = args[:kind] if args.key?(:kind)
10187
+ @name = args[:name] if args.key?(:name)
10188
+ @proxy_header = args[:proxy_header] if args.key?(:proxy_header)
10189
+ @self_link = args[:self_link] if args.key?(:self_link)
10190
+ @service = args[:service] if args.key?(:service)
10191
+ @ssl_certificates = args[:ssl_certificates] if args.key?(:ssl_certificates)
10192
+ end
10193
+ end
10194
+
10195
+ # Contains a list of TargetSslProxy resources.
10196
+ class TargetSslProxyList
10197
+ include Google::Apis::Core::Hashable
10198
+
10199
+ # [Output Only] The unique identifier for the resource. This identifier is
10200
+ # defined by the server.
10201
+ # Corresponds to the JSON property `id`
10202
+ # @return [String]
10203
+ attr_accessor :id
10204
+
10205
+ # A list of TargetSslProxy resources.
10206
+ # Corresponds to the JSON property `items`
10207
+ # @return [Array<Google::Apis::ComputeV1::TargetSslProxy>]
10208
+ attr_accessor :items
10209
+
10210
+ # Type of resource.
10211
+ # Corresponds to the JSON property `kind`
10212
+ # @return [String]
10213
+ attr_accessor :kind
10214
+
10215
+ # [Output Only] This token allows you to get the next page of results for list
10216
+ # requests. If the number of results is larger than maxResults, use the
10217
+ # nextPageToken as a value for the query parameter pageToken in the next list
10218
+ # request. Subsequent list requests will have their own nextPageToken to
10219
+ # continue paging through the results.
10220
+ # Corresponds to the JSON property `nextPageToken`
10221
+ # @return [String]
10222
+ attr_accessor :next_page_token
10223
+
10224
+ # [Output Only] Server-defined URL for this resource.
10225
+ # Corresponds to the JSON property `selfLink`
10226
+ # @return [String]
10227
+ attr_accessor :self_link
10228
+
10229
+ def initialize(**args)
10230
+ update!(**args)
10231
+ end
10232
+
10233
+ # Update properties of this object
10234
+ def update!(**args)
10235
+ @id = args[:id] if args.key?(:id)
10236
+ @items = args[:items] if args.key?(:items)
10237
+ @kind = args[:kind] if args.key?(:kind)
10238
+ @next_page_token = args[:next_page_token] if args.key?(:next_page_token)
10239
+ @self_link = args[:self_link] if args.key?(:self_link)
10240
+ end
10241
+ end
10242
+
8060
10243
  # Represents a Target VPN gateway resource.
8061
10244
  class TargetVpnGateway
8062
10245
  include Google::Apis::Core::Hashable
@@ -8178,7 +10361,7 @@ module Google
8178
10361
  # @return [String]
8179
10362
  attr_accessor :next_page_token
8180
10363
 
8181
- # [Output Only] Server-defined URL for the resource.
10364
+ # [Output Only] Server-defined URL for this resource.
8182
10365
  # Corresponds to the JSON property `selfLink`
8183
10366
  # @return [String]
8184
10367
  attr_accessor :self_link
@@ -8227,7 +10410,7 @@ module Google
8227
10410
  # @return [String]
8228
10411
  attr_accessor :next_page_token
8229
10412
 
8230
- # [Output Only] Server-defined URL for the resource.
10413
+ # [Output Only] Server-defined URL for this resource.
8231
10414
  # Corresponds to the JSON property `selfLink`
8232
10415
  # @return [String]
8233
10416
  attr_accessor :self_link
@@ -8723,7 +10906,7 @@ module Google
8723
10906
 
8724
10907
  # Local traffic selector to use when establishing the VPN tunnel with peer VPN
8725
10908
  # gateway. The value should be a CIDR formatted string, for example: 192.168.0.0/
8726
- # 16. The ranges should be disjoint.
10909
+ # 16. The ranges should be disjoint. Only IPv4 is supported.
8727
10910
  # Corresponds to the JSON property `localTrafficSelector`
8728
10911
  # @return [Array<String>]
8729
10912
  attr_accessor :local_traffic_selector
@@ -8738,7 +10921,7 @@ module Google
8738
10921
  # @return [String]
8739
10922
  attr_accessor :name
8740
10923
 
8741
- # IP address of the peer VPN gateway.
10924
+ # IP address of the peer VPN gateway. Only IPv4 is supported.
8742
10925
  # Corresponds to the JSON property `peerIp`
8743
10926
  # @return [String]
8744
10927
  attr_accessor :peer_ip
@@ -8748,6 +10931,18 @@ module Google
8748
10931
  # @return [String]
8749
10932
  attr_accessor :region
8750
10933
 
10934
+ # Remote traffic selectors to use when establishing the VPN tunnel with peer VPN
10935
+ # gateway. The value should be a CIDR formatted string, for example: 192.168.0.0/
10936
+ # 16. The ranges should be disjoint. Only IPv4 is supported.
10937
+ # Corresponds to the JSON property `remoteTrafficSelector`
10938
+ # @return [Array<String>]
10939
+ attr_accessor :remote_traffic_selector
10940
+
10941
+ # URL of router resource to be used for dynamic routing.
10942
+ # Corresponds to the JSON property `router`
10943
+ # @return [String]
10944
+ attr_accessor :router
10945
+
8751
10946
  # [Output Only] Server-defined URL for the resource.
8752
10947
  # Corresponds to the JSON property `selfLink`
8753
10948
  # @return [String]
@@ -8791,6 +10986,8 @@ module Google
8791
10986
  @name = args[:name] if args.key?(:name)
8792
10987
  @peer_ip = args[:peer_ip] if args.key?(:peer_ip)
8793
10988
  @region = args[:region] if args.key?(:region)
10989
+ @remote_traffic_selector = args[:remote_traffic_selector] if args.key?(:remote_traffic_selector)
10990
+ @router = args[:router] if args.key?(:router)
8794
10991
  @self_link = args[:self_link] if args.key?(:self_link)
8795
10992
  @shared_secret = args[:shared_secret] if args.key?(:shared_secret)
8796
10993
  @shared_secret_hash = args[:shared_secret_hash] if args.key?(:shared_secret_hash)
@@ -8876,7 +11073,7 @@ module Google
8876
11073
  # @return [String]
8877
11074
  attr_accessor :next_page_token
8878
11075
 
8879
- # [Output Only] Server-defined URL for the resource.
11076
+ # [Output Only] Server-defined URL for this resource.
8880
11077
  # Corresponds to the JSON property `selfLink`
8881
11078
  # @return [String]
8882
11079
  attr_accessor :self_link