google-apis-compute_beta 0.26.0 → 0.29.0

Sign up to get free protection for your applications and to get access to all the features.
@@ -3403,9 +3403,14 @@ module Google
3403
3403
  # @return [Google::Apis::ComputeBeta::Subsetting]
3404
3404
  attr_accessor :subsetting
3405
3405
 
3406
- # Not supported when the backend service is referenced by a URL map that is
3407
- # bound to target gRPC proxy that has validateForProxyless field set to true.
3408
- # Instead, use maxStreamDuration.
3406
+ # The backend service timeout has a different meaning depending on the type of
3407
+ # load balancer. For more information see, Backend service settings. The default
3408
+ # is 30 seconds. The full range of timeout values allowed goes from 1 through 2,
3409
+ # 147,483,647 seconds. This value can be overridden in the PathMatcher
3410
+ # configuration of the UrlMap that references this backend service. Not
3411
+ # supported when the backend service is referenced by a URL map that is bound to
3412
+ # target gRPC proxy that has validateForProxyless field set to true. Instead,
3413
+ # use maxStreamDuration.
3409
3414
  # Corresponds to the JSON property `timeoutSec`
3410
3415
  # @return [Fixnum]
3411
3416
  attr_accessor :timeout_sec
@@ -4778,14 +4783,18 @@ module Google
4778
4783
  # @return [Google::Apis::ComputeBeta::Duration]
4779
4784
  attr_accessor :connect_timeout
4780
4785
 
4781
- # Not supported when the backend service is referenced by a URL map that is
4782
- # bound to target gRPC proxy that has validateForProxyless field set to true.
4786
+ # The maximum number of connections to the backend service. If not specified,
4787
+ # there is no limit. Not supported when the backend service is referenced by a
4788
+ # URL map that is bound to target gRPC proxy that has validateForProxyless field
4789
+ # set to true.
4783
4790
  # Corresponds to the JSON property `maxConnections`
4784
4791
  # @return [Fixnum]
4785
4792
  attr_accessor :max_connections
4786
4793
 
4787
- # Not supported when the backend service is referenced by a URL map that is
4788
- # bound to target gRPC proxy that has validateForProxyless field set to true.
4794
+ # The maximum number of pending requests allowed to the backend service. If not
4795
+ # specified, there is no limit. Not supported when the backend service is
4796
+ # referenced by a URL map that is bound to target gRPC proxy that has
4797
+ # validateForProxyless field set to true.
4789
4798
  # Corresponds to the JSON property `maxPendingRequests`
4790
4799
  # @return [Fixnum]
4791
4800
  attr_accessor :max_pending_requests
@@ -4796,14 +4805,20 @@ module Google
4796
4805
  # @return [Fixnum]
4797
4806
  attr_accessor :max_requests
4798
4807
 
4799
- # Not supported when the backend service is referenced by a URL map that is
4800
- # bound to target gRPC proxy that has validateForProxyless field set to true.
4808
+ # Maximum requests for a single connection to the backend service. This
4809
+ # parameter is respected by both the HTTP/1.1 and HTTP/2 implementations. If not
4810
+ # specified, there is no limit. Setting this parameter to 1 will effectively
4811
+ # disable keep alive. Not supported when the backend service is referenced by a
4812
+ # URL map that is bound to target gRPC proxy that has validateForProxyless field
4813
+ # set to true.
4801
4814
  # Corresponds to the JSON property `maxRequestsPerConnection`
4802
4815
  # @return [Fixnum]
4803
4816
  attr_accessor :max_requests_per_connection
4804
4817
 
4805
- # Not supported when the backend service is referenced by a URL map that is
4806
- # bound to target gRPC proxy that has validateForProxyless field set to true.
4818
+ # The maximum number of parallel retries allowed to the backend cluster. If not
4819
+ # specified, the default is 1. Not supported when the backend service is
4820
+ # referenced by a URL map that is bound to target gRPC proxy that has
4821
+ # validateForProxyless field set to true.
4807
4822
  # Corresponds to the JSON property `maxRetries`
4808
4823
  # @return [Fixnum]
4809
4824
  attr_accessor :max_retries
@@ -8061,6 +8076,14 @@ module Google
8061
8076
  # @return [String]
8062
8077
  attr_accessor :parent
8063
8078
 
8079
+ # [Output Only] URL of the region where the regional firewall policy resides.
8080
+ # This field is not applicable to global firewall policies. You must specify
8081
+ # this field as part of the HTTP request URL. It is not settable as a field in
8082
+ # the request body.
8083
+ # Corresponds to the JSON property `region`
8084
+ # @return [String]
8085
+ attr_accessor :region
8086
+
8064
8087
  # [Output Only] Total count of all firewall policy rule tuples. A firewall
8065
8088
  # policy can not exceed a set number of tuples.
8066
8089
  # Corresponds to the JSON property `ruleTupleCount`
@@ -8112,6 +8135,7 @@ module Google
8112
8135
  @kind = args[:kind] if args.key?(:kind)
8113
8136
  @name = args[:name] if args.key?(:name)
8114
8137
  @parent = args[:parent] if args.key?(:parent)
8138
+ @region = args[:region] if args.key?(:region)
8115
8139
  @rule_tuple_count = args[:rule_tuple_count] if args.key?(:rule_tuple_count)
8116
8140
  @rules = args[:rules] if args.key?(:rules)
8117
8141
  @self_link = args[:self_link] if args.key?(:self_link)
@@ -8347,6 +8371,18 @@ module Google
8347
8371
  # @return [Array<String>]
8348
8372
  attr_accessor :target_resources
8349
8373
 
8374
+ # A list of secure tags that controls which instances the firewall rule applies
8375
+ # to. If targetSecureTag are specified, then the firewall rule applies only to
8376
+ # instances in the VPC network that have one of those EFFECTIVE secure tags, if
8377
+ # all the target_secure_tag are in INEFFECTIVE state, then this rule will be
8378
+ # ignored. targetSecureTag may not be set at the same time as
8379
+ # targetServiceAccounts. If neither targetServiceAccounts nor targetSecureTag
8380
+ # are specified, the firewall rule applies to all instances on the specified
8381
+ # network. Maximum number of target label tags allowed is 256.
8382
+ # Corresponds to the JSON property `targetSecureTags`
8383
+ # @return [Array<Google::Apis::ComputeBeta::FirewallPolicyRuleSecureTag>]
8384
+ attr_accessor :target_secure_tags
8385
+
8350
8386
  # A list of service accounts indicating the sets of instances that are applied
8351
8387
  # with this rule.
8352
8388
  # Corresponds to the JSON property `targetServiceAccounts`
@@ -8369,6 +8405,7 @@ module Google
8369
8405
  @priority = args[:priority] if args.key?(:priority)
8370
8406
  @rule_tuple_count = args[:rule_tuple_count] if args.key?(:rule_tuple_count)
8371
8407
  @target_resources = args[:target_resources] if args.key?(:target_resources)
8408
+ @target_secure_tags = args[:target_secure_tags] if args.key?(:target_secure_tags)
8372
8409
  @target_service_accounts = args[:target_service_accounts] if args.key?(:target_service_accounts)
8373
8410
  end
8374
8411
  end
@@ -8394,6 +8431,14 @@ module Google
8394
8431
  # @return [Array<String>]
8395
8432
  attr_accessor :src_ip_ranges
8396
8433
 
8434
+ # List of secure tag values, which should be matched at the source of the
8435
+ # traffic. For INGRESS rule, if all the srcSecureTag are INEFFECTIVE, and there
8436
+ # is no srcIpRange, this rule will be ignored. Maximum number of source tag
8437
+ # values allowed is 256.
8438
+ # Corresponds to the JSON property `srcSecureTags`
8439
+ # @return [Array<Google::Apis::ComputeBeta::FirewallPolicyRuleSecureTag>]
8440
+ attr_accessor :src_secure_tags
8441
+
8397
8442
  def initialize(**args)
8398
8443
  update!(**args)
8399
8444
  end
@@ -8403,6 +8448,7 @@ module Google
8403
8448
  @dest_ip_ranges = args[:dest_ip_ranges] if args.key?(:dest_ip_ranges)
8404
8449
  @layer4_configs = args[:layer4_configs] if args.key?(:layer4_configs)
8405
8450
  @src_ip_ranges = args[:src_ip_ranges] if args.key?(:src_ip_ranges)
8451
+ @src_secure_tags = args[:src_secure_tags] if args.key?(:src_secure_tags)
8406
8452
  end
8407
8453
  end
8408
8454
 
@@ -8437,6 +8483,32 @@ module Google
8437
8483
  end
8438
8484
  end
8439
8485
 
8486
+ #
8487
+ class FirewallPolicyRuleSecureTag
8488
+ include Google::Apis::Core::Hashable
8489
+
8490
+ # Name of the secure tag, created with TagManager's TagValue API.
8491
+ # Corresponds to the JSON property `name`
8492
+ # @return [String]
8493
+ attr_accessor :name
8494
+
8495
+ # [Output Only] State of the secure tag, either `EFFECTIVE` or `INEFFECTIVE`. A
8496
+ # secure tag is `INEFFECTIVE` when it is deleted or its network is deleted.
8497
+ # Corresponds to the JSON property `state`
8498
+ # @return [String]
8499
+ attr_accessor :state
8500
+
8501
+ def initialize(**args)
8502
+ update!(**args)
8503
+ end
8504
+
8505
+ # Update properties of this object
8506
+ def update!(**args)
8507
+ @name = args[:name] if args.key?(:name)
8508
+ @state = args[:state] if args.key?(:state)
8509
+ end
8510
+ end
8511
+
8440
8512
  # Encapsulates numeric value that can be either absolute or relative.
8441
8513
  class FixedOrPercent
8442
8514
  include Google::Apis::Core::Hashable
@@ -9545,8 +9617,8 @@ module Google
9545
9617
  # The ID of a supported feature. To add multiple values, use commas to separate
9546
9618
  # values. Set to one or more of the following values: - VIRTIO_SCSI_MULTIQUEUE -
9547
9619
  # WINDOWS - MULTI_IP_SUBNET - UEFI_COMPATIBLE - SECURE_BOOT - GVNIC -
9548
- # SEV_CAPABLE - SUSPEND_RESUME_COMPATIBLE For more information, see Enabling
9549
- # guest operating system features.
9620
+ # SEV_CAPABLE - SUSPEND_RESUME_COMPATIBLE - SEV_SNP_CAPABLE For more information,
9621
+ # see Enabling guest operating system features.
9550
9622
  # Corresponds to the JSON property `type`
9551
9623
  # @return [String]
9552
9624
  attr_accessor :type
@@ -12917,6 +12989,68 @@ module Google
12917
12989
  end
12918
12990
  end
12919
12991
 
12992
+ #
12993
+ class InstanceConsumptionData
12994
+ include Google::Apis::Core::Hashable
12995
+
12996
+ # Resources consumed by the instance.
12997
+ # Corresponds to the JSON property `consumptionInfo`
12998
+ # @return [Google::Apis::ComputeBeta::InstanceConsumptionInfo]
12999
+ attr_accessor :consumption_info
13000
+
13001
+ # Server-defined URL for the instance.
13002
+ # Corresponds to the JSON property `instance`
13003
+ # @return [String]
13004
+ attr_accessor :instance
13005
+
13006
+ def initialize(**args)
13007
+ update!(**args)
13008
+ end
13009
+
13010
+ # Update properties of this object
13011
+ def update!(**args)
13012
+ @consumption_info = args[:consumption_info] if args.key?(:consumption_info)
13013
+ @instance = args[:instance] if args.key?(:instance)
13014
+ end
13015
+ end
13016
+
13017
+ #
13018
+ class InstanceConsumptionInfo
13019
+ include Google::Apis::Core::Hashable
13020
+
13021
+ # The number of virtual CPUs that are available to the instance.
13022
+ # Corresponds to the JSON property `guestCpus`
13023
+ # @return [Fixnum]
13024
+ attr_accessor :guest_cpus
13025
+
13026
+ # The amount of local SSD storage available to the instance, defined in GiB.
13027
+ # Corresponds to the JSON property `localSsdGb`
13028
+ # @return [Fixnum]
13029
+ attr_accessor :local_ssd_gb
13030
+
13031
+ # The amount of physical memory available to the instance, defined in MiB.
13032
+ # Corresponds to the JSON property `memoryMb`
13033
+ # @return [Fixnum]
13034
+ attr_accessor :memory_mb
13035
+
13036
+ # The minimal guaranteed number of virtual CPUs that are reserved.
13037
+ # Corresponds to the JSON property `minNodeCpus`
13038
+ # @return [Fixnum]
13039
+ attr_accessor :min_node_cpus
13040
+
13041
+ def initialize(**args)
13042
+ update!(**args)
13043
+ end
13044
+
13045
+ # Update properties of this object
13046
+ def update!(**args)
13047
+ @guest_cpus = args[:guest_cpus] if args.key?(:guest_cpus)
13048
+ @local_ssd_gb = args[:local_ssd_gb] if args.key?(:local_ssd_gb)
13049
+ @memory_mb = args[:memory_mb] if args.key?(:memory_mb)
13050
+ @min_node_cpus = args[:min_node_cpus] if args.key?(:min_node_cpus)
13051
+ end
13052
+ end
13053
+
12920
13054
  # Represents an Instance Group resource. Instance Groups can be used to
12921
13055
  # configure a target for load balancing. Instance groups can either be managed
12922
13056
  # or unmanaged. To create managed instance groups, use the instanceGroupManager
@@ -12968,8 +13102,8 @@ module Google
12968
13102
  # Assigns a name to a port number. For example: `name: "http", port: 80` This
12969
13103
  # allows the system to reference ports by the assigned name instead of a port
12970
13104
  # number. Named ports can also contain multiple ports. For example: [`name: "
12971
- # http", port: 80`,`name: "http", port: 8080`] Named ports apply to all
12972
- # instances in this instance group.
13105
+ # app1", port: 8080`, `name: "app1", port: 8081`, `name: "app2", port: 8082`]
13106
+ # Named ports apply to all instances in this instance group.
12973
13107
  # Corresponds to the JSON property `namedPorts`
12974
13108
  # @return [Array<Google::Apis::ComputeBeta::NamedPort>]
12975
13109
  attr_accessor :named_ports
@@ -15867,7 +16001,8 @@ module Google
15867
16001
  # @return [String]
15868
16002
  attr_accessor :short_name
15869
16003
 
15870
- # [Output Only] The type of the firewall policy.
16004
+ # [Output Only] The type of the firewall policy. Can be one of HIERARCHY,
16005
+ # NETWORK, NETWORK_REGIONAL.
15871
16006
  # Corresponds to the JSON property `type`
15872
16007
  # @return [String]
15873
16008
  attr_accessor :type
@@ -16486,13 +16621,7 @@ module Google
16486
16621
  # @return [String]
16487
16622
  attr_accessor :bandwidth
16488
16623
 
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.
16624
+ # This field is not available.
16496
16625
  # Corresponds to the JSON property `candidateIpv6Subnets`
16497
16626
  # @return [Array<String>]
16498
16627
  attr_accessor :candidate_ipv6_subnets
@@ -16520,10 +16649,7 @@ module Google
16520
16649
  # @return [String]
16521
16650
  attr_accessor :cloud_router_ipv6_address
16522
16651
 
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.
16652
+ # This field is not available.
16527
16653
  # Corresponds to the JSON property `cloudRouterIpv6InterfaceId`
16528
16654
  # @return [String]
16529
16655
  attr_accessor :cloud_router_ipv6_interface_id
@@ -16545,18 +16671,14 @@ module Google
16545
16671
  # @return [String]
16546
16672
  attr_accessor :customer_router_ipv6_address
16547
16673
 
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.
16674
+ # This field is not available.
16552
16675
  # Corresponds to the JSON property `customerRouterIpv6InterfaceId`
16553
16676
  # @return [String]
16554
16677
  attr_accessor :customer_router_ipv6_interface_id
16555
16678
 
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.
16679
+ # [Output Only] Dataplane version for this InterconnectAttachment. This field is
16680
+ # only present for Dataplane version 2 and higher. Absence of this field in the
16681
+ # API output indicates that the Dataplane is version 1.
16560
16682
  # Corresponds to the JSON property `dataplaneVersion`
16561
16683
  # @return [Fixnum]
16562
16684
  attr_accessor :dataplane_version
@@ -18503,8 +18625,7 @@ module Google
18503
18625
  attr_accessor :description
18504
18626
 
18505
18627
  # [Input Only] Whether to attempt an application consistent machine image by
18506
- # informing the OS to prepare for the snapshot process. Currently only supported
18507
- # on Windows instances using the Volume Shadow Copy Service (VSS).
18628
+ # informing the OS to prepare for the snapshot process.
18508
18629
  # Corresponds to the JSON property `guestFlush`
18509
18630
  # @return [Boolean]
18510
18631
  attr_accessor :guest_flush
@@ -19626,6 +19747,13 @@ module Google
19626
19747
  # @return [String]
19627
19748
  attr_accessor :description
19628
19749
 
19750
+ # Enable ULA internal ipv6 on this network. Enabling this feature will assign a /
19751
+ # 48 from google defined ULA prefix fd20::/20. .
19752
+ # Corresponds to the JSON property `enableUlaInternalIpv6`
19753
+ # @return [Boolean]
19754
+ attr_accessor :enable_ula_internal_ipv6
19755
+ alias_method :enable_ula_internal_ipv6?, :enable_ula_internal_ipv6
19756
+
19629
19757
  # [Output Only] The gateway address for default routing out of the network,
19630
19758
  # selected by GCP.
19631
19759
  # Corresponds to the JSON property `gatewayIPv4`
@@ -19638,6 +19766,16 @@ module Google
19638
19766
  # @return [Fixnum]
19639
19767
  attr_accessor :id
19640
19768
 
19769
+ # When enabling ula internal ipv6, caller optionally can specify the /48 range
19770
+ # they want from the google defined ULA prefix fd20::/20. The input must be a
19771
+ # valid /48 ULA IPv6 address and must be within the fd20::/20. Operation will
19772
+ # fail if the speficied /48 is already in used by another resource. If the field
19773
+ # is not speficied, then a /48 range will be randomly allocated from fd20::/20
19774
+ # and returned via this field. .
19775
+ # Corresponds to the JSON property `internalIpv6Range`
19776
+ # @return [String]
19777
+ attr_accessor :internal_ipv6_range
19778
+
19641
19779
  # [Output Only] Type of the resource. Always compute#network for networks.
19642
19780
  # Corresponds to the JSON property `kind`
19643
19781
  # @return [String]
@@ -19659,6 +19797,13 @@ module Google
19659
19797
  # @return [String]
19660
19798
  attr_accessor :name
19661
19799
 
19800
+ # The network firewall policy enforcement order. Can be either
19801
+ # AFTER_CLASSIC_FIREWALL or BEFORE_CLASSIC_FIREWALL. Defaults to
19802
+ # AFTER_CLASSIC_FIREWALL if the field is not specified.
19803
+ # Corresponds to the JSON property `networkFirewallPolicyEnforcementOrder`
19804
+ # @return [String]
19805
+ attr_accessor :network_firewall_policy_enforcement_order
19806
+
19662
19807
  # [Output Only] A list of network peerings for the resource.
19663
19808
  # Corresponds to the JSON property `peerings`
19664
19809
  # @return [Array<Google::Apis::ComputeBeta::NetworkPeering>]
@@ -19676,6 +19821,11 @@ module Google
19676
19821
  # @return [String]
19677
19822
  attr_accessor :self_link
19678
19823
 
19824
+ # [Output Only] Server-defined URL for this resource with the resource id.
19825
+ # Corresponds to the JSON property `selfLinkWithId`
19826
+ # @return [String]
19827
+ attr_accessor :self_link_with_id
19828
+
19679
19829
  # [Output Only] Server-defined fully-qualified URLs for all subnetworks in this
19680
19830
  # VPC network.
19681
19831
  # Corresponds to the JSON property `subnetworks`
@@ -19692,142 +19842,61 @@ module Google
19692
19842
  @auto_create_subnetworks = args[:auto_create_subnetworks] if args.key?(:auto_create_subnetworks)
19693
19843
  @creation_timestamp = args[:creation_timestamp] if args.key?(:creation_timestamp)
19694
19844
  @description = args[:description] if args.key?(:description)
19845
+ @enable_ula_internal_ipv6 = args[:enable_ula_internal_ipv6] if args.key?(:enable_ula_internal_ipv6)
19695
19846
  @gateway_i_pv4 = args[:gateway_i_pv4] if args.key?(:gateway_i_pv4)
19696
19847
  @id = args[:id] if args.key?(:id)
19848
+ @internal_ipv6_range = args[:internal_ipv6_range] if args.key?(:internal_ipv6_range)
19697
19849
  @kind = args[:kind] if args.key?(:kind)
19698
19850
  @mtu = args[:mtu] if args.key?(:mtu)
19699
19851
  @name = args[:name] if args.key?(:name)
19852
+ @network_firewall_policy_enforcement_order = args[:network_firewall_policy_enforcement_order] if args.key?(:network_firewall_policy_enforcement_order)
19700
19853
  @peerings = args[:peerings] if args.key?(:peerings)
19701
19854
  @routing_config = args[:routing_config] if args.key?(:routing_config)
19702
19855
  @self_link = args[:self_link] if args.key?(:self_link)
19856
+ @self_link_with_id = args[:self_link_with_id] if args.key?(:self_link_with_id)
19703
19857
  @subnetworks = args[:subnetworks] if args.key?(:subnetworks)
19704
19858
  end
19705
19859
  end
19706
19860
 
19707
- # The network endpoint.
19708
- class NetworkEndpoint
19709
- include Google::Apis::Core::Hashable
19710
-
19711
- # Metadata defined as annotations on the network endpoint.
19712
- # Corresponds to the JSON property `annotations`
19713
- # @return [Hash<String,String>]
19714
- attr_accessor :annotations
19715
-
19716
- # Optional fully qualified domain name of network endpoint. This can only be
19717
- # specified when NetworkEndpointGroup.network_endpoint_type is NON_GCP_FQDN_PORT.
19718
- # Corresponds to the JSON property `fqdn`
19719
- # @return [String]
19720
- attr_accessor :fqdn
19721
-
19722
- # The name for a specific VM instance that the IP address belongs to. This is
19723
- # required for network endpoints of type GCE_VM_IP_PORT. The instance must be in
19724
- # the same zone of network endpoint group. The name must be 1-63 characters long,
19725
- # and comply with RFC1035.
19726
- # Corresponds to the JSON property `instance`
19727
- # @return [String]
19728
- attr_accessor :instance
19729
-
19730
- # Optional IPv4 address of network endpoint. The IP address must belong to a VM
19731
- # in Compute Engine (either the primary IP or as part of an aliased IP range).
19732
- # If the IP address is not specified, then the primary IP address for the VM
19733
- # instance in the network that the network endpoint group belongs to will be
19734
- # used.
19735
- # Corresponds to the JSON property `ipAddress`
19736
- # @return [String]
19737
- attr_accessor :ip_address
19738
-
19739
- # Optional port number of network endpoint. If not specified, the defaultPort
19740
- # for the network endpoint group will be used.
19741
- # Corresponds to the JSON property `port`
19742
- # @return [Fixnum]
19743
- attr_accessor :port
19744
-
19745
- def initialize(**args)
19746
- update!(**args)
19747
- end
19748
-
19749
- # Update properties of this object
19750
- def update!(**args)
19751
- @annotations = args[:annotations] if args.key?(:annotations)
19752
- @fqdn = args[:fqdn] if args.key?(:fqdn)
19753
- @instance = args[:instance] if args.key?(:instance)
19754
- @ip_address = args[:ip_address] if args.key?(:ip_address)
19755
- @port = args[:port] if args.key?(:port)
19756
- end
19757
- end
19758
-
19759
- # Represents a collection of network endpoints. A network endpoint group (NEG)
19760
- # defines how a set of endpoints should be reached, whether they are reachable,
19761
- # and where they are located. For more information about using NEGs, see Setting
19762
- # up external HTTP(S) Load Balancing with internet NEGs, Setting up zonal NEGs,
19763
- # or Setting up external HTTP(S) Load Balancing with serverless NEGs.
19764
- class NetworkEndpointGroup
19861
+ # Represents a Google Cloud Armor network edge security service resource.
19862
+ class NetworkEdgeSecurityService
19765
19863
  include Google::Apis::Core::Hashable
19766
19864
 
19767
- # Metadata defined as annotations on the network endpoint group.
19768
- # Corresponds to the JSON property `annotations`
19769
- # @return [Hash<String,String>]
19770
- attr_accessor :annotations
19771
-
19772
- # Configuration for an App Engine network endpoint group (NEG). The service is
19773
- # optional, may be provided explicitly or in the URL mask. The version is
19774
- # optional and can only be provided explicitly or in the URL mask when service
19775
- # is present. Note: App Engine service must be in the same project and located
19776
- # in the same region as the Serverless NEG.
19777
- # Corresponds to the JSON property `appEngine`
19778
- # @return [Google::Apis::ComputeBeta::NetworkEndpointGroupAppEngine]
19779
- attr_accessor :app_engine
19780
-
19781
- # Configuration for a Cloud Function network endpoint group (NEG). The function
19782
- # must be provided explicitly or in the URL mask. Note: Cloud Function must be
19783
- # in the same project and located in the same region as the Serverless NEG.
19784
- # Corresponds to the JSON property `cloudFunction`
19785
- # @return [Google::Apis::ComputeBeta::NetworkEndpointGroupCloudFunction]
19786
- attr_accessor :cloud_function
19787
-
19788
- # Configuration for a Cloud Run network endpoint group (NEG). The service must
19789
- # be provided explicitly or in the URL mask. The tag is optional, may be
19790
- # provided explicitly or in the URL mask. Note: Cloud Run service must be in the
19791
- # same project and located in the same region as the Serverless NEG.
19792
- # Corresponds to the JSON property `cloudRun`
19793
- # @return [Google::Apis::ComputeBeta::NetworkEndpointGroupCloudRun]
19794
- attr_accessor :cloud_run
19795
-
19796
19865
  # [Output Only] Creation timestamp in RFC3339 text format.
19797
19866
  # Corresponds to the JSON property `creationTimestamp`
19798
19867
  # @return [String]
19799
19868
  attr_accessor :creation_timestamp
19800
19869
 
19801
- # The default port used if the port number is not specified in the network
19802
- # endpoint.
19803
- # Corresponds to the JSON property `defaultPort`
19804
- # @return [Fixnum]
19805
- attr_accessor :default_port
19806
-
19807
19870
  # An optional description of this resource. Provide this property when you
19808
19871
  # create the resource.
19809
19872
  # Corresponds to the JSON property `description`
19810
19873
  # @return [String]
19811
19874
  attr_accessor :description
19812
19875
 
19876
+ # Fingerprint of this resource. A hash of the contents stored in this object.
19877
+ # This field is used in optimistic locking. This field will be ignored when
19878
+ # inserting a NetworkEdgeSecurityService. An up-to-date fingerprint must be
19879
+ # provided in order to update the NetworkEdgeSecurityService, otherwise the
19880
+ # request will fail with error 412 conditionNotMet. To see the latest
19881
+ # fingerprint, make a get() request to retrieve a NetworkEdgeSecurityService.
19882
+ # Corresponds to the JSON property `fingerprint`
19883
+ # NOTE: Values are automatically base64 encoded/decoded in the client library.
19884
+ # @return [String]
19885
+ attr_accessor :fingerprint
19886
+
19813
19887
  # [Output Only] The unique identifier for the resource. This identifier is
19814
19888
  # defined by the server.
19815
19889
  # Corresponds to the JSON property `id`
19816
19890
  # @return [Fixnum]
19817
19891
  attr_accessor :id
19818
19892
 
19819
- # [Output Only] Type of the resource. Always compute#networkEndpointGroup for
19820
- # network endpoint group.
19893
+ # [Output only] Type of the resource. Always compute#networkEdgeSecurityService
19894
+ # for NetworkEdgeSecurityServices
19821
19895
  # Corresponds to the JSON property `kind`
19822
19896
  # @return [String]
19823
19897
  attr_accessor :kind
19824
19898
 
19825
- # Load balancing specific fields for network endpoint group.
19826
- # Corresponds to the JSON property `loadBalancer`
19827
- # @return [Google::Apis::ComputeBeta::NetworkEndpointGroupLbNetworkEndpointGroup]
19828
- attr_accessor :load_balancer
19829
-
19830
- # Name of the resource; provided by the client when the resource is created. The
19899
+ # Name of the resource. Provided by the client when the resource is created. The
19831
19900
  # name must be 1-63 characters long, and comply with RFC1035. Specifically, the
19832
19901
  # name must be 1-63 characters long and match the regular expression `[a-z]([-a-
19833
19902
  # z0-9]*[a-z0-9])?` which means the first character must be a lowercase letter,
@@ -19837,58 +19906,28 @@ module Google
19837
19906
  # @return [String]
19838
19907
  attr_accessor :name
19839
19908
 
19840
- # The URL of the network to which all network endpoints in the NEG belong. Uses "
19841
- # default" project network if unspecified.
19842
- # Corresponds to the JSON property `network`
19843
- # @return [String]
19844
- attr_accessor :network
19845
-
19846
- # Type of network endpoints in this network endpoint group. Can be one of
19847
- # GCE_VM_IP_PORT, NON_GCP_PRIVATE_IP_PORT, INTERNET_FQDN_PORT, INTERNET_IP_PORT,
19848
- # SERVERLESS, PRIVATE_SERVICE_CONNECT.
19849
- # Corresponds to the JSON property `networkEndpointType`
19850
- # @return [String]
19851
- attr_accessor :network_endpoint_type
19852
-
19853
- # The target service url used to set up private service connection to a Google
19854
- # API. An example value is: "asia-northeast3-cloudkms.googleapis.com"
19855
- # Corresponds to the JSON property `pscTargetService`
19856
- # @return [String]
19857
- attr_accessor :psc_target_service
19858
-
19859
- # [Output Only] The URL of the region where the network endpoint group is
19860
- # located.
19909
+ # [Output Only] URL of the region where the resource resides. You must specify
19910
+ # this field as part of the HTTP request URL. It is not settable as a field in
19911
+ # the request body.
19861
19912
  # Corresponds to the JSON property `region`
19862
19913
  # @return [String]
19863
19914
  attr_accessor :region
19864
19915
 
19916
+ # The resource URL for the network edge security service associated with this
19917
+ # network edge security service.
19918
+ # Corresponds to the JSON property `securityPolicy`
19919
+ # @return [String]
19920
+ attr_accessor :security_policy
19921
+
19865
19922
  # [Output Only] Server-defined URL for the resource.
19866
19923
  # Corresponds to the JSON property `selfLink`
19867
19924
  # @return [String]
19868
19925
  attr_accessor :self_link
19869
19926
 
19870
- # Configuration for a serverless network endpoint group (NEG). The platform must
19871
- # be provided. Note: The target backend service must be in the same project and
19872
- # located in the same region as the Serverless NEG.
19873
- # Corresponds to the JSON property `serverlessDeployment`
19874
- # @return [Google::Apis::ComputeBeta::NetworkEndpointGroupServerlessDeployment]
19875
- attr_accessor :serverless_deployment
19876
-
19877
- # [Output only] Number of network endpoints in the network endpoint group.
19878
- # Corresponds to the JSON property `size`
19879
- # @return [Fixnum]
19880
- attr_accessor :size
19881
-
19882
- # Optional URL of the subnetwork to which all network endpoints in the NEG
19883
- # belong.
19884
- # Corresponds to the JSON property `subnetwork`
19885
- # @return [String]
19886
- attr_accessor :subnetwork
19887
-
19888
- # [Output Only] The URL of the zone where the network endpoint group is located.
19889
- # Corresponds to the JSON property `zone`
19927
+ # [Output Only] Server-defined URL for this resource with the resource id.
19928
+ # Corresponds to the JSON property `selfLinkWithId`
19890
19929
  # @return [String]
19891
- attr_accessor :zone
19930
+ attr_accessor :self_link_with_id
19892
19931
 
19893
19932
  def initialize(**args)
19894
19933
  update!(**args)
@@ -19896,8 +19935,435 @@ module Google
19896
19935
 
19897
19936
  # Update properties of this object
19898
19937
  def update!(**args)
19899
- @annotations = args[:annotations] if args.key?(:annotations)
19900
- @app_engine = args[:app_engine] if args.key?(:app_engine)
19938
+ @creation_timestamp = args[:creation_timestamp] if args.key?(:creation_timestamp)
19939
+ @description = args[:description] if args.key?(:description)
19940
+ @fingerprint = args[:fingerprint] if args.key?(:fingerprint)
19941
+ @id = args[:id] if args.key?(:id)
19942
+ @kind = args[:kind] if args.key?(:kind)
19943
+ @name = args[:name] if args.key?(:name)
19944
+ @region = args[:region] if args.key?(:region)
19945
+ @security_policy = args[:security_policy] if args.key?(:security_policy)
19946
+ @self_link = args[:self_link] if args.key?(:self_link)
19947
+ @self_link_with_id = args[:self_link_with_id] if args.key?(:self_link_with_id)
19948
+ end
19949
+ end
19950
+
19951
+ #
19952
+ class NetworkEdgeSecurityServiceAggregatedList
19953
+ include Google::Apis::Core::Hashable
19954
+
19955
+ #
19956
+ # Corresponds to the JSON property `etag`
19957
+ # @return [String]
19958
+ attr_accessor :etag
19959
+
19960
+ # [Output Only] Unique identifier for the resource; defined by the server.
19961
+ # Corresponds to the JSON property `id`
19962
+ # @return [String]
19963
+ attr_accessor :id
19964
+
19965
+ # A list of NetworkEdgeSecurityServicesScopedList resources.
19966
+ # Corresponds to the JSON property `items`
19967
+ # @return [Hash<String,Google::Apis::ComputeBeta::NetworkEdgeSecurityServicesScopedList>]
19968
+ attr_accessor :items
19969
+
19970
+ # [Output Only] Type of resource. Always compute#
19971
+ # networkEdgeSecurityServiceAggregatedList for lists of Network Edge Security
19972
+ # Services.
19973
+ # Corresponds to the JSON property `kind`
19974
+ # @return [String]
19975
+ attr_accessor :kind
19976
+
19977
+ # [Output Only] This token allows you to get the next page of results for list
19978
+ # requests. If the number of results is larger than maxResults, use the
19979
+ # nextPageToken as a value for the query parameter pageToken in the next list
19980
+ # request. Subsequent list requests will have their own nextPageToken to
19981
+ # continue paging through the results.
19982
+ # Corresponds to the JSON property `nextPageToken`
19983
+ # @return [String]
19984
+ attr_accessor :next_page_token
19985
+
19986
+ # [Output Only] Server-defined URL for this resource.
19987
+ # Corresponds to the JSON property `selfLink`
19988
+ # @return [String]
19989
+ attr_accessor :self_link
19990
+
19991
+ # [Output Only] Unreachable resources.
19992
+ # Corresponds to the JSON property `unreachables`
19993
+ # @return [Array<String>]
19994
+ attr_accessor :unreachables
19995
+
19996
+ # [Output Only] Informational warning message.
19997
+ # Corresponds to the JSON property `warning`
19998
+ # @return [Google::Apis::ComputeBeta::NetworkEdgeSecurityServiceAggregatedList::Warning]
19999
+ attr_accessor :warning
20000
+
20001
+ def initialize(**args)
20002
+ update!(**args)
20003
+ end
20004
+
20005
+ # Update properties of this object
20006
+ def update!(**args)
20007
+ @etag = args[:etag] if args.key?(:etag)
20008
+ @id = args[:id] if args.key?(:id)
20009
+ @items = args[:items] if args.key?(:items)
20010
+ @kind = args[:kind] if args.key?(:kind)
20011
+ @next_page_token = args[:next_page_token] if args.key?(:next_page_token)
20012
+ @self_link = args[:self_link] if args.key?(:self_link)
20013
+ @unreachables = args[:unreachables] if args.key?(:unreachables)
20014
+ @warning = args[:warning] if args.key?(:warning)
20015
+ end
20016
+
20017
+ # [Output Only] Informational warning message.
20018
+ class Warning
20019
+ include Google::Apis::Core::Hashable
20020
+
20021
+ # [Output Only] A warning code, if applicable. For example, Compute Engine
20022
+ # returns NO_RESULTS_ON_PAGE if there are no results in the response.
20023
+ # Corresponds to the JSON property `code`
20024
+ # @return [String]
20025
+ attr_accessor :code
20026
+
20027
+ # [Output Only] Metadata about this warning in key: value format. For example: "
20028
+ # data": [ ` "key": "scope", "value": "zones/us-east1-d" `
20029
+ # Corresponds to the JSON property `data`
20030
+ # @return [Array<Google::Apis::ComputeBeta::NetworkEdgeSecurityServiceAggregatedList::Warning::Datum>]
20031
+ attr_accessor :data
20032
+
20033
+ # [Output Only] A human-readable description of the warning code.
20034
+ # Corresponds to the JSON property `message`
20035
+ # @return [String]
20036
+ attr_accessor :message
20037
+
20038
+ def initialize(**args)
20039
+ update!(**args)
20040
+ end
20041
+
20042
+ # Update properties of this object
20043
+ def update!(**args)
20044
+ @code = args[:code] if args.key?(:code)
20045
+ @data = args[:data] if args.key?(:data)
20046
+ @message = args[:message] if args.key?(:message)
20047
+ end
20048
+
20049
+ #
20050
+ class Datum
20051
+ include Google::Apis::Core::Hashable
20052
+
20053
+ # [Output Only] A key that provides more detail on the warning being returned.
20054
+ # For example, for warnings where there are no results in a list request for a
20055
+ # particular zone, this key might be scope and the key value might be the zone
20056
+ # name. Other examples might be a key indicating a deprecated resource and a
20057
+ # suggested replacement, or a warning about invalid network settings (for
20058
+ # example, if an instance attempts to perform IP forwarding but is not enabled
20059
+ # for IP forwarding).
20060
+ # Corresponds to the JSON property `key`
20061
+ # @return [String]
20062
+ attr_accessor :key
20063
+
20064
+ # [Output Only] A warning data value corresponding to the key.
20065
+ # Corresponds to the JSON property `value`
20066
+ # @return [String]
20067
+ attr_accessor :value
20068
+
20069
+ def initialize(**args)
20070
+ update!(**args)
20071
+ end
20072
+
20073
+ # Update properties of this object
20074
+ def update!(**args)
20075
+ @key = args[:key] if args.key?(:key)
20076
+ @value = args[:value] if args.key?(:value)
20077
+ end
20078
+ end
20079
+ end
20080
+ end
20081
+
20082
+ #
20083
+ class NetworkEdgeSecurityServicesScopedList
20084
+ include Google::Apis::Core::Hashable
20085
+
20086
+ # A list of NetworkEdgeSecurityServices contained in this scope.
20087
+ # Corresponds to the JSON property `networkEdgeSecurityServices`
20088
+ # @return [Array<Google::Apis::ComputeBeta::NetworkEdgeSecurityService>]
20089
+ attr_accessor :network_edge_security_services
20090
+
20091
+ # Informational warning which replaces the list of security policies when the
20092
+ # list is empty.
20093
+ # Corresponds to the JSON property `warning`
20094
+ # @return [Google::Apis::ComputeBeta::NetworkEdgeSecurityServicesScopedList::Warning]
20095
+ attr_accessor :warning
20096
+
20097
+ def initialize(**args)
20098
+ update!(**args)
20099
+ end
20100
+
20101
+ # Update properties of this object
20102
+ def update!(**args)
20103
+ @network_edge_security_services = args[:network_edge_security_services] if args.key?(:network_edge_security_services)
20104
+ @warning = args[:warning] if args.key?(:warning)
20105
+ end
20106
+
20107
+ # Informational warning which replaces the list of security policies when the
20108
+ # list is empty.
20109
+ class Warning
20110
+ include Google::Apis::Core::Hashable
20111
+
20112
+ # [Output Only] A warning code, if applicable. For example, Compute Engine
20113
+ # returns NO_RESULTS_ON_PAGE if there are no results in the response.
20114
+ # Corresponds to the JSON property `code`
20115
+ # @return [String]
20116
+ attr_accessor :code
20117
+
20118
+ # [Output Only] Metadata about this warning in key: value format. For example: "
20119
+ # data": [ ` "key": "scope", "value": "zones/us-east1-d" `
20120
+ # Corresponds to the JSON property `data`
20121
+ # @return [Array<Google::Apis::ComputeBeta::NetworkEdgeSecurityServicesScopedList::Warning::Datum>]
20122
+ attr_accessor :data
20123
+
20124
+ # [Output Only] A human-readable description of the warning code.
20125
+ # Corresponds to the JSON property `message`
20126
+ # @return [String]
20127
+ attr_accessor :message
20128
+
20129
+ def initialize(**args)
20130
+ update!(**args)
20131
+ end
20132
+
20133
+ # Update properties of this object
20134
+ def update!(**args)
20135
+ @code = args[:code] if args.key?(:code)
20136
+ @data = args[:data] if args.key?(:data)
20137
+ @message = args[:message] if args.key?(:message)
20138
+ end
20139
+
20140
+ #
20141
+ class Datum
20142
+ include Google::Apis::Core::Hashable
20143
+
20144
+ # [Output Only] A key that provides more detail on the warning being returned.
20145
+ # For example, for warnings where there are no results in a list request for a
20146
+ # particular zone, this key might be scope and the key value might be the zone
20147
+ # name. Other examples might be a key indicating a deprecated resource and a
20148
+ # suggested replacement, or a warning about invalid network settings (for
20149
+ # example, if an instance attempts to perform IP forwarding but is not enabled
20150
+ # for IP forwarding).
20151
+ # Corresponds to the JSON property `key`
20152
+ # @return [String]
20153
+ attr_accessor :key
20154
+
20155
+ # [Output Only] A warning data value corresponding to the key.
20156
+ # Corresponds to the JSON property `value`
20157
+ # @return [String]
20158
+ attr_accessor :value
20159
+
20160
+ def initialize(**args)
20161
+ update!(**args)
20162
+ end
20163
+
20164
+ # Update properties of this object
20165
+ def update!(**args)
20166
+ @key = args[:key] if args.key?(:key)
20167
+ @value = args[:value] if args.key?(:value)
20168
+ end
20169
+ end
20170
+ end
20171
+ end
20172
+
20173
+ # The network endpoint.
20174
+ class NetworkEndpoint
20175
+ include Google::Apis::Core::Hashable
20176
+
20177
+ # Metadata defined as annotations on the network endpoint.
20178
+ # Corresponds to the JSON property `annotations`
20179
+ # @return [Hash<String,String>]
20180
+ attr_accessor :annotations
20181
+
20182
+ # Optional fully qualified domain name of network endpoint. This can only be
20183
+ # specified when NetworkEndpointGroup.network_endpoint_type is NON_GCP_FQDN_PORT.
20184
+ # Corresponds to the JSON property `fqdn`
20185
+ # @return [String]
20186
+ attr_accessor :fqdn
20187
+
20188
+ # The name for a specific VM instance that the IP address belongs to. This is
20189
+ # required for network endpoints of type GCE_VM_IP_PORT. The instance must be in
20190
+ # the same zone of network endpoint group. The name must be 1-63 characters long,
20191
+ # and comply with RFC1035.
20192
+ # Corresponds to the JSON property `instance`
20193
+ # @return [String]
20194
+ attr_accessor :instance
20195
+
20196
+ # Optional IPv4 address of network endpoint. The IP address must belong to a VM
20197
+ # in Compute Engine (either the primary IP or as part of an aliased IP range).
20198
+ # If the IP address is not specified, then the primary IP address for the VM
20199
+ # instance in the network that the network endpoint group belongs to will be
20200
+ # used.
20201
+ # Corresponds to the JSON property `ipAddress`
20202
+ # @return [String]
20203
+ attr_accessor :ip_address
20204
+
20205
+ # Optional port number of network endpoint. If not specified, the defaultPort
20206
+ # for the network endpoint group will be used.
20207
+ # Corresponds to the JSON property `port`
20208
+ # @return [Fixnum]
20209
+ attr_accessor :port
20210
+
20211
+ def initialize(**args)
20212
+ update!(**args)
20213
+ end
20214
+
20215
+ # Update properties of this object
20216
+ def update!(**args)
20217
+ @annotations = args[:annotations] if args.key?(:annotations)
20218
+ @fqdn = args[:fqdn] if args.key?(:fqdn)
20219
+ @instance = args[:instance] if args.key?(:instance)
20220
+ @ip_address = args[:ip_address] if args.key?(:ip_address)
20221
+ @port = args[:port] if args.key?(:port)
20222
+ end
20223
+ end
20224
+
20225
+ # Represents a collection of network endpoints. A network endpoint group (NEG)
20226
+ # defines how a set of endpoints should be reached, whether they are reachable,
20227
+ # and where they are located. For more information about using NEGs, see Setting
20228
+ # up external HTTP(S) Load Balancing with internet NEGs, Setting up zonal NEGs,
20229
+ # or Setting up external HTTP(S) Load Balancing with serverless NEGs.
20230
+ class NetworkEndpointGroup
20231
+ include Google::Apis::Core::Hashable
20232
+
20233
+ # Metadata defined as annotations on the network endpoint group.
20234
+ # Corresponds to the JSON property `annotations`
20235
+ # @return [Hash<String,String>]
20236
+ attr_accessor :annotations
20237
+
20238
+ # Configuration for an App Engine network endpoint group (NEG). The service is
20239
+ # optional, may be provided explicitly or in the URL mask. The version is
20240
+ # optional and can only be provided explicitly or in the URL mask when service
20241
+ # is present. Note: App Engine service must be in the same project and located
20242
+ # in the same region as the Serverless NEG.
20243
+ # Corresponds to the JSON property `appEngine`
20244
+ # @return [Google::Apis::ComputeBeta::NetworkEndpointGroupAppEngine]
20245
+ attr_accessor :app_engine
20246
+
20247
+ # Configuration for a Cloud Function network endpoint group (NEG). The function
20248
+ # must be provided explicitly or in the URL mask. Note: Cloud Function must be
20249
+ # in the same project and located in the same region as the Serverless NEG.
20250
+ # Corresponds to the JSON property `cloudFunction`
20251
+ # @return [Google::Apis::ComputeBeta::NetworkEndpointGroupCloudFunction]
20252
+ attr_accessor :cloud_function
20253
+
20254
+ # Configuration for a Cloud Run network endpoint group (NEG). The service must
20255
+ # be provided explicitly or in the URL mask. The tag is optional, may be
20256
+ # provided explicitly or in the URL mask. Note: Cloud Run service must be in the
20257
+ # same project and located in the same region as the Serverless NEG.
20258
+ # Corresponds to the JSON property `cloudRun`
20259
+ # @return [Google::Apis::ComputeBeta::NetworkEndpointGroupCloudRun]
20260
+ attr_accessor :cloud_run
20261
+
20262
+ # [Output Only] Creation timestamp in RFC3339 text format.
20263
+ # Corresponds to the JSON property `creationTimestamp`
20264
+ # @return [String]
20265
+ attr_accessor :creation_timestamp
20266
+
20267
+ # The default port used if the port number is not specified in the network
20268
+ # endpoint.
20269
+ # Corresponds to the JSON property `defaultPort`
20270
+ # @return [Fixnum]
20271
+ attr_accessor :default_port
20272
+
20273
+ # An optional description of this resource. Provide this property when you
20274
+ # create the resource.
20275
+ # Corresponds to the JSON property `description`
20276
+ # @return [String]
20277
+ attr_accessor :description
20278
+
20279
+ # [Output Only] The unique identifier for the resource. This identifier is
20280
+ # defined by the server.
20281
+ # Corresponds to the JSON property `id`
20282
+ # @return [Fixnum]
20283
+ attr_accessor :id
20284
+
20285
+ # [Output Only] Type of the resource. Always compute#networkEndpointGroup for
20286
+ # network endpoint group.
20287
+ # Corresponds to the JSON property `kind`
20288
+ # @return [String]
20289
+ attr_accessor :kind
20290
+
20291
+ # Load balancing specific fields for network endpoint group.
20292
+ # Corresponds to the JSON property `loadBalancer`
20293
+ # @return [Google::Apis::ComputeBeta::NetworkEndpointGroupLbNetworkEndpointGroup]
20294
+ attr_accessor :load_balancer
20295
+
20296
+ # Name of the resource; provided by the client when the resource is created. The
20297
+ # name must be 1-63 characters long, and comply with RFC1035. Specifically, the
20298
+ # name must be 1-63 characters long and match the regular expression `[a-z]([-a-
20299
+ # z0-9]*[a-z0-9])?` which means the first character must be a lowercase letter,
20300
+ # and all following characters must be a dash, lowercase letter, or digit,
20301
+ # except the last character, which cannot be a dash.
20302
+ # Corresponds to the JSON property `name`
20303
+ # @return [String]
20304
+ attr_accessor :name
20305
+
20306
+ # The URL of the network to which all network endpoints in the NEG belong. Uses "
20307
+ # default" project network if unspecified.
20308
+ # Corresponds to the JSON property `network`
20309
+ # @return [String]
20310
+ attr_accessor :network
20311
+
20312
+ # Type of network endpoints in this network endpoint group. Can be one of
20313
+ # GCE_VM_IP, GCE_VM_IP_PORT, NON_GCP_PRIVATE_IP_PORT, INTERNET_FQDN_PORT,
20314
+ # INTERNET_IP_PORT, SERVERLESS, PRIVATE_SERVICE_CONNECT.
20315
+ # Corresponds to the JSON property `networkEndpointType`
20316
+ # @return [String]
20317
+ attr_accessor :network_endpoint_type
20318
+
20319
+ # The target service url used to set up private service connection to a Google
20320
+ # API. An example value is: "asia-northeast3-cloudkms.googleapis.com"
20321
+ # Corresponds to the JSON property `pscTargetService`
20322
+ # @return [String]
20323
+ attr_accessor :psc_target_service
20324
+
20325
+ # [Output Only] The URL of the region where the network endpoint group is
20326
+ # located.
20327
+ # Corresponds to the JSON property `region`
20328
+ # @return [String]
20329
+ attr_accessor :region
20330
+
20331
+ # [Output Only] Server-defined URL for the resource.
20332
+ # Corresponds to the JSON property `selfLink`
20333
+ # @return [String]
20334
+ attr_accessor :self_link
20335
+
20336
+ # Configuration for a serverless network endpoint group (NEG). The platform must
20337
+ # be provided. Note: The target backend service must be in the same project and
20338
+ # located in the same region as the Serverless NEG.
20339
+ # Corresponds to the JSON property `serverlessDeployment`
20340
+ # @return [Google::Apis::ComputeBeta::NetworkEndpointGroupServerlessDeployment]
20341
+ attr_accessor :serverless_deployment
20342
+
20343
+ # [Output only] Number of network endpoints in the network endpoint group.
20344
+ # Corresponds to the JSON property `size`
20345
+ # @return [Fixnum]
20346
+ attr_accessor :size
20347
+
20348
+ # Optional URL of the subnetwork to which all network endpoints in the NEG
20349
+ # belong.
20350
+ # Corresponds to the JSON property `subnetwork`
20351
+ # @return [String]
20352
+ attr_accessor :subnetwork
20353
+
20354
+ # [Output Only] The URL of the zone where the network endpoint group is located.
20355
+ # Corresponds to the JSON property `zone`
20356
+ # @return [String]
20357
+ attr_accessor :zone
20358
+
20359
+ def initialize(**args)
20360
+ update!(**args)
20361
+ end
20362
+
20363
+ # Update properties of this object
20364
+ def update!(**args)
20365
+ @annotations = args[:annotations] if args.key?(:annotations)
20366
+ @app_engine = args[:app_engine] if args.key?(:app_engine)
19901
20367
  @cloud_function = args[:cloud_function] if args.key?(:cloud_function)
19902
20368
  @cloud_run = args[:cloud_run] if args.key?(:cloud_run)
19903
20369
  @creation_timestamp = args[:creation_timestamp] if args.key?(:creation_timestamp)
@@ -20140,13 +20606,13 @@ module Google
20140
20606
  # @return [String]
20141
20607
  attr_accessor :tag
20142
20608
 
20143
- # A template to parse service and tag fields from a request URL. URL mask allows
20144
- # for routing to multiple Run services without having to create multiple network
20145
- # endpoint groups and backend services. For example, request URLs "foo1.domain.
20146
- # com/bar1" and "foo1.domain.com/bar2" can be backed by the same Serverless
20147
- # Network Endpoint Group (NEG) with URL mask ".domain.com/". The URL mask will
20148
- # parse them to ` service="bar1", tag="foo1" ` and ` service="bar2", tag="foo2" `
20149
- # respectively.
20609
+ # A template to parse <service> and <tag> fields from a request URL. URL mask
20610
+ # allows for routing to multiple Run services without having to create multiple
20611
+ # network endpoint groups and backend services. For example, request URLs "foo1.
20612
+ # domain.com/bar1" and "foo1.domain.com/bar2" can be backed by the same
20613
+ # Serverless Network Endpoint Group (NEG) with URL mask "<tag>.domain.com/<
20614
+ # service>". The URL mask will parse them to ` service="bar1", tag="foo1" ` and `
20615
+ # service="bar2", tag="foo2" ` respectively.
20150
20616
  # Corresponds to the JSON property `urlMask`
20151
20617
  # @return [String]
20152
20618
  attr_accessor :url_mask
@@ -20718,6 +21184,11 @@ module Google
20718
21184
  # @return [String]
20719
21185
  attr_accessor :fingerprint
20720
21186
 
21187
+ # The prefix length of the primary internal IPv6 range.
21188
+ # Corresponds to the JSON property `internalIpv6PrefixLength`
21189
+ # @return [Fixnum]
21190
+ attr_accessor :internal_ipv6_prefix_length
21191
+
20721
21192
  # An array of IPv6 access configurations for this interface. Currently, only one
20722
21193
  # IPv6 access config, DIRECT_IPV6, is supported. If there is no ipv6AccessConfig
20723
21194
  # specified, then this instance will have no external IPv6 Internet access.
@@ -20744,7 +21215,8 @@ module Google
20744
21215
  attr_accessor :kind
20745
21216
 
20746
21217
  # [Output Only] The name of the network interface, which is generated by the
20747
- # server. For network devices, these are eth0, eth1, etc.
21218
+ # server. For a VM, the network interface uses the nicN naming format. Where N
21219
+ # is a value between 0 and 7. The default interface value is nic0.
20748
21220
  # Corresponds to the JSON property `name`
20749
21221
  # @return [String]
20750
21222
  attr_accessor :name
@@ -20809,6 +21281,7 @@ module Google
20809
21281
  @access_configs = args[:access_configs] if args.key?(:access_configs)
20810
21282
  @alias_ip_ranges = args[:alias_ip_ranges] if args.key?(:alias_ip_ranges)
20811
21283
  @fingerprint = args[:fingerprint] if args.key?(:fingerprint)
21284
+ @internal_ipv6_prefix_length = args[:internal_ipv6_prefix_length] if args.key?(:internal_ipv6_prefix_length)
20812
21285
  @ipv6_access_configs = args[:ipv6_access_configs] if args.key?(:ipv6_access_configs)
20813
21286
  @ipv6_access_type = args[:ipv6_access_type] if args.key?(:ipv6_access_type)
20814
21287
  @ipv6_address = args[:ipv6_address] if args.key?(:ipv6_address)
@@ -21365,6 +21838,11 @@ module Google
21365
21838
  # @return [String]
21366
21839
  attr_accessor :self_link
21367
21840
 
21841
+ # The share setting for reservations and sole tenancy node groups.
21842
+ # Corresponds to the JSON property `shareSettings`
21843
+ # @return [Google::Apis::ComputeBeta::ShareSettings]
21844
+ attr_accessor :share_settings
21845
+
21368
21846
  # [Output Only] The total number of nodes in the node group.
21369
21847
  # Corresponds to the JSON property `size`
21370
21848
  # @return [Fixnum]
@@ -21399,6 +21877,7 @@ module Google
21399
21877
  @name = args[:name] if args.key?(:name)
21400
21878
  @node_template = args[:node_template] if args.key?(:node_template)
21401
21879
  @self_link = args[:self_link] if args.key?(:self_link)
21880
+ @share_settings = args[:share_settings] if args.key?(:share_settings)
21402
21881
  @size = args[:size] if args.key?(:size)
21403
21882
  @status = args[:status] if args.key?(:status)
21404
21883
  @zone = args[:zone] if args.key?(:zone)
@@ -21720,6 +22199,11 @@ module Google
21720
22199
  # @return [Array<Google::Apis::ComputeBeta::AcceleratorConfig>]
21721
22200
  attr_accessor :accelerators
21722
22201
 
22202
+ # Node resources that are reserved by all instances.
22203
+ # Corresponds to the JSON property `consumedResources`
22204
+ # @return [Google::Apis::ComputeBeta::InstanceConsumptionInfo]
22205
+ attr_accessor :consumed_resources
22206
+
21723
22207
  # CPU overcommit.
21724
22208
  # Corresponds to the JSON property `cpuOvercommitType`
21725
22209
  # @return [String]
@@ -21730,6 +22214,11 @@ module Google
21730
22214
  # @return [Array<Google::Apis::ComputeBeta::LocalDisk>]
21731
22215
  attr_accessor :disks
21732
22216
 
22217
+ # Instance data that shows consumed resources on the node.
22218
+ # Corresponds to the JSON property `instanceConsumptionData`
22219
+ # @return [Array<Google::Apis::ComputeBeta::InstanceConsumptionData>]
22220
+ attr_accessor :instance_consumption_data
22221
+
21733
22222
  # Instances scheduled on this node.
21734
22223
  # Corresponds to the JSON property `instances`
21735
22224
  # @return [Array<String>]
@@ -21766,6 +22255,11 @@ module Google
21766
22255
  # @return [String]
21767
22256
  attr_accessor :status
21768
22257
 
22258
+ # Total amount of available resources on the node.
22259
+ # Corresponds to the JSON property `totalResources`
22260
+ # @return [Google::Apis::ComputeBeta::InstanceConsumptionInfo]
22261
+ attr_accessor :total_resources
22262
+
21769
22263
  def initialize(**args)
21770
22264
  update!(**args)
21771
22265
  end
@@ -21773,8 +22267,10 @@ module Google
21773
22267
  # Update properties of this object
21774
22268
  def update!(**args)
21775
22269
  @accelerators = args[:accelerators] if args.key?(:accelerators)
22270
+ @consumed_resources = args[:consumed_resources] if args.key?(:consumed_resources)
21776
22271
  @cpu_overcommit_type = args[:cpu_overcommit_type] if args.key?(:cpu_overcommit_type)
21777
22272
  @disks = args[:disks] if args.key?(:disks)
22273
+ @instance_consumption_data = args[:instance_consumption_data] if args.key?(:instance_consumption_data)
21778
22274
  @instances = args[:instances] if args.key?(:instances)
21779
22275
  @name = args[:name] if args.key?(:name)
21780
22276
  @node_type = args[:node_type] if args.key?(:node_type)
@@ -21782,6 +22278,7 @@ module Google
21782
22278
  @server_binding = args[:server_binding] if args.key?(:server_binding)
21783
22279
  @server_id = args[:server_id] if args.key?(:server_id)
21784
22280
  @status = args[:status] if args.key?(:status)
22281
+ @total_resources = args[:total_resources] if args.key?(:total_resources)
21785
22282
  end
21786
22283
  end
21787
22284
 
@@ -27584,6 +28081,69 @@ module Google
27584
28081
  end
27585
28082
  end
27586
28083
 
28084
+ #
28085
+ class RegionNetworkFirewallPoliciesGetEffectiveFirewallsResponse
28086
+ include Google::Apis::Core::Hashable
28087
+
28088
+ # Effective firewalls from firewall policy.
28089
+ # Corresponds to the JSON property `firewallPolicys`
28090
+ # @return [Array<Google::Apis::ComputeBeta::RegionNetworkFirewallPoliciesGetEffectiveFirewallsResponseEffectiveFirewallPolicy>]
28091
+ attr_accessor :firewall_policys
28092
+
28093
+ # Effective firewalls on the network.
28094
+ # Corresponds to the JSON property `firewalls`
28095
+ # @return [Array<Google::Apis::ComputeBeta::Firewall>]
28096
+ attr_accessor :firewalls
28097
+
28098
+ def initialize(**args)
28099
+ update!(**args)
28100
+ end
28101
+
28102
+ # Update properties of this object
28103
+ def update!(**args)
28104
+ @firewall_policys = args[:firewall_policys] if args.key?(:firewall_policys)
28105
+ @firewalls = args[:firewalls] if args.key?(:firewalls)
28106
+ end
28107
+ end
28108
+
28109
+ #
28110
+ class RegionNetworkFirewallPoliciesGetEffectiveFirewallsResponseEffectiveFirewallPolicy
28111
+ include Google::Apis::Core::Hashable
28112
+
28113
+ # [Output Only] The display name of the firewall policy.
28114
+ # Corresponds to the JSON property `displayName`
28115
+ # @return [String]
28116
+ attr_accessor :display_name
28117
+
28118
+ # [Output Only] The name of the firewall policy.
28119
+ # Corresponds to the JSON property `name`
28120
+ # @return [String]
28121
+ attr_accessor :name
28122
+
28123
+ # The rules that apply to the network.
28124
+ # Corresponds to the JSON property `rules`
28125
+ # @return [Array<Google::Apis::ComputeBeta::FirewallPolicyRule>]
28126
+ attr_accessor :rules
28127
+
28128
+ # [Output Only] The type of the firewall policy. Can be one of HIERARCHY,
28129
+ # NETWORK, NETWORK_REGIONAL.
28130
+ # Corresponds to the JSON property `type`
28131
+ # @return [String]
28132
+ attr_accessor :type
28133
+
28134
+ def initialize(**args)
28135
+ update!(**args)
28136
+ end
28137
+
28138
+ # Update properties of this object
28139
+ def update!(**args)
28140
+ @display_name = args[:display_name] if args.key?(:display_name)
28141
+ @name = args[:name] if args.key?(:name)
28142
+ @rules = args[:rules] if args.key?(:rules)
28143
+ @type = args[:type] if args.key?(:type)
28144
+ end
28145
+ end
28146
+
27587
28147
  #
27588
28148
  class RegionSetLabelsRequest
27589
28149
  include Google::Apis::Core::Hashable
@@ -28631,8 +29191,8 @@ module Google
28631
29191
  class ResourcePolicyDailyCycle
28632
29192
  include Google::Apis::Core::Hashable
28633
29193
 
28634
- # Defines a schedule with units measured in months. The value determines how
28635
- # many months pass between the start of each cycle.
29194
+ # Defines a schedule with units measured in days. The value determines how many
29195
+ # days pass between the start of each cycle.
28636
29196
  # Corresponds to the JSON property `daysInCycle`
28637
29197
  # @return [Fixnum]
28638
29198
  attr_accessor :days_in_cycle
@@ -29298,6 +29858,11 @@ module Google
29298
29858
  # @return [Fixnum]
29299
29859
  attr_accessor :priority
29300
29860
 
29861
+ # [Output only] The status of the route.
29862
+ # Corresponds to the JSON property `routeStatus`
29863
+ # @return [String]
29864
+ attr_accessor :route_status
29865
+
29301
29866
  # [Output Only] The type of this route, which can be one of the following values:
29302
29867
  # - 'TRANSIT' for a transit route that this router learned from another Cloud
29303
29868
  # Router and will readvertise to one of its BGP peers - 'SUBNET' for a route
@@ -29346,6 +29911,7 @@ module Google
29346
29911
  @next_hop_peering = args[:next_hop_peering] if args.key?(:next_hop_peering)
29347
29912
  @next_hop_vpn_tunnel = args[:next_hop_vpn_tunnel] if args.key?(:next_hop_vpn_tunnel)
29348
29913
  @priority = args[:priority] if args.key?(:priority)
29914
+ @route_status = args[:route_status] if args.key?(:route_status)
29349
29915
  @route_type = args[:route_type] if args.key?(:route_type)
29350
29916
  @self_link = args[:self_link] if args.key?(:self_link)
29351
29917
  @tags = args[:tags] if args.key?(:tags)
@@ -30052,7 +30618,7 @@ module Google
30052
30618
  # Cloud Router will initiate the BFD session for this BGP peer. If set to
30053
30619
  # PASSIVE, the Cloud Router will wait for the peer router to initiate the BFD
30054
30620
  # session for this BGP peer. If set to DISABLED, BFD is disabled for this BGP
30055
- # peer. The default is PASSIVE.
30621
+ # peer. The default is DISABLED.
30056
30622
  # Corresponds to the JSON property `sessionInitializationMode`
30057
30623
  # @return [String]
30058
30624
  attr_accessor :session_initialization_mode
@@ -30665,7 +31231,8 @@ module Google
30665
31231
  # @return [String]
30666
31232
  attr_accessor :router_appliance_instance
30667
31233
 
30668
- # BGP state as specified in RFC1771.
31234
+ # The state of the BGP session. For a list of possible values for this field,
31235
+ # see BGP session states.
30669
31236
  # Corresponds to the JSON property `state`
30670
31237
  # @return [String]
30671
31238
  attr_accessor :state
@@ -31436,6 +32003,136 @@ module Google
31436
32003
  end
31437
32004
  end
31438
32005
 
32006
+ #
32007
+ class SecurityPoliciesAggregatedList
32008
+ include Google::Apis::Core::Hashable
32009
+
32010
+ #
32011
+ # Corresponds to the JSON property `etag`
32012
+ # @return [String]
32013
+ attr_accessor :etag
32014
+
32015
+ # [Output Only] Unique identifier for the resource; defined by the server.
32016
+ # Corresponds to the JSON property `id`
32017
+ # @return [String]
32018
+ attr_accessor :id
32019
+
32020
+ # A list of SecurityPoliciesScopedList resources.
32021
+ # Corresponds to the JSON property `items`
32022
+ # @return [Hash<String,Google::Apis::ComputeBeta::SecurityPoliciesScopedList>]
32023
+ attr_accessor :items
32024
+
32025
+ # [Output Only] Type of resource. Always compute#securityPolicyAggregatedList
32026
+ # for lists of Security Policies.
32027
+ # Corresponds to the JSON property `kind`
32028
+ # @return [String]
32029
+ attr_accessor :kind
32030
+
32031
+ # [Output Only] This token allows you to get the next page of results for list
32032
+ # requests. If the number of results is larger than maxResults, use the
32033
+ # nextPageToken as a value for the query parameter pageToken in the next list
32034
+ # request. Subsequent list requests will have their own nextPageToken to
32035
+ # continue paging through the results.
32036
+ # Corresponds to the JSON property `nextPageToken`
32037
+ # @return [String]
32038
+ attr_accessor :next_page_token
32039
+
32040
+ # [Output Only] Server-defined URL for this resource.
32041
+ # Corresponds to the JSON property `selfLink`
32042
+ # @return [String]
32043
+ attr_accessor :self_link
32044
+
32045
+ # [Output Only] Unreachable resources.
32046
+ # Corresponds to the JSON property `unreachables`
32047
+ # @return [Array<String>]
32048
+ attr_accessor :unreachables
32049
+
32050
+ # [Output Only] Informational warning message.
32051
+ # Corresponds to the JSON property `warning`
32052
+ # @return [Google::Apis::ComputeBeta::SecurityPoliciesAggregatedList::Warning]
32053
+ attr_accessor :warning
32054
+
32055
+ def initialize(**args)
32056
+ update!(**args)
32057
+ end
32058
+
32059
+ # Update properties of this object
32060
+ def update!(**args)
32061
+ @etag = args[:etag] if args.key?(:etag)
32062
+ @id = args[:id] if args.key?(:id)
32063
+ @items = args[:items] if args.key?(:items)
32064
+ @kind = args[:kind] if args.key?(:kind)
32065
+ @next_page_token = args[:next_page_token] if args.key?(:next_page_token)
32066
+ @self_link = args[:self_link] if args.key?(:self_link)
32067
+ @unreachables = args[:unreachables] if args.key?(:unreachables)
32068
+ @warning = args[:warning] if args.key?(:warning)
32069
+ end
32070
+
32071
+ # [Output Only] Informational warning message.
32072
+ class Warning
32073
+ include Google::Apis::Core::Hashable
32074
+
32075
+ # [Output Only] A warning code, if applicable. For example, Compute Engine
32076
+ # returns NO_RESULTS_ON_PAGE if there are no results in the response.
32077
+ # Corresponds to the JSON property `code`
32078
+ # @return [String]
32079
+ attr_accessor :code
32080
+
32081
+ # [Output Only] Metadata about this warning in key: value format. For example: "
32082
+ # data": [ ` "key": "scope", "value": "zones/us-east1-d" `
32083
+ # Corresponds to the JSON property `data`
32084
+ # @return [Array<Google::Apis::ComputeBeta::SecurityPoliciesAggregatedList::Warning::Datum>]
32085
+ attr_accessor :data
32086
+
32087
+ # [Output Only] A human-readable description of the warning code.
32088
+ # Corresponds to the JSON property `message`
32089
+ # @return [String]
32090
+ attr_accessor :message
32091
+
32092
+ def initialize(**args)
32093
+ update!(**args)
32094
+ end
32095
+
32096
+ # Update properties of this object
32097
+ def update!(**args)
32098
+ @code = args[:code] if args.key?(:code)
32099
+ @data = args[:data] if args.key?(:data)
32100
+ @message = args[:message] if args.key?(:message)
32101
+ end
32102
+
32103
+ #
32104
+ class Datum
32105
+ include Google::Apis::Core::Hashable
32106
+
32107
+ # [Output Only] A key that provides more detail on the warning being returned.
32108
+ # For example, for warnings where there are no results in a list request for a
32109
+ # particular zone, this key might be scope and the key value might be the zone
32110
+ # name. Other examples might be a key indicating a deprecated resource and a
32111
+ # suggested replacement, or a warning about invalid network settings (for
32112
+ # example, if an instance attempts to perform IP forwarding but is not enabled
32113
+ # for IP forwarding).
32114
+ # Corresponds to the JSON property `key`
32115
+ # @return [String]
32116
+ attr_accessor :key
32117
+
32118
+ # [Output Only] A warning data value corresponding to the key.
32119
+ # Corresponds to the JSON property `value`
32120
+ # @return [String]
32121
+ attr_accessor :value
32122
+
32123
+ def initialize(**args)
32124
+ update!(**args)
32125
+ end
32126
+
32127
+ # Update properties of this object
32128
+ def update!(**args)
32129
+ @key = args[:key] if args.key?(:key)
32130
+ @value = args[:value] if args.key?(:value)
32131
+ end
32132
+ end
32133
+ end
32134
+ end
32135
+
31439
32136
  #
31440
32137
  class SecurityPoliciesListPreconfiguredExpressionSetsResponse
31441
32138
  include Google::Apis::Core::Hashable
@@ -31455,6 +32152,97 @@ module Google
31455
32152
  end
31456
32153
  end
31457
32154
 
32155
+ #
32156
+ class SecurityPoliciesScopedList
32157
+ include Google::Apis::Core::Hashable
32158
+
32159
+ # A list of SecurityPolicies contained in this scope.
32160
+ # Corresponds to the JSON property `securityPolicies`
32161
+ # @return [Array<Google::Apis::ComputeBeta::SecurityPolicy>]
32162
+ attr_accessor :security_policies
32163
+
32164
+ # Informational warning which replaces the list of security policies when the
32165
+ # list is empty.
32166
+ # Corresponds to the JSON property `warning`
32167
+ # @return [Google::Apis::ComputeBeta::SecurityPoliciesScopedList::Warning]
32168
+ attr_accessor :warning
32169
+
32170
+ def initialize(**args)
32171
+ update!(**args)
32172
+ end
32173
+
32174
+ # Update properties of this object
32175
+ def update!(**args)
32176
+ @security_policies = args[:security_policies] if args.key?(:security_policies)
32177
+ @warning = args[:warning] if args.key?(:warning)
32178
+ end
32179
+
32180
+ # Informational warning which replaces the list of security policies when the
32181
+ # list is empty.
32182
+ class Warning
32183
+ include Google::Apis::Core::Hashable
32184
+
32185
+ # [Output Only] A warning code, if applicable. For example, Compute Engine
32186
+ # returns NO_RESULTS_ON_PAGE if there are no results in the response.
32187
+ # Corresponds to the JSON property `code`
32188
+ # @return [String]
32189
+ attr_accessor :code
32190
+
32191
+ # [Output Only] Metadata about this warning in key: value format. For example: "
32192
+ # data": [ ` "key": "scope", "value": "zones/us-east1-d" `
32193
+ # Corresponds to the JSON property `data`
32194
+ # @return [Array<Google::Apis::ComputeBeta::SecurityPoliciesScopedList::Warning::Datum>]
32195
+ attr_accessor :data
32196
+
32197
+ # [Output Only] A human-readable description of the warning code.
32198
+ # Corresponds to the JSON property `message`
32199
+ # @return [String]
32200
+ attr_accessor :message
32201
+
32202
+ def initialize(**args)
32203
+ update!(**args)
32204
+ end
32205
+
32206
+ # Update properties of this object
32207
+ def update!(**args)
32208
+ @code = args[:code] if args.key?(:code)
32209
+ @data = args[:data] if args.key?(:data)
32210
+ @message = args[:message] if args.key?(:message)
32211
+ end
32212
+
32213
+ #
32214
+ class Datum
32215
+ include Google::Apis::Core::Hashable
32216
+
32217
+ # [Output Only] A key that provides more detail on the warning being returned.
32218
+ # For example, for warnings where there are no results in a list request for a
32219
+ # particular zone, this key might be scope and the key value might be the zone
32220
+ # name. Other examples might be a key indicating a deprecated resource and a
32221
+ # suggested replacement, or a warning about invalid network settings (for
32222
+ # example, if an instance attempts to perform IP forwarding but is not enabled
32223
+ # for IP forwarding).
32224
+ # Corresponds to the JSON property `key`
32225
+ # @return [String]
32226
+ attr_accessor :key
32227
+
32228
+ # [Output Only] A warning data value corresponding to the key.
32229
+ # Corresponds to the JSON property `value`
32230
+ # @return [String]
32231
+ attr_accessor :value
32232
+
32233
+ def initialize(**args)
32234
+ update!(**args)
32235
+ end
32236
+
32237
+ # Update properties of this object
32238
+ def update!(**args)
32239
+ @key = args[:key] if args.key?(:key)
32240
+ @value = args[:value] if args.key?(:value)
32241
+ end
32242
+ end
32243
+ end
32244
+ end
32245
+
31458
32246
  #
31459
32247
  class SecurityPoliciesWafConfig
31460
32248
  include Google::Apis::Core::Hashable
@@ -31500,6 +32288,11 @@ module Google
31500
32288
  # @return [String]
31501
32289
  attr_accessor :creation_timestamp
31502
32290
 
32291
+ #
32292
+ # Corresponds to the JSON property `ddosProtectionConfig`
32293
+ # @return [Google::Apis::ComputeBeta::SecurityPolicyDdosProtectionConfig]
32294
+ attr_accessor :ddos_protection_config
32295
+
31503
32296
  # An optional description of this resource. Provide this property when you
31504
32297
  # create the resource.
31505
32298
  # Corresponds to the JSON property `description`
@@ -31580,6 +32373,12 @@ module Google
31580
32373
  # @return [Google::Apis::ComputeBeta::SecurityPolicyRecaptchaOptionsConfig]
31581
32374
  attr_accessor :recaptcha_options_config
31582
32375
 
32376
+ # [Output Only] URL of the region where the regional security policy resides.
32377
+ # This field is not applicable to global security policies.
32378
+ # Corresponds to the JSON property `region`
32379
+ # @return [String]
32380
+ attr_accessor :region
32381
+
31583
32382
  # [Output Only] Total count of all security policy rule tuples. A security
31584
32383
  # policy can not exceed a set number of tuples.
31585
32384
  # Corresponds to the JSON property `ruleTupleCount`
@@ -31604,13 +32403,17 @@ module Google
31604
32403
  # @return [String]
31605
32404
  attr_accessor :self_link_with_id
31606
32405
 
31607
- # The type indicates the intended use of the security policy. CLOUD_ARMOR -
32406
+ # The type indicates the intended use of the security policy. - CLOUD_ARMOR:
31608
32407
  # Cloud Armor backend security policies can be configured to filter incoming
31609
32408
  # HTTP requests targeting backend services. They filter requests before they hit
31610
- # the origin servers. CLOUD_ARMOR_EDGE - Cloud Armor edge security policies can
32409
+ # the origin servers. - CLOUD_ARMOR_EDGE: Cloud Armor edge security policies can
31611
32410
  # be configured to filter incoming HTTP requests targeting backend services (
31612
32411
  # including Cloud CDN-enabled) as well as backend buckets (Cloud Storage). They
31613
- # filter requests before the request is served from Google's cache.
32412
+ # filter requests before the request is served from Google's cache. -
32413
+ # CLOUD_ARMOR_INTERNAL_SERVICE: Cloud Armor internal service policies can be
32414
+ # configured to filter HTTP requests targeting services managed by Traffic
32415
+ # Director in a service mesh. They filter requests before the request is served
32416
+ # from the application. This field can be set only at resource creation time.
31614
32417
  # Corresponds to the JSON property `type`
31615
32418
  # @return [String]
31616
32419
  attr_accessor :type
@@ -31625,6 +32428,7 @@ module Google
31625
32428
  @advanced_options_config = args[:advanced_options_config] if args.key?(:advanced_options_config)
31626
32429
  @associations = args[:associations] if args.key?(:associations)
31627
32430
  @creation_timestamp = args[:creation_timestamp] if args.key?(:creation_timestamp)
32431
+ @ddos_protection_config = args[:ddos_protection_config] if args.key?(:ddos_protection_config)
31628
32432
  @description = args[:description] if args.key?(:description)
31629
32433
  @display_name = args[:display_name] if args.key?(:display_name)
31630
32434
  @fingerprint = args[:fingerprint] if args.key?(:fingerprint)
@@ -31635,6 +32439,7 @@ module Google
31635
32439
  @name = args[:name] if args.key?(:name)
31636
32440
  @parent = args[:parent] if args.key?(:parent)
31637
32441
  @recaptcha_options_config = args[:recaptcha_options_config] if args.key?(:recaptcha_options_config)
32442
+ @region = args[:region] if args.key?(:region)
31638
32443
  @rule_tuple_count = args[:rule_tuple_count] if args.key?(:rule_tuple_count)
31639
32444
  @rules = args[:rules] if args.key?(:rules)
31640
32445
  @self_link = args[:self_link] if args.key?(:self_link)
@@ -31751,6 +32556,25 @@ module Google
31751
32556
  end
31752
32557
  end
31753
32558
 
32559
+ #
32560
+ class SecurityPolicyDdosProtectionConfig
32561
+ include Google::Apis::Core::Hashable
32562
+
32563
+ #
32564
+ # Corresponds to the JSON property `ddosProtection`
32565
+ # @return [String]
32566
+ attr_accessor :ddos_protection
32567
+
32568
+ def initialize(**args)
32569
+ update!(**args)
32570
+ end
32571
+
32572
+ # Update properties of this object
32573
+ def update!(**args)
32574
+ @ddos_protection = args[:ddos_protection] if args.key?(:ddos_protection)
32575
+ end
32576
+ end
32577
+
31754
32578
  #
31755
32579
  class SecurityPolicyList
31756
32580
  include Google::Apis::Core::Hashable
@@ -32236,10 +33060,11 @@ module Google
32236
33060
  # present in the request, the key type defaults to ALL. - XFF_IP: The first IP
32237
33061
  # address (i.e. the originating client IP address) specified in the list of IPs
32238
33062
  # 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.
33063
+ # is not a valid IP, the key defaults to the source IP address of the request i.
33064
+ # e. key type IP. - HTTP_COOKIE: The value of the HTTP cookie whose name is
33065
+ # configured under "enforce_on_key_name". The key value is truncated to the
33066
+ # first 128 bytes of the cookie value. If no such cookie is present in the
33067
+ # request, the key type defaults to ALL.
32243
33068
  # Corresponds to the JSON property `enforceOnKey`
32244
33069
  # @return [String]
32245
33070
  attr_accessor :enforce_on_key
@@ -32253,9 +33078,9 @@ module Google
32253
33078
 
32254
33079
  # Action to take for requests that are above the configured rate limit threshold,
32255
33080
  # 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.
33081
+ # different endpoint. Valid options are "deny(status)", where valid values for
33082
+ # status are 403, 404, 429, and 502, and "redirect" where the redirect
33083
+ # parameters come from exceedRedirectOptions below.
32259
33084
  # Corresponds to the JSON property `exceedAction`
32260
33085
  # @return [String]
32261
33086
  attr_accessor :exceed_action
@@ -33376,8 +34201,7 @@ module Google
33376
34201
  attr_accessor :download_bytes
33377
34202
 
33378
34203
  # [Input Only] Whether to attempt an application consistent snapshot by
33379
- # informing the OS to prepare for the snapshot process. Currently only supported
33380
- # on Windows instances using the Volume Shadow Copy Service (VSS).
34204
+ # informing the OS to prepare for the snapshot process.
33381
34205
  # Corresponds to the JSON property `guestFlush`
33382
34206
  # @return [Boolean]
33383
34207
  attr_accessor :guest_flush
@@ -34856,6 +35680,13 @@ module Google
34856
35680
  # @return [Fixnum]
34857
35681
  attr_accessor :id
34858
35682
 
35683
+ # [Output Only] The range of internal IPv6 addresses that are owned by this
35684
+ # subnetwork. Note this is for general VM to VM communication, not to be
35685
+ # confused with the ipv6_cidr_range field.
35686
+ # Corresponds to the JSON property `internalIpv6Prefix`
35687
+ # @return [String]
35688
+ attr_accessor :internal_ipv6_prefix
35689
+
34859
35690
  # The range of internal addresses that are owned by this subnetwork. Provide
34860
35691
  # this property when you create the subnetwork. For example, 10.0.0.0/8 or 100.
34861
35692
  # 64.0.0/10. Ranges must be unique and non-overlapping within a network. Only
@@ -34963,9 +35794,10 @@ module Google
34963
35794
  # @return [String]
34964
35795
  attr_accessor :self_link
34965
35796
 
34966
- # The stack type for this subnet to identify whether the IPv6 feature is enabled
34967
- # or not. If not specified IPV4_ONLY will be used. This field can be both set at
34968
- # resource creation time and updated using patch.
35797
+ # The stack type for the subnet. If set to IPV4_ONLY, new VMs in the subnet are
35798
+ # assigned IPv4 addresses only. If set to IPV4_IPV6, new VMs in the subnet can
35799
+ # be assigned both IPv4 and IPv6 addresses. If not specified, IPV4_ONLY is used.
35800
+ # This field can be both set at resource creation time and updated using patch.
34969
35801
  # Corresponds to the JSON property `stackType`
34970
35802
  # @return [String]
34971
35803
  attr_accessor :stack_type
@@ -34994,6 +35826,7 @@ module Google
34994
35826
  @fingerprint = args[:fingerprint] if args.key?(:fingerprint)
34995
35827
  @gateway_address = args[:gateway_address] if args.key?(:gateway_address)
34996
35828
  @id = args[:id] if args.key?(:id)
35829
+ @internal_ipv6_prefix = args[:internal_ipv6_prefix] if args.key?(:internal_ipv6_prefix)
34997
35830
  @ip_cidr_range = args[:ip_cidr_range] if args.key?(:ip_cidr_range)
34998
35831
  @ipv6_access_type = args[:ipv6_access_type] if args.key?(:ipv6_access_type)
34999
35832
  @ipv6_cidr_range = args[:ipv6_cidr_range] if args.key?(:ipv6_cidr_range)
@@ -35276,8 +36109,9 @@ module Google
35276
36109
  attr_accessor :enable
35277
36110
  alias_method :enable?, :enable
35278
36111
 
35279
- # Can only be specified if VPC flow logs for this subnetwork is enabled. Export
35280
- # filter used to define which VPC flow logs should be logged.
36112
+ # Can only be specified if VPC flow logs for this subnetwork is enabled. The
36113
+ # filter expression is used to define which VPC flow logs should be exported to
36114
+ # Cloud Logging.
35281
36115
  # Corresponds to the JSON property `filterExpr`
35282
36116
  # @return [String]
35283
36117
  attr_accessor :filter_expr