google-api-client 0.9.8 → 0.9.15

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