google-apis-compute_v1 0.83.0 → 0.85.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1203,6 +1203,91 @@ module Google
1203
1203
  end
1204
1204
  end
1205
1205
 
1206
+ # This reservation type is specified by total resource amounts (e.g. total count
1207
+ # of CPUs) and can account for multiple instance SKUs. In other words, one can
1208
+ # create instances of varying shapes against this reservation.
1209
+ class AllocationAggregateReservation
1210
+ include Google::Apis::Core::Hashable
1211
+
1212
+ # [Output only] List of resources currently in use.
1213
+ # Corresponds to the JSON property `inUseResources`
1214
+ # @return [Array<Google::Apis::ComputeV1::AllocationAggregateReservationReservedResourceInfo>]
1215
+ attr_accessor :in_use_resources
1216
+
1217
+ # List of reserved resources (CPUs, memory, accelerators).
1218
+ # Corresponds to the JSON property `reservedResources`
1219
+ # @return [Array<Google::Apis::ComputeV1::AllocationAggregateReservationReservedResourceInfo>]
1220
+ attr_accessor :reserved_resources
1221
+
1222
+ # The VM family that all instances scheduled against this reservation must
1223
+ # belong to.
1224
+ # Corresponds to the JSON property `vmFamily`
1225
+ # @return [String]
1226
+ attr_accessor :vm_family
1227
+
1228
+ # The workload type of the instances that will target this reservation.
1229
+ # Corresponds to the JSON property `workloadType`
1230
+ # @return [String]
1231
+ attr_accessor :workload_type
1232
+
1233
+ def initialize(**args)
1234
+ update!(**args)
1235
+ end
1236
+
1237
+ # Update properties of this object
1238
+ def update!(**args)
1239
+ @in_use_resources = args[:in_use_resources] if args.key?(:in_use_resources)
1240
+ @reserved_resources = args[:reserved_resources] if args.key?(:reserved_resources)
1241
+ @vm_family = args[:vm_family] if args.key?(:vm_family)
1242
+ @workload_type = args[:workload_type] if args.key?(:workload_type)
1243
+ end
1244
+ end
1245
+
1246
+ #
1247
+ class AllocationAggregateReservationReservedResourceInfo
1248
+ include Google::Apis::Core::Hashable
1249
+
1250
+ # Properties of accelerator resources in this reservation.
1251
+ # Corresponds to the JSON property `accelerator`
1252
+ # @return [Google::Apis::ComputeV1::AllocationAggregateReservationReservedResourceInfoAccelerator]
1253
+ attr_accessor :accelerator
1254
+
1255
+ def initialize(**args)
1256
+ update!(**args)
1257
+ end
1258
+
1259
+ # Update properties of this object
1260
+ def update!(**args)
1261
+ @accelerator = args[:accelerator] if args.key?(:accelerator)
1262
+ end
1263
+ end
1264
+
1265
+ #
1266
+ class AllocationAggregateReservationReservedResourceInfoAccelerator
1267
+ include Google::Apis::Core::Hashable
1268
+
1269
+ # Number of accelerators of specified type.
1270
+ # Corresponds to the JSON property `acceleratorCount`
1271
+ # @return [Fixnum]
1272
+ attr_accessor :accelerator_count
1273
+
1274
+ # Full or partial URL to accelerator type. e.g. "projects/`PROJECT`/zones/`ZONE`/
1275
+ # acceleratorTypes/ct4l"
1276
+ # Corresponds to the JSON property `acceleratorType`
1277
+ # @return [String]
1278
+ attr_accessor :accelerator_type
1279
+
1280
+ def initialize(**args)
1281
+ update!(**args)
1282
+ end
1283
+
1284
+ # Update properties of this object
1285
+ def update!(**args)
1286
+ @accelerator_count = args[:accelerator_count] if args.key?(:accelerator_count)
1287
+ @accelerator_type = args[:accelerator_type] if args.key?(:accelerator_type)
1288
+ end
1289
+ end
1290
+
1206
1291
  # [Output Only] Contains output only fields.
1207
1292
  class AllocationResourceStatus
1208
1293
  include Google::Apis::Core::Hashable
@@ -1585,6 +1670,12 @@ module Google
1585
1670
  # @return [String]
1586
1671
  attr_accessor :disk_type
1587
1672
 
1673
+ # Whether this disk is using confidential compute mode.
1674
+ # Corresponds to the JSON property `enableConfidentialCompute`
1675
+ # @return [Boolean]
1676
+ attr_accessor :enable_confidential_compute
1677
+ alias_method :enable_confidential_compute?, :enable_confidential_compute
1678
+
1588
1679
  # Labels to apply to this disk. These can be later modified by the disks.
1589
1680
  # setLabels method. This field is only applicable for persistent disks.
1590
1681
  # Corresponds to the JSON property `labels`
@@ -1690,6 +1781,7 @@ module Google
1690
1781
  @disk_name = args[:disk_name] if args.key?(:disk_name)
1691
1782
  @disk_size_gb = args[:disk_size_gb] if args.key?(:disk_size_gb)
1692
1783
  @disk_type = args[:disk_type] if args.key?(:disk_type)
1784
+ @enable_confidential_compute = args[:enable_confidential_compute] if args.key?(:enable_confidential_compute)
1693
1785
  @labels = args[:labels] if args.key?(:labels)
1694
1786
  @licenses = args[:licenses] if args.key?(:licenses)
1695
1787
  @on_update_action = args[:on_update_action] if args.key?(:on_update_action)
@@ -3228,13 +3320,13 @@ module Google
3228
3320
  class BackendService
3229
3321
  include Google::Apis::Core::Hashable
3230
3322
 
3231
- # Lifetime of cookies in seconds. This setting is applicable to external and
3232
- # internal HTTP(S) load balancers and Traffic Director and requires
3233
- # GENERATED_COOKIE or HTTP_COOKIE session affinity. If set to 0, the cookie is
3234
- # non-persistent and lasts only until the end of the browser session (or
3235
- # equivalent). The maximum allowed value is two weeks (1,209,600). Not supported
3236
- # when the backend service is referenced by a URL map that is bound to target
3237
- # gRPC proxy that has validateForProxyless field set to true.
3323
+ # Lifetime of cookies in seconds. This setting is applicable to Application Load
3324
+ # Balancers and Traffic Director and requires GENERATED_COOKIE or HTTP_COOKIE
3325
+ # session affinity. If set to 0, the cookie is non-persistent and lasts only
3326
+ # until the end of the browser session (or equivalent). The maximum allowed
3327
+ # value is two weeks (1,209,600). Not supported when the backend service is
3328
+ # referenced by a URL map that is bound to target gRPC proxy that has
3329
+ # validateForProxyless field set to true.
3238
3330
  # Corresponds to the JSON property `affinityCookieTtlSec`
3239
3331
  # @return [Fixnum]
3240
3332
  attr_accessor :affinity_cookie_ttl_sec
@@ -3305,23 +3397,23 @@ module Google
3305
3397
  # @return [String]
3306
3398
  attr_accessor :edge_security_policy
3307
3399
 
3308
- # If true, enables Cloud CDN for the backend service of an external HTTP(S) load
3309
- # balancer.
3400
+ # If true, enables Cloud CDN for the backend service of a global external
3401
+ # Application Load Balancer.
3310
3402
  # Corresponds to the JSON property `enableCDN`
3311
3403
  # @return [Boolean]
3312
3404
  attr_accessor :enable_cdn
3313
3405
  alias_method :enable_cdn?, :enable_cdn
3314
3406
 
3315
- # For load balancers that have configurable failover: [Internal TCP/UDP Load
3316
- # Balancing](https://cloud.google.com/load-balancing/docs/internal/failover-
3317
- # overview) and [external TCP/UDP Load Balancing](https://cloud.google.com/load-
3318
- # balancing/docs/network/networklb-failover-overview). On failover or failback,
3319
- # this field indicates whether connection draining will be honored. Google Cloud
3320
- # has a fixed connection draining timeout of 10 minutes. A setting of true
3321
- # terminates existing TCP connections to the active pool during failover and
3322
- # failback, immediately draining traffic. A setting of false allows existing TCP
3323
- # connections to persist, even on VMs no longer in the active pool, for up to
3324
- # the duration of the connection draining timeout (10 minutes).
3407
+ # For load balancers that have configurable failover: [Internal passthrough
3408
+ # Network Load Balancers](https://cloud.google.com/load-balancing/docs/internal/
3409
+ # failover-overview) and [external passthrough Network Load Balancers](https://
3410
+ # cloud.google.com/load-balancing/docs/network/networklb-failover-overview). On
3411
+ # failover or failback, this field indicates whether connection draining will be
3412
+ # honored. Google Cloud has a fixed connection draining timeout of 10 minutes. A
3413
+ # setting of true terminates existing TCP connections to the active pool during
3414
+ # failover and failback, immediately draining traffic. A setting of false allows
3415
+ # existing TCP connections to persist, even on VMs no longer in the active pool,
3416
+ # for up to the duration of the connection draining timeout (10 minutes).
3325
3417
  # Corresponds to the JSON property `failoverPolicy`
3326
3418
  # @return [Google::Apis::ComputeV1::BackendServiceFailoverPolicy]
3327
3419
  attr_accessor :failover_policy
@@ -3454,8 +3546,8 @@ module Google
3454
3546
  attr_accessor :outlier_detection
3455
3547
 
3456
3548
  # Deprecated in favor of portName. The TCP port to connect on the backend. The
3457
- # default value is 80. For Internal TCP/UDP Load Balancing and Network Load
3458
- # Balancing, omit port.
3549
+ # default value is 80. For internal passthrough Network Load Balancers and
3550
+ # external passthrough Network Load Balancers, omit port.
3459
3551
  # Corresponds to the JSON property `port`
3460
3552
  # @return [Fixnum]
3461
3553
  attr_accessor :port
@@ -3464,8 +3556,8 @@ module Google
3464
3556
  # communication to the backend VMs in that group. The named port must be [
3465
3557
  # defined on each backend instance group](https://cloud.google.com/load-
3466
3558
  # balancing/docs/backend-service#named_ports). This parameter has no meaning if
3467
- # the backends are NEGs. For Internal TCP/UDP Load Balancing and Network Load
3468
- # Balancing, omit port_name.
3559
+ # the backends are NEGs. For internal passthrough Network Load Balancers and
3560
+ # external passthrough Network Load Balancers, omit port_name.
3469
3561
  # Corresponds to the JSON property `portName`
3470
3562
  # @return [String]
3471
3563
  attr_accessor :port_name
@@ -3947,20 +4039,20 @@ module Google
3947
4039
  # @return [String]
3948
4040
  attr_accessor :connection_persistence_on_unhealthy_backends
3949
4041
 
3950
- # Enable Strong Session Affinity for Network Load Balancing. This option is not
3951
- # available publicly.
4042
+ # Enable Strong Session Affinity for external passthrough Network Load Balancers.
4043
+ # This option is not available publicly.
3952
4044
  # Corresponds to the JSON property `enableStrongAffinity`
3953
4045
  # @return [Boolean]
3954
4046
  attr_accessor :enable_strong_affinity
3955
4047
  alias_method :enable_strong_affinity?, :enable_strong_affinity
3956
4048
 
3957
4049
  # Specifies how long to keep a Connection Tracking entry while there is no
3958
- # matching traffic (in seconds). For Internal TCP/UDP Load Balancing: - The
3959
- # minimum (default) is 10 minutes and the maximum is 16 hours. - It can be set
3960
- # only if Connection Tracking is less than 5-tuple (i.e. Session Affinity is
3961
- # CLIENT_IP_NO_DESTINATION, CLIENT_IP or CLIENT_IP_PROTO, and Tracking Mode is
3962
- # PER_SESSION). For Network Load Balancer the default is 60 seconds. This option
3963
- # is not available publicly.
4050
+ # matching traffic (in seconds). For internal passthrough Network Load Balancers:
4051
+ # - The minimum (default) is 10 minutes and the maximum is 16 hours. - It can
4052
+ # be set only if Connection Tracking is less than 5-tuple (i.e. Session Affinity
4053
+ # is CLIENT_IP_NO_DESTINATION, CLIENT_IP or CLIENT_IP_PROTO, and Tracking Mode
4054
+ # is PER_SESSION). For external passthrough Network Load Balancers the default
4055
+ # is 60 seconds. This option is not available publicly.
3964
4056
  # Corresponds to the JSON property `idleTimeoutSec`
3965
4057
  # @return [Fixnum]
3966
4058
  attr_accessor :idle_timeout_sec
@@ -3991,16 +4083,16 @@ module Google
3991
4083
  end
3992
4084
  end
3993
4085
 
3994
- # For load balancers that have configurable failover: [Internal TCP/UDP Load
3995
- # Balancing](https://cloud.google.com/load-balancing/docs/internal/failover-
3996
- # overview) and [external TCP/UDP Load Balancing](https://cloud.google.com/load-
3997
- # balancing/docs/network/networklb-failover-overview). On failover or failback,
3998
- # this field indicates whether connection draining will be honored. Google Cloud
3999
- # has a fixed connection draining timeout of 10 minutes. A setting of true
4000
- # terminates existing TCP connections to the active pool during failover and
4001
- # failback, immediately draining traffic. A setting of false allows existing TCP
4002
- # connections to persist, even on VMs no longer in the active pool, for up to
4003
- # the duration of the connection draining timeout (10 minutes).
4086
+ # For load balancers that have configurable failover: [Internal passthrough
4087
+ # Network Load Balancers](https://cloud.google.com/load-balancing/docs/internal/
4088
+ # failover-overview) and [external passthrough Network Load Balancers](https://
4089
+ # cloud.google.com/load-balancing/docs/network/networklb-failover-overview). On
4090
+ # failover or failback, this field indicates whether connection draining will be
4091
+ # honored. Google Cloud has a fixed connection draining timeout of 10 minutes. A
4092
+ # setting of true terminates existing TCP connections to the active pool during
4093
+ # failover and failback, immediately draining traffic. A setting of false allows
4094
+ # existing TCP connections to persist, even on VMs no longer in the active pool,
4095
+ # for up to the duration of the connection draining timeout (10 minutes).
4004
4096
  class BackendServiceFailoverPolicy
4005
4097
  include Google::Apis::Core::Hashable
4006
4098
 
@@ -4014,10 +4106,10 @@ module Google
4014
4106
  # and all backup backend VMs are unhealthy.If set to false, connections are
4015
4107
  # distributed among all primary VMs when all primary and all backup backend VMs
4016
4108
  # are unhealthy. For load balancers that have configurable failover: [Internal
4017
- # TCP/UDP Load Balancing](https://cloud.google.com/load-balancing/docs/internal/
4018
- # failover-overview) and [external TCP/UDP Load Balancing](https://cloud.google.
4019
- # com/load-balancing/docs/network/networklb-failover-overview). The default is
4020
- # false.
4109
+ # passthrough Network Load Balancers](https://cloud.google.com/load-balancing/
4110
+ # docs/internal/failover-overview) and [external passthrough Network Load
4111
+ # Balancers](https://cloud.google.com/load-balancing/docs/network/networklb-
4112
+ # failover-overview). The default is false.
4021
4113
  # Corresponds to the JSON property `dropTrafficIfUnhealthy`
4022
4114
  # @return [Boolean]
4023
4115
  attr_accessor :drop_traffic_if_unhealthy
@@ -6203,6 +6295,12 @@ module Google
6203
6295
  # @return [Google::Apis::ComputeV1::CustomerEncryptionKey]
6204
6296
  attr_accessor :disk_encryption_key
6205
6297
 
6298
+ # Whether this disk is using confidential compute mode.
6299
+ # Corresponds to the JSON property `enableConfidentialCompute`
6300
+ # @return [Boolean]
6301
+ attr_accessor :enable_confidential_compute
6302
+ alias_method :enable_confidential_compute?, :enable_confidential_compute
6303
+
6206
6304
  # A list of features to enable on the guest operating system. Applicable only
6207
6305
  # for bootable images. Read Enabling guest operating system features to see a
6208
6306
  # list of available options.
@@ -6484,6 +6582,7 @@ module Google
6484
6582
  @creation_timestamp = args[:creation_timestamp] if args.key?(:creation_timestamp)
6485
6583
  @description = args[:description] if args.key?(:description)
6486
6584
  @disk_encryption_key = args[:disk_encryption_key] if args.key?(:disk_encryption_key)
6585
+ @enable_confidential_compute = args[:enable_confidential_compute] if args.key?(:enable_confidential_compute)
6487
6586
  @guest_os_features = args[:guest_os_features] if args.key?(:guest_os_features)
6488
6587
  @id = args[:id] if args.key?(:id)
6489
6588
  @kind = args[:kind] if args.key?(:kind)
@@ -9286,10 +9385,10 @@ module Google
9286
9385
  # google.com/compute/docs/reference/rest/v1/globalForwardingRules) * [Regional](
9287
9386
  # https://cloud.google.com/compute/docs/reference/rest/v1/forwardingRules) A
9288
9387
  # forwarding rule and its corresponding IP address represent the frontend
9289
- # configuration of a Google Cloud Platform load balancer. Forwarding rules can
9290
- # also reference target instances and Cloud VPN Classic gateways (
9291
- # targetVpnGateway). For more information, read Forwarding rule concepts and
9292
- # Using protocol forwarding.
9388
+ # configuration of a Google Cloud load balancer. Forwarding rules can also
9389
+ # reference target instances and Cloud VPN Classic gateways (targetVpnGateway).
9390
+ # For more information, read Forwarding rule concepts and Using protocol
9391
+ # forwarding.
9293
9392
  class ForwardingRule
9294
9393
  include Google::Apis::Core::Hashable
9295
9394
 
@@ -9327,13 +9426,17 @@ module Google
9327
9426
  # @return [String]
9328
9427
  attr_accessor :ip_protocol
9329
9428
 
9330
- # This field can only be used: - If IPProtocol is one of TCP, UDP, or SCTP. - By
9331
- # internal TCP/UDP load balancers, backend service-based network load balancers,
9332
- # and internal and external protocol forwarding. Set this field to true to allow
9333
- # packets addressed to any port or packets lacking destination port information (
9334
- # for example, UDP fragments after the first fragment) to be forwarded to the
9335
- # backends configured with this forwarding rule. The ports, port_range, and
9336
- # allPorts fields are mutually exclusive.
9429
+ # The ports, portRange, and allPorts fields are mutually exclusive. Only packets
9430
+ # addressed to ports in the specified range will be forwarded to the backends
9431
+ # configured with this forwarding rule. The allPorts field has the following
9432
+ # limitations: - It requires that the forwarding rule IPProtocol be TCP, UDP,
9433
+ # SCTP, or L3_DEFAULT. - It's applicable only to the following products:
9434
+ # internal passthrough Network Load Balancers, backend service-based external
9435
+ # passthrough Network Load Balancers, and internal and external protocol
9436
+ # forwarding. - Set this field to true to allow packets addressed to any port or
9437
+ # packets lacking destination port information (for example, UDP fragments after
9438
+ # the first fragment) to be forwarded to the backends configured with this
9439
+ # forwarding rule. The L3_DEFAULT protocol requires allPorts be set to true.
9337
9440
  # Corresponds to the JSON property `allPorts`
9338
9441
  # @return [Boolean]
9339
9442
  attr_accessor :all_ports
@@ -9341,11 +9444,12 @@ module Google
9341
9444
 
9342
9445
  # This field is used along with the backend_service field for internal load
9343
9446
  # balancing or with the target field for internal TargetInstance. If set to true,
9344
- # clients can access the Internal TCP/UDP Load Balancer, Internal HTTP(S) and
9345
- # TCP Proxy Load Balancer from all regions. If false, only allows access from
9346
- # the local region the load balancer is located at. Note that for
9347
- # INTERNAL_MANAGED forwarding rules, this field cannot be changed after the
9348
- # forwarding rule is created.
9447
+ # clients can access the internal passthrough Network Load Balancers, the
9448
+ # regional internal Application Load Balancer, and the regional internal proxy
9449
+ # Network Load Balancer from all regions. If false, only allows access from the
9450
+ # local region the load balancer is located at. Note that for INTERNAL_MANAGED
9451
+ # forwarding rules, this field cannot be changed after the forwarding rule is
9452
+ # created.
9349
9453
  # Corresponds to the JSON property `allowGlobalAccess`
9350
9454
  # @return [Boolean]
9351
9455
  attr_accessor :allow_global_access
@@ -9359,16 +9463,16 @@ module Google
9359
9463
  alias_method :allow_psc_global_access?, :allow_psc_global_access
9360
9464
 
9361
9465
  # Identifies the backend service to which the forwarding rule sends traffic.
9362
- # Required for Internal TCP/UDP Load Balancing and Network Load Balancing; must
9363
- # be omitted for all other load balancer types.
9466
+ # Required for internal and external passthrough Network Load Balancers; must be
9467
+ # omitted for all other load balancer types.
9364
9468
  # Corresponds to the JSON property `backendService`
9365
9469
  # @return [String]
9366
9470
  attr_accessor :backend_service
9367
9471
 
9368
- # [Output Only] The URL for the corresponding base Forwarding Rule. By base
9369
- # Forwarding Rule, we mean the Forwarding Rule that has the same IP address,
9370
- # protocol, and port settings with the current Forwarding Rule, but without
9371
- # sourceIPRanges specified. Always empty if the current Forwarding Rule does not
9472
+ # [Output Only] The URL for the corresponding base forwarding rule. By base
9473
+ # forwarding rule, we mean the forwarding rule that has the same IP address,
9474
+ # protocol, and port settings with the current forwarding rule, but without
9475
+ # sourceIPRanges specified. Always empty if the current forwarding rule does not
9372
9476
  # have sourceIPRanges specified.
9373
9477
  # Corresponds to the JSON property `baseForwardingRule`
9374
9478
  # @return [String]
@@ -9419,7 +9523,7 @@ module Google
9419
9523
  alias_method :is_mirroring_collector?, :is_mirroring_collector
9420
9524
 
9421
9525
  # [Output Only] Type of the resource. Always compute#forwardingRule for
9422
- # Forwarding Rule resources.
9526
+ # forwarding rule resources.
9423
9527
  # Corresponds to the JSON property `kind`
9424
9528
  # @return [String]
9425
9529
  attr_accessor :kind
@@ -9481,13 +9585,13 @@ module Google
9481
9585
  # @return [String]
9482
9586
  attr_accessor :name
9483
9587
 
9484
- # This field is not used for global external load balancing. For Internal TCP/
9485
- # UDP Load Balancing, this field identifies the network that the load balanced
9486
- # IP should belong to for this Forwarding Rule. If the subnetwork is specified,
9487
- # the network of the subnetwork will be used. If neither subnetwork nor this
9488
- # field is specified, the default network will be used. For Private Service
9489
- # Connect forwarding rules that forward traffic to Google APIs, a network must
9490
- # be provided.
9588
+ # This field is not used for global external load balancing. For internal
9589
+ # passthrough Network Load Balancers, this field identifies the network that the
9590
+ # load balanced IP should belong to for this forwarding rule. If the subnetwork
9591
+ # is specified, the network of the subnetwork will be used. If neither
9592
+ # subnetwork nor this field is specified, the default network will be used. For
9593
+ # Private Service Connect forwarding rules that forward traffic to Google APIs,
9594
+ # a network must be provided.
9491
9595
  # Corresponds to the JSON property `network`
9492
9596
  # @return [String]
9493
9597
  attr_accessor :network
@@ -9510,40 +9614,43 @@ module Google
9510
9614
  attr_accessor :no_automate_dns_zone
9511
9615
  alias_method :no_automate_dns_zone?, :no_automate_dns_zone
9512
9616
 
9513
- # This field can only be used: - If IPProtocol is one of TCP, UDP, or SCTP. - By
9514
- # backend service-based network load balancers, target pool-based network load
9515
- # balancers, internal proxy load balancers, external proxy load balancers,
9516
- # Traffic Director, external protocol forwarding, and Classic VPN. Some products
9517
- # have restrictions on what ports can be used. See port specifications for
9518
- # details. Only packets addressed to ports in the specified range will be
9519
- # forwarded to the backends configured with this forwarding rule. The ports,
9520
- # port_range, and allPorts fields are mutually exclusive. For external
9521
- # forwarding rules, two or more forwarding rules cannot use the same [IPAddress,
9522
- # IPProtocol] pair, and cannot have overlapping portRanges. For internal
9523
- # forwarding rules within the same VPC network, two or more forwarding rules
9524
- # cannot use the same [IPAddress, IPProtocol] pair, and cannot have overlapping
9525
- # portRanges. @pattern: \\d+(?:-\\d+)?
9617
+ # The ports, portRange, and allPorts fields are mutually exclusive. Only packets
9618
+ # addressed to ports in the specified range will be forwarded to the backends
9619
+ # configured with this forwarding rule. The portRange field has the following
9620
+ # limitations: - It requires that the forwarding rule IPProtocol be TCP, UDP, or
9621
+ # SCTP, and - It's applicable only to the following products: external
9622
+ # passthrough Network Load Balancers, internal and external proxy Network Load
9623
+ # Balancers, internal and external Application Load Balancers, external protocol
9624
+ # forwarding, and Classic VPN. - Some products have restrictions on what ports
9625
+ # can be used. See port specifications for details. For external forwarding
9626
+ # rules, two or more forwarding rules cannot use the same [IPAddress, IPProtocol]
9627
+ # pair, and cannot have overlapping portRanges. For internal forwarding rules
9628
+ # within the same VPC network, two or more forwarding rules cannot use the same [
9629
+ # IPAddress, IPProtocol] pair, and cannot have overlapping portRanges. @pattern:
9630
+ # \\d+(?:-\\d+)?
9526
9631
  # Corresponds to the JSON property `portRange`
9527
9632
  # @return [String]
9528
9633
  attr_accessor :port_range
9529
9634
 
9530
- # This field can only be used: - If IPProtocol is one of TCP, UDP, or SCTP. - By
9531
- # internal TCP/UDP load balancers, backend service-based network load balancers,
9532
- # and internal protocol forwarding. You can specify a list of up to five ports
9533
- # by number, separated by commas. The ports can be contiguous or discontiguous.
9534
- # Only packets addressed to these ports will be forwarded to the backends
9535
- # configured with this forwarding rule. For external forwarding rules, two or
9536
- # more forwarding rules cannot use the same [IPAddress, IPProtocol] pair, and
9537
- # cannot share any values defined in ports. For internal forwarding rules within
9538
- # the same VPC network, two or more forwarding rules cannot use the same [
9539
- # IPAddress, IPProtocol] pair, and cannot share any values defined in ports. The
9540
- # ports, port_range, and allPorts fields are mutually exclusive. @pattern: \\d+(?
9541
- # :-\\d+)?
9635
+ # The ports, portRange, and allPorts fields are mutually exclusive. Only packets
9636
+ # addressed to ports in the specified range will be forwarded to the backends
9637
+ # configured with this forwarding rule. The ports field has the following
9638
+ # limitations: - It requires that the forwarding rule IPProtocol be TCP, UDP, or
9639
+ # SCTP, and - It's applicable only to the following products: internal
9640
+ # passthrough Network Load Balancers, backend service-based external passthrough
9641
+ # Network Load Balancers, and internal protocol forwarding. - You can specify a
9642
+ # list of up to five ports by number, separated by commas. The ports can be
9643
+ # contiguous or discontiguous. For external forwarding rules, two or more
9644
+ # forwarding rules cannot use the same [IPAddress, IPProtocol] pair if they
9645
+ # share at least one port number. For internal forwarding rules within the same
9646
+ # VPC network, two or more forwarding rules cannot use the same [IPAddress,
9647
+ # IPProtocol] pair if they share at least one port number. @pattern: \\d+(?:-\\d+
9648
+ # )?
9542
9649
  # Corresponds to the JSON property `ports`
9543
9650
  # @return [Array<String>]
9544
9651
  attr_accessor :ports
9545
9652
 
9546
- # [Output Only] The PSC connection id of the PSC Forwarding Rule.
9653
+ # [Output Only] The PSC connection id of the PSC forwarding rule.
9547
9654
  # Corresponds to the JSON property `pscConnectionId`
9548
9655
  # @return [Fixnum]
9549
9656
  attr_accessor :psc_connection_id
@@ -9572,7 +9679,7 @@ module Google
9572
9679
  # @return [Array<Google::Apis::ComputeV1::ForwardingRuleServiceDirectoryRegistration>]
9573
9680
  attr_accessor :service_directory_registrations
9574
9681
 
9575
- # An optional prefix to the service name for this Forwarding Rule. If specified,
9682
+ # An optional prefix to the service name for this forwarding rule. If specified,
9576
9683
  # the prefix is the first label of the fully qualified service name. The label
9577
9684
  # must be 1-63 characters long, and comply with RFC1035. Specifically, the label
9578
9685
  # must be 1-63 characters long and match the regular expression `[a-z]([-a-z0-9]*
@@ -9584,16 +9691,16 @@ module Google
9584
9691
  # @return [String]
9585
9692
  attr_accessor :service_label
9586
9693
 
9587
- # [Output Only] The internal fully qualified service name for this Forwarding
9588
- # Rule. This field is only used for internal load balancing.
9694
+ # [Output Only] The internal fully qualified service name for this forwarding
9695
+ # rule. This field is only used for internal load balancing.
9589
9696
  # Corresponds to the JSON property `serviceName`
9590
9697
  # @return [String]
9591
9698
  attr_accessor :service_name
9592
9699
 
9593
- # If not empty, this Forwarding Rule will only forward the traffic when the
9700
+ # If not empty, this forwarding rule will only forward the traffic when the
9594
9701
  # source IP address matches one of the IP addresses or CIDR ranges set here.
9595
- # Note that a Forwarding Rule can only have up to 64 source IP ranges, and this
9596
- # field can only be used with a regional Forwarding Rule whose scheme is
9702
+ # Note that a forwarding rule can only have up to 64 source IP ranges, and this
9703
+ # field can only be used with a regional forwarding rule whose scheme is
9597
9704
  # EXTERNAL. Each source_ip_range entry should be either an IP address (for
9598
9705
  # example, 1.2.3.4) or a CIDR range (for example, 1.2.3.0/24).
9599
9706
  # Corresponds to the JSON property `sourceIpRanges`
@@ -9601,10 +9708,11 @@ module Google
9601
9708
  attr_accessor :source_ip_ranges
9602
9709
 
9603
9710
  # This field identifies the subnetwork that the load balanced IP should belong
9604
- # to for this Forwarding Rule, used in internal load balancing and network load
9605
- # balancing with IPv6. If the network specified is in auto subnet mode, this
9606
- # field is optional. However, a subnetwork must be specified if the network is
9607
- # in custom subnet mode or when creating external forwarding rule with IPv6.
9711
+ # to for this forwarding rule, used with internal load balancers and external
9712
+ # passthrough Network Load Balancers with IPv6. If the network specified is in
9713
+ # auto subnet mode, this field is optional. However, a subnetwork must be
9714
+ # specified if the network is in custom subnet mode or when creating external
9715
+ # forwarding rule with IPv6.
9608
9716
  # Corresponds to the JSON property `subnetwork`
9609
9717
  # @return [String]
9610
9718
  attr_accessor :subnetwork
@@ -9928,9 +10036,9 @@ module Google
9928
10036
  end
9929
10037
  end
9930
10038
 
9931
- # Describes the auto-registration of the Forwarding Rule to Service Directory.
10039
+ # Describes the auto-registration of the forwarding rule to Service Directory.
9932
10040
  # The region and project of the Service Directory resource generated from this
9933
- # registration will be the same as this Forwarding Rule.
10041
+ # registration will be the same as this forwarding rule.
9934
10042
  class ForwardingRuleServiceDirectoryRegistration
9935
10043
  include Google::Apis::Core::Hashable
9936
10044
 
@@ -9946,7 +10054,7 @@ module Google
9946
10054
 
9947
10055
  # [Optional] Service Directory region to register this global forwarding rule
9948
10056
  # under. Default to "us-central1". Only used for PSC for Google APIs. All PSC
9949
- # for Google APIs Forwarding Rules on the same network should use the same
10057
+ # for Google APIs forwarding rules on the same network should use the same
9950
10058
  # Service Directory region.
9951
10059
  # Corresponds to the JSON property `serviceDirectoryRegion`
9952
10060
  # @return [String]
@@ -10081,7 +10189,7 @@ module Google
10081
10189
 
10082
10190
  # Specifies how a port is selected for health checking. Can be one of the
10083
10191
  # following values: USE_FIXED_PORT: Specifies a port number explicitly using the
10084
- # port field in the health check. Supported by backend services for pass-through
10192
+ # port field in the health check. Supported by backend services for passthrough
10085
10193
  # load balancers and backend services for proxy load balancers. Not supported by
10086
10194
  # target pools. The health check supports all backends supported by the backend
10087
10195
  # service provided the backend can be health checked. For example, GCE_VM_IP
@@ -10089,13 +10197,13 @@ module Google
10089
10197
  # group backends. USE_NAMED_PORT: Not supported. USE_SERVING_PORT: Provides an
10090
10198
  # indirect method of specifying the health check port by referring to the
10091
10199
  # backend service. Only supported by backend services for proxy load balancers.
10092
- # Not supported by target pools. Not supported by backend services for pass-
10093
- # through load balancers. Supports all backends that can be health checked; for
10094
- # example, GCE_VM_IP_PORT network endpoint groups and instance group backends.
10095
- # For GCE_VM_IP_PORT network endpoint group backends, the health check uses the
10096
- # port number specified for each endpoint in the network endpoint group. For
10097
- # instance group backends, the health check uses the port number determined by
10098
- # looking up the backend service's named port in the instance group's list of
10200
+ # Not supported by target pools. Not supported by backend services for
10201
+ # passthrough load balancers. Supports all backends that can be health checked;
10202
+ # for example, GCE_VM_IP_PORT network endpoint groups and instance group
10203
+ # backends. For GCE_VM_IP_PORT network endpoint group backends, the health check
10204
+ # uses the port number specified for each endpoint in the network endpoint group.
10205
+ # For instance group backends, the health check uses the port number determined
10206
+ # by looking up the backend service's named port in the instance group's list of
10099
10207
  # named ports.
10100
10208
  # Corresponds to the JSON property `portSpecification`
10101
10209
  # @return [String]
@@ -10486,7 +10594,7 @@ module Google
10486
10594
 
10487
10595
  # Specifies how a port is selected for health checking. Can be one of the
10488
10596
  # following values: USE_FIXED_PORT: Specifies a port number explicitly using the
10489
- # port field in the health check. Supported by backend services for pass-through
10597
+ # port field in the health check. Supported by backend services for passthrough
10490
10598
  # load balancers and backend services for proxy load balancers. Not supported by
10491
10599
  # target pools. The health check supports all backends supported by the backend
10492
10600
  # service provided the backend can be health checked. For example, GCE_VM_IP
@@ -10494,13 +10602,13 @@ module Google
10494
10602
  # group backends. USE_NAMED_PORT: Not supported. USE_SERVING_PORT: Provides an
10495
10603
  # indirect method of specifying the health check port by referring to the
10496
10604
  # backend service. Only supported by backend services for proxy load balancers.
10497
- # Not supported by target pools. Not supported by backend services for pass-
10498
- # through load balancers. Supports all backends that can be health checked; for
10499
- # example, GCE_VM_IP_PORT network endpoint groups and instance group backends.
10500
- # For GCE_VM_IP_PORT network endpoint group backends, the health check uses the
10501
- # port number specified for each endpoint in the network endpoint group. For
10502
- # instance group backends, the health check uses the port number determined by
10503
- # looking up the backend service's named port in the instance group's list of
10605
+ # Not supported by target pools. Not supported by backend services for
10606
+ # passthrough load balancers. Supports all backends that can be health checked;
10607
+ # for example, GCE_VM_IP_PORT network endpoint groups and instance group
10608
+ # backends. For GCE_VM_IP_PORT network endpoint group backends, the health check
10609
+ # uses the port number specified for each endpoint in the network endpoint group.
10610
+ # For instance group backends, the health check uses the port number determined
10611
+ # by looking up the backend service's named port in the instance group's list of
10504
10612
  # named ports.
10505
10613
  # Corresponds to the JSON property `portSpecification`
10506
10614
  # @return [String]
@@ -10568,7 +10676,7 @@ module Google
10568
10676
 
10569
10677
  # Specifies how a port is selected for health checking. Can be one of the
10570
10678
  # following values: USE_FIXED_PORT: Specifies a port number explicitly using the
10571
- # port field in the health check. Supported by backend services for pass-through
10679
+ # port field in the health check. Supported by backend services for passthrough
10572
10680
  # load balancers and backend services for proxy load balancers. Also supported
10573
10681
  # in legacy HTTP health checks for target pools. The health check supports all
10574
10682
  # backends supported by the backend service provided the backend can be health
@@ -10650,7 +10758,7 @@ module Google
10650
10758
 
10651
10759
  # Specifies how a port is selected for health checking. Can be one of the
10652
10760
  # following values: USE_FIXED_PORT: Specifies a port number explicitly using the
10653
- # port field in the health check. Supported by backend services for pass-through
10761
+ # port field in the health check. Supported by backend services for passthrough
10654
10762
  # load balancers and backend services for proxy load balancers. Not supported by
10655
10763
  # target pools. The health check supports all backends supported by the backend
10656
10764
  # service provided the backend can be health checked. For example, GCE_VM_IP
@@ -10658,13 +10766,13 @@ module Google
10658
10766
  # group backends. USE_NAMED_PORT: Not supported. USE_SERVING_PORT: Provides an
10659
10767
  # indirect method of specifying the health check port by referring to the
10660
10768
  # backend service. Only supported by backend services for proxy load balancers.
10661
- # Not supported by target pools. Not supported by backend services for pass-
10662
- # through load balancers. Supports all backends that can be health checked; for
10663
- # example, GCE_VM_IP_PORT network endpoint groups and instance group backends.
10664
- # For GCE_VM_IP_PORT network endpoint group backends, the health check uses the
10665
- # port number specified for each endpoint in the network endpoint group. For
10666
- # instance group backends, the health check uses the port number determined by
10667
- # looking up the backend service's named port in the instance group's list of
10769
+ # Not supported by target pools. Not supported by backend services for
10770
+ # passthrough load balancers. Supports all backends that can be health checked;
10771
+ # for example, GCE_VM_IP_PORT network endpoint groups and instance group
10772
+ # backends. For GCE_VM_IP_PORT network endpoint group backends, the health check
10773
+ # uses the port number specified for each endpoint in the network endpoint group.
10774
+ # For instance group backends, the health check uses the port number determined
10775
+ # by looking up the backend service's named port in the instance group's list of
10668
10776
  # named ports.
10669
10777
  # Corresponds to the JSON property `portSpecification`
10670
10778
  # @return [String]
@@ -10710,18 +10818,13 @@ module Google
10710
10818
  # resources: * [Regional](/compute/docs/reference/rest/v1/regionHealthChecks) * [
10711
10819
  # Global](/compute/docs/reference/rest/v1/healthChecks) These health check
10712
10820
  # resources can be used for load balancing and for autohealing VMs in a managed
10713
- # instance group (MIG). **Load balancing** The following load balancer can use
10714
- # either regional or global health check: * Internal TCP/UDP load balancer The
10715
- # following load balancers require regional health check: * Internal HTTP(S)
10716
- # load balancer * Backend service-based network load balancer Traffic Director
10717
- # and the following load balancers require global health check: * External HTTP(
10718
- # S) load balancer * TCP proxy load balancer * SSL proxy load balancer The
10719
- # following load balancer require [legacy HTTP health checks](/compute/docs/
10720
- # reference/rest/v1/httpHealthChecks): * Target pool-based network load balancer
10721
- # **Autohealing in MIGs** The health checks that you use for autohealing VMs in
10722
- # a MIG can be either regional or global. For more information, see Set up an
10723
- # application health check and autohealing. For more information, see Health
10724
- # checks overview.
10821
+ # instance group (MIG). **Load balancing** Health check requirements vary
10822
+ # depending on the type of load balancer. For details about the type of health
10823
+ # check supported for each load balancer and corresponding backend type, see
10824
+ # Health checks overview: Load balancer guide. **Autohealing in MIGs** The
10825
+ # health checks that you use for autohealing VMs in a MIG can be either regional
10826
+ # or global. For more information, see Set up an application health check and
10827
+ # autohealing. For more information, see Health checks overview.
10725
10828
  class HealthCheck
10726
10829
  include Google::Apis::Core::Hashable
10727
10830
 
@@ -12907,6 +13010,13 @@ module Google
12907
13010
  # @return [Fixnum]
12908
13011
  attr_accessor :disk_size_gb
12909
13012
 
13013
+ # Whether this image is created from a confidential compute mode disk. [Output
13014
+ # Only]: This field is not set by user, but from source disk.
13015
+ # Corresponds to the JSON property `enableConfidentialCompute`
13016
+ # @return [Boolean]
13017
+ attr_accessor :enable_confidential_compute
13018
+ alias_method :enable_confidential_compute?, :enable_confidential_compute
13019
+
12910
13020
  # The name of the image family to which this image belongs. The image family
12911
13021
  # name can be from a publicly managed image family provided by Compute Engine,
12912
13022
  # or from a custom image family you create. For example, centos-stream-9 is a
@@ -13108,6 +13218,7 @@ module Google
13108
13218
  @deprecated = args[:deprecated] if args.key?(:deprecated)
13109
13219
  @description = args[:description] if args.key?(:description)
13110
13220
  @disk_size_gb = args[:disk_size_gb] if args.key?(:disk_size_gb)
13221
+ @enable_confidential_compute = args[:enable_confidential_compute] if args.key?(:enable_confidential_compute)
13111
13222
  @family = args[:family] if args.key?(:family)
13112
13223
  @guest_os_features = args[:guest_os_features] if args.key?(:guest_os_features)
13113
13224
  @id = args[:id] if args.key?(:id)
@@ -13573,6 +13684,12 @@ module Google
13573
13684
  # @return [Google::Apis::ComputeV1::ResourceStatus]
13574
13685
  attr_accessor :resource_status
13575
13686
 
13687
+ # [Output Only] Reserved for future use.
13688
+ # Corresponds to the JSON property `satisfiesPzi`
13689
+ # @return [Boolean]
13690
+ attr_accessor :satisfies_pzi
13691
+ alias_method :satisfies_pzi?, :satisfies_pzi
13692
+
13576
13693
  # [Output Only] Reserved for future use.
13577
13694
  # Corresponds to the JSON property `satisfiesPzs`
13578
13695
  # @return [Boolean]
@@ -13690,6 +13807,7 @@ module Google
13690
13807
  @reservation_affinity = args[:reservation_affinity] if args.key?(:reservation_affinity)
13691
13808
  @resource_policies = args[:resource_policies] if args.key?(:resource_policies)
13692
13809
  @resource_status = args[:resource_status] if args.key?(:resource_status)
13810
+ @satisfies_pzi = args[:satisfies_pzi] if args.key?(:satisfies_pzi)
13693
13811
  @satisfies_pzs = args[:satisfies_pzs] if args.key?(:satisfies_pzs)
13694
13812
  @scheduling = args[:scheduling] if args.key?(:scheduling)
13695
13813
  @self_link = args[:self_link] if args.key?(:self_link)
@@ -30824,6 +30942,13 @@ module Google
30824
30942
  class Reservation
30825
30943
  include Google::Apis::Core::Hashable
30826
30944
 
30945
+ # This reservation type is specified by total resource amounts (e.g. total count
30946
+ # of CPUs) and can account for multiple instance SKUs. In other words, one can
30947
+ # create instances of varying shapes against this reservation.
30948
+ # Corresponds to the JSON property `aggregateReservation`
30949
+ # @return [Google::Apis::ComputeV1::AllocationAggregateReservation]
30950
+ attr_accessor :aggregate_reservation
30951
+
30827
30952
  # [Output Only] Full or partial URL to a parent commitment. This field displays
30828
30953
  # for reservations that are tied to a commitment.
30829
30954
  # Corresponds to the JSON property `commitment`
@@ -30923,6 +31048,7 @@ module Google
30923
31048
 
30924
31049
  # Update properties of this object
30925
31050
  def update!(**args)
31051
+ @aggregate_reservation = args[:aggregate_reservation] if args.key?(:aggregate_reservation)
30926
31052
  @commitment = args[:commitment] if args.key?(:commitment)
30927
31053
  @creation_timestamp = args[:creation_timestamp] if args.key?(:creation_timestamp)
30928
31054
  @description = args[:description] if args.key?(:description)
@@ -32269,6 +32395,11 @@ module Google
32269
32395
  # @return [String]
32270
32396
  attr_accessor :physical_host
32271
32397
 
32398
+ # Upcoming Maintenance notification information.
32399
+ # Corresponds to the JSON property `upcomingMaintenance`
32400
+ # @return [Google::Apis::ComputeV1::UpcomingMaintenance]
32401
+ attr_accessor :upcoming_maintenance
32402
+
32272
32403
  def initialize(**args)
32273
32404
  update!(**args)
32274
32405
  end
@@ -32276,6 +32407,7 @@ module Google
32276
32407
  # Update properties of this object
32277
32408
  def update!(**args)
32278
32409
  @physical_host = args[:physical_host] if args.key?(:physical_host)
32410
+ @upcoming_maintenance = args[:upcoming_maintenance] if args.key?(:upcoming_maintenance)
32279
32411
  end
32280
32412
  end
32281
32413
 
@@ -33605,6 +33737,12 @@ module Google
33605
33737
  # @return [Fixnum]
33606
33738
  attr_accessor :tcp_transitory_idle_timeout_sec
33607
33739
 
33740
+ # Indicates whether this NAT is used for public or private IP translation. If
33741
+ # unspecified, it defaults to PUBLIC.
33742
+ # Corresponds to the JSON property `type`
33743
+ # @return [String]
33744
+ attr_accessor :type
33745
+
33608
33746
  # Timeout (in seconds) for UDP connections. Defaults to 30s if not set.
33609
33747
  # Corresponds to the JSON property `udpIdleTimeoutSec`
33610
33748
  # @return [Fixnum]
@@ -33634,6 +33772,7 @@ module Google
33634
33772
  @tcp_established_idle_timeout_sec = args[:tcp_established_idle_timeout_sec] if args.key?(:tcp_established_idle_timeout_sec)
33635
33773
  @tcp_time_wait_timeout_sec = args[:tcp_time_wait_timeout_sec] if args.key?(:tcp_time_wait_timeout_sec)
33636
33774
  @tcp_transitory_idle_timeout_sec = args[:tcp_transitory_idle_timeout_sec] if args.key?(:tcp_transitory_idle_timeout_sec)
33775
+ @type = args[:type] if args.key?(:type)
33637
33776
  @udp_idle_timeout_sec = args[:udp_idle_timeout_sec] if args.key?(:udp_idle_timeout_sec)
33638
33777
  end
33639
33778
  end
@@ -33725,6 +33864,13 @@ module Google
33725
33864
  # @return [Array<String>]
33726
33865
  attr_accessor :source_nat_active_ips
33727
33866
 
33867
+ # A list of URLs of the subnetworks used as source ranges for this NAT Rule.
33868
+ # These subnetworks must have purpose set to PRIVATE_NAT. This field is used for
33869
+ # private NAT.
33870
+ # Corresponds to the JSON property `sourceNatActiveRanges`
33871
+ # @return [Array<String>]
33872
+ attr_accessor :source_nat_active_ranges
33873
+
33728
33874
  # A list of URLs of the IP resources to be drained. These IPs must be valid
33729
33875
  # static external IPs that have been assigned to the NAT. These IPs should be
33730
33876
  # used for updating/patching a NAT rule only. This field is used for public NAT.
@@ -33732,6 +33878,14 @@ module Google
33732
33878
  # @return [Array<String>]
33733
33879
  attr_accessor :source_nat_drain_ips
33734
33880
 
33881
+ # A list of URLs of subnetworks representing source ranges to be drained. This
33882
+ # is only supported on patch/update, and these subnetworks must have previously
33883
+ # been used as active ranges in this NAT Rule. This field is used for private
33884
+ # NAT.
33885
+ # Corresponds to the JSON property `sourceNatDrainRanges`
33886
+ # @return [Array<String>]
33887
+ attr_accessor :source_nat_drain_ranges
33888
+
33735
33889
  def initialize(**args)
33736
33890
  update!(**args)
33737
33891
  end
@@ -33739,7 +33893,9 @@ module Google
33739
33893
  # Update properties of this object
33740
33894
  def update!(**args)
33741
33895
  @source_nat_active_ips = args[:source_nat_active_ips] if args.key?(:source_nat_active_ips)
33896
+ @source_nat_active_ranges = args[:source_nat_active_ranges] if args.key?(:source_nat_active_ranges)
33742
33897
  @source_nat_drain_ips = args[:source_nat_drain_ips] if args.key?(:source_nat_drain_ips)
33898
+ @source_nat_drain_ranges = args[:source_nat_drain_ranges] if args.key?(:source_nat_drain_ranges)
33743
33899
  end
33744
33900
  end
33745
33901
 
@@ -34269,7 +34425,7 @@ module Google
34269
34425
 
34270
34426
  # Specifies how a port is selected for health checking. Can be one of the
34271
34427
  # following values: USE_FIXED_PORT: Specifies a port number explicitly using the
34272
- # port field in the health check. Supported by backend services for pass-through
34428
+ # port field in the health check. Supported by backend services for passthrough
34273
34429
  # load balancers and backend services for proxy load balancers. Not supported by
34274
34430
  # target pools. The health check supports all backends supported by the backend
34275
34431
  # service provided the backend can be health checked. For example, GCE_VM_IP
@@ -34277,13 +34433,13 @@ module Google
34277
34433
  # group backends. USE_NAMED_PORT: Not supported. USE_SERVING_PORT: Provides an
34278
34434
  # indirect method of specifying the health check port by referring to the
34279
34435
  # backend service. Only supported by backend services for proxy load balancers.
34280
- # Not supported by target pools. Not supported by backend services for pass-
34281
- # through load balancers. Supports all backends that can be health checked; for
34282
- # example, GCE_VM_IP_PORT network endpoint groups and instance group backends.
34283
- # For GCE_VM_IP_PORT network endpoint group backends, the health check uses the
34284
- # port number specified for each endpoint in the network endpoint group. For
34285
- # instance group backends, the health check uses the port number determined by
34286
- # looking up the backend service's named port in the instance group's list of
34436
+ # Not supported by target pools. Not supported by backend services for
34437
+ # passthrough load balancers. Supports all backends that can be health checked;
34438
+ # for example, GCE_VM_IP_PORT network endpoint groups and instance group
34439
+ # backends. For GCE_VM_IP_PORT network endpoint group backends, the health check
34440
+ # uses the port number specified for each endpoint in the network endpoint group.
34441
+ # For instance group backends, the health check uses the port number determined
34442
+ # by looking up the backend service's named port in the instance group's list of
34287
34443
  # named ports.
34288
34444
  # Corresponds to the JSON property `portSpecification`
34289
34445
  # @return [String]
@@ -35220,6 +35376,12 @@ module Google
35220
35376
  # @return [String]
35221
35377
  attr_accessor :log_level
35222
35378
 
35379
+ # An optional list of case-insensitive request header names to use for resolving
35380
+ # the callers client IP address.
35381
+ # Corresponds to the JSON property `userIpRequestHeaders`
35382
+ # @return [Array<String>]
35383
+ attr_accessor :user_ip_request_headers
35384
+
35223
35385
  def initialize(**args)
35224
35386
  update!(**args)
35225
35387
  end
@@ -35229,6 +35391,7 @@ module Google
35229
35391
  @json_custom_config = args[:json_custom_config] if args.key?(:json_custom_config)
35230
35392
  @json_parsing = args[:json_parsing] if args.key?(:json_parsing)
35231
35393
  @log_level = args[:log_level] if args.key?(:log_level)
35394
+ @user_ip_request_headers = args[:user_ip_request_headers] if args.key?(:user_ip_request_headers)
35232
35395
  end
35233
35396
  end
35234
35397
 
@@ -35610,6 +35773,12 @@ module Google
35610
35773
  # @return [Google::Apis::ComputeV1::Expr]
35611
35774
  attr_accessor :expr
35612
35775
 
35776
+ # The configuration options available when specifying a user defined CEVAL
35777
+ # expression (i.e., 'expr').
35778
+ # Corresponds to the JSON property `exprOptions`
35779
+ # @return [Google::Apis::ComputeV1::SecurityPolicyRuleMatcherExprOptions]
35780
+ attr_accessor :expr_options
35781
+
35613
35782
  # Preconfigured versioned expression. If this field is specified, config must
35614
35783
  # also be specified. Available preconfigured expressions along with their
35615
35784
  # requirements are: SRC_IPS_V1 - must specify the corresponding src_ip_range
@@ -35626,6 +35795,7 @@ module Google
35626
35795
  def update!(**args)
35627
35796
  @config = args[:config] if args.key?(:config)
35628
35797
  @expr = args[:expr] if args.key?(:expr)
35798
+ @expr_options = args[:expr_options] if args.key?(:expr_options)
35629
35799
  @versioned_expr = args[:versioned_expr] if args.key?(:versioned_expr)
35630
35800
  end
35631
35801
  end
@@ -35649,6 +35819,55 @@ module Google
35649
35819
  end
35650
35820
  end
35651
35821
 
35822
+ #
35823
+ class SecurityPolicyRuleMatcherExprOptions
35824
+ include Google::Apis::Core::Hashable
35825
+
35826
+ # reCAPTCHA configuration options to be applied for the rule. If the rule does
35827
+ # not evaluate reCAPTCHA tokens, this field will have no effect.
35828
+ # Corresponds to the JSON property `recaptchaOptions`
35829
+ # @return [Google::Apis::ComputeV1::SecurityPolicyRuleMatcherExprOptionsRecaptchaOptions]
35830
+ attr_accessor :recaptcha_options
35831
+
35832
+ def initialize(**args)
35833
+ update!(**args)
35834
+ end
35835
+
35836
+ # Update properties of this object
35837
+ def update!(**args)
35838
+ @recaptcha_options = args[:recaptcha_options] if args.key?(:recaptcha_options)
35839
+ end
35840
+ end
35841
+
35842
+ #
35843
+ class SecurityPolicyRuleMatcherExprOptionsRecaptchaOptions
35844
+ include Google::Apis::Core::Hashable
35845
+
35846
+ # A list of site keys to be used during the validation of reCAPTCHA action-
35847
+ # tokens. The provided site keys need to be created from reCAPTCHA API under the
35848
+ # same project where the security policy is created.
35849
+ # Corresponds to the JSON property `actionTokenSiteKeys`
35850
+ # @return [Array<String>]
35851
+ attr_accessor :action_token_site_keys
35852
+
35853
+ # A list of site keys to be used during the validation of reCAPTCHA session-
35854
+ # tokens. The provided site keys need to be created from reCAPTCHA API under the
35855
+ # same project where the security policy is created.
35856
+ # Corresponds to the JSON property `sessionTokenSiteKeys`
35857
+ # @return [Array<String>]
35858
+ attr_accessor :session_token_site_keys
35859
+
35860
+ def initialize(**args)
35861
+ update!(**args)
35862
+ end
35863
+
35864
+ # Update properties of this object
35865
+ def update!(**args)
35866
+ @action_token_site_keys = args[:action_token_site_keys] if args.key?(:action_token_site_keys)
35867
+ @session_token_site_keys = args[:session_token_site_keys] if args.key?(:session_token_site_keys)
35868
+ end
35869
+ end
35870
+
35652
35871
  # Represents a match condition that incoming network traffic is evaluated
35653
35872
  # against.
35654
35873
  class SecurityPolicyRuleNetworkMatcher
@@ -35889,7 +36108,13 @@ module Google
35889
36108
  # is truncated to the first 128 bytes. - SNI: Server name indication in the TLS
35890
36109
  # session of the HTTPS request. The key value is truncated to the first 128
35891
36110
  # bytes. The key type defaults to ALL on a HTTP session. - REGION_CODE: The
35892
- # country/region from which the request originates.
36111
+ # country/region from which the request originates. - TLS_JA3_FINGERPRINT: JA3
36112
+ # TLS/SSL fingerprint if the client connects using HTTPS, HTTP/2 or HTTP/3. If
36113
+ # not available, the key type defaults to ALL. - USER_IP: The IP address of the
36114
+ # originating client, which is resolved based on "userIpRequestHeaders"
36115
+ # configured with the security policy. If there is no "userIpRequestHeaders"
36116
+ # configuration or an IP address cannot be resolved from it, the key type
36117
+ # defaults to IP.
35893
36118
  # Corresponds to the JSON property `enforceOnKey`
35894
36119
  # @return [String]
35895
36120
  attr_accessor :enforce_on_key
@@ -35978,7 +36203,13 @@ module Google
35978
36203
  # is truncated to the first 128 bytes. - SNI: Server name indication in the TLS
35979
36204
  # session of the HTTPS request. The key value is truncated to the first 128
35980
36205
  # bytes. The key type defaults to ALL on a HTTP session. - REGION_CODE: The
35981
- # country/region from which the request originates.
36206
+ # country/region from which the request originates. - TLS_JA3_FINGERPRINT: JA3
36207
+ # TLS/SSL fingerprint if the client connects using HTTPS, HTTP/2 or HTTP/3. If
36208
+ # not available, the key type defaults to ALL. - USER_IP: The IP address of the
36209
+ # originating client, which is resolved based on "userIpRequestHeaders"
36210
+ # configured with the security policy. If there is no "userIpRequestHeaders"
36211
+ # configuration or an IP address cannot be resolved from it, the key type
36212
+ # defaults to IP.
35982
36213
  # Corresponds to the JSON property `enforceOnKeyType`
35983
36214
  # @return [String]
35984
36215
  attr_accessor :enforce_on_key_type
@@ -37112,6 +37343,20 @@ module Google
37112
37343
  # @return [Fixnum]
37113
37344
  attr_accessor :download_bytes
37114
37345
 
37346
+ # Whether this snapshot is created from a confidential compute mode disk. [
37347
+ # Output Only]: This field is not set by user, but from source disk.
37348
+ # Corresponds to the JSON property `enableConfidentialCompute`
37349
+ # @return [Boolean]
37350
+ attr_accessor :enable_confidential_compute
37351
+ alias_method :enable_confidential_compute?, :enable_confidential_compute
37352
+
37353
+ # [Output Only] A list of features to enable on the guest operating system.
37354
+ # Applicable only for bootable images. Read Enabling guest operating system
37355
+ # features to see a list of available options.
37356
+ # Corresponds to the JSON property `guestOsFeatures`
37357
+ # @return [Array<Google::Apis::ComputeV1::GuestOsFeature>]
37358
+ attr_accessor :guest_os_features
37359
+
37115
37360
  # [Output Only] The unique identifier for the resource. This identifier is
37116
37361
  # defined by the server.
37117
37362
  # Corresponds to the JSON property `id`
@@ -37272,6 +37517,8 @@ module Google
37272
37517
  @description = args[:description] if args.key?(:description)
37273
37518
  @disk_size_gb = args[:disk_size_gb] if args.key?(:disk_size_gb)
37274
37519
  @download_bytes = args[:download_bytes] if args.key?(:download_bytes)
37520
+ @enable_confidential_compute = args[:enable_confidential_compute] if args.key?(:enable_confidential_compute)
37521
+ @guest_os_features = args[:guest_os_features] if args.key?(:guest_os_features)
37275
37522
  @id = args[:id] if args.key?(:id)
37276
37523
  @kind = args[:kind] if args.key?(:kind)
37277
37524
  @label_fingerprint = args[:label_fingerprint] if args.key?(:label_fingerprint)
@@ -38526,9 +38773,10 @@ module Google
38526
38773
  end
38527
38774
  end
38528
38775
 
38529
- # Represents an SSL Policy resource. Use SSL policies to control the SSL
38530
- # features, such as versions and cipher suites, offered by an HTTPS or SSL Proxy
38531
- # load balancer. For more information, read SSL Policy Concepts.
38776
+ # Represents an SSL Policy resource. Use SSL policies to control SSL features,
38777
+ # such as versions and cipher suites, that are offered by Application Load
38778
+ # Balancers and proxy Network Load Balancers. For more information, read SSL
38779
+ # policies overview.
38532
38780
  class SslPolicy
38533
38781
  include Google::Apis::Core::Hashable
38534
38782
 
@@ -39594,7 +39842,7 @@ module Google
39594
39842
 
39595
39843
  # Specifies how a port is selected for health checking. Can be one of the
39596
39844
  # following values: USE_FIXED_PORT: Specifies a port number explicitly using the
39597
- # port field in the health check. Supported by backend services for pass-through
39845
+ # port field in the health check. Supported by backend services for passthrough
39598
39846
  # load balancers and backend services for proxy load balancers. Not supported by
39599
39847
  # target pools. The health check supports all backends supported by the backend
39600
39848
  # service provided the backend can be health checked. For example, GCE_VM_IP
@@ -39602,13 +39850,13 @@ module Google
39602
39850
  # group backends. USE_NAMED_PORT: Not supported. USE_SERVING_PORT: Provides an
39603
39851
  # indirect method of specifying the health check port by referring to the
39604
39852
  # backend service. Only supported by backend services for proxy load balancers.
39605
- # Not supported by target pools. Not supported by backend services for pass-
39606
- # through load balancers. Supports all backends that can be health checked; for
39607
- # example, GCE_VM_IP_PORT network endpoint groups and instance group backends.
39608
- # For GCE_VM_IP_PORT network endpoint group backends, the health check uses the
39609
- # port number specified for each endpoint in the network endpoint group. For
39610
- # instance group backends, the health check uses the port number determined by
39611
- # looking up the backend service's named port in the instance group's list of
39853
+ # Not supported by target pools. Not supported by backend services for
39854
+ # passthrough load balancers. Supports all backends that can be health checked;
39855
+ # for example, GCE_VM_IP_PORT network endpoint groups and instance group
39856
+ # backends. For GCE_VM_IP_PORT network endpoint group backends, the health check
39857
+ # uses the port number specified for each endpoint in the network endpoint group.
39858
+ # For instance group backends, the health check uses the port number determined
39859
+ # by looking up the backend service's named port in the instance group's list of
39612
39860
  # named ports.
39613
39861
  # Corresponds to the JSON property `portSpecification`
39614
39862
  # @return [String]
@@ -41294,10 +41542,10 @@ module Google
41294
41542
  end
41295
41543
  end
41296
41544
 
41297
- # Represents a Target Pool resource. Target pools are used for network TCP/UDP
41298
- # load balancing. A target pool references member instances, an associated
41299
- # legacy HttpHealthCheck resource, and, optionally, a backup target pool. For
41300
- # more information, read Using target pools.
41545
+ # Represents a Target Pool resource. Target pools are used with external
41546
+ # passthrough Network Load Balancers. A target pool references member instances,
41547
+ # an associated legacy HttpHealthCheck resource, and, optionally, a backup
41548
+ # target pool. For more information, read Using target pools.
41301
41549
  class TargetPool
41302
41550
  include Google::Apis::Core::Hashable
41303
41551
 
@@ -41967,9 +42215,9 @@ module Google
41967
42215
  end
41968
42216
 
41969
42217
  # Represents a Target SSL Proxy resource. A target SSL proxy is a component of a
41970
- # SSL Proxy load balancer. Global forwarding rules reference a target SSL proxy,
41971
- # and the target proxy then references an external backend service. For more
41972
- # information, read Using Target Proxies.
42218
+ # Proxy Network Load Balancer. The forwarding rule references the target SSL
42219
+ # proxy, and the target proxy then references a backend service. For more
42220
+ # information, read Proxy Network Load Balancer overview.
41973
42221
  class TargetSslProxy
41974
42222
  include Google::Apis::Core::Hashable
41975
42223
 
@@ -42314,9 +42562,9 @@ module Google
42314
42562
  end
42315
42563
 
42316
42564
  # Represents a Target TCP Proxy resource. A target TCP proxy is a component of a
42317
- # TCP Proxy load balancer. Global forwarding rules reference target TCP proxy,
42318
- # and the target proxy then references an external backend service. For more
42319
- # information, read TCP Proxy Load Balancing overview.
42565
+ # Proxy Network Load Balancer. The forwarding rule references the target TCP
42566
+ # proxy, and the target proxy then references a backend service. For more
42567
+ # information, read Proxy Network Load Balancer overview.
42320
42568
  class TargetTcpProxy
42321
42569
  include Google::Apis::Core::Hashable
42322
42570
 
@@ -43234,6 +43482,59 @@ module Google
43234
43482
  end
43235
43483
  end
43236
43484
 
43485
+ # Upcoming Maintenance notification information.
43486
+ class UpcomingMaintenance
43487
+ include Google::Apis::Core::Hashable
43488
+
43489
+ # Indicates if the maintenance can be customer triggered.
43490
+ # Corresponds to the JSON property `canReschedule`
43491
+ # @return [Boolean]
43492
+ attr_accessor :can_reschedule
43493
+ alias_method :can_reschedule?, :can_reschedule
43494
+
43495
+ # The latest time for the planned maintenance window to start. This timestamp
43496
+ # value is in RFC3339 text format.
43497
+ # Corresponds to the JSON property `latestWindowStartTime`
43498
+ # @return [String]
43499
+ attr_accessor :latest_window_start_time
43500
+
43501
+ #
43502
+ # Corresponds to the JSON property `maintenanceStatus`
43503
+ # @return [String]
43504
+ attr_accessor :maintenance_status
43505
+
43506
+ # Defines the type of maintenance.
43507
+ # Corresponds to the JSON property `type`
43508
+ # @return [String]
43509
+ attr_accessor :type
43510
+
43511
+ # The time by which the maintenance disruption will be completed. This timestamp
43512
+ # value is in RFC3339 text format.
43513
+ # Corresponds to the JSON property `windowEndTime`
43514
+ # @return [String]
43515
+ attr_accessor :window_end_time
43516
+
43517
+ # The current start time of the maintenance window. This timestamp value is in
43518
+ # RFC3339 text format.
43519
+ # Corresponds to the JSON property `windowStartTime`
43520
+ # @return [String]
43521
+ attr_accessor :window_start_time
43522
+
43523
+ def initialize(**args)
43524
+ update!(**args)
43525
+ end
43526
+
43527
+ # Update properties of this object
43528
+ def update!(**args)
43529
+ @can_reschedule = args[:can_reschedule] if args.key?(:can_reschedule)
43530
+ @latest_window_start_time = args[:latest_window_start_time] if args.key?(:latest_window_start_time)
43531
+ @maintenance_status = args[:maintenance_status] if args.key?(:maintenance_status)
43532
+ @type = args[:type] if args.key?(:type)
43533
+ @window_end_time = args[:window_end_time] if args.key?(:window_end_time)
43534
+ @window_start_time = args[:window_start_time] if args.key?(:window_start_time)
43535
+ end
43536
+ end
43537
+
43237
43538
  # Represents a URL Map resource. Compute Engine has two URL Map resources: * [
43238
43539
  # Global](/compute/docs/reference/rest/v1/urlMaps) * [Regional](/compute/docs/
43239
43540
  # reference/rest/v1/regionUrlMaps) A URL map resource is a component of certain