google-api-client 0.9.8 → 0.9.20

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (238) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +37 -0
  3. data/Gemfile +9 -1
  4. data/README.md +10 -2
  5. data/api_names.yaml +63 -110
  6. data/generated/google/apis/adexchangebuyer2_v2beta1.rb +35 -0
  7. data/generated/google/apis/adexchangebuyer2_v2beta1/classes.rb +298 -0
  8. data/generated/google/apis/adexchangebuyer2_v2beta1/representations.rb +122 -0
  9. data/generated/google/apis/adexchangebuyer2_v2beta1/service.rb +458 -0
  10. data/generated/google/apis/adexchangebuyer_v1_4.rb +1 -1
  11. data/generated/google/apis/adexchangebuyer_v1_4/classes.rb +260 -13
  12. data/generated/google/apis/adexchangebuyer_v1_4/representations.rb +81 -0
  13. data/generated/google/apis/adexchangebuyer_v1_4/service.rb +60 -8
  14. data/generated/google/apis/adexchangeseller_v2_0.rb +2 -3
  15. data/generated/google/apis/adexchangeseller_v2_0/service.rb +1 -2
  16. data/generated/google/apis/admin_directory_v1.rb +1 -1
  17. data/generated/google/apis/admin_directory_v1/classes.rb +86 -0
  18. data/generated/google/apis/admin_directory_v1/representations.rb +24 -0
  19. data/generated/google/apis/admin_directory_v1/service.rb +41 -2
  20. data/generated/google/apis/admin_reports_v1.rb +3 -3
  21. data/generated/google/apis/admin_reports_v1/service.rb +2 -2
  22. data/generated/google/apis/adsense_v1_4.rb +1 -1
  23. data/generated/google/apis/adsense_v1_4/classes.rb +1 -1
  24. data/generated/google/apis/adsensehost_v4_1.rb +1 -1
  25. data/generated/google/apis/adsensehost_v4_1/classes.rb +1 -2
  26. data/generated/google/apis/analytics_v3.rb +1 -1
  27. data/generated/google/apis/analytics_v3/classes.rb +379 -3
  28. data/generated/google/apis/analytics_v3/representations.rb +136 -0
  29. data/generated/google/apis/analytics_v3/service.rb +217 -0
  30. data/generated/google/apis/analyticsreporting_v4.rb +1 -1
  31. data/generated/google/apis/analyticsreporting_v4/classes.rb +50 -22
  32. data/generated/google/apis/androidenterprise_v1.rb +1 -1
  33. data/generated/google/apis/androidenterprise_v1/classes.rb +813 -49
  34. data/generated/google/apis/androidenterprise_v1/representations.rb +336 -0
  35. data/generated/google/apis/androidenterprise_v1/service.rb +1234 -145
  36. data/generated/google/apis/androidpublisher_v2.rb +1 -1
  37. data/generated/google/apis/androidpublisher_v2/classes.rb +47 -8
  38. data/generated/google/apis/androidpublisher_v2/representations.rb +27 -0
  39. data/generated/google/apis/androidpublisher_v2/service.rb +55 -0
  40. data/generated/google/apis/appengine_v1beta5.rb +7 -1
  41. data/generated/google/apis/appengine_v1beta5/classes.rb +516 -313
  42. data/generated/google/apis/appengine_v1beta5/representations.rb +115 -22
  43. data/generated/google/apis/appengine_v1beta5/service.rb +329 -33
  44. data/generated/google/apis/appsactivity_v1.rb +1 -1
  45. data/generated/google/apis/appsactivity_v1/classes.rb +7 -0
  46. data/generated/google/apis/appsactivity_v1/representations.rb +1 -0
  47. data/generated/google/apis/appstate_v1.rb +1 -1
  48. data/generated/google/apis/bigquery_v2.rb +1 -1
  49. data/generated/google/apis/bigquery_v2/classes.rb +277 -20
  50. data/generated/google/apis/bigquery_v2/representations.rb +86 -0
  51. data/generated/google/apis/bigquery_v2/service.rb +8 -2
  52. data/generated/google/apis/books_v1.rb +2 -2
  53. data/generated/google/apis/books_v1/classes.rb +79 -1
  54. data/generated/google/apis/books_v1/representations.rb +34 -0
  55. data/generated/google/apis/books_v1/service.rb +7 -3
  56. data/generated/google/apis/calendar_v3.rb +1 -1
  57. data/generated/google/apis/civicinfo_v2.rb +3 -2
  58. data/generated/google/apis/civicinfo_v2/classes.rb +377 -5
  59. data/generated/google/apis/civicinfo_v2/representations.rb +149 -0
  60. data/generated/google/apis/civicinfo_v2/service.rb +27 -6
  61. data/generated/google/apis/classroom_v1.rb +1 -1
  62. data/generated/google/apis/classroom_v1/classes.rb +183 -37
  63. data/generated/google/apis/classroom_v1/representations.rb +74 -9
  64. data/generated/google/apis/classroom_v1/service.rb +403 -38
  65. data/generated/google/apis/cloudbuild_v1.rb +1 -1
  66. data/generated/google/apis/cloudbuild_v1/classes.rb +381 -17
  67. data/generated/google/apis/cloudbuild_v1/representations.rb +137 -2
  68. data/generated/google/apis/cloudbuild_v1/service.rb +174 -1
  69. data/generated/google/apis/clouddebugger_v2.rb +3 -6
  70. data/generated/google/apis/clouddebugger_v2/service.rb +4 -4
  71. data/generated/google/apis/cloudmonitoring_v2beta2.rb +1 -1
  72. data/generated/google/apis/cloudresourcemanager_v1.rb +1 -1
  73. data/generated/google/apis/cloudresourcemanager_v1/classes.rb +502 -111
  74. data/generated/google/apis/cloudresourcemanager_v1/representations.rb +162 -24
  75. data/generated/google/apis/cloudresourcemanager_v1/service.rb +274 -30
  76. data/generated/google/apis/cloudresourcemanager_v1beta1.rb +1 -1
  77. data/generated/google/apis/cloudresourcemanager_v1beta1/classes.rb +121 -9
  78. data/generated/google/apis/cloudresourcemanager_v1beta1/representations.rb +46 -0
  79. data/generated/google/apis/cloudresourcemanager_v1beta1/service.rb +71 -58
  80. data/generated/google/apis/compute_beta.rb +1 -1
  81. data/generated/google/apis/compute_beta/classes.rb +2299 -434
  82. data/generated/google/apis/compute_beta/representations.rb +752 -33
  83. data/generated/google/apis/compute_beta/service.rb +6067 -3153
  84. data/generated/google/apis/compute_v1.rb +1 -1
  85. data/generated/google/apis/compute_v1/classes.rb +1681 -207
  86. data/generated/google/apis/compute_v1/representations.rb +552 -0
  87. data/generated/google/apis/compute_v1/service.rb +2797 -1171
  88. data/generated/google/apis/content_v2.rb +1 -1
  89. data/generated/google/apis/content_v2/classes.rb +757 -1
  90. data/generated/google/apis/content_v2/representations.rb +337 -0
  91. data/generated/google/apis/content_v2/service.rb +244 -0
  92. data/generated/google/apis/dataflow_v1b3.rb +38 -0
  93. data/generated/google/apis/dataflow_v1b3/classes.rb +4053 -0
  94. data/generated/google/apis/dataflow_v1b3/representations.rb +1736 -0
  95. data/generated/google/apis/dataflow_v1b3/service.rb +875 -0
  96. data/generated/google/apis/dataproc_v1.rb +2 -2
  97. data/generated/google/apis/dataproc_v1/classes.rb +213 -68
  98. data/generated/google/apis/dataproc_v1/representations.rb +38 -0
  99. data/generated/google/apis/dataproc_v1/service.rb +78 -48
  100. data/generated/google/apis/datastore_v1.rb +38 -0
  101. data/generated/google/apis/datastore_v1/classes.rb +1284 -0
  102. data/generated/google/apis/datastore_v1/representations.rb +572 -0
  103. data/generated/google/apis/datastore_v1/service.rb +259 -0
  104. data/generated/google/apis/datastore_v1beta3.rb +38 -0
  105. data/generated/google/apis/datastore_v1beta3/classes.rb +1284 -0
  106. data/generated/google/apis/datastore_v1beta3/representations.rb +572 -0
  107. data/generated/google/apis/datastore_v1beta3/service.rb +259 -0
  108. data/generated/google/apis/deploymentmanager_v2.rb +1 -1
  109. data/generated/google/apis/deploymentmanager_v2/classes.rb +384 -2
  110. data/generated/google/apis/deploymentmanager_v2/representations.rb +161 -0
  111. data/generated/google/apis/deploymentmanager_v2/service.rb +217 -55
  112. data/generated/google/apis/dfareporting_v2_5.rb +40 -0
  113. data/generated/google/apis/dfareporting_v2_5/classes.rb +11225 -0
  114. data/generated/google/apis/dfareporting_v2_5/representations.rb +3982 -0
  115. data/generated/google/apis/dfareporting_v2_5/service.rb +8755 -0
  116. data/generated/google/apis/dfareporting_v2_6.rb +40 -0
  117. data/generated/google/apis/dfareporting_v2_6/classes.rb +11586 -0
  118. data/generated/google/apis/dfareporting_v2_6/representations.rb +4119 -0
  119. data/generated/google/apis/dfareporting_v2_6/service.rb +9025 -0
  120. data/generated/google/apis/dns_v1.rb +1 -1
  121. data/generated/google/apis/dns_v1/classes.rb +1 -1
  122. data/generated/google/apis/doubleclickbidmanager_v1.rb +1 -1
  123. data/generated/google/apis/doubleclickbidmanager_v1/classes.rb +79 -86
  124. data/generated/google/apis/doubleclickbidmanager_v1/representations.rb +25 -28
  125. data/generated/google/apis/doubleclickbidmanager_v1/service.rb +10 -8
  126. data/generated/google/apis/doubleclicksearch_v2.rb +1 -1
  127. data/generated/google/apis/drive_v2.rb +1 -1
  128. data/generated/google/apis/drive_v2/classes.rb +27 -3
  129. data/generated/google/apis/drive_v2/representations.rb +4 -0
  130. data/generated/google/apis/drive_v2/service.rb +16 -3
  131. data/generated/google/apis/drive_v3.rb +1 -1
  132. data/generated/google/apis/drive_v3/classes.rb +50 -16
  133. data/generated/google/apis/drive_v3/representations.rb +4 -0
  134. data/generated/google/apis/drive_v3/service.rb +12 -2
  135. data/generated/google/apis/fitness_v1.rb +8 -2
  136. data/generated/google/apis/fitness_v1/classes.rb +64 -6
  137. data/generated/google/apis/fitness_v1/representations.rb +20 -0
  138. data/generated/google/apis/fitness_v1/service.rb +17 -18
  139. data/generated/google/apis/fusiontables_v2.rb +1 -1
  140. data/generated/google/apis/fusiontables_v2/classes.rb +4 -3
  141. data/generated/google/apis/games_configuration_v1configuration.rb +1 -1
  142. data/generated/google/apis/games_management_v1management.rb +1 -1
  143. data/generated/google/apis/games_v1.rb +1 -1
  144. data/generated/google/apis/genomics_v1.rb +2 -4
  145. data/generated/google/apis/genomics_v1/classes.rb +143 -34
  146. data/generated/google/apis/genomics_v1/representations.rb +48 -11
  147. data/generated/google/apis/genomics_v1/service.rb +35 -37
  148. data/generated/google/apis/gmail_v1.rb +10 -1
  149. data/generated/google/apis/gmail_v1/classes.rb +542 -4
  150. data/generated/google/apis/gmail_v1/representations.rb +213 -0
  151. data/generated/google/apis/gmail_v1/service.rb +898 -1
  152. data/generated/google/apis/groupssettings_v1.rb +1 -1
  153. data/generated/google/apis/groupssettings_v1/classes.rb +12 -0
  154. data/generated/google/apis/groupssettings_v1/representations.rb +2 -0
  155. data/generated/google/apis/iam_v1.rb +2 -2
  156. data/generated/google/apis/iam_v1/classes.rb +181 -206
  157. data/generated/google/apis/iam_v1/representations.rb +36 -45
  158. data/generated/google/apis/iam_v1/service.rb +101 -67
  159. data/generated/google/apis/identitytoolkit_v3.rb +4 -1
  160. data/generated/google/apis/identitytoolkit_v3/classes.rb +171 -1
  161. data/generated/google/apis/identitytoolkit_v3/representations.rb +26 -0
  162. data/generated/google/apis/language_v1beta1.rb +36 -0
  163. data/generated/google/apis/language_v1beta1/classes.rb +599 -0
  164. data/generated/google/apis/language_v1beta1/representations.rb +289 -0
  165. data/generated/google/apis/language_v1beta1/service.rb +152 -0
  166. data/generated/google/apis/logging_v2beta1.rb +6 -6
  167. data/generated/google/apis/logging_v2beta1/classes.rb +760 -731
  168. data/generated/google/apis/logging_v2beta1/representations.rb +136 -147
  169. data/generated/google/apis/logging_v2beta1/service.rb +290 -209
  170. data/generated/google/apis/mirror_v1.rb +2 -2
  171. data/generated/google/apis/mirror_v1/service.rb +1 -1
  172. data/generated/google/apis/monitoring_v3.rb +45 -0
  173. data/generated/google/apis/monitoring_v3/classes.rb +1337 -0
  174. data/generated/google/apis/monitoring_v3/representations.rb +516 -0
  175. data/generated/google/apis/monitoring_v3/service.rb +711 -0
  176. data/generated/google/apis/oauth2_v2.rb +1 -1
  177. data/generated/google/apis/pagespeedonline_v2.rb +1 -1
  178. data/generated/google/apis/plus_domains_v1.rb +1 -1
  179. data/generated/google/apis/plus_v1.rb +1 -1
  180. data/generated/google/apis/pubsub_v1.rb +1 -1
  181. data/generated/google/apis/pubsub_v1/classes.rb +10 -9
  182. data/generated/google/apis/pubsub_v1/service.rb +128 -27
  183. data/generated/google/apis/qpx_express_v1.rb +1 -1
  184. data/generated/google/apis/qpx_express_v1/classes.rb +6 -0
  185. data/generated/google/apis/qpx_express_v1/representations.rb +1 -0
  186. data/generated/google/apis/replicapool_v1beta2.rb +1 -1
  187. data/generated/google/apis/replicapoolupdater_v1beta1.rb +4 -2
  188. data/generated/google/apis/replicapoolupdater_v1beta1/service.rb +3 -1
  189. data/generated/google/apis/script_v1.rb +1 -1
  190. data/generated/google/apis/script_v1/classes.rb +6 -0
  191. data/generated/google/apis/script_v1/representations.rb +1 -0
  192. data/generated/google/apis/sheets_v4.rb +1 -1
  193. data/generated/google/apis/sheets_v4/classes.rb +910 -89
  194. data/generated/google/apis/sheets_v4/representations.rb +194 -10
  195. data/generated/google/apis/sheets_v4/service.rb +216 -49
  196. data/generated/google/apis/slides_v1.rb +49 -0
  197. data/generated/google/apis/slides_v1/classes.rb +3926 -0
  198. data/generated/google/apis/slides_v1/representations.rb +1722 -0
  199. data/generated/google/apis/slides_v1/service.rb +202 -0
  200. data/generated/google/apis/speech_v1beta1.rb +34 -0
  201. data/generated/google/apis/speech_v1beta1/classes.rb +511 -0
  202. data/generated/google/apis/speech_v1beta1/representations.rb +218 -0
  203. data/generated/google/apis/speech_v1beta1/service.rb +271 -0
  204. data/generated/google/apis/sqladmin_v1beta4.rb +1 -1
  205. data/generated/google/apis/sqladmin_v1beta4/classes.rb +32 -8
  206. data/generated/google/apis/sqladmin_v1beta4/representations.rb +3 -0
  207. data/generated/google/apis/sqladmin_v1beta4/service.rb +42 -0
  208. data/generated/google/apis/storage_v1.rb +1 -1
  209. data/generated/google/apis/storage_v1/classes.rb +43 -18
  210. data/generated/google/apis/storage_v1/representations.rb +4 -1
  211. data/generated/google/apis/storage_v1/service.rb +5 -2
  212. data/generated/google/apis/translate_v2.rb +2 -2
  213. data/generated/google/apis/translate_v2/service.rb +1 -1
  214. data/generated/google/apis/vision_v1.rb +1 -1
  215. data/generated/google/apis/vision_v1/classes.rb +12 -11
  216. data/generated/google/apis/youtube_analytics_v1.rb +1 -1
  217. data/generated/google/apis/youtube_partner_v1.rb +1 -1
  218. data/generated/google/apis/youtube_partner_v1/classes.rb +6 -0
  219. data/generated/google/apis/youtube_partner_v1/representations.rb +2 -0
  220. data/generated/google/apis/youtube_partner_v1/service.rb +15 -3
  221. data/generated/google/apis/youtube_v3.rb +1 -1
  222. data/generated/google/apis/youtube_v3/classes.rb +183 -21
  223. data/generated/google/apis/youtube_v3/representations.rb +85 -4
  224. data/generated/google/apis/youtube_v3/service.rb +41 -5
  225. data/generated/google/apis/youtubereporting_v1.rb +1 -1
  226. data/google-api-client.gemspec +2 -1
  227. data/lib/google/apis/core/api_command.rb +4 -0
  228. data/lib/google/apis/core/base_service.rb +10 -4
  229. data/lib/google/apis/core/download.rb +7 -2
  230. data/lib/google/apis/core/http_command.rb +5 -1
  231. data/lib/google/apis/core/upload.rb +7 -1
  232. data/lib/google/apis/errors.rb +2 -2
  233. data/lib/google/apis/generator/annotator.rb +6 -0
  234. data/lib/google/apis/version.rb +1 -1
  235. data/samples/cli/lib/samples/bigquery.rb +101 -0
  236. data/samples/cli/lib/samples/sheets.rb +61 -0
  237. data/sync.rb +71 -0
  238. metadata +55 -13
@@ -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 = '20161019'
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
 
@@ -365,6 +366,11 @@ module Google
365
366
  # @return [String]
366
367
  attr_accessor :device_name
367
368
 
369
+ # Represents a customer-supplied encryption key
370
+ # Corresponds to the JSON property `diskEncryptionKey`
371
+ # @return [Google::Apis::ComputeV1::CustomerEncryptionKey]
372
+ attr_accessor :disk_encryption_key
373
+
368
374
  # Assigns a zero-based index to this disk, where 0 is reserved for the boot disk.
369
375
  # For example, if you have many disks attached to an instance, each disk would
370
376
  # have a unique index number. If not specified, the server will choose an
@@ -409,7 +415,12 @@ module Google
409
415
  attr_accessor :mode
410
416
 
411
417
  # Specifies a valid partial or full URL to an existing Persistent Disk resource.
412
- # This field is only applicable for persistent disks.
418
+ # When creating a new instance, one of initializeParams.sourceImage or disks.
419
+ # source is required.
420
+ # If desired, you can also attach existing non-root persistent disks using this
421
+ # property. This field is only applicable for persistent disks.
422
+ # Note that for InstanceTemplate, specify the disk name, not the URL for the
423
+ # disk.
413
424
  # Corresponds to the JSON property `source`
414
425
  # @return [String]
415
426
  attr_accessor :source
@@ -429,6 +440,7 @@ module Google
429
440
  @auto_delete = args[:auto_delete] if args.key?(:auto_delete)
430
441
  @boot = args[:boot] if args.key?(:boot)
431
442
  @device_name = args[:device_name] if args.key?(:device_name)
443
+ @disk_encryption_key = args[:disk_encryption_key] if args.key?(:disk_encryption_key)
432
444
  @index = args[:index] if args.key?(:index)
433
445
  @initialize_params = args[:initialize_params] if args.key?(:initialize_params)
434
446
  @interface = args[:interface] if args.key?(:interface)
@@ -469,13 +481,14 @@ module Google
469
481
  # - https://www.googleapis.com/compute/v1/projects/project/zones/zone/diskTypes/
470
482
  # diskType
471
483
  # - projects/project/zones/zone/diskTypes/diskType
472
- # - zones/zone/diskTypes/diskType
484
+ # - zones/zone/diskTypes/diskType Note that for InstanceTemplate, this is the
485
+ # name of the disk type, not URL.
473
486
  # Corresponds to the JSON property `diskType`
474
487
  # @return [String]
475
488
  attr_accessor :disk_type
476
489
 
477
- # The source image used to create this disk. If the source image is deleted,
478
- # this field will not be set.
490
+ # The source image to create this disk. When creating a new instance, one of
491
+ # initializeParams.sourceImage or disks.source is required.
479
492
  # To create a disk with one of the public operating system images, specify the
480
493
  # image by its family name. For example, specify family/debian-8 to use the
481
494
  # latest Debian 8 image:
@@ -489,10 +502,16 @@ module Google
489
502
  # latest version of the image in that family. Replace the image name with family/
490
503
  # family-name:
491
504
  # global/images/family/my-private-family
505
+ # If the source image is deleted later, this field will not be set.
492
506
  # Corresponds to the JSON property `sourceImage`
493
507
  # @return [String]
494
508
  attr_accessor :source_image
495
509
 
510
+ # Represents a customer-supplied encryption key
511
+ # Corresponds to the JSON property `sourceImageEncryptionKey`
512
+ # @return [Google::Apis::ComputeV1::CustomerEncryptionKey]
513
+ attr_accessor :source_image_encryption_key
514
+
496
515
  def initialize(**args)
497
516
  update!(**args)
498
517
  end
@@ -503,6 +522,7 @@ module Google
503
522
  @disk_size_gb = args[:disk_size_gb] if args.key?(:disk_size_gb)
504
523
  @disk_type = args[:disk_type] if args.key?(:disk_type)
505
524
  @source_image = args[:source_image] if args.key?(:source_image)
525
+ @source_image_encryption_key = args[:source_image_encryption_key] if args.key?(:source_image_encryption_key)
506
526
  end
507
527
  end
508
528
 
@@ -550,6 +570,12 @@ module Google
550
570
  # @return [String]
551
571
  attr_accessor :name
552
572
 
573
+ # [Output Only] URL of the region where the instance group resides (for
574
+ # autoscalers living in regional scope).
575
+ # Corresponds to the JSON property `region`
576
+ # @return [String]
577
+ attr_accessor :region
578
+
553
579
  # [Output Only] Server-defined URL for the resource.
554
580
  # Corresponds to the JSON property `selfLink`
555
581
  # @return [String]
@@ -560,7 +586,8 @@ module Google
560
586
  # @return [String]
561
587
  attr_accessor :target
562
588
 
563
- # [Output Only] URL of the zone where the instance group resides.
589
+ # [Output Only] URL of the zone where the instance group resides (for
590
+ # autoscalers living in zonal scope).
564
591
  # Corresponds to the JSON property `zone`
565
592
  # @return [String]
566
593
  attr_accessor :zone
@@ -577,6 +604,7 @@ module Google
577
604
  @id = args[:id] if args.key?(:id)
578
605
  @kind = args[:kind] if args.key?(:kind)
579
606
  @name = args[:name] if args.key?(:name)
607
+ @region = args[:region] if args.key?(:region)
580
608
  @self_link = args[:self_link] if args.key?(:self_link)
581
609
  @target = args[:target] if args.key?(:target)
582
610
  @zone = args[:zone] if args.key?(:zone)
@@ -837,7 +865,7 @@ module Google
837
865
  include Google::Apis::Core::Hashable
838
866
 
839
867
  # 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.
868
+ # float value in the range (0, 1]. If not specified, the default is 0.6.
841
869
  # If the CPU level is below the target utilization, the autoscaler scales down
842
870
  # the number of instances until it reaches the minimum number of instances you
843
871
  # specified or until the average CPU of your instances reaches the target
@@ -863,12 +891,12 @@ module Google
863
891
  class AutoscalingPolicyCustomMetricUtilization
864
892
  include Google::Apis::Core::Hashable
865
893
 
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.
894
+ # The identifier of the Stackdriver Monitoring metric. The metric cannot have
895
+ # negative values and should be a utilization metric, which means that the
896
+ # number of virtual machines handling requests should increase or decrease
897
+ # proportionally to the metric. The metric must also have a label of compute.
898
+ # googleapis.com/resource_id with the value of the instance's unique ID,
899
+ # although this alone does not guarantee that the metric is valid.
872
900
  # For example, the following is a valid metric:
873
901
  # compute.googleapis.com/instance/network/received_bytes_count
874
902
  # The following is not a valid metric because it does not increase or decrease
@@ -884,7 +912,7 @@ module Google
884
912
  # @return [Float]
885
913
  attr_accessor :utilization_target
886
914
 
887
- # Defines how target utilization value is expressed for a Cloud Monitoring
915
+ # Defines how target utilization value is expressed for a Stackdriver Monitoring
888
916
  # metric. Either GAUGE, DELTA_PER_SECOND, or DELTA_PER_MINUTE. If not specified,
889
917
  # the default is GAUGE.
890
918
  # Corresponds to the JSON property `utilizationTargetType`
@@ -928,17 +956,20 @@ module Google
928
956
  class Backend
929
957
  include Google::Apis::Core::Hashable
930
958
 
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.
959
+ # Specifies the balancing mode for this backend. For global HTTP(S) or TCP/SSL
960
+ # load balancing, the default is UTILIZATION. Valid values are UTILIZATION, RATE
961
+ # (for HTTP(S)) and CONNECTION (for TCP/SSL).
962
+ # This cannot be used for internal load balancing.
933
963
  # Corresponds to the JSON property `balancingMode`
934
964
  # @return [String]
935
965
  attr_accessor :balancing_mode
936
966
 
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].
967
+ # A multiplier applied to the group's maximum servicing capacity (based on
968
+ # UTILIZATION, RATE or CONNECTION). Default value is 1, which means the group
969
+ # will serve up to 100% of its configured capacity (depending on balancingMode).
970
+ # A setting of 0 means the group is completely drained, offering 0% of its
971
+ # available Capacity. Valid range is [0.0,1.0].
972
+ # This cannot be used for internal load balancing.
942
973
  # Corresponds to the JSON property `capacityScaler`
943
974
  # @return [Float]
944
975
  attr_accessor :capacity_scaler
@@ -956,13 +987,33 @@ module Google
956
987
  # Instance Group resource.
957
988
  # Note that you must specify an Instance Group resource using the fully-
958
989
  # qualified URL, rather than a partial URL.
990
+ # When the BackendService has load balancing scheme INTERNAL, the instance group
991
+ # must be in a zone within the same region as the BackendService.
959
992
  # Corresponds to the JSON property `group`
960
993
  # @return [String]
961
994
  attr_accessor :group
962
995
 
996
+ # The max number of simultaneous connections for the group. Can be used with
997
+ # either CONNECTION or UTILIZATION balancing modes. For CONNECTION mode, either
998
+ # maxConnections or maxConnectionsPerInstance must be set.
999
+ # This cannot be used for internal load balancing.
1000
+ # Corresponds to the JSON property `maxConnections`
1001
+ # @return [Fixnum]
1002
+ attr_accessor :max_connections
1003
+
1004
+ # The max number of simultaneous connections that a single backend instance can
1005
+ # handle. This is used to calculate the capacity of the group. Can be used in
1006
+ # either CONNECTION or UTILIZATION balancing modes. For CONNECTION mode, either
1007
+ # maxConnections or maxConnectionsPerInstance must be set.
1008
+ # This cannot be used for internal load balancing.
1009
+ # Corresponds to the JSON property `maxConnectionsPerInstance`
1010
+ # @return [Fixnum]
1011
+ attr_accessor :max_connections_per_instance
1012
+
963
1013
  # The max requests per second (RPS) of the group. Can be used with either RATE
964
1014
  # or UTILIZATION balancing modes, but required if RATE mode. For RATE mode,
965
1015
  # either maxRate or maxRatePerInstance must be set.
1016
+ # This cannot be used for internal load balancing.
966
1017
  # Corresponds to the JSON property `maxRate`
967
1018
  # @return [Fixnum]
968
1019
  attr_accessor :max_rate
@@ -971,12 +1022,14 @@ module Google
971
1022
  # This is used to calculate the capacity of the group. Can be used in either
972
1023
  # balancing mode. For RATE mode, either maxRate or maxRatePerInstance must be
973
1024
  # set.
1025
+ # This cannot be used for internal load balancing.
974
1026
  # Corresponds to the JSON property `maxRatePerInstance`
975
1027
  # @return [Float]
976
1028
  attr_accessor :max_rate_per_instance
977
1029
 
978
1030
  # Used when balancingMode is UTILIZATION. This ratio defines the CPU utilization
979
1031
  # target for the group. The default is 0.8. Valid range is [0.0, 1.0].
1032
+ # This cannot be used for internal load balancing.
980
1033
  # Corresponds to the JSON property `maxUtilization`
981
1034
  # @return [Float]
982
1035
  attr_accessor :max_utilization
@@ -991,6 +1044,8 @@ module Google
991
1044
  @capacity_scaler = args[:capacity_scaler] if args.key?(:capacity_scaler)
992
1045
  @description = args[:description] if args.key?(:description)
993
1046
  @group = args[:group] if args.key?(:group)
1047
+ @max_connections = args[:max_connections] if args.key?(:max_connections)
1048
+ @max_connections_per_instance = args[:max_connections_per_instance] if args.key?(:max_connections_per_instance)
994
1049
  @max_rate = args[:max_rate] if args.key?(:max_rate)
995
1050
  @max_rate_per_instance = args[:max_rate_per_instance] if args.key?(:max_rate_per_instance)
996
1051
  @max_utilization = args[:max_utilization] if args.key?(:max_utilization)
@@ -1002,11 +1057,24 @@ module Google
1002
1057
  class BackendService
1003
1058
  include Google::Apis::Core::Hashable
1004
1059
 
1060
+ # Lifetime of cookies in seconds if session_affinity is GENERATED_COOKIE. If set
1061
+ # to 0, the cookie is non-persistent and lasts only until the end of the browser
1062
+ # session (or equivalent). The maximum allowed value for TTL is one day.
1063
+ # When the load balancing scheme is INTERNAL, this field is not used.
1064
+ # Corresponds to the JSON property `affinityCookieTtlSec`
1065
+ # @return [Fixnum]
1066
+ attr_accessor :affinity_cookie_ttl_sec
1067
+
1005
1068
  # The list of backends that serve this BackendService.
1006
1069
  # Corresponds to the JSON property `backends`
1007
1070
  # @return [Array<Google::Apis::ComputeV1::Backend>]
1008
1071
  attr_accessor :backends
1009
1072
 
1073
+ # Message containing connection draining configuration.
1074
+ # Corresponds to the JSON property `connectionDraining`
1075
+ # @return [Google::Apis::ComputeV1::ConnectionDraining]
1076
+ attr_accessor :connection_draining
1077
+
1010
1078
  # [Output Only] Creation timestamp in RFC3339 text format.
1011
1079
  # Corresponds to the JSON property `creationTimestamp`
1012
1080
  # @return [String]
@@ -1018,6 +1086,13 @@ module Google
1018
1086
  # @return [String]
1019
1087
  attr_accessor :description
1020
1088
 
1089
+ # If true, enable Cloud CDN for this BackendService.
1090
+ # When the load balancing scheme is INTERNAL, this field is not used.
1091
+ # Corresponds to the JSON property `enableCDN`
1092
+ # @return [Boolean]
1093
+ attr_accessor :enable_cdn
1094
+ alias_method :enable_cdn?, :enable_cdn
1095
+
1021
1096
  # Fingerprint of this resource. A hash of the contents stored in this object.
1022
1097
  # This field is used in optimistic locking. This field will be ignored when
1023
1098
  # inserting a BackendService. An up-to-date fingerprint must be provided in
@@ -1029,6 +1104,8 @@ module Google
1029
1104
  # The list of URLs to the HttpHealthCheck or HttpsHealthCheck resource for
1030
1105
  # health checking this BackendService. Currently at most one health check can be
1031
1106
  # specified, and a health check is required.
1107
+ # For internal load balancing, a URL to a HealthCheck resource must be specified
1108
+ # instead.
1032
1109
  # Corresponds to the JSON property `healthChecks`
1033
1110
  # @return [Array<String>]
1034
1111
  attr_accessor :health_checks
@@ -1057,18 +1134,23 @@ module Google
1057
1134
 
1058
1135
  # Deprecated in favor of portName. The TCP port to connect on the backend. The
1059
1136
  # default value is 80.
1137
+ # This cannot be used for internal load balancing.
1060
1138
  # Corresponds to the JSON property `port`
1061
1139
  # @return [Fixnum]
1062
1140
  attr_accessor :port
1063
1141
 
1064
1142
  # Name of backend port. The same name should appear in the instance groups
1065
- # referenced by this service. Required.
1143
+ # referenced by this service. Required when the load balancing scheme is
1144
+ # EXTERNAL.
1145
+ # When the load balancing scheme is INTERNAL, this field is not used.
1066
1146
  # Corresponds to the JSON property `portName`
1067
1147
  # @return [String]
1068
1148
  attr_accessor :port_name
1069
1149
 
1070
1150
  # The protocol this BackendService uses to communicate with backends.
1071
- # Possible values are HTTP, HTTPS, HTTP2, TCP and SSL.
1151
+ # Possible values are HTTP, HTTPS, HTTP2, TCP and SSL. The default is HTTP.
1152
+ # For internal load balancing, the possible values are TCP and UDP, and the
1153
+ # default is TCP.
1072
1154
  # Corresponds to the JSON property `protocol`
1073
1155
  # @return [String]
1074
1156
  attr_accessor :protocol
@@ -1084,6 +1166,16 @@ module Google
1084
1166
  # @return [String]
1085
1167
  attr_accessor :self_link
1086
1168
 
1169
+ # Type of session affinity to use. The default is NONE.
1170
+ # When the load balancing scheme is EXTERNAL, can be NONE, CLIENT_IP, or
1171
+ # GENERATED_COOKIE.
1172
+ # When the load balancing scheme is INTERNAL, can be NONE, CLIENT_IP,
1173
+ # CLIENT_IP_PROTO, or CLIENT_IP_PORT_PROTO.
1174
+ # When the protocol is UDP, this field is not used.
1175
+ # Corresponds to the JSON property `sessionAffinity`
1176
+ # @return [String]
1177
+ attr_accessor :session_affinity
1178
+
1087
1179
  # How many seconds to wait for the backend before considering it a failed
1088
1180
  # request. Default is 30 seconds.
1089
1181
  # Corresponds to the JSON property `timeoutSec`
@@ -1096,9 +1188,12 @@ module Google
1096
1188
 
1097
1189
  # Update properties of this object
1098
1190
  def update!(**args)
1191
+ @affinity_cookie_ttl_sec = args[:affinity_cookie_ttl_sec] if args.key?(:affinity_cookie_ttl_sec)
1099
1192
  @backends = args[:backends] if args.key?(:backends)
1193
+ @connection_draining = args[:connection_draining] if args.key?(:connection_draining)
1100
1194
  @creation_timestamp = args[:creation_timestamp] if args.key?(:creation_timestamp)
1101
1195
  @description = args[:description] if args.key?(:description)
1196
+ @enable_cdn = args[:enable_cdn] if args.key?(:enable_cdn)
1102
1197
  @fingerprint = args[:fingerprint] if args.key?(:fingerprint)
1103
1198
  @health_checks = args[:health_checks] if args.key?(:health_checks)
1104
1199
  @id = args[:id] if args.key?(:id)
@@ -1109,6 +1204,7 @@ module Google
1109
1204
  @protocol = args[:protocol] if args.key?(:protocol)
1110
1205
  @region = args[:region] if args.key?(:region)
1111
1206
  @self_link = args[:self_link] if args.key?(:self_link)
1207
+ @session_affinity = args[:session_affinity] if args.key?(:session_affinity)
1112
1208
  @timeout_sec = args[:timeout_sec] if args.key?(:timeout_sec)
1113
1209
  end
1114
1210
  end
@@ -1143,8 +1239,7 @@ module Google
1143
1239
  class BackendServiceList
1144
1240
  include Google::Apis::Core::Hashable
1145
1241
 
1146
- # [Output Only] The unique identifier for the resource. This identifier is
1147
- # defined by the server.
1242
+ # [Output Only] Unique identifier for the resource; defined by the server.
1148
1243
  # Corresponds to the JSON property `id`
1149
1244
  # @return [String]
1150
1245
  attr_accessor :id
@@ -1160,11 +1255,7 @@ module Google
1160
1255
  # @return [String]
1161
1256
  attr_accessor :kind
1162
1257
 
1163
- # [Output Only] This token allows you to get the next page of results for list
1164
- # requests. If the number of results is larger than maxResults, use the
1165
- # nextPageToken as a value for the query parameter pageToken in the next list
1166
- # request. Subsequent list requests will have their own nextPageToken to
1167
- # continue paging through the results.
1258
+ # [Output Only] A token used to continue a truncated list request.
1168
1259
  # Corresponds to the JSON property `nextPageToken`
1169
1260
  # @return [String]
1170
1261
  attr_accessor :next_page_token
@@ -1188,24 +1279,119 @@ module Google
1188
1279
  end
1189
1280
  end
1190
1281
 
1282
+ #
1283
+ class CacheInvalidationRule
1284
+ include Google::Apis::Core::Hashable
1285
+
1286
+ #
1287
+ # Corresponds to the JSON property `path`
1288
+ # @return [String]
1289
+ attr_accessor :path
1290
+
1291
+ def initialize(**args)
1292
+ update!(**args)
1293
+ end
1294
+
1295
+ # Update properties of this object
1296
+ def update!(**args)
1297
+ @path = args[:path] if args.key?(:path)
1298
+ end
1299
+ end
1300
+
1301
+ # Message containing connection draining configuration.
1302
+ class ConnectionDraining
1303
+ include Google::Apis::Core::Hashable
1304
+
1305
+ # Time for which instance will be drained (not accept new connections, but still
1306
+ # work to finish started).
1307
+ # Corresponds to the JSON property `drainingTimeoutSec`
1308
+ # @return [Fixnum]
1309
+ attr_accessor :draining_timeout_sec
1310
+
1311
+ def initialize(**args)
1312
+ update!(**args)
1313
+ end
1314
+
1315
+ # Update properties of this object
1316
+ def update!(**args)
1317
+ @draining_timeout_sec = args[:draining_timeout_sec] if args.key?(:draining_timeout_sec)
1318
+ end
1319
+ end
1320
+
1321
+ # Represents a customer-supplied encryption key
1322
+ class CustomerEncryptionKey
1323
+ include Google::Apis::Core::Hashable
1324
+
1325
+ # Specifies a 256-bit customer-supplied encryption key, encoded in RFC 4648
1326
+ # base64 to either encrypt or decrypt this resource.
1327
+ # Corresponds to the JSON property `rawKey`
1328
+ # @return [String]
1329
+ attr_accessor :raw_key
1330
+
1331
+ # [Output only] The RFC 4648 base64 encoded SHA-256 hash of the customer-
1332
+ # supplied encryption key that protects this resource.
1333
+ # Corresponds to the JSON property `sha256`
1334
+ # @return [String]
1335
+ attr_accessor :sha256
1336
+
1337
+ def initialize(**args)
1338
+ update!(**args)
1339
+ end
1340
+
1341
+ # Update properties of this object
1342
+ def update!(**args)
1343
+ @raw_key = args[:raw_key] if args.key?(:raw_key)
1344
+ @sha256 = args[:sha256] if args.key?(:sha256)
1345
+ end
1346
+ end
1347
+
1348
+ #
1349
+ class CustomerEncryptionKeyProtectedDisk
1350
+ include Google::Apis::Core::Hashable
1351
+
1352
+ # Represents a customer-supplied encryption key
1353
+ # Corresponds to the JSON property `diskEncryptionKey`
1354
+ # @return [Google::Apis::ComputeV1::CustomerEncryptionKey]
1355
+ attr_accessor :disk_encryption_key
1356
+
1357
+ # Specifies a valid partial or full URL to an existing Persistent Disk resource.
1358
+ # This field is only applicable for persistent disks.
1359
+ # Corresponds to the JSON property `source`
1360
+ # @return [String]
1361
+ attr_accessor :source
1362
+
1363
+ def initialize(**args)
1364
+ update!(**args)
1365
+ end
1366
+
1367
+ # Update properties of this object
1368
+ def update!(**args)
1369
+ @disk_encryption_key = args[:disk_encryption_key] if args.key?(:disk_encryption_key)
1370
+ @source = args[:source] if args.key?(:source)
1371
+ end
1372
+ end
1373
+
1191
1374
  # Deprecation status for a public resource.
1192
1375
  class DeprecationStatus
1193
1376
  include Google::Apis::Core::Hashable
1194
1377
 
1195
- # An optional RFC3339 timestamp on or after which the deprecation state of this
1196
- # resource will be changed to DELETED.
1378
+ # An optional RFC3339 timestamp on or after which the state of this resource is
1379
+ # intended to change to DELETED. This is only informational and the status will
1380
+ # not change unless the client explicitly changes it.
1197
1381
  # Corresponds to the JSON property `deleted`
1198
1382
  # @return [String]
1199
1383
  attr_accessor :deleted
1200
1384
 
1201
- # An optional RFC3339 timestamp on or after which the deprecation state of this
1202
- # resource will be changed to DEPRECATED.
1385
+ # An optional RFC3339 timestamp on or after which the state of this resource is
1386
+ # intended to change to DEPRECATED. This is only informational and the status
1387
+ # will not change unless the client explicitly changes it.
1203
1388
  # Corresponds to the JSON property `deprecated`
1204
1389
  # @return [String]
1205
1390
  attr_accessor :deprecated
1206
1391
 
1207
- # An optional RFC3339 timestamp on or after which the deprecation state of this
1208
- # resource will be changed to OBSOLETE.
1392
+ # An optional RFC3339 timestamp on or after which the state of this resource is
1393
+ # intended to change to OBSOLETE. This is only informational and the status will
1394
+ # not change unless the client explicitly changes it.
1209
1395
  # Corresponds to the JSON property `obsolete`
1210
1396
  # @return [String]
1211
1397
  attr_accessor :obsolete
@@ -1255,6 +1441,11 @@ module Google
1255
1441
  # @return [String]
1256
1442
  attr_accessor :description
1257
1443
 
1444
+ # Represents a customer-supplied encryption key
1445
+ # Corresponds to the JSON property `diskEncryptionKey`
1446
+ # @return [Google::Apis::ComputeV1::CustomerEncryptionKey]
1447
+ attr_accessor :disk_encryption_key
1448
+
1258
1449
  # [Output Only] The unique identifier for the resource. This identifier is
1259
1450
  # defined by the server.
1260
1451
  # Corresponds to the JSON property `id`
@@ -1276,7 +1467,7 @@ module Google
1276
1467
  # @return [String]
1277
1468
  attr_accessor :last_detach_timestamp
1278
1469
 
1279
- # [Output Only] Any applicable publicly visible licenses.
1470
+ # Any applicable publicly visible licenses.
1280
1471
  # Corresponds to the JSON property `licenses`
1281
1472
  # @return [Array<String>]
1282
1473
  attr_accessor :licenses
@@ -1330,6 +1521,11 @@ module Google
1330
1521
  # @return [String]
1331
1522
  attr_accessor :source_image
1332
1523
 
1524
+ # Represents a customer-supplied encryption key
1525
+ # Corresponds to the JSON property `sourceImageEncryptionKey`
1526
+ # @return [Google::Apis::ComputeV1::CustomerEncryptionKey]
1527
+ attr_accessor :source_image_encryption_key
1528
+
1333
1529
  # [Output Only] The ID value of the image used to create this disk. This value
1334
1530
  # identifies the exact image that was used to create this persistent disk. For
1335
1531
  # example, if you created the persistent disk from an image that was later
@@ -1350,6 +1546,11 @@ module Google
1350
1546
  # @return [String]
1351
1547
  attr_accessor :source_snapshot
1352
1548
 
1549
+ # Represents a customer-supplied encryption key
1550
+ # Corresponds to the JSON property `sourceSnapshotEncryptionKey`
1551
+ # @return [Google::Apis::ComputeV1::CustomerEncryptionKey]
1552
+ attr_accessor :source_snapshot_encryption_key
1553
+
1353
1554
  # [Output Only] The unique ID of the snapshot used to create this disk. This
1354
1555
  # value identifies the exact snapshot that was used to create this persistent
1355
1556
  # disk. For example, if you created the persistent disk from a snapshot that was
@@ -1359,8 +1560,7 @@ module Google
1359
1560
  # @return [String]
1360
1561
  attr_accessor :source_snapshot_id
1361
1562
 
1362
- # [Output Only] The status of disk creation. Applicable statuses includes:
1363
- # CREATING, FAILED, READY, RESTORING.
1563
+ # [Output Only] The status of disk creation.
1364
1564
  # Corresponds to the JSON property `status`
1365
1565
  # @return [String]
1366
1566
  attr_accessor :status
@@ -1390,6 +1590,7 @@ module Google
1390
1590
  def update!(**args)
1391
1591
  @creation_timestamp = args[:creation_timestamp] if args.key?(:creation_timestamp)
1392
1592
  @description = args[:description] if args.key?(:description)
1593
+ @disk_encryption_key = args[:disk_encryption_key] if args.key?(:disk_encryption_key)
1393
1594
  @id = args[:id] if args.key?(:id)
1394
1595
  @kind = args[:kind] if args.key?(:kind)
1395
1596
  @last_attach_timestamp = args[:last_attach_timestamp] if args.key?(:last_attach_timestamp)
@@ -1400,8 +1601,10 @@ module Google
1400
1601
  @self_link = args[:self_link] if args.key?(:self_link)
1401
1602
  @size_gb = args[:size_gb] if args.key?(:size_gb)
1402
1603
  @source_image = args[:source_image] if args.key?(:source_image)
1604
+ @source_image_encryption_key = args[:source_image_encryption_key] if args.key?(:source_image_encryption_key)
1403
1605
  @source_image_id = args[:source_image_id] if args.key?(:source_image_id)
1404
1606
  @source_snapshot = args[:source_snapshot] if args.key?(:source_snapshot)
1607
+ @source_snapshot_encryption_key = args[:source_snapshot_encryption_key] if args.key?(:source_snapshot_encryption_key)
1405
1608
  @source_snapshot_id = args[:source_snapshot_id] if args.key?(:source_snapshot_id)
1406
1609
  @status = args[:status] if args.key?(:status)
1407
1610
  @type = args[:type] if args.key?(:type)
@@ -1916,8 +2119,8 @@ module Google
1916
2119
  class Firewall
1917
2120
  include Google::Apis::Core::Hashable
1918
2121
 
1919
- # The list of rules specified by this firewall. Each rule specifies a protocol
1920
- # and port-range tuple that describes a permitted connection.
2122
+ # The list of ALLOW rules specified by this firewall. Each rule specifies a
2123
+ # protocol and port-range tuple that describes a permitted connection.
1921
2124
  # Corresponds to the JSON property `allowed`
1922
2125
  # @return [Array<Google::Apis::ComputeV1::Firewall::Allowed>]
1923
2126
  attr_accessor :allowed
@@ -1972,24 +2175,25 @@ module Google
1972
2175
  # @return [String]
1973
2176
  attr_accessor :self_link
1974
2177
 
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.
2178
+ # If source ranges are specified, the firewall will apply only to traffic that
2179
+ # has source IP address in these ranges. These ranges must be expressed in CIDR
2180
+ # format. One or both of sourceRanges and sourceTags may be set. If both
2181
+ # properties are set, the firewall will apply to traffic that has source IP
2182
+ # address within sourceRanges OR the source IP that belongs to a tag listed in
2183
+ # the sourceTags property. The connection does not need to match both properties
2184
+ # for the firewall to apply.
1980
2185
  # Corresponds to the JSON property `sourceRanges`
1981
2186
  # @return [Array<String>]
1982
2187
  attr_accessor :source_ranges
1983
2188
 
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.
2189
+ # If source tags are specified, the firewall will apply only to traffic with
2190
+ # source IP that belongs to a tag listed in source tags. Source tags cannot be
2191
+ # used to control traffic to an instance's external IP address. Because tags are
2192
+ # associated with an instance, not an IP address. One or both of sourceRanges
2193
+ # and sourceTags may be set. If both properties are set, the firewall will apply
2194
+ # to traffic that has source IP address within sourceRanges OR the source IP
2195
+ # that belongs to a tag listed in the sourceTags property. The connection does
2196
+ # not need to match both properties for the firewall to apply.
1993
2197
  # Corresponds to the JSON property `sourceTags`
1994
2198
  # @return [Array<String>]
1995
2199
  attr_accessor :source_tags
@@ -2025,17 +2229,17 @@ module Google
2025
2229
  class Allowed
2026
2230
  include Google::Apis::Core::Hashable
2027
2231
 
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.
2232
+ # The IP protocol to which this rule applies. The protocol type is required when
2233
+ # creating a firewall rule. This value can either be one of the following well
2234
+ # known protocol strings (tcp, udp, icmp, esp, ah, sctp), or the IP protocol
2235
+ # number.
2032
2236
  # Corresponds to the JSON property `IPProtocol`
2033
2237
  # @return [String]
2034
2238
  attr_accessor :ip_protocol
2035
2239
 
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
2240
+ # An optional list of ports to which this rule applies. This field is only
2241
+ # applicable for UDP or TCP protocol. Each entry must be either an integer or a
2242
+ # range. If not specified, this rule applies to connections through any port.
2039
2243
  # Example inputs include: ["22"], ["80","443"], and ["12345-12349"].
2040
2244
  # Corresponds to the JSON property `ports`
2041
2245
  # @return [Array<String>]
@@ -2108,17 +2312,23 @@ module Google
2108
2312
  class ForwardingRule
2109
2313
  include Google::Apis::Core::Hashable
2110
2314
 
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.
2315
+ # The IP address that this forwarding rule is serving on behalf of.
2316
+ # For global forwarding rules, the address must be a global IP; for regional
2317
+ # forwarding rules, the address must live in the same region as the forwarding
2318
+ # rule. By default, this field is empty and an ephemeral IP from the same scope (
2319
+ # global or regional) will be assigned.
2320
+ # When the load balancing scheme is INTERNAL, this can only be an RFC 1918 IP
2321
+ # address belonging to the network/subnetwork configured for the forwarding rule.
2322
+ # A reserved address cannot be used. If the field is empty, the IP address will
2323
+ # be automatically allocated from the internal IP range of the subnetwork or
2324
+ # network configured for this forwarding rule.
2116
2325
  # Corresponds to the JSON property `IPAddress`
2117
2326
  # @return [String]
2118
2327
  attr_accessor :ip_address
2119
2328
 
2120
2329
  # The IP protocol to which this rule applies. Valid options are TCP, UDP, ESP,
2121
2330
  # AH, SCTP or ICMP.
2331
+ # When the load balancing scheme is INTERNAL</code, only TCP and UDP are valid.
2122
2332
  # Corresponds to the JSON property `IPProtocol`
2123
2333
  # @return [String]
2124
2334
  attr_accessor :ip_protocol
@@ -2159,6 +2369,7 @@ module Google
2159
2369
  # Applicable only when IPProtocol is TCP, UDP, or SCTP, only packets addressed
2160
2370
  # to ports in the specified range will be forwarded to target. Forwarding rules
2161
2371
  # with the same [IPAddress, IPProtocol] pair must have disjoint port ranges.
2372
+ # This field is not used for internal load balancing.
2162
2373
  # Corresponds to the JSON property `portRange`
2163
2374
  # @return [String]
2164
2375
  attr_accessor :port_range
@@ -2180,6 +2391,7 @@ module Google
2180
2391
  # TargetHttpProxy or TargetHttpsProxy resource. The forwarded traffic must be of
2181
2392
  # a type appropriate to the target object. For example, TargetHttpProxy requires
2182
2393
  # HTTP traffic, and TargetHttpsProxy requires HTTPS traffic.
2394
+ # This field is not used for internal load balancing.
2183
2395
  # Corresponds to the JSON property `target`
2184
2396
  # @return [String]
2185
2397
  attr_accessor :target
@@ -2391,19 +2603,38 @@ module Google
2391
2603
  end
2392
2604
  end
2393
2605
 
2394
- # A full or valid partial URL to a health check. For example, the following are
2395
- # valid URLs:
2396
- # - https://www.googleapis.com/compute/beta/projects/project-id/global/
2397
- # httpHealthChecks/health-check
2398
- # - projects/project-id/global/httpHealthChecks/health-check
2399
- # - global/httpHealthChecks/health-check
2400
- class HealthCheckReference
2606
+ #
2607
+ class Http2HealthCheck
2401
2608
  include Google::Apis::Core::Hashable
2402
2609
 
2403
- #
2404
- # Corresponds to the JSON property `healthCheck`
2610
+ # The value of the host header in the HTTP/2 health check request. If left empty
2611
+ # (default value), the IP on behalf of which this health check is performed will
2612
+ # be used.
2613
+ # Corresponds to the JSON property `host`
2405
2614
  # @return [String]
2406
- attr_accessor :health_check
2615
+ attr_accessor :host
2616
+
2617
+ # The TCP port number for the health check request. The default value is 443.
2618
+ # Corresponds to the JSON property `port`
2619
+ # @return [Fixnum]
2620
+ attr_accessor :port
2621
+
2622
+ # Port name as defined in InstanceGroup#NamedPort#name. If both port and
2623
+ # port_name are defined, port takes precedence.
2624
+ # Corresponds to the JSON property `portName`
2625
+ # @return [String]
2626
+ attr_accessor :port_name
2627
+
2628
+ # Specifies the type of proxy header to append before sending data to the
2629
+ # backend, either NONE or PROXY_V1. The default is NONE.
2630
+ # Corresponds to the JSON property `proxyHeader`
2631
+ # @return [String]
2632
+ attr_accessor :proxy_header
2633
+
2634
+ # The request path of the HTTP/2 health check request. The default value is /.
2635
+ # Corresponds to the JSON property `requestPath`
2636
+ # @return [String]
2637
+ attr_accessor :request_path
2407
2638
 
2408
2639
  def initialize(**args)
2409
2640
  update!(**args)
@@ -2411,33 +2642,46 @@ module Google
2411
2642
 
2412
2643
  # Update properties of this object
2413
2644
  def update!(**args)
2414
- @health_check = args[:health_check] if args.key?(:health_check)
2645
+ @host = args[:host] if args.key?(:host)
2646
+ @port = args[:port] if args.key?(:port)
2647
+ @port_name = args[:port_name] if args.key?(:port_name)
2648
+ @proxy_header = args[:proxy_header] if args.key?(:proxy_header)
2649
+ @request_path = args[:request_path] if args.key?(:request_path)
2415
2650
  end
2416
2651
  end
2417
2652
 
2418
2653
  #
2419
- class HealthStatus
2654
+ class HttpHealthCheck
2420
2655
  include Google::Apis::Core::Hashable
2421
2656
 
2422
- # Health state of the instance.
2423
- # Corresponds to the JSON property `healthState`
2657
+ # The value of the host header in the HTTP health check request. If left empty (
2658
+ # default value), the IP on behalf of which this health check is performed will
2659
+ # be used.
2660
+ # Corresponds to the JSON property `host`
2424
2661
  # @return [String]
2425
- attr_accessor :health_state
2662
+ attr_accessor :host
2426
2663
 
2427
- # URL of the instance resource.
2428
- # Corresponds to the JSON property `instance`
2664
+ # The TCP port number for the health check request. The default value is 80.
2665
+ # Corresponds to the JSON property `port`
2666
+ # @return [Fixnum]
2667
+ attr_accessor :port
2668
+
2669
+ # Port name as defined in InstanceGroup#NamedPort#name. If both port and
2670
+ # port_name are defined, port takes precedence.
2671
+ # Corresponds to the JSON property `portName`
2429
2672
  # @return [String]
2430
- attr_accessor :instance
2673
+ attr_accessor :port_name
2431
2674
 
2432
- # The IP address represented by this resource.
2433
- # Corresponds to the JSON property `ipAddress`
2675
+ # Specifies the type of proxy header to append before sending data to the
2676
+ # backend, either NONE or PROXY_V1. The default is NONE.
2677
+ # Corresponds to the JSON property `proxyHeader`
2434
2678
  # @return [String]
2435
- attr_accessor :ip_address
2679
+ attr_accessor :proxy_header
2436
2680
 
2437
- # The port on the instance.
2438
- # Corresponds to the JSON property `port`
2439
- # @return [Fixnum]
2440
- attr_accessor :port
2681
+ # The request path of the HTTP health check request. The default value is /.
2682
+ # Corresponds to the JSON property `requestPath`
2683
+ # @return [String]
2684
+ attr_accessor :request_path
2441
2685
 
2442
2686
  def initialize(**args)
2443
2687
  update!(**args)
@@ -2445,36 +2689,46 @@ module Google
2445
2689
 
2446
2690
  # Update properties of this object
2447
2691
  def update!(**args)
2448
- @health_state = args[:health_state] if args.key?(:health_state)
2449
- @instance = args[:instance] if args.key?(:instance)
2450
- @ip_address = args[:ip_address] if args.key?(:ip_address)
2692
+ @host = args[:host] if args.key?(:host)
2451
2693
  @port = args[:port] if args.key?(:port)
2694
+ @port_name = args[:port_name] if args.key?(:port_name)
2695
+ @proxy_header = args[:proxy_header] if args.key?(:proxy_header)
2696
+ @request_path = args[:request_path] if args.key?(:request_path)
2452
2697
  end
2453
2698
  end
2454
2699
 
2455
- # UrlMaps A host-matching rule for a URL. If matched, will use the named
2456
- # PathMatcher to select the BackendService.
2457
- class HostRule
2700
+ #
2701
+ class HttpsHealthCheck
2458
2702
  include Google::Apis::Core::Hashable
2459
2703
 
2460
- # An optional description of this resource. Provide this property when you
2461
- # create the resource.
2462
- # Corresponds to the JSON property `description`
2704
+ # The value of the host header in the HTTPS health check request. If left empty (
2705
+ # default value), the IP on behalf of which this health check is performed will
2706
+ # be used.
2707
+ # Corresponds to the JSON property `host`
2463
2708
  # @return [String]
2464
- attr_accessor :description
2709
+ attr_accessor :host
2465
2710
 
2466
- # The list of host patterns to match. They must be valid hostnames, except *
2467
- # will match any string of ([a-z0-9-.]*). In that case, * must be the first
2468
- # character and must be followed in the pattern by either - or ..
2469
- # Corresponds to the JSON property `hosts`
2470
- # @return [Array<String>]
2471
- attr_accessor :hosts
2711
+ # The TCP port number for the health check request. The default value is 443.
2712
+ # Corresponds to the JSON property `port`
2713
+ # @return [Fixnum]
2714
+ attr_accessor :port
2472
2715
 
2473
- # The name of the PathMatcher to use to match the path portion of the URL if the
2474
- # hostRule matches the URL's host portion.
2475
- # Corresponds to the JSON property `pathMatcher`
2716
+ # Port name as defined in InstanceGroup#NamedPort#name. If both port and
2717
+ # port_name are defined, port takes precedence.
2718
+ # Corresponds to the JSON property `portName`
2476
2719
  # @return [String]
2477
- attr_accessor :path_matcher
2720
+ attr_accessor :port_name
2721
+
2722
+ # Specifies the type of proxy header to append before sending data to the
2723
+ # backend, either NONE or PROXY_V1. The default is NONE.
2724
+ # Corresponds to the JSON property `proxyHeader`
2725
+ # @return [String]
2726
+ attr_accessor :proxy_header
2727
+
2728
+ # The request path of the HTTPS health check request. The default value is /.
2729
+ # Corresponds to the JSON property `requestPath`
2730
+ # @return [String]
2731
+ attr_accessor :request_path
2478
2732
 
2479
2733
  def initialize(**args)
2480
2734
  update!(**args)
@@ -2482,15 +2736,18 @@ module Google
2482
2736
 
2483
2737
  # Update properties of this object
2484
2738
  def update!(**args)
2485
- @description = args[:description] if args.key?(:description)
2486
- @hosts = args[:hosts] if args.key?(:hosts)
2487
- @path_matcher = args[:path_matcher] if args.key?(:path_matcher)
2739
+ @host = args[:host] if args.key?(:host)
2740
+ @port = args[:port] if args.key?(:port)
2741
+ @port_name = args[:port_name] if args.key?(:port_name)
2742
+ @proxy_header = args[:proxy_header] if args.key?(:proxy_header)
2743
+ @request_path = args[:request_path] if args.key?(:request_path)
2488
2744
  end
2489
2745
  end
2490
2746
 
2491
- # An HttpHealthCheck resource. This resource defines a template for how
2492
- # individual instances should be checked for health, via HTTP.
2493
- class HttpHealthCheck
2747
+ # An HealthCheck resource. This resource defines a template for how individual
2748
+ # virtual machines should be checked for health, via one of the supported
2749
+ # protocols.
2750
+ class HealthCheck
2494
2751
  include Google::Apis::Core::Hashable
2495
2752
 
2496
2753
  # How often (in seconds) to send a health check. The default value is 5 seconds.
@@ -2498,7 +2755,7 @@ module Google
2498
2755
  # @return [Fixnum]
2499
2756
  attr_accessor :check_interval_sec
2500
2757
 
2501
- # [Output Only] Creation timestamp in RFC3339 text format.
2758
+ # [Output Only] Creation timestamp in 3339 text format.
2502
2759
  # Corresponds to the JSON property `creationTimestamp`
2503
2760
  # @return [String]
2504
2761
  attr_accessor :creation_timestamp
@@ -2515,12 +2772,20 @@ module Google
2515
2772
  # @return [Fixnum]
2516
2773
  attr_accessor :healthy_threshold
2517
2774
 
2518
- # The value of the host header in the HTTP health check request. If left empty (
2519
- # default value), the public IP on behalf of which this health check is
2520
- # performed will be used.
2521
- # Corresponds to the JSON property `host`
2522
- # @return [String]
2523
- attr_accessor :host
2775
+ #
2776
+ # Corresponds to the JSON property `http2HealthCheck`
2777
+ # @return [Google::Apis::ComputeV1::Http2HealthCheck]
2778
+ attr_accessor :http2_health_check
2779
+
2780
+ #
2781
+ # Corresponds to the JSON property `httpHealthCheck`
2782
+ # @return [Google::Apis::ComputeV1::HttpHealthCheck]
2783
+ attr_accessor :http_health_check
2784
+
2785
+ #
2786
+ # Corresponds to the JSON property `httpsHealthCheck`
2787
+ # @return [Google::Apis::ComputeV1::HttpsHealthCheck]
2788
+ attr_accessor :https_health_check
2524
2789
 
2525
2790
  # [Output Only] The unique identifier for the resource. This identifier is
2526
2791
  # defined by the server.
@@ -2528,8 +2793,7 @@ module Google
2528
2793
  # @return [String]
2529
2794
  attr_accessor :id
2530
2795
 
2531
- # [Output Only] Type of the resource. Always compute#httpHealthCheck for HTTP
2532
- # health checks.
2796
+ # Type of the resource.
2533
2797
  # Corresponds to the JSON property `kind`
2534
2798
  # @return [String]
2535
2799
  attr_accessor :kind
@@ -2544,21 +2808,21 @@ module Google
2544
2808
  # @return [String]
2545
2809
  attr_accessor :name
2546
2810
 
2547
- # The TCP port number for the HTTP health check request. The default value is 80.
2548
- # Corresponds to the JSON property `port`
2549
- # @return [Fixnum]
2550
- attr_accessor :port
2551
-
2552
- # The request path of the HTTP health check request. The default value is /.
2553
- # Corresponds to the JSON property `requestPath`
2554
- # @return [String]
2555
- attr_accessor :request_path
2556
-
2557
2811
  # [Output Only] Server-defined URL for the resource.
2558
2812
  # Corresponds to the JSON property `selfLink`
2559
2813
  # @return [String]
2560
2814
  attr_accessor :self_link
2561
2815
 
2816
+ #
2817
+ # Corresponds to the JSON property `sslHealthCheck`
2818
+ # @return [Google::Apis::ComputeV1::SslHealthCheck]
2819
+ attr_accessor :ssl_health_check
2820
+
2821
+ #
2822
+ # Corresponds to the JSON property `tcpHealthCheck`
2823
+ # @return [Google::Apis::ComputeV1::TcpHealthCheck]
2824
+ attr_accessor :tcp_health_check
2825
+
2562
2826
  # How long (in seconds) to wait before claiming failure. The default value is 5
2563
2827
  # seconds. It is invalid for timeoutSec to have greater value than
2564
2828
  # checkIntervalSec.
@@ -2566,6 +2830,13 @@ module Google
2566
2830
  # @return [Fixnum]
2567
2831
  attr_accessor :timeout_sec
2568
2832
 
2833
+ # Specifies the type of the healthCheck, either TCP, UDP, SSL, HTTP, HTTPS or
2834
+ # HTTP2. If not specified, the default is TCP. Exactly one of the protocol-
2835
+ # specific health check field must be specified, which must match type field.
2836
+ # Corresponds to the JSON property `type`
2837
+ # @return [String]
2838
+ attr_accessor :type
2839
+
2569
2840
  # A so-far healthy instance will be marked unhealthy after this many consecutive
2570
2841
  # failures. The default value is 2.
2571
2842
  # Corresponds to the JSON property `unhealthyThreshold`
@@ -2582,30 +2853,34 @@ module Google
2582
2853
  @creation_timestamp = args[:creation_timestamp] if args.key?(:creation_timestamp)
2583
2854
  @description = args[:description] if args.key?(:description)
2584
2855
  @healthy_threshold = args[:healthy_threshold] if args.key?(:healthy_threshold)
2585
- @host = args[:host] if args.key?(:host)
2856
+ @http2_health_check = args[:http2_health_check] if args.key?(:http2_health_check)
2857
+ @http_health_check = args[:http_health_check] if args.key?(:http_health_check)
2858
+ @https_health_check = args[:https_health_check] if args.key?(:https_health_check)
2586
2859
  @id = args[:id] if args.key?(:id)
2587
2860
  @kind = args[:kind] if args.key?(:kind)
2588
2861
  @name = args[:name] if args.key?(:name)
2589
- @port = args[:port] if args.key?(:port)
2590
- @request_path = args[:request_path] if args.key?(:request_path)
2591
2862
  @self_link = args[:self_link] if args.key?(:self_link)
2863
+ @ssl_health_check = args[:ssl_health_check] if args.key?(:ssl_health_check)
2864
+ @tcp_health_check = args[:tcp_health_check] if args.key?(:tcp_health_check)
2592
2865
  @timeout_sec = args[:timeout_sec] if args.key?(:timeout_sec)
2866
+ @type = args[:type] if args.key?(:type)
2593
2867
  @unhealthy_threshold = args[:unhealthy_threshold] if args.key?(:unhealthy_threshold)
2594
2868
  end
2595
2869
  end
2596
2870
 
2597
- # Contains a list of HttpHealthCheck resources.
2598
- class HttpHealthCheckList
2871
+ # Contains a list of HealthCheck resources.
2872
+ class HealthCheckList
2599
2873
  include Google::Apis::Core::Hashable
2600
2874
 
2601
- # [Output Only] Unique identifier for the resource. Defined by the server.
2875
+ # [Output Only] The unique identifier for the resource. This identifier is
2876
+ # defined by the server.
2602
2877
  # Corresponds to the JSON property `id`
2603
2878
  # @return [String]
2604
2879
  attr_accessor :id
2605
2880
 
2606
- # A list of HttpHealthCheck resources.
2881
+ # A list of HealthCheck resources.
2607
2882
  # Corresponds to the JSON property `items`
2608
- # @return [Array<Google::Apis::ComputeV1::HttpHealthCheck>]
2883
+ # @return [Array<Google::Apis::ComputeV1::HealthCheck>]
2609
2884
  attr_accessor :items
2610
2885
 
2611
2886
  # Type of resource.
@@ -2641,8 +2916,258 @@ module Google
2641
2916
  end
2642
2917
  end
2643
2918
 
2644
- # An HttpsHealthCheck resource. This resource defines a template for how
2645
- # individual instances should be checked for health, via HTTPS.
2919
+ # A full or valid partial URL to a health check. For example, the following are
2920
+ # valid URLs:
2921
+ # - https://www.googleapis.com/compute/beta/projects/project-id/global/
2922
+ # httpHealthChecks/health-check
2923
+ # - projects/project-id/global/httpHealthChecks/health-check
2924
+ # - global/httpHealthChecks/health-check
2925
+ class HealthCheckReference
2926
+ include Google::Apis::Core::Hashable
2927
+
2928
+ #
2929
+ # Corresponds to the JSON property `healthCheck`
2930
+ # @return [String]
2931
+ attr_accessor :health_check
2932
+
2933
+ def initialize(**args)
2934
+ update!(**args)
2935
+ end
2936
+
2937
+ # Update properties of this object
2938
+ def update!(**args)
2939
+ @health_check = args[:health_check] if args.key?(:health_check)
2940
+ end
2941
+ end
2942
+
2943
+ #
2944
+ class HealthStatus
2945
+ include Google::Apis::Core::Hashable
2946
+
2947
+ # Health state of the instance.
2948
+ # Corresponds to the JSON property `healthState`
2949
+ # @return [String]
2950
+ attr_accessor :health_state
2951
+
2952
+ # URL of the instance resource.
2953
+ # Corresponds to the JSON property `instance`
2954
+ # @return [String]
2955
+ attr_accessor :instance
2956
+
2957
+ # The IP address represented by this resource.
2958
+ # Corresponds to the JSON property `ipAddress`
2959
+ # @return [String]
2960
+ attr_accessor :ip_address
2961
+
2962
+ # The port on the instance.
2963
+ # Corresponds to the JSON property `port`
2964
+ # @return [Fixnum]
2965
+ attr_accessor :port
2966
+
2967
+ def initialize(**args)
2968
+ update!(**args)
2969
+ end
2970
+
2971
+ # Update properties of this object
2972
+ def update!(**args)
2973
+ @health_state = args[:health_state] if args.key?(:health_state)
2974
+ @instance = args[:instance] if args.key?(:instance)
2975
+ @ip_address = args[:ip_address] if args.key?(:ip_address)
2976
+ @port = args[:port] if args.key?(:port)
2977
+ end
2978
+ end
2979
+
2980
+ # UrlMaps A host-matching rule for a URL. If matched, will use the named
2981
+ # PathMatcher to select the BackendService.
2982
+ class HostRule
2983
+ include Google::Apis::Core::Hashable
2984
+
2985
+ # An optional description of this resource. Provide this property when you
2986
+ # create the resource.
2987
+ # Corresponds to the JSON property `description`
2988
+ # @return [String]
2989
+ attr_accessor :description
2990
+
2991
+ # The list of host patterns to match. They must be valid hostnames, except *
2992
+ # will match any string of ([a-z0-9-.]*). In that case, * must be the first
2993
+ # character and must be followed in the pattern by either - or ..
2994
+ # Corresponds to the JSON property `hosts`
2995
+ # @return [Array<String>]
2996
+ attr_accessor :hosts
2997
+
2998
+ # The name of the PathMatcher to use to match the path portion of the URL if the
2999
+ # hostRule matches the URL's host portion.
3000
+ # Corresponds to the JSON property `pathMatcher`
3001
+ # @return [String]
3002
+ attr_accessor :path_matcher
3003
+
3004
+ def initialize(**args)
3005
+ update!(**args)
3006
+ end
3007
+
3008
+ # Update properties of this object
3009
+ def update!(**args)
3010
+ @description = args[:description] if args.key?(:description)
3011
+ @hosts = args[:hosts] if args.key?(:hosts)
3012
+ @path_matcher = args[:path_matcher] if args.key?(:path_matcher)
3013
+ end
3014
+ end
3015
+
3016
+ # An HttpHealthCheck resource. This resource defines a template for how
3017
+ # individual instances should be checked for health, via HTTP.
3018
+ class HttpHealthCheck
3019
+ include Google::Apis::Core::Hashable
3020
+
3021
+ # How often (in seconds) to send a health check. The default value is 5 seconds.
3022
+ # Corresponds to the JSON property `checkIntervalSec`
3023
+ # @return [Fixnum]
3024
+ attr_accessor :check_interval_sec
3025
+
3026
+ # [Output Only] Creation timestamp in RFC3339 text format.
3027
+ # Corresponds to the JSON property `creationTimestamp`
3028
+ # @return [String]
3029
+ attr_accessor :creation_timestamp
3030
+
3031
+ # An optional description of this resource. Provide this property when you
3032
+ # create the resource.
3033
+ # Corresponds to the JSON property `description`
3034
+ # @return [String]
3035
+ attr_accessor :description
3036
+
3037
+ # A so-far unhealthy instance will be marked healthy after this many consecutive
3038
+ # successes. The default value is 2.
3039
+ # Corresponds to the JSON property `healthyThreshold`
3040
+ # @return [Fixnum]
3041
+ attr_accessor :healthy_threshold
3042
+
3043
+ # The value of the host header in the HTTP health check request. If left empty (
3044
+ # default value), the public IP on behalf of which this health check is
3045
+ # performed will be used.
3046
+ # Corresponds to the JSON property `host`
3047
+ # @return [String]
3048
+ attr_accessor :host
3049
+
3050
+ # [Output Only] The unique identifier for the resource. This identifier is
3051
+ # defined by the server.
3052
+ # Corresponds to the JSON property `id`
3053
+ # @return [String]
3054
+ attr_accessor :id
3055
+
3056
+ # [Output Only] Type of the resource. Always compute#httpHealthCheck for HTTP
3057
+ # health checks.
3058
+ # Corresponds to the JSON property `kind`
3059
+ # @return [String]
3060
+ attr_accessor :kind
3061
+
3062
+ # Name of the resource. Provided by the client when the resource is created. The
3063
+ # name must be 1-63 characters long, and comply with RFC1035. Specifically, the
3064
+ # name must be 1-63 characters long and match the regular expression [a-z]([-a-
3065
+ # z0-9]*[a-z0-9])? which means the first character must be a lowercase letter,
3066
+ # and all following characters must be a dash, lowercase letter, or digit,
3067
+ # except the last character, which cannot be a dash.
3068
+ # Corresponds to the JSON property `name`
3069
+ # @return [String]
3070
+ attr_accessor :name
3071
+
3072
+ # The TCP port number for the HTTP health check request. The default value is 80.
3073
+ # Corresponds to the JSON property `port`
3074
+ # @return [Fixnum]
3075
+ attr_accessor :port
3076
+
3077
+ # The request path of the HTTP health check request. The default value is /.
3078
+ # Corresponds to the JSON property `requestPath`
3079
+ # @return [String]
3080
+ attr_accessor :request_path
3081
+
3082
+ # [Output Only] Server-defined URL for the resource.
3083
+ # Corresponds to the JSON property `selfLink`
3084
+ # @return [String]
3085
+ attr_accessor :self_link
3086
+
3087
+ # How long (in seconds) to wait before claiming failure. The default value is 5
3088
+ # seconds. It is invalid for timeoutSec to have greater value than
3089
+ # checkIntervalSec.
3090
+ # Corresponds to the JSON property `timeoutSec`
3091
+ # @return [Fixnum]
3092
+ attr_accessor :timeout_sec
3093
+
3094
+ # A so-far healthy instance will be marked unhealthy after this many consecutive
3095
+ # failures. The default value is 2.
3096
+ # Corresponds to the JSON property `unhealthyThreshold`
3097
+ # @return [Fixnum]
3098
+ attr_accessor :unhealthy_threshold
3099
+
3100
+ def initialize(**args)
3101
+ update!(**args)
3102
+ end
3103
+
3104
+ # Update properties of this object
3105
+ def update!(**args)
3106
+ @check_interval_sec = args[:check_interval_sec] if args.key?(:check_interval_sec)
3107
+ @creation_timestamp = args[:creation_timestamp] if args.key?(:creation_timestamp)
3108
+ @description = args[:description] if args.key?(:description)
3109
+ @healthy_threshold = args[:healthy_threshold] if args.key?(:healthy_threshold)
3110
+ @host = args[:host] if args.key?(:host)
3111
+ @id = args[:id] if args.key?(:id)
3112
+ @kind = args[:kind] if args.key?(:kind)
3113
+ @name = args[:name] if args.key?(:name)
3114
+ @port = args[:port] if args.key?(:port)
3115
+ @request_path = args[:request_path] if args.key?(:request_path)
3116
+ @self_link = args[:self_link] if args.key?(:self_link)
3117
+ @timeout_sec = args[:timeout_sec] if args.key?(:timeout_sec)
3118
+ @unhealthy_threshold = args[:unhealthy_threshold] if args.key?(:unhealthy_threshold)
3119
+ end
3120
+ end
3121
+
3122
+ # Contains a list of HttpHealthCheck resources.
3123
+ class HttpHealthCheckList
3124
+ include Google::Apis::Core::Hashable
3125
+
3126
+ # [Output Only] Unique identifier for the resource. Defined by the server.
3127
+ # Corresponds to the JSON property `id`
3128
+ # @return [String]
3129
+ attr_accessor :id
3130
+
3131
+ # A list of HttpHealthCheck resources.
3132
+ # Corresponds to the JSON property `items`
3133
+ # @return [Array<Google::Apis::ComputeV1::HttpHealthCheck>]
3134
+ attr_accessor :items
3135
+
3136
+ # Type of resource.
3137
+ # Corresponds to the JSON property `kind`
3138
+ # @return [String]
3139
+ attr_accessor :kind
3140
+
3141
+ # [Output Only] This token allows you to get the next page of results for list
3142
+ # requests. If the number of results is larger than maxResults, use the
3143
+ # nextPageToken as a value for the query parameter pageToken in the next list
3144
+ # request. Subsequent list requests will have their own nextPageToken to
3145
+ # continue paging through the results.
3146
+ # Corresponds to the JSON property `nextPageToken`
3147
+ # @return [String]
3148
+ attr_accessor :next_page_token
3149
+
3150
+ # [Output Only] Server-defined URL for this resource.
3151
+ # Corresponds to the JSON property `selfLink`
3152
+ # @return [String]
3153
+ attr_accessor :self_link
3154
+
3155
+ def initialize(**args)
3156
+ update!(**args)
3157
+ end
3158
+
3159
+ # Update properties of this object
3160
+ def update!(**args)
3161
+ @id = args[:id] if args.key?(:id)
3162
+ @items = args[:items] if args.key?(:items)
3163
+ @kind = args[:kind] if args.key?(:kind)
3164
+ @next_page_token = args[:next_page_token] if args.key?(:next_page_token)
3165
+ @self_link = args[:self_link] if args.key?(:self_link)
3166
+ end
3167
+ end
3168
+
3169
+ # An HttpsHealthCheck resource. This resource defines a template for how
3170
+ # individual instances should be checked for health, via HTTPS.
2646
3171
  class HttpsHealthCheck
2647
3172
  include Google::Apis::Core::Hashable
2648
3173
 
@@ -2826,7 +3351,8 @@ module Google
2826
3351
 
2827
3352
  # The name of the image family to which this image belongs. You can create disks
2828
3353
  # by specifying an image family instead of a specific image name. The image
2829
- # family always returns its latest image that is not deprecated.
3354
+ # family always returns its latest image that is not deprecated. The name of the
3355
+ # image family must comply with RFC1035.
2830
3356
  # Corresponds to the JSON property `family`
2831
3357
  # @return [String]
2832
3358
  attr_accessor :family
@@ -2837,12 +3363,17 @@ module Google
2837
3363
  # @return [String]
2838
3364
  attr_accessor :id
2839
3365
 
3366
+ # Represents a customer-supplied encryption key
3367
+ # Corresponds to the JSON property `imageEncryptionKey`
3368
+ # @return [Google::Apis::ComputeV1::CustomerEncryptionKey]
3369
+ attr_accessor :image_encryption_key
3370
+
2840
3371
  # [Output Only] Type of the resource. Always compute#image for images.
2841
3372
  # Corresponds to the JSON property `kind`
2842
3373
  # @return [String]
2843
3374
  attr_accessor :kind
2844
3375
 
2845
- # Any applicable publicly visible licenses.
3376
+ # Any applicable license URI.
2846
3377
  # Corresponds to the JSON property `licenses`
2847
3378
  # @return [Array<String>]
2848
3379
  attr_accessor :licenses
@@ -2871,13 +3402,18 @@ module Google
2871
3402
  # valid partial URL. You must provide either this property or the rawDisk.source
2872
3403
  # property but not both to create an image. For example, the following are valid
2873
3404
  # values:
2874
- # - https://www.googleapis.com/compute/v1/projects/project/zones/zone/disk/disk
2875
- # - projects/project/zones/zone/disk/disk
3405
+ # - https://www.googleapis.com/compute/v1/projects/project/zones/zone/disks/disk
3406
+ # - projects/project/zones/zone/disks/disk
2876
3407
  # - zones/zone/disks/disk
2877
3408
  # Corresponds to the JSON property `sourceDisk`
2878
3409
  # @return [String]
2879
3410
  attr_accessor :source_disk
2880
3411
 
3412
+ # Represents a customer-supplied encryption key
3413
+ # Corresponds to the JSON property `sourceDiskEncryptionKey`
3414
+ # @return [Google::Apis::ComputeV1::CustomerEncryptionKey]
3415
+ attr_accessor :source_disk_encryption_key
3416
+
2881
3417
  # The ID value of the disk used to create this image. This value may be used to
2882
3418
  # determine whether the image was taken from the current or a previous instance
2883
3419
  # of a given disk name.
@@ -2912,12 +3448,14 @@ module Google
2912
3448
  @disk_size_gb = args[:disk_size_gb] if args.key?(:disk_size_gb)
2913
3449
  @family = args[:family] if args.key?(:family)
2914
3450
  @id = args[:id] if args.key?(:id)
3451
+ @image_encryption_key = args[:image_encryption_key] if args.key?(:image_encryption_key)
2915
3452
  @kind = args[:kind] if args.key?(:kind)
2916
3453
  @licenses = args[:licenses] if args.key?(:licenses)
2917
3454
  @name = args[:name] if args.key?(:name)
2918
3455
  @raw_disk = args[:raw_disk] if args.key?(:raw_disk)
2919
3456
  @self_link = args[:self_link] if args.key?(:self_link)
2920
3457
  @source_disk = args[:source_disk] if args.key?(:source_disk)
3458
+ @source_disk_encryption_key = args[:source_disk_encryption_key] if args.key?(:source_disk_encryption_key)
2921
3459
  @source_disk_id = args[:source_disk_id] if args.key?(:source_disk_id)
2922
3460
  @source_type = args[:source_type] if args.key?(:source_type)
2923
3461
  @status = args[:status] if args.key?(:status)
@@ -3086,7 +3624,7 @@ module Google
3086
3624
 
3087
3625
  # An array of configurations for this interface. This specifies how this
3088
3626
  # interface is configured to interact with other network services, such as
3089
- # connecting to the internet.
3627
+ # connecting to the internet. Only one interface is supported per instance.
3090
3628
  # Corresponds to the JSON property `networkInterfaces`
3091
3629
  # @return [Array<Google::Apis::ComputeV1::NetworkInterface>]
3092
3630
  attr_accessor :network_interfaces
@@ -3104,13 +3642,14 @@ module Google
3104
3642
  # A list of service accounts, with their specified scopes, authorized for this
3105
3643
  # instance. Service accounts generate access tokens that can be accessed through
3106
3644
  # the metadata server and used to authenticate applications on the instance. See
3107
- # Authenticating from Google Compute Engine for more information.
3645
+ # Service Accounts for more information.
3108
3646
  # Corresponds to the JSON property `serviceAccounts`
3109
3647
  # @return [Array<Google::Apis::ComputeV1::ServiceAccount>]
3110
3648
  attr_accessor :service_accounts
3111
3649
 
3112
3650
  # [Output Only] The status of the instance. One of the following values:
3113
- # PROVISIONING, STAGING, RUNNING, STOPPING, and TERMINATED.
3651
+ # PROVISIONING, STAGING, RUNNING, STOPPING, SUSPENDING, SUSPENDED, and
3652
+ # TERMINATED.
3114
3653
  # Corresponds to the JSON property `status`
3115
3654
  # @return [String]
3116
3655
  attr_accessor :status
@@ -3229,8 +3768,8 @@ module Google
3229
3768
  # @return [String]
3230
3769
  attr_accessor :fingerprint
3231
3770
 
3232
- # [Output Only] A unique identifier for this resource type. The server generates
3233
- # this identifier.
3771
+ # [Output Only] A unique identifier for this instance group, generated by the
3772
+ # server.
3234
3773
  # Corresponds to the JSON property `id`
3235
3774
  # @return [String]
3236
3775
  attr_accessor :id
@@ -3261,6 +3800,12 @@ module Google
3261
3800
  # @return [String]
3262
3801
  attr_accessor :network
3263
3802
 
3803
+ # The URL of the region where the instance group is located (for regional
3804
+ # resources).
3805
+ # Corresponds to the JSON property `region`
3806
+ # @return [String]
3807
+ attr_accessor :region
3808
+
3264
3809
  # [Output Only] The URL for this instance group. The server generates this URL.
3265
3810
  # Corresponds to the JSON property `selfLink`
3266
3811
  # @return [String]
@@ -3276,7 +3821,8 @@ module Google
3276
3821
  # @return [String]
3277
3822
  attr_accessor :subnetwork
3278
3823
 
3279
- # [Output Only] The URL of the zone where the instance group is located.
3824
+ # [Output Only] The URL of the zone where the instance group is located (for
3825
+ # zonal resources).
3280
3826
  # Corresponds to the JSON property `zone`
3281
3827
  # @return [String]
3282
3828
  attr_accessor :zone
@@ -3295,6 +3841,7 @@ module Google
3295
3841
  @name = args[:name] if args.key?(:name)
3296
3842
  @named_ports = args[:named_ports] if args.key?(:named_ports)
3297
3843
  @network = args[:network] if args.key?(:network)
3844
+ @region = args[:region] if args.key?(:region)
3298
3845
  @self_link = args[:self_link] if args.key?(:self_link)
3299
3846
  @size = args[:size] if args.key?(:size)
3300
3847
  @subnetwork = args[:subnetwork] if args.key?(:subnetwork)
@@ -3400,7 +3947,7 @@ module Google
3400
3947
  end
3401
3948
  end
3402
3949
 
3403
- #
3950
+ # An Instance Group Manager resource.
3404
3951
  class InstanceGroupManager
3405
3952
  include Google::Apis::Core::Hashable
3406
3953
 
@@ -3472,6 +4019,12 @@ module Google
3472
4019
  # @return [Array<Google::Apis::ComputeV1::NamedPort>]
3473
4020
  attr_accessor :named_ports
3474
4021
 
4022
+ # [Output Only] The URL of the region where the managed instance group resides (
4023
+ # for regional resources).
4024
+ # Corresponds to the JSON property `region`
4025
+ # @return [String]
4026
+ attr_accessor :region
4027
+
3475
4028
  # [Output Only] The URL for this managed instance group. The server defines this
3476
4029
  # URL.
3477
4030
  # Corresponds to the JSON property `selfLink`
@@ -3492,7 +4045,8 @@ module Google
3492
4045
  # @return [Fixnum]
3493
4046
  attr_accessor :target_size
3494
4047
 
3495
- # The name of the zone where the managed instance group is located.
4048
+ # [Output Only] The URL of the zone where the managed instance group is located (
4049
+ # for zonal resources).
3496
4050
  # Corresponds to the JSON property `zone`
3497
4051
  # @return [String]
3498
4052
  attr_accessor :zone
@@ -3514,6 +4068,7 @@ module Google
3514
4068
  @kind = args[:kind] if args.key?(:kind)
3515
4069
  @name = args[:name] if args.key?(:name)
3516
4070
  @named_ports = args[:named_ports] if args.key?(:named_ports)
4071
+ @region = args[:region] if args.key?(:region)
3517
4072
  @self_link = args[:self_link] if args.key?(:self_link)
3518
4073
  @target_pools = args[:target_pools] if args.key?(:target_pools)
3519
4074
  @target_size = args[:target_size] if args.key?(:target_size)
@@ -3534,12 +4089,22 @@ module Google
3534
4089
 
3535
4090
  # [Output Only] The number of instances in the managed instance group that are
3536
4091
  # 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
4092
+ # create any of these instances, it tries again until it creates the instance
3538
4093
  # successfully.
4094
+ # If you have disabled creation retries, this field will not be populated;
4095
+ # instead, the creatingWithoutRetries field will be populated.
3539
4096
  # Corresponds to the JSON property `creating`
3540
4097
  # @return [Fixnum]
3541
4098
  attr_accessor :creating
3542
4099
 
4100
+ # [Output Only] The number of instances that the managed instance group will
4101
+ # attempt to create. The group attempts to create each instance only once. If
4102
+ # the group fails to create any of these instances, it decreases the group's
4103
+ # targetSize value accordingly.
4104
+ # Corresponds to the JSON property `creatingWithoutRetries`
4105
+ # @return [Fixnum]
4106
+ attr_accessor :creating_without_retries
4107
+
3543
4108
  # [Output Only] The number of instances in the managed instance group that are
3544
4109
  # scheduled to be deleted or are currently being deleted.
3545
4110
  # Corresponds to the JSON property `deleting`
@@ -3581,6 +4146,7 @@ module Google
3581
4146
  def update!(**args)
3582
4147
  @abandoning = args[:abandoning] if args.key?(:abandoning)
3583
4148
  @creating = args[:creating] if args.key?(:creating)
4149
+ @creating_without_retries = args[:creating_without_retries] if args.key?(:creating_without_retries)
3584
4150
  @deleting = args[:deleting] if args.key?(:deleting)
3585
4151
  @none = args[:none] if args.key?(:none)
3586
4152
  @recreating = args[:recreating] if args.key?(:recreating)
@@ -3669,7 +4235,7 @@ module Google
3669
4235
  # @return [String]
3670
4236
  attr_accessor :next_page_token
3671
4237
 
3672
- # [Output Only] The URL for this resource type. The server generates this URL.
4238
+ # [Output Only] Server-defined URL for this resource.
3673
4239
  # Corresponds to the JSON property `selfLink`
3674
4240
  # @return [String]
3675
4241
  attr_accessor :self_link
@@ -3933,8 +4499,8 @@ module Google
3933
4499
  class InstanceGroupsListInstances
3934
4500
  include Google::Apis::Core::Hashable
3935
4501
 
3936
- # [Output Only] A unique identifier for this list of instance groups. The server
3937
- # generates this identifier.
4502
+ # [Output Only] A unique identifier for this list of instances in the specified
4503
+ # instance group. The server generates this identifier.
3938
4504
  # Corresponds to the JSON property `id`
3939
4505
  # @return [String]
3940
4506
  attr_accessor :id
@@ -3946,7 +4512,8 @@ module Google
3946
4512
  attr_accessor :items
3947
4513
 
3948
4514
  # [Output Only] The resource type, which is always compute#
3949
- # instanceGroupsListInstances for lists of instance groups.
4515
+ # instanceGroupsListInstances for the list of instances in the specified
4516
+ # instance group.
3950
4517
  # Corresponds to the JSON property `kind`
3951
4518
  # @return [String]
3952
4519
  attr_accessor :kind
@@ -3960,8 +4527,8 @@ module Google
3960
4527
  # @return [String]
3961
4528
  attr_accessor :next_page_token
3962
4529
 
3963
- # [Output Only] The URL for this list of instance groups. The server generates
3964
- # this URL.
4530
+ # [Output Only] The URL for this list of instances in the specified instance
4531
+ # groups. The server generates this URL.
3965
4532
  # Corresponds to the JSON property `selfLink`
3966
4533
  # @return [String]
3967
4534
  attr_accessor :self_link
@@ -4232,8 +4799,8 @@ module Google
4232
4799
  # IP addresses other than their own and receive packets with destination IP
4233
4800
  # addresses other than their own. If these instances will be used as an IP
4234
4801
  # 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.
4802
+ # If unsure, leave this set to false. See the Enable IP forwarding for instances
4803
+ # documentation for more information.
4237
4804
  # Corresponds to the JSON property `canIpForward`
4238
4805
  # @return [Boolean]
4239
4806
  attr_accessor :can_ip_forward
@@ -4577,6 +5144,30 @@ module Google
4577
5144
  end
4578
5145
  end
4579
5146
 
5147
+ #
5148
+ class InstancesStartWithEncryptionKeyRequest
5149
+ include Google::Apis::Core::Hashable
5150
+
5151
+ # Array of disks associated with this instance that are protected with a
5152
+ # customer-supplied encryption key.
5153
+ # In order to start the instance, the disk url and its corresponding key must be
5154
+ # provided.
5155
+ # If the disk is not protected with a customer-supplied encryption key it should
5156
+ # not be specified.
5157
+ # Corresponds to the JSON property `disks`
5158
+ # @return [Array<Google::Apis::ComputeV1::CustomerEncryptionKeyProtectedDisk>]
5159
+ attr_accessor :disks
5160
+
5161
+ def initialize(**args)
5162
+ update!(**args)
5163
+ end
5164
+
5165
+ # Update properties of this object
5166
+ def update!(**args)
5167
+ @disks = args[:disks] if args.key?(:disks)
5168
+ end
5169
+ end
5170
+
4580
5171
  # A license resource.
4581
5172
  class License
4582
5173
  include Google::Apis::Core::Hashable
@@ -4653,6 +5244,13 @@ module Google
4653
5244
  # @return [Fixnum]
4654
5245
  attr_accessor :image_space_gb
4655
5246
 
5247
+ # [Output Only] Whether this machine type has a shared CPU. See Shared-core
5248
+ # machine types for more information.
5249
+ # Corresponds to the JSON property `isSharedCpu`
5250
+ # @return [Boolean]
5251
+ attr_accessor :is_shared_cpu
5252
+ alias_method :is_shared_cpu?, :is_shared_cpu
5253
+
4656
5254
  # [Output Only] The type of the resource. Always compute#machineType for machine
4657
5255
  # types.
4658
5256
  # Corresponds to the JSON property `kind`
@@ -4708,6 +5306,7 @@ module Google
4708
5306
  @guest_cpus = args[:guest_cpus] if args.key?(:guest_cpus)
4709
5307
  @id = args[:id] if args.key?(:id)
4710
5308
  @image_space_gb = args[:image_space_gb] if args.key?(:image_space_gb)
5309
+ @is_shared_cpu = args[:is_shared_cpu] if args.key?(:is_shared_cpu)
4711
5310
  @kind = args[:kind] if args.key?(:kind)
4712
5311
  @maximum_persistent_disks = args[:maximum_persistent_disks] if args.key?(:maximum_persistent_disks)
4713
5312
  @maximum_persistent_disks_size_gb = args[:maximum_persistent_disks_size_gb] if args.key?(:maximum_persistent_disks_size_gb)
@@ -4939,7 +5538,7 @@ module Google
4939
5538
  # fails to create this instance, it will try again until it is successful.
4940
5539
  # - CREATING_WITHOUT_RETRIES The managed instance group is attempting to create
4941
5540
  # 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.
5541
+ # not try again and the group's targetSize value is decreased instead.
4943
5542
  # - RECREATING The managed instance group is recreating this instance.
4944
5543
  # - DELETING The managed instance group is permanently deleting this instance.
4945
5544
  # - ABANDONING The managed instance group is abandoning this instance. The
@@ -5250,8 +5849,8 @@ module Google
5250
5849
  class NetworkInterface
5251
5850
  include Google::Apis::Core::Hashable
5252
5851
 
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,
5852
+ # An array of configurations for this interface. Currently, only one access
5853
+ # config, ONE_TO_ONE_NAT, is supported. If there are no accessConfigs specified,
5255
5854
  # then this instance will have no external internet access.
5256
5855
  # Corresponds to the JSON property `accessConfigs`
5257
5856
  # @return [Array<Google::Apis::ComputeV1::AccessConfig>]
@@ -5341,7 +5940,7 @@ module Google
5341
5940
  # @return [String]
5342
5941
  attr_accessor :next_page_token
5343
5942
 
5344
- # [Output Only] Server-defined URL for this resource .
5943
+ # [Output Only] Server-defined URL for this resource.
5345
5944
  # Corresponds to the JSON property `selfLink`
5346
5945
  # @return [String]
5347
5946
  attr_accessor :self_link
@@ -5477,7 +6076,9 @@ module Google
5477
6076
  # @return [String]
5478
6077
  attr_accessor :target_id
5479
6078
 
5480
- # [Output Only] The URL of the resource that the operation modifies.
6079
+ # [Output Only] The URL of the resource that the operation modifies. For
6080
+ # operations related to creating a snapshot, this points to the persistent disk
6081
+ # that the snapshot was created from.
5481
6082
  # Corresponds to the JSON property `targetLink`
5482
6083
  # @return [String]
5483
6084
  attr_accessor :target_link
@@ -5927,6 +6528,11 @@ module Google
5927
6528
  # @return [String]
5928
6529
  attr_accessor :creation_timestamp
5929
6530
 
6531
+ # [Output Only] Default service account used by VMs running in this project.
6532
+ # Corresponds to the JSON property `defaultServiceAccount`
6533
+ # @return [String]
6534
+ attr_accessor :default_service_account
6535
+
5930
6536
  # An optional textual description of the resource.
5931
6537
  # Corresponds to the JSON property `description`
5932
6538
  # @return [String]
@@ -5979,6 +6585,7 @@ module Google
5979
6585
  def update!(**args)
5980
6586
  @common_instance_metadata = args[:common_instance_metadata] if args.key?(:common_instance_metadata)
5981
6587
  @creation_timestamp = args[:creation_timestamp] if args.key?(:creation_timestamp)
6588
+ @default_service_account = args[:default_service_account] if args.key?(:default_service_account)
5982
6589
  @description = args[:description] if args.key?(:description)
5983
6590
  @enabled_features = args[:enabled_features] if args.key?(:enabled_features)
5984
6591
  @id = args[:id] if args.key?(:id)
@@ -6148,7 +6755,7 @@ module Google
6148
6755
  class ResourceGroupReference
6149
6756
  include Google::Apis::Core::Hashable
6150
6757
 
6151
- # A URI referencing one of the resource views listed in the backend service.
6758
+ # A URI referencing one of the instance groups listed in the backend service.
6152
6759
  # Corresponds to the JSON property `group`
6153
6760
  # @return [String]
6154
6761
  attr_accessor :group
@@ -6312,7 +6919,589 @@ module Google
6312
6919
  # [Output Only] Metadata about this warning in key: value format. For example:
6313
6920
  # "data": [ ` "key": "scope", "value": "zones/us-east1-d" `
6314
6921
  # Corresponds to the JSON property `data`
6315
- # @return [Array<Google::Apis::ComputeV1::Route::Warning::Datum>]
6922
+ # @return [Array<Google::Apis::ComputeV1::Route::Warning::Datum>]
6923
+ attr_accessor :data
6924
+
6925
+ # [Output Only] A human-readable description of the warning code.
6926
+ # Corresponds to the JSON property `message`
6927
+ # @return [String]
6928
+ attr_accessor :message
6929
+
6930
+ def initialize(**args)
6931
+ update!(**args)
6932
+ end
6933
+
6934
+ # Update properties of this object
6935
+ def update!(**args)
6936
+ @code = args[:code] if args.key?(:code)
6937
+ @data = args[:data] if args.key?(:data)
6938
+ @message = args[:message] if args.key?(:message)
6939
+ end
6940
+
6941
+ #
6942
+ class Datum
6943
+ include Google::Apis::Core::Hashable
6944
+
6945
+ # [Output Only] A key that provides more detail on the warning being returned.
6946
+ # For example, for warnings where there are no results in a list request for a
6947
+ # particular zone, this key might be scope and the key value might be the zone
6948
+ # name. Other examples might be a key indicating a deprecated resource and a
6949
+ # suggested replacement, or a warning about invalid network settings (for
6950
+ # example, if an instance attempts to perform IP forwarding but is not enabled
6951
+ # for IP forwarding).
6952
+ # Corresponds to the JSON property `key`
6953
+ # @return [String]
6954
+ attr_accessor :key
6955
+
6956
+ # [Output Only] A warning data value corresponding to the key.
6957
+ # Corresponds to the JSON property `value`
6958
+ # @return [String]
6959
+ attr_accessor :value
6960
+
6961
+ def initialize(**args)
6962
+ update!(**args)
6963
+ end
6964
+
6965
+ # Update properties of this object
6966
+ def update!(**args)
6967
+ @key = args[:key] if args.key?(:key)
6968
+ @value = args[:value] if args.key?(:value)
6969
+ end
6970
+ end
6971
+ end
6972
+ end
6973
+
6974
+ # Contains a list of Route resources.
6975
+ class RouteList
6976
+ include Google::Apis::Core::Hashable
6977
+
6978
+ # [Output Only] Unique identifier for the resource. Defined by the server.
6979
+ # Corresponds to the JSON property `id`
6980
+ # @return [String]
6981
+ attr_accessor :id
6982
+
6983
+ # [Output Only] A list of Route resources.
6984
+ # Corresponds to the JSON property `items`
6985
+ # @return [Array<Google::Apis::ComputeV1::Route>]
6986
+ attr_accessor :items
6987
+
6988
+ # Type of resource.
6989
+ # Corresponds to the JSON property `kind`
6990
+ # @return [String]
6991
+ attr_accessor :kind
6992
+
6993
+ # [Output Only] This token allows you to get the next page of results for list
6994
+ # requests. If the number of results is larger than maxResults, use the
6995
+ # nextPageToken as a value for the query parameter pageToken in the next list
6996
+ # request. Subsequent list requests will have their own nextPageToken to
6997
+ # continue paging through the results.
6998
+ # Corresponds to the JSON property `nextPageToken`
6999
+ # @return [String]
7000
+ attr_accessor :next_page_token
7001
+
7002
+ # [Output Only] Server-defined URL for this resource.
7003
+ # Corresponds to the JSON property `selfLink`
7004
+ # @return [String]
7005
+ attr_accessor :self_link
7006
+
7007
+ def initialize(**args)
7008
+ update!(**args)
7009
+ end
7010
+
7011
+ # Update properties of this object
7012
+ def update!(**args)
7013
+ @id = args[:id] if args.key?(:id)
7014
+ @items = args[:items] if args.key?(:items)
7015
+ @kind = args[:kind] if args.key?(:kind)
7016
+ @next_page_token = args[:next_page_token] if args.key?(:next_page_token)
7017
+ @self_link = args[:self_link] if args.key?(:self_link)
7018
+ end
7019
+ end
7020
+
7021
+ # Router resource.
7022
+ class Router
7023
+ include Google::Apis::Core::Hashable
7024
+
7025
+ # BGP information specific to this router.
7026
+ # Corresponds to the JSON property `bgp`
7027
+ # @return [Google::Apis::ComputeV1::RouterBgp]
7028
+ attr_accessor :bgp
7029
+
7030
+ # BGP information that needs to be configured into the routing stack to
7031
+ # establish the BGP peering. It must specify peer ASN and either interface name,
7032
+ # IP, or peer IP. Please refer to RFC4273.
7033
+ # Corresponds to the JSON property `bgpPeers`
7034
+ # @return [Array<Google::Apis::ComputeV1::RouterBgpPeer>]
7035
+ attr_accessor :bgp_peers
7036
+
7037
+ # [Output Only] Creation timestamp in RFC3339 text format.
7038
+ # Corresponds to the JSON property `creationTimestamp`
7039
+ # @return [String]
7040
+ attr_accessor :creation_timestamp
7041
+
7042
+ # An optional description of this resource. Provide this property when you
7043
+ # create the resource.
7044
+ # Corresponds to the JSON property `description`
7045
+ # @return [String]
7046
+ attr_accessor :description
7047
+
7048
+ # [Output Only] The unique identifier for the resource. This identifier is
7049
+ # defined by the server.
7050
+ # Corresponds to the JSON property `id`
7051
+ # @return [String]
7052
+ attr_accessor :id
7053
+
7054
+ # Router interfaces. Each interface requires either one linked resource (e.g.
7055
+ # linkedVpnTunnel), or IP address and IP address range (e.g. ipRange), or both.
7056
+ # Corresponds to the JSON property `interfaces`
7057
+ # @return [Array<Google::Apis::ComputeV1::RouterInterface>]
7058
+ attr_accessor :interfaces
7059
+
7060
+ # [Output Only] Type of resource. Always compute#router for routers.
7061
+ # Corresponds to the JSON property `kind`
7062
+ # @return [String]
7063
+ attr_accessor :kind
7064
+
7065
+ # Name of the resource. Provided by the client when the resource is created. The
7066
+ # name must be 1-63 characters long, and comply with RFC1035. Specifically, the
7067
+ # name must be 1-63 characters long and match the regular expression [a-z]([-a-
7068
+ # z0-9]*[a-z0-9])? which means the first character must be a lowercase letter,
7069
+ # and all following characters must be a dash, lowercase letter, or digit,
7070
+ # except the last character, which cannot be a dash.
7071
+ # Corresponds to the JSON property `name`
7072
+ # @return [String]
7073
+ attr_accessor :name
7074
+
7075
+ # URI of the network to which this router belongs.
7076
+ # Corresponds to the JSON property `network`
7077
+ # @return [String]
7078
+ attr_accessor :network
7079
+
7080
+ # [Output Only] URI of the region where the router resides.
7081
+ # Corresponds to the JSON property `region`
7082
+ # @return [String]
7083
+ attr_accessor :region
7084
+
7085
+ # [Output Only] Server-defined URL for the resource.
7086
+ # Corresponds to the JSON property `selfLink`
7087
+ # @return [String]
7088
+ attr_accessor :self_link
7089
+
7090
+ def initialize(**args)
7091
+ update!(**args)
7092
+ end
7093
+
7094
+ # Update properties of this object
7095
+ def update!(**args)
7096
+ @bgp = args[:bgp] if args.key?(:bgp)
7097
+ @bgp_peers = args[:bgp_peers] if args.key?(:bgp_peers)
7098
+ @creation_timestamp = args[:creation_timestamp] if args.key?(:creation_timestamp)
7099
+ @description = args[:description] if args.key?(:description)
7100
+ @id = args[:id] if args.key?(:id)
7101
+ @interfaces = args[:interfaces] if args.key?(:interfaces)
7102
+ @kind = args[:kind] if args.key?(:kind)
7103
+ @name = args[:name] if args.key?(:name)
7104
+ @network = args[:network] if args.key?(:network)
7105
+ @region = args[:region] if args.key?(:region)
7106
+ @self_link = args[:self_link] if args.key?(:self_link)
7107
+ end
7108
+ end
7109
+
7110
+ # Contains a list of routers.
7111
+ class RouterAggregatedList
7112
+ include Google::Apis::Core::Hashable
7113
+
7114
+ # [Output Only] The unique identifier for the resource. This identifier is
7115
+ # defined by the server.
7116
+ # Corresponds to the JSON property `id`
7117
+ # @return [String]
7118
+ attr_accessor :id
7119
+
7120
+ # A map of scoped router lists.
7121
+ # Corresponds to the JSON property `items`
7122
+ # @return [Hash<String,Google::Apis::ComputeV1::RoutersScopedList>]
7123
+ attr_accessor :items
7124
+
7125
+ # Type of resource.
7126
+ # Corresponds to the JSON property `kind`
7127
+ # @return [String]
7128
+ attr_accessor :kind
7129
+
7130
+ # [Output Only] This token allows you to get the next page of results for list
7131
+ # requests. If the number of results is larger than maxResults, use the
7132
+ # nextPageToken as a value for the query parameter pageToken in the next list
7133
+ # request. Subsequent list requests will have their own nextPageToken to
7134
+ # continue paging through the results.
7135
+ # Corresponds to the JSON property `nextPageToken`
7136
+ # @return [String]
7137
+ attr_accessor :next_page_token
7138
+
7139
+ # [Output Only] Server-defined URL for this resource.
7140
+ # Corresponds to the JSON property `selfLink`
7141
+ # @return [String]
7142
+ attr_accessor :self_link
7143
+
7144
+ def initialize(**args)
7145
+ update!(**args)
7146
+ end
7147
+
7148
+ # Update properties of this object
7149
+ def update!(**args)
7150
+ @id = args[:id] if args.key?(:id)
7151
+ @items = args[:items] if args.key?(:items)
7152
+ @kind = args[:kind] if args.key?(:kind)
7153
+ @next_page_token = args[:next_page_token] if args.key?(:next_page_token)
7154
+ @self_link = args[:self_link] if args.key?(:self_link)
7155
+ end
7156
+ end
7157
+
7158
+ #
7159
+ class RouterBgp
7160
+ include Google::Apis::Core::Hashable
7161
+
7162
+ # Local BGP Autonomous System Number (ASN). Must be an RFC6996 private ASN,
7163
+ # either 16-bit or 32-bit. The value will be fixed for this router resource. All
7164
+ # VPN tunnels that link to this router will have the same local ASN.
7165
+ # Corresponds to the JSON property `asn`
7166
+ # @return [Fixnum]
7167
+ attr_accessor :asn
7168
+
7169
+ def initialize(**args)
7170
+ update!(**args)
7171
+ end
7172
+
7173
+ # Update properties of this object
7174
+ def update!(**args)
7175
+ @asn = args[:asn] if args.key?(:asn)
7176
+ end
7177
+ end
7178
+
7179
+ #
7180
+ class RouterBgpPeer
7181
+ include Google::Apis::Core::Hashable
7182
+
7183
+ # The priority of routes advertised to this BGP peer. In the case where there is
7184
+ # more than one matching route of maximum length, the routes with lowest
7185
+ # priority value win.
7186
+ # Corresponds to the JSON property `advertisedRoutePriority`
7187
+ # @return [Fixnum]
7188
+ attr_accessor :advertised_route_priority
7189
+
7190
+ # Name of the interface the BGP peer is associated with.
7191
+ # Corresponds to the JSON property `interfaceName`
7192
+ # @return [String]
7193
+ attr_accessor :interface_name
7194
+
7195
+ # IP address of the interface inside Google Cloud Platform.
7196
+ # Corresponds to the JSON property `ipAddress`
7197
+ # @return [String]
7198
+ attr_accessor :ip_address
7199
+
7200
+ # Name of this BGP peer. The name must be 1-63 characters long and comply with
7201
+ # RFC1035.
7202
+ # Corresponds to the JSON property `name`
7203
+ # @return [String]
7204
+ attr_accessor :name
7205
+
7206
+ # Peer BGP Autonomous System Number (ASN). For VPN use case, this value can be
7207
+ # different for every tunnel.
7208
+ # Corresponds to the JSON property `peerAsn`
7209
+ # @return [Fixnum]
7210
+ attr_accessor :peer_asn
7211
+
7212
+ # IP address of the BGP interface outside Google cloud.
7213
+ # Corresponds to the JSON property `peerIpAddress`
7214
+ # @return [String]
7215
+ attr_accessor :peer_ip_address
7216
+
7217
+ def initialize(**args)
7218
+ update!(**args)
7219
+ end
7220
+
7221
+ # Update properties of this object
7222
+ def update!(**args)
7223
+ @advertised_route_priority = args[:advertised_route_priority] if args.key?(:advertised_route_priority)
7224
+ @interface_name = args[:interface_name] if args.key?(:interface_name)
7225
+ @ip_address = args[:ip_address] if args.key?(:ip_address)
7226
+ @name = args[:name] if args.key?(:name)
7227
+ @peer_asn = args[:peer_asn] if args.key?(:peer_asn)
7228
+ @peer_ip_address = args[:peer_ip_address] if args.key?(:peer_ip_address)
7229
+ end
7230
+ end
7231
+
7232
+ #
7233
+ class RouterInterface
7234
+ include Google::Apis::Core::Hashable
7235
+
7236
+ # IP address and range of the interface. The IP range must be in the RFC3927
7237
+ # link-local IP space. The value must be a CIDR-formatted string, for example:
7238
+ # 169.254.0.1/30. NOTE: Do not truncate the address as it represents the IP
7239
+ # address of the interface.
7240
+ # Corresponds to the JSON property `ipRange`
7241
+ # @return [String]
7242
+ attr_accessor :ip_range
7243
+
7244
+ # URI of linked VPN tunnel. It must be in the same region as the router. Each
7245
+ # interface can have at most one linked resource.
7246
+ # Corresponds to the JSON property `linkedVpnTunnel`
7247
+ # @return [String]
7248
+ attr_accessor :linked_vpn_tunnel
7249
+
7250
+ # Name of this interface entry. The name must be 1-63 characters long and comply
7251
+ # with RFC1035.
7252
+ # Corresponds to the JSON property `name`
7253
+ # @return [String]
7254
+ attr_accessor :name
7255
+
7256
+ def initialize(**args)
7257
+ update!(**args)
7258
+ end
7259
+
7260
+ # Update properties of this object
7261
+ def update!(**args)
7262
+ @ip_range = args[:ip_range] if args.key?(:ip_range)
7263
+ @linked_vpn_tunnel = args[:linked_vpn_tunnel] if args.key?(:linked_vpn_tunnel)
7264
+ @name = args[:name] if args.key?(:name)
7265
+ end
7266
+ end
7267
+
7268
+ # Contains a list of Router resources.
7269
+ class RouterList
7270
+ include Google::Apis::Core::Hashable
7271
+
7272
+ # [Output Only] The unique identifier for the resource. This identifier is
7273
+ # defined by the server.
7274
+ # Corresponds to the JSON property `id`
7275
+ # @return [String]
7276
+ attr_accessor :id
7277
+
7278
+ # A list of Router resources.
7279
+ # Corresponds to the JSON property `items`
7280
+ # @return [Array<Google::Apis::ComputeV1::Router>]
7281
+ attr_accessor :items
7282
+
7283
+ # [Output Only] Type of resource. Always compute#router for routers.
7284
+ # Corresponds to the JSON property `kind`
7285
+ # @return [String]
7286
+ attr_accessor :kind
7287
+
7288
+ # [Output Only] This token allows you to get the next page of results for list
7289
+ # requests. If the number of results is larger than maxResults, use the
7290
+ # nextPageToken as a value for the query parameter pageToken in the next list
7291
+ # request. Subsequent list requests will have their own nextPageToken to
7292
+ # continue paging through the results.
7293
+ # Corresponds to the JSON property `nextPageToken`
7294
+ # @return [String]
7295
+ attr_accessor :next_page_token
7296
+
7297
+ # [Output Only] Server-defined URL for this resource.
7298
+ # Corresponds to the JSON property `selfLink`
7299
+ # @return [String]
7300
+ attr_accessor :self_link
7301
+
7302
+ def initialize(**args)
7303
+ update!(**args)
7304
+ end
7305
+
7306
+ # Update properties of this object
7307
+ def update!(**args)
7308
+ @id = args[:id] if args.key?(:id)
7309
+ @items = args[:items] if args.key?(:items)
7310
+ @kind = args[:kind] if args.key?(:kind)
7311
+ @next_page_token = args[:next_page_token] if args.key?(:next_page_token)
7312
+ @self_link = args[:self_link] if args.key?(:self_link)
7313
+ end
7314
+ end
7315
+
7316
+ #
7317
+ class RouterStatus
7318
+ include Google::Apis::Core::Hashable
7319
+
7320
+ # Best routes for this router's network.
7321
+ # Corresponds to the JSON property `bestRoutes`
7322
+ # @return [Array<Google::Apis::ComputeV1::Route>]
7323
+ attr_accessor :best_routes
7324
+
7325
+ #
7326
+ # Corresponds to the JSON property `bgpPeerStatus`
7327
+ # @return [Array<Google::Apis::ComputeV1::RouterStatusBgpPeerStatus>]
7328
+ attr_accessor :bgp_peer_status
7329
+
7330
+ # URI of the network to which this router belongs.
7331
+ # Corresponds to the JSON property `network`
7332
+ # @return [String]
7333
+ attr_accessor :network
7334
+
7335
+ def initialize(**args)
7336
+ update!(**args)
7337
+ end
7338
+
7339
+ # Update properties of this object
7340
+ def update!(**args)
7341
+ @best_routes = args[:best_routes] if args.key?(:best_routes)
7342
+ @bgp_peer_status = args[:bgp_peer_status] if args.key?(:bgp_peer_status)
7343
+ @network = args[:network] if args.key?(:network)
7344
+ end
7345
+ end
7346
+
7347
+ #
7348
+ class RouterStatusBgpPeerStatus
7349
+ include Google::Apis::Core::Hashable
7350
+
7351
+ # Routes that were advertised to the remote BGP peer
7352
+ # Corresponds to the JSON property `advertisedRoutes`
7353
+ # @return [Array<Google::Apis::ComputeV1::Route>]
7354
+ attr_accessor :advertised_routes
7355
+
7356
+ # IP address of the local BGP interface.
7357
+ # Corresponds to the JSON property `ipAddress`
7358
+ # @return [String]
7359
+ attr_accessor :ip_address
7360
+
7361
+ # URL of the VPN tunnel that this BGP peer controls.
7362
+ # Corresponds to the JSON property `linkedVpnTunnel`
7363
+ # @return [String]
7364
+ attr_accessor :linked_vpn_tunnel
7365
+
7366
+ # Name of this BGP peer. Unique within the Routers resource.
7367
+ # Corresponds to the JSON property `name`
7368
+ # @return [String]
7369
+ attr_accessor :name
7370
+
7371
+ # Number of routes learned from the remote BGP Peer.
7372
+ # Corresponds to the JSON property `numLearnedRoutes`
7373
+ # @return [Fixnum]
7374
+ attr_accessor :num_learned_routes
7375
+
7376
+ # IP address of the remote BGP interface.
7377
+ # Corresponds to the JSON property `peerIpAddress`
7378
+ # @return [String]
7379
+ attr_accessor :peer_ip_address
7380
+
7381
+ # BGP state as specified in RFC1771.
7382
+ # Corresponds to the JSON property `state`
7383
+ # @return [String]
7384
+ attr_accessor :state
7385
+
7386
+ # Status of the BGP peer: `UP, DOWN`
7387
+ # Corresponds to the JSON property `status`
7388
+ # @return [String]
7389
+ attr_accessor :status
7390
+
7391
+ # Time this session has been up. Format: 14 years, 51 weeks, 6 days, 23 hours,
7392
+ # 59 minutes, 59 seconds
7393
+ # Corresponds to the JSON property `uptime`
7394
+ # @return [String]
7395
+ attr_accessor :uptime
7396
+
7397
+ # Time this session has been up, in seconds. Format: 145
7398
+ # Corresponds to the JSON property `uptimeSeconds`
7399
+ # @return [String]
7400
+ attr_accessor :uptime_seconds
7401
+
7402
+ def initialize(**args)
7403
+ update!(**args)
7404
+ end
7405
+
7406
+ # Update properties of this object
7407
+ def update!(**args)
7408
+ @advertised_routes = args[:advertised_routes] if args.key?(:advertised_routes)
7409
+ @ip_address = args[:ip_address] if args.key?(:ip_address)
7410
+ @linked_vpn_tunnel = args[:linked_vpn_tunnel] if args.key?(:linked_vpn_tunnel)
7411
+ @name = args[:name] if args.key?(:name)
7412
+ @num_learned_routes = args[:num_learned_routes] if args.key?(:num_learned_routes)
7413
+ @peer_ip_address = args[:peer_ip_address] if args.key?(:peer_ip_address)
7414
+ @state = args[:state] if args.key?(:state)
7415
+ @status = args[:status] if args.key?(:status)
7416
+ @uptime = args[:uptime] if args.key?(:uptime)
7417
+ @uptime_seconds = args[:uptime_seconds] if args.key?(:uptime_seconds)
7418
+ end
7419
+ end
7420
+
7421
+ #
7422
+ class RouterStatusResponse
7423
+ include Google::Apis::Core::Hashable
7424
+
7425
+ # Type of resource.
7426
+ # Corresponds to the JSON property `kind`
7427
+ # @return [String]
7428
+ attr_accessor :kind
7429
+
7430
+ #
7431
+ # Corresponds to the JSON property `result`
7432
+ # @return [Google::Apis::ComputeV1::RouterStatus]
7433
+ attr_accessor :result
7434
+
7435
+ def initialize(**args)
7436
+ update!(**args)
7437
+ end
7438
+
7439
+ # Update properties of this object
7440
+ def update!(**args)
7441
+ @kind = args[:kind] if args.key?(:kind)
7442
+ @result = args[:result] if args.key?(:result)
7443
+ end
7444
+ end
7445
+
7446
+ #
7447
+ class RoutersPreviewResponse
7448
+ include Google::Apis::Core::Hashable
7449
+
7450
+ # Router resource.
7451
+ # Corresponds to the JSON property `resource`
7452
+ # @return [Google::Apis::ComputeV1::Router]
7453
+ attr_accessor :resource
7454
+
7455
+ def initialize(**args)
7456
+ update!(**args)
7457
+ end
7458
+
7459
+ # Update properties of this object
7460
+ def update!(**args)
7461
+ @resource = args[:resource] if args.key?(:resource)
7462
+ end
7463
+ end
7464
+
7465
+ #
7466
+ class RoutersScopedList
7467
+ include Google::Apis::Core::Hashable
7468
+
7469
+ # List of routers contained in this scope.
7470
+ # Corresponds to the JSON property `routers`
7471
+ # @return [Array<Google::Apis::ComputeV1::Router>]
7472
+ attr_accessor :routers
7473
+
7474
+ # Informational warning which replaces the list of routers when the list is
7475
+ # empty.
7476
+ # Corresponds to the JSON property `warning`
7477
+ # @return [Google::Apis::ComputeV1::RoutersScopedList::Warning]
7478
+ attr_accessor :warning
7479
+
7480
+ def initialize(**args)
7481
+ update!(**args)
7482
+ end
7483
+
7484
+ # Update properties of this object
7485
+ def update!(**args)
7486
+ @routers = args[:routers] if args.key?(:routers)
7487
+ @warning = args[:warning] if args.key?(:warning)
7488
+ end
7489
+
7490
+ # Informational warning which replaces the list of routers when the list is
7491
+ # empty.
7492
+ class Warning
7493
+ include Google::Apis::Core::Hashable
7494
+
7495
+ # [Output Only] A warning code, if applicable. For example, Compute Engine
7496
+ # returns NO_RESULTS_ON_PAGE if there are no results in the response.
7497
+ # Corresponds to the JSON property `code`
7498
+ # @return [String]
7499
+ attr_accessor :code
7500
+
7501
+ # [Output Only] Metadata about this warning in key: value format. For example:
7502
+ # "data": [ ` "key": "scope", "value": "zones/us-east1-d" `
7503
+ # Corresponds to the JSON property `data`
7504
+ # @return [Array<Google::Apis::ComputeV1::RoutersScopedList::Warning::Datum>]
6316
7505
  attr_accessor :data
6317
7506
 
6318
7507
  # [Output Only] A human-readable description of the warning code.
@@ -6364,38 +7553,41 @@ module Google
6364
7553
  end
6365
7554
  end
6366
7555
 
6367
- # Contains a list of Route resources.
6368
- class RouteList
7556
+ #
7557
+ class SslHealthCheck
6369
7558
  include Google::Apis::Core::Hashable
6370
7559
 
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
7560
+ # The TCP port number for the health check request. The default value is 443.
7561
+ # Corresponds to the JSON property `port`
7562
+ # @return [Fixnum]
7563
+ attr_accessor :port
6375
7564
 
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
7565
+ # Port name as defined in InstanceGroup#NamedPort#name. If both port and
7566
+ # port_name are defined, port takes precedence.
7567
+ # Corresponds to the JSON property `portName`
7568
+ # @return [String]
7569
+ attr_accessor :port_name
6380
7570
 
6381
- # Type of resource.
6382
- # Corresponds to the JSON property `kind`
7571
+ # Specifies the type of proxy header to append before sending data to the
7572
+ # backend, either NONE or PROXY_V1. The default is NONE.
7573
+ # Corresponds to the JSON property `proxyHeader`
6383
7574
  # @return [String]
6384
- attr_accessor :kind
7575
+ attr_accessor :proxy_header
6385
7576
 
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`
7577
+ # The application data to send once the SSL connection has been established (
7578
+ # default value is empty). If both request and response are empty, the
7579
+ # connection establishment alone will indicate health. The request data can only
7580
+ # be ASCII.
7581
+ # Corresponds to the JSON property `request`
6392
7582
  # @return [String]
6393
- attr_accessor :next_page_token
7583
+ attr_accessor :request
6394
7584
 
6395
- # [Output Only] Server-defined URL for this resource.
6396
- # Corresponds to the JSON property `selfLink`
7585
+ # The bytes to match against the beginning of the response data. If left empty (
7586
+ # the default value), any response will indicate health. The response data can
7587
+ # only be ASCII.
7588
+ # Corresponds to the JSON property `response`
6397
7589
  # @return [String]
6398
- attr_accessor :self_link
7590
+ attr_accessor :response
6399
7591
 
6400
7592
  def initialize(**args)
6401
7593
  update!(**args)
@@ -6403,11 +7595,11 @@ module Google
6403
7595
 
6404
7596
  # Update properties of this object
6405
7597
  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)
7598
+ @port = args[:port] if args.key?(:port)
7599
+ @port_name = args[:port_name] if args.key?(:port_name)
7600
+ @proxy_header = args[:proxy_header] if args.key?(:proxy_header)
7601
+ @request = args[:request] if args.key?(:request)
7602
+ @response = args[:response] if args.key?(:response)
6411
7603
  end
6412
7604
  end
6413
7605
 
@@ -6465,7 +7657,7 @@ module Google
6465
7657
  # @return [String]
6466
7658
  attr_accessor :kind
6467
7659
 
6468
- # [Output Only] Server-defined URL for the resource.
7660
+ # [Output Only] Server-defined URL for this resource.
6469
7661
  # Corresponds to the JSON property `selfLink`
6470
7662
  # @return [String]
6471
7663
  attr_accessor :self_link
@@ -6561,11 +7753,21 @@ module Google
6561
7753
  # @return [String]
6562
7754
  attr_accessor :self_link
6563
7755
 
7756
+ # Represents a customer-supplied encryption key
7757
+ # Corresponds to the JSON property `snapshotEncryptionKey`
7758
+ # @return [Google::Apis::ComputeV1::CustomerEncryptionKey]
7759
+ attr_accessor :snapshot_encryption_key
7760
+
6564
7761
  # [Output Only] The source disk used to create this snapshot.
6565
7762
  # Corresponds to the JSON property `sourceDisk`
6566
7763
  # @return [String]
6567
7764
  attr_accessor :source_disk
6568
7765
 
7766
+ # Represents a customer-supplied encryption key
7767
+ # Corresponds to the JSON property `sourceDiskEncryptionKey`
7768
+ # @return [Google::Apis::ComputeV1::CustomerEncryptionKey]
7769
+ attr_accessor :source_disk_encryption_key
7770
+
6569
7771
  # [Output Only] The ID value of the disk used to create this snapshot. This
6570
7772
  # value may be used to determine whether the snapshot was taken from the current
6571
7773
  # or a previous instance of a given disk name.
@@ -6608,7 +7810,9 @@ module Google
6608
7810
  @licenses = args[:licenses] if args.key?(:licenses)
6609
7811
  @name = args[:name] if args.key?(:name)
6610
7812
  @self_link = args[:self_link] if args.key?(:self_link)
7813
+ @snapshot_encryption_key = args[:snapshot_encryption_key] if args.key?(:snapshot_encryption_key)
6611
7814
  @source_disk = args[:source_disk] if args.key?(:source_disk)
7815
+ @source_disk_encryption_key = args[:source_disk_encryption_key] if args.key?(:source_disk_encryption_key)
6612
7816
  @source_disk_id = args[:source_disk_id] if args.key?(:source_disk_id)
6613
7817
  @status = args[:status] if args.key?(:status)
6614
7818
  @storage_bytes = args[:storage_bytes] if args.key?(:storage_bytes)
@@ -6969,6 +8173,28 @@ module Google
6969
8173
  end
6970
8174
  end
6971
8175
 
8176
+ #
8177
+ class SubnetworksExpandIpCidrRangeRequest
8178
+ include Google::Apis::Core::Hashable
8179
+
8180
+ # The IP (in CIDR format or netmask) of internal addresses that are legal on
8181
+ # this Subnetwork. This range should be disjoint from other subnetworks within
8182
+ # this network. This range can only be larger than (i.e. a superset of) the
8183
+ # range previously defined before the update.
8184
+ # Corresponds to the JSON property `ipCidrRange`
8185
+ # @return [String]
8186
+ attr_accessor :ip_cidr_range
8187
+
8188
+ def initialize(**args)
8189
+ update!(**args)
8190
+ end
8191
+
8192
+ # Update properties of this object
8193
+ def update!(**args)
8194
+ @ip_cidr_range = args[:ip_cidr_range] if args.key?(:ip_cidr_range)
8195
+ end
8196
+ end
8197
+
6972
8198
  #
6973
8199
  class SubnetworksScopedList
6974
8200
  include Google::Apis::Core::Hashable
@@ -7058,6 +8284,56 @@ module Google
7058
8284
  end
7059
8285
  end
7060
8286
 
8287
+ #
8288
+ class TcpHealthCheck
8289
+ include Google::Apis::Core::Hashable
8290
+
8291
+ # The TCP port number for the health check request. The default value is 80.
8292
+ # Corresponds to the JSON property `port`
8293
+ # @return [Fixnum]
8294
+ attr_accessor :port
8295
+
8296
+ # Port name as defined in InstanceGroup#NamedPort#name. If both port and
8297
+ # port_name are defined, port takes precedence.
8298
+ # Corresponds to the JSON property `portName`
8299
+ # @return [String]
8300
+ attr_accessor :port_name
8301
+
8302
+ # Specifies the type of proxy header to append before sending data to the
8303
+ # backend, either NONE or PROXY_V1. The default is NONE.
8304
+ # Corresponds to the JSON property `proxyHeader`
8305
+ # @return [String]
8306
+ attr_accessor :proxy_header
8307
+
8308
+ # The application data to send once the TCP connection has been established (
8309
+ # default value is empty). If both request and response are empty, the
8310
+ # connection establishment alone will indicate health. The request data can only
8311
+ # be ASCII.
8312
+ # Corresponds to the JSON property `request`
8313
+ # @return [String]
8314
+ attr_accessor :request
8315
+
8316
+ # The bytes to match against the beginning of the response data. If left empty (
8317
+ # the default value), any response will indicate health. The response data can
8318
+ # only be ASCII.
8319
+ # Corresponds to the JSON property `response`
8320
+ # @return [String]
8321
+ attr_accessor :response
8322
+
8323
+ def initialize(**args)
8324
+ update!(**args)
8325
+ end
8326
+
8327
+ # Update properties of this object
8328
+ def update!(**args)
8329
+ @port = args[:port] if args.key?(:port)
8330
+ @port_name = args[:port_name] if args.key?(:port_name)
8331
+ @proxy_header = args[:proxy_header] if args.key?(:proxy_header)
8332
+ @request = args[:request] if args.key?(:request)
8333
+ @response = args[:response] if args.key?(:response)
8334
+ end
8335
+ end
8336
+
7061
8337
  # A set of instance tags.
7062
8338
  class Tags
7063
8339
  include Google::Apis::Core::Hashable
@@ -8057,6 +9333,190 @@ module Google
8057
9333
  end
8058
9334
  end
8059
9335
 
9336
+ #
9337
+ class TargetSslProxiesSetBackendServiceRequest
9338
+ include Google::Apis::Core::Hashable
9339
+
9340
+ # The URL of the new BackendService resource for the targetSslProxy.
9341
+ # Corresponds to the JSON property `service`
9342
+ # @return [String]
9343
+ attr_accessor :service
9344
+
9345
+ def initialize(**args)
9346
+ update!(**args)
9347
+ end
9348
+
9349
+ # Update properties of this object
9350
+ def update!(**args)
9351
+ @service = args[:service] if args.key?(:service)
9352
+ end
9353
+ end
9354
+
9355
+ #
9356
+ class TargetSslProxiesSetProxyHeaderRequest
9357
+ include Google::Apis::Core::Hashable
9358
+
9359
+ # The new type of proxy header to append before sending data to the backend.
9360
+ # NONE or PROXY_V1 are allowed.
9361
+ # Corresponds to the JSON property `proxyHeader`
9362
+ # @return [String]
9363
+ attr_accessor :proxy_header
9364
+
9365
+ def initialize(**args)
9366
+ update!(**args)
9367
+ end
9368
+
9369
+ # Update properties of this object
9370
+ def update!(**args)
9371
+ @proxy_header = args[:proxy_header] if args.key?(:proxy_header)
9372
+ end
9373
+ end
9374
+
9375
+ #
9376
+ class TargetSslProxiesSetSslCertificatesRequest
9377
+ include Google::Apis::Core::Hashable
9378
+
9379
+ # New set of URLs to SslCertificate resources to associate with this
9380
+ # TargetSslProxy. Currently exactly one ssl certificate must be specified.
9381
+ # Corresponds to the JSON property `sslCertificates`
9382
+ # @return [Array<String>]
9383
+ attr_accessor :ssl_certificates
9384
+
9385
+ def initialize(**args)
9386
+ update!(**args)
9387
+ end
9388
+
9389
+ # Update properties of this object
9390
+ def update!(**args)
9391
+ @ssl_certificates = args[:ssl_certificates] if args.key?(:ssl_certificates)
9392
+ end
9393
+ end
9394
+
9395
+ # A TargetSslProxy resource. This resource defines an SSL proxy.
9396
+ class TargetSslProxy
9397
+ include Google::Apis::Core::Hashable
9398
+
9399
+ # [Output Only] Creation timestamp in RFC3339 text format.
9400
+ # Corresponds to the JSON property `creationTimestamp`
9401
+ # @return [String]
9402
+ attr_accessor :creation_timestamp
9403
+
9404
+ # An optional description of this resource. Provide this property when you
9405
+ # create the resource.
9406
+ # Corresponds to the JSON property `description`
9407
+ # @return [String]
9408
+ attr_accessor :description
9409
+
9410
+ # [Output Only] The unique identifier for the resource. This identifier is
9411
+ # defined by the server.
9412
+ # Corresponds to the JSON property `id`
9413
+ # @return [String]
9414
+ attr_accessor :id
9415
+
9416
+ # [Output Only] Type of the resource. Always compute#targetSslProxy for target
9417
+ # SSL proxies.
9418
+ # Corresponds to the JSON property `kind`
9419
+ # @return [String]
9420
+ attr_accessor :kind
9421
+
9422
+ # Name of the resource. Provided by the client when the resource is created. The
9423
+ # name must be 1-63 characters long, and comply with RFC1035. Specifically, the
9424
+ # name must be 1-63 characters long and match the regular expression [a-z]([-a-
9425
+ # z0-9]*[a-z0-9])? which means the first character must be a lowercase letter,
9426
+ # and all following characters must be a dash, lowercase letter, or digit,
9427
+ # except the last character, which cannot be a dash.
9428
+ # Corresponds to the JSON property `name`
9429
+ # @return [String]
9430
+ attr_accessor :name
9431
+
9432
+ # Specifies the type of proxy header to append before sending data to the
9433
+ # backend, either NONE or PROXY_V1. The default is NONE.
9434
+ # Corresponds to the JSON property `proxyHeader`
9435
+ # @return [String]
9436
+ attr_accessor :proxy_header
9437
+
9438
+ # [Output Only] Server-defined URL for the resource.
9439
+ # Corresponds to the JSON property `selfLink`
9440
+ # @return [String]
9441
+ attr_accessor :self_link
9442
+
9443
+ # URL to the BackendService resource.
9444
+ # Corresponds to the JSON property `service`
9445
+ # @return [String]
9446
+ attr_accessor :service
9447
+
9448
+ # URLs to SslCertificate resources that are used to authenticate connections to
9449
+ # Backends. Currently exactly one SSL certificate must be specified.
9450
+ # Corresponds to the JSON property `sslCertificates`
9451
+ # @return [Array<String>]
9452
+ attr_accessor :ssl_certificates
9453
+
9454
+ def initialize(**args)
9455
+ update!(**args)
9456
+ end
9457
+
9458
+ # Update properties of this object
9459
+ def update!(**args)
9460
+ @creation_timestamp = args[:creation_timestamp] if args.key?(:creation_timestamp)
9461
+ @description = args[:description] if args.key?(:description)
9462
+ @id = args[:id] if args.key?(:id)
9463
+ @kind = args[:kind] if args.key?(:kind)
9464
+ @name = args[:name] if args.key?(:name)
9465
+ @proxy_header = args[:proxy_header] if args.key?(:proxy_header)
9466
+ @self_link = args[:self_link] if args.key?(:self_link)
9467
+ @service = args[:service] if args.key?(:service)
9468
+ @ssl_certificates = args[:ssl_certificates] if args.key?(:ssl_certificates)
9469
+ end
9470
+ end
9471
+
9472
+ # Contains a list of TargetSslProxy resources.
9473
+ class TargetSslProxyList
9474
+ include Google::Apis::Core::Hashable
9475
+
9476
+ # [Output Only] The unique identifier for the resource. This identifier is
9477
+ # defined by the server.
9478
+ # Corresponds to the JSON property `id`
9479
+ # @return [String]
9480
+ attr_accessor :id
9481
+
9482
+ # A list of TargetSslProxy resources.
9483
+ # Corresponds to the JSON property `items`
9484
+ # @return [Array<Google::Apis::ComputeV1::TargetSslProxy>]
9485
+ attr_accessor :items
9486
+
9487
+ # Type of resource.
9488
+ # Corresponds to the JSON property `kind`
9489
+ # @return [String]
9490
+ attr_accessor :kind
9491
+
9492
+ # [Output Only] This token allows you to get the next page of results for list
9493
+ # requests. If the number of results is larger than maxResults, use the
9494
+ # nextPageToken as a value for the query parameter pageToken in the next list
9495
+ # request. Subsequent list requests will have their own nextPageToken to
9496
+ # continue paging through the results.
9497
+ # Corresponds to the JSON property `nextPageToken`
9498
+ # @return [String]
9499
+ attr_accessor :next_page_token
9500
+
9501
+ # [Output Only] Server-defined URL for this resource.
9502
+ # Corresponds to the JSON property `selfLink`
9503
+ # @return [String]
9504
+ attr_accessor :self_link
9505
+
9506
+ def initialize(**args)
9507
+ update!(**args)
9508
+ end
9509
+
9510
+ # Update properties of this object
9511
+ def update!(**args)
9512
+ @id = args[:id] if args.key?(:id)
9513
+ @items = args[:items] if args.key?(:items)
9514
+ @kind = args[:kind] if args.key?(:kind)
9515
+ @next_page_token = args[:next_page_token] if args.key?(:next_page_token)
9516
+ @self_link = args[:self_link] if args.key?(:self_link)
9517
+ end
9518
+ end
9519
+
8060
9520
  # Represents a Target VPN gateway resource.
8061
9521
  class TargetVpnGateway
8062
9522
  include Google::Apis::Core::Hashable
@@ -8178,7 +9638,7 @@ module Google
8178
9638
  # @return [String]
8179
9639
  attr_accessor :next_page_token
8180
9640
 
8181
- # [Output Only] Server-defined URL for the resource.
9641
+ # [Output Only] Server-defined URL for this resource.
8182
9642
  # Corresponds to the JSON property `selfLink`
8183
9643
  # @return [String]
8184
9644
  attr_accessor :self_link
@@ -8227,7 +9687,7 @@ module Google
8227
9687
  # @return [String]
8228
9688
  attr_accessor :next_page_token
8229
9689
 
8230
- # [Output Only] Server-defined URL for the resource.
9690
+ # [Output Only] Server-defined URL for this resource.
8231
9691
  # Corresponds to the JSON property `selfLink`
8232
9692
  # @return [String]
8233
9693
  attr_accessor :self_link
@@ -8748,6 +10208,18 @@ module Google
8748
10208
  # @return [String]
8749
10209
  attr_accessor :region
8750
10210
 
10211
+ # Remote traffic selectors to use when establishing the VPN tunnel with peer VPN
10212
+ # gateway. The value should be a CIDR formatted string, for example: 192.168.0.0/
10213
+ # 16. The ranges should be disjoint.
10214
+ # Corresponds to the JSON property `remoteTrafficSelector`
10215
+ # @return [Array<String>]
10216
+ attr_accessor :remote_traffic_selector
10217
+
10218
+ # URL of router resource to be used for dynamic routing.
10219
+ # Corresponds to the JSON property `router`
10220
+ # @return [String]
10221
+ attr_accessor :router
10222
+
8751
10223
  # [Output Only] Server-defined URL for the resource.
8752
10224
  # Corresponds to the JSON property `selfLink`
8753
10225
  # @return [String]
@@ -8791,6 +10263,8 @@ module Google
8791
10263
  @name = args[:name] if args.key?(:name)
8792
10264
  @peer_ip = args[:peer_ip] if args.key?(:peer_ip)
8793
10265
  @region = args[:region] if args.key?(:region)
10266
+ @remote_traffic_selector = args[:remote_traffic_selector] if args.key?(:remote_traffic_selector)
10267
+ @router = args[:router] if args.key?(:router)
8794
10268
  @self_link = args[:self_link] if args.key?(:self_link)
8795
10269
  @shared_secret = args[:shared_secret] if args.key?(:shared_secret)
8796
10270
  @shared_secret_hash = args[:shared_secret_hash] if args.key?(:shared_secret_hash)
@@ -8876,7 +10350,7 @@ module Google
8876
10350
  # @return [String]
8877
10351
  attr_accessor :next_page_token
8878
10352
 
8879
- # [Output Only] Server-defined URL for the resource.
10353
+ # [Output Only] Server-defined URL for this resource.
8880
10354
  # Corresponds to the JSON property `selfLink`
8881
10355
  # @return [String]
8882
10356
  attr_accessor :self_link