google-api-client 0.9.8 → 0.9.15

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 (197) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +30 -0
  3. data/Gemfile +9 -1
  4. data/README.md +10 -2
  5. data/api_names.yaml +61 -110
  6. data/generated/google/apis/adexchangebuyer_v1_4.rb +1 -1
  7. data/generated/google/apis/adexchangebuyer_v1_4/classes.rb +160 -9
  8. data/generated/google/apis/adexchangebuyer_v1_4/representations.rb +46 -0
  9. data/generated/google/apis/adexchangebuyer_v1_4/service.rb +22 -8
  10. data/generated/google/apis/adexchangeseller_v2_0.rb +2 -3
  11. data/generated/google/apis/adexchangeseller_v2_0/service.rb +1 -2
  12. data/generated/google/apis/admin_directory_v1.rb +1 -1
  13. data/generated/google/apis/admin_directory_v1/classes.rb +6 -0
  14. data/generated/google/apis/admin_directory_v1/representations.rb +1 -0
  15. data/generated/google/apis/admin_directory_v1/service.rb +2 -2
  16. data/generated/google/apis/admin_reports_v1.rb +3 -3
  17. data/generated/google/apis/admin_reports_v1/service.rb +2 -2
  18. data/generated/google/apis/adsense_v1_4.rb +1 -1
  19. data/generated/google/apis/adsensehost_v4_1.rb +1 -1
  20. data/generated/google/apis/analytics_v3.rb +1 -1
  21. data/generated/google/apis/analytics_v3/classes.rb +371 -1
  22. data/generated/google/apis/analytics_v3/representations.rb +135 -0
  23. data/generated/google/apis/analytics_v3/service.rb +218 -0
  24. data/generated/google/apis/analyticsreporting_v4.rb +1 -1
  25. data/generated/google/apis/analyticsreporting_v4/classes.rb +50 -22
  26. data/generated/google/apis/androidenterprise_v1.rb +1 -1
  27. data/generated/google/apis/androidenterprise_v1/classes.rb +722 -48
  28. data/generated/google/apis/androidenterprise_v1/representations.rb +305 -0
  29. data/generated/google/apis/androidenterprise_v1/service.rb +1180 -146
  30. data/generated/google/apis/androidpublisher_v2.rb +1 -1
  31. data/generated/google/apis/androidpublisher_v2/classes.rb +9 -8
  32. data/generated/google/apis/appengine_v1beta5.rb +1 -1
  33. data/generated/google/apis/appengine_v1beta5/classes.rb +430 -288
  34. data/generated/google/apis/appengine_v1beta5/representations.rb +84 -10
  35. data/generated/google/apis/appengine_v1beta5/service.rb +285 -25
  36. data/generated/google/apis/appsactivity_v1.rb +1 -1
  37. data/generated/google/apis/appstate_v1.rb +1 -1
  38. data/generated/google/apis/bigquery_v2.rb +1 -1
  39. data/generated/google/apis/bigquery_v2/classes.rb +254 -6
  40. data/generated/google/apis/bigquery_v2/representations.rb +85 -0
  41. data/generated/google/apis/bigquery_v2/service.rb +8 -2
  42. data/generated/google/apis/books_v1.rb +2 -2
  43. data/generated/google/apis/books_v1/classes.rb +77 -0
  44. data/generated/google/apis/books_v1/representations.rb +34 -0
  45. data/generated/google/apis/books_v1/service.rb +7 -3
  46. data/generated/google/apis/calendar_v3.rb +1 -1
  47. data/generated/google/apis/civicinfo_v2.rb +3 -2
  48. data/generated/google/apis/civicinfo_v2/classes.rb +16 -4
  49. data/generated/google/apis/civicinfo_v2/representations.rb +2 -0
  50. data/generated/google/apis/civicinfo_v2/service.rb +8 -2
  51. data/generated/google/apis/classroom_v1.rb +1 -1
  52. data/generated/google/apis/classroom_v1/classes.rb +176 -37
  53. data/generated/google/apis/classroom_v1/representations.rb +73 -9
  54. data/generated/google/apis/classroom_v1/service.rb +392 -37
  55. data/generated/google/apis/cloudbuild_v1.rb +1 -1
  56. data/generated/google/apis/cloudbuild_v1/classes.rb +320 -12
  57. data/generated/google/apis/cloudbuild_v1/representations.rb +136 -2
  58. data/generated/google/apis/cloudbuild_v1/service.rb +174 -1
  59. data/generated/google/apis/clouddebugger_v2.rb +3 -6
  60. data/generated/google/apis/clouddebugger_v2/service.rb +4 -4
  61. data/generated/google/apis/cloudmonitoring_v2beta2.rb +1 -1
  62. data/generated/google/apis/cloudresourcemanager_v1.rb +1 -1
  63. data/generated/google/apis/cloudresourcemanager_v1/classes.rb +157 -3
  64. data/generated/google/apis/cloudresourcemanager_v1/representations.rb +33 -0
  65. data/generated/google/apis/cloudresourcemanager_v1/service.rb +60 -21
  66. data/generated/google/apis/cloudresourcemanager_v1beta1.rb +1 -1
  67. data/generated/google/apis/cloudresourcemanager_v1beta1/classes.rb +22 -5
  68. data/generated/google/apis/cloudresourcemanager_v1beta1/representations.rb +2 -0
  69. data/generated/google/apis/cloudresourcemanager_v1beta1/service.rb +61 -39
  70. data/generated/google/apis/compute_beta.rb +1 -1
  71. data/generated/google/apis/compute_beta/classes.rb +1620 -199
  72. data/generated/google/apis/compute_beta/representations.rb +563 -0
  73. data/generated/google/apis/compute_beta/service.rb +5123 -2690
  74. data/generated/google/apis/compute_v1.rb +1 -1
  75. data/generated/google/apis/compute_v1/classes.rb +1717 -295
  76. data/generated/google/apis/compute_v1/representations.rb +536 -0
  77. data/generated/google/apis/compute_v1/service.rb +2038 -1041
  78. data/generated/google/apis/content_v2.rb +1 -1
  79. data/generated/google/apis/content_v2/classes.rb +709 -1
  80. data/generated/google/apis/content_v2/representations.rb +319 -0
  81. data/generated/google/apis/content_v2/service.rb +244 -0
  82. data/generated/google/apis/datastore_v1.rb +38 -0
  83. data/generated/google/apis/datastore_v1/classes.rb +1284 -0
  84. data/generated/google/apis/datastore_v1/representations.rb +572 -0
  85. data/generated/google/apis/datastore_v1/service.rb +259 -0
  86. data/generated/google/apis/datastore_v1beta3.rb +38 -0
  87. data/generated/google/apis/datastore_v1beta3/classes.rb +1284 -0
  88. data/generated/google/apis/datastore_v1beta3/representations.rb +572 -0
  89. data/generated/google/apis/datastore_v1beta3/service.rb +259 -0
  90. data/generated/google/apis/deploymentmanager_v2.rb +1 -1
  91. data/generated/google/apis/deploymentmanager_v2/classes.rb +384 -2
  92. data/generated/google/apis/deploymentmanager_v2/representations.rb +161 -0
  93. data/generated/google/apis/deploymentmanager_v2/service.rb +162 -50
  94. data/generated/google/apis/dfareporting_v2_5.rb +40 -0
  95. data/generated/google/apis/dfareporting_v2_5/classes.rb +11225 -0
  96. data/generated/google/apis/dfareporting_v2_5/representations.rb +3982 -0
  97. data/generated/google/apis/dfareporting_v2_5/service.rb +8755 -0
  98. data/generated/google/apis/dfareporting_v2_6.rb +40 -0
  99. data/generated/google/apis/dfareporting_v2_6/classes.rb +11585 -0
  100. data/generated/google/apis/dfareporting_v2_6/representations.rb +4119 -0
  101. data/generated/google/apis/dfareporting_v2_6/service.rb +9006 -0
  102. data/generated/google/apis/dns_v1.rb +1 -1
  103. data/generated/google/apis/dns_v1/classes.rb +1 -1
  104. data/generated/google/apis/doubleclickbidmanager_v1.rb +1 -1
  105. data/generated/google/apis/doubleclicksearch_v2.rb +1 -1
  106. data/generated/google/apis/drive_v2.rb +1 -1
  107. data/generated/google/apis/drive_v2/classes.rb +11 -3
  108. data/generated/google/apis/drive_v2/representations.rb +2 -0
  109. data/generated/google/apis/drive_v2/service.rb +8 -2
  110. data/generated/google/apis/drive_v3.rb +1 -1
  111. data/generated/google/apis/drive_v3/classes.rb +36 -16
  112. data/generated/google/apis/drive_v3/representations.rb +2 -0
  113. data/generated/google/apis/drive_v3/service.rb +4 -1
  114. data/generated/google/apis/fitness_v1.rb +8 -2
  115. data/generated/google/apis/fitness_v1/classes.rb +64 -6
  116. data/generated/google/apis/fitness_v1/representations.rb +20 -0
  117. data/generated/google/apis/fitness_v1/service.rb +17 -18
  118. data/generated/google/apis/fusiontables_v2.rb +1 -1
  119. data/generated/google/apis/fusiontables_v2/classes.rb +4 -3
  120. data/generated/google/apis/games_configuration_v1configuration.rb +1 -1
  121. data/generated/google/apis/games_management_v1management.rb +1 -1
  122. data/generated/google/apis/games_v1.rb +1 -1
  123. data/generated/google/apis/genomics_v1.rb +2 -4
  124. data/generated/google/apis/genomics_v1/classes.rb +111 -9
  125. data/generated/google/apis/genomics_v1/representations.rb +36 -0
  126. data/generated/google/apis/genomics_v1/service.rb +4 -7
  127. data/generated/google/apis/gmail_v1.rb +7 -1
  128. data/generated/google/apis/gmail_v1/classes.rb +540 -0
  129. data/generated/google/apis/gmail_v1/representations.rb +213 -0
  130. data/generated/google/apis/gmail_v1/service.rb +898 -1
  131. data/generated/google/apis/groupssettings_v1.rb +1 -1
  132. data/generated/google/apis/groupssettings_v1/classes.rb +12 -0
  133. data/generated/google/apis/groupssettings_v1/representations.rb +2 -0
  134. data/generated/google/apis/identitytoolkit_v3.rb +1 -1
  135. data/generated/google/apis/identitytoolkit_v3/classes.rb +154 -1
  136. data/generated/google/apis/identitytoolkit_v3/representations.rb +35 -0
  137. data/generated/google/apis/language_v1beta1.rb +36 -0
  138. data/generated/google/apis/language_v1beta1/classes.rb +596 -0
  139. data/generated/google/apis/language_v1beta1/representations.rb +289 -0
  140. data/generated/google/apis/language_v1beta1/service.rb +154 -0
  141. data/generated/google/apis/mirror_v1.rb +2 -2
  142. data/generated/google/apis/mirror_v1/service.rb +1 -1
  143. data/generated/google/apis/monitoring_v3.rb +45 -0
  144. data/generated/google/apis/monitoring_v3/classes.rb +1328 -0
  145. data/generated/google/apis/monitoring_v3/representations.rb +516 -0
  146. data/generated/google/apis/monitoring_v3/service.rb +711 -0
  147. data/generated/google/apis/oauth2_v2.rb +1 -1
  148. data/generated/google/apis/pagespeedonline_v2.rb +1 -1
  149. data/generated/google/apis/plus_domains_v1.rb +1 -1
  150. data/generated/google/apis/plus_v1.rb +1 -1
  151. data/generated/google/apis/qpx_express_v1.rb +1 -1
  152. data/generated/google/apis/qpx_express_v1/classes.rb +6 -0
  153. data/generated/google/apis/qpx_express_v1/representations.rb +1 -0
  154. data/generated/google/apis/replicapool_v1beta2.rb +1 -1
  155. data/generated/google/apis/script_v1.rb +1 -1
  156. data/generated/google/apis/script_v1/classes.rb +6 -0
  157. data/generated/google/apis/script_v1/representations.rb +1 -0
  158. data/generated/google/apis/sheets_v4.rb +1 -1
  159. data/generated/google/apis/sheets_v4/classes.rb +35 -0
  160. data/generated/google/apis/sheets_v4/representations.rb +16 -0
  161. data/generated/google/apis/sheets_v4/service.rb +55 -0
  162. data/generated/google/apis/speech_v1beta1.rb +34 -0
  163. data/generated/google/apis/speech_v1beta1/classes.rb +521 -0
  164. data/generated/google/apis/speech_v1beta1/representations.rb +219 -0
  165. data/generated/google/apis/speech_v1beta1/service.rb +268 -0
  166. data/generated/google/apis/sqladmin_v1beta4.rb +1 -1
  167. data/generated/google/apis/sqladmin_v1beta4/classes.rb +26 -8
  168. data/generated/google/apis/sqladmin_v1beta4/representations.rb +2 -0
  169. data/generated/google/apis/sqladmin_v1beta4/service.rb +42 -0
  170. data/generated/google/apis/storage_v1.rb +1 -1
  171. data/generated/google/apis/storage_v1/classes.rb +19 -10
  172. data/generated/google/apis/translate_v2.rb +2 -2
  173. data/generated/google/apis/translate_v2/service.rb +1 -1
  174. data/generated/google/apis/vision_v1.rb +1 -1
  175. data/generated/google/apis/vision_v1/classes.rb +10 -9
  176. data/generated/google/apis/youtube_partner_v1.rb +1 -1
  177. data/generated/google/apis/youtube_partner_v1/classes.rb +6 -0
  178. data/generated/google/apis/youtube_partner_v1/representations.rb +2 -0
  179. data/generated/google/apis/youtube_partner_v1/service.rb +15 -3
  180. data/generated/google/apis/youtube_v3.rb +1 -1
  181. data/generated/google/apis/youtube_v3/classes.rb +163 -2
  182. data/generated/google/apis/youtube_v3/representations.rb +82 -0
  183. data/generated/google/apis/youtube_v3/service.rb +6 -2
  184. data/generated/google/apis/youtubereporting_v1.rb +1 -1
  185. data/google-api-client.gemspec +2 -1
  186. data/lib/google/apis/core/api_command.rb +4 -0
  187. data/lib/google/apis/core/base_service.rb +10 -4
  188. data/lib/google/apis/core/download.rb +7 -2
  189. data/lib/google/apis/core/http_command.rb +5 -1
  190. data/lib/google/apis/core/upload.rb +7 -1
  191. data/lib/google/apis/errors.rb +2 -2
  192. data/lib/google/apis/generator/annotator.rb +6 -0
  193. data/lib/google/apis/version.rb +1 -1
  194. data/samples/cli/lib/samples/bigquery.rb +101 -0
  195. data/samples/cli/lib/samples/sheets.rb +61 -0
  196. data/sync.rb +71 -0
  197. metadata +43 -13
@@ -25,7 +25,7 @@ module Google
25
25
  # @see https://developers.google.com/compute/docs/reference/latest/
26
26
  module ComputeV1
27
27
  VERSION = 'V1'
28
- REVISION = '20160519'
28
+ REVISION = '20160908'
29
29
 
30
30
  # View and manage your data across Google Cloud Platform services
31
31
  AUTH_CLOUD_PLATFORM = 'https://www.googleapis.com/auth/cloud-platform'
@@ -22,7 +22,8 @@ module Google
22
22
  module Apis
23
23
  module ComputeV1
24
24
 
25
- # An access configuration attached to an instance's network interface.
25
+ # An access configuration attached to an instance's network interface. Only one
26
+ # access config per instance is supported.
26
27
  class AccessConfig
27
28
  include Google::Apis::Core::Hashable
28
29
 
@@ -365,6 +366,11 @@ module Google
365
366
  # @return [String]
366
367
  attr_accessor :device_name
367
368
 
369
+ # Represents a customer-supplied encryption key
370
+ # Corresponds to the JSON property `diskEncryptionKey`
371
+ # @return [Google::Apis::ComputeV1::CustomerEncryptionKey]
372
+ attr_accessor :disk_encryption_key
373
+
368
374
  # Assigns a zero-based index to this disk, where 0 is reserved for the boot disk.
369
375
  # For example, if you have many disks attached to an instance, each disk would
370
376
  # have a unique index number. If not specified, the server will choose an
@@ -409,7 +415,8 @@ module Google
409
415
  attr_accessor :mode
410
416
 
411
417
  # Specifies a valid partial or full URL to an existing Persistent Disk resource.
412
- # This field is only applicable for persistent disks.
418
+ # This field is only applicable for persistent disks. Note that for
419
+ # InstanceTemplate, it is just disk name, not URL for the disk.
413
420
  # Corresponds to the JSON property `source`
414
421
  # @return [String]
415
422
  attr_accessor :source
@@ -429,6 +436,7 @@ module Google
429
436
  @auto_delete = args[:auto_delete] if args.key?(:auto_delete)
430
437
  @boot = args[:boot] if args.key?(:boot)
431
438
  @device_name = args[:device_name] if args.key?(:device_name)
439
+ @disk_encryption_key = args[:disk_encryption_key] if args.key?(:disk_encryption_key)
432
440
  @index = args[:index] if args.key?(:index)
433
441
  @initialize_params = args[:initialize_params] if args.key?(:initialize_params)
434
442
  @interface = args[:interface] if args.key?(:interface)
@@ -469,7 +477,8 @@ module Google
469
477
  # - https://www.googleapis.com/compute/v1/projects/project/zones/zone/diskTypes/
470
478
  # diskType
471
479
  # - projects/project/zones/zone/diskTypes/diskType
472
- # - zones/zone/diskTypes/diskType
480
+ # - zones/zone/diskTypes/diskType Note that for InstanceTemplate, this is the
481
+ # name of the disk type, not URL.
473
482
  # Corresponds to the JSON property `diskType`
474
483
  # @return [String]
475
484
  attr_accessor :disk_type
@@ -493,6 +502,11 @@ module Google
493
502
  # @return [String]
494
503
  attr_accessor :source_image
495
504
 
505
+ # Represents a customer-supplied encryption key
506
+ # Corresponds to the JSON property `sourceImageEncryptionKey`
507
+ # @return [Google::Apis::ComputeV1::CustomerEncryptionKey]
508
+ attr_accessor :source_image_encryption_key
509
+
496
510
  def initialize(**args)
497
511
  update!(**args)
498
512
  end
@@ -503,6 +517,7 @@ module Google
503
517
  @disk_size_gb = args[:disk_size_gb] if args.key?(:disk_size_gb)
504
518
  @disk_type = args[:disk_type] if args.key?(:disk_type)
505
519
  @source_image = args[:source_image] if args.key?(:source_image)
520
+ @source_image_encryption_key = args[:source_image_encryption_key] if args.key?(:source_image_encryption_key)
506
521
  end
507
522
  end
508
523
 
@@ -560,7 +575,8 @@ module Google
560
575
  # @return [String]
561
576
  attr_accessor :target
562
577
 
563
- # [Output Only] URL of the zone where the instance group resides.
578
+ # [Output Only] URL of the zone where the instance group resides (for
579
+ # autoscalers living in zonal scope).
564
580
  # Corresponds to the JSON property `zone`
565
581
  # @return [String]
566
582
  attr_accessor :zone
@@ -837,7 +853,7 @@ module Google
837
853
  include Google::Apis::Core::Hashable
838
854
 
839
855
  # The target CPU utilization that the autoscaler should maintain. Must be a
840
- # float value in the range (0, 1]. If not specified, the default is 0.8.
856
+ # float value in the range (0, 1]. If not specified, the default is 0.6.
841
857
  # If the CPU level is below the target utilization, the autoscaler scales down
842
858
  # the number of instances until it reaches the minimum number of instances you
843
859
  # specified or until the average CPU of your instances reaches the target
@@ -928,17 +944,20 @@ module Google
928
944
  class Backend
929
945
  include Google::Apis::Core::Hashable
930
946
 
931
- # Specifies the balancing mode for this backend. For global HTTP(S) load
932
- # balancing, the default is UTILIZATION. Valid values are UTILIZATION and RATE.
947
+ # Specifies the balancing mode for this backend. For global HTTP(S) or TCP/SSL
948
+ # load balancing, the default is UTILIZATION. Valid values are UTILIZATION, RATE
949
+ # (for HTTP(S)) and CONNECTION (for TCP/SSL).
950
+ # This cannot be used for internal load balancing.
933
951
  # Corresponds to the JSON property `balancingMode`
934
952
  # @return [String]
935
953
  attr_accessor :balancing_mode
936
954
 
937
- # A multiplier applied to the group's maximum servicing capacity (either
938
- # UTILIZATION or RATE). Default value is 1, which means the group will serve up
939
- # to 100% of its configured CPU or RPS (depending on balancingMode). A setting
940
- # of 0 means the group is completely drained, offering 0% of its available CPU
941
- # or RPS. Valid range is [0.0,1.0].
955
+ # A multiplier applied to the group's maximum servicing capacity (based on
956
+ # UTILIZATION, RATE or CONNECTION). Default value is 1, which means the group
957
+ # will serve up to 100% of its configured capacity (depending on balancingMode).
958
+ # A setting of 0 means the group is completely drained, offering 0% of its
959
+ # available Capacity. Valid range is [0.0,1.0].
960
+ # This cannot be used for internal load balancing.
942
961
  # Corresponds to the JSON property `capacityScaler`
943
962
  # @return [Float]
944
963
  attr_accessor :capacity_scaler
@@ -956,13 +975,33 @@ module Google
956
975
  # Instance Group resource.
957
976
  # Note that you must specify an Instance Group resource using the fully-
958
977
  # qualified URL, rather than a partial URL.
978
+ # When the BackendService has load balancing scheme INTERNAL, the instance group
979
+ # must be in a zone within the same region as the BackendService.
959
980
  # Corresponds to the JSON property `group`
960
981
  # @return [String]
961
982
  attr_accessor :group
962
983
 
984
+ # The max number of simultaneous connections for the group. Can be used with
985
+ # either CONNECTION or UTILIZATION balancing modes. For CONNECTION mode, either
986
+ # maxConnections or maxConnectionsPerInstance must be set.
987
+ # This cannot be used for internal load balancing.
988
+ # Corresponds to the JSON property `maxConnections`
989
+ # @return [Fixnum]
990
+ attr_accessor :max_connections
991
+
992
+ # The max number of simultaneous connections that a single backend instance can
993
+ # handle. This is used to calculate the capacity of the group. Can be used in
994
+ # either CONNECTION or UTILIZATION balancing modes. For CONNECTION mode, either
995
+ # maxConnections or maxConnectionsPerInstance must be set.
996
+ # This cannot be used for internal load balancing.
997
+ # Corresponds to the JSON property `maxConnectionsPerInstance`
998
+ # @return [Fixnum]
999
+ attr_accessor :max_connections_per_instance
1000
+
963
1001
  # The max requests per second (RPS) of the group. Can be used with either RATE
964
1002
  # or UTILIZATION balancing modes, but required if RATE mode. For RATE mode,
965
1003
  # either maxRate or maxRatePerInstance must be set.
1004
+ # This cannot be used for internal load balancing.
966
1005
  # Corresponds to the JSON property `maxRate`
967
1006
  # @return [Fixnum]
968
1007
  attr_accessor :max_rate
@@ -971,12 +1010,14 @@ module Google
971
1010
  # This is used to calculate the capacity of the group. Can be used in either
972
1011
  # balancing mode. For RATE mode, either maxRate or maxRatePerInstance must be
973
1012
  # set.
1013
+ # This cannot be used for internal load balancing.
974
1014
  # Corresponds to the JSON property `maxRatePerInstance`
975
1015
  # @return [Float]
976
1016
  attr_accessor :max_rate_per_instance
977
1017
 
978
1018
  # Used when balancingMode is UTILIZATION. This ratio defines the CPU utilization
979
1019
  # target for the group. The default is 0.8. Valid range is [0.0, 1.0].
1020
+ # This cannot be used for internal load balancing.
980
1021
  # Corresponds to the JSON property `maxUtilization`
981
1022
  # @return [Float]
982
1023
  attr_accessor :max_utilization
@@ -991,6 +1032,8 @@ module Google
991
1032
  @capacity_scaler = args[:capacity_scaler] if args.key?(:capacity_scaler)
992
1033
  @description = args[:description] if args.key?(:description)
993
1034
  @group = args[:group] if args.key?(:group)
1035
+ @max_connections = args[:max_connections] if args.key?(:max_connections)
1036
+ @max_connections_per_instance = args[:max_connections_per_instance] if args.key?(:max_connections_per_instance)
994
1037
  @max_rate = args[:max_rate] if args.key?(:max_rate)
995
1038
  @max_rate_per_instance = args[:max_rate_per_instance] if args.key?(:max_rate_per_instance)
996
1039
  @max_utilization = args[:max_utilization] if args.key?(:max_utilization)
@@ -1002,11 +1045,24 @@ module Google
1002
1045
  class BackendService
1003
1046
  include Google::Apis::Core::Hashable
1004
1047
 
1048
+ # Lifetime of cookies in seconds if session_affinity is GENERATED_COOKIE. If set
1049
+ # to 0, the cookie is non-persistent and lasts only until the end of the browser
1050
+ # session (or equivalent). The maximum allowed value for TTL is one day.
1051
+ # When the load balancing scheme is INTERNAL, this field is not used.
1052
+ # Corresponds to the JSON property `affinityCookieTtlSec`
1053
+ # @return [Fixnum]
1054
+ attr_accessor :affinity_cookie_ttl_sec
1055
+
1005
1056
  # The list of backends that serve this BackendService.
1006
1057
  # Corresponds to the JSON property `backends`
1007
1058
  # @return [Array<Google::Apis::ComputeV1::Backend>]
1008
1059
  attr_accessor :backends
1009
1060
 
1061
+ # Message containing connection draining configuration.
1062
+ # Corresponds to the JSON property `connectionDraining`
1063
+ # @return [Google::Apis::ComputeV1::ConnectionDraining]
1064
+ attr_accessor :connection_draining
1065
+
1010
1066
  # [Output Only] Creation timestamp in RFC3339 text format.
1011
1067
  # Corresponds to the JSON property `creationTimestamp`
1012
1068
  # @return [String]
@@ -1018,6 +1074,13 @@ module Google
1018
1074
  # @return [String]
1019
1075
  attr_accessor :description
1020
1076
 
1077
+ # If true, enable Cloud CDN for this BackendService.
1078
+ # When the load balancing scheme is INTERNAL, this field is not used.
1079
+ # Corresponds to the JSON property `enableCDN`
1080
+ # @return [Boolean]
1081
+ attr_accessor :enable_cdn
1082
+ alias_method :enable_cdn?, :enable_cdn
1083
+
1021
1084
  # Fingerprint of this resource. A hash of the contents stored in this object.
1022
1085
  # This field is used in optimistic locking. This field will be ignored when
1023
1086
  # inserting a BackendService. An up-to-date fingerprint must be provided in
@@ -1029,6 +1092,8 @@ module Google
1029
1092
  # The list of URLs to the HttpHealthCheck or HttpsHealthCheck resource for
1030
1093
  # health checking this BackendService. Currently at most one health check can be
1031
1094
  # specified, and a health check is required.
1095
+ # For internal load balancing, a URL to a HealthCheck resource must be specified
1096
+ # instead.
1032
1097
  # Corresponds to the JSON property `healthChecks`
1033
1098
  # @return [Array<String>]
1034
1099
  attr_accessor :health_checks
@@ -1057,18 +1122,23 @@ module Google
1057
1122
 
1058
1123
  # Deprecated in favor of portName. The TCP port to connect on the backend. The
1059
1124
  # default value is 80.
1125
+ # This cannot be used for internal load balancing.
1060
1126
  # Corresponds to the JSON property `port`
1061
1127
  # @return [Fixnum]
1062
1128
  attr_accessor :port
1063
1129
 
1064
1130
  # Name of backend port. The same name should appear in the instance groups
1065
- # referenced by this service. Required.
1131
+ # referenced by this service. Required when the load balancing scheme is
1132
+ # EXTERNAL.
1133
+ # When the load balancing scheme is INTERNAL, this field is not used.
1066
1134
  # Corresponds to the JSON property `portName`
1067
1135
  # @return [String]
1068
1136
  attr_accessor :port_name
1069
1137
 
1070
1138
  # The protocol this BackendService uses to communicate with backends.
1071
- # Possible values are HTTP, HTTPS, HTTP2, TCP and SSL.
1139
+ # Possible values are HTTP, HTTPS, HTTP2, TCP and SSL. The default is HTTP.
1140
+ # For internal load balancing, the possible values are TCP and UDP, and the
1141
+ # default is TCP.
1072
1142
  # Corresponds to the JSON property `protocol`
1073
1143
  # @return [String]
1074
1144
  attr_accessor :protocol
@@ -1084,6 +1154,16 @@ module Google
1084
1154
  # @return [String]
1085
1155
  attr_accessor :self_link
1086
1156
 
1157
+ # Type of session affinity to use. The default is NONE.
1158
+ # When the load balancing scheme is EXTERNAL, can be NONE, CLIENT_IP, or
1159
+ # GENERATED_COOKIE.
1160
+ # When the load balancing scheme is INTERNAL, can be NONE, CLIENT_IP,
1161
+ # CLIENT_IP_PROTO, or CLIENT_IP_PORT_PROTO.
1162
+ # When the protocol is UDP, this field is not used.
1163
+ # Corresponds to the JSON property `sessionAffinity`
1164
+ # @return [String]
1165
+ attr_accessor :session_affinity
1166
+
1087
1167
  # How many seconds to wait for the backend before considering it a failed
1088
1168
  # request. Default is 30 seconds.
1089
1169
  # Corresponds to the JSON property `timeoutSec`
@@ -1096,9 +1176,12 @@ module Google
1096
1176
 
1097
1177
  # Update properties of this object
1098
1178
  def update!(**args)
1179
+ @affinity_cookie_ttl_sec = args[:affinity_cookie_ttl_sec] if args.key?(:affinity_cookie_ttl_sec)
1099
1180
  @backends = args[:backends] if args.key?(:backends)
1181
+ @connection_draining = args[:connection_draining] if args.key?(:connection_draining)
1100
1182
  @creation_timestamp = args[:creation_timestamp] if args.key?(:creation_timestamp)
1101
1183
  @description = args[:description] if args.key?(:description)
1184
+ @enable_cdn = args[:enable_cdn] if args.key?(:enable_cdn)
1102
1185
  @fingerprint = args[:fingerprint] if args.key?(:fingerprint)
1103
1186
  @health_checks = args[:health_checks] if args.key?(:health_checks)
1104
1187
  @id = args[:id] if args.key?(:id)
@@ -1109,6 +1192,7 @@ module Google
1109
1192
  @protocol = args[:protocol] if args.key?(:protocol)
1110
1193
  @region = args[:region] if args.key?(:region)
1111
1194
  @self_link = args[:self_link] if args.key?(:self_link)
1195
+ @session_affinity = args[:session_affinity] if args.key?(:session_affinity)
1112
1196
  @timeout_sec = args[:timeout_sec] if args.key?(:timeout_sec)
1113
1197
  end
1114
1198
  end
@@ -1143,8 +1227,7 @@ module Google
1143
1227
  class BackendServiceList
1144
1228
  include Google::Apis::Core::Hashable
1145
1229
 
1146
- # [Output Only] The unique identifier for the resource. This identifier is
1147
- # defined by the server.
1230
+ # [Output Only] Unique identifier for the resource; defined by the server.
1148
1231
  # Corresponds to the JSON property `id`
1149
1232
  # @return [String]
1150
1233
  attr_accessor :id
@@ -1160,11 +1243,7 @@ module Google
1160
1243
  # @return [String]
1161
1244
  attr_accessor :kind
1162
1245
 
1163
- # [Output Only] This token allows you to get the next page of results for list
1164
- # requests. If the number of results is larger than maxResults, use the
1165
- # nextPageToken as a value for the query parameter pageToken in the next list
1166
- # request. Subsequent list requests will have their own nextPageToken to
1167
- # continue paging through the results.
1246
+ # [Output Only] A token used to continue a truncated list request.
1168
1247
  # Corresponds to the JSON property `nextPageToken`
1169
1248
  # @return [String]
1170
1249
  attr_accessor :next_page_token
@@ -1188,6 +1267,98 @@ module Google
1188
1267
  end
1189
1268
  end
1190
1269
 
1270
+ #
1271
+ class CacheInvalidationRule
1272
+ include Google::Apis::Core::Hashable
1273
+
1274
+ #
1275
+ # Corresponds to the JSON property `path`
1276
+ # @return [String]
1277
+ attr_accessor :path
1278
+
1279
+ def initialize(**args)
1280
+ update!(**args)
1281
+ end
1282
+
1283
+ # Update properties of this object
1284
+ def update!(**args)
1285
+ @path = args[:path] if args.key?(:path)
1286
+ end
1287
+ end
1288
+
1289
+ # Message containing connection draining configuration.
1290
+ class ConnectionDraining
1291
+ include Google::Apis::Core::Hashable
1292
+
1293
+ # Time for which instance will be drained (not accept new connections, but still
1294
+ # work to finish started).
1295
+ # Corresponds to the JSON property `drainingTimeoutSec`
1296
+ # @return [Fixnum]
1297
+ attr_accessor :draining_timeout_sec
1298
+
1299
+ def initialize(**args)
1300
+ update!(**args)
1301
+ end
1302
+
1303
+ # Update properties of this object
1304
+ def update!(**args)
1305
+ @draining_timeout_sec = args[:draining_timeout_sec] if args.key?(:draining_timeout_sec)
1306
+ end
1307
+ end
1308
+
1309
+ # Represents a customer-supplied encryption key
1310
+ class CustomerEncryptionKey
1311
+ include Google::Apis::Core::Hashable
1312
+
1313
+ # Specifies a 256-bit customer-supplied encryption key, encoded in RFC 4648
1314
+ # base64 to either encrypt or decrypt this resource.
1315
+ # Corresponds to the JSON property `rawKey`
1316
+ # @return [String]
1317
+ attr_accessor :raw_key
1318
+
1319
+ # [Output only] The RFC 4648 base64 encoded SHA-256 hash of the customer-
1320
+ # supplied encryption key that protects this resource.
1321
+ # Corresponds to the JSON property `sha256`
1322
+ # @return [String]
1323
+ attr_accessor :sha256
1324
+
1325
+ def initialize(**args)
1326
+ update!(**args)
1327
+ end
1328
+
1329
+ # Update properties of this object
1330
+ def update!(**args)
1331
+ @raw_key = args[:raw_key] if args.key?(:raw_key)
1332
+ @sha256 = args[:sha256] if args.key?(:sha256)
1333
+ end
1334
+ end
1335
+
1336
+ #
1337
+ class CustomerEncryptionKeyProtectedDisk
1338
+ include Google::Apis::Core::Hashable
1339
+
1340
+ # Represents a customer-supplied encryption key
1341
+ # Corresponds to the JSON property `diskEncryptionKey`
1342
+ # @return [Google::Apis::ComputeV1::CustomerEncryptionKey]
1343
+ attr_accessor :disk_encryption_key
1344
+
1345
+ # Specifies a valid partial or full URL to an existing Persistent Disk resource.
1346
+ # This field is only applicable for persistent disks.
1347
+ # Corresponds to the JSON property `source`
1348
+ # @return [String]
1349
+ attr_accessor :source
1350
+
1351
+ def initialize(**args)
1352
+ update!(**args)
1353
+ end
1354
+
1355
+ # Update properties of this object
1356
+ def update!(**args)
1357
+ @disk_encryption_key = args[:disk_encryption_key] if args.key?(:disk_encryption_key)
1358
+ @source = args[:source] if args.key?(:source)
1359
+ end
1360
+ end
1361
+
1191
1362
  # Deprecation status for a public resource.
1192
1363
  class DeprecationStatus
1193
1364
  include Google::Apis::Core::Hashable
@@ -1255,6 +1426,11 @@ module Google
1255
1426
  # @return [String]
1256
1427
  attr_accessor :description
1257
1428
 
1429
+ # Represents a customer-supplied encryption key
1430
+ # Corresponds to the JSON property `diskEncryptionKey`
1431
+ # @return [Google::Apis::ComputeV1::CustomerEncryptionKey]
1432
+ attr_accessor :disk_encryption_key
1433
+
1258
1434
  # [Output Only] The unique identifier for the resource. This identifier is
1259
1435
  # defined by the server.
1260
1436
  # Corresponds to the JSON property `id`
@@ -1276,7 +1452,7 @@ module Google
1276
1452
  # @return [String]
1277
1453
  attr_accessor :last_detach_timestamp
1278
1454
 
1279
- # [Output Only] Any applicable publicly visible licenses.
1455
+ # Any applicable publicly visible licenses.
1280
1456
  # Corresponds to the JSON property `licenses`
1281
1457
  # @return [Array<String>]
1282
1458
  attr_accessor :licenses
@@ -1330,6 +1506,11 @@ module Google
1330
1506
  # @return [String]
1331
1507
  attr_accessor :source_image
1332
1508
 
1509
+ # Represents a customer-supplied encryption key
1510
+ # Corresponds to the JSON property `sourceImageEncryptionKey`
1511
+ # @return [Google::Apis::ComputeV1::CustomerEncryptionKey]
1512
+ attr_accessor :source_image_encryption_key
1513
+
1333
1514
  # [Output Only] The ID value of the image used to create this disk. This value
1334
1515
  # identifies the exact image that was used to create this persistent disk. For
1335
1516
  # example, if you created the persistent disk from an image that was later
@@ -1350,6 +1531,11 @@ module Google
1350
1531
  # @return [String]
1351
1532
  attr_accessor :source_snapshot
1352
1533
 
1534
+ # Represents a customer-supplied encryption key
1535
+ # Corresponds to the JSON property `sourceSnapshotEncryptionKey`
1536
+ # @return [Google::Apis::ComputeV1::CustomerEncryptionKey]
1537
+ attr_accessor :source_snapshot_encryption_key
1538
+
1353
1539
  # [Output Only] The unique ID of the snapshot used to create this disk. This
1354
1540
  # value identifies the exact snapshot that was used to create this persistent
1355
1541
  # disk. For example, if you created the persistent disk from a snapshot that was
@@ -1390,6 +1576,7 @@ module Google
1390
1576
  def update!(**args)
1391
1577
  @creation_timestamp = args[:creation_timestamp] if args.key?(:creation_timestamp)
1392
1578
  @description = args[:description] if args.key?(:description)
1579
+ @disk_encryption_key = args[:disk_encryption_key] if args.key?(:disk_encryption_key)
1393
1580
  @id = args[:id] if args.key?(:id)
1394
1581
  @kind = args[:kind] if args.key?(:kind)
1395
1582
  @last_attach_timestamp = args[:last_attach_timestamp] if args.key?(:last_attach_timestamp)
@@ -1400,8 +1587,10 @@ module Google
1400
1587
  @self_link = args[:self_link] if args.key?(:self_link)
1401
1588
  @size_gb = args[:size_gb] if args.key?(:size_gb)
1402
1589
  @source_image = args[:source_image] if args.key?(:source_image)
1590
+ @source_image_encryption_key = args[:source_image_encryption_key] if args.key?(:source_image_encryption_key)
1403
1591
  @source_image_id = args[:source_image_id] if args.key?(:source_image_id)
1404
1592
  @source_snapshot = args[:source_snapshot] if args.key?(:source_snapshot)
1593
+ @source_snapshot_encryption_key = args[:source_snapshot_encryption_key] if args.key?(:source_snapshot_encryption_key)
1405
1594
  @source_snapshot_id = args[:source_snapshot_id] if args.key?(:source_snapshot_id)
1406
1595
  @status = args[:status] if args.key?(:status)
1407
1596
  @type = args[:type] if args.key?(:type)
@@ -1916,8 +2105,8 @@ module Google
1916
2105
  class Firewall
1917
2106
  include Google::Apis::Core::Hashable
1918
2107
 
1919
- # The list of rules specified by this firewall. Each rule specifies a protocol
1920
- # and port-range tuple that describes a permitted connection.
2108
+ # The list of ALLOW rules specified by this firewall. Each rule specifies a
2109
+ # protocol and port-range tuple that describes a permitted connection.
1921
2110
  # Corresponds to the JSON property `allowed`
1922
2111
  # @return [Array<Google::Apis::ComputeV1::Firewall::Allowed>]
1923
2112
  attr_accessor :allowed
@@ -1972,24 +2161,25 @@ module Google
1972
2161
  # @return [String]
1973
2162
  attr_accessor :self_link
1974
2163
 
1975
- # The IP address blocks that this rule applies to, expressed in CIDR format. One
1976
- # or both of sourceRanges and sourceTags may be set.
1977
- # If both properties are set, an inbound connection is allowed if the range
1978
- # matches the sourceRanges OR the tag of the source matches the sourceTags
1979
- # property. The connection does not need to match both properties.
2164
+ # If source ranges are specified, the firewall will apply only to traffic that
2165
+ # has source IP address in these ranges. These ranges must be expressed in CIDR
2166
+ # format. One or both of sourceRanges and sourceTags may be set. If both
2167
+ # properties are set, the firewall will apply to traffic that has source IP
2168
+ # address within sourceRanges OR the source IP that belongs to a tag listed in
2169
+ # the sourceTags property. The connection does not need to match both properties
2170
+ # for the firewall to apply.
1980
2171
  # Corresponds to the JSON property `sourceRanges`
1981
2172
  # @return [Array<String>]
1982
2173
  attr_accessor :source_ranges
1983
2174
 
1984
- # A list of instance tags which this rule applies to. One or both of
1985
- # sourceRanges and sourceTags may be set.
1986
- # If both properties are set, an inbound connection is allowed if the range
1987
- # matches the sourceRanges OR the tag of the source matches the sourceTags
1988
- # property. The connection does not need to match both properties.
1989
- # Source tags cannot be used to allow access to an instance's external IP
1990
- # address. Because tags are associated with an instance, not an IP address,
1991
- # source tags can only be used to control traffic traveling from an instance
1992
- # inside the same network as the firewall.
2175
+ # If source tags are specified, the firewall will apply only to traffic with
2176
+ # source IP that belongs to a tag listed in source tags. Source tags cannot be
2177
+ # used to control traffic to an instance's external IP address. Because tags are
2178
+ # associated with an instance, not an IP address. One or both of sourceRanges
2179
+ # and sourceTags may be set. If both properties are set, the firewall will apply
2180
+ # to traffic that has source IP address within sourceRanges OR the source IP
2181
+ # that belongs to a tag listed in the sourceTags property. The connection does
2182
+ # not need to match both properties for the firewall to apply.
1993
2183
  # Corresponds to the JSON property `sourceTags`
1994
2184
  # @return [Array<String>]
1995
2185
  attr_accessor :source_tags
@@ -2025,17 +2215,17 @@ module Google
2025
2215
  class Allowed
2026
2216
  include Google::Apis::Core::Hashable
2027
2217
 
2028
- # The IP protocol that is allowed for this rule. The protocol type is required
2029
- # when creating a firewall rule. This value can either be one of the following
2030
- # well known protocol strings (tcp, udp, icmp, esp, ah, sctp), or the IP
2031
- # protocol number.
2218
+ # The IP protocol to which this rule applies. The protocol type is required when
2219
+ # creating a firewall rule. This value can either be one of the following well
2220
+ # known protocol strings (tcp, udp, icmp, esp, ah, sctp), or the IP protocol
2221
+ # number.
2032
2222
  # Corresponds to the JSON property `IPProtocol`
2033
2223
  # @return [String]
2034
2224
  attr_accessor :ip_protocol
2035
2225
 
2036
- # An optional list of ports which are allowed. This field is only applicable for
2037
- # UDP or TCP protocol. Each entry must be either an integer or a range. If not
2038
- # specified, connections through any port are allowed
2226
+ # An optional list of ports to which this rule applies. This field is only
2227
+ # applicable for UDP or TCP protocol. Each entry must be either an integer or a
2228
+ # range. If not specified, this rule applies to connections through any port.
2039
2229
  # Example inputs include: ["22"], ["80","443"], and ["12345-12349"].
2040
2230
  # Corresponds to the JSON property `ports`
2041
2231
  # @return [Array<String>]
@@ -2108,17 +2298,23 @@ module Google
2108
2298
  class ForwardingRule
2109
2299
  include Google::Apis::Core::Hashable
2110
2300
 
2111
- # Value of the reserved IP address that this forwarding rule is serving on
2112
- # behalf of. For global forwarding rules, the address must be a global IP; for
2113
- # regional forwarding rules, the address must live in the same region as the
2114
- # forwarding rule. If left empty (default value), an ephemeral IP from the same
2115
- # scope (global or regional) will be assigned.
2301
+ # The IP address that this forwarding rule is serving on behalf of.
2302
+ # For global forwarding rules, the address must be a global IP; for regional
2303
+ # forwarding rules, the address must live in the same region as the forwarding
2304
+ # rule. By default, this field is empty and an ephemeral IP from the same scope (
2305
+ # global or regional) will be assigned.
2306
+ # When the load balancing scheme is INTERNAL, this can only be an RFC 1918 IP
2307
+ # address belonging to the network/subnetwork configured for the forwarding rule.
2308
+ # A reserved address cannot be used. If the field is empty, the IP address will
2309
+ # be automatically allocated from the internal IP range of the subnetwork or
2310
+ # network configured for this forwarding rule.
2116
2311
  # Corresponds to the JSON property `IPAddress`
2117
2312
  # @return [String]
2118
2313
  attr_accessor :ip_address
2119
2314
 
2120
2315
  # The IP protocol to which this rule applies. Valid options are TCP, UDP, ESP,
2121
2316
  # AH, SCTP or ICMP.
2317
+ # When the load balancing scheme is INTERNAL</code, only TCP and UDP are valid.
2122
2318
  # Corresponds to the JSON property `IPProtocol`
2123
2319
  # @return [String]
2124
2320
  attr_accessor :ip_protocol
@@ -2159,6 +2355,7 @@ module Google
2159
2355
  # Applicable only when IPProtocol is TCP, UDP, or SCTP, only packets addressed
2160
2356
  # to ports in the specified range will be forwarded to target. Forwarding rules
2161
2357
  # with the same [IPAddress, IPProtocol] pair must have disjoint port ranges.
2358
+ # This field is not used for internal load balancing.
2162
2359
  # Corresponds to the JSON property `portRange`
2163
2360
  # @return [String]
2164
2361
  attr_accessor :port_range
@@ -2180,6 +2377,7 @@ module Google
2180
2377
  # TargetHttpProxy or TargetHttpsProxy resource. The forwarded traffic must be of
2181
2378
  # a type appropriate to the target object. For example, TargetHttpProxy requires
2182
2379
  # HTTP traffic, and TargetHttpsProxy requires HTTPS traffic.
2380
+ # This field is not used for internal load balancing.
2183
2381
  # Corresponds to the JSON property `target`
2184
2382
  # @return [String]
2185
2383
  attr_accessor :target
@@ -2391,19 +2589,38 @@ module Google
2391
2589
  end
2392
2590
  end
2393
2591
 
2394
- # A full or valid partial URL to a health check. For example, the following are
2395
- # valid URLs:
2396
- # - https://www.googleapis.com/compute/beta/projects/project-id/global/
2397
- # httpHealthChecks/health-check
2398
- # - projects/project-id/global/httpHealthChecks/health-check
2399
- # - global/httpHealthChecks/health-check
2400
- class HealthCheckReference
2592
+ #
2593
+ class Http2HealthCheck
2401
2594
  include Google::Apis::Core::Hashable
2402
2595
 
2403
- #
2404
- # Corresponds to the JSON property `healthCheck`
2596
+ # The value of the host header in the HTTP/2 health check request. If left empty
2597
+ # (default value), the IP on behalf of which this health check is performed will
2598
+ # be used.
2599
+ # Corresponds to the JSON property `host`
2405
2600
  # @return [String]
2406
- attr_accessor :health_check
2601
+ attr_accessor :host
2602
+
2603
+ # The TCP port number for the health check request. The default value is 443.
2604
+ # Corresponds to the JSON property `port`
2605
+ # @return [Fixnum]
2606
+ attr_accessor :port
2607
+
2608
+ # Port name as defined in InstanceGroup#NamedPort#name. If both port and
2609
+ # port_name are defined, port takes precedence.
2610
+ # Corresponds to the JSON property `portName`
2611
+ # @return [String]
2612
+ attr_accessor :port_name
2613
+
2614
+ # Specifies the type of proxy header to append before sending data to the
2615
+ # backend, either NONE or PROXY_V1. The default is NONE.
2616
+ # Corresponds to the JSON property `proxyHeader`
2617
+ # @return [String]
2618
+ attr_accessor :proxy_header
2619
+
2620
+ # The request path of the HTTP/2 health check request. The default value is /.
2621
+ # Corresponds to the JSON property `requestPath`
2622
+ # @return [String]
2623
+ attr_accessor :request_path
2407
2624
 
2408
2625
  def initialize(**args)
2409
2626
  update!(**args)
@@ -2411,33 +2628,46 @@ module Google
2411
2628
 
2412
2629
  # Update properties of this object
2413
2630
  def update!(**args)
2414
- @health_check = args[:health_check] if args.key?(:health_check)
2631
+ @host = args[:host] if args.key?(:host)
2632
+ @port = args[:port] if args.key?(:port)
2633
+ @port_name = args[:port_name] if args.key?(:port_name)
2634
+ @proxy_header = args[:proxy_header] if args.key?(:proxy_header)
2635
+ @request_path = args[:request_path] if args.key?(:request_path)
2415
2636
  end
2416
2637
  end
2417
2638
 
2418
2639
  #
2419
- class HealthStatus
2640
+ class HttpHealthCheck
2420
2641
  include Google::Apis::Core::Hashable
2421
2642
 
2422
- # Health state of the instance.
2423
- # Corresponds to the JSON property `healthState`
2643
+ # The value of the host header in the HTTP health check request. If left empty (
2644
+ # default value), the IP on behalf of which this health check is performed will
2645
+ # be used.
2646
+ # Corresponds to the JSON property `host`
2424
2647
  # @return [String]
2425
- attr_accessor :health_state
2648
+ attr_accessor :host
2426
2649
 
2427
- # URL of the instance resource.
2428
- # Corresponds to the JSON property `instance`
2650
+ # The TCP port number for the health check request. The default value is 80.
2651
+ # Corresponds to the JSON property `port`
2652
+ # @return [Fixnum]
2653
+ attr_accessor :port
2654
+
2655
+ # Port name as defined in InstanceGroup#NamedPort#name. If both port and
2656
+ # port_name are defined, port takes precedence.
2657
+ # Corresponds to the JSON property `portName`
2429
2658
  # @return [String]
2430
- attr_accessor :instance
2659
+ attr_accessor :port_name
2431
2660
 
2432
- # The IP address represented by this resource.
2433
- # Corresponds to the JSON property `ipAddress`
2661
+ # Specifies the type of proxy header to append before sending data to the
2662
+ # backend, either NONE or PROXY_V1. The default is NONE.
2663
+ # Corresponds to the JSON property `proxyHeader`
2434
2664
  # @return [String]
2435
- attr_accessor :ip_address
2665
+ attr_accessor :proxy_header
2436
2666
 
2437
- # The port on the instance.
2438
- # Corresponds to the JSON property `port`
2439
- # @return [Fixnum]
2440
- attr_accessor :port
2667
+ # The request path of the HTTP health check request. The default value is /.
2668
+ # Corresponds to the JSON property `requestPath`
2669
+ # @return [String]
2670
+ attr_accessor :request_path
2441
2671
 
2442
2672
  def initialize(**args)
2443
2673
  update!(**args)
@@ -2445,36 +2675,46 @@ module Google
2445
2675
 
2446
2676
  # Update properties of this object
2447
2677
  def update!(**args)
2448
- @health_state = args[:health_state] if args.key?(:health_state)
2449
- @instance = args[:instance] if args.key?(:instance)
2450
- @ip_address = args[:ip_address] if args.key?(:ip_address)
2678
+ @host = args[:host] if args.key?(:host)
2451
2679
  @port = args[:port] if args.key?(:port)
2680
+ @port_name = args[:port_name] if args.key?(:port_name)
2681
+ @proxy_header = args[:proxy_header] if args.key?(:proxy_header)
2682
+ @request_path = args[:request_path] if args.key?(:request_path)
2452
2683
  end
2453
2684
  end
2454
2685
 
2455
- # UrlMaps A host-matching rule for a URL. If matched, will use the named
2456
- # PathMatcher to select the BackendService.
2457
- class HostRule
2686
+ #
2687
+ class HttpsHealthCheck
2458
2688
  include Google::Apis::Core::Hashable
2459
2689
 
2460
- # An optional description of this resource. Provide this property when you
2461
- # create the resource.
2462
- # Corresponds to the JSON property `description`
2690
+ # The value of the host header in the HTTPS health check request. If left empty (
2691
+ # default value), the IP on behalf of which this health check is performed will
2692
+ # be used.
2693
+ # Corresponds to the JSON property `host`
2463
2694
  # @return [String]
2464
- attr_accessor :description
2695
+ attr_accessor :host
2465
2696
 
2466
- # The list of host patterns to match. They must be valid hostnames, except *
2467
- # will match any string of ([a-z0-9-.]*). In that case, * must be the first
2468
- # character and must be followed in the pattern by either - or ..
2469
- # Corresponds to the JSON property `hosts`
2470
- # @return [Array<String>]
2471
- attr_accessor :hosts
2697
+ # The TCP port number for the health check request. The default value is 443.
2698
+ # Corresponds to the JSON property `port`
2699
+ # @return [Fixnum]
2700
+ attr_accessor :port
2472
2701
 
2473
- # The name of the PathMatcher to use to match the path portion of the URL if the
2474
- # hostRule matches the URL's host portion.
2475
- # Corresponds to the JSON property `pathMatcher`
2702
+ # Port name as defined in InstanceGroup#NamedPort#name. If both port and
2703
+ # port_name are defined, port takes precedence.
2704
+ # Corresponds to the JSON property `portName`
2476
2705
  # @return [String]
2477
- attr_accessor :path_matcher
2706
+ attr_accessor :port_name
2707
+
2708
+ # Specifies the type of proxy header to append before sending data to the
2709
+ # backend, either NONE or PROXY_V1. The default is NONE.
2710
+ # Corresponds to the JSON property `proxyHeader`
2711
+ # @return [String]
2712
+ attr_accessor :proxy_header
2713
+
2714
+ # The request path of the HTTPS health check request. The default value is /.
2715
+ # Corresponds to the JSON property `requestPath`
2716
+ # @return [String]
2717
+ attr_accessor :request_path
2478
2718
 
2479
2719
  def initialize(**args)
2480
2720
  update!(**args)
@@ -2482,15 +2722,18 @@ module Google
2482
2722
 
2483
2723
  # Update properties of this object
2484
2724
  def update!(**args)
2485
- @description = args[:description] if args.key?(:description)
2486
- @hosts = args[:hosts] if args.key?(:hosts)
2487
- @path_matcher = args[:path_matcher] if args.key?(:path_matcher)
2725
+ @host = args[:host] if args.key?(:host)
2726
+ @port = args[:port] if args.key?(:port)
2727
+ @port_name = args[:port_name] if args.key?(:port_name)
2728
+ @proxy_header = args[:proxy_header] if args.key?(:proxy_header)
2729
+ @request_path = args[:request_path] if args.key?(:request_path)
2488
2730
  end
2489
2731
  end
2490
2732
 
2491
- # An HttpHealthCheck resource. This resource defines a template for how
2492
- # individual instances should be checked for health, via HTTP.
2493
- class HttpHealthCheck
2733
+ # An HealthCheck resource. This resource defines a template for how individual
2734
+ # virtual machines should be checked for health, via one of the supported
2735
+ # protocols.
2736
+ class HealthCheck
2494
2737
  include Google::Apis::Core::Hashable
2495
2738
 
2496
2739
  # How often (in seconds) to send a health check. The default value is 5 seconds.
@@ -2498,7 +2741,7 @@ module Google
2498
2741
  # @return [Fixnum]
2499
2742
  attr_accessor :check_interval_sec
2500
2743
 
2501
- # [Output Only] Creation timestamp in RFC3339 text format.
2744
+ # [Output Only] Creation timestamp in 3339 text format.
2502
2745
  # Corresponds to the JSON property `creationTimestamp`
2503
2746
  # @return [String]
2504
2747
  attr_accessor :creation_timestamp
@@ -2515,12 +2758,20 @@ module Google
2515
2758
  # @return [Fixnum]
2516
2759
  attr_accessor :healthy_threshold
2517
2760
 
2518
- # The value of the host header in the HTTP health check request. If left empty (
2519
- # default value), the public IP on behalf of which this health check is
2520
- # performed will be used.
2521
- # Corresponds to the JSON property `host`
2522
- # @return [String]
2523
- attr_accessor :host
2761
+ #
2762
+ # Corresponds to the JSON property `http2HealthCheck`
2763
+ # @return [Google::Apis::ComputeV1::Http2HealthCheck]
2764
+ attr_accessor :http2_health_check
2765
+
2766
+ #
2767
+ # Corresponds to the JSON property `httpHealthCheck`
2768
+ # @return [Google::Apis::ComputeV1::HttpHealthCheck]
2769
+ attr_accessor :http_health_check
2770
+
2771
+ #
2772
+ # Corresponds to the JSON property `httpsHealthCheck`
2773
+ # @return [Google::Apis::ComputeV1::HttpsHealthCheck]
2774
+ attr_accessor :https_health_check
2524
2775
 
2525
2776
  # [Output Only] The unique identifier for the resource. This identifier is
2526
2777
  # defined by the server.
@@ -2528,8 +2779,7 @@ module Google
2528
2779
  # @return [String]
2529
2780
  attr_accessor :id
2530
2781
 
2531
- # [Output Only] Type of the resource. Always compute#httpHealthCheck for HTTP
2532
- # health checks.
2782
+ # Type of the resource.
2533
2783
  # Corresponds to the JSON property `kind`
2534
2784
  # @return [String]
2535
2785
  attr_accessor :kind
@@ -2544,21 +2794,21 @@ module Google
2544
2794
  # @return [String]
2545
2795
  attr_accessor :name
2546
2796
 
2547
- # The TCP port number for the HTTP health check request. The default value is 80.
2548
- # Corresponds to the JSON property `port`
2549
- # @return [Fixnum]
2550
- attr_accessor :port
2551
-
2552
- # The request path of the HTTP health check request. The default value is /.
2553
- # Corresponds to the JSON property `requestPath`
2554
- # @return [String]
2555
- attr_accessor :request_path
2556
-
2557
2797
  # [Output Only] Server-defined URL for the resource.
2558
2798
  # Corresponds to the JSON property `selfLink`
2559
2799
  # @return [String]
2560
2800
  attr_accessor :self_link
2561
2801
 
2802
+ #
2803
+ # Corresponds to the JSON property `sslHealthCheck`
2804
+ # @return [Google::Apis::ComputeV1::SslHealthCheck]
2805
+ attr_accessor :ssl_health_check
2806
+
2807
+ #
2808
+ # Corresponds to the JSON property `tcpHealthCheck`
2809
+ # @return [Google::Apis::ComputeV1::TcpHealthCheck]
2810
+ attr_accessor :tcp_health_check
2811
+
2562
2812
  # How long (in seconds) to wait before claiming failure. The default value is 5
2563
2813
  # seconds. It is invalid for timeoutSec to have greater value than
2564
2814
  # checkIntervalSec.
@@ -2566,6 +2816,13 @@ module Google
2566
2816
  # @return [Fixnum]
2567
2817
  attr_accessor :timeout_sec
2568
2818
 
2819
+ # Specifies the type of the healthCheck, either TCP, UDP, SSL, HTTP, HTTPS or
2820
+ # HTTP2. If not specified, the default is TCP. Exactly one of the protocol-
2821
+ # specific health check field must be specified, which must match type field.
2822
+ # Corresponds to the JSON property `type`
2823
+ # @return [String]
2824
+ attr_accessor :type
2825
+
2569
2826
  # A so-far healthy instance will be marked unhealthy after this many consecutive
2570
2827
  # failures. The default value is 2.
2571
2828
  # Corresponds to the JSON property `unhealthyThreshold`
@@ -2582,30 +2839,34 @@ module Google
2582
2839
  @creation_timestamp = args[:creation_timestamp] if args.key?(:creation_timestamp)
2583
2840
  @description = args[:description] if args.key?(:description)
2584
2841
  @healthy_threshold = args[:healthy_threshold] if args.key?(:healthy_threshold)
2585
- @host = args[:host] if args.key?(:host)
2842
+ @http2_health_check = args[:http2_health_check] if args.key?(:http2_health_check)
2843
+ @http_health_check = args[:http_health_check] if args.key?(:http_health_check)
2844
+ @https_health_check = args[:https_health_check] if args.key?(:https_health_check)
2586
2845
  @id = args[:id] if args.key?(:id)
2587
2846
  @kind = args[:kind] if args.key?(:kind)
2588
2847
  @name = args[:name] if args.key?(:name)
2589
- @port = args[:port] if args.key?(:port)
2590
- @request_path = args[:request_path] if args.key?(:request_path)
2591
2848
  @self_link = args[:self_link] if args.key?(:self_link)
2849
+ @ssl_health_check = args[:ssl_health_check] if args.key?(:ssl_health_check)
2850
+ @tcp_health_check = args[:tcp_health_check] if args.key?(:tcp_health_check)
2592
2851
  @timeout_sec = args[:timeout_sec] if args.key?(:timeout_sec)
2852
+ @type = args[:type] if args.key?(:type)
2593
2853
  @unhealthy_threshold = args[:unhealthy_threshold] if args.key?(:unhealthy_threshold)
2594
2854
  end
2595
2855
  end
2596
2856
 
2597
- # Contains a list of HttpHealthCheck resources.
2598
- class HttpHealthCheckList
2857
+ # Contains a list of HealthCheck resources.
2858
+ class HealthCheckList
2599
2859
  include Google::Apis::Core::Hashable
2600
2860
 
2601
- # [Output Only] Unique identifier for the resource. Defined by the server.
2861
+ # [Output Only] The unique identifier for the resource. This identifier is
2862
+ # defined by the server.
2602
2863
  # Corresponds to the JSON property `id`
2603
2864
  # @return [String]
2604
2865
  attr_accessor :id
2605
2866
 
2606
- # A list of HttpHealthCheck resources.
2867
+ # A list of HealthCheck resources.
2607
2868
  # Corresponds to the JSON property `items`
2608
- # @return [Array<Google::Apis::ComputeV1::HttpHealthCheck>]
2869
+ # @return [Array<Google::Apis::ComputeV1::HealthCheck>]
2609
2870
  attr_accessor :items
2610
2871
 
2611
2872
  # Type of resource.
@@ -2641,15 +2902,112 @@ module Google
2641
2902
  end
2642
2903
  end
2643
2904
 
2644
- # An HttpsHealthCheck resource. This resource defines a template for how
2645
- # individual instances should be checked for health, via HTTPS.
2646
- class HttpsHealthCheck
2647
- include Google::Apis::Core::Hashable
2648
-
2649
- # How often (in seconds) to send a health check. The default value is 5 seconds.
2650
- # Corresponds to the JSON property `checkIntervalSec`
2651
- # @return [Fixnum]
2652
- attr_accessor :check_interval_sec
2905
+ # A full or valid partial URL to a health check. For example, the following are
2906
+ # valid URLs:
2907
+ # - https://www.googleapis.com/compute/beta/projects/project-id/global/
2908
+ # httpHealthChecks/health-check
2909
+ # - projects/project-id/global/httpHealthChecks/health-check
2910
+ # - global/httpHealthChecks/health-check
2911
+ class HealthCheckReference
2912
+ include Google::Apis::Core::Hashable
2913
+
2914
+ #
2915
+ # Corresponds to the JSON property `healthCheck`
2916
+ # @return [String]
2917
+ attr_accessor :health_check
2918
+
2919
+ def initialize(**args)
2920
+ update!(**args)
2921
+ end
2922
+
2923
+ # Update properties of this object
2924
+ def update!(**args)
2925
+ @health_check = args[:health_check] if args.key?(:health_check)
2926
+ end
2927
+ end
2928
+
2929
+ #
2930
+ class HealthStatus
2931
+ include Google::Apis::Core::Hashable
2932
+
2933
+ # Health state of the instance.
2934
+ # Corresponds to the JSON property `healthState`
2935
+ # @return [String]
2936
+ attr_accessor :health_state
2937
+
2938
+ # URL of the instance resource.
2939
+ # Corresponds to the JSON property `instance`
2940
+ # @return [String]
2941
+ attr_accessor :instance
2942
+
2943
+ # The IP address represented by this resource.
2944
+ # Corresponds to the JSON property `ipAddress`
2945
+ # @return [String]
2946
+ attr_accessor :ip_address
2947
+
2948
+ # The port on the instance.
2949
+ # Corresponds to the JSON property `port`
2950
+ # @return [Fixnum]
2951
+ attr_accessor :port
2952
+
2953
+ def initialize(**args)
2954
+ update!(**args)
2955
+ end
2956
+
2957
+ # Update properties of this object
2958
+ def update!(**args)
2959
+ @health_state = args[:health_state] if args.key?(:health_state)
2960
+ @instance = args[:instance] if args.key?(:instance)
2961
+ @ip_address = args[:ip_address] if args.key?(:ip_address)
2962
+ @port = args[:port] if args.key?(:port)
2963
+ end
2964
+ end
2965
+
2966
+ # UrlMaps A host-matching rule for a URL. If matched, will use the named
2967
+ # PathMatcher to select the BackendService.
2968
+ class HostRule
2969
+ include Google::Apis::Core::Hashable
2970
+
2971
+ # An optional description of this resource. Provide this property when you
2972
+ # create the resource.
2973
+ # Corresponds to the JSON property `description`
2974
+ # @return [String]
2975
+ attr_accessor :description
2976
+
2977
+ # The list of host patterns to match. They must be valid hostnames, except *
2978
+ # will match any string of ([a-z0-9-.]*). In that case, * must be the first
2979
+ # character and must be followed in the pattern by either - or ..
2980
+ # Corresponds to the JSON property `hosts`
2981
+ # @return [Array<String>]
2982
+ attr_accessor :hosts
2983
+
2984
+ # The name of the PathMatcher to use to match the path portion of the URL if the
2985
+ # hostRule matches the URL's host portion.
2986
+ # Corresponds to the JSON property `pathMatcher`
2987
+ # @return [String]
2988
+ attr_accessor :path_matcher
2989
+
2990
+ def initialize(**args)
2991
+ update!(**args)
2992
+ end
2993
+
2994
+ # Update properties of this object
2995
+ def update!(**args)
2996
+ @description = args[:description] if args.key?(:description)
2997
+ @hosts = args[:hosts] if args.key?(:hosts)
2998
+ @path_matcher = args[:path_matcher] if args.key?(:path_matcher)
2999
+ end
3000
+ end
3001
+
3002
+ # An HttpHealthCheck resource. This resource defines a template for how
3003
+ # individual instances should be checked for health, via HTTP.
3004
+ class HttpHealthCheck
3005
+ include Google::Apis::Core::Hashable
3006
+
3007
+ # How often (in seconds) to send a health check. The default value is 5 seconds.
3008
+ # Corresponds to the JSON property `checkIntervalSec`
3009
+ # @return [Fixnum]
3010
+ attr_accessor :check_interval_sec
2653
3011
 
2654
3012
  # [Output Only] Creation timestamp in RFC3339 text format.
2655
3013
  # Corresponds to the JSON property `creationTimestamp`
@@ -2668,7 +3026,7 @@ module Google
2668
3026
  # @return [Fixnum]
2669
3027
  attr_accessor :healthy_threshold
2670
3028
 
2671
- # The value of the host header in the HTTPS health check request. If left empty (
3029
+ # The value of the host header in the HTTP health check request. If left empty (
2672
3030
  # default value), the public IP on behalf of which this health check is
2673
3031
  # performed will be used.
2674
3032
  # Corresponds to the JSON property `host`
@@ -2681,7 +3039,8 @@ module Google
2681
3039
  # @return [String]
2682
3040
  attr_accessor :id
2683
3041
 
2684
- # Type of the resource.
3042
+ # [Output Only] Type of the resource. Always compute#httpHealthCheck for HTTP
3043
+ # health checks.
2685
3044
  # Corresponds to the JSON property `kind`
2686
3045
  # @return [String]
2687
3046
  attr_accessor :kind
@@ -2696,13 +3055,12 @@ module Google
2696
3055
  # @return [String]
2697
3056
  attr_accessor :name
2698
3057
 
2699
- # The TCP port number for the HTTPS health check request. The default value is
2700
- # 443.
3058
+ # The TCP port number for the HTTP health check request. The default value is 80.
2701
3059
  # Corresponds to the JSON property `port`
2702
3060
  # @return [Fixnum]
2703
3061
  attr_accessor :port
2704
3062
 
2705
- # The request path of the HTTPS health check request. The default value is "/".
3063
+ # The request path of the HTTP health check request. The default value is /.
2706
3064
  # Corresponds to the JSON property `requestPath`
2707
3065
  # @return [String]
2708
3066
  attr_accessor :request_path
@@ -2713,7 +3071,7 @@ module Google
2713
3071
  attr_accessor :self_link
2714
3072
 
2715
3073
  # How long (in seconds) to wait before claiming failure. The default value is 5
2716
- # seconds. It is invalid for timeoutSec to have a greater value than
3074
+ # seconds. It is invalid for timeoutSec to have greater value than
2717
3075
  # checkIntervalSec.
2718
3076
  # Corresponds to the JSON property `timeoutSec`
2719
3077
  # @return [Fixnum]
@@ -2747,18 +3105,18 @@ module Google
2747
3105
  end
2748
3106
  end
2749
3107
 
2750
- # Contains a list of HttpsHealthCheck resources.
2751
- class HttpsHealthCheckList
3108
+ # Contains a list of HttpHealthCheck resources.
3109
+ class HttpHealthCheckList
2752
3110
  include Google::Apis::Core::Hashable
2753
3111
 
2754
- # [Output Only] Unique identifier for the resource; defined by the server.
3112
+ # [Output Only] Unique identifier for the resource. Defined by the server.
2755
3113
  # Corresponds to the JSON property `id`
2756
3114
  # @return [String]
2757
3115
  attr_accessor :id
2758
3116
 
2759
- # A list of HttpsHealthCheck resources.
3117
+ # A list of HttpHealthCheck resources.
2760
3118
  # Corresponds to the JSON property `items`
2761
- # @return [Array<Google::Apis::ComputeV1::HttpsHealthCheck>]
3119
+ # @return [Array<Google::Apis::ComputeV1::HttpHealthCheck>]
2762
3120
  attr_accessor :items
2763
3121
 
2764
3122
  # Type of resource.
@@ -2794,42 +3152,39 @@ module Google
2794
3152
  end
2795
3153
  end
2796
3154
 
2797
- # An Image resource.
2798
- class Image
3155
+ # An HttpsHealthCheck resource. This resource defines a template for how
3156
+ # individual instances should be checked for health, via HTTPS.
3157
+ class HttpsHealthCheck
2799
3158
  include Google::Apis::Core::Hashable
2800
3159
 
2801
- # Size of the image tar.gz archive stored in Google Cloud Storage (in bytes).
2802
- # Corresponds to the JSON property `archiveSizeBytes`
2803
- # @return [String]
2804
- attr_accessor :archive_size_bytes
3160
+ # How often (in seconds) to send a health check. The default value is 5 seconds.
3161
+ # Corresponds to the JSON property `checkIntervalSec`
3162
+ # @return [Fixnum]
3163
+ attr_accessor :check_interval_sec
2805
3164
 
2806
3165
  # [Output Only] Creation timestamp in RFC3339 text format.
2807
3166
  # Corresponds to the JSON property `creationTimestamp`
2808
3167
  # @return [String]
2809
3168
  attr_accessor :creation_timestamp
2810
3169
 
2811
- # Deprecation status for a public resource.
2812
- # Corresponds to the JSON property `deprecated`
2813
- # @return [Google::Apis::ComputeV1::DeprecationStatus]
2814
- attr_accessor :deprecated
2815
-
2816
3170
  # An optional description of this resource. Provide this property when you
2817
3171
  # create the resource.
2818
3172
  # Corresponds to the JSON property `description`
2819
3173
  # @return [String]
2820
3174
  attr_accessor :description
2821
3175
 
2822
- # Size of the image when restored onto a persistent disk (in GB).
2823
- # Corresponds to the JSON property `diskSizeGb`
2824
- # @return [String]
2825
- attr_accessor :disk_size_gb
3176
+ # A so-far unhealthy instance will be marked healthy after this many consecutive
3177
+ # successes. The default value is 2.
3178
+ # Corresponds to the JSON property `healthyThreshold`
3179
+ # @return [Fixnum]
3180
+ attr_accessor :healthy_threshold
2826
3181
 
2827
- # The name of the image family to which this image belongs. You can create disks
2828
- # by specifying an image family instead of a specific image name. The image
2829
- # family always returns its latest image that is not deprecated.
2830
- # Corresponds to the JSON property `family`
3182
+ # The value of the host header in the HTTPS health check request. If left empty (
3183
+ # default value), the public IP on behalf of which this health check is
3184
+ # performed will be used.
3185
+ # Corresponds to the JSON property `host`
2831
3186
  # @return [String]
2832
- attr_accessor :family
3187
+ attr_accessor :host
2833
3188
 
2834
3189
  # [Output Only] The unique identifier for the resource. This identifier is
2835
3190
  # defined by the server.
@@ -2837,17 +3192,12 @@ module Google
2837
3192
  # @return [String]
2838
3193
  attr_accessor :id
2839
3194
 
2840
- # [Output Only] Type of the resource. Always compute#image for images.
3195
+ # Type of the resource.
2841
3196
  # Corresponds to the JSON property `kind`
2842
3197
  # @return [String]
2843
3198
  attr_accessor :kind
2844
3199
 
2845
- # Any applicable publicly visible licenses.
2846
- # Corresponds to the JSON property `licenses`
2847
- # @return [Array<String>]
2848
- attr_accessor :licenses
2849
-
2850
- # Name of the resource; provided by the client when the resource is created. The
3200
+ # Name of the resource. Provided by the client when the resource is created. The
2851
3201
  # name must be 1-63 characters long, and comply with RFC1035. Specifically, the
2852
3202
  # name must be 1-63 characters long and match the regular expression [a-z]([-a-
2853
3203
  # z0-9]*[a-z0-9])? which means the first character must be a lowercase letter,
@@ -2857,47 +3207,34 @@ module Google
2857
3207
  # @return [String]
2858
3208
  attr_accessor :name
2859
3209
 
2860
- # The parameters of the raw disk image.
2861
- # Corresponds to the JSON property `rawDisk`
2862
- # @return [Google::Apis::ComputeV1::Image::RawDisk]
2863
- attr_accessor :raw_disk
3210
+ # The TCP port number for the HTTPS health check request. The default value is
3211
+ # 443.
3212
+ # Corresponds to the JSON property `port`
3213
+ # @return [Fixnum]
3214
+ attr_accessor :port
3215
+
3216
+ # The request path of the HTTPS health check request. The default value is "/".
3217
+ # Corresponds to the JSON property `requestPath`
3218
+ # @return [String]
3219
+ attr_accessor :request_path
2864
3220
 
2865
3221
  # [Output Only] Server-defined URL for the resource.
2866
3222
  # Corresponds to the JSON property `selfLink`
2867
3223
  # @return [String]
2868
3224
  attr_accessor :self_link
2869
3225
 
2870
- # URL of the The source disk used to create this image. This can be a full or
2871
- # valid partial URL. You must provide either this property or the rawDisk.source
2872
- # property but not both to create an image. For example, the following are valid
2873
- # values:
2874
- # - https://www.googleapis.com/compute/v1/projects/project/zones/zone/disk/disk
2875
- # - projects/project/zones/zone/disk/disk
2876
- # - zones/zone/disks/disk
2877
- # Corresponds to the JSON property `sourceDisk`
2878
- # @return [String]
2879
- attr_accessor :source_disk
2880
-
2881
- # The ID value of the disk used to create this image. This value may be used to
2882
- # determine whether the image was taken from the current or a previous instance
2883
- # of a given disk name.
2884
- # Corresponds to the JSON property `sourceDiskId`
2885
- # @return [String]
2886
- attr_accessor :source_disk_id
2887
-
2888
- # The type of the image used to create this disk. The default and only value is
2889
- # RAW
2890
- # Corresponds to the JSON property `sourceType`
2891
- # @return [String]
2892
- attr_accessor :source_type
3226
+ # How long (in seconds) to wait before claiming failure. The default value is 5
3227
+ # seconds. It is invalid for timeoutSec to have a greater value than
3228
+ # checkIntervalSec.
3229
+ # Corresponds to the JSON property `timeoutSec`
3230
+ # @return [Fixnum]
3231
+ attr_accessor :timeout_sec
2893
3232
 
2894
- # [Output Only] The status of the image. An image can be used to create other
2895
- # resources, such as instances, only after the image has been successfully
2896
- # created and the status is set to READY. Possible values are FAILED, PENDING,
2897
- # or READY.
2898
- # Corresponds to the JSON property `status`
2899
- # @return [String]
2900
- attr_accessor :status
3233
+ # A so-far healthy instance will be marked unhealthy after this many consecutive
3234
+ # failures. The default value is 2.
3235
+ # Corresponds to the JSON property `unhealthyThreshold`
3236
+ # @return [Fixnum]
3237
+ attr_accessor :unhealthy_threshold
2901
3238
 
2902
3239
  def initialize(**args)
2903
3240
  update!(**args)
@@ -2905,35 +3242,222 @@ module Google
2905
3242
 
2906
3243
  # Update properties of this object
2907
3244
  def update!(**args)
2908
- @archive_size_bytes = args[:archive_size_bytes] if args.key?(:archive_size_bytes)
3245
+ @check_interval_sec = args[:check_interval_sec] if args.key?(:check_interval_sec)
2909
3246
  @creation_timestamp = args[:creation_timestamp] if args.key?(:creation_timestamp)
2910
- @deprecated = args[:deprecated] if args.key?(:deprecated)
2911
3247
  @description = args[:description] if args.key?(:description)
2912
- @disk_size_gb = args[:disk_size_gb] if args.key?(:disk_size_gb)
2913
- @family = args[:family] if args.key?(:family)
3248
+ @healthy_threshold = args[:healthy_threshold] if args.key?(:healthy_threshold)
3249
+ @host = args[:host] if args.key?(:host)
2914
3250
  @id = args[:id] if args.key?(:id)
2915
3251
  @kind = args[:kind] if args.key?(:kind)
2916
- @licenses = args[:licenses] if args.key?(:licenses)
2917
3252
  @name = args[:name] if args.key?(:name)
2918
- @raw_disk = args[:raw_disk] if args.key?(:raw_disk)
3253
+ @port = args[:port] if args.key?(:port)
3254
+ @request_path = args[:request_path] if args.key?(:request_path)
2919
3255
  @self_link = args[:self_link] if args.key?(:self_link)
2920
- @source_disk = args[:source_disk] if args.key?(:source_disk)
2921
- @source_disk_id = args[:source_disk_id] if args.key?(:source_disk_id)
2922
- @source_type = args[:source_type] if args.key?(:source_type)
2923
- @status = args[:status] if args.key?(:status)
3256
+ @timeout_sec = args[:timeout_sec] if args.key?(:timeout_sec)
3257
+ @unhealthy_threshold = args[:unhealthy_threshold] if args.key?(:unhealthy_threshold)
3258
+ end
3259
+ end
3260
+
3261
+ # Contains a list of HttpsHealthCheck resources.
3262
+ class HttpsHealthCheckList
3263
+ include Google::Apis::Core::Hashable
3264
+
3265
+ # [Output Only] Unique identifier for the resource; defined by the server.
3266
+ # Corresponds to the JSON property `id`
3267
+ # @return [String]
3268
+ attr_accessor :id
3269
+
3270
+ # A list of HttpsHealthCheck resources.
3271
+ # Corresponds to the JSON property `items`
3272
+ # @return [Array<Google::Apis::ComputeV1::HttpsHealthCheck>]
3273
+ attr_accessor :items
3274
+
3275
+ # Type of resource.
3276
+ # Corresponds to the JSON property `kind`
3277
+ # @return [String]
3278
+ attr_accessor :kind
3279
+
3280
+ # [Output Only] This token allows you to get the next page of results for list
3281
+ # requests. If the number of results is larger than maxResults, use the
3282
+ # nextPageToken as a value for the query parameter pageToken in the next list
3283
+ # request. Subsequent list requests will have their own nextPageToken to
3284
+ # continue paging through the results.
3285
+ # Corresponds to the JSON property `nextPageToken`
3286
+ # @return [String]
3287
+ attr_accessor :next_page_token
3288
+
3289
+ # [Output Only] Server-defined URL for this resource.
3290
+ # Corresponds to the JSON property `selfLink`
3291
+ # @return [String]
3292
+ attr_accessor :self_link
3293
+
3294
+ def initialize(**args)
3295
+ update!(**args)
3296
+ end
3297
+
3298
+ # Update properties of this object
3299
+ def update!(**args)
3300
+ @id = args[:id] if args.key?(:id)
3301
+ @items = args[:items] if args.key?(:items)
3302
+ @kind = args[:kind] if args.key?(:kind)
3303
+ @next_page_token = args[:next_page_token] if args.key?(:next_page_token)
3304
+ @self_link = args[:self_link] if args.key?(:self_link)
3305
+ end
3306
+ end
3307
+
3308
+ # An Image resource.
3309
+ class Image
3310
+ include Google::Apis::Core::Hashable
3311
+
3312
+ # Size of the image tar.gz archive stored in Google Cloud Storage (in bytes).
3313
+ # Corresponds to the JSON property `archiveSizeBytes`
3314
+ # @return [String]
3315
+ attr_accessor :archive_size_bytes
3316
+
3317
+ # Creation timestamp in RFC3339 text format.
3318
+ # Corresponds to the JSON property `creationTimestamp`
3319
+ # @return [String]
3320
+ attr_accessor :creation_timestamp
3321
+
3322
+ # Deprecation status for a public resource.
3323
+ # Corresponds to the JSON property `deprecated`
3324
+ # @return [Google::Apis::ComputeV1::DeprecationStatus]
3325
+ attr_accessor :deprecated
3326
+
3327
+ # An optional description of this resource. Provide this property when you
3328
+ # create the resource.
3329
+ # Corresponds to the JSON property `description`
3330
+ # @return [String]
3331
+ attr_accessor :description
3332
+
3333
+ # Size of the image when restored onto a persistent disk (in GB).
3334
+ # Corresponds to the JSON property `diskSizeGb`
3335
+ # @return [String]
3336
+ attr_accessor :disk_size_gb
3337
+
3338
+ # The name of the image family to which this image belongs. You can create disks
3339
+ # by specifying an image family instead of a specific image name. The image
3340
+ # family always returns its latest image that is not deprecated. The name of the
3341
+ # image family must comply with RFC1035.
3342
+ # Corresponds to the JSON property `family`
3343
+ # @return [String]
3344
+ attr_accessor :family
3345
+
3346
+ # [Output Only] The unique identifier for the resource. This identifier is
3347
+ # defined by the server.
3348
+ # Corresponds to the JSON property `id`
3349
+ # @return [String]
3350
+ attr_accessor :id
3351
+
3352
+ # Represents a customer-supplied encryption key
3353
+ # Corresponds to the JSON property `imageEncryptionKey`
3354
+ # @return [Google::Apis::ComputeV1::CustomerEncryptionKey]
3355
+ attr_accessor :image_encryption_key
3356
+
3357
+ # [Output Only] Type of the resource. Always compute#image for images.
3358
+ # Corresponds to the JSON property `kind`
3359
+ # @return [String]
3360
+ attr_accessor :kind
3361
+
3362
+ # Any applicable license URI.
3363
+ # Corresponds to the JSON property `licenses`
3364
+ # @return [Array<String>]
3365
+ attr_accessor :licenses
3366
+
3367
+ # Name of the resource; provided by the client when the resource is created. The
3368
+ # name must be 1-63 characters long, and comply with RFC1035. Specifically, the
3369
+ # name must be 1-63 characters long and match the regular expression [a-z]([-a-
3370
+ # z0-9]*[a-z0-9])? which means the first character must be a lowercase letter,
3371
+ # and all following characters must be a dash, lowercase letter, or digit,
3372
+ # except the last character, which cannot be a dash.
3373
+ # Corresponds to the JSON property `name`
3374
+ # @return [String]
3375
+ attr_accessor :name
3376
+
3377
+ # The parameters of the raw disk image.
3378
+ # Corresponds to the JSON property `rawDisk`
3379
+ # @return [Google::Apis::ComputeV1::Image::RawDisk]
3380
+ attr_accessor :raw_disk
3381
+
3382
+ # [Output Only] Server-defined URL for the resource.
3383
+ # Corresponds to the JSON property `selfLink`
3384
+ # @return [String]
3385
+ attr_accessor :self_link
3386
+
3387
+ # URL of the The source disk used to create this image. This can be a full or
3388
+ # valid partial URL. You must provide either this property or the rawDisk.source
3389
+ # property but not both to create an image. For example, the following are valid
3390
+ # values:
3391
+ # - https://www.googleapis.com/compute/v1/projects/project/zones/zone/disk/disk
3392
+ # - projects/project/zones/zone/disk/disk
3393
+ # - zones/zone/disks/disk
3394
+ # Corresponds to the JSON property `sourceDisk`
3395
+ # @return [String]
3396
+ attr_accessor :source_disk
3397
+
3398
+ # Represents a customer-supplied encryption key
3399
+ # Corresponds to the JSON property `sourceDiskEncryptionKey`
3400
+ # @return [Google::Apis::ComputeV1::CustomerEncryptionKey]
3401
+ attr_accessor :source_disk_encryption_key
3402
+
3403
+ # The ID value of the disk used to create this image. This value may be used to
3404
+ # determine whether the image was taken from the current or a previous instance
3405
+ # of a given disk name.
3406
+ # Corresponds to the JSON property `sourceDiskId`
3407
+ # @return [String]
3408
+ attr_accessor :source_disk_id
3409
+
3410
+ # The type of the image used to create this disk. The default and only value is
3411
+ # RAW
3412
+ # Corresponds to the JSON property `sourceType`
3413
+ # @return [String]
3414
+ attr_accessor :source_type
3415
+
3416
+ # [Output Only] The status of the image. An image can be used to create other
3417
+ # resources, such as instances, only after the image has been successfully
3418
+ # created and the status is set to READY. Possible values are FAILED, PENDING,
3419
+ # or READY.
3420
+ # Corresponds to the JSON property `status`
3421
+ # @return [String]
3422
+ attr_accessor :status
3423
+
3424
+ def initialize(**args)
3425
+ update!(**args)
3426
+ end
3427
+
3428
+ # Update properties of this object
3429
+ def update!(**args)
3430
+ @archive_size_bytes = args[:archive_size_bytes] if args.key?(:archive_size_bytes)
3431
+ @creation_timestamp = args[:creation_timestamp] if args.key?(:creation_timestamp)
3432
+ @deprecated = args[:deprecated] if args.key?(:deprecated)
3433
+ @description = args[:description] if args.key?(:description)
3434
+ @disk_size_gb = args[:disk_size_gb] if args.key?(:disk_size_gb)
3435
+ @family = args[:family] if args.key?(:family)
3436
+ @id = args[:id] if args.key?(:id)
3437
+ @image_encryption_key = args[:image_encryption_key] if args.key?(:image_encryption_key)
3438
+ @kind = args[:kind] if args.key?(:kind)
3439
+ @licenses = args[:licenses] if args.key?(:licenses)
3440
+ @name = args[:name] if args.key?(:name)
3441
+ @raw_disk = args[:raw_disk] if args.key?(:raw_disk)
3442
+ @self_link = args[:self_link] if args.key?(:self_link)
3443
+ @source_disk = args[:source_disk] if args.key?(:source_disk)
3444
+ @source_disk_encryption_key = args[:source_disk_encryption_key] if args.key?(:source_disk_encryption_key)
3445
+ @source_disk_id = args[:source_disk_id] if args.key?(:source_disk_id)
3446
+ @source_type = args[:source_type] if args.key?(:source_type)
3447
+ @status = args[:status] if args.key?(:status)
2924
3448
  end
2925
3449
 
2926
- # The parameters of the raw disk image.
2927
- class RawDisk
2928
- include Google::Apis::Core::Hashable
2929
-
2930
- # The format used to encode and transmit the block device, which should be TAR.
2931
- # This is just a container and transmission format and not a runtime format.
2932
- # Provided by the client when the disk image is created.
2933
- # Corresponds to the JSON property `containerType`
2934
- # @return [String]
2935
- attr_accessor :container_type
2936
-
3450
+ # The parameters of the raw disk image.
3451
+ class RawDisk
3452
+ include Google::Apis::Core::Hashable
3453
+
3454
+ # The format used to encode and transmit the block device, which should be TAR.
3455
+ # This is just a container and transmission format and not a runtime format.
3456
+ # Provided by the client when the disk image is created.
3457
+ # Corresponds to the JSON property `containerType`
3458
+ # @return [String]
3459
+ attr_accessor :container_type
3460
+
2937
3461
  # An optional SHA1 checksum of the disk image before unpackaging; provided by
2938
3462
  # the client when the disk image is created.
2939
3463
  # Corresponds to the JSON property `sha1Checksum`
@@ -3086,7 +3610,7 @@ module Google
3086
3610
 
3087
3611
  # An array of configurations for this interface. This specifies how this
3088
3612
  # interface is configured to interact with other network services, such as
3089
- # connecting to the internet.
3613
+ # connecting to the internet. Only one interface is supported per instance.
3090
3614
  # Corresponds to the JSON property `networkInterfaces`
3091
3615
  # @return [Array<Google::Apis::ComputeV1::NetworkInterface>]
3092
3616
  attr_accessor :network_interfaces
@@ -3104,13 +3628,14 @@ module Google
3104
3628
  # A list of service accounts, with their specified scopes, authorized for this
3105
3629
  # instance. Service accounts generate access tokens that can be accessed through
3106
3630
  # the metadata server and used to authenticate applications on the instance. See
3107
- # Authenticating from Google Compute Engine for more information.
3631
+ # Service Accounts for more information.
3108
3632
  # Corresponds to the JSON property `serviceAccounts`
3109
3633
  # @return [Array<Google::Apis::ComputeV1::ServiceAccount>]
3110
3634
  attr_accessor :service_accounts
3111
3635
 
3112
3636
  # [Output Only] The status of the instance. One of the following values:
3113
- # PROVISIONING, STAGING, RUNNING, STOPPING, and TERMINATED.
3637
+ # PROVISIONING, STAGING, RUNNING, STOPPING, SUSPENDING, SUSPENDED, and
3638
+ # TERMINATED.
3114
3639
  # Corresponds to the JSON property `status`
3115
3640
  # @return [String]
3116
3641
  attr_accessor :status
@@ -3229,8 +3754,8 @@ module Google
3229
3754
  # @return [String]
3230
3755
  attr_accessor :fingerprint
3231
3756
 
3232
- # [Output Only] A unique identifier for this resource type. The server generates
3233
- # this identifier.
3757
+ # [Output Only] A unique identifier for this instance group. The server
3758
+ # generates this identifier.
3234
3759
  # Corresponds to the JSON property `id`
3235
3760
  # @return [String]
3236
3761
  attr_accessor :id
@@ -3276,7 +3801,8 @@ module Google
3276
3801
  # @return [String]
3277
3802
  attr_accessor :subnetwork
3278
3803
 
3279
- # [Output Only] The URL of the zone where the instance group is located.
3804
+ # [Output Only] The URL of the zone where the instance group is located (for
3805
+ # zonal resources).
3280
3806
  # Corresponds to the JSON property `zone`
3281
3807
  # @return [String]
3282
3808
  attr_accessor :zone
@@ -3400,7 +3926,7 @@ module Google
3400
3926
  end
3401
3927
  end
3402
3928
 
3403
- #
3929
+ # An Instance Group Manager resource.
3404
3930
  class InstanceGroupManager
3405
3931
  include Google::Apis::Core::Hashable
3406
3932
 
@@ -3492,7 +4018,8 @@ module Google
3492
4018
  # @return [Fixnum]
3493
4019
  attr_accessor :target_size
3494
4020
 
3495
- # The name of the zone where the managed instance group is located.
4021
+ # [Output Only] The URL of the zone where the managed instance group is located (
4022
+ # for zonal resources).
3496
4023
  # Corresponds to the JSON property `zone`
3497
4024
  # @return [String]
3498
4025
  attr_accessor :zone
@@ -3534,12 +4061,22 @@ module Google
3534
4061
 
3535
4062
  # [Output Only] The number of instances in the managed instance group that are
3536
4063
  # scheduled to be created or are currently being created. If the group fails to
3537
- # create one of these instances, it tries again until it creates the instance
4064
+ # create any of these instances, it tries again until it creates the instance
3538
4065
  # successfully.
4066
+ # If you have disabled creation retries, this field will not be populated;
4067
+ # instead, the creatingWithoutRetries field will be populated.
3539
4068
  # Corresponds to the JSON property `creating`
3540
4069
  # @return [Fixnum]
3541
4070
  attr_accessor :creating
3542
4071
 
4072
+ # [Output Only] The number of instances that the managed instance group will
4073
+ # attempt to create. The group attempts to create each instance only once. If
4074
+ # the group fails to create any of these instances, it decreases the group's
4075
+ # target_size value accordingly.
4076
+ # Corresponds to the JSON property `creatingWithoutRetries`
4077
+ # @return [Fixnum]
4078
+ attr_accessor :creating_without_retries
4079
+
3543
4080
  # [Output Only] The number of instances in the managed instance group that are
3544
4081
  # scheduled to be deleted or are currently being deleted.
3545
4082
  # Corresponds to the JSON property `deleting`
@@ -3581,6 +4118,7 @@ module Google
3581
4118
  def update!(**args)
3582
4119
  @abandoning = args[:abandoning] if args.key?(:abandoning)
3583
4120
  @creating = args[:creating] if args.key?(:creating)
4121
+ @creating_without_retries = args[:creating_without_retries] if args.key?(:creating_without_retries)
3584
4122
  @deleting = args[:deleting] if args.key?(:deleting)
3585
4123
  @none = args[:none] if args.key?(:none)
3586
4124
  @recreating = args[:recreating] if args.key?(:recreating)
@@ -3933,8 +4471,8 @@ module Google
3933
4471
  class InstanceGroupsListInstances
3934
4472
  include Google::Apis::Core::Hashable
3935
4473
 
3936
- # [Output Only] A unique identifier for this list of instance groups. The server
3937
- # generates this identifier.
4474
+ # [Output Only] A unique identifier for this list of instances in the specified
4475
+ # instance group. The server generates this identifier.
3938
4476
  # Corresponds to the JSON property `id`
3939
4477
  # @return [String]
3940
4478
  attr_accessor :id
@@ -3946,7 +4484,8 @@ module Google
3946
4484
  attr_accessor :items
3947
4485
 
3948
4486
  # [Output Only] The resource type, which is always compute#
3949
- # instanceGroupsListInstances for lists of instance groups.
4487
+ # instanceGroupsListInstances for the list of instances in the specified
4488
+ # instance group.
3950
4489
  # Corresponds to the JSON property `kind`
3951
4490
  # @return [String]
3952
4491
  attr_accessor :kind
@@ -3960,8 +4499,8 @@ module Google
3960
4499
  # @return [String]
3961
4500
  attr_accessor :next_page_token
3962
4501
 
3963
- # [Output Only] The URL for this list of instance groups. The server generates
3964
- # this URL.
4502
+ # [Output Only] The URL for this list of instances in the specified instance
4503
+ # groups. The server generates this URL.
3965
4504
  # Corresponds to the JSON property `selfLink`
3966
4505
  # @return [String]
3967
4506
  attr_accessor :self_link
@@ -4232,8 +4771,8 @@ module Google
4232
4771
  # IP addresses other than their own and receive packets with destination IP
4233
4772
  # addresses other than their own. If these instances will be used as an IP
4234
4773
  # gateway or it will be set as the next-hop in a Route resource, specify true.
4235
- # If unsure, leave this set to false. See the canIpForward documentation for
4236
- # more information.
4774
+ # If unsure, leave this set to false. See the Enable IP forwarding for instances
4775
+ # documentation for more information.
4237
4776
  # Corresponds to the JSON property `canIpForward`
4238
4777
  # @return [Boolean]
4239
4778
  attr_accessor :can_ip_forward
@@ -4577,6 +5116,30 @@ module Google
4577
5116
  end
4578
5117
  end
4579
5118
 
5119
+ #
5120
+ class InstancesStartWithEncryptionKeyRequest
5121
+ include Google::Apis::Core::Hashable
5122
+
5123
+ # Array of disks associated with this instance that are protected with a
5124
+ # customer-supplied encryption key.
5125
+ # In order to start the instance, the disk url and its corresponding key must be
5126
+ # provided.
5127
+ # If the disk is not protected with a customer-supplied encryption key it should
5128
+ # not be specified.
5129
+ # Corresponds to the JSON property `disks`
5130
+ # @return [Array<Google::Apis::ComputeV1::CustomerEncryptionKeyProtectedDisk>]
5131
+ attr_accessor :disks
5132
+
5133
+ def initialize(**args)
5134
+ update!(**args)
5135
+ end
5136
+
5137
+ # Update properties of this object
5138
+ def update!(**args)
5139
+ @disks = args[:disks] if args.key?(:disks)
5140
+ end
5141
+ end
5142
+
4580
5143
  # A license resource.
4581
5144
  class License
4582
5145
  include Google::Apis::Core::Hashable
@@ -4653,6 +5216,13 @@ module Google
4653
5216
  # @return [Fixnum]
4654
5217
  attr_accessor :image_space_gb
4655
5218
 
5219
+ # [Output Only] Whether this machine type has a shared CPU. See Shared-core
5220
+ # machine types for more information.
5221
+ # Corresponds to the JSON property `isSharedCpu`
5222
+ # @return [Boolean]
5223
+ attr_accessor :is_shared_cpu
5224
+ alias_method :is_shared_cpu?, :is_shared_cpu
5225
+
4656
5226
  # [Output Only] The type of the resource. Always compute#machineType for machine
4657
5227
  # types.
4658
5228
  # Corresponds to the JSON property `kind`
@@ -4708,6 +5278,7 @@ module Google
4708
5278
  @guest_cpus = args[:guest_cpus] if args.key?(:guest_cpus)
4709
5279
  @id = args[:id] if args.key?(:id)
4710
5280
  @image_space_gb = args[:image_space_gb] if args.key?(:image_space_gb)
5281
+ @is_shared_cpu = args[:is_shared_cpu] if args.key?(:is_shared_cpu)
4711
5282
  @kind = args[:kind] if args.key?(:kind)
4712
5283
  @maximum_persistent_disks = args[:maximum_persistent_disks] if args.key?(:maximum_persistent_disks)
4713
5284
  @maximum_persistent_disks_size_gb = args[:maximum_persistent_disks_size_gb] if args.key?(:maximum_persistent_disks_size_gb)
@@ -4939,7 +5510,7 @@ module Google
4939
5510
  # fails to create this instance, it will try again until it is successful.
4940
5511
  # - CREATING_WITHOUT_RETRIES The managed instance group is attempting to create
4941
5512
  # this instance only once. If the group fails to create this instance, it does
4942
- # not try again and the group's target_size value is decreased.
5513
+ # not try again and the group's targetSize value is decreased instead.
4943
5514
  # - RECREATING The managed instance group is recreating this instance.
4944
5515
  # - DELETING The managed instance group is permanently deleting this instance.
4945
5516
  # - ABANDONING The managed instance group is abandoning this instance. The
@@ -5250,8 +5821,8 @@ module Google
5250
5821
  class NetworkInterface
5251
5822
  include Google::Apis::Core::Hashable
5252
5823
 
5253
- # An array of configurations for this interface. Currently, ONE_TO_ONE_NAT is
5254
- # the only access config supported. If there are no accessConfigs specified,
5824
+ # An array of configurations for this interface. Currently, only one access
5825
+ # config, ONE_TO_ONE_NAT, is supported. If there are no accessConfigs specified,
5255
5826
  # then this instance will have no external internet access.
5256
5827
  # Corresponds to the JSON property `accessConfigs`
5257
5828
  # @return [Array<Google::Apis::ComputeV1::AccessConfig>]
@@ -5927,6 +6498,11 @@ module Google
5927
6498
  # @return [String]
5928
6499
  attr_accessor :creation_timestamp
5929
6500
 
6501
+ # [Output Only] Default service account used by VMs running in this project.
6502
+ # Corresponds to the JSON property `defaultServiceAccount`
6503
+ # @return [String]
6504
+ attr_accessor :default_service_account
6505
+
5930
6506
  # An optional textual description of the resource.
5931
6507
  # Corresponds to the JSON property `description`
5932
6508
  # @return [String]
@@ -5979,6 +6555,7 @@ module Google
5979
6555
  def update!(**args)
5980
6556
  @common_instance_metadata = args[:common_instance_metadata] if args.key?(:common_instance_metadata)
5981
6557
  @creation_timestamp = args[:creation_timestamp] if args.key?(:creation_timestamp)
6558
+ @default_service_account = args[:default_service_account] if args.key?(:default_service_account)
5982
6559
  @description = args[:description] if args.key?(:description)
5983
6560
  @enabled_features = args[:enabled_features] if args.key?(:enabled_features)
5984
6561
  @id = args[:id] if args.key?(:id)
@@ -6281,25 +6858,607 @@ module Google
6281
6858
 
6282
6859
  # Update properties of this object
6283
6860
  def update!(**args)
6284
- @creation_timestamp = args[:creation_timestamp] if args.key?(:creation_timestamp)
6285
- @description = args[:description] if args.key?(:description)
6286
- @dest_range = args[:dest_range] if args.key?(:dest_range)
6287
- @id = args[:id] if args.key?(:id)
6288
- @kind = args[:kind] if args.key?(:kind)
6289
- @name = args[:name] if args.key?(:name)
6290
- @network = args[:network] if args.key?(:network)
6291
- @next_hop_gateway = args[:next_hop_gateway] if args.key?(:next_hop_gateway)
6292
- @next_hop_instance = args[:next_hop_instance] if args.key?(:next_hop_instance)
6293
- @next_hop_ip = args[:next_hop_ip] if args.key?(:next_hop_ip)
6294
- @next_hop_network = args[:next_hop_network] if args.key?(:next_hop_network)
6295
- @next_hop_vpn_tunnel = args[:next_hop_vpn_tunnel] if args.key?(:next_hop_vpn_tunnel)
6296
- @priority = args[:priority] if args.key?(:priority)
6297
- @self_link = args[:self_link] if args.key?(:self_link)
6298
- @tags = args[:tags] if args.key?(:tags)
6299
- @warnings = args[:warnings] if args.key?(:warnings)
6861
+ @creation_timestamp = args[:creation_timestamp] if args.key?(:creation_timestamp)
6862
+ @description = args[:description] if args.key?(:description)
6863
+ @dest_range = args[:dest_range] if args.key?(:dest_range)
6864
+ @id = args[:id] if args.key?(:id)
6865
+ @kind = args[:kind] if args.key?(:kind)
6866
+ @name = args[:name] if args.key?(:name)
6867
+ @network = args[:network] if args.key?(:network)
6868
+ @next_hop_gateway = args[:next_hop_gateway] if args.key?(:next_hop_gateway)
6869
+ @next_hop_instance = args[:next_hop_instance] if args.key?(:next_hop_instance)
6870
+ @next_hop_ip = args[:next_hop_ip] if args.key?(:next_hop_ip)
6871
+ @next_hop_network = args[:next_hop_network] if args.key?(:next_hop_network)
6872
+ @next_hop_vpn_tunnel = args[:next_hop_vpn_tunnel] if args.key?(:next_hop_vpn_tunnel)
6873
+ @priority = args[:priority] if args.key?(:priority)
6874
+ @self_link = args[:self_link] if args.key?(:self_link)
6875
+ @tags = args[:tags] if args.key?(:tags)
6876
+ @warnings = args[:warnings] if args.key?(:warnings)
6877
+ end
6878
+
6879
+ #
6880
+ class Warning
6881
+ include Google::Apis::Core::Hashable
6882
+
6883
+ # [Output Only] A warning code, if applicable. For example, Compute Engine
6884
+ # returns NO_RESULTS_ON_PAGE if there are no results in the response.
6885
+ # Corresponds to the JSON property `code`
6886
+ # @return [String]
6887
+ attr_accessor :code
6888
+
6889
+ # [Output Only] Metadata about this warning in key: value format. For example:
6890
+ # "data": [ ` "key": "scope", "value": "zones/us-east1-d" `
6891
+ # Corresponds to the JSON property `data`
6892
+ # @return [Array<Google::Apis::ComputeV1::Route::Warning::Datum>]
6893
+ attr_accessor :data
6894
+
6895
+ # [Output Only] A human-readable description of the warning code.
6896
+ # Corresponds to the JSON property `message`
6897
+ # @return [String]
6898
+ attr_accessor :message
6899
+
6900
+ def initialize(**args)
6901
+ update!(**args)
6902
+ end
6903
+
6904
+ # Update properties of this object
6905
+ def update!(**args)
6906
+ @code = args[:code] if args.key?(:code)
6907
+ @data = args[:data] if args.key?(:data)
6908
+ @message = args[:message] if args.key?(:message)
6909
+ end
6910
+
6911
+ #
6912
+ class Datum
6913
+ include Google::Apis::Core::Hashable
6914
+
6915
+ # [Output Only] A key that provides more detail on the warning being returned.
6916
+ # For example, for warnings where there are no results in a list request for a
6917
+ # particular zone, this key might be scope and the key value might be the zone
6918
+ # name. Other examples might be a key indicating a deprecated resource and a
6919
+ # suggested replacement, or a warning about invalid network settings (for
6920
+ # example, if an instance attempts to perform IP forwarding but is not enabled
6921
+ # for IP forwarding).
6922
+ # Corresponds to the JSON property `key`
6923
+ # @return [String]
6924
+ attr_accessor :key
6925
+
6926
+ # [Output Only] A warning data value corresponding to the key.
6927
+ # Corresponds to the JSON property `value`
6928
+ # @return [String]
6929
+ attr_accessor :value
6930
+
6931
+ def initialize(**args)
6932
+ update!(**args)
6933
+ end
6934
+
6935
+ # Update properties of this object
6936
+ def update!(**args)
6937
+ @key = args[:key] if args.key?(:key)
6938
+ @value = args[:value] if args.key?(:value)
6939
+ end
6940
+ end
6941
+ end
6942
+ end
6943
+
6944
+ # Contains a list of Route resources.
6945
+ class RouteList
6946
+ include Google::Apis::Core::Hashable
6947
+
6948
+ # [Output Only] Unique identifier for the resource. Defined by the server.
6949
+ # Corresponds to the JSON property `id`
6950
+ # @return [String]
6951
+ attr_accessor :id
6952
+
6953
+ # [Output Only] A list of Route resources.
6954
+ # Corresponds to the JSON property `items`
6955
+ # @return [Array<Google::Apis::ComputeV1::Route>]
6956
+ attr_accessor :items
6957
+
6958
+ # Type of resource.
6959
+ # Corresponds to the JSON property `kind`
6960
+ # @return [String]
6961
+ attr_accessor :kind
6962
+
6963
+ # [Output Only] This token allows you to get the next page of results for list
6964
+ # requests. If the number of results is larger than maxResults, use the
6965
+ # nextPageToken as a value for the query parameter pageToken in the next list
6966
+ # request. Subsequent list requests will have their own nextPageToken to
6967
+ # continue paging through the results.
6968
+ # Corresponds to the JSON property `nextPageToken`
6969
+ # @return [String]
6970
+ attr_accessor :next_page_token
6971
+
6972
+ # [Output Only] Server-defined URL for this resource.
6973
+ # Corresponds to the JSON property `selfLink`
6974
+ # @return [String]
6975
+ attr_accessor :self_link
6976
+
6977
+ def initialize(**args)
6978
+ update!(**args)
6979
+ end
6980
+
6981
+ # Update properties of this object
6982
+ def update!(**args)
6983
+ @id = args[:id] if args.key?(:id)
6984
+ @items = args[:items] if args.key?(:items)
6985
+ @kind = args[:kind] if args.key?(:kind)
6986
+ @next_page_token = args[:next_page_token] if args.key?(:next_page_token)
6987
+ @self_link = args[:self_link] if args.key?(:self_link)
6988
+ end
6989
+ end
6990
+
6991
+ # Router resource.
6992
+ class Router
6993
+ include Google::Apis::Core::Hashable
6994
+
6995
+ # BGP information specific to this router.
6996
+ # Corresponds to the JSON property `bgp`
6997
+ # @return [Google::Apis::ComputeV1::RouterBgp]
6998
+ attr_accessor :bgp
6999
+
7000
+ # BGP information that needs to be configured into the routing stack to
7001
+ # establish the BGP peering. It must specify peer ASN and either interface name,
7002
+ # IP, or peer IP. Please refer to RFC4273.
7003
+ # Corresponds to the JSON property `bgpPeers`
7004
+ # @return [Array<Google::Apis::ComputeV1::RouterBgpPeer>]
7005
+ attr_accessor :bgp_peers
7006
+
7007
+ # [Output Only] Creation timestamp in RFC3339 text format.
7008
+ # Corresponds to the JSON property `creationTimestamp`
7009
+ # @return [String]
7010
+ attr_accessor :creation_timestamp
7011
+
7012
+ # An optional description of this resource. Provide this property when you
7013
+ # create the resource.
7014
+ # Corresponds to the JSON property `description`
7015
+ # @return [String]
7016
+ attr_accessor :description
7017
+
7018
+ # [Output Only] The unique identifier for the resource. This identifier is
7019
+ # defined by the server.
7020
+ # Corresponds to the JSON property `id`
7021
+ # @return [String]
7022
+ attr_accessor :id
7023
+
7024
+ # Router interfaces. Each interface requires either one linked resource (e.g.
7025
+ # linkedVpnTunnel) or IP address and IP address range (e.g. ipRange).
7026
+ # Corresponds to the JSON property `interfaces`
7027
+ # @return [Array<Google::Apis::ComputeV1::RouterInterface>]
7028
+ attr_accessor :interfaces
7029
+
7030
+ # [Output Only] Type of resource. Always compute#router for routers.
7031
+ # Corresponds to the JSON property `kind`
7032
+ # @return [String]
7033
+ attr_accessor :kind
7034
+
7035
+ # Name of the resource. Provided by the client when the resource is created. The
7036
+ # name must be 1-63 characters long, and comply with RFC1035. Specifically, the
7037
+ # name must be 1-63 characters long and match the regular expression [a-z]([-a-
7038
+ # z0-9]*[a-z0-9])? which means the first character must be a lowercase letter,
7039
+ # and all following characters must be a dash, lowercase letter, or digit,
7040
+ # except the last character, which cannot be a dash.
7041
+ # Corresponds to the JSON property `name`
7042
+ # @return [String]
7043
+ attr_accessor :name
7044
+
7045
+ # URI of the network to which this router belongs.
7046
+ # Corresponds to the JSON property `network`
7047
+ # @return [String]
7048
+ attr_accessor :network
7049
+
7050
+ # [Output Only] URI of the region where the router resides.
7051
+ # Corresponds to the JSON property `region`
7052
+ # @return [String]
7053
+ attr_accessor :region
7054
+
7055
+ # [Output Only] Server-defined URL for the resource.
7056
+ # Corresponds to the JSON property `selfLink`
7057
+ # @return [String]
7058
+ attr_accessor :self_link
7059
+
7060
+ def initialize(**args)
7061
+ update!(**args)
7062
+ end
7063
+
7064
+ # Update properties of this object
7065
+ def update!(**args)
7066
+ @bgp = args[:bgp] if args.key?(:bgp)
7067
+ @bgp_peers = args[:bgp_peers] if args.key?(:bgp_peers)
7068
+ @creation_timestamp = args[:creation_timestamp] if args.key?(:creation_timestamp)
7069
+ @description = args[:description] if args.key?(:description)
7070
+ @id = args[:id] if args.key?(:id)
7071
+ @interfaces = args[:interfaces] if args.key?(:interfaces)
7072
+ @kind = args[:kind] if args.key?(:kind)
7073
+ @name = args[:name] if args.key?(:name)
7074
+ @network = args[:network] if args.key?(:network)
7075
+ @region = args[:region] if args.key?(:region)
7076
+ @self_link = args[:self_link] if args.key?(:self_link)
7077
+ end
7078
+ end
7079
+
7080
+ # Contains a list of routers.
7081
+ class RouterAggregatedList
7082
+ include Google::Apis::Core::Hashable
7083
+
7084
+ # [Output Only] The unique identifier for the resource. This identifier is
7085
+ # defined by the server.
7086
+ # Corresponds to the JSON property `id`
7087
+ # @return [String]
7088
+ attr_accessor :id
7089
+
7090
+ # A map of scoped router lists.
7091
+ # Corresponds to the JSON property `items`
7092
+ # @return [Hash<String,Google::Apis::ComputeV1::RoutersScopedList>]
7093
+ attr_accessor :items
7094
+
7095
+ # Type of resource.
7096
+ # Corresponds to the JSON property `kind`
7097
+ # @return [String]
7098
+ attr_accessor :kind
7099
+
7100
+ # [Output Only] This token allows you to get the next page of results for list
7101
+ # requests. If the number of results is larger than maxResults, use the
7102
+ # nextPageToken as a value for the query parameter pageToken in the next list
7103
+ # request. Subsequent list requests will have their own nextPageToken to
7104
+ # continue paging through the results.
7105
+ # Corresponds to the JSON property `nextPageToken`
7106
+ # @return [String]
7107
+ attr_accessor :next_page_token
7108
+
7109
+ # [Output Only] Server-defined URL for this resource.
7110
+ # Corresponds to the JSON property `selfLink`
7111
+ # @return [String]
7112
+ attr_accessor :self_link
7113
+
7114
+ def initialize(**args)
7115
+ update!(**args)
7116
+ end
7117
+
7118
+ # Update properties of this object
7119
+ def update!(**args)
7120
+ @id = args[:id] if args.key?(:id)
7121
+ @items = args[:items] if args.key?(:items)
7122
+ @kind = args[:kind] if args.key?(:kind)
7123
+ @next_page_token = args[:next_page_token] if args.key?(:next_page_token)
7124
+ @self_link = args[:self_link] if args.key?(:self_link)
7125
+ end
7126
+ end
7127
+
7128
+ #
7129
+ class RouterBgp
7130
+ include Google::Apis::Core::Hashable
7131
+
7132
+ # Local BGP Autonomous System Number (ASN). Must be an RFC6996 private ASN,
7133
+ # either 16-bit or 32-bit. The value will be fixed for this router resource. All
7134
+ # VPN tunnels that link to this router will have the same local ASN.
7135
+ # Corresponds to the JSON property `asn`
7136
+ # @return [Fixnum]
7137
+ attr_accessor :asn
7138
+
7139
+ def initialize(**args)
7140
+ update!(**args)
7141
+ end
7142
+
7143
+ # Update properties of this object
7144
+ def update!(**args)
7145
+ @asn = args[:asn] if args.key?(:asn)
7146
+ end
7147
+ end
7148
+
7149
+ #
7150
+ class RouterBgpPeer
7151
+ include Google::Apis::Core::Hashable
7152
+
7153
+ # The priority of routes advertised to this BGP peer. In the case where there is
7154
+ # more than one matching route of maximum length, the routes with lowest
7155
+ # priority value win.
7156
+ # Corresponds to the JSON property `advertisedRoutePriority`
7157
+ # @return [Fixnum]
7158
+ attr_accessor :advertised_route_priority
7159
+
7160
+ # Name of the interface the BGP peer is associated with.
7161
+ # Corresponds to the JSON property `interfaceName`
7162
+ # @return [String]
7163
+ attr_accessor :interface_name
7164
+
7165
+ # IP address of the interface inside Google Cloud Platform.
7166
+ # Corresponds to the JSON property `ipAddress`
7167
+ # @return [String]
7168
+ attr_accessor :ip_address
7169
+
7170
+ # Name of this BGP peer. The name must be 1-63 characters long and comply with
7171
+ # RFC1035.
7172
+ # Corresponds to the JSON property `name`
7173
+ # @return [String]
7174
+ attr_accessor :name
7175
+
7176
+ # Peer BGP Autonomous System Number (ASN). For VPN use case, this value can be
7177
+ # different for every tunnel.
7178
+ # Corresponds to the JSON property `peerAsn`
7179
+ # @return [Fixnum]
7180
+ attr_accessor :peer_asn
7181
+
7182
+ # IP address of the BGP interface outside Google cloud.
7183
+ # Corresponds to the JSON property `peerIpAddress`
7184
+ # @return [String]
7185
+ attr_accessor :peer_ip_address
7186
+
7187
+ def initialize(**args)
7188
+ update!(**args)
7189
+ end
7190
+
7191
+ # Update properties of this object
7192
+ def update!(**args)
7193
+ @advertised_route_priority = args[:advertised_route_priority] if args.key?(:advertised_route_priority)
7194
+ @interface_name = args[:interface_name] if args.key?(:interface_name)
7195
+ @ip_address = args[:ip_address] if args.key?(:ip_address)
7196
+ @name = args[:name] if args.key?(:name)
7197
+ @peer_asn = args[:peer_asn] if args.key?(:peer_asn)
7198
+ @peer_ip_address = args[:peer_ip_address] if args.key?(:peer_ip_address)
7199
+ end
7200
+ end
7201
+
7202
+ #
7203
+ class RouterInterface
7204
+ include Google::Apis::Core::Hashable
7205
+
7206
+ # IP address and range of the interface. The IP range must be in the RFC3927
7207
+ # link-local IP space. The value must be a CIDR-formatted string, for example:
7208
+ # 169.254.0.1/30. NOTE: Do not truncate the address as it represents the IP
7209
+ # address of the interface.
7210
+ # Corresponds to the JSON property `ipRange`
7211
+ # @return [String]
7212
+ attr_accessor :ip_range
7213
+
7214
+ # URI of linked VPN tunnel. It must be in the same region as the router. Each
7215
+ # interface can have at most one linked resource.
7216
+ # Corresponds to the JSON property `linkedVpnTunnel`
7217
+ # @return [String]
7218
+ attr_accessor :linked_vpn_tunnel
7219
+
7220
+ # Name of this interface entry. The name must be 1-63 characters long and comply
7221
+ # with RFC1035.
7222
+ # Corresponds to the JSON property `name`
7223
+ # @return [String]
7224
+ attr_accessor :name
7225
+
7226
+ def initialize(**args)
7227
+ update!(**args)
7228
+ end
7229
+
7230
+ # Update properties of this object
7231
+ def update!(**args)
7232
+ @ip_range = args[:ip_range] if args.key?(:ip_range)
7233
+ @linked_vpn_tunnel = args[:linked_vpn_tunnel] if args.key?(:linked_vpn_tunnel)
7234
+ @name = args[:name] if args.key?(:name)
7235
+ end
7236
+ end
7237
+
7238
+ # Contains a list of Router resources.
7239
+ class RouterList
7240
+ include Google::Apis::Core::Hashable
7241
+
7242
+ # [Output Only] The unique identifier for the resource. This identifier is
7243
+ # defined by the server.
7244
+ # Corresponds to the JSON property `id`
7245
+ # @return [String]
7246
+ attr_accessor :id
7247
+
7248
+ # A list of Router resources.
7249
+ # Corresponds to the JSON property `items`
7250
+ # @return [Array<Google::Apis::ComputeV1::Router>]
7251
+ attr_accessor :items
7252
+
7253
+ # [Output Only] Type of resource. Always compute#router for routers.
7254
+ # Corresponds to the JSON property `kind`
7255
+ # @return [String]
7256
+ attr_accessor :kind
7257
+
7258
+ # [Output Only] This token allows you to get the next page of results for list
7259
+ # requests. If the number of results is larger than maxResults, use the
7260
+ # nextPageToken as a value for the query parameter pageToken in the next list
7261
+ # request. Subsequent list requests will have their own nextPageToken to
7262
+ # continue paging through the results.
7263
+ # Corresponds to the JSON property `nextPageToken`
7264
+ # @return [String]
7265
+ attr_accessor :next_page_token
7266
+
7267
+ # [Output Only] Server-defined URL for the resource.
7268
+ # Corresponds to the JSON property `selfLink`
7269
+ # @return [String]
7270
+ attr_accessor :self_link
7271
+
7272
+ def initialize(**args)
7273
+ update!(**args)
7274
+ end
7275
+
7276
+ # Update properties of this object
7277
+ def update!(**args)
7278
+ @id = args[:id] if args.key?(:id)
7279
+ @items = args[:items] if args.key?(:items)
7280
+ @kind = args[:kind] if args.key?(:kind)
7281
+ @next_page_token = args[:next_page_token] if args.key?(:next_page_token)
7282
+ @self_link = args[:self_link] if args.key?(:self_link)
7283
+ end
7284
+ end
7285
+
7286
+ #
7287
+ class RouterStatus
7288
+ include Google::Apis::Core::Hashable
7289
+
7290
+ # Best routes for this router's network.
7291
+ # Corresponds to the JSON property `bestRoutes`
7292
+ # @return [Array<Google::Apis::ComputeV1::Route>]
7293
+ attr_accessor :best_routes
7294
+
7295
+ #
7296
+ # Corresponds to the JSON property `bgpPeerStatus`
7297
+ # @return [Array<Google::Apis::ComputeV1::RouterStatusBgpPeerStatus>]
7298
+ attr_accessor :bgp_peer_status
7299
+
7300
+ # URI of the network to which this router belongs.
7301
+ # Corresponds to the JSON property `network`
7302
+ # @return [String]
7303
+ attr_accessor :network
7304
+
7305
+ def initialize(**args)
7306
+ update!(**args)
7307
+ end
7308
+
7309
+ # Update properties of this object
7310
+ def update!(**args)
7311
+ @best_routes = args[:best_routes] if args.key?(:best_routes)
7312
+ @bgp_peer_status = args[:bgp_peer_status] if args.key?(:bgp_peer_status)
7313
+ @network = args[:network] if args.key?(:network)
7314
+ end
7315
+ end
7316
+
7317
+ #
7318
+ class RouterStatusBgpPeerStatus
7319
+ include Google::Apis::Core::Hashable
7320
+
7321
+ # Routes that were advertised to the remote BGP peer
7322
+ # Corresponds to the JSON property `advertisedRoutes`
7323
+ # @return [Array<Google::Apis::ComputeV1::Route>]
7324
+ attr_accessor :advertised_routes
7325
+
7326
+ # IP address of the local BGP interface.
7327
+ # Corresponds to the JSON property `ipAddress`
7328
+ # @return [String]
7329
+ attr_accessor :ip_address
7330
+
7331
+ # URL of the VPN tunnel that this BGP peer controls.
7332
+ # Corresponds to the JSON property `linkedVpnTunnel`
7333
+ # @return [String]
7334
+ attr_accessor :linked_vpn_tunnel
7335
+
7336
+ # Name of this BGP peer. Unique within the Routers resource.
7337
+ # Corresponds to the JSON property `name`
7338
+ # @return [String]
7339
+ attr_accessor :name
7340
+
7341
+ # Number of routes learned from the remote BGP Peer.
7342
+ # Corresponds to the JSON property `numLearnedRoutes`
7343
+ # @return [Fixnum]
7344
+ attr_accessor :num_learned_routes
7345
+
7346
+ # IP address of the remote BGP interface.
7347
+ # Corresponds to the JSON property `peerIpAddress`
7348
+ # @return [String]
7349
+ attr_accessor :peer_ip_address
7350
+
7351
+ # BGP state as specified in RFC1771.
7352
+ # Corresponds to the JSON property `state`
7353
+ # @return [String]
7354
+ attr_accessor :state
7355
+
7356
+ # Status of the BGP peer: `UP, DOWN`
7357
+ # Corresponds to the JSON property `status`
7358
+ # @return [String]
7359
+ attr_accessor :status
7360
+
7361
+ # Time this session has been up. Format: 14 years, 51 weeks, 6 days, 23 hours,
7362
+ # 59 minutes, 59 seconds
7363
+ # Corresponds to the JSON property `uptime`
7364
+ # @return [String]
7365
+ attr_accessor :uptime
7366
+
7367
+ # Time this session has been up, in seconds. Format: 145
7368
+ # Corresponds to the JSON property `uptimeSeconds`
7369
+ # @return [String]
7370
+ attr_accessor :uptime_seconds
7371
+
7372
+ def initialize(**args)
7373
+ update!(**args)
7374
+ end
7375
+
7376
+ # Update properties of this object
7377
+ def update!(**args)
7378
+ @advertised_routes = args[:advertised_routes] if args.key?(:advertised_routes)
7379
+ @ip_address = args[:ip_address] if args.key?(:ip_address)
7380
+ @linked_vpn_tunnel = args[:linked_vpn_tunnel] if args.key?(:linked_vpn_tunnel)
7381
+ @name = args[:name] if args.key?(:name)
7382
+ @num_learned_routes = args[:num_learned_routes] if args.key?(:num_learned_routes)
7383
+ @peer_ip_address = args[:peer_ip_address] if args.key?(:peer_ip_address)
7384
+ @state = args[:state] if args.key?(:state)
7385
+ @status = args[:status] if args.key?(:status)
7386
+ @uptime = args[:uptime] if args.key?(:uptime)
7387
+ @uptime_seconds = args[:uptime_seconds] if args.key?(:uptime_seconds)
7388
+ end
7389
+ end
7390
+
7391
+ #
7392
+ class RouterStatusResponse
7393
+ include Google::Apis::Core::Hashable
7394
+
7395
+ # Type of resource.
7396
+ # Corresponds to the JSON property `kind`
7397
+ # @return [String]
7398
+ attr_accessor :kind
7399
+
7400
+ #
7401
+ # Corresponds to the JSON property `result`
7402
+ # @return [Google::Apis::ComputeV1::RouterStatus]
7403
+ attr_accessor :result
7404
+
7405
+ def initialize(**args)
7406
+ update!(**args)
7407
+ end
7408
+
7409
+ # Update properties of this object
7410
+ def update!(**args)
7411
+ @kind = args[:kind] if args.key?(:kind)
7412
+ @result = args[:result] if args.key?(:result)
7413
+ end
7414
+ end
7415
+
7416
+ #
7417
+ class RoutersPreviewResponse
7418
+ include Google::Apis::Core::Hashable
7419
+
7420
+ # Router resource.
7421
+ # Corresponds to the JSON property `resource`
7422
+ # @return [Google::Apis::ComputeV1::Router]
7423
+ attr_accessor :resource
7424
+
7425
+ def initialize(**args)
7426
+ update!(**args)
7427
+ end
7428
+
7429
+ # Update properties of this object
7430
+ def update!(**args)
7431
+ @resource = args[:resource] if args.key?(:resource)
7432
+ end
7433
+ end
7434
+
7435
+ #
7436
+ class RoutersScopedList
7437
+ include Google::Apis::Core::Hashable
7438
+
7439
+ # List of routers contained in this scope.
7440
+ # Corresponds to the JSON property `routers`
7441
+ # @return [Array<Google::Apis::ComputeV1::Router>]
7442
+ attr_accessor :routers
7443
+
7444
+ # Informational warning which replaces the list of routers when the list is
7445
+ # empty.
7446
+ # Corresponds to the JSON property `warning`
7447
+ # @return [Google::Apis::ComputeV1::RoutersScopedList::Warning]
7448
+ attr_accessor :warning
7449
+
7450
+ def initialize(**args)
7451
+ update!(**args)
7452
+ end
7453
+
7454
+ # Update properties of this object
7455
+ def update!(**args)
7456
+ @routers = args[:routers] if args.key?(:routers)
7457
+ @warning = args[:warning] if args.key?(:warning)
6300
7458
  end
6301
7459
 
6302
- #
7460
+ # Informational warning which replaces the list of routers when the list is
7461
+ # empty.
6303
7462
  class Warning
6304
7463
  include Google::Apis::Core::Hashable
6305
7464
 
@@ -6312,7 +7471,7 @@ module Google
6312
7471
  # [Output Only] Metadata about this warning in key: value format. For example:
6313
7472
  # "data": [ ` "key": "scope", "value": "zones/us-east1-d" `
6314
7473
  # Corresponds to the JSON property `data`
6315
- # @return [Array<Google::Apis::ComputeV1::Route::Warning::Datum>]
7474
+ # @return [Array<Google::Apis::ComputeV1::RoutersScopedList::Warning::Datum>]
6316
7475
  attr_accessor :data
6317
7476
 
6318
7477
  # [Output Only] A human-readable description of the warning code.
@@ -6364,38 +7523,41 @@ module Google
6364
7523
  end
6365
7524
  end
6366
7525
 
6367
- # Contains a list of Route resources.
6368
- class RouteList
7526
+ #
7527
+ class SslHealthCheck
6369
7528
  include Google::Apis::Core::Hashable
6370
7529
 
6371
- # [Output Only] Unique identifier for the resource. Defined by the server.
6372
- # Corresponds to the JSON property `id`
6373
- # @return [String]
6374
- attr_accessor :id
7530
+ # The TCP port number for the health check request. The default value is 443.
7531
+ # Corresponds to the JSON property `port`
7532
+ # @return [Fixnum]
7533
+ attr_accessor :port
6375
7534
 
6376
- # [Output Only] A list of Route resources.
6377
- # Corresponds to the JSON property `items`
6378
- # @return [Array<Google::Apis::ComputeV1::Route>]
6379
- attr_accessor :items
7535
+ # Port name as defined in InstanceGroup#NamedPort#name. If both port and
7536
+ # port_name are defined, port takes precedence.
7537
+ # Corresponds to the JSON property `portName`
7538
+ # @return [String]
7539
+ attr_accessor :port_name
6380
7540
 
6381
- # Type of resource.
6382
- # Corresponds to the JSON property `kind`
7541
+ # Specifies the type of proxy header to append before sending data to the
7542
+ # backend, either NONE or PROXY_V1. The default is NONE.
7543
+ # Corresponds to the JSON property `proxyHeader`
6383
7544
  # @return [String]
6384
- attr_accessor :kind
7545
+ attr_accessor :proxy_header
6385
7546
 
6386
- # [Output Only] This token allows you to get the next page of results for list
6387
- # requests. If the number of results is larger than maxResults, use the
6388
- # nextPageToken as a value for the query parameter pageToken in the next list
6389
- # request. Subsequent list requests will have their own nextPageToken to
6390
- # continue paging through the results.
6391
- # Corresponds to the JSON property `nextPageToken`
7547
+ # The application data to send once the SSL connection has been established (
7548
+ # default value is empty). If both request and response are empty, the
7549
+ # connection establishment alone will indicate health. The request data can only
7550
+ # be ASCII.
7551
+ # Corresponds to the JSON property `request`
6392
7552
  # @return [String]
6393
- attr_accessor :next_page_token
7553
+ attr_accessor :request
6394
7554
 
6395
- # [Output Only] Server-defined URL for this resource.
6396
- # Corresponds to the JSON property `selfLink`
7555
+ # The bytes to match against the beginning of the response data. If left empty (
7556
+ # the default value), any response will indicate health. The response data can
7557
+ # only be ASCII.
7558
+ # Corresponds to the JSON property `response`
6397
7559
  # @return [String]
6398
- attr_accessor :self_link
7560
+ attr_accessor :response
6399
7561
 
6400
7562
  def initialize(**args)
6401
7563
  update!(**args)
@@ -6403,11 +7565,11 @@ module Google
6403
7565
 
6404
7566
  # Update properties of this object
6405
7567
  def update!(**args)
6406
- @id = args[:id] if args.key?(:id)
6407
- @items = args[:items] if args.key?(:items)
6408
- @kind = args[:kind] if args.key?(:kind)
6409
- @next_page_token = args[:next_page_token] if args.key?(:next_page_token)
6410
- @self_link = args[:self_link] if args.key?(:self_link)
7568
+ @port = args[:port] if args.key?(:port)
7569
+ @port_name = args[:port_name] if args.key?(:port_name)
7570
+ @proxy_header = args[:proxy_header] if args.key?(:proxy_header)
7571
+ @request = args[:request] if args.key?(:request)
7572
+ @response = args[:response] if args.key?(:response)
6411
7573
  end
6412
7574
  end
6413
7575
 
@@ -6561,11 +7723,21 @@ module Google
6561
7723
  # @return [String]
6562
7724
  attr_accessor :self_link
6563
7725
 
7726
+ # Represents a customer-supplied encryption key
7727
+ # Corresponds to the JSON property `snapshotEncryptionKey`
7728
+ # @return [Google::Apis::ComputeV1::CustomerEncryptionKey]
7729
+ attr_accessor :snapshot_encryption_key
7730
+
6564
7731
  # [Output Only] The source disk used to create this snapshot.
6565
7732
  # Corresponds to the JSON property `sourceDisk`
6566
7733
  # @return [String]
6567
7734
  attr_accessor :source_disk
6568
7735
 
7736
+ # Represents a customer-supplied encryption key
7737
+ # Corresponds to the JSON property `sourceDiskEncryptionKey`
7738
+ # @return [Google::Apis::ComputeV1::CustomerEncryptionKey]
7739
+ attr_accessor :source_disk_encryption_key
7740
+
6569
7741
  # [Output Only] The ID value of the disk used to create this snapshot. This
6570
7742
  # value may be used to determine whether the snapshot was taken from the current
6571
7743
  # or a previous instance of a given disk name.
@@ -6608,7 +7780,9 @@ module Google
6608
7780
  @licenses = args[:licenses] if args.key?(:licenses)
6609
7781
  @name = args[:name] if args.key?(:name)
6610
7782
  @self_link = args[:self_link] if args.key?(:self_link)
7783
+ @snapshot_encryption_key = args[:snapshot_encryption_key] if args.key?(:snapshot_encryption_key)
6611
7784
  @source_disk = args[:source_disk] if args.key?(:source_disk)
7785
+ @source_disk_encryption_key = args[:source_disk_encryption_key] if args.key?(:source_disk_encryption_key)
6612
7786
  @source_disk_id = args[:source_disk_id] if args.key?(:source_disk_id)
6613
7787
  @status = args[:status] if args.key?(:status)
6614
7788
  @storage_bytes = args[:storage_bytes] if args.key?(:storage_bytes)
@@ -7058,6 +8232,56 @@ module Google
7058
8232
  end
7059
8233
  end
7060
8234
 
8235
+ #
8236
+ class TcpHealthCheck
8237
+ include Google::Apis::Core::Hashable
8238
+
8239
+ # The TCP port number for the health check request. The default value is 80.
8240
+ # Corresponds to the JSON property `port`
8241
+ # @return [Fixnum]
8242
+ attr_accessor :port
8243
+
8244
+ # Port name as defined in InstanceGroup#NamedPort#name. If both port and
8245
+ # port_name are defined, port takes precedence.
8246
+ # Corresponds to the JSON property `portName`
8247
+ # @return [String]
8248
+ attr_accessor :port_name
8249
+
8250
+ # Specifies the type of proxy header to append before sending data to the
8251
+ # backend, either NONE or PROXY_V1. The default is NONE.
8252
+ # Corresponds to the JSON property `proxyHeader`
8253
+ # @return [String]
8254
+ attr_accessor :proxy_header
8255
+
8256
+ # The application data to send once the TCP connection has been established (
8257
+ # default value is empty). If both request and response are empty, the
8258
+ # connection establishment alone will indicate health. The request data can only
8259
+ # be ASCII.
8260
+ # Corresponds to the JSON property `request`
8261
+ # @return [String]
8262
+ attr_accessor :request
8263
+
8264
+ # The bytes to match against the beginning of the response data. If left empty (
8265
+ # the default value), any response will indicate health. The response data can
8266
+ # only be ASCII.
8267
+ # Corresponds to the JSON property `response`
8268
+ # @return [String]
8269
+ attr_accessor :response
8270
+
8271
+ def initialize(**args)
8272
+ update!(**args)
8273
+ end
8274
+
8275
+ # Update properties of this object
8276
+ def update!(**args)
8277
+ @port = args[:port] if args.key?(:port)
8278
+ @port_name = args[:port_name] if args.key?(:port_name)
8279
+ @proxy_header = args[:proxy_header] if args.key?(:proxy_header)
8280
+ @request = args[:request] if args.key?(:request)
8281
+ @response = args[:response] if args.key?(:response)
8282
+ end
8283
+ end
8284
+
7061
8285
  # A set of instance tags.
7062
8286
  class Tags
7063
8287
  include Google::Apis::Core::Hashable
@@ -8057,6 +9281,190 @@ module Google
8057
9281
  end
8058
9282
  end
8059
9283
 
9284
+ #
9285
+ class TargetSslProxiesSetBackendServiceRequest
9286
+ include Google::Apis::Core::Hashable
9287
+
9288
+ # The URL of the new BackendService resource for the targetSslProxy.
9289
+ # Corresponds to the JSON property `service`
9290
+ # @return [String]
9291
+ attr_accessor :service
9292
+
9293
+ def initialize(**args)
9294
+ update!(**args)
9295
+ end
9296
+
9297
+ # Update properties of this object
9298
+ def update!(**args)
9299
+ @service = args[:service] if args.key?(:service)
9300
+ end
9301
+ end
9302
+
9303
+ #
9304
+ class TargetSslProxiesSetProxyHeaderRequest
9305
+ include Google::Apis::Core::Hashable
9306
+
9307
+ # The new type of proxy header to append before sending data to the backend.
9308
+ # NONE or PROXY_V1 are allowed.
9309
+ # Corresponds to the JSON property `proxyHeader`
9310
+ # @return [String]
9311
+ attr_accessor :proxy_header
9312
+
9313
+ def initialize(**args)
9314
+ update!(**args)
9315
+ end
9316
+
9317
+ # Update properties of this object
9318
+ def update!(**args)
9319
+ @proxy_header = args[:proxy_header] if args.key?(:proxy_header)
9320
+ end
9321
+ end
9322
+
9323
+ #
9324
+ class TargetSslProxiesSetSslCertificatesRequest
9325
+ include Google::Apis::Core::Hashable
9326
+
9327
+ # New set of URLs to SslCertificate resources to associate with this
9328
+ # TargetSslProxy. Currently exactly one ssl certificate must be specified.
9329
+ # Corresponds to the JSON property `sslCertificates`
9330
+ # @return [Array<String>]
9331
+ attr_accessor :ssl_certificates
9332
+
9333
+ def initialize(**args)
9334
+ update!(**args)
9335
+ end
9336
+
9337
+ # Update properties of this object
9338
+ def update!(**args)
9339
+ @ssl_certificates = args[:ssl_certificates] if args.key?(:ssl_certificates)
9340
+ end
9341
+ end
9342
+
9343
+ # A TargetSslProxy resource. This resource defines an SSL proxy.
9344
+ class TargetSslProxy
9345
+ include Google::Apis::Core::Hashable
9346
+
9347
+ # [Output Only] Creation timestamp in RFC3339 text format.
9348
+ # Corresponds to the JSON property `creationTimestamp`
9349
+ # @return [String]
9350
+ attr_accessor :creation_timestamp
9351
+
9352
+ # An optional description of this resource. Provide this property when you
9353
+ # create the resource.
9354
+ # Corresponds to the JSON property `description`
9355
+ # @return [String]
9356
+ attr_accessor :description
9357
+
9358
+ # [Output Only] The unique identifier for the resource. This identifier is
9359
+ # defined by the server.
9360
+ # Corresponds to the JSON property `id`
9361
+ # @return [String]
9362
+ attr_accessor :id
9363
+
9364
+ # [Output Only] Type of the resource. Always compute#targetSslProxy for target
9365
+ # SSL proxies.
9366
+ # Corresponds to the JSON property `kind`
9367
+ # @return [String]
9368
+ attr_accessor :kind
9369
+
9370
+ # Name of the resource. Provided by the client when the resource is created. The
9371
+ # name must be 1-63 characters long, and comply with RFC1035. Specifically, the
9372
+ # name must be 1-63 characters long and match the regular expression [a-z]([-a-
9373
+ # z0-9]*[a-z0-9])? which means the first character must be a lowercase letter,
9374
+ # and all following characters must be a dash, lowercase letter, or digit,
9375
+ # except the last character, which cannot be a dash.
9376
+ # Corresponds to the JSON property `name`
9377
+ # @return [String]
9378
+ attr_accessor :name
9379
+
9380
+ # Specifies the type of proxy header to append before sending data to the
9381
+ # backend, either NONE or PROXY_V1. The default is NONE.
9382
+ # Corresponds to the JSON property `proxyHeader`
9383
+ # @return [String]
9384
+ attr_accessor :proxy_header
9385
+
9386
+ # [Output Only] Server-defined URL for the resource.
9387
+ # Corresponds to the JSON property `selfLink`
9388
+ # @return [String]
9389
+ attr_accessor :self_link
9390
+
9391
+ # URL to the BackendService resource.
9392
+ # Corresponds to the JSON property `service`
9393
+ # @return [String]
9394
+ attr_accessor :service
9395
+
9396
+ # URLs to SslCertificate resources that are used to authenticate connections to
9397
+ # Backends. Currently exactly one SSL certificate must be specified.
9398
+ # Corresponds to the JSON property `sslCertificates`
9399
+ # @return [Array<String>]
9400
+ attr_accessor :ssl_certificates
9401
+
9402
+ def initialize(**args)
9403
+ update!(**args)
9404
+ end
9405
+
9406
+ # Update properties of this object
9407
+ def update!(**args)
9408
+ @creation_timestamp = args[:creation_timestamp] if args.key?(:creation_timestamp)
9409
+ @description = args[:description] if args.key?(:description)
9410
+ @id = args[:id] if args.key?(:id)
9411
+ @kind = args[:kind] if args.key?(:kind)
9412
+ @name = args[:name] if args.key?(:name)
9413
+ @proxy_header = args[:proxy_header] if args.key?(:proxy_header)
9414
+ @self_link = args[:self_link] if args.key?(:self_link)
9415
+ @service = args[:service] if args.key?(:service)
9416
+ @ssl_certificates = args[:ssl_certificates] if args.key?(:ssl_certificates)
9417
+ end
9418
+ end
9419
+
9420
+ # Contains a list of TargetSslProxy resources.
9421
+ class TargetSslProxyList
9422
+ include Google::Apis::Core::Hashable
9423
+
9424
+ # [Output Only] The unique identifier for the resource. This identifier is
9425
+ # defined by the server.
9426
+ # Corresponds to the JSON property `id`
9427
+ # @return [String]
9428
+ attr_accessor :id
9429
+
9430
+ # A list of TargetSslProxy resources.
9431
+ # Corresponds to the JSON property `items`
9432
+ # @return [Array<Google::Apis::ComputeV1::TargetSslProxy>]
9433
+ attr_accessor :items
9434
+
9435
+ # Type of resource.
9436
+ # Corresponds to the JSON property `kind`
9437
+ # @return [String]
9438
+ attr_accessor :kind
9439
+
9440
+ # [Output Only] This token allows you to get the next page of results for list
9441
+ # requests. If the number of results is larger than maxResults, use the
9442
+ # nextPageToken as a value for the query parameter pageToken in the next list
9443
+ # request. Subsequent list requests will have their own nextPageToken to
9444
+ # continue paging through the results.
9445
+ # Corresponds to the JSON property `nextPageToken`
9446
+ # @return [String]
9447
+ attr_accessor :next_page_token
9448
+
9449
+ # [Output Only] Server-defined URL for this resource.
9450
+ # Corresponds to the JSON property `selfLink`
9451
+ # @return [String]
9452
+ attr_accessor :self_link
9453
+
9454
+ def initialize(**args)
9455
+ update!(**args)
9456
+ end
9457
+
9458
+ # Update properties of this object
9459
+ def update!(**args)
9460
+ @id = args[:id] if args.key?(:id)
9461
+ @items = args[:items] if args.key?(:items)
9462
+ @kind = args[:kind] if args.key?(:kind)
9463
+ @next_page_token = args[:next_page_token] if args.key?(:next_page_token)
9464
+ @self_link = args[:self_link] if args.key?(:self_link)
9465
+ end
9466
+ end
9467
+
8060
9468
  # Represents a Target VPN gateway resource.
8061
9469
  class TargetVpnGateway
8062
9470
  include Google::Apis::Core::Hashable
@@ -8748,6 +10156,18 @@ module Google
8748
10156
  # @return [String]
8749
10157
  attr_accessor :region
8750
10158
 
10159
+ # Remote traffic selectors to use when establishing the VPN tunnel with peer VPN
10160
+ # gateway. The value should be a CIDR formatted string, for example: 192.168.0.0/
10161
+ # 16. The ranges should be disjoint.
10162
+ # Corresponds to the JSON property `remoteTrafficSelector`
10163
+ # @return [Array<String>]
10164
+ attr_accessor :remote_traffic_selector
10165
+
10166
+ # URL of router resource to be used for dynamic routing.
10167
+ # Corresponds to the JSON property `router`
10168
+ # @return [String]
10169
+ attr_accessor :router
10170
+
8751
10171
  # [Output Only] Server-defined URL for the resource.
8752
10172
  # Corresponds to the JSON property `selfLink`
8753
10173
  # @return [String]
@@ -8791,6 +10211,8 @@ module Google
8791
10211
  @name = args[:name] if args.key?(:name)
8792
10212
  @peer_ip = args[:peer_ip] if args.key?(:peer_ip)
8793
10213
  @region = args[:region] if args.key?(:region)
10214
+ @remote_traffic_selector = args[:remote_traffic_selector] if args.key?(:remote_traffic_selector)
10215
+ @router = args[:router] if args.key?(:router)
8794
10216
  @self_link = args[:self_link] if args.key?(:self_link)
8795
10217
  @shared_secret = args[:shared_secret] if args.key?(:shared_secret)
8796
10218
  @shared_secret_hash = args[:shared_secret_hash] if args.key?(:shared_secret_hash)