google-apis-compute_alpha 0.20.0 → 0.24.0

Sign up to get free protection for your applications and to get access to all the features.
@@ -470,15 +470,15 @@ module Google
470
470
  class AccessConfig
471
471
  include Google::Apis::Core::Hashable
472
472
 
473
- # [Output Only] The first IPv6 address of the external IPv6 range associated
474
- # with this instance, prefix length is stored in externalIpv6PrefixLength in
473
+ # The first IPv6 address of the external IPv6 range associated with this
474
+ # instance, prefix length is stored in externalIpv6PrefixLength in
475
475
  # ipv6AccessConfig. The field is output only, an IPv6 address from a subnetwork
476
476
  # associated with the instance will be allocated dynamically.
477
477
  # Corresponds to the JSON property `externalIpv6`
478
478
  # @return [String]
479
479
  attr_accessor :external_ipv6
480
480
 
481
- # [Output Only] The prefix length of the external IPv6 range.
481
+ # The prefix length of the external IPv6 range.
482
482
  # Corresponds to the JSON property `externalIpv6PrefixLength`
483
483
  # @return [Fixnum]
484
484
  attr_accessor :external_ipv6_prefix_length
@@ -672,14 +672,14 @@ module Google
672
672
  # regional internal IP address in a subnet of a VPC network) - VPC_PEERING for
673
673
  # global internal IP addresses used for private services access allocated ranges.
674
674
  # - NAT_AUTO for the regional external IP addresses used by Cloud NAT when
675
- # allocating addresses using . - IPSEC_INTERCONNECT for addresses created from a
676
- # private IP range that are reserved for a VLAN attachment in an *IPsec-
677
- # encrypted Cloud Interconnect* configuration. These addresses are regional
678
- # resources. Not currently available publicly. - `SHARED_LOADBALANCER_VIP` for
679
- # an internal IP address that is assigned to multiple internal forwarding rules.
680
- # - `PRIVATE_SERVICE_CONNECT` for a private network address that is used to
681
- # configure Private Service Connect. Only global internal addresses can use this
682
- # purpose.
675
+ # allocating addresses using automatic NAT IP address allocation. -
676
+ # IPSEC_INTERCONNECT for addresses created from a private IP range that are
677
+ # reserved for a VLAN attachment in an *IPsec-encrypted Cloud Interconnect*
678
+ # configuration. These addresses are regional resources. Not currently available
679
+ # publicly. - `SHARED_LOADBALANCER_VIP` for an internal IP address that is
680
+ # assigned to multiple internal forwarding rules. - `PRIVATE_SERVICE_CONNECT`
681
+ # for a private network address that is used to configure Private Service
682
+ # Connect. Only global internal addresses can use this purpose.
683
683
  # Corresponds to the JSON property `purpose`
684
684
  # @return [String]
685
685
  attr_accessor :purpose
@@ -1431,7 +1431,8 @@ module Google
1431
1431
  # initializeParams.sourceSnapshot or disks.source is required except for local
1432
1432
  # SSD. If desired, you can also attach existing non-root persistent disks using
1433
1433
  # this property. This field is only applicable for persistent disks. Note that
1434
- # for InstanceTemplate, specify the disk name, not the URL for the disk.
1434
+ # for InstanceTemplate, specify the disk name for zonal disk, and the URL for
1435
+ # regional disk.
1435
1436
  # Corresponds to the JSON property `source`
1436
1437
  # @return [String]
1437
1438
  attr_accessor :source
@@ -1613,6 +1614,17 @@ module Google
1613
1614
  # @return [Google::Apis::ComputeAlpha::CustomerEncryptionKey]
1614
1615
  attr_accessor :source_image_encryption_key
1615
1616
 
1617
+ # The source instant-snapshot to create this disk. When creating a new instance,
1618
+ # one of initializeParams.sourceSnapshot or initializeParams.
1619
+ # sourceInstantSnapshot initializeParams.sourceImage or disks.source is required
1620
+ # except for local SSD. To create a disk with a snapshot that you created,
1621
+ # specify the snapshot name in the following format: us-central1-a/
1622
+ # instantSnapshots/my-backup If the source instant-snapshot is deleted later,
1623
+ # this field will not be set.
1624
+ # Corresponds to the JSON property `sourceInstantSnapshot`
1625
+ # @return [String]
1626
+ attr_accessor :source_instant_snapshot
1627
+
1616
1628
  # The source snapshot to create this disk. When creating a new instance, one of
1617
1629
  # initializeParams.sourceSnapshot or initializeParams.sourceImage or disks.
1618
1630
  # source is required except for local SSD. To create a disk with a snapshot that
@@ -1651,6 +1663,7 @@ module Google
1651
1663
  @resource_policies = args[:resource_policies] if args.key?(:resource_policies)
1652
1664
  @source_image = args[:source_image] if args.key?(:source_image)
1653
1665
  @source_image_encryption_key = args[:source_image_encryption_key] if args.key?(:source_image_encryption_key)
1666
+ @source_instant_snapshot = args[:source_instant_snapshot] if args.key?(:source_instant_snapshot)
1654
1667
  @source_snapshot = args[:source_snapshot] if args.key?(:source_snapshot)
1655
1668
  @source_snapshot_encryption_key = args[:source_snapshot_encryption_key] if args.key?(:source_snapshot_encryption_key)
1656
1669
  end
@@ -3377,14 +3390,14 @@ module Google
3377
3390
 
3378
3391
  # For load balancers that have configurable failover: [Internal TCP/UDP Load
3379
3392
  # Balancing](https://cloud.google.com/load-balancing/docs/internal/failover-
3380
- # overview) and [external TCP/UDP Load Balancing](/network/networklb-failover-
3381
- # overview). On failover or failback, this field indicates whether connection
3382
- # draining will be honored. Google Cloud has a fixed connection draining timeout
3383
- # of 10 minutes. A setting of true terminates existing TCP connections to the
3384
- # active pool during failover and failback, immediately draining traffic. A
3385
- # setting of false allows existing TCP connections to persist, even on VMs no
3386
- # longer in the active pool, for up to the duration of the connection draining
3387
- # timeout (10 minutes).
3393
+ # overview) and [external TCP/UDP Load Balancing](https://cloud.google.com/load-
3394
+ # balancing/docs/network/networklb-failover-overview). On failover or failback,
3395
+ # this field indicates whether connection draining will be honored. Google Cloud
3396
+ # has a fixed connection draining timeout of 10 minutes. A setting of true
3397
+ # terminates existing TCP connections to the active pool during failover and
3398
+ # failback, immediately draining traffic. A setting of false allows existing TCP
3399
+ # connections to persist, even on VMs no longer in the active pool, for up to
3400
+ # the duration of the connection draining timeout (10 minutes).
3388
3401
  # Corresponds to the JSON property `failoverPolicy`
3389
3402
  # @return [Google::Apis::ComputeAlpha::BackendServiceFailoverPolicy]
3390
3403
  attr_accessor :failover_policy
@@ -4040,14 +4053,14 @@ module Google
4040
4053
 
4041
4054
  # For load balancers that have configurable failover: [Internal TCP/UDP Load
4042
4055
  # Balancing](https://cloud.google.com/load-balancing/docs/internal/failover-
4043
- # overview) and [external TCP/UDP Load Balancing](/network/networklb-failover-
4044
- # overview). On failover or failback, this field indicates whether connection
4045
- # draining will be honored. Google Cloud has a fixed connection draining timeout
4046
- # of 10 minutes. A setting of true terminates existing TCP connections to the
4047
- # active pool during failover and failback, immediately draining traffic. A
4048
- # setting of false allows existing TCP connections to persist, even on VMs no
4049
- # longer in the active pool, for up to the duration of the connection draining
4050
- # timeout (10 minutes).
4056
+ # overview) and [external TCP/UDP Load Balancing](https://cloud.google.com/load-
4057
+ # balancing/docs/network/networklb-failover-overview). On failover or failback,
4058
+ # this field indicates whether connection draining will be honored. Google Cloud
4059
+ # has a fixed connection draining timeout of 10 minutes. A setting of true
4060
+ # terminates existing TCP connections to the active pool during failover and
4061
+ # failback, immediately draining traffic. A setting of false allows existing TCP
4062
+ # connections to persist, even on VMs no longer in the active pool, for up to
4063
+ # the duration of the connection draining timeout (10 minutes).
4051
4064
  class BackendServiceFailoverPolicy
4052
4065
  include Google::Apis::Core::Hashable
4053
4066
 
@@ -4062,8 +4075,9 @@ module Google
4062
4075
  # distributed among all primary VMs when all primary and all backup backend VMs
4063
4076
  # are unhealthy. For load balancers that have configurable failover: [Internal
4064
4077
  # TCP/UDP Load Balancing](https://cloud.google.com/load-balancing/docs/internal/
4065
- # failover-overview) and [external TCP/UDP Load Balancing](/network/networklb-
4066
- # failover-overview). The default is false.
4078
+ # failover-overview) and [external TCP/UDP Load Balancing](https://cloud.google.
4079
+ # com/load-balancing/docs/network/networklb-failover-overview). The default is
4080
+ # false.
4067
4081
  # Corresponds to the JSON property `dropTrafficIfUnhealthy`
4068
4082
  # @return [Boolean]
4069
4083
  attr_accessor :drop_traffic_if_unhealthy
@@ -4075,7 +4089,8 @@ module Google
4075
4089
  # the total number of healthy primary VMs is less than this ratio. For load
4076
4090
  # balancers that have configurable failover: [Internal TCP/UDP Load Balancing](
4077
4091
  # https://cloud.google.com/load-balancing/docs/internal/failover-overview) and [
4078
- # external TCP/UDP Load Balancing](/network/networklb-failover-overview).
4092
+ # external TCP/UDP Load Balancing](https://cloud.google.com/load-balancing/docs/
4093
+ # network/networklb-failover-overview).
4079
4094
  # Corresponds to the JSON property `failoverRatio`
4080
4095
  # @return [Float]
4081
4096
  attr_accessor :failover_ratio
@@ -5243,6 +5258,11 @@ module Google
5243
5258
  # @return [Google::Apis::ComputeAlpha::LicenseResourceCommitment]
5244
5259
  attr_accessor :license_resource
5245
5260
 
5261
+ # List of source commitments to be merged into a new commitment.
5262
+ # Corresponds to the JSON property `mergeSourceCommitments`
5263
+ # @return [Array<String>]
5264
+ attr_accessor :merge_source_commitments
5265
+
5246
5266
  # Name of the resource. Provided by the client when the resource is created. The
5247
5267
  # name must be 1-63 characters long, and comply with RFC1035. Specifically, the
5248
5268
  # name must be 1-63 characters long and match the regular expression `[a-z]([-a-
@@ -5286,6 +5306,11 @@ module Google
5286
5306
  # @return [String]
5287
5307
  attr_accessor :self_link_with_id
5288
5308
 
5309
+ # Source commitment to be splitted into a new commitment.
5310
+ # Corresponds to the JSON property `splitSourceCommitment`
5311
+ # @return [String]
5312
+ attr_accessor :split_source_commitment
5313
+
5289
5314
  # [Output Only] Commitment start time in RFC3339 text format.
5290
5315
  # Corresponds to the JSON property `startTimestamp`
5291
5316
  # @return [String]
@@ -5325,6 +5350,7 @@ module Google
5325
5350
  @id = args[:id] if args.key?(:id)
5326
5351
  @kind = args[:kind] if args.key?(:kind)
5327
5352
  @license_resource = args[:license_resource] if args.key?(:license_resource)
5353
+ @merge_source_commitments = args[:merge_source_commitments] if args.key?(:merge_source_commitments)
5328
5354
  @name = args[:name] if args.key?(:name)
5329
5355
  @plan = args[:plan] if args.key?(:plan)
5330
5356
  @region = args[:region] if args.key?(:region)
@@ -5332,6 +5358,7 @@ module Google
5332
5358
  @resources = args[:resources] if args.key?(:resources)
5333
5359
  @self_link = args[:self_link] if args.key?(:self_link)
5334
5360
  @self_link_with_id = args[:self_link_with_id] if args.key?(:self_link_with_id)
5361
+ @split_source_commitment = args[:split_source_commitment] if args.key?(:split_source_commitment)
5335
5362
  @start_timestamp = args[:start_timestamp] if args.key?(:start_timestamp)
5336
5363
  @status = args[:status] if args.key?(:status)
5337
5364
  @status_message = args[:status_message] if args.key?(:status_message)
@@ -8517,6 +8544,17 @@ module Google
8517
8544
  # @return [String]
8518
8545
  attr_accessor :short_name
8519
8546
 
8547
+ # The scope of networks allowed to be associated with the firewall policy. This
8548
+ # field can be either GLOBAL_VPC_NETWORK or REGIONAL_VPC_NETWORK. A firewall
8549
+ # policy with the VPC scope set to GLOBAL_VPC_NETWORK is allowed to be attached
8550
+ # only to global networks. When the VPC scope is set to REGIONAL_VPC_NETWORK the
8551
+ # firewall policy is allowed to be attached only to regional networks in the
8552
+ # same scope as the firewall policy. Note: if not specified then
8553
+ # GLOBAL_VPC_NETWORK will be used.
8554
+ # Corresponds to the JSON property `vpcNetworkScope`
8555
+ # @return [String]
8556
+ attr_accessor :vpc_network_scope
8557
+
8520
8558
  def initialize(**args)
8521
8559
  update!(**args)
8522
8560
  end
@@ -8538,6 +8576,7 @@ module Google
8538
8576
  @self_link = args[:self_link] if args.key?(:self_link)
8539
8577
  @self_link_with_id = args[:self_link_with_id] if args.key?(:self_link_with_id)
8540
8578
  @short_name = args[:short_name] if args.key?(:short_name)
8579
+ @vpc_network_scope = args[:vpc_network_scope] if args.key?(:vpc_network_scope)
8541
8580
  end
8542
8581
  end
8543
8582
 
@@ -8818,12 +8857,26 @@ module Google
8818
8857
  # @return [Array<String>]
8819
8858
  attr_accessor :dest_address_groups
8820
8859
 
8860
+ # Fully Qualified Domain Name (FQDN) which should be matched against traffic
8861
+ # destination. Maximum number of destination fqdn allowed is 1000.
8862
+ # Corresponds to the JSON property `destFqdns`
8863
+ # @return [Array<String>]
8864
+ attr_accessor :dest_fqdns
8865
+
8821
8866
  # CIDR IP address range. Maximum number of destination CIDR IP ranges allowed is
8822
8867
  # 5000.
8823
8868
  # Corresponds to the JSON property `destIpRanges`
8824
8869
  # @return [Array<String>]
8825
8870
  attr_accessor :dest_ip_ranges
8826
8871
 
8872
+ # Region codes whose IP addresses will be used to match for destination of
8873
+ # traffic. Should be specified as 2 letter country code defined as per ISO 3166
8874
+ # alpha-2 country codes. ex."US" Maximum number of dest region codes allowed is
8875
+ # 5000.
8876
+ # Corresponds to the JSON property `destRegionCodes`
8877
+ # @return [Array<String>]
8878
+ attr_accessor :dest_region_codes
8879
+
8827
8880
  # Pairs of IP protocols and ports that the rule should match.
8828
8881
  # Corresponds to the JSON property `layer4Configs`
8829
8882
  # @return [Array<Google::Apis::ComputeAlpha::FirewallPolicyRuleMatcherLayer4Config>]
@@ -8835,11 +8888,24 @@ module Google
8835
8888
  # @return [Array<String>]
8836
8889
  attr_accessor :src_address_groups
8837
8890
 
8891
+ # Fully Qualified Domain Name (FQDN) which should be matched against traffic
8892
+ # source. Maximum number of source fqdn allowed is 1000.
8893
+ # Corresponds to the JSON property `srcFqdns`
8894
+ # @return [Array<String>]
8895
+ attr_accessor :src_fqdns
8896
+
8838
8897
  # CIDR IP address range. Maximum number of source CIDR IP ranges allowed is 5000.
8839
8898
  # Corresponds to the JSON property `srcIpRanges`
8840
8899
  # @return [Array<String>]
8841
8900
  attr_accessor :src_ip_ranges
8842
8901
 
8902
+ # Region codes whose IP addresses will be used to match for source of traffic.
8903
+ # Should be specified as 2 letter country code defined as per ISO 3166 alpha-2
8904
+ # country codes. ex."US" Maximum number of source region codes allowed is 5000.
8905
+ # Corresponds to the JSON property `srcRegionCodes`
8906
+ # @return [Array<String>]
8907
+ attr_accessor :src_region_codes
8908
+
8843
8909
  # List of secure tag values, which should be matched at the source of the
8844
8910
  # traffic. For INGRESS rule, if all the srcSecureTag are INEFFECTIVE, and there
8845
8911
  # is no srcIpRange, this rule will be ignored. Maximum number of source tag
@@ -8855,10 +8921,14 @@ module Google
8855
8921
  # Update properties of this object
8856
8922
  def update!(**args)
8857
8923
  @dest_address_groups = args[:dest_address_groups] if args.key?(:dest_address_groups)
8924
+ @dest_fqdns = args[:dest_fqdns] if args.key?(:dest_fqdns)
8858
8925
  @dest_ip_ranges = args[:dest_ip_ranges] if args.key?(:dest_ip_ranges)
8926
+ @dest_region_codes = args[:dest_region_codes] if args.key?(:dest_region_codes)
8859
8927
  @layer4_configs = args[:layer4_configs] if args.key?(:layer4_configs)
8860
8928
  @src_address_groups = args[:src_address_groups] if args.key?(:src_address_groups)
8929
+ @src_fqdns = args[:src_fqdns] if args.key?(:src_fqdns)
8861
8930
  @src_ip_ranges = args[:src_ip_ranges] if args.key?(:src_ip_ranges)
8931
+ @src_region_codes = args[:src_region_codes] if args.key?(:src_region_codes)
8862
8932
  @src_secure_tags = args[:src_secure_tags] if args.key?(:src_secure_tags)
8863
8933
  end
8864
8934
  end
@@ -9017,6 +9087,13 @@ module Google
9017
9087
  attr_accessor :allow_global_access
9018
9088
  alias_method :allow_global_access?, :allow_global_access
9019
9089
 
9090
+ # This is used in PSC consumer ForwardingRule to control whether the PSC
9091
+ # endpoint can be accessed from another region.
9092
+ # Corresponds to the JSON property `allowPscGlobalAccess`
9093
+ # @return [Boolean]
9094
+ attr_accessor :allow_psc_global_access
9095
+ alias_method :allow_psc_global_access?, :allow_psc_global_access
9096
+
9020
9097
  # Identifies the backend service to which the forwarding rule sends traffic.
9021
9098
  # Required for Internal TCP/UDP Load Balancing and Network Load Balancing; must
9022
9099
  # be omitted for all other load balancer types.
@@ -9205,8 +9282,7 @@ module Google
9205
9282
  attr_accessor :self_link_with_id
9206
9283
 
9207
9284
  # Service Directory resources to register this forwarding rule with. Currently,
9208
- # only supports a single Service Directory resource. It is only supported for
9209
- # internal load balancing.
9285
+ # only supports a single Service Directory resource.
9210
9286
  # Corresponds to the JSON property `serviceDirectoryRegistrations`
9211
9287
  # @return [Array<Google::Apis::ComputeAlpha::ForwardingRuleServiceDirectoryRegistration>]
9212
9288
  attr_accessor :service_directory_registrations
@@ -9263,6 +9339,7 @@ module Google
9263
9339
  @ip_protocol = args[:ip_protocol] if args.key?(:ip_protocol)
9264
9340
  @all_ports = args[:all_ports] if args.key?(:all_ports)
9265
9341
  @allow_global_access = args[:allow_global_access] if args.key?(:allow_global_access)
9342
+ @allow_psc_global_access = args[:allow_psc_global_access] if args.key?(:allow_psc_global_access)
9266
9343
  @backend_service = args[:backend_service] if args.key?(:backend_service)
9267
9344
  @creation_timestamp = args[:creation_timestamp] if args.key?(:creation_timestamp)
9268
9345
  @description = args[:description] if args.key?(:description)
@@ -11001,8 +11078,8 @@ module Google
11001
11078
  attr_accessor :timeout_sec
11002
11079
 
11003
11080
  # Specifies the type of the healthCheck, either TCP, SSL, HTTP, HTTPS or HTTP2.
11004
- # If not specified, the default is TCP. Exactly one of the protocol-specific
11005
- # health check field must be specified, which must match type field.
11081
+ # Exactly one of the protocol-specific health check field must be specified,
11082
+ # which must match type field.
11006
11083
  # Corresponds to the JSON property `type`
11007
11084
  # @return [String]
11008
11085
  attr_accessor :type
@@ -14014,6 +14091,11 @@ module Google
14014
14091
  # @return [Google::Apis::ComputeAlpha::NetworkPerformanceConfig]
14015
14092
  attr_accessor :network_performance_config
14016
14093
 
14094
+ # Additional instance params.
14095
+ # Corresponds to the JSON property `params`
14096
+ # @return [Google::Apis::ComputeAlpha::InstanceParams]
14097
+ attr_accessor :params
14098
+
14017
14099
  # PostKeyRevocationActionType of the instance.
14018
14100
  # Corresponds to the JSON property `postKeyRevocationActionType`
14019
14101
  # @return [String]
@@ -14189,6 +14271,7 @@ module Google
14189
14271
  @name = args[:name] if args.key?(:name)
14190
14272
  @network_interfaces = args[:network_interfaces] if args.key?(:network_interfaces)
14191
14273
  @network_performance_config = args[:network_performance_config] if args.key?(:network_performance_config)
14274
+ @params = args[:params] if args.key?(:params)
14192
14275
  @post_key_revocation_action_type = args[:post_key_revocation_action_type] if args.key?(:post_key_revocation_action_type)
14193
14276
  @preserved_state_size_gb = args[:preserved_state_size_gb] if args.key?(:preserved_state_size_gb)
14194
14277
  @private_ipv6_google_access = args[:private_ipv6_google_access] if args.key?(:private_ipv6_google_access)
@@ -14340,6 +14423,68 @@ module Google
14340
14423
  end
14341
14424
  end
14342
14425
 
14426
+ #
14427
+ class InstanceConsumptionData
14428
+ include Google::Apis::Core::Hashable
14429
+
14430
+ # Resources consumed by the instance.
14431
+ # Corresponds to the JSON property `consumptionInfo`
14432
+ # @return [Google::Apis::ComputeAlpha::InstanceConsumptionInfo]
14433
+ attr_accessor :consumption_info
14434
+
14435
+ # Server-defined URL for the instance.
14436
+ # Corresponds to the JSON property `instance`
14437
+ # @return [String]
14438
+ attr_accessor :instance
14439
+
14440
+ def initialize(**args)
14441
+ update!(**args)
14442
+ end
14443
+
14444
+ # Update properties of this object
14445
+ def update!(**args)
14446
+ @consumption_info = args[:consumption_info] if args.key?(:consumption_info)
14447
+ @instance = args[:instance] if args.key?(:instance)
14448
+ end
14449
+ end
14450
+
14451
+ #
14452
+ class InstanceConsumptionInfo
14453
+ include Google::Apis::Core::Hashable
14454
+
14455
+ # The number of virtual CPUs that are available to the instance.
14456
+ # Corresponds to the JSON property `guestCpus`
14457
+ # @return [Fixnum]
14458
+ attr_accessor :guest_cpus
14459
+
14460
+ # The amount of local SSD storage available to the instance, defined in GiB.
14461
+ # Corresponds to the JSON property `localSsdGb`
14462
+ # @return [Fixnum]
14463
+ attr_accessor :local_ssd_gb
14464
+
14465
+ # The amount of physical memory available to the instance, defined in MiB.
14466
+ # Corresponds to the JSON property `memoryMb`
14467
+ # @return [Fixnum]
14468
+ attr_accessor :memory_mb
14469
+
14470
+ # The minimal guaranteed number of virtual CPUs that are reserved.
14471
+ # Corresponds to the JSON property `minNodeCpus`
14472
+ # @return [Fixnum]
14473
+ attr_accessor :min_node_cpus
14474
+
14475
+ def initialize(**args)
14476
+ update!(**args)
14477
+ end
14478
+
14479
+ # Update properties of this object
14480
+ def update!(**args)
14481
+ @guest_cpus = args[:guest_cpus] if args.key?(:guest_cpus)
14482
+ @local_ssd_gb = args[:local_ssd_gb] if args.key?(:local_ssd_gb)
14483
+ @memory_mb = args[:memory_mb] if args.key?(:memory_mb)
14484
+ @min_node_cpus = args[:min_node_cpus] if args.key?(:min_node_cpus)
14485
+ end
14486
+ end
14487
+
14343
14488
  # Represents an Instance Group resource. Instance Groups can be used to
14344
14489
  # configure a target for load balancing. Instance groups can either be managed
14345
14490
  # or unmanaged. To create managed instance groups, use the instanceGroupManager
@@ -17088,6 +17233,28 @@ module Google
17088
17233
  end
17089
17234
  end
17090
17235
 
17236
+ # Additional instance params.
17237
+ class InstanceParams
17238
+ include Google::Apis::Core::Hashable
17239
+
17240
+ # Resource manager tags to be bound to the instance. Tag keys and values have
17241
+ # the same definition as resource manager tags. Keys must be in the format `
17242
+ # tagKeys/`tag_key_id``, and values are in the format `tagValues/456`. The field
17243
+ # is ignored (both PUT & PATCH) when empty.
17244
+ # Corresponds to the JSON property `resourceManagerTags`
17245
+ # @return [Hash<String,String>]
17246
+ attr_accessor :resource_manager_tags
17247
+
17248
+ def initialize(**args)
17249
+ update!(**args)
17250
+ end
17251
+
17252
+ # Update properties of this object
17253
+ def update!(**args)
17254
+ @resource_manager_tags = args[:resource_manager_tags] if args.key?(:resource_manager_tags)
17255
+ end
17256
+ end
17257
+
17091
17258
  #
17092
17259
  class InstanceProperties
17093
17260
  include Google::Apis::Core::Hashable
@@ -17196,7 +17363,15 @@ module Google
17196
17363
  # @return [Google::Apis::ComputeAlpha::ReservationAffinity]
17197
17364
  attr_accessor :reservation_affinity
17198
17365
 
17199
- # Resource policies (names, not ULRs) applied to instances created from these
17366
+ # Resource manager tags to be bound to the instance. Tag keys and values have
17367
+ # the same definition as resource manager tags. Keys must be in the format `
17368
+ # tagKeys/`tag_key_id``, and values are in the format `tagValues/456`. The field
17369
+ # is ignored (both PUT & PATCH) when empty.
17370
+ # Corresponds to the JSON property `resourceManagerTags`
17371
+ # @return [Hash<String,String>]
17372
+ attr_accessor :resource_manager_tags
17373
+
17374
+ # Resource policies (names, not URLs) applied to instances created from these
17200
17375
  # properties. Note that for MachineImage, this is not supported yet.
17201
17376
  # Corresponds to the JSON property `resourcePolicies`
17202
17377
  # @return [Array<String>]
@@ -17259,6 +17434,7 @@ module Google
17259
17434
  @post_key_revocation_action_type = args[:post_key_revocation_action_type] if args.key?(:post_key_revocation_action_type)
17260
17435
  @private_ipv6_google_access = args[:private_ipv6_google_access] if args.key?(:private_ipv6_google_access)
17261
17436
  @reservation_affinity = args[:reservation_affinity] if args.key?(:reservation_affinity)
17437
+ @resource_manager_tags = args[:resource_manager_tags] if args.key?(:resource_manager_tags)
17262
17438
  @resource_policies = args[:resource_policies] if args.key?(:resource_policies)
17263
17439
  @scheduling = args[:scheduling] if args.key?(:scheduling)
17264
17440
  @secure_tags = args[:secure_tags] if args.key?(:secure_tags)
@@ -18064,6 +18240,11 @@ module Google
18064
18240
  # @return [String]
18065
18241
  attr_accessor :region
18066
18242
 
18243
+ # [Output Only] Status information for the instant snapshot resource.
18244
+ # Corresponds to the JSON property `resourceStatus`
18245
+ # @return [Google::Apis::ComputeAlpha::InstantSnapshotResourceStatus]
18246
+ attr_accessor :resource_status
18247
+
18067
18248
  # [Output Only] Reserved for future use.
18068
18249
  # Corresponds to the JSON property `satisfiesPzs`
18069
18250
  # @return [Boolean]
@@ -18129,6 +18310,7 @@ module Google
18129
18310
  @labels = args[:labels] if args.key?(:labels)
18130
18311
  @name = args[:name] if args.key?(:name)
18131
18312
  @region = args[:region] if args.key?(:region)
18313
+ @resource_status = args[:resource_status] if args.key?(:resource_status)
18132
18314
  @satisfies_pzs = args[:satisfies_pzs] if args.key?(:satisfies_pzs)
18133
18315
  @self_link = args[:self_link] if args.key?(:self_link)
18134
18316
  @self_link_with_id = args[:self_link_with_id] if args.key?(:self_link_with_id)
@@ -18429,6 +18611,25 @@ module Google
18429
18611
  end
18430
18612
  end
18431
18613
 
18614
+ #
18615
+ class InstantSnapshotResourceStatus
18616
+ include Google::Apis::Core::Hashable
18617
+
18618
+ # [Output Only] The storage size of this instant snapshot.
18619
+ # Corresponds to the JSON property `storageSizeBytes`
18620
+ # @return [Fixnum]
18621
+ attr_accessor :storage_size_bytes
18622
+
18623
+ def initialize(**args)
18624
+ update!(**args)
18625
+ end
18626
+
18627
+ # Update properties of this object
18628
+ def update!(**args)
18629
+ @storage_size_bytes = args[:storage_size_bytes] if args.key?(:storage_size_bytes)
18630
+ end
18631
+ end
18632
+
18432
18633
  #
18433
18634
  class InstantSnapshotsExportRequest
18434
18635
  include Google::Apis::Core::Hashable
@@ -18900,7 +19101,10 @@ module Google
18900
19101
  # @return [String]
18901
19102
  attr_accessor :customer_router_ipv6_interface_id
18902
19103
 
18903
- # [Output Only] Dataplane version for this InterconnectAttachment.
19104
+ # [Output only for types PARTNER and DEDICATED. Not present for PARTNER_PROVIDER.
19105
+ # ] Dataplane version for this InterconnectAttachment. This field is only
19106
+ # present for Dataplane version 2 and higher. Absence of this field in the API
19107
+ # output indicates that the Dataplane is version 1.
18904
19108
  # Corresponds to the JSON property `dataplaneVersion`
18905
19109
  # @return [Fixnum]
18906
19110
  attr_accessor :dataplane_version
@@ -21286,7 +21490,7 @@ module Google
21286
21490
  class LocationPolicyLocation
21287
21491
  include Google::Apis::Core::Hashable
21288
21492
 
21289
- # Preference for a given location: ALLOW or DENY.
21493
+ # Preference for a given location.
21290
21494
  # Corresponds to the JSON property `preference`
21291
21495
  # @return [String]
21292
21496
  attr_accessor :preference
@@ -21536,7 +21740,8 @@ module Google
21536
21740
  # @return [String]
21537
21741
  attr_accessor :source_instance
21538
21742
 
21539
- # [Output Only] Properties of source instance.
21743
+ # DEPRECATED: Please use compute#instanceProperties instead. New properties will
21744
+ # not be added to this field.
21540
21745
  # Corresponds to the JSON property `sourceInstanceProperties`
21541
21746
  # @return [Google::Apis::ComputeAlpha::SourceInstanceProperties]
21542
21747
  attr_accessor :source_instance_properties
@@ -22755,6 +22960,13 @@ module Google
22755
22960
  # @return [Array<Google::Apis::ComputeAlpha::NetworkPeering>]
22756
22961
  attr_accessor :peerings
22757
22962
 
22963
+ # [Output Only] URL of the region where the regional network resides. This field
22964
+ # is not applicable to global network. You must specify this field as part of
22965
+ # the HTTP request URL. It is not settable as a field in the request body.
22966
+ # Corresponds to the JSON property `region`
22967
+ # @return [String]
22968
+ attr_accessor :region
22969
+
22758
22970
  # A routing configuration attached to a network resource. The message includes
22759
22971
  # the list of routers associated with the network, and a flag indicating the
22760
22972
  # type of routing behavior to enforce network-wide.
@@ -22798,6 +23010,7 @@ module Google
22798
23010
  @name = args[:name] if args.key?(:name)
22799
23011
  @network_firewall_policy_enforcement_order = args[:network_firewall_policy_enforcement_order] if args.key?(:network_firewall_policy_enforcement_order)
22800
23012
  @peerings = args[:peerings] if args.key?(:peerings)
23013
+ @region = args[:region] if args.key?(:region)
22801
23014
  @routing_config = args[:routing_config] if args.key?(:routing_config)
22802
23015
  @self_link = args[:self_link] if args.key?(:self_link)
22803
23016
  @self_link_with_id = args[:self_link_with_id] if args.key?(:self_link_with_id)
@@ -24141,7 +24354,7 @@ module Google
24141
24354
  # @return [String]
24142
24355
  attr_accessor :fingerprint
24143
24356
 
24144
- # [Output Only] The prefix length of the primary internal IPv6 range.
24357
+ # The prefix length of the primary internal IPv6 range.
24145
24358
  # Corresponds to the JSON property `internalIpv6PrefixLength`
24146
24359
  # @return [Fixnum]
24147
24360
  attr_accessor :internal_ipv6_prefix_length
@@ -24160,7 +24373,7 @@ module Google
24160
24373
  # @return [String]
24161
24374
  attr_accessor :ipv6_access_type
24162
24375
 
24163
- # [Output Only] An IPv6 internal network address for this network interface.
24376
+ # An IPv6 internal network address for this network interface.
24164
24377
  # Corresponds to the JSON property `ipv6Address`
24165
24378
  # @return [String]
24166
24379
  attr_accessor :ipv6_address
@@ -25251,6 +25464,11 @@ module Google
25251
25464
  # @return [Array<Google::Apis::ComputeAlpha::AcceleratorConfig>]
25252
25465
  attr_accessor :accelerators
25253
25466
 
25467
+ # Node resources that are reserved by all instances.
25468
+ # Corresponds to the JSON property `consumedResources`
25469
+ # @return [Google::Apis::ComputeAlpha::InstanceConsumptionInfo]
25470
+ attr_accessor :consumed_resources
25471
+
25254
25472
  # CPU overcommit.
25255
25473
  # Corresponds to the JSON property `cpuOvercommitType`
25256
25474
  # @return [String]
@@ -25261,6 +25479,11 @@ module Google
25261
25479
  # @return [Array<Google::Apis::ComputeAlpha::LocalDisk>]
25262
25480
  attr_accessor :disks
25263
25481
 
25482
+ # Instance data that shows consumed resources on the node.
25483
+ # Corresponds to the JSON property `instanceConsumptionData`
25484
+ # @return [Array<Google::Apis::ComputeAlpha::InstanceConsumptionData>]
25485
+ attr_accessor :instance_consumption_data
25486
+
25264
25487
  # Instances scheduled on this node.
25265
25488
  # Corresponds to the JSON property `instances`
25266
25489
  # @return [Array<String>]
@@ -25297,6 +25520,11 @@ module Google
25297
25520
  # @return [String]
25298
25521
  attr_accessor :status
25299
25522
 
25523
+ # Total amount of available resources on the node.
25524
+ # Corresponds to the JSON property `totalResources`
25525
+ # @return [Google::Apis::ComputeAlpha::InstanceConsumptionInfo]
25526
+ attr_accessor :total_resources
25527
+
25300
25528
  def initialize(**args)
25301
25529
  update!(**args)
25302
25530
  end
@@ -25304,8 +25532,10 @@ module Google
25304
25532
  # Update properties of this object
25305
25533
  def update!(**args)
25306
25534
  @accelerators = args[:accelerators] if args.key?(:accelerators)
25535
+ @consumed_resources = args[:consumed_resources] if args.key?(:consumed_resources)
25307
25536
  @cpu_overcommit_type = args[:cpu_overcommit_type] if args.key?(:cpu_overcommit_type)
25308
25537
  @disks = args[:disks] if args.key?(:disks)
25538
+ @instance_consumption_data = args[:instance_consumption_data] if args.key?(:instance_consumption_data)
25309
25539
  @instances = args[:instances] if args.key?(:instances)
25310
25540
  @name = args[:name] if args.key?(:name)
25311
25541
  @node_type = args[:node_type] if args.key?(:node_type)
@@ -25313,6 +25543,7 @@ module Google
25313
25543
  @server_binding = args[:server_binding] if args.key?(:server_binding)
25314
25544
  @server_id = args[:server_id] if args.key?(:server_id)
25315
25545
  @status = args[:status] if args.key?(:status)
25546
+ @total_resources = args[:total_resources] if args.key?(:total_resources)
25316
25547
  end
25317
25548
  end
25318
25549
 
@@ -33760,6 +33991,11 @@ module Google
33760
33991
  # @return [Fixnum]
33761
33992
  attr_accessor :priority
33762
33993
 
33994
+ # [Output only] The status of the route.
33995
+ # Corresponds to the JSON property `routeStatus`
33996
+ # @return [String]
33997
+ attr_accessor :route_status
33998
+
33763
33999
  # [Output Only] The type of this route, which can be one of the following values:
33764
34000
  # - 'TRANSIT' for a transit route that this router learned from another Cloud
33765
34001
  # Router and will readvertise to one of its BGP peers - 'SUBNET' for a route
@@ -33815,6 +34051,7 @@ module Google
33815
34051
  @next_hop_peering = args[:next_hop_peering] if args.key?(:next_hop_peering)
33816
34052
  @next_hop_vpn_tunnel = args[:next_hop_vpn_tunnel] if args.key?(:next_hop_vpn_tunnel)
33817
34053
  @priority = args[:priority] if args.key?(:priority)
34054
+ @route_status = args[:route_status] if args.key?(:route_status)
33818
34055
  @route_type = args[:route_type] if args.key?(:route_type)
33819
34056
  @self_link = args[:self_link] if args.key?(:self_link)
33820
34057
  @self_link_with_id = args[:self_link_with_id] if args.key?(:self_link_with_id)
@@ -34088,6 +34325,11 @@ module Google
34088
34325
  # @return [String]
34089
34326
  attr_accessor :kind
34090
34327
 
34328
+ # Keys used for MD5 authentication.
34329
+ # Corresponds to the JSON property `md5AuthenticationKeys`
34330
+ # @return [Array<Google::Apis::ComputeAlpha::RouterMd5AuthenticationKey>]
34331
+ attr_accessor :md5_authentication_keys
34332
+
34091
34333
  # Name of the resource. Provided by the client when the resource is created. The
34092
34334
  # name must be 1-63 characters long, and comply with RFC1035. Specifically, the
34093
34335
  # name must be 1-63 characters long and match the regular expression `[a-z]([-a-
@@ -34139,6 +34381,7 @@ module Google
34139
34381
  @id = args[:id] if args.key?(:id)
34140
34382
  @interfaces = args[:interfaces] if args.key?(:interfaces)
34141
34383
  @kind = args[:kind] if args.key?(:kind)
34384
+ @md5_authentication_keys = args[:md5_authentication_keys] if args.key?(:md5_authentication_keys)
34142
34385
  @name = args[:name] if args.key?(:name)
34143
34386
  @nats = args[:nats] if args.key?(:nats)
34144
34387
  @network = args[:network] if args.key?(:network)
@@ -34435,6 +34678,13 @@ module Google
34435
34678
  # @return [String]
34436
34679
  attr_accessor :management_type
34437
34680
 
34681
+ # Present if MD5 authentication is enabled for the peering. Must be the name of
34682
+ # one of the entries in the Router.md5_authentication_keys. The field must
34683
+ # comply with RFC1035.
34684
+ # Corresponds to the JSON property `md5AuthenticationKeyName`
34685
+ # @return [String]
34686
+ attr_accessor :md5_authentication_key_name
34687
+
34438
34688
  # Name of this BGP peer. The name must be 1-63 characters long, and comply with
34439
34689
  # RFC1035. Specifically, the name must be 1-63 characters long and match the
34440
34690
  # regular expression `[a-z]([-a-z0-9]*[a-z0-9])?` which means the first
@@ -34487,6 +34737,7 @@ module Google
34487
34737
  @ip_address = args[:ip_address] if args.key?(:ip_address)
34488
34738
  @ipv6_nexthop_address = args[:ipv6_nexthop_address] if args.key?(:ipv6_nexthop_address)
34489
34739
  @management_type = args[:management_type] if args.key?(:management_type)
34740
+ @md5_authentication_key_name = args[:md5_authentication_key_name] if args.key?(:md5_authentication_key_name)
34490
34741
  @name = args[:name] if args.key?(:name)
34491
34742
  @peer_asn = args[:peer_asn] if args.key?(:peer_asn)
34492
34743
  @peer_ip_address = args[:peer_ip_address] if args.key?(:peer_ip_address)
@@ -34789,6 +35040,35 @@ module Google
34789
35040
  end
34790
35041
  end
34791
35042
 
35043
+ #
35044
+ class RouterMd5AuthenticationKey
35045
+ include Google::Apis::Core::Hashable
35046
+
35047
+ # [Input only] Value of the key. For patch and update calls, it can be skipped
35048
+ # to copy the value from the previous configuration. This is allowed if the key
35049
+ # with the same name existed before the operation. Maximum length is 80
35050
+ # characters. Can only contain printable ASCII characters.
35051
+ # Corresponds to the JSON property `key`
35052
+ # @return [String]
35053
+ attr_accessor :key
35054
+
35055
+ # Name used to identify the key. Must be unique within a router. Must be
35056
+ # referenced by at least one bgpPeer. Must comply with RFC1035.
35057
+ # Corresponds to the JSON property `name`
35058
+ # @return [String]
35059
+ attr_accessor :name
35060
+
35061
+ def initialize(**args)
35062
+ update!(**args)
35063
+ end
35064
+
35065
+ # Update properties of this object
35066
+ def update!(**args)
35067
+ @key = args[:key] if args.key?(:key)
35068
+ @name = args[:name] if args.key?(:name)
35069
+ end
35070
+ end
35071
+
34792
35072
  # Represents a Nat resource. It enables the VMs within the specified subnetworks
34793
35073
  # to access Internet without external IP addresses. It specifies a list of
34794
35074
  # subnetworks (and the ranges within) that want to use NAT. Customers can also
@@ -35188,6 +35468,12 @@ module Google
35188
35468
  # @return [String]
35189
35469
  attr_accessor :linked_vpn_tunnel
35190
35470
 
35471
+ # Informs whether MD5 authentication is enabled on this BGP peer.
35472
+ # Corresponds to the JSON property `md5AuthEnabled`
35473
+ # @return [Boolean]
35474
+ attr_accessor :md5_auth_enabled
35475
+ alias_method :md5_auth_enabled?, :md5_auth_enabled
35476
+
35191
35477
  # Name of this BGP peer. Unique within the Routers resource.
35192
35478
  # Corresponds to the JSON property `name`
35193
35479
  # @return [String]
@@ -35225,6 +35511,11 @@ module Google
35225
35511
  # @return [String]
35226
35512
  attr_accessor :status
35227
35513
 
35514
+ # Indicates why particular status was returned.
35515
+ # Corresponds to the JSON property `statusReason`
35516
+ # @return [String]
35517
+ attr_accessor :status_reason
35518
+
35228
35519
  # Time this session has been up. Format: 14 years, 51 weeks, 6 days, 23 hours,
35229
35520
  # 59 minutes, 59 seconds
35230
35521
  # Corresponds to the JSON property `uptime`
@@ -35248,6 +35539,7 @@ module Google
35248
35539
  @ip_address = args[:ip_address] if args.key?(:ip_address)
35249
35540
  @ipv6_nexthop_address = args[:ipv6_nexthop_address] if args.key?(:ipv6_nexthop_address)
35250
35541
  @linked_vpn_tunnel = args[:linked_vpn_tunnel] if args.key?(:linked_vpn_tunnel)
35542
+ @md5_auth_enabled = args[:md5_auth_enabled] if args.key?(:md5_auth_enabled)
35251
35543
  @name = args[:name] if args.key?(:name)
35252
35544
  @num_learned_routes = args[:num_learned_routes] if args.key?(:num_learned_routes)
35253
35545
  @peer_ip_address = args[:peer_ip_address] if args.key?(:peer_ip_address)
@@ -35255,6 +35547,7 @@ module Google
35255
35547
  @router_appliance_instance = args[:router_appliance_instance] if args.key?(:router_appliance_instance)
35256
35548
  @state = args[:state] if args.key?(:state)
35257
35549
  @status = args[:status] if args.key?(:status)
35550
+ @status_reason = args[:status_reason] if args.key?(:status_reason)
35258
35551
  @uptime = args[:uptime] if args.key?(:uptime)
35259
35552
  @uptime_seconds = args[:uptime_seconds] if args.key?(:uptime_seconds)
35260
35553
  end
@@ -35632,7 +35925,8 @@ module Google
35632
35925
  end
35633
35926
  end
35634
35927
 
35635
- # An instance-attached disk resource.
35928
+ # DEPRECATED: Please use compute#savedDisk instead. An instance-attached disk
35929
+ # resource.
35636
35930
  class SavedAttachedDisk
35637
35931
  include Google::Apis::Core::Hashable
35638
35932
 
@@ -35926,8 +36220,8 @@ module Google
35926
36220
 
35927
36221
  # Defines the maintenance behavior for this instance. For standard instances,
35928
36222
  # the default behavior is MIGRATE. For preemptible instances, the default and
35929
- # only possible behavior is TERMINATE. For more information, see Setting
35930
- # Instance Scheduling Options.
36223
+ # only possible behavior is TERMINATE. For more information, see Set VM
36224
+ # availability policies.
35931
36225
  # Corresponds to the JSON property `onHostMaintenance`
35932
36226
  # @return [String]
35933
36227
  attr_accessor :on_host_maintenance
@@ -36429,6 +36723,11 @@ module Google
36429
36723
  # @return [String]
36430
36724
  attr_accessor :parent
36431
36725
 
36726
+ #
36727
+ # Corresponds to the JSON property `recaptchaOptionsConfig`
36728
+ # @return [Google::Apis::ComputeAlpha::SecurityPolicyRecaptchaOptionsConfig]
36729
+ attr_accessor :recaptcha_options_config
36730
+
36432
36731
  # [Output Only] URL of the region where the regional security policy resides.
36433
36732
  # This field is not applicable to global security policies.
36434
36733
  # Corresponds to the JSON property `region`
@@ -36491,6 +36790,7 @@ module Google
36491
36790
  @labels = args[:labels] if args.key?(:labels)
36492
36791
  @name = args[:name] if args.key?(:name)
36493
36792
  @parent = args[:parent] if args.key?(:parent)
36793
+ @recaptcha_options_config = args[:recaptcha_options_config] if args.key?(:recaptcha_options_config)
36494
36794
  @region = args[:region] if args.key?(:region)
36495
36795
  @rule_tuple_count = args[:rule_tuple_count] if args.key?(:rule_tuple_count)
36496
36796
  @rules = args[:rules] if args.key?(:rules)
@@ -36771,6 +37071,29 @@ module Google
36771
37071
  end
36772
37072
  end
36773
37073
 
37074
+ #
37075
+ class SecurityPolicyRecaptchaOptionsConfig
37076
+ include Google::Apis::Core::Hashable
37077
+
37078
+ # An optional field to supply a reCAPTCHA site key to be used for all the rules
37079
+ # using the redirect action with the type of GOOGLE_RECAPTCHA under the security
37080
+ # policy. The specified site key needs to be created from the reCAPTCHA API. The
37081
+ # user is responsible for the validity of the specified site key. If not
37082
+ # specified, a Google-managed site key is used.
37083
+ # Corresponds to the JSON property `redirectSiteKey`
37084
+ # @return [String]
37085
+ attr_accessor :redirect_site_key
37086
+
37087
+ def initialize(**args)
37088
+ update!(**args)
37089
+ end
37090
+
37091
+ # Update properties of this object
37092
+ def update!(**args)
37093
+ @redirect_site_key = args[:redirect_site_key] if args.key?(:redirect_site_key)
37094
+ end
37095
+ end
37096
+
36774
37097
  #
36775
37098
  class SecurityPolicyReference
36776
37099
  include Google::Apis::Core::Hashable
@@ -36795,9 +37118,17 @@ module Google
36795
37118
  class SecurityPolicyRule
36796
37119
  include Google::Apis::Core::Hashable
36797
37120
 
36798
- # The Action to perform when the client connection triggers the rule. Can
36799
- # currently be either "allow" or "deny()" where valid values for status are 403,
36800
- # 404, and 502.
37121
+ # The Action to perform when the rule is matched. The following are the valid
37122
+ # actions: - allow: allow access to target. - deny(): deny access to target,
37123
+ # returns the HTTP response code specified (valid values are 403, 404, and 502).
37124
+ # - rate_based_ban: limit client traffic to the configured threshold and ban the
37125
+ # client if the traffic exceeds the threshold. Configure parameters for this
37126
+ # action in RateLimitOptions. Requires rate_limit_options to be set. - redirect:
37127
+ # redirect to a different target. This can either be an internal reCAPTCHA
37128
+ # redirect, or an external URL-based redirect via a 302 response. Parameters for
37129
+ # this action can be configured via redirectOptions. - throttle: limit client
37130
+ # traffic to the configured threshold. Configure parameters for this action in
37131
+ # rateLimitOptions. Requires rate_limit_options to be set for this.
36801
37132
  # Corresponds to the JSON property `action`
36802
37133
  # @return [String]
36803
37134
  attr_accessor :action
@@ -37150,33 +37481,45 @@ module Google
37150
37481
  attr_accessor :conform_action
37151
37482
 
37152
37483
  # Determines the key to enforce the rate_limit_threshold on. Possible values are:
37153
- # "ALL" -- A single rate limit threshold is applied to all the requests
37154
- # matching this rule. This is the default value if this field 'enforce_on_key'
37155
- # is not configured. "ALL_IPS" -- This definition, equivalent to "ALL", has been
37156
- # depprecated. "IP" -- The source IP address of the request is the key. Each IP
37157
- # has this limit enforced separately. "HTTP_HEADER" -- The value of the HTTP
37158
- # header whose name is configured under "enforce_on_key_name". The key value is
37484
+ # - ALL: A single rate limit threshold is applied to all the requests matching
37485
+ # this rule. This is the default value if this field 'enforce_on_key' is not
37486
+ # configured. - IP: The source IP address of the request is the key. Each IP has
37487
+ # this limit enforced separately. - HTTP_HEADER: The value of the HTTP header
37488
+ # whose name is configured under "enforce_on_key_name". The key value is
37159
37489
  # truncated to the first 128 bytes of the header value. If no such header is
37160
- # present in the request, the key type defaults to "ALL". "XFF_IP" -- The first
37161
- # IP address (i.e. the originating client IP address) specified in the list of
37162
- # IPs under X-Forwarded-For HTTP header. If no such header is present or the
37163
- # value is not a valid IP, the key type defaults to "ALL".
37490
+ # present in the request, the key type defaults to ALL. - XFF_IP: The first IP
37491
+ # address (i.e. the originating client IP address) specified in the list of IPs
37492
+ # under X-Forwarded-For HTTP header. If no such header is present or the value
37493
+ # is not a valid IP, the key type defaults to ALL. - HTTP_COOKIE: The value of
37494
+ # the HTTP cookie whose name is configured under "enforce_on_key_name". The key
37495
+ # value is truncated to the first 128 bytes of the cookie value. If no such
37496
+ # cookie is present in the request, the key type defaults to ALL.
37164
37497
  # Corresponds to the JSON property `enforceOnKey`
37165
37498
  # @return [String]
37166
37499
  attr_accessor :enforce_on_key
37167
37500
 
37168
37501
  # Rate limit key name applicable only for the following key types: HTTP_HEADER --
37169
- # Name of the HTTP header whose value is taken as the key value.
37502
+ # Name of the HTTP header whose value is taken as the key value. HTTP_COOKIE --
37503
+ # Name of the HTTP cookie whose value is taken as the key value.
37170
37504
  # Corresponds to the JSON property `enforceOnKeyName`
37171
37505
  # @return [String]
37172
37506
  attr_accessor :enforce_on_key_name
37173
37507
 
37174
- # When a request is denied, returns the HTTP response code specified. Valid
37175
- # options are "deny()" where valid values for status are 403, 404, 429, and 502.
37508
+ # Action to take for requests that are above the configured rate limit threshold,
37509
+ # to either deny with a specified HTTP response code, or redirect to a
37510
+ # different endpoint. Valid options are "deny()" where valid values for status
37511
+ # are 403, 404, 429, and 502, and "redirect" where the redirect parameters come
37512
+ # from exceed_redirect_options below.
37176
37513
  # Corresponds to the JSON property `exceedAction`
37177
37514
  # @return [String]
37178
37515
  attr_accessor :exceed_action
37179
37516
 
37517
+ # Parameters defining the redirect action that is used as the exceed action.
37518
+ # Cannot be specified if the exceed action is not redirect.
37519
+ # Corresponds to the JSON property `exceedRedirectOptions`
37520
+ # @return [Google::Apis::ComputeAlpha::SecurityPolicyRuleRedirectOptions]
37521
+ attr_accessor :exceed_redirect_options
37522
+
37180
37523
  # Threshold at which to begin ratelimiting.
37181
37524
  # Corresponds to the JSON property `rateLimitThreshold`
37182
37525
  # @return [Google::Apis::ComputeAlpha::SecurityPolicyRuleRateLimitOptionsThreshold]
@@ -37194,6 +37537,7 @@ module Google
37194
37537
  @enforce_on_key = args[:enforce_on_key] if args.key?(:enforce_on_key)
37195
37538
  @enforce_on_key_name = args[:enforce_on_key_name] if args.key?(:enforce_on_key_name)
37196
37539
  @exceed_action = args[:exceed_action] if args.key?(:exceed_action)
37540
+ @exceed_redirect_options = args[:exceed_redirect_options] if args.key?(:exceed_redirect_options)
37197
37541
  @rate_limit_threshold = args[:rate_limit_threshold] if args.key?(:rate_limit_threshold)
37198
37542
  end
37199
37543
  end
@@ -37492,7 +37836,7 @@ module Google
37492
37836
 
37493
37837
  # If specified, the domain name will be used during the integration between the
37494
37838
  # PSC connected endpoints and the Cloud DNS. For example, this is a valid domain
37495
- # name: "p.mycompany.com".
37839
+ # name: "p.mycompany.com.". Current max number of domain names supported is 1.
37496
37840
  # Corresponds to the JSON property `domainNames`
37497
37841
  # @return [Array<String>]
37498
37842
  attr_accessor :domain_names
@@ -37994,7 +38338,8 @@ module Google
37994
38338
 
37995
38339
  # A map of folder id and folder config to specify consumer projects for this
37996
38340
  # shared-reservation. This is only valid when share_type's value is
37997
- # DIRECT_PROJECTS_UNDER_SPECIFIC_FOLDERS.
38341
+ # DIRECT_PROJECTS_UNDER_SPECIFIC_FOLDERS. Folder id should be a string of number,
38342
+ # and without "folders/" prefix.
37998
38343
  # Corresponds to the JSON property `folderMap`
37999
38344
  # @return [Hash<String,Google::Apis::ComputeAlpha::ShareSettingsFolderConfig>]
38000
38345
  attr_accessor :folder_map
@@ -38034,7 +38379,7 @@ module Google
38034
38379
  include Google::Apis::Core::Hashable
38035
38380
 
38036
38381
  # The folder ID, should be same as the key of this folder config in the parent
38037
- # map.
38382
+ # map. Folder id should be a string of number, and without "folders/" prefix.
38038
38383
  # Corresponds to the JSON property `folderId`
38039
38384
  # @return [String]
38040
38385
  attr_accessor :folder_id
@@ -38491,6 +38836,11 @@ module Google
38491
38836
  # @return [Google::Apis::ComputeAlpha::CustomerEncryptionKey]
38492
38837
  attr_accessor :snapshot_encryption_key
38493
38838
 
38839
+ # Indicates the type of the snapshot.
38840
+ # Corresponds to the JSON property `snapshotType`
38841
+ # @return [String]
38842
+ attr_accessor :snapshot_type
38843
+
38494
38844
  # The source disk used to create this snapshot.
38495
38845
  # Corresponds to the JSON property `sourceDisk`
38496
38846
  # @return [String]
@@ -38587,6 +38937,7 @@ module Google
38587
38937
  @self_link = args[:self_link] if args.key?(:self_link)
38588
38938
  @self_link_with_id = args[:self_link_with_id] if args.key?(:self_link_with_id)
38589
38939
  @snapshot_encryption_key = args[:snapshot_encryption_key] if args.key?(:snapshot_encryption_key)
38940
+ @snapshot_type = args[:snapshot_type] if args.key?(:snapshot_type)
38590
38941
  @source_disk = args[:source_disk] if args.key?(:source_disk)
38591
38942
  @source_disk_encryption_key = args[:source_disk_encryption_key] if args.key?(:source_disk_encryption_key)
38592
38943
  @source_disk_id = args[:source_disk_id] if args.key?(:source_disk_id)
@@ -38769,7 +39120,8 @@ module Google
38769
39120
  end
38770
39121
  end
38771
39122
 
38772
- #
39123
+ # DEPRECATED: Please use compute#instanceProperties instead. New properties will
39124
+ # not be added to this field.
38773
39125
  class SourceInstanceProperties
38774
39126
  include Google::Apis::Core::Hashable
38775
39127
 
@@ -39413,6 +39765,136 @@ module Google
39413
39765
  end
39414
39766
  end
39415
39767
 
39768
+ #
39769
+ class SslPoliciesAggregatedList
39770
+ include Google::Apis::Core::Hashable
39771
+
39772
+ #
39773
+ # Corresponds to the JSON property `etag`
39774
+ # @return [String]
39775
+ attr_accessor :etag
39776
+
39777
+ # [Output Only] Unique identifier for the resource; defined by the server.
39778
+ # Corresponds to the JSON property `id`
39779
+ # @return [String]
39780
+ attr_accessor :id
39781
+
39782
+ # A list of SslPoliciesScopedList resources.
39783
+ # Corresponds to the JSON property `items`
39784
+ # @return [Hash<String,Google::Apis::ComputeAlpha::SslPoliciesScopedList>]
39785
+ attr_accessor :items
39786
+
39787
+ # [Output Only] Type of resource. Always compute#sslPolicyAggregatedList for
39788
+ # lists of SSL Policies.
39789
+ # Corresponds to the JSON property `kind`
39790
+ # @return [String]
39791
+ attr_accessor :kind
39792
+
39793
+ # [Output Only] This token allows you to get the next page of results for list
39794
+ # requests. If the number of results is larger than maxResults, use the
39795
+ # nextPageToken as a value for the query parameter pageToken in the next list
39796
+ # request. Subsequent list requests will have their own nextPageToken to
39797
+ # continue paging through the results.
39798
+ # Corresponds to the JSON property `nextPageToken`
39799
+ # @return [String]
39800
+ attr_accessor :next_page_token
39801
+
39802
+ # [Output Only] Server-defined URL for this resource.
39803
+ # Corresponds to the JSON property `selfLink`
39804
+ # @return [String]
39805
+ attr_accessor :self_link
39806
+
39807
+ # [Output Only] Unreachable resources.
39808
+ # Corresponds to the JSON property `unreachables`
39809
+ # @return [Array<String>]
39810
+ attr_accessor :unreachables
39811
+
39812
+ # [Output Only] Informational warning message.
39813
+ # Corresponds to the JSON property `warning`
39814
+ # @return [Google::Apis::ComputeAlpha::SslPoliciesAggregatedList::Warning]
39815
+ attr_accessor :warning
39816
+
39817
+ def initialize(**args)
39818
+ update!(**args)
39819
+ end
39820
+
39821
+ # Update properties of this object
39822
+ def update!(**args)
39823
+ @etag = args[:etag] if args.key?(:etag)
39824
+ @id = args[:id] if args.key?(:id)
39825
+ @items = args[:items] if args.key?(:items)
39826
+ @kind = args[:kind] if args.key?(:kind)
39827
+ @next_page_token = args[:next_page_token] if args.key?(:next_page_token)
39828
+ @self_link = args[:self_link] if args.key?(:self_link)
39829
+ @unreachables = args[:unreachables] if args.key?(:unreachables)
39830
+ @warning = args[:warning] if args.key?(:warning)
39831
+ end
39832
+
39833
+ # [Output Only] Informational warning message.
39834
+ class Warning
39835
+ include Google::Apis::Core::Hashable
39836
+
39837
+ # [Output Only] A warning code, if applicable. For example, Compute Engine
39838
+ # returns NO_RESULTS_ON_PAGE if there are no results in the response.
39839
+ # Corresponds to the JSON property `code`
39840
+ # @return [String]
39841
+ attr_accessor :code
39842
+
39843
+ # [Output Only] Metadata about this warning in key: value format. For example: "
39844
+ # data": [ ` "key": "scope", "value": "zones/us-east1-d" `
39845
+ # Corresponds to the JSON property `data`
39846
+ # @return [Array<Google::Apis::ComputeAlpha::SslPoliciesAggregatedList::Warning::Datum>]
39847
+ attr_accessor :data
39848
+
39849
+ # [Output Only] A human-readable description of the warning code.
39850
+ # Corresponds to the JSON property `message`
39851
+ # @return [String]
39852
+ attr_accessor :message
39853
+
39854
+ def initialize(**args)
39855
+ update!(**args)
39856
+ end
39857
+
39858
+ # Update properties of this object
39859
+ def update!(**args)
39860
+ @code = args[:code] if args.key?(:code)
39861
+ @data = args[:data] if args.key?(:data)
39862
+ @message = args[:message] if args.key?(:message)
39863
+ end
39864
+
39865
+ #
39866
+ class Datum
39867
+ include Google::Apis::Core::Hashable
39868
+
39869
+ # [Output Only] A key that provides more detail on the warning being returned.
39870
+ # For example, for warnings where there are no results in a list request for a
39871
+ # particular zone, this key might be scope and the key value might be the zone
39872
+ # name. Other examples might be a key indicating a deprecated resource and a
39873
+ # suggested replacement, or a warning about invalid network settings (for
39874
+ # example, if an instance attempts to perform IP forwarding but is not enabled
39875
+ # for IP forwarding).
39876
+ # Corresponds to the JSON property `key`
39877
+ # @return [String]
39878
+ attr_accessor :key
39879
+
39880
+ # [Output Only] A warning data value corresponding to the key.
39881
+ # Corresponds to the JSON property `value`
39882
+ # @return [String]
39883
+ attr_accessor :value
39884
+
39885
+ def initialize(**args)
39886
+ update!(**args)
39887
+ end
39888
+
39889
+ # Update properties of this object
39890
+ def update!(**args)
39891
+ @key = args[:key] if args.key?(:key)
39892
+ @value = args[:value] if args.key?(:value)
39893
+ end
39894
+ end
39895
+ end
39896
+ end
39897
+
39416
39898
  #
39417
39899
  class SslPoliciesList
39418
39900
  include Google::Apis::Core::Hashable
@@ -39550,6 +40032,97 @@ module Google
39550
40032
  end
39551
40033
  end
39552
40034
 
40035
+ #
40036
+ class SslPoliciesScopedList
40037
+ include Google::Apis::Core::Hashable
40038
+
40039
+ # A list of SslPolicies contained in this scope.
40040
+ # Corresponds to the JSON property `sslPolicies`
40041
+ # @return [Array<Google::Apis::ComputeAlpha::SslPolicy>]
40042
+ attr_accessor :ssl_policies
40043
+
40044
+ # Informational warning which replaces the list of SSL policies when the list is
40045
+ # empty.
40046
+ # Corresponds to the JSON property `warning`
40047
+ # @return [Google::Apis::ComputeAlpha::SslPoliciesScopedList::Warning]
40048
+ attr_accessor :warning
40049
+
40050
+ def initialize(**args)
40051
+ update!(**args)
40052
+ end
40053
+
40054
+ # Update properties of this object
40055
+ def update!(**args)
40056
+ @ssl_policies = args[:ssl_policies] if args.key?(:ssl_policies)
40057
+ @warning = args[:warning] if args.key?(:warning)
40058
+ end
40059
+
40060
+ # Informational warning which replaces the list of SSL policies when the list is
40061
+ # empty.
40062
+ class Warning
40063
+ include Google::Apis::Core::Hashable
40064
+
40065
+ # [Output Only] A warning code, if applicable. For example, Compute Engine
40066
+ # returns NO_RESULTS_ON_PAGE if there are no results in the response.
40067
+ # Corresponds to the JSON property `code`
40068
+ # @return [String]
40069
+ attr_accessor :code
40070
+
40071
+ # [Output Only] Metadata about this warning in key: value format. For example: "
40072
+ # data": [ ` "key": "scope", "value": "zones/us-east1-d" `
40073
+ # Corresponds to the JSON property `data`
40074
+ # @return [Array<Google::Apis::ComputeAlpha::SslPoliciesScopedList::Warning::Datum>]
40075
+ attr_accessor :data
40076
+
40077
+ # [Output Only] A human-readable description of the warning code.
40078
+ # Corresponds to the JSON property `message`
40079
+ # @return [String]
40080
+ attr_accessor :message
40081
+
40082
+ def initialize(**args)
40083
+ update!(**args)
40084
+ end
40085
+
40086
+ # Update properties of this object
40087
+ def update!(**args)
40088
+ @code = args[:code] if args.key?(:code)
40089
+ @data = args[:data] if args.key?(:data)
40090
+ @message = args[:message] if args.key?(:message)
40091
+ end
40092
+
40093
+ #
40094
+ class Datum
40095
+ include Google::Apis::Core::Hashable
40096
+
40097
+ # [Output Only] A key that provides more detail on the warning being returned.
40098
+ # For example, for warnings where there are no results in a list request for a
40099
+ # particular zone, this key might be scope and the key value might be the zone
40100
+ # name. Other examples might be a key indicating a deprecated resource and a
40101
+ # suggested replacement, or a warning about invalid network settings (for
40102
+ # example, if an instance attempts to perform IP forwarding but is not enabled
40103
+ # for IP forwarding).
40104
+ # Corresponds to the JSON property `key`
40105
+ # @return [String]
40106
+ attr_accessor :key
40107
+
40108
+ # [Output Only] A warning data value corresponding to the key.
40109
+ # Corresponds to the JSON property `value`
40110
+ # @return [String]
40111
+ attr_accessor :value
40112
+
40113
+ def initialize(**args)
40114
+ update!(**args)
40115
+ end
40116
+
40117
+ # Update properties of this object
40118
+ def update!(**args)
40119
+ @key = args[:key] if args.key?(:key)
40120
+ @value = args[:value] if args.key?(:value)
40121
+ end
40122
+ end
40123
+ end
40124
+ end
40125
+
39553
40126
  # Represents an SSL Policy resource. Use SSL policies to control the SSL
39554
40127
  # features, such as versions and cipher suites, offered by an HTTPS or SSL Proxy
39555
40128
  # load balancer. For more information, read SSL Policy Concepts.
@@ -39626,6 +40199,12 @@ module Google
39626
40199
  # @return [String]
39627
40200
  attr_accessor :profile
39628
40201
 
40202
+ # [Output Only] URL of the region where the regional SSL policy resides. This
40203
+ # field is not applicable to global SSL policies.
40204
+ # Corresponds to the JSON property `region`
40205
+ # @return [String]
40206
+ attr_accessor :region
40207
+
39629
40208
  # [Output Only] Server-defined URL for the resource.
39630
40209
  # Corresponds to the JSON property `selfLink`
39631
40210
  # @return [String]
@@ -39663,6 +40242,7 @@ module Google
39663
40242
  @min_tls_version = args[:min_tls_version] if args.key?(:min_tls_version)
39664
40243
  @name = args[:name] if args.key?(:name)
39665
40244
  @profile = args[:profile] if args.key?(:profile)
40245
+ @region = args[:region] if args.key?(:region)
39666
40246
  @self_link = args[:self_link] if args.key?(:self_link)
39667
40247
  @self_link_with_id = args[:self_link_with_id] if args.key?(:self_link_with_id)
39668
40248
  @tls_settings = args[:tls_settings] if args.key?(:tls_settings)
@@ -39981,7 +40561,7 @@ module Google
39981
40561
  attr_accessor :ipv6_access_type
39982
40562
 
39983
40563
  # [Output Only] The range of internal IPv6 addresses that are owned by this
39984
- # subnetwork.
40564
+ # subnetwork. Note this will be for private google access only eventually.
39985
40565
  # Corresponds to the JSON property `ipv6CidrRange`
39986
40566
  # @return [String]
39987
40567
  attr_accessor :ipv6_cidr_range