google-apis-compute_beta 0.65.0 → 0.67.0

Sign up to get free protection for your applications and to get access to all the features.
@@ -567,6 +567,12 @@ module Google
567
567
  # @return [String]
568
568
  attr_accessor :public_ptr_domain_name
569
569
 
570
+ # [Output Only] The resource URL for the security policy associated with this
571
+ # access config.
572
+ # Corresponds to the JSON property `securityPolicy`
573
+ # @return [String]
574
+ attr_accessor :security_policy
575
+
570
576
  # Specifies whether a public DNS 'PTR' record should be created to map the
571
577
  # external IP address of the instance to a DNS domain name. This field is not
572
578
  # used in ipv6AccessConfig. A default PTR record will be created if the VM has
@@ -596,6 +602,7 @@ module Google
596
602
  @nat_ip = args[:nat_ip] if args.key?(:nat_ip)
597
603
  @network_tier = args[:network_tier] if args.key?(:network_tier)
598
604
  @public_ptr_domain_name = args[:public_ptr_domain_name] if args.key?(:public_ptr_domain_name)
605
+ @security_policy = args[:security_policy] if args.key?(:security_policy)
599
606
  @set_public_ptr = args[:set_public_ptr] if args.key?(:set_public_ptr)
600
607
  @type = args[:type] if args.key?(:type)
601
608
  end
@@ -3490,6 +3497,12 @@ module Google
3490
3497
  # @return [Google::Apis::ComputeBeta::Duration]
3491
3498
  attr_accessor :max_stream_duration
3492
3499
 
3500
+ # Deployment metadata associated with the resource to be set by a GKE hub
3501
+ # controller and read by the backend RCTH
3502
+ # Corresponds to the JSON property `metadatas`
3503
+ # @return [Hash<String,String>]
3504
+ attr_accessor :metadatas
3505
+
3493
3506
  # Name of the resource. Provided by the client when the resource is created. The
3494
3507
  # name must be 1-63 characters long, and comply with RFC1035. Specifically, the
3495
3508
  # name must be 1-63 characters long and match the regular expression `[a-z]([-a-
@@ -3629,6 +3642,7 @@ module Google
3629
3642
  @locality_lb_policy = args[:locality_lb_policy] if args.key?(:locality_lb_policy)
3630
3643
  @log_config = args[:log_config] if args.key?(:log_config)
3631
3644
  @max_stream_duration = args[:max_stream_duration] if args.key?(:max_stream_duration)
3645
+ @metadatas = args[:metadatas] if args.key?(:metadatas)
3632
3646
  @name = args[:name] if args.key?(:name)
3633
3647
  @network = args[:network] if args.key?(:network)
3634
3648
  @outlier_detection = args[:outlier_detection] if args.key?(:outlier_detection)
@@ -4973,6 +4987,12 @@ module Google
4973
4987
  class BulkInsertInstanceResourcePerInstanceProperties
4974
4988
  include Google::Apis::Core::Hashable
4975
4989
 
4990
+ # Specifies the hostname of the instance. More details in: https://cloud.google.
4991
+ # com/compute/docs/instances/custom-hostname-vm#naming_convention
4992
+ # Corresponds to the JSON property `hostname`
4993
+ # @return [String]
4994
+ attr_accessor :hostname
4995
+
4976
4996
  # This field is only temporary. It will be removed. Do not use it.
4977
4997
  # Corresponds to the JSON property `name`
4978
4998
  # @return [String]
@@ -4984,6 +5004,7 @@ module Google
4984
5004
 
4985
5005
  # Update properties of this object
4986
5006
  def update!(**args)
5007
+ @hostname = args[:hostname] if args.key?(:hostname)
4987
5008
  @name = args[:name] if args.key?(:name)
4988
5009
  end
4989
5010
  end
@@ -5278,7 +5299,7 @@ module Google
5278
5299
  # @return [String]
5279
5300
  attr_accessor :self_link
5280
5301
 
5281
- # Source commitment to be splitted into a new commitment.
5302
+ # Source commitment to be split into a new commitment.
5282
5303
  # Corresponds to the JSON property `splitSourceCommitment`
5283
5304
  # @return [String]
5284
5305
  attr_accessor :split_source_commitment
@@ -8139,6 +8160,16 @@ module Google
8139
8160
  # @return [String]
8140
8161
  attr_accessor :ip_address
8141
8162
 
8163
+ # IPv6 address of the interface in the external VPN gateway. This IPv6 address
8164
+ # can be either from your on-premise gateway or another Cloud provider's VPN
8165
+ # gateway, it cannot be an IP address from Google Compute Engine. Must specify
8166
+ # an IPv6 address (not IPV4-mapped) using any format described in RFC 4291 (e.g.
8167
+ # 2001:db8:0:0:2d9:51:0:0). The output format is RFC 5952 format (e.g. 2001:db8::
8168
+ # 2d9:51:0:0).
8169
+ # Corresponds to the JSON property `ipv6Address`
8170
+ # @return [String]
8171
+ attr_accessor :ipv6_address
8172
+
8142
8173
  def initialize(**args)
8143
8174
  update!(**args)
8144
8175
  end
@@ -8147,6 +8178,7 @@ module Google
8147
8178
  def update!(**args)
8148
8179
  @id = args[:id] if args.key?(:id)
8149
8180
  @ip_address = args[:ip_address] if args.key?(:ip_address)
8181
+ @ipv6_address = args[:ipv6_address] if args.key?(:ipv6_address)
8150
8182
  end
8151
8183
  end
8152
8184
 
@@ -9096,6 +9128,14 @@ module Google
9096
9128
  # @return [Fixnum]
9097
9129
  attr_accessor :rule_tuple_count
9098
9130
 
9131
+ # A fully-qualified URL of a SecurityProfile resource instance. Example: https://
9132
+ # networksecurity.googleapis.com/v1/projects/`project`/locations/`location`/
9133
+ # securityProfileGroups/my-security-profile-group Must be specified if action = '
9134
+ # apply_security_profile_group' and cannot be specified for other actions.
9135
+ # Corresponds to the JSON property `securityProfileGroup`
9136
+ # @return [String]
9137
+ attr_accessor :security_profile_group
9138
+
9099
9139
  # A list of network resource URLs to which this rule applies. This field allows
9100
9140
  # you to control which network's VMs get this rule. If this field is left blank,
9101
9141
  # all VMs within the organization will receive the rule.
@@ -9121,6 +9161,14 @@ module Google
9121
9161
  # @return [Array<String>]
9122
9162
  attr_accessor :target_service_accounts
9123
9163
 
9164
+ # Boolean flag indicating if the traffic should be TLS decrypted. Can be set
9165
+ # only if action = 'apply_security_profile_group' and cannot be set for other
9166
+ # actions.
9167
+ # Corresponds to the JSON property `tlsInspect`
9168
+ # @return [Boolean]
9169
+ attr_accessor :tls_inspect
9170
+ alias_method :tls_inspect?, :tls_inspect
9171
+
9124
9172
  def initialize(**args)
9125
9173
  update!(**args)
9126
9174
  end
@@ -9137,9 +9185,11 @@ module Google
9137
9185
  @priority = args[:priority] if args.key?(:priority)
9138
9186
  @rule_name = args[:rule_name] if args.key?(:rule_name)
9139
9187
  @rule_tuple_count = args[:rule_tuple_count] if args.key?(:rule_tuple_count)
9188
+ @security_profile_group = args[:security_profile_group] if args.key?(:security_profile_group)
9140
9189
  @target_resources = args[:target_resources] if args.key?(:target_resources)
9141
9190
  @target_secure_tags = args[:target_secure_tags] if args.key?(:target_secure_tags)
9142
9191
  @target_service_accounts = args[:target_service_accounts] if args.key?(:target_service_accounts)
9192
+ @tls_inspect = args[:tls_inspect] if args.key?(:tls_inspect)
9143
9193
  end
9144
9194
  end
9145
9195
 
@@ -10764,11 +10814,11 @@ module Google
10764
10814
  # Regional](/compute/docs/reference/rest/beta/regionHealthChecks) Internal HTTP(
10765
10815
  # S) load balancers must use regional health checks (`compute.v1.
10766
10816
  # regionHealthChecks`). Traffic Director must use global health checks (`compute.
10767
- # v1.HealthChecks`). Internal TCP/UDP load balancers can use either regional or
10817
+ # v1.healthChecks`). Internal TCP/UDP load balancers can use either regional or
10768
10818
  # global health checks (`compute.v1.regionHealthChecks` or `compute.v1.
10769
- # HealthChecks`). External HTTP(S), TCP proxy, and SSL proxy load balancers as
10819
+ # healthChecks`). External HTTP(S), TCP proxy, and SSL proxy load balancers as
10770
10820
  # well as managed instance group auto-healing must use global health checks (`
10771
- # compute.v1.HealthChecks`). Backend service-based network load balancers must
10821
+ # compute.v1.healthChecks`). Backend service-based network load balancers must
10772
10822
  # use regional health checks (`compute.v1.regionHealthChecks`). Target pool-
10773
10823
  # based network load balancers must use legacy HTTP health checks (`compute.v1.
10774
10824
  # httpHealthChecks`). For more information, see Health checks overview.
@@ -11678,6 +11728,12 @@ module Google
11678
11728
  # @return [String]
11679
11729
  attr_accessor :health_state
11680
11730
 
11731
+ # Health state of the ipv6 network endpoint determined based on the health
11732
+ # checks configured.
11733
+ # Corresponds to the JSON property `ipv6HealthState`
11734
+ # @return [String]
11735
+ attr_accessor :ipv6_health_state
11736
+
11681
11737
  def initialize(**args)
11682
11738
  update!(**args)
11683
11739
  end
@@ -11689,6 +11745,7 @@ module Google
11689
11745
  @health_check = args[:health_check] if args.key?(:health_check)
11690
11746
  @health_check_service = args[:health_check_service] if args.key?(:health_check_service)
11691
11747
  @health_state = args[:health_state] if args.key?(:health_state)
11748
+ @ipv6_health_state = args[:ipv6_health_state] if args.key?(:ipv6_health_state)
11692
11749
  end
11693
11750
  end
11694
11751
 
@@ -17683,6 +17740,34 @@ module Google
17683
17740
  end
17684
17741
  end
17685
17742
 
17743
+ #
17744
+ class InstancesSetSecurityPolicyRequest
17745
+ include Google::Apis::Core::Hashable
17746
+
17747
+ # The network interfaces that the security policy will be applied to. Network
17748
+ # interfaces use the nicN naming format. You can only set a security policy for
17749
+ # network interfaces with an access config.
17750
+ # Corresponds to the JSON property `networkInterfaces`
17751
+ # @return [Array<String>]
17752
+ attr_accessor :network_interfaces
17753
+
17754
+ # A full or partial URL to a security policy to add to this instance. If this
17755
+ # field is set to an empty string it will remove the associated security policy.
17756
+ # Corresponds to the JSON property `securityPolicy`
17757
+ # @return [String]
17758
+ attr_accessor :security_policy
17759
+
17760
+ def initialize(**args)
17761
+ update!(**args)
17762
+ end
17763
+
17764
+ # Update properties of this object
17765
+ def update!(**args)
17766
+ @network_interfaces = args[:network_interfaces] if args.key?(:network_interfaces)
17767
+ @security_policy = args[:security_policy] if args.key?(:security_policy)
17768
+ end
17769
+ end
17770
+
17686
17771
  #
17687
17772
  class InstancesSetServiceAccountRequest
17688
17773
  include Google::Apis::Core::Hashable
@@ -17913,6 +17998,12 @@ module Google
17913
17998
  # @return [Fixnum]
17914
17999
  attr_accessor :provisioned_link_count
17915
18000
 
18001
+ # Indicates that this is a Cross-Cloud Interconnect. This field specifies the
18002
+ # location outside of Google's network that the interconnect is connected to.
18003
+ # Corresponds to the JSON property `remoteLocation`
18004
+ # @return [String]
18005
+ attr_accessor :remote_location
18006
+
17916
18007
  # Target number of physical links in the link bundle, as requested by the
17917
18008
  # customer.
17918
18009
  # Corresponds to the JSON property `requestedLinkCount`
@@ -17968,6 +18059,7 @@ module Google
17968
18059
  @operational_status = args[:operational_status] if args.key?(:operational_status)
17969
18060
  @peer_ip_address = args[:peer_ip_address] if args.key?(:peer_ip_address)
17970
18061
  @provisioned_link_count = args[:provisioned_link_count] if args.key?(:provisioned_link_count)
18062
+ @remote_location = args[:remote_location] if args.key?(:remote_location)
17971
18063
  @requested_link_count = args[:requested_link_count] if args.key?(:requested_link_count)
17972
18064
  @satisfies_pzs = args[:satisfies_pzs] if args.key?(:satisfies_pzs)
17973
18065
  @self_link = args[:self_link] if args.key?(:self_link)
@@ -18035,6 +18127,12 @@ module Google
18035
18127
  # @return [String]
18036
18128
  attr_accessor :cloud_router_ipv6_interface_id
18037
18129
 
18130
+ # [Output Only] Constraints for this attachment, if any. The attachment does not
18131
+ # work if these constraints are not met.
18132
+ # Corresponds to the JSON property `configurationConstraints`
18133
+ # @return [Google::Apis::ComputeBeta::InterconnectAttachmentConfigurationConstraints]
18134
+ attr_accessor :configuration_constraints
18135
+
18038
18136
  # [Output Only] Creation timestamp in RFC3339 text format.
18039
18137
  # Corresponds to the JSON property `creationTimestamp`
18040
18138
  # @return [String]
@@ -18216,6 +18314,15 @@ module Google
18216
18314
  # @return [String]
18217
18315
  attr_accessor :region
18218
18316
 
18317
+ # [Output Only] If the attachment is on a Cross-Cloud Interconnect connection,
18318
+ # this field contains the interconnect's remote location service provider.
18319
+ # Example values: "Amazon Web Services" "Microsoft Azure". The field is set only
18320
+ # for attachments on Cross-Cloud Interconnect connections. Its value is copied
18321
+ # from the InterconnectRemoteLocation remoteService field.
18322
+ # Corresponds to the JSON property `remoteService`
18323
+ # @return [String]
18324
+ attr_accessor :remote_service
18325
+
18219
18326
  # URL of the Cloud Router to be used for dynamic routing. This router must be in
18220
18327
  # the same region as this InterconnectAttachment. The InterconnectAttachment
18221
18328
  # will automatically connect the Interconnect to the network & region within
@@ -18262,6 +18369,17 @@ module Google
18262
18369
  # @return [String]
18263
18370
  attr_accessor :state
18264
18371
 
18372
+ # Length of the IPv4 subnet mask. Allowed values: - 29 (default) - 30 The
18373
+ # default value is 29, except for Cross-Cloud Interconnect connections that use
18374
+ # an InterconnectRemoteLocation with a constraints.subnetLengthRange.min equal
18375
+ # to 30. For example, connections that use an Azure remote location fall into
18376
+ # this category. In these cases, the default value is 30, and requesting 29
18377
+ # returns an error. Where both 29 and 30 are allowed, 29 is preferred, because
18378
+ # it gives Google Cloud Support more debugging visibility.
18379
+ # Corresponds to the JSON property `subnetLength`
18380
+ # @return [Fixnum]
18381
+ attr_accessor :subnet_length
18382
+
18265
18383
  # The type of interconnect attachment this is, which can take one of the
18266
18384
  # following values: - DEDICATED: an attachment to a Dedicated Interconnect. -
18267
18385
  # PARTNER: an attachment to a Partner Interconnect, created by the customer. -
@@ -18290,6 +18408,7 @@ module Google
18290
18408
  @cloud_router_ip_address = args[:cloud_router_ip_address] if args.key?(:cloud_router_ip_address)
18291
18409
  @cloud_router_ipv6_address = args[:cloud_router_ipv6_address] if args.key?(:cloud_router_ipv6_address)
18292
18410
  @cloud_router_ipv6_interface_id = args[:cloud_router_ipv6_interface_id] if args.key?(:cloud_router_ipv6_interface_id)
18411
+ @configuration_constraints = args[:configuration_constraints] if args.key?(:configuration_constraints)
18293
18412
  @creation_timestamp = args[:creation_timestamp] if args.key?(:creation_timestamp)
18294
18413
  @customer_router_ip_address = args[:customer_router_ip_address] if args.key?(:customer_router_ip_address)
18295
18414
  @customer_router_ipv6_address = args[:customer_router_ipv6_address] if args.key?(:customer_router_ipv6_address)
@@ -18313,11 +18432,13 @@ module Google
18313
18432
  @partner_metadata = args[:partner_metadata] if args.key?(:partner_metadata)
18314
18433
  @private_interconnect_info = args[:private_interconnect_info] if args.key?(:private_interconnect_info)
18315
18434
  @region = args[:region] if args.key?(:region)
18435
+ @remote_service = args[:remote_service] if args.key?(:remote_service)
18316
18436
  @router = args[:router] if args.key?(:router)
18317
18437
  @satisfies_pzs = args[:satisfies_pzs] if args.key?(:satisfies_pzs)
18318
18438
  @self_link = args[:self_link] if args.key?(:self_link)
18319
18439
  @stack_type = args[:stack_type] if args.key?(:stack_type)
18320
18440
  @state = args[:state] if args.key?(:state)
18441
+ @subnet_length = args[:subnet_length] if args.key?(:subnet_length)
18321
18442
  @type = args[:type] if args.key?(:type)
18322
18443
  @vlan_tag8021q = args[:vlan_tag8021q] if args.key?(:vlan_tag8021q)
18323
18444
  end
@@ -18448,6 +18569,68 @@ module Google
18448
18569
  end
18449
18570
  end
18450
18571
 
18572
+ #
18573
+ class InterconnectAttachmentConfigurationConstraints
18574
+ include Google::Apis::Core::Hashable
18575
+
18576
+ # [Output Only] Whether the attachment's BGP session requires/allows/disallows
18577
+ # BGP MD5 authentication. This can take one of the following values:
18578
+ # MD5_OPTIONAL, MD5_REQUIRED, MD5_UNSUPPORTED. For example, a Cross-Cloud
18579
+ # Interconnect connection to a remote cloud provider that requires BGP MD5
18580
+ # authentication has the interconnectRemoteLocation
18581
+ # attachment_configuration_constraints.bgp_md5 field set to MD5_REQUIRED, and
18582
+ # that property is propagated to the attachment. Similarly, if BGP MD5 is
18583
+ # MD5_UNSUPPORTED, an error is returned if MD5 is requested.
18584
+ # Corresponds to the JSON property `bgpMd5`
18585
+ # @return [String]
18586
+ attr_accessor :bgp_md5
18587
+
18588
+ # [Output Only] List of ASN ranges that the remote location is known to support.
18589
+ # Formatted as an array of inclusive ranges `min: min-value, max: max-value`.
18590
+ # For example, [`min: 123, max: 123`, `min: 64512, max: 65534`] allows the peer
18591
+ # ASN to be 123 or anything in the range 64512-65534. This field is only
18592
+ # advisory. Although the API accepts other ranges, these are the ranges that we
18593
+ # recommend.
18594
+ # Corresponds to the JSON property `bgpPeerAsnRanges`
18595
+ # @return [Array<Google::Apis::ComputeBeta::InterconnectAttachmentConfigurationConstraintsBgpPeerAsnRange>]
18596
+ attr_accessor :bgp_peer_asn_ranges
18597
+
18598
+ def initialize(**args)
18599
+ update!(**args)
18600
+ end
18601
+
18602
+ # Update properties of this object
18603
+ def update!(**args)
18604
+ @bgp_md5 = args[:bgp_md5] if args.key?(:bgp_md5)
18605
+ @bgp_peer_asn_ranges = args[:bgp_peer_asn_ranges] if args.key?(:bgp_peer_asn_ranges)
18606
+ end
18607
+ end
18608
+
18609
+ #
18610
+ class InterconnectAttachmentConfigurationConstraintsBgpPeerAsnRange
18611
+ include Google::Apis::Core::Hashable
18612
+
18613
+ #
18614
+ # Corresponds to the JSON property `max`
18615
+ # @return [Fixnum]
18616
+ attr_accessor :max
18617
+
18618
+ #
18619
+ # Corresponds to the JSON property `min`
18620
+ # @return [Fixnum]
18621
+ attr_accessor :min
18622
+
18623
+ def initialize(**args)
18624
+ update!(**args)
18625
+ end
18626
+
18627
+ # Update properties of this object
18628
+ def update!(**args)
18629
+ @max = args[:max] if args.key?(:max)
18630
+ @min = args[:min] if args.key?(:min)
18631
+ end
18632
+ end
18633
+
18451
18634
  # Response to the list request, and contains a list of interconnect attachments.
18452
18635
  class InterconnectAttachmentList
18453
18636
  include Google::Apis::Core::Hashable
@@ -19418,6 +19601,371 @@ module Google
19418
19601
  end
19419
19602
  end
19420
19603
 
19604
+ # Represents a Cross-Cloud Interconnect Remote Location resource. You can use
19605
+ # this resource to find remote location details about an Interconnect attachment
19606
+ # (VLAN).
19607
+ class InterconnectRemoteLocation
19608
+ include Google::Apis::Core::Hashable
19609
+
19610
+ # [Output Only] The postal address of the Point of Presence, each line in the
19611
+ # address is separated by a newline character.
19612
+ # Corresponds to the JSON property `address`
19613
+ # @return [String]
19614
+ attr_accessor :address
19615
+
19616
+ # [Output Only] Subset of fields from InterconnectAttachment's |
19617
+ # configurationConstraints| field that apply to all attachments for this remote
19618
+ # location.
19619
+ # Corresponds to the JSON property `attachmentConfigurationConstraints`
19620
+ # @return [Google::Apis::ComputeBeta::InterconnectAttachmentConfigurationConstraints]
19621
+ attr_accessor :attachment_configuration_constraints
19622
+
19623
+ # [Output Only] Metropolitan area designator that indicates which city an
19624
+ # interconnect is located. For example: "Chicago, IL", "Amsterdam, Netherlands".
19625
+ # Corresponds to the JSON property `city`
19626
+ # @return [String]
19627
+ attr_accessor :city
19628
+
19629
+ # [Output Only] Constraints on the parameters for creating Cross-Cloud
19630
+ # Interconnect and associated InterconnectAttachments.
19631
+ # Corresponds to the JSON property `constraints`
19632
+ # @return [Google::Apis::ComputeBeta::InterconnectRemoteLocationConstraints]
19633
+ attr_accessor :constraints
19634
+
19635
+ # [Output Only] Continent for this location, which can take one of the following
19636
+ # values: - AFRICA - ASIA_PAC - EUROPE - NORTH_AMERICA - SOUTH_AMERICA
19637
+ # Corresponds to the JSON property `continent`
19638
+ # @return [String]
19639
+ attr_accessor :continent
19640
+
19641
+ # [Output Only] Creation timestamp in RFC3339 text format.
19642
+ # Corresponds to the JSON property `creationTimestamp`
19643
+ # @return [String]
19644
+ attr_accessor :creation_timestamp
19645
+
19646
+ # [Output Only] An optional description of the resource.
19647
+ # Corresponds to the JSON property `description`
19648
+ # @return [String]
19649
+ attr_accessor :description
19650
+
19651
+ # [Output Only] The name of the provider for this facility (e.g., EQUINIX).
19652
+ # Corresponds to the JSON property `facilityProvider`
19653
+ # @return [String]
19654
+ attr_accessor :facility_provider
19655
+
19656
+ # [Output Only] A provider-assigned Identifier for this facility (e.g., Ashburn-
19657
+ # DC1).
19658
+ # Corresponds to the JSON property `facilityProviderFacilityId`
19659
+ # @return [String]
19660
+ attr_accessor :facility_provider_facility_id
19661
+
19662
+ # [Output Only] The unique identifier for the resource. This identifier is
19663
+ # defined by the server.
19664
+ # Corresponds to the JSON property `id`
19665
+ # @return [Fixnum]
19666
+ attr_accessor :id
19667
+
19668
+ # [Output Only] Type of the resource. Always compute#interconnectRemoteLocation
19669
+ # for interconnect remote locations.
19670
+ # Corresponds to the JSON property `kind`
19671
+ # @return [String]
19672
+ attr_accessor :kind
19673
+
19674
+ # [Output Only] Link Aggregation Control Protocol (LACP) constraints, which can
19675
+ # take one of the following values: LACP_SUPPORTED, LACP_UNSUPPORTED
19676
+ # Corresponds to the JSON property `lacp`
19677
+ # @return [String]
19678
+ attr_accessor :lacp
19679
+
19680
+ # [Output Only] The maximum number of 100 Gbps ports supported in a link
19681
+ # aggregation group (LAG). When linkType is 100 Gbps, requestedLinkCount cannot
19682
+ # exceed max_lag_size_100_gbps.
19683
+ # Corresponds to the JSON property `maxLagSize100Gbps`
19684
+ # @return [Fixnum]
19685
+ attr_accessor :max_lag_size100_gbps
19686
+
19687
+ # [Output Only] The maximum number of 10 Gbps ports supported in a link
19688
+ # aggregation group (LAG). When linkType is 10 Gbps, requestedLinkCount cannot
19689
+ # exceed max_lag_size_10_gbps.
19690
+ # Corresponds to the JSON property `maxLagSize10Gbps`
19691
+ # @return [Fixnum]
19692
+ attr_accessor :max_lag_size10_gbps
19693
+
19694
+ # [Output Only] Name of the resource.
19695
+ # Corresponds to the JSON property `name`
19696
+ # @return [String]
19697
+ attr_accessor :name
19698
+
19699
+ # [Output Only] The peeringdb identifier for this facility (corresponding with a
19700
+ # netfac type in peeringdb).
19701
+ # Corresponds to the JSON property `peeringdbFacilityId`
19702
+ # @return [String]
19703
+ attr_accessor :peeringdb_facility_id
19704
+
19705
+ # [Output Only] Permitted connections.
19706
+ # Corresponds to the JSON property `permittedConnections`
19707
+ # @return [Array<Google::Apis::ComputeBeta::InterconnectRemoteLocationPermittedConnections>]
19708
+ attr_accessor :permitted_connections
19709
+
19710
+ # [Output Only] Indicates the service provider present at the remote location.
19711
+ # Example values: "Amazon Web Services", "Microsoft Azure".
19712
+ # Corresponds to the JSON property `remoteService`
19713
+ # @return [String]
19714
+ attr_accessor :remote_service
19715
+
19716
+ # [Output Only] Server-defined URL for the resource.
19717
+ # Corresponds to the JSON property `selfLink`
19718
+ # @return [String]
19719
+ attr_accessor :self_link
19720
+
19721
+ # [Output Only] The status of this InterconnectRemoteLocation, which can take
19722
+ # one of the following values: - CLOSED: The InterconnectRemoteLocation is
19723
+ # closed and is unavailable for provisioning new Cross-Cloud Interconnects. -
19724
+ # AVAILABLE: The InterconnectRemoteLocation is available for provisioning new
19725
+ # Cross-Cloud Interconnects.
19726
+ # Corresponds to the JSON property `status`
19727
+ # @return [String]
19728
+ attr_accessor :status
19729
+
19730
+ def initialize(**args)
19731
+ update!(**args)
19732
+ end
19733
+
19734
+ # Update properties of this object
19735
+ def update!(**args)
19736
+ @address = args[:address] if args.key?(:address)
19737
+ @attachment_configuration_constraints = args[:attachment_configuration_constraints] if args.key?(:attachment_configuration_constraints)
19738
+ @city = args[:city] if args.key?(:city)
19739
+ @constraints = args[:constraints] if args.key?(:constraints)
19740
+ @continent = args[:continent] if args.key?(:continent)
19741
+ @creation_timestamp = args[:creation_timestamp] if args.key?(:creation_timestamp)
19742
+ @description = args[:description] if args.key?(:description)
19743
+ @facility_provider = args[:facility_provider] if args.key?(:facility_provider)
19744
+ @facility_provider_facility_id = args[:facility_provider_facility_id] if args.key?(:facility_provider_facility_id)
19745
+ @id = args[:id] if args.key?(:id)
19746
+ @kind = args[:kind] if args.key?(:kind)
19747
+ @lacp = args[:lacp] if args.key?(:lacp)
19748
+ @max_lag_size100_gbps = args[:max_lag_size100_gbps] if args.key?(:max_lag_size100_gbps)
19749
+ @max_lag_size10_gbps = args[:max_lag_size10_gbps] if args.key?(:max_lag_size10_gbps)
19750
+ @name = args[:name] if args.key?(:name)
19751
+ @peeringdb_facility_id = args[:peeringdb_facility_id] if args.key?(:peeringdb_facility_id)
19752
+ @permitted_connections = args[:permitted_connections] if args.key?(:permitted_connections)
19753
+ @remote_service = args[:remote_service] if args.key?(:remote_service)
19754
+ @self_link = args[:self_link] if args.key?(:self_link)
19755
+ @status = args[:status] if args.key?(:status)
19756
+ end
19757
+ end
19758
+
19759
+ #
19760
+ class InterconnectRemoteLocationConstraints
19761
+ include Google::Apis::Core::Hashable
19762
+
19763
+ # [Output Only] Port pair remote location constraints, which can take one of the
19764
+ # following values: PORT_PAIR_UNCONSTRAINED_REMOTE_LOCATION,
19765
+ # PORT_PAIR_MATCHING_REMOTE_LOCATION. GCP's API refers only to individual ports,
19766
+ # but the UI uses this field when ordering a pair of ports, to prevent users
19767
+ # from accidentally ordering something that is incompatible with their cloud
19768
+ # provider. Specifically, when ordering a redundant pair of Cross-Cloud
19769
+ # Interconnect ports, and one of them uses a remote location with
19770
+ # portPairMatchingRemoteLocation set to matching, the UI requires that both
19771
+ # ports use the same remote location.
19772
+ # Corresponds to the JSON property `portPairRemoteLocation`
19773
+ # @return [String]
19774
+ attr_accessor :port_pair_remote_location
19775
+
19776
+ # [Output Only] Port pair VLAN constraints, which can take one of the following
19777
+ # values: PORT_PAIR_UNCONSTRAINED_VLAN, PORT_PAIR_MATCHING_VLAN
19778
+ # Corresponds to the JSON property `portPairVlan`
19779
+ # @return [String]
19780
+ attr_accessor :port_pair_vlan
19781
+
19782
+ # [Output Only] [min-length, max-length] The minimum and maximum value (
19783
+ # inclusive) for the IPv4 subnet length. For example, an
19784
+ # interconnectRemoteLocation for Azure has `min: 30, max: 30` because Azure
19785
+ # requires /30 subnets. This range specifies the values supported by both cloud
19786
+ # providers. Interconnect currently supports /29 and /30 IPv4 subnet lengths. If
19787
+ # a remote cloud has no constraint on IPv4 subnet length, the range would thus
19788
+ # be `min: 29, max: 30`.
19789
+ # Corresponds to the JSON property `subnetLengthRange`
19790
+ # @return [Google::Apis::ComputeBeta::InterconnectRemoteLocationConstraintsSubnetLengthRange]
19791
+ attr_accessor :subnet_length_range
19792
+
19793
+ def initialize(**args)
19794
+ update!(**args)
19795
+ end
19796
+
19797
+ # Update properties of this object
19798
+ def update!(**args)
19799
+ @port_pair_remote_location = args[:port_pair_remote_location] if args.key?(:port_pair_remote_location)
19800
+ @port_pair_vlan = args[:port_pair_vlan] if args.key?(:port_pair_vlan)
19801
+ @subnet_length_range = args[:subnet_length_range] if args.key?(:subnet_length_range)
19802
+ end
19803
+ end
19804
+
19805
+ #
19806
+ class InterconnectRemoteLocationConstraintsSubnetLengthRange
19807
+ include Google::Apis::Core::Hashable
19808
+
19809
+ #
19810
+ # Corresponds to the JSON property `max`
19811
+ # @return [Fixnum]
19812
+ attr_accessor :max
19813
+
19814
+ #
19815
+ # Corresponds to the JSON property `min`
19816
+ # @return [Fixnum]
19817
+ attr_accessor :min
19818
+
19819
+ def initialize(**args)
19820
+ update!(**args)
19821
+ end
19822
+
19823
+ # Update properties of this object
19824
+ def update!(**args)
19825
+ @max = args[:max] if args.key?(:max)
19826
+ @min = args[:min] if args.key?(:min)
19827
+ end
19828
+ end
19829
+
19830
+ # Response to the list request, and contains a list of interconnect remote
19831
+ # locations.
19832
+ class InterconnectRemoteLocationList
19833
+ include Google::Apis::Core::Hashable
19834
+
19835
+ # [Output Only] Unique identifier for the resource; defined by the server.
19836
+ # Corresponds to the JSON property `id`
19837
+ # @return [String]
19838
+ attr_accessor :id
19839
+
19840
+ # A list of InterconnectRemoteLocation resources.
19841
+ # Corresponds to the JSON property `items`
19842
+ # @return [Array<Google::Apis::ComputeBeta::InterconnectRemoteLocation>]
19843
+ attr_accessor :items
19844
+
19845
+ # [Output Only] Type of resource. Always compute#interconnectRemoteLocationList
19846
+ # for lists of interconnect remote locations.
19847
+ # Corresponds to the JSON property `kind`
19848
+ # @return [String]
19849
+ attr_accessor :kind
19850
+
19851
+ # [Output Only] This token lets you get the next page of results for list
19852
+ # requests. If the number of results is larger than maxResults, use the
19853
+ # nextPageToken as a value for the query parameter pageToken in the next list
19854
+ # request. Subsequent list requests will have their own nextPageToken to
19855
+ # continue paging through the results.
19856
+ # Corresponds to the JSON property `nextPageToken`
19857
+ # @return [String]
19858
+ attr_accessor :next_page_token
19859
+
19860
+ # [Output Only] Server-defined URL for this resource.
19861
+ # Corresponds to the JSON property `selfLink`
19862
+ # @return [String]
19863
+ attr_accessor :self_link
19864
+
19865
+ # [Output Only] Informational warning message.
19866
+ # Corresponds to the JSON property `warning`
19867
+ # @return [Google::Apis::ComputeBeta::InterconnectRemoteLocationList::Warning]
19868
+ attr_accessor :warning
19869
+
19870
+ def initialize(**args)
19871
+ update!(**args)
19872
+ end
19873
+
19874
+ # Update properties of this object
19875
+ def update!(**args)
19876
+ @id = args[:id] if args.key?(:id)
19877
+ @items = args[:items] if args.key?(:items)
19878
+ @kind = args[:kind] if args.key?(:kind)
19879
+ @next_page_token = args[:next_page_token] if args.key?(:next_page_token)
19880
+ @self_link = args[:self_link] if args.key?(:self_link)
19881
+ @warning = args[:warning] if args.key?(:warning)
19882
+ end
19883
+
19884
+ # [Output Only] Informational warning message.
19885
+ class Warning
19886
+ include Google::Apis::Core::Hashable
19887
+
19888
+ # [Output Only] A warning code, if applicable. For example, Compute Engine
19889
+ # returns NO_RESULTS_ON_PAGE if there are no results in the response.
19890
+ # Corresponds to the JSON property `code`
19891
+ # @return [String]
19892
+ attr_accessor :code
19893
+
19894
+ # [Output Only] Metadata about this warning in key: value format. For example: "
19895
+ # data": [ ` "key": "scope", "value": "zones/us-east1-d" `
19896
+ # Corresponds to the JSON property `data`
19897
+ # @return [Array<Google::Apis::ComputeBeta::InterconnectRemoteLocationList::Warning::Datum>]
19898
+ attr_accessor :data
19899
+
19900
+ # [Output Only] A human-readable description of the warning code.
19901
+ # Corresponds to the JSON property `message`
19902
+ # @return [String]
19903
+ attr_accessor :message
19904
+
19905
+ def initialize(**args)
19906
+ update!(**args)
19907
+ end
19908
+
19909
+ # Update properties of this object
19910
+ def update!(**args)
19911
+ @code = args[:code] if args.key?(:code)
19912
+ @data = args[:data] if args.key?(:data)
19913
+ @message = args[:message] if args.key?(:message)
19914
+ end
19915
+
19916
+ #
19917
+ class Datum
19918
+ include Google::Apis::Core::Hashable
19919
+
19920
+ # [Output Only] A key that provides more detail on the warning being returned.
19921
+ # For example, for warnings where there are no results in a list request for a
19922
+ # particular zone, this key might be scope and the key value might be the zone
19923
+ # name. Other examples might be a key indicating a deprecated resource and a
19924
+ # suggested replacement, or a warning about invalid network settings (for
19925
+ # example, if an instance attempts to perform IP forwarding but is not enabled
19926
+ # for IP forwarding).
19927
+ # Corresponds to the JSON property `key`
19928
+ # @return [String]
19929
+ attr_accessor :key
19930
+
19931
+ # [Output Only] A warning data value corresponding to the key.
19932
+ # Corresponds to the JSON property `value`
19933
+ # @return [String]
19934
+ attr_accessor :value
19935
+
19936
+ def initialize(**args)
19937
+ update!(**args)
19938
+ end
19939
+
19940
+ # Update properties of this object
19941
+ def update!(**args)
19942
+ @key = args[:key] if args.key?(:key)
19943
+ @value = args[:value] if args.key?(:value)
19944
+ end
19945
+ end
19946
+ end
19947
+ end
19948
+
19949
+ #
19950
+ class InterconnectRemoteLocationPermittedConnections
19951
+ include Google::Apis::Core::Hashable
19952
+
19953
+ # [Output Only] URL of an Interconnect location that is permitted to connect to
19954
+ # this Interconnect remote location.
19955
+ # Corresponds to the JSON property `interconnectLocation`
19956
+ # @return [String]
19957
+ attr_accessor :interconnect_location
19958
+
19959
+ def initialize(**args)
19960
+ update!(**args)
19961
+ end
19962
+
19963
+ # Update properties of this object
19964
+ def update!(**args)
19965
+ @interconnect_location = args[:interconnect_location] if args.key?(:interconnect_location)
19966
+ end
19967
+ end
19968
+
19421
19969
  # Response for the InterconnectsGetDiagnosticsRequest.
19422
19970
  class InterconnectsGetDiagnosticsResponse
19423
19971
  include Google::Apis::Core::Hashable
@@ -20439,7 +20987,7 @@ module Google
20439
20987
  # @return [Fixnum]
20440
20988
  attr_accessor :guest_accelerator_count
20441
20989
 
20442
- # The accelerator type resource name, not a full URL, e.g. 'nvidia-tesla-k80'.
20990
+ # The accelerator type resource name, not a full URL, e.g. nvidia-tesla-t4.
20443
20991
  # Corresponds to the JSON property `guestAcceleratorType`
20444
20992
  # @return [String]
20445
20993
  attr_accessor :guest_accelerator_type
@@ -21431,9 +21979,9 @@ module Google
21431
21979
  # @return [String]
21432
21980
  attr_accessor :description
21433
21981
 
21434
- # [Output Only] Fingerprint of this resource. A hash of the contents stored in
21435
- # this object. This field is used in optimistic locking. An up-to-date
21436
- # fingerprint must be provided in order to patch.
21982
+ # Fingerprint of this resource. A hash of the contents stored in this object.
21983
+ # This field is used in optimistic locking. An up-to-date fingerprint must be
21984
+ # provided in order to patch.
21437
21985
  # Corresponds to the JSON property `fingerprint`
21438
21986
  # NOTE: Values are automatically base64 encoded/decoded in the client library.
21439
21987
  # @return [String]
@@ -21461,6 +22009,10 @@ module Google
21461
22009
  attr_accessor :name
21462
22010
 
21463
22011
  # [Output Only] The URL of the network which the Network Attachment belongs to.
22012
+ # Practically it is inferred by fetching the network of the first subnetwork
22013
+ # associated. Because it is required that all the subnetworks must be from the
22014
+ # same network, it is assured that the Network Attachment belongs to the same
22015
+ # network as all the subnetworks.
21464
22016
  # Corresponds to the JSON property `network`
21465
22017
  # @return [String]
21466
22018
  attr_accessor :network
@@ -22239,6 +22791,11 @@ module Google
22239
22791
  # @return [String]
22240
22792
  attr_accessor :ip_address
22241
22793
 
22794
+ # Optional IPv6 address of network endpoint.
22795
+ # Corresponds to the JSON property `ipv6Address`
22796
+ # @return [String]
22797
+ attr_accessor :ipv6_address
22798
+
22242
22799
  # Optional port number of network endpoint. If not specified, the defaultPort
22243
22800
  # for the network endpoint group will be used.
22244
22801
  # Corresponds to the JSON property `port`
@@ -22255,6 +22812,7 @@ module Google
22255
22812
  @fqdn = args[:fqdn] if args.key?(:fqdn)
22256
22813
  @instance = args[:instance] if args.key?(:instance)
22257
22814
  @ip_address = args[:ip_address] if args.key?(:ip_address)
22815
+ @ipv6_address = args[:ipv6_address] if args.key?(:ipv6_address)
22258
22816
  @port = args[:port] if args.key?(:port)
22259
22817
  end
22260
22818
  end
@@ -32873,6 +33431,20 @@ module Google
32873
33431
  # @return [Google::Apis::ComputeBeta::RouterBgpPeerBfd]
32874
33432
  attr_accessor :bfd
32875
33433
 
33434
+ # A list of user-defined custom learned route IP address ranges for a BGP
33435
+ # session.
33436
+ # Corresponds to the JSON property `customLearnedIpRanges`
33437
+ # @return [Array<Google::Apis::ComputeBeta::RouterBgpPeerCustomLearnedIpRange>]
33438
+ attr_accessor :custom_learned_ip_ranges
33439
+
33440
+ # The user-defined custom learned route priority for a BGP session. This value
33441
+ # is applied to all custom learned route ranges for the session. You can choose
33442
+ # a value from `0` to `65335`. If you don't provide a value, Google Cloud
33443
+ # assigns a priority of `100` to the ranges.
33444
+ # Corresponds to the JSON property `customLearnedRoutePriority`
33445
+ # @return [Fixnum]
33446
+ attr_accessor :custom_learned_route_priority
33447
+
32876
33448
  # The status of the BGP peer connection. If set to FALSE, any active session
32877
33449
  # with the peer is terminated and all associated routing information is removed.
32878
33450
  # If set to TRUE, the peer connection can be established with routing
@@ -32966,6 +33538,8 @@ module Google
32966
33538
  @advertised_ip_ranges = args[:advertised_ip_ranges] if args.key?(:advertised_ip_ranges)
32967
33539
  @advertised_route_priority = args[:advertised_route_priority] if args.key?(:advertised_route_priority)
32968
33540
  @bfd = args[:bfd] if args.key?(:bfd)
33541
+ @custom_learned_ip_ranges = args[:custom_learned_ip_ranges] if args.key?(:custom_learned_ip_ranges)
33542
+ @custom_learned_route_priority = args[:custom_learned_route_priority] if args.key?(:custom_learned_route_priority)
32969
33543
  @enable = args[:enable] if args.key?(:enable)
32970
33544
  @enable_ipv6 = args[:enable_ipv6] if args.key?(:enable_ipv6)
32971
33545
  @interface_name = args[:interface_name] if args.key?(:interface_name)
@@ -33032,6 +33606,27 @@ module Google
33032
33606
  end
33033
33607
  end
33034
33608
 
33609
+ #
33610
+ class RouterBgpPeerCustomLearnedIpRange
33611
+ include Google::Apis::Core::Hashable
33612
+
33613
+ # The custom learned route IP address range. Must be a valid CIDR-formatted
33614
+ # prefix. If an IP address is provided without a subnet mask, it is interpreted
33615
+ # as, for IPv4, a `/32` singular IP address range, and, for IPv6, `/128`.
33616
+ # Corresponds to the JSON property `range`
33617
+ # @return [String]
33618
+ attr_accessor :range
33619
+
33620
+ def initialize(**args)
33621
+ update!(**args)
33622
+ end
33623
+
33624
+ # Update properties of this object
33625
+ def update!(**args)
33626
+ @range = args[:range] if args.key?(:range)
33627
+ end
33628
+ end
33629
+
33035
33630
  #
33036
33631
  class RouterInterface
33037
33632
  include Google::Apis::Core::Hashable
@@ -33375,9 +33970,8 @@ module Google
33375
33970
  # ranges in every Subnetwork are allowed to Nat. - LIST_OF_SUBNETWORKS: A list
33376
33971
  # of Subnetworks are allowed to Nat (specified in the field subnetwork below)
33377
33972
  # The default is SUBNETWORK_IP_RANGE_TO_NAT_OPTION_UNSPECIFIED. Note that if
33378
- # this field contains ALL_SUBNETWORKS_ALL_IP_RANGES or
33379
- # ALL_SUBNETWORKS_ALL_PRIMARY_IP_RANGES, then there should not be any other
33380
- # Router.Nat section in any Router for this network in this region.
33973
+ # this field contains ALL_SUBNETWORKS_ALL_IP_RANGES then there should not be any
33974
+ # other Router.Nat section in any Router for this network in this region.
33381
33975
  # Corresponds to the JSON property `sourceSubnetworkIpRangesToNat`
33382
33976
  # @return [String]
33383
33977
  attr_accessor :source_subnetwork_ip_ranges_to_nat
@@ -34928,6 +35522,16 @@ module Google
34928
35522
  # @return [String]
34929
35523
  attr_accessor :type
34930
35524
 
35525
+ # Definitions of user-defined fields for CLOUD_ARMOR_NETWORK policies. A user-
35526
+ # defined field consists of up to 4 bytes extracted from a fixed offset in the
35527
+ # packet, relative to the IPv4, IPv6, TCP, or UDP header, with an optional mask
35528
+ # to select certain bits. Rules may then specify matching values for these
35529
+ # fields. Example: userDefinedFields: - name: "ipv4_fragment_offset" base: IPV4
35530
+ # offset: 6 size: 2 mask: "0x1fff"
35531
+ # Corresponds to the JSON property `userDefinedFields`
35532
+ # @return [Array<Google::Apis::ComputeBeta::SecurityPolicyUserDefinedField>]
35533
+ attr_accessor :user_defined_fields
35534
+
34931
35535
  def initialize(**args)
34932
35536
  update!(**args)
34933
35537
  end
@@ -34955,6 +35559,7 @@ module Google
34955
35559
  @self_link = args[:self_link] if args.key?(:self_link)
34956
35560
  @self_link_with_id = args[:self_link_with_id] if args.key?(:self_link_with_id)
34957
35561
  @type = args[:type] if args.key?(:type)
35562
+ @user_defined_fields = args[:user_defined_fields] if args.key?(:user_defined_fields)
34958
35563
  end
34959
35564
  end
34960
35565
 
@@ -35386,6 +35991,12 @@ module Google
35386
35991
  # @return [Google::Apis::ComputeBeta::SecurityPolicyRuleMatcher]
35387
35992
  attr_accessor :match
35388
35993
 
35994
+ # Represents a match condition that incoming network traffic is evaluated
35995
+ # against.
35996
+ # Corresponds to the JSON property `networkMatch`
35997
+ # @return [Google::Apis::ComputeBeta::SecurityPolicyRuleNetworkMatcher]
35998
+ attr_accessor :network_match
35999
+
35389
36000
  # Preconfigured WAF configuration to be applied for the rule. If the rule does
35390
36001
  # not evaluate preconfigured WAF rules, i.e., if evaluatePreconfiguredWaf() is
35391
36002
  # not used, this field will have no effect.
@@ -35460,6 +36071,7 @@ module Google
35460
36071
  @header_action = args[:header_action] if args.key?(:header_action)
35461
36072
  @kind = args[:kind] if args.key?(:kind)
35462
36073
  @match = args[:match] if args.key?(:match)
36074
+ @network_match = args[:network_match] if args.key?(:network_match)
35463
36075
  @preconfigured_waf_config = args[:preconfigured_waf_config] if args.key?(:preconfigured_waf_config)
35464
36076
  @preview = args[:preview] if args.key?(:preview)
35465
36077
  @priority = args[:priority] if args.key?(:priority)
@@ -35632,6 +36244,102 @@ module Google
35632
36244
  end
35633
36245
  end
35634
36246
 
36247
+ # Represents a match condition that incoming network traffic is evaluated
36248
+ # against.
36249
+ class SecurityPolicyRuleNetworkMatcher
36250
+ include Google::Apis::Core::Hashable
36251
+
36252
+ # Destination IPv4/IPv6 addresses or CIDR prefixes, in standard text format.
36253
+ # Corresponds to the JSON property `destIpRanges`
36254
+ # @return [Array<String>]
36255
+ attr_accessor :dest_ip_ranges
36256
+
36257
+ # Destination port numbers for TCP/UDP/SCTP. Each element can be a 16-bit
36258
+ # unsigned decimal number (e.g. "80") or range (e.g. "0-1023").
36259
+ # Corresponds to the JSON property `destPorts`
36260
+ # @return [Array<String>]
36261
+ attr_accessor :dest_ports
36262
+
36263
+ # IPv4 protocol / IPv6 next header (after extension headers). Each element can
36264
+ # be an 8-bit unsigned decimal number (e.g. "6"), range (e.g. "253-254"), or one
36265
+ # of the following protocol names: "tcp", "udp", "icmp", "esp", "ah", "ipip", or
36266
+ # "sctp".
36267
+ # Corresponds to the JSON property `ipProtocols`
36268
+ # @return [Array<String>]
36269
+ attr_accessor :ip_protocols
36270
+
36271
+ # BGP Autonomous System Number associated with the source IP address.
36272
+ # Corresponds to the JSON property `srcAsns`
36273
+ # @return [Array<Fixnum>]
36274
+ attr_accessor :src_asns
36275
+
36276
+ # Source IPv4/IPv6 addresses or CIDR prefixes, in standard text format.
36277
+ # Corresponds to the JSON property `srcIpRanges`
36278
+ # @return [Array<String>]
36279
+ attr_accessor :src_ip_ranges
36280
+
36281
+ # Source port numbers for TCP/UDP/SCTP. Each element can be a 16-bit unsigned
36282
+ # decimal number (e.g. "80") or range (e.g. "0-1023").
36283
+ # Corresponds to the JSON property `srcPorts`
36284
+ # @return [Array<String>]
36285
+ attr_accessor :src_ports
36286
+
36287
+ # Two-letter ISO 3166-1 alpha-2 country code associated with the source IP
36288
+ # address.
36289
+ # Corresponds to the JSON property `srcRegionCodes`
36290
+ # @return [Array<String>]
36291
+ attr_accessor :src_region_codes
36292
+
36293
+ # User-defined fields. Each element names a defined field and lists the matching
36294
+ # values for that field.
36295
+ # Corresponds to the JSON property `userDefinedFields`
36296
+ # @return [Array<Google::Apis::ComputeBeta::SecurityPolicyRuleNetworkMatcherUserDefinedFieldMatch>]
36297
+ attr_accessor :user_defined_fields
36298
+
36299
+ def initialize(**args)
36300
+ update!(**args)
36301
+ end
36302
+
36303
+ # Update properties of this object
36304
+ def update!(**args)
36305
+ @dest_ip_ranges = args[:dest_ip_ranges] if args.key?(:dest_ip_ranges)
36306
+ @dest_ports = args[:dest_ports] if args.key?(:dest_ports)
36307
+ @ip_protocols = args[:ip_protocols] if args.key?(:ip_protocols)
36308
+ @src_asns = args[:src_asns] if args.key?(:src_asns)
36309
+ @src_ip_ranges = args[:src_ip_ranges] if args.key?(:src_ip_ranges)
36310
+ @src_ports = args[:src_ports] if args.key?(:src_ports)
36311
+ @src_region_codes = args[:src_region_codes] if args.key?(:src_region_codes)
36312
+ @user_defined_fields = args[:user_defined_fields] if args.key?(:user_defined_fields)
36313
+ end
36314
+ end
36315
+
36316
+ #
36317
+ class SecurityPolicyRuleNetworkMatcherUserDefinedFieldMatch
36318
+ include Google::Apis::Core::Hashable
36319
+
36320
+ # Name of the user-defined field, as given in the definition.
36321
+ # Corresponds to the JSON property `name`
36322
+ # @return [String]
36323
+ attr_accessor :name
36324
+
36325
+ # Matching values of the field. Each element can be a 32-bit unsigned decimal or
36326
+ # hexadecimal (starting with "0x") number (e.g. "64") or range (e.g. "0x400-
36327
+ # 0x7ff").
36328
+ # Corresponds to the JSON property `values`
36329
+ # @return [Array<String>]
36330
+ attr_accessor :values
36331
+
36332
+ def initialize(**args)
36333
+ update!(**args)
36334
+ end
36335
+
36336
+ # Update properties of this object
36337
+ def update!(**args)
36338
+ @name = args[:name] if args.key?(:name)
36339
+ @values = args[:values] if args.key?(:values)
36340
+ end
36341
+ end
36342
+
35635
36343
  #
35636
36344
  class SecurityPolicyRulePreconfiguredWafConfig
35637
36345
  include Google::Apis::Core::Hashable
@@ -35932,6 +36640,59 @@ module Google
35932
36640
  end
35933
36641
  end
35934
36642
 
36643
+ #
36644
+ class SecurityPolicyUserDefinedField
36645
+ include Google::Apis::Core::Hashable
36646
+
36647
+ # The base relative to which 'offset' is measured. Possible values are: - IPV4:
36648
+ # Points to the beginning of the IPv4 header. - IPV6: Points to the beginning of
36649
+ # the IPv6 header. - TCP: Points to the beginning of the TCP header, skipping
36650
+ # over any IPv4 options or IPv6 extension headers. Not present for non-first
36651
+ # fragments. - UDP: Points to the beginning of the UDP header, skipping over any
36652
+ # IPv4 options or IPv6 extension headers. Not present for non-first fragments.
36653
+ # required
36654
+ # Corresponds to the JSON property `base`
36655
+ # @return [String]
36656
+ attr_accessor :base
36657
+
36658
+ # If specified, apply this mask (bitwise AND) to the field to ignore bits before
36659
+ # matching. Encoded as a hexadecimal number (starting with "0x"). The last byte
36660
+ # of the field (in network byte order) corresponds to the least significant byte
36661
+ # of the mask.
36662
+ # Corresponds to the JSON property `mask`
36663
+ # @return [String]
36664
+ attr_accessor :mask
36665
+
36666
+ # The name of this field. Must be unique within the policy.
36667
+ # Corresponds to the JSON property `name`
36668
+ # @return [String]
36669
+ attr_accessor :name
36670
+
36671
+ # Offset of the first byte of the field (in network byte order) relative to '
36672
+ # base'.
36673
+ # Corresponds to the JSON property `offset`
36674
+ # @return [Fixnum]
36675
+ attr_accessor :offset
36676
+
36677
+ # Size of the field in bytes. Valid values: 1-4.
36678
+ # Corresponds to the JSON property `size`
36679
+ # @return [Fixnum]
36680
+ attr_accessor :size
36681
+
36682
+ def initialize(**args)
36683
+ update!(**args)
36684
+ end
36685
+
36686
+ # Update properties of this object
36687
+ def update!(**args)
36688
+ @base = args[:base] if args.key?(:base)
36689
+ @mask = args[:mask] if args.key?(:mask)
36690
+ @name = args[:name] if args.key?(:name)
36691
+ @offset = args[:offset] if args.key?(:offset)
36692
+ @size = args[:size] if args.key?(:size)
36693
+ end
36694
+ end
36695
+
35935
36696
  # The authentication and authorization settings for a BackendService.
35936
36697
  class SecuritySettings
35937
36698
  include Google::Apis::Core::Hashable
@@ -36189,6 +36950,20 @@ module Google
36189
36950
  # @return [Google::Apis::ComputeBeta::Uint128]
36190
36951
  attr_accessor :psc_service_attachment_id
36191
36952
 
36953
+ # This flag determines whether a consumer accept/reject list change can
36954
+ # reconcile the statuses of existing ACCEPTED or REJECTED PSC endpoints. - If
36955
+ # false, connection policy update will only affect existing PENDING PSC
36956
+ # endpoints. Existing ACCEPTED/REJECTED endpoints will remain untouched
36957
+ # regardless how the connection policy is modified . - If true, update will
36958
+ # affect both PENDING and ACCEPTED/REJECTED PSC endpoints. For example, an
36959
+ # ACCEPTED PSC endpoint will be moved to REJECTED if its project is added to the
36960
+ # reject list. For newly created service attachment, this boolean defaults to
36961
+ # true.
36962
+ # Corresponds to the JSON property `reconcileConnections`
36963
+ # @return [Boolean]
36964
+ attr_accessor :reconcile_connections
36965
+ alias_method :reconcile_connections?, :reconcile_connections
36966
+
36192
36967
  # [Output Only] URL of the region where the service attachment resides. This
36193
36968
  # field applies only to the region resource. You must specify this field as part
36194
36969
  # of the HTTP request URL. It is not settable as a field in the request body.
@@ -36228,6 +37003,7 @@ module Google
36228
37003
  @nat_subnets = args[:nat_subnets] if args.key?(:nat_subnets)
36229
37004
  @producer_forwarding_rule = args[:producer_forwarding_rule] if args.key?(:producer_forwarding_rule)
36230
37005
  @psc_service_attachment_id = args[:psc_service_attachment_id] if args.key?(:psc_service_attachment_id)
37006
+ @reconcile_connections = args[:reconcile_connections] if args.key?(:reconcile_connections)
36231
37007
  @region = args[:region] if args.key?(:region)
36232
37008
  @self_link = args[:self_link] if args.key?(:self_link)
36233
37009
  @target_service = args[:target_service] if args.key?(:target_service)
@@ -38693,8 +39469,8 @@ module Google
38693
39469
  # Whether to enable flow logging for this subnetwork. If this field is not
38694
39470
  # explicitly set, it will not appear in get listings. If not set the default
38695
39471
  # behavior is determined by the org policy, if there is no org policy specified,
38696
- # then it will default to disabled. This field isn't supported with the purpose
38697
- # field set to INTERNAL_HTTPS_LOAD_BALANCER.
39472
+ # then it will default to disabled. This field isn't supported if the subnet
39473
+ # purpose field is set to REGIONAL_MANAGED_PROXY.
38698
39474
  # Corresponds to the JSON property `enableFlowLogs`
38699
39475
  # @return [Boolean]
38700
39476
  attr_accessor :enable_flow_logs
@@ -38798,12 +39574,19 @@ module Google
38798
39574
  # @return [String]
38799
39575
  attr_accessor :private_ipv6_google_access
38800
39576
 
38801
- # The purpose of the resource. This field can be either PRIVATE_RFC_1918 or
38802
- # INTERNAL_HTTPS_LOAD_BALANCER. A subnetwork with purpose set to
38803
- # INTERNAL_HTTPS_LOAD_BALANCER is a user-created subnetwork that is reserved for
38804
- # Internal HTTP(S) Load Balancing. If unspecified, the purpose defaults to
38805
- # PRIVATE_RFC_1918. The enableFlowLogs field isn't supported with the purpose
38806
- # field set to INTERNAL_HTTPS_LOAD_BALANCER.
39577
+ # The purpose of the resource. This field can be either PRIVATE,
39578
+ # REGIONAL_MANAGED_PROXY, PRIVATE_SERVICE_CONNECT, or
39579
+ # INTERNAL_HTTPS_LOAD_BALANCER. PRIVATE is the default purpose for user-created
39580
+ # subnets or subnets that are automatically created in auto mode networks. A
39581
+ # subnet with purpose set to REGIONAL_MANAGED_PROXY is a user-created subnetwork
39582
+ # that is reserved for regional Envoy-based load balancers. A subnet with
39583
+ # purpose set to PRIVATE_SERVICE_CONNECT is used to publish services using
39584
+ # Private Service Connect. A subnet with purpose set to
39585
+ # INTERNAL_HTTPS_LOAD_BALANCER is a proxy-only subnet that can be used only by
39586
+ # regional internal HTTP(S) load balancers. Note that REGIONAL_MANAGED_PROXY is
39587
+ # the preferred setting for all regional Envoy load balancers. If unspecified,
39588
+ # the subnet purpose defaults to PRIVATE. The enableFlowLogs field isn't
39589
+ # supported if the subnet purpose field is set to REGIONAL_MANAGED_PROXY.
38807
39590
  # Corresponds to the JSON property `purpose`
38808
39591
  # @return [String]
38809
39592
  attr_accessor :purpose
@@ -38820,11 +39603,10 @@ module Google
38820
39603
  attr_accessor :reserved_internal_range
38821
39604
 
38822
39605
  # The role of subnetwork. Currently, this field is only used when purpose =
38823
- # INTERNAL_HTTPS_LOAD_BALANCER. The value can be set to ACTIVE or BACKUP. An
38824
- # ACTIVE subnetwork is one that is currently being used for Internal HTTP(S)
38825
- # Load Balancing. A BACKUP subnetwork is one that is ready to be promoted to
38826
- # ACTIVE or is currently draining. This field can be updated with a patch
38827
- # request.
39606
+ # REGIONAL_MANAGED_PROXY. The value can be set to ACTIVE or BACKUP. An ACTIVE
39607
+ # subnetwork is one that is currently being used for Envoy-based load balancers
39608
+ # in a region. A BACKUP subnetwork is one that is ready to be promoted to ACTIVE
39609
+ # or is currently draining. This field can be updated with a patch request.
38828
39610
  # Corresponds to the JSON property `role`
38829
39611
  # @return [String]
38830
39612
  attr_accessor :role
@@ -39152,7 +39934,8 @@ module Google
39152
39934
  # Whether to enable flow logging for this subnetwork. If this field is not
39153
39935
  # explicitly set, it will not appear in get listings. If not set the default
39154
39936
  # behavior is determined by the org policy, if there is no org policy specified,
39155
- # then it will default to disabled.
39937
+ # then it will default to disabled. Flow logging isn't supported if the subnet
39938
+ # purpose field is set to REGIONAL_MANAGED_PROXY.
39156
39939
  # Corresponds to the JSON property `enable`
39157
39940
  # @return [Boolean]
39158
39941
  attr_accessor :enable
@@ -40278,7 +41061,9 @@ module Google
40278
41061
  class TargetHttpsProxiesSetCertificateMapRequest
40279
41062
  include Google::Apis::Core::Hashable
40280
41063
 
40281
- # URL of the Certificate Map to associate with this TargetHttpsProxy.
41064
+ # URL of the Certificate Map to associate with this TargetHttpsProxy. Accepted
41065
+ # format is //certificatemanager.googleapis.com/projects/`project `/locations/`
41066
+ # location`/certificateMaps/`resourceName`.
40282
41067
  # Corresponds to the JSON property `certificateMap`
40283
41068
  # @return [String]
40284
41069
  attr_accessor :certificate_map
@@ -40368,7 +41153,9 @@ module Google
40368
41153
 
40369
41154
  # URL of a certificate map that identifies a certificate map associated with the
40370
41155
  # given target proxy. This field can only be set for global target proxies. If
40371
- # set, sslCertificates will be ignored.
41156
+ # set, sslCertificates will be ignored. Accepted format is //certificatemanager.
41157
+ # googleapis.com/projects/`project `/locations/`location`/certificateMaps/`
41158
+ # resourceName`.
40372
41159
  # Corresponds to the JSON property `certificateMap`
40373
41160
  # @return [String]
40374
41161
  attr_accessor :certificate_map
@@ -40838,6 +41625,12 @@ module Google
40838
41625
  # @return [String]
40839
41626
  attr_accessor :network
40840
41627
 
41628
+ # [Output Only] The resource URL for the security policy associated with this
41629
+ # target instance.
41630
+ # Corresponds to the JSON property `securityPolicy`
41631
+ # @return [String]
41632
+ attr_accessor :security_policy
41633
+
40841
41634
  # [Output Only] Server-defined URL for the resource.
40842
41635
  # Corresponds to the JSON property `selfLink`
40843
41636
  # @return [String]
@@ -40864,6 +41657,7 @@ module Google
40864
41657
  @name = args[:name] if args.key?(:name)
40865
41658
  @nat_policy = args[:nat_policy] if args.key?(:nat_policy)
40866
41659
  @network = args[:network] if args.key?(:network)
41660
+ @security_policy = args[:security_policy] if args.key?(:security_policy)
40867
41661
  @self_link = args[:self_link] if args.key?(:self_link)
40868
41662
  @zone = args[:zone] if args.key?(:zone)
40869
41663
  end
@@ -41287,6 +42081,12 @@ module Google
41287
42081
  # @return [String]
41288
42082
  attr_accessor :region
41289
42083
 
42084
+ # [Output Only] The resource URL for the security policy associated with this
42085
+ # target pool.
42086
+ # Corresponds to the JSON property `securityPolicy`
42087
+ # @return [String]
42088
+ attr_accessor :security_policy
42089
+
41290
42090
  # [Output Only] Server-defined URL for the resource.
41291
42091
  # Corresponds to the JSON property `selfLink`
41292
42092
  # @return [String]
@@ -41318,6 +42118,7 @@ module Google
41318
42118
  @kind = args[:kind] if args.key?(:kind)
41319
42119
  @name = args[:name] if args.key?(:name)
41320
42120
  @region = args[:region] if args.key?(:region)
42121
+ @security_policy = args[:security_policy] if args.key?(:security_policy)
41321
42122
  @self_link = args[:self_link] if args.key?(:self_link)
41322
42123
  @session_affinity = args[:session_affinity] if args.key?(:session_affinity)
41323
42124
  end
@@ -41807,7 +42608,9 @@ module Google
41807
42608
  class TargetSslProxiesSetCertificateMapRequest
41808
42609
  include Google::Apis::Core::Hashable
41809
42610
 
41810
- # URL of the Certificate Map to associate with this TargetSslProxy.
42611
+ # URL of the Certificate Map to associate with this TargetSslProxy. Accepted
42612
+ # format is //certificatemanager.googleapis.com/projects/`project `/locations/`
42613
+ # location`/certificateMaps/`resourceName`.
41811
42614
  # Corresponds to the JSON property `certificateMap`
41812
42615
  # @return [String]
41813
42616
  attr_accessor :certificate_map
@@ -41872,7 +42675,9 @@ module Google
41872
42675
 
41873
42676
  # URL of a certificate map that identifies a certificate map associated with the
41874
42677
  # given target proxy. This field can only be set for global target proxies. If
41875
- # set, sslCertificates will be ignored.
42678
+ # set, sslCertificates will be ignored. Accepted format is //certificatemanager.
42679
+ # googleapis.com/projects/`project `/locations/`location`/certificateMaps/`
42680
+ # resourceName`.
41876
42681
  # Corresponds to the JSON property `certificateMap`
41877
42682
  # @return [String]
41878
42683
  attr_accessor :certificate_map
@@ -43926,22 +44731,28 @@ module Google
43926
44731
  # @return [String]
43927
44732
  attr_accessor :network
43928
44733
 
43929
- # The purpose of the resource. This field can be either PRIVATE_RFC_1918 or
43930
- # INTERNAL_HTTPS_LOAD_BALANCER. A subnetwork with purpose set to
43931
- # INTERNAL_HTTPS_LOAD_BALANCER is a user-created subnetwork that is reserved for
43932
- # Internal HTTP(S) Load Balancing. If unspecified, the purpose defaults to
43933
- # PRIVATE_RFC_1918. The enableFlowLogs field isn't supported with the purpose
43934
- # field set to INTERNAL_HTTPS_LOAD_BALANCER.
44734
+ # The purpose of the resource. This field can be either PRIVATE,
44735
+ # REGIONAL_MANAGED_PROXY, PRIVATE_SERVICE_CONNECT, or
44736
+ # INTERNAL_HTTPS_LOAD_BALANCER. PRIVATE is the default purpose for user-created
44737
+ # subnets or subnets that are automatically created in auto mode networks. A
44738
+ # subnet with purpose set to REGIONAL_MANAGED_PROXY is a user-created subnetwork
44739
+ # that is reserved for regional Envoy-based load balancers. A subnet with
44740
+ # purpose set to PRIVATE_SERVICE_CONNECT is used to publish services using
44741
+ # Private Service Connect. A subnet with purpose set to
44742
+ # INTERNAL_HTTPS_LOAD_BALANCER is a proxy-only subnet that can be used only by
44743
+ # regional internal HTTP(S) load balancers. Note that REGIONAL_MANAGED_PROXY is
44744
+ # the preferred setting for all regional Envoy load balancers. If unspecified,
44745
+ # the subnet purpose defaults to PRIVATE. The enableFlowLogs field isn't
44746
+ # supported if the subnet purpose field is set to REGIONAL_MANAGED_PROXY.
43935
44747
  # Corresponds to the JSON property `purpose`
43936
44748
  # @return [String]
43937
44749
  attr_accessor :purpose
43938
44750
 
43939
44751
  # The role of subnetwork. Currently, this field is only used when purpose =
43940
- # INTERNAL_HTTPS_LOAD_BALANCER. The value can be set to ACTIVE or BACKUP. An
43941
- # ACTIVE subnetwork is one that is currently being used for Internal HTTP(S)
43942
- # Load Balancing. A BACKUP subnetwork is one that is ready to be promoted to
43943
- # ACTIVE or is currently draining. This field can be updated with a patch
43944
- # request.
44752
+ # REGIONAL_MANAGED_PROXY. The value can be set to ACTIVE or BACKUP. An ACTIVE
44753
+ # subnetwork is one that is currently being used for Envoy-based load balancers
44754
+ # in a region. A BACKUP subnetwork is one that is ready to be promoted to ACTIVE
44755
+ # or is currently draining. This field can be updated with a patch request.
43945
44756
  # Corresponds to the JSON property `role`
43946
44757
  # @return [String]
43947
44758
  attr_accessor :role
@@ -44440,6 +45251,12 @@ module Google
44440
45251
  # @return [String]
44441
45252
  attr_accessor :description
44442
45253
 
45254
+ # The IP family of the gateway IPs for the HA-VPN gateway interfaces. If not
45255
+ # specified, IPV4 will be used.
45256
+ # Corresponds to the JSON property `gatewayIpVersion`
45257
+ # @return [String]
45258
+ attr_accessor :gateway_ip_version
45259
+
44443
45260
  # [Output Only] The unique identifier for the resource. This identifier is
44444
45261
  # defined by the server.
44445
45262
  # Corresponds to the JSON property `id`
@@ -44516,6 +45333,7 @@ module Google
44516
45333
  def update!(**args)
44517
45334
  @creation_timestamp = args[:creation_timestamp] if args.key?(:creation_timestamp)
44518
45335
  @description = args[:description] if args.key?(:description)
45336
+ @gateway_ip_version = args[:gateway_ip_version] if args.key?(:gateway_ip_version)
44519
45337
  @id = args[:id] if args.key?(:id)
44520
45338
  @kind = args[:kind] if args.key?(:kind)
44521
45339
  @label_fingerprint = args[:label_fingerprint] if args.key?(:label_fingerprint)
@@ -44827,7 +45645,7 @@ module Google
44827
45645
  attr_accessor :local_gateway_interface
44828
45646
 
44829
45647
  # The peer gateway interface this VPN tunnel is connected to, the peer gateway
44830
- # could either be an external VPN gateway or GCP VPN gateway.
45648
+ # could either be an external VPN gateway or a Google Cloud VPN gateway.
44831
45649
  # Corresponds to the JSON property `peerGatewayInterface`
44832
45650
  # @return [Fixnum]
44833
45651
  attr_accessor :peer_gateway_interface
@@ -44850,8 +45668,8 @@ module Google
44850
45668
  end
44851
45669
 
44852
45670
  # A VPN connection contains all VPN tunnels connected from this VpnGateway to
44853
- # the same peer gateway. The peer gateway could either be a external VPN gateway
44854
- # or GCP VPN gateway.
45671
+ # the same peer gateway. The peer gateway could either be an external VPN
45672
+ # gateway or a Google Cloud VPN gateway.
44855
45673
  class VpnGatewayStatusVpnConnection
44856
45674
  include Google::Apis::Core::Hashable
44857
45675
 
@@ -44924,6 +45742,13 @@ module Google
44924
45742
  # @return [String]
44925
45743
  attr_accessor :ip_address
44926
45744
 
45745
+ # [Output Only] IPv6 address for this VPN interface associated with the VPN
45746
+ # gateway. The IPv6 address must be a regional external IPv6 address. The format
45747
+ # is RFC 5952 format (e.g. 2001:db8::2d9:51:0:0).
45748
+ # Corresponds to the JSON property `ipv6Address`
45749
+ # @return [String]
45750
+ attr_accessor :ipv6_address
45751
+
44927
45752
  def initialize(**args)
44928
45753
  update!(**args)
44929
45754
  end
@@ -44933,6 +45758,7 @@ module Google
44933
45758
  @id = args[:id] if args.key?(:id)
44934
45759
  @interconnect_attachment = args[:interconnect_attachment] if args.key?(:interconnect_attachment)
44935
45760
  @ip_address = args[:ip_address] if args.key?(:ip_address)
45761
+ @ipv6_address = args[:ipv6_address] if args.key?(:ipv6_address)
44936
45762
  end
44937
45763
  end
44938
45764