google-apis-compute_beta 0.66.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
@@ -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