google-apis-compute_v1 0.65.0 → 0.67.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -609,6 +609,25 @@ module Google
609
609
  # @return [String]
610
610
  attr_accessor :kind
611
611
 
612
+ # A fingerprint for the labels being applied to this Address, which is
613
+ # essentially a hash of the labels set used for optimistic locking. The
614
+ # fingerprint is initially generated by Compute Engine and changes after every
615
+ # request to modify or update labels. You must always provide an up-to-date
616
+ # fingerprint hash in order to update or change labels, otherwise the request
617
+ # will fail with error 412 conditionNotMet. To see the latest fingerprint, make
618
+ # a get() request to retrieve an Address.
619
+ # Corresponds to the JSON property `labelFingerprint`
620
+ # NOTE: Values are automatically base64 encoded/decoded in the client library.
621
+ # @return [String]
622
+ attr_accessor :label_fingerprint
623
+
624
+ # Labels for this resource. These can only be added or modified by the setLabels
625
+ # method. Each label key/value pair must comply with RFC1035. Label values may
626
+ # be empty.
627
+ # Corresponds to the JSON property `labels`
628
+ # @return [Hash<String,String>]
629
+ attr_accessor :labels
630
+
612
631
  # Name of the resource. Provided by the client when the resource is created. The
613
632
  # name must be 1-63 characters long, and comply with RFC1035. Specifically, the
614
633
  # name must be 1-63 characters long and match the regular expression `[a-z]([-a-
@@ -705,6 +724,8 @@ module Google
705
724
  @ip_version = args[:ip_version] if args.key?(:ip_version)
706
725
  @ipv6_endpoint_type = args[:ipv6_endpoint_type] if args.key?(:ipv6_endpoint_type)
707
726
  @kind = args[:kind] if args.key?(:kind)
727
+ @label_fingerprint = args[:label_fingerprint] if args.key?(:label_fingerprint)
728
+ @labels = args[:labels] if args.key?(:labels)
708
729
  @name = args[:name] if args.key?(:name)
709
730
  @network = args[:network] if args.key?(:network)
710
731
  @network_tier = args[:network_tier] if args.key?(:network_tier)
@@ -1526,6 +1547,21 @@ module Google
1526
1547
  # @return [Fixnum]
1527
1548
  attr_accessor :provisioned_iops
1528
1549
 
1550
+ # Indicates how much throughput to provision for the disk. This sets the number
1551
+ # of throughput mb per second that the disk can handle. Values must be between 1
1552
+ # and 7,124.
1553
+ # Corresponds to the JSON property `provisionedThroughput`
1554
+ # @return [Fixnum]
1555
+ attr_accessor :provisioned_throughput
1556
+
1557
+ # Required for each regional disk associated with the instance. Specify the URLs
1558
+ # of the zones where the disk should be replicated to. You must provide exactly
1559
+ # two replica zones, and one zone must be the same as the instance zone. You can'
1560
+ # t use this option with boot disks.
1561
+ # Corresponds to the JSON property `replicaZones`
1562
+ # @return [Array<String>]
1563
+ attr_accessor :replica_zones
1564
+
1529
1565
  # Resource manager tags to be bound to the disk. Tag keys and values have the
1530
1566
  # same definition as resource manager tags. Keys must be in the format `tagKeys/`
1531
1567
  # tag_key_id``, and values are in the format `tagValues/456`. The field is
@@ -1597,6 +1633,8 @@ module Google
1597
1633
  @licenses = args[:licenses] if args.key?(:licenses)
1598
1634
  @on_update_action = args[:on_update_action] if args.key?(:on_update_action)
1599
1635
  @provisioned_iops = args[:provisioned_iops] if args.key?(:provisioned_iops)
1636
+ @provisioned_throughput = args[:provisioned_throughput] if args.key?(:provisioned_throughput)
1637
+ @replica_zones = args[:replica_zones] if args.key?(:replica_zones)
1600
1638
  @resource_manager_tags = args[:resource_manager_tags] if args.key?(:resource_manager_tags)
1601
1639
  @resource_policies = args[:resource_policies] if args.key?(:resource_policies)
1602
1640
  @source_image = args[:source_image] if args.key?(:source_image)
@@ -3319,6 +3357,12 @@ module Google
3319
3357
  # @return [Google::Apis::ComputeV1::Duration]
3320
3358
  attr_accessor :max_stream_duration
3321
3359
 
3360
+ # Deployment metadata associated with the resource to be set by a GKE hub
3361
+ # controller and read by the backend RCTH
3362
+ # Corresponds to the JSON property `metadatas`
3363
+ # @return [Hash<String,String>]
3364
+ attr_accessor :metadatas
3365
+
3322
3366
  # Name of the resource. Provided by the client when the resource is created. The
3323
3367
  # name must be 1-63 characters long, and comply with RFC1035. Specifically, the
3324
3368
  # name must be 1-63 characters long and match the regular expression `[a-z]([-a-
@@ -3458,6 +3502,7 @@ module Google
3458
3502
  @locality_lb_policy = args[:locality_lb_policy] if args.key?(:locality_lb_policy)
3459
3503
  @log_config = args[:log_config] if args.key?(:log_config)
3460
3504
  @max_stream_duration = args[:max_stream_duration] if args.key?(:max_stream_duration)
3505
+ @metadatas = args[:metadatas] if args.key?(:metadatas)
3461
3506
  @name = args[:name] if args.key?(:name)
3462
3507
  @network = args[:network] if args.key?(:network)
3463
3508
  @outlier_detection = args[:outlier_detection] if args.key?(:outlier_detection)
@@ -5049,7 +5094,7 @@ module Google
5049
5094
  # @return [String]
5050
5095
  attr_accessor :self_link
5051
5096
 
5052
- # Source commitment to be splitted into a new commitment.
5097
+ # Source commitment to be split into a new commitment.
5053
5098
  # Corresponds to the JSON property `splitSourceCommitment`
5054
5099
  # @return [String]
5055
5100
  attr_accessor :split_source_commitment
@@ -5832,6 +5877,16 @@ module Google
5832
5877
  # @return [String]
5833
5878
  attr_accessor :architecture
5834
5879
 
5880
+ # Disk asynchronously replicated into this disk.
5881
+ # Corresponds to the JSON property `asyncPrimaryDisk`
5882
+ # @return [Google::Apis::ComputeV1::DiskAsyncReplication]
5883
+ attr_accessor :async_primary_disk
5884
+
5885
+ # [Output Only] A list of disks this disk is asynchronously replicated to.
5886
+ # Corresponds to the JSON property `asyncSecondaryDisks`
5887
+ # @return [Hash<String,Google::Apis::ComputeV1::DiskAsyncReplicationList>]
5888
+ attr_accessor :async_secondary_disks
5889
+
5835
5890
  # [Output Only] Creation timestamp in RFC3339 text format.
5836
5891
  # Corresponds to the JSON property `creationTimestamp`
5837
5892
  # @return [String]
@@ -5958,6 +6013,13 @@ module Google
5958
6013
  # @return [Fixnum]
5959
6014
  attr_accessor :provisioned_iops
5960
6015
 
6016
+ # Indicates how much throughput to provision for the disk. This sets the number
6017
+ # of throughput mb per second that the disk can handle. Values must be between 1
6018
+ # and 7,124.
6019
+ # Corresponds to the JSON property `provisionedThroughput`
6020
+ # @return [Fixnum]
6021
+ attr_accessor :provisioned_throughput
6022
+
5961
6023
  # [Output Only] URL of the region where the disk resides. Only applicable for
5962
6024
  # regional resources. You must specify this field as part of the HTTP request
5963
6025
  # URL. It is not settable as a field in the request body.
@@ -5976,6 +6038,11 @@ module Google
5976
6038
  # @return [Array<String>]
5977
6039
  attr_accessor :resource_policies
5978
6040
 
6041
+ # [Output Only] Status information for the disk resource.
6042
+ # Corresponds to the JSON property `resourceStatus`
6043
+ # @return [Google::Apis::ComputeV1::DiskResourceStatus]
6044
+ attr_accessor :resource_status
6045
+
5979
6046
  # [Output Only] Reserved for future use.
5980
6047
  # Corresponds to the JSON property `satisfiesPzs`
5981
6048
  # @return [Boolean]
@@ -5996,6 +6063,18 @@ module Google
5996
6063
  # @return [Fixnum]
5997
6064
  attr_accessor :size_gb
5998
6065
 
6066
+ # [Output Only] URL of the DiskConsistencyGroupPolicy for a secondary disk that
6067
+ # was created using a consistency group.
6068
+ # Corresponds to the JSON property `sourceConsistencyGroupPolicy`
6069
+ # @return [String]
6070
+ attr_accessor :source_consistency_group_policy
6071
+
6072
+ # [Output Only] ID of the DiskConsistencyGroupPolicy for a secondary disk that
6073
+ # was created using a consistency group.
6074
+ # Corresponds to the JSON property `sourceConsistencyGroupPolicyId`
6075
+ # @return [String]
6076
+ attr_accessor :source_consistency_group_policy_id
6077
+
5999
6078
  # The source disk used to create this disk. You can provide this as a partial or
6000
6079
  # full URL to the resource. For example, the following are valid values: - https:
6001
6080
  # //www.googleapis.com/compute/v1/projects/project/zones/zone /disks/disk -
@@ -6113,6 +6192,8 @@ module Google
6113
6192
  # Update properties of this object
6114
6193
  def update!(**args)
6115
6194
  @architecture = args[:architecture] if args.key?(:architecture)
6195
+ @async_primary_disk = args[:async_primary_disk] if args.key?(:async_primary_disk)
6196
+ @async_secondary_disks = args[:async_secondary_disks] if args.key?(:async_secondary_disks)
6116
6197
  @creation_timestamp = args[:creation_timestamp] if args.key?(:creation_timestamp)
6117
6198
  @description = args[:description] if args.key?(:description)
6118
6199
  @disk_encryption_key = args[:disk_encryption_key] if args.key?(:disk_encryption_key)
@@ -6131,12 +6212,16 @@ module Google
6131
6212
  @params = args[:params] if args.key?(:params)
6132
6213
  @physical_block_size_bytes = args[:physical_block_size_bytes] if args.key?(:physical_block_size_bytes)
6133
6214
  @provisioned_iops = args[:provisioned_iops] if args.key?(:provisioned_iops)
6215
+ @provisioned_throughput = args[:provisioned_throughput] if args.key?(:provisioned_throughput)
6134
6216
  @region = args[:region] if args.key?(:region)
6135
6217
  @replica_zones = args[:replica_zones] if args.key?(:replica_zones)
6136
6218
  @resource_policies = args[:resource_policies] if args.key?(:resource_policies)
6219
+ @resource_status = args[:resource_status] if args.key?(:resource_status)
6137
6220
  @satisfies_pzs = args[:satisfies_pzs] if args.key?(:satisfies_pzs)
6138
6221
  @self_link = args[:self_link] if args.key?(:self_link)
6139
6222
  @size_gb = args[:size_gb] if args.key?(:size_gb)
6223
+ @source_consistency_group_policy = args[:source_consistency_group_policy] if args.key?(:source_consistency_group_policy)
6224
+ @source_consistency_group_policy_id = args[:source_consistency_group_policy_id] if args.key?(:source_consistency_group_policy_id)
6140
6225
  @source_disk = args[:source_disk] if args.key?(:source_disk)
6141
6226
  @source_disk_id = args[:source_disk_id] if args.key?(:source_disk_id)
6142
6227
  @source_image = args[:source_image] if args.key?(:source_image)
@@ -6277,6 +6362,73 @@ module Google
6277
6362
  end
6278
6363
  end
6279
6364
 
6365
+ #
6366
+ class DiskAsyncReplication
6367
+ include Google::Apis::Core::Hashable
6368
+
6369
+ # [Output Only] URL of the DiskConsistencyGroupPolicy if replication was started
6370
+ # on the disk as a member of a group.
6371
+ # Corresponds to the JSON property `consistencyGroupPolicy`
6372
+ # @return [String]
6373
+ attr_accessor :consistency_group_policy
6374
+
6375
+ # [Output Only] ID of the DiskConsistencyGroupPolicy if replication was started
6376
+ # on the disk as a member of a group.
6377
+ # Corresponds to the JSON property `consistencyGroupPolicyId`
6378
+ # @return [String]
6379
+ attr_accessor :consistency_group_policy_id
6380
+
6381
+ # The other disk asynchronously replicated to or from the current disk. You can
6382
+ # provide this as a partial or full URL to the resource. For example, the
6383
+ # following are valid values: - https://www.googleapis.com/compute/v1/projects/
6384
+ # project/zones/zone /disks/disk - projects/project/zones/zone/disks/disk -
6385
+ # zones/zone/disks/disk
6386
+ # Corresponds to the JSON property `disk`
6387
+ # @return [String]
6388
+ attr_accessor :disk
6389
+
6390
+ # [Output Only] The unique ID of the other disk asynchronously replicated to or
6391
+ # from the current disk. This value identifies the exact disk that was used to
6392
+ # create this replication. For example, if you started replicating the
6393
+ # persistent disk from a disk that was later deleted and recreated under the
6394
+ # same name, the disk ID would identify the exact version of the disk that was
6395
+ # used.
6396
+ # Corresponds to the JSON property `diskId`
6397
+ # @return [String]
6398
+ attr_accessor :disk_id
6399
+
6400
+ def initialize(**args)
6401
+ update!(**args)
6402
+ end
6403
+
6404
+ # Update properties of this object
6405
+ def update!(**args)
6406
+ @consistency_group_policy = args[:consistency_group_policy] if args.key?(:consistency_group_policy)
6407
+ @consistency_group_policy_id = args[:consistency_group_policy_id] if args.key?(:consistency_group_policy_id)
6408
+ @disk = args[:disk] if args.key?(:disk)
6409
+ @disk_id = args[:disk_id] if args.key?(:disk_id)
6410
+ end
6411
+ end
6412
+
6413
+ #
6414
+ class DiskAsyncReplicationList
6415
+ include Google::Apis::Core::Hashable
6416
+
6417
+ #
6418
+ # Corresponds to the JSON property `asyncReplicationDisk`
6419
+ # @return [Google::Apis::ComputeV1::DiskAsyncReplication]
6420
+ attr_accessor :async_replication_disk
6421
+
6422
+ def initialize(**args)
6423
+ update!(**args)
6424
+ end
6425
+
6426
+ # Update properties of this object
6427
+ def update!(**args)
6428
+ @async_replication_disk = args[:async_replication_disk] if args.key?(:async_replication_disk)
6429
+ end
6430
+ end
6431
+
6280
6432
  # A specification of the desired way to instantiate a disk in the instance
6281
6433
  # template when its created from a source instance.
6282
6434
  class DiskInstantiationConfig
@@ -6497,6 +6649,50 @@ module Google
6497
6649
  end
6498
6650
  end
6499
6651
 
6652
+ #
6653
+ class DiskResourceStatus
6654
+ include Google::Apis::Core::Hashable
6655
+
6656
+ #
6657
+ # Corresponds to the JSON property `asyncPrimaryDisk`
6658
+ # @return [Google::Apis::ComputeV1::DiskResourceStatusAsyncReplicationStatus]
6659
+ attr_accessor :async_primary_disk
6660
+
6661
+ # Key: disk, value: AsyncReplicationStatus message
6662
+ # Corresponds to the JSON property `asyncSecondaryDisks`
6663
+ # @return [Hash<String,Google::Apis::ComputeV1::DiskResourceStatusAsyncReplicationStatus>]
6664
+ attr_accessor :async_secondary_disks
6665
+
6666
+ def initialize(**args)
6667
+ update!(**args)
6668
+ end
6669
+
6670
+ # Update properties of this object
6671
+ def update!(**args)
6672
+ @async_primary_disk = args[:async_primary_disk] if args.key?(:async_primary_disk)
6673
+ @async_secondary_disks = args[:async_secondary_disks] if args.key?(:async_secondary_disks)
6674
+ end
6675
+ end
6676
+
6677
+ #
6678
+ class DiskResourceStatusAsyncReplicationStatus
6679
+ include Google::Apis::Core::Hashable
6680
+
6681
+ #
6682
+ # Corresponds to the JSON property `state`
6683
+ # @return [String]
6684
+ attr_accessor :state
6685
+
6686
+ def initialize(**args)
6687
+ update!(**args)
6688
+ end
6689
+
6690
+ # Update properties of this object
6691
+ def update!(**args)
6692
+ @state = args[:state] if args.key?(:state)
6693
+ end
6694
+ end
6695
+
6500
6696
  # Represents a Disk Type resource. Google Compute Engine has two Disk Type
6501
6697
  # resources: * [Regional](/compute/docs/reference/rest/v1/regionDiskTypes) * [
6502
6698
  # Zonal](/compute/docs/reference/rest/v1/diskTypes) You can choose from a
@@ -8816,6 +9012,13 @@ module Google
8816
9012
  attr_accessor :allow_global_access
8817
9013
  alias_method :allow_global_access?, :allow_global_access
8818
9014
 
9015
+ # This is used in PSC consumer ForwardingRule to control whether the PSC
9016
+ # endpoint can be accessed from another region.
9017
+ # Corresponds to the JSON property `allowPscGlobalAccess`
9018
+ # @return [Boolean]
9019
+ attr_accessor :allow_psc_global_access
9020
+ alias_method :allow_psc_global_access?, :allow_psc_global_access
9021
+
8819
9022
  # Identifies the backend service to which the forwarding rule sends traffic.
8820
9023
  # Required for Internal TCP/UDP Load Balancing and Network Load Balancing; must
8821
9024
  # be omitted for all other load balancer types.
@@ -8941,9 +9144,11 @@ module Google
8941
9144
 
8942
9145
  # This field is not used for external load balancing. For Internal TCP/UDP Load
8943
9146
  # Balancing, this field identifies the network that the load balanced IP should
8944
- # belong to for this Forwarding Rule. If this field is not specified, the
8945
- # default network will be used. For Private Service Connect forwarding rules
8946
- # that forward traffic to Google APIs, a network must be provided.
9147
+ # belong to for this Forwarding Rule. If the subnetwork is specified, the
9148
+ # network of the subnetwork will be used. If neither subnetwork nor this field
9149
+ # is specified, the default network will be used. For Private Service Connect
9150
+ # forwarding rules that forward traffic to Google APIs, a network must be
9151
+ # provided.
8947
9152
  # Corresponds to the JSON property `network`
8948
9153
  # @return [String]
8949
9154
  attr_accessor :network
@@ -9090,6 +9295,7 @@ module Google
9090
9295
  @ip_protocol = args[:ip_protocol] if args.key?(:ip_protocol)
9091
9296
  @all_ports = args[:all_ports] if args.key?(:all_ports)
9092
9297
  @allow_global_access = args[:allow_global_access] if args.key?(:allow_global_access)
9298
+ @allow_psc_global_access = args[:allow_psc_global_access] if args.key?(:allow_psc_global_access)
9093
9299
  @backend_service = args[:backend_service] if args.key?(:backend_service)
9094
9300
  @base_forwarding_rule = args[:base_forwarding_rule] if args.key?(:base_forwarding_rule)
9095
9301
  @creation_timestamp = args[:creation_timestamp] if args.key?(:creation_timestamp)
@@ -9568,6 +9774,37 @@ module Google
9568
9774
  end
9569
9775
  end
9570
9776
 
9777
+ #
9778
+ class GlobalAddressesMoveRequest
9779
+ include Google::Apis::Core::Hashable
9780
+
9781
+ # An optional destination address description if intended to be different from
9782
+ # the source.
9783
+ # Corresponds to the JSON property `description`
9784
+ # @return [String]
9785
+ attr_accessor :description
9786
+
9787
+ # The URL of the destination address to move to. This can be a full or partial
9788
+ # URL. For example, the following are all valid URLs to a address: - https://www.
9789
+ # googleapis.com/compute/v1/projects/project /global/addresses/address -
9790
+ # projects/project/global/addresses/address Note that destination project must
9791
+ # be different from the source project. So /global/addresses/address is not
9792
+ # valid partial url.
9793
+ # Corresponds to the JSON property `destinationAddress`
9794
+ # @return [String]
9795
+ attr_accessor :destination_address
9796
+
9797
+ def initialize(**args)
9798
+ update!(**args)
9799
+ end
9800
+
9801
+ # Update properties of this object
9802
+ def update!(**args)
9803
+ @description = args[:description] if args.key?(:description)
9804
+ @destination_address = args[:destination_address] if args.key?(:destination_address)
9805
+ end
9806
+ end
9807
+
9571
9808
  #
9572
9809
  class GlobalNetworkEndpointGroupsAttachEndpointsRequest
9573
9810
  include Google::Apis::Core::Hashable
@@ -10133,12 +10370,12 @@ module Google
10133
10370
  # resources: * [Global](/compute/docs/reference/rest/v1/healthChecks) * [
10134
10371
  # Regional](/compute/docs/reference/rest/v1/regionHealthChecks) Internal HTTP(S)
10135
10372
  # load balancers must use regional health checks (`compute.v1.regionHealthChecks`
10136
- # ). Traffic Director must use global health checks (`compute.v1.HealthChecks`).
10373
+ # ). Traffic Director must use global health checks (`compute.v1.healthChecks`).
10137
10374
  # Internal TCP/UDP load balancers can use either regional or global health
10138
- # checks (`compute.v1.regionHealthChecks` or `compute.v1.HealthChecks`).
10375
+ # checks (`compute.v1.regionHealthChecks` or `compute.v1.healthChecks`).
10139
10376
  # External HTTP(S), TCP proxy, and SSL proxy load balancers as well as managed
10140
10377
  # instance group auto-healing must use global health checks (`compute.v1.
10141
- # HealthChecks`). Backend service-based network load balancers must use regional
10378
+ # healthChecks`). Backend service-based network load balancers must use regional
10142
10379
  # health checks (`compute.v1.regionHealthChecks`). Target pool-based network
10143
10380
  # load balancers must use legacy HTTP health checks (`compute.v1.
10144
10381
  # httpHealthChecks`). For more information, see Health checks overview.
@@ -12011,6 +12248,16 @@ module Google
12011
12248
  # @return [Array<Google::Apis::ComputeV1::MetadataFilter>]
12012
12249
  attr_accessor :metadata_filters
12013
12250
 
12251
+ # If specified, the route is a pattern match expression that must match the :
12252
+ # path header once the query string is removed. A pattern match allows you to
12253
+ # match - The value must be between 1 and 1024 characters - The pattern must
12254
+ # start with a leading slash ("/") - There may be no more than 5 operators in
12255
+ # pattern Precisely one of prefix_match, full_path_match, regex_match or
12256
+ # path_template_match must be set.
12257
+ # Corresponds to the JSON property `pathTemplateMatch`
12258
+ # @return [String]
12259
+ attr_accessor :path_template_match
12260
+
12014
12261
  # For satisfying the matchRule condition, the request's path must begin with the
12015
12262
  # specified prefixMatch. prefixMatch must begin with a /. The value must be from
12016
12263
  # 1 to 1024 characters. Only one of prefixMatch, fullPathMatch or regexMatch
@@ -12046,6 +12293,7 @@ module Google
12046
12293
  @header_matches = args[:header_matches] if args.key?(:header_matches)
12047
12294
  @ignore_case = args[:ignore_case] if args.key?(:ignore_case)
12048
12295
  @metadata_filters = args[:metadata_filters] if args.key?(:metadata_filters)
12296
+ @path_template_match = args[:path_template_match] if args.key?(:path_template_match)
12049
12297
  @prefix_match = args[:prefix_match] if args.key?(:prefix_match)
12050
12298
  @query_parameter_matches = args[:query_parameter_matches] if args.key?(:query_parameter_matches)
12051
12299
  @regex_match = args[:regex_match] if args.key?(:regex_match)
@@ -16755,6 +17003,25 @@ module Google
16755
17003
  # @return [String]
16756
17004
  attr_accessor :kind
16757
17005
 
17006
+ # A fingerprint for the labels being applied to this Interconnect, which is
17007
+ # essentially a hash of the labels set used for optimistic locking. The
17008
+ # fingerprint is initially generated by Compute Engine and changes after every
17009
+ # request to modify or update labels. You must always provide an up-to-date
17010
+ # fingerprint hash in order to update or change labels, otherwise the request
17011
+ # will fail with error 412 conditionNotMet. To see the latest fingerprint, make
17012
+ # a get() request to retrieve an Interconnect.
17013
+ # Corresponds to the JSON property `labelFingerprint`
17014
+ # NOTE: Values are automatically base64 encoded/decoded in the client library.
17015
+ # @return [String]
17016
+ attr_accessor :label_fingerprint
17017
+
17018
+ # Labels for this resource. These can only be added or modified by the setLabels
17019
+ # method. Each label key/value pair must comply with RFC1035. Label values may
17020
+ # be empty.
17021
+ # Corresponds to the JSON property `labels`
17022
+ # @return [Hash<String,String>]
17023
+ attr_accessor :labels
17024
+
16758
17025
  # Type of link requested, which can take one of the following values: -
16759
17026
  # LINK_TYPE_ETHERNET_10G_LR: A 10G Ethernet with LR optics -
16760
17027
  # LINK_TYPE_ETHERNET_100G_LR: A 100G Ethernet with LR optics. Note that this
@@ -16812,6 +17079,12 @@ module Google
16812
17079
  # @return [Fixnum]
16813
17080
  attr_accessor :provisioned_link_count
16814
17081
 
17082
+ # Indicates that this is a Cross-Cloud Interconnect. This field specifies the
17083
+ # location outside of Google's network that the interconnect is connected to.
17084
+ # Corresponds to the JSON property `remoteLocation`
17085
+ # @return [String]
17086
+ attr_accessor :remote_location
17087
+
16815
17088
  # Target number of physical links in the link bundle, as requested by the
16816
17089
  # customer.
16817
17090
  # Corresponds to the JSON property `requestedLinkCount`
@@ -16858,6 +17131,8 @@ module Google
16858
17131
  @interconnect_attachments = args[:interconnect_attachments] if args.key?(:interconnect_attachments)
16859
17132
  @interconnect_type = args[:interconnect_type] if args.key?(:interconnect_type)
16860
17133
  @kind = args[:kind] if args.key?(:kind)
17134
+ @label_fingerprint = args[:label_fingerprint] if args.key?(:label_fingerprint)
17135
+ @labels = args[:labels] if args.key?(:labels)
16861
17136
  @link_type = args[:link_type] if args.key?(:link_type)
16862
17137
  @location = args[:location] if args.key?(:location)
16863
17138
  @name = args[:name] if args.key?(:name)
@@ -16865,6 +17140,7 @@ module Google
16865
17140
  @operational_status = args[:operational_status] if args.key?(:operational_status)
16866
17141
  @peer_ip_address = args[:peer_ip_address] if args.key?(:peer_ip_address)
16867
17142
  @provisioned_link_count = args[:provisioned_link_count] if args.key?(:provisioned_link_count)
17143
+ @remote_location = args[:remote_location] if args.key?(:remote_location)
16868
17144
  @requested_link_count = args[:requested_link_count] if args.key?(:requested_link_count)
16869
17145
  @satisfies_pzs = args[:satisfies_pzs] if args.key?(:satisfies_pzs)
16870
17146
  @self_link = args[:self_link] if args.key?(:self_link)
@@ -16932,6 +17208,12 @@ module Google
16932
17208
  # @return [String]
16933
17209
  attr_accessor :cloud_router_ipv6_interface_id
16934
17210
 
17211
+ # [Output Only] Constraints for this attachment, if any. The attachment does not
17212
+ # work if these constraints are not met.
17213
+ # Corresponds to the JSON property `configurationConstraints`
17214
+ # @return [Google::Apis::ComputeV1::InterconnectAttachmentConfigurationConstraints]
17215
+ attr_accessor :configuration_constraints
17216
+
16935
17217
  # [Output Only] Creation timestamp in RFC3339 text format.
16936
17218
  # Corresponds to the JSON property `creationTimestamp`
16937
17219
  # @return [String]
@@ -17033,6 +17315,25 @@ module Google
17033
17315
  # @return [String]
17034
17316
  attr_accessor :kind
17035
17317
 
17318
+ # A fingerprint for the labels being applied to this InterconnectAttachment,
17319
+ # which is essentially a hash of the labels set used for optimistic locking. The
17320
+ # fingerprint is initially generated by Compute Engine and changes after every
17321
+ # request to modify or update labels. You must always provide an up-to-date
17322
+ # fingerprint hash in order to update or change labels, otherwise the request
17323
+ # will fail with error 412 conditionNotMet. To see the latest fingerprint, make
17324
+ # a get() request to retrieve an InterconnectAttachment.
17325
+ # Corresponds to the JSON property `labelFingerprint`
17326
+ # NOTE: Values are automatically base64 encoded/decoded in the client library.
17327
+ # @return [String]
17328
+ attr_accessor :label_fingerprint
17329
+
17330
+ # Labels for this resource. These can only be added or modified by the setLabels
17331
+ # method. Each label key/value pair must comply with RFC1035. Label values may
17332
+ # be empty.
17333
+ # Corresponds to the JSON property `labels`
17334
+ # @return [Hash<String,String>]
17335
+ attr_accessor :labels
17336
+
17036
17337
  # Maximum Transmission Unit (MTU), in bytes, of packets passing through this
17037
17338
  # interconnect attachment. Only 1440 and 1500 are allowed. If not specified, the
17038
17339
  # value will default to 1440.
@@ -17094,6 +17395,15 @@ module Google
17094
17395
  # @return [String]
17095
17396
  attr_accessor :region
17096
17397
 
17398
+ # [Output Only] If the attachment is on a Cross-Cloud Interconnect connection,
17399
+ # this field contains the interconnect's remote location service provider.
17400
+ # Example values: "Amazon Web Services" "Microsoft Azure". The field is set only
17401
+ # for attachments on Cross-Cloud Interconnect connections. Its value is copied
17402
+ # from the InterconnectRemoteLocation remoteService field.
17403
+ # Corresponds to the JSON property `remoteService`
17404
+ # @return [String]
17405
+ attr_accessor :remote_service
17406
+
17097
17407
  # URL of the Cloud Router to be used for dynamic routing. This router must be in
17098
17408
  # the same region as this InterconnectAttachment. The InterconnectAttachment
17099
17409
  # will automatically connect the Interconnect to the network & region within
@@ -17140,6 +17450,17 @@ module Google
17140
17450
  # @return [String]
17141
17451
  attr_accessor :state
17142
17452
 
17453
+ # Length of the IPv4 subnet mask. Allowed values: - 29 (default) - 30 The
17454
+ # default value is 29, except for Cross-Cloud Interconnect connections that use
17455
+ # an InterconnectRemoteLocation with a constraints.subnetLengthRange.min equal
17456
+ # to 30. For example, connections that use an Azure remote location fall into
17457
+ # this category. In these cases, the default value is 30, and requesting 29
17458
+ # returns an error. Where both 29 and 30 are allowed, 29 is preferred, because
17459
+ # it gives Google Cloud Support more debugging visibility.
17460
+ # Corresponds to the JSON property `subnetLength`
17461
+ # @return [Fixnum]
17462
+ attr_accessor :subnet_length
17463
+
17143
17464
  # The type of interconnect attachment this is, which can take one of the
17144
17465
  # following values: - DEDICATED: an attachment to a Dedicated Interconnect. -
17145
17466
  # PARTNER: an attachment to a Partner Interconnect, created by the customer. -
@@ -17168,6 +17489,7 @@ module Google
17168
17489
  @cloud_router_ip_address = args[:cloud_router_ip_address] if args.key?(:cloud_router_ip_address)
17169
17490
  @cloud_router_ipv6_address = args[:cloud_router_ipv6_address] if args.key?(:cloud_router_ipv6_address)
17170
17491
  @cloud_router_ipv6_interface_id = args[:cloud_router_ipv6_interface_id] if args.key?(:cloud_router_ipv6_interface_id)
17492
+ @configuration_constraints = args[:configuration_constraints] if args.key?(:configuration_constraints)
17171
17493
  @creation_timestamp = args[:creation_timestamp] if args.key?(:creation_timestamp)
17172
17494
  @customer_router_ip_address = args[:customer_router_ip_address] if args.key?(:customer_router_ip_address)
17173
17495
  @customer_router_ipv6_address = args[:customer_router_ipv6_address] if args.key?(:customer_router_ipv6_address)
@@ -17181,6 +17503,8 @@ module Google
17181
17503
  @interconnect = args[:interconnect] if args.key?(:interconnect)
17182
17504
  @ipsec_internal_addresses = args[:ipsec_internal_addresses] if args.key?(:ipsec_internal_addresses)
17183
17505
  @kind = args[:kind] if args.key?(:kind)
17506
+ @label_fingerprint = args[:label_fingerprint] if args.key?(:label_fingerprint)
17507
+ @labels = args[:labels] if args.key?(:labels)
17184
17508
  @mtu = args[:mtu] if args.key?(:mtu)
17185
17509
  @name = args[:name] if args.key?(:name)
17186
17510
  @operational_status = args[:operational_status] if args.key?(:operational_status)
@@ -17189,11 +17513,13 @@ module Google
17189
17513
  @partner_metadata = args[:partner_metadata] if args.key?(:partner_metadata)
17190
17514
  @private_interconnect_info = args[:private_interconnect_info] if args.key?(:private_interconnect_info)
17191
17515
  @region = args[:region] if args.key?(:region)
17516
+ @remote_service = args[:remote_service] if args.key?(:remote_service)
17192
17517
  @router = args[:router] if args.key?(:router)
17193
17518
  @satisfies_pzs = args[:satisfies_pzs] if args.key?(:satisfies_pzs)
17194
17519
  @self_link = args[:self_link] if args.key?(:self_link)
17195
17520
  @stack_type = args[:stack_type] if args.key?(:stack_type)
17196
17521
  @state = args[:state] if args.key?(:state)
17522
+ @subnet_length = args[:subnet_length] if args.key?(:subnet_length)
17197
17523
  @type = args[:type] if args.key?(:type)
17198
17524
  @vlan_tag8021q = args[:vlan_tag8021q] if args.key?(:vlan_tag8021q)
17199
17525
  end
@@ -17324,6 +17650,68 @@ module Google
17324
17650
  end
17325
17651
  end
17326
17652
 
17653
+ #
17654
+ class InterconnectAttachmentConfigurationConstraints
17655
+ include Google::Apis::Core::Hashable
17656
+
17657
+ # [Output Only] Whether the attachment's BGP session requires/allows/disallows
17658
+ # BGP MD5 authentication. This can take one of the following values:
17659
+ # MD5_OPTIONAL, MD5_REQUIRED, MD5_UNSUPPORTED. For example, a Cross-Cloud
17660
+ # Interconnect connection to a remote cloud provider that requires BGP MD5
17661
+ # authentication has the interconnectRemoteLocation
17662
+ # attachment_configuration_constraints.bgp_md5 field set to MD5_REQUIRED, and
17663
+ # that property is propagated to the attachment. Similarly, if BGP MD5 is
17664
+ # MD5_UNSUPPORTED, an error is returned if MD5 is requested.
17665
+ # Corresponds to the JSON property `bgpMd5`
17666
+ # @return [String]
17667
+ attr_accessor :bgp_md5
17668
+
17669
+ # [Output Only] List of ASN ranges that the remote location is known to support.
17670
+ # Formatted as an array of inclusive ranges `min: min-value, max: max-value`.
17671
+ # For example, [`min: 123, max: 123`, `min: 64512, max: 65534`] allows the peer
17672
+ # ASN to be 123 or anything in the range 64512-65534. This field is only
17673
+ # advisory. Although the API accepts other ranges, these are the ranges that we
17674
+ # recommend.
17675
+ # Corresponds to the JSON property `bgpPeerAsnRanges`
17676
+ # @return [Array<Google::Apis::ComputeV1::InterconnectAttachmentConfigurationConstraintsBgpPeerAsnRange>]
17677
+ attr_accessor :bgp_peer_asn_ranges
17678
+
17679
+ def initialize(**args)
17680
+ update!(**args)
17681
+ end
17682
+
17683
+ # Update properties of this object
17684
+ def update!(**args)
17685
+ @bgp_md5 = args[:bgp_md5] if args.key?(:bgp_md5)
17686
+ @bgp_peer_asn_ranges = args[:bgp_peer_asn_ranges] if args.key?(:bgp_peer_asn_ranges)
17687
+ end
17688
+ end
17689
+
17690
+ #
17691
+ class InterconnectAttachmentConfigurationConstraintsBgpPeerAsnRange
17692
+ include Google::Apis::Core::Hashable
17693
+
17694
+ #
17695
+ # Corresponds to the JSON property `max`
17696
+ # @return [Fixnum]
17697
+ attr_accessor :max
17698
+
17699
+ #
17700
+ # Corresponds to the JSON property `min`
17701
+ # @return [Fixnum]
17702
+ attr_accessor :min
17703
+
17704
+ def initialize(**args)
17705
+ update!(**args)
17706
+ end
17707
+
17708
+ # Update properties of this object
17709
+ def update!(**args)
17710
+ @max = args[:max] if args.key?(:max)
17711
+ @min = args[:min] if args.key?(:min)
17712
+ end
17713
+ end
17714
+
17327
17715
  # Response to the list request, and contains a list of interconnect attachments.
17328
17716
  class InterconnectAttachmentList
17329
17717
  include Google::Apis::Core::Hashable
@@ -18000,12 +18388,390 @@ module Google
18000
18388
  # @return [Fixnum]
18001
18389
  attr_accessor :id
18002
18390
 
18003
- # [Output Only] Type of the resource. Always compute#interconnectLocation for
18004
- # interconnect locations.
18391
+ # [Output Only] Type of the resource. Always compute#interconnectLocation for
18392
+ # interconnect locations.
18393
+ # Corresponds to the JSON property `kind`
18394
+ # @return [String]
18395
+ attr_accessor :kind
18396
+
18397
+ # [Output Only] Name of the resource.
18398
+ # Corresponds to the JSON property `name`
18399
+ # @return [String]
18400
+ attr_accessor :name
18401
+
18402
+ # [Output Only] The peeringdb identifier for this facility (corresponding with a
18403
+ # netfac type in peeringdb).
18404
+ # Corresponds to the JSON property `peeringdbFacilityId`
18405
+ # @return [String]
18406
+ attr_accessor :peeringdb_facility_id
18407
+
18408
+ # [Output Only] A list of InterconnectLocation.RegionInfo objects, that describe
18409
+ # parameters pertaining to the relation between this InterconnectLocation and
18410
+ # various Google Cloud regions.
18411
+ # Corresponds to the JSON property `regionInfos`
18412
+ # @return [Array<Google::Apis::ComputeV1::InterconnectLocationRegionInfo>]
18413
+ attr_accessor :region_infos
18414
+
18415
+ # [Output Only] Server-defined URL for the resource.
18416
+ # Corresponds to the JSON property `selfLink`
18417
+ # @return [String]
18418
+ attr_accessor :self_link
18419
+
18420
+ # [Output Only] The status of this InterconnectLocation, which can take one of
18421
+ # the following values: - CLOSED: The InterconnectLocation is closed and is
18422
+ # unavailable for provisioning new Interconnects. - AVAILABLE: The
18423
+ # InterconnectLocation is available for provisioning new Interconnects.
18424
+ # Corresponds to the JSON property `status`
18425
+ # @return [String]
18426
+ attr_accessor :status
18427
+
18428
+ # [Output Only] Reserved for future use.
18429
+ # Corresponds to the JSON property `supportsPzs`
18430
+ # @return [Boolean]
18431
+ attr_accessor :supports_pzs
18432
+ alias_method :supports_pzs?, :supports_pzs
18433
+
18434
+ def initialize(**args)
18435
+ update!(**args)
18436
+ end
18437
+
18438
+ # Update properties of this object
18439
+ def update!(**args)
18440
+ @address = args[:address] if args.key?(:address)
18441
+ @availability_zone = args[:availability_zone] if args.key?(:availability_zone)
18442
+ @city = args[:city] if args.key?(:city)
18443
+ @continent = args[:continent] if args.key?(:continent)
18444
+ @creation_timestamp = args[:creation_timestamp] if args.key?(:creation_timestamp)
18445
+ @description = args[:description] if args.key?(:description)
18446
+ @facility_provider = args[:facility_provider] if args.key?(:facility_provider)
18447
+ @facility_provider_facility_id = args[:facility_provider_facility_id] if args.key?(:facility_provider_facility_id)
18448
+ @id = args[:id] if args.key?(:id)
18449
+ @kind = args[:kind] if args.key?(:kind)
18450
+ @name = args[:name] if args.key?(:name)
18451
+ @peeringdb_facility_id = args[:peeringdb_facility_id] if args.key?(:peeringdb_facility_id)
18452
+ @region_infos = args[:region_infos] if args.key?(:region_infos)
18453
+ @self_link = args[:self_link] if args.key?(:self_link)
18454
+ @status = args[:status] if args.key?(:status)
18455
+ @supports_pzs = args[:supports_pzs] if args.key?(:supports_pzs)
18456
+ end
18457
+ end
18458
+
18459
+ # Response to the list request, and contains a list of interconnect locations.
18460
+ class InterconnectLocationList
18461
+ include Google::Apis::Core::Hashable
18462
+
18463
+ # [Output Only] Unique identifier for the resource; defined by the server.
18464
+ # Corresponds to the JSON property `id`
18465
+ # @return [String]
18466
+ attr_accessor :id
18467
+
18468
+ # A list of InterconnectLocation resources.
18469
+ # Corresponds to the JSON property `items`
18470
+ # @return [Array<Google::Apis::ComputeV1::InterconnectLocation>]
18471
+ attr_accessor :items
18472
+
18473
+ # [Output Only] Type of resource. Always compute#interconnectLocationList for
18474
+ # lists of interconnect locations.
18475
+ # Corresponds to the JSON property `kind`
18476
+ # @return [String]
18477
+ attr_accessor :kind
18478
+
18479
+ # [Output Only] This token allows you to get the next page of results for list
18480
+ # requests. If the number of results is larger than maxResults, use the
18481
+ # nextPageToken as a value for the query parameter pageToken in the next list
18482
+ # request. Subsequent list requests will have their own nextPageToken to
18483
+ # continue paging through the results.
18484
+ # Corresponds to the JSON property `nextPageToken`
18485
+ # @return [String]
18486
+ attr_accessor :next_page_token
18487
+
18488
+ # [Output Only] Server-defined URL for this resource.
18489
+ # Corresponds to the JSON property `selfLink`
18490
+ # @return [String]
18491
+ attr_accessor :self_link
18492
+
18493
+ # [Output Only] Informational warning message.
18494
+ # Corresponds to the JSON property `warning`
18495
+ # @return [Google::Apis::ComputeV1::InterconnectLocationList::Warning]
18496
+ attr_accessor :warning
18497
+
18498
+ def initialize(**args)
18499
+ update!(**args)
18500
+ end
18501
+
18502
+ # Update properties of this object
18503
+ def update!(**args)
18504
+ @id = args[:id] if args.key?(:id)
18505
+ @items = args[:items] if args.key?(:items)
18506
+ @kind = args[:kind] if args.key?(:kind)
18507
+ @next_page_token = args[:next_page_token] if args.key?(:next_page_token)
18508
+ @self_link = args[:self_link] if args.key?(:self_link)
18509
+ @warning = args[:warning] if args.key?(:warning)
18510
+ end
18511
+
18512
+ # [Output Only] Informational warning message.
18513
+ class Warning
18514
+ include Google::Apis::Core::Hashable
18515
+
18516
+ # [Output Only] A warning code, if applicable. For example, Compute Engine
18517
+ # returns NO_RESULTS_ON_PAGE if there are no results in the response.
18518
+ # Corresponds to the JSON property `code`
18519
+ # @return [String]
18520
+ attr_accessor :code
18521
+
18522
+ # [Output Only] Metadata about this warning in key: value format. For example: "
18523
+ # data": [ ` "key": "scope", "value": "zones/us-east1-d" `
18524
+ # Corresponds to the JSON property `data`
18525
+ # @return [Array<Google::Apis::ComputeV1::InterconnectLocationList::Warning::Datum>]
18526
+ attr_accessor :data
18527
+
18528
+ # [Output Only] A human-readable description of the warning code.
18529
+ # Corresponds to the JSON property `message`
18530
+ # @return [String]
18531
+ attr_accessor :message
18532
+
18533
+ def initialize(**args)
18534
+ update!(**args)
18535
+ end
18536
+
18537
+ # Update properties of this object
18538
+ def update!(**args)
18539
+ @code = args[:code] if args.key?(:code)
18540
+ @data = args[:data] if args.key?(:data)
18541
+ @message = args[:message] if args.key?(:message)
18542
+ end
18543
+
18544
+ #
18545
+ class Datum
18546
+ include Google::Apis::Core::Hashable
18547
+
18548
+ # [Output Only] A key that provides more detail on the warning being returned.
18549
+ # For example, for warnings where there are no results in a list request for a
18550
+ # particular zone, this key might be scope and the key value might be the zone
18551
+ # name. Other examples might be a key indicating a deprecated resource and a
18552
+ # suggested replacement, or a warning about invalid network settings (for
18553
+ # example, if an instance attempts to perform IP forwarding but is not enabled
18554
+ # for IP forwarding).
18555
+ # Corresponds to the JSON property `key`
18556
+ # @return [String]
18557
+ attr_accessor :key
18558
+
18559
+ # [Output Only] A warning data value corresponding to the key.
18560
+ # Corresponds to the JSON property `value`
18561
+ # @return [String]
18562
+ attr_accessor :value
18563
+
18564
+ def initialize(**args)
18565
+ update!(**args)
18566
+ end
18567
+
18568
+ # Update properties of this object
18569
+ def update!(**args)
18570
+ @key = args[:key] if args.key?(:key)
18571
+ @value = args[:value] if args.key?(:value)
18572
+ end
18573
+ end
18574
+ end
18575
+ end
18576
+
18577
+ # Information about any potential InterconnectAttachments between an
18578
+ # Interconnect at a specific InterconnectLocation, and a specific Cloud Region.
18579
+ class InterconnectLocationRegionInfo
18580
+ include Google::Apis::Core::Hashable
18581
+
18582
+ # Expected round-trip time in milliseconds, from this InterconnectLocation to a
18583
+ # VM in this region.
18584
+ # Corresponds to the JSON property `expectedRttMs`
18585
+ # @return [Fixnum]
18586
+ attr_accessor :expected_rtt_ms
18587
+
18588
+ # Identifies the network presence of this location.
18589
+ # Corresponds to the JSON property `locationPresence`
18590
+ # @return [String]
18591
+ attr_accessor :location_presence
18592
+
18593
+ # URL for the region of this location.
18594
+ # Corresponds to the JSON property `region`
18595
+ # @return [String]
18596
+ attr_accessor :region
18597
+
18598
+ def initialize(**args)
18599
+ update!(**args)
18600
+ end
18601
+
18602
+ # Update properties of this object
18603
+ def update!(**args)
18604
+ @expected_rtt_ms = args[:expected_rtt_ms] if args.key?(:expected_rtt_ms)
18605
+ @location_presence = args[:location_presence] if args.key?(:location_presence)
18606
+ @region = args[:region] if args.key?(:region)
18607
+ end
18608
+ end
18609
+
18610
+ # Description of a planned outage on this Interconnect.
18611
+ class InterconnectOutageNotification
18612
+ include Google::Apis::Core::Hashable
18613
+
18614
+ # If issue_type is IT_PARTIAL_OUTAGE, a list of the Google-side circuit IDs that
18615
+ # will be affected.
18616
+ # Corresponds to the JSON property `affectedCircuits`
18617
+ # @return [Array<String>]
18618
+ attr_accessor :affected_circuits
18619
+
18620
+ # A description about the purpose of the outage.
18621
+ # Corresponds to the JSON property `description`
18622
+ # @return [String]
18623
+ attr_accessor :description
18624
+
18625
+ # Scheduled end time for the outage (milliseconds since Unix epoch).
18626
+ # Corresponds to the JSON property `endTime`
18627
+ # @return [Fixnum]
18628
+ attr_accessor :end_time
18629
+
18630
+ # Form this outage is expected to take, which can take one of the following
18631
+ # values: - OUTAGE: The Interconnect may be completely out of service for some
18632
+ # or all of the specified window. - PARTIAL_OUTAGE: Some circuits comprising the
18633
+ # Interconnect as a whole should remain up, but with reduced bandwidth. Note
18634
+ # that the versions of this enum prefixed with "IT_" have been deprecated in
18635
+ # favor of the unprefixed values.
18636
+ # Corresponds to the JSON property `issueType`
18637
+ # @return [String]
18638
+ attr_accessor :issue_type
18639
+
18640
+ # Unique identifier for this outage notification.
18641
+ # Corresponds to the JSON property `name`
18642
+ # @return [String]
18643
+ attr_accessor :name
18644
+
18645
+ # The party that generated this notification, which can take the following value:
18646
+ # - GOOGLE: this notification as generated by Google. Note that the value of
18647
+ # NSRC_GOOGLE has been deprecated in favor of GOOGLE.
18648
+ # Corresponds to the JSON property `source`
18649
+ # @return [String]
18650
+ attr_accessor :source
18651
+
18652
+ # Scheduled start time for the outage (milliseconds since Unix epoch).
18653
+ # Corresponds to the JSON property `startTime`
18654
+ # @return [Fixnum]
18655
+ attr_accessor :start_time
18656
+
18657
+ # State of this notification, which can take one of the following values: -
18658
+ # ACTIVE: This outage notification is active. The event could be in the past,
18659
+ # present, or future. See start_time and end_time for scheduling. - CANCELLED:
18660
+ # The outage associated with this notification was cancelled before the outage
18661
+ # was due to start. - COMPLETED: The outage associated with this notification is
18662
+ # complete. Note that the versions of this enum prefixed with "NS_" have been
18663
+ # deprecated in favor of the unprefixed values.
18664
+ # Corresponds to the JSON property `state`
18665
+ # @return [String]
18666
+ attr_accessor :state
18667
+
18668
+ def initialize(**args)
18669
+ update!(**args)
18670
+ end
18671
+
18672
+ # Update properties of this object
18673
+ def update!(**args)
18674
+ @affected_circuits = args[:affected_circuits] if args.key?(:affected_circuits)
18675
+ @description = args[:description] if args.key?(:description)
18676
+ @end_time = args[:end_time] if args.key?(:end_time)
18677
+ @issue_type = args[:issue_type] if args.key?(:issue_type)
18678
+ @name = args[:name] if args.key?(:name)
18679
+ @source = args[:source] if args.key?(:source)
18680
+ @start_time = args[:start_time] if args.key?(:start_time)
18681
+ @state = args[:state] if args.key?(:state)
18682
+ end
18683
+ end
18684
+
18685
+ # Represents a Cross-Cloud Interconnect Remote Location resource. You can use
18686
+ # this resource to find remote location details about an Interconnect attachment
18687
+ # (VLAN).
18688
+ class InterconnectRemoteLocation
18689
+ include Google::Apis::Core::Hashable
18690
+
18691
+ # [Output Only] The postal address of the Point of Presence, each line in the
18692
+ # address is separated by a newline character.
18693
+ # Corresponds to the JSON property `address`
18694
+ # @return [String]
18695
+ attr_accessor :address
18696
+
18697
+ # [Output Only] Subset of fields from InterconnectAttachment's |
18698
+ # configurationConstraints| field that apply to all attachments for this remote
18699
+ # location.
18700
+ # Corresponds to the JSON property `attachmentConfigurationConstraints`
18701
+ # @return [Google::Apis::ComputeV1::InterconnectAttachmentConfigurationConstraints]
18702
+ attr_accessor :attachment_configuration_constraints
18703
+
18704
+ # [Output Only] Metropolitan area designator that indicates which city an
18705
+ # interconnect is located. For example: "Chicago, IL", "Amsterdam, Netherlands".
18706
+ # Corresponds to the JSON property `city`
18707
+ # @return [String]
18708
+ attr_accessor :city
18709
+
18710
+ # [Output Only] Constraints on the parameters for creating Cross-Cloud
18711
+ # Interconnect and associated InterconnectAttachments.
18712
+ # Corresponds to the JSON property `constraints`
18713
+ # @return [Google::Apis::ComputeV1::InterconnectRemoteLocationConstraints]
18714
+ attr_accessor :constraints
18715
+
18716
+ # [Output Only] Continent for this location, which can take one of the following
18717
+ # values: - AFRICA - ASIA_PAC - EUROPE - NORTH_AMERICA - SOUTH_AMERICA
18718
+ # Corresponds to the JSON property `continent`
18719
+ # @return [String]
18720
+ attr_accessor :continent
18721
+
18722
+ # [Output Only] Creation timestamp in RFC3339 text format.
18723
+ # Corresponds to the JSON property `creationTimestamp`
18724
+ # @return [String]
18725
+ attr_accessor :creation_timestamp
18726
+
18727
+ # [Output Only] An optional description of the resource.
18728
+ # Corresponds to the JSON property `description`
18729
+ # @return [String]
18730
+ attr_accessor :description
18731
+
18732
+ # [Output Only] The name of the provider for this facility (e.g., EQUINIX).
18733
+ # Corresponds to the JSON property `facilityProvider`
18734
+ # @return [String]
18735
+ attr_accessor :facility_provider
18736
+
18737
+ # [Output Only] A provider-assigned Identifier for this facility (e.g., Ashburn-
18738
+ # DC1).
18739
+ # Corresponds to the JSON property `facilityProviderFacilityId`
18740
+ # @return [String]
18741
+ attr_accessor :facility_provider_facility_id
18742
+
18743
+ # [Output Only] The unique identifier for the resource. This identifier is
18744
+ # defined by the server.
18745
+ # Corresponds to the JSON property `id`
18746
+ # @return [Fixnum]
18747
+ attr_accessor :id
18748
+
18749
+ # [Output Only] Type of the resource. Always compute#interconnectRemoteLocation
18750
+ # for interconnect remote locations.
18005
18751
  # Corresponds to the JSON property `kind`
18006
18752
  # @return [String]
18007
18753
  attr_accessor :kind
18008
18754
 
18755
+ # [Output Only] Link Aggregation Control Protocol (LACP) constraints, which can
18756
+ # take one of the following values: LACP_SUPPORTED, LACP_UNSUPPORTED
18757
+ # Corresponds to the JSON property `lacp`
18758
+ # @return [String]
18759
+ attr_accessor :lacp
18760
+
18761
+ # [Output Only] The maximum number of 100 Gbps ports supported in a link
18762
+ # aggregation group (LAG). When linkType is 100 Gbps, requestedLinkCount cannot
18763
+ # exceed max_lag_size_100_gbps.
18764
+ # Corresponds to the JSON property `maxLagSize100Gbps`
18765
+ # @return [Fixnum]
18766
+ attr_accessor :max_lag_size100_gbps
18767
+
18768
+ # [Output Only] The maximum number of 10 Gbps ports supported in a link
18769
+ # aggregation group (LAG). When linkType is 10 Gbps, requestedLinkCount cannot
18770
+ # exceed max_lag_size_10_gbps.
18771
+ # Corresponds to the JSON property `maxLagSize10Gbps`
18772
+ # @return [Fixnum]
18773
+ attr_accessor :max_lag_size10_gbps
18774
+
18009
18775
  # [Output Only] Name of the resource.
18010
18776
  # Corresponds to the JSON property `name`
18011
18777
  # @return [String]
@@ -18017,32 +18783,31 @@ module Google
18017
18783
  # @return [String]
18018
18784
  attr_accessor :peeringdb_facility_id
18019
18785
 
18020
- # [Output Only] A list of InterconnectLocation.RegionInfo objects, that describe
18021
- # parameters pertaining to the relation between this InterconnectLocation and
18022
- # various Google Cloud regions.
18023
- # Corresponds to the JSON property `regionInfos`
18024
- # @return [Array<Google::Apis::ComputeV1::InterconnectLocationRegionInfo>]
18025
- attr_accessor :region_infos
18786
+ # [Output Only] Permitted connections.
18787
+ # Corresponds to the JSON property `permittedConnections`
18788
+ # @return [Array<Google::Apis::ComputeV1::InterconnectRemoteLocationPermittedConnections>]
18789
+ attr_accessor :permitted_connections
18790
+
18791
+ # [Output Only] Indicates the service provider present at the remote location.
18792
+ # Example values: "Amazon Web Services", "Microsoft Azure".
18793
+ # Corresponds to the JSON property `remoteService`
18794
+ # @return [String]
18795
+ attr_accessor :remote_service
18026
18796
 
18027
18797
  # [Output Only] Server-defined URL for the resource.
18028
18798
  # Corresponds to the JSON property `selfLink`
18029
18799
  # @return [String]
18030
18800
  attr_accessor :self_link
18031
18801
 
18032
- # [Output Only] The status of this InterconnectLocation, which can take one of
18033
- # the following values: - CLOSED: The InterconnectLocation is closed and is
18034
- # unavailable for provisioning new Interconnects. - AVAILABLE: The
18035
- # InterconnectLocation is available for provisioning new Interconnects.
18802
+ # [Output Only] The status of this InterconnectRemoteLocation, which can take
18803
+ # one of the following values: - CLOSED: The InterconnectRemoteLocation is
18804
+ # closed and is unavailable for provisioning new Cross-Cloud Interconnects. -
18805
+ # AVAILABLE: The InterconnectRemoteLocation is available for provisioning new
18806
+ # Cross-Cloud Interconnects.
18036
18807
  # Corresponds to the JSON property `status`
18037
18808
  # @return [String]
18038
18809
  attr_accessor :status
18039
18810
 
18040
- # [Output Only] Reserved for future use.
18041
- # Corresponds to the JSON property `supportsPzs`
18042
- # @return [Boolean]
18043
- attr_accessor :supports_pzs
18044
- alias_method :supports_pzs?, :supports_pzs
18045
-
18046
18811
  def initialize(**args)
18047
18812
  update!(**args)
18048
18813
  end
@@ -18050,8 +18815,9 @@ module Google
18050
18815
  # Update properties of this object
18051
18816
  def update!(**args)
18052
18817
  @address = args[:address] if args.key?(:address)
18053
- @availability_zone = args[:availability_zone] if args.key?(:availability_zone)
18818
+ @attachment_configuration_constraints = args[:attachment_configuration_constraints] if args.key?(:attachment_configuration_constraints)
18054
18819
  @city = args[:city] if args.key?(:city)
18820
+ @constraints = args[:constraints] if args.key?(:constraints)
18055
18821
  @continent = args[:continent] if args.key?(:continent)
18056
18822
  @creation_timestamp = args[:creation_timestamp] if args.key?(:creation_timestamp)
18057
18823
  @description = args[:description] if args.key?(:description)
@@ -18059,17 +18825,92 @@ module Google
18059
18825
  @facility_provider_facility_id = args[:facility_provider_facility_id] if args.key?(:facility_provider_facility_id)
18060
18826
  @id = args[:id] if args.key?(:id)
18061
18827
  @kind = args[:kind] if args.key?(:kind)
18828
+ @lacp = args[:lacp] if args.key?(:lacp)
18829
+ @max_lag_size100_gbps = args[:max_lag_size100_gbps] if args.key?(:max_lag_size100_gbps)
18830
+ @max_lag_size10_gbps = args[:max_lag_size10_gbps] if args.key?(:max_lag_size10_gbps)
18062
18831
  @name = args[:name] if args.key?(:name)
18063
18832
  @peeringdb_facility_id = args[:peeringdb_facility_id] if args.key?(:peeringdb_facility_id)
18064
- @region_infos = args[:region_infos] if args.key?(:region_infos)
18833
+ @permitted_connections = args[:permitted_connections] if args.key?(:permitted_connections)
18834
+ @remote_service = args[:remote_service] if args.key?(:remote_service)
18065
18835
  @self_link = args[:self_link] if args.key?(:self_link)
18066
18836
  @status = args[:status] if args.key?(:status)
18067
- @supports_pzs = args[:supports_pzs] if args.key?(:supports_pzs)
18068
18837
  end
18069
18838
  end
18070
18839
 
18071
- # Response to the list request, and contains a list of interconnect locations.
18072
- class InterconnectLocationList
18840
+ #
18841
+ class InterconnectRemoteLocationConstraints
18842
+ include Google::Apis::Core::Hashable
18843
+
18844
+ # [Output Only] Port pair remote location constraints, which can take one of the
18845
+ # following values: PORT_PAIR_UNCONSTRAINED_REMOTE_LOCATION,
18846
+ # PORT_PAIR_MATCHING_REMOTE_LOCATION. GCP's API refers only to individual ports,
18847
+ # but the UI uses this field when ordering a pair of ports, to prevent users
18848
+ # from accidentally ordering something that is incompatible with their cloud
18849
+ # provider. Specifically, when ordering a redundant pair of Cross-Cloud
18850
+ # Interconnect ports, and one of them uses a remote location with
18851
+ # portPairMatchingRemoteLocation set to matching, the UI requires that both
18852
+ # ports use the same remote location.
18853
+ # Corresponds to the JSON property `portPairRemoteLocation`
18854
+ # @return [String]
18855
+ attr_accessor :port_pair_remote_location
18856
+
18857
+ # [Output Only] Port pair VLAN constraints, which can take one of the following
18858
+ # values: PORT_PAIR_UNCONSTRAINED_VLAN, PORT_PAIR_MATCHING_VLAN
18859
+ # Corresponds to the JSON property `portPairVlan`
18860
+ # @return [String]
18861
+ attr_accessor :port_pair_vlan
18862
+
18863
+ # [Output Only] [min-length, max-length] The minimum and maximum value (
18864
+ # inclusive) for the IPv4 subnet length. For example, an
18865
+ # interconnectRemoteLocation for Azure has `min: 30, max: 30` because Azure
18866
+ # requires /30 subnets. This range specifies the values supported by both cloud
18867
+ # providers. Interconnect currently supports /29 and /30 IPv4 subnet lengths. If
18868
+ # a remote cloud has no constraint on IPv4 subnet length, the range would thus
18869
+ # be `min: 29, max: 30`.
18870
+ # Corresponds to the JSON property `subnetLengthRange`
18871
+ # @return [Google::Apis::ComputeV1::InterconnectRemoteLocationConstraintsSubnetLengthRange]
18872
+ attr_accessor :subnet_length_range
18873
+
18874
+ def initialize(**args)
18875
+ update!(**args)
18876
+ end
18877
+
18878
+ # Update properties of this object
18879
+ def update!(**args)
18880
+ @port_pair_remote_location = args[:port_pair_remote_location] if args.key?(:port_pair_remote_location)
18881
+ @port_pair_vlan = args[:port_pair_vlan] if args.key?(:port_pair_vlan)
18882
+ @subnet_length_range = args[:subnet_length_range] if args.key?(:subnet_length_range)
18883
+ end
18884
+ end
18885
+
18886
+ #
18887
+ class InterconnectRemoteLocationConstraintsSubnetLengthRange
18888
+ include Google::Apis::Core::Hashable
18889
+
18890
+ #
18891
+ # Corresponds to the JSON property `max`
18892
+ # @return [Fixnum]
18893
+ attr_accessor :max
18894
+
18895
+ #
18896
+ # Corresponds to the JSON property `min`
18897
+ # @return [Fixnum]
18898
+ attr_accessor :min
18899
+
18900
+ def initialize(**args)
18901
+ update!(**args)
18902
+ end
18903
+
18904
+ # Update properties of this object
18905
+ def update!(**args)
18906
+ @max = args[:max] if args.key?(:max)
18907
+ @min = args[:min] if args.key?(:min)
18908
+ end
18909
+ end
18910
+
18911
+ # Response to the list request, and contains a list of interconnect remote
18912
+ # locations.
18913
+ class InterconnectRemoteLocationList
18073
18914
  include Google::Apis::Core::Hashable
18074
18915
 
18075
18916
  # [Output Only] Unique identifier for the resource; defined by the server.
@@ -18077,18 +18918,18 @@ module Google
18077
18918
  # @return [String]
18078
18919
  attr_accessor :id
18079
18920
 
18080
- # A list of InterconnectLocation resources.
18921
+ # A list of InterconnectRemoteLocation resources.
18081
18922
  # Corresponds to the JSON property `items`
18082
- # @return [Array<Google::Apis::ComputeV1::InterconnectLocation>]
18923
+ # @return [Array<Google::Apis::ComputeV1::InterconnectRemoteLocation>]
18083
18924
  attr_accessor :items
18084
18925
 
18085
- # [Output Only] Type of resource. Always compute#interconnectLocationList for
18086
- # lists of interconnect locations.
18926
+ # [Output Only] Type of resource. Always compute#interconnectRemoteLocationList
18927
+ # for lists of interconnect remote locations.
18087
18928
  # Corresponds to the JSON property `kind`
18088
18929
  # @return [String]
18089
18930
  attr_accessor :kind
18090
18931
 
18091
- # [Output Only] This token allows you to get the next page of results for list
18932
+ # [Output Only] This token lets you get the next page of results for list
18092
18933
  # requests. If the number of results is larger than maxResults, use the
18093
18934
  # nextPageToken as a value for the query parameter pageToken in the next list
18094
18935
  # request. Subsequent list requests will have their own nextPageToken to
@@ -18104,7 +18945,7 @@ module Google
18104
18945
 
18105
18946
  # [Output Only] Informational warning message.
18106
18947
  # Corresponds to the JSON property `warning`
18107
- # @return [Google::Apis::ComputeV1::InterconnectLocationList::Warning]
18948
+ # @return [Google::Apis::ComputeV1::InterconnectRemoteLocationList::Warning]
18108
18949
  attr_accessor :warning
18109
18950
 
18110
18951
  def initialize(**args)
@@ -18134,7 +18975,7 @@ module Google
18134
18975
  # [Output Only] Metadata about this warning in key: value format. For example: "
18135
18976
  # data": [ ` "key": "scope", "value": "zones/us-east1-d" `
18136
18977
  # Corresponds to the JSON property `data`
18137
- # @return [Array<Google::Apis::ComputeV1::InterconnectLocationList::Warning::Datum>]
18978
+ # @return [Array<Google::Apis::ComputeV1::InterconnectRemoteLocationList::Warning::Datum>]
18138
18979
  attr_accessor :data
18139
18980
 
18140
18981
  # [Output Only] A human-readable description of the warning code.
@@ -18186,26 +19027,15 @@ module Google
18186
19027
  end
18187
19028
  end
18188
19029
 
18189
- # Information about any potential InterconnectAttachments between an
18190
- # Interconnect at a specific InterconnectLocation, and a specific Cloud Region.
18191
- class InterconnectLocationRegionInfo
19030
+ #
19031
+ class InterconnectRemoteLocationPermittedConnections
18192
19032
  include Google::Apis::Core::Hashable
18193
19033
 
18194
- # Expected round-trip time in milliseconds, from this InterconnectLocation to a
18195
- # VM in this region.
18196
- # Corresponds to the JSON property `expectedRttMs`
18197
- # @return [Fixnum]
18198
- attr_accessor :expected_rtt_ms
18199
-
18200
- # Identifies the network presence of this location.
18201
- # Corresponds to the JSON property `locationPresence`
19034
+ # [Output Only] URL of an Interconnect location that is permitted to connect to
19035
+ # this Interconnect remote location.
19036
+ # Corresponds to the JSON property `interconnectLocation`
18202
19037
  # @return [String]
18203
- attr_accessor :location_presence
18204
-
18205
- # URL for the region of this location.
18206
- # Corresponds to the JSON property `region`
18207
- # @return [String]
18208
- attr_accessor :region
19038
+ attr_accessor :interconnect_location
18209
19039
 
18210
19040
  def initialize(**args)
18211
19041
  update!(**args)
@@ -18213,84 +19043,7 @@ module Google
18213
19043
 
18214
19044
  # Update properties of this object
18215
19045
  def update!(**args)
18216
- @expected_rtt_ms = args[:expected_rtt_ms] if args.key?(:expected_rtt_ms)
18217
- @location_presence = args[:location_presence] if args.key?(:location_presence)
18218
- @region = args[:region] if args.key?(:region)
18219
- end
18220
- end
18221
-
18222
- # Description of a planned outage on this Interconnect.
18223
- class InterconnectOutageNotification
18224
- include Google::Apis::Core::Hashable
18225
-
18226
- # If issue_type is IT_PARTIAL_OUTAGE, a list of the Google-side circuit IDs that
18227
- # will be affected.
18228
- # Corresponds to the JSON property `affectedCircuits`
18229
- # @return [Array<String>]
18230
- attr_accessor :affected_circuits
18231
-
18232
- # A description about the purpose of the outage.
18233
- # Corresponds to the JSON property `description`
18234
- # @return [String]
18235
- attr_accessor :description
18236
-
18237
- # Scheduled end time for the outage (milliseconds since Unix epoch).
18238
- # Corresponds to the JSON property `endTime`
18239
- # @return [Fixnum]
18240
- attr_accessor :end_time
18241
-
18242
- # Form this outage is expected to take, which can take one of the following
18243
- # values: - OUTAGE: The Interconnect may be completely out of service for some
18244
- # or all of the specified window. - PARTIAL_OUTAGE: Some circuits comprising the
18245
- # Interconnect as a whole should remain up, but with reduced bandwidth. Note
18246
- # that the versions of this enum prefixed with "IT_" have been deprecated in
18247
- # favor of the unprefixed values.
18248
- # Corresponds to the JSON property `issueType`
18249
- # @return [String]
18250
- attr_accessor :issue_type
18251
-
18252
- # Unique identifier for this outage notification.
18253
- # Corresponds to the JSON property `name`
18254
- # @return [String]
18255
- attr_accessor :name
18256
-
18257
- # The party that generated this notification, which can take the following value:
18258
- # - GOOGLE: this notification as generated by Google. Note that the value of
18259
- # NSRC_GOOGLE has been deprecated in favor of GOOGLE.
18260
- # Corresponds to the JSON property `source`
18261
- # @return [String]
18262
- attr_accessor :source
18263
-
18264
- # Scheduled start time for the outage (milliseconds since Unix epoch).
18265
- # Corresponds to the JSON property `startTime`
18266
- # @return [Fixnum]
18267
- attr_accessor :start_time
18268
-
18269
- # State of this notification, which can take one of the following values: -
18270
- # ACTIVE: This outage notification is active. The event could be in the past,
18271
- # present, or future. See start_time and end_time for scheduling. - CANCELLED:
18272
- # The outage associated with this notification was cancelled before the outage
18273
- # was due to start. - COMPLETED: The outage associated with this notification is
18274
- # complete. Note that the versions of this enum prefixed with "NS_" have been
18275
- # deprecated in favor of the unprefixed values.
18276
- # Corresponds to the JSON property `state`
18277
- # @return [String]
18278
- attr_accessor :state
18279
-
18280
- def initialize(**args)
18281
- update!(**args)
18282
- end
18283
-
18284
- # Update properties of this object
18285
- def update!(**args)
18286
- @affected_circuits = args[:affected_circuits] if args.key?(:affected_circuits)
18287
- @description = args[:description] if args.key?(:description)
18288
- @end_time = args[:end_time] if args.key?(:end_time)
18289
- @issue_type = args[:issue_type] if args.key?(:issue_type)
18290
- @name = args[:name] if args.key?(:name)
18291
- @source = args[:source] if args.key?(:source)
18292
- @start_time = args[:start_time] if args.key?(:start_time)
18293
- @state = args[:state] if args.key?(:state)
19046
+ @interconnect_location = args[:interconnect_location] if args.key?(:interconnect_location)
18294
19047
  end
18295
19048
  end
18296
19049
 
@@ -19322,7 +20075,7 @@ module Google
19322
20075
  # @return [Fixnum]
19323
20076
  attr_accessor :guest_accelerator_count
19324
20077
 
19325
- # The accelerator type resource name, not a full URL, e.g. 'nvidia-tesla-k80'.
20078
+ # The accelerator type resource name, not a full URL, e.g. nvidia-tesla-t4.
19326
20079
  # Corresponds to the JSON property `guestAcceleratorType`
19327
20080
  # @return [String]
19328
20081
  attr_accessor :guest_accelerator_type
@@ -20306,9 +21059,9 @@ module Google
20306
21059
  # @return [String]
20307
21060
  attr_accessor :description
20308
21061
 
20309
- # [Output Only] Fingerprint of this resource. A hash of the contents stored in
20310
- # this object. This field is used in optimistic locking. An up-to-date
20311
- # fingerprint must be provided in order to patch.
21062
+ # Fingerprint of this resource. A hash of the contents stored in this object.
21063
+ # This field is used in optimistic locking. An up-to-date fingerprint must be
21064
+ # provided in order to patch.
20312
21065
  # Corresponds to the JSON property `fingerprint`
20313
21066
  # NOTE: Values are automatically base64 encoded/decoded in the client library.
20314
21067
  # @return [String]
@@ -20336,6 +21089,10 @@ module Google
20336
21089
  attr_accessor :name
20337
21090
 
20338
21091
  # [Output Only] The URL of the network which the Network Attachment belongs to.
21092
+ # Practically it is inferred by fetching the network of the first subnetwork
21093
+ # associated. Because it is required that all the subnetworks must be from the
21094
+ # same network, it is assured that the Network Attachment belongs to the same
21095
+ # network as all the subnetworks.
20339
21096
  # Corresponds to the JSON property `network`
20340
21097
  # @return [String]
20341
21098
  attr_accessor :network
@@ -20532,7 +21289,7 @@ module Google
20532
21289
  # @return [String]
20533
21290
  attr_accessor :project_id_or_num
20534
21291
 
20535
- # Alias IP ranges from the same subnetwork
21292
+ # Alias IP ranges from the same subnetwork.
20536
21293
  # Corresponds to the JSON property `secondaryIpCidrRanges`
20537
21294
  # @return [Array<String>]
20538
21295
  attr_accessor :secondary_ip_cidr_ranges
@@ -27608,6 +28365,37 @@ module Google
27608
28365
  end
27609
28366
  end
27610
28367
 
28368
+ #
28369
+ class RegionAddressesMoveRequest
28370
+ include Google::Apis::Core::Hashable
28371
+
28372
+ # An optional destination address description if intended to be different from
28373
+ # the source.
28374
+ # Corresponds to the JSON property `description`
28375
+ # @return [String]
28376
+ attr_accessor :description
28377
+
28378
+ # The URL of the destination address to move to. This can be a full or partial
28379
+ # URL. For example, the following are all valid URLs to a address: - https://www.
28380
+ # googleapis.com/compute/v1/projects/project/regions/region /addresses/address -
28381
+ # projects/project/regions/region/addresses/address Note that destination
28382
+ # project must be different from the source project. So /regions/region/
28383
+ # addresses/address is not valid partial url.
28384
+ # Corresponds to the JSON property `destinationAddress`
28385
+ # @return [String]
28386
+ attr_accessor :destination_address
28387
+
28388
+ def initialize(**args)
28389
+ update!(**args)
28390
+ end
28391
+
28392
+ # Update properties of this object
28393
+ def update!(**args)
28394
+ @description = args[:description] if args.key?(:description)
28395
+ @destination_address = args[:destination_address] if args.key?(:destination_address)
28396
+ end
28397
+ end
28398
+
27611
28399
  # Contains a list of autoscalers.
27612
28400
  class RegionAutoscalerList
27613
28401
  include Google::Apis::Core::Hashable
@@ -31749,9 +32537,8 @@ module Google
31749
32537
  # ranges in every Subnetwork are allowed to Nat. - LIST_OF_SUBNETWORKS: A list
31750
32538
  # of Subnetworks are allowed to Nat (specified in the field subnetwork below)
31751
32539
  # The default is SUBNETWORK_IP_RANGE_TO_NAT_OPTION_UNSPECIFIED. Note that if
31752
- # this field contains ALL_SUBNETWORKS_ALL_IP_RANGES or
31753
- # ALL_SUBNETWORKS_ALL_PRIMARY_IP_RANGES, then there should not be any other
31754
- # Router.Nat section in any Router for this network in this region.
32540
+ # this field contains ALL_SUBNETWORKS_ALL_IP_RANGES then there should not be any
32541
+ # other Router.Nat section in any Router for this network in this region.
31755
32542
  # Corresponds to the JSON property `sourceSubnetworkIpRangesToNat`
31756
32543
  # @return [String]
31757
32544
  attr_accessor :source_subnetwork_ip_ranges_to_nat
@@ -33156,6 +33943,24 @@ module Google
33156
33943
  # @return [String]
33157
33944
  attr_accessor :kind
33158
33945
 
33946
+ # A fingerprint for the labels being applied to this security policy, which is
33947
+ # essentially a hash of the labels set used for optimistic locking. The
33948
+ # fingerprint is initially generated by Compute Engine and changes after every
33949
+ # request to modify or update labels. You must always provide an up-to-date
33950
+ # fingerprint hash in order to update or change labels. To see the latest
33951
+ # fingerprint, make get() request to the security policy.
33952
+ # Corresponds to the JSON property `labelFingerprint`
33953
+ # NOTE: Values are automatically base64 encoded/decoded in the client library.
33954
+ # @return [String]
33955
+ attr_accessor :label_fingerprint
33956
+
33957
+ # Labels for this resource. These can only be added or modified by the setLabels
33958
+ # method. Each label key/value pair must comply with RFC1035. Label values may
33959
+ # be empty.
33960
+ # Corresponds to the JSON property `labels`
33961
+ # @return [Hash<String,String>]
33962
+ attr_accessor :labels
33963
+
33159
33964
  # Name of the resource. Provided by the client when the resource is created. The
33160
33965
  # name must be 1-63 characters long, and comply with RFC1035. Specifically, the
33161
33966
  # name must be 1-63 characters long and match the regular expression `[a-z]([-a-
@@ -33225,6 +34030,8 @@ module Google
33225
34030
  @fingerprint = args[:fingerprint] if args.key?(:fingerprint)
33226
34031
  @id = args[:id] if args.key?(:id)
33227
34032
  @kind = args[:kind] if args.key?(:kind)
34033
+ @label_fingerprint = args[:label_fingerprint] if args.key?(:label_fingerprint)
34034
+ @labels = args[:labels] if args.key?(:labels)
33228
34035
  @name = args[:name] if args.key?(:name)
33229
34036
  @recaptcha_options_config = args[:recaptcha_options_config] if args.key?(:recaptcha_options_config)
33230
34037
  @region = args[:region] if args.key?(:region)
@@ -33238,7 +34045,8 @@ module Google
33238
34045
  class SecurityPolicyAdaptiveProtectionConfig
33239
34046
  include Google::Apis::Core::Hashable
33240
34047
 
33241
- # Configuration options for L7 DDoS detection.
34048
+ # Configuration options for L7 DDoS detection. This field is only supported in
34049
+ # Global Security Policies of type CLOUD_ARMOR.
33242
34050
  # Corresponds to the JSON property `layer7DdosDefenseConfig`
33243
34051
  # @return [Google::Apis::ComputeV1::SecurityPolicyAdaptiveProtectionConfigLayer7DdosDefenseConfig]
33244
34052
  attr_accessor :layer7_ddos_defense_config
@@ -33253,18 +34061,21 @@ module Google
33253
34061
  end
33254
34062
  end
33255
34063
 
33256
- # Configuration options for L7 DDoS detection.
34064
+ # Configuration options for L7 DDoS detection. This field is only supported in
34065
+ # Global Security Policies of type CLOUD_ARMOR.
33257
34066
  class SecurityPolicyAdaptiveProtectionConfigLayer7DdosDefenseConfig
33258
34067
  include Google::Apis::Core::Hashable
33259
34068
 
33260
- # If set to true, enables CAAP for L7 DDoS detection.
34069
+ # If set to true, enables CAAP for L7 DDoS detection. This field is only
34070
+ # supported in Global Security Policies of type CLOUD_ARMOR.
33261
34071
  # Corresponds to the JSON property `enable`
33262
34072
  # @return [Boolean]
33263
34073
  attr_accessor :enable
33264
34074
  alias_method :enable?, :enable
33265
34075
 
33266
34076
  # Rule visibility can be one of the following: STANDARD - opaque rules. (default)
33267
- # PREMIUM - transparent rules.
34077
+ # PREMIUM - transparent rules. This field is only supported in Global Security
34078
+ # Policies of type CLOUD_ARMOR.
33268
34079
  # Corresponds to the JSON property `ruleVisibility`
33269
34080
  # @return [String]
33270
34081
  attr_accessor :rule_visibility
@@ -33474,7 +34285,8 @@ module Google
33474
34285
  # using the redirect action with the type of GOOGLE_RECAPTCHA under the security
33475
34286
  # policy. The specified site key needs to be created from the reCAPTCHA API. The
33476
34287
  # user is responsible for the validity of the specified site key. If not
33477
- # specified, a Google-managed site key is used.
34288
+ # specified, a Google-managed site key is used. This field is only supported in
34289
+ # Global Security Policies of type CLOUD_ARMOR.
33478
34290
  # Corresponds to the JSON property `redirectSiteKey`
33479
34291
  # @return [String]
33480
34292
  attr_accessor :redirect_site_key
@@ -33522,7 +34334,8 @@ module Google
33522
34334
  # rate_limit_options to be set. - redirect: redirect to a different target. This
33523
34335
  # can either be an internal reCAPTCHA redirect, or an external URL-based
33524
34336
  # redirect via a 302 response. Parameters for this action can be configured via
33525
- # redirectOptions. - throttle: limit client traffic to the configured threshold.
34337
+ # redirectOptions. This action is only supported in Global Security Policies of
34338
+ # type CLOUD_ARMOR. - throttle: limit client traffic to the configured threshold.
33526
34339
  # Configure parameters for this action in rateLimitOptions. Requires
33527
34340
  # rate_limit_options to be set for this.
33528
34341
  # Corresponds to the JSON property `action`
@@ -33535,7 +34348,8 @@ module Google
33535
34348
  # @return [String]
33536
34349
  attr_accessor :description
33537
34350
 
33538
- # Optional, additional actions that are performed on headers.
34351
+ # Optional, additional actions that are performed on headers. This field is only
34352
+ # supported in Global Security Policies of type CLOUD_ARMOR.
33539
34353
  # Corresponds to the JSON property `headerAction`
33540
34354
  # @return [Google::Apis::ComputeV1::SecurityPolicyRuleHttpHeaderAction]
33541
34355
  attr_accessor :header_action
@@ -33580,7 +34394,8 @@ module Google
33580
34394
  attr_accessor :rate_limit_options
33581
34395
 
33582
34396
  # Parameters defining the redirect action. Cannot be specified for any other
33583
- # actions.
34397
+ # actions. This field is only supported in Global Security Policies of type
34398
+ # CLOUD_ARMOR.
33584
34399
  # Corresponds to the JSON property `redirectOptions`
33585
34400
  # @return [Google::Apis::ComputeV1::SecurityPolicyRuleRedirectOptions]
33586
34401
  attr_accessor :redirect_options
@@ -33867,6 +34682,14 @@ module Google
33867
34682
  # @return [String]
33868
34683
  attr_accessor :enforce_on_key
33869
34684
 
34685
+ # If specified, any combination of values of enforce_on_key_type/
34686
+ # enforce_on_key_name is treated as the key on which ratelimit threshold/action
34687
+ # is enforced. You can specify up to 3 enforce_on_key_configs. If
34688
+ # enforce_on_key_configs is specified, enforce_on_key must not be specified.
34689
+ # Corresponds to the JSON property `enforceOnKeyConfigs`
34690
+ # @return [Array<Google::Apis::ComputeV1::SecurityPolicyRuleRateLimitOptionsEnforceOnKeyConfig>]
34691
+ attr_accessor :enforce_on_key_configs
34692
+
33870
34693
  # Rate limit key name applicable only for the following key types: HTTP_HEADER --
33871
34694
  # Name of the HTTP header whose value is taken as the key value. HTTP_COOKIE --
33872
34695
  # Name of the HTTP cookie whose value is taken as the key value.
@@ -33878,13 +34701,15 @@ module Google
33878
34701
  # to either deny with a specified HTTP response code, or redirect to a
33879
34702
  # different endpoint. Valid options are `deny(STATUS)`, where valid values for `
33880
34703
  # STATUS` are 403, 404, 429, and 502, and `redirect`, where the redirect
33881
- # parameters come from `exceedRedirectOptions` below.
34704
+ # parameters come from `exceedRedirectOptions` below. The `redirect` action is
34705
+ # only supported in Global Security Policies of type CLOUD_ARMOR.
33882
34706
  # Corresponds to the JSON property `exceedAction`
33883
34707
  # @return [String]
33884
34708
  attr_accessor :exceed_action
33885
34709
 
33886
34710
  # Parameters defining the redirect action that is used as the exceed action.
33887
- # Cannot be specified if the exceed action is not redirect.
34711
+ # Cannot be specified if the exceed action is not redirect. This field is only
34712
+ # supported in Global Security Policies of type CLOUD_ARMOR.
33888
34713
  # Corresponds to the JSON property `exceedRedirectOptions`
33889
34714
  # @return [Google::Apis::ComputeV1::SecurityPolicyRuleRedirectOptions]
33890
34715
  attr_accessor :exceed_redirect_options
@@ -33904,6 +34729,7 @@ module Google
33904
34729
  @ban_threshold = args[:ban_threshold] if args.key?(:ban_threshold)
33905
34730
  @conform_action = args[:conform_action] if args.key?(:conform_action)
33906
34731
  @enforce_on_key = args[:enforce_on_key] if args.key?(:enforce_on_key)
34732
+ @enforce_on_key_configs = args[:enforce_on_key_configs] if args.key?(:enforce_on_key_configs)
33907
34733
  @enforce_on_key_name = args[:enforce_on_key_name] if args.key?(:enforce_on_key_name)
33908
34734
  @exceed_action = args[:exceed_action] if args.key?(:exceed_action)
33909
34735
  @exceed_redirect_options = args[:exceed_redirect_options] if args.key?(:exceed_redirect_options)
@@ -33911,6 +34737,51 @@ module Google
33911
34737
  end
33912
34738
  end
33913
34739
 
34740
+ #
34741
+ class SecurityPolicyRuleRateLimitOptionsEnforceOnKeyConfig
34742
+ include Google::Apis::Core::Hashable
34743
+
34744
+ # Rate limit key name applicable only for the following key types: HTTP_HEADER --
34745
+ # Name of the HTTP header whose value is taken as the key value. HTTP_COOKIE --
34746
+ # Name of the HTTP cookie whose value is taken as the key value.
34747
+ # Corresponds to the JSON property `enforceOnKeyName`
34748
+ # @return [String]
34749
+ attr_accessor :enforce_on_key_name
34750
+
34751
+ # Determines the key to enforce the rate_limit_threshold on. Possible values are:
34752
+ # - ALL: A single rate limit threshold is applied to all the requests matching
34753
+ # this rule. This is the default value if "enforceOnKeyConfigs" is not
34754
+ # configured. - IP: The source IP address of the request is the key. Each IP has
34755
+ # this limit enforced separately. - HTTP_HEADER: The value of the HTTP header
34756
+ # whose name is configured under "enforceOnKeyName". The key value is truncated
34757
+ # to the first 128 bytes of the header value. If no such header is present in
34758
+ # the request, the key type defaults to ALL. - XFF_IP: The first IP address (i.e.
34759
+ # the originating client IP address) specified in the list of IPs under X-
34760
+ # Forwarded-For HTTP header. If no such header is present or the value is not a
34761
+ # valid IP, the key defaults to the source IP address of the request i.e. key
34762
+ # type IP. - HTTP_COOKIE: The value of the HTTP cookie whose name is configured
34763
+ # under "enforceOnKeyName". The key value is truncated to the first 128 bytes of
34764
+ # the cookie value. If no such cookie is present in the request, the key type
34765
+ # defaults to ALL. - HTTP_PATH: The URL path of the HTTP request. The key value
34766
+ # is truncated to the first 128 bytes. - SNI: Server name indication in the TLS
34767
+ # session of the HTTPS request. The key value is truncated to the first 128
34768
+ # bytes. The key type defaults to ALL on a HTTP session. - REGION_CODE: The
34769
+ # country/region from which the request originates.
34770
+ # Corresponds to the JSON property `enforceOnKeyType`
34771
+ # @return [String]
34772
+ attr_accessor :enforce_on_key_type
34773
+
34774
+ def initialize(**args)
34775
+ update!(**args)
34776
+ end
34777
+
34778
+ # Update properties of this object
34779
+ def update!(**args)
34780
+ @enforce_on_key_name = args[:enforce_on_key_name] if args.key?(:enforce_on_key_name)
34781
+ @enforce_on_key_type = args[:enforce_on_key_type] if args.key?(:enforce_on_key_type)
34782
+ end
34783
+ end
34784
+
33914
34785
  #
33915
34786
  class SecurityPolicyRuleRateLimitOptionsThreshold
33916
34787
  include Google::Apis::Core::Hashable
@@ -34204,6 +35075,20 @@ module Google
34204
35075
  # @return [Google::Apis::ComputeV1::Uint128]
34205
35076
  attr_accessor :psc_service_attachment_id
34206
35077
 
35078
+ # This flag determines whether a consumer accept/reject list change can
35079
+ # reconcile the statuses of existing ACCEPTED or REJECTED PSC endpoints. - If
35080
+ # false, connection policy update will only affect existing PENDING PSC
35081
+ # endpoints. Existing ACCEPTED/REJECTED endpoints will remain untouched
35082
+ # regardless how the connection policy is modified . - If true, update will
35083
+ # affect both PENDING and ACCEPTED/REJECTED PSC endpoints. For example, an
35084
+ # ACCEPTED PSC endpoint will be moved to REJECTED if its project is added to the
35085
+ # reject list. For newly created service attachment, this boolean defaults to
35086
+ # true.
35087
+ # Corresponds to the JSON property `reconcileConnections`
35088
+ # @return [Boolean]
35089
+ attr_accessor :reconcile_connections
35090
+ alias_method :reconcile_connections?, :reconcile_connections
35091
+
34207
35092
  # [Output Only] URL of the region where the service attachment resides. This
34208
35093
  # field applies only to the region resource. You must specify this field as part
34209
35094
  # of the HTTP request URL. It is not settable as a field in the request body.
@@ -34243,6 +35128,7 @@ module Google
34243
35128
  @nat_subnets = args[:nat_subnets] if args.key?(:nat_subnets)
34244
35129
  @producer_forwarding_rule = args[:producer_forwarding_rule] if args.key?(:producer_forwarding_rule)
34245
35130
  @psc_service_attachment_id = args[:psc_service_attachment_id] if args.key?(:psc_service_attachment_id)
35131
+ @reconcile_connections = args[:reconcile_connections] if args.key?(:reconcile_connections)
34246
35132
  @region = args[:region] if args.key?(:region)
34247
35133
  @self_link = args[:self_link] if args.key?(:self_link)
34248
35134
  @target_service = args[:target_service] if args.key?(:target_service)
@@ -36511,8 +37397,8 @@ module Google
36511
37397
  # Whether to enable flow logging for this subnetwork. If this field is not
36512
37398
  # explicitly set, it will not appear in get listings. If not set the default
36513
37399
  # behavior is determined by the org policy, if there is no org policy specified,
36514
- # then it will default to disabled. This field isn't supported with the purpose
36515
- # field set to INTERNAL_HTTPS_LOAD_BALANCER.
37400
+ # then it will default to disabled. This field isn't supported if the subnet
37401
+ # purpose field is set to REGIONAL_MANAGED_PROXY.
36516
37402
  # Corresponds to the JSON property `enableFlowLogs`
36517
37403
  # @return [Boolean]
36518
37404
  attr_accessor :enable_flow_logs
@@ -36616,12 +37502,19 @@ module Google
36616
37502
  # @return [String]
36617
37503
  attr_accessor :private_ipv6_google_access
36618
37504
 
36619
- # The purpose of the resource. This field can be either PRIVATE_RFC_1918 or
36620
- # INTERNAL_HTTPS_LOAD_BALANCER. A subnetwork with purpose set to
36621
- # INTERNAL_HTTPS_LOAD_BALANCER is a user-created subnetwork that is reserved for
36622
- # Internal HTTP(S) Load Balancing. If unspecified, the purpose defaults to
36623
- # PRIVATE_RFC_1918. The enableFlowLogs field isn't supported with the purpose
36624
- # field set to INTERNAL_HTTPS_LOAD_BALANCER.
37505
+ # The purpose of the resource. This field can be either PRIVATE,
37506
+ # REGIONAL_MANAGED_PROXY, PRIVATE_SERVICE_CONNECT, or
37507
+ # INTERNAL_HTTPS_LOAD_BALANCER. PRIVATE is the default purpose for user-created
37508
+ # subnets or subnets that are automatically created in auto mode networks. A
37509
+ # subnet with purpose set to REGIONAL_MANAGED_PROXY is a user-created subnetwork
37510
+ # that is reserved for regional Envoy-based load balancers. A subnet with
37511
+ # purpose set to PRIVATE_SERVICE_CONNECT is used to publish services using
37512
+ # Private Service Connect. A subnet with purpose set to
37513
+ # INTERNAL_HTTPS_LOAD_BALANCER is a proxy-only subnet that can be used only by
37514
+ # regional internal HTTP(S) load balancers. Note that REGIONAL_MANAGED_PROXY is
37515
+ # the preferred setting for all regional Envoy load balancers. If unspecified,
37516
+ # the subnet purpose defaults to PRIVATE. The enableFlowLogs field isn't
37517
+ # supported if the subnet purpose field is set to REGIONAL_MANAGED_PROXY.
36625
37518
  # Corresponds to the JSON property `purpose`
36626
37519
  # @return [String]
36627
37520
  attr_accessor :purpose
@@ -36633,11 +37526,10 @@ module Google
36633
37526
  attr_accessor :region
36634
37527
 
36635
37528
  # The role of subnetwork. Currently, this field is only used when purpose =
36636
- # INTERNAL_HTTPS_LOAD_BALANCER. The value can be set to ACTIVE or BACKUP. An
36637
- # ACTIVE subnetwork is one that is currently being used for Internal HTTP(S)
36638
- # Load Balancing. A BACKUP subnetwork is one that is ready to be promoted to
36639
- # ACTIVE or is currently draining. This field can be updated with a patch
36640
- # request.
37529
+ # REGIONAL_MANAGED_PROXY. The value can be set to ACTIVE or BACKUP. An ACTIVE
37530
+ # subnetwork is one that is currently being used for Envoy-based load balancers
37531
+ # in a region. A BACKUP subnetwork is one that is ready to be promoted to ACTIVE
37532
+ # or is currently draining. This field can be updated with a patch request.
36641
37533
  # Corresponds to the JSON property `role`
36642
37534
  # @return [String]
36643
37535
  attr_accessor :role
@@ -36963,7 +37855,8 @@ module Google
36963
37855
  # Whether to enable flow logging for this subnetwork. If this field is not
36964
37856
  # explicitly set, it will not appear in get listings. If not set the default
36965
37857
  # behavior is determined by the org policy, if there is no org policy specified,
36966
- # then it will default to disabled.
37858
+ # then it will default to disabled. Flow logging isn't supported if the subnet
37859
+ # purpose field is set to REGIONAL_MANAGED_PROXY.
36967
37860
  # Corresponds to the JSON property `enable`
36968
37861
  # @return [Boolean]
36969
37862
  attr_accessor :enable
@@ -37982,7 +38875,9 @@ module Google
37982
38875
  class TargetHttpsProxiesSetCertificateMapRequest
37983
38876
  include Google::Apis::Core::Hashable
37984
38877
 
37985
- # URL of the Certificate Map to associate with this TargetHttpsProxy.
38878
+ # URL of the Certificate Map to associate with this TargetHttpsProxy. Accepted
38879
+ # format is //certificatemanager.googleapis.com/projects/`project `/locations/`
38880
+ # location`/certificateMaps/`resourceName`.
37986
38881
  # Corresponds to the JSON property `certificateMap`
37987
38882
  # @return [String]
37988
38883
  attr_accessor :certificate_map
@@ -38062,7 +38957,9 @@ module Google
38062
38957
 
38063
38958
  # URL of a certificate map that identifies a certificate map associated with the
38064
38959
  # given target proxy. This field can only be set for global target proxies. If
38065
- # set, sslCertificates will be ignored.
38960
+ # set, sslCertificates will be ignored. Accepted format is //certificatemanager.
38961
+ # googleapis.com/projects/`project `/locations/`location`/certificateMaps/`
38962
+ # resourceName`.
38066
38963
  # Corresponds to the JSON property `certificateMap`
38067
38964
  # @return [String]
38068
38965
  attr_accessor :certificate_map
@@ -39483,7 +40380,9 @@ module Google
39483
40380
  class TargetSslProxiesSetCertificateMapRequest
39484
40381
  include Google::Apis::Core::Hashable
39485
40382
 
39486
- # URL of the Certificate Map to associate with this TargetSslProxy.
40383
+ # URL of the Certificate Map to associate with this TargetSslProxy. Accepted
40384
+ # format is //certificatemanager.googleapis.com/projects/`project `/locations/`
40385
+ # location`/certificateMaps/`resourceName`.
39487
40386
  # Corresponds to the JSON property `certificateMap`
39488
40387
  # @return [String]
39489
40388
  attr_accessor :certificate_map
@@ -39548,7 +40447,9 @@ module Google
39548
40447
 
39549
40448
  # URL of a certificate map that identifies a certificate map associated with the
39550
40449
  # given target proxy. This field can only be set for global target proxies. If
39551
- # set, sslCertificates will be ignored.
40450
+ # set, sslCertificates will be ignored. Accepted format is //certificatemanager.
40451
+ # googleapis.com/projects/`project `/locations/`location`/certificateMaps/`
40452
+ # resourceName`.
39552
40453
  # Corresponds to the JSON property `certificateMap`
39553
40454
  # @return [String]
39554
40455
  attr_accessor :certificate_map
@@ -40255,6 +41156,25 @@ module Google
40255
41156
  # @return [String]
40256
41157
  attr_accessor :kind
40257
41158
 
41159
+ # A fingerprint for the labels being applied to this TargetVpnGateway, which is
41160
+ # essentially a hash of the labels set used for optimistic locking. The
41161
+ # fingerprint is initially generated by Compute Engine and changes after every
41162
+ # request to modify or update labels. You must always provide an up-to-date
41163
+ # fingerprint hash in order to update or change labels, otherwise the request
41164
+ # will fail with error 412 conditionNotMet. To see the latest fingerprint, make
41165
+ # a get() request to retrieve a TargetVpnGateway.
41166
+ # Corresponds to the JSON property `labelFingerprint`
41167
+ # NOTE: Values are automatically base64 encoded/decoded in the client library.
41168
+ # @return [String]
41169
+ attr_accessor :label_fingerprint
41170
+
41171
+ # Labels for this resource. These can only be added or modified by the setLabels
41172
+ # method. Each label key/value pair must comply with RFC1035. Label values may
41173
+ # be empty.
41174
+ # Corresponds to the JSON property `labels`
41175
+ # @return [Hash<String,String>]
41176
+ attr_accessor :labels
41177
+
40258
41178
  # Name of the resource. Provided by the client when the resource is created. The
40259
41179
  # name must be 1-63 characters long, and comply with RFC1035. Specifically, the
40260
41180
  # name must be 1-63 characters long and match the regular expression `[a-z]([-a-
@@ -40306,6 +41226,8 @@ module Google
40306
41226
  @forwarding_rules = args[:forwarding_rules] if args.key?(:forwarding_rules)
40307
41227
  @id = args[:id] if args.key?(:id)
40308
41228
  @kind = args[:kind] if args.key?(:kind)
41229
+ @label_fingerprint = args[:label_fingerprint] if args.key?(:label_fingerprint)
41230
+ @labels = args[:labels] if args.key?(:labels)
40309
41231
  @name = args[:name] if args.key?(:name)
40310
41232
  @network = args[:network] if args.key?(:network)
40311
41233
  @region = args[:region] if args.key?(:region)
@@ -41513,6 +42435,22 @@ module Google
41513
42435
  # @return [String]
41514
42436
  attr_accessor :path_prefix_rewrite
41515
42437
 
42438
+ # If specified, the pattern rewrites the URL path (based on the :path header)
42439
+ # using the HTTP template syntax. A corresponding path_template_match must be
42440
+ # specified. Any template variables must exist in the path_template_match field.
42441
+ # - -At least one variable must be specified in the path_template_match field -
42442
+ # You can omit variables from the rewritten URL - The * and ** operators cannot
42443
+ # be matched unless they have a corresponding variable name - e.g. `format=*` or
42444
+ # `var=**`. For example, a path_template_match of /static/`format=**` could be
42445
+ # rewritten as /static/content/`format` to prefix /content to the URL. Variables
42446
+ # can also be re-ordered in a rewrite, so that /`country`/`format`/`suffix=**`
42447
+ # can be rewritten as /content/`format`/`country`/`suffix`. At least one non-
42448
+ # empty routeRules[].matchRules[].path_template_match is required. Only one of
42449
+ # path_prefix_rewrite or path_template_rewrite may be specified.
42450
+ # Corresponds to the JSON property `pathTemplateRewrite`
42451
+ # @return [String]
42452
+ attr_accessor :path_template_rewrite
42453
+
41516
42454
  def initialize(**args)
41517
42455
  update!(**args)
41518
42456
  end
@@ -41521,6 +42459,7 @@ module Google
41521
42459
  def update!(**args)
41522
42460
  @host_rewrite = args[:host_rewrite] if args.key?(:host_rewrite)
41523
42461
  @path_prefix_rewrite = args[:path_prefix_rewrite] if args.key?(:path_prefix_rewrite)
42462
+ @path_template_rewrite = args[:path_template_rewrite] if args.key?(:path_template_rewrite)
41524
42463
  end
41525
42464
  end
41526
42465
 
@@ -41557,22 +42496,28 @@ module Google
41557
42496
  # @return [String]
41558
42497
  attr_accessor :network
41559
42498
 
41560
- # The purpose of the resource. This field can be either PRIVATE_RFC_1918 or
41561
- # INTERNAL_HTTPS_LOAD_BALANCER. A subnetwork with purpose set to
41562
- # INTERNAL_HTTPS_LOAD_BALANCER is a user-created subnetwork that is reserved for
41563
- # Internal HTTP(S) Load Balancing. If unspecified, the purpose defaults to
41564
- # PRIVATE_RFC_1918. The enableFlowLogs field isn't supported with the purpose
41565
- # field set to INTERNAL_HTTPS_LOAD_BALANCER.
42499
+ # The purpose of the resource. This field can be either PRIVATE,
42500
+ # REGIONAL_MANAGED_PROXY, PRIVATE_SERVICE_CONNECT, or
42501
+ # INTERNAL_HTTPS_LOAD_BALANCER. PRIVATE is the default purpose for user-created
42502
+ # subnets or subnets that are automatically created in auto mode networks. A
42503
+ # subnet with purpose set to REGIONAL_MANAGED_PROXY is a user-created subnetwork
42504
+ # that is reserved for regional Envoy-based load balancers. A subnet with
42505
+ # purpose set to PRIVATE_SERVICE_CONNECT is used to publish services using
42506
+ # Private Service Connect. A subnet with purpose set to
42507
+ # INTERNAL_HTTPS_LOAD_BALANCER is a proxy-only subnet that can be used only by
42508
+ # regional internal HTTP(S) load balancers. Note that REGIONAL_MANAGED_PROXY is
42509
+ # the preferred setting for all regional Envoy load balancers. If unspecified,
42510
+ # the subnet purpose defaults to PRIVATE. The enableFlowLogs field isn't
42511
+ # supported if the subnet purpose field is set to REGIONAL_MANAGED_PROXY.
41566
42512
  # Corresponds to the JSON property `purpose`
41567
42513
  # @return [String]
41568
42514
  attr_accessor :purpose
41569
42515
 
41570
42516
  # The role of subnetwork. Currently, this field is only used when purpose =
41571
- # INTERNAL_HTTPS_LOAD_BALANCER. The value can be set to ACTIVE or BACKUP. An
41572
- # ACTIVE subnetwork is one that is currently being used for Internal HTTP(S)
41573
- # Load Balancing. A BACKUP subnetwork is one that is ready to be promoted to
41574
- # ACTIVE or is currently draining. This field can be updated with a patch
41575
- # request.
42517
+ # REGIONAL_MANAGED_PROXY. The value can be set to ACTIVE or BACKUP. An ACTIVE
42518
+ # subnetwork is one that is currently being used for Envoy-based load balancers
42519
+ # in a region. A BACKUP subnetwork is one that is ready to be promoted to ACTIVE
42520
+ # or is currently draining. This field can be updated with a patch request.
41576
42521
  # Corresponds to the JSON property `role`
41577
42522
  # @return [String]
41578
42523
  attr_accessor :role
@@ -42458,7 +43403,7 @@ module Google
42458
43403
  attr_accessor :local_gateway_interface
42459
43404
 
42460
43405
  # The peer gateway interface this VPN tunnel is connected to, the peer gateway
42461
- # could either be an external VPN gateway or GCP VPN gateway.
43406
+ # could either be an external VPN gateway or a Google Cloud VPN gateway.
42462
43407
  # Corresponds to the JSON property `peerGatewayInterface`
42463
43408
  # @return [Fixnum]
42464
43409
  attr_accessor :peer_gateway_interface
@@ -42481,8 +43426,8 @@ module Google
42481
43426
  end
42482
43427
 
42483
43428
  # A VPN connection contains all VPN tunnels connected from this VpnGateway to
42484
- # the same peer gateway. The peer gateway could either be a external VPN gateway
42485
- # or GCP VPN gateway.
43429
+ # the same peer gateway. The peer gateway could either be an external VPN
43430
+ # gateway or a Google Cloud VPN gateway.
42486
43431
  class VpnGatewayStatusVpnConnection
42487
43432
  include Google::Apis::Core::Hashable
42488
43433
 
@@ -42715,6 +43660,25 @@ module Google
42715
43660
  # @return [String]
42716
43661
  attr_accessor :kind
42717
43662
 
43663
+ # A fingerprint for the labels being applied to this VpnTunnel, which is
43664
+ # essentially a hash of the labels set used for optimistic locking. The
43665
+ # fingerprint is initially generated by Compute Engine and changes after every
43666
+ # request to modify or update labels. You must always provide an up-to-date
43667
+ # fingerprint hash in order to update or change labels, otherwise the request
43668
+ # will fail with error 412 conditionNotMet. To see the latest fingerprint, make
43669
+ # a get() request to retrieve a VpnTunnel.
43670
+ # Corresponds to the JSON property `labelFingerprint`
43671
+ # NOTE: Values are automatically base64 encoded/decoded in the client library.
43672
+ # @return [String]
43673
+ attr_accessor :label_fingerprint
43674
+
43675
+ # Labels for this resource. These can only be added or modified by the setLabels
43676
+ # method. Each label key/value pair must comply with RFC1035. Label values may
43677
+ # be empty.
43678
+ # Corresponds to the JSON property `labels`
43679
+ # @return [Hash<String,String>]
43680
+ attr_accessor :labels
43681
+
42718
43682
  # Local traffic selector to use when establishing the VPN tunnel with the peer
42719
43683
  # VPN gateway. The value should be a CIDR formatted string, for example: 192.168.
42720
43684
  # 0.0/16. The ranges must be disjoint. Only IPv4 is supported.
@@ -42850,6 +43814,8 @@ module Google
42850
43814
  @id = args[:id] if args.key?(:id)
42851
43815
  @ike_version = args[:ike_version] if args.key?(:ike_version)
42852
43816
  @kind = args[:kind] if args.key?(:kind)
43817
+ @label_fingerprint = args[:label_fingerprint] if args.key?(:label_fingerprint)
43818
+ @labels = args[:labels] if args.key?(:labels)
42853
43819
  @local_traffic_selector = args[:local_traffic_selector] if args.key?(:local_traffic_selector)
42854
43820
  @name = args[:name] if args.key?(:name)
42855
43821
  @peer_external_gateway = args[:peer_external_gateway] if args.key?(:peer_external_gateway)