google-apis-compute_beta 0.26.0 → 0.29.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -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