google-apis-compute_beta 0.65.0 → 0.67.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.
@@ -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