google-api-client 0.9.8 → 0.10.2

Sign up to get free protection for your applications and to get access to all the features.
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