google-apis-compute_v1 0.65.0 → 0.67.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,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)