google-api-client 0.9.8 → 0.9.20

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