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 ComputeBeta
27
27
  VERSION = 'Beta'
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 ComputeBeta
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
 
@@ -414,7 +415,12 @@ module Google
414
415
  attr_accessor :mode
415
416
 
416
417
  # Specifies a valid partial or full URL to an existing Persistent Disk resource.
417
- # 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.
418
424
  # Corresponds to the JSON property `source`
419
425
  # @return [String]
420
426
  attr_accessor :source
@@ -480,13 +486,14 @@ module Google
480
486
  # - https://www.googleapis.com/compute/v1/projects/project/zones/zone/diskTypes/
481
487
  # diskType
482
488
  # - projects/project/zones/zone/diskTypes/diskType
483
- # - zones/zone/diskTypes/diskType
489
+ # - zones/zone/diskTypes/diskType Note that for InstanceTemplate, this is the
490
+ # name of the disk type, not URL.
484
491
  # Corresponds to the JSON property `diskType`
485
492
  # @return [String]
486
493
  attr_accessor :disk_type
487
494
 
488
- # The source image used to create this disk. If the source image is deleted,
489
- # this field will not be set.
495
+ # The source image to create this disk. When creating a new instance, one of
496
+ # initializeParams.sourceImage or disks.source is required.
490
497
  # To create a disk with one of the public operating system images, specify the
491
498
  # image by its family name. For example, specify family/debian-8 to use the
492
499
  # latest Debian 8 image:
@@ -500,6 +507,7 @@ module Google
500
507
  # latest version of the image in that family. Replace the image name with family/
501
508
  # family-name:
502
509
  # global/images/family/my-private-family
510
+ # If the source image is deleted later, this field will not be set.
503
511
  # Corresponds to the JSON property `sourceImage`
504
512
  # @return [String]
505
513
  attr_accessor :source_image
@@ -524,6 +532,35 @@ module Google
524
532
  end
525
533
  end
526
534
 
535
+ # Enables "data access" audit logging for a service and specifies a list of
536
+ # members that are log-exempted.
537
+ class AuditConfig
538
+ include Google::Apis::Core::Hashable
539
+
540
+ # Specifies the identities that are exempted from "data access" audit logging
541
+ # for the `service` specified above. Follows the same format of Binding.members.
542
+ # Corresponds to the JSON property `exemptedMembers`
543
+ # @return [Array<String>]
544
+ attr_accessor :exempted_members
545
+
546
+ # Specifies a service that will be enabled for "data access" audit logging. For
547
+ # example, `resourcemanager`, `storage`, `compute`. `allServices` is a special
548
+ # value that covers all services.
549
+ # Corresponds to the JSON property `service`
550
+ # @return [String]
551
+ attr_accessor :service
552
+
553
+ def initialize(**args)
554
+ update!(**args)
555
+ end
556
+
557
+ # Update properties of this object
558
+ def update!(**args)
559
+ @exempted_members = args[:exempted_members] if args.key?(:exempted_members)
560
+ @service = args[:service] if args.key?(:service)
561
+ end
562
+ end
563
+
527
564
  # Represents an Autoscaler resource. Autoscalers allow you to automatically
528
565
  # scale virtual machine instances in managed instance groups according to an
529
566
  # autoscaling policy that you define. For more information, read Autoscaling
@@ -568,17 +605,36 @@ module Google
568
605
  # @return [String]
569
606
  attr_accessor :name
570
607
 
608
+ # [Output Only] URL of the region where the instance group resides (for
609
+ # autoscalers living in regional scope).
610
+ # Corresponds to the JSON property `region`
611
+ # @return [String]
612
+ attr_accessor :region
613
+
571
614
  # [Output Only] Server-defined URL for the resource.
572
615
  # Corresponds to the JSON property `selfLink`
573
616
  # @return [String]
574
617
  attr_accessor :self_link
575
618
 
619
+ # [Output Only] The status of the autoscaler configuration.
620
+ # Corresponds to the JSON property `status`
621
+ # @return [String]
622
+ attr_accessor :status
623
+
624
+ # [Output Only] Human-readable details about the current state of the autoscaler.
625
+ # Read the documentation for Commonly returned status messages for examples of
626
+ # status messages you might encounter.
627
+ # Corresponds to the JSON property `statusDetails`
628
+ # @return [Array<Google::Apis::ComputeBeta::AutoscalerStatusDetails>]
629
+ attr_accessor :status_details
630
+
576
631
  # URL of the managed instance group that this autoscaler will scale.
577
632
  # Corresponds to the JSON property `target`
578
633
  # @return [String]
579
634
  attr_accessor :target
580
635
 
581
- # [Output Only] URL of the zone where the instance group resides.
636
+ # [Output Only] URL of the zone where the instance group resides (for
637
+ # autoscalers living in zonal scope).
582
638
  # Corresponds to the JSON property `zone`
583
639
  # @return [String]
584
640
  attr_accessor :zone
@@ -595,7 +651,10 @@ module Google
595
651
  @id = args[:id] if args.key?(:id)
596
652
  @kind = args[:kind] if args.key?(:kind)
597
653
  @name = args[:name] if args.key?(:name)
654
+ @region = args[:region] if args.key?(:region)
598
655
  @self_link = args[:self_link] if args.key?(:self_link)
656
+ @status = args[:status] if args.key?(:status)
657
+ @status_details = args[:status_details] if args.key?(:status_details)
599
658
  @target = args[:target] if args.key?(:target)
600
659
  @zone = args[:zone] if args.key?(:zone)
601
660
  end
@@ -699,6 +758,31 @@ module Google
699
758
  end
700
759
  end
701
760
 
761
+ #
762
+ class AutoscalerStatusDetails
763
+ include Google::Apis::Core::Hashable
764
+
765
+ # The status message.
766
+ # Corresponds to the JSON property `message`
767
+ # @return [String]
768
+ attr_accessor :message
769
+
770
+ # The type of error returned.
771
+ # Corresponds to the JSON property `type`
772
+ # @return [String]
773
+ attr_accessor :type
774
+
775
+ def initialize(**args)
776
+ update!(**args)
777
+ end
778
+
779
+ # Update properties of this object
780
+ def update!(**args)
781
+ @message = args[:message] if args.key?(:message)
782
+ @type = args[:type] if args.key?(:type)
783
+ end
784
+ end
785
+
702
786
  #
703
787
  class AutoscalersScopedList
704
788
  include Google::Apis::Core::Hashable
@@ -855,7 +939,7 @@ module Google
855
939
  include Google::Apis::Core::Hashable
856
940
 
857
941
  # The target CPU utilization that the autoscaler should maintain. Must be a
858
- # float value in the range (0, 1]. If not specified, the default is 0.8.
942
+ # float value in the range (0, 1]. If not specified, the default is 0.6.
859
943
  # If the CPU level is below the target utilization, the autoscaler scales down
860
944
  # the number of instances until it reaches the minimum number of instances you
861
945
  # specified or until the average CPU of your instances reaches the target
@@ -881,12 +965,12 @@ module Google
881
965
  class AutoscalingPolicyCustomMetricUtilization
882
966
  include Google::Apis::Core::Hashable
883
967
 
884
- # The identifier of the Cloud Monitoring metric. The metric cannot have negative
885
- # values and should be a utilization metric, which means that the number of
886
- # virtual machines handling requests should increase or decrease proportionally
887
- # to the metric. The metric must also have a label of compute.googleapis.com/
888
- # resource_id with the value of the instance's unique ID, although this alone
889
- # does not guarantee that the metric is valid.
968
+ # The identifier of the Stackdriver Monitoring metric. The metric cannot have
969
+ # negative values and should be a utilization metric, which means that the
970
+ # number of virtual machines handling requests should increase or decrease
971
+ # proportionally to the metric. The metric must also have a label of compute.
972
+ # googleapis.com/resource_id with the value of the instance's unique ID,
973
+ # although this alone does not guarantee that the metric is valid.
890
974
  # For example, the following is a valid metric:
891
975
  # compute.googleapis.com/instance/network/received_bytes_count
892
976
  # The following is not a valid metric because it does not increase or decrease
@@ -902,7 +986,7 @@ module Google
902
986
  # @return [Float]
903
987
  attr_accessor :utilization_target
904
988
 
905
- # Defines how target utilization value is expressed for a Cloud Monitoring
989
+ # Defines how target utilization value is expressed for a Stackdriver Monitoring
906
990
  # metric. Either GAUGE, DELTA_PER_SECOND, or DELTA_PER_MINUTE. If not specified,
907
991
  # the default is GAUGE.
908
992
  # Corresponds to the JSON property `utilizationTargetType`
@@ -946,17 +1030,20 @@ module Google
946
1030
  class Backend
947
1031
  include Google::Apis::Core::Hashable
948
1032
 
949
- # Specifies the balancing mode for this backend. For global HTTP(S) load
950
- # balancing, the default is UTILIZATION. Valid values are UTILIZATION and RATE.
1033
+ # Specifies the balancing mode for this backend. For global HTTP(S) or TCP/SSL
1034
+ # load balancing, the default is UTILIZATION. Valid values are UTILIZATION, RATE
1035
+ # (for HTTP(S)) and CONNECTION (for TCP/SSL).
1036
+ # This cannot be used for internal load balancing.
951
1037
  # Corresponds to the JSON property `balancingMode`
952
1038
  # @return [String]
953
1039
  attr_accessor :balancing_mode
954
1040
 
955
- # A multiplier applied to the group's maximum servicing capacity (either
956
- # UTILIZATION or RATE). Default value is 1, which means the group will serve up
957
- # to 100% of its configured CPU or RPS (depending on balancingMode). A setting
958
- # of 0 means the group is completely drained, offering 0% of its available CPU
959
- # or RPS. Valid range is [0.0,1.0].
1041
+ # A multiplier applied to the group's maximum servicing capacity (based on
1042
+ # UTILIZATION, RATE or CONNECTION). Default value is 1, which means the group
1043
+ # will serve up to 100% of its configured capacity (depending on balancingMode).
1044
+ # A setting of 0 means the group is completely drained, offering 0% of its
1045
+ # available Capacity. Valid range is [0.0,1.0].
1046
+ # This cannot be used for internal load balancing.
960
1047
  # Corresponds to the JSON property `capacityScaler`
961
1048
  # @return [Float]
962
1049
  attr_accessor :capacity_scaler
@@ -974,13 +1061,33 @@ module Google
974
1061
  # Instance Group resource.
975
1062
  # Note that you must specify an Instance Group resource using the fully-
976
1063
  # qualified URL, rather than a partial URL.
1064
+ # When the BackendService has load balancing scheme INTERNAL, the instance group
1065
+ # must be in a zone within the same region as the BackendService.
977
1066
  # Corresponds to the JSON property `group`
978
1067
  # @return [String]
979
1068
  attr_accessor :group
980
1069
 
1070
+ # The max number of simultaneous connections for the group. Can be used with
1071
+ # either CONNECTION or UTILIZATION balancing modes. For CONNECTION mode, either
1072
+ # maxConnections or maxConnectionsPerInstance must be set.
1073
+ # This cannot be used for internal load balancing.
1074
+ # Corresponds to the JSON property `maxConnections`
1075
+ # @return [Fixnum]
1076
+ attr_accessor :max_connections
1077
+
1078
+ # The max number of simultaneous connections that a single backend instance can
1079
+ # handle. This is used to calculate the capacity of the group. Can be used in
1080
+ # either CONNECTION or UTILIZATION balancing modes. For CONNECTION mode, either
1081
+ # maxConnections or maxConnectionsPerInstance must be set.
1082
+ # This cannot be used for internal load balancing.
1083
+ # Corresponds to the JSON property `maxConnectionsPerInstance`
1084
+ # @return [Fixnum]
1085
+ attr_accessor :max_connections_per_instance
1086
+
981
1087
  # The max requests per second (RPS) of the group. Can be used with either RATE
982
1088
  # or UTILIZATION balancing modes, but required if RATE mode. For RATE mode,
983
1089
  # either maxRate or maxRatePerInstance must be set.
1090
+ # This cannot be used for internal load balancing.
984
1091
  # Corresponds to the JSON property `maxRate`
985
1092
  # @return [Fixnum]
986
1093
  attr_accessor :max_rate
@@ -989,12 +1096,14 @@ module Google
989
1096
  # This is used to calculate the capacity of the group. Can be used in either
990
1097
  # balancing mode. For RATE mode, either maxRate or maxRatePerInstance must be
991
1098
  # set.
1099
+ # This cannot be used for internal load balancing.
992
1100
  # Corresponds to the JSON property `maxRatePerInstance`
993
1101
  # @return [Float]
994
1102
  attr_accessor :max_rate_per_instance
995
1103
 
996
1104
  # Used when balancingMode is UTILIZATION. This ratio defines the CPU utilization
997
1105
  # target for the group. The default is 0.8. Valid range is [0.0, 1.0].
1106
+ # This cannot be used for internal load balancing.
998
1107
  # Corresponds to the JSON property `maxUtilization`
999
1108
  # @return [Float]
1000
1109
  attr_accessor :max_utilization
@@ -1009,22 +1118,148 @@ module Google
1009
1118
  @capacity_scaler = args[:capacity_scaler] if args.key?(:capacity_scaler)
1010
1119
  @description = args[:description] if args.key?(:description)
1011
1120
  @group = args[:group] if args.key?(:group)
1121
+ @max_connections = args[:max_connections] if args.key?(:max_connections)
1122
+ @max_connections_per_instance = args[:max_connections_per_instance] if args.key?(:max_connections_per_instance)
1012
1123
  @max_rate = args[:max_rate] if args.key?(:max_rate)
1013
1124
  @max_rate_per_instance = args[:max_rate_per_instance] if args.key?(:max_rate_per_instance)
1014
1125
  @max_utilization = args[:max_utilization] if args.key?(:max_utilization)
1015
1126
  end
1016
1127
  end
1017
1128
 
1129
+ # A BackendBucket resource. This resource defines a Cloud Storage bucket.
1130
+ class BackendBucket
1131
+ include Google::Apis::Core::Hashable
1132
+
1133
+ # Cloud Storage bucket name.
1134
+ # Corresponds to the JSON property `bucketName`
1135
+ # @return [String]
1136
+ attr_accessor :bucket_name
1137
+
1138
+ # [Output Only] Creation timestamp in RFC3339 text format.
1139
+ # Corresponds to the JSON property `creationTimestamp`
1140
+ # @return [String]
1141
+ attr_accessor :creation_timestamp
1142
+
1143
+ # An optional textual description of the resource; provided by the client when
1144
+ # the resource is created.
1145
+ # Corresponds to the JSON property `description`
1146
+ # @return [String]
1147
+ attr_accessor :description
1148
+
1149
+ # If true, enable Cloud CDN for this BackendBucket.
1150
+ # Corresponds to the JSON property `enableCdn`
1151
+ # @return [Boolean]
1152
+ attr_accessor :enable_cdn
1153
+ alias_method :enable_cdn?, :enable_cdn
1154
+
1155
+ # [Output Only] Unique identifier for the resource; defined by the server.
1156
+ # Corresponds to the JSON property `id`
1157
+ # @return [String]
1158
+ attr_accessor :id
1159
+
1160
+ # Type of the resource.
1161
+ # Corresponds to the JSON property `kind`
1162
+ # @return [String]
1163
+ attr_accessor :kind
1164
+
1165
+ # Name of the resource. Provided by the client when the resource is created. The
1166
+ # name must be 1-63 characters long, and comply with RFC1035. Specifically, the
1167
+ # name must be 1-63 characters long and match the regular expression [a-z]([-a-
1168
+ # z0-9]*[a-z0-9])? which means the first character must be a lowercase letter,
1169
+ # and all following characters must be a dash, lowercase letter, or digit,
1170
+ # except the last character, which cannot be a dash.
1171
+ # Corresponds to the JSON property `name`
1172
+ # @return [String]
1173
+ attr_accessor :name
1174
+
1175
+ # [Output Only] Server-defined URL for the resource.
1176
+ # Corresponds to the JSON property `selfLink`
1177
+ # @return [String]
1178
+ attr_accessor :self_link
1179
+
1180
+ def initialize(**args)
1181
+ update!(**args)
1182
+ end
1183
+
1184
+ # Update properties of this object
1185
+ def update!(**args)
1186
+ @bucket_name = args[:bucket_name] if args.key?(:bucket_name)
1187
+ @creation_timestamp = args[:creation_timestamp] if args.key?(:creation_timestamp)
1188
+ @description = args[:description] if args.key?(:description)
1189
+ @enable_cdn = args[:enable_cdn] if args.key?(:enable_cdn)
1190
+ @id = args[:id] if args.key?(:id)
1191
+ @kind = args[:kind] if args.key?(:kind)
1192
+ @name = args[:name] if args.key?(:name)
1193
+ @self_link = args[:self_link] if args.key?(:self_link)
1194
+ end
1195
+ end
1196
+
1197
+ # Contains a list of BackendBucket resources.
1198
+ class BackendBucketList
1199
+ include Google::Apis::Core::Hashable
1200
+
1201
+ # [Output Only] Unique identifier for the resource; defined by the server.
1202
+ # Corresponds to the JSON property `id`
1203
+ # @return [String]
1204
+ attr_accessor :id
1205
+
1206
+ # A list of BackendBucket resources.
1207
+ # Corresponds to the JSON property `items`
1208
+ # @return [Array<Google::Apis::ComputeBeta::BackendBucket>]
1209
+ attr_accessor :items
1210
+
1211
+ # Type of resource.
1212
+ # Corresponds to the JSON property `kind`
1213
+ # @return [String]
1214
+ attr_accessor :kind
1215
+
1216
+ # [Output Only] A token used to continue a truncated list request.
1217
+ # Corresponds to the JSON property `nextPageToken`
1218
+ # @return [String]
1219
+ attr_accessor :next_page_token
1220
+
1221
+ # [Output Only] Server-defined URL for this resource.
1222
+ # Corresponds to the JSON property `selfLink`
1223
+ # @return [String]
1224
+ attr_accessor :self_link
1225
+
1226
+ def initialize(**args)
1227
+ update!(**args)
1228
+ end
1229
+
1230
+ # Update properties of this object
1231
+ def update!(**args)
1232
+ @id = args[:id] if args.key?(:id)
1233
+ @items = args[:items] if args.key?(:items)
1234
+ @kind = args[:kind] if args.key?(:kind)
1235
+ @next_page_token = args[:next_page_token] if args.key?(:next_page_token)
1236
+ @self_link = args[:self_link] if args.key?(:self_link)
1237
+ end
1238
+ end
1239
+
1018
1240
  # A BackendService resource. This resource defines a group of backend virtual
1019
1241
  # machines and their serving capacity.
1020
1242
  class BackendService
1021
1243
  include Google::Apis::Core::Hashable
1022
1244
 
1245
+ # Lifetime of cookies in seconds if session_affinity is GENERATED_COOKIE. If set
1246
+ # to 0, the cookie is non-persistent and lasts only until the end of the browser
1247
+ # session (or equivalent). The maximum allowed value for TTL is one day.
1248
+ # When the load balancing scheme is INTERNAL, this field is not used.
1249
+ # Corresponds to the JSON property `affinityCookieTtlSec`
1250
+ # @return [Fixnum]
1251
+ attr_accessor :affinity_cookie_ttl_sec
1252
+
1023
1253
  # The list of backends that serve this BackendService.
1024
1254
  # Corresponds to the JSON property `backends`
1025
1255
  # @return [Array<Google::Apis::ComputeBeta::Backend>]
1026
1256
  attr_accessor :backends
1027
1257
 
1258
+ # Message containing connection draining configuration.
1259
+ # Corresponds to the JSON property `connectionDraining`
1260
+ # @return [Google::Apis::ComputeBeta::ConnectionDraining]
1261
+ attr_accessor :connection_draining
1262
+
1028
1263
  # [Output Only] Creation timestamp in RFC3339 text format.
1029
1264
  # Corresponds to the JSON property `creationTimestamp`
1030
1265
  # @return [String]
@@ -1037,6 +1272,7 @@ module Google
1037
1272
  attr_accessor :description
1038
1273
 
1039
1274
  # If true, enable Cloud CDN for this BackendService.
1275
+ # When the load balancing scheme is INTERNAL, this field is not used.
1040
1276
  # Corresponds to the JSON property `enableCDN`
1041
1277
  # @return [Boolean]
1042
1278
  attr_accessor :enable_cdn
@@ -1053,6 +1289,8 @@ module Google
1053
1289
  # The list of URLs to the HttpHealthCheck or HttpsHealthCheck resource for
1054
1290
  # health checking this BackendService. Currently at most one health check can be
1055
1291
  # specified, and a health check is required.
1292
+ # For internal load balancing, a URL to a HealthCheck resource must be specified
1293
+ # instead.
1056
1294
  # Corresponds to the JSON property `healthChecks`
1057
1295
  # @return [Array<String>]
1058
1296
  attr_accessor :health_checks
@@ -1069,6 +1307,11 @@ module Google
1069
1307
  # @return [String]
1070
1308
  attr_accessor :kind
1071
1309
 
1310
+ #
1311
+ # Corresponds to the JSON property `loadBalancingScheme`
1312
+ # @return [String]
1313
+ attr_accessor :load_balancing_scheme
1314
+
1072
1315
  # Name of the resource. Provided by the client when the resource is created. The
1073
1316
  # name must be 1-63 characters long, and comply with RFC1035. Specifically, the
1074
1317
  # name must be 1-63 characters long and match the regular expression [a-z]([-a-
@@ -1081,18 +1324,23 @@ module Google
1081
1324
 
1082
1325
  # Deprecated in favor of portName. The TCP port to connect on the backend. The
1083
1326
  # default value is 80.
1327
+ # This cannot be used for internal load balancing.
1084
1328
  # Corresponds to the JSON property `port`
1085
1329
  # @return [Fixnum]
1086
1330
  attr_accessor :port
1087
1331
 
1088
1332
  # Name of backend port. The same name should appear in the instance groups
1089
- # referenced by this service. Required.
1333
+ # referenced by this service. Required when the load balancing scheme is
1334
+ # EXTERNAL.
1335
+ # When the load balancing scheme is INTERNAL, this field is not used.
1090
1336
  # Corresponds to the JSON property `portName`
1091
1337
  # @return [String]
1092
1338
  attr_accessor :port_name
1093
1339
 
1094
1340
  # The protocol this BackendService uses to communicate with backends.
1095
- # Possible values are HTTP, HTTPS, HTTP2, TCP and SSL.
1341
+ # Possible values are HTTP, HTTPS, HTTP2, TCP and SSL. The default is HTTP.
1342
+ # For internal load balancing, the possible values are TCP and UDP, and the
1343
+ # default is TCP.
1096
1344
  # Corresponds to the JSON property `protocol`
1097
1345
  # @return [String]
1098
1346
  attr_accessor :protocol
@@ -1108,6 +1356,16 @@ module Google
1108
1356
  # @return [String]
1109
1357
  attr_accessor :self_link
1110
1358
 
1359
+ # Type of session affinity to use. The default is NONE.
1360
+ # When the load balancing scheme is EXTERNAL, can be NONE, CLIENT_IP, or
1361
+ # GENERATED_COOKIE.
1362
+ # When the load balancing scheme is INTERNAL, can be NONE, CLIENT_IP,
1363
+ # CLIENT_IP_PROTO, or CLIENT_IP_PORT_PROTO.
1364
+ # When the protocol is UDP, this field is not used.
1365
+ # Corresponds to the JSON property `sessionAffinity`
1366
+ # @return [String]
1367
+ attr_accessor :session_affinity
1368
+
1111
1369
  # How many seconds to wait for the backend before considering it a failed
1112
1370
  # request. Default is 30 seconds.
1113
1371
  # Corresponds to the JSON property `timeoutSec`
@@ -1120,7 +1378,9 @@ module Google
1120
1378
 
1121
1379
  # Update properties of this object
1122
1380
  def update!(**args)
1381
+ @affinity_cookie_ttl_sec = args[:affinity_cookie_ttl_sec] if args.key?(:affinity_cookie_ttl_sec)
1123
1382
  @backends = args[:backends] if args.key?(:backends)
1383
+ @connection_draining = args[:connection_draining] if args.key?(:connection_draining)
1124
1384
  @creation_timestamp = args[:creation_timestamp] if args.key?(:creation_timestamp)
1125
1385
  @description = args[:description] if args.key?(:description)
1126
1386
  @enable_cdn = args[:enable_cdn] if args.key?(:enable_cdn)
@@ -1128,16 +1388,61 @@ module Google
1128
1388
  @health_checks = args[:health_checks] if args.key?(:health_checks)
1129
1389
  @id = args[:id] if args.key?(:id)
1130
1390
  @kind = args[:kind] if args.key?(:kind)
1391
+ @load_balancing_scheme = args[:load_balancing_scheme] if args.key?(:load_balancing_scheme)
1131
1392
  @name = args[:name] if args.key?(:name)
1132
1393
  @port = args[:port] if args.key?(:port)
1133
1394
  @port_name = args[:port_name] if args.key?(:port_name)
1134
1395
  @protocol = args[:protocol] if args.key?(:protocol)
1135
1396
  @region = args[:region] if args.key?(:region)
1136
1397
  @self_link = args[:self_link] if args.key?(:self_link)
1398
+ @session_affinity = args[:session_affinity] if args.key?(:session_affinity)
1137
1399
  @timeout_sec = args[:timeout_sec] if args.key?(:timeout_sec)
1138
1400
  end
1139
1401
  end
1140
1402
 
1403
+ # Contains a list of BackendServicesScopedList.
1404
+ class BackendServiceAggregatedList
1405
+ include Google::Apis::Core::Hashable
1406
+
1407
+ # [Output Only] Unique identifier for the resource; defined by the server.
1408
+ # Corresponds to the JSON property `id`
1409
+ # @return [String]
1410
+ attr_accessor :id
1411
+
1412
+ # A map of scoped BackendService lists.
1413
+ # Corresponds to the JSON property `items`
1414
+ # @return [Hash<String,Google::Apis::ComputeBeta::BackendServicesScopedList>]
1415
+ attr_accessor :items
1416
+
1417
+ # Type of resource.
1418
+ # Corresponds to the JSON property `kind`
1419
+ # @return [String]
1420
+ attr_accessor :kind
1421
+
1422
+ # [Output Only] A token used to continue a truncated list request.
1423
+ # Corresponds to the JSON property `nextPageToken`
1424
+ # @return [String]
1425
+ attr_accessor :next_page_token
1426
+
1427
+ # [Output Only] Server-defined URL for this resource.
1428
+ # Corresponds to the JSON property `selfLink`
1429
+ # @return [String]
1430
+ attr_accessor :self_link
1431
+
1432
+ def initialize(**args)
1433
+ update!(**args)
1434
+ end
1435
+
1436
+ # Update properties of this object
1437
+ def update!(**args)
1438
+ @id = args[:id] if args.key?(:id)
1439
+ @items = args[:items] if args.key?(:items)
1440
+ @kind = args[:kind] if args.key?(:kind)
1441
+ @next_page_token = args[:next_page_token] if args.key?(:next_page_token)
1442
+ @self_link = args[:self_link] if args.key?(:self_link)
1443
+ end
1444
+ end
1445
+
1141
1446
  #
1142
1447
  class BackendServiceGroupHealth
1143
1448
  include Google::Apis::Core::Hashable
@@ -1168,8 +1473,7 @@ module Google
1168
1473
  class BackendServiceList
1169
1474
  include Google::Apis::Core::Hashable
1170
1475
 
1171
- # [Output Only] The unique identifier for the resource. This identifier is
1172
- # defined by the server.
1476
+ # [Output Only] Unique identifier for the resource; defined by the server.
1173
1477
  # Corresponds to the JSON property `id`
1174
1478
  # @return [String]
1175
1479
  attr_accessor :id
@@ -1185,11 +1489,7 @@ module Google
1185
1489
  # @return [String]
1186
1490
  attr_accessor :kind
1187
1491
 
1188
- # [Output Only] This token allows you to get the next page of results for list
1189
- # requests. If the number of results is larger than maxResults, use the
1190
- # nextPageToken as a value for the query parameter pageToken in the next list
1191
- # request. Subsequent list requests will have their own nextPageToken to
1192
- # continue paging through the results.
1492
+ # [Output Only] A token used to continue a truncated list request.
1193
1493
  # Corresponds to the JSON property `nextPageToken`
1194
1494
  # @return [String]
1195
1495
  attr_accessor :next_page_token
@@ -1214,51 +1514,19 @@ module Google
1214
1514
  end
1215
1515
 
1216
1516
  #
1217
- class CacheInvalidationRule
1218
- include Google::Apis::Core::Hashable
1219
-
1220
- #
1221
- # Corresponds to the JSON property `path`
1222
- # @return [String]
1223
- attr_accessor :path
1224
-
1225
- def initialize(**args)
1226
- update!(**args)
1227
- end
1228
-
1229
- # Update properties of this object
1230
- def update!(**args)
1231
- @path = args[:path] if args.key?(:path)
1232
- end
1233
- end
1234
-
1235
- # Represents a customer-supplied encryption key
1236
- class CustomerEncryptionKey
1517
+ class BackendServicesScopedList
1237
1518
  include Google::Apis::Core::Hashable
1238
1519
 
1239
- # Specifies a 256-bit customer-supplied encryption key, encoded in base64 to
1240
- # either encrypt or decrypt this resource.
1241
- # Corresponds to the JSON property `rawKey`
1242
- # @return [String]
1243
- attr_accessor :raw_key
1244
-
1245
- # Specifies a base64 encoded, RSA-wrapped 2048-bit customer-supplied encryption
1246
- # key to either encrypt or decrypt this resource.
1247
- # The key must meet the following requirements before you can provide it to
1248
- # Compute Engine:
1249
- # - The key is wrapped using a RSA public key certificate provided by Google.
1250
- # - After being wrapped, the key must be encoded in base64 encoding. Get the
1251
- # RSA public key certificate provided by Google at:
1252
- # https://cloud-certs.storage.googleapis.com/google-cloud-csek-ingress.pem
1253
- # Corresponds to the JSON property `rsaEncryptedKey`
1254
- # @return [String]
1255
- attr_accessor :rsa_encrypted_key
1520
+ # List of BackendServices contained in this scope.
1521
+ # Corresponds to the JSON property `backendServices`
1522
+ # @return [Array<Google::Apis::ComputeBeta::BackendService>]
1523
+ attr_accessor :backend_services
1256
1524
 
1257
- # [Output only] The base64 encoded SHA-256 hash of the customer-supplied
1258
- # encryption key that protects this resource.
1259
- # Corresponds to the JSON property `sha256`
1260
- # @return [String]
1261
- attr_accessor :sha256
1525
+ # Informational warning which replaces the list of backend services when the
1526
+ # list is empty.
1527
+ # Corresponds to the JSON property `warning`
1528
+ # @return [Google::Apis::ComputeBeta::BackendServicesScopedList::Warning]
1529
+ attr_accessor :warning
1262
1530
 
1263
1531
  def initialize(**args)
1264
1532
  update!(**args)
@@ -1266,14 +1534,253 @@ module Google
1266
1534
 
1267
1535
  # Update properties of this object
1268
1536
  def update!(**args)
1269
- @raw_key = args[:raw_key] if args.key?(:raw_key)
1270
- @rsa_encrypted_key = args[:rsa_encrypted_key] if args.key?(:rsa_encrypted_key)
1271
- @sha256 = args[:sha256] if args.key?(:sha256)
1537
+ @backend_services = args[:backend_services] if args.key?(:backend_services)
1538
+ @warning = args[:warning] if args.key?(:warning)
1272
1539
  end
1273
- end
1274
-
1275
- #
1276
- class CustomerEncryptionKeyProtectedDisk
1540
+
1541
+ # Informational warning which replaces the list of backend services when the
1542
+ # list is empty.
1543
+ class Warning
1544
+ include Google::Apis::Core::Hashable
1545
+
1546
+ # [Output Only] A warning code, if applicable. For example, Compute Engine
1547
+ # returns NO_RESULTS_ON_PAGE if there are no results in the response.
1548
+ # Corresponds to the JSON property `code`
1549
+ # @return [String]
1550
+ attr_accessor :code
1551
+
1552
+ # [Output Only] Metadata about this warning in key: value format. For example:
1553
+ # "data": [ ` "key": "scope", "value": "zones/us-east1-d" `
1554
+ # Corresponds to the JSON property `data`
1555
+ # @return [Array<Google::Apis::ComputeBeta::BackendServicesScopedList::Warning::Datum>]
1556
+ attr_accessor :data
1557
+
1558
+ # [Output Only] A human-readable description of the warning code.
1559
+ # Corresponds to the JSON property `message`
1560
+ # @return [String]
1561
+ attr_accessor :message
1562
+
1563
+ def initialize(**args)
1564
+ update!(**args)
1565
+ end
1566
+
1567
+ # Update properties of this object
1568
+ def update!(**args)
1569
+ @code = args[:code] if args.key?(:code)
1570
+ @data = args[:data] if args.key?(:data)
1571
+ @message = args[:message] if args.key?(:message)
1572
+ end
1573
+
1574
+ #
1575
+ class Datum
1576
+ include Google::Apis::Core::Hashable
1577
+
1578
+ # [Output Only] A key that provides more detail on the warning being returned.
1579
+ # For example, for warnings where there are no results in a list request for a
1580
+ # particular zone, this key might be scope and the key value might be the zone
1581
+ # name. Other examples might be a key indicating a deprecated resource and a
1582
+ # suggested replacement, or a warning about invalid network settings (for
1583
+ # example, if an instance attempts to perform IP forwarding but is not enabled
1584
+ # for IP forwarding).
1585
+ # Corresponds to the JSON property `key`
1586
+ # @return [String]
1587
+ attr_accessor :key
1588
+
1589
+ # [Output Only] A warning data value corresponding to the key.
1590
+ # Corresponds to the JSON property `value`
1591
+ # @return [String]
1592
+ attr_accessor :value
1593
+
1594
+ def initialize(**args)
1595
+ update!(**args)
1596
+ end
1597
+
1598
+ # Update properties of this object
1599
+ def update!(**args)
1600
+ @key = args[:key] if args.key?(:key)
1601
+ @value = args[:value] if args.key?(:value)
1602
+ end
1603
+ end
1604
+ end
1605
+ end
1606
+
1607
+ # Associates `members` with a `role`.
1608
+ class Binding
1609
+ include Google::Apis::Core::Hashable
1610
+
1611
+ # Specifies the identities requesting access for a Cloud Platform resource. `
1612
+ # members` can have the following values:
1613
+ # * `allUsers`: A special identifier that represents anyone who is on the
1614
+ # internet; with or without a Google account.
1615
+ # * `allAuthenticatedUsers`: A special identifier that represents anyone who is
1616
+ # authenticated with a Google account or a service account.
1617
+ # * `user:`emailid``: An email address that represents a specific Google account.
1618
+ # For example, `alice@gmail.com` or `joe@example.com`.
1619
+ # * `serviceAccount:`emailid``: An email address that represents a service
1620
+ # account. For example, `my-other-app@appspot.gserviceaccount.com`.
1621
+ # * `group:`emailid``: An email address that represents a Google group. For
1622
+ # example, `admins@example.com`.
1623
+ # * `domain:`domain``: A Google Apps domain name that represents all the users
1624
+ # of that domain. For example, `google.com` or `example.com`.
1625
+ # Corresponds to the JSON property `members`
1626
+ # @return [Array<String>]
1627
+ attr_accessor :members
1628
+
1629
+ # Role that is assigned to `members`. For example, `roles/viewer`, `roles/editor`
1630
+ # , or `roles/owner`.
1631
+ # Corresponds to the JSON property `role`
1632
+ # @return [String]
1633
+ attr_accessor :role
1634
+
1635
+ def initialize(**args)
1636
+ update!(**args)
1637
+ end
1638
+
1639
+ # Update properties of this object
1640
+ def update!(**args)
1641
+ @members = args[:members] if args.key?(:members)
1642
+ @role = args[:role] if args.key?(:role)
1643
+ end
1644
+ end
1645
+
1646
+ #
1647
+ class CacheInvalidationRule
1648
+ include Google::Apis::Core::Hashable
1649
+
1650
+ # If set, this invalidation rule will only apply to requests with a Host header
1651
+ # matching host.
1652
+ # Corresponds to the JSON property `host`
1653
+ # @return [String]
1654
+ attr_accessor :host
1655
+
1656
+ #
1657
+ # Corresponds to the JSON property `path`
1658
+ # @return [String]
1659
+ attr_accessor :path
1660
+
1661
+ def initialize(**args)
1662
+ update!(**args)
1663
+ end
1664
+
1665
+ # Update properties of this object
1666
+ def update!(**args)
1667
+ @host = args[:host] if args.key?(:host)
1668
+ @path = args[:path] if args.key?(:path)
1669
+ end
1670
+ end
1671
+
1672
+ # A condition to be met.
1673
+ class Condition
1674
+ include Google::Apis::Core::Hashable
1675
+
1676
+ # Trusted attributes supplied by the IAM system.
1677
+ # Corresponds to the JSON property `iam`
1678
+ # @return [String]
1679
+ attr_accessor :iam
1680
+
1681
+ # An operator to apply the subject with.
1682
+ # Corresponds to the JSON property `op`
1683
+ # @return [String]
1684
+ attr_accessor :op
1685
+
1686
+ # Trusted attributes discharged by the service.
1687
+ # Corresponds to the JSON property `svc`
1688
+ # @return [String]
1689
+ attr_accessor :svc
1690
+
1691
+ # Trusted attributes supplied by any service that owns resources and uses the
1692
+ # IAM system for access control.
1693
+ # Corresponds to the JSON property `sys`
1694
+ # @return [String]
1695
+ attr_accessor :sys
1696
+
1697
+ # DEPRECATED. Use 'values' instead.
1698
+ # Corresponds to the JSON property `value`
1699
+ # @return [String]
1700
+ attr_accessor :value
1701
+
1702
+ # The objects of the condition. This is mutually exclusive with 'value'.
1703
+ # Corresponds to the JSON property `values`
1704
+ # @return [Array<String>]
1705
+ attr_accessor :values
1706
+
1707
+ def initialize(**args)
1708
+ update!(**args)
1709
+ end
1710
+
1711
+ # Update properties of this object
1712
+ def update!(**args)
1713
+ @iam = args[:iam] if args.key?(:iam)
1714
+ @op = args[:op] if args.key?(:op)
1715
+ @svc = args[:svc] if args.key?(:svc)
1716
+ @sys = args[:sys] if args.key?(:sys)
1717
+ @value = args[:value] if args.key?(:value)
1718
+ @values = args[:values] if args.key?(:values)
1719
+ end
1720
+ end
1721
+
1722
+ # Message containing connection draining configuration.
1723
+ class ConnectionDraining
1724
+ include Google::Apis::Core::Hashable
1725
+
1726
+ # Time for which instance will be drained (not accept new connections, but still
1727
+ # work to finish started).
1728
+ # Corresponds to the JSON property `drainingTimeoutSec`
1729
+ # @return [Fixnum]
1730
+ attr_accessor :draining_timeout_sec
1731
+
1732
+ def initialize(**args)
1733
+ update!(**args)
1734
+ end
1735
+
1736
+ # Update properties of this object
1737
+ def update!(**args)
1738
+ @draining_timeout_sec = args[:draining_timeout_sec] if args.key?(:draining_timeout_sec)
1739
+ end
1740
+ end
1741
+
1742
+ # Represents a customer-supplied encryption key
1743
+ class CustomerEncryptionKey
1744
+ include Google::Apis::Core::Hashable
1745
+
1746
+ # Specifies a 256-bit customer-supplied encryption key, encoded in RFC 4648
1747
+ # base64 to either encrypt or decrypt this resource.
1748
+ # Corresponds to the JSON property `rawKey`
1749
+ # @return [String]
1750
+ attr_accessor :raw_key
1751
+
1752
+ # Specifies an RFC 4648 base64 encoded, RSA-wrapped 2048-bit customer-supplied
1753
+ # encryption key to either encrypt or decrypt this resource.
1754
+ # The key must meet the following requirements before you can provide it to
1755
+ # Compute Engine:
1756
+ # - The key is wrapped using a RSA public key certificate provided by Google.
1757
+ # - After being wrapped, the key must be encoded in RFC 4648 base64 encoding.
1758
+ # Get the RSA public key certificate provided by Google at:
1759
+ # https://cloud-certs.storage.googleapis.com/google-cloud-csek-ingress.pem
1760
+ # Corresponds to the JSON property `rsaEncryptedKey`
1761
+ # @return [String]
1762
+ attr_accessor :rsa_encrypted_key
1763
+
1764
+ # [Output only] The RFC 4648 base64 encoded SHA-256 hash of the customer-
1765
+ # supplied encryption key that protects this resource.
1766
+ # Corresponds to the JSON property `sha256`
1767
+ # @return [String]
1768
+ attr_accessor :sha256
1769
+
1770
+ def initialize(**args)
1771
+ update!(**args)
1772
+ end
1773
+
1774
+ # Update properties of this object
1775
+ def update!(**args)
1776
+ @raw_key = args[:raw_key] if args.key?(:raw_key)
1777
+ @rsa_encrypted_key = args[:rsa_encrypted_key] if args.key?(:rsa_encrypted_key)
1778
+ @sha256 = args[:sha256] if args.key?(:sha256)
1779
+ end
1780
+ end
1781
+
1782
+ #
1783
+ class CustomerEncryptionKeyProtectedDisk
1277
1784
  include Google::Apis::Core::Hashable
1278
1785
 
1279
1786
  # Represents a customer-supplied encryption key
@@ -1302,20 +1809,23 @@ module Google
1302
1809
  class DeprecationStatus
1303
1810
  include Google::Apis::Core::Hashable
1304
1811
 
1305
- # An optional RFC3339 timestamp on or after which the deprecation state of this
1306
- # resource will be changed to DELETED.
1812
+ # An optional RFC3339 timestamp on or after which the state of this resource is
1813
+ # intended to change to DELETED. This is only informational and the status will
1814
+ # not change unless the client explicitly changes it.
1307
1815
  # Corresponds to the JSON property `deleted`
1308
1816
  # @return [String]
1309
1817
  attr_accessor :deleted
1310
1818
 
1311
- # An optional RFC3339 timestamp on or after which the deprecation state of this
1312
- # resource will be changed to DEPRECATED.
1819
+ # An optional RFC3339 timestamp on or after which the state of this resource is
1820
+ # intended to change to DEPRECATED. This is only informational and the status
1821
+ # will not change unless the client explicitly changes it.
1313
1822
  # Corresponds to the JSON property `deprecated`
1314
1823
  # @return [String]
1315
1824
  attr_accessor :deprecated
1316
1825
 
1317
- # An optional RFC3339 timestamp on or after which the deprecation state of this
1318
- # resource will be changed to OBSOLETE.
1826
+ # An optional RFC3339 timestamp on or after which the state of this resource is
1827
+ # intended to change to OBSOLETE. This is only informational and the status will
1828
+ # not change unless the client explicitly changes it.
1319
1829
  # Corresponds to the JSON property `obsolete`
1320
1830
  # @return [String]
1321
1831
  attr_accessor :obsolete
@@ -1408,7 +1918,7 @@ module Google
1408
1918
  # @return [String]
1409
1919
  attr_accessor :last_detach_timestamp
1410
1920
 
1411
- # [Output Only] Any applicable publicly visible licenses.
1921
+ # Any applicable publicly visible licenses.
1412
1922
  # Corresponds to the JSON property `licenses`
1413
1923
  # @return [Array<String>]
1414
1924
  attr_accessor :licenses
@@ -1501,8 +2011,7 @@ module Google
1501
2011
  # @return [String]
1502
2012
  attr_accessor :source_snapshot_id
1503
2013
 
1504
- # [Output Only] The status of disk creation. Applicable statuses includes:
1505
- # CREATING, FAILED, READY, RESTORING.
2014
+ # [Output Only] The status of disk creation.
1506
2015
  # Corresponds to the JSON property `status`
1507
2016
  # @return [String]
1508
2017
  attr_accessor :status
@@ -2069,8 +2578,8 @@ module Google
2069
2578
  class Firewall
2070
2579
  include Google::Apis::Core::Hashable
2071
2580
 
2072
- # The list of rules specified by this firewall. Each rule specifies a protocol
2073
- # and port-range tuple that describes a permitted connection.
2581
+ # The list of ALLOW rules specified by this firewall. Each rule specifies a
2582
+ # protocol and port-range tuple that describes a permitted connection.
2074
2583
  # Corresponds to the JSON property `allowed`
2075
2584
  # @return [Array<Google::Apis::ComputeBeta::Firewall::Allowed>]
2076
2585
  attr_accessor :allowed
@@ -2125,24 +2634,25 @@ module Google
2125
2634
  # @return [String]
2126
2635
  attr_accessor :self_link
2127
2636
 
2128
- # The IP address blocks that this rule applies to, expressed in CIDR format. One
2129
- # or both of sourceRanges and sourceTags may be set.
2130
- # If both properties are set, an inbound connection is allowed if the range
2131
- # matches the sourceRanges OR the tag of the source matches the sourceTags
2132
- # property. The connection does not need to match both properties.
2637
+ # If source ranges are specified, the firewall will apply only to traffic that
2638
+ # has source IP address in these ranges. These ranges must be expressed in CIDR
2639
+ # format. One or both of sourceRanges and sourceTags may be set. If both
2640
+ # properties are set, the firewall will apply to traffic that has source IP
2641
+ # address within sourceRanges OR the source IP that belongs to a tag listed in
2642
+ # the sourceTags property. The connection does not need to match both properties
2643
+ # for the firewall to apply.
2133
2644
  # Corresponds to the JSON property `sourceRanges`
2134
2645
  # @return [Array<String>]
2135
2646
  attr_accessor :source_ranges
2136
2647
 
2137
- # A list of instance tags which this rule applies to. One or both of
2138
- # sourceRanges and sourceTags may be set.
2139
- # If both properties are set, an inbound connection is allowed if the range
2140
- # matches the sourceRanges OR the tag of the source matches the sourceTags
2141
- # property. The connection does not need to match both properties.
2142
- # Source tags cannot be used to allow access to an instance's external IP
2143
- # address. Because tags are associated with an instance, not an IP address,
2144
- # source tags can only be used to control traffic traveling from an instance
2145
- # inside the same network as the firewall.
2648
+ # If source tags are specified, the firewall will apply only to traffic with
2649
+ # source IP that belongs to a tag listed in source tags. Source tags cannot be
2650
+ # used to control traffic to an instance's external IP address. Because tags are
2651
+ # associated with an instance, not an IP address. One or both of sourceRanges
2652
+ # and sourceTags may be set. If both properties are set, the firewall will apply
2653
+ # to traffic that has source IP address within sourceRanges OR the source IP
2654
+ # that belongs to a tag listed in the sourceTags property. The connection does
2655
+ # not need to match both properties for the firewall to apply.
2146
2656
  # Corresponds to the JSON property `sourceTags`
2147
2657
  # @return [Array<String>]
2148
2658
  attr_accessor :source_tags
@@ -2178,17 +2688,17 @@ module Google
2178
2688
  class Allowed
2179
2689
  include Google::Apis::Core::Hashable
2180
2690
 
2181
- # The IP protocol that is allowed for this rule. The protocol type is required
2182
- # when creating a firewall rule. This value can either be one of the following
2183
- # well known protocol strings (tcp, udp, icmp, esp, ah, sctp), or the IP
2184
- # protocol number.
2691
+ # The IP protocol to which this rule applies. The protocol type is required when
2692
+ # creating a firewall rule. This value can either be one of the following well
2693
+ # known protocol strings (tcp, udp, icmp, esp, ah, sctp), or the IP protocol
2694
+ # number.
2185
2695
  # Corresponds to the JSON property `IPProtocol`
2186
2696
  # @return [String]
2187
2697
  attr_accessor :ip_protocol
2188
2698
 
2189
- # An optional list of ports which are allowed. This field is only applicable for
2190
- # UDP or TCP protocol. Each entry must be either an integer or a range. If not
2191
- # specified, connections through any port are allowed
2699
+ # An optional list of ports to which this rule applies. This field is only
2700
+ # applicable for UDP or TCP protocol. Each entry must be either an integer or a
2701
+ # range. If not specified, this rule applies to connections through any port.
2192
2702
  # Example inputs include: ["22"], ["80","443"], and ["12345-12349"].
2193
2703
  # Corresponds to the JSON property `ports`
2194
2704
  # @return [Array<String>]
@@ -2261,21 +2771,34 @@ module Google
2261
2771
  class ForwardingRule
2262
2772
  include Google::Apis::Core::Hashable
2263
2773
 
2264
- # Value of the reserved IP address that this forwarding rule is serving on
2265
- # behalf of. For global forwarding rules, the address must be a global IP; for
2266
- # regional forwarding rules, the address must live in the same region as the
2267
- # forwarding rule. If left empty (default value), an ephemeral IP from the same
2268
- # scope (global or regional) will be assigned.
2774
+ # The IP address that this forwarding rule is serving on behalf of.
2775
+ # For global forwarding rules, the address must be a global IP; for regional
2776
+ # forwarding rules, the address must live in the same region as the forwarding
2777
+ # rule. By default, this field is empty and an ephemeral IP from the same scope (
2778
+ # global or regional) will be assigned.
2779
+ # When the load balancing scheme is INTERNAL, this can only be an RFC 1918 IP
2780
+ # address belonging to the network/subnetwork configured for the forwarding rule.
2781
+ # A reserved address cannot be used. If the field is empty, the IP address will
2782
+ # be automatically allocated from the internal IP range of the subnetwork or
2783
+ # network configured for this forwarding rule.
2269
2784
  # Corresponds to the JSON property `IPAddress`
2270
2785
  # @return [String]
2271
2786
  attr_accessor :ip_address
2272
2787
 
2273
2788
  # The IP protocol to which this rule applies. Valid options are TCP, UDP, ESP,
2274
2789
  # AH, SCTP or ICMP.
2790
+ # When the load balancing scheme is INTERNAL</code, only TCP and UDP are valid.
2275
2791
  # Corresponds to the JSON property `IPProtocol`
2276
2792
  # @return [String]
2277
2793
  attr_accessor :ip_protocol
2278
2794
 
2795
+ # This field is not used for external load balancing.
2796
+ # For internal load balancing, this field identifies the BackendService resource
2797
+ # to receive the matched traffic.
2798
+ # Corresponds to the JSON property `backendService`
2799
+ # @return [String]
2800
+ attr_accessor :backend_service
2801
+
2279
2802
  # [Output Only] Creation timestamp in RFC3339 text format.
2280
2803
  # Corresponds to the JSON property `creationTimestamp`
2281
2804
  # @return [String]
@@ -2299,6 +2822,15 @@ module Google
2299
2822
  # @return [String]
2300
2823
  attr_accessor :kind
2301
2824
 
2825
+ # This signifies what the ForwardingRule will be used for and can only take the
2826
+ # following values: INTERNAL EXTERNAL The value of INTERNAL means that this will
2827
+ # be used for Internal Network Load Balancing (TCP, UDP). The value of EXTERNAL
2828
+ # means that this will be used for External Load Balancing (HTTP(S) LB, External
2829
+ # TCP/UDP LB, SSL Proxy)
2830
+ # Corresponds to the JSON property `loadBalancingScheme`
2831
+ # @return [String]
2832
+ attr_accessor :load_balancing_scheme
2833
+
2302
2834
  # Name of the resource; provided by the client when the resource is created. The
2303
2835
  # name must be 1-63 characters long, and comply with RFC1035. Specifically, the
2304
2836
  # name must be 1-63 characters long and match the regular expression [a-z]([-a-
@@ -2309,13 +2841,32 @@ module Google
2309
2841
  # @return [String]
2310
2842
  attr_accessor :name
2311
2843
 
2844
+ # This field is not used for external load balancing.
2845
+ # For internal load balancing, this field identifies the network that the load
2846
+ # balanced IP should belong to for this Forwarding Rule. If this field is not
2847
+ # specified, the default network will be used.
2848
+ # Corresponds to the JSON property `network`
2849
+ # @return [String]
2850
+ attr_accessor :network
2851
+
2312
2852
  # Applicable only when IPProtocol is TCP, UDP, or SCTP, only packets addressed
2313
2853
  # to ports in the specified range will be forwarded to target. Forwarding rules
2314
2854
  # with the same [IPAddress, IPProtocol] pair must have disjoint port ranges.
2855
+ # This field is not used for internal load balancing.
2315
2856
  # Corresponds to the JSON property `portRange`
2316
2857
  # @return [String]
2317
2858
  attr_accessor :port_range
2318
2859
 
2860
+ # This field is not used for external load balancing.
2861
+ # When the load balancing scheme is INTERNAL, a single port or a comma separated
2862
+ # list of ports can be configured. Only packets addressed to these ports will be
2863
+ # forwarded to the backends configured with this forwarding rule. If the port
2864
+ # list is not provided then all ports are allowed to pass through.
2865
+ # You may specify a maximum of up to 5 ports.
2866
+ # Corresponds to the JSON property `ports`
2867
+ # @return [Array<String>]
2868
+ attr_accessor :ports
2869
+
2319
2870
  # [Output Only] URL of the region where the regional forwarding rule resides.
2320
2871
  # This field is not applicable to global forwarding rules.
2321
2872
  # Corresponds to the JSON property `region`
@@ -2327,12 +2878,23 @@ module Google
2327
2878
  # @return [String]
2328
2879
  attr_accessor :self_link
2329
2880
 
2881
+ # This field is not used for external load balancing.
2882
+ # For internal load balancing, this field identifies the subnetwork that the
2883
+ # load balanced IP should belong to for this Forwarding Rule.
2884
+ # If the network specified is in auto subnet mode, this field is optional.
2885
+ # However, if the network is in custom subnet mode, a subnetwork must be
2886
+ # specified.
2887
+ # Corresponds to the JSON property `subnetwork`
2888
+ # @return [String]
2889
+ attr_accessor :subnetwork
2890
+
2330
2891
  # The URL of the target resource to receive the matched traffic. For regional
2331
2892
  # forwarding rules, this target must live in the same region as the forwarding
2332
2893
  # rule. For global forwarding rules, this target must be a global
2333
2894
  # TargetHttpProxy or TargetHttpsProxy resource. The forwarded traffic must be of
2334
2895
  # a type appropriate to the target object. For example, TargetHttpProxy requires
2335
2896
  # HTTP traffic, and TargetHttpsProxy requires HTTPS traffic.
2897
+ # This field is not used for internal load balancing.
2336
2898
  # Corresponds to the JSON property `target`
2337
2899
  # @return [String]
2338
2900
  attr_accessor :target
@@ -2345,14 +2907,19 @@ module Google
2345
2907
  def update!(**args)
2346
2908
  @ip_address = args[:ip_address] if args.key?(:ip_address)
2347
2909
  @ip_protocol = args[:ip_protocol] if args.key?(:ip_protocol)
2910
+ @backend_service = args[:backend_service] if args.key?(:backend_service)
2348
2911
  @creation_timestamp = args[:creation_timestamp] if args.key?(:creation_timestamp)
2349
2912
  @description = args[:description] if args.key?(:description)
2350
2913
  @id = args[:id] if args.key?(:id)
2351
2914
  @kind = args[:kind] if args.key?(:kind)
2915
+ @load_balancing_scheme = args[:load_balancing_scheme] if args.key?(:load_balancing_scheme)
2352
2916
  @name = args[:name] if args.key?(:name)
2917
+ @network = args[:network] if args.key?(:network)
2353
2918
  @port_range = args[:port_range] if args.key?(:port_range)
2919
+ @ports = args[:ports] if args.key?(:ports)
2354
2920
  @region = args[:region] if args.key?(:region)
2355
2921
  @self_link = args[:self_link] if args.key?(:self_link)
2922
+ @subnetwork = args[:subnetwork] if args.key?(:subnetwork)
2356
2923
  @target = args[:target] if args.key?(:target)
2357
2924
  end
2358
2925
  end
@@ -2579,19 +3146,15 @@ module Google
2579
3146
  end
2580
3147
  end
2581
3148
 
2582
- # A full or valid partial URL to a health check. For example, the following are
2583
- # valid URLs:
2584
- # - https://www.googleapis.com/compute/beta/projects/project-id/global/
2585
- # httpHealthChecks/health-check
2586
- # - projects/project-id/global/httpHealthChecks/health-check
2587
- # - global/httpHealthChecks/health-check
2588
- class HealthCheckReference
3149
+ # Guest OS features.
3150
+ class GuestOsFeature
2589
3151
  include Google::Apis::Core::Hashable
2590
3152
 
2591
- #
2592
- # Corresponds to the JSON property `healthCheck`
3153
+ # The type of supported feature. Currenty only VIRTIO_SCSI_MULTIQUEUE is
3154
+ # supported.
3155
+ # Corresponds to the JSON property `type`
2593
3156
  # @return [String]
2594
- attr_accessor :health_check
3157
+ attr_accessor :type
2595
3158
 
2596
3159
  def initialize(**args)
2597
3160
  update!(**args)
@@ -2599,33 +3162,42 @@ module Google
2599
3162
 
2600
3163
  # Update properties of this object
2601
3164
  def update!(**args)
2602
- @health_check = args[:health_check] if args.key?(:health_check)
3165
+ @type = args[:type] if args.key?(:type)
2603
3166
  end
2604
3167
  end
2605
3168
 
2606
3169
  #
2607
- class HealthStatus
3170
+ class Http2HealthCheck
2608
3171
  include Google::Apis::Core::Hashable
2609
3172
 
2610
- # Health state of the instance.
2611
- # Corresponds to the JSON property `healthState`
3173
+ # The value of the host header in the HTTP/2 health check request. If left empty
3174
+ # (default value), the IP on behalf of which this health check is performed will
3175
+ # be used.
3176
+ # Corresponds to the JSON property `host`
2612
3177
  # @return [String]
2613
- attr_accessor :health_state
3178
+ attr_accessor :host
2614
3179
 
2615
- # URL of the instance resource.
2616
- # Corresponds to the JSON property `instance`
3180
+ # The TCP port number for the health check request. The default value is 443.
3181
+ # Corresponds to the JSON property `port`
3182
+ # @return [Fixnum]
3183
+ attr_accessor :port
3184
+
3185
+ # Port name as defined in InstanceGroup#NamedPort#name. If both port and
3186
+ # port_name are defined, port takes precedence.
3187
+ # Corresponds to the JSON property `portName`
2617
3188
  # @return [String]
2618
- attr_accessor :instance
3189
+ attr_accessor :port_name
2619
3190
 
2620
- # The IP address represented by this resource.
2621
- # Corresponds to the JSON property `ipAddress`
3191
+ # Specifies the type of proxy header to append before sending data to the
3192
+ # backend, either NONE or PROXY_V1. The default is NONE.
3193
+ # Corresponds to the JSON property `proxyHeader`
2622
3194
  # @return [String]
2623
- attr_accessor :ip_address
3195
+ attr_accessor :proxy_header
2624
3196
 
2625
- # The port on the instance.
2626
- # Corresponds to the JSON property `port`
2627
- # @return [Fixnum]
2628
- attr_accessor :port
3197
+ # The request path of the HTTP/2 health check request. The default value is /.
3198
+ # Corresponds to the JSON property `requestPath`
3199
+ # @return [String]
3200
+ attr_accessor :request_path
2629
3201
 
2630
3202
  def initialize(**args)
2631
3203
  update!(**args)
@@ -2633,36 +3205,46 @@ module Google
2633
3205
 
2634
3206
  # Update properties of this object
2635
3207
  def update!(**args)
2636
- @health_state = args[:health_state] if args.key?(:health_state)
2637
- @instance = args[:instance] if args.key?(:instance)
2638
- @ip_address = args[:ip_address] if args.key?(:ip_address)
3208
+ @host = args[:host] if args.key?(:host)
2639
3209
  @port = args[:port] if args.key?(:port)
3210
+ @port_name = args[:port_name] if args.key?(:port_name)
3211
+ @proxy_header = args[:proxy_header] if args.key?(:proxy_header)
3212
+ @request_path = args[:request_path] if args.key?(:request_path)
2640
3213
  end
2641
3214
  end
2642
3215
 
2643
- # UrlMaps A host-matching rule for a URL. If matched, will use the named
2644
- # PathMatcher to select the BackendService.
2645
- class HostRule
3216
+ #
3217
+ class HttpHealthCheck
2646
3218
  include Google::Apis::Core::Hashable
2647
3219
 
2648
- # An optional description of this resource. Provide this property when you
2649
- # create the resource.
2650
- # Corresponds to the JSON property `description`
3220
+ # The value of the host header in the HTTP health check request. If left empty (
3221
+ # default value), the IP on behalf of which this health check is performed will
3222
+ # be used.
3223
+ # Corresponds to the JSON property `host`
2651
3224
  # @return [String]
2652
- attr_accessor :description
2653
-
2654
- # The list of host patterns to match. They must be valid hostnames, except *
2655
- # will match any string of ([a-z0-9-.]*). In that case, * must be the first
2656
- # character and must be followed in the pattern by either - or ..
2657
- # Corresponds to the JSON property `hosts`
2658
- # @return [Array<String>]
2659
- attr_accessor :hosts
3225
+ attr_accessor :host
2660
3226
 
2661
- # The name of the PathMatcher to use to match the path portion of the URL if the
2662
- # hostRule matches the URL's host portion.
2663
- # Corresponds to the JSON property `pathMatcher`
3227
+ # The TCP port number for the health check request. The default value is 80.
3228
+ # Corresponds to the JSON property `port`
3229
+ # @return [Fixnum]
3230
+ attr_accessor :port
3231
+
3232
+ # Port name as defined in InstanceGroup#NamedPort#name. If both port and
3233
+ # port_name are defined, port takes precedence.
3234
+ # Corresponds to the JSON property `portName`
2664
3235
  # @return [String]
2665
- attr_accessor :path_matcher
3236
+ attr_accessor :port_name
3237
+
3238
+ # Specifies the type of proxy header to append before sending data to the
3239
+ # backend, either NONE or PROXY_V1. The default is NONE.
3240
+ # Corresponds to the JSON property `proxyHeader`
3241
+ # @return [String]
3242
+ attr_accessor :proxy_header
3243
+
3244
+ # The request path of the HTTP health check request. The default value is /.
3245
+ # Corresponds to the JSON property `requestPath`
3246
+ # @return [String]
3247
+ attr_accessor :request_path
2666
3248
 
2667
3249
  def initialize(**args)
2668
3250
  update!(**args)
@@ -2670,15 +3252,65 @@ module Google
2670
3252
 
2671
3253
  # Update properties of this object
2672
3254
  def update!(**args)
2673
- @description = args[:description] if args.key?(:description)
2674
- @hosts = args[:hosts] if args.key?(:hosts)
2675
- @path_matcher = args[:path_matcher] if args.key?(:path_matcher)
3255
+ @host = args[:host] if args.key?(:host)
3256
+ @port = args[:port] if args.key?(:port)
3257
+ @port_name = args[:port_name] if args.key?(:port_name)
3258
+ @proxy_header = args[:proxy_header] if args.key?(:proxy_header)
3259
+ @request_path = args[:request_path] if args.key?(:request_path)
2676
3260
  end
2677
3261
  end
2678
3262
 
2679
- # An HttpHealthCheck resource. This resource defines a template for how
2680
- # individual instances should be checked for health, via HTTP.
2681
- class HttpHealthCheck
3263
+ #
3264
+ class HttpsHealthCheck
3265
+ include Google::Apis::Core::Hashable
3266
+
3267
+ # The value of the host header in the HTTPS health check request. If left empty (
3268
+ # default value), the IP on behalf of which this health check is performed will
3269
+ # be used.
3270
+ # Corresponds to the JSON property `host`
3271
+ # @return [String]
3272
+ attr_accessor :host
3273
+
3274
+ # The TCP port number for the health check request. The default value is 443.
3275
+ # Corresponds to the JSON property `port`
3276
+ # @return [Fixnum]
3277
+ attr_accessor :port
3278
+
3279
+ # Port name as defined in InstanceGroup#NamedPort#name. If both port and
3280
+ # port_name are defined, port takes precedence.
3281
+ # Corresponds to the JSON property `portName`
3282
+ # @return [String]
3283
+ attr_accessor :port_name
3284
+
3285
+ # Specifies the type of proxy header to append before sending data to the
3286
+ # backend, either NONE or PROXY_V1. The default is NONE.
3287
+ # Corresponds to the JSON property `proxyHeader`
3288
+ # @return [String]
3289
+ attr_accessor :proxy_header
3290
+
3291
+ # The request path of the HTTPS health check request. The default value is /.
3292
+ # Corresponds to the JSON property `requestPath`
3293
+ # @return [String]
3294
+ attr_accessor :request_path
3295
+
3296
+ def initialize(**args)
3297
+ update!(**args)
3298
+ end
3299
+
3300
+ # Update properties of this object
3301
+ def update!(**args)
3302
+ @host = args[:host] if args.key?(:host)
3303
+ @port = args[:port] if args.key?(:port)
3304
+ @port_name = args[:port_name] if args.key?(:port_name)
3305
+ @proxy_header = args[:proxy_header] if args.key?(:proxy_header)
3306
+ @request_path = args[:request_path] if args.key?(:request_path)
3307
+ end
3308
+ end
3309
+
3310
+ # An HealthCheck resource. This resource defines a template for how individual
3311
+ # virtual machines should be checked for health, via one of the supported
3312
+ # protocols.
3313
+ class HealthCheck
2682
3314
  include Google::Apis::Core::Hashable
2683
3315
 
2684
3316
  # How often (in seconds) to send a health check. The default value is 5 seconds.
@@ -2686,7 +3318,7 @@ module Google
2686
3318
  # @return [Fixnum]
2687
3319
  attr_accessor :check_interval_sec
2688
3320
 
2689
- # [Output Only] Creation timestamp in RFC3339 text format.
3321
+ # [Output Only] Creation timestamp in 3339 text format.
2690
3322
  # Corresponds to the JSON property `creationTimestamp`
2691
3323
  # @return [String]
2692
3324
  attr_accessor :creation_timestamp
@@ -2703,12 +3335,20 @@ module Google
2703
3335
  # @return [Fixnum]
2704
3336
  attr_accessor :healthy_threshold
2705
3337
 
2706
- # The value of the host header in the HTTP health check request. If left empty (
2707
- # default value), the public IP on behalf of which this health check is
2708
- # performed will be used.
2709
- # Corresponds to the JSON property `host`
2710
- # @return [String]
2711
- attr_accessor :host
3338
+ #
3339
+ # Corresponds to the JSON property `http2HealthCheck`
3340
+ # @return [Google::Apis::ComputeBeta::Http2HealthCheck]
3341
+ attr_accessor :http2_health_check
3342
+
3343
+ #
3344
+ # Corresponds to the JSON property `httpHealthCheck`
3345
+ # @return [Google::Apis::ComputeBeta::HttpHealthCheck]
3346
+ attr_accessor :http_health_check
3347
+
3348
+ #
3349
+ # Corresponds to the JSON property `httpsHealthCheck`
3350
+ # @return [Google::Apis::ComputeBeta::HttpsHealthCheck]
3351
+ attr_accessor :https_health_check
2712
3352
 
2713
3353
  # [Output Only] The unique identifier for the resource. This identifier is
2714
3354
  # defined by the server.
@@ -2716,8 +3356,7 @@ module Google
2716
3356
  # @return [String]
2717
3357
  attr_accessor :id
2718
3358
 
2719
- # [Output Only] Type of the resource. Always compute#httpHealthCheck for HTTP
2720
- # health checks.
3359
+ # Type of the resource.
2721
3360
  # Corresponds to the JSON property `kind`
2722
3361
  # @return [String]
2723
3362
  attr_accessor :kind
@@ -2732,21 +3371,21 @@ module Google
2732
3371
  # @return [String]
2733
3372
  attr_accessor :name
2734
3373
 
2735
- # The TCP port number for the HTTP health check request. The default value is 80.
2736
- # Corresponds to the JSON property `port`
2737
- # @return [Fixnum]
2738
- attr_accessor :port
2739
-
2740
- # The request path of the HTTP health check request. The default value is /.
2741
- # Corresponds to the JSON property `requestPath`
2742
- # @return [String]
2743
- attr_accessor :request_path
2744
-
2745
3374
  # [Output Only] Server-defined URL for the resource.
2746
3375
  # Corresponds to the JSON property `selfLink`
2747
3376
  # @return [String]
2748
3377
  attr_accessor :self_link
2749
3378
 
3379
+ #
3380
+ # Corresponds to the JSON property `sslHealthCheck`
3381
+ # @return [Google::Apis::ComputeBeta::SslHealthCheck]
3382
+ attr_accessor :ssl_health_check
3383
+
3384
+ #
3385
+ # Corresponds to the JSON property `tcpHealthCheck`
3386
+ # @return [Google::Apis::ComputeBeta::TcpHealthCheck]
3387
+ attr_accessor :tcp_health_check
3388
+
2750
3389
  # How long (in seconds) to wait before claiming failure. The default value is 5
2751
3390
  # seconds. It is invalid for timeoutSec to have greater value than
2752
3391
  # checkIntervalSec.
@@ -2754,6 +3393,13 @@ module Google
2754
3393
  # @return [Fixnum]
2755
3394
  attr_accessor :timeout_sec
2756
3395
 
3396
+ # Specifies the type of the healthCheck, either TCP, UDP, SSL, HTTP, HTTPS or
3397
+ # HTTP2. If not specified, the default is TCP. Exactly one of the protocol-
3398
+ # specific health check field must be specified, which must match type field.
3399
+ # Corresponds to the JSON property `type`
3400
+ # @return [String]
3401
+ attr_accessor :type
3402
+
2757
3403
  # A so-far healthy instance will be marked unhealthy after this many consecutive
2758
3404
  # failures. The default value is 2.
2759
3405
  # Corresponds to the JSON property `unhealthyThreshold`
@@ -2770,30 +3416,34 @@ module Google
2770
3416
  @creation_timestamp = args[:creation_timestamp] if args.key?(:creation_timestamp)
2771
3417
  @description = args[:description] if args.key?(:description)
2772
3418
  @healthy_threshold = args[:healthy_threshold] if args.key?(:healthy_threshold)
2773
- @host = args[:host] if args.key?(:host)
3419
+ @http2_health_check = args[:http2_health_check] if args.key?(:http2_health_check)
3420
+ @http_health_check = args[:http_health_check] if args.key?(:http_health_check)
3421
+ @https_health_check = args[:https_health_check] if args.key?(:https_health_check)
2774
3422
  @id = args[:id] if args.key?(:id)
2775
3423
  @kind = args[:kind] if args.key?(:kind)
2776
3424
  @name = args[:name] if args.key?(:name)
2777
- @port = args[:port] if args.key?(:port)
2778
- @request_path = args[:request_path] if args.key?(:request_path)
2779
3425
  @self_link = args[:self_link] if args.key?(:self_link)
3426
+ @ssl_health_check = args[:ssl_health_check] if args.key?(:ssl_health_check)
3427
+ @tcp_health_check = args[:tcp_health_check] if args.key?(:tcp_health_check)
2780
3428
  @timeout_sec = args[:timeout_sec] if args.key?(:timeout_sec)
3429
+ @type = args[:type] if args.key?(:type)
2781
3430
  @unhealthy_threshold = args[:unhealthy_threshold] if args.key?(:unhealthy_threshold)
2782
3431
  end
2783
3432
  end
2784
3433
 
2785
- # Contains a list of HttpHealthCheck resources.
2786
- class HttpHealthCheckList
3434
+ # Contains a list of HealthCheck resources.
3435
+ class HealthCheckList
2787
3436
  include Google::Apis::Core::Hashable
2788
3437
 
2789
- # [Output Only] Unique identifier for the resource. Defined by the server.
3438
+ # [Output Only] The unique identifier for the resource. This identifier is
3439
+ # defined by the server.
2790
3440
  # Corresponds to the JSON property `id`
2791
3441
  # @return [String]
2792
3442
  attr_accessor :id
2793
3443
 
2794
- # A list of HttpHealthCheck resources.
3444
+ # A list of HealthCheck resources.
2795
3445
  # Corresponds to the JSON property `items`
2796
- # @return [Array<Google::Apis::ComputeBeta::HttpHealthCheck>]
3446
+ # @return [Array<Google::Apis::ComputeBeta::HealthCheck>]
2797
3447
  attr_accessor :items
2798
3448
 
2799
3449
  # Type of resource.
@@ -2829,9 +3479,106 @@ module Google
2829
3479
  end
2830
3480
  end
2831
3481
 
2832
- # An HttpsHealthCheck resource. This resource defines a template for how
2833
- # individual instances should be checked for health, via HTTPS.
2834
- class HttpsHealthCheck
3482
+ # A full or valid partial URL to a health check. For example, the following are
3483
+ # valid URLs:
3484
+ # - https://www.googleapis.com/compute/beta/projects/project-id/global/
3485
+ # httpHealthChecks/health-check
3486
+ # - projects/project-id/global/httpHealthChecks/health-check
3487
+ # - global/httpHealthChecks/health-check
3488
+ class HealthCheckReference
3489
+ include Google::Apis::Core::Hashable
3490
+
3491
+ #
3492
+ # Corresponds to the JSON property `healthCheck`
3493
+ # @return [String]
3494
+ attr_accessor :health_check
3495
+
3496
+ def initialize(**args)
3497
+ update!(**args)
3498
+ end
3499
+
3500
+ # Update properties of this object
3501
+ def update!(**args)
3502
+ @health_check = args[:health_check] if args.key?(:health_check)
3503
+ end
3504
+ end
3505
+
3506
+ #
3507
+ class HealthStatus
3508
+ include Google::Apis::Core::Hashable
3509
+
3510
+ # Health state of the instance.
3511
+ # Corresponds to the JSON property `healthState`
3512
+ # @return [String]
3513
+ attr_accessor :health_state
3514
+
3515
+ # URL of the instance resource.
3516
+ # Corresponds to the JSON property `instance`
3517
+ # @return [String]
3518
+ attr_accessor :instance
3519
+
3520
+ # The IP address represented by this resource.
3521
+ # Corresponds to the JSON property `ipAddress`
3522
+ # @return [String]
3523
+ attr_accessor :ip_address
3524
+
3525
+ # The port on the instance.
3526
+ # Corresponds to the JSON property `port`
3527
+ # @return [Fixnum]
3528
+ attr_accessor :port
3529
+
3530
+ def initialize(**args)
3531
+ update!(**args)
3532
+ end
3533
+
3534
+ # Update properties of this object
3535
+ def update!(**args)
3536
+ @health_state = args[:health_state] if args.key?(:health_state)
3537
+ @instance = args[:instance] if args.key?(:instance)
3538
+ @ip_address = args[:ip_address] if args.key?(:ip_address)
3539
+ @port = args[:port] if args.key?(:port)
3540
+ end
3541
+ end
3542
+
3543
+ # UrlMaps A host-matching rule for a URL. If matched, will use the named
3544
+ # PathMatcher to select the BackendService.
3545
+ class HostRule
3546
+ include Google::Apis::Core::Hashable
3547
+
3548
+ # An optional description of this resource. Provide this property when you
3549
+ # create the resource.
3550
+ # Corresponds to the JSON property `description`
3551
+ # @return [String]
3552
+ attr_accessor :description
3553
+
3554
+ # The list of host patterns to match. They must be valid hostnames, except *
3555
+ # will match any string of ([a-z0-9-.]*). In that case, * must be the first
3556
+ # character and must be followed in the pattern by either - or ..
3557
+ # Corresponds to the JSON property `hosts`
3558
+ # @return [Array<String>]
3559
+ attr_accessor :hosts
3560
+
3561
+ # The name of the PathMatcher to use to match the path portion of the URL if the
3562
+ # hostRule matches the URL's host portion.
3563
+ # Corresponds to the JSON property `pathMatcher`
3564
+ # @return [String]
3565
+ attr_accessor :path_matcher
3566
+
3567
+ def initialize(**args)
3568
+ update!(**args)
3569
+ end
3570
+
3571
+ # Update properties of this object
3572
+ def update!(**args)
3573
+ @description = args[:description] if args.key?(:description)
3574
+ @hosts = args[:hosts] if args.key?(:hosts)
3575
+ @path_matcher = args[:path_matcher] if args.key?(:path_matcher)
3576
+ end
3577
+ end
3578
+
3579
+ # An HttpHealthCheck resource. This resource defines a template for how
3580
+ # individual instances should be checked for health, via HTTP.
3581
+ class HttpHealthCheck
2835
3582
  include Google::Apis::Core::Hashable
2836
3583
 
2837
3584
  # How often (in seconds) to send a health check. The default value is 5 seconds.
@@ -2856,7 +3603,7 @@ module Google
2856
3603
  # @return [Fixnum]
2857
3604
  attr_accessor :healthy_threshold
2858
3605
 
2859
- # The value of the host header in the HTTPS health check request. If left empty (
3606
+ # The value of the host header in the HTTP health check request. If left empty (
2860
3607
  # default value), the public IP on behalf of which this health check is
2861
3608
  # performed will be used.
2862
3609
  # Corresponds to the JSON property `host`
@@ -2869,7 +3616,8 @@ module Google
2869
3616
  # @return [String]
2870
3617
  attr_accessor :id
2871
3618
 
2872
- # Type of the resource.
3619
+ # [Output Only] Type of the resource. Always compute#httpHealthCheck for HTTP
3620
+ # health checks.
2873
3621
  # Corresponds to the JSON property `kind`
2874
3622
  # @return [String]
2875
3623
  attr_accessor :kind
@@ -2884,13 +3632,12 @@ module Google
2884
3632
  # @return [String]
2885
3633
  attr_accessor :name
2886
3634
 
2887
- # The TCP port number for the HTTPS health check request. The default value is
2888
- # 443.
3635
+ # The TCP port number for the HTTP health check request. The default value is 80.
2889
3636
  # Corresponds to the JSON property `port`
2890
3637
  # @return [Fixnum]
2891
3638
  attr_accessor :port
2892
3639
 
2893
- # The request path of the HTTPS health check request. The default value is "/".
3640
+ # The request path of the HTTP health check request. The default value is /.
2894
3641
  # Corresponds to the JSON property `requestPath`
2895
3642
  # @return [String]
2896
3643
  attr_accessor :request_path
@@ -2901,7 +3648,7 @@ module Google
2901
3648
  attr_accessor :self_link
2902
3649
 
2903
3650
  # How long (in seconds) to wait before claiming failure. The default value is 5
2904
- # seconds. It is invalid for timeoutSec to have a greater value than
3651
+ # seconds. It is invalid for timeoutSec to have greater value than
2905
3652
  # checkIntervalSec.
2906
3653
  # Corresponds to the JSON property `timeoutSec`
2907
3654
  # @return [Fixnum]
@@ -2935,18 +3682,18 @@ module Google
2935
3682
  end
2936
3683
  end
2937
3684
 
2938
- # Contains a list of HttpsHealthCheck resources.
2939
- class HttpsHealthCheckList
3685
+ # Contains a list of HttpHealthCheck resources.
3686
+ class HttpHealthCheckList
2940
3687
  include Google::Apis::Core::Hashable
2941
3688
 
2942
- # [Output Only] Unique identifier for the resource; defined by the server.
3689
+ # [Output Only] Unique identifier for the resource. Defined by the server.
2943
3690
  # Corresponds to the JSON property `id`
2944
3691
  # @return [String]
2945
3692
  attr_accessor :id
2946
3693
 
2947
- # A list of HttpsHealthCheck resources.
3694
+ # A list of HttpHealthCheck resources.
2948
3695
  # Corresponds to the JSON property `items`
2949
- # @return [Array<Google::Apis::ComputeBeta::HttpsHealthCheck>]
3696
+ # @return [Array<Google::Apis::ComputeBeta::HttpHealthCheck>]
2950
3697
  attr_accessor :items
2951
3698
 
2952
3699
  # Type of resource.
@@ -2982,43 +3729,207 @@ module Google
2982
3729
  end
2983
3730
  end
2984
3731
 
2985
- # An Image resource.
2986
- class Image
3732
+ # An HttpsHealthCheck resource. This resource defines a template for how
3733
+ # individual instances should be checked for health, via HTTPS.
3734
+ class HttpsHealthCheck
2987
3735
  include Google::Apis::Core::Hashable
2988
3736
 
2989
- # Size of the image tar.gz archive stored in Google Cloud Storage (in bytes).
2990
- # Corresponds to the JSON property `archiveSizeBytes`
2991
- # @return [String]
2992
- attr_accessor :archive_size_bytes
3737
+ # How often (in seconds) to send a health check. The default value is 5 seconds.
3738
+ # Corresponds to the JSON property `checkIntervalSec`
3739
+ # @return [Fixnum]
3740
+ attr_accessor :check_interval_sec
2993
3741
 
2994
3742
  # [Output Only] Creation timestamp in RFC3339 text format.
2995
3743
  # Corresponds to the JSON property `creationTimestamp`
2996
3744
  # @return [String]
2997
3745
  attr_accessor :creation_timestamp
2998
3746
 
2999
- # Deprecation status for a public resource.
3000
- # Corresponds to the JSON property `deprecated`
3001
- # @return [Google::Apis::ComputeBeta::DeprecationStatus]
3002
- attr_accessor :deprecated
3003
-
3004
3747
  # An optional description of this resource. Provide this property when you
3005
3748
  # create the resource.
3006
3749
  # Corresponds to the JSON property `description`
3007
3750
  # @return [String]
3008
3751
  attr_accessor :description
3009
3752
 
3010
- # Size of the image when restored onto a persistent disk (in GB).
3011
- # Corresponds to the JSON property `diskSizeGb`
3012
- # @return [String]
3013
- attr_accessor :disk_size_gb
3014
-
3015
- # The name of the image family to which this image belongs. You can create disks
3016
- # by specifying an image family instead of a specific image name. The image
3017
- # family always returns its latest image that is not deprecated.
3753
+ # A so-far unhealthy instance will be marked healthy after this many consecutive
3754
+ # successes. The default value is 2.
3755
+ # Corresponds to the JSON property `healthyThreshold`
3756
+ # @return [Fixnum]
3757
+ attr_accessor :healthy_threshold
3758
+
3759
+ # The value of the host header in the HTTPS health check request. If left empty (
3760
+ # default value), the public IP on behalf of which this health check is
3761
+ # performed will be used.
3762
+ # Corresponds to the JSON property `host`
3763
+ # @return [String]
3764
+ attr_accessor :host
3765
+
3766
+ # [Output Only] The unique identifier for the resource. This identifier is
3767
+ # defined by the server.
3768
+ # Corresponds to the JSON property `id`
3769
+ # @return [String]
3770
+ attr_accessor :id
3771
+
3772
+ # Type of the resource.
3773
+ # Corresponds to the JSON property `kind`
3774
+ # @return [String]
3775
+ attr_accessor :kind
3776
+
3777
+ # Name of the resource. Provided by the client when the resource is created. The
3778
+ # name must be 1-63 characters long, and comply with RFC1035. Specifically, the
3779
+ # name must be 1-63 characters long and match the regular expression [a-z]([-a-
3780
+ # z0-9]*[a-z0-9])? which means the first character must be a lowercase letter,
3781
+ # and all following characters must be a dash, lowercase letter, or digit,
3782
+ # except the last character, which cannot be a dash.
3783
+ # Corresponds to the JSON property `name`
3784
+ # @return [String]
3785
+ attr_accessor :name
3786
+
3787
+ # The TCP port number for the HTTPS health check request. The default value is
3788
+ # 443.
3789
+ # Corresponds to the JSON property `port`
3790
+ # @return [Fixnum]
3791
+ attr_accessor :port
3792
+
3793
+ # The request path of the HTTPS health check request. The default value is "/".
3794
+ # Corresponds to the JSON property `requestPath`
3795
+ # @return [String]
3796
+ attr_accessor :request_path
3797
+
3798
+ # [Output Only] Server-defined URL for the resource.
3799
+ # Corresponds to the JSON property `selfLink`
3800
+ # @return [String]
3801
+ attr_accessor :self_link
3802
+
3803
+ # How long (in seconds) to wait before claiming failure. The default value is 5
3804
+ # seconds. It is invalid for timeoutSec to have a greater value than
3805
+ # checkIntervalSec.
3806
+ # Corresponds to the JSON property `timeoutSec`
3807
+ # @return [Fixnum]
3808
+ attr_accessor :timeout_sec
3809
+
3810
+ # A so-far healthy instance will be marked unhealthy after this many consecutive
3811
+ # failures. The default value is 2.
3812
+ # Corresponds to the JSON property `unhealthyThreshold`
3813
+ # @return [Fixnum]
3814
+ attr_accessor :unhealthy_threshold
3815
+
3816
+ def initialize(**args)
3817
+ update!(**args)
3818
+ end
3819
+
3820
+ # Update properties of this object
3821
+ def update!(**args)
3822
+ @check_interval_sec = args[:check_interval_sec] if args.key?(:check_interval_sec)
3823
+ @creation_timestamp = args[:creation_timestamp] if args.key?(:creation_timestamp)
3824
+ @description = args[:description] if args.key?(:description)
3825
+ @healthy_threshold = args[:healthy_threshold] if args.key?(:healthy_threshold)
3826
+ @host = args[:host] if args.key?(:host)
3827
+ @id = args[:id] if args.key?(:id)
3828
+ @kind = args[:kind] if args.key?(:kind)
3829
+ @name = args[:name] if args.key?(:name)
3830
+ @port = args[:port] if args.key?(:port)
3831
+ @request_path = args[:request_path] if args.key?(:request_path)
3832
+ @self_link = args[:self_link] if args.key?(:self_link)
3833
+ @timeout_sec = args[:timeout_sec] if args.key?(:timeout_sec)
3834
+ @unhealthy_threshold = args[:unhealthy_threshold] if args.key?(:unhealthy_threshold)
3835
+ end
3836
+ end
3837
+
3838
+ # Contains a list of HttpsHealthCheck resources.
3839
+ class HttpsHealthCheckList
3840
+ include Google::Apis::Core::Hashable
3841
+
3842
+ # [Output Only] Unique identifier for the resource; defined by the server.
3843
+ # Corresponds to the JSON property `id`
3844
+ # @return [String]
3845
+ attr_accessor :id
3846
+
3847
+ # A list of HttpsHealthCheck resources.
3848
+ # Corresponds to the JSON property `items`
3849
+ # @return [Array<Google::Apis::ComputeBeta::HttpsHealthCheck>]
3850
+ attr_accessor :items
3851
+
3852
+ # Type of resource.
3853
+ # Corresponds to the JSON property `kind`
3854
+ # @return [String]
3855
+ attr_accessor :kind
3856
+
3857
+ # [Output Only] This token allows you to get the next page of results for list
3858
+ # requests. If the number of results is larger than maxResults, use the
3859
+ # nextPageToken as a value for the query parameter pageToken in the next list
3860
+ # request. Subsequent list requests will have their own nextPageToken to
3861
+ # continue paging through the results.
3862
+ # Corresponds to the JSON property `nextPageToken`
3863
+ # @return [String]
3864
+ attr_accessor :next_page_token
3865
+
3866
+ # [Output Only] Server-defined URL for this resource.
3867
+ # Corresponds to the JSON property `selfLink`
3868
+ # @return [String]
3869
+ attr_accessor :self_link
3870
+
3871
+ def initialize(**args)
3872
+ update!(**args)
3873
+ end
3874
+
3875
+ # Update properties of this object
3876
+ def update!(**args)
3877
+ @id = args[:id] if args.key?(:id)
3878
+ @items = args[:items] if args.key?(:items)
3879
+ @kind = args[:kind] if args.key?(:kind)
3880
+ @next_page_token = args[:next_page_token] if args.key?(:next_page_token)
3881
+ @self_link = args[:self_link] if args.key?(:self_link)
3882
+ end
3883
+ end
3884
+
3885
+ # An Image resource.
3886
+ class Image
3887
+ include Google::Apis::Core::Hashable
3888
+
3889
+ # Size of the image tar.gz archive stored in Google Cloud Storage (in bytes).
3890
+ # Corresponds to the JSON property `archiveSizeBytes`
3891
+ # @return [String]
3892
+ attr_accessor :archive_size_bytes
3893
+
3894
+ # [Output Only] Creation timestamp in RFC3339 text format.
3895
+ # Corresponds to the JSON property `creationTimestamp`
3896
+ # @return [String]
3897
+ attr_accessor :creation_timestamp
3898
+
3899
+ # Deprecation status for a public resource.
3900
+ # Corresponds to the JSON property `deprecated`
3901
+ # @return [Google::Apis::ComputeBeta::DeprecationStatus]
3902
+ attr_accessor :deprecated
3903
+
3904
+ # An optional description of this resource. Provide this property when you
3905
+ # create the resource.
3906
+ # Corresponds to the JSON property `description`
3907
+ # @return [String]
3908
+ attr_accessor :description
3909
+
3910
+ # Size of the image when restored onto a persistent disk (in GB).
3911
+ # Corresponds to the JSON property `diskSizeGb`
3912
+ # @return [String]
3913
+ attr_accessor :disk_size_gb
3914
+
3915
+ # The name of the image family to which this image belongs. You can create disks
3916
+ # by specifying an image family instead of a specific image name. The image
3917
+ # family always returns its latest image that is not deprecated. The name of the
3918
+ # image family must comply with RFC1035.
3018
3919
  # Corresponds to the JSON property `family`
3019
3920
  # @return [String]
3020
3921
  attr_accessor :family
3021
3922
 
3923
+ # A list of features to enable on the guest OS. Applicable for bootable images
3924
+ # only. Currently, only one feature is supported, VIRTIO_SCSCI_MULTIQUEUE, which
3925
+ # allows each virtual CPU to have its own queue. For Windows images, you can
3926
+ # only enable VIRTIO_SCSCI_MULTIQUEUE on images with driver version 1.2.0.1621
3927
+ # or higher. Linux images with kernel versions 3.17 and higher will support
3928
+ # VIRTIO_SCSCI_MULTIQUEUE.
3929
+ # Corresponds to the JSON property `guestOsFeatures`
3930
+ # @return [Array<Google::Apis::ComputeBeta::GuestOsFeature>]
3931
+ attr_accessor :guest_os_features
3932
+
3022
3933
  # [Output Only] The unique identifier for the resource. This identifier is
3023
3934
  # defined by the server.
3024
3935
  # Corresponds to the JSON property `id`
@@ -3052,7 +3963,7 @@ module Google
3052
3963
  # @return [Hash<String,String>]
3053
3964
  attr_accessor :labels
3054
3965
 
3055
- # Any applicable publicly visible licenses.
3966
+ # Any applicable license URI.
3056
3967
  # Corresponds to the JSON property `licenses`
3057
3968
  # @return [Array<String>]
3058
3969
  attr_accessor :licenses
@@ -3081,8 +3992,8 @@ module Google
3081
3992
  # valid partial URL. You must provide either this property or the rawDisk.source
3082
3993
  # property but not both to create an image. For example, the following are valid
3083
3994
  # values:
3084
- # - https://www.googleapis.com/compute/v1/projects/project/zones/zone/disk/disk
3085
- # - projects/project/zones/zone/disk/disk
3995
+ # - https://www.googleapis.com/compute/v1/projects/project/zones/zone/disks/disk
3996
+ # - projects/project/zones/zone/disks/disk
3086
3997
  # - zones/zone/disks/disk
3087
3998
  # Corresponds to the JSON property `sourceDisk`
3088
3999
  # @return [String]
@@ -3126,6 +4037,7 @@ module Google
3126
4037
  @description = args[:description] if args.key?(:description)
3127
4038
  @disk_size_gb = args[:disk_size_gb] if args.key?(:disk_size_gb)
3128
4039
  @family = args[:family] if args.key?(:family)
4040
+ @guest_os_features = args[:guest_os_features] if args.key?(:guest_os_features)
3129
4041
  @id = args[:id] if args.key?(:id)
3130
4042
  @image_encryption_key = args[:image_encryption_key] if args.key?(:image_encryption_key)
3131
4043
  @kind = args[:kind] if args.key?(:kind)
@@ -3322,7 +4234,7 @@ module Google
3322
4234
 
3323
4235
  # An array of configurations for this interface. This specifies how this
3324
4236
  # interface is configured to interact with other network services, such as
3325
- # connecting to the internet.
4237
+ # connecting to the internet. Only one interface is supported per instance.
3326
4238
  # Corresponds to the JSON property `networkInterfaces`
3327
4239
  # @return [Array<Google::Apis::ComputeBeta::NetworkInterface>]
3328
4240
  attr_accessor :network_interfaces
@@ -3340,13 +4252,14 @@ module Google
3340
4252
  # A list of service accounts, with their specified scopes, authorized for this
3341
4253
  # instance. Service accounts generate access tokens that can be accessed through
3342
4254
  # the metadata server and used to authenticate applications on the instance. See
3343
- # Authenticating from Google Compute Engine for more information.
4255
+ # Service Accounts for more information.
3344
4256
  # Corresponds to the JSON property `serviceAccounts`
3345
4257
  # @return [Array<Google::Apis::ComputeBeta::ServiceAccount>]
3346
4258
  attr_accessor :service_accounts
3347
4259
 
3348
4260
  # [Output Only] The status of the instance. One of the following values:
3349
- # PROVISIONING, STAGING, RUNNING, STOPPING, and TERMINATED.
4261
+ # PROVISIONING, STAGING, RUNNING, STOPPING, SUSPENDING, SUSPENDED, and
4262
+ # TERMINATED.
3350
4263
  # Corresponds to the JSON property `status`
3351
4264
  # @return [String]
3352
4265
  attr_accessor :status
@@ -3467,8 +4380,8 @@ module Google
3467
4380
  # @return [String]
3468
4381
  attr_accessor :fingerprint
3469
4382
 
3470
- # [Output Only] A unique identifier for this resource type. The server generates
3471
- # this identifier.
4383
+ # [Output Only] A unique identifier for this instance group, generated by the
4384
+ # server.
3472
4385
  # Corresponds to the JSON property `id`
3473
4386
  # @return [String]
3474
4387
  attr_accessor :id
@@ -3499,6 +4412,12 @@ module Google
3499
4412
  # @return [String]
3500
4413
  attr_accessor :network
3501
4414
 
4415
+ # The URL of the region where the instance group is located (for regional
4416
+ # resources).
4417
+ # Corresponds to the JSON property `region`
4418
+ # @return [String]
4419
+ attr_accessor :region
4420
+
3502
4421
  # [Output Only] The URL for this instance group. The server generates this URL.
3503
4422
  # Corresponds to the JSON property `selfLink`
3504
4423
  # @return [String]
@@ -3514,7 +4433,8 @@ module Google
3514
4433
  # @return [String]
3515
4434
  attr_accessor :subnetwork
3516
4435
 
3517
- # [Output Only] The URL of the zone where the instance group is located.
4436
+ # [Output Only] The URL of the zone where the instance group is located (for
4437
+ # zonal resources).
3518
4438
  # Corresponds to the JSON property `zone`
3519
4439
  # @return [String]
3520
4440
  attr_accessor :zone
@@ -3533,6 +4453,7 @@ module Google
3533
4453
  @name = args[:name] if args.key?(:name)
3534
4454
  @named_ports = args[:named_ports] if args.key?(:named_ports)
3535
4455
  @network = args[:network] if args.key?(:network)
4456
+ @region = args[:region] if args.key?(:region)
3536
4457
  @self_link = args[:self_link] if args.key?(:self_link)
3537
4458
  @size = args[:size] if args.key?(:size)
3538
4459
  @subnetwork = args[:subnetwork] if args.key?(:subnetwork)
@@ -3638,7 +4559,7 @@ module Google
3638
4559
  end
3639
4560
  end
3640
4561
 
3641
- #
4562
+ # An Instance Group Manager resource.
3642
4563
  class InstanceGroupManager
3643
4564
  include Google::Apis::Core::Hashable
3644
4565
 
@@ -3674,6 +4595,12 @@ module Google
3674
4595
  # @return [String]
3675
4596
  attr_accessor :description
3676
4597
 
4598
+ # The action to perform in case of zone failure. Only one value is supported,
4599
+ # NO_FAILOVER. The default is NO_FAILOVER.
4600
+ # Corresponds to the JSON property `failoverAction`
4601
+ # @return [String]
4602
+ attr_accessor :failover_action
4603
+
3677
4604
  # [Output Only] The fingerprint of the resource data. You can use this optional
3678
4605
  # field for optimistic locking when you update the resource.
3679
4606
  # Corresponds to the JSON property `fingerprint`
@@ -3716,6 +4643,12 @@ module Google
3716
4643
  # @return [Array<Google::Apis::ComputeBeta::NamedPort>]
3717
4644
  attr_accessor :named_ports
3718
4645
 
4646
+ # [Output Only] The URL of the region where the managed instance group resides (
4647
+ # for regional resources).
4648
+ # Corresponds to the JSON property `region`
4649
+ # @return [String]
4650
+ attr_accessor :region
4651
+
3719
4652
  # [Output Only] The URL for this managed instance group. The server defines this
3720
4653
  # URL.
3721
4654
  # Corresponds to the JSON property `selfLink`
@@ -3736,7 +4669,8 @@ module Google
3736
4669
  # @return [Fixnum]
3737
4670
  attr_accessor :target_size
3738
4671
 
3739
- # The name of the zone where the managed instance group is located.
4672
+ # [Output Only] The URL of the zone where the managed instance group is located (
4673
+ # for zonal resources).
3740
4674
  # Corresponds to the JSON property `zone`
3741
4675
  # @return [String]
3742
4676
  attr_accessor :zone
@@ -3752,6 +4686,7 @@ module Google
3752
4686
  @creation_timestamp = args[:creation_timestamp] if args.key?(:creation_timestamp)
3753
4687
  @current_actions = args[:current_actions] if args.key?(:current_actions)
3754
4688
  @description = args[:description] if args.key?(:description)
4689
+ @failover_action = args[:failover_action] if args.key?(:failover_action)
3755
4690
  @fingerprint = args[:fingerprint] if args.key?(:fingerprint)
3756
4691
  @id = args[:id] if args.key?(:id)
3757
4692
  @instance_group = args[:instance_group] if args.key?(:instance_group)
@@ -3759,6 +4694,7 @@ module Google
3759
4694
  @kind = args[:kind] if args.key?(:kind)
3760
4695
  @name = args[:name] if args.key?(:name)
3761
4696
  @named_ports = args[:named_ports] if args.key?(:named_ports)
4697
+ @region = args[:region] if args.key?(:region)
3762
4698
  @self_link = args[:self_link] if args.key?(:self_link)
3763
4699
  @target_pools = args[:target_pools] if args.key?(:target_pools)
3764
4700
  @target_size = args[:target_size] if args.key?(:target_size)
@@ -3779,16 +4715,18 @@ module Google
3779
4715
 
3780
4716
  # [Output Only] The number of instances in the managed instance group that are
3781
4717
  # scheduled to be created or are currently being created. If the group fails to
3782
- # create one of these instances, it tries again until it creates the instance
4718
+ # create any of these instances, it tries again until it creates the instance
3783
4719
  # successfully.
4720
+ # If you have disabled creation retries, this field will not be populated;
4721
+ # instead, the creatingWithoutRetries field will be populated.
3784
4722
  # Corresponds to the JSON property `creating`
3785
4723
  # @return [Fixnum]
3786
4724
  attr_accessor :creating
3787
4725
 
3788
4726
  # [Output Only] The number of instances that the managed instance group will
3789
4727
  # attempt to create. The group attempts to create each instance only once. If
3790
- # the group fails to create one of these instances, it decreases the group's
3791
- # target_size value accordingly.
4728
+ # the group fails to create any of these instances, it decreases the group's
4729
+ # targetSize value accordingly.
3792
4730
  # Corresponds to the JSON property `creatingWithoutRetries`
3793
4731
  # @return [Fixnum]
3794
4732
  attr_accessor :creating_without_retries
@@ -3906,7 +4844,8 @@ module Google
3906
4844
  # autohealing policies to new instances or recently recreated instances. This
3907
4845
  # initial delay allows instances to initialize and run their startup scripts
3908
4846
  # before the instance group determines that they are UNHEALTHY. This prevents
3909
- # the managed instance group from recreating its instances prematurely.
4847
+ # the managed instance group from recreating its instances prematurely. This
4848
+ # value must be from range [0, 3600].
3910
4849
  # Corresponds to the JSON property `initialDelaySec`
3911
4850
  # @return [Fixnum]
3912
4851
  attr_accessor :initial_delay_sec
@@ -3952,7 +4891,7 @@ module Google
3952
4891
  # @return [String]
3953
4892
  attr_accessor :next_page_token
3954
4893
 
3955
- # [Output Only] The URL for this resource type. The server generates this URL.
4894
+ # [Output Only] Server-defined URL for this resource.
3956
4895
  # Corresponds to the JSON property `selfLink`
3957
4896
  # @return [String]
3958
4897
  attr_accessor :self_link
@@ -4052,19 +4991,22 @@ module Google
4052
4991
  class InstanceGroupManagersResizeAdvancedRequest
4053
4992
  include Google::Apis::Core::Hashable
4054
4993
 
4055
- # If this flag is true, we will attempt to create all instances resized up with
4056
- # this request only once. In case of an error during creation, we will not
4057
- # create this instance, and we will decrease the target_size. If the flag is
4058
- # false, we will keep trying to create each instance until we succeed.
4059
- # This flag matters only in the first attempt of creation of an instance. If an
4060
- # instance creation with this flag succeeds, the instance behaves the same way
4061
- # as all the other instances created with the flag set to false. In particular,
4062
- # consecutive instance creations (in case an instance dies and needs to be
4063
- # recreated) will not fail after the first attempt.
4994
+ # If this flag is true, the managed instance group attempts to create all
4995
+ # instances initiated by this resize request only once. If there is an error
4996
+ # during creation, the managed instance group does not retry create this
4997
+ # instance, and we will decrease the targetSize of the request instead. If the
4998
+ # flag is false, the group attemps to recreate each instance continuously until
4999
+ # it succeeds.
5000
+ # This flag matters only in the first attempt of creation of an instance. After
5001
+ # an instance is successfully created while this flag is enabled, the instance
5002
+ # behaves the same way as all the other instances created with a regular resize
5003
+ # request. In particular, if a running instance dies unexpectedly at a later
5004
+ # time and needs to be recreated, this mode does not affect the recreation
5005
+ # behavior in that scenario.
4064
5006
  # This flag is applicable only to the current resize request. It does not
4065
5007
  # influence other resize requests in any way.
4066
- # You can see which instances is being creating in which mode by calling the
4067
- # listManagedInstances API.
5008
+ # You can see which instances is being creating in which mode by calling the get
5009
+ # or listManagedInstances API.
4068
5010
  # Corresponds to the JSON property `noCreationRetries`
4069
5011
  # @return [Boolean]
4070
5012
  attr_accessor :no_creation_retries
@@ -4275,8 +5217,8 @@ module Google
4275
5217
  class InstanceGroupsListInstances
4276
5218
  include Google::Apis::Core::Hashable
4277
5219
 
4278
- # [Output Only] A unique identifier for this list of instance groups. The server
4279
- # generates this identifier.
5220
+ # [Output Only] A unique identifier for this list of instances in the specified
5221
+ # instance group. The server generates this identifier.
4280
5222
  # Corresponds to the JSON property `id`
4281
5223
  # @return [String]
4282
5224
  attr_accessor :id
@@ -4288,7 +5230,8 @@ module Google
4288
5230
  attr_accessor :items
4289
5231
 
4290
5232
  # [Output Only] The resource type, which is always compute#
4291
- # instanceGroupsListInstances for lists of instance groups.
5233
+ # instanceGroupsListInstances for the list of instances in the specified
5234
+ # instance group.
4292
5235
  # Corresponds to the JSON property `kind`
4293
5236
  # @return [String]
4294
5237
  attr_accessor :kind
@@ -4302,8 +5245,8 @@ module Google
4302
5245
  # @return [String]
4303
5246
  attr_accessor :next_page_token
4304
5247
 
4305
- # [Output Only] The URL for this list of instance groups. The server generates
4306
- # this URL.
5248
+ # [Output Only] The URL for this list of instances in the specified instance
5249
+ # groups. The server generates this URL.
4307
5250
  # Corresponds to the JSON property `selfLink`
4308
5251
  # @return [String]
4309
5252
  attr_accessor :self_link
@@ -4574,8 +5517,8 @@ module Google
4574
5517
  # IP addresses other than their own and receive packets with destination IP
4575
5518
  # addresses other than their own. If these instances will be used as an IP
4576
5519
  # gateway or it will be set as the next-hop in a Route resource, specify true.
4577
- # If unsure, leave this set to false. See the canIpForward documentation for
4578
- # more information.
5520
+ # If unsure, leave this set to false. See the Enable IP forwarding for instances
5521
+ # documentation for more information.
4579
5522
  # Corresponds to the JSON property `canIpForward`
4580
5523
  # @return [Boolean]
4581
5524
  attr_accessor :can_ip_forward
@@ -4593,6 +5536,12 @@ module Google
4593
5536
  # @return [Array<Google::Apis::ComputeBeta::AttachedDisk>]
4594
5537
  attr_accessor :disks
4595
5538
 
5539
+ # Labels to apply to instances that are created from this template. Each label
5540
+ # key/value pair must comply with RFC1035. Label values may be empty.
5541
+ # Corresponds to the JSON property `labels`
5542
+ # @return [Hash<String,String>]
5543
+ attr_accessor :labels
5544
+
4596
5545
  # The machine type to use for instances that are created from this template.
4597
5546
  # Corresponds to the JSON property `machineType`
4598
5547
  # @return [String]
@@ -4634,6 +5583,7 @@ module Google
4634
5583
  @can_ip_forward = args[:can_ip_forward] if args.key?(:can_ip_forward)
4635
5584
  @description = args[:description] if args.key?(:description)
4636
5585
  @disks = args[:disks] if args.key?(:disks)
5586
+ @labels = args[:labels] if args.key?(:labels)
4637
5587
  @machine_type = args[:machine_type] if args.key?(:machine_type)
4638
5588
  @metadata = args[:metadata] if args.key?(:metadata)
4639
5589
  @network_interfaces = args[:network_interfaces] if args.key?(:network_interfaces)
@@ -5017,6 +5967,50 @@ module Google
5017
5967
  end
5018
5968
  end
5019
5969
 
5970
+ # Specifies what kind of log the caller must write
5971
+ class LogConfig
5972
+ include Google::Apis::Core::Hashable
5973
+
5974
+ # Options for counters
5975
+ # Corresponds to the JSON property `counter`
5976
+ # @return [Google::Apis::ComputeBeta::LogConfigCounterOptions]
5977
+ attr_accessor :counter
5978
+
5979
+ def initialize(**args)
5980
+ update!(**args)
5981
+ end
5982
+
5983
+ # Update properties of this object
5984
+ def update!(**args)
5985
+ @counter = args[:counter] if args.key?(:counter)
5986
+ end
5987
+ end
5988
+
5989
+ # Options for counters
5990
+ class LogConfigCounterOptions
5991
+ include Google::Apis::Core::Hashable
5992
+
5993
+ # The field value to attribute.
5994
+ # Corresponds to the JSON property `field`
5995
+ # @return [String]
5996
+ attr_accessor :field
5997
+
5998
+ # The metric to update.
5999
+ # Corresponds to the JSON property `metric`
6000
+ # @return [String]
6001
+ attr_accessor :metric
6002
+
6003
+ def initialize(**args)
6004
+ update!(**args)
6005
+ end
6006
+
6007
+ # Update properties of this object
6008
+ def update!(**args)
6009
+ @field = args[:field] if args.key?(:field)
6010
+ @metric = args[:metric] if args.key?(:metric)
6011
+ end
6012
+ end
6013
+
5020
6014
  # A Machine Type resource.
5021
6015
  class MachineType
5022
6016
  include Google::Apis::Core::Hashable
@@ -5315,7 +6309,7 @@ module Google
5315
6309
  # fails to create this instance, it will try again until it is successful.
5316
6310
  # - CREATING_WITHOUT_RETRIES The managed instance group is attempting to create
5317
6311
  # this instance only once. If the group fails to create this instance, it does
5318
- # not try again and the group's target_size value is decreased.
6312
+ # not try again and the group's targetSize value is decreased instead.
5319
6313
  # - RECREATING The managed instance group is recreating this instance.
5320
6314
  # - DELETING The managed instance group is permanently deleting this instance.
5321
6315
  # - ABANDONING The managed instance group is abandoning this instance. The
@@ -5626,8 +6620,8 @@ module Google
5626
6620
  class NetworkInterface
5627
6621
  include Google::Apis::Core::Hashable
5628
6622
 
5629
- # An array of configurations for this interface. Currently, ONE_TO_ONE_NAT is
5630
- # the only access config supported. If there are no accessConfigs specified,
6623
+ # An array of configurations for this interface. Currently, only one access
6624
+ # config, ONE_TO_ONE_NAT, is supported. If there are no accessConfigs specified,
5631
6625
  # then this instance will have no external internet access.
5632
6626
  # Corresponds to the JSON property `accessConfigs`
5633
6627
  # @return [Array<Google::Apis::ComputeBeta::AccessConfig>]
@@ -5717,7 +6711,7 @@ module Google
5717
6711
  # @return [String]
5718
6712
  attr_accessor :next_page_token
5719
6713
 
5720
- # [Output Only] Server-defined URL for this resource .
6714
+ # [Output Only] Server-defined URL for this resource.
5721
6715
  # Corresponds to the JSON property `selfLink`
5722
6716
  # @return [String]
5723
6717
  attr_accessor :self_link
@@ -5853,7 +6847,9 @@ module Google
5853
6847
  # @return [String]
5854
6848
  attr_accessor :target_id
5855
6849
 
5856
- # [Output Only] The URL of the resource that the operation modifies.
6850
+ # [Output Only] The URL of the resource that the operation modifies. For
6851
+ # operations related to creating a snapshot, this points to the persistent disk
6852
+ # that the snapshot was created from.
5857
6853
  # Corresponds to the JSON property `targetLink`
5858
6854
  # @return [String]
5859
6855
  attr_accessor :target_link
@@ -6241,10 +7237,554 @@ module Google
6241
7237
  # @return [String]
6242
7238
  attr_accessor :name
6243
7239
 
6244
- # The list of path rules.
6245
- # Corresponds to the JSON property `pathRules`
6246
- # @return [Array<Google::Apis::ComputeBeta::PathRule>]
6247
- attr_accessor :path_rules
7240
+ # The list of path rules.
7241
+ # Corresponds to the JSON property `pathRules`
7242
+ # @return [Array<Google::Apis::ComputeBeta::PathRule>]
7243
+ attr_accessor :path_rules
7244
+
7245
+ def initialize(**args)
7246
+ update!(**args)
7247
+ end
7248
+
7249
+ # Update properties of this object
7250
+ def update!(**args)
7251
+ @default_service = args[:default_service] if args.key?(:default_service)
7252
+ @description = args[:description] if args.key?(:description)
7253
+ @name = args[:name] if args.key?(:name)
7254
+ @path_rules = args[:path_rules] if args.key?(:path_rules)
7255
+ end
7256
+ end
7257
+
7258
+ # A path-matching rule for a URL. If matched, will use the specified
7259
+ # BackendService to handle the traffic arriving at this URL.
7260
+ class PathRule
7261
+ include Google::Apis::Core::Hashable
7262
+
7263
+ # The list of path patterns to match. Each must start with / and the only place
7264
+ # a * is allowed is at the end following a /. The string fed to the path matcher
7265
+ # does not include any text after the first ? or #, and those chars are not
7266
+ # allowed here.
7267
+ # Corresponds to the JSON property `paths`
7268
+ # @return [Array<String>]
7269
+ attr_accessor :paths
7270
+
7271
+ # The URL of the BackendService resource if this rule is matched.
7272
+ # Corresponds to the JSON property `service`
7273
+ # @return [String]
7274
+ attr_accessor :service
7275
+
7276
+ def initialize(**args)
7277
+ update!(**args)
7278
+ end
7279
+
7280
+ # Update properties of this object
7281
+ def update!(**args)
7282
+ @paths = args[:paths] if args.key?(:paths)
7283
+ @service = args[:service] if args.key?(:service)
7284
+ end
7285
+ end
7286
+
7287
+ # Defines an Identity and Access Management (IAM) policy. It is used to specify
7288
+ # access control policies for Cloud Platform resources.
7289
+ # A `Policy` consists of a list of `bindings`. A `Binding` binds a list of `
7290
+ # members` to a `role`, where the members can be user accounts, Google groups,
7291
+ # Google domains, and service accounts. A `role` is a named list of permissions
7292
+ # defined by IAM.
7293
+ # **Example**
7294
+ # ` "bindings": [ ` "role": "roles/owner", "members": [ "user:mike@example.com",
7295
+ # "group:admins@example.com", "domain:google.com", "serviceAccount:my-other-app@
7296
+ # appspot.gserviceaccount.com", ] `, ` "role": "roles/viewer", "members": ["user:
7297
+ # sean@example.com"] ` ] `
7298
+ # For a description of IAM and its features, see the [IAM developer's guide](
7299
+ # https://cloud.google.com/iam).
7300
+ class Policy
7301
+ include Google::Apis::Core::Hashable
7302
+
7303
+ # Specifies audit logging configs for "data access". "data access": generally
7304
+ # refers to data reads/writes and admin reads. "admin activity": generally
7305
+ # refers to admin writes.
7306
+ # Note: `AuditConfig` doesn't apply to "admin activity", which always enables
7307
+ # audit logging.
7308
+ # Corresponds to the JSON property `auditConfigs`
7309
+ # @return [Array<Google::Apis::ComputeBeta::AuditConfig>]
7310
+ attr_accessor :audit_configs
7311
+
7312
+ # Associates a list of `members` to a `role`. Multiple `bindings` must not be
7313
+ # specified for the same `role`. `bindings` with no members will result in an
7314
+ # error.
7315
+ # Corresponds to the JSON property `bindings`
7316
+ # @return [Array<Google::Apis::ComputeBeta::Binding>]
7317
+ attr_accessor :bindings
7318
+
7319
+ # `etag` is used for optimistic concurrency control as a way to help prevent
7320
+ # simultaneous updates of a policy from overwriting each other. It is strongly
7321
+ # suggested that systems make use of the `etag` in the read-modify-write cycle
7322
+ # to perform policy updates in order to avoid race conditions: An `etag` is
7323
+ # returned in the response to `getIamPolicy`, and systems are expected to put
7324
+ # that etag in the request to `setIamPolicy` to ensure that their change will be
7325
+ # applied to the same version of the policy.
7326
+ # If no `etag` is provided in the call to `setIamPolicy`, then the existing
7327
+ # policy is overwritten blindly.
7328
+ # Corresponds to the JSON property `etag`
7329
+ # @return [String]
7330
+ attr_accessor :etag
7331
+
7332
+ #
7333
+ # Corresponds to the JSON property `iamOwned`
7334
+ # @return [Boolean]
7335
+ attr_accessor :iam_owned
7336
+ alias_method :iam_owned?, :iam_owned
7337
+
7338
+ # If more than one rule is specified, the rules are applied in the following
7339
+ # manner: - All matching LOG rules are always applied. - If any DENY/
7340
+ # DENY_WITH_LOG rule matches, permission is denied. Logging will be applied if
7341
+ # one or more matching rule requires logging. - Otherwise, if any ALLOW/
7342
+ # ALLOW_WITH_LOG rule matches, permission is granted. Logging will be applied if
7343
+ # one or more matching rule requires logging. - Otherwise, if no rule applies,
7344
+ # permission is denied.
7345
+ # Corresponds to the JSON property `rules`
7346
+ # @return [Array<Google::Apis::ComputeBeta::Rule>]
7347
+ attr_accessor :rules
7348
+
7349
+ # Version of the `Policy`. The default version is 0.
7350
+ # Corresponds to the JSON property `version`
7351
+ # @return [Fixnum]
7352
+ attr_accessor :version
7353
+
7354
+ def initialize(**args)
7355
+ update!(**args)
7356
+ end
7357
+
7358
+ # Update properties of this object
7359
+ def update!(**args)
7360
+ @audit_configs = args[:audit_configs] if args.key?(:audit_configs)
7361
+ @bindings = args[:bindings] if args.key?(:bindings)
7362
+ @etag = args[:etag] if args.key?(:etag)
7363
+ @iam_owned = args[:iam_owned] if args.key?(:iam_owned)
7364
+ @rules = args[:rules] if args.key?(:rules)
7365
+ @version = args[:version] if args.key?(:version)
7366
+ end
7367
+ end
7368
+
7369
+ # A Project resource. Projects can only be created in the Google Cloud Platform
7370
+ # Console. Unless marked otherwise, values can only be modified in the console.
7371
+ class Project
7372
+ include Google::Apis::Core::Hashable
7373
+
7374
+ # A metadata key/value entry.
7375
+ # Corresponds to the JSON property `commonInstanceMetadata`
7376
+ # @return [Google::Apis::ComputeBeta::Metadata]
7377
+ attr_accessor :common_instance_metadata
7378
+
7379
+ # [Output Only] Creation timestamp in RFC3339 text format.
7380
+ # Corresponds to the JSON property `creationTimestamp`
7381
+ # @return [String]
7382
+ attr_accessor :creation_timestamp
7383
+
7384
+ # [Output Only] Default service account used by VMs running in this project.
7385
+ # Corresponds to the JSON property `defaultServiceAccount`
7386
+ # @return [String]
7387
+ attr_accessor :default_service_account
7388
+
7389
+ # An optional textual description of the resource.
7390
+ # Corresponds to the JSON property `description`
7391
+ # @return [String]
7392
+ attr_accessor :description
7393
+
7394
+ # Restricted features enabled for use on this project.
7395
+ # Corresponds to the JSON property `enabledFeatures`
7396
+ # @return [Array<String>]
7397
+ attr_accessor :enabled_features
7398
+
7399
+ # [Output Only] The unique identifier for the resource. This identifier is
7400
+ # defined by the server. This is not the project ID, and is just a unique ID
7401
+ # used by Compute Engine to identify resources.
7402
+ # Corresponds to the JSON property `id`
7403
+ # @return [String]
7404
+ attr_accessor :id
7405
+
7406
+ # [Output Only] Type of the resource. Always compute#project for projects.
7407
+ # Corresponds to the JSON property `kind`
7408
+ # @return [String]
7409
+ attr_accessor :kind
7410
+
7411
+ # The project ID. For example: my-example-project. Use the project ID to make
7412
+ # requests to Compute Engine.
7413
+ # Corresponds to the JSON property `name`
7414
+ # @return [String]
7415
+ attr_accessor :name
7416
+
7417
+ # [Output Only] Quotas assigned to this project.
7418
+ # Corresponds to the JSON property `quotas`
7419
+ # @return [Array<Google::Apis::ComputeBeta::Quota>]
7420
+ attr_accessor :quotas
7421
+
7422
+ # [Output Only] Server-defined URL for the resource.
7423
+ # Corresponds to the JSON property `selfLink`
7424
+ # @return [String]
7425
+ attr_accessor :self_link
7426
+
7427
+ # The location in Cloud Storage and naming method of the daily usage report.
7428
+ # Contains bucket_name and report_name prefix.
7429
+ # Corresponds to the JSON property `usageExportLocation`
7430
+ # @return [Google::Apis::ComputeBeta::UsageExportLocation]
7431
+ attr_accessor :usage_export_location
7432
+
7433
+ # [Output Only] The role this project has in a Cross Project Network (XPN)
7434
+ # configuration. Currently only HOST projects are differentiated.
7435
+ # Corresponds to the JSON property `xpnProjectStatus`
7436
+ # @return [String]
7437
+ attr_accessor :xpn_project_status
7438
+
7439
+ def initialize(**args)
7440
+ update!(**args)
7441
+ end
7442
+
7443
+ # Update properties of this object
7444
+ def update!(**args)
7445
+ @common_instance_metadata = args[:common_instance_metadata] if args.key?(:common_instance_metadata)
7446
+ @creation_timestamp = args[:creation_timestamp] if args.key?(:creation_timestamp)
7447
+ @default_service_account = args[:default_service_account] if args.key?(:default_service_account)
7448
+ @description = args[:description] if args.key?(:description)
7449
+ @enabled_features = args[:enabled_features] if args.key?(:enabled_features)
7450
+ @id = args[:id] if args.key?(:id)
7451
+ @kind = args[:kind] if args.key?(:kind)
7452
+ @name = args[:name] if args.key?(:name)
7453
+ @quotas = args[:quotas] if args.key?(:quotas)
7454
+ @self_link = args[:self_link] if args.key?(:self_link)
7455
+ @usage_export_location = args[:usage_export_location] if args.key?(:usage_export_location)
7456
+ @xpn_project_status = args[:xpn_project_status] if args.key?(:xpn_project_status)
7457
+ end
7458
+ end
7459
+
7460
+ # A quotas entry.
7461
+ class Quota
7462
+ include Google::Apis::Core::Hashable
7463
+
7464
+ # [Output Only] Quota limit for this metric.
7465
+ # Corresponds to the JSON property `limit`
7466
+ # @return [Float]
7467
+ attr_accessor :limit
7468
+
7469
+ # [Output Only] Name of the quota metric.
7470
+ # Corresponds to the JSON property `metric`
7471
+ # @return [String]
7472
+ attr_accessor :metric
7473
+
7474
+ # [Output Only] Current usage of this metric.
7475
+ # Corresponds to the JSON property `usage`
7476
+ # @return [Float]
7477
+ attr_accessor :usage
7478
+
7479
+ def initialize(**args)
7480
+ update!(**args)
7481
+ end
7482
+
7483
+ # Update properties of this object
7484
+ def update!(**args)
7485
+ @limit = args[:limit] if args.key?(:limit)
7486
+ @metric = args[:metric] if args.key?(:metric)
7487
+ @usage = args[:usage] if args.key?(:usage)
7488
+ end
7489
+ end
7490
+
7491
+ # Region resource.
7492
+ class Region
7493
+ include Google::Apis::Core::Hashable
7494
+
7495
+ # [Output Only] Creation timestamp in RFC3339 text format.
7496
+ # Corresponds to the JSON property `creationTimestamp`
7497
+ # @return [String]
7498
+ attr_accessor :creation_timestamp
7499
+
7500
+ # Deprecation status for a public resource.
7501
+ # Corresponds to the JSON property `deprecated`
7502
+ # @return [Google::Apis::ComputeBeta::DeprecationStatus]
7503
+ attr_accessor :deprecated
7504
+
7505
+ # [Output Only] Textual description of the resource.
7506
+ # Corresponds to the JSON property `description`
7507
+ # @return [String]
7508
+ attr_accessor :description
7509
+
7510
+ # [Output Only] The unique identifier for the resource. This identifier is
7511
+ # defined by the server.
7512
+ # Corresponds to the JSON property `id`
7513
+ # @return [String]
7514
+ attr_accessor :id
7515
+
7516
+ # [Output Only] Type of the resource. Always compute#region for regions.
7517
+ # Corresponds to the JSON property `kind`
7518
+ # @return [String]
7519
+ attr_accessor :kind
7520
+
7521
+ # [Output Only] Name of the resource.
7522
+ # Corresponds to the JSON property `name`
7523
+ # @return [String]
7524
+ attr_accessor :name
7525
+
7526
+ # [Output Only] Quotas assigned to this region.
7527
+ # Corresponds to the JSON property `quotas`
7528
+ # @return [Array<Google::Apis::ComputeBeta::Quota>]
7529
+ attr_accessor :quotas
7530
+
7531
+ # [Output Only] Server-defined URL for the resource.
7532
+ # Corresponds to the JSON property `selfLink`
7533
+ # @return [String]
7534
+ attr_accessor :self_link
7535
+
7536
+ # [Output Only] Status of the region, either UP or DOWN.
7537
+ # Corresponds to the JSON property `status`
7538
+ # @return [String]
7539
+ attr_accessor :status
7540
+
7541
+ # [Output Only] A list of zones available in this region, in the form of
7542
+ # resource URLs.
7543
+ # Corresponds to the JSON property `zones`
7544
+ # @return [Array<String>]
7545
+ attr_accessor :zones
7546
+
7547
+ def initialize(**args)
7548
+ update!(**args)
7549
+ end
7550
+
7551
+ # Update properties of this object
7552
+ def update!(**args)
7553
+ @creation_timestamp = args[:creation_timestamp] if args.key?(:creation_timestamp)
7554
+ @deprecated = args[:deprecated] if args.key?(:deprecated)
7555
+ @description = args[:description] if args.key?(:description)
7556
+ @id = args[:id] if args.key?(:id)
7557
+ @kind = args[:kind] if args.key?(:kind)
7558
+ @name = args[:name] if args.key?(:name)
7559
+ @quotas = args[:quotas] if args.key?(:quotas)
7560
+ @self_link = args[:self_link] if args.key?(:self_link)
7561
+ @status = args[:status] if args.key?(:status)
7562
+ @zones = args[:zones] if args.key?(:zones)
7563
+ end
7564
+ end
7565
+
7566
+ # Contains a list of autoscalers.
7567
+ class RegionAutoscalerList
7568
+ include Google::Apis::Core::Hashable
7569
+
7570
+ # [Output Only] The unique identifier for the resource. This identifier is
7571
+ # defined by the server.
7572
+ # Corresponds to the JSON property `id`
7573
+ # @return [String]
7574
+ attr_accessor :id
7575
+
7576
+ # A list of autoscalers.
7577
+ # Corresponds to the JSON property `items`
7578
+ # @return [Array<Google::Apis::ComputeBeta::Autoscaler>]
7579
+ attr_accessor :items
7580
+
7581
+ # Type of resource.
7582
+ # Corresponds to the JSON property `kind`
7583
+ # @return [String]
7584
+ attr_accessor :kind
7585
+
7586
+ # [Output Only] A token used to continue a truncated list request.
7587
+ # Corresponds to the JSON property `nextPageToken`
7588
+ # @return [String]
7589
+ attr_accessor :next_page_token
7590
+
7591
+ # [Output Only] Server-defined URL for this resource.
7592
+ # Corresponds to the JSON property `selfLink`
7593
+ # @return [String]
7594
+ attr_accessor :self_link
7595
+
7596
+ def initialize(**args)
7597
+ update!(**args)
7598
+ end
7599
+
7600
+ # Update properties of this object
7601
+ def update!(**args)
7602
+ @id = args[:id] if args.key?(:id)
7603
+ @items = args[:items] if args.key?(:items)
7604
+ @kind = args[:kind] if args.key?(:kind)
7605
+ @next_page_token = args[:next_page_token] if args.key?(:next_page_token)
7606
+ @self_link = args[:self_link] if args.key?(:self_link)
7607
+ end
7608
+ end
7609
+
7610
+ # Contains a list of InstanceGroup resources.
7611
+ class RegionInstanceGroupList
7612
+ include Google::Apis::Core::Hashable
7613
+
7614
+ # [Output Only] The unique identifier for the resource. This identifier is
7615
+ # defined by the server.
7616
+ # Corresponds to the JSON property `id`
7617
+ # @return [String]
7618
+ attr_accessor :id
7619
+
7620
+ # A list of InstanceGroup resources.
7621
+ # Corresponds to the JSON property `items`
7622
+ # @return [Array<Google::Apis::ComputeBeta::InstanceGroup>]
7623
+ attr_accessor :items
7624
+
7625
+ # The resource type.
7626
+ # Corresponds to the JSON property `kind`
7627
+ # @return [String]
7628
+ attr_accessor :kind
7629
+
7630
+ # [Output Only] This token allows you to get the next page of results for list
7631
+ # requests. If the number of results is larger than maxResults, use the
7632
+ # nextPageToken as a value for the query parameter pageToken in the next list
7633
+ # request. Subsequent list requests will have their own nextPageToken to
7634
+ # continue paging through the results.
7635
+ # Corresponds to the JSON property `nextPageToken`
7636
+ # @return [String]
7637
+ attr_accessor :next_page_token
7638
+
7639
+ # [Output Only] The URL for this resource type. The server generates this URL.
7640
+ # Corresponds to the JSON property `selfLink`
7641
+ # @return [String]
7642
+ attr_accessor :self_link
7643
+
7644
+ def initialize(**args)
7645
+ update!(**args)
7646
+ end
7647
+
7648
+ # Update properties of this object
7649
+ def update!(**args)
7650
+ @id = args[:id] if args.key?(:id)
7651
+ @items = args[:items] if args.key?(:items)
7652
+ @kind = args[:kind] if args.key?(:kind)
7653
+ @next_page_token = args[:next_page_token] if args.key?(:next_page_token)
7654
+ @self_link = args[:self_link] if args.key?(:self_link)
7655
+ end
7656
+ end
7657
+
7658
+ # Contains a list of managed instance groups.
7659
+ class RegionInstanceGroupManagerList
7660
+ include Google::Apis::Core::Hashable
7661
+
7662
+ # [Output Only] The unique identifier for the resource. This identifier is
7663
+ # defined by the server.
7664
+ # Corresponds to the JSON property `id`
7665
+ # @return [String]
7666
+ attr_accessor :id
7667
+
7668
+ # A list of managed instance groups.
7669
+ # Corresponds to the JSON property `items`
7670
+ # @return [Array<Google::Apis::ComputeBeta::InstanceGroupManager>]
7671
+ attr_accessor :items
7672
+
7673
+ # [Output Only] The resource type, which is always compute#
7674
+ # instanceGroupManagerList for a list of managed instance groups that exist in
7675
+ # th regional scope.
7676
+ # Corresponds to the JSON property `kind`
7677
+ # @return [String]
7678
+ attr_accessor :kind
7679
+
7680
+ # [Output only] A token used to continue a truncated list request.
7681
+ # Corresponds to the JSON property `nextPageToken`
7682
+ # @return [String]
7683
+ attr_accessor :next_page_token
7684
+
7685
+ # [Output only] The URL for this resource type. The server generates this URL.
7686
+ # Corresponds to the JSON property `selfLink`
7687
+ # @return [String]
7688
+ attr_accessor :self_link
7689
+
7690
+ def initialize(**args)
7691
+ update!(**args)
7692
+ end
7693
+
7694
+ # Update properties of this object
7695
+ def update!(**args)
7696
+ @id = args[:id] if args.key?(:id)
7697
+ @items = args[:items] if args.key?(:items)
7698
+ @kind = args[:kind] if args.key?(:kind)
7699
+ @next_page_token = args[:next_page_token] if args.key?(:next_page_token)
7700
+ @self_link = args[:self_link] if args.key?(:self_link)
7701
+ end
7702
+ end
7703
+
7704
+ #
7705
+ class RegionInstanceGroupManagersAbandonInstancesRequest
7706
+ include Google::Apis::Core::Hashable
7707
+
7708
+ # The names of one or more instances to abandon.
7709
+ # Corresponds to the JSON property `instances`
7710
+ # @return [Array<String>]
7711
+ attr_accessor :instances
7712
+
7713
+ def initialize(**args)
7714
+ update!(**args)
7715
+ end
7716
+
7717
+ # Update properties of this object
7718
+ def update!(**args)
7719
+ @instances = args[:instances] if args.key?(:instances)
7720
+ end
7721
+ end
7722
+
7723
+ #
7724
+ class RegionInstanceGroupManagersDeleteInstancesRequest
7725
+ include Google::Apis::Core::Hashable
7726
+
7727
+ # The names of one or more instances to delete.
7728
+ # Corresponds to the JSON property `instances`
7729
+ # @return [Array<String>]
7730
+ attr_accessor :instances
7731
+
7732
+ def initialize(**args)
7733
+ update!(**args)
7734
+ end
7735
+
7736
+ # Update properties of this object
7737
+ def update!(**args)
7738
+ @instances = args[:instances] if args.key?(:instances)
7739
+ end
7740
+ end
7741
+
7742
+ #
7743
+ class RegionInstanceGroupManagersListInstancesResponse
7744
+ include Google::Apis::Core::Hashable
7745
+
7746
+ # List of managed instances.
7747
+ # Corresponds to the JSON property `managedInstances`
7748
+ # @return [Array<Google::Apis::ComputeBeta::ManagedInstance>]
7749
+ attr_accessor :managed_instances
7750
+
7751
+ def initialize(**args)
7752
+ update!(**args)
7753
+ end
7754
+
7755
+ # Update properties of this object
7756
+ def update!(**args)
7757
+ @managed_instances = args[:managed_instances] if args.key?(:managed_instances)
7758
+ end
7759
+ end
7760
+
7761
+ #
7762
+ class RegionInstanceGroupManagersRecreateRequest
7763
+ include Google::Apis::Core::Hashable
7764
+
7765
+ # The URL for one or more instances to recreate.
7766
+ # Corresponds to the JSON property `instances`
7767
+ # @return [Array<String>]
7768
+ attr_accessor :instances
7769
+
7770
+ def initialize(**args)
7771
+ update!(**args)
7772
+ end
7773
+
7774
+ # Update properties of this object
7775
+ def update!(**args)
7776
+ @instances = args[:instances] if args.key?(:instances)
7777
+ end
7778
+ end
7779
+
7780
+ #
7781
+ class RegionInstanceGroupManagersSetAutoHealingRequest
7782
+ include Google::Apis::Core::Hashable
7783
+
7784
+ #
7785
+ # Corresponds to the JSON property `autoHealingPolicies`
7786
+ # @return [Array<Google::Apis::ComputeBeta::InstanceGroupManagerAutoHealingPolicy>]
7787
+ attr_accessor :auto_healing_policies
6248
7788
 
6249
7789
  def initialize(**args)
6250
7790
  update!(**args)
@@ -6252,30 +7792,27 @@ module Google
6252
7792
 
6253
7793
  # Update properties of this object
6254
7794
  def update!(**args)
6255
- @default_service = args[:default_service] if args.key?(:default_service)
6256
- @description = args[:description] if args.key?(:description)
6257
- @name = args[:name] if args.key?(:name)
6258
- @path_rules = args[:path_rules] if args.key?(:path_rules)
7795
+ @auto_healing_policies = args[:auto_healing_policies] if args.key?(:auto_healing_policies)
6259
7796
  end
6260
7797
  end
6261
7798
 
6262
- # A path-matching rule for a URL. If matched, will use the specified
6263
- # BackendService to handle the traffic arriving at this URL.
6264
- class PathRule
7799
+ #
7800
+ class RegionInstanceGroupManagersSetTargetPoolsRequest
6265
7801
  include Google::Apis::Core::Hashable
6266
7802
 
6267
- # The list of path patterns to match. Each must start with / and the only place
6268
- # a * is allowed is at the end following a /. The string fed to the path matcher
6269
- # does not include any text after the first ? or #, and those chars are not
6270
- # allowed here.
6271
- # Corresponds to the JSON property `paths`
6272
- # @return [Array<String>]
6273
- attr_accessor :paths
6274
-
6275
- # The URL of the BackendService resource if this rule is matched.
6276
- # Corresponds to the JSON property `service`
7803
+ # Fingerprint of the target pools information, which is a hash of the contents.
7804
+ # This field is used for optimistic locking when you update the target pool
7805
+ # entries. This field is optional.
7806
+ # Corresponds to the JSON property `fingerprint`
6277
7807
  # @return [String]
6278
- attr_accessor :service
7808
+ attr_accessor :fingerprint
7809
+
7810
+ # The URL of all TargetPool resources to which instances in the instanceGroup
7811
+ # field are added. The target pools automatically apply to all of the instances
7812
+ # in the managed instance group.
7813
+ # Corresponds to the JSON property `targetPools`
7814
+ # @return [Array<String>]
7815
+ attr_accessor :target_pools
6279
7816
 
6280
7817
  def initialize(**args)
6281
7818
  update!(**args)
@@ -6283,113 +7820,94 @@ module Google
6283
7820
 
6284
7821
  # Update properties of this object
6285
7822
  def update!(**args)
6286
- @paths = args[:paths] if args.key?(:paths)
6287
- @service = args[:service] if args.key?(:service)
7823
+ @fingerprint = args[:fingerprint] if args.key?(:fingerprint)
7824
+ @target_pools = args[:target_pools] if args.key?(:target_pools)
6288
7825
  end
6289
7826
  end
6290
7827
 
6291
- # A Project resource. Projects can only be created in the Google Cloud Platform
6292
- # Console. Unless marked otherwise, values can only be modified in the console.
6293
- class Project
7828
+ #
7829
+ class RegionInstanceGroupManagersSetTemplateRequest
6294
7830
  include Google::Apis::Core::Hashable
6295
7831
 
6296
- # A metadata key/value entry.
6297
- # Corresponds to the JSON property `commonInstanceMetadata`
6298
- # @return [Google::Apis::ComputeBeta::Metadata]
6299
- attr_accessor :common_instance_metadata
6300
-
6301
- # [Output Only] Creation timestamp in RFC3339 text format.
6302
- # Corresponds to the JSON property `creationTimestamp`
7832
+ # URL of the InstanceTemplate resource from which all new instances will be
7833
+ # created.
7834
+ # Corresponds to the JSON property `instanceTemplate`
6303
7835
  # @return [String]
6304
- attr_accessor :creation_timestamp
7836
+ attr_accessor :instance_template
6305
7837
 
6306
- # [Output Only] Default service account used by VMs running in this project.
6307
- # Corresponds to the JSON property `defaultServiceAccount`
6308
- # @return [String]
6309
- attr_accessor :default_service_account
7838
+ def initialize(**args)
7839
+ update!(**args)
7840
+ end
6310
7841
 
6311
- # An optional textual description of the resource.
6312
- # Corresponds to the JSON property `description`
6313
- # @return [String]
6314
- attr_accessor :description
7842
+ # Update properties of this object
7843
+ def update!(**args)
7844
+ @instance_template = args[:instance_template] if args.key?(:instance_template)
7845
+ end
7846
+ end
6315
7847
 
6316
- # Restricted features enabled for use on this project.
6317
- # Corresponds to the JSON property `enabledFeatures`
6318
- # @return [Array<String>]
6319
- attr_accessor :enabled_features
7848
+ #
7849
+ class RegionInstanceGroupsListInstances
7850
+ include Google::Apis::Core::Hashable
6320
7851
 
6321
- # [Output Only] The unique identifier for the resource. This identifier is
6322
- # defined by the server. This is not the project ID, and is just a unique ID
6323
- # used by Compute Engine to identify resources.
7852
+ # [Output Only] Unique identifier for the resource. Defined by the server.
6324
7853
  # Corresponds to the JSON property `id`
6325
7854
  # @return [String]
6326
7855
  attr_accessor :id
6327
7856
 
6328
- # [Output Only] Type of the resource. Always compute#project for projects.
7857
+ # A list of instances and any named ports that are assigned to those instances.
7858
+ # Corresponds to the JSON property `items`
7859
+ # @return [Array<Google::Apis::ComputeBeta::InstanceWithNamedPorts>]
7860
+ attr_accessor :items
7861
+
7862
+ # The resource type.
6329
7863
  # Corresponds to the JSON property `kind`
6330
7864
  # @return [String]
6331
7865
  attr_accessor :kind
6332
7866
 
6333
- # The project ID. For example: my-example-project. Use the project ID to make
6334
- # requests to Compute Engine.
6335
- # Corresponds to the JSON property `name`
7867
+ # [Output Only] This token allows you to get the next page of results for list
7868
+ # requests. If the number of results is larger than maxResults, use the
7869
+ # nextPageToken as a value for the query parameter pageToken in the next list
7870
+ # request. Subsequent list requests will have their own nextPageToken to
7871
+ # continue paging through the results.
7872
+ # Corresponds to the JSON property `nextPageToken`
6336
7873
  # @return [String]
6337
- attr_accessor :name
6338
-
6339
- # [Output Only] Quotas assigned to this project.
6340
- # Corresponds to the JSON property `quotas`
6341
- # @return [Array<Google::Apis::ComputeBeta::Quota>]
6342
- attr_accessor :quotas
7874
+ attr_accessor :next_page_token
6343
7875
 
6344
7876
  # [Output Only] Server-defined URL for the resource.
6345
7877
  # Corresponds to the JSON property `selfLink`
6346
7878
  # @return [String]
6347
7879
  attr_accessor :self_link
6348
7880
 
6349
- # The location in Cloud Storage and naming method of the daily usage report.
6350
- # Contains bucket_name and report_name prefix.
6351
- # Corresponds to the JSON property `usageExportLocation`
6352
- # @return [Google::Apis::ComputeBeta::UsageExportLocation]
6353
- attr_accessor :usage_export_location
6354
-
6355
7881
  def initialize(**args)
6356
7882
  update!(**args)
6357
7883
  end
6358
7884
 
6359
7885
  # Update properties of this object
6360
7886
  def update!(**args)
6361
- @common_instance_metadata = args[:common_instance_metadata] if args.key?(:common_instance_metadata)
6362
- @creation_timestamp = args[:creation_timestamp] if args.key?(:creation_timestamp)
6363
- @default_service_account = args[:default_service_account] if args.key?(:default_service_account)
6364
- @description = args[:description] if args.key?(:description)
6365
- @enabled_features = args[:enabled_features] if args.key?(:enabled_features)
6366
7887
  @id = args[:id] if args.key?(:id)
7888
+ @items = args[:items] if args.key?(:items)
6367
7889
  @kind = args[:kind] if args.key?(:kind)
6368
- @name = args[:name] if args.key?(:name)
6369
- @quotas = args[:quotas] if args.key?(:quotas)
7890
+ @next_page_token = args[:next_page_token] if args.key?(:next_page_token)
6370
7891
  @self_link = args[:self_link] if args.key?(:self_link)
6371
- @usage_export_location = args[:usage_export_location] if args.key?(:usage_export_location)
6372
7892
  end
6373
7893
  end
6374
7894
 
6375
- # A quotas entry.
6376
- class Quota
7895
+ #
7896
+ class RegionInstanceGroupsListInstancesRequest
6377
7897
  include Google::Apis::Core::Hashable
6378
7898
 
6379
- # [Output Only] Quota limit for this metric.
6380
- # Corresponds to the JSON property `limit`
6381
- # @return [Float]
6382
- attr_accessor :limit
6383
-
6384
- # [Output Only] Name of the quota metric.
6385
- # Corresponds to the JSON property `metric`
7899
+ # Instances in which state should be returned. Valid options are: 'ALL', '
7900
+ # RUNNING'. By default, it lists all instances.
7901
+ # Corresponds to the JSON property `instanceState`
6386
7902
  # @return [String]
6387
- attr_accessor :metric
7903
+ attr_accessor :instance_state
6388
7904
 
6389
- # [Output Only] Current usage of this metric.
6390
- # Corresponds to the JSON property `usage`
6391
- # @return [Float]
6392
- attr_accessor :usage
7905
+ # Name of port user is interested in. It is optional. If it is set, only
7906
+ # information about this ports will be returned. If it is not set, all the named
7907
+ # ports will be returned. Always lists all instances.
7908
+ # Corresponds to the JSON property `portName`
7909
+ # @return [String]
7910
+ attr_accessor :port_name
6393
7911
 
6394
7912
  def initialize(**args)
6395
7913
  update!(**args)
@@ -6397,67 +7915,29 @@ module Google
6397
7915
 
6398
7916
  # Update properties of this object
6399
7917
  def update!(**args)
6400
- @limit = args[:limit] if args.key?(:limit)
6401
- @metric = args[:metric] if args.key?(:metric)
6402
- @usage = args[:usage] if args.key?(:usage)
7918
+ @instance_state = args[:instance_state] if args.key?(:instance_state)
7919
+ @port_name = args[:port_name] if args.key?(:port_name)
6403
7920
  end
6404
7921
  end
6405
7922
 
6406
- # Region resource.
6407
- class Region
7923
+ #
7924
+ class RegionInstanceGroupsSetNamedPortsRequest
6408
7925
  include Google::Apis::Core::Hashable
6409
7926
 
6410
- # [Output Only] Creation timestamp in RFC3339 text format.
6411
- # Corresponds to the JSON property `creationTimestamp`
6412
- # @return [String]
6413
- attr_accessor :creation_timestamp
6414
-
6415
- # Deprecation status for a public resource.
6416
- # Corresponds to the JSON property `deprecated`
6417
- # @return [Google::Apis::ComputeBeta::DeprecationStatus]
6418
- attr_accessor :deprecated
6419
-
6420
- # [Output Only] Textual description of the resource.
6421
- # Corresponds to the JSON property `description`
6422
- # @return [String]
6423
- attr_accessor :description
6424
-
6425
- # [Output Only] The unique identifier for the resource. This identifier is
6426
- # defined by the server.
6427
- # Corresponds to the JSON property `id`
6428
- # @return [String]
6429
- attr_accessor :id
6430
-
6431
- # [Output Only] Type of the resource. Always compute#region for regions.
6432
- # Corresponds to the JSON property `kind`
6433
- # @return [String]
6434
- attr_accessor :kind
6435
-
6436
- # [Output Only] Name of the resource.
6437
- # Corresponds to the JSON property `name`
6438
- # @return [String]
6439
- attr_accessor :name
6440
-
6441
- # [Output Only] Quotas assigned to this region.
6442
- # Corresponds to the JSON property `quotas`
6443
- # @return [Array<Google::Apis::ComputeBeta::Quota>]
6444
- attr_accessor :quotas
6445
-
6446
- # [Output Only] Server-defined URL for the resource.
6447
- # Corresponds to the JSON property `selfLink`
6448
- # @return [String]
6449
- attr_accessor :self_link
6450
-
6451
- # [Output Only] Status of the region, either UP or DOWN.
6452
- # Corresponds to the JSON property `status`
7927
+ # The fingerprint of the named ports information for this instance group. Use
7928
+ # this optional property to prevent conflicts when multiple users change the
7929
+ # named ports settings concurrently. Obtain the fingerprint with the
7930
+ # instanceGroups.get method. Then, include the fingerprint in your request to
7931
+ # ensure that you do not overwrite changes that were applied from another
7932
+ # concurrent request.
7933
+ # Corresponds to the JSON property `fingerprint`
6453
7934
  # @return [String]
6454
- attr_accessor :status
7935
+ attr_accessor :fingerprint
6455
7936
 
6456
- # [Output Only] A list of zones available in this region, in the form of
6457
- # resource URLs.
6458
- # Corresponds to the JSON property `zones`
6459
- # @return [Array<String>]
6460
- attr_accessor :zones
7937
+ # The list of named ports to set for this instance group.
7938
+ # Corresponds to the JSON property `namedPorts`
7939
+ # @return [Array<Google::Apis::ComputeBeta::NamedPort>]
7940
+ attr_accessor :named_ports
6461
7941
 
6462
7942
  def initialize(**args)
6463
7943
  update!(**args)
@@ -6465,16 +7945,8 @@ module Google
6465
7945
 
6466
7946
  # Update properties of this object
6467
7947
  def update!(**args)
6468
- @creation_timestamp = args[:creation_timestamp] if args.key?(:creation_timestamp)
6469
- @deprecated = args[:deprecated] if args.key?(:deprecated)
6470
- @description = args[:description] if args.key?(:description)
6471
- @id = args[:id] if args.key?(:id)
6472
- @kind = args[:kind] if args.key?(:kind)
6473
- @name = args[:name] if args.key?(:name)
6474
- @quotas = args[:quotas] if args.key?(:quotas)
6475
- @self_link = args[:self_link] if args.key?(:self_link)
6476
- @status = args[:status] if args.key?(:status)
6477
- @zones = args[:zones] if args.key?(:zones)
7948
+ @fingerprint = args[:fingerprint] if args.key?(:fingerprint)
7949
+ @named_ports = args[:named_ports] if args.key?(:named_ports)
6478
7950
  end
6479
7951
  end
6480
7952
 
@@ -6530,7 +8002,7 @@ module Google
6530
8002
  class ResourceGroupReference
6531
8003
  include Google::Apis::Core::Hashable
6532
8004
 
6533
- # A URI referencing one of the resource views listed in the backend service.
8005
+ # A URI referencing one of the instance groups listed in the backend service.
6534
8006
  # Corresponds to the JSON property `group`
6535
8007
  # @return [String]
6536
8008
  attr_accessor :group
@@ -6797,12 +8269,14 @@ module Google
6797
8269
  class Router
6798
8270
  include Google::Apis::Core::Hashable
6799
8271
 
6800
- #
8272
+ # BGP information specific to this router.
6801
8273
  # Corresponds to the JSON property `bgp`
6802
8274
  # @return [Google::Apis::ComputeBeta::RouterBgp]
6803
8275
  attr_accessor :bgp
6804
8276
 
6805
- #
8277
+ # BGP information that needs to be configured into the routing stack to
8278
+ # establish the BGP peering. It must specify peer ASN and either interface name,
8279
+ # IP, or peer IP. Please refer to RFC4273.
6806
8280
  # Corresponds to the JSON property `bgpPeers`
6807
8281
  # @return [Array<Google::Apis::ComputeBeta::RouterBgpPeer>]
6808
8282
  attr_accessor :bgp_peers
@@ -6824,7 +8298,8 @@ module Google
6824
8298
  # @return [String]
6825
8299
  attr_accessor :id
6826
8300
 
6827
- #
8301
+ # Router interfaces. Each interface requires either one linked resource (e.g.
8302
+ # linkedVpnTunnel), or IP address and IP address range (e.g. ipRange), or both.
6828
8303
  # Corresponds to the JSON property `interfaces`
6829
8304
  # @return [Array<Google::Apis::ComputeBeta::RouterInterface>]
6830
8305
  attr_accessor :interfaces
@@ -6948,9 +8423,7 @@ module Google
6948
8423
  end
6949
8424
  end
6950
8425
 
6951
- # BGP information that needs to be configured into the routing stack to
6952
- # establish the BGP peering. It must specify peer ASN and either interface name,
6953
- # IP, or peer IP. Reference: https://tools.ietf.org/html/rfc4273
8426
+ #
6954
8427
  class RouterBgpPeer
6955
8428
  include Google::Apis::Core::Hashable
6956
8429
 
@@ -7003,8 +8476,7 @@ module Google
7003
8476
  end
7004
8477
  end
7005
8478
 
7006
- # Router interfaces. Each interface requires either one linked resource (e.g.
7007
- # linked_vpn_tunnel) or IP address + range (specified in ip_range).
8479
+ #
7008
8480
  class RouterInterface
7009
8481
  include Google::Apis::Core::Hashable
7010
8482
 
@@ -7069,7 +8541,7 @@ module Google
7069
8541
  # @return [String]
7070
8542
  attr_accessor :next_page_token
7071
8543
 
7072
- # [Output Only] Server-defined URL for the resource.
8544
+ # [Output Only] Server-defined URL for this resource.
7073
8545
  # Corresponds to the JSON property `selfLink`
7074
8546
  # @return [String]
7075
8547
  attr_accessor :self_link
@@ -7092,7 +8564,7 @@ module Google
7092
8564
  class RouterStatus
7093
8565
  include Google::Apis::Core::Hashable
7094
8566
 
7095
- # Best routes for this router.
8567
+ # Best routes for this router's network.
7096
8568
  # Corresponds to the JSON property `bestRoutes`
7097
8569
  # @return [Array<Google::Apis::ComputeBeta::Route>]
7098
8570
  attr_accessor :best_routes
@@ -7218,6 +8690,25 @@ module Google
7218
8690
  end
7219
8691
  end
7220
8692
 
8693
+ #
8694
+ class RoutersPreviewResponse
8695
+ include Google::Apis::Core::Hashable
8696
+
8697
+ # Router resource.
8698
+ # Corresponds to the JSON property `resource`
8699
+ # @return [Google::Apis::ComputeBeta::Router]
8700
+ attr_accessor :resource
8701
+
8702
+ def initialize(**args)
8703
+ update!(**args)
8704
+ end
8705
+
8706
+ # Update properties of this object
8707
+ def update!(**args)
8708
+ @resource = args[:resource] if args.key?(:resource)
8709
+ end
8710
+ end
8711
+
7221
8712
  #
7222
8713
  class RoutersScopedList
7223
8714
  include Google::Apis::Core::Hashable
@@ -7309,6 +8800,116 @@ module Google
7309
8800
  end
7310
8801
  end
7311
8802
 
8803
+ # A rule to be applied in a Policy.
8804
+ class Rule
8805
+ include Google::Apis::Core::Hashable
8806
+
8807
+ # Required
8808
+ # Corresponds to the JSON property `action`
8809
+ # @return [String]
8810
+ attr_accessor :action
8811
+
8812
+ # Additional restrictions that must be met
8813
+ # Corresponds to the JSON property `conditions`
8814
+ # @return [Array<Google::Apis::ComputeBeta::Condition>]
8815
+ attr_accessor :conditions
8816
+
8817
+ # Human-readable description of the rule.
8818
+ # Corresponds to the JSON property `description`
8819
+ # @return [String]
8820
+ attr_accessor :description
8821
+
8822
+ # If one or more 'in' clauses are specified, the rule matches if the PRINCIPAL/
8823
+ # AUTHORITY_SELECTOR is in at least one of these entries.
8824
+ # Corresponds to the JSON property `ins`
8825
+ # @return [Array<String>]
8826
+ attr_accessor :ins
8827
+
8828
+ # The config returned to callers of tech.iam.IAM.CheckPolicy for any entries
8829
+ # that match the LOG action.
8830
+ # Corresponds to the JSON property `logConfigs`
8831
+ # @return [Array<Google::Apis::ComputeBeta::LogConfig>]
8832
+ attr_accessor :log_configs
8833
+
8834
+ # If one or more 'not_in' clauses are specified, the rule matches if the
8835
+ # PRINCIPAL/AUTHORITY_SELECTOR is in none of the entries.
8836
+ # Corresponds to the JSON property `notIns`
8837
+ # @return [Array<String>]
8838
+ attr_accessor :not_ins
8839
+
8840
+ # A permission is a string of form '..' (e.g., 'storage.buckets.list'). A value
8841
+ # of '*' matches all permissions, and a verb part of '*' (e.g., 'storage.buckets.
8842
+ # *') matches all verbs.
8843
+ # Corresponds to the JSON property `permissions`
8844
+ # @return [Array<String>]
8845
+ attr_accessor :permissions
8846
+
8847
+ def initialize(**args)
8848
+ update!(**args)
8849
+ end
8850
+
8851
+ # Update properties of this object
8852
+ def update!(**args)
8853
+ @action = args[:action] if args.key?(:action)
8854
+ @conditions = args[:conditions] if args.key?(:conditions)
8855
+ @description = args[:description] if args.key?(:description)
8856
+ @ins = args[:ins] if args.key?(:ins)
8857
+ @log_configs = args[:log_configs] if args.key?(:log_configs)
8858
+ @not_ins = args[:not_ins] if args.key?(:not_ins)
8859
+ @permissions = args[:permissions] if args.key?(:permissions)
8860
+ end
8861
+ end
8862
+
8863
+ #
8864
+ class SslHealthCheck
8865
+ include Google::Apis::Core::Hashable
8866
+
8867
+ # The TCP port number for the health check request. The default value is 443.
8868
+ # Corresponds to the JSON property `port`
8869
+ # @return [Fixnum]
8870
+ attr_accessor :port
8871
+
8872
+ # Port name as defined in InstanceGroup#NamedPort#name. If both port and
8873
+ # port_name are defined, port takes precedence.
8874
+ # Corresponds to the JSON property `portName`
8875
+ # @return [String]
8876
+ attr_accessor :port_name
8877
+
8878
+ # Specifies the type of proxy header to append before sending data to the
8879
+ # backend, either NONE or PROXY_V1. The default is NONE.
8880
+ # Corresponds to the JSON property `proxyHeader`
8881
+ # @return [String]
8882
+ attr_accessor :proxy_header
8883
+
8884
+ # The application data to send once the SSL connection has been established (
8885
+ # default value is empty). If both request and response are empty, the
8886
+ # connection establishment alone will indicate health. The request data can only
8887
+ # be ASCII.
8888
+ # Corresponds to the JSON property `request`
8889
+ # @return [String]
8890
+ attr_accessor :request
8891
+
8892
+ # The bytes to match against the beginning of the response data. If left empty (
8893
+ # the default value), any response will indicate health. The response data can
8894
+ # only be ASCII.
8895
+ # Corresponds to the JSON property `response`
8896
+ # @return [String]
8897
+ attr_accessor :response
8898
+
8899
+ def initialize(**args)
8900
+ update!(**args)
8901
+ end
8902
+
8903
+ # Update properties of this object
8904
+ def update!(**args)
8905
+ @port = args[:port] if args.key?(:port)
8906
+ @port_name = args[:port_name] if args.key?(:port_name)
8907
+ @proxy_header = args[:proxy_header] if args.key?(:proxy_header)
8908
+ @request = args[:request] if args.key?(:request)
8909
+ @response = args[:response] if args.key?(:response)
8910
+ end
8911
+ end
8912
+
7312
8913
  # Sets the scheduling options for an Instance.
7313
8914
  class Scheduling
7314
8915
  include Google::Apis::Core::Hashable
@@ -7369,7 +8970,7 @@ module Google
7369
8970
  # @return [String]
7370
8971
  attr_accessor :next
7371
8972
 
7372
- # [Output Only] Server-defined URL for the resource.
8973
+ # [Output Only] Server-defined URL for this resource.
7373
8974
  # Corresponds to the JSON property `selfLink`
7374
8975
  # @return [String]
7375
8976
  attr_accessor :self_link
@@ -7914,6 +9515,28 @@ module Google
7914
9515
  end
7915
9516
  end
7916
9517
 
9518
+ #
9519
+ class SubnetworksExpandIpCidrRangeRequest
9520
+ include Google::Apis::Core::Hashable
9521
+
9522
+ # The IP (in CIDR format or netmask) of internal addresses that are legal on
9523
+ # this Subnetwork. This range should be disjoint from other subnetworks within
9524
+ # this network. This range can only be larger than (i.e. a superset of) the
9525
+ # range previously defined before the update.
9526
+ # Corresponds to the JSON property `ipCidrRange`
9527
+ # @return [String]
9528
+ attr_accessor :ip_cidr_range
9529
+
9530
+ def initialize(**args)
9531
+ update!(**args)
9532
+ end
9533
+
9534
+ # Update properties of this object
9535
+ def update!(**args)
9536
+ @ip_cidr_range = args[:ip_cidr_range] if args.key?(:ip_cidr_range)
9537
+ end
9538
+ end
9539
+
7917
9540
  #
7918
9541
  class SubnetworksScopedList
7919
9542
  include Google::Apis::Core::Hashable
@@ -8003,6 +9626,56 @@ module Google
8003
9626
  end
8004
9627
  end
8005
9628
 
9629
+ #
9630
+ class TcpHealthCheck
9631
+ include Google::Apis::Core::Hashable
9632
+
9633
+ # The TCP port number for the health check request. The default value is 80.
9634
+ # Corresponds to the JSON property `port`
9635
+ # @return [Fixnum]
9636
+ attr_accessor :port
9637
+
9638
+ # Port name as defined in InstanceGroup#NamedPort#name. If both port and
9639
+ # port_name are defined, port takes precedence.
9640
+ # Corresponds to the JSON property `portName`
9641
+ # @return [String]
9642
+ attr_accessor :port_name
9643
+
9644
+ # Specifies the type of proxy header to append before sending data to the
9645
+ # backend, either NONE or PROXY_V1. The default is NONE.
9646
+ # Corresponds to the JSON property `proxyHeader`
9647
+ # @return [String]
9648
+ attr_accessor :proxy_header
9649
+
9650
+ # The application data to send once the TCP connection has been established (
9651
+ # default value is empty). If both request and response are empty, the
9652
+ # connection establishment alone will indicate health. The request data can only
9653
+ # be ASCII.
9654
+ # Corresponds to the JSON property `request`
9655
+ # @return [String]
9656
+ attr_accessor :request
9657
+
9658
+ # The bytes to match against the beginning of the response data. If left empty (
9659
+ # the default value), any response will indicate health. The response data can
9660
+ # only be ASCII.
9661
+ # Corresponds to the JSON property `response`
9662
+ # @return [String]
9663
+ attr_accessor :response
9664
+
9665
+ def initialize(**args)
9666
+ update!(**args)
9667
+ end
9668
+
9669
+ # Update properties of this object
9670
+ def update!(**args)
9671
+ @port = args[:port] if args.key?(:port)
9672
+ @port_name = args[:port_name] if args.key?(:port_name)
9673
+ @proxy_header = args[:proxy_header] if args.key?(:proxy_header)
9674
+ @request = args[:request] if args.key?(:request)
9675
+ @response = args[:response] if args.key?(:response)
9676
+ end
9677
+ end
9678
+
8006
9679
  # A set of instance tags.
8007
9680
  class Tags
8008
9681
  include Google::Apis::Core::Hashable
@@ -9002,6 +10675,190 @@ module Google
9002
10675
  end
9003
10676
  end
9004
10677
 
10678
+ #
10679
+ class TargetSslProxiesSetBackendServiceRequest
10680
+ include Google::Apis::Core::Hashable
10681
+
10682
+ # The URL of the new BackendService resource for the targetSslProxy.
10683
+ # Corresponds to the JSON property `service`
10684
+ # @return [String]
10685
+ attr_accessor :service
10686
+
10687
+ def initialize(**args)
10688
+ update!(**args)
10689
+ end
10690
+
10691
+ # Update properties of this object
10692
+ def update!(**args)
10693
+ @service = args[:service] if args.key?(:service)
10694
+ end
10695
+ end
10696
+
10697
+ #
10698
+ class TargetSslProxiesSetProxyHeaderRequest
10699
+ include Google::Apis::Core::Hashable
10700
+
10701
+ # The new type of proxy header to append before sending data to the backend.
10702
+ # NONE or PROXY_V1 are allowed.
10703
+ # Corresponds to the JSON property `proxyHeader`
10704
+ # @return [String]
10705
+ attr_accessor :proxy_header
10706
+
10707
+ def initialize(**args)
10708
+ update!(**args)
10709
+ end
10710
+
10711
+ # Update properties of this object
10712
+ def update!(**args)
10713
+ @proxy_header = args[:proxy_header] if args.key?(:proxy_header)
10714
+ end
10715
+ end
10716
+
10717
+ #
10718
+ class TargetSslProxiesSetSslCertificatesRequest
10719
+ include Google::Apis::Core::Hashable
10720
+
10721
+ # New set of URLs to SslCertificate resources to associate with this
10722
+ # TargetSslProxy. Currently exactly one ssl certificate must be specified.
10723
+ # Corresponds to the JSON property `sslCertificates`
10724
+ # @return [Array<String>]
10725
+ attr_accessor :ssl_certificates
10726
+
10727
+ def initialize(**args)
10728
+ update!(**args)
10729
+ end
10730
+
10731
+ # Update properties of this object
10732
+ def update!(**args)
10733
+ @ssl_certificates = args[:ssl_certificates] if args.key?(:ssl_certificates)
10734
+ end
10735
+ end
10736
+
10737
+ # A TargetSslProxy resource. This resource defines an SSL proxy.
10738
+ class TargetSslProxy
10739
+ include Google::Apis::Core::Hashable
10740
+
10741
+ # [Output Only] Creation timestamp in RFC3339 text format.
10742
+ # Corresponds to the JSON property `creationTimestamp`
10743
+ # @return [String]
10744
+ attr_accessor :creation_timestamp
10745
+
10746
+ # An optional description of this resource. Provide this property when you
10747
+ # create the resource.
10748
+ # Corresponds to the JSON property `description`
10749
+ # @return [String]
10750
+ attr_accessor :description
10751
+
10752
+ # [Output Only] The unique identifier for the resource. This identifier is
10753
+ # defined by the server.
10754
+ # Corresponds to the JSON property `id`
10755
+ # @return [String]
10756
+ attr_accessor :id
10757
+
10758
+ # [Output Only] Type of the resource. Always compute#targetSslProxy for target
10759
+ # SSL proxies.
10760
+ # Corresponds to the JSON property `kind`
10761
+ # @return [String]
10762
+ attr_accessor :kind
10763
+
10764
+ # Name of the resource. Provided by the client when the resource is created. The
10765
+ # name must be 1-63 characters long, and comply with RFC1035. Specifically, the
10766
+ # name must be 1-63 characters long and match the regular expression [a-z]([-a-
10767
+ # z0-9]*[a-z0-9])? which means the first character must be a lowercase letter,
10768
+ # and all following characters must be a dash, lowercase letter, or digit,
10769
+ # except the last character, which cannot be a dash.
10770
+ # Corresponds to the JSON property `name`
10771
+ # @return [String]
10772
+ attr_accessor :name
10773
+
10774
+ # Specifies the type of proxy header to append before sending data to the
10775
+ # backend, either NONE or PROXY_V1. The default is NONE.
10776
+ # Corresponds to the JSON property `proxyHeader`
10777
+ # @return [String]
10778
+ attr_accessor :proxy_header
10779
+
10780
+ # [Output Only] Server-defined URL for the resource.
10781
+ # Corresponds to the JSON property `selfLink`
10782
+ # @return [String]
10783
+ attr_accessor :self_link
10784
+
10785
+ # URL to the BackendService resource.
10786
+ # Corresponds to the JSON property `service`
10787
+ # @return [String]
10788
+ attr_accessor :service
10789
+
10790
+ # URLs to SslCertificate resources that are used to authenticate connections to
10791
+ # Backends. Currently exactly one SSL certificate must be specified.
10792
+ # Corresponds to the JSON property `sslCertificates`
10793
+ # @return [Array<String>]
10794
+ attr_accessor :ssl_certificates
10795
+
10796
+ def initialize(**args)
10797
+ update!(**args)
10798
+ end
10799
+
10800
+ # Update properties of this object
10801
+ def update!(**args)
10802
+ @creation_timestamp = args[:creation_timestamp] if args.key?(:creation_timestamp)
10803
+ @description = args[:description] if args.key?(:description)
10804
+ @id = args[:id] if args.key?(:id)
10805
+ @kind = args[:kind] if args.key?(:kind)
10806
+ @name = args[:name] if args.key?(:name)
10807
+ @proxy_header = args[:proxy_header] if args.key?(:proxy_header)
10808
+ @self_link = args[:self_link] if args.key?(:self_link)
10809
+ @service = args[:service] if args.key?(:service)
10810
+ @ssl_certificates = args[:ssl_certificates] if args.key?(:ssl_certificates)
10811
+ end
10812
+ end
10813
+
10814
+ # Contains a list of TargetSslProxy resources.
10815
+ class TargetSslProxyList
10816
+ include Google::Apis::Core::Hashable
10817
+
10818
+ # [Output Only] The unique identifier for the resource. This identifier is
10819
+ # defined by the server.
10820
+ # Corresponds to the JSON property `id`
10821
+ # @return [String]
10822
+ attr_accessor :id
10823
+
10824
+ # A list of TargetSslProxy resources.
10825
+ # Corresponds to the JSON property `items`
10826
+ # @return [Array<Google::Apis::ComputeBeta::TargetSslProxy>]
10827
+ attr_accessor :items
10828
+
10829
+ # Type of resource.
10830
+ # Corresponds to the JSON property `kind`
10831
+ # @return [String]
10832
+ attr_accessor :kind
10833
+
10834
+ # [Output Only] This token allows you to get the next page of results for list
10835
+ # requests. If the number of results is larger than maxResults, use the
10836
+ # nextPageToken as a value for the query parameter pageToken in the next list
10837
+ # request. Subsequent list requests will have their own nextPageToken to
10838
+ # continue paging through the results.
10839
+ # Corresponds to the JSON property `nextPageToken`
10840
+ # @return [String]
10841
+ attr_accessor :next_page_token
10842
+
10843
+ # [Output Only] Server-defined URL for this resource.
10844
+ # Corresponds to the JSON property `selfLink`
10845
+ # @return [String]
10846
+ attr_accessor :self_link
10847
+
10848
+ def initialize(**args)
10849
+ update!(**args)
10850
+ end
10851
+
10852
+ # Update properties of this object
10853
+ def update!(**args)
10854
+ @id = args[:id] if args.key?(:id)
10855
+ @items = args[:items] if args.key?(:items)
10856
+ @kind = args[:kind] if args.key?(:kind)
10857
+ @next_page_token = args[:next_page_token] if args.key?(:next_page_token)
10858
+ @self_link = args[:self_link] if args.key?(:self_link)
10859
+ end
10860
+ end
10861
+
9005
10862
  # Represents a Target VPN gateway resource.
9006
10863
  class TargetVpnGateway
9007
10864
  include Google::Apis::Core::Hashable
@@ -9123,7 +10980,7 @@ module Google
9123
10980
  # @return [String]
9124
10981
  attr_accessor :next_page_token
9125
10982
 
9126
- # [Output Only] Server-defined URL for the resource.
10983
+ # [Output Only] Server-defined URL for this resource.
9127
10984
  # Corresponds to the JSON property `selfLink`
9128
10985
  # @return [String]
9129
10986
  attr_accessor :self_link
@@ -9172,7 +11029,7 @@ module Google
9172
11029
  # @return [String]
9173
11030
  attr_accessor :next_page_token
9174
11031
 
9175
- # [Output Only] Server-defined URL for the resource.
11032
+ # [Output Only] Server-defined URL for this resource.
9176
11033
  # Corresponds to the JSON property `selfLink`
9177
11034
  # @return [String]
9178
11035
  attr_accessor :self_link
@@ -9732,6 +11589,13 @@ module Google
9732
11589
  # @return [String]
9733
11590
  attr_accessor :region
9734
11591
 
11592
+ # Remote traffic selectors to use when establishing the VPN tunnel with peer VPN
11593
+ # gateway. The value should be a CIDR formatted string, for example: 192.168.0.0/
11594
+ # 16. The ranges should be disjoint.
11595
+ # Corresponds to the JSON property `remoteTrafficSelector`
11596
+ # @return [Array<String>]
11597
+ attr_accessor :remote_traffic_selector
11598
+
9735
11599
  # URL of router resource to be used for dynamic routing.
9736
11600
  # Corresponds to the JSON property `router`
9737
11601
  # @return [String]
@@ -9780,6 +11644,7 @@ module Google
9780
11644
  @name = args[:name] if args.key?(:name)
9781
11645
  @peer_ip = args[:peer_ip] if args.key?(:peer_ip)
9782
11646
  @region = args[:region] if args.key?(:region)
11647
+ @remote_traffic_selector = args[:remote_traffic_selector] if args.key?(:remote_traffic_selector)
9783
11648
  @router = args[:router] if args.key?(:router)
9784
11649
  @self_link = args[:self_link] if args.key?(:self_link)
9785
11650
  @shared_secret = args[:shared_secret] if args.key?(:shared_secret)
@@ -9866,7 +11731,7 @@ module Google
9866
11731
  # @return [String]
9867
11732
  attr_accessor :next_page_token
9868
11733
 
9869
- # [Output Only] Server-defined URL for the resource.
11734
+ # [Output Only] Server-defined URL for this resource.
9870
11735
  # Corresponds to the JSON property `selfLink`
9871
11736
  # @return [String]
9872
11737
  attr_accessor :self_link