google-apis-compute_beta 0.66.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
@@ -9107,6 +9128,14 @@ module Google
9107
9128
  # @return [Fixnum]
9108
9129
  attr_accessor :rule_tuple_count
9109
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
+
9110
9139
  # A list of network resource URLs to which this rule applies. This field allows
9111
9140
  # you to control which network's VMs get this rule. If this field is left blank,
9112
9141
  # all VMs within the organization will receive the rule.
@@ -9132,6 +9161,14 @@ module Google
9132
9161
  # @return [Array<String>]
9133
9162
  attr_accessor :target_service_accounts
9134
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
+
9135
9172
  def initialize(**args)
9136
9173
  update!(**args)
9137
9174
  end
@@ -9148,9 +9185,11 @@ module Google
9148
9185
  @priority = args[:priority] if args.key?(:priority)
9149
9186
  @rule_name = args[:rule_name] if args.key?(:rule_name)
9150
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)
9151
9189
  @target_resources = args[:target_resources] if args.key?(:target_resources)
9152
9190
  @target_secure_tags = args[:target_secure_tags] if args.key?(:target_secure_tags)
9153
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)
9154
9193
  end
9155
9194
  end
9156
9195
 
@@ -11689,6 +11728,12 @@ module Google
11689
11728
  # @return [String]
11690
11729
  attr_accessor :health_state
11691
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
+
11692
11737
  def initialize(**args)
11693
11738
  update!(**args)
11694
11739
  end
@@ -11700,6 +11745,7 @@ module Google
11700
11745
  @health_check = args[:health_check] if args.key?(:health_check)
11701
11746
  @health_check_service = args[:health_check_service] if args.key?(:health_check_service)
11702
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)
11703
11749
  end
11704
11750
  end
11705
11751
 
@@ -17694,6 +17740,34 @@ module Google
17694
17740
  end
17695
17741
  end
17696
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
+
17697
17771
  #
17698
17772
  class InstancesSetServiceAccountRequest
17699
17773
  include Google::Apis::Core::Hashable
@@ -17924,6 +17998,12 @@ module Google
17924
17998
  # @return [Fixnum]
17925
17999
  attr_accessor :provisioned_link_count
17926
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
+
17927
18007
  # Target number of physical links in the link bundle, as requested by the
17928
18008
  # customer.
17929
18009
  # Corresponds to the JSON property `requestedLinkCount`
@@ -17979,6 +18059,7 @@ module Google
17979
18059
  @operational_status = args[:operational_status] if args.key?(:operational_status)
17980
18060
  @peer_ip_address = args[:peer_ip_address] if args.key?(:peer_ip_address)
17981
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)
17982
18063
  @requested_link_count = args[:requested_link_count] if args.key?(:requested_link_count)
17983
18064
  @satisfies_pzs = args[:satisfies_pzs] if args.key?(:satisfies_pzs)
17984
18065
  @self_link = args[:self_link] if args.key?(:self_link)
@@ -18046,6 +18127,12 @@ module Google
18046
18127
  # @return [String]
18047
18128
  attr_accessor :cloud_router_ipv6_interface_id
18048
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
+
18049
18136
  # [Output Only] Creation timestamp in RFC3339 text format.
18050
18137
  # Corresponds to the JSON property `creationTimestamp`
18051
18138
  # @return [String]
@@ -18227,6 +18314,15 @@ module Google
18227
18314
  # @return [String]
18228
18315
  attr_accessor :region
18229
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
+
18230
18326
  # URL of the Cloud Router to be used for dynamic routing. This router must be in
18231
18327
  # the same region as this InterconnectAttachment. The InterconnectAttachment
18232
18328
  # will automatically connect the Interconnect to the network & region within
@@ -18273,6 +18369,17 @@ module Google
18273
18369
  # @return [String]
18274
18370
  attr_accessor :state
18275
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
+
18276
18383
  # The type of interconnect attachment this is, which can take one of the
18277
18384
  # following values: - DEDICATED: an attachment to a Dedicated Interconnect. -
18278
18385
  # PARTNER: an attachment to a Partner Interconnect, created by the customer. -
@@ -18301,6 +18408,7 @@ module Google
18301
18408
  @cloud_router_ip_address = args[:cloud_router_ip_address] if args.key?(:cloud_router_ip_address)
18302
18409
  @cloud_router_ipv6_address = args[:cloud_router_ipv6_address] if args.key?(:cloud_router_ipv6_address)
18303
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)
18304
18412
  @creation_timestamp = args[:creation_timestamp] if args.key?(:creation_timestamp)
18305
18413
  @customer_router_ip_address = args[:customer_router_ip_address] if args.key?(:customer_router_ip_address)
18306
18414
  @customer_router_ipv6_address = args[:customer_router_ipv6_address] if args.key?(:customer_router_ipv6_address)
@@ -18324,11 +18432,13 @@ module Google
18324
18432
  @partner_metadata = args[:partner_metadata] if args.key?(:partner_metadata)
18325
18433
  @private_interconnect_info = args[:private_interconnect_info] if args.key?(:private_interconnect_info)
18326
18434
  @region = args[:region] if args.key?(:region)
18435
+ @remote_service = args[:remote_service] if args.key?(:remote_service)
18327
18436
  @router = args[:router] if args.key?(:router)
18328
18437
  @satisfies_pzs = args[:satisfies_pzs] if args.key?(:satisfies_pzs)
18329
18438
  @self_link = args[:self_link] if args.key?(:self_link)
18330
18439
  @stack_type = args[:stack_type] if args.key?(:stack_type)
18331
18440
  @state = args[:state] if args.key?(:state)
18441
+ @subnet_length = args[:subnet_length] if args.key?(:subnet_length)
18332
18442
  @type = args[:type] if args.key?(:type)
18333
18443
  @vlan_tag8021q = args[:vlan_tag8021q] if args.key?(:vlan_tag8021q)
18334
18444
  end
@@ -18459,6 +18569,68 @@ module Google
18459
18569
  end
18460
18570
  end
18461
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
+
18462
18634
  # Response to the list request, and contains a list of interconnect attachments.
18463
18635
  class InterconnectAttachmentList
18464
18636
  include Google::Apis::Core::Hashable
@@ -19429,6 +19601,371 @@ module Google
19429
19601
  end
19430
19602
  end
19431
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
+
19432
19969
  # Response for the InterconnectsGetDiagnosticsRequest.
19433
19970
  class InterconnectsGetDiagnosticsResponse
19434
19971
  include Google::Apis::Core::Hashable
@@ -20450,7 +20987,7 @@ module Google
20450
20987
  # @return [Fixnum]
20451
20988
  attr_accessor :guest_accelerator_count
20452
20989
 
20453
- # 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.
20454
20991
  # Corresponds to the JSON property `guestAcceleratorType`
20455
20992
  # @return [String]
20456
20993
  attr_accessor :guest_accelerator_type
@@ -21442,9 +21979,9 @@ module Google
21442
21979
  # @return [String]
21443
21980
  attr_accessor :description
21444
21981
 
21445
- # [Output Only] Fingerprint of this resource. A hash of the contents stored in
21446
- # this object. This field is used in optimistic locking. An up-to-date
21447
- # 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.
21448
21985
  # Corresponds to the JSON property `fingerprint`
21449
21986
  # NOTE: Values are automatically base64 encoded/decoded in the client library.
21450
21987
  # @return [String]
@@ -21472,6 +22009,10 @@ module Google
21472
22009
  attr_accessor :name
21473
22010
 
21474
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.
21475
22016
  # Corresponds to the JSON property `network`
21476
22017
  # @return [String]
21477
22018
  attr_accessor :network
@@ -22250,6 +22791,11 @@ module Google
22250
22791
  # @return [String]
22251
22792
  attr_accessor :ip_address
22252
22793
 
22794
+ # Optional IPv6 address of network endpoint.
22795
+ # Corresponds to the JSON property `ipv6Address`
22796
+ # @return [String]
22797
+ attr_accessor :ipv6_address
22798
+
22253
22799
  # Optional port number of network endpoint. If not specified, the defaultPort
22254
22800
  # for the network endpoint group will be used.
22255
22801
  # Corresponds to the JSON property `port`
@@ -22266,6 +22812,7 @@ module Google
22266
22812
  @fqdn = args[:fqdn] if args.key?(:fqdn)
22267
22813
  @instance = args[:instance] if args.key?(:instance)
22268
22814
  @ip_address = args[:ip_address] if args.key?(:ip_address)
22815
+ @ipv6_address = args[:ipv6_address] if args.key?(:ipv6_address)
22269
22816
  @port = args[:port] if args.key?(:port)
22270
22817
  end
22271
22818
  end
@@ -33423,9 +33970,8 @@ module Google
33423
33970
  # ranges in every Subnetwork are allowed to Nat. - LIST_OF_SUBNETWORKS: A list
33424
33971
  # of Subnetworks are allowed to Nat (specified in the field subnetwork below)
33425
33972
  # The default is SUBNETWORK_IP_RANGE_TO_NAT_OPTION_UNSPECIFIED. Note that if
33426
- # this field contains ALL_SUBNETWORKS_ALL_IP_RANGES or
33427
- # ALL_SUBNETWORKS_ALL_PRIMARY_IP_RANGES, then there should not be any other
33428
- # 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.
33429
33975
  # Corresponds to the JSON property `sourceSubnetworkIpRangesToNat`
33430
33976
  # @return [String]
33431
33977
  attr_accessor :source_subnetwork_ip_ranges_to_nat
@@ -34976,6 +35522,16 @@ module Google
34976
35522
  # @return [String]
34977
35523
  attr_accessor :type
34978
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
+
34979
35535
  def initialize(**args)
34980
35536
  update!(**args)
34981
35537
  end
@@ -35003,6 +35559,7 @@ module Google
35003
35559
  @self_link = args[:self_link] if args.key?(:self_link)
35004
35560
  @self_link_with_id = args[:self_link_with_id] if args.key?(:self_link_with_id)
35005
35561
  @type = args[:type] if args.key?(:type)
35562
+ @user_defined_fields = args[:user_defined_fields] if args.key?(:user_defined_fields)
35006
35563
  end
35007
35564
  end
35008
35565
 
@@ -35434,6 +35991,12 @@ module Google
35434
35991
  # @return [Google::Apis::ComputeBeta::SecurityPolicyRuleMatcher]
35435
35992
  attr_accessor :match
35436
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
+
35437
36000
  # Preconfigured WAF configuration to be applied for the rule. If the rule does
35438
36001
  # not evaluate preconfigured WAF rules, i.e., if evaluatePreconfiguredWaf() is
35439
36002
  # not used, this field will have no effect.
@@ -35508,6 +36071,7 @@ module Google
35508
36071
  @header_action = args[:header_action] if args.key?(:header_action)
35509
36072
  @kind = args[:kind] if args.key?(:kind)
35510
36073
  @match = args[:match] if args.key?(:match)
36074
+ @network_match = args[:network_match] if args.key?(:network_match)
35511
36075
  @preconfigured_waf_config = args[:preconfigured_waf_config] if args.key?(:preconfigured_waf_config)
35512
36076
  @preview = args[:preview] if args.key?(:preview)
35513
36077
  @priority = args[:priority] if args.key?(:priority)
@@ -35680,6 +36244,102 @@ module Google
35680
36244
  end
35681
36245
  end
35682
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
+
35683
36343
  #
35684
36344
  class SecurityPolicyRulePreconfiguredWafConfig
35685
36345
  include Google::Apis::Core::Hashable
@@ -35980,6 +36640,59 @@ module Google
35980
36640
  end
35981
36641
  end
35982
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
+
35983
36696
  # The authentication and authorization settings for a BackendService.
35984
36697
  class SecuritySettings
35985
36698
  include Google::Apis::Core::Hashable
@@ -38756,8 +39469,8 @@ module Google
38756
39469
  # Whether to enable flow logging for this subnetwork. If this field is not
38757
39470
  # explicitly set, it will not appear in get listings. If not set the default
38758
39471
  # behavior is determined by the org policy, if there is no org policy specified,
38759
- # then it will default to disabled. This field isn't supported with the purpose
38760
- # 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.
38761
39474
  # Corresponds to the JSON property `enableFlowLogs`
38762
39475
  # @return [Boolean]
38763
39476
  attr_accessor :enable_flow_logs
@@ -38861,12 +39574,19 @@ module Google
38861
39574
  # @return [String]
38862
39575
  attr_accessor :private_ipv6_google_access
38863
39576
 
38864
- # The purpose of the resource. This field can be either PRIVATE_RFC_1918 or
38865
- # INTERNAL_HTTPS_LOAD_BALANCER. A subnetwork with purpose set to
38866
- # INTERNAL_HTTPS_LOAD_BALANCER is a user-created subnetwork that is reserved for
38867
- # Internal HTTP(S) Load Balancing. If unspecified, the purpose defaults to
38868
- # PRIVATE_RFC_1918. The enableFlowLogs field isn't supported with the purpose
38869
- # 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.
38870
39590
  # Corresponds to the JSON property `purpose`
38871
39591
  # @return [String]
38872
39592
  attr_accessor :purpose
@@ -38883,11 +39603,10 @@ module Google
38883
39603
  attr_accessor :reserved_internal_range
38884
39604
 
38885
39605
  # The role of subnetwork. Currently, this field is only used when purpose =
38886
- # INTERNAL_HTTPS_LOAD_BALANCER. The value can be set to ACTIVE or BACKUP. An
38887
- # ACTIVE subnetwork is one that is currently being used for Internal HTTP(S)
38888
- # Load Balancing. A BACKUP subnetwork is one that is ready to be promoted to
38889
- # ACTIVE or is currently draining. This field can be updated with a patch
38890
- # 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.
38891
39610
  # Corresponds to the JSON property `role`
38892
39611
  # @return [String]
38893
39612
  attr_accessor :role
@@ -39215,7 +39934,8 @@ module Google
39215
39934
  # Whether to enable flow logging for this subnetwork. If this field is not
39216
39935
  # explicitly set, it will not appear in get listings. If not set the default
39217
39936
  # behavior is determined by the org policy, if there is no org policy specified,
39218
- # 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.
39219
39939
  # Corresponds to the JSON property `enable`
39220
39940
  # @return [Boolean]
39221
39941
  attr_accessor :enable
@@ -40905,6 +41625,12 @@ module Google
40905
41625
  # @return [String]
40906
41626
  attr_accessor :network
40907
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
+
40908
41634
  # [Output Only] Server-defined URL for the resource.
40909
41635
  # Corresponds to the JSON property `selfLink`
40910
41636
  # @return [String]
@@ -40931,6 +41657,7 @@ module Google
40931
41657
  @name = args[:name] if args.key?(:name)
40932
41658
  @nat_policy = args[:nat_policy] if args.key?(:nat_policy)
40933
41659
  @network = args[:network] if args.key?(:network)
41660
+ @security_policy = args[:security_policy] if args.key?(:security_policy)
40934
41661
  @self_link = args[:self_link] if args.key?(:self_link)
40935
41662
  @zone = args[:zone] if args.key?(:zone)
40936
41663
  end
@@ -41354,6 +42081,12 @@ module Google
41354
42081
  # @return [String]
41355
42082
  attr_accessor :region
41356
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
+
41357
42090
  # [Output Only] Server-defined URL for the resource.
41358
42091
  # Corresponds to the JSON property `selfLink`
41359
42092
  # @return [String]
@@ -41385,6 +42118,7 @@ module Google
41385
42118
  @kind = args[:kind] if args.key?(:kind)
41386
42119
  @name = args[:name] if args.key?(:name)
41387
42120
  @region = args[:region] if args.key?(:region)
42121
+ @security_policy = args[:security_policy] if args.key?(:security_policy)
41388
42122
  @self_link = args[:self_link] if args.key?(:self_link)
41389
42123
  @session_affinity = args[:session_affinity] if args.key?(:session_affinity)
41390
42124
  end
@@ -43997,22 +44731,28 @@ module Google
43997
44731
  # @return [String]
43998
44732
  attr_accessor :network
43999
44733
 
44000
- # The purpose of the resource. This field can be either PRIVATE_RFC_1918 or
44001
- # INTERNAL_HTTPS_LOAD_BALANCER. A subnetwork with purpose set to
44002
- # INTERNAL_HTTPS_LOAD_BALANCER is a user-created subnetwork that is reserved for
44003
- # Internal HTTP(S) Load Balancing. If unspecified, the purpose defaults to
44004
- # PRIVATE_RFC_1918. The enableFlowLogs field isn't supported with the purpose
44005
- # 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.
44006
44747
  # Corresponds to the JSON property `purpose`
44007
44748
  # @return [String]
44008
44749
  attr_accessor :purpose
44009
44750
 
44010
44751
  # The role of subnetwork. Currently, this field is only used when purpose =
44011
- # INTERNAL_HTTPS_LOAD_BALANCER. The value can be set to ACTIVE or BACKUP. An
44012
- # ACTIVE subnetwork is one that is currently being used for Internal HTTP(S)
44013
- # Load Balancing. A BACKUP subnetwork is one that is ready to be promoted to
44014
- # ACTIVE or is currently draining. This field can be updated with a patch
44015
- # 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.
44016
44756
  # Corresponds to the JSON property `role`
44017
44757
  # @return [String]
44018
44758
  attr_accessor :role
@@ -44905,7 +45645,7 @@ module Google
44905
45645
  attr_accessor :local_gateway_interface
44906
45646
 
44907
45647
  # The peer gateway interface this VPN tunnel is connected to, the peer gateway
44908
- # 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.
44909
45649
  # Corresponds to the JSON property `peerGatewayInterface`
44910
45650
  # @return [Fixnum]
44911
45651
  attr_accessor :peer_gateway_interface
@@ -44928,8 +45668,8 @@ module Google
44928
45668
  end
44929
45669
 
44930
45670
  # A VPN connection contains all VPN tunnels connected from this VpnGateway to
44931
- # the same peer gateway. The peer gateway could either be a external VPN gateway
44932
- # 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.
44933
45673
  class VpnGatewayStatusVpnConnection
44934
45674
  include Google::Apis::Core::Hashable
44935
45675