google-apis-compute_v1 0.66.0 → 0.68.0

Sign up to get free protection for your applications and to get access to all the features.
@@ -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,13 @@ 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
+
1529
1557
  # Required for each regional disk associated with the instance. Specify the URLs
1530
1558
  # of the zones where the disk should be replicated to. You must provide exactly
1531
1559
  # two replica zones, and one zone must be the same as the instance zone. You can'
@@ -1605,6 +1633,7 @@ module Google
1605
1633
  @licenses = args[:licenses] if args.key?(:licenses)
1606
1634
  @on_update_action = args[:on_update_action] if args.key?(:on_update_action)
1607
1635
  @provisioned_iops = args[:provisioned_iops] if args.key?(:provisioned_iops)
1636
+ @provisioned_throughput = args[:provisioned_throughput] if args.key?(:provisioned_throughput)
1608
1637
  @replica_zones = args[:replica_zones] if args.key?(:replica_zones)
1609
1638
  @resource_manager_tags = args[:resource_manager_tags] if args.key?(:resource_manager_tags)
1610
1639
  @resource_policies = args[:resource_policies] if args.key?(:resource_policies)
@@ -3328,6 +3357,12 @@ module Google
3328
3357
  # @return [Google::Apis::ComputeV1::Duration]
3329
3358
  attr_accessor :max_stream_duration
3330
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
+
3331
3366
  # Name of the resource. Provided by the client when the resource is created. The
3332
3367
  # name must be 1-63 characters long, and comply with RFC1035. Specifically, the
3333
3368
  # name must be 1-63 characters long and match the regular expression `[a-z]([-a-
@@ -3467,6 +3502,7 @@ module Google
3467
3502
  @locality_lb_policy = args[:locality_lb_policy] if args.key?(:locality_lb_policy)
3468
3503
  @log_config = args[:log_config] if args.key?(:log_config)
3469
3504
  @max_stream_duration = args[:max_stream_duration] if args.key?(:max_stream_duration)
3505
+ @metadatas = args[:metadatas] if args.key?(:metadatas)
3470
3506
  @name = args[:name] if args.key?(:name)
3471
3507
  @network = args[:network] if args.key?(:network)
3472
3508
  @outlier_detection = args[:outlier_detection] if args.key?(:outlier_detection)
@@ -5058,7 +5094,7 @@ module Google
5058
5094
  # @return [String]
5059
5095
  attr_accessor :self_link
5060
5096
 
5061
- # Source commitment to be splitted into a new commitment.
5097
+ # Source commitment to be split into a new commitment.
5062
5098
  # Corresponds to the JSON property `splitSourceCommitment`
5063
5099
  # @return [String]
5064
5100
  attr_accessor :split_source_commitment
@@ -5841,6 +5877,16 @@ module Google
5841
5877
  # @return [String]
5842
5878
  attr_accessor :architecture
5843
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
+
5844
5890
  # [Output Only] Creation timestamp in RFC3339 text format.
5845
5891
  # Corresponds to the JSON property `creationTimestamp`
5846
5892
  # @return [String]
@@ -5967,6 +6013,13 @@ module Google
5967
6013
  # @return [Fixnum]
5968
6014
  attr_accessor :provisioned_iops
5969
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
+
5970
6023
  # [Output Only] URL of the region where the disk resides. Only applicable for
5971
6024
  # regional resources. You must specify this field as part of the HTTP request
5972
6025
  # URL. It is not settable as a field in the request body.
@@ -5985,6 +6038,11 @@ module Google
5985
6038
  # @return [Array<String>]
5986
6039
  attr_accessor :resource_policies
5987
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
+
5988
6046
  # [Output Only] Reserved for future use.
5989
6047
  # Corresponds to the JSON property `satisfiesPzs`
5990
6048
  # @return [Boolean]
@@ -6005,6 +6063,18 @@ module Google
6005
6063
  # @return [Fixnum]
6006
6064
  attr_accessor :size_gb
6007
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
+
6008
6078
  # The source disk used to create this disk. You can provide this as a partial or
6009
6079
  # full URL to the resource. For example, the following are valid values: - https:
6010
6080
  # //www.googleapis.com/compute/v1/projects/project/zones/zone /disks/disk -
@@ -6122,6 +6192,8 @@ module Google
6122
6192
  # Update properties of this object
6123
6193
  def update!(**args)
6124
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)
6125
6197
  @creation_timestamp = args[:creation_timestamp] if args.key?(:creation_timestamp)
6126
6198
  @description = args[:description] if args.key?(:description)
6127
6199
  @disk_encryption_key = args[:disk_encryption_key] if args.key?(:disk_encryption_key)
@@ -6140,12 +6212,16 @@ module Google
6140
6212
  @params = args[:params] if args.key?(:params)
6141
6213
  @physical_block_size_bytes = args[:physical_block_size_bytes] if args.key?(:physical_block_size_bytes)
6142
6214
  @provisioned_iops = args[:provisioned_iops] if args.key?(:provisioned_iops)
6215
+ @provisioned_throughput = args[:provisioned_throughput] if args.key?(:provisioned_throughput)
6143
6216
  @region = args[:region] if args.key?(:region)
6144
6217
  @replica_zones = args[:replica_zones] if args.key?(:replica_zones)
6145
6218
  @resource_policies = args[:resource_policies] if args.key?(:resource_policies)
6219
+ @resource_status = args[:resource_status] if args.key?(:resource_status)
6146
6220
  @satisfies_pzs = args[:satisfies_pzs] if args.key?(:satisfies_pzs)
6147
6221
  @self_link = args[:self_link] if args.key?(:self_link)
6148
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)
6149
6225
  @source_disk = args[:source_disk] if args.key?(:source_disk)
6150
6226
  @source_disk_id = args[:source_disk_id] if args.key?(:source_disk_id)
6151
6227
  @source_image = args[:source_image] if args.key?(:source_image)
@@ -6286,6 +6362,73 @@ module Google
6286
6362
  end
6287
6363
  end
6288
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
+
6289
6432
  # A specification of the desired way to instantiate a disk in the instance
6290
6433
  # template when its created from a source instance.
6291
6434
  class DiskInstantiationConfig
@@ -6506,6 +6649,50 @@ module Google
6506
6649
  end
6507
6650
  end
6508
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
+
6509
6696
  # Represents a Disk Type resource. Google Compute Engine has two Disk Type
6510
6697
  # resources: * [Regional](/compute/docs/reference/rest/v1/regionDiskTypes) * [
6511
6698
  # Zonal](/compute/docs/reference/rest/v1/diskTypes) You can choose from a
@@ -9587,6 +9774,37 @@ module Google
9587
9774
  end
9588
9775
  end
9589
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
+
9590
9808
  #
9591
9809
  class GlobalNetworkEndpointGroupsAttachEndpointsRequest
9592
9810
  include Google::Apis::Core::Hashable
@@ -10152,12 +10370,12 @@ module Google
10152
10370
  # resources: * [Global](/compute/docs/reference/rest/v1/healthChecks) * [
10153
10371
  # Regional](/compute/docs/reference/rest/v1/regionHealthChecks) Internal HTTP(S)
10154
10372
  # load balancers must use regional health checks (`compute.v1.regionHealthChecks`
10155
- # ). Traffic Director must use global health checks (`compute.v1.HealthChecks`).
10373
+ # ). Traffic Director must use global health checks (`compute.v1.healthChecks`).
10156
10374
  # Internal TCP/UDP load balancers can use either regional or global health
10157
- # checks (`compute.v1.regionHealthChecks` or `compute.v1.HealthChecks`).
10375
+ # checks (`compute.v1.regionHealthChecks` or `compute.v1.healthChecks`).
10158
10376
  # External HTTP(S), TCP proxy, and SSL proxy load balancers as well as managed
10159
10377
  # instance group auto-healing must use global health checks (`compute.v1.
10160
- # HealthChecks`). Backend service-based network load balancers must use regional
10378
+ # healthChecks`). Backend service-based network load balancers must use regional
10161
10379
  # health checks (`compute.v1.regionHealthChecks`). Target pool-based network
10162
10380
  # load balancers must use legacy HTTP health checks (`compute.v1.
10163
10381
  # httpHealthChecks`). For more information, see Health checks overview.
@@ -12030,6 +12248,16 @@ module Google
12030
12248
  # @return [Array<Google::Apis::ComputeV1::MetadataFilter>]
12031
12249
  attr_accessor :metadata_filters
12032
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
+
12033
12261
  # For satisfying the matchRule condition, the request's path must begin with the
12034
12262
  # specified prefixMatch. prefixMatch must begin with a /. The value must be from
12035
12263
  # 1 to 1024 characters. Only one of prefixMatch, fullPathMatch or regexMatch
@@ -12065,6 +12293,7 @@ module Google
12065
12293
  @header_matches = args[:header_matches] if args.key?(:header_matches)
12066
12294
  @ignore_case = args[:ignore_case] if args.key?(:ignore_case)
12067
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)
12068
12297
  @prefix_match = args[:prefix_match] if args.key?(:prefix_match)
12069
12298
  @query_parameter_matches = args[:query_parameter_matches] if args.key?(:query_parameter_matches)
12070
12299
  @regex_match = args[:regex_match] if args.key?(:regex_match)
@@ -14105,12 +14334,13 @@ module Google
14105
14334
  # @return [String]
14106
14335
  attr_accessor :health_check
14107
14336
 
14108
- # The number of seconds that the managed instance group waits before it applies
14109
- # autohealing policies to new instances or recently recreated instances. This
14110
- # initial delay allows instances to initialize and run their startup scripts
14111
- # before the instance group determines that they are UNHEALTHY. This prevents
14112
- # the managed instance group from recreating its instances prematurely. This
14113
- # value must be from range [0, 3600].
14337
+ # The initial delay is the number of seconds that a new VM takes to initialize
14338
+ # and run its startup script. During a VM's initial delay period, the MIG
14339
+ # ignores unsuccessful health checks because the VM might be in the startup
14340
+ # process. This prevents the MIG from prematurely recreating a VM. If the health
14341
+ # check receives a healthy response during the initial delay, it indicates that
14342
+ # the startup process is complete and the VM is ready. The value of initial
14343
+ # delay must be between 0 and 3600 seconds. The default value is 0.
14114
14344
  # Corresponds to the JSON property `initialDelaySec`
14115
14345
  # @return [Fixnum]
14116
14346
  attr_accessor :initial_delay_sec
@@ -16774,6 +17004,25 @@ module Google
16774
17004
  # @return [String]
16775
17005
  attr_accessor :kind
16776
17006
 
17007
+ # A fingerprint for the labels being applied to this Interconnect, which is
17008
+ # essentially a hash of the labels set used for optimistic locking. The
17009
+ # fingerprint is initially generated by Compute Engine and changes after every
17010
+ # request to modify or update labels. You must always provide an up-to-date
17011
+ # fingerprint hash in order to update or change labels, otherwise the request
17012
+ # will fail with error 412 conditionNotMet. To see the latest fingerprint, make
17013
+ # a get() request to retrieve an Interconnect.
17014
+ # Corresponds to the JSON property `labelFingerprint`
17015
+ # NOTE: Values are automatically base64 encoded/decoded in the client library.
17016
+ # @return [String]
17017
+ attr_accessor :label_fingerprint
17018
+
17019
+ # Labels for this resource. These can only be added or modified by the setLabels
17020
+ # method. Each label key/value pair must comply with RFC1035. Label values may
17021
+ # be empty.
17022
+ # Corresponds to the JSON property `labels`
17023
+ # @return [Hash<String,String>]
17024
+ attr_accessor :labels
17025
+
16777
17026
  # Type of link requested, which can take one of the following values: -
16778
17027
  # LINK_TYPE_ETHERNET_10G_LR: A 10G Ethernet with LR optics -
16779
17028
  # LINK_TYPE_ETHERNET_100G_LR: A 100G Ethernet with LR optics. Note that this
@@ -16831,6 +17080,12 @@ module Google
16831
17080
  # @return [Fixnum]
16832
17081
  attr_accessor :provisioned_link_count
16833
17082
 
17083
+ # Indicates that this is a Cross-Cloud Interconnect. This field specifies the
17084
+ # location outside of Google's network that the interconnect is connected to.
17085
+ # Corresponds to the JSON property `remoteLocation`
17086
+ # @return [String]
17087
+ attr_accessor :remote_location
17088
+
16834
17089
  # Target number of physical links in the link bundle, as requested by the
16835
17090
  # customer.
16836
17091
  # Corresponds to the JSON property `requestedLinkCount`
@@ -16877,6 +17132,8 @@ module Google
16877
17132
  @interconnect_attachments = args[:interconnect_attachments] if args.key?(:interconnect_attachments)
16878
17133
  @interconnect_type = args[:interconnect_type] if args.key?(:interconnect_type)
16879
17134
  @kind = args[:kind] if args.key?(:kind)
17135
+ @label_fingerprint = args[:label_fingerprint] if args.key?(:label_fingerprint)
17136
+ @labels = args[:labels] if args.key?(:labels)
16880
17137
  @link_type = args[:link_type] if args.key?(:link_type)
16881
17138
  @location = args[:location] if args.key?(:location)
16882
17139
  @name = args[:name] if args.key?(:name)
@@ -16884,6 +17141,7 @@ module Google
16884
17141
  @operational_status = args[:operational_status] if args.key?(:operational_status)
16885
17142
  @peer_ip_address = args[:peer_ip_address] if args.key?(:peer_ip_address)
16886
17143
  @provisioned_link_count = args[:provisioned_link_count] if args.key?(:provisioned_link_count)
17144
+ @remote_location = args[:remote_location] if args.key?(:remote_location)
16887
17145
  @requested_link_count = args[:requested_link_count] if args.key?(:requested_link_count)
16888
17146
  @satisfies_pzs = args[:satisfies_pzs] if args.key?(:satisfies_pzs)
16889
17147
  @self_link = args[:self_link] if args.key?(:self_link)
@@ -16951,6 +17209,12 @@ module Google
16951
17209
  # @return [String]
16952
17210
  attr_accessor :cloud_router_ipv6_interface_id
16953
17211
 
17212
+ # [Output Only] Constraints for this attachment, if any. The attachment does not
17213
+ # work if these constraints are not met.
17214
+ # Corresponds to the JSON property `configurationConstraints`
17215
+ # @return [Google::Apis::ComputeV1::InterconnectAttachmentConfigurationConstraints]
17216
+ attr_accessor :configuration_constraints
17217
+
16954
17218
  # [Output Only] Creation timestamp in RFC3339 text format.
16955
17219
  # Corresponds to the JSON property `creationTimestamp`
16956
17220
  # @return [String]
@@ -17052,6 +17316,25 @@ module Google
17052
17316
  # @return [String]
17053
17317
  attr_accessor :kind
17054
17318
 
17319
+ # A fingerprint for the labels being applied to this InterconnectAttachment,
17320
+ # which is essentially a hash of the labels set used for optimistic locking. The
17321
+ # fingerprint is initially generated by Compute Engine and changes after every
17322
+ # request to modify or update labels. You must always provide an up-to-date
17323
+ # fingerprint hash in order to update or change labels, otherwise the request
17324
+ # will fail with error 412 conditionNotMet. To see the latest fingerprint, make
17325
+ # a get() request to retrieve an InterconnectAttachment.
17326
+ # Corresponds to the JSON property `labelFingerprint`
17327
+ # NOTE: Values are automatically base64 encoded/decoded in the client library.
17328
+ # @return [String]
17329
+ attr_accessor :label_fingerprint
17330
+
17331
+ # Labels for this resource. These can only be added or modified by the setLabels
17332
+ # method. Each label key/value pair must comply with RFC1035. Label values may
17333
+ # be empty.
17334
+ # Corresponds to the JSON property `labels`
17335
+ # @return [Hash<String,String>]
17336
+ attr_accessor :labels
17337
+
17055
17338
  # Maximum Transmission Unit (MTU), in bytes, of packets passing through this
17056
17339
  # interconnect attachment. Only 1440 and 1500 are allowed. If not specified, the
17057
17340
  # value will default to 1440.
@@ -17113,6 +17396,15 @@ module Google
17113
17396
  # @return [String]
17114
17397
  attr_accessor :region
17115
17398
 
17399
+ # [Output Only] If the attachment is on a Cross-Cloud Interconnect connection,
17400
+ # this field contains the interconnect's remote location service provider.
17401
+ # Example values: "Amazon Web Services" "Microsoft Azure". The field is set only
17402
+ # for attachments on Cross-Cloud Interconnect connections. Its value is copied
17403
+ # from the InterconnectRemoteLocation remoteService field.
17404
+ # Corresponds to the JSON property `remoteService`
17405
+ # @return [String]
17406
+ attr_accessor :remote_service
17407
+
17116
17408
  # URL of the Cloud Router to be used for dynamic routing. This router must be in
17117
17409
  # the same region as this InterconnectAttachment. The InterconnectAttachment
17118
17410
  # will automatically connect the Interconnect to the network & region within
@@ -17159,6 +17451,17 @@ module Google
17159
17451
  # @return [String]
17160
17452
  attr_accessor :state
17161
17453
 
17454
+ # Length of the IPv4 subnet mask. Allowed values: - 29 (default) - 30 The
17455
+ # default value is 29, except for Cross-Cloud Interconnect connections that use
17456
+ # an InterconnectRemoteLocation with a constraints.subnetLengthRange.min equal
17457
+ # to 30. For example, connections that use an Azure remote location fall into
17458
+ # this category. In these cases, the default value is 30, and requesting 29
17459
+ # returns an error. Where both 29 and 30 are allowed, 29 is preferred, because
17460
+ # it gives Google Cloud Support more debugging visibility.
17461
+ # Corresponds to the JSON property `subnetLength`
17462
+ # @return [Fixnum]
17463
+ attr_accessor :subnet_length
17464
+
17162
17465
  # The type of interconnect attachment this is, which can take one of the
17163
17466
  # following values: - DEDICATED: an attachment to a Dedicated Interconnect. -
17164
17467
  # PARTNER: an attachment to a Partner Interconnect, created by the customer. -
@@ -17187,6 +17490,7 @@ module Google
17187
17490
  @cloud_router_ip_address = args[:cloud_router_ip_address] if args.key?(:cloud_router_ip_address)
17188
17491
  @cloud_router_ipv6_address = args[:cloud_router_ipv6_address] if args.key?(:cloud_router_ipv6_address)
17189
17492
  @cloud_router_ipv6_interface_id = args[:cloud_router_ipv6_interface_id] if args.key?(:cloud_router_ipv6_interface_id)
17493
+ @configuration_constraints = args[:configuration_constraints] if args.key?(:configuration_constraints)
17190
17494
  @creation_timestamp = args[:creation_timestamp] if args.key?(:creation_timestamp)
17191
17495
  @customer_router_ip_address = args[:customer_router_ip_address] if args.key?(:customer_router_ip_address)
17192
17496
  @customer_router_ipv6_address = args[:customer_router_ipv6_address] if args.key?(:customer_router_ipv6_address)
@@ -17200,6 +17504,8 @@ module Google
17200
17504
  @interconnect = args[:interconnect] if args.key?(:interconnect)
17201
17505
  @ipsec_internal_addresses = args[:ipsec_internal_addresses] if args.key?(:ipsec_internal_addresses)
17202
17506
  @kind = args[:kind] if args.key?(:kind)
17507
+ @label_fingerprint = args[:label_fingerprint] if args.key?(:label_fingerprint)
17508
+ @labels = args[:labels] if args.key?(:labels)
17203
17509
  @mtu = args[:mtu] if args.key?(:mtu)
17204
17510
  @name = args[:name] if args.key?(:name)
17205
17511
  @operational_status = args[:operational_status] if args.key?(:operational_status)
@@ -17208,11 +17514,13 @@ module Google
17208
17514
  @partner_metadata = args[:partner_metadata] if args.key?(:partner_metadata)
17209
17515
  @private_interconnect_info = args[:private_interconnect_info] if args.key?(:private_interconnect_info)
17210
17516
  @region = args[:region] if args.key?(:region)
17517
+ @remote_service = args[:remote_service] if args.key?(:remote_service)
17211
17518
  @router = args[:router] if args.key?(:router)
17212
17519
  @satisfies_pzs = args[:satisfies_pzs] if args.key?(:satisfies_pzs)
17213
17520
  @self_link = args[:self_link] if args.key?(:self_link)
17214
17521
  @stack_type = args[:stack_type] if args.key?(:stack_type)
17215
17522
  @state = args[:state] if args.key?(:state)
17523
+ @subnet_length = args[:subnet_length] if args.key?(:subnet_length)
17216
17524
  @type = args[:type] if args.key?(:type)
17217
17525
  @vlan_tag8021q = args[:vlan_tag8021q] if args.key?(:vlan_tag8021q)
17218
17526
  end
@@ -17343,6 +17651,68 @@ module Google
17343
17651
  end
17344
17652
  end
17345
17653
 
17654
+ #
17655
+ class InterconnectAttachmentConfigurationConstraints
17656
+ include Google::Apis::Core::Hashable
17657
+
17658
+ # [Output Only] Whether the attachment's BGP session requires/allows/disallows
17659
+ # BGP MD5 authentication. This can take one of the following values:
17660
+ # MD5_OPTIONAL, MD5_REQUIRED, MD5_UNSUPPORTED. For example, a Cross-Cloud
17661
+ # Interconnect connection to a remote cloud provider that requires BGP MD5
17662
+ # authentication has the interconnectRemoteLocation
17663
+ # attachment_configuration_constraints.bgp_md5 field set to MD5_REQUIRED, and
17664
+ # that property is propagated to the attachment. Similarly, if BGP MD5 is
17665
+ # MD5_UNSUPPORTED, an error is returned if MD5 is requested.
17666
+ # Corresponds to the JSON property `bgpMd5`
17667
+ # @return [String]
17668
+ attr_accessor :bgp_md5
17669
+
17670
+ # [Output Only] List of ASN ranges that the remote location is known to support.
17671
+ # Formatted as an array of inclusive ranges `min: min-value, max: max-value`.
17672
+ # For example, [`min: 123, max: 123`, `min: 64512, max: 65534`] allows the peer
17673
+ # ASN to be 123 or anything in the range 64512-65534. This field is only
17674
+ # advisory. Although the API accepts other ranges, these are the ranges that we
17675
+ # recommend.
17676
+ # Corresponds to the JSON property `bgpPeerAsnRanges`
17677
+ # @return [Array<Google::Apis::ComputeV1::InterconnectAttachmentConfigurationConstraintsBgpPeerAsnRange>]
17678
+ attr_accessor :bgp_peer_asn_ranges
17679
+
17680
+ def initialize(**args)
17681
+ update!(**args)
17682
+ end
17683
+
17684
+ # Update properties of this object
17685
+ def update!(**args)
17686
+ @bgp_md5 = args[:bgp_md5] if args.key?(:bgp_md5)
17687
+ @bgp_peer_asn_ranges = args[:bgp_peer_asn_ranges] if args.key?(:bgp_peer_asn_ranges)
17688
+ end
17689
+ end
17690
+
17691
+ #
17692
+ class InterconnectAttachmentConfigurationConstraintsBgpPeerAsnRange
17693
+ include Google::Apis::Core::Hashable
17694
+
17695
+ #
17696
+ # Corresponds to the JSON property `max`
17697
+ # @return [Fixnum]
17698
+ attr_accessor :max
17699
+
17700
+ #
17701
+ # Corresponds to the JSON property `min`
17702
+ # @return [Fixnum]
17703
+ attr_accessor :min
17704
+
17705
+ def initialize(**args)
17706
+ update!(**args)
17707
+ end
17708
+
17709
+ # Update properties of this object
17710
+ def update!(**args)
17711
+ @max = args[:max] if args.key?(:max)
17712
+ @min = args[:min] if args.key?(:min)
17713
+ end
17714
+ end
17715
+
17346
17716
  # Response to the list request, and contains a list of interconnect attachments.
17347
17717
  class InterconnectAttachmentList
17348
17718
  include Google::Apis::Core::Hashable
@@ -18313,6 +18683,371 @@ module Google
18313
18683
  end
18314
18684
  end
18315
18685
 
18686
+ # Represents a Cross-Cloud Interconnect Remote Location resource. You can use
18687
+ # this resource to find remote location details about an Interconnect attachment
18688
+ # (VLAN).
18689
+ class InterconnectRemoteLocation
18690
+ include Google::Apis::Core::Hashable
18691
+
18692
+ # [Output Only] The postal address of the Point of Presence, each line in the
18693
+ # address is separated by a newline character.
18694
+ # Corresponds to the JSON property `address`
18695
+ # @return [String]
18696
+ attr_accessor :address
18697
+
18698
+ # [Output Only] Subset of fields from InterconnectAttachment's |
18699
+ # configurationConstraints| field that apply to all attachments for this remote
18700
+ # location.
18701
+ # Corresponds to the JSON property `attachmentConfigurationConstraints`
18702
+ # @return [Google::Apis::ComputeV1::InterconnectAttachmentConfigurationConstraints]
18703
+ attr_accessor :attachment_configuration_constraints
18704
+
18705
+ # [Output Only] Metropolitan area designator that indicates which city an
18706
+ # interconnect is located. For example: "Chicago, IL", "Amsterdam, Netherlands".
18707
+ # Corresponds to the JSON property `city`
18708
+ # @return [String]
18709
+ attr_accessor :city
18710
+
18711
+ # [Output Only] Constraints on the parameters for creating Cross-Cloud
18712
+ # Interconnect and associated InterconnectAttachments.
18713
+ # Corresponds to the JSON property `constraints`
18714
+ # @return [Google::Apis::ComputeV1::InterconnectRemoteLocationConstraints]
18715
+ attr_accessor :constraints
18716
+
18717
+ # [Output Only] Continent for this location, which can take one of the following
18718
+ # values: - AFRICA - ASIA_PAC - EUROPE - NORTH_AMERICA - SOUTH_AMERICA
18719
+ # Corresponds to the JSON property `continent`
18720
+ # @return [String]
18721
+ attr_accessor :continent
18722
+
18723
+ # [Output Only] Creation timestamp in RFC3339 text format.
18724
+ # Corresponds to the JSON property `creationTimestamp`
18725
+ # @return [String]
18726
+ attr_accessor :creation_timestamp
18727
+
18728
+ # [Output Only] An optional description of the resource.
18729
+ # Corresponds to the JSON property `description`
18730
+ # @return [String]
18731
+ attr_accessor :description
18732
+
18733
+ # [Output Only] The name of the provider for this facility (e.g., EQUINIX).
18734
+ # Corresponds to the JSON property `facilityProvider`
18735
+ # @return [String]
18736
+ attr_accessor :facility_provider
18737
+
18738
+ # [Output Only] A provider-assigned Identifier for this facility (e.g., Ashburn-
18739
+ # DC1).
18740
+ # Corresponds to the JSON property `facilityProviderFacilityId`
18741
+ # @return [String]
18742
+ attr_accessor :facility_provider_facility_id
18743
+
18744
+ # [Output Only] The unique identifier for the resource. This identifier is
18745
+ # defined by the server.
18746
+ # Corresponds to the JSON property `id`
18747
+ # @return [Fixnum]
18748
+ attr_accessor :id
18749
+
18750
+ # [Output Only] Type of the resource. Always compute#interconnectRemoteLocation
18751
+ # for interconnect remote locations.
18752
+ # Corresponds to the JSON property `kind`
18753
+ # @return [String]
18754
+ attr_accessor :kind
18755
+
18756
+ # [Output Only] Link Aggregation Control Protocol (LACP) constraints, which can
18757
+ # take one of the following values: LACP_SUPPORTED, LACP_UNSUPPORTED
18758
+ # Corresponds to the JSON property `lacp`
18759
+ # @return [String]
18760
+ attr_accessor :lacp
18761
+
18762
+ # [Output Only] The maximum number of 100 Gbps ports supported in a link
18763
+ # aggregation group (LAG). When linkType is 100 Gbps, requestedLinkCount cannot
18764
+ # exceed max_lag_size_100_gbps.
18765
+ # Corresponds to the JSON property `maxLagSize100Gbps`
18766
+ # @return [Fixnum]
18767
+ attr_accessor :max_lag_size100_gbps
18768
+
18769
+ # [Output Only] The maximum number of 10 Gbps ports supported in a link
18770
+ # aggregation group (LAG). When linkType is 10 Gbps, requestedLinkCount cannot
18771
+ # exceed max_lag_size_10_gbps.
18772
+ # Corresponds to the JSON property `maxLagSize10Gbps`
18773
+ # @return [Fixnum]
18774
+ attr_accessor :max_lag_size10_gbps
18775
+
18776
+ # [Output Only] Name of the resource.
18777
+ # Corresponds to the JSON property `name`
18778
+ # @return [String]
18779
+ attr_accessor :name
18780
+
18781
+ # [Output Only] The peeringdb identifier for this facility (corresponding with a
18782
+ # netfac type in peeringdb).
18783
+ # Corresponds to the JSON property `peeringdbFacilityId`
18784
+ # @return [String]
18785
+ attr_accessor :peeringdb_facility_id
18786
+
18787
+ # [Output Only] Permitted connections.
18788
+ # Corresponds to the JSON property `permittedConnections`
18789
+ # @return [Array<Google::Apis::ComputeV1::InterconnectRemoteLocationPermittedConnections>]
18790
+ attr_accessor :permitted_connections
18791
+
18792
+ # [Output Only] Indicates the service provider present at the remote location.
18793
+ # Example values: "Amazon Web Services", "Microsoft Azure".
18794
+ # Corresponds to the JSON property `remoteService`
18795
+ # @return [String]
18796
+ attr_accessor :remote_service
18797
+
18798
+ # [Output Only] Server-defined URL for the resource.
18799
+ # Corresponds to the JSON property `selfLink`
18800
+ # @return [String]
18801
+ attr_accessor :self_link
18802
+
18803
+ # [Output Only] The status of this InterconnectRemoteLocation, which can take
18804
+ # one of the following values: - CLOSED: The InterconnectRemoteLocation is
18805
+ # closed and is unavailable for provisioning new Cross-Cloud Interconnects. -
18806
+ # AVAILABLE: The InterconnectRemoteLocation is available for provisioning new
18807
+ # Cross-Cloud Interconnects.
18808
+ # Corresponds to the JSON property `status`
18809
+ # @return [String]
18810
+ attr_accessor :status
18811
+
18812
+ def initialize(**args)
18813
+ update!(**args)
18814
+ end
18815
+
18816
+ # Update properties of this object
18817
+ def update!(**args)
18818
+ @address = args[:address] if args.key?(:address)
18819
+ @attachment_configuration_constraints = args[:attachment_configuration_constraints] if args.key?(:attachment_configuration_constraints)
18820
+ @city = args[:city] if args.key?(:city)
18821
+ @constraints = args[:constraints] if args.key?(:constraints)
18822
+ @continent = args[:continent] if args.key?(:continent)
18823
+ @creation_timestamp = args[:creation_timestamp] if args.key?(:creation_timestamp)
18824
+ @description = args[:description] if args.key?(:description)
18825
+ @facility_provider = args[:facility_provider] if args.key?(:facility_provider)
18826
+ @facility_provider_facility_id = args[:facility_provider_facility_id] if args.key?(:facility_provider_facility_id)
18827
+ @id = args[:id] if args.key?(:id)
18828
+ @kind = args[:kind] if args.key?(:kind)
18829
+ @lacp = args[:lacp] if args.key?(:lacp)
18830
+ @max_lag_size100_gbps = args[:max_lag_size100_gbps] if args.key?(:max_lag_size100_gbps)
18831
+ @max_lag_size10_gbps = args[:max_lag_size10_gbps] if args.key?(:max_lag_size10_gbps)
18832
+ @name = args[:name] if args.key?(:name)
18833
+ @peeringdb_facility_id = args[:peeringdb_facility_id] if args.key?(:peeringdb_facility_id)
18834
+ @permitted_connections = args[:permitted_connections] if args.key?(:permitted_connections)
18835
+ @remote_service = args[:remote_service] if args.key?(:remote_service)
18836
+ @self_link = args[:self_link] if args.key?(:self_link)
18837
+ @status = args[:status] if args.key?(:status)
18838
+ end
18839
+ end
18840
+
18841
+ #
18842
+ class InterconnectRemoteLocationConstraints
18843
+ include Google::Apis::Core::Hashable
18844
+
18845
+ # [Output Only] Port pair remote location constraints, which can take one of the
18846
+ # following values: PORT_PAIR_UNCONSTRAINED_REMOTE_LOCATION,
18847
+ # PORT_PAIR_MATCHING_REMOTE_LOCATION. GCP's API refers only to individual ports,
18848
+ # but the UI uses this field when ordering a pair of ports, to prevent users
18849
+ # from accidentally ordering something that is incompatible with their cloud
18850
+ # provider. Specifically, when ordering a redundant pair of Cross-Cloud
18851
+ # Interconnect ports, and one of them uses a remote location with
18852
+ # portPairMatchingRemoteLocation set to matching, the UI requires that both
18853
+ # ports use the same remote location.
18854
+ # Corresponds to the JSON property `portPairRemoteLocation`
18855
+ # @return [String]
18856
+ attr_accessor :port_pair_remote_location
18857
+
18858
+ # [Output Only] Port pair VLAN constraints, which can take one of the following
18859
+ # values: PORT_PAIR_UNCONSTRAINED_VLAN, PORT_PAIR_MATCHING_VLAN
18860
+ # Corresponds to the JSON property `portPairVlan`
18861
+ # @return [String]
18862
+ attr_accessor :port_pair_vlan
18863
+
18864
+ # [Output Only] [min-length, max-length] The minimum and maximum value (
18865
+ # inclusive) for the IPv4 subnet length. For example, an
18866
+ # interconnectRemoteLocation for Azure has `min: 30, max: 30` because Azure
18867
+ # requires /30 subnets. This range specifies the values supported by both cloud
18868
+ # providers. Interconnect currently supports /29 and /30 IPv4 subnet lengths. If
18869
+ # a remote cloud has no constraint on IPv4 subnet length, the range would thus
18870
+ # be `min: 29, max: 30`.
18871
+ # Corresponds to the JSON property `subnetLengthRange`
18872
+ # @return [Google::Apis::ComputeV1::InterconnectRemoteLocationConstraintsSubnetLengthRange]
18873
+ attr_accessor :subnet_length_range
18874
+
18875
+ def initialize(**args)
18876
+ update!(**args)
18877
+ end
18878
+
18879
+ # Update properties of this object
18880
+ def update!(**args)
18881
+ @port_pair_remote_location = args[:port_pair_remote_location] if args.key?(:port_pair_remote_location)
18882
+ @port_pair_vlan = args[:port_pair_vlan] if args.key?(:port_pair_vlan)
18883
+ @subnet_length_range = args[:subnet_length_range] if args.key?(:subnet_length_range)
18884
+ end
18885
+ end
18886
+
18887
+ #
18888
+ class InterconnectRemoteLocationConstraintsSubnetLengthRange
18889
+ include Google::Apis::Core::Hashable
18890
+
18891
+ #
18892
+ # Corresponds to the JSON property `max`
18893
+ # @return [Fixnum]
18894
+ attr_accessor :max
18895
+
18896
+ #
18897
+ # Corresponds to the JSON property `min`
18898
+ # @return [Fixnum]
18899
+ attr_accessor :min
18900
+
18901
+ def initialize(**args)
18902
+ update!(**args)
18903
+ end
18904
+
18905
+ # Update properties of this object
18906
+ def update!(**args)
18907
+ @max = args[:max] if args.key?(:max)
18908
+ @min = args[:min] if args.key?(:min)
18909
+ end
18910
+ end
18911
+
18912
+ # Response to the list request, and contains a list of interconnect remote
18913
+ # locations.
18914
+ class InterconnectRemoteLocationList
18915
+ include Google::Apis::Core::Hashable
18916
+
18917
+ # [Output Only] Unique identifier for the resource; defined by the server.
18918
+ # Corresponds to the JSON property `id`
18919
+ # @return [String]
18920
+ attr_accessor :id
18921
+
18922
+ # A list of InterconnectRemoteLocation resources.
18923
+ # Corresponds to the JSON property `items`
18924
+ # @return [Array<Google::Apis::ComputeV1::InterconnectRemoteLocation>]
18925
+ attr_accessor :items
18926
+
18927
+ # [Output Only] Type of resource. Always compute#interconnectRemoteLocationList
18928
+ # for lists of interconnect remote locations.
18929
+ # Corresponds to the JSON property `kind`
18930
+ # @return [String]
18931
+ attr_accessor :kind
18932
+
18933
+ # [Output Only] This token lets you get the next page of results for list
18934
+ # requests. If the number of results is larger than maxResults, use the
18935
+ # nextPageToken as a value for the query parameter pageToken in the next list
18936
+ # request. Subsequent list requests will have their own nextPageToken to
18937
+ # continue paging through the results.
18938
+ # Corresponds to the JSON property `nextPageToken`
18939
+ # @return [String]
18940
+ attr_accessor :next_page_token
18941
+
18942
+ # [Output Only] Server-defined URL for this resource.
18943
+ # Corresponds to the JSON property `selfLink`
18944
+ # @return [String]
18945
+ attr_accessor :self_link
18946
+
18947
+ # [Output Only] Informational warning message.
18948
+ # Corresponds to the JSON property `warning`
18949
+ # @return [Google::Apis::ComputeV1::InterconnectRemoteLocationList::Warning]
18950
+ attr_accessor :warning
18951
+
18952
+ def initialize(**args)
18953
+ update!(**args)
18954
+ end
18955
+
18956
+ # Update properties of this object
18957
+ def update!(**args)
18958
+ @id = args[:id] if args.key?(:id)
18959
+ @items = args[:items] if args.key?(:items)
18960
+ @kind = args[:kind] if args.key?(:kind)
18961
+ @next_page_token = args[:next_page_token] if args.key?(:next_page_token)
18962
+ @self_link = args[:self_link] if args.key?(:self_link)
18963
+ @warning = args[:warning] if args.key?(:warning)
18964
+ end
18965
+
18966
+ # [Output Only] Informational warning message.
18967
+ class Warning
18968
+ include Google::Apis::Core::Hashable
18969
+
18970
+ # [Output Only] A warning code, if applicable. For example, Compute Engine
18971
+ # returns NO_RESULTS_ON_PAGE if there are no results in the response.
18972
+ # Corresponds to the JSON property `code`
18973
+ # @return [String]
18974
+ attr_accessor :code
18975
+
18976
+ # [Output Only] Metadata about this warning in key: value format. For example: "
18977
+ # data": [ ` "key": "scope", "value": "zones/us-east1-d" `
18978
+ # Corresponds to the JSON property `data`
18979
+ # @return [Array<Google::Apis::ComputeV1::InterconnectRemoteLocationList::Warning::Datum>]
18980
+ attr_accessor :data
18981
+
18982
+ # [Output Only] A human-readable description of the warning code.
18983
+ # Corresponds to the JSON property `message`
18984
+ # @return [String]
18985
+ attr_accessor :message
18986
+
18987
+ def initialize(**args)
18988
+ update!(**args)
18989
+ end
18990
+
18991
+ # Update properties of this object
18992
+ def update!(**args)
18993
+ @code = args[:code] if args.key?(:code)
18994
+ @data = args[:data] if args.key?(:data)
18995
+ @message = args[:message] if args.key?(:message)
18996
+ end
18997
+
18998
+ #
18999
+ class Datum
19000
+ include Google::Apis::Core::Hashable
19001
+
19002
+ # [Output Only] A key that provides more detail on the warning being returned.
19003
+ # For example, for warnings where there are no results in a list request for a
19004
+ # particular zone, this key might be scope and the key value might be the zone
19005
+ # name. Other examples might be a key indicating a deprecated resource and a
19006
+ # suggested replacement, or a warning about invalid network settings (for
19007
+ # example, if an instance attempts to perform IP forwarding but is not enabled
19008
+ # for IP forwarding).
19009
+ # Corresponds to the JSON property `key`
19010
+ # @return [String]
19011
+ attr_accessor :key
19012
+
19013
+ # [Output Only] A warning data value corresponding to the key.
19014
+ # Corresponds to the JSON property `value`
19015
+ # @return [String]
19016
+ attr_accessor :value
19017
+
19018
+ def initialize(**args)
19019
+ update!(**args)
19020
+ end
19021
+
19022
+ # Update properties of this object
19023
+ def update!(**args)
19024
+ @key = args[:key] if args.key?(:key)
19025
+ @value = args[:value] if args.key?(:value)
19026
+ end
19027
+ end
19028
+ end
19029
+ end
19030
+
19031
+ #
19032
+ class InterconnectRemoteLocationPermittedConnections
19033
+ include Google::Apis::Core::Hashable
19034
+
19035
+ # [Output Only] URL of an Interconnect location that is permitted to connect to
19036
+ # this Interconnect remote location.
19037
+ # Corresponds to the JSON property `interconnectLocation`
19038
+ # @return [String]
19039
+ attr_accessor :interconnect_location
19040
+
19041
+ def initialize(**args)
19042
+ update!(**args)
19043
+ end
19044
+
19045
+ # Update properties of this object
19046
+ def update!(**args)
19047
+ @interconnect_location = args[:interconnect_location] if args.key?(:interconnect_location)
19048
+ end
19049
+ end
19050
+
18316
19051
  # Response for the InterconnectsGetDiagnosticsRequest.
18317
19052
  class InterconnectsGetDiagnosticsResponse
18318
19053
  include Google::Apis::Core::Hashable
@@ -19341,7 +20076,7 @@ module Google
19341
20076
  # @return [Fixnum]
19342
20077
  attr_accessor :guest_accelerator_count
19343
20078
 
19344
- # The accelerator type resource name, not a full URL, e.g. 'nvidia-tesla-k80'.
20079
+ # The accelerator type resource name, not a full URL, e.g. nvidia-tesla-t4.
19345
20080
  # Corresponds to the JSON property `guestAcceleratorType`
19346
20081
  # @return [String]
19347
20082
  attr_accessor :guest_accelerator_type
@@ -20325,9 +21060,9 @@ module Google
20325
21060
  # @return [String]
20326
21061
  attr_accessor :description
20327
21062
 
20328
- # [Output Only] Fingerprint of this resource. A hash of the contents stored in
20329
- # this object. This field is used in optimistic locking. An up-to-date
20330
- # fingerprint must be provided in order to patch.
21063
+ # Fingerprint of this resource. A hash of the contents stored in this object.
21064
+ # This field is used in optimistic locking. An up-to-date fingerprint must be
21065
+ # provided in order to patch.
20331
21066
  # Corresponds to the JSON property `fingerprint`
20332
21067
  # NOTE: Values are automatically base64 encoded/decoded in the client library.
20333
21068
  # @return [String]
@@ -20355,6 +21090,10 @@ module Google
20355
21090
  attr_accessor :name
20356
21091
 
20357
21092
  # [Output Only] The URL of the network which the Network Attachment belongs to.
21093
+ # Practically it is inferred by fetching the network of the first subnetwork
21094
+ # associated. Because it is required that all the subnetworks must be from the
21095
+ # same network, it is assured that the Network Attachment belongs to the same
21096
+ # network as all the subnetworks.
20358
21097
  # Corresponds to the JSON property `network`
20359
21098
  # @return [String]
20360
21099
  attr_accessor :network
@@ -27627,6 +28366,37 @@ module Google
27627
28366
  end
27628
28367
  end
27629
28368
 
28369
+ #
28370
+ class RegionAddressesMoveRequest
28371
+ include Google::Apis::Core::Hashable
28372
+
28373
+ # An optional destination address description if intended to be different from
28374
+ # the source.
28375
+ # Corresponds to the JSON property `description`
28376
+ # @return [String]
28377
+ attr_accessor :description
28378
+
28379
+ # The URL of the destination address to move to. This can be a full or partial
28380
+ # URL. For example, the following are all valid URLs to a address: - https://www.
28381
+ # googleapis.com/compute/v1/projects/project/regions/region /addresses/address -
28382
+ # projects/project/regions/region/addresses/address Note that destination
28383
+ # project must be different from the source project. So /regions/region/
28384
+ # addresses/address is not valid partial url.
28385
+ # Corresponds to the JSON property `destinationAddress`
28386
+ # @return [String]
28387
+ attr_accessor :destination_address
28388
+
28389
+ def initialize(**args)
28390
+ update!(**args)
28391
+ end
28392
+
28393
+ # Update properties of this object
28394
+ def update!(**args)
28395
+ @description = args[:description] if args.key?(:description)
28396
+ @destination_address = args[:destination_address] if args.key?(:destination_address)
28397
+ end
28398
+ end
28399
+
27630
28400
  # Contains a list of autoscalers.
27631
28401
  class RegionAutoscalerList
27632
28402
  include Google::Apis::Core::Hashable
@@ -31768,9 +32538,8 @@ module Google
31768
32538
  # ranges in every Subnetwork are allowed to Nat. - LIST_OF_SUBNETWORKS: A list
31769
32539
  # of Subnetworks are allowed to Nat (specified in the field subnetwork below)
31770
32540
  # The default is SUBNETWORK_IP_RANGE_TO_NAT_OPTION_UNSPECIFIED. Note that if
31771
- # this field contains ALL_SUBNETWORKS_ALL_IP_RANGES or
31772
- # ALL_SUBNETWORKS_ALL_PRIMARY_IP_RANGES, then there should not be any other
31773
- # Router.Nat section in any Router for this network in this region.
32541
+ # this field contains ALL_SUBNETWORKS_ALL_IP_RANGES then there should not be any
32542
+ # other Router.Nat section in any Router for this network in this region.
31774
32543
  # Corresponds to the JSON property `sourceSubnetworkIpRangesToNat`
31775
32544
  # @return [String]
31776
32545
  attr_accessor :source_subnetwork_ip_ranges_to_nat
@@ -33175,6 +33944,24 @@ module Google
33175
33944
  # @return [String]
33176
33945
  attr_accessor :kind
33177
33946
 
33947
+ # A fingerprint for the labels being applied to this security policy, which is
33948
+ # essentially a hash of the labels set used for optimistic locking. The
33949
+ # fingerprint is initially generated by Compute Engine and changes after every
33950
+ # request to modify or update labels. You must always provide an up-to-date
33951
+ # fingerprint hash in order to update or change labels. To see the latest
33952
+ # fingerprint, make get() request to the security policy.
33953
+ # Corresponds to the JSON property `labelFingerprint`
33954
+ # NOTE: Values are automatically base64 encoded/decoded in the client library.
33955
+ # @return [String]
33956
+ attr_accessor :label_fingerprint
33957
+
33958
+ # Labels for this resource. These can only be added or modified by the setLabels
33959
+ # method. Each label key/value pair must comply with RFC1035. Label values may
33960
+ # be empty.
33961
+ # Corresponds to the JSON property `labels`
33962
+ # @return [Hash<String,String>]
33963
+ attr_accessor :labels
33964
+
33178
33965
  # Name of the resource. Provided by the client when the resource is created. The
33179
33966
  # name must be 1-63 characters long, and comply with RFC1035. Specifically, the
33180
33967
  # name must be 1-63 characters long and match the regular expression `[a-z]([-a-
@@ -33244,6 +34031,8 @@ module Google
33244
34031
  @fingerprint = args[:fingerprint] if args.key?(:fingerprint)
33245
34032
  @id = args[:id] if args.key?(:id)
33246
34033
  @kind = args[:kind] if args.key?(:kind)
34034
+ @label_fingerprint = args[:label_fingerprint] if args.key?(:label_fingerprint)
34035
+ @labels = args[:labels] if args.key?(:labels)
33247
34036
  @name = args[:name] if args.key?(:name)
33248
34037
  @recaptcha_options_config = args[:recaptcha_options_config] if args.key?(:recaptcha_options_config)
33249
34038
  @region = args[:region] if args.key?(:region)
@@ -34053,7 +34842,7 @@ module Google
34053
34842
  # describes how clients should authenticate with this service's backends.
34054
34843
  # clientTlsPolicy only applies to a global BackendService with the
34055
34844
  # loadBalancingScheme set to INTERNAL_SELF_MANAGED. If left blank,
34056
- # communications are not encrypted. Note: This field currently has no impact.
34845
+ # communications are not encrypted.
34057
34846
  # Corresponds to the JSON property `clientTlsPolicy`
34058
34847
  # @return [String]
34059
34848
  attr_accessor :client_tls_policy
@@ -34069,7 +34858,7 @@ module Google
34069
34858
  # provisions server identities. Only applies to a global BackendService with
34070
34859
  # loadBalancingScheme set to INTERNAL_SELF_MANAGED. Only applies when
34071
34860
  # BackendService has an attached clientTlsPolicy with clientCertificate (mTLS
34072
- # mode). Note: This field currently has no impact.
34861
+ # mode).
34073
34862
  # Corresponds to the JSON property `subjectAltNames`
34074
34863
  # @return [Array<String>]
34075
34864
  attr_accessor :subject_alt_names
@@ -34287,6 +35076,20 @@ module Google
34287
35076
  # @return [Google::Apis::ComputeV1::Uint128]
34288
35077
  attr_accessor :psc_service_attachment_id
34289
35078
 
35079
+ # This flag determines whether a consumer accept/reject list change can
35080
+ # reconcile the statuses of existing ACCEPTED or REJECTED PSC endpoints. - If
35081
+ # false, connection policy update will only affect existing PENDING PSC
35082
+ # endpoints. Existing ACCEPTED/REJECTED endpoints will remain untouched
35083
+ # regardless how the connection policy is modified . - If true, update will
35084
+ # affect both PENDING and ACCEPTED/REJECTED PSC endpoints. For example, an
35085
+ # ACCEPTED PSC endpoint will be moved to REJECTED if its project is added to the
35086
+ # reject list. For newly created service attachment, this boolean defaults to
35087
+ # true.
35088
+ # Corresponds to the JSON property `reconcileConnections`
35089
+ # @return [Boolean]
35090
+ attr_accessor :reconcile_connections
35091
+ alias_method :reconcile_connections?, :reconcile_connections
35092
+
34290
35093
  # [Output Only] URL of the region where the service attachment resides. This
34291
35094
  # field applies only to the region resource. You must specify this field as part
34292
35095
  # of the HTTP request URL. It is not settable as a field in the request body.
@@ -34326,6 +35129,7 @@ module Google
34326
35129
  @nat_subnets = args[:nat_subnets] if args.key?(:nat_subnets)
34327
35130
  @producer_forwarding_rule = args[:producer_forwarding_rule] if args.key?(:producer_forwarding_rule)
34328
35131
  @psc_service_attachment_id = args[:psc_service_attachment_id] if args.key?(:psc_service_attachment_id)
35132
+ @reconcile_connections = args[:reconcile_connections] if args.key?(:reconcile_connections)
34329
35133
  @region = args[:region] if args.key?(:region)
34330
35134
  @self_link = args[:self_link] if args.key?(:self_link)
34331
35135
  @target_service = args[:target_service] if args.key?(:target_service)
@@ -36594,8 +37398,8 @@ module Google
36594
37398
  # Whether to enable flow logging for this subnetwork. If this field is not
36595
37399
  # explicitly set, it will not appear in get listings. If not set the default
36596
37400
  # behavior is determined by the org policy, if there is no org policy specified,
36597
- # then it will default to disabled. This field isn't supported with the purpose
36598
- # field set to INTERNAL_HTTPS_LOAD_BALANCER.
37401
+ # then it will default to disabled. This field isn't supported if the subnet
37402
+ # purpose field is set to REGIONAL_MANAGED_PROXY.
36599
37403
  # Corresponds to the JSON property `enableFlowLogs`
36600
37404
  # @return [Boolean]
36601
37405
  attr_accessor :enable_flow_logs
@@ -36699,12 +37503,19 @@ module Google
36699
37503
  # @return [String]
36700
37504
  attr_accessor :private_ipv6_google_access
36701
37505
 
36702
- # The purpose of the resource. This field can be either PRIVATE_RFC_1918 or
36703
- # INTERNAL_HTTPS_LOAD_BALANCER. A subnetwork with purpose set to
36704
- # INTERNAL_HTTPS_LOAD_BALANCER is a user-created subnetwork that is reserved for
36705
- # Internal HTTP(S) Load Balancing. If unspecified, the purpose defaults to
36706
- # PRIVATE_RFC_1918. The enableFlowLogs field isn't supported with the purpose
36707
- # field set to INTERNAL_HTTPS_LOAD_BALANCER.
37506
+ # The purpose of the resource. This field can be either PRIVATE,
37507
+ # REGIONAL_MANAGED_PROXY, PRIVATE_SERVICE_CONNECT, or
37508
+ # INTERNAL_HTTPS_LOAD_BALANCER. PRIVATE is the default purpose for user-created
37509
+ # subnets or subnets that are automatically created in auto mode networks. A
37510
+ # subnet with purpose set to REGIONAL_MANAGED_PROXY is a user-created subnetwork
37511
+ # that is reserved for regional Envoy-based load balancers. A subnet with
37512
+ # purpose set to PRIVATE_SERVICE_CONNECT is used to publish services using
37513
+ # Private Service Connect. A subnet with purpose set to
37514
+ # INTERNAL_HTTPS_LOAD_BALANCER is a proxy-only subnet that can be used only by
37515
+ # regional internal HTTP(S) load balancers. Note that REGIONAL_MANAGED_PROXY is
37516
+ # the preferred setting for all regional Envoy load balancers. If unspecified,
37517
+ # the subnet purpose defaults to PRIVATE. The enableFlowLogs field isn't
37518
+ # supported if the subnet purpose field is set to REGIONAL_MANAGED_PROXY.
36708
37519
  # Corresponds to the JSON property `purpose`
36709
37520
  # @return [String]
36710
37521
  attr_accessor :purpose
@@ -36716,11 +37527,10 @@ module Google
36716
37527
  attr_accessor :region
36717
37528
 
36718
37529
  # The role of subnetwork. Currently, this field is only used when purpose =
36719
- # INTERNAL_HTTPS_LOAD_BALANCER. The value can be set to ACTIVE or BACKUP. An
36720
- # ACTIVE subnetwork is one that is currently being used for Internal HTTP(S)
36721
- # Load Balancing. A BACKUP subnetwork is one that is ready to be promoted to
36722
- # ACTIVE or is currently draining. This field can be updated with a patch
36723
- # request.
37530
+ # REGIONAL_MANAGED_PROXY. The value can be set to ACTIVE or BACKUP. An ACTIVE
37531
+ # subnetwork is one that is currently being used for Envoy-based load balancers
37532
+ # in a region. A BACKUP subnetwork is one that is ready to be promoted to ACTIVE
37533
+ # or is currently draining. This field can be updated with a patch request.
36724
37534
  # Corresponds to the JSON property `role`
36725
37535
  # @return [String]
36726
37536
  attr_accessor :role
@@ -37046,7 +37856,8 @@ module Google
37046
37856
  # Whether to enable flow logging for this subnetwork. If this field is not
37047
37857
  # explicitly set, it will not appear in get listings. If not set the default
37048
37858
  # behavior is determined by the org policy, if there is no org policy specified,
37049
- # then it will default to disabled.
37859
+ # then it will default to disabled. Flow logging isn't supported if the subnet
37860
+ # purpose field is set to REGIONAL_MANAGED_PROXY.
37050
37861
  # Corresponds to the JSON property `enable`
37051
37862
  # @return [Boolean]
37052
37863
  attr_accessor :enable
@@ -38065,7 +38876,9 @@ module Google
38065
38876
  class TargetHttpsProxiesSetCertificateMapRequest
38066
38877
  include Google::Apis::Core::Hashable
38067
38878
 
38068
- # URL of the Certificate Map to associate with this TargetHttpsProxy.
38879
+ # URL of the Certificate Map to associate with this TargetHttpsProxy. Accepted
38880
+ # format is //certificatemanager.googleapis.com/projects/`project `/locations/`
38881
+ # location`/certificateMaps/`resourceName`.
38069
38882
  # Corresponds to the JSON property `certificateMap`
38070
38883
  # @return [String]
38071
38884
  attr_accessor :certificate_map
@@ -38145,7 +38958,9 @@ module Google
38145
38958
 
38146
38959
  # URL of a certificate map that identifies a certificate map associated with the
38147
38960
  # given target proxy. This field can only be set for global target proxies. If
38148
- # set, sslCertificates will be ignored.
38961
+ # set, sslCertificates will be ignored. Accepted format is //certificatemanager.
38962
+ # googleapis.com/projects/`project `/locations/`location`/certificateMaps/`
38963
+ # resourceName`.
38149
38964
  # Corresponds to the JSON property `certificateMap`
38150
38965
  # @return [String]
38151
38966
  attr_accessor :certificate_map
@@ -39566,7 +40381,9 @@ module Google
39566
40381
  class TargetSslProxiesSetCertificateMapRequest
39567
40382
  include Google::Apis::Core::Hashable
39568
40383
 
39569
- # URL of the Certificate Map to associate with this TargetSslProxy.
40384
+ # URL of the Certificate Map to associate with this TargetSslProxy. Accepted
40385
+ # format is //certificatemanager.googleapis.com/projects/`project `/locations/`
40386
+ # location`/certificateMaps/`resourceName`.
39570
40387
  # Corresponds to the JSON property `certificateMap`
39571
40388
  # @return [String]
39572
40389
  attr_accessor :certificate_map
@@ -39631,7 +40448,9 @@ module Google
39631
40448
 
39632
40449
  # URL of a certificate map that identifies a certificate map associated with the
39633
40450
  # given target proxy. This field can only be set for global target proxies. If
39634
- # set, sslCertificates will be ignored.
40451
+ # set, sslCertificates will be ignored. Accepted format is //certificatemanager.
40452
+ # googleapis.com/projects/`project `/locations/`location`/certificateMaps/`
40453
+ # resourceName`.
39635
40454
  # Corresponds to the JSON property `certificateMap`
39636
40455
  # @return [String]
39637
40456
  attr_accessor :certificate_map
@@ -40338,6 +41157,25 @@ module Google
40338
41157
  # @return [String]
40339
41158
  attr_accessor :kind
40340
41159
 
41160
+ # A fingerprint for the labels being applied to this TargetVpnGateway, which is
41161
+ # essentially a hash of the labels set used for optimistic locking. The
41162
+ # fingerprint is initially generated by Compute Engine and changes after every
41163
+ # request to modify or update labels. You must always provide an up-to-date
41164
+ # fingerprint hash in order to update or change labels, otherwise the request
41165
+ # will fail with error 412 conditionNotMet. To see the latest fingerprint, make
41166
+ # a get() request to retrieve a TargetVpnGateway.
41167
+ # Corresponds to the JSON property `labelFingerprint`
41168
+ # NOTE: Values are automatically base64 encoded/decoded in the client library.
41169
+ # @return [String]
41170
+ attr_accessor :label_fingerprint
41171
+
41172
+ # Labels for this resource. These can only be added or modified by the setLabels
41173
+ # method. Each label key/value pair must comply with RFC1035. Label values may
41174
+ # be empty.
41175
+ # Corresponds to the JSON property `labels`
41176
+ # @return [Hash<String,String>]
41177
+ attr_accessor :labels
41178
+
40341
41179
  # Name of the resource. Provided by the client when the resource is created. The
40342
41180
  # name must be 1-63 characters long, and comply with RFC1035. Specifically, the
40343
41181
  # name must be 1-63 characters long and match the regular expression `[a-z]([-a-
@@ -40389,6 +41227,8 @@ module Google
40389
41227
  @forwarding_rules = args[:forwarding_rules] if args.key?(:forwarding_rules)
40390
41228
  @id = args[:id] if args.key?(:id)
40391
41229
  @kind = args[:kind] if args.key?(:kind)
41230
+ @label_fingerprint = args[:label_fingerprint] if args.key?(:label_fingerprint)
41231
+ @labels = args[:labels] if args.key?(:labels)
40392
41232
  @name = args[:name] if args.key?(:name)
40393
41233
  @network = args[:network] if args.key?(:network)
40394
41234
  @region = args[:region] if args.key?(:region)
@@ -41596,6 +42436,22 @@ module Google
41596
42436
  # @return [String]
41597
42437
  attr_accessor :path_prefix_rewrite
41598
42438
 
42439
+ # If specified, the pattern rewrites the URL path (based on the :path header)
42440
+ # using the HTTP template syntax. A corresponding path_template_match must be
42441
+ # specified. Any template variables must exist in the path_template_match field.
42442
+ # - -At least one variable must be specified in the path_template_match field -
42443
+ # You can omit variables from the rewritten URL - The * and ** operators cannot
42444
+ # be matched unless they have a corresponding variable name - e.g. `format=*` or
42445
+ # `var=**`. For example, a path_template_match of /static/`format=**` could be
42446
+ # rewritten as /static/content/`format` to prefix /content to the URL. Variables
42447
+ # can also be re-ordered in a rewrite, so that /`country`/`format`/`suffix=**`
42448
+ # can be rewritten as /content/`format`/`country`/`suffix`. At least one non-
42449
+ # empty routeRules[].matchRules[].path_template_match is required. Only one of
42450
+ # path_prefix_rewrite or path_template_rewrite may be specified.
42451
+ # Corresponds to the JSON property `pathTemplateRewrite`
42452
+ # @return [String]
42453
+ attr_accessor :path_template_rewrite
42454
+
41599
42455
  def initialize(**args)
41600
42456
  update!(**args)
41601
42457
  end
@@ -41604,6 +42460,7 @@ module Google
41604
42460
  def update!(**args)
41605
42461
  @host_rewrite = args[:host_rewrite] if args.key?(:host_rewrite)
41606
42462
  @path_prefix_rewrite = args[:path_prefix_rewrite] if args.key?(:path_prefix_rewrite)
42463
+ @path_template_rewrite = args[:path_template_rewrite] if args.key?(:path_template_rewrite)
41607
42464
  end
41608
42465
  end
41609
42466
 
@@ -41640,22 +42497,28 @@ module Google
41640
42497
  # @return [String]
41641
42498
  attr_accessor :network
41642
42499
 
41643
- # The purpose of the resource. This field can be either PRIVATE_RFC_1918 or
41644
- # INTERNAL_HTTPS_LOAD_BALANCER. A subnetwork with purpose set to
41645
- # INTERNAL_HTTPS_LOAD_BALANCER is a user-created subnetwork that is reserved for
41646
- # Internal HTTP(S) Load Balancing. If unspecified, the purpose defaults to
41647
- # PRIVATE_RFC_1918. The enableFlowLogs field isn't supported with the purpose
41648
- # field set to INTERNAL_HTTPS_LOAD_BALANCER.
42500
+ # The purpose of the resource. This field can be either PRIVATE,
42501
+ # REGIONAL_MANAGED_PROXY, PRIVATE_SERVICE_CONNECT, or
42502
+ # INTERNAL_HTTPS_LOAD_BALANCER. PRIVATE is the default purpose for user-created
42503
+ # subnets or subnets that are automatically created in auto mode networks. A
42504
+ # subnet with purpose set to REGIONAL_MANAGED_PROXY is a user-created subnetwork
42505
+ # that is reserved for regional Envoy-based load balancers. A subnet with
42506
+ # purpose set to PRIVATE_SERVICE_CONNECT is used to publish services using
42507
+ # Private Service Connect. A subnet with purpose set to
42508
+ # INTERNAL_HTTPS_LOAD_BALANCER is a proxy-only subnet that can be used only by
42509
+ # regional internal HTTP(S) load balancers. Note that REGIONAL_MANAGED_PROXY is
42510
+ # the preferred setting for all regional Envoy load balancers. If unspecified,
42511
+ # the subnet purpose defaults to PRIVATE. The enableFlowLogs field isn't
42512
+ # supported if the subnet purpose field is set to REGIONAL_MANAGED_PROXY.
41649
42513
  # Corresponds to the JSON property `purpose`
41650
42514
  # @return [String]
41651
42515
  attr_accessor :purpose
41652
42516
 
41653
42517
  # The role of subnetwork. Currently, this field is only used when purpose =
41654
- # INTERNAL_HTTPS_LOAD_BALANCER. The value can be set to ACTIVE or BACKUP. An
41655
- # ACTIVE subnetwork is one that is currently being used for Internal HTTP(S)
41656
- # Load Balancing. A BACKUP subnetwork is one that is ready to be promoted to
41657
- # ACTIVE or is currently draining. This field can be updated with a patch
41658
- # request.
42518
+ # REGIONAL_MANAGED_PROXY. The value can be set to ACTIVE or BACKUP. An ACTIVE
42519
+ # subnetwork is one that is currently being used for Envoy-based load balancers
42520
+ # in a region. A BACKUP subnetwork is one that is ready to be promoted to ACTIVE
42521
+ # or is currently draining. This field can be updated with a patch request.
41659
42522
  # Corresponds to the JSON property `role`
41660
42523
  # @return [String]
41661
42524
  attr_accessor :role
@@ -42541,7 +43404,7 @@ module Google
42541
43404
  attr_accessor :local_gateway_interface
42542
43405
 
42543
43406
  # The peer gateway interface this VPN tunnel is connected to, the peer gateway
42544
- # could either be an external VPN gateway or GCP VPN gateway.
43407
+ # could either be an external VPN gateway or a Google Cloud VPN gateway.
42545
43408
  # Corresponds to the JSON property `peerGatewayInterface`
42546
43409
  # @return [Fixnum]
42547
43410
  attr_accessor :peer_gateway_interface
@@ -42564,8 +43427,8 @@ module Google
42564
43427
  end
42565
43428
 
42566
43429
  # A VPN connection contains all VPN tunnels connected from this VpnGateway to
42567
- # the same peer gateway. The peer gateway could either be a external VPN gateway
42568
- # or GCP VPN gateway.
43430
+ # the same peer gateway. The peer gateway could either be an external VPN
43431
+ # gateway or a Google Cloud VPN gateway.
42569
43432
  class VpnGatewayStatusVpnConnection
42570
43433
  include Google::Apis::Core::Hashable
42571
43434
 
@@ -42798,6 +43661,25 @@ module Google
42798
43661
  # @return [String]
42799
43662
  attr_accessor :kind
42800
43663
 
43664
+ # A fingerprint for the labels being applied to this VpnTunnel, which is
43665
+ # essentially a hash of the labels set used for optimistic locking. The
43666
+ # fingerprint is initially generated by Compute Engine and changes after every
43667
+ # request to modify or update labels. You must always provide an up-to-date
43668
+ # fingerprint hash in order to update or change labels, otherwise the request
43669
+ # will fail with error 412 conditionNotMet. To see the latest fingerprint, make
43670
+ # a get() request to retrieve a VpnTunnel.
43671
+ # Corresponds to the JSON property `labelFingerprint`
43672
+ # NOTE: Values are automatically base64 encoded/decoded in the client library.
43673
+ # @return [String]
43674
+ attr_accessor :label_fingerprint
43675
+
43676
+ # Labels for this resource. These can only be added or modified by the setLabels
43677
+ # method. Each label key/value pair must comply with RFC1035. Label values may
43678
+ # be empty.
43679
+ # Corresponds to the JSON property `labels`
43680
+ # @return [Hash<String,String>]
43681
+ attr_accessor :labels
43682
+
42801
43683
  # Local traffic selector to use when establishing the VPN tunnel with the peer
42802
43684
  # VPN gateway. The value should be a CIDR formatted string, for example: 192.168.
42803
43685
  # 0.0/16. The ranges must be disjoint. Only IPv4 is supported.
@@ -42933,6 +43815,8 @@ module Google
42933
43815
  @id = args[:id] if args.key?(:id)
42934
43816
  @ike_version = args[:ike_version] if args.key?(:ike_version)
42935
43817
  @kind = args[:kind] if args.key?(:kind)
43818
+ @label_fingerprint = args[:label_fingerprint] if args.key?(:label_fingerprint)
43819
+ @labels = args[:labels] if args.key?(:labels)
42936
43820
  @local_traffic_selector = args[:local_traffic_selector] if args.key?(:local_traffic_selector)
42937
43821
  @name = args[:name] if args.key?(:name)
42938
43822
  @peer_external_gateway = args[:peer_external_gateway] if args.key?(:peer_external_gateway)