google-apis-compute_beta 0.20.0 → 0.24.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.
@@ -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