google-apis-compute_beta 0.112.0 → 0.114.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -3164,7 +3164,7 @@ module Google
3164
3164
  attr_accessor :client_ttl
3165
3165
 
3166
3166
  # Specifies the default TTL for cached content served by this origin for
3167
- # responses that do not have an existing valid TTL (max-age or s-max-age).
3167
+ # responses that do not have an existing valid TTL (max-age or s-maxage).
3168
3168
  # Setting a TTL of "0" means "always revalidate". The value of defaultTTL cannot
3169
3169
  # be set to a value greater than that of maxTTL, but can be equal. When the
3170
3170
  # cacheMode is set to FORCE_CACHE_ALL, the defaultTTL will overwrite the TTL set
@@ -3228,7 +3228,7 @@ module Google
3228
3228
  # that do not specify a max-stale directive. Stale responses that exceed the TTL
3229
3229
  # configured here will not be served. The default limit (max-stale) is 86400s (1
3230
3230
  # day), which will allow stale content to be served up to this limit beyond the
3231
- # max-age (or s-max-age) of a cached response. The maximum allowed value is
3231
+ # max-age (or s-maxage) of a cached response. The maximum allowed value is
3232
3232
  # 604800 (1 week). Set this to zero (0) to disable serve-while-stale.
3233
3233
  # Corresponds to the JSON property `serveWhileStale`
3234
3234
  # @return [Fixnum]
@@ -3913,7 +3913,7 @@ module Google
3913
3913
  # faster table lookup build times and host selection times. For more information
3914
3914
  # about Maglev, see https://ai.google/research/pubs/pub44824 This field is
3915
3915
  # applicable to either: - A regional backend service with the service_protocol
3916
- # set to HTTP, HTTPS, or HTTP2, and load_balancing_scheme set to
3916
+ # set to HTTP, HTTPS, HTTP2 or H2C, and load_balancing_scheme set to
3917
3917
  # INTERNAL_MANAGED. - A global backend service with the load_balancing_scheme
3918
3918
  # set to INTERNAL_SELF_MANAGED, INTERNAL_MANAGED, or EXTERNAL_MANAGED. If
3919
3919
  # sessionAffinity is not configured—that is, if session affinity remains at the
@@ -3996,11 +3996,11 @@ module Google
3996
3996
  attr_accessor :port_name
3997
3997
 
3998
3998
  # The protocol this BackendService uses to communicate with backends. Possible
3999
- # values are HTTP, HTTPS, HTTP2, TCP, SSL, UDP or GRPC. depending on the chosen
4000
- # load balancer or Traffic Director configuration. Refer to the documentation
4001
- # for the load balancers or for Traffic Director for more information. Must be
4002
- # set to GRPC when the backend service is referenced by a URL map that is bound
4003
- # to target gRPC proxy.
3999
+ # values are HTTP, HTTPS, HTTP2, H2C, TCP, SSL, UDP or GRPC. depending on the
4000
+ # chosen load balancer or Traffic Director configuration. Refer to the
4001
+ # documentation for the load balancers or for Traffic Director for more
4002
+ # information. Must be set to GRPC when the backend service is referenced by a
4003
+ # URL map that is bound to target gRPC proxy.
4004
4004
  # Corresponds to the JSON property `protocol`
4005
4005
  # @return [String]
4006
4006
  attr_accessor :protocol
@@ -4319,7 +4319,7 @@ module Google
4319
4319
  attr_accessor :client_ttl
4320
4320
 
4321
4321
  # Specifies the default TTL for cached content served by this origin for
4322
- # responses that do not have an existing valid TTL (max-age or s-max-age).
4322
+ # responses that do not have an existing valid TTL (max-age or s-maxage).
4323
4323
  # Setting a TTL of "0" means "always revalidate". The value of defaultTTL cannot
4324
4324
  # be set to a value greater than that of maxTTL, but can be equal. When the
4325
4325
  # cacheMode is set to FORCE_CACHE_ALL, the defaultTTL will overwrite the TTL set
@@ -4383,7 +4383,7 @@ module Google
4383
4383
  # that do not specify a max-stale directive. Stale responses that exceed the TTL
4384
4384
  # configured here will not be served. The default limit (max-stale) is 86400s (1
4385
4385
  # day), which will allow stale content to be served up to this limit beyond the
4386
- # max-age (or s-max-age) of a cached response. The maximum allowed value is
4386
+ # max-age (or s-maxage) of a cached response. The maximum allowed value is
4387
4387
  # 604800 (1 week). Set this to zero (0) to disable serve-while-stale.
4388
4388
  # Corresponds to the JSON property `serveWhileStale`
4389
4389
  # @return [Fixnum]
@@ -4753,16 +4753,28 @@ module Google
4753
4753
  # one of its backends is 64. - The maximum number of backend services with
4754
4754
  # fastIPMove in a VPC in a region is 64. - The network endpoints that are
4755
4755
  # attached to a backend of a backend service with fastIPMove cannot resolve to
4756
- # C3 machines. - Traffic directed to the leader by a static route next hop will
4757
- # not be redirected to a new leader by fast failover. Such traffic will only be
4758
- # redirected once an haPolicy.leader update has taken effect. Only traffic to
4759
- # the forwarding rule's virtual IP will be redirected to a new leader by fast
4760
- # failover. haPolicy.fastIPMove can be set only at backend service creation time.
4761
- # Once set, it cannot be updated. By default, fastIpMove is set to DISABLED.
4756
+ # Gen3+ machines for IPv6. - Traffic directed to the leader by a static route
4757
+ # next hop will not be redirected to a new leader by fast failover. Such traffic
4758
+ # will only be redirected once an haPolicy.leader update has taken effect. Only
4759
+ # traffic to the forwarding rule's virtual IP will be redirected to a new leader
4760
+ # by fast failover. haPolicy.fastIPMove can be set only at backend service
4761
+ # creation time. Once set, it cannot be updated. By default, fastIpMove is set
4762
+ # to DISABLED.
4762
4763
  # Corresponds to the JSON property `fastIPMove`
4763
4764
  # @return [String]
4764
4765
  attr_accessor :fast_ip_move
4765
4766
 
4767
+ # Selects one of the network endpoints attached to the backend NEGs of this
4768
+ # service as the active endpoint (the leader) that receives all traffic. When
4769
+ # the leader changes, there is no connection draining to persist existing
4770
+ # connections on the old leader. You are responsible for selecting a suitable
4771
+ # endpoint as the leader. For example, preferring a healthy endpoint over
4772
+ # unhealthy ones. Note that this service does not track backend endpoint health,
4773
+ # and selects the configured leader unconditionally.
4774
+ # Corresponds to the JSON property `leader`
4775
+ # @return [Google::Apis::ComputeBeta::BackendServiceHaPolicyLeader]
4776
+ attr_accessor :leader
4777
+
4766
4778
  def initialize(**args)
4767
4779
  update!(**args)
4768
4780
  end
@@ -4770,6 +4782,62 @@ module Google
4770
4782
  # Update properties of this object
4771
4783
  def update!(**args)
4772
4784
  @fast_ip_move = args[:fast_ip_move] if args.key?(:fast_ip_move)
4785
+ @leader = args[:leader] if args.key?(:leader)
4786
+ end
4787
+ end
4788
+
4789
+ #
4790
+ class BackendServiceHaPolicyLeader
4791
+ include Google::Apis::Core::Hashable
4792
+
4793
+ # A fully-qualified URL (starting with https://www.googleapis.com/) of the zonal
4794
+ # Network Endpoint Group (NEG) with `GCE_VM_IP` endpoints that the leader is
4795
+ # attached to. The leader's backendGroup must already be specified as a backend
4796
+ # of this backend service. Removing a backend that is designated as the leader's
4797
+ # backendGroup is not permitted.
4798
+ # Corresponds to the JSON property `backendGroup`
4799
+ # @return [String]
4800
+ attr_accessor :backend_group
4801
+
4802
+ # The network endpoint within the leader.backendGroup that is designated as the
4803
+ # leader. This network endpoint cannot be detached from the NEG specified in the
4804
+ # haPolicy.leader.backendGroup until the leader is updated with another network
4805
+ # endpoint, or the leader is removed from the haPolicy.
4806
+ # Corresponds to the JSON property `networkEndpoint`
4807
+ # @return [Google::Apis::ComputeBeta::BackendServiceHaPolicyLeaderNetworkEndpoint]
4808
+ attr_accessor :network_endpoint
4809
+
4810
+ def initialize(**args)
4811
+ update!(**args)
4812
+ end
4813
+
4814
+ # Update properties of this object
4815
+ def update!(**args)
4816
+ @backend_group = args[:backend_group] if args.key?(:backend_group)
4817
+ @network_endpoint = args[:network_endpoint] if args.key?(:network_endpoint)
4818
+ end
4819
+ end
4820
+
4821
+ #
4822
+ class BackendServiceHaPolicyLeaderNetworkEndpoint
4823
+ include Google::Apis::Core::Hashable
4824
+
4825
+ # The name of the VM instance of the leader network endpoint. The instance must
4826
+ # already be attached to the NEG specified in the haPolicy.leader.backendGroup.
4827
+ # The name must be 1-63 characters long, and comply with RFC1035. Authorization
4828
+ # requires the following IAM permission on the specified resource instance:
4829
+ # compute.instances.use
4830
+ # Corresponds to the JSON property `instance`
4831
+ # @return [String]
4832
+ attr_accessor :instance
4833
+
4834
+ def initialize(**args)
4835
+ update!(**args)
4836
+ end
4837
+
4838
+ # Update properties of this object
4839
+ def update!(**args)
4840
+ @instance = args[:instance] if args.key?(:instance)
4773
4841
  end
4774
4842
  end
4775
4843
 
@@ -6121,6 +6189,55 @@ module Google
6121
6189
  end
6122
6190
  end
6123
6191
 
6192
+ #
6193
+ class BulkSetLabelsRequest
6194
+ include Google::Apis::Core::Hashable
6195
+
6196
+ # The fingerprint of the previous set of labels for this resource, used to
6197
+ # detect conflicts. The fingerprint is initially generated by Compute Engine and
6198
+ # changes after every request to modify or update labels. You may optionally
6199
+ # provide an up-to-date fingerprint hash in order to update or change labels.
6200
+ # Make a get() request to the resource to get the latest fingerprint.
6201
+ # Corresponds to the JSON property `labelFingerprint`
6202
+ # NOTE: Values are automatically base64 encoded/decoded in the client library.
6203
+ # @return [String]
6204
+ attr_accessor :label_fingerprint
6205
+
6206
+ # The labels to set for this resource.
6207
+ # Corresponds to the JSON property `labels`
6208
+ # @return [Hash<String,String>]
6209
+ attr_accessor :labels
6210
+
6211
+ def initialize(**args)
6212
+ update!(**args)
6213
+ end
6214
+
6215
+ # Update properties of this object
6216
+ def update!(**args)
6217
+ @label_fingerprint = args[:label_fingerprint] if args.key?(:label_fingerprint)
6218
+ @labels = args[:labels] if args.key?(:labels)
6219
+ end
6220
+ end
6221
+
6222
+ #
6223
+ class BulkZoneSetLabelsRequest
6224
+ include Google::Apis::Core::Hashable
6225
+
6226
+ #
6227
+ # Corresponds to the JSON property `requests`
6228
+ # @return [Array<Google::Apis::ComputeBeta::BulkSetLabelsRequest>]
6229
+ attr_accessor :requests
6230
+
6231
+ def initialize(**args)
6232
+ update!(**args)
6233
+ end
6234
+
6235
+ # Update properties of this object
6236
+ def update!(**args)
6237
+ @requests = args[:requests] if args.key?(:requests)
6238
+ end
6239
+ end
6240
+
6124
6241
  #
6125
6242
  class BundledLocalSsds
6126
6243
  include Google::Apis::Core::Hashable
@@ -6150,8 +6267,8 @@ module Google
6150
6267
  class CacheInvalidationRule
6151
6268
  include Google::Apis::Core::Hashable
6152
6269
 
6153
- # [Preview] A list of cache tags used to identify cached objects. - Cache tags
6154
- # are specified when the response is first cached, by setting the `Cache-Tag`
6270
+ # A list of cache tags used to identify cached objects. - Cache tags are
6271
+ # specified when the response is first cached, by setting the `Cache-Tag`
6155
6272
  # response header at the origin. - Multiple cache tags in the same invalidation
6156
6273
  # request are treated as Boolean `OR` - for example, `tag1 OR tag2 OR tag3`. -
6157
6274
  # If other fields are also specified, these are treated as Boolean `AND` with
@@ -7184,11 +7301,6 @@ module Google
7184
7301
  # @return [String]
7185
7302
  attr_accessor :self_link
7186
7303
 
7187
- # [Output Only] Server-defined URL for this resource with the resource id.
7188
- # Corresponds to the JSON property `selfLinkWithId`
7189
- # @return [String]
7190
- attr_accessor :self_link_with_id
7191
-
7192
7304
  def initialize(**args)
7193
7305
  update!(**args)
7194
7306
  end
@@ -7201,7 +7313,6 @@ module Google
7201
7313
  @kind = args[:kind] if args.key?(:kind)
7202
7314
  @name = args[:name] if args.key?(:name)
7203
7315
  @self_link = args[:self_link] if args.key?(:self_link)
7204
- @self_link_with_id = args[:self_link_with_id] if args.key?(:self_link_with_id)
7205
7316
  end
7206
7317
  end
7207
7318
 
@@ -7515,6 +7626,47 @@ module Google
7515
7626
  end
7516
7627
  end
7517
7628
 
7629
+ # Represents a whole or partial calendar date, such as a birthday. The time of
7630
+ # day and time zone are either specified elsewhere or are insignificant. The
7631
+ # date is relative to the Gregorian Calendar. This can represent one of the
7632
+ # following: * A full date, with non-zero year, month, and day values. * A month
7633
+ # and day, with a zero year (for example, an anniversary). * A year on its own,
7634
+ # with a zero month and a zero day. * A year and month, with a zero day (for
7635
+ # example, a credit card expiration date). Related types: * google.type.
7636
+ # TimeOfDay * google.type.DateTime * google.protobuf.Timestamp
7637
+ class Date
7638
+ include Google::Apis::Core::Hashable
7639
+
7640
+ # Day of a month. Must be from 1 to 31 and valid for the year and month, or 0 to
7641
+ # specify a year by itself or a year and month where the day isn't significant.
7642
+ # Corresponds to the JSON property `day`
7643
+ # @return [Fixnum]
7644
+ attr_accessor :day
7645
+
7646
+ # Month of a year. Must be from 1 to 12, or 0 to specify a year without a month
7647
+ # and day.
7648
+ # Corresponds to the JSON property `month`
7649
+ # @return [Fixnum]
7650
+ attr_accessor :month
7651
+
7652
+ # Year of the date. Must be from 1 to 9999, or 0 to specify a date without a
7653
+ # year.
7654
+ # Corresponds to the JSON property `year`
7655
+ # @return [Fixnum]
7656
+ attr_accessor :year
7657
+
7658
+ def initialize(**args)
7659
+ update!(**args)
7660
+ end
7661
+
7662
+ # Update properties of this object
7663
+ def update!(**args)
7664
+ @day = args[:day] if args.key?(:day)
7665
+ @month = args[:month] if args.key?(:month)
7666
+ @year = args[:year] if args.key?(:year)
7667
+ end
7668
+ end
7669
+
7518
7670
  # Deprecation status for a public resource.
7519
7671
  class DeprecationStatus
7520
7672
  include Google::Apis::Core::Hashable
@@ -9964,6 +10116,11 @@ module Google
9964
10116
  # @return [String]
9965
10117
  attr_accessor :network
9966
10118
 
10119
+ # Additional firewall parameters.
10120
+ # Corresponds to the JSON property `params`
10121
+ # @return [Google::Apis::ComputeBeta::FirewallParams]
10122
+ attr_accessor :params
10123
+
9967
10124
  # Priority for this rule. This is an integer between `0` and `65535`, both
9968
10125
  # inclusive. The default value is `1000`. Relative priorities determine which
9969
10126
  # rule takes effect if multiple rules apply. Lower values indicate higher
@@ -10057,6 +10214,7 @@ module Google
10057
10214
  @log_config = args[:log_config] if args.key?(:log_config)
10058
10215
  @name = args[:name] if args.key?(:name)
10059
10216
  @network = args[:network] if args.key?(:network)
10217
+ @params = args[:params] if args.key?(:params)
10060
10218
  @priority = args[:priority] if args.key?(:priority)
10061
10219
  @self_link = args[:self_link] if args.key?(:self_link)
10062
10220
  @source_ranges = args[:source_ranges] if args.key?(:source_ranges)
@@ -10275,6 +10433,32 @@ module Google
10275
10433
  end
10276
10434
  end
10277
10435
 
10436
+ # Additional firewall parameters.
10437
+ class FirewallParams
10438
+ include Google::Apis::Core::Hashable
10439
+
10440
+ # Tag keys/values directly bound to this resource. Tag keys and values have the
10441
+ # same definition as resource manager tags. The field is allowed for INSERT only.
10442
+ # The keys/values to set on the resource should be specified in either ID ` : `
10443
+ # or Namespaced format ` : `. For example the following are valid inputs: * `"
10444
+ # tagKeys/333" : "tagValues/444", "tagKeys/123" : "tagValues/456"` * `"123/
10445
+ # environment" : "production", "345/abc" : "xyz"` Note: * Invalid combinations
10446
+ # of ID & namespaced format is not supported. For instance: `"123/environment" :
10447
+ # "tagValues/444"` is invalid.
10448
+ # Corresponds to the JSON property `resourceManagerTags`
10449
+ # @return [Hash<String,String>]
10450
+ attr_accessor :resource_manager_tags
10451
+
10452
+ def initialize(**args)
10453
+ update!(**args)
10454
+ end
10455
+
10456
+ # Update properties of this object
10457
+ def update!(**args)
10458
+ @resource_manager_tags = args[:resource_manager_tags] if args.key?(:resource_manager_tags)
10459
+ end
10460
+ end
10461
+
10278
10462
  #
10279
10463
  class FirewallPoliciesListAssociationsResponse
10280
10464
  include Google::Apis::Core::Hashable
@@ -10562,6 +10746,15 @@ module Google
10562
10746
  # @return [String]
10563
10747
  attr_accessor :name
10564
10748
 
10749
+ # An integer indicating the priority of an association. The priority must be a
10750
+ # positive value between 1 and 2147483647. Firewall Policies are evaluated from
10751
+ # highest to lowest priority where 1 is the highest priority and 2147483647 is
10752
+ # the lowest priority. The default value is `1000`. If two associations have the
10753
+ # same priority then lexicographical order on association names is applied.
10754
+ # Corresponds to the JSON property `priority`
10755
+ # @return [Fixnum]
10756
+ attr_accessor :priority
10757
+
10565
10758
  # [Output Only] The short name of the firewall policy of the association.
10566
10759
  # Corresponds to the JSON property `shortName`
10567
10760
  # @return [String]
@@ -10577,6 +10770,7 @@ module Google
10577
10770
  @display_name = args[:display_name] if args.key?(:display_name)
10578
10771
  @firewall_policy_id = args[:firewall_policy_id] if args.key?(:firewall_policy_id)
10579
10772
  @name = args[:name] if args.key?(:name)
10773
+ @priority = args[:priority] if args.key?(:priority)
10580
10774
  @short_name = args[:short_name] if args.key?(:short_name)
10581
10775
  end
10582
10776
  end
@@ -11988,6 +12182,12 @@ module Google
11988
12182
  # @return [String]
11989
12183
  attr_accessor :description
11990
12184
 
12185
+ # Indicates if this group of VMs have emergent maintenance enabled.
12186
+ # Corresponds to the JSON property `enableEmergentMaintenance`
12187
+ # @return [Boolean]
12188
+ attr_accessor :enable_emergent_maintenance
12189
+ alias_method :enable_emergent_maintenance?, :enable_emergent_maintenance
12190
+
11991
12191
  # [Output Only] A unique identifier for this future reservation. The server
11992
12192
  # defines this identifier.
11993
12193
  # Corresponds to the JSON property `id`
@@ -12101,6 +12301,7 @@ module Google
12101
12301
  @creation_timestamp = args[:creation_timestamp] if args.key?(:creation_timestamp)
12102
12302
  @deployment_type = args[:deployment_type] if args.key?(:deployment_type)
12103
12303
  @description = args[:description] if args.key?(:description)
12304
+ @enable_emergent_maintenance = args[:enable_emergent_maintenance] if args.key?(:enable_emergent_maintenance)
12104
12305
  @id = args[:id] if args.key?(:id)
12105
12306
  @kind = args[:kind] if args.key?(:kind)
12106
12307
  @name = args[:name] if args.key?(:name)
@@ -13114,6 +13315,59 @@ module Google
13114
13315
  end
13115
13316
  end
13116
13317
 
13318
+ #
13319
+ class GrpctlsHealthCheck
13320
+ include Google::Apis::Core::Hashable
13321
+
13322
+ # The gRPC service name for the health check. This field is optional. The value
13323
+ # of grpc_service_name has the following meanings by convention: - Empty
13324
+ # service_name means the overall status of all services at the backend. - Non-
13325
+ # empty service_name means the health of that gRPC service, as defined by the
13326
+ # owner of the service. The grpc_service_name can only be ASCII.
13327
+ # Corresponds to the JSON property `grpcServiceName`
13328
+ # @return [String]
13329
+ attr_accessor :grpc_service_name
13330
+
13331
+ # The TCP port number to which the health check prober sends packets. Valid
13332
+ # values are 1 through 65535.
13333
+ # Corresponds to the JSON property `port`
13334
+ # @return [Fixnum]
13335
+ attr_accessor :port
13336
+
13337
+ # Specifies how a port is selected for health checking. Can be one of the
13338
+ # following values: USE_FIXED_PORT: Specifies a port number explicitly using the
13339
+ # port field in the health check. Supported by backend services for passthrough
13340
+ # load balancers and backend services for proxy load balancers. Not supported by
13341
+ # target pools. The health check supports all backends supported by the backend
13342
+ # service provided the backend can be health checked. For example, GCE_VM_IP
13343
+ # network endpoint groups, GCE_VM_IP_PORT network endpoint groups, and instance
13344
+ # group backends. USE_NAMED_PORT: Not supported. USE_SERVING_PORT: Provides an
13345
+ # indirect method of specifying the health check port by referring to the
13346
+ # backend service. Only supported by backend services for proxy load balancers.
13347
+ # Not supported by target pools. Not supported by backend services for
13348
+ # passthrough load balancers. Supports all backends that can be health checked;
13349
+ # for example, GCE_VM_IP_PORT network endpoint groups and instance group
13350
+ # backends. For GCE_VM_IP_PORT network endpoint group backends, the health check
13351
+ # uses the port number specified for each endpoint in the network endpoint group.
13352
+ # For instance group backends, the health check uses the port number determined
13353
+ # by looking up the backend service's named port in the instance group's list of
13354
+ # named ports.
13355
+ # Corresponds to the JSON property `portSpecification`
13356
+ # @return [String]
13357
+ attr_accessor :port_specification
13358
+
13359
+ def initialize(**args)
13360
+ update!(**args)
13361
+ end
13362
+
13363
+ # Update properties of this object
13364
+ def update!(**args)
13365
+ @grpc_service_name = args[:grpc_service_name] if args.key?(:grpc_service_name)
13366
+ @port = args[:port] if args.key?(:port)
13367
+ @port_specification = args[:port_specification] if args.key?(:port_specification)
13368
+ end
13369
+ end
13370
+
13117
13371
  #
13118
13372
  class GlobalAddressesMoveRequest
13119
13373
  include Google::Apis::Core::Hashable
@@ -13484,8 +13738,8 @@ module Google
13484
13738
  # values. Set to one or more of the following values: - VIRTIO_SCSI_MULTIQUEUE -
13485
13739
  # WINDOWS - MULTI_IP_SUBNET - UEFI_COMPATIBLE - GVNIC - SEV_CAPABLE -
13486
13740
  # SUSPEND_RESUME_COMPATIBLE - SEV_LIVE_MIGRATABLE_V2 - SEV_SNP_CAPABLE -
13487
- # TDX_CAPABLE - IDPF For more information, see Enabling guest operating system
13488
- # features.
13741
+ # TDX_CAPABLE - IDPF - SNP_SVSM_CAPABLE For more information, see Enabling guest
13742
+ # operating system features.
13489
13743
  # Corresponds to the JSON property `type`
13490
13744
  # @return [String]
13491
13745
  attr_accessor :type
@@ -13784,6 +14038,11 @@ module Google
13784
14038
  # @return [Google::Apis::ComputeBeta::GrpcHealthCheck]
13785
14039
  attr_accessor :grpc_health_check
13786
14040
 
14041
+ #
14042
+ # Corresponds to the JSON property `grpcTlsHealthCheck`
14043
+ # @return [Google::Apis::ComputeBeta::GrpctlsHealthCheck]
14044
+ attr_accessor :grpc_tls_health_check
14045
+
13787
14046
  # A so-far unhealthy instance will be marked healthy after this many consecutive
13788
14047
  # successes. The default value is 2.
13789
14048
  # Corresponds to the JSON property `healthyThreshold`
@@ -13898,6 +14157,7 @@ module Google
13898
14157
  @creation_timestamp = args[:creation_timestamp] if args.key?(:creation_timestamp)
13899
14158
  @description = args[:description] if args.key?(:description)
13900
14159
  @grpc_health_check = args[:grpc_health_check] if args.key?(:grpc_health_check)
14160
+ @grpc_tls_health_check = args[:grpc_tls_health_check] if args.key?(:grpc_tls_health_check)
13901
14161
  @healthy_threshold = args[:healthy_threshold] if args.key?(:healthy_threshold)
13902
14162
  @http2_health_check = args[:http2_health_check] if args.key?(:http2_health_check)
13903
14163
  @http_health_check = args[:http_health_check] if args.key?(:http_health_check)
@@ -18152,11 +18412,12 @@ module Google
18152
18412
  class InstanceGroupManagerInstanceLifecyclePolicy
18153
18413
  include Google::Apis::Core::Hashable
18154
18414
 
18155
- # The action that a MIG performs on a failed or an unhealthy VM. A VM is marked
18156
- # as unhealthy when the application running on that VM fails a health check.
18157
- # Valid values are - REPAIR (default): MIG automatically repairs a failed or an
18158
- # unhealthy VM by recreating it. For more information, see About repairing VMs
18159
- # in a MIG. - DO_NOTHING: MIG does not repair a failed or an unhealthy VM.
18415
+ # The action that a MIG performs on a failed VM. If the value of the
18416
+ # onFailedHealthCheck field is `DEFAULT_ACTION`, then the same action also
18417
+ # applies to the VMs on which your application fails a health check. Valid
18418
+ # values are - REPAIR (default): MIG automatically repairs a failed VM by
18419
+ # recreating it. For more information, see About repairing VMs in a MIG. -
18420
+ # DO_NOTHING: MIG does not repair a failed VM.
18160
18421
  # Corresponds to the JSON property `defaultActionOnFailure`
18161
18422
  # @return [String]
18162
18423
  attr_accessor :default_action_on_failure
@@ -18362,6 +18623,14 @@ module Google
18362
18623
  # @return [Fixnum]
18363
18624
  attr_accessor :id
18364
18625
 
18626
+ # The names of instances to be created by this resize request. The number of
18627
+ # names specified determines the number of instances to create. The group's
18628
+ # target size will be increased by this number. This field cannot be used
18629
+ # together with 'resize_by'.
18630
+ # Corresponds to the JSON property `instances`
18631
+ # @return [Array<Google::Apis::ComputeBeta::PerInstanceConfig>]
18632
+ attr_accessor :instances
18633
+
18365
18634
  # [Output Only] The resource type, which is always compute#
18366
18635
  # instanceGroupManagerResizeRequest for resize requests.
18367
18636
  # Corresponds to the JSON property `kind`
@@ -18431,6 +18700,7 @@ module Google
18431
18700
  @creation_timestamp = args[:creation_timestamp] if args.key?(:creation_timestamp)
18432
18701
  @description = args[:description] if args.key?(:description)
18433
18702
  @id = args[:id] if args.key?(:id)
18703
+ @instances = args[:instances] if args.key?(:instances)
18434
18704
  @kind = args[:kind] if args.key?(:kind)
18435
18705
  @name = args[:name] if args.key?(:name)
18436
18706
  @region = args[:region] if args.key?(:region)
@@ -21477,7 +21747,7 @@ module Google
21477
21747
  class InstancesReportHostAsFaultyRequest
21478
21748
  include Google::Apis::Core::Hashable
21479
21749
 
21480
- # The disruption schedule for the VM. Default to IMMEDIATE.
21750
+ # The disruption schedule for the VM. Required field, only allows IMMEDIATE.
21481
21751
  # Corresponds to the JSON property `disruptionSchedule`
21482
21752
  # @return [String]
21483
21753
  attr_accessor :disruption_schedule
@@ -22458,6 +22728,12 @@ module Google
22458
22728
  # @return [Array<String>]
22459
22729
  attr_accessor :interconnect_attachments
22460
22730
 
22731
+ # [Output Only] URLs of InterconnectGroups that include this Interconnect. Order
22732
+ # is arbitrary and items are unique.
22733
+ # Corresponds to the JSON property `interconnectGroups`
22734
+ # @return [Array<String>]
22735
+ attr_accessor :interconnect_groups
22736
+
22461
22737
  # Type of interconnect, which can take one of the following values: - PARTNER: A
22462
22738
  # partner-managed interconnection shared between customers though a partner. -
22463
22739
  # DEDICATED: A dedicated physical interconnection with the customer. Note that a
@@ -22633,6 +22909,7 @@ module Google
22633
22909
  @google_reference_id = args[:google_reference_id] if args.key?(:google_reference_id)
22634
22910
  @id = args[:id] if args.key?(:id)
22635
22911
  @interconnect_attachments = args[:interconnect_attachments] if args.key?(:interconnect_attachments)
22912
+ @interconnect_groups = args[:interconnect_groups] if args.key?(:interconnect_groups)
22636
22913
  @interconnect_type = args[:interconnect_type] if args.key?(:interconnect_type)
22637
22914
  @kind = args[:kind] if args.key?(:kind)
22638
22915
  @label_fingerprint = args[:label_fingerprint] if args.key?(:label_fingerprint)
@@ -22768,6 +23045,11 @@ module Google
22768
23045
  attr_accessor :admin_enabled
22769
23046
  alias_method :admin_enabled?, :admin_enabled
22770
23047
 
23048
+ # [Output Only] URL of the AttachmentGroup that includes this Attachment.
23049
+ # Corresponds to the JSON property `attachmentGroup`
23050
+ # @return [String]
23051
+ attr_accessor :attachment_group
23052
+
22771
23053
  # Provisioned bandwidth capacity for the interconnect attachment. For
22772
23054
  # attachments of type DEDICATED, the user can set the bandwidth. For attachments
22773
23055
  # of type PARTNER, the Google Partner that is operating the interconnect must
@@ -22781,6 +23063,38 @@ module Google
22781
23063
  # @return [String]
22782
23064
  attr_accessor :bandwidth
22783
23065
 
23066
+ # Single IPv4 address + prefix length to be configured on the cloud router
23067
+ # interface for this interconnect attachment. - Both
23068
+ # candidate_cloud_router_ip_address and candidate_customer_router_ip_address
23069
+ # fields must be set or both must be unset. - Prefix length of both
23070
+ # candidate_cloud_router_ip_address and candidate_customer_router_ip_address
23071
+ # must be the same. - Max prefix length is 31.
23072
+ # Corresponds to the JSON property `candidateCloudRouterIpAddress`
23073
+ # @return [String]
23074
+ attr_accessor :candidate_cloud_router_ip_address
23075
+
23076
+ # Single IPv6 address + prefix length to be configured on the cloud router
23077
+ # interface for this interconnect attachment. - Both
23078
+ # candidate_cloud_router_ipv6_address and candidate_customer_router_ipv6_address
23079
+ # fields must be set or both must be unset. - Prefix length of both
23080
+ # candidate_cloud_router_ipv6_address and candidate_customer_router_ipv6_address
23081
+ # must be the same. - Max prefix length is 126.
23082
+ # Corresponds to the JSON property `candidateCloudRouterIpv6Address`
23083
+ # @return [String]
23084
+ attr_accessor :candidate_cloud_router_ipv6_address
23085
+
23086
+ # Single IPv4 address + prefix length to be configured on the customer router
23087
+ # interface for this interconnect attachment.
23088
+ # Corresponds to the JSON property `candidateCustomerRouterIpAddress`
23089
+ # @return [String]
23090
+ attr_accessor :candidate_customer_router_ip_address
23091
+
23092
+ # Single IPv6 address + prefix length to be configured on the customer router
23093
+ # interface for this interconnect attachment.
23094
+ # Corresponds to the JSON property `candidateCustomerRouterIpv6Address`
23095
+ # @return [String]
23096
+ attr_accessor :candidate_customer_router_ipv6_address
23097
+
22784
23098
  # This field is not available.
22785
23099
  # Corresponds to the JSON property `candidateIpv6Subnets`
22786
23100
  # @return [Array<String>]
@@ -22941,8 +23255,8 @@ module Google
22941
23255
  attr_accessor :labels
22942
23256
 
22943
23257
  # Maximum Transmission Unit (MTU), in bytes, of packets passing through this
22944
- # interconnect attachment. Only 1440 and 1500 are allowed. If not specified, the
22945
- # value will default to 1440.
23258
+ # interconnect attachment. Valid values are 1440, 1460, 1500, and 8896. If not
23259
+ # specified, the value will default to 1440.
22946
23260
  # Corresponds to the JSON property `mtu`
22947
23261
  # @return [Fixnum]
22948
23262
  attr_accessor :mtu
@@ -23088,7 +23402,12 @@ module Google
23088
23402
  # Update properties of this object
23089
23403
  def update!(**args)
23090
23404
  @admin_enabled = args[:admin_enabled] if args.key?(:admin_enabled)
23405
+ @attachment_group = args[:attachment_group] if args.key?(:attachment_group)
23091
23406
  @bandwidth = args[:bandwidth] if args.key?(:bandwidth)
23407
+ @candidate_cloud_router_ip_address = args[:candidate_cloud_router_ip_address] if args.key?(:candidate_cloud_router_ip_address)
23408
+ @candidate_cloud_router_ipv6_address = args[:candidate_cloud_router_ipv6_address] if args.key?(:candidate_cloud_router_ipv6_address)
23409
+ @candidate_customer_router_ip_address = args[:candidate_customer_router_ip_address] if args.key?(:candidate_customer_router_ip_address)
23410
+ @candidate_customer_router_ipv6_address = args[:candidate_customer_router_ipv6_address] if args.key?(:candidate_customer_router_ipv6_address)
23092
23411
  @candidate_ipv6_subnets = args[:candidate_ipv6_subnets] if args.key?(:candidate_ipv6_subnets)
23093
23412
  @candidate_subnets = args[:candidate_subnets] if args.key?(:candidate_subnets)
23094
23413
  @cloud_router_ip_address = args[:cloud_router_ip_address] if args.key?(:cloud_router_ip_address)
@@ -23317,22 +23636,432 @@ module Google
23317
23636
  end
23318
23637
  end
23319
23638
 
23320
- # Response to the list request, and contains a list of interconnect attachments.
23321
- class InterconnectAttachmentList
23639
+ # An interconnect attachment group resource allows customers to create, analyze,
23640
+ # and expand highly available deployments.
23641
+ class InterconnectAttachmentGroup
23322
23642
  include Google::Apis::Core::Hashable
23323
23643
 
23644
+ # Attachments in the AttachmentGroup. Keys are arbitrary user-specified strings.
23645
+ # Users are encouraged, but not required, to use their preferred format for
23646
+ # resource links as keys. Note that there are add-members and remove-members
23647
+ # methods in gcloud. The size of this map is limited by an "Attachments per
23648
+ # group" quota.
23649
+ # Corresponds to the JSON property `attachments`
23650
+ # @return [Hash<String,Google::Apis::ComputeBeta::InterconnectAttachmentGroupAttachment>]
23651
+ attr_accessor :attachments
23652
+
23653
+ # [Output Only] The redundancy this group is configured to support. The way a
23654
+ # user queries what SLA their Attachment gets is by looking at this field of the
23655
+ # Attachment's AttachmentGroup.
23656
+ # Corresponds to the JSON property `configured`
23657
+ # @return [Google::Apis::ComputeBeta::InterconnectAttachmentGroupConfigured]
23658
+ attr_accessor :configured
23659
+
23660
+ # [Output Only] Creation timestamp in RFC3339 text format.
23661
+ # Corresponds to the JSON property `creationTimestamp`
23662
+ # @return [String]
23663
+ attr_accessor :creation_timestamp
23664
+
23665
+ # An optional description of this resource. Provide this property when you
23666
+ # create the resource.
23667
+ # Corresponds to the JSON property `description`
23668
+ # @return [String]
23669
+ attr_accessor :description
23670
+
23671
+ # Opaque system-generated token that uniquely identifies the configuration. If
23672
+ # provided when patching a configuration in update mode, the provided token must
23673
+ # match the current token or the update is rejected. This provides a reliable
23674
+ # means of doing read-modify-write (optimistic locking) as described by AIP 154.
23675
+ # Corresponds to the JSON property `etag`
23676
+ # @return [String]
23677
+ attr_accessor :etag
23678
+
23679
+ # [Output Only] The unique identifier for the resource type. The server
23680
+ # generates this identifier.
23681
+ # Corresponds to the JSON property `id`
23682
+ # @return [Fixnum]
23683
+ attr_accessor :id
23684
+
23685
+ # The user's intent for this AttachmentGroup. This is the only required field
23686
+ # besides the name that must be specified on group creation.
23687
+ # Corresponds to the JSON property `intent`
23688
+ # @return [Google::Apis::ComputeBeta::InterconnectAttachmentGroupIntent]
23689
+ attr_accessor :intent
23690
+
23691
+ # The URL of an InterconnectGroup that groups these Attachments' Interconnects.
23692
+ # Customers do not need to set this unless directed by Google Support.
23693
+ # Corresponds to the JSON property `interconnectGroup`
23694
+ # @return [String]
23695
+ attr_accessor :interconnect_group
23696
+
23697
+ # [Output Only] Type of the resource. Always compute#interconnectAttachmentGroup.
23698
+ # Corresponds to the JSON property `kind`
23699
+ # @return [String]
23700
+ attr_accessor :kind
23701
+
23702
+ # [Output Only] An analysis of the logical layout of Attachments in this group.
23703
+ # Every Attachment in the group is shown once in this structure.
23704
+ # Corresponds to the JSON property `logicalStructure`
23705
+ # @return [Google::Apis::ComputeBeta::InterconnectAttachmentGroupLogicalStructure]
23706
+ attr_accessor :logical_structure
23707
+
23708
+ # Name of the resource. Provided by the client when the resource is created. The
23709
+ # name must be 1-63 characters long, and comply with RFC1035. Specifically, the
23710
+ # name must be 1-63 characters long and match the regular expression `[a-z]([-a-
23711
+ # z0-9]*[a-z0-9])?` which means the first character must be a lowercase letter,
23712
+ # and all following characters must be a dash, lowercase letter, or digit,
23713
+ # except the last character, which cannot be a dash.
23714
+ # Corresponds to the JSON property `name`
23715
+ # @return [String]
23716
+ attr_accessor :name
23717
+
23718
+ # [Output Only] Server-defined URL for the resource.
23719
+ # Corresponds to the JSON property `selfLink`
23720
+ # @return [String]
23721
+ attr_accessor :self_link
23722
+
23723
+ def initialize(**args)
23724
+ update!(**args)
23725
+ end
23726
+
23727
+ # Update properties of this object
23728
+ def update!(**args)
23729
+ @attachments = args[:attachments] if args.key?(:attachments)
23730
+ @configured = args[:configured] if args.key?(:configured)
23731
+ @creation_timestamp = args[:creation_timestamp] if args.key?(:creation_timestamp)
23732
+ @description = args[:description] if args.key?(:description)
23733
+ @etag = args[:etag] if args.key?(:etag)
23734
+ @id = args[:id] if args.key?(:id)
23735
+ @intent = args[:intent] if args.key?(:intent)
23736
+ @interconnect_group = args[:interconnect_group] if args.key?(:interconnect_group)
23737
+ @kind = args[:kind] if args.key?(:kind)
23738
+ @logical_structure = args[:logical_structure] if args.key?(:logical_structure)
23739
+ @name = args[:name] if args.key?(:name)
23740
+ @self_link = args[:self_link] if args.key?(:self_link)
23741
+ end
23742
+ end
23743
+
23744
+ # An Attachment in this AttachmentGroup.
23745
+ class InterconnectAttachmentGroupAttachment
23746
+ include Google::Apis::Core::Hashable
23747
+
23748
+ #
23749
+ # Corresponds to the JSON property `attachment`
23750
+ # @return [String]
23751
+ attr_accessor :attachment
23752
+
23753
+ def initialize(**args)
23754
+ update!(**args)
23755
+ end
23756
+
23757
+ # Update properties of this object
23758
+ def update!(**args)
23759
+ @attachment = args[:attachment] if args.key?(:attachment)
23760
+ end
23761
+ end
23762
+
23763
+ # [Output Only] The redundancy this group is configured to support. The way a
23764
+ # user queries what SLA their Attachment gets is by looking at this field of the
23765
+ # Attachment's AttachmentGroup.
23766
+ class InterconnectAttachmentGroupConfigured
23767
+ include Google::Apis::Core::Hashable
23768
+
23769
+ # [Output Only] Which SLA this group is configured to support, and why this
23770
+ # group does or does not meet that SLA's requirements.
23771
+ # Corresponds to the JSON property `availabilitySla`
23772
+ # @return [Google::Apis::ComputeBeta::InterconnectAttachmentGroupConfiguredAvailabilitySla]
23773
+ attr_accessor :availability_sla
23774
+
23775
+ def initialize(**args)
23776
+ update!(**args)
23777
+ end
23778
+
23779
+ # Update properties of this object
23780
+ def update!(**args)
23781
+ @availability_sla = args[:availability_sla] if args.key?(:availability_sla)
23782
+ end
23783
+ end
23784
+
23785
+ # [Output Only] Which SLA this group is configured to support, and why this
23786
+ # group does or does not meet that SLA's requirements.
23787
+ class InterconnectAttachmentGroupConfiguredAvailabilitySla
23788
+ include Google::Apis::Core::Hashable
23789
+
23790
+ #
23791
+ # Corresponds to the JSON property `effectiveSla`
23792
+ # @return [String]
23793
+ attr_accessor :effective_sla
23794
+
23795
+ #
23796
+ # Corresponds to the JSON property `intendedSlaBlockers`
23797
+ # @return [Array<Google::Apis::ComputeBeta::InterconnectAttachmentGroupConfiguredAvailabilitySlaIntendedSlaBlockers>]
23798
+ attr_accessor :intended_sla_blockers
23799
+
23800
+ def initialize(**args)
23801
+ update!(**args)
23802
+ end
23803
+
23804
+ # Update properties of this object
23805
+ def update!(**args)
23806
+ @effective_sla = args[:effective_sla] if args.key?(:effective_sla)
23807
+ @intended_sla_blockers = args[:intended_sla_blockers] if args.key?(:intended_sla_blockers)
23808
+ end
23809
+ end
23810
+
23811
+ # [Output Only] Reasons why configuration.availabilitySLA.sla differs from
23812
+ # intent.availabilitySLA. This list is empty if and only if those are the same.
23813
+ class InterconnectAttachmentGroupConfiguredAvailabilitySlaIntendedSlaBlockers
23814
+ include Google::Apis::Core::Hashable
23815
+
23816
+ # [Output Only] URLs of any particular Attachments to explain this blocker in
23817
+ # more detail.
23818
+ # Corresponds to the JSON property `attachments`
23819
+ # @return [Array<String>]
23820
+ attr_accessor :attachments
23821
+
23822
+ #
23823
+ # Corresponds to the JSON property `blockerType`
23824
+ # @return [String]
23825
+ attr_accessor :blocker_type
23826
+
23827
+ # [Output Only] The url of Google Cloud public documentation explaining this
23828
+ # requirement. This is set for every type of requirement.
23829
+ # Corresponds to the JSON property `documentationLink`
23830
+ # @return [String]
23831
+ attr_accessor :documentation_link
23832
+
23833
+ # [Output Only] A human-readable explanation of this requirement and why it's
23834
+ # not met. This is set for every type of requirement.
23835
+ # Corresponds to the JSON property `explanation`
23836
+ # @return [String]
23837
+ attr_accessor :explanation
23838
+
23839
+ # [Output Only] Metros used to explain this blocker in more detail. These are
23840
+ # three-letter lowercase strings like "iad". This will be set for some blockers (
23841
+ # like NO_ATTACHMENTS_IN_METRO_AND_ZONE) but does not apply to others.
23842
+ # Corresponds to the JSON property `metros`
23843
+ # @return [Array<String>]
23844
+ attr_accessor :metros
23845
+
23846
+ # [Output Only] Regions used to explain this blocker in more detail. These are
23847
+ # region names formatted like "us-central1". This will be set for some blockers (
23848
+ # like INCOMPATIBLE_REGIONS) but does not apply to others.
23849
+ # Corresponds to the JSON property `regions`
23850
+ # @return [Array<String>]
23851
+ attr_accessor :regions
23852
+
23853
+ # [Output Only] Zones used to explain this blocker in more detail. Format is "
23854
+ # zone1" and/or "zone2". This will be set for some blockers (like MISSING_ZONE)
23855
+ # but does not apply to others.
23856
+ # Corresponds to the JSON property `zones`
23857
+ # @return [Array<String>]
23858
+ attr_accessor :zones
23859
+
23860
+ def initialize(**args)
23861
+ update!(**args)
23862
+ end
23863
+
23864
+ # Update properties of this object
23865
+ def update!(**args)
23866
+ @attachments = args[:attachments] if args.key?(:attachments)
23867
+ @blocker_type = args[:blocker_type] if args.key?(:blocker_type)
23868
+ @documentation_link = args[:documentation_link] if args.key?(:documentation_link)
23869
+ @explanation = args[:explanation] if args.key?(:explanation)
23870
+ @metros = args[:metros] if args.key?(:metros)
23871
+ @regions = args[:regions] if args.key?(:regions)
23872
+ @zones = args[:zones] if args.key?(:zones)
23873
+ end
23874
+ end
23875
+
23876
+ # The user's intent for this AttachmentGroup. This is the only required field
23877
+ # besides the name that must be specified on group creation.
23878
+ class InterconnectAttachmentGroupIntent
23879
+ include Google::Apis::Core::Hashable
23880
+
23881
+ #
23882
+ # Corresponds to the JSON property `availabilitySla`
23883
+ # @return [String]
23884
+ attr_accessor :availability_sla
23885
+
23886
+ def initialize(**args)
23887
+ update!(**args)
23888
+ end
23889
+
23890
+ # Update properties of this object
23891
+ def update!(**args)
23892
+ @availability_sla = args[:availability_sla] if args.key?(:availability_sla)
23893
+ end
23894
+ end
23895
+
23896
+ # [Output Only] An analysis of the logical layout of Attachments in this group.
23897
+ # Every Attachment in the group is shown once in this structure.
23898
+ class InterconnectAttachmentGroupLogicalStructure
23899
+ include Google::Apis::Core::Hashable
23900
+
23901
+ #
23902
+ # Corresponds to the JSON property `regions`
23903
+ # @return [Array<Google::Apis::ComputeBeta::InterconnectAttachmentGroupLogicalStructureRegion>]
23904
+ attr_accessor :regions
23905
+
23906
+ def initialize(**args)
23907
+ update!(**args)
23908
+ end
23909
+
23910
+ # Update properties of this object
23911
+ def update!(**args)
23912
+ @regions = args[:regions] if args.key?(:regions)
23913
+ end
23914
+ end
23915
+
23916
+ # [Output Only] The regions Attachments in this group are in.
23917
+ class InterconnectAttachmentGroupLogicalStructureRegion
23918
+ include Google::Apis::Core::Hashable
23919
+
23920
+ #
23921
+ # Corresponds to the JSON property `metros`
23922
+ # @return [Array<Google::Apis::ComputeBeta::InterconnectAttachmentGroupLogicalStructureRegionMetro>]
23923
+ attr_accessor :metros
23924
+
23925
+ # [Output Only] The name of a region, like "us-central1".
23926
+ # Corresponds to the JSON property `region`
23927
+ # @return [String]
23928
+ attr_accessor :region
23929
+
23930
+ def initialize(**args)
23931
+ update!(**args)
23932
+ end
23933
+
23934
+ # Update properties of this object
23935
+ def update!(**args)
23936
+ @metros = args[:metros] if args.key?(:metros)
23937
+ @region = args[:region] if args.key?(:region)
23938
+ end
23939
+ end
23940
+
23941
+ # [Output Only] The metros of Attachments in this group in this region.
23942
+ class InterconnectAttachmentGroupLogicalStructureRegionMetro
23943
+ include Google::Apis::Core::Hashable
23944
+
23945
+ #
23946
+ # Corresponds to the JSON property `facilities`
23947
+ # @return [Array<Google::Apis::ComputeBeta::InterconnectAttachmentGroupLogicalStructureRegionMetroFacility>]
23948
+ attr_accessor :facilities
23949
+
23950
+ # [Output Only] The name of the metro, as a three-letter lowercase string like "
23951
+ # iad". This is the first component of the location of an Interconnect.
23952
+ # Corresponds to the JSON property `metro`
23953
+ # @return [String]
23954
+ attr_accessor :metro
23955
+
23956
+ def initialize(**args)
23957
+ update!(**args)
23958
+ end
23959
+
23960
+ # Update properties of this object
23961
+ def update!(**args)
23962
+ @facilities = args[:facilities] if args.key?(:facilities)
23963
+ @metro = args[:metro] if args.key?(:metro)
23964
+ end
23965
+ end
23966
+
23967
+ # [Output Only] The facilities used for this group's Attachments' Interconnects.
23968
+ class InterconnectAttachmentGroupLogicalStructureRegionMetroFacility
23969
+ include Google::Apis::Core::Hashable
23970
+
23971
+ # [Output Only] The name of a facility, like "iad-1234".
23972
+ # Corresponds to the JSON property `facility`
23973
+ # @return [String]
23974
+ attr_accessor :facility
23975
+
23976
+ #
23977
+ # Corresponds to the JSON property `zones`
23978
+ # @return [Array<Google::Apis::ComputeBeta::InterconnectAttachmentGroupLogicalStructureRegionMetroFacilityZone>]
23979
+ attr_accessor :zones
23980
+
23981
+ def initialize(**args)
23982
+ update!(**args)
23983
+ end
23984
+
23985
+ # Update properties of this object
23986
+ def update!(**args)
23987
+ @facility = args[:facility] if args.key?(:facility)
23988
+ @zones = args[:zones] if args.key?(:zones)
23989
+ end
23990
+ end
23991
+
23992
+ # [Output Only] The zones that Attachments in this group are present in, in the
23993
+ # given facilities. This is inherited from their Interconnects.
23994
+ class InterconnectAttachmentGroupLogicalStructureRegionMetroFacilityZone
23995
+ include Google::Apis::Core::Hashable
23996
+
23997
+ # [Output Only] URLs of Attachments in the given zone, to the given region, on
23998
+ # Interconnects in the given facility and metro. Every Attachment in the AG has
23999
+ # such an entry.
24000
+ # Corresponds to the JSON property `attachments`
24001
+ # @return [Array<String>]
24002
+ attr_accessor :attachments
24003
+
24004
+ # [Output Only] The name of a zone, either "zone1" or "zone2".
24005
+ # Corresponds to the JSON property `zone`
24006
+ # @return [String]
24007
+ attr_accessor :zone
24008
+
24009
+ def initialize(**args)
24010
+ update!(**args)
24011
+ end
24012
+
24013
+ # Update properties of this object
24014
+ def update!(**args)
24015
+ @attachments = args[:attachments] if args.key?(:attachments)
24016
+ @zone = args[:zone] if args.key?(:zone)
24017
+ end
24018
+ end
24019
+
24020
+ # Response for the InterconnectAttachmentGroupsGetOperationalStatusResponse.
24021
+ class InterconnectAttachmentGroupsGetOperationalStatusResponse
24022
+ include Google::Apis::Core::Hashable
24023
+
24024
+ #
24025
+ # Corresponds to the JSON property `etag`
24026
+ # @return [String]
24027
+ attr_accessor :etag
24028
+
24029
+ #
24030
+ # Corresponds to the JSON property `result`
24031
+ # @return [Google::Apis::ComputeBeta::InterconnectAttachmentGroupsOperationalStatus]
24032
+ attr_accessor :result
24033
+
24034
+ def initialize(**args)
24035
+ update!(**args)
24036
+ end
24037
+
24038
+ # Update properties of this object
24039
+ def update!(**args)
24040
+ @etag = args[:etag] if args.key?(:etag)
24041
+ @result = args[:result] if args.key?(:result)
24042
+ end
24043
+ end
24044
+
24045
+ #
24046
+ class InterconnectAttachmentGroupsListResponse
24047
+ include Google::Apis::Core::Hashable
24048
+
24049
+ #
24050
+ # Corresponds to the JSON property `etag`
24051
+ # @return [String]
24052
+ attr_accessor :etag
24053
+
23324
24054
  # [Output Only] Unique identifier for the resource; defined by the server.
23325
24055
  # Corresponds to the JSON property `id`
23326
24056
  # @return [String]
23327
24057
  attr_accessor :id
23328
24058
 
23329
- # A list of InterconnectAttachment resources.
24059
+ # A list of InterconnectAttachmentGroup resources.
23330
24060
  # Corresponds to the JSON property `items`
23331
- # @return [Array<Google::Apis::ComputeBeta::InterconnectAttachment>]
24061
+ # @return [Array<Google::Apis::ComputeBeta::InterconnectAttachmentGroup>]
23332
24062
  attr_accessor :items
23333
24063
 
23334
- # [Output Only] Type of resource. Always compute#interconnectAttachmentList for
23335
- # lists of interconnect attachments.
24064
+ #
23336
24065
  # Corresponds to the JSON property `kind`
23337
24066
  # @return [String]
23338
24067
  attr_accessor :kind
@@ -23351,9 +24080,15 @@ module Google
23351
24080
  # @return [String]
23352
24081
  attr_accessor :self_link
23353
24082
 
24083
+ # [Output Only] Unreachable resources. end_interface:
24084
+ # MixerListResponseWithEtagBuilder
24085
+ # Corresponds to the JSON property `unreachables`
24086
+ # @return [Array<String>]
24087
+ attr_accessor :unreachables
24088
+
23354
24089
  # [Output Only] Informational warning message.
23355
24090
  # Corresponds to the JSON property `warning`
23356
- # @return [Google::Apis::ComputeBeta::InterconnectAttachmentList::Warning]
24091
+ # @return [Google::Apis::ComputeBeta::InterconnectAttachmentGroupsListResponse::Warning]
23357
24092
  attr_accessor :warning
23358
24093
 
23359
24094
  def initialize(**args)
@@ -23362,11 +24097,13 @@ module Google
23362
24097
 
23363
24098
  # Update properties of this object
23364
24099
  def update!(**args)
24100
+ @etag = args[:etag] if args.key?(:etag)
23365
24101
  @id = args[:id] if args.key?(:id)
23366
24102
  @items = args[:items] if args.key?(:items)
23367
24103
  @kind = args[:kind] if args.key?(:kind)
23368
24104
  @next_page_token = args[:next_page_token] if args.key?(:next_page_token)
23369
24105
  @self_link = args[:self_link] if args.key?(:self_link)
24106
+ @unreachables = args[:unreachables] if args.key?(:unreachables)
23370
24107
  @warning = args[:warning] if args.key?(:warning)
23371
24108
  end
23372
24109
 
@@ -23383,7 +24120,217 @@ module Google
23383
24120
  # [Output Only] Metadata about this warning in key: value format. For example: "
23384
24121
  # data": [ ` "key": "scope", "value": "zones/us-east1-d" `
23385
24122
  # Corresponds to the JSON property `data`
23386
- # @return [Array<Google::Apis::ComputeBeta::InterconnectAttachmentList::Warning::Datum>]
24123
+ # @return [Array<Google::Apis::ComputeBeta::InterconnectAttachmentGroupsListResponse::Warning::Datum>]
24124
+ attr_accessor :data
24125
+
24126
+ # [Output Only] A human-readable description of the warning code.
24127
+ # Corresponds to the JSON property `message`
24128
+ # @return [String]
24129
+ attr_accessor :message
24130
+
24131
+ def initialize(**args)
24132
+ update!(**args)
24133
+ end
24134
+
24135
+ # Update properties of this object
24136
+ def update!(**args)
24137
+ @code = args[:code] if args.key?(:code)
24138
+ @data = args[:data] if args.key?(:data)
24139
+ @message = args[:message] if args.key?(:message)
24140
+ end
24141
+
24142
+ #
24143
+ class Datum
24144
+ include Google::Apis::Core::Hashable
24145
+
24146
+ # [Output Only] A key that provides more detail on the warning being returned.
24147
+ # For example, for warnings where there are no results in a list request for a
24148
+ # particular zone, this key might be scope and the key value might be the zone
24149
+ # name. Other examples might be a key indicating a deprecated resource and a
24150
+ # suggested replacement, or a warning about invalid network settings (for
24151
+ # example, if an instance attempts to perform IP forwarding but is not enabled
24152
+ # for IP forwarding).
24153
+ # Corresponds to the JSON property `key`
24154
+ # @return [String]
24155
+ attr_accessor :key
24156
+
24157
+ # [Output Only] A warning data value corresponding to the key.
24158
+ # Corresponds to the JSON property `value`
24159
+ # @return [String]
24160
+ attr_accessor :value
24161
+
24162
+ def initialize(**args)
24163
+ update!(**args)
24164
+ end
24165
+
24166
+ # Update properties of this object
24167
+ def update!(**args)
24168
+ @key = args[:key] if args.key?(:key)
24169
+ @value = args[:value] if args.key?(:value)
24170
+ end
24171
+ end
24172
+ end
24173
+ end
24174
+
24175
+ #
24176
+ class InterconnectAttachmentGroupsOperationalStatus
24177
+ include Google::Apis::Core::Hashable
24178
+
24179
+ #
24180
+ # Corresponds to the JSON property `attachmentStatuses`
24181
+ # @return [Array<Google::Apis::ComputeBeta::InterconnectAttachmentGroupsOperationalStatusAttachmentStatus>]
24182
+ attr_accessor :attachment_statuses
24183
+
24184
+ # [Output Only] The redundancy this group is configured to support. The way a
24185
+ # user queries what SLA their Attachment gets is by looking at this field of the
24186
+ # Attachment's AttachmentGroup.
24187
+ # Corresponds to the JSON property `configured`
24188
+ # @return [Google::Apis::ComputeBeta::InterconnectAttachmentGroupConfigured]
24189
+ attr_accessor :configured
24190
+
24191
+ # Summarizes the status of the group.
24192
+ # Corresponds to the JSON property `groupStatus`
24193
+ # @return [String]
24194
+ attr_accessor :group_status
24195
+
24196
+ # The user's intent for this AttachmentGroup. This is the only required field
24197
+ # besides the name that must be specified on group creation.
24198
+ # Corresponds to the JSON property `intent`
24199
+ # @return [Google::Apis::ComputeBeta::InterconnectAttachmentGroupIntent]
24200
+ attr_accessor :intent
24201
+
24202
+ # [Output Only] The redundancy this group is configured to support. The way a
24203
+ # user queries what SLA their Attachment gets is by looking at this field of the
24204
+ # Attachment's AttachmentGroup.
24205
+ # Corresponds to the JSON property `operational`
24206
+ # @return [Google::Apis::ComputeBeta::InterconnectAttachmentGroupConfigured]
24207
+ attr_accessor :operational
24208
+
24209
+ def initialize(**args)
24210
+ update!(**args)
24211
+ end
24212
+
24213
+ # Update properties of this object
24214
+ def update!(**args)
24215
+ @attachment_statuses = args[:attachment_statuses] if args.key?(:attachment_statuses)
24216
+ @configured = args[:configured] if args.key?(:configured)
24217
+ @group_status = args[:group_status] if args.key?(:group_status)
24218
+ @intent = args[:intent] if args.key?(:intent)
24219
+ @operational = args[:operational] if args.key?(:operational)
24220
+ end
24221
+ end
24222
+
24223
+ # The status of one Attachment in the group. List order is arbitrary.
24224
+ class InterconnectAttachmentGroupsOperationalStatusAttachmentStatus
24225
+ include Google::Apis::Core::Hashable
24226
+
24227
+ # Whether this Attachment is enabled. This becomes false when the customer
24228
+ # drains their Attachment.
24229
+ # Corresponds to the JSON property `adminEnabled`
24230
+ # @return [Boolean]
24231
+ attr_accessor :admin_enabled
24232
+ alias_method :admin_enabled?, :admin_enabled
24233
+
24234
+ # The URL of the Attachment being described.
24235
+ # Corresponds to the JSON property `attachment`
24236
+ # @return [String]
24237
+ attr_accessor :attachment
24238
+
24239
+ # Whether this Attachment is participating in the redundant configuration. This
24240
+ # will be ACTIVE if and only if the status below is CONNECTION_UP. Any INACTIVE
24241
+ # Attachments are excluded from the analysis that generates operational.
24242
+ # availabilitySLA.
24243
+ # Corresponds to the JSON property `isActive`
24244
+ # @return [String]
24245
+ attr_accessor :is_active
24246
+
24247
+ # Whether this Attachment is active, and if so, whether BGP is up. This is based
24248
+ # on the statuses available in the Pantheon UI here: http://google3/java/com/
24249
+ # google/cloud/boq/clientapi/gce/hybrid/api/interconnect_models.proto
24250
+ # Corresponds to the JSON property `status`
24251
+ # @return [String]
24252
+ attr_accessor :status
24253
+
24254
+ def initialize(**args)
24255
+ update!(**args)
24256
+ end
24257
+
24258
+ # Update properties of this object
24259
+ def update!(**args)
24260
+ @admin_enabled = args[:admin_enabled] if args.key?(:admin_enabled)
24261
+ @attachment = args[:attachment] if args.key?(:attachment)
24262
+ @is_active = args[:is_active] if args.key?(:is_active)
24263
+ @status = args[:status] if args.key?(:status)
24264
+ end
24265
+ end
24266
+
24267
+ # Response to the list request, and contains a list of interconnect attachments.
24268
+ class InterconnectAttachmentList
24269
+ include Google::Apis::Core::Hashable
24270
+
24271
+ # [Output Only] Unique identifier for the resource; defined by the server.
24272
+ # Corresponds to the JSON property `id`
24273
+ # @return [String]
24274
+ attr_accessor :id
24275
+
24276
+ # A list of InterconnectAttachment resources.
24277
+ # Corresponds to the JSON property `items`
24278
+ # @return [Array<Google::Apis::ComputeBeta::InterconnectAttachment>]
24279
+ attr_accessor :items
24280
+
24281
+ # [Output Only] Type of resource. Always compute#interconnectAttachmentList for
24282
+ # lists of interconnect attachments.
24283
+ # Corresponds to the JSON property `kind`
24284
+ # @return [String]
24285
+ attr_accessor :kind
24286
+
24287
+ # [Output Only] This token allows you to get the next page of results for list
24288
+ # requests. If the number of results is larger than maxResults, use the
24289
+ # nextPageToken as a value for the query parameter pageToken in the next list
24290
+ # request. Subsequent list requests will have their own nextPageToken to
24291
+ # continue paging through the results.
24292
+ # Corresponds to the JSON property `nextPageToken`
24293
+ # @return [String]
24294
+ attr_accessor :next_page_token
24295
+
24296
+ # [Output Only] Server-defined URL for this resource.
24297
+ # Corresponds to the JSON property `selfLink`
24298
+ # @return [String]
24299
+ attr_accessor :self_link
24300
+
24301
+ # [Output Only] Informational warning message.
24302
+ # Corresponds to the JSON property `warning`
24303
+ # @return [Google::Apis::ComputeBeta::InterconnectAttachmentList::Warning]
24304
+ attr_accessor :warning
24305
+
24306
+ def initialize(**args)
24307
+ update!(**args)
24308
+ end
24309
+
24310
+ # Update properties of this object
24311
+ def update!(**args)
24312
+ @id = args[:id] if args.key?(:id)
24313
+ @items = args[:items] if args.key?(:items)
24314
+ @kind = args[:kind] if args.key?(:kind)
24315
+ @next_page_token = args[:next_page_token] if args.key?(:next_page_token)
24316
+ @self_link = args[:self_link] if args.key?(:self_link)
24317
+ @warning = args[:warning] if args.key?(:warning)
24318
+ end
24319
+
24320
+ # [Output Only] Informational warning message.
24321
+ class Warning
24322
+ include Google::Apis::Core::Hashable
24323
+
24324
+ # [Output Only] A warning code, if applicable. For example, Compute Engine
24325
+ # returns NO_RESULTS_ON_PAGE if there are no results in the response.
24326
+ # Corresponds to the JSON property `code`
24327
+ # @return [String]
24328
+ attr_accessor :code
24329
+
24330
+ # [Output Only] Metadata about this warning in key: value format. For example: "
24331
+ # data": [ ` "key": "scope", "value": "zones/us-east1-d" `
24332
+ # Corresponds to the JSON property `data`
24333
+ # @return [Array<Google::Apis::ComputeBeta::InterconnectAttachmentList::Warning::Datum>]
23387
24334
  attr_accessor :data
23388
24335
 
23389
24336
  # [Output Only] A human-readable description of the warning code.
@@ -23585,168 +24532,971 @@ module Google
23585
24532
  end
23586
24533
  end
23587
24534
 
23588
- # Describes a single physical circuit between the Customer and Google.
23589
- # CircuitInfo objects are created by Google, so all fields are output only.
23590
- class InterconnectCircuitInfo
24535
+ # Describes a single physical circuit between the Customer and Google.
24536
+ # CircuitInfo objects are created by Google, so all fields are output only.
24537
+ class InterconnectCircuitInfo
24538
+ include Google::Apis::Core::Hashable
24539
+
24540
+ # Customer-side demarc ID for this circuit.
24541
+ # Corresponds to the JSON property `customerDemarcId`
24542
+ # @return [String]
24543
+ attr_accessor :customer_demarc_id
24544
+
24545
+ # Google-assigned unique ID for this circuit. Assigned at circuit turn-up.
24546
+ # Corresponds to the JSON property `googleCircuitId`
24547
+ # @return [String]
24548
+ attr_accessor :google_circuit_id
24549
+
24550
+ # Google-side demarc ID for this circuit. Assigned at circuit turn-up and
24551
+ # provided by Google to the customer in the LOA.
24552
+ # Corresponds to the JSON property `googleDemarcId`
24553
+ # @return [String]
24554
+ attr_accessor :google_demarc_id
24555
+
24556
+ def initialize(**args)
24557
+ update!(**args)
24558
+ end
24559
+
24560
+ # Update properties of this object
24561
+ def update!(**args)
24562
+ @customer_demarc_id = args[:customer_demarc_id] if args.key?(:customer_demarc_id)
24563
+ @google_circuit_id = args[:google_circuit_id] if args.key?(:google_circuit_id)
24564
+ @google_demarc_id = args[:google_demarc_id] if args.key?(:google_demarc_id)
24565
+ end
24566
+ end
24567
+
24568
+ # Diagnostics information about the Interconnect connection, which contains
24569
+ # detailed and current technical information about Google's side of the
24570
+ # connection.
24571
+ class InterconnectDiagnostics
24572
+ include Google::Apis::Core::Hashable
24573
+
24574
+ # A list of InterconnectDiagnostics.ARPEntry objects, describing individual
24575
+ # neighbors currently seen by the Google router in the ARP cache for the
24576
+ # Interconnect. This will be empty when the Interconnect is not bundled.
24577
+ # Corresponds to the JSON property `arpCaches`
24578
+ # @return [Array<Google::Apis::ComputeBeta::InterconnectDiagnosticsArpEntry>]
24579
+ attr_accessor :arp_caches
24580
+
24581
+ # The aggregation type of the bundle interface.
24582
+ # Corresponds to the JSON property `bundleAggregationType`
24583
+ # @return [String]
24584
+ attr_accessor :bundle_aggregation_type
24585
+
24586
+ # The operational status of the bundle interface.
24587
+ # Corresponds to the JSON property `bundleOperationalStatus`
24588
+ # @return [String]
24589
+ attr_accessor :bundle_operational_status
24590
+
24591
+ # A list of InterconnectDiagnostics.LinkStatus objects, describing the status
24592
+ # for each link on the Interconnect.
24593
+ # Corresponds to the JSON property `links`
24594
+ # @return [Array<Google::Apis::ComputeBeta::InterconnectDiagnosticsLinkStatus>]
24595
+ attr_accessor :links
24596
+
24597
+ # The MAC address of the Interconnect's bundle interface.
24598
+ # Corresponds to the JSON property `macAddress`
24599
+ # @return [String]
24600
+ attr_accessor :mac_address
24601
+
24602
+ def initialize(**args)
24603
+ update!(**args)
24604
+ end
24605
+
24606
+ # Update properties of this object
24607
+ def update!(**args)
24608
+ @arp_caches = args[:arp_caches] if args.key?(:arp_caches)
24609
+ @bundle_aggregation_type = args[:bundle_aggregation_type] if args.key?(:bundle_aggregation_type)
24610
+ @bundle_operational_status = args[:bundle_operational_status] if args.key?(:bundle_operational_status)
24611
+ @links = args[:links] if args.key?(:links)
24612
+ @mac_address = args[:mac_address] if args.key?(:mac_address)
24613
+ end
24614
+ end
24615
+
24616
+ # Describing the ARP neighbor entries seen on this link
24617
+ class InterconnectDiagnosticsArpEntry
24618
+ include Google::Apis::Core::Hashable
24619
+
24620
+ # The IP address of this ARP neighbor.
24621
+ # Corresponds to the JSON property `ipAddress`
24622
+ # @return [String]
24623
+ attr_accessor :ip_address
24624
+
24625
+ # The MAC address of this ARP neighbor.
24626
+ # Corresponds to the JSON property `macAddress`
24627
+ # @return [String]
24628
+ attr_accessor :mac_address
24629
+
24630
+ def initialize(**args)
24631
+ update!(**args)
24632
+ end
24633
+
24634
+ # Update properties of this object
24635
+ def update!(**args)
24636
+ @ip_address = args[:ip_address] if args.key?(:ip_address)
24637
+ @mac_address = args[:mac_address] if args.key?(:mac_address)
24638
+ end
24639
+ end
24640
+
24641
+ #
24642
+ class InterconnectDiagnosticsLinkLacpStatus
24643
+ include Google::Apis::Core::Hashable
24644
+
24645
+ # System ID of the port on Google's side of the LACP exchange.
24646
+ # Corresponds to the JSON property `googleSystemId`
24647
+ # @return [String]
24648
+ attr_accessor :google_system_id
24649
+
24650
+ # System ID of the port on the neighbor's side of the LACP exchange.
24651
+ # Corresponds to the JSON property `neighborSystemId`
24652
+ # @return [String]
24653
+ attr_accessor :neighbor_system_id
24654
+
24655
+ # The state of a LACP link, which can take one of the following values: - ACTIVE:
24656
+ # The link is configured and active within the bundle. - DETACHED: The link is
24657
+ # not configured within the bundle. This means that the rest of the object
24658
+ # should be empty.
24659
+ # Corresponds to the JSON property `state`
24660
+ # @return [String]
24661
+ attr_accessor :state
24662
+
24663
+ def initialize(**args)
24664
+ update!(**args)
24665
+ end
24666
+
24667
+ # Update properties of this object
24668
+ def update!(**args)
24669
+ @google_system_id = args[:google_system_id] if args.key?(:google_system_id)
24670
+ @neighbor_system_id = args[:neighbor_system_id] if args.key?(:neighbor_system_id)
24671
+ @state = args[:state] if args.key?(:state)
24672
+ end
24673
+ end
24674
+
24675
+ #
24676
+ class InterconnectDiagnosticsLinkOpticalPower
24677
+ include Google::Apis::Core::Hashable
24678
+
24679
+ # The status of the current value when compared to the warning and alarm levels
24680
+ # for the receiving or transmitting transceiver. Possible states include: - OK:
24681
+ # The value has not crossed a warning threshold. - LOW_WARNING: The value has
24682
+ # crossed below the low warning threshold. - HIGH_WARNING: The value has crossed
24683
+ # above the high warning threshold. - LOW_ALARM: The value has crossed below the
24684
+ # low alarm threshold. - HIGH_ALARM: The value has crossed above the high alarm
24685
+ # threshold.
24686
+ # Corresponds to the JSON property `state`
24687
+ # @return [String]
24688
+ attr_accessor :state
24689
+
24690
+ # Value of the current receiving or transmitting optical power, read in dBm.
24691
+ # Take a known good optical value, give it a 10% margin and trigger warnings
24692
+ # relative to that value. In general, a -7dBm warning and a -11dBm alarm are
24693
+ # good optical value estimates for most links.
24694
+ # Corresponds to the JSON property `value`
24695
+ # @return [Float]
24696
+ attr_accessor :value
24697
+
24698
+ def initialize(**args)
24699
+ update!(**args)
24700
+ end
24701
+
24702
+ # Update properties of this object
24703
+ def update!(**args)
24704
+ @state = args[:state] if args.key?(:state)
24705
+ @value = args[:value] if args.key?(:value)
24706
+ end
24707
+ end
24708
+
24709
+ #
24710
+ class InterconnectDiagnosticsLinkStatus
24711
+ include Google::Apis::Core::Hashable
24712
+
24713
+ # A list of InterconnectDiagnostics.ARPEntry objects, describing the ARP
24714
+ # neighbor entries seen on this link. This will be empty if the link is bundled
24715
+ # Corresponds to the JSON property `arpCaches`
24716
+ # @return [Array<Google::Apis::ComputeBeta::InterconnectDiagnosticsArpEntry>]
24717
+ attr_accessor :arp_caches
24718
+
24719
+ # The unique ID for this link assigned during turn up by Google.
24720
+ # Corresponds to the JSON property `circuitId`
24721
+ # @return [String]
24722
+ attr_accessor :circuit_id
24723
+
24724
+ # The Demarc address assigned by Google and provided in the LoA.
24725
+ # Corresponds to the JSON property `googleDemarc`
24726
+ # @return [String]
24727
+ attr_accessor :google_demarc
24728
+
24729
+ #
24730
+ # Corresponds to the JSON property `lacpStatus`
24731
+ # @return [Google::Apis::ComputeBeta::InterconnectDiagnosticsLinkLacpStatus]
24732
+ attr_accessor :lacp_status
24733
+
24734
+ # Describes the status of MACsec encryption on the link.
24735
+ # Corresponds to the JSON property `macsec`
24736
+ # @return [Google::Apis::ComputeBeta::InterconnectDiagnosticsMacsecStatus]
24737
+ attr_accessor :macsec
24738
+
24739
+ # The operational status of the link.
24740
+ # Corresponds to the JSON property `operationalStatus`
24741
+ # @return [String]
24742
+ attr_accessor :operational_status
24743
+
24744
+ # An InterconnectDiagnostics.LinkOpticalPower object, describing the current
24745
+ # value and status of the received light level.
24746
+ # Corresponds to the JSON property `receivingOpticalPower`
24747
+ # @return [Google::Apis::ComputeBeta::InterconnectDiagnosticsLinkOpticalPower]
24748
+ attr_accessor :receiving_optical_power
24749
+
24750
+ # An InterconnectDiagnostics.LinkOpticalPower object, describing the current
24751
+ # value and status of the transmitted light level.
24752
+ # Corresponds to the JSON property `transmittingOpticalPower`
24753
+ # @return [Google::Apis::ComputeBeta::InterconnectDiagnosticsLinkOpticalPower]
24754
+ attr_accessor :transmitting_optical_power
24755
+
24756
+ def initialize(**args)
24757
+ update!(**args)
24758
+ end
24759
+
24760
+ # Update properties of this object
24761
+ def update!(**args)
24762
+ @arp_caches = args[:arp_caches] if args.key?(:arp_caches)
24763
+ @circuit_id = args[:circuit_id] if args.key?(:circuit_id)
24764
+ @google_demarc = args[:google_demarc] if args.key?(:google_demarc)
24765
+ @lacp_status = args[:lacp_status] if args.key?(:lacp_status)
24766
+ @macsec = args[:macsec] if args.key?(:macsec)
24767
+ @operational_status = args[:operational_status] if args.key?(:operational_status)
24768
+ @receiving_optical_power = args[:receiving_optical_power] if args.key?(:receiving_optical_power)
24769
+ @transmitting_optical_power = args[:transmitting_optical_power] if args.key?(:transmitting_optical_power)
24770
+ end
24771
+ end
24772
+
24773
+ # Describes the status of MACsec encryption on the link.
24774
+ class InterconnectDiagnosticsMacsecStatus
24775
+ include Google::Apis::Core::Hashable
24776
+
24777
+ # Indicates the Connectivity Association Key Name (CKN) currently being used if
24778
+ # MACsec is operational.
24779
+ # Corresponds to the JSON property `ckn`
24780
+ # @return [String]
24781
+ attr_accessor :ckn
24782
+
24783
+ # Indicates whether or not MACsec is operational on this link.
24784
+ # Corresponds to the JSON property `operational`
24785
+ # @return [Boolean]
24786
+ attr_accessor :operational
24787
+ alias_method :operational?, :operational
24788
+
24789
+ def initialize(**args)
24790
+ update!(**args)
24791
+ end
24792
+
24793
+ # Update properties of this object
24794
+ def update!(**args)
24795
+ @ckn = args[:ckn] if args.key?(:ckn)
24796
+ @operational = args[:operational] if args.key?(:operational)
24797
+ end
24798
+ end
24799
+
24800
+ # An interconnect group resource allows customers to create, analyze, and expand
24801
+ # their redundant connections.
24802
+ class InterconnectGroup
24803
+ include Google::Apis::Core::Hashable
24804
+
24805
+ # [Output Only] The status of the group as configured. This has the same
24806
+ # structure as the operational field reported by the OperationalStatus method,
24807
+ # but does not take into account the operational status of each resource.
24808
+ # Corresponds to the JSON property `configured`
24809
+ # @return [Google::Apis::ComputeBeta::InterconnectGroupConfigured]
24810
+ attr_accessor :configured
24811
+
24812
+ # [Output Only] Creation timestamp in RFC3339 text format.
24813
+ # Corresponds to the JSON property `creationTimestamp`
24814
+ # @return [String]
24815
+ attr_accessor :creation_timestamp
24816
+
24817
+ # An optional description of this resource. Provide this property when you
24818
+ # create the resource.
24819
+ # Corresponds to the JSON property `description`
24820
+ # @return [String]
24821
+ attr_accessor :description
24822
+
24823
+ # Opaque system-generated token that uniquely identifies the configuration. If
24824
+ # provided when patching a configuration in update mode, the provided token must
24825
+ # match the current token or the update is rejected. This provides a reliable
24826
+ # means of doing read-modify-write (optimistic locking) as described by API 154.
24827
+ # Corresponds to the JSON property `etag`
24828
+ # @return [String]
24829
+ attr_accessor :etag
24830
+
24831
+ # [Output Only] The unique identifier for the resource type. The server
24832
+ # generates this identifier.
24833
+ # Corresponds to the JSON property `id`
24834
+ # @return [Fixnum]
24835
+ attr_accessor :id
24836
+
24837
+ # The user's intent for this group. This is the only required field besides the
24838
+ # name that must be specified on group creation.
24839
+ # Corresponds to the JSON property `intent`
24840
+ # @return [Google::Apis::ComputeBeta::InterconnectGroupIntent]
24841
+ attr_accessor :intent
24842
+
24843
+ # Interconnects in the InterconnectGroup. Keys are arbitrary user-specified
24844
+ # strings. Users are encouraged, but not required, to use their preferred format
24845
+ # for resource links as keys. Note that there are add-members and remove-members
24846
+ # methods in gcloud. The size of this map is limited by an "Interconnects per
24847
+ # group" quota.
24848
+ # Corresponds to the JSON property `interconnects`
24849
+ # @return [Hash<String,Google::Apis::ComputeBeta::InterconnectGroupInterconnect>]
24850
+ attr_accessor :interconnects
24851
+
24852
+ # [Output Only] Type of the resource. Always compute#InterconnectGroup
24853
+ # Corresponds to the JSON property `kind`
24854
+ # @return [String]
24855
+ attr_accessor :kind
24856
+
24857
+ # Name of the resource. Provided by the client when the resource is created. The
24858
+ # name must be 1-63 characters long, and comply with RFC1035. Specifically, the
24859
+ # name must be 1-63 characters long and match the regular expression `[a-z]([-a-
24860
+ # z0-9]*[a-z0-9])?` which means the first character must be a lowercase letter,
24861
+ # and all following characters must be a dash, lowercase letter, or digit,
24862
+ # except the last character, which cannot be a dash.
24863
+ # Corresponds to the JSON property `name`
24864
+ # @return [String]
24865
+ attr_accessor :name
24866
+
24867
+ # [Output Only] An analysis of the physical layout of Interconnects in this
24868
+ # group. Every Interconnect in the group is shown once in this structure.
24869
+ # Corresponds to the JSON property `physicalStructure`
24870
+ # @return [Google::Apis::ComputeBeta::InterconnectGroupPhysicalStructure]
24871
+ attr_accessor :physical_structure
24872
+
24873
+ # [Output Only] Server-defined URL for the resource.
24874
+ # Corresponds to the JSON property `selfLink`
24875
+ # @return [String]
24876
+ attr_accessor :self_link
24877
+
24878
+ def initialize(**args)
24879
+ update!(**args)
24880
+ end
24881
+
24882
+ # Update properties of this object
24883
+ def update!(**args)
24884
+ @configured = args[:configured] if args.key?(:configured)
24885
+ @creation_timestamp = args[:creation_timestamp] if args.key?(:creation_timestamp)
24886
+ @description = args[:description] if args.key?(:description)
24887
+ @etag = args[:etag] if args.key?(:etag)
24888
+ @id = args[:id] if args.key?(:id)
24889
+ @intent = args[:intent] if args.key?(:intent)
24890
+ @interconnects = args[:interconnects] if args.key?(:interconnects)
24891
+ @kind = args[:kind] if args.key?(:kind)
24892
+ @name = args[:name] if args.key?(:name)
24893
+ @physical_structure = args[:physical_structure] if args.key?(:physical_structure)
24894
+ @self_link = args[:self_link] if args.key?(:self_link)
24895
+ end
24896
+ end
24897
+
24898
+ # [Output Only] The status of the group as configured. This has the same
24899
+ # structure as the operational field reported by the OperationalStatus method,
24900
+ # but does not take into account the operational status of each resource.
24901
+ class InterconnectGroupConfigured
24902
+ include Google::Apis::Core::Hashable
24903
+
24904
+ # [Output Only] How reliable this topology is configured to be, and why this
24905
+ # group does or does not meet the requirements for the intended capability.
24906
+ # Corresponds to the JSON property `topologyCapability`
24907
+ # @return [Google::Apis::ComputeBeta::InterconnectGroupConfiguredTopologyCapability]
24908
+ attr_accessor :topology_capability
24909
+
24910
+ def initialize(**args)
24911
+ update!(**args)
24912
+ end
24913
+
24914
+ # Update properties of this object
24915
+ def update!(**args)
24916
+ @topology_capability = args[:topology_capability] if args.key?(:topology_capability)
24917
+ end
24918
+ end
24919
+
24920
+ # [Output Only] How reliable this topology is configured to be, and why this
24921
+ # group does or does not meet the requirements for the intended capability.
24922
+ class InterconnectGroupConfiguredTopologyCapability
24923
+ include Google::Apis::Core::Hashable
24924
+
24925
+ #
24926
+ # Corresponds to the JSON property `intendedCapabilityBlockers`
24927
+ # @return [Array<Google::Apis::ComputeBeta::InterconnectGroupConfiguredTopologyCapabilityIntendedCapabilityBlockers>]
24928
+ attr_accessor :intended_capability_blockers
24929
+
24930
+ #
24931
+ # Corresponds to the JSON property `supportedSla`
24932
+ # @return [String]
24933
+ attr_accessor :supported_sla
24934
+
24935
+ def initialize(**args)
24936
+ update!(**args)
24937
+ end
24938
+
24939
+ # Update properties of this object
24940
+ def update!(**args)
24941
+ @intended_capability_blockers = args[:intended_capability_blockers] if args.key?(:intended_capability_blockers)
24942
+ @supported_sla = args[:supported_sla] if args.key?(:supported_sla)
24943
+ end
24944
+ end
24945
+
24946
+ # [Output Only] Reasons why configuration.topologyCapability.sla differs from
24947
+ # intent.topologyCapability. This list is empty if and only if those are the
24948
+ # same.
24949
+ class InterconnectGroupConfiguredTopologyCapabilityIntendedCapabilityBlockers
24950
+ include Google::Apis::Core::Hashable
24951
+
24952
+ #
24953
+ # Corresponds to the JSON property `blockerType`
24954
+ # @return [String]
24955
+ attr_accessor :blocker_type
24956
+
24957
+ # [Output Only] The url of Google Cloud public documentation explaining this
24958
+ # requirement. This is set for every type of requirement.
24959
+ # Corresponds to the JSON property `documentationLink`
24960
+ # @return [String]
24961
+ attr_accessor :documentation_link
24962
+
24963
+ # [Output Only] A human-readable explanation of this requirement and why it's
24964
+ # not met. This is set for every type of requirement.
24965
+ # Corresponds to the JSON property `explanation`
24966
+ # @return [String]
24967
+ attr_accessor :explanation
24968
+
24969
+ # [Output Only] Facilities used to explain this blocker in more detail. Like
24970
+ # physicalStructure.metros.facilities.facility, this is a numeric string like "
24971
+ # 5467".
24972
+ # Corresponds to the JSON property `facilities`
24973
+ # @return [Array<String>]
24974
+ attr_accessor :facilities
24975
+
24976
+ # [Output Only] Interconnects used to explain this blocker in more detail.
24977
+ # Corresponds to the JSON property `interconnects`
24978
+ # @return [Array<String>]
24979
+ attr_accessor :interconnects
24980
+
24981
+ # [Output Only] Metros used to explain this blocker in more detail. These are
24982
+ # three-letter lowercase strings like "iad". A blocker like INCOMPATIBLE_METROS
24983
+ # will specify the problematic metros in this field.
24984
+ # Corresponds to the JSON property `metros`
24985
+ # @return [Array<String>]
24986
+ attr_accessor :metros
24987
+
24988
+ # [Output Only] Zones used to explain this blocker in more detail. Zone names
24989
+ # are "zone1" and/or "zone2".
24990
+ # Corresponds to the JSON property `zones`
24991
+ # @return [Array<String>]
24992
+ attr_accessor :zones
24993
+
24994
+ def initialize(**args)
24995
+ update!(**args)
24996
+ end
24997
+
24998
+ # Update properties of this object
24999
+ def update!(**args)
25000
+ @blocker_type = args[:blocker_type] if args.key?(:blocker_type)
25001
+ @documentation_link = args[:documentation_link] if args.key?(:documentation_link)
25002
+ @explanation = args[:explanation] if args.key?(:explanation)
25003
+ @facilities = args[:facilities] if args.key?(:facilities)
25004
+ @interconnects = args[:interconnects] if args.key?(:interconnects)
25005
+ @metros = args[:metros] if args.key?(:metros)
25006
+ @zones = args[:zones] if args.key?(:zones)
25007
+ end
25008
+ end
25009
+
25010
+ # The user's intent for this group. This is the only required field besides the
25011
+ # name that must be specified on group creation.
25012
+ class InterconnectGroupIntent
25013
+ include Google::Apis::Core::Hashable
25014
+
25015
+ #
25016
+ # Corresponds to the JSON property `topologyCapability`
25017
+ # @return [String]
25018
+ attr_accessor :topology_capability
25019
+
25020
+ def initialize(**args)
25021
+ update!(**args)
25022
+ end
25023
+
25024
+ # Update properties of this object
25025
+ def update!(**args)
25026
+ @topology_capability = args[:topology_capability] if args.key?(:topology_capability)
25027
+ end
25028
+ end
25029
+
25030
+ # An Interconnect in this InterconnectGroup.
25031
+ class InterconnectGroupInterconnect
25032
+ include Google::Apis::Core::Hashable
25033
+
25034
+ # The URL of an Interconnect in this group. All Interconnects in the group are
25035
+ # unique.
25036
+ # Corresponds to the JSON property `interconnect`
25037
+ # @return [String]
25038
+ attr_accessor :interconnect
25039
+
25040
+ def initialize(**args)
25041
+ update!(**args)
25042
+ end
25043
+
25044
+ # Update properties of this object
25045
+ def update!(**args)
25046
+ @interconnect = args[:interconnect] if args.key?(:interconnect)
25047
+ end
25048
+ end
25049
+
25050
+ # [Output Only] An analysis of the physical layout of Interconnects in this
25051
+ # group. Every Interconnect in the group is shown once in this structure.
25052
+ class InterconnectGroupPhysicalStructure
25053
+ include Google::Apis::Core::Hashable
25054
+
25055
+ #
25056
+ # Corresponds to the JSON property `metros`
25057
+ # @return [Array<Google::Apis::ComputeBeta::InterconnectGroupPhysicalStructureMetros>]
25058
+ attr_accessor :metros
25059
+
25060
+ def initialize(**args)
25061
+ update!(**args)
25062
+ end
25063
+
25064
+ # Update properties of this object
25065
+ def update!(**args)
25066
+ @metros = args[:metros] if args.key?(:metros)
25067
+ end
25068
+ end
25069
+
25070
+ # [Output Only] The metros Interconnects in this group are in.
25071
+ class InterconnectGroupPhysicalStructureMetros
25072
+ include Google::Apis::Core::Hashable
25073
+
25074
+ #
25075
+ # Corresponds to the JSON property `facilities`
25076
+ # @return [Array<Google::Apis::ComputeBeta::InterconnectGroupPhysicalStructureMetrosFacilities>]
25077
+ attr_accessor :facilities
25078
+
25079
+ # [Output Only] The name of the metro, as a three-letter lowercase string like "
25080
+ # iad". This is the first component of the location of Interconnects underneath
25081
+ # this.
25082
+ # Corresponds to the JSON property `metro`
25083
+ # @return [String]
25084
+ attr_accessor :metro
25085
+
25086
+ def initialize(**args)
25087
+ update!(**args)
25088
+ end
25089
+
25090
+ # Update properties of this object
25091
+ def update!(**args)
25092
+ @facilities = args[:facilities] if args.key?(:facilities)
25093
+ @metro = args[:metro] if args.key?(:metro)
25094
+ end
25095
+ end
25096
+
25097
+ # [Output Only] The facilities Interconnects in this metro are present in.
25098
+ class InterconnectGroupPhysicalStructureMetrosFacilities
25099
+ include Google::Apis::Core::Hashable
25100
+
25101
+ # [Output Only] The ID of this facility, as a numeric string like "5467". This
25102
+ # is the third component of the location of Interconnects in this facility.
25103
+ # Corresponds to the JSON property `facility`
25104
+ # @return [String]
25105
+ attr_accessor :facility
25106
+
25107
+ #
25108
+ # Corresponds to the JSON property `zones`
25109
+ # @return [Array<Google::Apis::ComputeBeta::InterconnectGroupPhysicalStructureMetrosFacilitiesZones>]
25110
+ attr_accessor :zones
25111
+
25112
+ def initialize(**args)
25113
+ update!(**args)
25114
+ end
25115
+
25116
+ # Update properties of this object
25117
+ def update!(**args)
25118
+ @facility = args[:facility] if args.key?(:facility)
25119
+ @zones = args[:zones] if args.key?(:zones)
25120
+ end
25121
+ end
25122
+
25123
+ # [Output Only] The zones that Interconnects in this facility are present in.
25124
+ class InterconnectGroupPhysicalStructureMetrosFacilitiesZones
25125
+ include Google::Apis::Core::Hashable
25126
+
25127
+ # [Output Only] URLs of Interconnects in this redundancy group in the given
25128
+ # metro, facility, and zone.
25129
+ # Corresponds to the JSON property `interconnects`
25130
+ # @return [Array<String>]
25131
+ attr_accessor :interconnects
25132
+
25133
+ # [Output Only] The name of the zone, either "zone1" or "zone2". This is the
25134
+ # second component of the location of Interconnects in this facility.
25135
+ # Corresponds to the JSON property `zone`
25136
+ # @return [String]
25137
+ attr_accessor :zone
25138
+
25139
+ def initialize(**args)
25140
+ update!(**args)
25141
+ end
25142
+
25143
+ # Update properties of this object
25144
+ def update!(**args)
25145
+ @interconnects = args[:interconnects] if args.key?(:interconnects)
25146
+ @zone = args[:zone] if args.key?(:zone)
25147
+ end
25148
+ end
25149
+
25150
+ #
25151
+ class InterconnectGroupsCreateMembers
25152
+ include Google::Apis::Core::Hashable
25153
+
25154
+ # How to behave when configured.topologyCapability.supportedSLA would not equal
25155
+ # intent.topologyCapability after this call.
25156
+ # Corresponds to the JSON property `intentMismatchBehavior`
25157
+ # @return [String]
25158
+ attr_accessor :intent_mismatch_behavior
25159
+
25160
+ #
25161
+ # Corresponds to the JSON property `interconnects`
25162
+ # @return [Array<Google::Apis::ComputeBeta::InterconnectGroupsCreateMembersInterconnectInput>]
25163
+ attr_accessor :interconnects
25164
+
25165
+ # LINT.IfChange
25166
+ # Corresponds to the JSON property `templateInterconnect`
25167
+ # @return [Google::Apis::ComputeBeta::InterconnectGroupsCreateMembersInterconnectInput]
25168
+ attr_accessor :template_interconnect
25169
+
25170
+ def initialize(**args)
25171
+ update!(**args)
25172
+ end
25173
+
25174
+ # Update properties of this object
25175
+ def update!(**args)
25176
+ @intent_mismatch_behavior = args[:intent_mismatch_behavior] if args.key?(:intent_mismatch_behavior)
25177
+ @interconnects = args[:interconnects] if args.key?(:interconnects)
25178
+ @template_interconnect = args[:template_interconnect] if args.key?(:template_interconnect)
25179
+ end
25180
+ end
25181
+
25182
+ # LINT.IfChange
25183
+ class InterconnectGroupsCreateMembersInterconnectInput
25184
+ include Google::Apis::Core::Hashable
25185
+
25186
+ # Administrative status of the interconnect. When this is set to true, the
25187
+ # Interconnect is functional and can carry traffic. When set to false, no
25188
+ # packets can be carried over the interconnect and no BGP routes are exchanged
25189
+ # over it. By default, the status is set to true.
25190
+ # Corresponds to the JSON property `adminEnabled`
25191
+ # @return [Boolean]
25192
+ attr_accessor :admin_enabled
25193
+ alias_method :admin_enabled?, :admin_enabled
25194
+
25195
+ # Customer name, to put in the Letter of Authorization as the party authorized
25196
+ # to request a crossconnect.
25197
+ # Corresponds to the JSON property `customerName`
25198
+ # @return [String]
25199
+ attr_accessor :customer_name
25200
+
25201
+ # An optional description of this resource. Provide this property when you
25202
+ # create the resource.
25203
+ # Corresponds to the JSON property `description`
25204
+ # @return [String]
25205
+ attr_accessor :description
25206
+
25207
+ # A zone-free location to use for all Interconnects created in this call, like "
25208
+ # iad-1234".
25209
+ # Corresponds to the JSON property `facility`
25210
+ # @return [String]
25211
+ attr_accessor :facility
25212
+
25213
+ # Type of interconnect, which can take one of the following values: - PARTNER: A
25214
+ # partner-managed interconnection shared between customers though a partner. -
25215
+ # DEDICATED: A dedicated physical interconnection with the customer. Note that a
25216
+ # value IT_PRIVATE has been deprecated in favor of DEDICATED.
25217
+ # Corresponds to the JSON property `interconnectType`
25218
+ # @return [String]
25219
+ attr_accessor :interconnect_type
25220
+
25221
+ # Type of link requested, which can take one of the following values: -
25222
+ # LINK_TYPE_ETHERNET_10G_LR: A 10G Ethernet with LR optics -
25223
+ # LINK_TYPE_ETHERNET_100G_LR: A 100G Ethernet with LR optics. -
25224
+ # LINK_TYPE_ETHERNET_400G_LR4: A 400G Ethernet with LR4 optics. Note that this
25225
+ # field indicates the speed of each of the links in the bundle, not the speed of
25226
+ # the entire bundle.
25227
+ # Corresponds to the JSON property `linkType`
25228
+ # @return [String]
25229
+ attr_accessor :link_type
25230
+
25231
+ # Name of the Interconnects to be created. This must be specified on the
25232
+ # template and/or on each individual interconnect. The name, if not empty, must
25233
+ # be 1-63 characters long, and comply with RFC1035. Specifically, any nonempty
25234
+ # name must be 1-63 characters long and match the regular expression `[a-z]([-a-
25235
+ # z0-9]*[a-z0-9])?` which means the first character must be a lowercase letter,
25236
+ # and all following characters must be a dash, lowercase letter, or digit,
25237
+ # except the last character, which cannot be a dash.
25238
+ # Corresponds to the JSON property `name`
25239
+ # @return [String]
25240
+ attr_accessor :name
25241
+
25242
+ # Email address to contact the customer NOC for operations and maintenance
25243
+ # notifications regarding this Interconnect. If specified, this will be used for
25244
+ # notifications in addition to all other forms described, such as Cloud
25245
+ # Monitoring logs alerting and Cloud Notifications. This field is required for
25246
+ # users who sign up for Cloud Interconnect using workforce identity federation.
25247
+ # Corresponds to the JSON property `nocContactEmail`
25248
+ # @return [String]
25249
+ attr_accessor :noc_contact_email
25250
+
25251
+ # Indicates that this is a Cross-Cloud Interconnect. This field specifies the
25252
+ # location outside of Google's network that the interconnect is connected to.
25253
+ # Corresponds to the JSON property `remoteLocation`
25254
+ # @return [String]
25255
+ attr_accessor :remote_location
25256
+
25257
+ # Optional. List of features requested for this Interconnect connection, which
25258
+ # can take one of the following values: - IF_MACSEC If specified then the
25259
+ # connection is created on MACsec capable hardware ports. If not specified, the
25260
+ # default value is false, which allocates non-MACsec capable ports first if
25261
+ # available. This parameter can be provided only with Interconnect INSERT. It
25262
+ # isn't valid for Interconnect PATCH.
25263
+ # Corresponds to the JSON property `requestedFeatures`
25264
+ # @return [Array<String>]
25265
+ attr_accessor :requested_features
25266
+
25267
+ # Target number of physical links in the link bundle, as requested by the
25268
+ # customer.
25269
+ # Corresponds to the JSON property `requestedLinkCount`
25270
+ # @return [Fixnum]
25271
+ attr_accessor :requested_link_count
25272
+
25273
+ def initialize(**args)
25274
+ update!(**args)
25275
+ end
25276
+
25277
+ # Update properties of this object
25278
+ def update!(**args)
25279
+ @admin_enabled = args[:admin_enabled] if args.key?(:admin_enabled)
25280
+ @customer_name = args[:customer_name] if args.key?(:customer_name)
25281
+ @description = args[:description] if args.key?(:description)
25282
+ @facility = args[:facility] if args.key?(:facility)
25283
+ @interconnect_type = args[:interconnect_type] if args.key?(:interconnect_type)
25284
+ @link_type = args[:link_type] if args.key?(:link_type)
25285
+ @name = args[:name] if args.key?(:name)
25286
+ @noc_contact_email = args[:noc_contact_email] if args.key?(:noc_contact_email)
25287
+ @remote_location = args[:remote_location] if args.key?(:remote_location)
25288
+ @requested_features = args[:requested_features] if args.key?(:requested_features)
25289
+ @requested_link_count = args[:requested_link_count] if args.key?(:requested_link_count)
25290
+ end
25291
+ end
25292
+
25293
+ #
25294
+ class InterconnectGroupsCreateMembersRequest
25295
+ include Google::Apis::Core::Hashable
25296
+
25297
+ #
25298
+ # Corresponds to the JSON property `request`
25299
+ # @return [Google::Apis::ComputeBeta::InterconnectGroupsCreateMembers]
25300
+ attr_accessor :request
25301
+
25302
+ def initialize(**args)
25303
+ update!(**args)
25304
+ end
25305
+
25306
+ # Update properties of this object
25307
+ def update!(**args)
25308
+ @request = args[:request] if args.key?(:request)
25309
+ end
25310
+ end
25311
+
25312
+ # Response for the InterconnectGroupsGetOperationalStatusResponse.
25313
+ class InterconnectGroupsGetOperationalStatusResponse
25314
+ include Google::Apis::Core::Hashable
25315
+
25316
+ #
25317
+ # Corresponds to the JSON property `etag`
25318
+ # @return [String]
25319
+ attr_accessor :etag
25320
+
25321
+ # Request to get the status of the interconnect group with extra detail.
25322
+ # Corresponds to the JSON property `result`
25323
+ # @return [Google::Apis::ComputeBeta::InterconnectGroupsOperationalStatus]
25324
+ attr_accessor :result
25325
+
25326
+ def initialize(**args)
25327
+ update!(**args)
25328
+ end
25329
+
25330
+ # Update properties of this object
25331
+ def update!(**args)
25332
+ @etag = args[:etag] if args.key?(:etag)
25333
+ @result = args[:result] if args.key?(:result)
25334
+ end
25335
+ end
25336
+
25337
+ #
25338
+ class InterconnectGroupsListResponse
25339
+ include Google::Apis::Core::Hashable
25340
+
25341
+ #
25342
+ # Corresponds to the JSON property `etag`
25343
+ # @return [String]
25344
+ attr_accessor :etag
25345
+
25346
+ # [Output Only] Unique identifier for the resource; defined by the server.
25347
+ # Corresponds to the JSON property `id`
25348
+ # @return [String]
25349
+ attr_accessor :id
25350
+
25351
+ # A list of InterconnectGroup resources.
25352
+ # Corresponds to the JSON property `items`
25353
+ # @return [Array<Google::Apis::ComputeBeta::InterconnectGroup>]
25354
+ attr_accessor :items
25355
+
25356
+ #
25357
+ # Corresponds to the JSON property `kind`
25358
+ # @return [String]
25359
+ attr_accessor :kind
25360
+
25361
+ # [Output Only] This token allows you to get the next page of results for list
25362
+ # requests. If the number of results is larger than maxResults, use the
25363
+ # nextPageToken as a value for the query parameter pageToken in the next list
25364
+ # request. Subsequent list requests will have their own nextPageToken to
25365
+ # continue paging through the results.
25366
+ # Corresponds to the JSON property `nextPageToken`
25367
+ # @return [String]
25368
+ attr_accessor :next_page_token
25369
+
25370
+ # [Output Only] Server-defined URL for this resource.
25371
+ # Corresponds to the JSON property `selfLink`
25372
+ # @return [String]
25373
+ attr_accessor :self_link
25374
+
25375
+ # [Output Only] Unreachable resources. end_interface:
25376
+ # MixerListResponseWithEtagBuilder
25377
+ # Corresponds to the JSON property `unreachables`
25378
+ # @return [Array<String>]
25379
+ attr_accessor :unreachables
25380
+
25381
+ # [Output Only] Informational warning message.
25382
+ # Corresponds to the JSON property `warning`
25383
+ # @return [Google::Apis::ComputeBeta::InterconnectGroupsListResponse::Warning]
25384
+ attr_accessor :warning
25385
+
25386
+ def initialize(**args)
25387
+ update!(**args)
25388
+ end
25389
+
25390
+ # Update properties of this object
25391
+ def update!(**args)
25392
+ @etag = args[:etag] if args.key?(:etag)
25393
+ @id = args[:id] if args.key?(:id)
25394
+ @items = args[:items] if args.key?(:items)
25395
+ @kind = args[:kind] if args.key?(:kind)
25396
+ @next_page_token = args[:next_page_token] if args.key?(:next_page_token)
25397
+ @self_link = args[:self_link] if args.key?(:self_link)
25398
+ @unreachables = args[:unreachables] if args.key?(:unreachables)
25399
+ @warning = args[:warning] if args.key?(:warning)
25400
+ end
25401
+
25402
+ # [Output Only] Informational warning message.
25403
+ class Warning
25404
+ include Google::Apis::Core::Hashable
25405
+
25406
+ # [Output Only] A warning code, if applicable. For example, Compute Engine
25407
+ # returns NO_RESULTS_ON_PAGE if there are no results in the response.
25408
+ # Corresponds to the JSON property `code`
25409
+ # @return [String]
25410
+ attr_accessor :code
25411
+
25412
+ # [Output Only] Metadata about this warning in key: value format. For example: "
25413
+ # data": [ ` "key": "scope", "value": "zones/us-east1-d" `
25414
+ # Corresponds to the JSON property `data`
25415
+ # @return [Array<Google::Apis::ComputeBeta::InterconnectGroupsListResponse::Warning::Datum>]
25416
+ attr_accessor :data
25417
+
25418
+ # [Output Only] A human-readable description of the warning code.
25419
+ # Corresponds to the JSON property `message`
25420
+ # @return [String]
25421
+ attr_accessor :message
25422
+
25423
+ def initialize(**args)
25424
+ update!(**args)
25425
+ end
25426
+
25427
+ # Update properties of this object
25428
+ def update!(**args)
25429
+ @code = args[:code] if args.key?(:code)
25430
+ @data = args[:data] if args.key?(:data)
25431
+ @message = args[:message] if args.key?(:message)
25432
+ end
25433
+
25434
+ #
25435
+ class Datum
25436
+ include Google::Apis::Core::Hashable
25437
+
25438
+ # [Output Only] A key that provides more detail on the warning being returned.
25439
+ # For example, for warnings where there are no results in a list request for a
25440
+ # particular zone, this key might be scope and the key value might be the zone
25441
+ # name. Other examples might be a key indicating a deprecated resource and a
25442
+ # suggested replacement, or a warning about invalid network settings (for
25443
+ # example, if an instance attempts to perform IP forwarding but is not enabled
25444
+ # for IP forwarding).
25445
+ # Corresponds to the JSON property `key`
25446
+ # @return [String]
25447
+ attr_accessor :key
25448
+
25449
+ # [Output Only] A warning data value corresponding to the key.
25450
+ # Corresponds to the JSON property `value`
25451
+ # @return [String]
25452
+ attr_accessor :value
25453
+
25454
+ def initialize(**args)
25455
+ update!(**args)
25456
+ end
25457
+
25458
+ # Update properties of this object
25459
+ def update!(**args)
25460
+ @key = args[:key] if args.key?(:key)
25461
+ @value = args[:value] if args.key?(:value)
25462
+ end
25463
+ end
25464
+ end
25465
+ end
25466
+
25467
+ # Request to get the status of the interconnect group with extra detail.
25468
+ class InterconnectGroupsOperationalStatus
23591
25469
  include Google::Apis::Core::Hashable
23592
25470
 
23593
- # Customer-side demarc ID for this circuit.
23594
- # Corresponds to the JSON property `customerDemarcId`
23595
- # @return [String]
23596
- attr_accessor :customer_demarc_id
25471
+ # [Output Only] The status of the group as configured. This has the same
25472
+ # structure as the operational field reported by the OperationalStatus method,
25473
+ # but does not take into account the operational status of each resource.
25474
+ # Corresponds to the JSON property `configured`
25475
+ # @return [Google::Apis::ComputeBeta::InterconnectGroupConfigured]
25476
+ attr_accessor :configured
23597
25477
 
23598
- # Google-assigned unique ID for this circuit. Assigned at circuit turn-up.
23599
- # Corresponds to the JSON property `googleCircuitId`
25478
+ # Summarizes the status of the group.
25479
+ # Corresponds to the JSON property `groupStatus`
23600
25480
  # @return [String]
23601
- attr_accessor :google_circuit_id
23602
-
23603
- # Google-side demarc ID for this circuit. Assigned at circuit turn-up and
23604
- # provided by Google to the customer in the LOA.
23605
- # Corresponds to the JSON property `googleDemarcId`
23606
- # @return [String]
23607
- attr_accessor :google_demarc_id
23608
-
23609
- def initialize(**args)
23610
- update!(**args)
23611
- end
23612
-
23613
- # Update properties of this object
23614
- def update!(**args)
23615
- @customer_demarc_id = args[:customer_demarc_id] if args.key?(:customer_demarc_id)
23616
- @google_circuit_id = args[:google_circuit_id] if args.key?(:google_circuit_id)
23617
- @google_demarc_id = args[:google_demarc_id] if args.key?(:google_demarc_id)
23618
- end
23619
- end
25481
+ attr_accessor :group_status
23620
25482
 
23621
- # Diagnostics information about the Interconnect connection, which contains
23622
- # detailed and current technical information about Google's side of the
23623
- # connection.
23624
- class InterconnectDiagnostics
23625
- include Google::Apis::Core::Hashable
23626
-
23627
- # A list of InterconnectDiagnostics.ARPEntry objects, describing individual
23628
- # neighbors currently seen by the Google router in the ARP cache for the
23629
- # Interconnect. This will be empty when the Interconnect is not bundled.
23630
- # Corresponds to the JSON property `arpCaches`
23631
- # @return [Array<Google::Apis::ComputeBeta::InterconnectDiagnosticsArpEntry>]
23632
- attr_accessor :arp_caches
23633
-
23634
- # The aggregation type of the bundle interface.
23635
- # Corresponds to the JSON property `bundleAggregationType`
23636
- # @return [String]
23637
- attr_accessor :bundle_aggregation_type
23638
-
23639
- # The operational status of the bundle interface.
23640
- # Corresponds to the JSON property `bundleOperationalStatus`
23641
- # @return [String]
23642
- attr_accessor :bundle_operational_status
23643
-
23644
- # A list of InterconnectDiagnostics.LinkStatus objects, describing the status
23645
- # for each link on the Interconnect.
23646
- # Corresponds to the JSON property `links`
23647
- # @return [Array<Google::Apis::ComputeBeta::InterconnectDiagnosticsLinkStatus>]
23648
- attr_accessor :links
23649
-
23650
- # The MAC address of the Interconnect's bundle interface.
23651
- # Corresponds to the JSON property `macAddress`
23652
- # @return [String]
23653
- attr_accessor :mac_address
23654
-
23655
- def initialize(**args)
23656
- update!(**args)
23657
- end
23658
-
23659
- # Update properties of this object
23660
- def update!(**args)
23661
- @arp_caches = args[:arp_caches] if args.key?(:arp_caches)
23662
- @bundle_aggregation_type = args[:bundle_aggregation_type] if args.key?(:bundle_aggregation_type)
23663
- @bundle_operational_status = args[:bundle_operational_status] if args.key?(:bundle_operational_status)
23664
- @links = args[:links] if args.key?(:links)
23665
- @mac_address = args[:mac_address] if args.key?(:mac_address)
23666
- end
23667
- end
25483
+ # The user's intent for this group. This is the only required field besides the
25484
+ # name that must be specified on group creation.
25485
+ # Corresponds to the JSON property `intent`
25486
+ # @return [Google::Apis::ComputeBeta::InterconnectGroupIntent]
25487
+ attr_accessor :intent
23668
25488
 
23669
- # Describing the ARP neighbor entries seen on this link
23670
- class InterconnectDiagnosticsArpEntry
23671
- include Google::Apis::Core::Hashable
23672
-
23673
- # The IP address of this ARP neighbor.
23674
- # Corresponds to the JSON property `ipAddress`
23675
- # @return [String]
23676
- attr_accessor :ip_address
23677
-
23678
- # The MAC address of this ARP neighbor.
23679
- # Corresponds to the JSON property `macAddress`
23680
- # @return [String]
23681
- attr_accessor :mac_address
23682
-
23683
- def initialize(**args)
23684
- update!(**args)
23685
- end
23686
-
23687
- # Update properties of this object
23688
- def update!(**args)
23689
- @ip_address = args[:ip_address] if args.key?(:ip_address)
23690
- @mac_address = args[:mac_address] if args.key?(:mac_address)
23691
- end
23692
- end
23693
-
23694
- #
23695
- class InterconnectDiagnosticsLinkLacpStatus
23696
- include Google::Apis::Core::Hashable
23697
-
23698
- # System ID of the port on Google's side of the LACP exchange.
23699
- # Corresponds to the JSON property `googleSystemId`
23700
- # @return [String]
23701
- attr_accessor :google_system_id
23702
-
23703
- # System ID of the port on the neighbor's side of the LACP exchange.
23704
- # Corresponds to the JSON property `neighborSystemId`
23705
- # @return [String]
23706
- attr_accessor :neighbor_system_id
23707
-
23708
- # The state of a LACP link, which can take one of the following values: - ACTIVE:
23709
- # The link is configured and active within the bundle. - DETACHED: The link is
23710
- # not configured within the bundle. This means that the rest of the object
23711
- # should be empty.
23712
- # Corresponds to the JSON property `state`
23713
- # @return [String]
23714
- attr_accessor :state
23715
-
23716
- def initialize(**args)
23717
- update!(**args)
23718
- end
23719
-
23720
- # Update properties of this object
23721
- def update!(**args)
23722
- @google_system_id = args[:google_system_id] if args.key?(:google_system_id)
23723
- @neighbor_system_id = args[:neighbor_system_id] if args.key?(:neighbor_system_id)
23724
- @state = args[:state] if args.key?(:state)
23725
- end
23726
- end
23727
-
23728
- #
23729
- class InterconnectDiagnosticsLinkOpticalPower
23730
- include Google::Apis::Core::Hashable
23731
-
23732
- # The status of the current value when compared to the warning and alarm levels
23733
- # for the receiving or transmitting transceiver. Possible states include: - OK:
23734
- # The value has not crossed a warning threshold. - LOW_WARNING: The value has
23735
- # crossed below the low warning threshold. - HIGH_WARNING: The value has crossed
23736
- # above the high warning threshold. - LOW_ALARM: The value has crossed below the
23737
- # low alarm threshold. - HIGH_ALARM: The value has crossed above the high alarm
23738
- # threshold.
23739
- # Corresponds to the JSON property `state`
23740
- # @return [String]
23741
- attr_accessor :state
25489
+ #
25490
+ # Corresponds to the JSON property `interconnectStatuses`
25491
+ # @return [Array<Google::Apis::ComputeBeta::InterconnectGroupsOperationalStatusInterconnectStatus>]
25492
+ attr_accessor :interconnect_statuses
23742
25493
 
23743
- # Value of the current receiving or transmitting optical power, read in dBm.
23744
- # Take a known good optical value, give it a 10% margin and trigger warnings
23745
- # relative to that value. In general, a -7dBm warning and a -11dBm alarm are
23746
- # good optical value estimates for most links.
23747
- # Corresponds to the JSON property `value`
23748
- # @return [Float]
23749
- attr_accessor :value
25494
+ # [Output Only] The status of the group as configured. This has the same
25495
+ # structure as the operational field reported by the OperationalStatus method,
25496
+ # but does not take into account the operational status of each resource.
25497
+ # Corresponds to the JSON property `operational`
25498
+ # @return [Google::Apis::ComputeBeta::InterconnectGroupConfigured]
25499
+ attr_accessor :operational
23750
25500
 
23751
25501
  def initialize(**args)
23752
25502
  update!(**args)
@@ -23754,90 +25504,40 @@ module Google
23754
25504
 
23755
25505
  # Update properties of this object
23756
25506
  def update!(**args)
23757
- @state = args[:state] if args.key?(:state)
23758
- @value = args[:value] if args.key?(:value)
25507
+ @configured = args[:configured] if args.key?(:configured)
25508
+ @group_status = args[:group_status] if args.key?(:group_status)
25509
+ @intent = args[:intent] if args.key?(:intent)
25510
+ @interconnect_statuses = args[:interconnect_statuses] if args.key?(:interconnect_statuses)
25511
+ @operational = args[:operational] if args.key?(:operational)
23759
25512
  end
23760
25513
  end
23761
25514
 
23762
- #
23763
- class InterconnectDiagnosticsLinkStatus
25515
+ # The status of one Interconnect in the group. The order is arbitrary.
25516
+ class InterconnectGroupsOperationalStatusInterconnectStatus
23764
25517
  include Google::Apis::Core::Hashable
23765
25518
 
23766
- # A list of InterconnectDiagnostics.ARPEntry objects, describing the ARP
23767
- # neighbor entries seen on this link. This will be empty if the link is bundled
23768
- # Corresponds to the JSON property `arpCaches`
23769
- # @return [Array<Google::Apis::ComputeBeta::InterconnectDiagnosticsArpEntry>]
23770
- attr_accessor :arp_caches
23771
-
23772
- # The unique ID for this link assigned during turn up by Google.
23773
- # Corresponds to the JSON property `circuitId`
23774
- # @return [String]
23775
- attr_accessor :circuit_id
23776
-
23777
- # The Demarc address assigned by Google and provided in the LoA.
23778
- # Corresponds to the JSON property `googleDemarc`
23779
- # @return [String]
23780
- attr_accessor :google_demarc
23781
-
23782
- #
23783
- # Corresponds to the JSON property `lacpStatus`
23784
- # @return [Google::Apis::ComputeBeta::InterconnectDiagnosticsLinkLacpStatus]
23785
- attr_accessor :lacp_status
25519
+ # Whether the Interconnect is enabled.
25520
+ # Corresponds to the JSON property `adminEnabled`
25521
+ # @return [Boolean]
25522
+ attr_accessor :admin_enabled
25523
+ alias_method :admin_enabled?, :admin_enabled
23786
25524
 
23787
- # Describes the status of MACsec encryption on the link.
23788
- # Corresponds to the JSON property `macsec`
23789
- # @return [Google::Apis::ComputeBeta::InterconnectDiagnosticsMacsecStatus]
23790
- attr_accessor :macsec
25525
+ # Diagnostics information about the Interconnect connection, which contains
25526
+ # detailed and current technical information about Google's side of the
25527
+ # connection.
25528
+ # Corresponds to the JSON property `diagnostics`
25529
+ # @return [Google::Apis::ComputeBeta::InterconnectDiagnostics]
25530
+ attr_accessor :diagnostics
23791
25531
 
23792
- # The operational status of the link.
23793
- # Corresponds to the JSON property `operationalStatus`
25532
+ # The URL of the Interconnect being described.
25533
+ # Corresponds to the JSON property `interconnect`
23794
25534
  # @return [String]
23795
- attr_accessor :operational_status
23796
-
23797
- # An InterconnectDiagnostics.LinkOpticalPower object, describing the current
23798
- # value and status of the received light level.
23799
- # Corresponds to the JSON property `receivingOpticalPower`
23800
- # @return [Google::Apis::ComputeBeta::InterconnectDiagnosticsLinkOpticalPower]
23801
- attr_accessor :receiving_optical_power
23802
-
23803
- # An InterconnectDiagnostics.LinkOpticalPower object, describing the current
23804
- # value and status of the transmitted light level.
23805
- # Corresponds to the JSON property `transmittingOpticalPower`
23806
- # @return [Google::Apis::ComputeBeta::InterconnectDiagnosticsLinkOpticalPower]
23807
- attr_accessor :transmitting_optical_power
23808
-
23809
- def initialize(**args)
23810
- update!(**args)
23811
- end
23812
-
23813
- # Update properties of this object
23814
- def update!(**args)
23815
- @arp_caches = args[:arp_caches] if args.key?(:arp_caches)
23816
- @circuit_id = args[:circuit_id] if args.key?(:circuit_id)
23817
- @google_demarc = args[:google_demarc] if args.key?(:google_demarc)
23818
- @lacp_status = args[:lacp_status] if args.key?(:lacp_status)
23819
- @macsec = args[:macsec] if args.key?(:macsec)
23820
- @operational_status = args[:operational_status] if args.key?(:operational_status)
23821
- @receiving_optical_power = args[:receiving_optical_power] if args.key?(:receiving_optical_power)
23822
- @transmitting_optical_power = args[:transmitting_optical_power] if args.key?(:transmitting_optical_power)
23823
- end
23824
- end
23825
-
23826
- # Describes the status of MACsec encryption on the link.
23827
- class InterconnectDiagnosticsMacsecStatus
23828
- include Google::Apis::Core::Hashable
25535
+ attr_accessor :interconnect
23829
25536
 
23830
- # Indicates the Connectivity Association Key Name (CKN) currently being used if
23831
- # MACsec is operational.
23832
- # Corresponds to the JSON property `ckn`
25537
+ # Whether this interconnect is participating in the redundant configuration.
25538
+ # Corresponds to the JSON property `isActive`
23833
25539
  # @return [String]
23834
- attr_accessor :ckn
23835
-
23836
- # Indicates whether or not MACsec is operational on this link.
23837
- # Corresponds to the JSON property `operational`
23838
- # @return [Boolean]
23839
- attr_accessor :operational
23840
- alias_method :operational?, :operational
25540
+ attr_accessor :is_active
23841
25541
 
23842
25542
  def initialize(**args)
23843
25543
  update!(**args)
@@ -23845,8 +25545,10 @@ module Google
23845
25545
 
23846
25546
  # Update properties of this object
23847
25547
  def update!(**args)
23848
- @ckn = args[:ckn] if args.key?(:ckn)
23849
- @operational = args[:operational] if args.key?(:operational)
25548
+ @admin_enabled = args[:admin_enabled] if args.key?(:admin_enabled)
25549
+ @diagnostics = args[:diagnostics] if args.key?(:diagnostics)
25550
+ @interconnect = args[:interconnect] if args.key?(:interconnect)
25551
+ @is_active = args[:is_active] if args.key?(:is_active)
23850
25552
  end
23851
25553
  end
23852
25554
 
@@ -23996,7 +25698,7 @@ module Google
23996
25698
 
23997
25699
  # [Output only] List of link types available at this InterconnectLocation, which
23998
25700
  # can take one of the following values: - LINK_TYPE_ETHERNET_10G_LR -
23999
- # LINK_TYPE_ETHERNET_100G_LR
25701
+ # LINK_TYPE_ETHERNET_100G_LR - LINK_TYPE_ETHERNET_400G_LR4
24000
25702
  # Corresponds to the JSON property `availableLinkTypes`
24001
25703
  # @return [Array<String>]
24002
25704
  attr_accessor :available_link_types
@@ -24919,6 +26621,18 @@ module Google
24919
26621
  class License
24920
26622
  include Google::Apis::Core::Hashable
24921
26623
 
26624
+ # Specifies licenseCodes of licenses that can replace this license. Note: such
26625
+ # replacements are allowed even if removable_from_disk is false.
26626
+ # Corresponds to the JSON property `allowedReplacementLicenses`
26627
+ # @return [Array<String>]
26628
+ attr_accessor :allowed_replacement_licenses
26629
+
26630
+ # If true, this license can be appended to an existing disk's set of licenses.
26631
+ # Corresponds to the JSON property `appendableToDisk`
26632
+ # @return [Boolean]
26633
+ attr_accessor :appendable_to_disk
26634
+ alias_method :appendable_to_disk?, :appendable_to_disk
26635
+
24922
26636
  # [Output Only] Deprecated. This field no longer reflects whether a license
24923
26637
  # charges a usage fee.
24924
26638
  # Corresponds to the JSON property `chargesUseFee`
@@ -24943,6 +26657,13 @@ module Google
24943
26657
  # @return [Fixnum]
24944
26658
  attr_accessor :id
24945
26659
 
26660
+ # Specifies licenseCodes of licenses that are incompatible with this license. If
26661
+ # a license is incompatible with this license, it cannot be attached to the same
26662
+ # disk or image.
26663
+ # Corresponds to the JSON property `incompatibleLicenses`
26664
+ # @return [Array<String>]
26665
+ attr_accessor :incompatible_licenses
26666
+
24946
26667
  # [Output Only] Type of resource. Always compute#license for licenses.
24947
26668
  # Corresponds to the JSON property `kind`
24948
26669
  # @return [String]
@@ -24954,12 +26675,47 @@ module Google
24954
26675
  # @return [Fixnum]
24955
26676
  attr_accessor :license_code
24956
26677
 
26678
+ # A Duration represents a fixed-length span of time represented as a count of
26679
+ # seconds and fractions of seconds at nanosecond resolution. It is independent
26680
+ # of any calendar and concepts like "day" or "month". Range is approximately 10,
26681
+ # 000 years.
26682
+ # Corresponds to the JSON property `minimumRetention`
26683
+ # @return [Google::Apis::ComputeBeta::Duration]
26684
+ attr_accessor :minimum_retention
26685
+
26686
+ # If true, this license can only be used on VMs on multi tenant nodes.
26687
+ # Corresponds to the JSON property `multiTenantOnly`
26688
+ # @return [Boolean]
26689
+ attr_accessor :multi_tenant_only
26690
+ alias_method :multi_tenant_only?, :multi_tenant_only
26691
+
24957
26692
  # Name of the resource. The name must be 1-63 characters long and comply with
24958
26693
  # RFC1035.
24959
26694
  # Corresponds to the JSON property `name`
24960
26695
  # @return [String]
24961
26696
  attr_accessor :name
24962
26697
 
26698
+ # If true, indicates this is an OS license. Only one OS license can be attached
26699
+ # to a disk or image at a time.
26700
+ # Corresponds to the JSON property `osLicense`
26701
+ # @return [Boolean]
26702
+ attr_accessor :os_license
26703
+ alias_method :os_license?, :os_license
26704
+
26705
+ # If true, this license can be removed from a disk's set of licenses, with no
26706
+ # replacement license needed.
26707
+ # Corresponds to the JSON property `removableFromDisk`
26708
+ # @return [Boolean]
26709
+ attr_accessor :removable_from_disk
26710
+ alias_method :removable_from_disk?, :removable_from_disk
26711
+
26712
+ # Specifies the set of permissible coattached licenseCodes of licenses that
26713
+ # satisfy the coattachment requirement of this license. At least one license
26714
+ # from the set must be attached to the same disk or image as this license.
26715
+ # Corresponds to the JSON property `requiredCoattachedLicenses`
26716
+ # @return [Array<String>]
26717
+ attr_accessor :required_coattached_licenses
26718
+
24963
26719
  # [Input Only] Deprecated.
24964
26720
  # Corresponds to the JSON property `resourceRequirements`
24965
26721
  # @return [Google::Apis::ComputeBeta::LicenseResourceRequirements]
@@ -24970,6 +26726,17 @@ module Google
24970
26726
  # @return [String]
24971
26727
  attr_accessor :self_link
24972
26728
 
26729
+ # [Output Only] Server-defined URL for this resource with the resource id.
26730
+ # Corresponds to the JSON property `selfLinkWithId`
26731
+ # @return [String]
26732
+ attr_accessor :self_link_with_id
26733
+
26734
+ # If true, this license can only be used on VMs on sole tenant nodes.
26735
+ # Corresponds to the JSON property `soleTenantOnly`
26736
+ # @return [Boolean]
26737
+ attr_accessor :sole_tenant_only
26738
+ alias_method :sole_tenant_only?, :sole_tenant_only
26739
+
24973
26740
  # If false, licenses will not be copied from the source resource when creating
24974
26741
  # an image from a disk, disk from snapshot, or snapshot from disk.
24975
26742
  # Corresponds to the JSON property `transferable`
@@ -24977,22 +26744,38 @@ module Google
24977
26744
  attr_accessor :transferable
24978
26745
  alias_method :transferable?, :transferable
24979
26746
 
26747
+ # [Output Only] Last update timestamp in RFC3339 text format.
26748
+ # Corresponds to the JSON property `updateTimestamp`
26749
+ # @return [String]
26750
+ attr_accessor :update_timestamp
26751
+
24980
26752
  def initialize(**args)
24981
26753
  update!(**args)
24982
26754
  end
24983
26755
 
24984
26756
  # Update properties of this object
24985
26757
  def update!(**args)
26758
+ @allowed_replacement_licenses = args[:allowed_replacement_licenses] if args.key?(:allowed_replacement_licenses)
26759
+ @appendable_to_disk = args[:appendable_to_disk] if args.key?(:appendable_to_disk)
24986
26760
  @charges_use_fee = args[:charges_use_fee] if args.key?(:charges_use_fee)
24987
26761
  @creation_timestamp = args[:creation_timestamp] if args.key?(:creation_timestamp)
24988
26762
  @description = args[:description] if args.key?(:description)
24989
26763
  @id = args[:id] if args.key?(:id)
26764
+ @incompatible_licenses = args[:incompatible_licenses] if args.key?(:incompatible_licenses)
24990
26765
  @kind = args[:kind] if args.key?(:kind)
24991
26766
  @license_code = args[:license_code] if args.key?(:license_code)
26767
+ @minimum_retention = args[:minimum_retention] if args.key?(:minimum_retention)
26768
+ @multi_tenant_only = args[:multi_tenant_only] if args.key?(:multi_tenant_only)
24992
26769
  @name = args[:name] if args.key?(:name)
26770
+ @os_license = args[:os_license] if args.key?(:os_license)
26771
+ @removable_from_disk = args[:removable_from_disk] if args.key?(:removable_from_disk)
26772
+ @required_coattached_licenses = args[:required_coattached_licenses] if args.key?(:required_coattached_licenses)
24993
26773
  @resource_requirements = args[:resource_requirements] if args.key?(:resource_requirements)
24994
26774
  @self_link = args[:self_link] if args.key?(:self_link)
26775
+ @self_link_with_id = args[:self_link_with_id] if args.key?(:self_link_with_id)
26776
+ @sole_tenant_only = args[:sole_tenant_only] if args.key?(:sole_tenant_only)
24995
26777
  @transferable = args[:transferable] if args.key?(:transferable)
26778
+ @update_timestamp = args[:update_timestamp] if args.key?(:update_timestamp)
24996
26779
  end
24997
26780
  end
24998
26781
 
@@ -25440,6 +27223,23 @@ module Google
25440
27223
  # @return [String]
25441
27224
  attr_accessor :kind
25442
27225
 
27226
+ # A fingerprint for the labels being applied to this machine image, which is
27227
+ # essentially a hash of the labels set used for optimistic locking. The
27228
+ # fingerprint is initially generated by Compute Engine and changes after every
27229
+ # request to modify or update labels. You must always provide an up-to-date
27230
+ # fingerprint hash in order to update or change labels. To see the latest
27231
+ # fingerprint, make get() request to the machine image.
27232
+ # Corresponds to the JSON property `labelFingerprint`
27233
+ # NOTE: Values are automatically base64 encoded/decoded in the client library.
27234
+ # @return [String]
27235
+ attr_accessor :label_fingerprint
27236
+
27237
+ # Labels to apply to this machine image. These can be later modified by the
27238
+ # setLabels method.
27239
+ # Corresponds to the JSON property `labels`
27240
+ # @return [Hash<String,String>]
27241
+ attr_accessor :labels
27242
+
25443
27243
  # Encrypts the machine image using a customer-supplied encryption key. After you
25444
27244
  # encrypt a machine image using a customer-supplied key, you must provide the
25445
27245
  # same key if you use the machine image later. For example, you must provide the
@@ -25536,6 +27336,8 @@ module Google
25536
27336
  @id = args[:id] if args.key?(:id)
25537
27337
  @instance_properties = args[:instance_properties] if args.key?(:instance_properties)
25538
27338
  @kind = args[:kind] if args.key?(:kind)
27339
+ @label_fingerprint = args[:label_fingerprint] if args.key?(:label_fingerprint)
27340
+ @labels = args[:labels] if args.key?(:labels)
25539
27341
  @machine_image_encryption_key = args[:machine_image_encryption_key] if args.key?(:machine_image_encryption_key)
25540
27342
  @name = args[:name] if args.key?(:name)
25541
27343
  @satisfies_pzi = args[:satisfies_pzi] if args.key?(:satisfies_pzi)
@@ -27060,6 +28862,11 @@ module Google
27060
28862
  # @return [String]
27061
28863
  attr_accessor :network_profile
27062
28864
 
28865
+ # Additional network parameters.
28866
+ # Corresponds to the JSON property `params`
28867
+ # @return [Google::Apis::ComputeBeta::NetworkParams]
28868
+ attr_accessor :params
28869
+
27063
28870
  # [Output Only] A list of network peerings for the resource.
27064
28871
  # Corresponds to the JSON property `peerings`
27065
28872
  # @return [Array<Google::Apis::ComputeBeta::NetworkPeering>]
@@ -27108,6 +28915,7 @@ module Google
27108
28915
  @name = args[:name] if args.key?(:name)
27109
28916
  @network_firewall_policy_enforcement_order = args[:network_firewall_policy_enforcement_order] if args.key?(:network_firewall_policy_enforcement_order)
27110
28917
  @network_profile = args[:network_profile] if args.key?(:network_profile)
28918
+ @params = args[:params] if args.key?(:params)
27111
28919
  @peerings = args[:peerings] if args.key?(:peerings)
27112
28920
  @routing_config = args[:routing_config] if args.key?(:routing_config)
27113
28921
  @self_link = args[:self_link] if args.key?(:self_link)
@@ -29124,208 +30932,303 @@ module Google
29124
30932
  end
29125
30933
  end
29126
30934
 
29127
- # A network interface resource attached to an instance.
29128
- class NetworkInterface
29129
- include Google::Apis::Core::Hashable
29130
-
29131
- # An array of configurations for this interface. Currently, only one access
29132
- # config, ONE_TO_ONE_NAT, is supported. If there are no accessConfigs specified,
29133
- # then this instance will have no external internet access.
29134
- # Corresponds to the JSON property `accessConfigs`
29135
- # @return [Array<Google::Apis::ComputeBeta::AccessConfig>]
29136
- attr_accessor :access_configs
29137
-
29138
- # An array of alias IP ranges for this network interface. You can only specify
29139
- # this field for network interfaces in VPC networks.
29140
- # Corresponds to the JSON property `aliasIpRanges`
29141
- # @return [Array<Google::Apis::ComputeBeta::AliasIpRange>]
29142
- attr_accessor :alias_ip_ranges
29143
-
29144
- # Fingerprint hash of contents stored in this network interface. This field will
29145
- # be ignored when inserting an Instance or adding a NetworkInterface. An up-to-
29146
- # date fingerprint must be provided in order to update the NetworkInterface. The
29147
- # request will fail with error 400 Bad Request if the fingerprint is not
29148
- # provided, or 412 Precondition Failed if the fingerprint is out of date.
29149
- # Corresponds to the JSON property `fingerprint`
29150
- # NOTE: Values are automatically base64 encoded/decoded in the client library.
29151
- # @return [String]
29152
- attr_accessor :fingerprint
29153
-
29154
- # The prefix length of the primary internal IPv6 range.
29155
- # Corresponds to the JSON property `internalIpv6PrefixLength`
29156
- # @return [Fixnum]
29157
- attr_accessor :internal_ipv6_prefix_length
29158
-
29159
- # An array of IPv6 access configurations for this interface. Currently, only one
29160
- # IPv6 access config, DIRECT_IPV6, is supported. If there is no ipv6AccessConfig
29161
- # specified, then this instance will have no external IPv6 Internet access.
29162
- # Corresponds to the JSON property `ipv6AccessConfigs`
29163
- # @return [Array<Google::Apis::ComputeBeta::AccessConfig>]
29164
- attr_accessor :ipv6_access_configs
29165
-
29166
- # [Output Only] One of EXTERNAL, INTERNAL to indicate whether the IP can be
29167
- # accessed from the Internet. This field is always inherited from its subnetwork.
29168
- # Valid only if stackType is IPV4_IPV6.
29169
- # Corresponds to the JSON property `ipv6AccessType`
29170
- # @return [String]
29171
- attr_accessor :ipv6_access_type
29172
-
29173
- # An IPv6 internal network address for this network interface. To use a static
29174
- # internal IP address, it must be unused and in the same region as the instance'
29175
- # s zone. If not specified, Google Cloud will automatically assign an internal
29176
- # IPv6 address from the instance's subnetwork.
29177
- # Corresponds to the JSON property `ipv6Address`
29178
- # @return [String]
29179
- attr_accessor :ipv6_address
29180
-
29181
- # [Output Only] Type of the resource. Always compute#networkInterface for
29182
- # network interfaces.
29183
- # Corresponds to the JSON property `kind`
29184
- # @return [String]
29185
- attr_accessor :kind
29186
-
29187
- # [Output Only] The name of the network interface, which is generated by the
29188
- # server. For a VM, the network interface uses the nicN naming format. Where N
29189
- # is a value between 0 and 7. The default interface value is nic0.
29190
- # Corresponds to the JSON property `name`
29191
- # @return [String]
29192
- attr_accessor :name
29193
-
29194
- # URL of the VPC network resource for this instance. When creating an instance,
29195
- # if neither the network nor the subnetwork is specified, the default network
29196
- # global/networks/default is used. If the selected project doesn't have the
29197
- # default network, you must specify a network or subnet. If the network is not
29198
- # specified but the subnetwork is specified, the network is inferred. If you
29199
- # specify this property, you can specify the network as a full or partial URL.
29200
- # For example, the following are all valid URLs: - https://www.googleapis.com/
29201
- # compute/v1/projects/project/global/networks/ network - projects/project/global/
29202
- # networks/network - global/networks/default
29203
- # Corresponds to the JSON property `network`
29204
- # @return [String]
29205
- attr_accessor :network
29206
-
29207
- # The URL of the network attachment that this interface should connect to in the
29208
- # following format: projects/`project_number`/regions/`region_name`/
29209
- # networkAttachments/`network_attachment_name`.
29210
- # Corresponds to the JSON property `networkAttachment`
29211
- # @return [String]
29212
- attr_accessor :network_attachment
29213
-
29214
- # An IPv4 internal IP address to assign to the instance for this network
29215
- # interface. If not specified by the user, an unused internal IP is assigned by
29216
- # the system.
29217
- # Corresponds to the JSON property `networkIP`
29218
- # @return [String]
29219
- attr_accessor :network_ip
29220
-
29221
- # The type of vNIC to be used on this interface. This may be gVNIC or VirtioNet.
29222
- # Corresponds to the JSON property `nicType`
29223
- # @return [String]
29224
- attr_accessor :nic_type
29225
-
29226
- # Name of the parent network interface of a dynamic network interface.
29227
- # Corresponds to the JSON property `parentNicName`
29228
- # @return [String]
29229
- attr_accessor :parent_nic_name
29230
-
29231
- # The networking queue count that's specified by users for the network interface.
29232
- # Both Rx and Tx queues will be set to this number. It'll be empty if not
29233
- # specified by the users.
29234
- # Corresponds to the JSON property `queueCount`
29235
- # @return [Fixnum]
29236
- attr_accessor :queue_count
29237
-
29238
- # The stack type for this network interface. To assign only IPv4 addresses, use
29239
- # IPV4_ONLY. To assign both IPv4 and IPv6 addresses, use IPV4_IPV6. If not
29240
- # specified, IPV4_ONLY is used. This field can be both set at instance creation
29241
- # and update network interface operations.
29242
- # Corresponds to the JSON property `stackType`
29243
- # @return [String]
29244
- attr_accessor :stack_type
29245
-
29246
- # The URL of the Subnetwork resource for this instance. If the network resource
29247
- # is in legacy mode, do not specify this field. If the network is in auto subnet
29248
- # mode, specifying the subnetwork is optional. If the network is in custom
29249
- # subnet mode, specifying the subnetwork is required. If you specify this field,
29250
- # you can specify the subnetwork as a full or partial URL. For example, the
29251
- # following are all valid URLs: - https://www.googleapis.com/compute/v1/projects/
29252
- # project/regions/region /subnetworks/subnetwork - regions/region/subnetworks/
29253
- # subnetwork
29254
- # Corresponds to the JSON property `subnetwork`
29255
- # @return [String]
29256
- attr_accessor :subnetwork
29257
-
29258
- # VLAN tag of a dynamic network interface, must be an integer in the range from
29259
- # 2 to 255 inclusively.
29260
- # Corresponds to the JSON property `vlan`
29261
- # @return [Fixnum]
29262
- attr_accessor :vlan
29263
-
29264
- def initialize(**args)
29265
- update!(**args)
29266
- end
29267
-
29268
- # Update properties of this object
29269
- def update!(**args)
29270
- @access_configs = args[:access_configs] if args.key?(:access_configs)
29271
- @alias_ip_ranges = args[:alias_ip_ranges] if args.key?(:alias_ip_ranges)
29272
- @fingerprint = args[:fingerprint] if args.key?(:fingerprint)
29273
- @internal_ipv6_prefix_length = args[:internal_ipv6_prefix_length] if args.key?(:internal_ipv6_prefix_length)
29274
- @ipv6_access_configs = args[:ipv6_access_configs] if args.key?(:ipv6_access_configs)
29275
- @ipv6_access_type = args[:ipv6_access_type] if args.key?(:ipv6_access_type)
29276
- @ipv6_address = args[:ipv6_address] if args.key?(:ipv6_address)
29277
- @kind = args[:kind] if args.key?(:kind)
29278
- @name = args[:name] if args.key?(:name)
29279
- @network = args[:network] if args.key?(:network)
29280
- @network_attachment = args[:network_attachment] if args.key?(:network_attachment)
29281
- @network_ip = args[:network_ip] if args.key?(:network_ip)
29282
- @nic_type = args[:nic_type] if args.key?(:nic_type)
29283
- @parent_nic_name = args[:parent_nic_name] if args.key?(:parent_nic_name)
29284
- @queue_count = args[:queue_count] if args.key?(:queue_count)
29285
- @stack_type = args[:stack_type] if args.key?(:stack_type)
29286
- @subnetwork = args[:subnetwork] if args.key?(:subnetwork)
29287
- @vlan = args[:vlan] if args.key?(:vlan)
29288
- end
29289
- end
29290
-
29291
- # Contains a list of networks.
29292
- class NetworkList
30935
+ # A network interface resource attached to an instance.
30936
+ class NetworkInterface
30937
+ include Google::Apis::Core::Hashable
30938
+
30939
+ # An array of configurations for this interface. Currently, only one access
30940
+ # config, ONE_TO_ONE_NAT, is supported. If there are no accessConfigs specified,
30941
+ # then this instance will have no external internet access.
30942
+ # Corresponds to the JSON property `accessConfigs`
30943
+ # @return [Array<Google::Apis::ComputeBeta::AccessConfig>]
30944
+ attr_accessor :access_configs
30945
+
30946
+ # An array of alias IP ranges for this network interface. You can only specify
30947
+ # this field for network interfaces in VPC networks.
30948
+ # Corresponds to the JSON property `aliasIpRanges`
30949
+ # @return [Array<Google::Apis::ComputeBeta::AliasIpRange>]
30950
+ attr_accessor :alias_ip_ranges
30951
+
30952
+ # Fingerprint hash of contents stored in this network interface. This field will
30953
+ # be ignored when inserting an Instance or adding a NetworkInterface. An up-to-
30954
+ # date fingerprint must be provided in order to update the NetworkInterface. The
30955
+ # request will fail with error 400 Bad Request if the fingerprint is not
30956
+ # provided, or 412 Precondition Failed if the fingerprint is out of date.
30957
+ # Corresponds to the JSON property `fingerprint`
30958
+ # NOTE: Values are automatically base64 encoded/decoded in the client library.
30959
+ # @return [String]
30960
+ attr_accessor :fingerprint
30961
+
30962
+ # The prefix length of the primary internal IPv6 range.
30963
+ # Corresponds to the JSON property `internalIpv6PrefixLength`
30964
+ # @return [Fixnum]
30965
+ attr_accessor :internal_ipv6_prefix_length
30966
+
30967
+ # An array of IPv6 access configurations for this interface. Currently, only one
30968
+ # IPv6 access config, DIRECT_IPV6, is supported. If there is no ipv6AccessConfig
30969
+ # specified, then this instance will have no external IPv6 Internet access.
30970
+ # Corresponds to the JSON property `ipv6AccessConfigs`
30971
+ # @return [Array<Google::Apis::ComputeBeta::AccessConfig>]
30972
+ attr_accessor :ipv6_access_configs
30973
+
30974
+ # [Output Only] One of EXTERNAL, INTERNAL to indicate whether the IP can be
30975
+ # accessed from the Internet. This field is always inherited from its subnetwork.
30976
+ # Valid only if stackType is IPV4_IPV6.
30977
+ # Corresponds to the JSON property `ipv6AccessType`
30978
+ # @return [String]
30979
+ attr_accessor :ipv6_access_type
30980
+
30981
+ # An IPv6 internal network address for this network interface. To use a static
30982
+ # internal IP address, it must be unused and in the same region as the instance'
30983
+ # s zone. If not specified, Google Cloud will automatically assign an internal
30984
+ # IPv6 address from the instance's subnetwork.
30985
+ # Corresponds to the JSON property `ipv6Address`
30986
+ # @return [String]
30987
+ attr_accessor :ipv6_address
30988
+
30989
+ # [Output Only] Type of the resource. Always compute#networkInterface for
30990
+ # network interfaces.
30991
+ # Corresponds to the JSON property `kind`
30992
+ # @return [String]
30993
+ attr_accessor :kind
30994
+
30995
+ # [Output Only] The name of the network interface, which is generated by the
30996
+ # server. For a VM, the network interface uses the nicN naming format. Where N
30997
+ # is a value between 0 and 7. The default interface value is nic0.
30998
+ # Corresponds to the JSON property `name`
30999
+ # @return [String]
31000
+ attr_accessor :name
31001
+
31002
+ # URL of the VPC network resource for this instance. When creating an instance,
31003
+ # if neither the network nor the subnetwork is specified, the default network
31004
+ # global/networks/default is used. If the selected project doesn't have the
31005
+ # default network, you must specify a network or subnet. If the network is not
31006
+ # specified but the subnetwork is specified, the network is inferred. If you
31007
+ # specify this property, you can specify the network as a full or partial URL.
31008
+ # For example, the following are all valid URLs: - https://www.googleapis.com/
31009
+ # compute/v1/projects/project/global/networks/ network - projects/project/global/
31010
+ # networks/network - global/networks/default
31011
+ # Corresponds to the JSON property `network`
31012
+ # @return [String]
31013
+ attr_accessor :network
31014
+
31015
+ # The URL of the network attachment that this interface should connect to in the
31016
+ # following format: projects/`project_number`/regions/`region_name`/
31017
+ # networkAttachments/`network_attachment_name`.
31018
+ # Corresponds to the JSON property `networkAttachment`
31019
+ # @return [String]
31020
+ attr_accessor :network_attachment
31021
+
31022
+ # An IPv4 internal IP address to assign to the instance for this network
31023
+ # interface. If not specified by the user, an unused internal IP is assigned by
31024
+ # the system.
31025
+ # Corresponds to the JSON property `networkIP`
31026
+ # @return [String]
31027
+ attr_accessor :network_ip
31028
+
31029
+ # The type of vNIC to be used on this interface. This may be gVNIC or VirtioNet.
31030
+ # Corresponds to the JSON property `nicType`
31031
+ # @return [String]
31032
+ attr_accessor :nic_type
31033
+
31034
+ # Name of the parent network interface of a dynamic network interface.
31035
+ # Corresponds to the JSON property `parentNicName`
31036
+ # @return [String]
31037
+ attr_accessor :parent_nic_name
31038
+
31039
+ # The networking queue count that's specified by users for the network interface.
31040
+ # Both Rx and Tx queues will be set to this number. It'll be empty if not
31041
+ # specified by the users.
31042
+ # Corresponds to the JSON property `queueCount`
31043
+ # @return [Fixnum]
31044
+ attr_accessor :queue_count
31045
+
31046
+ # The stack type for this network interface. To assign only IPv4 addresses, use
31047
+ # IPV4_ONLY. To assign both IPv4 and IPv6 addresses, use IPV4_IPV6. If not
31048
+ # specified, IPV4_ONLY is used. This field can be both set at instance creation
31049
+ # and update network interface operations.
31050
+ # Corresponds to the JSON property `stackType`
31051
+ # @return [String]
31052
+ attr_accessor :stack_type
31053
+
31054
+ # The URL of the Subnetwork resource for this instance. If the network resource
31055
+ # is in legacy mode, do not specify this field. If the network is in auto subnet
31056
+ # mode, specifying the subnetwork is optional. If the network is in custom
31057
+ # subnet mode, specifying the subnetwork is required. If you specify this field,
31058
+ # you can specify the subnetwork as a full or partial URL. For example, the
31059
+ # following are all valid URLs: - https://www.googleapis.com/compute/v1/projects/
31060
+ # project/regions/region /subnetworks/subnetwork - regions/region/subnetworks/
31061
+ # subnetwork
31062
+ # Corresponds to the JSON property `subnetwork`
31063
+ # @return [String]
31064
+ attr_accessor :subnetwork
31065
+
31066
+ # VLAN tag of a dynamic network interface, must be an integer in the range from
31067
+ # 2 to 255 inclusively.
31068
+ # Corresponds to the JSON property `vlan`
31069
+ # @return [Fixnum]
31070
+ attr_accessor :vlan
31071
+
31072
+ def initialize(**args)
31073
+ update!(**args)
31074
+ end
31075
+
31076
+ # Update properties of this object
31077
+ def update!(**args)
31078
+ @access_configs = args[:access_configs] if args.key?(:access_configs)
31079
+ @alias_ip_ranges = args[:alias_ip_ranges] if args.key?(:alias_ip_ranges)
31080
+ @fingerprint = args[:fingerprint] if args.key?(:fingerprint)
31081
+ @internal_ipv6_prefix_length = args[:internal_ipv6_prefix_length] if args.key?(:internal_ipv6_prefix_length)
31082
+ @ipv6_access_configs = args[:ipv6_access_configs] if args.key?(:ipv6_access_configs)
31083
+ @ipv6_access_type = args[:ipv6_access_type] if args.key?(:ipv6_access_type)
31084
+ @ipv6_address = args[:ipv6_address] if args.key?(:ipv6_address)
31085
+ @kind = args[:kind] if args.key?(:kind)
31086
+ @name = args[:name] if args.key?(:name)
31087
+ @network = args[:network] if args.key?(:network)
31088
+ @network_attachment = args[:network_attachment] if args.key?(:network_attachment)
31089
+ @network_ip = args[:network_ip] if args.key?(:network_ip)
31090
+ @nic_type = args[:nic_type] if args.key?(:nic_type)
31091
+ @parent_nic_name = args[:parent_nic_name] if args.key?(:parent_nic_name)
31092
+ @queue_count = args[:queue_count] if args.key?(:queue_count)
31093
+ @stack_type = args[:stack_type] if args.key?(:stack_type)
31094
+ @subnetwork = args[:subnetwork] if args.key?(:subnetwork)
31095
+ @vlan = args[:vlan] if args.key?(:vlan)
31096
+ end
31097
+ end
31098
+
31099
+ # Contains a list of networks.
31100
+ class NetworkList
31101
+ include Google::Apis::Core::Hashable
31102
+
31103
+ # [Output Only] Unique identifier for the resource; defined by the server.
31104
+ # Corresponds to the JSON property `id`
31105
+ # @return [String]
31106
+ attr_accessor :id
31107
+
31108
+ # A list of Network resources.
31109
+ # Corresponds to the JSON property `items`
31110
+ # @return [Array<Google::Apis::ComputeBeta::Network>]
31111
+ attr_accessor :items
31112
+
31113
+ # [Output Only] Type of resource. Always compute#networkList for lists of
31114
+ # networks.
31115
+ # Corresponds to the JSON property `kind`
31116
+ # @return [String]
31117
+ attr_accessor :kind
31118
+
31119
+ # [Output Only] This token allows you to get the next page of results for list
31120
+ # requests. If the number of results is larger than maxResults, use the
31121
+ # nextPageToken as a value for the query parameter pageToken in the next list
31122
+ # request. Subsequent list requests will have their own nextPageToken to
31123
+ # continue paging through the results.
31124
+ # Corresponds to the JSON property `nextPageToken`
31125
+ # @return [String]
31126
+ attr_accessor :next_page_token
31127
+
31128
+ # [Output Only] Server-defined URL for this resource.
31129
+ # Corresponds to the JSON property `selfLink`
31130
+ # @return [String]
31131
+ attr_accessor :self_link
31132
+
31133
+ # [Output Only] Informational warning message.
31134
+ # Corresponds to the JSON property `warning`
31135
+ # @return [Google::Apis::ComputeBeta::NetworkList::Warning]
31136
+ attr_accessor :warning
31137
+
31138
+ def initialize(**args)
31139
+ update!(**args)
31140
+ end
31141
+
31142
+ # Update properties of this object
31143
+ def update!(**args)
31144
+ @id = args[:id] if args.key?(:id)
31145
+ @items = args[:items] if args.key?(:items)
31146
+ @kind = args[:kind] if args.key?(:kind)
31147
+ @next_page_token = args[:next_page_token] if args.key?(:next_page_token)
31148
+ @self_link = args[:self_link] if args.key?(:self_link)
31149
+ @warning = args[:warning] if args.key?(:warning)
31150
+ end
31151
+
31152
+ # [Output Only] Informational warning message.
31153
+ class Warning
31154
+ include Google::Apis::Core::Hashable
31155
+
31156
+ # [Output Only] A warning code, if applicable. For example, Compute Engine
31157
+ # returns NO_RESULTS_ON_PAGE if there are no results in the response.
31158
+ # Corresponds to the JSON property `code`
31159
+ # @return [String]
31160
+ attr_accessor :code
31161
+
31162
+ # [Output Only] Metadata about this warning in key: value format. For example: "
31163
+ # data": [ ` "key": "scope", "value": "zones/us-east1-d" `
31164
+ # Corresponds to the JSON property `data`
31165
+ # @return [Array<Google::Apis::ComputeBeta::NetworkList::Warning::Datum>]
31166
+ attr_accessor :data
31167
+
31168
+ # [Output Only] A human-readable description of the warning code.
31169
+ # Corresponds to the JSON property `message`
31170
+ # @return [String]
31171
+ attr_accessor :message
31172
+
31173
+ def initialize(**args)
31174
+ update!(**args)
31175
+ end
31176
+
31177
+ # Update properties of this object
31178
+ def update!(**args)
31179
+ @code = args[:code] if args.key?(:code)
31180
+ @data = args[:data] if args.key?(:data)
31181
+ @message = args[:message] if args.key?(:message)
31182
+ end
31183
+
31184
+ #
31185
+ class Datum
31186
+ include Google::Apis::Core::Hashable
31187
+
31188
+ # [Output Only] A key that provides more detail on the warning being returned.
31189
+ # For example, for warnings where there are no results in a list request for a
31190
+ # particular zone, this key might be scope and the key value might be the zone
31191
+ # name. Other examples might be a key indicating a deprecated resource and a
31192
+ # suggested replacement, or a warning about invalid network settings (for
31193
+ # example, if an instance attempts to perform IP forwarding but is not enabled
31194
+ # for IP forwarding).
31195
+ # Corresponds to the JSON property `key`
31196
+ # @return [String]
31197
+ attr_accessor :key
31198
+
31199
+ # [Output Only] A warning data value corresponding to the key.
31200
+ # Corresponds to the JSON property `value`
31201
+ # @return [String]
31202
+ attr_accessor :value
31203
+
31204
+ def initialize(**args)
31205
+ update!(**args)
31206
+ end
31207
+
31208
+ # Update properties of this object
31209
+ def update!(**args)
31210
+ @key = args[:key] if args.key?(:key)
31211
+ @value = args[:value] if args.key?(:value)
31212
+ end
31213
+ end
31214
+ end
31215
+ end
31216
+
31217
+ # Additional network parameters.
31218
+ class NetworkParams
29293
31219
  include Google::Apis::Core::Hashable
29294
31220
 
29295
- # [Output Only] Unique identifier for the resource; defined by the server.
29296
- # Corresponds to the JSON property `id`
29297
- # @return [String]
29298
- attr_accessor :id
29299
-
29300
- # A list of Network resources.
29301
- # Corresponds to the JSON property `items`
29302
- # @return [Array<Google::Apis::ComputeBeta::Network>]
29303
- attr_accessor :items
29304
-
29305
- # [Output Only] Type of resource. Always compute#networkList for lists of
29306
- # networks.
29307
- # Corresponds to the JSON property `kind`
29308
- # @return [String]
29309
- attr_accessor :kind
29310
-
29311
- # [Output Only] This token allows you to get the next page of results for list
29312
- # requests. If the number of results is larger than maxResults, use the
29313
- # nextPageToken as a value for the query parameter pageToken in the next list
29314
- # request. Subsequent list requests will have their own nextPageToken to
29315
- # continue paging through the results.
29316
- # Corresponds to the JSON property `nextPageToken`
29317
- # @return [String]
29318
- attr_accessor :next_page_token
29319
-
29320
- # [Output Only] Server-defined URL for this resource.
29321
- # Corresponds to the JSON property `selfLink`
29322
- # @return [String]
29323
- attr_accessor :self_link
29324
-
29325
- # [Output Only] Informational warning message.
29326
- # Corresponds to the JSON property `warning`
29327
- # @return [Google::Apis::ComputeBeta::NetworkList::Warning]
29328
- attr_accessor :warning
31221
+ # Tag keys/values directly bound to this resource. Tag keys and values have the
31222
+ # same definition as resource manager tags. The field is allowed for INSERT only.
31223
+ # The keys/values to set on the resource should be specified in either ID ` : `
31224
+ # or Namespaced format ` : `. For example the following are valid inputs: * `"
31225
+ # tagKeys/333" : "tagValues/444", "tagKeys/123" : "tagValues/456"` * `"123/
31226
+ # environment" : "production", "345/abc" : "xyz"` Note: * Invalid combinations
31227
+ # of ID & namespaced format is not supported. For instance: `"123/environment" :
31228
+ # "tagValues/444"` is invalid.
31229
+ # Corresponds to the JSON property `resourceManagerTags`
31230
+ # @return [Hash<String,String>]
31231
+ attr_accessor :resource_manager_tags
29329
31232
 
29330
31233
  def initialize(**args)
29331
31234
  update!(**args)
@@ -29333,76 +31236,7 @@ module Google
29333
31236
 
29334
31237
  # Update properties of this object
29335
31238
  def update!(**args)
29336
- @id = args[:id] if args.key?(:id)
29337
- @items = args[:items] if args.key?(:items)
29338
- @kind = args[:kind] if args.key?(:kind)
29339
- @next_page_token = args[:next_page_token] if args.key?(:next_page_token)
29340
- @self_link = args[:self_link] if args.key?(:self_link)
29341
- @warning = args[:warning] if args.key?(:warning)
29342
- end
29343
-
29344
- # [Output Only] Informational warning message.
29345
- class Warning
29346
- include Google::Apis::Core::Hashable
29347
-
29348
- # [Output Only] A warning code, if applicable. For example, Compute Engine
29349
- # returns NO_RESULTS_ON_PAGE if there are no results in the response.
29350
- # Corresponds to the JSON property `code`
29351
- # @return [String]
29352
- attr_accessor :code
29353
-
29354
- # [Output Only] Metadata about this warning in key: value format. For example: "
29355
- # data": [ ` "key": "scope", "value": "zones/us-east1-d" `
29356
- # Corresponds to the JSON property `data`
29357
- # @return [Array<Google::Apis::ComputeBeta::NetworkList::Warning::Datum>]
29358
- attr_accessor :data
29359
-
29360
- # [Output Only] A human-readable description of the warning code.
29361
- # Corresponds to the JSON property `message`
29362
- # @return [String]
29363
- attr_accessor :message
29364
-
29365
- def initialize(**args)
29366
- update!(**args)
29367
- end
29368
-
29369
- # Update properties of this object
29370
- def update!(**args)
29371
- @code = args[:code] if args.key?(:code)
29372
- @data = args[:data] if args.key?(:data)
29373
- @message = args[:message] if args.key?(:message)
29374
- end
29375
-
29376
- #
29377
- class Datum
29378
- include Google::Apis::Core::Hashable
29379
-
29380
- # [Output Only] A key that provides more detail on the warning being returned.
29381
- # For example, for warnings where there are no results in a list request for a
29382
- # particular zone, this key might be scope and the key value might be the zone
29383
- # name. Other examples might be a key indicating a deprecated resource and a
29384
- # suggested replacement, or a warning about invalid network settings (for
29385
- # example, if an instance attempts to perform IP forwarding but is not enabled
29386
- # for IP forwarding).
29387
- # Corresponds to the JSON property `key`
29388
- # @return [String]
29389
- attr_accessor :key
29390
-
29391
- # [Output Only] A warning data value corresponding to the key.
29392
- # Corresponds to the JSON property `value`
29393
- # @return [String]
29394
- attr_accessor :value
29395
-
29396
- def initialize(**args)
29397
- update!(**args)
29398
- end
29399
-
29400
- # Update properties of this object
29401
- def update!(**args)
29402
- @key = args[:key] if args.key?(:key)
29403
- @value = args[:value] if args.key?(:value)
29404
- end
29405
- end
31239
+ @resource_manager_tags = args[:resource_manager_tags] if args.key?(:resource_manager_tags)
29406
31240
  end
29407
31241
  end
29408
31242
 
@@ -29422,6 +31256,14 @@ module Google
29422
31256
  attr_accessor :auto_create_routes
29423
31257
  alias_method :auto_create_routes?, :auto_create_routes
29424
31258
 
31259
+ # [Output Only] Describes the state of a peering connection, not just the local
31260
+ # peering. This field provides information about the effective settings for the
31261
+ # connection as a whole, including pending delete/update requests for CONSENSUS
31262
+ # peerings.
31263
+ # Corresponds to the JSON property `connectionStatus`
31264
+ # @return [Google::Apis::ComputeBeta::NetworkPeeringConnectionStatus]
31265
+ attr_accessor :connection_status
31266
+
29425
31267
  # Indicates whether full mesh connectivity is created and managed automatically
29426
31268
  # between peered networks. Currently this field should always be true since
29427
31269
  # Google Compute Engine will automatically create and manage subnetwork routes
@@ -29479,7 +31321,7 @@ module Google
29479
31321
  # @return [String]
29480
31322
  attr_accessor :network
29481
31323
 
29482
- # Maximum Transmission Unit in bytes.
31324
+ # [Output Only] Maximum Transmission Unit in bytes of the peer network.
29483
31325
  # Corresponds to the JSON property `peerMtu`
29484
31326
  # @return [Fixnum]
29485
31327
  attr_accessor :peer_mtu
@@ -29501,6 +31343,12 @@ module Google
29501
31343
  # @return [String]
29502
31344
  attr_accessor :state_details
29503
31345
 
31346
+ # The update strategy determines the semantics for updates and deletes to the
31347
+ # peering connection configuration.
31348
+ # Corresponds to the JSON property `updateStrategy`
31349
+ # @return [String]
31350
+ attr_accessor :update_strategy
31351
+
29504
31352
  def initialize(**args)
29505
31353
  update!(**args)
29506
31354
  end
@@ -29508,6 +31356,7 @@ module Google
29508
31356
  # Update properties of this object
29509
31357
  def update!(**args)
29510
31358
  @auto_create_routes = args[:auto_create_routes] if args.key?(:auto_create_routes)
31359
+ @connection_status = args[:connection_status] if args.key?(:connection_status)
29511
31360
  @exchange_subnet_routes = args[:exchange_subnet_routes] if args.key?(:exchange_subnet_routes)
29512
31361
  @export_custom_routes = args[:export_custom_routes] if args.key?(:export_custom_routes)
29513
31362
  @export_subnet_routes_with_public_ip = args[:export_subnet_routes_with_public_ip] if args.key?(:export_subnet_routes_with_public_ip)
@@ -29519,6 +31368,122 @@ module Google
29519
31368
  @stack_type = args[:stack_type] if args.key?(:stack_type)
29520
31369
  @state = args[:state] if args.key?(:state)
29521
31370
  @state_details = args[:state_details] if args.key?(:state_details)
31371
+ @update_strategy = args[:update_strategy] if args.key?(:update_strategy)
31372
+ end
31373
+ end
31374
+
31375
+ # [Output Only] Describes the state of a peering connection, not just the local
31376
+ # peering. This field provides information about the effective settings for the
31377
+ # connection as a whole, including pending delete/update requests for CONSENSUS
31378
+ # peerings.
31379
+ class NetworkPeeringConnectionStatus
31380
+ include Google::Apis::Core::Hashable
31381
+
31382
+ # The status of update/delete for a consensus peering connection. Only set when
31383
+ # connection_status.update_strategy is CONSENSUS or a network peering is
31384
+ # proposing to update the strategy to CONSENSUS.
31385
+ # Corresponds to the JSON property `consensusState`
31386
+ # @return [Google::Apis::ComputeBeta::NetworkPeeringConnectionStatusConsensusState]
31387
+ attr_accessor :consensus_state
31388
+
31389
+ # The active connectivity settings for the peering connection based on the
31390
+ # settings of the network peerings.
31391
+ # Corresponds to the JSON property `trafficConfiguration`
31392
+ # @return [Google::Apis::ComputeBeta::NetworkPeeringConnectionStatusTrafficConfiguration]
31393
+ attr_accessor :traffic_configuration
31394
+
31395
+ # The update strategy determines the update/delete semantics for this peering
31396
+ # connection.
31397
+ # Corresponds to the JSON property `updateStrategy`
31398
+ # @return [String]
31399
+ attr_accessor :update_strategy
31400
+
31401
+ def initialize(**args)
31402
+ update!(**args)
31403
+ end
31404
+
31405
+ # Update properties of this object
31406
+ def update!(**args)
31407
+ @consensus_state = args[:consensus_state] if args.key?(:consensus_state)
31408
+ @traffic_configuration = args[:traffic_configuration] if args.key?(:traffic_configuration)
31409
+ @update_strategy = args[:update_strategy] if args.key?(:update_strategy)
31410
+ end
31411
+ end
31412
+
31413
+ # The status of update/delete for a consensus peering connection. Only set when
31414
+ # connection_status.update_strategy is CONSENSUS or a network peering is
31415
+ # proposing to update the strategy to CONSENSUS.
31416
+ class NetworkPeeringConnectionStatusConsensusState
31417
+ include Google::Apis::Core::Hashable
31418
+
31419
+ # The status of the delete request.
31420
+ # Corresponds to the JSON property `deleteStatus`
31421
+ # @return [String]
31422
+ attr_accessor :delete_status
31423
+
31424
+ # The status of the update request.
31425
+ # Corresponds to the JSON property `updateStatus`
31426
+ # @return [String]
31427
+ attr_accessor :update_status
31428
+
31429
+ def initialize(**args)
31430
+ update!(**args)
31431
+ end
31432
+
31433
+ # Update properties of this object
31434
+ def update!(**args)
31435
+ @delete_status = args[:delete_status] if args.key?(:delete_status)
31436
+ @update_status = args[:update_status] if args.key?(:update_status)
31437
+ end
31438
+ end
31439
+
31440
+ #
31441
+ class NetworkPeeringConnectionStatusTrafficConfiguration
31442
+ include Google::Apis::Core::Hashable
31443
+
31444
+ # Whether custom routes are being exported to the peer network.
31445
+ # Corresponds to the JSON property `exportCustomRoutesToPeer`
31446
+ # @return [Boolean]
31447
+ attr_accessor :export_custom_routes_to_peer
31448
+ alias_method :export_custom_routes_to_peer?, :export_custom_routes_to_peer
31449
+
31450
+ # Whether subnet routes with public IP ranges are being exported to the peer
31451
+ # network.
31452
+ # Corresponds to the JSON property `exportSubnetRoutesWithPublicIpToPeer`
31453
+ # @return [Boolean]
31454
+ attr_accessor :export_subnet_routes_with_public_ip_to_peer
31455
+ alias_method :export_subnet_routes_with_public_ip_to_peer?, :export_subnet_routes_with_public_ip_to_peer
31456
+
31457
+ # Whether custom routes are being imported from the peer network.
31458
+ # Corresponds to the JSON property `importCustomRoutesFromPeer`
31459
+ # @return [Boolean]
31460
+ attr_accessor :import_custom_routes_from_peer
31461
+ alias_method :import_custom_routes_from_peer?, :import_custom_routes_from_peer
31462
+
31463
+ # Whether subnet routes with public IP ranges are being imported from the peer
31464
+ # network.
31465
+ # Corresponds to the JSON property `importSubnetRoutesWithPublicIpFromPeer`
31466
+ # @return [Boolean]
31467
+ attr_accessor :import_subnet_routes_with_public_ip_from_peer
31468
+ alias_method :import_subnet_routes_with_public_ip_from_peer?, :import_subnet_routes_with_public_ip_from_peer
31469
+
31470
+ # Which IP version(s) of traffic and routes are being imported or exported
31471
+ # between peer networks.
31472
+ # Corresponds to the JSON property `stackType`
31473
+ # @return [String]
31474
+ attr_accessor :stack_type
31475
+
31476
+ def initialize(**args)
31477
+ update!(**args)
31478
+ end
31479
+
31480
+ # Update properties of this object
31481
+ def update!(**args)
31482
+ @export_custom_routes_to_peer = args[:export_custom_routes_to_peer] if args.key?(:export_custom_routes_to_peer)
31483
+ @export_subnet_routes_with_public_ip_to_peer = args[:export_subnet_routes_with_public_ip_to_peer] if args.key?(:export_subnet_routes_with_public_ip_to_peer)
31484
+ @import_custom_routes_from_peer = args[:import_custom_routes_from_peer] if args.key?(:import_custom_routes_from_peer)
31485
+ @import_subnet_routes_with_public_ip_from_peer = args[:import_subnet_routes_with_public_ip_from_peer] if args.key?(:import_subnet_routes_with_public_ip_from_peer)
31486
+ @stack_type = args[:stack_type] if args.key?(:stack_type)
29522
31487
  end
29523
31488
  end
29524
31489
 
@@ -29670,6 +31635,11 @@ module Google
29670
31635
  # @return [String]
29671
31636
  attr_accessor :allow_cloud_router
29672
31637
 
31638
+ # Specifies whether default NIC attachment is allowed.
31639
+ # Corresponds to the JSON property `allowDefaultNicAttachment`
31640
+ # @return [String]
31641
+ attr_accessor :allow_default_nic_attachment
31642
+
29673
31643
  # Specifies whether VMs are allowed to have external IP access on network
29674
31644
  # interfaces connected to this VPC.
29675
31645
  # Corresponds to the JSON property `allowExternalIpAccess`
@@ -29681,6 +31651,11 @@ module Google
29681
31651
  # @return [String]
29682
31652
  attr_accessor :allow_interconnect
29683
31653
 
31654
+ # Specifies whether IP forwarding is allowed.
31655
+ # Corresponds to the JSON property `allowIpForwarding`
31656
+ # @return [String]
31657
+ attr_accessor :allow_ip_forwarding
31658
+
29684
31659
  # Specifies whether cloud load balancing is allowed.
29685
31660
  # Corresponds to the JSON property `allowLoadBalancing`
29686
31661
  # @return [String]
@@ -29691,6 +31666,16 @@ module Google
29691
31666
  # @return [String]
29692
31667
  attr_accessor :allow_multi_nic_in_same_network
29693
31668
 
31669
+ # Specifies whether NCC is allowed.
31670
+ # Corresponds to the JSON property `allowNcc`
31671
+ # @return [String]
31672
+ attr_accessor :allow_ncc
31673
+
31674
+ # Specifies whether VM network migration is allowed.
31675
+ # Corresponds to the JSON property `allowNetworkMigration`
31676
+ # @return [String]
31677
+ attr_accessor :allow_network_migration
31678
+
29694
31679
  # Specifies whether Packet Mirroring 1.0 is supported.
29695
31680
  # Corresponds to the JSON property `allowPacketMirroring`
29696
31681
  # @return [String]
@@ -29747,6 +31732,16 @@ module Google
29747
31732
  # @return [Array<String>]
29748
31733
  attr_accessor :subnet_stack_types
29749
31734
 
31735
+ # Specifies which subnetwork purposes are supported.
31736
+ # Corresponds to the JSON property `subnetworkPurposes`
31737
+ # @return [Array<String>]
31738
+ attr_accessor :subnetwork_purposes
31739
+
31740
+ # Specifies which subnetwork stack types are supported.
31741
+ # Corresponds to the JSON property `subnetworkStackTypes`
31742
+ # @return [Array<String>]
31743
+ attr_accessor :subnetwork_stack_types
31744
+
29750
31745
  # Specifies which type of unicast is supported.
29751
31746
  # Corresponds to the JSON property `unicast`
29752
31747
  # @return [String]
@@ -29764,10 +31759,14 @@ module Google
29764
31759
  @allow_class_d_firewalls = args[:allow_class_d_firewalls] if args.key?(:allow_class_d_firewalls)
29765
31760
  @allow_cloud_nat = args[:allow_cloud_nat] if args.key?(:allow_cloud_nat)
29766
31761
  @allow_cloud_router = args[:allow_cloud_router] if args.key?(:allow_cloud_router)
31762
+ @allow_default_nic_attachment = args[:allow_default_nic_attachment] if args.key?(:allow_default_nic_attachment)
29767
31763
  @allow_external_ip_access = args[:allow_external_ip_access] if args.key?(:allow_external_ip_access)
29768
31764
  @allow_interconnect = args[:allow_interconnect] if args.key?(:allow_interconnect)
31765
+ @allow_ip_forwarding = args[:allow_ip_forwarding] if args.key?(:allow_ip_forwarding)
29769
31766
  @allow_load_balancing = args[:allow_load_balancing] if args.key?(:allow_load_balancing)
29770
31767
  @allow_multi_nic_in_same_network = args[:allow_multi_nic_in_same_network] if args.key?(:allow_multi_nic_in_same_network)
31768
+ @allow_ncc = args[:allow_ncc] if args.key?(:allow_ncc)
31769
+ @allow_network_migration = args[:allow_network_migration] if args.key?(:allow_network_migration)
29771
31770
  @allow_packet_mirroring = args[:allow_packet_mirroring] if args.key?(:allow_packet_mirroring)
29772
31771
  @allow_private_google_access = args[:allow_private_google_access] if args.key?(:allow_private_google_access)
29773
31772
  @allow_psc = args[:allow_psc] if args.key?(:allow_psc)
@@ -29779,6 +31778,8 @@ module Google
29779
31778
  @interface_types = args[:interface_types] if args.key?(:interface_types)
29780
31779
  @subnet_purposes = args[:subnet_purposes] if args.key?(:subnet_purposes)
29781
31780
  @subnet_stack_types = args[:subnet_stack_types] if args.key?(:subnet_stack_types)
31781
+ @subnetwork_purposes = args[:subnetwork_purposes] if args.key?(:subnetwork_purposes)
31782
+ @subnetwork_stack_types = args[:subnetwork_stack_types] if args.key?(:subnetwork_stack_types)
29782
31783
  @unicast = args[:unicast] if args.key?(:unicast)
29783
31784
  end
29784
31785
  end
@@ -30158,6 +32159,25 @@ module Google
30158
32159
  end
30159
32160
  end
30160
32161
 
32162
+ #
32163
+ class NetworksRequestRemovePeeringRequest
32164
+ include Google::Apis::Core::Hashable
32165
+
32166
+ # Name of the peering, which should conform to RFC1035.
32167
+ # Corresponds to the JSON property `name`
32168
+ # @return [String]
32169
+ attr_accessor :name
32170
+
32171
+ def initialize(**args)
32172
+ update!(**args)
32173
+ end
32174
+
32175
+ # Update properties of this object
32176
+ def update!(**args)
32177
+ @name = args[:name] if args.key?(:name)
32178
+ end
32179
+ end
32180
+
30161
32181
  #
30162
32182
  class NetworksUpdatePeeringRequest
30163
32183
  include Google::Apis::Core::Hashable
@@ -34203,6 +36223,377 @@ module Google
34203
36223
  end
34204
36224
  end
34205
36225
 
36226
+ # Represents a single Google Compute Engine preview feature.
36227
+ class PreviewFeature
36228
+ include Google::Apis::Core::Hashable
36229
+
36230
+ # Specifies whether the feature is enabled or disabled.
36231
+ # Corresponds to the JSON property `activationStatus`
36232
+ # @return [String]
36233
+ attr_accessor :activation_status
36234
+
36235
+ # [Output Only] Creation timestamp in RFC3339 text format.
36236
+ # Corresponds to the JSON property `creationTimestamp`
36237
+ # @return [String]
36238
+ attr_accessor :creation_timestamp
36239
+
36240
+ # [Output Only] Description of the feature.
36241
+ # Corresponds to the JSON property `description`
36242
+ # @return [String]
36243
+ attr_accessor :description
36244
+
36245
+ # [Output Only] The unique identifier for the resource. This identifier is
36246
+ # defined by the server.
36247
+ # Corresponds to the JSON property `id`
36248
+ # @return [Fixnum]
36249
+ attr_accessor :id
36250
+
36251
+ # [Output only] The type of the feature. Always "compute#previewFeature" for
36252
+ # preview features.
36253
+ # Corresponds to the JSON property `kind`
36254
+ # @return [String]
36255
+ attr_accessor :kind
36256
+
36257
+ # Name of the feature.
36258
+ # Corresponds to the JSON property `name`
36259
+ # @return [String]
36260
+ attr_accessor :name
36261
+
36262
+ # Represents the rollout operation
36263
+ # Corresponds to the JSON property `rolloutOperation`
36264
+ # @return [Google::Apis::ComputeBeta::PreviewFeatureRolloutOperation]
36265
+ attr_accessor :rollout_operation
36266
+
36267
+ # [Output Only] Server-defined URL for the resource.
36268
+ # Corresponds to the JSON property `selfLink`
36269
+ # @return [String]
36270
+ attr_accessor :self_link
36271
+
36272
+ # [Output Only] The status of the feature.
36273
+ # Corresponds to the JSON property `status`
36274
+ # @return [Google::Apis::ComputeBeta::PreviewFeatureStatus]
36275
+ attr_accessor :status
36276
+
36277
+ def initialize(**args)
36278
+ update!(**args)
36279
+ end
36280
+
36281
+ # Update properties of this object
36282
+ def update!(**args)
36283
+ @activation_status = args[:activation_status] if args.key?(:activation_status)
36284
+ @creation_timestamp = args[:creation_timestamp] if args.key?(:creation_timestamp)
36285
+ @description = args[:description] if args.key?(:description)
36286
+ @id = args[:id] if args.key?(:id)
36287
+ @kind = args[:kind] if args.key?(:kind)
36288
+ @name = args[:name] if args.key?(:name)
36289
+ @rollout_operation = args[:rollout_operation] if args.key?(:rollout_operation)
36290
+ @self_link = args[:self_link] if args.key?(:self_link)
36291
+ @status = args[:status] if args.key?(:status)
36292
+ end
36293
+ end
36294
+
36295
+ #
36296
+ class PreviewFeatureList
36297
+ include Google::Apis::Core::Hashable
36298
+
36299
+ #
36300
+ # Corresponds to the JSON property `etag`
36301
+ # @return [String]
36302
+ attr_accessor :etag
36303
+
36304
+ # [Output Only] Unique identifier for the resource; defined by the server.
36305
+ # Corresponds to the JSON property `id`
36306
+ # @return [String]
36307
+ attr_accessor :id
36308
+
36309
+ # A list of PreviewFeature resources.
36310
+ # Corresponds to the JSON property `items`
36311
+ # @return [Array<Google::Apis::ComputeBeta::PreviewFeature>]
36312
+ attr_accessor :items
36313
+
36314
+ # [Output Only] This token allows you to get the next page of results for list
36315
+ # requests. If the number of results is larger than maxResults, use the
36316
+ # nextPageToken as a value for the query parameter pageToken in the next list
36317
+ # request. Subsequent list requests will have their own nextPageToken to
36318
+ # continue paging through the results.
36319
+ # Corresponds to the JSON property `nextPageToken`
36320
+ # @return [String]
36321
+ attr_accessor :next_page_token
36322
+
36323
+ # [Output Only] Server-defined URL for this resource.
36324
+ # Corresponds to the JSON property `selfLink`
36325
+ # @return [String]
36326
+ attr_accessor :self_link
36327
+
36328
+ # [Output Only] Unreachable resources. end_interface:
36329
+ # MixerListResponseWithEtagBuilder
36330
+ # Corresponds to the JSON property `unreachables`
36331
+ # @return [Array<String>]
36332
+ attr_accessor :unreachables
36333
+
36334
+ # [Output Only] Informational warning message.
36335
+ # Corresponds to the JSON property `warning`
36336
+ # @return [Google::Apis::ComputeBeta::PreviewFeatureList::Warning]
36337
+ attr_accessor :warning
36338
+
36339
+ def initialize(**args)
36340
+ update!(**args)
36341
+ end
36342
+
36343
+ # Update properties of this object
36344
+ def update!(**args)
36345
+ @etag = args[:etag] if args.key?(:etag)
36346
+ @id = args[:id] if args.key?(:id)
36347
+ @items = args[:items] if args.key?(:items)
36348
+ @next_page_token = args[:next_page_token] if args.key?(:next_page_token)
36349
+ @self_link = args[:self_link] if args.key?(:self_link)
36350
+ @unreachables = args[:unreachables] if args.key?(:unreachables)
36351
+ @warning = args[:warning] if args.key?(:warning)
36352
+ end
36353
+
36354
+ # [Output Only] Informational warning message.
36355
+ class Warning
36356
+ include Google::Apis::Core::Hashable
36357
+
36358
+ # [Output Only] A warning code, if applicable. For example, Compute Engine
36359
+ # returns NO_RESULTS_ON_PAGE if there are no results in the response.
36360
+ # Corresponds to the JSON property `code`
36361
+ # @return [String]
36362
+ attr_accessor :code
36363
+
36364
+ # [Output Only] Metadata about this warning in key: value format. For example: "
36365
+ # data": [ ` "key": "scope", "value": "zones/us-east1-d" `
36366
+ # Corresponds to the JSON property `data`
36367
+ # @return [Array<Google::Apis::ComputeBeta::PreviewFeatureList::Warning::Datum>]
36368
+ attr_accessor :data
36369
+
36370
+ # [Output Only] A human-readable description of the warning code.
36371
+ # Corresponds to the JSON property `message`
36372
+ # @return [String]
36373
+ attr_accessor :message
36374
+
36375
+ def initialize(**args)
36376
+ update!(**args)
36377
+ end
36378
+
36379
+ # Update properties of this object
36380
+ def update!(**args)
36381
+ @code = args[:code] if args.key?(:code)
36382
+ @data = args[:data] if args.key?(:data)
36383
+ @message = args[:message] if args.key?(:message)
36384
+ end
36385
+
36386
+ #
36387
+ class Datum
36388
+ include Google::Apis::Core::Hashable
36389
+
36390
+ # [Output Only] A key that provides more detail on the warning being returned.
36391
+ # For example, for warnings where there are no results in a list request for a
36392
+ # particular zone, this key might be scope and the key value might be the zone
36393
+ # name. Other examples might be a key indicating a deprecated resource and a
36394
+ # suggested replacement, or a warning about invalid network settings (for
36395
+ # example, if an instance attempts to perform IP forwarding but is not enabled
36396
+ # for IP forwarding).
36397
+ # Corresponds to the JSON property `key`
36398
+ # @return [String]
36399
+ attr_accessor :key
36400
+
36401
+ # [Output Only] A warning data value corresponding to the key.
36402
+ # Corresponds to the JSON property `value`
36403
+ # @return [String]
36404
+ attr_accessor :value
36405
+
36406
+ def initialize(**args)
36407
+ update!(**args)
36408
+ end
36409
+
36410
+ # Update properties of this object
36411
+ def update!(**args)
36412
+ @key = args[:key] if args.key?(:key)
36413
+ @value = args[:value] if args.key?(:value)
36414
+ end
36415
+ end
36416
+ end
36417
+ end
36418
+
36419
+ # Represents the rollout operation
36420
+ class PreviewFeatureRolloutOperation
36421
+ include Google::Apis::Core::Hashable
36422
+
36423
+ #
36424
+ # Corresponds to the JSON property `rolloutInput`
36425
+ # @return [Google::Apis::ComputeBeta::PreviewFeatureRolloutOperationRolloutInput]
36426
+ attr_accessor :rollout_input
36427
+
36428
+ #
36429
+ # Corresponds to the JSON property `rolloutStatus`
36430
+ # @return [Google::Apis::ComputeBeta::PreviewFeatureRolloutOperationRolloutStatus]
36431
+ attr_accessor :rollout_status
36432
+
36433
+ def initialize(**args)
36434
+ update!(**args)
36435
+ end
36436
+
36437
+ # Update properties of this object
36438
+ def update!(**args)
36439
+ @rollout_input = args[:rollout_input] if args.key?(:rollout_input)
36440
+ @rollout_status = args[:rollout_status] if args.key?(:rollout_status)
36441
+ end
36442
+ end
36443
+
36444
+ #
36445
+ class PreviewFeatureRolloutOperationRolloutInput
36446
+ include Google::Apis::Core::Hashable
36447
+
36448
+ # The name of the rollout plan Ex. organizations//locations/global/rolloutPlans/
36449
+ # Ex. folders//locations/global/rolloutPlans/ Ex. projects//locations/global/
36450
+ # rolloutPlans/.
36451
+ # Corresponds to the JSON property `name`
36452
+ # @return [String]
36453
+ attr_accessor :name
36454
+
36455
+ # Predefined rollout plan.
36456
+ # Corresponds to the JSON property `predefinedRolloutPlan`
36457
+ # @return [String]
36458
+ attr_accessor :predefined_rollout_plan
36459
+
36460
+ # The UUID of the retry action. Only needed if this is a retry for an existing
36461
+ # rollout. This can be used after the user canceled a rollout and want to retry
36462
+ # it with no changes.
36463
+ # Corresponds to the JSON property `retryUuid`
36464
+ # @return [String]
36465
+ attr_accessor :retry_uuid
36466
+
36467
+ def initialize(**args)
36468
+ update!(**args)
36469
+ end
36470
+
36471
+ # Update properties of this object
36472
+ def update!(**args)
36473
+ @name = args[:name] if args.key?(:name)
36474
+ @predefined_rollout_plan = args[:predefined_rollout_plan] if args.key?(:predefined_rollout_plan)
36475
+ @retry_uuid = args[:retry_uuid] if args.key?(:retry_uuid)
36476
+ end
36477
+ end
36478
+
36479
+ #
36480
+ class PreviewFeatureRolloutOperationRolloutStatus
36481
+ include Google::Apis::Core::Hashable
36482
+
36483
+ # Output only. The ongoing rollout resources. There can be multiple ongoing
36484
+ # rollouts for a resource.
36485
+ # Corresponds to the JSON property `ongoingRollouts`
36486
+ # @return [Array<Google::Apis::ComputeBeta::PreviewFeatureRolloutOperationRolloutStatusRolloutMetadata>]
36487
+ attr_accessor :ongoing_rollouts
36488
+
36489
+ # Output only. The last completed rollout resource. This field will not be
36490
+ # populated until the first rollout is completed.
36491
+ # Corresponds to the JSON property `previousRollout`
36492
+ # @return [Google::Apis::ComputeBeta::PreviewFeatureRolloutOperationRolloutStatusRolloutMetadata]
36493
+ attr_accessor :previous_rollout
36494
+
36495
+ def initialize(**args)
36496
+ update!(**args)
36497
+ end
36498
+
36499
+ # Update properties of this object
36500
+ def update!(**args)
36501
+ @ongoing_rollouts = args[:ongoing_rollouts] if args.key?(:ongoing_rollouts)
36502
+ @previous_rollout = args[:previous_rollout] if args.key?(:previous_rollout)
36503
+ end
36504
+ end
36505
+
36506
+ #
36507
+ class PreviewFeatureRolloutOperationRolloutStatusRolloutMetadata
36508
+ include Google::Apis::Core::Hashable
36509
+
36510
+ # The name of the rollout Ex. organizations//locations/global/rollouts/ Ex.
36511
+ # folders//locations/global/rollouts/ Ex. projects//locations/global/rollouts/.
36512
+ # Corresponds to the JSON property `rollout`
36513
+ # @return [String]
36514
+ attr_accessor :rollout
36515
+
36516
+ # The name of the rollout plan Ex. organizations//locations/global/rolloutPlans/
36517
+ # Ex. folders//locations/global/rolloutPlans/ Ex. projects//locations/global/
36518
+ # rolloutPlans/.
36519
+ # Corresponds to the JSON property `rolloutPlan`
36520
+ # @return [String]
36521
+ attr_accessor :rollout_plan
36522
+
36523
+ # [Output Only] The status of the feature.
36524
+ # Corresponds to the JSON property `status`
36525
+ # @return [Google::Apis::ComputeBeta::PreviewFeatureStatus]
36526
+ attr_accessor :status
36527
+
36528
+ def initialize(**args)
36529
+ update!(**args)
36530
+ end
36531
+
36532
+ # Update properties of this object
36533
+ def update!(**args)
36534
+ @rollout = args[:rollout] if args.key?(:rollout)
36535
+ @rollout_plan = args[:rollout_plan] if args.key?(:rollout_plan)
36536
+ @status = args[:status] if args.key?(:status)
36537
+ end
36538
+ end
36539
+
36540
+ # [Output Only] The status of the feature.
36541
+ class PreviewFeatureStatus
36542
+ include Google::Apis::Core::Hashable
36543
+
36544
+ # [Output Only] The description of the feature.
36545
+ # Corresponds to the JSON property `description`
36546
+ # @return [String]
36547
+ attr_accessor :description
36548
+
36549
+ #
36550
+ # Corresponds to the JSON property `releaseStatus`
36551
+ # @return [Google::Apis::ComputeBeta::PreviewFeatureStatusReleaseStatus]
36552
+ attr_accessor :release_status
36553
+
36554
+ def initialize(**args)
36555
+ update!(**args)
36556
+ end
36557
+
36558
+ # Update properties of this object
36559
+ def update!(**args)
36560
+ @description = args[:description] if args.key?(:description)
36561
+ @release_status = args[:release_status] if args.key?(:release_status)
36562
+ end
36563
+ end
36564
+
36565
+ #
36566
+ class PreviewFeatureStatusReleaseStatus
36567
+ include Google::Apis::Core::Hashable
36568
+
36569
+ # [Output Only] The stage of the feature.
36570
+ # Corresponds to the JSON property `stage`
36571
+ # @return [String]
36572
+ attr_accessor :stage
36573
+
36574
+ # Represents a whole or partial calendar date, such as a birthday. The time of
36575
+ # day and time zone are either specified elsewhere or are insignificant. The
36576
+ # date is relative to the Gregorian Calendar. This can represent one of the
36577
+ # following: * A full date, with non-zero year, month, and day values. * A month
36578
+ # and day, with a zero year (for example, an anniversary). * A year on its own,
36579
+ # with a zero month and a zero day. * A year and month, with a zero day (for
36580
+ # example, a credit card expiration date). Related types: * google.type.
36581
+ # TimeOfDay * google.type.DateTime * google.protobuf.Timestamp
36582
+ # Corresponds to the JSON property `updateDate`
36583
+ # @return [Google::Apis::ComputeBeta::Date]
36584
+ attr_accessor :update_date
36585
+
36586
+ def initialize(**args)
36587
+ update!(**args)
36588
+ end
36589
+
36590
+ # Update properties of this object
36591
+ def update!(**args)
36592
+ @stage = args[:stage] if args.key?(:stage)
36593
+ @update_date = args[:update_date] if args.key?(:update_date)
36594
+ end
36595
+ end
36596
+
34206
36597
  # Represents a Project resource. A project is used to organize resources in a
34207
36598
  # Google Cloud Platform environment. For more information, read about the
34208
36599
  # Resource Hierarchy.
@@ -34879,8 +37270,8 @@ module Google
34879
37270
  # following values: - `INITIALIZING` The public delegated prefix is being
34880
37271
  # initialized and addresses cannot be created yet. - `READY_TO_ANNOUNCE` The
34881
37272
  # public delegated prefix is a live migration prefix and is active. - `ANNOUNCED`
34882
- # The public delegated prefix is active. - `DELETING` The public delegated
34883
- # prefix is being deprovsioned.
37273
+ # The public delegated prefix is announced and ready to use. - `DELETING` The
37274
+ # public delegated prefix is being deprovsioned.
34884
37275
  # Corresponds to the JSON property `status`
34885
37276
  # @return [String]
34886
37277
  attr_accessor :status
@@ -37536,6 +39927,12 @@ module Google
37536
39927
  # @return [String]
37537
39928
  attr_accessor :description
37538
39929
 
39930
+ # Indicates if this group of VMs have emergent maintenance enabled.
39931
+ # Corresponds to the JSON property `enableEmergentMaintenance`
39932
+ # @return [Boolean]
39933
+ attr_accessor :enable_emergent_maintenance
39934
+ alias_method :enable_emergent_maintenance?, :enable_emergent_maintenance
39935
+
37539
39936
  # [Output Only] The unique identifier for the resource. This identifier is
37540
39937
  # defined by the server.
37541
39938
  # Corresponds to the JSON property `id`
@@ -37548,6 +39945,12 @@ module Google
37548
39945
  # @return [String]
37549
39946
  attr_accessor :kind
37550
39947
 
39948
+ # [Output Only] Full or partial URL to parent commitments. This field displays
39949
+ # for reservations that are tied to multiple commitments.
39950
+ # Corresponds to the JSON property `linkedCommitments`
39951
+ # @return [Array<String>]
39952
+ attr_accessor :linked_commitments
39953
+
37551
39954
  # The name of the resource, provided by the client when initially creating the
37552
39955
  # resource. The resource name must be 1-63 characters long, and comply with
37553
39956
  # RFC1035. Specifically, the name must be 1-63 characters long and match the
@@ -37638,8 +40041,10 @@ module Google
37638
40041
  @delete_at_time = args[:delete_at_time] if args.key?(:delete_at_time)
37639
40042
  @deployment_type = args[:deployment_type] if args.key?(:deployment_type)
37640
40043
  @description = args[:description] if args.key?(:description)
40044
+ @enable_emergent_maintenance = args[:enable_emergent_maintenance] if args.key?(:enable_emergent_maintenance)
37641
40045
  @id = args[:id] if args.key?(:id)
37642
40046
  @kind = args[:kind] if args.key?(:kind)
40047
+ @linked_commitments = args[:linked_commitments] if args.key?(:linked_commitments)
37643
40048
  @name = args[:name] if args.key?(:name)
37644
40049
  @reservation_mode = args[:reservation_mode] if args.key?(:reservation_mode)
37645
40050
  @reservation_sharing_policy = args[:reservation_sharing_policy] if args.key?(:reservation_sharing_policy)
@@ -39223,6 +41628,11 @@ module Google
39223
41628
  # @return [Hash<String,String>]
39224
41629
  attr_accessor :labels
39225
41630
 
41631
+ # Region where the snapshot is scoped to.
41632
+ # Corresponds to the JSON property `region`
41633
+ # @return [String]
41634
+ attr_accessor :region
41635
+
39226
41636
  # Cloud Storage bucket storage location of the auto snapshot (regional or multi-
39227
41637
  # regional).
39228
41638
  # Corresponds to the JSON property `storageLocations`
@@ -39238,6 +41648,7 @@ module Google
39238
41648
  @chain_name = args[:chain_name] if args.key?(:chain_name)
39239
41649
  @guest_flush = args[:guest_flush] if args.key?(:guest_flush)
39240
41650
  @labels = args[:labels] if args.key?(:labels)
41651
+ @region = args[:region] if args.key?(:region)
39241
41652
  @storage_locations = args[:storage_locations] if args.key?(:storage_locations)
39242
41653
  end
39243
41654
  end
@@ -39610,8 +42021,9 @@ module Google
39610
42021
  attr_accessor :next_hop_inter_region_cost
39611
42022
 
39612
42023
  # [Output Only] The URL to an InterconnectAttachment which is the next hop for
39613
- # the route. This field will only be populated for the dynamic routes generated
39614
- # by Cloud Router with a linked interconnectAttachment.
42024
+ # the route. This field will only be populated for dynamic routes generated by
42025
+ # Cloud Router with a linked interconnectAttachment or the static route
42026
+ # generated by each L2 Interconnect Attachment.
39615
42027
  # Corresponds to the JSON property `nextHopInterconnectAttachment`
39616
42028
  # @return [String]
39617
42029
  attr_accessor :next_hop_interconnect_attachment
@@ -39654,6 +42066,11 @@ module Google
39654
42066
  # @return [String]
39655
42067
  attr_accessor :next_hop_vpn_tunnel
39656
42068
 
42069
+ # Additional route parameters.
42070
+ # Corresponds to the JSON property `params`
42071
+ # @return [Google::Apis::ComputeBeta::RouteParams]
42072
+ attr_accessor :params
42073
+
39657
42074
  # The priority of this route. Priority is used to break ties in cases where
39658
42075
  # there is more than one matching route of equal prefix length. In cases where
39659
42076
  # multiple routes have equal prefix length, the one with the lowest-numbered
@@ -39719,6 +42136,7 @@ module Google
39719
42136
  @next_hop_origin = args[:next_hop_origin] if args.key?(:next_hop_origin)
39720
42137
  @next_hop_peering = args[:next_hop_peering] if args.key?(:next_hop_peering)
39721
42138
  @next_hop_vpn_tunnel = args[:next_hop_vpn_tunnel] if args.key?(:next_hop_vpn_tunnel)
42139
+ @params = args[:params] if args.key?(:params)
39722
42140
  @priority = args[:priority] if args.key?(:priority)
39723
42141
  @route_status = args[:route_status] if args.key?(:route_status)
39724
42142
  @route_type = args[:route_type] if args.key?(:route_type)
@@ -39792,74 +42210,169 @@ module Google
39792
42210
  end
39793
42211
  end
39794
42212
 
39795
- #
39796
- class RouteAsPath
39797
- include Google::Apis::Core::Hashable
39798
-
39799
- # [Output Only] The AS numbers of the AS Path.
39800
- # Corresponds to the JSON property `asLists`
39801
- # @return [Array<Fixnum>]
39802
- attr_accessor :as_lists
39803
-
39804
- # [Output Only] The type of the AS Path, which can be one of the following
39805
- # values: - 'AS_SET': unordered set of autonomous systems that the route in has
39806
- # traversed - 'AS_SEQUENCE': ordered set of autonomous systems that the route
39807
- # has traversed - 'AS_CONFED_SEQUENCE': ordered set of Member Autonomous Systems
39808
- # in the local confederation that the route has traversed - 'AS_CONFED_SET':
39809
- # unordered set of Member Autonomous Systems in the local confederation that the
39810
- # route has traversed
39811
- # Corresponds to the JSON property `pathSegmentType`
39812
- # @return [String]
39813
- attr_accessor :path_segment_type
39814
-
39815
- def initialize(**args)
39816
- update!(**args)
39817
- end
39818
-
39819
- # Update properties of this object
39820
- def update!(**args)
39821
- @as_lists = args[:as_lists] if args.key?(:as_lists)
39822
- @path_segment_type = args[:path_segment_type] if args.key?(:path_segment_type)
39823
- end
39824
- end
39825
-
39826
- # Contains a list of Route resources.
39827
- class RouteList
42213
+ #
42214
+ class RouteAsPath
42215
+ include Google::Apis::Core::Hashable
42216
+
42217
+ # [Output Only] The AS numbers of the AS Path.
42218
+ # Corresponds to the JSON property `asLists`
42219
+ # @return [Array<Fixnum>]
42220
+ attr_accessor :as_lists
42221
+
42222
+ # [Output Only] The type of the AS Path, which can be one of the following
42223
+ # values: - 'AS_SET': unordered set of autonomous systems that the route in has
42224
+ # traversed - 'AS_SEQUENCE': ordered set of autonomous systems that the route
42225
+ # has traversed - 'AS_CONFED_SEQUENCE': ordered set of Member Autonomous Systems
42226
+ # in the local confederation that the route has traversed - 'AS_CONFED_SET':
42227
+ # unordered set of Member Autonomous Systems in the local confederation that the
42228
+ # route has traversed
42229
+ # Corresponds to the JSON property `pathSegmentType`
42230
+ # @return [String]
42231
+ attr_accessor :path_segment_type
42232
+
42233
+ def initialize(**args)
42234
+ update!(**args)
42235
+ end
42236
+
42237
+ # Update properties of this object
42238
+ def update!(**args)
42239
+ @as_lists = args[:as_lists] if args.key?(:as_lists)
42240
+ @path_segment_type = args[:path_segment_type] if args.key?(:path_segment_type)
42241
+ end
42242
+ end
42243
+
42244
+ # Contains a list of Route resources.
42245
+ class RouteList
42246
+ include Google::Apis::Core::Hashable
42247
+
42248
+ # [Output Only] Unique identifier for the resource; defined by the server.
42249
+ # Corresponds to the JSON property `id`
42250
+ # @return [String]
42251
+ attr_accessor :id
42252
+
42253
+ # A list of Route resources.
42254
+ # Corresponds to the JSON property `items`
42255
+ # @return [Array<Google::Apis::ComputeBeta::Route>]
42256
+ attr_accessor :items
42257
+
42258
+ # Type of resource.
42259
+ # Corresponds to the JSON property `kind`
42260
+ # @return [String]
42261
+ attr_accessor :kind
42262
+
42263
+ # [Output Only] This token allows you to get the next page of results for list
42264
+ # requests. If the number of results is larger than maxResults, use the
42265
+ # nextPageToken as a value for the query parameter pageToken in the next list
42266
+ # request. Subsequent list requests will have their own nextPageToken to
42267
+ # continue paging through the results.
42268
+ # Corresponds to the JSON property `nextPageToken`
42269
+ # @return [String]
42270
+ attr_accessor :next_page_token
42271
+
42272
+ # [Output Only] Server-defined URL for this resource.
42273
+ # Corresponds to the JSON property `selfLink`
42274
+ # @return [String]
42275
+ attr_accessor :self_link
42276
+
42277
+ # [Output Only] Informational warning message.
42278
+ # Corresponds to the JSON property `warning`
42279
+ # @return [Google::Apis::ComputeBeta::RouteList::Warning]
42280
+ attr_accessor :warning
42281
+
42282
+ def initialize(**args)
42283
+ update!(**args)
42284
+ end
42285
+
42286
+ # Update properties of this object
42287
+ def update!(**args)
42288
+ @id = args[:id] if args.key?(:id)
42289
+ @items = args[:items] if args.key?(:items)
42290
+ @kind = args[:kind] if args.key?(:kind)
42291
+ @next_page_token = args[:next_page_token] if args.key?(:next_page_token)
42292
+ @self_link = args[:self_link] if args.key?(:self_link)
42293
+ @warning = args[:warning] if args.key?(:warning)
42294
+ end
42295
+
42296
+ # [Output Only] Informational warning message.
42297
+ class Warning
42298
+ include Google::Apis::Core::Hashable
42299
+
42300
+ # [Output Only] A warning code, if applicable. For example, Compute Engine
42301
+ # returns NO_RESULTS_ON_PAGE if there are no results in the response.
42302
+ # Corresponds to the JSON property `code`
42303
+ # @return [String]
42304
+ attr_accessor :code
42305
+
42306
+ # [Output Only] Metadata about this warning in key: value format. For example: "
42307
+ # data": [ ` "key": "scope", "value": "zones/us-east1-d" `
42308
+ # Corresponds to the JSON property `data`
42309
+ # @return [Array<Google::Apis::ComputeBeta::RouteList::Warning::Datum>]
42310
+ attr_accessor :data
42311
+
42312
+ # [Output Only] A human-readable description of the warning code.
42313
+ # Corresponds to the JSON property `message`
42314
+ # @return [String]
42315
+ attr_accessor :message
42316
+
42317
+ def initialize(**args)
42318
+ update!(**args)
42319
+ end
42320
+
42321
+ # Update properties of this object
42322
+ def update!(**args)
42323
+ @code = args[:code] if args.key?(:code)
42324
+ @data = args[:data] if args.key?(:data)
42325
+ @message = args[:message] if args.key?(:message)
42326
+ end
42327
+
42328
+ #
42329
+ class Datum
42330
+ include Google::Apis::Core::Hashable
42331
+
42332
+ # [Output Only] A key that provides more detail on the warning being returned.
42333
+ # For example, for warnings where there are no results in a list request for a
42334
+ # particular zone, this key might be scope and the key value might be the zone
42335
+ # name. Other examples might be a key indicating a deprecated resource and a
42336
+ # suggested replacement, or a warning about invalid network settings (for
42337
+ # example, if an instance attempts to perform IP forwarding but is not enabled
42338
+ # for IP forwarding).
42339
+ # Corresponds to the JSON property `key`
42340
+ # @return [String]
42341
+ attr_accessor :key
42342
+
42343
+ # [Output Only] A warning data value corresponding to the key.
42344
+ # Corresponds to the JSON property `value`
42345
+ # @return [String]
42346
+ attr_accessor :value
42347
+
42348
+ def initialize(**args)
42349
+ update!(**args)
42350
+ end
42351
+
42352
+ # Update properties of this object
42353
+ def update!(**args)
42354
+ @key = args[:key] if args.key?(:key)
42355
+ @value = args[:value] if args.key?(:value)
42356
+ end
42357
+ end
42358
+ end
42359
+ end
42360
+
42361
+ # Additional route parameters.
42362
+ class RouteParams
39828
42363
  include Google::Apis::Core::Hashable
39829
42364
 
39830
- # [Output Only] Unique identifier for the resource; defined by the server.
39831
- # Corresponds to the JSON property `id`
39832
- # @return [String]
39833
- attr_accessor :id
39834
-
39835
- # A list of Route resources.
39836
- # Corresponds to the JSON property `items`
39837
- # @return [Array<Google::Apis::ComputeBeta::Route>]
39838
- attr_accessor :items
39839
-
39840
- # Type of resource.
39841
- # Corresponds to the JSON property `kind`
39842
- # @return [String]
39843
- attr_accessor :kind
39844
-
39845
- # [Output Only] This token allows you to get the next page of results for list
39846
- # requests. If the number of results is larger than maxResults, use the
39847
- # nextPageToken as a value for the query parameter pageToken in the next list
39848
- # request. Subsequent list requests will have their own nextPageToken to
39849
- # continue paging through the results.
39850
- # Corresponds to the JSON property `nextPageToken`
39851
- # @return [String]
39852
- attr_accessor :next_page_token
39853
-
39854
- # [Output Only] Server-defined URL for this resource.
39855
- # Corresponds to the JSON property `selfLink`
39856
- # @return [String]
39857
- attr_accessor :self_link
39858
-
39859
- # [Output Only] Informational warning message.
39860
- # Corresponds to the JSON property `warning`
39861
- # @return [Google::Apis::ComputeBeta::RouteList::Warning]
39862
- attr_accessor :warning
42365
+ # Tag keys/values directly bound to this resource. Tag keys and values have the
42366
+ # same definition as resource manager tags. The field is allowed for INSERT only.
42367
+ # The keys/values to set on the resource should be specified in either ID ` : `
42368
+ # or Namespaced format ` : `. For example the following are valid inputs: * `"
42369
+ # tagKeys/333" : "tagValues/444", "tagKeys/123" : "tagValues/456"` * `"123/
42370
+ # environment" : "production", "345/abc" : "xyz"` Note: * Invalid combinations
42371
+ # of ID & namespaced format is not supported. For instance: `"123/environment" :
42372
+ # "tagValues/444"` is invalid.
42373
+ # Corresponds to the JSON property `resourceManagerTags`
42374
+ # @return [Hash<String,String>]
42375
+ attr_accessor :resource_manager_tags
39863
42376
 
39864
42377
  def initialize(**args)
39865
42378
  update!(**args)
@@ -39867,76 +42380,7 @@ module Google
39867
42380
 
39868
42381
  # Update properties of this object
39869
42382
  def update!(**args)
39870
- @id = args[:id] if args.key?(:id)
39871
- @items = args[:items] if args.key?(:items)
39872
- @kind = args[:kind] if args.key?(:kind)
39873
- @next_page_token = args[:next_page_token] if args.key?(:next_page_token)
39874
- @self_link = args[:self_link] if args.key?(:self_link)
39875
- @warning = args[:warning] if args.key?(:warning)
39876
- end
39877
-
39878
- # [Output Only] Informational warning message.
39879
- class Warning
39880
- include Google::Apis::Core::Hashable
39881
-
39882
- # [Output Only] A warning code, if applicable. For example, Compute Engine
39883
- # returns NO_RESULTS_ON_PAGE if there are no results in the response.
39884
- # Corresponds to the JSON property `code`
39885
- # @return [String]
39886
- attr_accessor :code
39887
-
39888
- # [Output Only] Metadata about this warning in key: value format. For example: "
39889
- # data": [ ` "key": "scope", "value": "zones/us-east1-d" `
39890
- # Corresponds to the JSON property `data`
39891
- # @return [Array<Google::Apis::ComputeBeta::RouteList::Warning::Datum>]
39892
- attr_accessor :data
39893
-
39894
- # [Output Only] A human-readable description of the warning code.
39895
- # Corresponds to the JSON property `message`
39896
- # @return [String]
39897
- attr_accessor :message
39898
-
39899
- def initialize(**args)
39900
- update!(**args)
39901
- end
39902
-
39903
- # Update properties of this object
39904
- def update!(**args)
39905
- @code = args[:code] if args.key?(:code)
39906
- @data = args[:data] if args.key?(:data)
39907
- @message = args[:message] if args.key?(:message)
39908
- end
39909
-
39910
- #
39911
- class Datum
39912
- include Google::Apis::Core::Hashable
39913
-
39914
- # [Output Only] A key that provides more detail on the warning being returned.
39915
- # For example, for warnings where there are no results in a list request for a
39916
- # particular zone, this key might be scope and the key value might be the zone
39917
- # name. Other examples might be a key indicating a deprecated resource and a
39918
- # suggested replacement, or a warning about invalid network settings (for
39919
- # example, if an instance attempts to perform IP forwarding but is not enabled
39920
- # for IP forwarding).
39921
- # Corresponds to the JSON property `key`
39922
- # @return [String]
39923
- attr_accessor :key
39924
-
39925
- # [Output Only] A warning data value corresponding to the key.
39926
- # Corresponds to the JSON property `value`
39927
- # @return [String]
39928
- attr_accessor :value
39929
-
39930
- def initialize(**args)
39931
- update!(**args)
39932
- end
39933
-
39934
- # Update properties of this object
39935
- def update!(**args)
39936
- @key = args[:key] if args.key?(:key)
39937
- @value = args[:value] if args.key?(:value)
39938
- end
39939
- end
42383
+ @resource_manager_tags = args[:resource_manager_tags] if args.key?(:resource_manager_tags)
39940
42384
  end
39941
42385
  end
39942
42386
 
@@ -40113,6 +42557,11 @@ module Google
40113
42557
  # @return [Array<Google::Apis::ComputeBeta::RouterNat>]
40114
42558
  attr_accessor :nats
40115
42559
 
42560
+ # URI of the ncc_gateway to which this router associated.
42561
+ # Corresponds to the JSON property `nccGateway`
42562
+ # @return [String]
42563
+ attr_accessor :ncc_gateway
42564
+
40116
42565
  # URI of the network to which this router belongs.
40117
42566
  # Corresponds to the JSON property `network`
40118
42567
  # @return [String]
@@ -40147,6 +42596,7 @@ module Google
40147
42596
  @md5_authentication_keys = args[:md5_authentication_keys] if args.key?(:md5_authentication_keys)
40148
42597
  @name = args[:name] if args.key?(:name)
40149
42598
  @nats = args[:nats] if args.key?(:nats)
42599
+ @ncc_gateway = args[:ncc_gateway] if args.key?(:ncc_gateway)
40150
42600
  @network = args[:network] if args.key?(:network)
40151
42601
  @region = args[:region] if args.key?(:region)
40152
42602
  @self_link = args[:self_link] if args.key?(:self_link)
@@ -41295,6 +43745,11 @@ module Google
41295
43745
  # @return [Array<Google::Apis::ComputeBeta::RouterStatusNatStatus>]
41296
43746
  attr_accessor :nat_status
41297
43747
 
43748
+ # URI of the ncc_gateway to which this router associated.
43749
+ # Corresponds to the JSON property `nccGateway`
43750
+ # @return [String]
43751
+ attr_accessor :ncc_gateway
43752
+
41298
43753
  # URI of the network to which this router belongs.
41299
43754
  # Corresponds to the JSON property `network`
41300
43755
  # @return [String]
@@ -41310,6 +43765,7 @@ module Google
41310
43765
  @best_routes_for_router = args[:best_routes_for_router] if args.key?(:best_routes_for_router)
41311
43766
  @bgp_peer_status = args[:bgp_peer_status] if args.key?(:bgp_peer_status)
41312
43767
  @nat_status = args[:nat_status] if args.key?(:nat_status)
43768
+ @ncc_gateway = args[:ncc_gateway] if args.key?(:ncc_gateway)
41313
43769
  @network = args[:network] if args.key?(:network)
41314
43770
  end
41315
43771
  end
@@ -43223,8 +45679,9 @@ module Google
43223
45679
  # @return [String]
43224
45680
  attr_accessor :log_level
43225
45681
 
43226
- # The maximum request size chosen by the customer with Waf enabled. Currently
43227
- # only "8KB" and "128KB" are supported. Values are case insensitive.
45682
+ # The maximum request size chosen by the customer with Waf enabled. Values
45683
+ # supported are "8KB", "16KB, "32KB", "48KB" and "64KB". Values are case
45684
+ # insensitive.
43228
45685
  # Corresponds to the JSON property `requestBodyInspectionSize`
43229
45686
  # @return [String]
43230
45687
  attr_accessor :request_body_inspection_size
@@ -45492,7 +47949,7 @@ module Google
45492
47949
 
45493
47950
  # Represents a Persistent Disk Snapshot resource. You can use snapshots to back
45494
47951
  # up data on a regular interval. For more information, read Creating persistent
45495
- # disk snapshots.
47952
+ # disk snapshots. LINT.IfChange
45496
47953
  class Snapshot
45497
47954
  include Google::Apis::Core::Hashable
45498
47955
 
@@ -49062,6 +51519,11 @@ module Google
49062
51519
  # @return [String]
49063
51520
  attr_accessor :network
49064
51521
 
51522
+ # Additional subnetwork parameters.
51523
+ # Corresponds to the JSON property `params`
51524
+ # @return [Google::Apis::ComputeBeta::SubnetworkParams]
51525
+ attr_accessor :params
51526
+
49065
51527
  # Whether the VMs in this subnet can access Google services without assigned
49066
51528
  # external IP addresses. This field can be both set at resource creation time
49067
51529
  # and updated using setPrivateIpGoogleAccess.
@@ -49076,20 +51538,7 @@ module Google
49076
51538
  # @return [String]
49077
51539
  attr_accessor :private_ipv6_google_access
49078
51540
 
49079
- # The purpose of the resource. This field can be either PRIVATE,
49080
- # GLOBAL_MANAGED_PROXY, REGIONAL_MANAGED_PROXY, PEER_MIGRATION,
49081
- # PRIVATE_SERVICE_CONNECT or PRIVATE_NAT. PRIVATE is the default purpose for
49082
- # user-created subnets or subnets that are automatically created in auto mode
49083
- # networks. Subnets with purpose set to GLOBAL_MANAGED_PROXY or
49084
- # REGIONAL_MANAGED_PROXY are user-created subnetworks that are reserved for
49085
- # Envoy-based load balancers. A subnet with purpose set to
49086
- # PRIVATE_SERVICE_CONNECT is used to publish services using Private Service
49087
- # Connect. A subnet with purpose set to PEER_MIGRATION is used for subnet
49088
- # migration from one peered VPC to another. A subnet with purpose set to
49089
- # PRIVATE_NAT is used for Private NAT IP address by Private NAT Gateway. If
49090
- # unspecified, the subnet purpose defaults to PRIVATE. The enableFlowLogs field
49091
- # isn't supported if the subnet purpose field is set to GLOBAL_MANAGED_PROXY or
49092
- # REGIONAL_MANAGED_PROXY.
51541
+ #
49093
51542
  # Corresponds to the JSON property `purpose`
49094
51543
  # @return [String]
49095
51544
  attr_accessor :purpose
@@ -49146,6 +51595,18 @@ module Google
49146
51595
  # @return [String]
49147
51596
  attr_accessor :state
49148
51597
 
51598
+ # Output only. [Output Only] The array of external IPv6 network ranges reserved
51599
+ # from the subnetwork's external IPv6 range for system use.
51600
+ # Corresponds to the JSON property `systemReservedExternalIpv6Ranges`
51601
+ # @return [Array<String>]
51602
+ attr_accessor :system_reserved_external_ipv6_ranges
51603
+
51604
+ # Output only. [Output Only] The array of internal IPv6 network ranges reserved
51605
+ # from the subnetwork's internal IPv6 range for system use.
51606
+ # Corresponds to the JSON property `systemReservedInternalIpv6Ranges`
51607
+ # @return [Array<String>]
51608
+ attr_accessor :system_reserved_internal_ipv6_ranges
51609
+
49149
51610
  def initialize(**args)
49150
51611
  update!(**args)
49151
51612
  end
@@ -49170,6 +51631,7 @@ module Google
49170
51631
  @log_config = args[:log_config] if args.key?(:log_config)
49171
51632
  @name = args[:name] if args.key?(:name)
49172
51633
  @network = args[:network] if args.key?(:network)
51634
+ @params = args[:params] if args.key?(:params)
49173
51635
  @private_ip_google_access = args[:private_ip_google_access] if args.key?(:private_ip_google_access)
49174
51636
  @private_ipv6_google_access = args[:private_ipv6_google_access] if args.key?(:private_ipv6_google_access)
49175
51637
  @purpose = args[:purpose] if args.key?(:purpose)
@@ -49180,6 +51642,8 @@ module Google
49180
51642
  @self_link = args[:self_link] if args.key?(:self_link)
49181
51643
  @stack_type = args[:stack_type] if args.key?(:stack_type)
49182
51644
  @state = args[:state] if args.key?(:state)
51645
+ @system_reserved_external_ipv6_ranges = args[:system_reserved_external_ipv6_ranges] if args.key?(:system_reserved_external_ipv6_ranges)
51646
+ @system_reserved_internal_ipv6_ranges = args[:system_reserved_internal_ipv6_ranges] if args.key?(:system_reserved_internal_ipv6_ranges)
49183
51647
  end
49184
51648
  end
49185
51649
 
@@ -49491,6 +51955,32 @@ module Google
49491
51955
  end
49492
51956
  end
49493
51957
 
51958
+ # Additional subnetwork parameters.
51959
+ class SubnetworkParams
51960
+ include Google::Apis::Core::Hashable
51961
+
51962
+ # Tag keys/values directly bound to this resource. Tag keys and values have the
51963
+ # same definition as resource manager tags. The field is allowed for INSERT only.
51964
+ # The keys/values to set on the resource should be specified in either ID ` : `
51965
+ # or Namespaced format ` : `. For example the following are valid inputs: * `"
51966
+ # tagKeys/333" : "tagValues/444", "tagKeys/123" : "tagValues/456"` * `"123/
51967
+ # environment" : "production", "345/abc" : "xyz"` Note: * Invalid combinations
51968
+ # of ID & namespaced format is not supported. For instance: `"123/environment" :
51969
+ # "tagValues/444"` is invalid.
51970
+ # Corresponds to the JSON property `resourceManagerTags`
51971
+ # @return [Hash<String,String>]
51972
+ attr_accessor :resource_manager_tags
51973
+
51974
+ def initialize(**args)
51975
+ update!(**args)
51976
+ end
51977
+
51978
+ # Update properties of this object
51979
+ def update!(**args)
51980
+ @resource_manager_tags = args[:resource_manager_tags] if args.key?(:resource_manager_tags)
51981
+ end
51982
+ end
51983
+
49494
51984
  # Represents a secondary IP range of a subnetwork.
49495
51985
  class SubnetworkSecondaryRange
49496
51986
  include Google::Apis::Core::Hashable
@@ -49639,6 +52129,95 @@ module Google
49639
52129
  end
49640
52130
  end
49641
52131
 
52132
+ #
52133
+ class SubnetworksScopedWarning
52134
+ include Google::Apis::Core::Hashable
52135
+
52136
+ # Name of the scope containing this set of Subnetworks.
52137
+ # Corresponds to the JSON property `scopeName`
52138
+ # @return [String]
52139
+ attr_accessor :scope_name
52140
+
52141
+ # An informational warning about unreachable scope
52142
+ # Corresponds to the JSON property `warning`
52143
+ # @return [Google::Apis::ComputeBeta::SubnetworksScopedWarning::Warning]
52144
+ attr_accessor :warning
52145
+
52146
+ def initialize(**args)
52147
+ update!(**args)
52148
+ end
52149
+
52150
+ # Update properties of this object
52151
+ def update!(**args)
52152
+ @scope_name = args[:scope_name] if args.key?(:scope_name)
52153
+ @warning = args[:warning] if args.key?(:warning)
52154
+ end
52155
+
52156
+ # An informational warning about unreachable scope
52157
+ class Warning
52158
+ include Google::Apis::Core::Hashable
52159
+
52160
+ # [Output Only] A warning code, if applicable. For example, Compute Engine
52161
+ # returns NO_RESULTS_ON_PAGE if there are no results in the response.
52162
+ # Corresponds to the JSON property `code`
52163
+ # @return [String]
52164
+ attr_accessor :code
52165
+
52166
+ # [Output Only] Metadata about this warning in key: value format. For example: "
52167
+ # data": [ ` "key": "scope", "value": "zones/us-east1-d" `
52168
+ # Corresponds to the JSON property `data`
52169
+ # @return [Array<Google::Apis::ComputeBeta::SubnetworksScopedWarning::Warning::Datum>]
52170
+ attr_accessor :data
52171
+
52172
+ # [Output Only] A human-readable description of the warning code.
52173
+ # Corresponds to the JSON property `message`
52174
+ # @return [String]
52175
+ attr_accessor :message
52176
+
52177
+ def initialize(**args)
52178
+ update!(**args)
52179
+ end
52180
+
52181
+ # Update properties of this object
52182
+ def update!(**args)
52183
+ @code = args[:code] if args.key?(:code)
52184
+ @data = args[:data] if args.key?(:data)
52185
+ @message = args[:message] if args.key?(:message)
52186
+ end
52187
+
52188
+ #
52189
+ class Datum
52190
+ include Google::Apis::Core::Hashable
52191
+
52192
+ # [Output Only] A key that provides more detail on the warning being returned.
52193
+ # For example, for warnings where there are no results in a list request for a
52194
+ # particular zone, this key might be scope and the key value might be the zone
52195
+ # name. Other examples might be a key indicating a deprecated resource and a
52196
+ # suggested replacement, or a warning about invalid network settings (for
52197
+ # example, if an instance attempts to perform IP forwarding but is not enabled
52198
+ # for IP forwarding).
52199
+ # Corresponds to the JSON property `key`
52200
+ # @return [String]
52201
+ attr_accessor :key
52202
+
52203
+ # [Output Only] A warning data value corresponding to the key.
52204
+ # Corresponds to the JSON property `value`
52205
+ # @return [String]
52206
+ attr_accessor :value
52207
+
52208
+ def initialize(**args)
52209
+ update!(**args)
52210
+ end
52211
+
52212
+ # Update properties of this object
52213
+ def update!(**args)
52214
+ @key = args[:key] if args.key?(:key)
52215
+ @value = args[:value] if args.key?(:value)
52216
+ end
52217
+ end
52218
+ end
52219
+ end
52220
+
49642
52221
  #
49643
52222
  class SubnetworksSetPrivateIpGoogleAccessRequest
49644
52223
  include Google::Apis::Core::Hashable
@@ -53516,6 +56095,12 @@ module Google
53516
56095
  # @return [String]
53517
56096
  attr_accessor :latest_window_start_time
53518
56097
 
56098
+ # Indicates whether the UpcomingMaintenance will be triggered on VM shutdown.
56099
+ # Corresponds to the JSON property `maintenanceOnShutdown`
56100
+ # @return [Boolean]
56101
+ attr_accessor :maintenance_on_shutdown
56102
+ alias_method :maintenance_on_shutdown?, :maintenance_on_shutdown
56103
+
53519
56104
  #
53520
56105
  # Corresponds to the JSON property `maintenanceStatus`
53521
56106
  # @return [String]
@@ -53546,6 +56131,7 @@ module Google
53546
56131
  def update!(**args)
53547
56132
  @can_reschedule = args[:can_reschedule] if args.key?(:can_reschedule)
53548
56133
  @latest_window_start_time = args[:latest_window_start_time] if args.key?(:latest_window_start_time)
56134
+ @maintenance_on_shutdown = args[:maintenance_on_shutdown] if args.key?(:maintenance_on_shutdown)
53549
56135
  @maintenance_status = args[:maintenance_status] if args.key?(:maintenance_status)
53550
56136
  @type = args[:type] if args.key?(:type)
53551
56137
  @window_end_time = args[:window_end_time] if args.key?(:window_end_time)
@@ -54351,20 +56937,7 @@ module Google
54351
56937
  # @return [String]
54352
56938
  attr_accessor :network
54353
56939
 
54354
- # The purpose of the resource. This field can be either PRIVATE,
54355
- # GLOBAL_MANAGED_PROXY, REGIONAL_MANAGED_PROXY, PEER_MIGRATION,
54356
- # PRIVATE_SERVICE_CONNECT or PRIVATE_NAT. PRIVATE is the default purpose for
54357
- # user-created subnets or subnets that are automatically created in auto mode
54358
- # networks. Subnets with purpose set to GLOBAL_MANAGED_PROXY or
54359
- # REGIONAL_MANAGED_PROXY are user-created subnetworks that are reserved for
54360
- # Envoy-based load balancers. A subnet with purpose set to
54361
- # PRIVATE_SERVICE_CONNECT is used to publish services using Private Service
54362
- # Connect. A subnet with purpose set to PEER_MIGRATION is used for subnet
54363
- # migration from one peered VPC to another. A subnet with purpose set to
54364
- # PRIVATE_NAT is used for Private NAT IP address by Private NAT Gateway. If
54365
- # unspecified, the subnet purpose defaults to PRIVATE. The enableFlowLogs field
54366
- # isn't supported if the subnet purpose field is set to GLOBAL_MANAGED_PROXY or
54367
- # REGIONAL_MANAGED_PROXY.
56940
+ #
54368
56941
  # Corresponds to the JSON property `purpose`
54369
56942
  # @return [String]
54370
56943
  attr_accessor :purpose
@@ -54475,11 +57048,22 @@ module Google
54475
57048
  # @return [String]
54476
57049
  attr_accessor :next_page_token
54477
57050
 
57051
+ # [Output Only] Informational warning messages for failures encountered from
57052
+ # scopes.
57053
+ # Corresponds to the JSON property `scopedWarnings`
57054
+ # @return [Array<Google::Apis::ComputeBeta::SubnetworksScopedWarning>]
57055
+ attr_accessor :scoped_warnings
57056
+
54478
57057
  # [Output Only] Server-defined URL for this resource.
54479
57058
  # Corresponds to the JSON property `selfLink`
54480
57059
  # @return [String]
54481
57060
  attr_accessor :self_link
54482
57061
 
57062
+ # [Output Only] Unreachable resources.
57063
+ # Corresponds to the JSON property `unreachables`
57064
+ # @return [Array<String>]
57065
+ attr_accessor :unreachables
57066
+
54483
57067
  # [Output Only] Informational warning message.
54484
57068
  # Corresponds to the JSON property `warning`
54485
57069
  # @return [Google::Apis::ComputeBeta::UsableSubnetworksAggregatedList::Warning]
@@ -54495,7 +57079,9 @@ module Google
54495
57079
  @items = args[:items] if args.key?(:items)
54496
57080
  @kind = args[:kind] if args.key?(:kind)
54497
57081
  @next_page_token = args[:next_page_token] if args.key?(:next_page_token)
57082
+ @scoped_warnings = args[:scoped_warnings] if args.key?(:scoped_warnings)
54498
57083
  @self_link = args[:self_link] if args.key?(:self_link)
57084
+ @unreachables = args[:unreachables] if args.key?(:unreachables)
54499
57085
  @warning = args[:warning] if args.key?(:warning)
54500
57086
  end
54501
57087
 
@@ -56280,11 +58866,6 @@ module Google
56280
58866
  # @return [String]
56281
58867
  attr_accessor :self_link
56282
58868
 
56283
- #
56284
- # Corresponds to the JSON property `selfLinkWithId`
56285
- # @return [String]
56286
- attr_accessor :self_link_with_id
56287
-
56288
58869
  # Topology details for the wire group.
56289
58870
  # Corresponds to the JSON property `topology`
56290
58871
  # @return [Google::Apis::ComputeBeta::WireGroupTopology]
@@ -56320,7 +58901,6 @@ module Google
56320
58901
  @kind = args[:kind] if args.key?(:kind)
56321
58902
  @name = args[:name] if args.key?(:name)
56322
58903
  @self_link = args[:self_link] if args.key?(:self_link)
56323
- @self_link_with_id = args[:self_link_with_id] if args.key?(:self_link_with_id)
56324
58904
  @topology = args[:topology] if args.key?(:topology)
56325
58905
  @wire_group_properties = args[:wire_group_properties] if args.key?(:wire_group_properties)
56326
58906
  @wire_properties = args[:wire_properties] if args.key?(:wire_properties)