google-apis-compute_beta 0.20.0 → 0.24.0

Sign up to get free protection for your applications and to get access to all the features.
@@ -464,15 +464,15 @@ module Google
464
464
  class AccessConfig
465
465
  include Google::Apis::Core::Hashable
466
466
 
467
- # [Output Only] The first IPv6 address of the external IPv6 range associated
468
- # with this instance, prefix length is stored in externalIpv6PrefixLength in
467
+ # The first IPv6 address of the external IPv6 range associated with this
468
+ # instance, prefix length is stored in externalIpv6PrefixLength in
469
469
  # ipv6AccessConfig. The field is output only, an IPv6 address from a subnetwork
470
470
  # associated with the instance will be allocated dynamically.
471
471
  # Corresponds to the JSON property `externalIpv6`
472
472
  # @return [String]
473
473
  attr_accessor :external_ipv6
474
474
 
475
- # [Output Only] The prefix length of the external IPv6 range.
475
+ # The prefix length of the external IPv6 range.
476
476
  # Corresponds to the JSON property `externalIpv6PrefixLength`
477
477
  # @return [Fixnum]
478
478
  attr_accessor :external_ipv6_prefix_length
@@ -652,14 +652,14 @@ module Google
652
652
  # regional internal IP address in a subnet of a VPC network) - VPC_PEERING for
653
653
  # global internal IP addresses used for private services access allocated ranges.
654
654
  # - NAT_AUTO for the regional external IP addresses used by Cloud NAT when
655
- # allocating addresses using . - IPSEC_INTERCONNECT for addresses created from a
656
- # private IP range that are reserved for a VLAN attachment in an *IPsec-
657
- # encrypted Cloud Interconnect* configuration. These addresses are regional
658
- # resources. Not currently available publicly. - `SHARED_LOADBALANCER_VIP` for
659
- # an internal IP address that is assigned to multiple internal forwarding rules.
660
- # - `PRIVATE_SERVICE_CONNECT` for a private network address that is used to
661
- # configure Private Service Connect. Only global internal addresses can use this
662
- # purpose.
655
+ # allocating addresses using automatic NAT IP address allocation. -
656
+ # IPSEC_INTERCONNECT for addresses created from a private IP range that are
657
+ # reserved for a VLAN attachment in an *IPsec-encrypted Cloud Interconnect*
658
+ # configuration. These addresses are regional resources. Not currently available
659
+ # publicly. - `SHARED_LOADBALANCER_VIP` for an internal IP address that is
660
+ # assigned to multiple internal forwarding rules. - `PRIVATE_SERVICE_CONNECT`
661
+ # for a private network address that is used to configure Private Service
662
+ # Connect. Only global internal addresses can use this purpose.
663
663
  # Corresponds to the JSON property `purpose`
664
664
  # @return [String]
665
665
  attr_accessor :purpose
@@ -1072,6 +1072,12 @@ module Google
1072
1072
  attr_accessor :enable_nested_virtualization
1073
1073
  alias_method :enable_nested_virtualization?, :enable_nested_virtualization
1074
1074
 
1075
+ # Whether to enable UEFI networking for instance creation.
1076
+ # Corresponds to the JSON property `enableUefiNetworking`
1077
+ # @return [Boolean]
1078
+ attr_accessor :enable_uefi_networking
1079
+ alias_method :enable_uefi_networking?, :enable_uefi_networking
1080
+
1075
1081
  # The number of threads per physical core. To disable simultaneous
1076
1082
  # multithreading (SMT) set this to 1. If unset, the maximum number of threads
1077
1083
  # supported per core by the underlying processor is assumed.
@@ -1086,6 +1092,7 @@ module Google
1086
1092
  # Update properties of this object
1087
1093
  def update!(**args)
1088
1094
  @enable_nested_virtualization = args[:enable_nested_virtualization] if args.key?(:enable_nested_virtualization)
1095
+ @enable_uefi_networking = args[:enable_uefi_networking] if args.key?(:enable_uefi_networking)
1089
1096
  @threads_per_core = args[:threads_per_core] if args.key?(:threads_per_core)
1090
1097
  end
1091
1098
  end
@@ -1213,6 +1220,11 @@ module Google
1213
1220
  class AllocationSpecificSkuReservation
1214
1221
  include Google::Apis::Core::Hashable
1215
1222
 
1223
+ # [Output Only] Indicates how many instances are actually usable currently.
1224
+ # Corresponds to the JSON property `assuredCount`
1225
+ # @return [Fixnum]
1226
+ attr_accessor :assured_count
1227
+
1216
1228
  # Specifies the number of resources that are allocated.
1217
1229
  # Corresponds to the JSON property `count`
1218
1230
  # @return [Fixnum]
@@ -1234,6 +1246,7 @@ module Google
1234
1246
 
1235
1247
  # Update properties of this object
1236
1248
  def update!(**args)
1249
+ @assured_count = args[:assured_count] if args.key?(:assured_count)
1237
1250
  @count = args[:count] if args.key?(:count)
1238
1251
  @in_use_count = args[:in_use_count] if args.key?(:in_use_count)
1239
1252
  @instance_properties = args[:instance_properties] if args.key?(:instance_properties)
@@ -1361,7 +1374,8 @@ module Google
1361
1374
  # initializeParams.sourceSnapshot or disks.source is required except for local
1362
1375
  # SSD. If desired, you can also attach existing non-root persistent disks using
1363
1376
  # this property. This field is only applicable for persistent disks. Note that
1364
- # for InstanceTemplate, specify the disk name, not the URL for the disk.
1377
+ # for InstanceTemplate, specify the disk name for zonal disk, and the URL for
1378
+ # regional disk.
1365
1379
  # Corresponds to the JSON property `source`
1366
1380
  # @return [String]
1367
1381
  attr_accessor :source
@@ -1461,6 +1475,11 @@ module Google
1461
1475
  # @return [Hash<String,String>]
1462
1476
  attr_accessor :labels
1463
1477
 
1478
+ # A list of publicly visible licenses. Reserved for Google's use.
1479
+ # Corresponds to the JSON property `licenses`
1480
+ # @return [Array<String>]
1481
+ attr_accessor :licenses
1482
+
1464
1483
  # Indicates whether or not the disk can be read/write attached to more than one
1465
1484
  # instance.
1466
1485
  # Corresponds to the JSON property `multiWriter`
@@ -1541,6 +1560,7 @@ module Google
1541
1560
  @disk_type = args[:disk_type] if args.key?(:disk_type)
1542
1561
  @guest_os_features = args[:guest_os_features] if args.key?(:guest_os_features)
1543
1562
  @labels = args[:labels] if args.key?(:labels)
1563
+ @licenses = args[:licenses] if args.key?(:licenses)
1544
1564
  @multi_writer = args[:multi_writer] if args.key?(:multi_writer)
1545
1565
  @on_update_action = args[:on_update_action] if args.key?(:on_update_action)
1546
1566
  @provisioned_iops = args[:provisioned_iops] if args.key?(:provisioned_iops)
@@ -3188,14 +3208,14 @@ module Google
3188
3208
 
3189
3209
  # For load balancers that have configurable failover: [Internal TCP/UDP Load
3190
3210
  # Balancing](https://cloud.google.com/load-balancing/docs/internal/failover-
3191
- # overview) and [external TCP/UDP Load Balancing](/network/networklb-failover-
3192
- # overview). On failover or failback, this field indicates whether connection
3193
- # draining will be honored. Google Cloud has a fixed connection draining timeout
3194
- # of 10 minutes. A setting of true terminates existing TCP connections to the
3195
- # active pool during failover and failback, immediately draining traffic. A
3196
- # setting of false allows existing TCP connections to persist, even on VMs no
3197
- # longer in the active pool, for up to the duration of the connection draining
3198
- # timeout (10 minutes).
3211
+ # overview) and [external TCP/UDP Load Balancing](https://cloud.google.com/load-
3212
+ # balancing/docs/network/networklb-failover-overview). On failover or failback,
3213
+ # this field indicates whether connection draining will be honored. Google Cloud
3214
+ # has a fixed connection draining timeout of 10 minutes. A setting of true
3215
+ # terminates existing TCP connections to the active pool during failover and
3216
+ # failback, immediately draining traffic. A setting of false allows existing TCP
3217
+ # connections to persist, even on VMs no longer in the active pool, for up to
3218
+ # the duration of the connection draining timeout (10 minutes).
3199
3219
  # Corresponds to the JSON property `failoverPolicy`
3200
3220
  # @return [Google::Apis::ComputeBeta::BackendServiceFailoverPolicy]
3201
3221
  attr_accessor :failover_policy
@@ -3836,14 +3856,14 @@ module Google
3836
3856
 
3837
3857
  # For load balancers that have configurable failover: [Internal TCP/UDP Load
3838
3858
  # Balancing](https://cloud.google.com/load-balancing/docs/internal/failover-
3839
- # overview) and [external TCP/UDP Load Balancing](/network/networklb-failover-
3840
- # overview). On failover or failback, this field indicates whether connection
3841
- # draining will be honored. Google Cloud has a fixed connection draining timeout
3842
- # of 10 minutes. A setting of true terminates existing TCP connections to the
3843
- # active pool during failover and failback, immediately draining traffic. A
3844
- # setting of false allows existing TCP connections to persist, even on VMs no
3845
- # longer in the active pool, for up to the duration of the connection draining
3846
- # timeout (10 minutes).
3859
+ # overview) and [external TCP/UDP Load Balancing](https://cloud.google.com/load-
3860
+ # balancing/docs/network/networklb-failover-overview). On failover or failback,
3861
+ # this field indicates whether connection draining will be honored. Google Cloud
3862
+ # has a fixed connection draining timeout of 10 minutes. A setting of true
3863
+ # terminates existing TCP connections to the active pool during failover and
3864
+ # failback, immediately draining traffic. A setting of false allows existing TCP
3865
+ # connections to persist, even on VMs no longer in the active pool, for up to
3866
+ # the duration of the connection draining timeout (10 minutes).
3847
3867
  class BackendServiceFailoverPolicy
3848
3868
  include Google::Apis::Core::Hashable
3849
3869
 
@@ -3858,8 +3878,9 @@ module Google
3858
3878
  # distributed among all primary VMs when all primary and all backup backend VMs
3859
3879
  # are unhealthy. For load balancers that have configurable failover: [Internal
3860
3880
  # TCP/UDP Load Balancing](https://cloud.google.com/load-balancing/docs/internal/
3861
- # failover-overview) and [external TCP/UDP Load Balancing](/network/networklb-
3862
- # failover-overview). The default is false.
3881
+ # failover-overview) and [external TCP/UDP Load Balancing](https://cloud.google.
3882
+ # com/load-balancing/docs/network/networklb-failover-overview). The default is
3883
+ # false.
3863
3884
  # Corresponds to the JSON property `dropTrafficIfUnhealthy`
3864
3885
  # @return [Boolean]
3865
3886
  attr_accessor :drop_traffic_if_unhealthy
@@ -3871,7 +3892,8 @@ module Google
3871
3892
  # the total number of healthy primary VMs is less than this ratio. For load
3872
3893
  # balancers that have configurable failover: [Internal TCP/UDP Load Balancing](
3873
3894
  # https://cloud.google.com/load-balancing/docs/internal/failover-overview) and [
3874
- # external TCP/UDP Load Balancing](/network/networklb-failover-overview).
3895
+ # external TCP/UDP Load Balancing](https://cloud.google.com/load-balancing/docs/
3896
+ # network/networklb-failover-overview).
3875
3897
  # Corresponds to the JSON property `failoverRatio`
3876
3898
  # @return [Float]
3877
3899
  attr_accessor :failover_ratio
@@ -4809,6 +4831,16 @@ module Google
4809
4831
  class Commitment
4810
4832
  include Google::Apis::Core::Hashable
4811
4833
 
4834
+ # Specifies whether to enable automatic renewal for the commitment. The default
4835
+ # value is false if not specified. The field can be updated until the day of the
4836
+ # commitment expiration at 12:00am PST. If the field is set to true, the
4837
+ # commitment will be automatically renewed for either one or three years
4838
+ # according to the terms of the existing commitment.
4839
+ # Corresponds to the JSON property `autoRenew`
4840
+ # @return [Boolean]
4841
+ attr_accessor :auto_renew
4842
+ alias_method :auto_renew?, :auto_renew
4843
+
4812
4844
  # The category of the commitment. Category MACHINE specifies commitments
4813
4845
  # composed of machine resources such as VCPU or MEMORY, listed in resources.
4814
4846
  # Category LICENSE specifies commitments composed of software licenses, listed
@@ -4919,6 +4951,7 @@ module Google
4919
4951
 
4920
4952
  # Update properties of this object
4921
4953
  def update!(**args)
4954
+ @auto_renew = args[:auto_renew] if args.key?(:auto_renew)
4922
4955
  @category = args[:category] if args.key?(:category)
4923
4956
  @creation_timestamp = args[:creation_timestamp] if args.key?(:creation_timestamp)
4924
4957
  @description = args[:description] if args.key?(:description)
@@ -8684,8 +8717,7 @@ module Google
8684
8717
  attr_accessor :self_link
8685
8718
 
8686
8719
  # Service Directory resources to register this forwarding rule with. Currently,
8687
- # only supports a single Service Directory resource. It is only supported for
8688
- # internal load balancing.
8720
+ # only supports a single Service Directory resource.
8689
8721
  # Corresponds to the JSON property `serviceDirectoryRegistrations`
8690
8722
  # @return [Array<Google::Apis::ComputeBeta::ForwardingRuleServiceDirectoryRegistration>]
8691
8723
  attr_accessor :service_directory_registrations
@@ -9848,8 +9880,8 @@ module Google
9848
9880
  attr_accessor :timeout_sec
9849
9881
 
9850
9882
  # Specifies the type of the healthCheck, either TCP, SSL, HTTP, HTTPS or HTTP2.
9851
- # If not specified, the default is TCP. Exactly one of the protocol-specific
9852
- # health check field must be specified, which must match type field.
9883
+ # Exactly one of the protocol-specific health check field must be specified,
9884
+ # which must match type field.
9853
9885
  # Corresponds to the JSON property `type`
9854
9886
  # @return [String]
9855
9887
  attr_accessor :type
@@ -12590,6 +12622,11 @@ module Google
12590
12622
  # @return [Google::Apis::ComputeBeta::NetworkPerformanceConfig]
12591
12623
  attr_accessor :network_performance_config
12592
12624
 
12625
+ # Additional instance params.
12626
+ # Corresponds to the JSON property `params`
12627
+ # @return [Google::Apis::ComputeBeta::InstanceParams]
12628
+ attr_accessor :params
12629
+
12593
12630
  # PostKeyRevocationActionType of the instance.
12594
12631
  # Corresponds to the JSON property `postKeyRevocationActionType`
12595
12632
  # @return [String]
@@ -12733,6 +12770,7 @@ module Google
12733
12770
  @name = args[:name] if args.key?(:name)
12734
12771
  @network_interfaces = args[:network_interfaces] if args.key?(:network_interfaces)
12735
12772
  @network_performance_config = args[:network_performance_config] if args.key?(:network_performance_config)
12773
+ @params = args[:params] if args.key?(:params)
12736
12774
  @post_key_revocation_action_type = args[:post_key_revocation_action_type] if args.key?(:post_key_revocation_action_type)
12737
12775
  @private_ipv6_google_access = args[:private_ipv6_google_access] if args.key?(:private_ipv6_google_access)
12738
12776
  @reservation_affinity = args[:reservation_affinity] if args.key?(:reservation_affinity)
@@ -13497,6 +13535,30 @@ module Google
13497
13535
  # @return [Fixnum]
13498
13536
  attr_accessor :restarting
13499
13537
 
13538
+ # [Output Only] The number of instances in the managed instance group that are
13539
+ # scheduled to be resumed or are currently being resumed.
13540
+ # Corresponds to the JSON property `resuming`
13541
+ # @return [Fixnum]
13542
+ attr_accessor :resuming
13543
+
13544
+ # [Output Only] The number of instances in the managed instance group that are
13545
+ # scheduled to be started or are currently being started.
13546
+ # Corresponds to the JSON property `starting`
13547
+ # @return [Fixnum]
13548
+ attr_accessor :starting
13549
+
13550
+ # [Output Only] The number of instances in the managed instance group that are
13551
+ # scheduled to be stopped or are currently being stopped.
13552
+ # Corresponds to the JSON property `stopping`
13553
+ # @return [Fixnum]
13554
+ attr_accessor :stopping
13555
+
13556
+ # [Output Only] The number of instances in the managed instance group that are
13557
+ # scheduled to be suspended or are currently being suspended.
13558
+ # Corresponds to the JSON property `suspending`
13559
+ # @return [Fixnum]
13560
+ attr_accessor :suspending
13561
+
13500
13562
  # [Output Only] The number of instances in the managed instance group that are
13501
13563
  # being verified. See the managedInstances[].currentAction property in the
13502
13564
  # listManagedInstances method documentation.
@@ -13518,6 +13580,10 @@ module Google
13518
13580
  @recreating = args[:recreating] if args.key?(:recreating)
13519
13581
  @refreshing = args[:refreshing] if args.key?(:refreshing)
13520
13582
  @restarting = args[:restarting] if args.key?(:restarting)
13583
+ @resuming = args[:resuming] if args.key?(:resuming)
13584
+ @starting = args[:starting] if args.key?(:starting)
13585
+ @stopping = args[:stopping] if args.key?(:stopping)
13586
+ @suspending = args[:suspending] if args.key?(:suspending)
13521
13587
  @verifying = args[:verifying] if args.key?(:verifying)
13522
13588
  end
13523
13589
  end
@@ -15276,6 +15342,28 @@ module Google
15276
15342
  end
15277
15343
  end
15278
15344
 
15345
+ # Additional instance params.
15346
+ class InstanceParams
15347
+ include Google::Apis::Core::Hashable
15348
+
15349
+ # Resource manager tags to be bound to the instance. Tag keys and values have
15350
+ # the same definition as resource manager tags. Keys must be in the format `
15351
+ # tagKeys/`tag_key_id``, and values are in the format `tagValues/456`. The field
15352
+ # is ignored (both PUT & PATCH) when empty.
15353
+ # Corresponds to the JSON property `resourceManagerTags`
15354
+ # @return [Hash<String,String>]
15355
+ attr_accessor :resource_manager_tags
15356
+
15357
+ def initialize(**args)
15358
+ update!(**args)
15359
+ end
15360
+
15361
+ # Update properties of this object
15362
+ def update!(**args)
15363
+ @resource_manager_tags = args[:resource_manager_tags] if args.key?(:resource_manager_tags)
15364
+ end
15365
+ end
15366
+
15279
15367
  #
15280
15368
  class InstanceProperties
15281
15369
  include Google::Apis::Core::Hashable
@@ -15379,7 +15467,15 @@ module Google
15379
15467
  # @return [Google::Apis::ComputeBeta::ReservationAffinity]
15380
15468
  attr_accessor :reservation_affinity
15381
15469
 
15382
- # Resource policies (names, not ULRs) applied to instances created from these
15470
+ # Resource manager tags to be bound to the instance. Tag keys and values have
15471
+ # the same definition as resource manager tags. Keys must be in the format `
15472
+ # tagKeys/`tag_key_id``, and values are in the format `tagValues/456`. The field
15473
+ # is ignored (both PUT & PATCH) when empty.
15474
+ # Corresponds to the JSON property `resourceManagerTags`
15475
+ # @return [Hash<String,String>]
15476
+ attr_accessor :resource_manager_tags
15477
+
15478
+ # Resource policies (names, not URLs) applied to instances created from these
15383
15479
  # properties. Note that for MachineImage, this is not supported yet.
15384
15480
  # Corresponds to the JSON property `resourcePolicies`
15385
15481
  # @return [Array<String>]
@@ -15435,6 +15531,7 @@ module Google
15435
15531
  @post_key_revocation_action_type = args[:post_key_revocation_action_type] if args.key?(:post_key_revocation_action_type)
15436
15532
  @private_ipv6_google_access = args[:private_ipv6_google_access] if args.key?(:private_ipv6_google_access)
15437
15533
  @reservation_affinity = args[:reservation_affinity] if args.key?(:reservation_affinity)
15534
+ @resource_manager_tags = args[:resource_manager_tags] if args.key?(:resource_manager_tags)
15438
15535
  @resource_policies = args[:resource_policies] if args.key?(:resource_policies)
15439
15536
  @scheduling = args[:scheduling] if args.key?(:scheduling)
15440
15537
  @service_accounts = args[:service_accounts] if args.key?(:service_accounts)
@@ -16389,6 +16486,17 @@ module Google
16389
16486
  # @return [String]
16390
16487
  attr_accessor :bandwidth
16391
16488
 
16489
+ # Up to 16 candidate prefixes that control the allocation of
16490
+ # cloudRouterIpv6Address and customerRouterIpv6Address for this attachment. Each
16491
+ # prefix must be in the Global Unique Address (GUA) space. It is highly
16492
+ # recommended that it be in a range owned by the requestor. A GUA in a range
16493
+ # owned by Google will cause the request to fail. Google will select an
16494
+ # available prefix from the supplied candidates or fail the request. If not
16495
+ # supplied, a /125 from a Google-owned GUA block will be selected.
16496
+ # Corresponds to the JSON property `candidateIpv6Subnets`
16497
+ # @return [Array<String>]
16498
+ attr_accessor :candidate_ipv6_subnets
16499
+
16392
16500
  # Up to 16 candidate prefixes that can be used to restrict the allocation of
16393
16501
  # cloudRouterIpAddress and customerRouterIpAddress for this attachment. All
16394
16502
  # prefixes must be within link-local address space (169.254.0.0/16) and must be /
@@ -16406,6 +16514,20 @@ module Google
16406
16514
  # @return [String]
16407
16515
  attr_accessor :cloud_router_ip_address
16408
16516
 
16517
+ # [Output Only] IPv6 address + prefix length to be configured on Cloud Router
16518
+ # Interface for this interconnect attachment.
16519
+ # Corresponds to the JSON property `cloudRouterIpv6Address`
16520
+ # @return [String]
16521
+ attr_accessor :cloud_router_ipv6_address
16522
+
16523
+ # If supplied, the interface id (index within the subnet) to be used for the
16524
+ # cloud router address. The id must be in the range of 1 to 6. If a subnet mask
16525
+ # is supplied, it must be /125, and the subnet should either be 0 or match the
16526
+ # selected subnet.
16527
+ # Corresponds to the JSON property `cloudRouterIpv6InterfaceId`
16528
+ # @return [String]
16529
+ attr_accessor :cloud_router_ipv6_interface_id
16530
+
16409
16531
  # [Output Only] Creation timestamp in RFC3339 text format.
16410
16532
  # Corresponds to the JSON property `creationTimestamp`
16411
16533
  # @return [String]
@@ -16417,7 +16539,24 @@ module Google
16417
16539
  # @return [String]
16418
16540
  attr_accessor :customer_router_ip_address
16419
16541
 
16420
- # [Output Only] Dataplane version for this InterconnectAttachment.
16542
+ # [Output Only] IPv6 address + prefix length to be configured on the customer
16543
+ # router subinterface for this interconnect attachment.
16544
+ # Corresponds to the JSON property `customerRouterIpv6Address`
16545
+ # @return [String]
16546
+ attr_accessor :customer_router_ipv6_address
16547
+
16548
+ # If supplied, the interface id (index within the subnet) to be used for the
16549
+ # customer router address. The id must be in the range of 1 to 6. If a subnet
16550
+ # mask is supplied, it must be /125, and the subnet should either be 0 or match
16551
+ # the selected subnet.
16552
+ # Corresponds to the JSON property `customerRouterIpv6InterfaceId`
16553
+ # @return [String]
16554
+ attr_accessor :customer_router_ipv6_interface_id
16555
+
16556
+ # [Output only for types PARTNER and DEDICATED. Not present for PARTNER_PROVIDER.
16557
+ # ] Dataplane version for this InterconnectAttachment. This field is only
16558
+ # present for Dataplane version 2 and higher. Absence of this field in the API
16559
+ # output indicates that the Dataplane is version 1.
16421
16560
  # Corresponds to the JSON property `dataplaneVersion`
16422
16561
  # @return [Fixnum]
16423
16562
  attr_accessor :dataplane_version
@@ -16595,6 +16734,14 @@ module Google
16595
16734
  # @return [String]
16596
16735
  attr_accessor :self_link
16597
16736
 
16737
+ # The stack type for this interconnect attachment to identify whether the IPv6
16738
+ # feature is enabled or not. If not specified, IPV4_ONLY will be used. This
16739
+ # field can be both set at interconnect attachments creation and update
16740
+ # interconnect attachment operations.
16741
+ # Corresponds to the JSON property `stackType`
16742
+ # @return [String]
16743
+ attr_accessor :stack_type
16744
+
16598
16745
  # [Output Only] The current state of this attachment's functionality. Enum
16599
16746
  # values ACTIVE and UNPROVISIONED are shared by DEDICATED/PRIVATE, PARTNER, and
16600
16747
  # PARTNER_PROVIDER interconnect attachments, while enum values PENDING_PARTNER,
@@ -16637,10 +16784,15 @@ module Google
16637
16784
  def update!(**args)
16638
16785
  @admin_enabled = args[:admin_enabled] if args.key?(:admin_enabled)
16639
16786
  @bandwidth = args[:bandwidth] if args.key?(:bandwidth)
16787
+ @candidate_ipv6_subnets = args[:candidate_ipv6_subnets] if args.key?(:candidate_ipv6_subnets)
16640
16788
  @candidate_subnets = args[:candidate_subnets] if args.key?(:candidate_subnets)
16641
16789
  @cloud_router_ip_address = args[:cloud_router_ip_address] if args.key?(:cloud_router_ip_address)
16790
+ @cloud_router_ipv6_address = args[:cloud_router_ipv6_address] if args.key?(:cloud_router_ipv6_address)
16791
+ @cloud_router_ipv6_interface_id = args[:cloud_router_ipv6_interface_id] if args.key?(:cloud_router_ipv6_interface_id)
16642
16792
  @creation_timestamp = args[:creation_timestamp] if args.key?(:creation_timestamp)
16643
16793
  @customer_router_ip_address = args[:customer_router_ip_address] if args.key?(:customer_router_ip_address)
16794
+ @customer_router_ipv6_address = args[:customer_router_ipv6_address] if args.key?(:customer_router_ipv6_address)
16795
+ @customer_router_ipv6_interface_id = args[:customer_router_ipv6_interface_id] if args.key?(:customer_router_ipv6_interface_id)
16644
16796
  @dataplane_version = args[:dataplane_version] if args.key?(:dataplane_version)
16645
16797
  @description = args[:description] if args.key?(:description)
16646
16798
  @edge_availability_domain = args[:edge_availability_domain] if args.key?(:edge_availability_domain)
@@ -16663,6 +16815,7 @@ module Google
16663
16815
  @router = args[:router] if args.key?(:router)
16664
16816
  @satisfies_pzs = args[:satisfies_pzs] if args.key?(:satisfies_pzs)
16665
16817
  @self_link = args[:self_link] if args.key?(:self_link)
16818
+ @stack_type = args[:stack_type] if args.key?(:stack_type)
16666
16819
  @state = args[:state] if args.key?(:state)
16667
16820
  @type = args[:type] if args.key?(:type)
16668
16821
  @vlan_tag8021q = args[:vlan_tag8021q] if args.key?(:vlan_tag8021q)
@@ -18184,7 +18337,7 @@ module Google
18184
18337
  class LocationPolicyLocation
18185
18338
  include Google::Apis::Core::Hashable
18186
18339
 
18187
- # Preference for a given location: ALLOW or DENY.
18340
+ # Preference for a given location.
18188
18341
  # Corresponds to the JSON property `preference`
18189
18342
  # @return [String]
18190
18343
  attr_accessor :preference
@@ -18363,6 +18516,11 @@ module Google
18363
18516
  # @return [Fixnum]
18364
18517
  attr_accessor :id
18365
18518
 
18519
+ # [Output Only] Properties of source instance
18520
+ # Corresponds to the JSON property `instanceProperties`
18521
+ # @return [Google::Apis::ComputeBeta::InstanceProperties]
18522
+ attr_accessor :instance_properties
18523
+
18366
18524
  # [Output Only] The resource type, which is always compute#machineImage for
18367
18525
  # machine image.
18368
18526
  # Corresponds to the JSON property `kind`
@@ -18398,6 +18556,12 @@ module Google
18398
18556
  attr_accessor :satisfies_pzs
18399
18557
  alias_method :satisfies_pzs?, :satisfies_pzs
18400
18558
 
18559
+ # An array of Machine Image specific properties for disks attached to the source
18560
+ # instance
18561
+ # Corresponds to the JSON property `savedDisks`
18562
+ # @return [Array<Google::Apis::ComputeBeta::SavedDisk>]
18563
+ attr_accessor :saved_disks
18564
+
18401
18565
  # [Output Only] The URL for this machine image. The server defines this URL.
18402
18566
  # Corresponds to the JSON property `selfLink`
18403
18567
  # @return [String]
@@ -18418,7 +18582,8 @@ module Google
18418
18582
  # @return [String]
18419
18583
  attr_accessor :source_instance
18420
18584
 
18421
- # [Output Only] Properties of source instance.
18585
+ # DEPRECATED: Please use compute#instanceProperties instead. New properties will
18586
+ # not be added to this field.
18422
18587
  # Corresponds to the JSON property `sourceInstanceProperties`
18423
18588
  # @return [Google::Apis::ComputeBeta::SourceInstanceProperties]
18424
18589
  attr_accessor :source_instance_properties
@@ -18450,10 +18615,12 @@ module Google
18450
18615
  @description = args[:description] if args.key?(:description)
18451
18616
  @guest_flush = args[:guest_flush] if args.key?(:guest_flush)
18452
18617
  @id = args[:id] if args.key?(:id)
18618
+ @instance_properties = args[:instance_properties] if args.key?(:instance_properties)
18453
18619
  @kind = args[:kind] if args.key?(:kind)
18454
18620
  @machine_image_encryption_key = args[:machine_image_encryption_key] if args.key?(:machine_image_encryption_key)
18455
18621
  @name = args[:name] if args.key?(:name)
18456
18622
  @satisfies_pzs = args[:satisfies_pzs] if args.key?(:satisfies_pzs)
18623
+ @saved_disks = args[:saved_disks] if args.key?(:saved_disks)
18457
18624
  @self_link = args[:self_link] if args.key?(:self_link)
18458
18625
  @source_disk_encryption_keys = args[:source_disk_encryption_keys] if args.key?(:source_disk_encryption_keys)
18459
18626
  @source_instance = args[:source_instance] if args.key?(:source_instance)
@@ -20565,7 +20732,7 @@ module Google
20565
20732
  # @return [String]
20566
20733
  attr_accessor :ipv6_access_type
20567
20734
 
20568
- # [Output Only] An IPv6 internal network address for this network interface.
20735
+ # An IPv6 internal network address for this network interface.
20569
20736
  # Corresponds to the JSON property `ipv6Address`
20570
20737
  # @return [String]
20571
20738
  attr_accessor :ipv6_address
@@ -24823,6 +24990,18 @@ module Google
24823
24990
  # @return [Hash<String,Google::Apis::ComputeBeta::PreservedStatePreservedDisk>]
24824
24991
  attr_accessor :disks
24825
24992
 
24993
+ # Preserved external IPs defined for this instance. This map is keyed with the
24994
+ # name of the network interface.
24995
+ # Corresponds to the JSON property `externalIPs`
24996
+ # @return [Hash<String,Google::Apis::ComputeBeta::PreservedStatePreservedNetworkIp>]
24997
+ attr_accessor :external_i_ps
24998
+
24999
+ # Preserved internal IPs defined for this instance. This map is keyed with the
25000
+ # name of the network interface.
25001
+ # Corresponds to the JSON property `internalIPs`
25002
+ # @return [Hash<String,Google::Apis::ComputeBeta::PreservedStatePreservedNetworkIp>]
25003
+ attr_accessor :internal_i_ps
25004
+
24826
25005
  # Preserved metadata defined for this instance.
24827
25006
  # Corresponds to the JSON property `metadata`
24828
25007
  # @return [Hash<String,String>]
@@ -24835,6 +25014,8 @@ module Google
24835
25014
  # Update properties of this object
24836
25015
  def update!(**args)
24837
25016
  @disks = args[:disks] if args.key?(:disks)
25017
+ @external_i_ps = args[:external_i_ps] if args.key?(:external_i_ps)
25018
+ @internal_i_ps = args[:internal_i_ps] if args.key?(:internal_i_ps)
24838
25019
  @metadata = args[:metadata] if args.key?(:metadata)
24839
25020
  end
24840
25021
  end
@@ -24876,6 +25057,60 @@ module Google
24876
25057
  end
24877
25058
  end
24878
25059
 
25060
+ #
25061
+ class PreservedStatePreservedNetworkIp
25062
+ include Google::Apis::Core::Hashable
25063
+
25064
+ # These stateful IPs will never be released during autohealing, update or VM
25065
+ # instance recreate operations. This flag is used to configure if the IP
25066
+ # reservation should be deleted after it is no longer used by the group, e.g.
25067
+ # when the given instance or the whole group is deleted.
25068
+ # Corresponds to the JSON property `autoDelete`
25069
+ # @return [String]
25070
+ attr_accessor :auto_delete
25071
+
25072
+ # Ip address representation
25073
+ # Corresponds to the JSON property `ipAddress`
25074
+ # @return [Google::Apis::ComputeBeta::PreservedStatePreservedNetworkIpIpAddress]
25075
+ attr_accessor :ip_address
25076
+
25077
+ def initialize(**args)
25078
+ update!(**args)
25079
+ end
25080
+
25081
+ # Update properties of this object
25082
+ def update!(**args)
25083
+ @auto_delete = args[:auto_delete] if args.key?(:auto_delete)
25084
+ @ip_address = args[:ip_address] if args.key?(:ip_address)
25085
+ end
25086
+ end
25087
+
25088
+ #
25089
+ class PreservedStatePreservedNetworkIpIpAddress
25090
+ include Google::Apis::Core::Hashable
25091
+
25092
+ # The URL of the reservation for this IP address.
25093
+ # Corresponds to the JSON property `address`
25094
+ # @return [String]
25095
+ attr_accessor :address
25096
+
25097
+ # An IPv4 internal network address to assign to the instance for this network
25098
+ # interface.
25099
+ # Corresponds to the JSON property `literal`
25100
+ # @return [String]
25101
+ attr_accessor :literal
25102
+
25103
+ def initialize(**args)
25104
+ update!(**args)
25105
+ end
25106
+
25107
+ # Update properties of this object
25108
+ def update!(**args)
25109
+ @address = args[:address] if args.key?(:address)
25110
+ @literal = args[:literal] if args.key?(:literal)
25111
+ end
25112
+ end
25113
+
24879
25114
  # Represents a Project resource. A project is used to organize resources in a
24880
25115
  # Google Cloud Platform environment. For more information, read about the
24881
25116
  # Resource Hierarchy.
@@ -29692,6 +29927,12 @@ module Google
29692
29927
  # @return [String]
29693
29928
  attr_accessor :enable
29694
29929
 
29930
+ # Enable IPv6 traffic over BGP Peer. If not specified, it is disabled by default.
29931
+ # Corresponds to the JSON property `enableIpv6`
29932
+ # @return [Boolean]
29933
+ attr_accessor :enable_ipv6
29934
+ alias_method :enable_ipv6?, :enable_ipv6
29935
+
29695
29936
  # Name of the interface the BGP peer is associated with.
29696
29937
  # Corresponds to the JSON property `interfaceName`
29697
29938
  # @return [String]
@@ -29703,6 +29944,11 @@ module Google
29703
29944
  # @return [String]
29704
29945
  attr_accessor :ip_address
29705
29946
 
29947
+ # IPv6 address of the interface inside Google Cloud Platform.
29948
+ # Corresponds to the JSON property `ipv6NexthopAddress`
29949
+ # @return [String]
29950
+ attr_accessor :ipv6_nexthop_address
29951
+
29706
29952
  # [Output Only] The resource that configures and manages this BGP peer. -
29707
29953
  # MANAGED_BY_USER is the default value and can be managed by you or other users -
29708
29954
  # MANAGED_BY_ATTACHMENT is a BGP peer that is configured and managed by Cloud
@@ -29735,6 +29981,11 @@ module Google
29735
29981
  # @return [String]
29736
29982
  attr_accessor :peer_ip_address
29737
29983
 
29984
+ # IPv6 address of the BGP interface outside Google Cloud Platform.
29985
+ # Corresponds to the JSON property `peerIpv6NexthopAddress`
29986
+ # @return [String]
29987
+ attr_accessor :peer_ipv6_nexthop_address
29988
+
29738
29989
  # URI of the VM instance that is used as third-party router appliances such as
29739
29990
  # Next Gen Firewalls, Virtual Routers, or Router Appliances. The VM instance
29740
29991
  # must be located in zones contained in the same region as this Cloud Router.
@@ -29755,12 +30006,15 @@ module Google
29755
30006
  @advertised_route_priority = args[:advertised_route_priority] if args.key?(:advertised_route_priority)
29756
30007
  @bfd = args[:bfd] if args.key?(:bfd)
29757
30008
  @enable = args[:enable] if args.key?(:enable)
30009
+ @enable_ipv6 = args[:enable_ipv6] if args.key?(:enable_ipv6)
29758
30010
  @interface_name = args[:interface_name] if args.key?(:interface_name)
29759
30011
  @ip_address = args[:ip_address] if args.key?(:ip_address)
30012
+ @ipv6_nexthop_address = args[:ipv6_nexthop_address] if args.key?(:ipv6_nexthop_address)
29760
30013
  @management_type = args[:management_type] if args.key?(:management_type)
29761
30014
  @name = args[:name] if args.key?(:name)
29762
30015
  @peer_asn = args[:peer_asn] if args.key?(:peer_asn)
29763
30016
  @peer_ip_address = args[:peer_ip_address] if args.key?(:peer_ip_address)
30017
+ @peer_ipv6_nexthop_address = args[:peer_ipv6_nexthop_address] if args.key?(:peer_ipv6_nexthop_address)
29764
30018
  @router_appliance_instance = args[:router_appliance_instance] if args.key?(:router_appliance_instance)
29765
30019
  end
29766
30020
  end
@@ -30825,7 +31079,8 @@ module Google
30825
31079
  end
30826
31080
  end
30827
31081
 
30828
- # An instance-attached disk resource.
31082
+ # DEPRECATED: Please use compute#savedDisk instead. An instance-attached disk
31083
+ # resource.
30829
31084
  class SavedAttachedDisk
30830
31085
  include Google::Apis::Core::Hashable
30831
31086
 
@@ -30948,6 +31203,47 @@ module Google
30948
31203
  end
30949
31204
  end
30950
31205
 
31206
+ # An instance-attached disk resource.
31207
+ class SavedDisk
31208
+ include Google::Apis::Core::Hashable
31209
+
31210
+ # [Output Only] Type of the resource. Always compute#savedDisk for attached
31211
+ # disks.
31212
+ # Corresponds to the JSON property `kind`
31213
+ # @return [String]
31214
+ attr_accessor :kind
31215
+
31216
+ # Specifies a URL of the disk attached to the source instance.
31217
+ # Corresponds to the JSON property `sourceDisk`
31218
+ # @return [String]
31219
+ attr_accessor :source_disk
31220
+
31221
+ # [Output Only] Size of the individual disk snapshot used by this machine image.
31222
+ # Corresponds to the JSON property `storageBytes`
31223
+ # @return [Fixnum]
31224
+ attr_accessor :storage_bytes
31225
+
31226
+ # [Output Only] An indicator whether storageBytes is in a stable state or it is
31227
+ # being adjusted as a result of shared storage reallocation. This status can
31228
+ # either be UPDATING, meaning the size of the snapshot is being updated, or
31229
+ # UP_TO_DATE, meaning the size of the snapshot is up-to-date.
31230
+ # Corresponds to the JSON property `storageBytesStatus`
31231
+ # @return [String]
31232
+ attr_accessor :storage_bytes_status
31233
+
31234
+ def initialize(**args)
31235
+ update!(**args)
31236
+ end
31237
+
31238
+ # Update properties of this object
31239
+ def update!(**args)
31240
+ @kind = args[:kind] if args.key?(:kind)
31241
+ @source_disk = args[:source_disk] if args.key?(:source_disk)
31242
+ @storage_bytes = args[:storage_bytes] if args.key?(:storage_bytes)
31243
+ @storage_bytes_status = args[:storage_bytes_status] if args.key?(:storage_bytes_status)
31244
+ end
31245
+ end
31246
+
30951
31247
  #
30952
31248
  class ScalingScheduleStatus
30953
31249
  include Google::Apis::Core::Hashable
@@ -31041,8 +31337,8 @@ module Google
31041
31337
 
31042
31338
  # Defines the maintenance behavior for this instance. For standard instances,
31043
31339
  # the default behavior is MIGRATE. For preemptible instances, the default and
31044
- # only possible behavior is TERMINATE. For more information, see Setting
31045
- # Instance Scheduling Options.
31340
+ # only possible behavior is TERMINATE. For more information, see Set VM
31341
+ # availability policies.
31046
31342
  # Corresponds to the JSON property `onHostMaintenance`
31047
31343
  # @return [String]
31048
31344
  attr_accessor :on_host_maintenance
@@ -31279,6 +31575,11 @@ module Google
31279
31575
  # @return [String]
31280
31576
  attr_accessor :parent
31281
31577
 
31578
+ #
31579
+ # Corresponds to the JSON property `recaptchaOptionsConfig`
31580
+ # @return [Google::Apis::ComputeBeta::SecurityPolicyRecaptchaOptionsConfig]
31581
+ attr_accessor :recaptcha_options_config
31582
+
31282
31583
  # [Output Only] Total count of all security policy rule tuples. A security
31283
31584
  # policy can not exceed a set number of tuples.
31284
31585
  # Corresponds to the JSON property `ruleTupleCount`
@@ -31333,6 +31634,7 @@ module Google
31333
31634
  @labels = args[:labels] if args.key?(:labels)
31334
31635
  @name = args[:name] if args.key?(:name)
31335
31636
  @parent = args[:parent] if args.key?(:parent)
31637
+ @recaptcha_options_config = args[:recaptcha_options_config] if args.key?(:recaptcha_options_config)
31336
31638
  @rule_tuple_count = args[:rule_tuple_count] if args.key?(:rule_tuple_count)
31337
31639
  @rules = args[:rules] if args.key?(:rules)
31338
31640
  @self_link = args[:self_link] if args.key?(:self_link)
@@ -31561,6 +31863,29 @@ module Google
31561
31863
  end
31562
31864
  end
31563
31865
 
31866
+ #
31867
+ class SecurityPolicyRecaptchaOptionsConfig
31868
+ include Google::Apis::Core::Hashable
31869
+
31870
+ # An optional field to supply a reCAPTCHA site key to be used for all the rules
31871
+ # using the redirect action with the type of GOOGLE_RECAPTCHA under the security
31872
+ # policy. The specified site key needs to be created from the reCAPTCHA API. The
31873
+ # user is responsible for the validity of the specified site key. If not
31874
+ # specified, a Google-managed site key is used.
31875
+ # Corresponds to the JSON property `redirectSiteKey`
31876
+ # @return [String]
31877
+ attr_accessor :redirect_site_key
31878
+
31879
+ def initialize(**args)
31880
+ update!(**args)
31881
+ end
31882
+
31883
+ # Update properties of this object
31884
+ def update!(**args)
31885
+ @redirect_site_key = args[:redirect_site_key] if args.key?(:redirect_site_key)
31886
+ end
31887
+ end
31888
+
31564
31889
  #
31565
31890
  class SecurityPolicyReference
31566
31891
  include Google::Apis::Core::Hashable
@@ -31585,9 +31910,17 @@ module Google
31585
31910
  class SecurityPolicyRule
31586
31911
  include Google::Apis::Core::Hashable
31587
31912
 
31588
- # The Action to perform when the client connection triggers the rule. Can
31589
- # currently be either "allow" or "deny()" where valid values for status are 403,
31590
- # 404, and 502.
31913
+ # The Action to perform when the rule is matched. The following are the valid
31914
+ # actions: - allow: allow access to target. - deny(): deny access to target,
31915
+ # returns the HTTP response code specified (valid values are 403, 404, and 502).
31916
+ # - rate_based_ban: limit client traffic to the configured threshold and ban the
31917
+ # client if the traffic exceeds the threshold. Configure parameters for this
31918
+ # action in RateLimitOptions. Requires rate_limit_options to be set. - redirect:
31919
+ # redirect to a different target. This can either be an internal reCAPTCHA
31920
+ # redirect, or an external URL-based redirect via a 302 response. Parameters for
31921
+ # this action can be configured via redirectOptions. - throttle: limit client
31922
+ # traffic to the configured threshold. Configure parameters for this action in
31923
+ # rateLimitOptions. Requires rate_limit_options to be set for this.
31591
31924
  # Corresponds to the JSON property `action`
31592
31925
  # @return [String]
31593
31926
  attr_accessor :action
@@ -31894,33 +32227,45 @@ module Google
31894
32227
  attr_accessor :conform_action
31895
32228
 
31896
32229
  # Determines the key to enforce the rate_limit_threshold on. Possible values are:
31897
- # "ALL" -- A single rate limit threshold is applied to all the requests
31898
- # matching this rule. This is the default value if this field 'enforce_on_key'
31899
- # is not configured. "ALL_IPS" -- This definition, equivalent to "ALL", has been
31900
- # depprecated. "IP" -- The source IP address of the request is the key. Each IP
31901
- # has this limit enforced separately. "HTTP_HEADER" -- The value of the HTTP
31902
- # header whose name is configured under "enforce_on_key_name". The key value is
32230
+ # - ALL: A single rate limit threshold is applied to all the requests matching
32231
+ # this rule. This is the default value if this field 'enforce_on_key' is not
32232
+ # configured. - IP: The source IP address of the request is the key. Each IP has
32233
+ # this limit enforced separately. - HTTP_HEADER: The value of the HTTP header
32234
+ # whose name is configured under "enforce_on_key_name". The key value is
31903
32235
  # truncated to the first 128 bytes of the header value. If no such header is
31904
- # present in the request, the key type defaults to "ALL". "XFF_IP" -- The first
31905
- # IP address (i.e. the originating client IP address) specified in the list of
31906
- # IPs under X-Forwarded-For HTTP header. If no such header is present or the
31907
- # value is not a valid IP, the key type defaults to "ALL".
32236
+ # present in the request, the key type defaults to ALL. - XFF_IP: The first IP
32237
+ # address (i.e. the originating client IP address) specified in the list of IPs
32238
+ # under X-Forwarded-For HTTP header. If no such header is present or the value
32239
+ # is not a valid IP, the key type defaults to ALL. - HTTP_COOKIE: The value of
32240
+ # the HTTP cookie whose name is configured under "enforce_on_key_name". The key
32241
+ # value is truncated to the first 128 bytes of the cookie value. If no such
32242
+ # cookie is present in the request, the key type defaults to ALL.
31908
32243
  # Corresponds to the JSON property `enforceOnKey`
31909
32244
  # @return [String]
31910
32245
  attr_accessor :enforce_on_key
31911
32246
 
31912
32247
  # Rate limit key name applicable only for the following key types: HTTP_HEADER --
31913
- # Name of the HTTP header whose value is taken as the key value.
32248
+ # Name of the HTTP header whose value is taken as the key value. HTTP_COOKIE --
32249
+ # Name of the HTTP cookie whose value is taken as the key value.
31914
32250
  # Corresponds to the JSON property `enforceOnKeyName`
31915
32251
  # @return [String]
31916
32252
  attr_accessor :enforce_on_key_name
31917
32253
 
31918
- # When a request is denied, returns the HTTP response code specified. Valid
31919
- # options are "deny()" where valid values for status are 403, 404, 429, and 502.
32254
+ # Action to take for requests that are above the configured rate limit threshold,
32255
+ # to either deny with a specified HTTP response code, or redirect to a
32256
+ # different endpoint. Valid options are "deny()" where valid values for status
32257
+ # are 403, 404, 429, and 502, and "redirect" where the redirect parameters come
32258
+ # from exceed_redirect_options below.
31920
32259
  # Corresponds to the JSON property `exceedAction`
31921
32260
  # @return [String]
31922
32261
  attr_accessor :exceed_action
31923
32262
 
32263
+ # Parameters defining the redirect action that is used as the exceed action.
32264
+ # Cannot be specified if the exceed action is not redirect.
32265
+ # Corresponds to the JSON property `exceedRedirectOptions`
32266
+ # @return [Google::Apis::ComputeBeta::SecurityPolicyRuleRedirectOptions]
32267
+ attr_accessor :exceed_redirect_options
32268
+
31924
32269
  # Threshold at which to begin ratelimiting.
31925
32270
  # Corresponds to the JSON property `rateLimitThreshold`
31926
32271
  # @return [Google::Apis::ComputeBeta::SecurityPolicyRuleRateLimitOptionsThreshold]
@@ -31938,6 +32283,7 @@ module Google
31938
32283
  @enforce_on_key = args[:enforce_on_key] if args.key?(:enforce_on_key)
31939
32284
  @enforce_on_key_name = args[:enforce_on_key_name] if args.key?(:enforce_on_key_name)
31940
32285
  @exceed_action = args[:exceed_action] if args.key?(:exceed_action)
32286
+ @exceed_redirect_options = args[:exceed_redirect_options] if args.key?(:exceed_redirect_options)
31941
32287
  @rate_limit_threshold = args[:rate_limit_threshold] if args.key?(:rate_limit_threshold)
31942
32288
  end
31943
32289
  end
@@ -32176,6 +32522,13 @@ module Google
32176
32522
  # @return [String]
32177
32523
  attr_accessor :description
32178
32524
 
32525
+ # If specified, the domain name will be used during the integration between the
32526
+ # PSC connected endpoints and the Cloud DNS. For example, this is a valid domain
32527
+ # name: "p.mycompany.com.". Current max number of domain names supported is 1.
32528
+ # Corresponds to the JSON property `domainNames`
32529
+ # @return [Array<String>]
32530
+ attr_accessor :domain_names
32531
+
32179
32532
  # If true, enable the proxy protocol which is for supplying client TCP/IP
32180
32533
  # address data in TCP connections that traverse proxies on their way to
32181
32534
  # destination servers.
@@ -32264,6 +32617,7 @@ module Google
32264
32617
  @consumer_reject_lists = args[:consumer_reject_lists] if args.key?(:consumer_reject_lists)
32265
32618
  @creation_timestamp = args[:creation_timestamp] if args.key?(:creation_timestamp)
32266
32619
  @description = args[:description] if args.key?(:description)
32620
+ @domain_names = args[:domain_names] if args.key?(:domain_names)
32267
32621
  @enable_proxy_protocol = args[:enable_proxy_protocol] if args.key?(:enable_proxy_protocol)
32268
32622
  @fingerprint = args[:fingerprint] if args.key?(:fingerprint)
32269
32623
  @id = args[:id] if args.key?(:id)
@@ -33365,7 +33719,8 @@ module Google
33365
33719
  end
33366
33720
  end
33367
33721
 
33368
- #
33722
+ # DEPRECATED: Please use compute#instanceProperties instead. New properties will
33723
+ # not be added to this field.
33369
33724
  class SourceInstanceProperties
33370
33725
  include Google::Apis::Core::Hashable
33371
33726
 
@@ -34355,6 +34710,20 @@ module Google
34355
34710
  # @return [Hash<String,Google::Apis::ComputeBeta::StatefulPolicyPreservedStateDiskDevice>]
34356
34711
  attr_accessor :disks
34357
34712
 
34713
+ # External network IPs assigned to the instances that will be preserved on
34714
+ # instance delete, update, etc. This map is keyed with the network interface
34715
+ # name.
34716
+ # Corresponds to the JSON property `externalIPs`
34717
+ # @return [Hash<String,Google::Apis::ComputeBeta::StatefulPolicyPreservedStateNetworkIp>]
34718
+ attr_accessor :external_i_ps
34719
+
34720
+ # Internal network IPs assigned to the instances that will be preserved on
34721
+ # instance delete, update, etc. This map is keyed with the network interface
34722
+ # name.
34723
+ # Corresponds to the JSON property `internalIPs`
34724
+ # @return [Hash<String,Google::Apis::ComputeBeta::StatefulPolicyPreservedStateNetworkIp>]
34725
+ attr_accessor :internal_i_ps
34726
+
34358
34727
  def initialize(**args)
34359
34728
  update!(**args)
34360
34729
  end
@@ -34362,6 +34731,8 @@ module Google
34362
34731
  # Update properties of this object
34363
34732
  def update!(**args)
34364
34733
  @disks = args[:disks] if args.key?(:disks)
34734
+ @external_i_ps = args[:external_i_ps] if args.key?(:external_i_ps)
34735
+ @internal_i_ps = args[:internal_i_ps] if args.key?(:internal_i_ps)
34365
34736
  end
34366
34737
  end
34367
34738
 
@@ -34388,6 +34759,28 @@ module Google
34388
34759
  end
34389
34760
  end
34390
34761
 
34762
+ #
34763
+ class StatefulPolicyPreservedStateNetworkIp
34764
+ include Google::Apis::Core::Hashable
34765
+
34766
+ # These stateful IPs will never be released during autohealing, update or VM
34767
+ # instance recreate operations. This flag is used to configure if the IP
34768
+ # reservation should be deleted after it is no longer used by the group, e.g.
34769
+ # when the given instance or the whole group is deleted.
34770
+ # Corresponds to the JSON property `autoDelete`
34771
+ # @return [String]
34772
+ attr_accessor :auto_delete
34773
+
34774
+ def initialize(**args)
34775
+ update!(**args)
34776
+ end
34777
+
34778
+ # Update properties of this object
34779
+ def update!(**args)
34780
+ @auto_delete = args[:auto_delete] if args.key?(:auto_delete)
34781
+ end
34782
+ end
34783
+
34391
34784
  # Represents a Subnetwork resource. A subnetwork (also known as a subnet) is a
34392
34785
  # logical partition of a Virtual Private Cloud network with one primary IP range
34393
34786
  # and zero or more secondary IP ranges. For more information, read Virtual
@@ -34482,7 +34875,7 @@ module Google
34482
34875
  attr_accessor :ipv6_access_type
34483
34876
 
34484
34877
  # [Output Only] The range of internal IPv6 addresses that are owned by this
34485
- # subnetwork.
34878
+ # subnetwork. Note this will be for private google access only eventually.
34486
34879
  # Corresponds to the JSON property `ipv6CidrRange`
34487
34880
  # @return [String]
34488
34881
  attr_accessor :ipv6_cidr_range
@@ -39845,6 +40238,12 @@ module Google
39845
40238
  # @return [String]
39846
40239
  attr_accessor :self_link
39847
40240
 
40241
+ # The stack type for this VPN gateway to identify the IP protocols that are
40242
+ # enabled. If not specified, IPV4_ONLY will be used.
40243
+ # Corresponds to the JSON property `stackType`
40244
+ # @return [String]
40245
+ attr_accessor :stack_type
40246
+
39848
40247
  # The list of VPN interfaces associated with this VPN gateway.
39849
40248
  # Corresponds to the JSON property `vpnInterfaces`
39850
40249
  # @return [Array<Google::Apis::ComputeBeta::VpnGatewayVpnGatewayInterface>]
@@ -39866,6 +40265,7 @@ module Google
39866
40265
  @network = args[:network] if args.key?(:network)
39867
40266
  @region = args[:region] if args.key?(:region)
39868
40267
  @self_link = args[:self_link] if args.key?(:self_link)
40268
+ @stack_type = args[:stack_type] if args.key?(:stack_type)
39869
40269
  @vpn_interfaces = args[:vpn_interfaces] if args.key?(:vpn_interfaces)
39870
40270
  end
39871
40271
  end