google-api-client 0.9.8 → 0.9.20

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (238) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +37 -0
  3. data/Gemfile +9 -1
  4. data/README.md +10 -2
  5. data/api_names.yaml +63 -110
  6. data/generated/google/apis/adexchangebuyer2_v2beta1.rb +35 -0
  7. data/generated/google/apis/adexchangebuyer2_v2beta1/classes.rb +298 -0
  8. data/generated/google/apis/adexchangebuyer2_v2beta1/representations.rb +122 -0
  9. data/generated/google/apis/adexchangebuyer2_v2beta1/service.rb +458 -0
  10. data/generated/google/apis/adexchangebuyer_v1_4.rb +1 -1
  11. data/generated/google/apis/adexchangebuyer_v1_4/classes.rb +260 -13
  12. data/generated/google/apis/adexchangebuyer_v1_4/representations.rb +81 -0
  13. data/generated/google/apis/adexchangebuyer_v1_4/service.rb +60 -8
  14. data/generated/google/apis/adexchangeseller_v2_0.rb +2 -3
  15. data/generated/google/apis/adexchangeseller_v2_0/service.rb +1 -2
  16. data/generated/google/apis/admin_directory_v1.rb +1 -1
  17. data/generated/google/apis/admin_directory_v1/classes.rb +86 -0
  18. data/generated/google/apis/admin_directory_v1/representations.rb +24 -0
  19. data/generated/google/apis/admin_directory_v1/service.rb +41 -2
  20. data/generated/google/apis/admin_reports_v1.rb +3 -3
  21. data/generated/google/apis/admin_reports_v1/service.rb +2 -2
  22. data/generated/google/apis/adsense_v1_4.rb +1 -1
  23. data/generated/google/apis/adsense_v1_4/classes.rb +1 -1
  24. data/generated/google/apis/adsensehost_v4_1.rb +1 -1
  25. data/generated/google/apis/adsensehost_v4_1/classes.rb +1 -2
  26. data/generated/google/apis/analytics_v3.rb +1 -1
  27. data/generated/google/apis/analytics_v3/classes.rb +379 -3
  28. data/generated/google/apis/analytics_v3/representations.rb +136 -0
  29. data/generated/google/apis/analytics_v3/service.rb +217 -0
  30. data/generated/google/apis/analyticsreporting_v4.rb +1 -1
  31. data/generated/google/apis/analyticsreporting_v4/classes.rb +50 -22
  32. data/generated/google/apis/androidenterprise_v1.rb +1 -1
  33. data/generated/google/apis/androidenterprise_v1/classes.rb +813 -49
  34. data/generated/google/apis/androidenterprise_v1/representations.rb +336 -0
  35. data/generated/google/apis/androidenterprise_v1/service.rb +1234 -145
  36. data/generated/google/apis/androidpublisher_v2.rb +1 -1
  37. data/generated/google/apis/androidpublisher_v2/classes.rb +47 -8
  38. data/generated/google/apis/androidpublisher_v2/representations.rb +27 -0
  39. data/generated/google/apis/androidpublisher_v2/service.rb +55 -0
  40. data/generated/google/apis/appengine_v1beta5.rb +7 -1
  41. data/generated/google/apis/appengine_v1beta5/classes.rb +516 -313
  42. data/generated/google/apis/appengine_v1beta5/representations.rb +115 -22
  43. data/generated/google/apis/appengine_v1beta5/service.rb +329 -33
  44. data/generated/google/apis/appsactivity_v1.rb +1 -1
  45. data/generated/google/apis/appsactivity_v1/classes.rb +7 -0
  46. data/generated/google/apis/appsactivity_v1/representations.rb +1 -0
  47. data/generated/google/apis/appstate_v1.rb +1 -1
  48. data/generated/google/apis/bigquery_v2.rb +1 -1
  49. data/generated/google/apis/bigquery_v2/classes.rb +277 -20
  50. data/generated/google/apis/bigquery_v2/representations.rb +86 -0
  51. data/generated/google/apis/bigquery_v2/service.rb +8 -2
  52. data/generated/google/apis/books_v1.rb +2 -2
  53. data/generated/google/apis/books_v1/classes.rb +79 -1
  54. data/generated/google/apis/books_v1/representations.rb +34 -0
  55. data/generated/google/apis/books_v1/service.rb +7 -3
  56. data/generated/google/apis/calendar_v3.rb +1 -1
  57. data/generated/google/apis/civicinfo_v2.rb +3 -2
  58. data/generated/google/apis/civicinfo_v2/classes.rb +377 -5
  59. data/generated/google/apis/civicinfo_v2/representations.rb +149 -0
  60. data/generated/google/apis/civicinfo_v2/service.rb +27 -6
  61. data/generated/google/apis/classroom_v1.rb +1 -1
  62. data/generated/google/apis/classroom_v1/classes.rb +183 -37
  63. data/generated/google/apis/classroom_v1/representations.rb +74 -9
  64. data/generated/google/apis/classroom_v1/service.rb +403 -38
  65. data/generated/google/apis/cloudbuild_v1.rb +1 -1
  66. data/generated/google/apis/cloudbuild_v1/classes.rb +381 -17
  67. data/generated/google/apis/cloudbuild_v1/representations.rb +137 -2
  68. data/generated/google/apis/cloudbuild_v1/service.rb +174 -1
  69. data/generated/google/apis/clouddebugger_v2.rb +3 -6
  70. data/generated/google/apis/clouddebugger_v2/service.rb +4 -4
  71. data/generated/google/apis/cloudmonitoring_v2beta2.rb +1 -1
  72. data/generated/google/apis/cloudresourcemanager_v1.rb +1 -1
  73. data/generated/google/apis/cloudresourcemanager_v1/classes.rb +502 -111
  74. data/generated/google/apis/cloudresourcemanager_v1/representations.rb +162 -24
  75. data/generated/google/apis/cloudresourcemanager_v1/service.rb +274 -30
  76. data/generated/google/apis/cloudresourcemanager_v1beta1.rb +1 -1
  77. data/generated/google/apis/cloudresourcemanager_v1beta1/classes.rb +121 -9
  78. data/generated/google/apis/cloudresourcemanager_v1beta1/representations.rb +46 -0
  79. data/generated/google/apis/cloudresourcemanager_v1beta1/service.rb +71 -58
  80. data/generated/google/apis/compute_beta.rb +1 -1
  81. data/generated/google/apis/compute_beta/classes.rb +2299 -434
  82. data/generated/google/apis/compute_beta/representations.rb +752 -33
  83. data/generated/google/apis/compute_beta/service.rb +6067 -3153
  84. data/generated/google/apis/compute_v1.rb +1 -1
  85. data/generated/google/apis/compute_v1/classes.rb +1681 -207
  86. data/generated/google/apis/compute_v1/representations.rb +552 -0
  87. data/generated/google/apis/compute_v1/service.rb +2797 -1171
  88. data/generated/google/apis/content_v2.rb +1 -1
  89. data/generated/google/apis/content_v2/classes.rb +757 -1
  90. data/generated/google/apis/content_v2/representations.rb +337 -0
  91. data/generated/google/apis/content_v2/service.rb +244 -0
  92. data/generated/google/apis/dataflow_v1b3.rb +38 -0
  93. data/generated/google/apis/dataflow_v1b3/classes.rb +4053 -0
  94. data/generated/google/apis/dataflow_v1b3/representations.rb +1736 -0
  95. data/generated/google/apis/dataflow_v1b3/service.rb +875 -0
  96. data/generated/google/apis/dataproc_v1.rb +2 -2
  97. data/generated/google/apis/dataproc_v1/classes.rb +213 -68
  98. data/generated/google/apis/dataproc_v1/representations.rb +38 -0
  99. data/generated/google/apis/dataproc_v1/service.rb +78 -48
  100. data/generated/google/apis/datastore_v1.rb +38 -0
  101. data/generated/google/apis/datastore_v1/classes.rb +1284 -0
  102. data/generated/google/apis/datastore_v1/representations.rb +572 -0
  103. data/generated/google/apis/datastore_v1/service.rb +259 -0
  104. data/generated/google/apis/datastore_v1beta3.rb +38 -0
  105. data/generated/google/apis/datastore_v1beta3/classes.rb +1284 -0
  106. data/generated/google/apis/datastore_v1beta3/representations.rb +572 -0
  107. data/generated/google/apis/datastore_v1beta3/service.rb +259 -0
  108. data/generated/google/apis/deploymentmanager_v2.rb +1 -1
  109. data/generated/google/apis/deploymentmanager_v2/classes.rb +384 -2
  110. data/generated/google/apis/deploymentmanager_v2/representations.rb +161 -0
  111. data/generated/google/apis/deploymentmanager_v2/service.rb +217 -55
  112. data/generated/google/apis/dfareporting_v2_5.rb +40 -0
  113. data/generated/google/apis/dfareporting_v2_5/classes.rb +11225 -0
  114. data/generated/google/apis/dfareporting_v2_5/representations.rb +3982 -0
  115. data/generated/google/apis/dfareporting_v2_5/service.rb +8755 -0
  116. data/generated/google/apis/dfareporting_v2_6.rb +40 -0
  117. data/generated/google/apis/dfareporting_v2_6/classes.rb +11586 -0
  118. data/generated/google/apis/dfareporting_v2_6/representations.rb +4119 -0
  119. data/generated/google/apis/dfareporting_v2_6/service.rb +9025 -0
  120. data/generated/google/apis/dns_v1.rb +1 -1
  121. data/generated/google/apis/dns_v1/classes.rb +1 -1
  122. data/generated/google/apis/doubleclickbidmanager_v1.rb +1 -1
  123. data/generated/google/apis/doubleclickbidmanager_v1/classes.rb +79 -86
  124. data/generated/google/apis/doubleclickbidmanager_v1/representations.rb +25 -28
  125. data/generated/google/apis/doubleclickbidmanager_v1/service.rb +10 -8
  126. data/generated/google/apis/doubleclicksearch_v2.rb +1 -1
  127. data/generated/google/apis/drive_v2.rb +1 -1
  128. data/generated/google/apis/drive_v2/classes.rb +27 -3
  129. data/generated/google/apis/drive_v2/representations.rb +4 -0
  130. data/generated/google/apis/drive_v2/service.rb +16 -3
  131. data/generated/google/apis/drive_v3.rb +1 -1
  132. data/generated/google/apis/drive_v3/classes.rb +50 -16
  133. data/generated/google/apis/drive_v3/representations.rb +4 -0
  134. data/generated/google/apis/drive_v3/service.rb +12 -2
  135. data/generated/google/apis/fitness_v1.rb +8 -2
  136. data/generated/google/apis/fitness_v1/classes.rb +64 -6
  137. data/generated/google/apis/fitness_v1/representations.rb +20 -0
  138. data/generated/google/apis/fitness_v1/service.rb +17 -18
  139. data/generated/google/apis/fusiontables_v2.rb +1 -1
  140. data/generated/google/apis/fusiontables_v2/classes.rb +4 -3
  141. data/generated/google/apis/games_configuration_v1configuration.rb +1 -1
  142. data/generated/google/apis/games_management_v1management.rb +1 -1
  143. data/generated/google/apis/games_v1.rb +1 -1
  144. data/generated/google/apis/genomics_v1.rb +2 -4
  145. data/generated/google/apis/genomics_v1/classes.rb +143 -34
  146. data/generated/google/apis/genomics_v1/representations.rb +48 -11
  147. data/generated/google/apis/genomics_v1/service.rb +35 -37
  148. data/generated/google/apis/gmail_v1.rb +10 -1
  149. data/generated/google/apis/gmail_v1/classes.rb +542 -4
  150. data/generated/google/apis/gmail_v1/representations.rb +213 -0
  151. data/generated/google/apis/gmail_v1/service.rb +898 -1
  152. data/generated/google/apis/groupssettings_v1.rb +1 -1
  153. data/generated/google/apis/groupssettings_v1/classes.rb +12 -0
  154. data/generated/google/apis/groupssettings_v1/representations.rb +2 -0
  155. data/generated/google/apis/iam_v1.rb +2 -2
  156. data/generated/google/apis/iam_v1/classes.rb +181 -206
  157. data/generated/google/apis/iam_v1/representations.rb +36 -45
  158. data/generated/google/apis/iam_v1/service.rb +101 -67
  159. data/generated/google/apis/identitytoolkit_v3.rb +4 -1
  160. data/generated/google/apis/identitytoolkit_v3/classes.rb +171 -1
  161. data/generated/google/apis/identitytoolkit_v3/representations.rb +26 -0
  162. data/generated/google/apis/language_v1beta1.rb +36 -0
  163. data/generated/google/apis/language_v1beta1/classes.rb +599 -0
  164. data/generated/google/apis/language_v1beta1/representations.rb +289 -0
  165. data/generated/google/apis/language_v1beta1/service.rb +152 -0
  166. data/generated/google/apis/logging_v2beta1.rb +6 -6
  167. data/generated/google/apis/logging_v2beta1/classes.rb +760 -731
  168. data/generated/google/apis/logging_v2beta1/representations.rb +136 -147
  169. data/generated/google/apis/logging_v2beta1/service.rb +290 -209
  170. data/generated/google/apis/mirror_v1.rb +2 -2
  171. data/generated/google/apis/mirror_v1/service.rb +1 -1
  172. data/generated/google/apis/monitoring_v3.rb +45 -0
  173. data/generated/google/apis/monitoring_v3/classes.rb +1337 -0
  174. data/generated/google/apis/monitoring_v3/representations.rb +516 -0
  175. data/generated/google/apis/monitoring_v3/service.rb +711 -0
  176. data/generated/google/apis/oauth2_v2.rb +1 -1
  177. data/generated/google/apis/pagespeedonline_v2.rb +1 -1
  178. data/generated/google/apis/plus_domains_v1.rb +1 -1
  179. data/generated/google/apis/plus_v1.rb +1 -1
  180. data/generated/google/apis/pubsub_v1.rb +1 -1
  181. data/generated/google/apis/pubsub_v1/classes.rb +10 -9
  182. data/generated/google/apis/pubsub_v1/service.rb +128 -27
  183. data/generated/google/apis/qpx_express_v1.rb +1 -1
  184. data/generated/google/apis/qpx_express_v1/classes.rb +6 -0
  185. data/generated/google/apis/qpx_express_v1/representations.rb +1 -0
  186. data/generated/google/apis/replicapool_v1beta2.rb +1 -1
  187. data/generated/google/apis/replicapoolupdater_v1beta1.rb +4 -2
  188. data/generated/google/apis/replicapoolupdater_v1beta1/service.rb +3 -1
  189. data/generated/google/apis/script_v1.rb +1 -1
  190. data/generated/google/apis/script_v1/classes.rb +6 -0
  191. data/generated/google/apis/script_v1/representations.rb +1 -0
  192. data/generated/google/apis/sheets_v4.rb +1 -1
  193. data/generated/google/apis/sheets_v4/classes.rb +910 -89
  194. data/generated/google/apis/sheets_v4/representations.rb +194 -10
  195. data/generated/google/apis/sheets_v4/service.rb +216 -49
  196. data/generated/google/apis/slides_v1.rb +49 -0
  197. data/generated/google/apis/slides_v1/classes.rb +3926 -0
  198. data/generated/google/apis/slides_v1/representations.rb +1722 -0
  199. data/generated/google/apis/slides_v1/service.rb +202 -0
  200. data/generated/google/apis/speech_v1beta1.rb +34 -0
  201. data/generated/google/apis/speech_v1beta1/classes.rb +511 -0
  202. data/generated/google/apis/speech_v1beta1/representations.rb +218 -0
  203. data/generated/google/apis/speech_v1beta1/service.rb +271 -0
  204. data/generated/google/apis/sqladmin_v1beta4.rb +1 -1
  205. data/generated/google/apis/sqladmin_v1beta4/classes.rb +32 -8
  206. data/generated/google/apis/sqladmin_v1beta4/representations.rb +3 -0
  207. data/generated/google/apis/sqladmin_v1beta4/service.rb +42 -0
  208. data/generated/google/apis/storage_v1.rb +1 -1
  209. data/generated/google/apis/storage_v1/classes.rb +43 -18
  210. data/generated/google/apis/storage_v1/representations.rb +4 -1
  211. data/generated/google/apis/storage_v1/service.rb +5 -2
  212. data/generated/google/apis/translate_v2.rb +2 -2
  213. data/generated/google/apis/translate_v2/service.rb +1 -1
  214. data/generated/google/apis/vision_v1.rb +1 -1
  215. data/generated/google/apis/vision_v1/classes.rb +12 -11
  216. data/generated/google/apis/youtube_analytics_v1.rb +1 -1
  217. data/generated/google/apis/youtube_partner_v1.rb +1 -1
  218. data/generated/google/apis/youtube_partner_v1/classes.rb +6 -0
  219. data/generated/google/apis/youtube_partner_v1/representations.rb +2 -0
  220. data/generated/google/apis/youtube_partner_v1/service.rb +15 -3
  221. data/generated/google/apis/youtube_v3.rb +1 -1
  222. data/generated/google/apis/youtube_v3/classes.rb +183 -21
  223. data/generated/google/apis/youtube_v3/representations.rb +85 -4
  224. data/generated/google/apis/youtube_v3/service.rb +41 -5
  225. data/generated/google/apis/youtubereporting_v1.rb +1 -1
  226. data/google-api-client.gemspec +2 -1
  227. data/lib/google/apis/core/api_command.rb +4 -0
  228. data/lib/google/apis/core/base_service.rb +10 -4
  229. data/lib/google/apis/core/download.rb +7 -2
  230. data/lib/google/apis/core/http_command.rb +5 -1
  231. data/lib/google/apis/core/upload.rb +7 -1
  232. data/lib/google/apis/errors.rb +2 -2
  233. data/lib/google/apis/generator/annotator.rb +6 -0
  234. data/lib/google/apis/version.rb +1 -1
  235. data/samples/cli/lib/samples/bigquery.rb +101 -0
  236. data/samples/cli/lib/samples/sheets.rb +61 -0
  237. data/sync.rb +71 -0
  238. metadata +55 -13
@@ -25,7 +25,7 @@ module Google
25
25
  # @see https://developers.google.com/compute/docs/reference/latest/
26
26
  module 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