google-apis-compute_beta 0.113.0 → 0.115.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.
@@ -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
@@ -3961,7 +3961,8 @@ module Google
3961
3961
  # be set for Internal Passthrough Network Load Balancers when the haPolicy is
3962
3962
  # enabled, and for External Passthrough Network Load Balancers when the haPolicy
3963
3963
  # fastIpMove is enabled. This field can only be specified when the load
3964
- # balancing scheme is set to INTERNAL.
3964
+ # balancing scheme is set to INTERNAL, or when the load balancing scheme is set
3965
+ # to EXTERNAL and haPolicy fastIpMove is enabled.
3965
3966
  # Corresponds to the JSON property `network`
3966
3967
  # @return [String]
3967
3968
  attr_accessor :network
@@ -3996,11 +3997,11 @@ module Google
3996
3997
  attr_accessor :port_name
3997
3998
 
3998
3999
  # 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.
4000
+ # values are HTTP, HTTPS, HTTP2, H2C, TCP, SSL, UDP or GRPC. depending on the
4001
+ # chosen load balancer or Traffic Director configuration. Refer to the
4002
+ # documentation for the load balancers or for Traffic Director for more
4003
+ # information. Must be set to GRPC when the backend service is referenced by a
4004
+ # URL map that is bound to target gRPC proxy.
4004
4005
  # Corresponds to the JSON property `protocol`
4005
4006
  # @return [String]
4006
4007
  attr_accessor :protocol
@@ -4764,6 +4765,17 @@ module Google
4764
4765
  # @return [String]
4765
4766
  attr_accessor :fast_ip_move
4766
4767
 
4768
+ # Selects one of the network endpoints attached to the backend NEGs of this
4769
+ # service as the active endpoint (the leader) that receives all traffic. When
4770
+ # the leader changes, there is no connection draining to persist existing
4771
+ # connections on the old leader. You are responsible for selecting a suitable
4772
+ # endpoint as the leader. For example, preferring a healthy endpoint over
4773
+ # unhealthy ones. Note that this service does not track backend endpoint health,
4774
+ # and selects the configured leader unconditionally.
4775
+ # Corresponds to the JSON property `leader`
4776
+ # @return [Google::Apis::ComputeBeta::BackendServiceHaPolicyLeader]
4777
+ attr_accessor :leader
4778
+
4767
4779
  def initialize(**args)
4768
4780
  update!(**args)
4769
4781
  end
@@ -4771,6 +4783,62 @@ module Google
4771
4783
  # Update properties of this object
4772
4784
  def update!(**args)
4773
4785
  @fast_ip_move = args[:fast_ip_move] if args.key?(:fast_ip_move)
4786
+ @leader = args[:leader] if args.key?(:leader)
4787
+ end
4788
+ end
4789
+
4790
+ #
4791
+ class BackendServiceHaPolicyLeader
4792
+ include Google::Apis::Core::Hashable
4793
+
4794
+ # A fully-qualified URL (starting with https://www.googleapis.com/) of the zonal
4795
+ # Network Endpoint Group (NEG) with `GCE_VM_IP` endpoints that the leader is
4796
+ # attached to. The leader's backendGroup must already be specified as a backend
4797
+ # of this backend service. Removing a backend that is designated as the leader's
4798
+ # backendGroup is not permitted.
4799
+ # Corresponds to the JSON property `backendGroup`
4800
+ # @return [String]
4801
+ attr_accessor :backend_group
4802
+
4803
+ # The network endpoint within the leader.backendGroup that is designated as the
4804
+ # leader. This network endpoint cannot be detached from the NEG specified in the
4805
+ # haPolicy.leader.backendGroup until the leader is updated with another network
4806
+ # endpoint, or the leader is removed from the haPolicy.
4807
+ # Corresponds to the JSON property `networkEndpoint`
4808
+ # @return [Google::Apis::ComputeBeta::BackendServiceHaPolicyLeaderNetworkEndpoint]
4809
+ attr_accessor :network_endpoint
4810
+
4811
+ def initialize(**args)
4812
+ update!(**args)
4813
+ end
4814
+
4815
+ # Update properties of this object
4816
+ def update!(**args)
4817
+ @backend_group = args[:backend_group] if args.key?(:backend_group)
4818
+ @network_endpoint = args[:network_endpoint] if args.key?(:network_endpoint)
4819
+ end
4820
+ end
4821
+
4822
+ #
4823
+ class BackendServiceHaPolicyLeaderNetworkEndpoint
4824
+ include Google::Apis::Core::Hashable
4825
+
4826
+ # The name of the VM instance of the leader network endpoint. The instance must
4827
+ # already be attached to the NEG specified in the haPolicy.leader.backendGroup.
4828
+ # The name must be 1-63 characters long, and comply with RFC1035. Authorization
4829
+ # requires the following IAM permission on the specified resource instance:
4830
+ # compute.instances.use
4831
+ # Corresponds to the JSON property `instance`
4832
+ # @return [String]
4833
+ attr_accessor :instance
4834
+
4835
+ def initialize(**args)
4836
+ update!(**args)
4837
+ end
4838
+
4839
+ # Update properties of this object
4840
+ def update!(**args)
4841
+ @instance = args[:instance] if args.key?(:instance)
4774
4842
  end
4775
4843
  end
4776
4844
 
@@ -6122,6 +6190,55 @@ module Google
6122
6190
  end
6123
6191
  end
6124
6192
 
6193
+ #
6194
+ class BulkSetLabelsRequest
6195
+ include Google::Apis::Core::Hashable
6196
+
6197
+ # The fingerprint of the previous set of labels for this resource, used to
6198
+ # detect conflicts. The fingerprint is initially generated by Compute Engine and
6199
+ # changes after every request to modify or update labels. You may optionally
6200
+ # provide an up-to-date fingerprint hash in order to update or change labels.
6201
+ # Make a get() request to the resource to get the latest fingerprint.
6202
+ # Corresponds to the JSON property `labelFingerprint`
6203
+ # NOTE: Values are automatically base64 encoded/decoded in the client library.
6204
+ # @return [String]
6205
+ attr_accessor :label_fingerprint
6206
+
6207
+ # The labels to set for this resource.
6208
+ # Corresponds to the JSON property `labels`
6209
+ # @return [Hash<String,String>]
6210
+ attr_accessor :labels
6211
+
6212
+ def initialize(**args)
6213
+ update!(**args)
6214
+ end
6215
+
6216
+ # Update properties of this object
6217
+ def update!(**args)
6218
+ @label_fingerprint = args[:label_fingerprint] if args.key?(:label_fingerprint)
6219
+ @labels = args[:labels] if args.key?(:labels)
6220
+ end
6221
+ end
6222
+
6223
+ #
6224
+ class BulkZoneSetLabelsRequest
6225
+ include Google::Apis::Core::Hashable
6226
+
6227
+ #
6228
+ # Corresponds to the JSON property `requests`
6229
+ # @return [Array<Google::Apis::ComputeBeta::BulkSetLabelsRequest>]
6230
+ attr_accessor :requests
6231
+
6232
+ def initialize(**args)
6233
+ update!(**args)
6234
+ end
6235
+
6236
+ # Update properties of this object
6237
+ def update!(**args)
6238
+ @requests = args[:requests] if args.key?(:requests)
6239
+ end
6240
+ end
6241
+
6125
6242
  #
6126
6243
  class BundledLocalSsds
6127
6244
  include Google::Apis::Core::Hashable
@@ -7510,6 +7627,47 @@ module Google
7510
7627
  end
7511
7628
  end
7512
7629
 
7630
+ # Represents a whole or partial calendar date, such as a birthday. The time of
7631
+ # day and time zone are either specified elsewhere or are insignificant. The
7632
+ # date is relative to the Gregorian Calendar. This can represent one of the
7633
+ # following: * A full date, with non-zero year, month, and day values. * A month
7634
+ # and day, with a zero year (for example, an anniversary). * A year on its own,
7635
+ # with a zero month and a zero day. * A year and month, with a zero day (for
7636
+ # example, a credit card expiration date). Related types: * google.type.
7637
+ # TimeOfDay * google.type.DateTime * google.protobuf.Timestamp
7638
+ class Date
7639
+ include Google::Apis::Core::Hashable
7640
+
7641
+ # Day of a month. Must be from 1 to 31 and valid for the year and month, or 0 to
7642
+ # specify a year by itself or a year and month where the day isn't significant.
7643
+ # Corresponds to the JSON property `day`
7644
+ # @return [Fixnum]
7645
+ attr_accessor :day
7646
+
7647
+ # Month of a year. Must be from 1 to 12, or 0 to specify a year without a month
7648
+ # and day.
7649
+ # Corresponds to the JSON property `month`
7650
+ # @return [Fixnum]
7651
+ attr_accessor :month
7652
+
7653
+ # Year of the date. Must be from 1 to 9999, or 0 to specify a date without a
7654
+ # year.
7655
+ # Corresponds to the JSON property `year`
7656
+ # @return [Fixnum]
7657
+ attr_accessor :year
7658
+
7659
+ def initialize(**args)
7660
+ update!(**args)
7661
+ end
7662
+
7663
+ # Update properties of this object
7664
+ def update!(**args)
7665
+ @day = args[:day] if args.key?(:day)
7666
+ @month = args[:month] if args.key?(:month)
7667
+ @year = args[:year] if args.key?(:year)
7668
+ end
7669
+ end
7670
+
7513
7671
  # Deprecation status for a public resource.
7514
7672
  class DeprecationStatus
7515
7673
  include Google::Apis::Core::Hashable
@@ -10895,6 +11053,12 @@ module Google
10895
11053
  # @return [String]
10896
11054
  attr_accessor :dest_network_scope
10897
11055
 
11056
+ # Network type of the traffic destination. Allowed values are: - UNSPECIFIED -
11057
+ # INTERNET - NON_INTERNET
11058
+ # Corresponds to the JSON property `destNetworkType`
11059
+ # @return [String]
11060
+ attr_accessor :dest_network_type
11061
+
10898
11062
  # Region codes whose IP addresses will be used to match for destination of
10899
11063
  # traffic. Should be specified as 2 letter country code defined as per ISO 3166
10900
11064
  # alpha-2 country codes. ex."US" Maximum number of dest region codes allowed is
@@ -10936,6 +11100,12 @@ module Google
10936
11100
  # @return [String]
10937
11101
  attr_accessor :src_network_scope
10938
11102
 
11103
+ # Network type of the traffic source. Allowed values are: - UNSPECIFIED -
11104
+ # INTERNET - INTRA_VPC - NON_INTERNET - VPC_NETWORKS
11105
+ # Corresponds to the JSON property `srcNetworkType`
11106
+ # @return [String]
11107
+ attr_accessor :src_network_type
11108
+
10939
11109
  # Networks of the traffic source. It can be either a full or partial url.
10940
11110
  # Corresponds to the JSON property `srcNetworks`
10941
11111
  # @return [Array<String>]
@@ -10972,6 +11142,7 @@ module Google
10972
11142
  @dest_fqdns = args[:dest_fqdns] if args.key?(:dest_fqdns)
10973
11143
  @dest_ip_ranges = args[:dest_ip_ranges] if args.key?(:dest_ip_ranges)
10974
11144
  @dest_network_scope = args[:dest_network_scope] if args.key?(:dest_network_scope)
11145
+ @dest_network_type = args[:dest_network_type] if args.key?(:dest_network_type)
10975
11146
  @dest_region_codes = args[:dest_region_codes] if args.key?(:dest_region_codes)
10976
11147
  @dest_threat_intelligences = args[:dest_threat_intelligences] if args.key?(:dest_threat_intelligences)
10977
11148
  @layer4_configs = args[:layer4_configs] if args.key?(:layer4_configs)
@@ -10979,6 +11150,7 @@ module Google
10979
11150
  @src_fqdns = args[:src_fqdns] if args.key?(:src_fqdns)
10980
11151
  @src_ip_ranges = args[:src_ip_ranges] if args.key?(:src_ip_ranges)
10981
11152
  @src_network_scope = args[:src_network_scope] if args.key?(:src_network_scope)
11153
+ @src_network_type = args[:src_network_type] if args.key?(:src_network_type)
10982
11154
  @src_networks = args[:src_networks] if args.key?(:src_networks)
10983
11155
  @src_region_codes = args[:src_region_codes] if args.key?(:src_region_codes)
10984
11156
  @src_secure_tags = args[:src_secure_tags] if args.key?(:src_secure_tags)
@@ -12025,6 +12197,12 @@ module Google
12025
12197
  # @return [String]
12026
12198
  attr_accessor :description
12027
12199
 
12200
+ # Indicates if this group of VMs have emergent maintenance enabled.
12201
+ # Corresponds to the JSON property `enableEmergentMaintenance`
12202
+ # @return [Boolean]
12203
+ attr_accessor :enable_emergent_maintenance
12204
+ alias_method :enable_emergent_maintenance?, :enable_emergent_maintenance
12205
+
12028
12206
  # [Output Only] A unique identifier for this future reservation. The server
12029
12207
  # defines this identifier.
12030
12208
  # Corresponds to the JSON property `id`
@@ -12138,6 +12316,7 @@ module Google
12138
12316
  @creation_timestamp = args[:creation_timestamp] if args.key?(:creation_timestamp)
12139
12317
  @deployment_type = args[:deployment_type] if args.key?(:deployment_type)
12140
12318
  @description = args[:description] if args.key?(:description)
12319
+ @enable_emergent_maintenance = args[:enable_emergent_maintenance] if args.key?(:enable_emergent_maintenance)
12141
12320
  @id = args[:id] if args.key?(:id)
12142
12321
  @kind = args[:kind] if args.key?(:kind)
12143
12322
  @name = args[:name] if args.key?(:name)
@@ -17787,6 +17966,12 @@ module Google
17787
17966
  # @return [Fixnum]
17788
17967
  attr_accessor :target_size
17789
17968
 
17969
+ # The policy that specifies how the MIG creates its VMs to achieve the target
17970
+ # size.
17971
+ # Corresponds to the JSON property `targetSizePolicy`
17972
+ # @return [Google::Apis::ComputeBeta::InstanceGroupManagerTargetSizePolicy]
17973
+ attr_accessor :target_size_policy
17974
+
17790
17975
  # The target number of stopped instances for this managed instance group. This
17791
17976
  # number changes when you: - Stop instance using the stopInstances method or
17792
17977
  # start instances using the startInstances method. - Manually change the
@@ -17862,6 +18047,7 @@ module Google
17862
18047
  @status = args[:status] if args.key?(:status)
17863
18048
  @target_pools = args[:target_pools] if args.key?(:target_pools)
17864
18049
  @target_size = args[:target_size] if args.key?(:target_size)
18050
+ @target_size_policy = args[:target_size_policy] if args.key?(:target_size_policy)
17865
18051
  @target_stopped_size = args[:target_stopped_size] if args.key?(:target_stopped_size)
17866
18052
  @target_suspended_size = args[:target_suspended_size] if args.key?(:target_suspended_size)
17867
18053
  @update_policy = args[:update_policy] if args.key?(:update_policy)
@@ -19009,6 +19195,12 @@ module Google
19009
19195
  # @return [String]
19010
19196
  attr_accessor :autoscaler
19011
19197
 
19198
+ # Bulk instance operation is the creation of VMs in a MIG when the
19199
+ # targetSizePolicy.mode is set to BULK.
19200
+ # Corresponds to the JSON property `bulkInstanceOperation`
19201
+ # @return [Google::Apis::ComputeBeta::InstanceGroupManagerStatusBulkInstanceOperation]
19202
+ attr_accessor :bulk_instance_operation
19203
+
19012
19204
  # [Output Only] A bit indicating whether the managed instance group is in a
19013
19205
  # stable state. A stable state means that: none of the instances in the managed
19014
19206
  # instance group is currently undergoing any type of change (for example,
@@ -19039,6 +19231,7 @@ module Google
19039
19231
  def update!(**args)
19040
19232
  @all_instances_config = args[:all_instances_config] if args.key?(:all_instances_config)
19041
19233
  @autoscaler = args[:autoscaler] if args.key?(:autoscaler)
19234
+ @bulk_instance_operation = args[:bulk_instance_operation] if args.key?(:bulk_instance_operation)
19042
19235
  @is_stable = args[:is_stable] if args.key?(:is_stable)
19043
19236
  @stateful = args[:stateful] if args.key?(:stateful)
19044
19237
  @version_target = args[:version_target] if args.key?(:version_target)
@@ -19073,6 +19266,168 @@ module Google
19073
19266
  end
19074
19267
  end
19075
19268
 
19269
+ # Bulk instance operation is the creation of VMs in a MIG when the
19270
+ # targetSizePolicy.mode is set to BULK.
19271
+ class InstanceGroupManagerStatusBulkInstanceOperation
19272
+ include Google::Apis::Core::Hashable
19273
+
19274
+ # [Output Only] Informs whether bulk instance operation is in progress.
19275
+ # Corresponds to the JSON property `inProgress`
19276
+ # @return [Boolean]
19277
+ attr_accessor :in_progress
19278
+ alias_method :in_progress?, :in_progress
19279
+
19280
+ # [Output Only] Information from the last progress check of bulk instance
19281
+ # operation.
19282
+ # Corresponds to the JSON property `lastProgressCheck`
19283
+ # @return [Google::Apis::ComputeBeta::InstanceGroupManagerStatusBulkInstanceOperationLastProgressCheck]
19284
+ attr_accessor :last_progress_check
19285
+
19286
+ def initialize(**args)
19287
+ update!(**args)
19288
+ end
19289
+
19290
+ # Update properties of this object
19291
+ def update!(**args)
19292
+ @in_progress = args[:in_progress] if args.key?(:in_progress)
19293
+ @last_progress_check = args[:last_progress_check] if args.key?(:last_progress_check)
19294
+ end
19295
+ end
19296
+
19297
+ #
19298
+ class InstanceGroupManagerStatusBulkInstanceOperationLastProgressCheck
19299
+ include Google::Apis::Core::Hashable
19300
+
19301
+ # [Output Only] Errors encountered during bulk instance operation.
19302
+ # Corresponds to the JSON property `error`
19303
+ # @return [Google::Apis::ComputeBeta::InstanceGroupManagerStatusBulkInstanceOperationLastProgressCheck::Error]
19304
+ attr_accessor :error
19305
+
19306
+ # [Output Only] Timestamp of the last progress check of bulk instance operation.
19307
+ # Timestamp is in RFC3339 text format.
19308
+ # Corresponds to the JSON property `timestamp`
19309
+ # @return [String]
19310
+ attr_accessor :timestamp
19311
+
19312
+ def initialize(**args)
19313
+ update!(**args)
19314
+ end
19315
+
19316
+ # Update properties of this object
19317
+ def update!(**args)
19318
+ @error = args[:error] if args.key?(:error)
19319
+ @timestamp = args[:timestamp] if args.key?(:timestamp)
19320
+ end
19321
+
19322
+ # [Output Only] Errors encountered during bulk instance operation.
19323
+ class Error
19324
+ include Google::Apis::Core::Hashable
19325
+
19326
+ # [Output Only] The array of errors encountered while processing this operation.
19327
+ # Corresponds to the JSON property `errors`
19328
+ # @return [Array<Google::Apis::ComputeBeta::InstanceGroupManagerStatusBulkInstanceOperationLastProgressCheck::Error::Error>]
19329
+ attr_accessor :errors
19330
+
19331
+ def initialize(**args)
19332
+ update!(**args)
19333
+ end
19334
+
19335
+ # Update properties of this object
19336
+ def update!(**args)
19337
+ @errors = args[:errors] if args.key?(:errors)
19338
+ end
19339
+
19340
+ #
19341
+ class Error
19342
+ include Google::Apis::Core::Hashable
19343
+
19344
+ # [Output Only] The error type identifier for this error.
19345
+ # Corresponds to the JSON property `code`
19346
+ # @return [String]
19347
+ attr_accessor :code
19348
+
19349
+ # [Output Only] An optional list of messages that contain the error details.
19350
+ # There is a set of defined message types to use for providing details.The
19351
+ # syntax depends on the error code. For example, QuotaExceededInfo will have
19352
+ # details when the error code is QUOTA_EXCEEDED.
19353
+ # Corresponds to the JSON property `errorDetails`
19354
+ # @return [Array<Google::Apis::ComputeBeta::InstanceGroupManagerStatusBulkInstanceOperationLastProgressCheck::Error::Error::ErrorDetail>]
19355
+ attr_accessor :error_details
19356
+
19357
+ # [Output Only] Indicates the field in the request that caused the error. This
19358
+ # property is optional.
19359
+ # Corresponds to the JSON property `location`
19360
+ # @return [String]
19361
+ attr_accessor :location
19362
+
19363
+ # [Output Only] An optional, human-readable error message.
19364
+ # Corresponds to the JSON property `message`
19365
+ # @return [String]
19366
+ attr_accessor :message
19367
+
19368
+ def initialize(**args)
19369
+ update!(**args)
19370
+ end
19371
+
19372
+ # Update properties of this object
19373
+ def update!(**args)
19374
+ @code = args[:code] if args.key?(:code)
19375
+ @error_details = args[:error_details] if args.key?(:error_details)
19376
+ @location = args[:location] if args.key?(:location)
19377
+ @message = args[:message] if args.key?(:message)
19378
+ end
19379
+
19380
+ #
19381
+ class ErrorDetail
19382
+ include Google::Apis::Core::Hashable
19383
+
19384
+ # Describes the cause of the error with structured details. Example of an error
19385
+ # when contacting the "pubsub.googleapis.com" API when it is not enabled: ` "
19386
+ # reason": "API_DISABLED" "domain": "googleapis.com" "metadata": ` "resource": "
19387
+ # projects/123", "service": "pubsub.googleapis.com" ` ` This response indicates
19388
+ # that the pubsub.googleapis.com API is not enabled. Example of an error that is
19389
+ # returned when attempting to create a Spanner instance in a region that is out
19390
+ # of stock: ` "reason": "STOCKOUT" "domain": "spanner.googleapis.com", "metadata"
19391
+ # : ` "availableRegions": "us-central1,us-east2" ` `
19392
+ # Corresponds to the JSON property `errorInfo`
19393
+ # @return [Google::Apis::ComputeBeta::ErrorInfo]
19394
+ attr_accessor :error_info
19395
+
19396
+ # Provides links to documentation or for performing an out of band action. For
19397
+ # example, if a quota check failed with an error indicating the calling project
19398
+ # hasn't enabled the accessed service, this can contain a URL pointing directly
19399
+ # to the right place in the developer console to flip the bit.
19400
+ # Corresponds to the JSON property `help`
19401
+ # @return [Google::Apis::ComputeBeta::Help]
19402
+ attr_accessor :help
19403
+
19404
+ # Provides a localized error message that is safe to return to the user which
19405
+ # can be attached to an RPC error.
19406
+ # Corresponds to the JSON property `localizedMessage`
19407
+ # @return [Google::Apis::ComputeBeta::LocalizedMessage]
19408
+ attr_accessor :localized_message
19409
+
19410
+ # Additional details for quota exceeded error for resource quota.
19411
+ # Corresponds to the JSON property `quotaInfo`
19412
+ # @return [Google::Apis::ComputeBeta::QuotaExceededInfo]
19413
+ attr_accessor :quota_info
19414
+
19415
+ def initialize(**args)
19416
+ update!(**args)
19417
+ end
19418
+
19419
+ # Update properties of this object
19420
+ def update!(**args)
19421
+ @error_info = args[:error_info] if args.key?(:error_info)
19422
+ @help = args[:help] if args.key?(:help)
19423
+ @localized_message = args[:localized_message] if args.key?(:localized_message)
19424
+ @quota_info = args[:quota_info] if args.key?(:quota_info)
19425
+ end
19426
+ end
19427
+ end
19428
+ end
19429
+ end
19430
+
19076
19431
  #
19077
19432
  class InstanceGroupManagerStatusStateful
19078
19433
  include Google::Apis::Core::Hashable
@@ -19161,6 +19516,26 @@ module Google
19161
19516
  end
19162
19517
  end
19163
19518
 
19519
+ #
19520
+ class InstanceGroupManagerTargetSizePolicy
19521
+ include Google::Apis::Core::Hashable
19522
+
19523
+ # The mode of target size policy based on which the MIG creates its VMs
19524
+ # individually or all at once.
19525
+ # Corresponds to the JSON property `mode`
19526
+ # @return [String]
19527
+ attr_accessor :mode
19528
+
19529
+ def initialize(**args)
19530
+ update!(**args)
19531
+ end
19532
+
19533
+ # Update properties of this object
19534
+ def update!(**args)
19535
+ @mode = args[:mode] if args.key?(:mode)
19536
+ end
19537
+ end
19538
+
19164
19539
  #
19165
19540
  class InstanceGroupManagerUpdatePolicy
19166
19541
  include Google::Apis::Core::Hashable
@@ -22564,6 +22939,12 @@ module Google
22564
22939
  # @return [Array<String>]
22565
22940
  attr_accessor :interconnect_attachments
22566
22941
 
22942
+ # [Output Only] URLs of InterconnectGroups that include this Interconnect. Order
22943
+ # is arbitrary and items are unique.
22944
+ # Corresponds to the JSON property `interconnectGroups`
22945
+ # @return [Array<String>]
22946
+ attr_accessor :interconnect_groups
22947
+
22567
22948
  # Type of interconnect, which can take one of the following values: - PARTNER: A
22568
22949
  # partner-managed interconnection shared between customers though a partner. -
22569
22950
  # DEDICATED: A dedicated physical interconnection with the customer. Note that a
@@ -22739,6 +23120,7 @@ module Google
22739
23120
  @google_reference_id = args[:google_reference_id] if args.key?(:google_reference_id)
22740
23121
  @id = args[:id] if args.key?(:id)
22741
23122
  @interconnect_attachments = args[:interconnect_attachments] if args.key?(:interconnect_attachments)
23123
+ @interconnect_groups = args[:interconnect_groups] if args.key?(:interconnect_groups)
22742
23124
  @interconnect_type = args[:interconnect_type] if args.key?(:interconnect_type)
22743
23125
  @kind = args[:kind] if args.key?(:kind)
22744
23126
  @label_fingerprint = args[:label_fingerprint] if args.key?(:label_fingerprint)
@@ -22874,6 +23256,11 @@ module Google
22874
23256
  attr_accessor :admin_enabled
22875
23257
  alias_method :admin_enabled?, :admin_enabled
22876
23258
 
23259
+ # [Output Only] URL of the AttachmentGroup that includes this Attachment.
23260
+ # Corresponds to the JSON property `attachmentGroup`
23261
+ # @return [String]
23262
+ attr_accessor :attachment_group
23263
+
22877
23264
  # Provisioned bandwidth capacity for the interconnect attachment. For
22878
23265
  # attachments of type DEDICATED, the user can set the bandwidth. For attachments
22879
23266
  # of type PARTNER, the Google Partner that is operating the interconnect must
@@ -22887,6 +23274,38 @@ module Google
22887
23274
  # @return [String]
22888
23275
  attr_accessor :bandwidth
22889
23276
 
23277
+ # Single IPv4 address + prefix length to be configured on the cloud router
23278
+ # interface for this interconnect attachment. - Both
23279
+ # candidate_cloud_router_ip_address and candidate_customer_router_ip_address
23280
+ # fields must be set or both must be unset. - Prefix length of both
23281
+ # candidate_cloud_router_ip_address and candidate_customer_router_ip_address
23282
+ # must be the same. - Max prefix length is 31.
23283
+ # Corresponds to the JSON property `candidateCloudRouterIpAddress`
23284
+ # @return [String]
23285
+ attr_accessor :candidate_cloud_router_ip_address
23286
+
23287
+ # Single IPv6 address + prefix length to be configured on the cloud router
23288
+ # interface for this interconnect attachment. - Both
23289
+ # candidate_cloud_router_ipv6_address and candidate_customer_router_ipv6_address
23290
+ # fields must be set or both must be unset. - Prefix length of both
23291
+ # candidate_cloud_router_ipv6_address and candidate_customer_router_ipv6_address
23292
+ # must be the same. - Max prefix length is 126.
23293
+ # Corresponds to the JSON property `candidateCloudRouterIpv6Address`
23294
+ # @return [String]
23295
+ attr_accessor :candidate_cloud_router_ipv6_address
23296
+
23297
+ # Single IPv4 address + prefix length to be configured on the customer router
23298
+ # interface for this interconnect attachment.
23299
+ # Corresponds to the JSON property `candidateCustomerRouterIpAddress`
23300
+ # @return [String]
23301
+ attr_accessor :candidate_customer_router_ip_address
23302
+
23303
+ # Single IPv6 address + prefix length to be configured on the customer router
23304
+ # interface for this interconnect attachment.
23305
+ # Corresponds to the JSON property `candidateCustomerRouterIpv6Address`
23306
+ # @return [String]
23307
+ attr_accessor :candidate_customer_router_ipv6_address
23308
+
22890
23309
  # This field is not available.
22891
23310
  # Corresponds to the JSON property `candidateIpv6Subnets`
22892
23311
  # @return [Array<String>]
@@ -23047,8 +23466,8 @@ module Google
23047
23466
  attr_accessor :labels
23048
23467
 
23049
23468
  # Maximum Transmission Unit (MTU), in bytes, of packets passing through this
23050
- # interconnect attachment. Only 1440 and 1500 are allowed. If not specified, the
23051
- # value will default to 1440.
23469
+ # interconnect attachment. Valid values are 1440, 1460, 1500, and 8896. If not
23470
+ # specified, the value will default to 1440.
23052
23471
  # Corresponds to the JSON property `mtu`
23053
23472
  # @return [Fixnum]
23054
23473
  attr_accessor :mtu
@@ -23194,7 +23613,12 @@ module Google
23194
23613
  # Update properties of this object
23195
23614
  def update!(**args)
23196
23615
  @admin_enabled = args[:admin_enabled] if args.key?(:admin_enabled)
23616
+ @attachment_group = args[:attachment_group] if args.key?(:attachment_group)
23197
23617
  @bandwidth = args[:bandwidth] if args.key?(:bandwidth)
23618
+ @candidate_cloud_router_ip_address = args[:candidate_cloud_router_ip_address] if args.key?(:candidate_cloud_router_ip_address)
23619
+ @candidate_cloud_router_ipv6_address = args[:candidate_cloud_router_ipv6_address] if args.key?(:candidate_cloud_router_ipv6_address)
23620
+ @candidate_customer_router_ip_address = args[:candidate_customer_router_ip_address] if args.key?(:candidate_customer_router_ip_address)
23621
+ @candidate_customer_router_ipv6_address = args[:candidate_customer_router_ipv6_address] if args.key?(:candidate_customer_router_ipv6_address)
23198
23622
  @candidate_ipv6_subnets = args[:candidate_ipv6_subnets] if args.key?(:candidate_ipv6_subnets)
23199
23623
  @candidate_subnets = args[:candidate_subnets] if args.key?(:candidate_subnets)
23200
23624
  @cloud_router_ip_address = args[:cloud_router_ip_address] if args.key?(:cloud_router_ip_address)
@@ -23423,22 +23847,432 @@ module Google
23423
23847
  end
23424
23848
  end
23425
23849
 
23426
- # Response to the list request, and contains a list of interconnect attachments.
23427
- class InterconnectAttachmentList
23850
+ # An interconnect attachment group resource allows customers to create, analyze,
23851
+ # and expand highly available deployments.
23852
+ class InterconnectAttachmentGroup
23853
+ include Google::Apis::Core::Hashable
23854
+
23855
+ # Attachments in the AttachmentGroup. Keys are arbitrary user-specified strings.
23856
+ # Users are encouraged, but not required, to use their preferred format for
23857
+ # resource links as keys. Note that there are add-members and remove-members
23858
+ # methods in gcloud. The size of this map is limited by an "Attachments per
23859
+ # group" quota.
23860
+ # Corresponds to the JSON property `attachments`
23861
+ # @return [Hash<String,Google::Apis::ComputeBeta::InterconnectAttachmentGroupAttachment>]
23862
+ attr_accessor :attachments
23863
+
23864
+ # [Output Only] The redundancy this group is configured to support. The way a
23865
+ # user queries what SLA their Attachment gets is by looking at this field of the
23866
+ # Attachment's AttachmentGroup.
23867
+ # Corresponds to the JSON property `configured`
23868
+ # @return [Google::Apis::ComputeBeta::InterconnectAttachmentGroupConfigured]
23869
+ attr_accessor :configured
23870
+
23871
+ # [Output Only] Creation timestamp in RFC3339 text format.
23872
+ # Corresponds to the JSON property `creationTimestamp`
23873
+ # @return [String]
23874
+ attr_accessor :creation_timestamp
23875
+
23876
+ # An optional description of this resource. Provide this property when you
23877
+ # create the resource.
23878
+ # Corresponds to the JSON property `description`
23879
+ # @return [String]
23880
+ attr_accessor :description
23881
+
23882
+ # Opaque system-generated token that uniquely identifies the configuration. If
23883
+ # provided when patching a configuration in update mode, the provided token must
23884
+ # match the current token or the update is rejected. This provides a reliable
23885
+ # means of doing read-modify-write (optimistic locking) as described by AIP 154.
23886
+ # Corresponds to the JSON property `etag`
23887
+ # @return [String]
23888
+ attr_accessor :etag
23889
+
23890
+ # [Output Only] The unique identifier for the resource type. The server
23891
+ # generates this identifier.
23892
+ # Corresponds to the JSON property `id`
23893
+ # @return [Fixnum]
23894
+ attr_accessor :id
23895
+
23896
+ # The user's intent for this AttachmentGroup. This is the only required field
23897
+ # besides the name that must be specified on group creation.
23898
+ # Corresponds to the JSON property `intent`
23899
+ # @return [Google::Apis::ComputeBeta::InterconnectAttachmentGroupIntent]
23900
+ attr_accessor :intent
23901
+
23902
+ # The URL of an InterconnectGroup that groups these Attachments' Interconnects.
23903
+ # Customers do not need to set this unless directed by Google Support.
23904
+ # Corresponds to the JSON property `interconnectGroup`
23905
+ # @return [String]
23906
+ attr_accessor :interconnect_group
23907
+
23908
+ # [Output Only] Type of the resource. Always compute#interconnectAttachmentGroup.
23909
+ # Corresponds to the JSON property `kind`
23910
+ # @return [String]
23911
+ attr_accessor :kind
23912
+
23913
+ # [Output Only] An analysis of the logical layout of Attachments in this group.
23914
+ # Every Attachment in the group is shown once in this structure.
23915
+ # Corresponds to the JSON property `logicalStructure`
23916
+ # @return [Google::Apis::ComputeBeta::InterconnectAttachmentGroupLogicalStructure]
23917
+ attr_accessor :logical_structure
23918
+
23919
+ # Name of the resource. Provided by the client when the resource is created. The
23920
+ # name must be 1-63 characters long, and comply with RFC1035. Specifically, the
23921
+ # name must be 1-63 characters long and match the regular expression `[a-z]([-a-
23922
+ # z0-9]*[a-z0-9])?` which means the first character must be a lowercase letter,
23923
+ # and all following characters must be a dash, lowercase letter, or digit,
23924
+ # except the last character, which cannot be a dash.
23925
+ # Corresponds to the JSON property `name`
23926
+ # @return [String]
23927
+ attr_accessor :name
23928
+
23929
+ # [Output Only] Server-defined URL for the resource.
23930
+ # Corresponds to the JSON property `selfLink`
23931
+ # @return [String]
23932
+ attr_accessor :self_link
23933
+
23934
+ def initialize(**args)
23935
+ update!(**args)
23936
+ end
23937
+
23938
+ # Update properties of this object
23939
+ def update!(**args)
23940
+ @attachments = args[:attachments] if args.key?(:attachments)
23941
+ @configured = args[:configured] if args.key?(:configured)
23942
+ @creation_timestamp = args[:creation_timestamp] if args.key?(:creation_timestamp)
23943
+ @description = args[:description] if args.key?(:description)
23944
+ @etag = args[:etag] if args.key?(:etag)
23945
+ @id = args[:id] if args.key?(:id)
23946
+ @intent = args[:intent] if args.key?(:intent)
23947
+ @interconnect_group = args[:interconnect_group] if args.key?(:interconnect_group)
23948
+ @kind = args[:kind] if args.key?(:kind)
23949
+ @logical_structure = args[:logical_structure] if args.key?(:logical_structure)
23950
+ @name = args[:name] if args.key?(:name)
23951
+ @self_link = args[:self_link] if args.key?(:self_link)
23952
+ end
23953
+ end
23954
+
23955
+ # An Attachment in this AttachmentGroup.
23956
+ class InterconnectAttachmentGroupAttachment
23957
+ include Google::Apis::Core::Hashable
23958
+
23959
+ #
23960
+ # Corresponds to the JSON property `attachment`
23961
+ # @return [String]
23962
+ attr_accessor :attachment
23963
+
23964
+ def initialize(**args)
23965
+ update!(**args)
23966
+ end
23967
+
23968
+ # Update properties of this object
23969
+ def update!(**args)
23970
+ @attachment = args[:attachment] if args.key?(:attachment)
23971
+ end
23972
+ end
23973
+
23974
+ # [Output Only] The redundancy this group is configured to support. The way a
23975
+ # user queries what SLA their Attachment gets is by looking at this field of the
23976
+ # Attachment's AttachmentGroup.
23977
+ class InterconnectAttachmentGroupConfigured
23978
+ include Google::Apis::Core::Hashable
23979
+
23980
+ # [Output Only] Which SLA this group is configured to support, and why this
23981
+ # group does or does not meet that SLA's requirements.
23982
+ # Corresponds to the JSON property `availabilitySla`
23983
+ # @return [Google::Apis::ComputeBeta::InterconnectAttachmentGroupConfiguredAvailabilitySla]
23984
+ attr_accessor :availability_sla
23985
+
23986
+ def initialize(**args)
23987
+ update!(**args)
23988
+ end
23989
+
23990
+ # Update properties of this object
23991
+ def update!(**args)
23992
+ @availability_sla = args[:availability_sla] if args.key?(:availability_sla)
23993
+ end
23994
+ end
23995
+
23996
+ # [Output Only] Which SLA this group is configured to support, and why this
23997
+ # group does or does not meet that SLA's requirements.
23998
+ class InterconnectAttachmentGroupConfiguredAvailabilitySla
23999
+ include Google::Apis::Core::Hashable
24000
+
24001
+ #
24002
+ # Corresponds to the JSON property `effectiveSla`
24003
+ # @return [String]
24004
+ attr_accessor :effective_sla
24005
+
24006
+ #
24007
+ # Corresponds to the JSON property `intendedSlaBlockers`
24008
+ # @return [Array<Google::Apis::ComputeBeta::InterconnectAttachmentGroupConfiguredAvailabilitySlaIntendedSlaBlockers>]
24009
+ attr_accessor :intended_sla_blockers
24010
+
24011
+ def initialize(**args)
24012
+ update!(**args)
24013
+ end
24014
+
24015
+ # Update properties of this object
24016
+ def update!(**args)
24017
+ @effective_sla = args[:effective_sla] if args.key?(:effective_sla)
24018
+ @intended_sla_blockers = args[:intended_sla_blockers] if args.key?(:intended_sla_blockers)
24019
+ end
24020
+ end
24021
+
24022
+ # [Output Only] Reasons why configuration.availabilitySLA.sla differs from
24023
+ # intent.availabilitySLA. This list is empty if and only if those are the same.
24024
+ class InterconnectAttachmentGroupConfiguredAvailabilitySlaIntendedSlaBlockers
24025
+ include Google::Apis::Core::Hashable
24026
+
24027
+ # [Output Only] URLs of any particular Attachments to explain this blocker in
24028
+ # more detail.
24029
+ # Corresponds to the JSON property `attachments`
24030
+ # @return [Array<String>]
24031
+ attr_accessor :attachments
24032
+
24033
+ #
24034
+ # Corresponds to the JSON property `blockerType`
24035
+ # @return [String]
24036
+ attr_accessor :blocker_type
24037
+
24038
+ # [Output Only] The url of Google Cloud public documentation explaining this
24039
+ # requirement. This is set for every type of requirement.
24040
+ # Corresponds to the JSON property `documentationLink`
24041
+ # @return [String]
24042
+ attr_accessor :documentation_link
24043
+
24044
+ # [Output Only] A human-readable explanation of this requirement and why it's
24045
+ # not met. This is set for every type of requirement.
24046
+ # Corresponds to the JSON property `explanation`
24047
+ # @return [String]
24048
+ attr_accessor :explanation
24049
+
24050
+ # [Output Only] Metros used to explain this blocker in more detail. These are
24051
+ # three-letter lowercase strings like "iad". This will be set for some blockers (
24052
+ # like NO_ATTACHMENTS_IN_METRO_AND_ZONE) but does not apply to others.
24053
+ # Corresponds to the JSON property `metros`
24054
+ # @return [Array<String>]
24055
+ attr_accessor :metros
24056
+
24057
+ # [Output Only] Regions used to explain this blocker in more detail. These are
24058
+ # region names formatted like "us-central1". This will be set for some blockers (
24059
+ # like INCOMPATIBLE_REGIONS) but does not apply to others.
24060
+ # Corresponds to the JSON property `regions`
24061
+ # @return [Array<String>]
24062
+ attr_accessor :regions
24063
+
24064
+ # [Output Only] Zones used to explain this blocker in more detail. Format is "
24065
+ # zone1" and/or "zone2". This will be set for some blockers (like MISSING_ZONE)
24066
+ # but does not apply to others.
24067
+ # Corresponds to the JSON property `zones`
24068
+ # @return [Array<String>]
24069
+ attr_accessor :zones
24070
+
24071
+ def initialize(**args)
24072
+ update!(**args)
24073
+ end
24074
+
24075
+ # Update properties of this object
24076
+ def update!(**args)
24077
+ @attachments = args[:attachments] if args.key?(:attachments)
24078
+ @blocker_type = args[:blocker_type] if args.key?(:blocker_type)
24079
+ @documentation_link = args[:documentation_link] if args.key?(:documentation_link)
24080
+ @explanation = args[:explanation] if args.key?(:explanation)
24081
+ @metros = args[:metros] if args.key?(:metros)
24082
+ @regions = args[:regions] if args.key?(:regions)
24083
+ @zones = args[:zones] if args.key?(:zones)
24084
+ end
24085
+ end
24086
+
24087
+ # The user's intent for this AttachmentGroup. This is the only required field
24088
+ # besides the name that must be specified on group creation.
24089
+ class InterconnectAttachmentGroupIntent
24090
+ include Google::Apis::Core::Hashable
24091
+
24092
+ #
24093
+ # Corresponds to the JSON property `availabilitySla`
24094
+ # @return [String]
24095
+ attr_accessor :availability_sla
24096
+
24097
+ def initialize(**args)
24098
+ update!(**args)
24099
+ end
24100
+
24101
+ # Update properties of this object
24102
+ def update!(**args)
24103
+ @availability_sla = args[:availability_sla] if args.key?(:availability_sla)
24104
+ end
24105
+ end
24106
+
24107
+ # [Output Only] An analysis of the logical layout of Attachments in this group.
24108
+ # Every Attachment in the group is shown once in this structure.
24109
+ class InterconnectAttachmentGroupLogicalStructure
24110
+ include Google::Apis::Core::Hashable
24111
+
24112
+ #
24113
+ # Corresponds to the JSON property `regions`
24114
+ # @return [Array<Google::Apis::ComputeBeta::InterconnectAttachmentGroupLogicalStructureRegion>]
24115
+ attr_accessor :regions
24116
+
24117
+ def initialize(**args)
24118
+ update!(**args)
24119
+ end
24120
+
24121
+ # Update properties of this object
24122
+ def update!(**args)
24123
+ @regions = args[:regions] if args.key?(:regions)
24124
+ end
24125
+ end
24126
+
24127
+ # [Output Only] The regions Attachments in this group are in.
24128
+ class InterconnectAttachmentGroupLogicalStructureRegion
24129
+ include Google::Apis::Core::Hashable
24130
+
24131
+ #
24132
+ # Corresponds to the JSON property `metros`
24133
+ # @return [Array<Google::Apis::ComputeBeta::InterconnectAttachmentGroupLogicalStructureRegionMetro>]
24134
+ attr_accessor :metros
24135
+
24136
+ # [Output Only] The name of a region, like "us-central1".
24137
+ # Corresponds to the JSON property `region`
24138
+ # @return [String]
24139
+ attr_accessor :region
24140
+
24141
+ def initialize(**args)
24142
+ update!(**args)
24143
+ end
24144
+
24145
+ # Update properties of this object
24146
+ def update!(**args)
24147
+ @metros = args[:metros] if args.key?(:metros)
24148
+ @region = args[:region] if args.key?(:region)
24149
+ end
24150
+ end
24151
+
24152
+ # [Output Only] The metros of Attachments in this group in this region.
24153
+ class InterconnectAttachmentGroupLogicalStructureRegionMetro
24154
+ include Google::Apis::Core::Hashable
24155
+
24156
+ #
24157
+ # Corresponds to the JSON property `facilities`
24158
+ # @return [Array<Google::Apis::ComputeBeta::InterconnectAttachmentGroupLogicalStructureRegionMetroFacility>]
24159
+ attr_accessor :facilities
24160
+
24161
+ # [Output Only] The name of the metro, as a three-letter lowercase string like "
24162
+ # iad". This is the first component of the location of an Interconnect.
24163
+ # Corresponds to the JSON property `metro`
24164
+ # @return [String]
24165
+ attr_accessor :metro
24166
+
24167
+ def initialize(**args)
24168
+ update!(**args)
24169
+ end
24170
+
24171
+ # Update properties of this object
24172
+ def update!(**args)
24173
+ @facilities = args[:facilities] if args.key?(:facilities)
24174
+ @metro = args[:metro] if args.key?(:metro)
24175
+ end
24176
+ end
24177
+
24178
+ # [Output Only] The facilities used for this group's Attachments' Interconnects.
24179
+ class InterconnectAttachmentGroupLogicalStructureRegionMetroFacility
24180
+ include Google::Apis::Core::Hashable
24181
+
24182
+ # [Output Only] The name of a facility, like "iad-1234".
24183
+ # Corresponds to the JSON property `facility`
24184
+ # @return [String]
24185
+ attr_accessor :facility
24186
+
24187
+ #
24188
+ # Corresponds to the JSON property `zones`
24189
+ # @return [Array<Google::Apis::ComputeBeta::InterconnectAttachmentGroupLogicalStructureRegionMetroFacilityZone>]
24190
+ attr_accessor :zones
24191
+
24192
+ def initialize(**args)
24193
+ update!(**args)
24194
+ end
24195
+
24196
+ # Update properties of this object
24197
+ def update!(**args)
24198
+ @facility = args[:facility] if args.key?(:facility)
24199
+ @zones = args[:zones] if args.key?(:zones)
24200
+ end
24201
+ end
24202
+
24203
+ # [Output Only] The zones that Attachments in this group are present in, in the
24204
+ # given facilities. This is inherited from their Interconnects.
24205
+ class InterconnectAttachmentGroupLogicalStructureRegionMetroFacilityZone
24206
+ include Google::Apis::Core::Hashable
24207
+
24208
+ # [Output Only] URLs of Attachments in the given zone, to the given region, on
24209
+ # Interconnects in the given facility and metro. Every Attachment in the AG has
24210
+ # such an entry.
24211
+ # Corresponds to the JSON property `attachments`
24212
+ # @return [Array<String>]
24213
+ attr_accessor :attachments
24214
+
24215
+ # [Output Only] The name of a zone, either "zone1" or "zone2".
24216
+ # Corresponds to the JSON property `zone`
24217
+ # @return [String]
24218
+ attr_accessor :zone
24219
+
24220
+ def initialize(**args)
24221
+ update!(**args)
24222
+ end
24223
+
24224
+ # Update properties of this object
24225
+ def update!(**args)
24226
+ @attachments = args[:attachments] if args.key?(:attachments)
24227
+ @zone = args[:zone] if args.key?(:zone)
24228
+ end
24229
+ end
24230
+
24231
+ # Response for the InterconnectAttachmentGroupsGetOperationalStatusResponse.
24232
+ class InterconnectAttachmentGroupsGetOperationalStatusResponse
24233
+ include Google::Apis::Core::Hashable
24234
+
24235
+ #
24236
+ # Corresponds to the JSON property `etag`
24237
+ # @return [String]
24238
+ attr_accessor :etag
24239
+
24240
+ #
24241
+ # Corresponds to the JSON property `result`
24242
+ # @return [Google::Apis::ComputeBeta::InterconnectAttachmentGroupsOperationalStatus]
24243
+ attr_accessor :result
24244
+
24245
+ def initialize(**args)
24246
+ update!(**args)
24247
+ end
24248
+
24249
+ # Update properties of this object
24250
+ def update!(**args)
24251
+ @etag = args[:etag] if args.key?(:etag)
24252
+ @result = args[:result] if args.key?(:result)
24253
+ end
24254
+ end
24255
+
24256
+ #
24257
+ class InterconnectAttachmentGroupsListResponse
23428
24258
  include Google::Apis::Core::Hashable
23429
24259
 
24260
+ #
24261
+ # Corresponds to the JSON property `etag`
24262
+ # @return [String]
24263
+ attr_accessor :etag
24264
+
23430
24265
  # [Output Only] Unique identifier for the resource; defined by the server.
23431
24266
  # Corresponds to the JSON property `id`
23432
24267
  # @return [String]
23433
24268
  attr_accessor :id
23434
24269
 
23435
- # A list of InterconnectAttachment resources.
24270
+ # A list of InterconnectAttachmentGroup resources.
23436
24271
  # Corresponds to the JSON property `items`
23437
- # @return [Array<Google::Apis::ComputeBeta::InterconnectAttachment>]
24272
+ # @return [Array<Google::Apis::ComputeBeta::InterconnectAttachmentGroup>]
23438
24273
  attr_accessor :items
23439
24274
 
23440
- # [Output Only] Type of resource. Always compute#interconnectAttachmentList for
23441
- # lists of interconnect attachments.
24275
+ #
23442
24276
  # Corresponds to the JSON property `kind`
23443
24277
  # @return [String]
23444
24278
  attr_accessor :kind
@@ -23457,9 +24291,15 @@ module Google
23457
24291
  # @return [String]
23458
24292
  attr_accessor :self_link
23459
24293
 
24294
+ # [Output Only] Unreachable resources. end_interface:
24295
+ # MixerListResponseWithEtagBuilder
24296
+ # Corresponds to the JSON property `unreachables`
24297
+ # @return [Array<String>]
24298
+ attr_accessor :unreachables
24299
+
23460
24300
  # [Output Only] Informational warning message.
23461
24301
  # Corresponds to the JSON property `warning`
23462
- # @return [Google::Apis::ComputeBeta::InterconnectAttachmentList::Warning]
24302
+ # @return [Google::Apis::ComputeBeta::InterconnectAttachmentGroupsListResponse::Warning]
23463
24303
  attr_accessor :warning
23464
24304
 
23465
24305
  def initialize(**args)
@@ -23468,11 +24308,13 @@ module Google
23468
24308
 
23469
24309
  # Update properties of this object
23470
24310
  def update!(**args)
24311
+ @etag = args[:etag] if args.key?(:etag)
23471
24312
  @id = args[:id] if args.key?(:id)
23472
24313
  @items = args[:items] if args.key?(:items)
23473
24314
  @kind = args[:kind] if args.key?(:kind)
23474
24315
  @next_page_token = args[:next_page_token] if args.key?(:next_page_token)
23475
24316
  @self_link = args[:self_link] if args.key?(:self_link)
24317
+ @unreachables = args[:unreachables] if args.key?(:unreachables)
23476
24318
  @warning = args[:warning] if args.key?(:warning)
23477
24319
  end
23478
24320
 
@@ -23489,7 +24331,217 @@ module Google
23489
24331
  # [Output Only] Metadata about this warning in key: value format. For example: "
23490
24332
  # data": [ ` "key": "scope", "value": "zones/us-east1-d" `
23491
24333
  # Corresponds to the JSON property `data`
23492
- # @return [Array<Google::Apis::ComputeBeta::InterconnectAttachmentList::Warning::Datum>]
24334
+ # @return [Array<Google::Apis::ComputeBeta::InterconnectAttachmentGroupsListResponse::Warning::Datum>]
24335
+ attr_accessor :data
24336
+
24337
+ # [Output Only] A human-readable description of the warning code.
24338
+ # Corresponds to the JSON property `message`
24339
+ # @return [String]
24340
+ attr_accessor :message
24341
+
24342
+ def initialize(**args)
24343
+ update!(**args)
24344
+ end
24345
+
24346
+ # Update properties of this object
24347
+ def update!(**args)
24348
+ @code = args[:code] if args.key?(:code)
24349
+ @data = args[:data] if args.key?(:data)
24350
+ @message = args[:message] if args.key?(:message)
24351
+ end
24352
+
24353
+ #
24354
+ class Datum
24355
+ include Google::Apis::Core::Hashable
24356
+
24357
+ # [Output Only] A key that provides more detail on the warning being returned.
24358
+ # For example, for warnings where there are no results in a list request for a
24359
+ # particular zone, this key might be scope and the key value might be the zone
24360
+ # name. Other examples might be a key indicating a deprecated resource and a
24361
+ # suggested replacement, or a warning about invalid network settings (for
24362
+ # example, if an instance attempts to perform IP forwarding but is not enabled
24363
+ # for IP forwarding).
24364
+ # Corresponds to the JSON property `key`
24365
+ # @return [String]
24366
+ attr_accessor :key
24367
+
24368
+ # [Output Only] A warning data value corresponding to the key.
24369
+ # Corresponds to the JSON property `value`
24370
+ # @return [String]
24371
+ attr_accessor :value
24372
+
24373
+ def initialize(**args)
24374
+ update!(**args)
24375
+ end
24376
+
24377
+ # Update properties of this object
24378
+ def update!(**args)
24379
+ @key = args[:key] if args.key?(:key)
24380
+ @value = args[:value] if args.key?(:value)
24381
+ end
24382
+ end
24383
+ end
24384
+ end
24385
+
24386
+ #
24387
+ class InterconnectAttachmentGroupsOperationalStatus
24388
+ include Google::Apis::Core::Hashable
24389
+
24390
+ #
24391
+ # Corresponds to the JSON property `attachmentStatuses`
24392
+ # @return [Array<Google::Apis::ComputeBeta::InterconnectAttachmentGroupsOperationalStatusAttachmentStatus>]
24393
+ attr_accessor :attachment_statuses
24394
+
24395
+ # [Output Only] The redundancy this group is configured to support. The way a
24396
+ # user queries what SLA their Attachment gets is by looking at this field of the
24397
+ # Attachment's AttachmentGroup.
24398
+ # Corresponds to the JSON property `configured`
24399
+ # @return [Google::Apis::ComputeBeta::InterconnectAttachmentGroupConfigured]
24400
+ attr_accessor :configured
24401
+
24402
+ # Summarizes the status of the group.
24403
+ # Corresponds to the JSON property `groupStatus`
24404
+ # @return [String]
24405
+ attr_accessor :group_status
24406
+
24407
+ # The user's intent for this AttachmentGroup. This is the only required field
24408
+ # besides the name that must be specified on group creation.
24409
+ # Corresponds to the JSON property `intent`
24410
+ # @return [Google::Apis::ComputeBeta::InterconnectAttachmentGroupIntent]
24411
+ attr_accessor :intent
24412
+
24413
+ # [Output Only] The redundancy this group is configured to support. The way a
24414
+ # user queries what SLA their Attachment gets is by looking at this field of the
24415
+ # Attachment's AttachmentGroup.
24416
+ # Corresponds to the JSON property `operational`
24417
+ # @return [Google::Apis::ComputeBeta::InterconnectAttachmentGroupConfigured]
24418
+ attr_accessor :operational
24419
+
24420
+ def initialize(**args)
24421
+ update!(**args)
24422
+ end
24423
+
24424
+ # Update properties of this object
24425
+ def update!(**args)
24426
+ @attachment_statuses = args[:attachment_statuses] if args.key?(:attachment_statuses)
24427
+ @configured = args[:configured] if args.key?(:configured)
24428
+ @group_status = args[:group_status] if args.key?(:group_status)
24429
+ @intent = args[:intent] if args.key?(:intent)
24430
+ @operational = args[:operational] if args.key?(:operational)
24431
+ end
24432
+ end
24433
+
24434
+ # The status of one Attachment in the group. List order is arbitrary.
24435
+ class InterconnectAttachmentGroupsOperationalStatusAttachmentStatus
24436
+ include Google::Apis::Core::Hashable
24437
+
24438
+ # Whether this Attachment is enabled. This becomes false when the customer
24439
+ # drains their Attachment.
24440
+ # Corresponds to the JSON property `adminEnabled`
24441
+ # @return [Boolean]
24442
+ attr_accessor :admin_enabled
24443
+ alias_method :admin_enabled?, :admin_enabled
24444
+
24445
+ # The URL of the Attachment being described.
24446
+ # Corresponds to the JSON property `attachment`
24447
+ # @return [String]
24448
+ attr_accessor :attachment
24449
+
24450
+ # Whether this Attachment is participating in the redundant configuration. This
24451
+ # will be ACTIVE if and only if the status below is CONNECTION_UP. Any INACTIVE
24452
+ # Attachments are excluded from the analysis that generates operational.
24453
+ # availabilitySLA.
24454
+ # Corresponds to the JSON property `isActive`
24455
+ # @return [String]
24456
+ attr_accessor :is_active
24457
+
24458
+ # Whether this Attachment is active, and if so, whether BGP is up. This is based
24459
+ # on the statuses available in the Pantheon UI here: http://google3/java/com/
24460
+ # google/cloud/boq/clientapi/gce/hybrid/api/interconnect_models.proto
24461
+ # Corresponds to the JSON property `status`
24462
+ # @return [String]
24463
+ attr_accessor :status
24464
+
24465
+ def initialize(**args)
24466
+ update!(**args)
24467
+ end
24468
+
24469
+ # Update properties of this object
24470
+ def update!(**args)
24471
+ @admin_enabled = args[:admin_enabled] if args.key?(:admin_enabled)
24472
+ @attachment = args[:attachment] if args.key?(:attachment)
24473
+ @is_active = args[:is_active] if args.key?(:is_active)
24474
+ @status = args[:status] if args.key?(:status)
24475
+ end
24476
+ end
24477
+
24478
+ # Response to the list request, and contains a list of interconnect attachments.
24479
+ class InterconnectAttachmentList
24480
+ include Google::Apis::Core::Hashable
24481
+
24482
+ # [Output Only] Unique identifier for the resource; defined by the server.
24483
+ # Corresponds to the JSON property `id`
24484
+ # @return [String]
24485
+ attr_accessor :id
24486
+
24487
+ # A list of InterconnectAttachment resources.
24488
+ # Corresponds to the JSON property `items`
24489
+ # @return [Array<Google::Apis::ComputeBeta::InterconnectAttachment>]
24490
+ attr_accessor :items
24491
+
24492
+ # [Output Only] Type of resource. Always compute#interconnectAttachmentList for
24493
+ # lists of interconnect attachments.
24494
+ # Corresponds to the JSON property `kind`
24495
+ # @return [String]
24496
+ attr_accessor :kind
24497
+
24498
+ # [Output Only] This token allows you to get the next page of results for list
24499
+ # requests. If the number of results is larger than maxResults, use the
24500
+ # nextPageToken as a value for the query parameter pageToken in the next list
24501
+ # request. Subsequent list requests will have their own nextPageToken to
24502
+ # continue paging through the results.
24503
+ # Corresponds to the JSON property `nextPageToken`
24504
+ # @return [String]
24505
+ attr_accessor :next_page_token
24506
+
24507
+ # [Output Only] Server-defined URL for this resource.
24508
+ # Corresponds to the JSON property `selfLink`
24509
+ # @return [String]
24510
+ attr_accessor :self_link
24511
+
24512
+ # [Output Only] Informational warning message.
24513
+ # Corresponds to the JSON property `warning`
24514
+ # @return [Google::Apis::ComputeBeta::InterconnectAttachmentList::Warning]
24515
+ attr_accessor :warning
24516
+
24517
+ def initialize(**args)
24518
+ update!(**args)
24519
+ end
24520
+
24521
+ # Update properties of this object
24522
+ def update!(**args)
24523
+ @id = args[:id] if args.key?(:id)
24524
+ @items = args[:items] if args.key?(:items)
24525
+ @kind = args[:kind] if args.key?(:kind)
24526
+ @next_page_token = args[:next_page_token] if args.key?(:next_page_token)
24527
+ @self_link = args[:self_link] if args.key?(:self_link)
24528
+ @warning = args[:warning] if args.key?(:warning)
24529
+ end
24530
+
24531
+ # [Output Only] Informational warning message.
24532
+ class Warning
24533
+ include Google::Apis::Core::Hashable
24534
+
24535
+ # [Output Only] A warning code, if applicable. For example, Compute Engine
24536
+ # returns NO_RESULTS_ON_PAGE if there are no results in the response.
24537
+ # Corresponds to the JSON property `code`
24538
+ # @return [String]
24539
+ attr_accessor :code
24540
+
24541
+ # [Output Only] Metadata about this warning in key: value format. For example: "
24542
+ # data": [ ` "key": "scope", "value": "zones/us-east1-d" `
24543
+ # Corresponds to the JSON property `data`
24544
+ # @return [Array<Google::Apis::ComputeBeta::InterconnectAttachmentList::Warning::Datum>]
23493
24545
  attr_accessor :data
23494
24546
 
23495
24547
  # [Output Only] A human-readable description of the warning code.
@@ -23691,168 +24743,971 @@ module Google
23691
24743
  end
23692
24744
  end
23693
24745
 
23694
- # Describes a single physical circuit between the Customer and Google.
23695
- # CircuitInfo objects are created by Google, so all fields are output only.
23696
- class InterconnectCircuitInfo
24746
+ # Describes a single physical circuit between the Customer and Google.
24747
+ # CircuitInfo objects are created by Google, so all fields are output only.
24748
+ class InterconnectCircuitInfo
24749
+ include Google::Apis::Core::Hashable
24750
+
24751
+ # Customer-side demarc ID for this circuit.
24752
+ # Corresponds to the JSON property `customerDemarcId`
24753
+ # @return [String]
24754
+ attr_accessor :customer_demarc_id
24755
+
24756
+ # Google-assigned unique ID for this circuit. Assigned at circuit turn-up.
24757
+ # Corresponds to the JSON property `googleCircuitId`
24758
+ # @return [String]
24759
+ attr_accessor :google_circuit_id
24760
+
24761
+ # Google-side demarc ID for this circuit. Assigned at circuit turn-up and
24762
+ # provided by Google to the customer in the LOA.
24763
+ # Corresponds to the JSON property `googleDemarcId`
24764
+ # @return [String]
24765
+ attr_accessor :google_demarc_id
24766
+
24767
+ def initialize(**args)
24768
+ update!(**args)
24769
+ end
24770
+
24771
+ # Update properties of this object
24772
+ def update!(**args)
24773
+ @customer_demarc_id = args[:customer_demarc_id] if args.key?(:customer_demarc_id)
24774
+ @google_circuit_id = args[:google_circuit_id] if args.key?(:google_circuit_id)
24775
+ @google_demarc_id = args[:google_demarc_id] if args.key?(:google_demarc_id)
24776
+ end
24777
+ end
24778
+
24779
+ # Diagnostics information about the Interconnect connection, which contains
24780
+ # detailed and current technical information about Google's side of the
24781
+ # connection.
24782
+ class InterconnectDiagnostics
24783
+ include Google::Apis::Core::Hashable
24784
+
24785
+ # A list of InterconnectDiagnostics.ARPEntry objects, describing individual
24786
+ # neighbors currently seen by the Google router in the ARP cache for the
24787
+ # Interconnect. This will be empty when the Interconnect is not bundled.
24788
+ # Corresponds to the JSON property `arpCaches`
24789
+ # @return [Array<Google::Apis::ComputeBeta::InterconnectDiagnosticsArpEntry>]
24790
+ attr_accessor :arp_caches
24791
+
24792
+ # The aggregation type of the bundle interface.
24793
+ # Corresponds to the JSON property `bundleAggregationType`
24794
+ # @return [String]
24795
+ attr_accessor :bundle_aggregation_type
24796
+
24797
+ # The operational status of the bundle interface.
24798
+ # Corresponds to the JSON property `bundleOperationalStatus`
24799
+ # @return [String]
24800
+ attr_accessor :bundle_operational_status
24801
+
24802
+ # A list of InterconnectDiagnostics.LinkStatus objects, describing the status
24803
+ # for each link on the Interconnect.
24804
+ # Corresponds to the JSON property `links`
24805
+ # @return [Array<Google::Apis::ComputeBeta::InterconnectDiagnosticsLinkStatus>]
24806
+ attr_accessor :links
24807
+
24808
+ # The MAC address of the Interconnect's bundle interface.
24809
+ # Corresponds to the JSON property `macAddress`
24810
+ # @return [String]
24811
+ attr_accessor :mac_address
24812
+
24813
+ def initialize(**args)
24814
+ update!(**args)
24815
+ end
24816
+
24817
+ # Update properties of this object
24818
+ def update!(**args)
24819
+ @arp_caches = args[:arp_caches] if args.key?(:arp_caches)
24820
+ @bundle_aggregation_type = args[:bundle_aggregation_type] if args.key?(:bundle_aggregation_type)
24821
+ @bundle_operational_status = args[:bundle_operational_status] if args.key?(:bundle_operational_status)
24822
+ @links = args[:links] if args.key?(:links)
24823
+ @mac_address = args[:mac_address] if args.key?(:mac_address)
24824
+ end
24825
+ end
24826
+
24827
+ # Describing the ARP neighbor entries seen on this link
24828
+ class InterconnectDiagnosticsArpEntry
24829
+ include Google::Apis::Core::Hashable
24830
+
24831
+ # The IP address of this ARP neighbor.
24832
+ # Corresponds to the JSON property `ipAddress`
24833
+ # @return [String]
24834
+ attr_accessor :ip_address
24835
+
24836
+ # The MAC address of this ARP neighbor.
24837
+ # Corresponds to the JSON property `macAddress`
24838
+ # @return [String]
24839
+ attr_accessor :mac_address
24840
+
24841
+ def initialize(**args)
24842
+ update!(**args)
24843
+ end
24844
+
24845
+ # Update properties of this object
24846
+ def update!(**args)
24847
+ @ip_address = args[:ip_address] if args.key?(:ip_address)
24848
+ @mac_address = args[:mac_address] if args.key?(:mac_address)
24849
+ end
24850
+ end
24851
+
24852
+ #
24853
+ class InterconnectDiagnosticsLinkLacpStatus
24854
+ include Google::Apis::Core::Hashable
24855
+
24856
+ # System ID of the port on Google's side of the LACP exchange.
24857
+ # Corresponds to the JSON property `googleSystemId`
24858
+ # @return [String]
24859
+ attr_accessor :google_system_id
24860
+
24861
+ # System ID of the port on the neighbor's side of the LACP exchange.
24862
+ # Corresponds to the JSON property `neighborSystemId`
24863
+ # @return [String]
24864
+ attr_accessor :neighbor_system_id
24865
+
24866
+ # The state of a LACP link, which can take one of the following values: - ACTIVE:
24867
+ # The link is configured and active within the bundle. - DETACHED: The link is
24868
+ # not configured within the bundle. This means that the rest of the object
24869
+ # should be empty.
24870
+ # Corresponds to the JSON property `state`
24871
+ # @return [String]
24872
+ attr_accessor :state
24873
+
24874
+ def initialize(**args)
24875
+ update!(**args)
24876
+ end
24877
+
24878
+ # Update properties of this object
24879
+ def update!(**args)
24880
+ @google_system_id = args[:google_system_id] if args.key?(:google_system_id)
24881
+ @neighbor_system_id = args[:neighbor_system_id] if args.key?(:neighbor_system_id)
24882
+ @state = args[:state] if args.key?(:state)
24883
+ end
24884
+ end
24885
+
24886
+ #
24887
+ class InterconnectDiagnosticsLinkOpticalPower
24888
+ include Google::Apis::Core::Hashable
24889
+
24890
+ # The status of the current value when compared to the warning and alarm levels
24891
+ # for the receiving or transmitting transceiver. Possible states include: - OK:
24892
+ # The value has not crossed a warning threshold. - LOW_WARNING: The value has
24893
+ # crossed below the low warning threshold. - HIGH_WARNING: The value has crossed
24894
+ # above the high warning threshold. - LOW_ALARM: The value has crossed below the
24895
+ # low alarm threshold. - HIGH_ALARM: The value has crossed above the high alarm
24896
+ # threshold.
24897
+ # Corresponds to the JSON property `state`
24898
+ # @return [String]
24899
+ attr_accessor :state
24900
+
24901
+ # Value of the current receiving or transmitting optical power, read in dBm.
24902
+ # Take a known good optical value, give it a 10% margin and trigger warnings
24903
+ # relative to that value. In general, a -7dBm warning and a -11dBm alarm are
24904
+ # good optical value estimates for most links.
24905
+ # Corresponds to the JSON property `value`
24906
+ # @return [Float]
24907
+ attr_accessor :value
24908
+
24909
+ def initialize(**args)
24910
+ update!(**args)
24911
+ end
24912
+
24913
+ # Update properties of this object
24914
+ def update!(**args)
24915
+ @state = args[:state] if args.key?(:state)
24916
+ @value = args[:value] if args.key?(:value)
24917
+ end
24918
+ end
24919
+
24920
+ #
24921
+ class InterconnectDiagnosticsLinkStatus
24922
+ include Google::Apis::Core::Hashable
24923
+
24924
+ # A list of InterconnectDiagnostics.ARPEntry objects, describing the ARP
24925
+ # neighbor entries seen on this link. This will be empty if the link is bundled
24926
+ # Corresponds to the JSON property `arpCaches`
24927
+ # @return [Array<Google::Apis::ComputeBeta::InterconnectDiagnosticsArpEntry>]
24928
+ attr_accessor :arp_caches
24929
+
24930
+ # The unique ID for this link assigned during turn up by Google.
24931
+ # Corresponds to the JSON property `circuitId`
24932
+ # @return [String]
24933
+ attr_accessor :circuit_id
24934
+
24935
+ # The Demarc address assigned by Google and provided in the LoA.
24936
+ # Corresponds to the JSON property `googleDemarc`
24937
+ # @return [String]
24938
+ attr_accessor :google_demarc
24939
+
24940
+ #
24941
+ # Corresponds to the JSON property `lacpStatus`
24942
+ # @return [Google::Apis::ComputeBeta::InterconnectDiagnosticsLinkLacpStatus]
24943
+ attr_accessor :lacp_status
24944
+
24945
+ # Describes the status of MACsec encryption on the link.
24946
+ # Corresponds to the JSON property `macsec`
24947
+ # @return [Google::Apis::ComputeBeta::InterconnectDiagnosticsMacsecStatus]
24948
+ attr_accessor :macsec
24949
+
24950
+ # The operational status of the link.
24951
+ # Corresponds to the JSON property `operationalStatus`
24952
+ # @return [String]
24953
+ attr_accessor :operational_status
24954
+
24955
+ # An InterconnectDiagnostics.LinkOpticalPower object, describing the current
24956
+ # value and status of the received light level.
24957
+ # Corresponds to the JSON property `receivingOpticalPower`
24958
+ # @return [Google::Apis::ComputeBeta::InterconnectDiagnosticsLinkOpticalPower]
24959
+ attr_accessor :receiving_optical_power
24960
+
24961
+ # An InterconnectDiagnostics.LinkOpticalPower object, describing the current
24962
+ # value and status of the transmitted light level.
24963
+ # Corresponds to the JSON property `transmittingOpticalPower`
24964
+ # @return [Google::Apis::ComputeBeta::InterconnectDiagnosticsLinkOpticalPower]
24965
+ attr_accessor :transmitting_optical_power
24966
+
24967
+ def initialize(**args)
24968
+ update!(**args)
24969
+ end
24970
+
24971
+ # Update properties of this object
24972
+ def update!(**args)
24973
+ @arp_caches = args[:arp_caches] if args.key?(:arp_caches)
24974
+ @circuit_id = args[:circuit_id] if args.key?(:circuit_id)
24975
+ @google_demarc = args[:google_demarc] if args.key?(:google_demarc)
24976
+ @lacp_status = args[:lacp_status] if args.key?(:lacp_status)
24977
+ @macsec = args[:macsec] if args.key?(:macsec)
24978
+ @operational_status = args[:operational_status] if args.key?(:operational_status)
24979
+ @receiving_optical_power = args[:receiving_optical_power] if args.key?(:receiving_optical_power)
24980
+ @transmitting_optical_power = args[:transmitting_optical_power] if args.key?(:transmitting_optical_power)
24981
+ end
24982
+ end
24983
+
24984
+ # Describes the status of MACsec encryption on the link.
24985
+ class InterconnectDiagnosticsMacsecStatus
24986
+ include Google::Apis::Core::Hashable
24987
+
24988
+ # Indicates the Connectivity Association Key Name (CKN) currently being used if
24989
+ # MACsec is operational.
24990
+ # Corresponds to the JSON property `ckn`
24991
+ # @return [String]
24992
+ attr_accessor :ckn
24993
+
24994
+ # Indicates whether or not MACsec is operational on this link.
24995
+ # Corresponds to the JSON property `operational`
24996
+ # @return [Boolean]
24997
+ attr_accessor :operational
24998
+ alias_method :operational?, :operational
24999
+
25000
+ def initialize(**args)
25001
+ update!(**args)
25002
+ end
25003
+
25004
+ # Update properties of this object
25005
+ def update!(**args)
25006
+ @ckn = args[:ckn] if args.key?(:ckn)
25007
+ @operational = args[:operational] if args.key?(:operational)
25008
+ end
25009
+ end
25010
+
25011
+ # An interconnect group resource allows customers to create, analyze, and expand
25012
+ # their redundant connections.
25013
+ class InterconnectGroup
25014
+ include Google::Apis::Core::Hashable
25015
+
25016
+ # [Output Only] The status of the group as configured. This has the same
25017
+ # structure as the operational field reported by the OperationalStatus method,
25018
+ # but does not take into account the operational status of each resource.
25019
+ # Corresponds to the JSON property `configured`
25020
+ # @return [Google::Apis::ComputeBeta::InterconnectGroupConfigured]
25021
+ attr_accessor :configured
25022
+
25023
+ # [Output Only] Creation timestamp in RFC3339 text format.
25024
+ # Corresponds to the JSON property `creationTimestamp`
25025
+ # @return [String]
25026
+ attr_accessor :creation_timestamp
25027
+
25028
+ # An optional description of this resource. Provide this property when you
25029
+ # create the resource.
25030
+ # Corresponds to the JSON property `description`
25031
+ # @return [String]
25032
+ attr_accessor :description
25033
+
25034
+ # Opaque system-generated token that uniquely identifies the configuration. If
25035
+ # provided when patching a configuration in update mode, the provided token must
25036
+ # match the current token or the update is rejected. This provides a reliable
25037
+ # means of doing read-modify-write (optimistic locking) as described by API 154.
25038
+ # Corresponds to the JSON property `etag`
25039
+ # @return [String]
25040
+ attr_accessor :etag
25041
+
25042
+ # [Output Only] The unique identifier for the resource type. The server
25043
+ # generates this identifier.
25044
+ # Corresponds to the JSON property `id`
25045
+ # @return [Fixnum]
25046
+ attr_accessor :id
25047
+
25048
+ # The user's intent for this group. This is the only required field besides the
25049
+ # name that must be specified on group creation.
25050
+ # Corresponds to the JSON property `intent`
25051
+ # @return [Google::Apis::ComputeBeta::InterconnectGroupIntent]
25052
+ attr_accessor :intent
25053
+
25054
+ # Interconnects in the InterconnectGroup. Keys are arbitrary user-specified
25055
+ # strings. Users are encouraged, but not required, to use their preferred format
25056
+ # for resource links as keys. Note that there are add-members and remove-members
25057
+ # methods in gcloud. The size of this map is limited by an "Interconnects per
25058
+ # group" quota.
25059
+ # Corresponds to the JSON property `interconnects`
25060
+ # @return [Hash<String,Google::Apis::ComputeBeta::InterconnectGroupInterconnect>]
25061
+ attr_accessor :interconnects
25062
+
25063
+ # [Output Only] Type of the resource. Always compute#InterconnectGroup
25064
+ # Corresponds to the JSON property `kind`
25065
+ # @return [String]
25066
+ attr_accessor :kind
25067
+
25068
+ # Name of the resource. Provided by the client when the resource is created. The
25069
+ # name must be 1-63 characters long, and comply with RFC1035. Specifically, the
25070
+ # name must be 1-63 characters long and match the regular expression `[a-z]([-a-
25071
+ # z0-9]*[a-z0-9])?` which means the first character must be a lowercase letter,
25072
+ # and all following characters must be a dash, lowercase letter, or digit,
25073
+ # except the last character, which cannot be a dash.
25074
+ # Corresponds to the JSON property `name`
25075
+ # @return [String]
25076
+ attr_accessor :name
25077
+
25078
+ # [Output Only] An analysis of the physical layout of Interconnects in this
25079
+ # group. Every Interconnect in the group is shown once in this structure.
25080
+ # Corresponds to the JSON property `physicalStructure`
25081
+ # @return [Google::Apis::ComputeBeta::InterconnectGroupPhysicalStructure]
25082
+ attr_accessor :physical_structure
25083
+
25084
+ # [Output Only] Server-defined URL for the resource.
25085
+ # Corresponds to the JSON property `selfLink`
25086
+ # @return [String]
25087
+ attr_accessor :self_link
25088
+
25089
+ def initialize(**args)
25090
+ update!(**args)
25091
+ end
25092
+
25093
+ # Update properties of this object
25094
+ def update!(**args)
25095
+ @configured = args[:configured] if args.key?(:configured)
25096
+ @creation_timestamp = args[:creation_timestamp] if args.key?(:creation_timestamp)
25097
+ @description = args[:description] if args.key?(:description)
25098
+ @etag = args[:etag] if args.key?(:etag)
25099
+ @id = args[:id] if args.key?(:id)
25100
+ @intent = args[:intent] if args.key?(:intent)
25101
+ @interconnects = args[:interconnects] if args.key?(:interconnects)
25102
+ @kind = args[:kind] if args.key?(:kind)
25103
+ @name = args[:name] if args.key?(:name)
25104
+ @physical_structure = args[:physical_structure] if args.key?(:physical_structure)
25105
+ @self_link = args[:self_link] if args.key?(:self_link)
25106
+ end
25107
+ end
25108
+
25109
+ # [Output Only] The status of the group as configured. This has the same
25110
+ # structure as the operational field reported by the OperationalStatus method,
25111
+ # but does not take into account the operational status of each resource.
25112
+ class InterconnectGroupConfigured
25113
+ include Google::Apis::Core::Hashable
25114
+
25115
+ # [Output Only] How reliable this topology is configured to be, and why this
25116
+ # group does or does not meet the requirements for the intended capability.
25117
+ # Corresponds to the JSON property `topologyCapability`
25118
+ # @return [Google::Apis::ComputeBeta::InterconnectGroupConfiguredTopologyCapability]
25119
+ attr_accessor :topology_capability
25120
+
25121
+ def initialize(**args)
25122
+ update!(**args)
25123
+ end
25124
+
25125
+ # Update properties of this object
25126
+ def update!(**args)
25127
+ @topology_capability = args[:topology_capability] if args.key?(:topology_capability)
25128
+ end
25129
+ end
25130
+
25131
+ # [Output Only] How reliable this topology is configured to be, and why this
25132
+ # group does or does not meet the requirements for the intended capability.
25133
+ class InterconnectGroupConfiguredTopologyCapability
25134
+ include Google::Apis::Core::Hashable
25135
+
25136
+ #
25137
+ # Corresponds to the JSON property `intendedCapabilityBlockers`
25138
+ # @return [Array<Google::Apis::ComputeBeta::InterconnectGroupConfiguredTopologyCapabilityIntendedCapabilityBlockers>]
25139
+ attr_accessor :intended_capability_blockers
25140
+
25141
+ #
25142
+ # Corresponds to the JSON property `supportedSla`
25143
+ # @return [String]
25144
+ attr_accessor :supported_sla
25145
+
25146
+ def initialize(**args)
25147
+ update!(**args)
25148
+ end
25149
+
25150
+ # Update properties of this object
25151
+ def update!(**args)
25152
+ @intended_capability_blockers = args[:intended_capability_blockers] if args.key?(:intended_capability_blockers)
25153
+ @supported_sla = args[:supported_sla] if args.key?(:supported_sla)
25154
+ end
25155
+ end
25156
+
25157
+ # [Output Only] Reasons why configuration.topologyCapability.sla differs from
25158
+ # intent.topologyCapability. This list is empty if and only if those are the
25159
+ # same.
25160
+ class InterconnectGroupConfiguredTopologyCapabilityIntendedCapabilityBlockers
25161
+ include Google::Apis::Core::Hashable
25162
+
25163
+ #
25164
+ # Corresponds to the JSON property `blockerType`
25165
+ # @return [String]
25166
+ attr_accessor :blocker_type
25167
+
25168
+ # [Output Only] The url of Google Cloud public documentation explaining this
25169
+ # requirement. This is set for every type of requirement.
25170
+ # Corresponds to the JSON property `documentationLink`
25171
+ # @return [String]
25172
+ attr_accessor :documentation_link
25173
+
25174
+ # [Output Only] A human-readable explanation of this requirement and why it's
25175
+ # not met. This is set for every type of requirement.
25176
+ # Corresponds to the JSON property `explanation`
25177
+ # @return [String]
25178
+ attr_accessor :explanation
25179
+
25180
+ # [Output Only] Facilities used to explain this blocker in more detail. Like
25181
+ # physicalStructure.metros.facilities.facility, this is a numeric string like "
25182
+ # 5467".
25183
+ # Corresponds to the JSON property `facilities`
25184
+ # @return [Array<String>]
25185
+ attr_accessor :facilities
25186
+
25187
+ # [Output Only] Interconnects used to explain this blocker in more detail.
25188
+ # Corresponds to the JSON property `interconnects`
25189
+ # @return [Array<String>]
25190
+ attr_accessor :interconnects
25191
+
25192
+ # [Output Only] Metros used to explain this blocker in more detail. These are
25193
+ # three-letter lowercase strings like "iad". A blocker like INCOMPATIBLE_METROS
25194
+ # will specify the problematic metros in this field.
25195
+ # Corresponds to the JSON property `metros`
25196
+ # @return [Array<String>]
25197
+ attr_accessor :metros
25198
+
25199
+ # [Output Only] Zones used to explain this blocker in more detail. Zone names
25200
+ # are "zone1" and/or "zone2".
25201
+ # Corresponds to the JSON property `zones`
25202
+ # @return [Array<String>]
25203
+ attr_accessor :zones
25204
+
25205
+ def initialize(**args)
25206
+ update!(**args)
25207
+ end
25208
+
25209
+ # Update properties of this object
25210
+ def update!(**args)
25211
+ @blocker_type = args[:blocker_type] if args.key?(:blocker_type)
25212
+ @documentation_link = args[:documentation_link] if args.key?(:documentation_link)
25213
+ @explanation = args[:explanation] if args.key?(:explanation)
25214
+ @facilities = args[:facilities] if args.key?(:facilities)
25215
+ @interconnects = args[:interconnects] if args.key?(:interconnects)
25216
+ @metros = args[:metros] if args.key?(:metros)
25217
+ @zones = args[:zones] if args.key?(:zones)
25218
+ end
25219
+ end
25220
+
25221
+ # The user's intent for this group. This is the only required field besides the
25222
+ # name that must be specified on group creation.
25223
+ class InterconnectGroupIntent
25224
+ include Google::Apis::Core::Hashable
25225
+
25226
+ #
25227
+ # Corresponds to the JSON property `topologyCapability`
25228
+ # @return [String]
25229
+ attr_accessor :topology_capability
25230
+
25231
+ def initialize(**args)
25232
+ update!(**args)
25233
+ end
25234
+
25235
+ # Update properties of this object
25236
+ def update!(**args)
25237
+ @topology_capability = args[:topology_capability] if args.key?(:topology_capability)
25238
+ end
25239
+ end
25240
+
25241
+ # An Interconnect in this InterconnectGroup.
25242
+ class InterconnectGroupInterconnect
25243
+ include Google::Apis::Core::Hashable
25244
+
25245
+ # The URL of an Interconnect in this group. All Interconnects in the group are
25246
+ # unique.
25247
+ # Corresponds to the JSON property `interconnect`
25248
+ # @return [String]
25249
+ attr_accessor :interconnect
25250
+
25251
+ def initialize(**args)
25252
+ update!(**args)
25253
+ end
25254
+
25255
+ # Update properties of this object
25256
+ def update!(**args)
25257
+ @interconnect = args[:interconnect] if args.key?(:interconnect)
25258
+ end
25259
+ end
25260
+
25261
+ # [Output Only] An analysis of the physical layout of Interconnects in this
25262
+ # group. Every Interconnect in the group is shown once in this structure.
25263
+ class InterconnectGroupPhysicalStructure
25264
+ include Google::Apis::Core::Hashable
25265
+
25266
+ #
25267
+ # Corresponds to the JSON property `metros`
25268
+ # @return [Array<Google::Apis::ComputeBeta::InterconnectGroupPhysicalStructureMetros>]
25269
+ attr_accessor :metros
25270
+
25271
+ def initialize(**args)
25272
+ update!(**args)
25273
+ end
25274
+
25275
+ # Update properties of this object
25276
+ def update!(**args)
25277
+ @metros = args[:metros] if args.key?(:metros)
25278
+ end
25279
+ end
25280
+
25281
+ # [Output Only] The metros Interconnects in this group are in.
25282
+ class InterconnectGroupPhysicalStructureMetros
25283
+ include Google::Apis::Core::Hashable
25284
+
25285
+ #
25286
+ # Corresponds to the JSON property `facilities`
25287
+ # @return [Array<Google::Apis::ComputeBeta::InterconnectGroupPhysicalStructureMetrosFacilities>]
25288
+ attr_accessor :facilities
25289
+
25290
+ # [Output Only] The name of the metro, as a three-letter lowercase string like "
25291
+ # iad". This is the first component of the location of Interconnects underneath
25292
+ # this.
25293
+ # Corresponds to the JSON property `metro`
25294
+ # @return [String]
25295
+ attr_accessor :metro
25296
+
25297
+ def initialize(**args)
25298
+ update!(**args)
25299
+ end
25300
+
25301
+ # Update properties of this object
25302
+ def update!(**args)
25303
+ @facilities = args[:facilities] if args.key?(:facilities)
25304
+ @metro = args[:metro] if args.key?(:metro)
25305
+ end
25306
+ end
25307
+
25308
+ # [Output Only] The facilities Interconnects in this metro are present in.
25309
+ class InterconnectGroupPhysicalStructureMetrosFacilities
25310
+ include Google::Apis::Core::Hashable
25311
+
25312
+ # [Output Only] The ID of this facility, as a numeric string like "5467". This
25313
+ # is the third component of the location of Interconnects in this facility.
25314
+ # Corresponds to the JSON property `facility`
25315
+ # @return [String]
25316
+ attr_accessor :facility
25317
+
25318
+ #
25319
+ # Corresponds to the JSON property `zones`
25320
+ # @return [Array<Google::Apis::ComputeBeta::InterconnectGroupPhysicalStructureMetrosFacilitiesZones>]
25321
+ attr_accessor :zones
25322
+
25323
+ def initialize(**args)
25324
+ update!(**args)
25325
+ end
25326
+
25327
+ # Update properties of this object
25328
+ def update!(**args)
25329
+ @facility = args[:facility] if args.key?(:facility)
25330
+ @zones = args[:zones] if args.key?(:zones)
25331
+ end
25332
+ end
25333
+
25334
+ # [Output Only] The zones that Interconnects in this facility are present in.
25335
+ class InterconnectGroupPhysicalStructureMetrosFacilitiesZones
25336
+ include Google::Apis::Core::Hashable
25337
+
25338
+ # [Output Only] URLs of Interconnects in this redundancy group in the given
25339
+ # metro, facility, and zone.
25340
+ # Corresponds to the JSON property `interconnects`
25341
+ # @return [Array<String>]
25342
+ attr_accessor :interconnects
25343
+
25344
+ # [Output Only] The name of the zone, either "zone1" or "zone2". This is the
25345
+ # second component of the location of Interconnects in this facility.
25346
+ # Corresponds to the JSON property `zone`
25347
+ # @return [String]
25348
+ attr_accessor :zone
25349
+
25350
+ def initialize(**args)
25351
+ update!(**args)
25352
+ end
25353
+
25354
+ # Update properties of this object
25355
+ def update!(**args)
25356
+ @interconnects = args[:interconnects] if args.key?(:interconnects)
25357
+ @zone = args[:zone] if args.key?(:zone)
25358
+ end
25359
+ end
25360
+
25361
+ #
25362
+ class InterconnectGroupsCreateMembers
25363
+ include Google::Apis::Core::Hashable
25364
+
25365
+ # How to behave when configured.topologyCapability.supportedSLA would not equal
25366
+ # intent.topologyCapability after this call.
25367
+ # Corresponds to the JSON property `intentMismatchBehavior`
25368
+ # @return [String]
25369
+ attr_accessor :intent_mismatch_behavior
25370
+
25371
+ #
25372
+ # Corresponds to the JSON property `interconnects`
25373
+ # @return [Array<Google::Apis::ComputeBeta::InterconnectGroupsCreateMembersInterconnectInput>]
25374
+ attr_accessor :interconnects
25375
+
25376
+ # LINT.IfChange
25377
+ # Corresponds to the JSON property `templateInterconnect`
25378
+ # @return [Google::Apis::ComputeBeta::InterconnectGroupsCreateMembersInterconnectInput]
25379
+ attr_accessor :template_interconnect
25380
+
25381
+ def initialize(**args)
25382
+ update!(**args)
25383
+ end
25384
+
25385
+ # Update properties of this object
25386
+ def update!(**args)
25387
+ @intent_mismatch_behavior = args[:intent_mismatch_behavior] if args.key?(:intent_mismatch_behavior)
25388
+ @interconnects = args[:interconnects] if args.key?(:interconnects)
25389
+ @template_interconnect = args[:template_interconnect] if args.key?(:template_interconnect)
25390
+ end
25391
+ end
25392
+
25393
+ # LINT.IfChange
25394
+ class InterconnectGroupsCreateMembersInterconnectInput
25395
+ include Google::Apis::Core::Hashable
25396
+
25397
+ # Administrative status of the interconnect. When this is set to true, the
25398
+ # Interconnect is functional and can carry traffic. When set to false, no
25399
+ # packets can be carried over the interconnect and no BGP routes are exchanged
25400
+ # over it. By default, the status is set to true.
25401
+ # Corresponds to the JSON property `adminEnabled`
25402
+ # @return [Boolean]
25403
+ attr_accessor :admin_enabled
25404
+ alias_method :admin_enabled?, :admin_enabled
25405
+
25406
+ # Customer name, to put in the Letter of Authorization as the party authorized
25407
+ # to request a crossconnect.
25408
+ # Corresponds to the JSON property `customerName`
25409
+ # @return [String]
25410
+ attr_accessor :customer_name
25411
+
25412
+ # An optional description of this resource. Provide this property when you
25413
+ # create the resource.
25414
+ # Corresponds to the JSON property `description`
25415
+ # @return [String]
25416
+ attr_accessor :description
25417
+
25418
+ # A zone-free location to use for all Interconnects created in this call, like "
25419
+ # iad-1234".
25420
+ # Corresponds to the JSON property `facility`
25421
+ # @return [String]
25422
+ attr_accessor :facility
25423
+
25424
+ # Type of interconnect, which can take one of the following values: - PARTNER: A
25425
+ # partner-managed interconnection shared between customers though a partner. -
25426
+ # DEDICATED: A dedicated physical interconnection with the customer. Note that a
25427
+ # value IT_PRIVATE has been deprecated in favor of DEDICATED.
25428
+ # Corresponds to the JSON property `interconnectType`
25429
+ # @return [String]
25430
+ attr_accessor :interconnect_type
25431
+
25432
+ # Type of link requested, which can take one of the following values: -
25433
+ # LINK_TYPE_ETHERNET_10G_LR: A 10G Ethernet with LR optics -
25434
+ # LINK_TYPE_ETHERNET_100G_LR: A 100G Ethernet with LR optics. -
25435
+ # LINK_TYPE_ETHERNET_400G_LR4: A 400G Ethernet with LR4 optics. Note that this
25436
+ # field indicates the speed of each of the links in the bundle, not the speed of
25437
+ # the entire bundle.
25438
+ # Corresponds to the JSON property `linkType`
25439
+ # @return [String]
25440
+ attr_accessor :link_type
25441
+
25442
+ # Name of the Interconnects to be created. This must be specified on the
25443
+ # template and/or on each individual interconnect. The name, if not empty, must
25444
+ # be 1-63 characters long, and comply with RFC1035. Specifically, any nonempty
25445
+ # name must be 1-63 characters long and match the regular expression `[a-z]([-a-
25446
+ # z0-9]*[a-z0-9])?` which means the first character must be a lowercase letter,
25447
+ # and all following characters must be a dash, lowercase letter, or digit,
25448
+ # except the last character, which cannot be a dash.
25449
+ # Corresponds to the JSON property `name`
25450
+ # @return [String]
25451
+ attr_accessor :name
25452
+
25453
+ # Email address to contact the customer NOC for operations and maintenance
25454
+ # notifications regarding this Interconnect. If specified, this will be used for
25455
+ # notifications in addition to all other forms described, such as Cloud
25456
+ # Monitoring logs alerting and Cloud Notifications. This field is required for
25457
+ # users who sign up for Cloud Interconnect using workforce identity federation.
25458
+ # Corresponds to the JSON property `nocContactEmail`
25459
+ # @return [String]
25460
+ attr_accessor :noc_contact_email
25461
+
25462
+ # Indicates that this is a Cross-Cloud Interconnect. This field specifies the
25463
+ # location outside of Google's network that the interconnect is connected to.
25464
+ # Corresponds to the JSON property `remoteLocation`
25465
+ # @return [String]
25466
+ attr_accessor :remote_location
25467
+
25468
+ # Optional. List of features requested for this Interconnect connection, which
25469
+ # can take one of the following values: - IF_MACSEC If specified then the
25470
+ # connection is created on MACsec capable hardware ports. If not specified, the
25471
+ # default value is false, which allocates non-MACsec capable ports first if
25472
+ # available. This parameter can be provided only with Interconnect INSERT. It
25473
+ # isn't valid for Interconnect PATCH.
25474
+ # Corresponds to the JSON property `requestedFeatures`
25475
+ # @return [Array<String>]
25476
+ attr_accessor :requested_features
25477
+
25478
+ # Target number of physical links in the link bundle, as requested by the
25479
+ # customer.
25480
+ # Corresponds to the JSON property `requestedLinkCount`
25481
+ # @return [Fixnum]
25482
+ attr_accessor :requested_link_count
25483
+
25484
+ def initialize(**args)
25485
+ update!(**args)
25486
+ end
25487
+
25488
+ # Update properties of this object
25489
+ def update!(**args)
25490
+ @admin_enabled = args[:admin_enabled] if args.key?(:admin_enabled)
25491
+ @customer_name = args[:customer_name] if args.key?(:customer_name)
25492
+ @description = args[:description] if args.key?(:description)
25493
+ @facility = args[:facility] if args.key?(:facility)
25494
+ @interconnect_type = args[:interconnect_type] if args.key?(:interconnect_type)
25495
+ @link_type = args[:link_type] if args.key?(:link_type)
25496
+ @name = args[:name] if args.key?(:name)
25497
+ @noc_contact_email = args[:noc_contact_email] if args.key?(:noc_contact_email)
25498
+ @remote_location = args[:remote_location] if args.key?(:remote_location)
25499
+ @requested_features = args[:requested_features] if args.key?(:requested_features)
25500
+ @requested_link_count = args[:requested_link_count] if args.key?(:requested_link_count)
25501
+ end
25502
+ end
25503
+
25504
+ #
25505
+ class InterconnectGroupsCreateMembersRequest
25506
+ include Google::Apis::Core::Hashable
25507
+
25508
+ #
25509
+ # Corresponds to the JSON property `request`
25510
+ # @return [Google::Apis::ComputeBeta::InterconnectGroupsCreateMembers]
25511
+ attr_accessor :request
25512
+
25513
+ def initialize(**args)
25514
+ update!(**args)
25515
+ end
25516
+
25517
+ # Update properties of this object
25518
+ def update!(**args)
25519
+ @request = args[:request] if args.key?(:request)
25520
+ end
25521
+ end
25522
+
25523
+ # Response for the InterconnectGroupsGetOperationalStatusResponse.
25524
+ class InterconnectGroupsGetOperationalStatusResponse
25525
+ include Google::Apis::Core::Hashable
25526
+
25527
+ #
25528
+ # Corresponds to the JSON property `etag`
25529
+ # @return [String]
25530
+ attr_accessor :etag
25531
+
25532
+ # Request to get the status of the interconnect group with extra detail.
25533
+ # Corresponds to the JSON property `result`
25534
+ # @return [Google::Apis::ComputeBeta::InterconnectGroupsOperationalStatus]
25535
+ attr_accessor :result
25536
+
25537
+ def initialize(**args)
25538
+ update!(**args)
25539
+ end
25540
+
25541
+ # Update properties of this object
25542
+ def update!(**args)
25543
+ @etag = args[:etag] if args.key?(:etag)
25544
+ @result = args[:result] if args.key?(:result)
25545
+ end
25546
+ end
25547
+
25548
+ #
25549
+ class InterconnectGroupsListResponse
25550
+ include Google::Apis::Core::Hashable
25551
+
25552
+ #
25553
+ # Corresponds to the JSON property `etag`
25554
+ # @return [String]
25555
+ attr_accessor :etag
25556
+
25557
+ # [Output Only] Unique identifier for the resource; defined by the server.
25558
+ # Corresponds to the JSON property `id`
25559
+ # @return [String]
25560
+ attr_accessor :id
25561
+
25562
+ # A list of InterconnectGroup resources.
25563
+ # Corresponds to the JSON property `items`
25564
+ # @return [Array<Google::Apis::ComputeBeta::InterconnectGroup>]
25565
+ attr_accessor :items
25566
+
25567
+ #
25568
+ # Corresponds to the JSON property `kind`
25569
+ # @return [String]
25570
+ attr_accessor :kind
25571
+
25572
+ # [Output Only] This token allows you to get the next page of results for list
25573
+ # requests. If the number of results is larger than maxResults, use the
25574
+ # nextPageToken as a value for the query parameter pageToken in the next list
25575
+ # request. Subsequent list requests will have their own nextPageToken to
25576
+ # continue paging through the results.
25577
+ # Corresponds to the JSON property `nextPageToken`
25578
+ # @return [String]
25579
+ attr_accessor :next_page_token
25580
+
25581
+ # [Output Only] Server-defined URL for this resource.
25582
+ # Corresponds to the JSON property `selfLink`
25583
+ # @return [String]
25584
+ attr_accessor :self_link
25585
+
25586
+ # [Output Only] Unreachable resources. end_interface:
25587
+ # MixerListResponseWithEtagBuilder
25588
+ # Corresponds to the JSON property `unreachables`
25589
+ # @return [Array<String>]
25590
+ attr_accessor :unreachables
25591
+
25592
+ # [Output Only] Informational warning message.
25593
+ # Corresponds to the JSON property `warning`
25594
+ # @return [Google::Apis::ComputeBeta::InterconnectGroupsListResponse::Warning]
25595
+ attr_accessor :warning
25596
+
25597
+ def initialize(**args)
25598
+ update!(**args)
25599
+ end
25600
+
25601
+ # Update properties of this object
25602
+ def update!(**args)
25603
+ @etag = args[:etag] if args.key?(:etag)
25604
+ @id = args[:id] if args.key?(:id)
25605
+ @items = args[:items] if args.key?(:items)
25606
+ @kind = args[:kind] if args.key?(:kind)
25607
+ @next_page_token = args[:next_page_token] if args.key?(:next_page_token)
25608
+ @self_link = args[:self_link] if args.key?(:self_link)
25609
+ @unreachables = args[:unreachables] if args.key?(:unreachables)
25610
+ @warning = args[:warning] if args.key?(:warning)
25611
+ end
25612
+
25613
+ # [Output Only] Informational warning message.
25614
+ class Warning
25615
+ include Google::Apis::Core::Hashable
25616
+
25617
+ # [Output Only] A warning code, if applicable. For example, Compute Engine
25618
+ # returns NO_RESULTS_ON_PAGE if there are no results in the response.
25619
+ # Corresponds to the JSON property `code`
25620
+ # @return [String]
25621
+ attr_accessor :code
25622
+
25623
+ # [Output Only] Metadata about this warning in key: value format. For example: "
25624
+ # data": [ ` "key": "scope", "value": "zones/us-east1-d" `
25625
+ # Corresponds to the JSON property `data`
25626
+ # @return [Array<Google::Apis::ComputeBeta::InterconnectGroupsListResponse::Warning::Datum>]
25627
+ attr_accessor :data
25628
+
25629
+ # [Output Only] A human-readable description of the warning code.
25630
+ # Corresponds to the JSON property `message`
25631
+ # @return [String]
25632
+ attr_accessor :message
25633
+
25634
+ def initialize(**args)
25635
+ update!(**args)
25636
+ end
25637
+
25638
+ # Update properties of this object
25639
+ def update!(**args)
25640
+ @code = args[:code] if args.key?(:code)
25641
+ @data = args[:data] if args.key?(:data)
25642
+ @message = args[:message] if args.key?(:message)
25643
+ end
25644
+
25645
+ #
25646
+ class Datum
25647
+ include Google::Apis::Core::Hashable
25648
+
25649
+ # [Output Only] A key that provides more detail on the warning being returned.
25650
+ # For example, for warnings where there are no results in a list request for a
25651
+ # particular zone, this key might be scope and the key value might be the zone
25652
+ # name. Other examples might be a key indicating a deprecated resource and a
25653
+ # suggested replacement, or a warning about invalid network settings (for
25654
+ # example, if an instance attempts to perform IP forwarding but is not enabled
25655
+ # for IP forwarding).
25656
+ # Corresponds to the JSON property `key`
25657
+ # @return [String]
25658
+ attr_accessor :key
25659
+
25660
+ # [Output Only] A warning data value corresponding to the key.
25661
+ # Corresponds to the JSON property `value`
25662
+ # @return [String]
25663
+ attr_accessor :value
25664
+
25665
+ def initialize(**args)
25666
+ update!(**args)
25667
+ end
25668
+
25669
+ # Update properties of this object
25670
+ def update!(**args)
25671
+ @key = args[:key] if args.key?(:key)
25672
+ @value = args[:value] if args.key?(:value)
25673
+ end
25674
+ end
25675
+ end
25676
+ end
25677
+
25678
+ # Request to get the status of the interconnect group with extra detail.
25679
+ class InterconnectGroupsOperationalStatus
23697
25680
  include Google::Apis::Core::Hashable
23698
25681
 
23699
- # Customer-side demarc ID for this circuit.
23700
- # Corresponds to the JSON property `customerDemarcId`
23701
- # @return [String]
23702
- attr_accessor :customer_demarc_id
23703
-
23704
- # Google-assigned unique ID for this circuit. Assigned at circuit turn-up.
23705
- # Corresponds to the JSON property `googleCircuitId`
23706
- # @return [String]
23707
- attr_accessor :google_circuit_id
23708
-
23709
- # Google-side demarc ID for this circuit. Assigned at circuit turn-up and
23710
- # provided by Google to the customer in the LOA.
23711
- # Corresponds to the JSON property `googleDemarcId`
23712
- # @return [String]
23713
- attr_accessor :google_demarc_id
23714
-
23715
- def initialize(**args)
23716
- update!(**args)
23717
- end
23718
-
23719
- # Update properties of this object
23720
- def update!(**args)
23721
- @customer_demarc_id = args[:customer_demarc_id] if args.key?(:customer_demarc_id)
23722
- @google_circuit_id = args[:google_circuit_id] if args.key?(:google_circuit_id)
23723
- @google_demarc_id = args[:google_demarc_id] if args.key?(:google_demarc_id)
23724
- end
23725
- end
23726
-
23727
- # Diagnostics information about the Interconnect connection, which contains
23728
- # detailed and current technical information about Google's side of the
23729
- # connection.
23730
- class InterconnectDiagnostics
23731
- include Google::Apis::Core::Hashable
23732
-
23733
- # A list of InterconnectDiagnostics.ARPEntry objects, describing individual
23734
- # neighbors currently seen by the Google router in the ARP cache for the
23735
- # Interconnect. This will be empty when the Interconnect is not bundled.
23736
- # Corresponds to the JSON property `arpCaches`
23737
- # @return [Array<Google::Apis::ComputeBeta::InterconnectDiagnosticsArpEntry>]
23738
- attr_accessor :arp_caches
23739
-
23740
- # The aggregation type of the bundle interface.
23741
- # Corresponds to the JSON property `bundleAggregationType`
23742
- # @return [String]
23743
- attr_accessor :bundle_aggregation_type
23744
-
23745
- # The operational status of the bundle interface.
23746
- # Corresponds to the JSON property `bundleOperationalStatus`
23747
- # @return [String]
23748
- attr_accessor :bundle_operational_status
25682
+ # [Output Only] The status of the group as configured. This has the same
25683
+ # structure as the operational field reported by the OperationalStatus method,
25684
+ # but does not take into account the operational status of each resource.
25685
+ # Corresponds to the JSON property `configured`
25686
+ # @return [Google::Apis::ComputeBeta::InterconnectGroupConfigured]
25687
+ attr_accessor :configured
23749
25688
 
23750
- # A list of InterconnectDiagnostics.LinkStatus objects, describing the status
23751
- # for each link on the Interconnect.
23752
- # Corresponds to the JSON property `links`
23753
- # @return [Array<Google::Apis::ComputeBeta::InterconnectDiagnosticsLinkStatus>]
23754
- attr_accessor :links
23755
-
23756
- # The MAC address of the Interconnect's bundle interface.
23757
- # Corresponds to the JSON property `macAddress`
25689
+ # Summarizes the status of the group.
25690
+ # Corresponds to the JSON property `groupStatus`
23758
25691
  # @return [String]
23759
- attr_accessor :mac_address
25692
+ attr_accessor :group_status
23760
25693
 
23761
- def initialize(**args)
23762
- update!(**args)
23763
- end
25694
+ # The user's intent for this group. This is the only required field besides the
25695
+ # name that must be specified on group creation.
25696
+ # Corresponds to the JSON property `intent`
25697
+ # @return [Google::Apis::ComputeBeta::InterconnectGroupIntent]
25698
+ attr_accessor :intent
23764
25699
 
23765
- # Update properties of this object
23766
- def update!(**args)
23767
- @arp_caches = args[:arp_caches] if args.key?(:arp_caches)
23768
- @bundle_aggregation_type = args[:bundle_aggregation_type] if args.key?(:bundle_aggregation_type)
23769
- @bundle_operational_status = args[:bundle_operational_status] if args.key?(:bundle_operational_status)
23770
- @links = args[:links] if args.key?(:links)
23771
- @mac_address = args[:mac_address] if args.key?(:mac_address)
23772
- end
23773
- end
23774
-
23775
- # Describing the ARP neighbor entries seen on this link
23776
- class InterconnectDiagnosticsArpEntry
23777
- include Google::Apis::Core::Hashable
23778
-
23779
- # The IP address of this ARP neighbor.
23780
- # Corresponds to the JSON property `ipAddress`
23781
- # @return [String]
23782
- attr_accessor :ip_address
23783
-
23784
- # The MAC address of this ARP neighbor.
23785
- # Corresponds to the JSON property `macAddress`
23786
- # @return [String]
23787
- attr_accessor :mac_address
23788
-
23789
- def initialize(**args)
23790
- update!(**args)
23791
- end
23792
-
23793
- # Update properties of this object
23794
- def update!(**args)
23795
- @ip_address = args[:ip_address] if args.key?(:ip_address)
23796
- @mac_address = args[:mac_address] if args.key?(:mac_address)
23797
- end
23798
- end
23799
-
23800
- #
23801
- class InterconnectDiagnosticsLinkLacpStatus
23802
- include Google::Apis::Core::Hashable
23803
-
23804
- # System ID of the port on Google's side of the LACP exchange.
23805
- # Corresponds to the JSON property `googleSystemId`
23806
- # @return [String]
23807
- attr_accessor :google_system_id
23808
-
23809
- # System ID of the port on the neighbor's side of the LACP exchange.
23810
- # Corresponds to the JSON property `neighborSystemId`
23811
- # @return [String]
23812
- attr_accessor :neighbor_system_id
23813
-
23814
- # The state of a LACP link, which can take one of the following values: - ACTIVE:
23815
- # The link is configured and active within the bundle. - DETACHED: The link is
23816
- # not configured within the bundle. This means that the rest of the object
23817
- # should be empty.
23818
- # Corresponds to the JSON property `state`
23819
- # @return [String]
23820
- attr_accessor :state
23821
-
23822
- def initialize(**args)
23823
- update!(**args)
23824
- end
23825
-
23826
- # Update properties of this object
23827
- def update!(**args)
23828
- @google_system_id = args[:google_system_id] if args.key?(:google_system_id)
23829
- @neighbor_system_id = args[:neighbor_system_id] if args.key?(:neighbor_system_id)
23830
- @state = args[:state] if args.key?(:state)
23831
- end
23832
- end
23833
-
23834
- #
23835
- class InterconnectDiagnosticsLinkOpticalPower
23836
- include Google::Apis::Core::Hashable
23837
-
23838
- # The status of the current value when compared to the warning and alarm levels
23839
- # for the receiving or transmitting transceiver. Possible states include: - OK:
23840
- # The value has not crossed a warning threshold. - LOW_WARNING: The value has
23841
- # crossed below the low warning threshold. - HIGH_WARNING: The value has crossed
23842
- # above the high warning threshold. - LOW_ALARM: The value has crossed below the
23843
- # low alarm threshold. - HIGH_ALARM: The value has crossed above the high alarm
23844
- # threshold.
23845
- # Corresponds to the JSON property `state`
23846
- # @return [String]
23847
- attr_accessor :state
25700
+ #
25701
+ # Corresponds to the JSON property `interconnectStatuses`
25702
+ # @return [Array<Google::Apis::ComputeBeta::InterconnectGroupsOperationalStatusInterconnectStatus>]
25703
+ attr_accessor :interconnect_statuses
23848
25704
 
23849
- # Value of the current receiving or transmitting optical power, read in dBm.
23850
- # Take a known good optical value, give it a 10% margin and trigger warnings
23851
- # relative to that value. In general, a -7dBm warning and a -11dBm alarm are
23852
- # good optical value estimates for most links.
23853
- # Corresponds to the JSON property `value`
23854
- # @return [Float]
23855
- attr_accessor :value
25705
+ # [Output Only] The status of the group as configured. This has the same
25706
+ # structure as the operational field reported by the OperationalStatus method,
25707
+ # but does not take into account the operational status of each resource.
25708
+ # Corresponds to the JSON property `operational`
25709
+ # @return [Google::Apis::ComputeBeta::InterconnectGroupConfigured]
25710
+ attr_accessor :operational
23856
25711
 
23857
25712
  def initialize(**args)
23858
25713
  update!(**args)
@@ -23860,90 +25715,40 @@ module Google
23860
25715
 
23861
25716
  # Update properties of this object
23862
25717
  def update!(**args)
23863
- @state = args[:state] if args.key?(:state)
23864
- @value = args[:value] if args.key?(:value)
25718
+ @configured = args[:configured] if args.key?(:configured)
25719
+ @group_status = args[:group_status] if args.key?(:group_status)
25720
+ @intent = args[:intent] if args.key?(:intent)
25721
+ @interconnect_statuses = args[:interconnect_statuses] if args.key?(:interconnect_statuses)
25722
+ @operational = args[:operational] if args.key?(:operational)
23865
25723
  end
23866
25724
  end
23867
25725
 
23868
- #
23869
- class InterconnectDiagnosticsLinkStatus
25726
+ # The status of one Interconnect in the group. The order is arbitrary.
25727
+ class InterconnectGroupsOperationalStatusInterconnectStatus
23870
25728
  include Google::Apis::Core::Hashable
23871
25729
 
23872
- # A list of InterconnectDiagnostics.ARPEntry objects, describing the ARP
23873
- # neighbor entries seen on this link. This will be empty if the link is bundled
23874
- # Corresponds to the JSON property `arpCaches`
23875
- # @return [Array<Google::Apis::ComputeBeta::InterconnectDiagnosticsArpEntry>]
23876
- attr_accessor :arp_caches
23877
-
23878
- # The unique ID for this link assigned during turn up by Google.
23879
- # Corresponds to the JSON property `circuitId`
23880
- # @return [String]
23881
- attr_accessor :circuit_id
23882
-
23883
- # The Demarc address assigned by Google and provided in the LoA.
23884
- # Corresponds to the JSON property `googleDemarc`
23885
- # @return [String]
23886
- attr_accessor :google_demarc
23887
-
23888
- #
23889
- # Corresponds to the JSON property `lacpStatus`
23890
- # @return [Google::Apis::ComputeBeta::InterconnectDiagnosticsLinkLacpStatus]
23891
- attr_accessor :lacp_status
25730
+ # Whether the Interconnect is enabled.
25731
+ # Corresponds to the JSON property `adminEnabled`
25732
+ # @return [Boolean]
25733
+ attr_accessor :admin_enabled
25734
+ alias_method :admin_enabled?, :admin_enabled
23892
25735
 
23893
- # Describes the status of MACsec encryption on the link.
23894
- # Corresponds to the JSON property `macsec`
23895
- # @return [Google::Apis::ComputeBeta::InterconnectDiagnosticsMacsecStatus]
23896
- attr_accessor :macsec
25736
+ # Diagnostics information about the Interconnect connection, which contains
25737
+ # detailed and current technical information about Google's side of the
25738
+ # connection.
25739
+ # Corresponds to the JSON property `diagnostics`
25740
+ # @return [Google::Apis::ComputeBeta::InterconnectDiagnostics]
25741
+ attr_accessor :diagnostics
23897
25742
 
23898
- # The operational status of the link.
23899
- # Corresponds to the JSON property `operationalStatus`
25743
+ # The URL of the Interconnect being described.
25744
+ # Corresponds to the JSON property `interconnect`
23900
25745
  # @return [String]
23901
- attr_accessor :operational_status
23902
-
23903
- # An InterconnectDiagnostics.LinkOpticalPower object, describing the current
23904
- # value and status of the received light level.
23905
- # Corresponds to the JSON property `receivingOpticalPower`
23906
- # @return [Google::Apis::ComputeBeta::InterconnectDiagnosticsLinkOpticalPower]
23907
- attr_accessor :receiving_optical_power
23908
-
23909
- # An InterconnectDiagnostics.LinkOpticalPower object, describing the current
23910
- # value and status of the transmitted light level.
23911
- # Corresponds to the JSON property `transmittingOpticalPower`
23912
- # @return [Google::Apis::ComputeBeta::InterconnectDiagnosticsLinkOpticalPower]
23913
- attr_accessor :transmitting_optical_power
23914
-
23915
- def initialize(**args)
23916
- update!(**args)
23917
- end
23918
-
23919
- # Update properties of this object
23920
- def update!(**args)
23921
- @arp_caches = args[:arp_caches] if args.key?(:arp_caches)
23922
- @circuit_id = args[:circuit_id] if args.key?(:circuit_id)
23923
- @google_demarc = args[:google_demarc] if args.key?(:google_demarc)
23924
- @lacp_status = args[:lacp_status] if args.key?(:lacp_status)
23925
- @macsec = args[:macsec] if args.key?(:macsec)
23926
- @operational_status = args[:operational_status] if args.key?(:operational_status)
23927
- @receiving_optical_power = args[:receiving_optical_power] if args.key?(:receiving_optical_power)
23928
- @transmitting_optical_power = args[:transmitting_optical_power] if args.key?(:transmitting_optical_power)
23929
- end
23930
- end
23931
-
23932
- # Describes the status of MACsec encryption on the link.
23933
- class InterconnectDiagnosticsMacsecStatus
23934
- include Google::Apis::Core::Hashable
25746
+ attr_accessor :interconnect
23935
25747
 
23936
- # Indicates the Connectivity Association Key Name (CKN) currently being used if
23937
- # MACsec is operational.
23938
- # Corresponds to the JSON property `ckn`
25748
+ # Whether this interconnect is participating in the redundant configuration.
25749
+ # Corresponds to the JSON property `isActive`
23939
25750
  # @return [String]
23940
- attr_accessor :ckn
23941
-
23942
- # Indicates whether or not MACsec is operational on this link.
23943
- # Corresponds to the JSON property `operational`
23944
- # @return [Boolean]
23945
- attr_accessor :operational
23946
- alias_method :operational?, :operational
25751
+ attr_accessor :is_active
23947
25752
 
23948
25753
  def initialize(**args)
23949
25754
  update!(**args)
@@ -23951,8 +25756,10 @@ module Google
23951
25756
 
23952
25757
  # Update properties of this object
23953
25758
  def update!(**args)
23954
- @ckn = args[:ckn] if args.key?(:ckn)
23955
- @operational = args[:operational] if args.key?(:operational)
25759
+ @admin_enabled = args[:admin_enabled] if args.key?(:admin_enabled)
25760
+ @diagnostics = args[:diagnostics] if args.key?(:diagnostics)
25761
+ @interconnect = args[:interconnect] if args.key?(:interconnect)
25762
+ @is_active = args[:is_active] if args.key?(:is_active)
23956
25763
  end
23957
25764
  end
23958
25765
 
@@ -25025,6 +26832,18 @@ module Google
25025
26832
  class License
25026
26833
  include Google::Apis::Core::Hashable
25027
26834
 
26835
+ # Specifies licenseCodes of licenses that can replace this license. Note: such
26836
+ # replacements are allowed even if removable_from_disk is false.
26837
+ # Corresponds to the JSON property `allowedReplacementLicenses`
26838
+ # @return [Array<String>]
26839
+ attr_accessor :allowed_replacement_licenses
26840
+
26841
+ # If true, this license can be appended to an existing disk's set of licenses.
26842
+ # Corresponds to the JSON property `appendableToDisk`
26843
+ # @return [Boolean]
26844
+ attr_accessor :appendable_to_disk
26845
+ alias_method :appendable_to_disk?, :appendable_to_disk
26846
+
25028
26847
  # [Output Only] Deprecated. This field no longer reflects whether a license
25029
26848
  # charges a usage fee.
25030
26849
  # Corresponds to the JSON property `chargesUseFee`
@@ -25049,6 +26868,13 @@ module Google
25049
26868
  # @return [Fixnum]
25050
26869
  attr_accessor :id
25051
26870
 
26871
+ # Specifies licenseCodes of licenses that are incompatible with this license. If
26872
+ # a license is incompatible with this license, it cannot be attached to the same
26873
+ # disk or image.
26874
+ # Corresponds to the JSON property `incompatibleLicenses`
26875
+ # @return [Array<String>]
26876
+ attr_accessor :incompatible_licenses
26877
+
25052
26878
  # [Output Only] Type of resource. Always compute#license for licenses.
25053
26879
  # Corresponds to the JSON property `kind`
25054
26880
  # @return [String]
@@ -25060,12 +26886,47 @@ module Google
25060
26886
  # @return [Fixnum]
25061
26887
  attr_accessor :license_code
25062
26888
 
26889
+ # A Duration represents a fixed-length span of time represented as a count of
26890
+ # seconds and fractions of seconds at nanosecond resolution. It is independent
26891
+ # of any calendar and concepts like "day" or "month". Range is approximately 10,
26892
+ # 000 years.
26893
+ # Corresponds to the JSON property `minimumRetention`
26894
+ # @return [Google::Apis::ComputeBeta::Duration]
26895
+ attr_accessor :minimum_retention
26896
+
26897
+ # If true, this license can only be used on VMs on multi tenant nodes.
26898
+ # Corresponds to the JSON property `multiTenantOnly`
26899
+ # @return [Boolean]
26900
+ attr_accessor :multi_tenant_only
26901
+ alias_method :multi_tenant_only?, :multi_tenant_only
26902
+
25063
26903
  # Name of the resource. The name must be 1-63 characters long and comply with
25064
26904
  # RFC1035.
25065
26905
  # Corresponds to the JSON property `name`
25066
26906
  # @return [String]
25067
26907
  attr_accessor :name
25068
26908
 
26909
+ # If true, indicates this is an OS license. Only one OS license can be attached
26910
+ # to a disk or image at a time.
26911
+ # Corresponds to the JSON property `osLicense`
26912
+ # @return [Boolean]
26913
+ attr_accessor :os_license
26914
+ alias_method :os_license?, :os_license
26915
+
26916
+ # If true, this license can be removed from a disk's set of licenses, with no
26917
+ # replacement license needed.
26918
+ # Corresponds to the JSON property `removableFromDisk`
26919
+ # @return [Boolean]
26920
+ attr_accessor :removable_from_disk
26921
+ alias_method :removable_from_disk?, :removable_from_disk
26922
+
26923
+ # Specifies the set of permissible coattached licenseCodes of licenses that
26924
+ # satisfy the coattachment requirement of this license. At least one license
26925
+ # from the set must be attached to the same disk or image as this license.
26926
+ # Corresponds to the JSON property `requiredCoattachedLicenses`
26927
+ # @return [Array<String>]
26928
+ attr_accessor :required_coattached_licenses
26929
+
25069
26930
  # [Input Only] Deprecated.
25070
26931
  # Corresponds to the JSON property `resourceRequirements`
25071
26932
  # @return [Google::Apis::ComputeBeta::LicenseResourceRequirements]
@@ -25076,6 +26937,17 @@ module Google
25076
26937
  # @return [String]
25077
26938
  attr_accessor :self_link
25078
26939
 
26940
+ # [Output Only] Server-defined URL for this resource with the resource id.
26941
+ # Corresponds to the JSON property `selfLinkWithId`
26942
+ # @return [String]
26943
+ attr_accessor :self_link_with_id
26944
+
26945
+ # If true, this license can only be used on VMs on sole tenant nodes.
26946
+ # Corresponds to the JSON property `soleTenantOnly`
26947
+ # @return [Boolean]
26948
+ attr_accessor :sole_tenant_only
26949
+ alias_method :sole_tenant_only?, :sole_tenant_only
26950
+
25079
26951
  # If false, licenses will not be copied from the source resource when creating
25080
26952
  # an image from a disk, disk from snapshot, or snapshot from disk.
25081
26953
  # Corresponds to the JSON property `transferable`
@@ -25083,22 +26955,38 @@ module Google
25083
26955
  attr_accessor :transferable
25084
26956
  alias_method :transferable?, :transferable
25085
26957
 
26958
+ # [Output Only] Last update timestamp in RFC3339 text format.
26959
+ # Corresponds to the JSON property `updateTimestamp`
26960
+ # @return [String]
26961
+ attr_accessor :update_timestamp
26962
+
25086
26963
  def initialize(**args)
25087
26964
  update!(**args)
25088
26965
  end
25089
26966
 
25090
26967
  # Update properties of this object
25091
26968
  def update!(**args)
26969
+ @allowed_replacement_licenses = args[:allowed_replacement_licenses] if args.key?(:allowed_replacement_licenses)
26970
+ @appendable_to_disk = args[:appendable_to_disk] if args.key?(:appendable_to_disk)
25092
26971
  @charges_use_fee = args[:charges_use_fee] if args.key?(:charges_use_fee)
25093
26972
  @creation_timestamp = args[:creation_timestamp] if args.key?(:creation_timestamp)
25094
26973
  @description = args[:description] if args.key?(:description)
25095
26974
  @id = args[:id] if args.key?(:id)
26975
+ @incompatible_licenses = args[:incompatible_licenses] if args.key?(:incompatible_licenses)
25096
26976
  @kind = args[:kind] if args.key?(:kind)
25097
26977
  @license_code = args[:license_code] if args.key?(:license_code)
26978
+ @minimum_retention = args[:minimum_retention] if args.key?(:minimum_retention)
26979
+ @multi_tenant_only = args[:multi_tenant_only] if args.key?(:multi_tenant_only)
25098
26980
  @name = args[:name] if args.key?(:name)
26981
+ @os_license = args[:os_license] if args.key?(:os_license)
26982
+ @removable_from_disk = args[:removable_from_disk] if args.key?(:removable_from_disk)
26983
+ @required_coattached_licenses = args[:required_coattached_licenses] if args.key?(:required_coattached_licenses)
25099
26984
  @resource_requirements = args[:resource_requirements] if args.key?(:resource_requirements)
25100
26985
  @self_link = args[:self_link] if args.key?(:self_link)
26986
+ @self_link_with_id = args[:self_link_with_id] if args.key?(:self_link_with_id)
26987
+ @sole_tenant_only = args[:sole_tenant_only] if args.key?(:sole_tenant_only)
25101
26988
  @transferable = args[:transferable] if args.key?(:transferable)
26989
+ @update_timestamp = args[:update_timestamp] if args.key?(:update_timestamp)
25102
26990
  end
25103
26991
  end
25104
26992
 
@@ -29282,6 +31170,12 @@ module Google
29282
31170
  # @return [String]
29283
31171
  attr_accessor :fingerprint
29284
31172
 
31173
+ # Indicate whether igmp query is enabled on the network interface or not. If
31174
+ # enabled, also indicates the version of IGMP supported.
31175
+ # Corresponds to the JSON property `igmpQuery`
31176
+ # @return [String]
31177
+ attr_accessor :igmp_query
31178
+
29285
31179
  # The prefix length of the primary internal IPv6 range.
29286
31180
  # Corresponds to the JSON property `internalIpv6PrefixLength`
29287
31181
  # @return [Fixnum]
@@ -29401,6 +31295,7 @@ module Google
29401
31295
  @access_configs = args[:access_configs] if args.key?(:access_configs)
29402
31296
  @alias_ip_ranges = args[:alias_ip_ranges] if args.key?(:alias_ip_ranges)
29403
31297
  @fingerprint = args[:fingerprint] if args.key?(:fingerprint)
31298
+ @igmp_query = args[:igmp_query] if args.key?(:igmp_query)
29404
31299
  @internal_ipv6_prefix_length = args[:internal_ipv6_prefix_length] if args.key?(:internal_ipv6_prefix_length)
29405
31300
  @ipv6_access_configs = args[:ipv6_access_configs] if args.key?(:ipv6_access_configs)
29406
31301
  @ipv6_access_type = args[:ipv6_access_type] if args.key?(:ipv6_access_type)
@@ -29579,6 +31474,14 @@ module Google
29579
31474
  attr_accessor :auto_create_routes
29580
31475
  alias_method :auto_create_routes?, :auto_create_routes
29581
31476
 
31477
+ # [Output Only] Describes the state of a peering connection, not just the local
31478
+ # peering. This field provides information about the effective settings for the
31479
+ # connection as a whole, including pending delete/update requests for CONSENSUS
31480
+ # peerings.
31481
+ # Corresponds to the JSON property `connectionStatus`
31482
+ # @return [Google::Apis::ComputeBeta::NetworkPeeringConnectionStatus]
31483
+ attr_accessor :connection_status
31484
+
29582
31485
  # Indicates whether full mesh connectivity is created and managed automatically
29583
31486
  # between peered networks. Currently this field should always be true since
29584
31487
  # Google Compute Engine will automatically create and manage subnetwork routes
@@ -29658,6 +31561,12 @@ module Google
29658
31561
  # @return [String]
29659
31562
  attr_accessor :state_details
29660
31563
 
31564
+ # The update strategy determines the semantics for updates and deletes to the
31565
+ # peering connection configuration.
31566
+ # Corresponds to the JSON property `updateStrategy`
31567
+ # @return [String]
31568
+ attr_accessor :update_strategy
31569
+
29661
31570
  def initialize(**args)
29662
31571
  update!(**args)
29663
31572
  end
@@ -29665,6 +31574,7 @@ module Google
29665
31574
  # Update properties of this object
29666
31575
  def update!(**args)
29667
31576
  @auto_create_routes = args[:auto_create_routes] if args.key?(:auto_create_routes)
31577
+ @connection_status = args[:connection_status] if args.key?(:connection_status)
29668
31578
  @exchange_subnet_routes = args[:exchange_subnet_routes] if args.key?(:exchange_subnet_routes)
29669
31579
  @export_custom_routes = args[:export_custom_routes] if args.key?(:export_custom_routes)
29670
31580
  @export_subnet_routes_with_public_ip = args[:export_subnet_routes_with_public_ip] if args.key?(:export_subnet_routes_with_public_ip)
@@ -29676,6 +31586,122 @@ module Google
29676
31586
  @stack_type = args[:stack_type] if args.key?(:stack_type)
29677
31587
  @state = args[:state] if args.key?(:state)
29678
31588
  @state_details = args[:state_details] if args.key?(:state_details)
31589
+ @update_strategy = args[:update_strategy] if args.key?(:update_strategy)
31590
+ end
31591
+ end
31592
+
31593
+ # [Output Only] Describes the state of a peering connection, not just the local
31594
+ # peering. This field provides information about the effective settings for the
31595
+ # connection as a whole, including pending delete/update requests for CONSENSUS
31596
+ # peerings.
31597
+ class NetworkPeeringConnectionStatus
31598
+ include Google::Apis::Core::Hashable
31599
+
31600
+ # The status of update/delete for a consensus peering connection. Only set when
31601
+ # connection_status.update_strategy is CONSENSUS or a network peering is
31602
+ # proposing to update the strategy to CONSENSUS.
31603
+ # Corresponds to the JSON property `consensusState`
31604
+ # @return [Google::Apis::ComputeBeta::NetworkPeeringConnectionStatusConsensusState]
31605
+ attr_accessor :consensus_state
31606
+
31607
+ # The active connectivity settings for the peering connection based on the
31608
+ # settings of the network peerings.
31609
+ # Corresponds to the JSON property `trafficConfiguration`
31610
+ # @return [Google::Apis::ComputeBeta::NetworkPeeringConnectionStatusTrafficConfiguration]
31611
+ attr_accessor :traffic_configuration
31612
+
31613
+ # The update strategy determines the update/delete semantics for this peering
31614
+ # connection.
31615
+ # Corresponds to the JSON property `updateStrategy`
31616
+ # @return [String]
31617
+ attr_accessor :update_strategy
31618
+
31619
+ def initialize(**args)
31620
+ update!(**args)
31621
+ end
31622
+
31623
+ # Update properties of this object
31624
+ def update!(**args)
31625
+ @consensus_state = args[:consensus_state] if args.key?(:consensus_state)
31626
+ @traffic_configuration = args[:traffic_configuration] if args.key?(:traffic_configuration)
31627
+ @update_strategy = args[:update_strategy] if args.key?(:update_strategy)
31628
+ end
31629
+ end
31630
+
31631
+ # The status of update/delete for a consensus peering connection. Only set when
31632
+ # connection_status.update_strategy is CONSENSUS or a network peering is
31633
+ # proposing to update the strategy to CONSENSUS.
31634
+ class NetworkPeeringConnectionStatusConsensusState
31635
+ include Google::Apis::Core::Hashable
31636
+
31637
+ # The status of the delete request.
31638
+ # Corresponds to the JSON property `deleteStatus`
31639
+ # @return [String]
31640
+ attr_accessor :delete_status
31641
+
31642
+ # The status of the update request.
31643
+ # Corresponds to the JSON property `updateStatus`
31644
+ # @return [String]
31645
+ attr_accessor :update_status
31646
+
31647
+ def initialize(**args)
31648
+ update!(**args)
31649
+ end
31650
+
31651
+ # Update properties of this object
31652
+ def update!(**args)
31653
+ @delete_status = args[:delete_status] if args.key?(:delete_status)
31654
+ @update_status = args[:update_status] if args.key?(:update_status)
31655
+ end
31656
+ end
31657
+
31658
+ #
31659
+ class NetworkPeeringConnectionStatusTrafficConfiguration
31660
+ include Google::Apis::Core::Hashable
31661
+
31662
+ # Whether custom routes are being exported to the peer network.
31663
+ # Corresponds to the JSON property `exportCustomRoutesToPeer`
31664
+ # @return [Boolean]
31665
+ attr_accessor :export_custom_routes_to_peer
31666
+ alias_method :export_custom_routes_to_peer?, :export_custom_routes_to_peer
31667
+
31668
+ # Whether subnet routes with public IP ranges are being exported to the peer
31669
+ # network.
31670
+ # Corresponds to the JSON property `exportSubnetRoutesWithPublicIpToPeer`
31671
+ # @return [Boolean]
31672
+ attr_accessor :export_subnet_routes_with_public_ip_to_peer
31673
+ alias_method :export_subnet_routes_with_public_ip_to_peer?, :export_subnet_routes_with_public_ip_to_peer
31674
+
31675
+ # Whether custom routes are being imported from the peer network.
31676
+ # Corresponds to the JSON property `importCustomRoutesFromPeer`
31677
+ # @return [Boolean]
31678
+ attr_accessor :import_custom_routes_from_peer
31679
+ alias_method :import_custom_routes_from_peer?, :import_custom_routes_from_peer
31680
+
31681
+ # Whether subnet routes with public IP ranges are being imported from the peer
31682
+ # network.
31683
+ # Corresponds to the JSON property `importSubnetRoutesWithPublicIpFromPeer`
31684
+ # @return [Boolean]
31685
+ attr_accessor :import_subnet_routes_with_public_ip_from_peer
31686
+ alias_method :import_subnet_routes_with_public_ip_from_peer?, :import_subnet_routes_with_public_ip_from_peer
31687
+
31688
+ # Which IP version(s) of traffic and routes are being imported or exported
31689
+ # between peer networks.
31690
+ # Corresponds to the JSON property `stackType`
31691
+ # @return [String]
31692
+ attr_accessor :stack_type
31693
+
31694
+ def initialize(**args)
31695
+ update!(**args)
31696
+ end
31697
+
31698
+ # Update properties of this object
31699
+ def update!(**args)
31700
+ @export_custom_routes_to_peer = args[:export_custom_routes_to_peer] if args.key?(:export_custom_routes_to_peer)
31701
+ @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)
31702
+ @import_custom_routes_from_peer = args[:import_custom_routes_from_peer] if args.key?(:import_custom_routes_from_peer)
31703
+ @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)
31704
+ @stack_type = args[:stack_type] if args.key?(:stack_type)
29679
31705
  end
29680
31706
  end
29681
31707
 
@@ -30351,6 +32377,25 @@ module Google
30351
32377
  end
30352
32378
  end
30353
32379
 
32380
+ #
32381
+ class NetworksRequestRemovePeeringRequest
32382
+ include Google::Apis::Core::Hashable
32383
+
32384
+ # Name of the peering, which should conform to RFC1035.
32385
+ # Corresponds to the JSON property `name`
32386
+ # @return [String]
32387
+ attr_accessor :name
32388
+
32389
+ def initialize(**args)
32390
+ update!(**args)
32391
+ end
32392
+
32393
+ # Update properties of this object
32394
+ def update!(**args)
32395
+ @name = args[:name] if args.key?(:name)
32396
+ end
32397
+ end
32398
+
30354
32399
  #
30355
32400
  class NetworksUpdatePeeringRequest
30356
32401
  include Google::Apis::Core::Hashable
@@ -34396,6 +36441,377 @@ module Google
34396
36441
  end
34397
36442
  end
34398
36443
 
36444
+ # Represents a single Google Compute Engine preview feature.
36445
+ class PreviewFeature
36446
+ include Google::Apis::Core::Hashable
36447
+
36448
+ # Specifies whether the feature is enabled or disabled.
36449
+ # Corresponds to the JSON property `activationStatus`
36450
+ # @return [String]
36451
+ attr_accessor :activation_status
36452
+
36453
+ # [Output Only] Creation timestamp in RFC3339 text format.
36454
+ # Corresponds to the JSON property `creationTimestamp`
36455
+ # @return [String]
36456
+ attr_accessor :creation_timestamp
36457
+
36458
+ # [Output Only] Description of the feature.
36459
+ # Corresponds to the JSON property `description`
36460
+ # @return [String]
36461
+ attr_accessor :description
36462
+
36463
+ # [Output Only] The unique identifier for the resource. This identifier is
36464
+ # defined by the server.
36465
+ # Corresponds to the JSON property `id`
36466
+ # @return [Fixnum]
36467
+ attr_accessor :id
36468
+
36469
+ # [Output only] The type of the feature. Always "compute#previewFeature" for
36470
+ # preview features.
36471
+ # Corresponds to the JSON property `kind`
36472
+ # @return [String]
36473
+ attr_accessor :kind
36474
+
36475
+ # Name of the feature.
36476
+ # Corresponds to the JSON property `name`
36477
+ # @return [String]
36478
+ attr_accessor :name
36479
+
36480
+ # Represents the rollout operation
36481
+ # Corresponds to the JSON property `rolloutOperation`
36482
+ # @return [Google::Apis::ComputeBeta::PreviewFeatureRolloutOperation]
36483
+ attr_accessor :rollout_operation
36484
+
36485
+ # [Output Only] Server-defined URL for the resource.
36486
+ # Corresponds to the JSON property `selfLink`
36487
+ # @return [String]
36488
+ attr_accessor :self_link
36489
+
36490
+ # [Output Only] The status of the feature.
36491
+ # Corresponds to the JSON property `status`
36492
+ # @return [Google::Apis::ComputeBeta::PreviewFeatureStatus]
36493
+ attr_accessor :status
36494
+
36495
+ def initialize(**args)
36496
+ update!(**args)
36497
+ end
36498
+
36499
+ # Update properties of this object
36500
+ def update!(**args)
36501
+ @activation_status = args[:activation_status] if args.key?(:activation_status)
36502
+ @creation_timestamp = args[:creation_timestamp] if args.key?(:creation_timestamp)
36503
+ @description = args[:description] if args.key?(:description)
36504
+ @id = args[:id] if args.key?(:id)
36505
+ @kind = args[:kind] if args.key?(:kind)
36506
+ @name = args[:name] if args.key?(:name)
36507
+ @rollout_operation = args[:rollout_operation] if args.key?(:rollout_operation)
36508
+ @self_link = args[:self_link] if args.key?(:self_link)
36509
+ @status = args[:status] if args.key?(:status)
36510
+ end
36511
+ end
36512
+
36513
+ #
36514
+ class PreviewFeatureList
36515
+ include Google::Apis::Core::Hashable
36516
+
36517
+ #
36518
+ # Corresponds to the JSON property `etag`
36519
+ # @return [String]
36520
+ attr_accessor :etag
36521
+
36522
+ # [Output Only] Unique identifier for the resource; defined by the server.
36523
+ # Corresponds to the JSON property `id`
36524
+ # @return [String]
36525
+ attr_accessor :id
36526
+
36527
+ # A list of PreviewFeature resources.
36528
+ # Corresponds to the JSON property `items`
36529
+ # @return [Array<Google::Apis::ComputeBeta::PreviewFeature>]
36530
+ attr_accessor :items
36531
+
36532
+ # [Output Only] This token allows you to get the next page of results for list
36533
+ # requests. If the number of results is larger than maxResults, use the
36534
+ # nextPageToken as a value for the query parameter pageToken in the next list
36535
+ # request. Subsequent list requests will have their own nextPageToken to
36536
+ # continue paging through the results.
36537
+ # Corresponds to the JSON property `nextPageToken`
36538
+ # @return [String]
36539
+ attr_accessor :next_page_token
36540
+
36541
+ # [Output Only] Server-defined URL for this resource.
36542
+ # Corresponds to the JSON property `selfLink`
36543
+ # @return [String]
36544
+ attr_accessor :self_link
36545
+
36546
+ # [Output Only] Unreachable resources. end_interface:
36547
+ # MixerListResponseWithEtagBuilder
36548
+ # Corresponds to the JSON property `unreachables`
36549
+ # @return [Array<String>]
36550
+ attr_accessor :unreachables
36551
+
36552
+ # [Output Only] Informational warning message.
36553
+ # Corresponds to the JSON property `warning`
36554
+ # @return [Google::Apis::ComputeBeta::PreviewFeatureList::Warning]
36555
+ attr_accessor :warning
36556
+
36557
+ def initialize(**args)
36558
+ update!(**args)
36559
+ end
36560
+
36561
+ # Update properties of this object
36562
+ def update!(**args)
36563
+ @etag = args[:etag] if args.key?(:etag)
36564
+ @id = args[:id] if args.key?(:id)
36565
+ @items = args[:items] if args.key?(:items)
36566
+ @next_page_token = args[:next_page_token] if args.key?(:next_page_token)
36567
+ @self_link = args[:self_link] if args.key?(:self_link)
36568
+ @unreachables = args[:unreachables] if args.key?(:unreachables)
36569
+ @warning = args[:warning] if args.key?(:warning)
36570
+ end
36571
+
36572
+ # [Output Only] Informational warning message.
36573
+ class Warning
36574
+ include Google::Apis::Core::Hashable
36575
+
36576
+ # [Output Only] A warning code, if applicable. For example, Compute Engine
36577
+ # returns NO_RESULTS_ON_PAGE if there are no results in the response.
36578
+ # Corresponds to the JSON property `code`
36579
+ # @return [String]
36580
+ attr_accessor :code
36581
+
36582
+ # [Output Only] Metadata about this warning in key: value format. For example: "
36583
+ # data": [ ` "key": "scope", "value": "zones/us-east1-d" `
36584
+ # Corresponds to the JSON property `data`
36585
+ # @return [Array<Google::Apis::ComputeBeta::PreviewFeatureList::Warning::Datum>]
36586
+ attr_accessor :data
36587
+
36588
+ # [Output Only] A human-readable description of the warning code.
36589
+ # Corresponds to the JSON property `message`
36590
+ # @return [String]
36591
+ attr_accessor :message
36592
+
36593
+ def initialize(**args)
36594
+ update!(**args)
36595
+ end
36596
+
36597
+ # Update properties of this object
36598
+ def update!(**args)
36599
+ @code = args[:code] if args.key?(:code)
36600
+ @data = args[:data] if args.key?(:data)
36601
+ @message = args[:message] if args.key?(:message)
36602
+ end
36603
+
36604
+ #
36605
+ class Datum
36606
+ include Google::Apis::Core::Hashable
36607
+
36608
+ # [Output Only] A key that provides more detail on the warning being returned.
36609
+ # For example, for warnings where there are no results in a list request for a
36610
+ # particular zone, this key might be scope and the key value might be the zone
36611
+ # name. Other examples might be a key indicating a deprecated resource and a
36612
+ # suggested replacement, or a warning about invalid network settings (for
36613
+ # example, if an instance attempts to perform IP forwarding but is not enabled
36614
+ # for IP forwarding).
36615
+ # Corresponds to the JSON property `key`
36616
+ # @return [String]
36617
+ attr_accessor :key
36618
+
36619
+ # [Output Only] A warning data value corresponding to the key.
36620
+ # Corresponds to the JSON property `value`
36621
+ # @return [String]
36622
+ attr_accessor :value
36623
+
36624
+ def initialize(**args)
36625
+ update!(**args)
36626
+ end
36627
+
36628
+ # Update properties of this object
36629
+ def update!(**args)
36630
+ @key = args[:key] if args.key?(:key)
36631
+ @value = args[:value] if args.key?(:value)
36632
+ end
36633
+ end
36634
+ end
36635
+ end
36636
+
36637
+ # Represents the rollout operation
36638
+ class PreviewFeatureRolloutOperation
36639
+ include Google::Apis::Core::Hashable
36640
+
36641
+ #
36642
+ # Corresponds to the JSON property `rolloutInput`
36643
+ # @return [Google::Apis::ComputeBeta::PreviewFeatureRolloutOperationRolloutInput]
36644
+ attr_accessor :rollout_input
36645
+
36646
+ #
36647
+ # Corresponds to the JSON property `rolloutStatus`
36648
+ # @return [Google::Apis::ComputeBeta::PreviewFeatureRolloutOperationRolloutStatus]
36649
+ attr_accessor :rollout_status
36650
+
36651
+ def initialize(**args)
36652
+ update!(**args)
36653
+ end
36654
+
36655
+ # Update properties of this object
36656
+ def update!(**args)
36657
+ @rollout_input = args[:rollout_input] if args.key?(:rollout_input)
36658
+ @rollout_status = args[:rollout_status] if args.key?(:rollout_status)
36659
+ end
36660
+ end
36661
+
36662
+ #
36663
+ class PreviewFeatureRolloutOperationRolloutInput
36664
+ include Google::Apis::Core::Hashable
36665
+
36666
+ # The name of the rollout plan Ex. organizations//locations/global/rolloutPlans/
36667
+ # Ex. folders//locations/global/rolloutPlans/ Ex. projects//locations/global/
36668
+ # rolloutPlans/.
36669
+ # Corresponds to the JSON property `name`
36670
+ # @return [String]
36671
+ attr_accessor :name
36672
+
36673
+ # Predefined rollout plan.
36674
+ # Corresponds to the JSON property `predefinedRolloutPlan`
36675
+ # @return [String]
36676
+ attr_accessor :predefined_rollout_plan
36677
+
36678
+ # The UUID of the retry action. Only needed if this is a retry for an existing
36679
+ # rollout. This can be used after the user canceled a rollout and want to retry
36680
+ # it with no changes.
36681
+ # Corresponds to the JSON property `retryUuid`
36682
+ # @return [String]
36683
+ attr_accessor :retry_uuid
36684
+
36685
+ def initialize(**args)
36686
+ update!(**args)
36687
+ end
36688
+
36689
+ # Update properties of this object
36690
+ def update!(**args)
36691
+ @name = args[:name] if args.key?(:name)
36692
+ @predefined_rollout_plan = args[:predefined_rollout_plan] if args.key?(:predefined_rollout_plan)
36693
+ @retry_uuid = args[:retry_uuid] if args.key?(:retry_uuid)
36694
+ end
36695
+ end
36696
+
36697
+ #
36698
+ class PreviewFeatureRolloutOperationRolloutStatus
36699
+ include Google::Apis::Core::Hashable
36700
+
36701
+ # Output only. The ongoing rollout resources. There can be multiple ongoing
36702
+ # rollouts for a resource.
36703
+ # Corresponds to the JSON property `ongoingRollouts`
36704
+ # @return [Array<Google::Apis::ComputeBeta::PreviewFeatureRolloutOperationRolloutStatusRolloutMetadata>]
36705
+ attr_accessor :ongoing_rollouts
36706
+
36707
+ # Output only. The last completed rollout resource. This field will not be
36708
+ # populated until the first rollout is completed.
36709
+ # Corresponds to the JSON property `previousRollout`
36710
+ # @return [Google::Apis::ComputeBeta::PreviewFeatureRolloutOperationRolloutStatusRolloutMetadata]
36711
+ attr_accessor :previous_rollout
36712
+
36713
+ def initialize(**args)
36714
+ update!(**args)
36715
+ end
36716
+
36717
+ # Update properties of this object
36718
+ def update!(**args)
36719
+ @ongoing_rollouts = args[:ongoing_rollouts] if args.key?(:ongoing_rollouts)
36720
+ @previous_rollout = args[:previous_rollout] if args.key?(:previous_rollout)
36721
+ end
36722
+ end
36723
+
36724
+ #
36725
+ class PreviewFeatureRolloutOperationRolloutStatusRolloutMetadata
36726
+ include Google::Apis::Core::Hashable
36727
+
36728
+ # The name of the rollout Ex. organizations//locations/global/rollouts/ Ex.
36729
+ # folders//locations/global/rollouts/ Ex. projects//locations/global/rollouts/.
36730
+ # Corresponds to the JSON property `rollout`
36731
+ # @return [String]
36732
+ attr_accessor :rollout
36733
+
36734
+ # The name of the rollout plan Ex. organizations//locations/global/rolloutPlans/
36735
+ # Ex. folders//locations/global/rolloutPlans/ Ex. projects//locations/global/
36736
+ # rolloutPlans/.
36737
+ # Corresponds to the JSON property `rolloutPlan`
36738
+ # @return [String]
36739
+ attr_accessor :rollout_plan
36740
+
36741
+ # [Output Only] The status of the feature.
36742
+ # Corresponds to the JSON property `status`
36743
+ # @return [Google::Apis::ComputeBeta::PreviewFeatureStatus]
36744
+ attr_accessor :status
36745
+
36746
+ def initialize(**args)
36747
+ update!(**args)
36748
+ end
36749
+
36750
+ # Update properties of this object
36751
+ def update!(**args)
36752
+ @rollout = args[:rollout] if args.key?(:rollout)
36753
+ @rollout_plan = args[:rollout_plan] if args.key?(:rollout_plan)
36754
+ @status = args[:status] if args.key?(:status)
36755
+ end
36756
+ end
36757
+
36758
+ # [Output Only] The status of the feature.
36759
+ class PreviewFeatureStatus
36760
+ include Google::Apis::Core::Hashable
36761
+
36762
+ # [Output Only] The description of the feature.
36763
+ # Corresponds to the JSON property `description`
36764
+ # @return [String]
36765
+ attr_accessor :description
36766
+
36767
+ #
36768
+ # Corresponds to the JSON property `releaseStatus`
36769
+ # @return [Google::Apis::ComputeBeta::PreviewFeatureStatusReleaseStatus]
36770
+ attr_accessor :release_status
36771
+
36772
+ def initialize(**args)
36773
+ update!(**args)
36774
+ end
36775
+
36776
+ # Update properties of this object
36777
+ def update!(**args)
36778
+ @description = args[:description] if args.key?(:description)
36779
+ @release_status = args[:release_status] if args.key?(:release_status)
36780
+ end
36781
+ end
36782
+
36783
+ #
36784
+ class PreviewFeatureStatusReleaseStatus
36785
+ include Google::Apis::Core::Hashable
36786
+
36787
+ # [Output Only] The stage of the feature.
36788
+ # Corresponds to the JSON property `stage`
36789
+ # @return [String]
36790
+ attr_accessor :stage
36791
+
36792
+ # Represents a whole or partial calendar date, such as a birthday. The time of
36793
+ # day and time zone are either specified elsewhere or are insignificant. The
36794
+ # date is relative to the Gregorian Calendar. This can represent one of the
36795
+ # following: * A full date, with non-zero year, month, and day values. * A month
36796
+ # and day, with a zero year (for example, an anniversary). * A year on its own,
36797
+ # with a zero month and a zero day. * A year and month, with a zero day (for
36798
+ # example, a credit card expiration date). Related types: * google.type.
36799
+ # TimeOfDay * google.type.DateTime * google.protobuf.Timestamp
36800
+ # Corresponds to the JSON property `updateDate`
36801
+ # @return [Google::Apis::ComputeBeta::Date]
36802
+ attr_accessor :update_date
36803
+
36804
+ def initialize(**args)
36805
+ update!(**args)
36806
+ end
36807
+
36808
+ # Update properties of this object
36809
+ def update!(**args)
36810
+ @stage = args[:stage] if args.key?(:stage)
36811
+ @update_date = args[:update_date] if args.key?(:update_date)
36812
+ end
36813
+ end
36814
+
34399
36815
  # Represents a Project resource. A project is used to organize resources in a
34400
36816
  # Google Cloud Platform environment. For more information, read about the
34401
36817
  # Resource Hierarchy.
@@ -35072,8 +37488,8 @@ module Google
35072
37488
  # following values: - `INITIALIZING` The public delegated prefix is being
35073
37489
  # initialized and addresses cannot be created yet. - `READY_TO_ANNOUNCE` The
35074
37490
  # public delegated prefix is a live migration prefix and is active. - `ANNOUNCED`
35075
- # The public delegated prefix is active. - `DELETING` The public delegated
35076
- # prefix is being deprovsioned.
37491
+ # The public delegated prefix is announced and ready to use. - `DELETING` The
37492
+ # public delegated prefix is being deprovsioned.
35077
37493
  # Corresponds to the JSON property `status`
35078
37494
  # @return [String]
35079
37495
  attr_accessor :status
@@ -37729,6 +40145,12 @@ module Google
37729
40145
  # @return [String]
37730
40146
  attr_accessor :description
37731
40147
 
40148
+ # Indicates if this group of VMs have emergent maintenance enabled.
40149
+ # Corresponds to the JSON property `enableEmergentMaintenance`
40150
+ # @return [Boolean]
40151
+ attr_accessor :enable_emergent_maintenance
40152
+ alias_method :enable_emergent_maintenance?, :enable_emergent_maintenance
40153
+
37732
40154
  # [Output Only] The unique identifier for the resource. This identifier is
37733
40155
  # defined by the server.
37734
40156
  # Corresponds to the JSON property `id`
@@ -37837,6 +40259,7 @@ module Google
37837
40259
  @delete_at_time = args[:delete_at_time] if args.key?(:delete_at_time)
37838
40260
  @deployment_type = args[:deployment_type] if args.key?(:deployment_type)
37839
40261
  @description = args[:description] if args.key?(:description)
40262
+ @enable_emergent_maintenance = args[:enable_emergent_maintenance] if args.key?(:enable_emergent_maintenance)
37840
40263
  @id = args[:id] if args.key?(:id)
37841
40264
  @kind = args[:kind] if args.key?(:kind)
37842
40265
  @linked_commitments = args[:linked_commitments] if args.key?(:linked_commitments)
@@ -40352,6 +42775,11 @@ module Google
40352
42775
  # @return [Array<Google::Apis::ComputeBeta::RouterNat>]
40353
42776
  attr_accessor :nats
40354
42777
 
42778
+ # URI of the ncc_gateway to which this router associated.
42779
+ # Corresponds to the JSON property `nccGateway`
42780
+ # @return [String]
42781
+ attr_accessor :ncc_gateway
42782
+
40355
42783
  # URI of the network to which this router belongs.
40356
42784
  # Corresponds to the JSON property `network`
40357
42785
  # @return [String]
@@ -40386,6 +42814,7 @@ module Google
40386
42814
  @md5_authentication_keys = args[:md5_authentication_keys] if args.key?(:md5_authentication_keys)
40387
42815
  @name = args[:name] if args.key?(:name)
40388
42816
  @nats = args[:nats] if args.key?(:nats)
42817
+ @ncc_gateway = args[:ncc_gateway] if args.key?(:ncc_gateway)
40389
42818
  @network = args[:network] if args.key?(:network)
40390
42819
  @region = args[:region] if args.key?(:region)
40391
42820
  @self_link = args[:self_link] if args.key?(:self_link)
@@ -41534,6 +43963,11 @@ module Google
41534
43963
  # @return [Array<Google::Apis::ComputeBeta::RouterStatusNatStatus>]
41535
43964
  attr_accessor :nat_status
41536
43965
 
43966
+ # URI of the ncc_gateway to which this router associated.
43967
+ # Corresponds to the JSON property `nccGateway`
43968
+ # @return [String]
43969
+ attr_accessor :ncc_gateway
43970
+
41537
43971
  # URI of the network to which this router belongs.
41538
43972
  # Corresponds to the JSON property `network`
41539
43973
  # @return [String]
@@ -41549,6 +43983,7 @@ module Google
41549
43983
  @best_routes_for_router = args[:best_routes_for_router] if args.key?(:best_routes_for_router)
41550
43984
  @bgp_peer_status = args[:bgp_peer_status] if args.key?(:bgp_peer_status)
41551
43985
  @nat_status = args[:nat_status] if args.key?(:nat_status)
43986
+ @ncc_gateway = args[:ncc_gateway] if args.key?(:ncc_gateway)
41552
43987
  @network = args[:network] if args.key?(:network)
41553
43988
  end
41554
43989
  end
@@ -43462,8 +45897,9 @@ module Google
43462
45897
  # @return [String]
43463
45898
  attr_accessor :log_level
43464
45899
 
43465
- # The maximum request size chosen by the customer with Waf enabled. Currently
43466
- # only "8KB" and "128KB" are supported. Values are case insensitive.
45900
+ # The maximum request size chosen by the customer with Waf enabled. Values
45901
+ # supported are "8KB", "16KB, "32KB", "48KB" and "64KB". Values are case
45902
+ # insensitive.
43467
45903
  # Corresponds to the JSON property `requestBodyInspectionSize`
43468
45904
  # @return [String]
43469
45905
  attr_accessor :request_body_inspection_size
@@ -49377,6 +51813,18 @@ module Google
49377
51813
  # @return [String]
49378
51814
  attr_accessor :state
49379
51815
 
51816
+ # Output only. [Output Only] The array of external IPv6 network ranges reserved
51817
+ # from the subnetwork's external IPv6 range for system use.
51818
+ # Corresponds to the JSON property `systemReservedExternalIpv6Ranges`
51819
+ # @return [Array<String>]
51820
+ attr_accessor :system_reserved_external_ipv6_ranges
51821
+
51822
+ # Output only. [Output Only] The array of internal IPv6 network ranges reserved
51823
+ # from the subnetwork's internal IPv6 range for system use.
51824
+ # Corresponds to the JSON property `systemReservedInternalIpv6Ranges`
51825
+ # @return [Array<String>]
51826
+ attr_accessor :system_reserved_internal_ipv6_ranges
51827
+
49380
51828
  def initialize(**args)
49381
51829
  update!(**args)
49382
51830
  end
@@ -49412,6 +51860,8 @@ module Google
49412
51860
  @self_link = args[:self_link] if args.key?(:self_link)
49413
51861
  @stack_type = args[:stack_type] if args.key?(:stack_type)
49414
51862
  @state = args[:state] if args.key?(:state)
51863
+ @system_reserved_external_ipv6_ranges = args[:system_reserved_external_ipv6_ranges] if args.key?(:system_reserved_external_ipv6_ranges)
51864
+ @system_reserved_internal_ipv6_ranges = args[:system_reserved_internal_ipv6_ranges] if args.key?(:system_reserved_internal_ipv6_ranges)
49415
51865
  end
49416
51866
  end
49417
51867
 
@@ -49897,6 +52347,95 @@ module Google
49897
52347
  end
49898
52348
  end
49899
52349
 
52350
+ #
52351
+ class SubnetworksScopedWarning
52352
+ include Google::Apis::Core::Hashable
52353
+
52354
+ # Name of the scope containing this set of Subnetworks.
52355
+ # Corresponds to the JSON property `scopeName`
52356
+ # @return [String]
52357
+ attr_accessor :scope_name
52358
+
52359
+ # An informational warning about unreachable scope
52360
+ # Corresponds to the JSON property `warning`
52361
+ # @return [Google::Apis::ComputeBeta::SubnetworksScopedWarning::Warning]
52362
+ attr_accessor :warning
52363
+
52364
+ def initialize(**args)
52365
+ update!(**args)
52366
+ end
52367
+
52368
+ # Update properties of this object
52369
+ def update!(**args)
52370
+ @scope_name = args[:scope_name] if args.key?(:scope_name)
52371
+ @warning = args[:warning] if args.key?(:warning)
52372
+ end
52373
+
52374
+ # An informational warning about unreachable scope
52375
+ class Warning
52376
+ include Google::Apis::Core::Hashable
52377
+
52378
+ # [Output Only] A warning code, if applicable. For example, Compute Engine
52379
+ # returns NO_RESULTS_ON_PAGE if there are no results in the response.
52380
+ # Corresponds to the JSON property `code`
52381
+ # @return [String]
52382
+ attr_accessor :code
52383
+
52384
+ # [Output Only] Metadata about this warning in key: value format. For example: "
52385
+ # data": [ ` "key": "scope", "value": "zones/us-east1-d" `
52386
+ # Corresponds to the JSON property `data`
52387
+ # @return [Array<Google::Apis::ComputeBeta::SubnetworksScopedWarning::Warning::Datum>]
52388
+ attr_accessor :data
52389
+
52390
+ # [Output Only] A human-readable description of the warning code.
52391
+ # Corresponds to the JSON property `message`
52392
+ # @return [String]
52393
+ attr_accessor :message
52394
+
52395
+ def initialize(**args)
52396
+ update!(**args)
52397
+ end
52398
+
52399
+ # Update properties of this object
52400
+ def update!(**args)
52401
+ @code = args[:code] if args.key?(:code)
52402
+ @data = args[:data] if args.key?(:data)
52403
+ @message = args[:message] if args.key?(:message)
52404
+ end
52405
+
52406
+ #
52407
+ class Datum
52408
+ include Google::Apis::Core::Hashable
52409
+
52410
+ # [Output Only] A key that provides more detail on the warning being returned.
52411
+ # For example, for warnings where there are no results in a list request for a
52412
+ # particular zone, this key might be scope and the key value might be the zone
52413
+ # name. Other examples might be a key indicating a deprecated resource and a
52414
+ # suggested replacement, or a warning about invalid network settings (for
52415
+ # example, if an instance attempts to perform IP forwarding but is not enabled
52416
+ # for IP forwarding).
52417
+ # Corresponds to the JSON property `key`
52418
+ # @return [String]
52419
+ attr_accessor :key
52420
+
52421
+ # [Output Only] A warning data value corresponding to the key.
52422
+ # Corresponds to the JSON property `value`
52423
+ # @return [String]
52424
+ attr_accessor :value
52425
+
52426
+ def initialize(**args)
52427
+ update!(**args)
52428
+ end
52429
+
52430
+ # Update properties of this object
52431
+ def update!(**args)
52432
+ @key = args[:key] if args.key?(:key)
52433
+ @value = args[:value] if args.key?(:value)
52434
+ end
52435
+ end
52436
+ end
52437
+ end
52438
+
49900
52439
  #
49901
52440
  class SubnetworksSetPrivateIpGoogleAccessRequest
49902
52441
  include Google::Apis::Core::Hashable
@@ -54727,11 +57266,22 @@ module Google
54727
57266
  # @return [String]
54728
57267
  attr_accessor :next_page_token
54729
57268
 
57269
+ # [Output Only] Informational warning messages for failures encountered from
57270
+ # scopes.
57271
+ # Corresponds to the JSON property `scopedWarnings`
57272
+ # @return [Array<Google::Apis::ComputeBeta::SubnetworksScopedWarning>]
57273
+ attr_accessor :scoped_warnings
57274
+
54730
57275
  # [Output Only] Server-defined URL for this resource.
54731
57276
  # Corresponds to the JSON property `selfLink`
54732
57277
  # @return [String]
54733
57278
  attr_accessor :self_link
54734
57279
 
57280
+ # [Output Only] Unreachable resources.
57281
+ # Corresponds to the JSON property `unreachables`
57282
+ # @return [Array<String>]
57283
+ attr_accessor :unreachables
57284
+
54735
57285
  # [Output Only] Informational warning message.
54736
57286
  # Corresponds to the JSON property `warning`
54737
57287
  # @return [Google::Apis::ComputeBeta::UsableSubnetworksAggregatedList::Warning]
@@ -54747,7 +57297,9 @@ module Google
54747
57297
  @items = args[:items] if args.key?(:items)
54748
57298
  @kind = args[:kind] if args.key?(:kind)
54749
57299
  @next_page_token = args[:next_page_token] if args.key?(:next_page_token)
57300
+ @scoped_warnings = args[:scoped_warnings] if args.key?(:scoped_warnings)
54750
57301
  @self_link = args[:self_link] if args.key?(:self_link)
57302
+ @unreachables = args[:unreachables] if args.key?(:unreachables)
54751
57303
  @warning = args[:warning] if args.key?(:warning)
54752
57304
  end
54753
57305