google-apis-compute_beta 0.113.0 → 0.114.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -3913,7 +3913,7 @@ module Google
3913
3913
  # faster table lookup build times and host selection times. For more information
3914
3914
  # about Maglev, see https://ai.google/research/pubs/pub44824 This field is
3915
3915
  # applicable to either: - A regional backend service with the service_protocol
3916
- # set to HTTP, HTTPS, or HTTP2, and load_balancing_scheme set to
3916
+ # set to HTTP, HTTPS, HTTP2 or H2C, and load_balancing_scheme set to
3917
3917
  # INTERNAL_MANAGED. - A global backend service with the load_balancing_scheme
3918
3918
  # set to INTERNAL_SELF_MANAGED, INTERNAL_MANAGED, or EXTERNAL_MANAGED. If
3919
3919
  # sessionAffinity is not configured—that is, if session affinity remains at the
@@ -3996,11 +3996,11 @@ module Google
3996
3996
  attr_accessor :port_name
3997
3997
 
3998
3998
  # The protocol this BackendService uses to communicate with backends. Possible
3999
- # values are HTTP, HTTPS, HTTP2, TCP, SSL, UDP or GRPC. depending on the chosen
4000
- # load balancer or Traffic Director configuration. Refer to the documentation
4001
- # for the load balancers or for Traffic Director for more information. Must be
4002
- # set to GRPC when the backend service is referenced by a URL map that is bound
4003
- # to target gRPC proxy.
3999
+ # values are HTTP, HTTPS, HTTP2, H2C, TCP, SSL, UDP or GRPC. depending on the
4000
+ # chosen load balancer or Traffic Director configuration. Refer to the
4001
+ # documentation for the load balancers or for Traffic Director for more
4002
+ # information. Must be set to GRPC when the backend service is referenced by a
4003
+ # URL map that is bound to target gRPC proxy.
4004
4004
  # Corresponds to the JSON property `protocol`
4005
4005
  # @return [String]
4006
4006
  attr_accessor :protocol
@@ -4764,6 +4764,17 @@ module Google
4764
4764
  # @return [String]
4765
4765
  attr_accessor :fast_ip_move
4766
4766
 
4767
+ # Selects one of the network endpoints attached to the backend NEGs of this
4768
+ # service as the active endpoint (the leader) that receives all traffic. When
4769
+ # the leader changes, there is no connection draining to persist existing
4770
+ # connections on the old leader. You are responsible for selecting a suitable
4771
+ # endpoint as the leader. For example, preferring a healthy endpoint over
4772
+ # unhealthy ones. Note that this service does not track backend endpoint health,
4773
+ # and selects the configured leader unconditionally.
4774
+ # Corresponds to the JSON property `leader`
4775
+ # @return [Google::Apis::ComputeBeta::BackendServiceHaPolicyLeader]
4776
+ attr_accessor :leader
4777
+
4767
4778
  def initialize(**args)
4768
4779
  update!(**args)
4769
4780
  end
@@ -4771,6 +4782,62 @@ module Google
4771
4782
  # Update properties of this object
4772
4783
  def update!(**args)
4773
4784
  @fast_ip_move = args[:fast_ip_move] if args.key?(:fast_ip_move)
4785
+ @leader = args[:leader] if args.key?(:leader)
4786
+ end
4787
+ end
4788
+
4789
+ #
4790
+ class BackendServiceHaPolicyLeader
4791
+ include Google::Apis::Core::Hashable
4792
+
4793
+ # A fully-qualified URL (starting with https://www.googleapis.com/) of the zonal
4794
+ # Network Endpoint Group (NEG) with `GCE_VM_IP` endpoints that the leader is
4795
+ # attached to. The leader's backendGroup must already be specified as a backend
4796
+ # of this backend service. Removing a backend that is designated as the leader's
4797
+ # backendGroup is not permitted.
4798
+ # Corresponds to the JSON property `backendGroup`
4799
+ # @return [String]
4800
+ attr_accessor :backend_group
4801
+
4802
+ # The network endpoint within the leader.backendGroup that is designated as the
4803
+ # leader. This network endpoint cannot be detached from the NEG specified in the
4804
+ # haPolicy.leader.backendGroup until the leader is updated with another network
4805
+ # endpoint, or the leader is removed from the haPolicy.
4806
+ # Corresponds to the JSON property `networkEndpoint`
4807
+ # @return [Google::Apis::ComputeBeta::BackendServiceHaPolicyLeaderNetworkEndpoint]
4808
+ attr_accessor :network_endpoint
4809
+
4810
+ def initialize(**args)
4811
+ update!(**args)
4812
+ end
4813
+
4814
+ # Update properties of this object
4815
+ def update!(**args)
4816
+ @backend_group = args[:backend_group] if args.key?(:backend_group)
4817
+ @network_endpoint = args[:network_endpoint] if args.key?(:network_endpoint)
4818
+ end
4819
+ end
4820
+
4821
+ #
4822
+ class BackendServiceHaPolicyLeaderNetworkEndpoint
4823
+ include Google::Apis::Core::Hashable
4824
+
4825
+ # The name of the VM instance of the leader network endpoint. The instance must
4826
+ # already be attached to the NEG specified in the haPolicy.leader.backendGroup.
4827
+ # The name must be 1-63 characters long, and comply with RFC1035. Authorization
4828
+ # requires the following IAM permission on the specified resource instance:
4829
+ # compute.instances.use
4830
+ # Corresponds to the JSON property `instance`
4831
+ # @return [String]
4832
+ attr_accessor :instance
4833
+
4834
+ def initialize(**args)
4835
+ update!(**args)
4836
+ end
4837
+
4838
+ # Update properties of this object
4839
+ def update!(**args)
4840
+ @instance = args[:instance] if args.key?(:instance)
4774
4841
  end
4775
4842
  end
4776
4843
 
@@ -6122,6 +6189,55 @@ module Google
6122
6189
  end
6123
6190
  end
6124
6191
 
6192
+ #
6193
+ class BulkSetLabelsRequest
6194
+ include Google::Apis::Core::Hashable
6195
+
6196
+ # The fingerprint of the previous set of labels for this resource, used to
6197
+ # detect conflicts. The fingerprint is initially generated by Compute Engine and
6198
+ # changes after every request to modify or update labels. You may optionally
6199
+ # provide an up-to-date fingerprint hash in order to update or change labels.
6200
+ # Make a get() request to the resource to get the latest fingerprint.
6201
+ # Corresponds to the JSON property `labelFingerprint`
6202
+ # NOTE: Values are automatically base64 encoded/decoded in the client library.
6203
+ # @return [String]
6204
+ attr_accessor :label_fingerprint
6205
+
6206
+ # The labels to set for this resource.
6207
+ # Corresponds to the JSON property `labels`
6208
+ # @return [Hash<String,String>]
6209
+ attr_accessor :labels
6210
+
6211
+ def initialize(**args)
6212
+ update!(**args)
6213
+ end
6214
+
6215
+ # Update properties of this object
6216
+ def update!(**args)
6217
+ @label_fingerprint = args[:label_fingerprint] if args.key?(:label_fingerprint)
6218
+ @labels = args[:labels] if args.key?(:labels)
6219
+ end
6220
+ end
6221
+
6222
+ #
6223
+ class BulkZoneSetLabelsRequest
6224
+ include Google::Apis::Core::Hashable
6225
+
6226
+ #
6227
+ # Corresponds to the JSON property `requests`
6228
+ # @return [Array<Google::Apis::ComputeBeta::BulkSetLabelsRequest>]
6229
+ attr_accessor :requests
6230
+
6231
+ def initialize(**args)
6232
+ update!(**args)
6233
+ end
6234
+
6235
+ # Update properties of this object
6236
+ def update!(**args)
6237
+ @requests = args[:requests] if args.key?(:requests)
6238
+ end
6239
+ end
6240
+
6125
6241
  #
6126
6242
  class BundledLocalSsds
6127
6243
  include Google::Apis::Core::Hashable
@@ -7510,6 +7626,47 @@ module Google
7510
7626
  end
7511
7627
  end
7512
7628
 
7629
+ # Represents a whole or partial calendar date, such as a birthday. The time of
7630
+ # day and time zone are either specified elsewhere or are insignificant. The
7631
+ # date is relative to the Gregorian Calendar. This can represent one of the
7632
+ # following: * A full date, with non-zero year, month, and day values. * A month
7633
+ # and day, with a zero year (for example, an anniversary). * A year on its own,
7634
+ # with a zero month and a zero day. * A year and month, with a zero day (for
7635
+ # example, a credit card expiration date). Related types: * google.type.
7636
+ # TimeOfDay * google.type.DateTime * google.protobuf.Timestamp
7637
+ class Date
7638
+ include Google::Apis::Core::Hashable
7639
+
7640
+ # Day of a month. Must be from 1 to 31 and valid for the year and month, or 0 to
7641
+ # specify a year by itself or a year and month where the day isn't significant.
7642
+ # Corresponds to the JSON property `day`
7643
+ # @return [Fixnum]
7644
+ attr_accessor :day
7645
+
7646
+ # Month of a year. Must be from 1 to 12, or 0 to specify a year without a month
7647
+ # and day.
7648
+ # Corresponds to the JSON property `month`
7649
+ # @return [Fixnum]
7650
+ attr_accessor :month
7651
+
7652
+ # Year of the date. Must be from 1 to 9999, or 0 to specify a date without a
7653
+ # year.
7654
+ # Corresponds to the JSON property `year`
7655
+ # @return [Fixnum]
7656
+ attr_accessor :year
7657
+
7658
+ def initialize(**args)
7659
+ update!(**args)
7660
+ end
7661
+
7662
+ # Update properties of this object
7663
+ def update!(**args)
7664
+ @day = args[:day] if args.key?(:day)
7665
+ @month = args[:month] if args.key?(:month)
7666
+ @year = args[:year] if args.key?(:year)
7667
+ end
7668
+ end
7669
+
7513
7670
  # Deprecation status for a public resource.
7514
7671
  class DeprecationStatus
7515
7672
  include Google::Apis::Core::Hashable
@@ -12025,6 +12182,12 @@ module Google
12025
12182
  # @return [String]
12026
12183
  attr_accessor :description
12027
12184
 
12185
+ # Indicates if this group of VMs have emergent maintenance enabled.
12186
+ # Corresponds to the JSON property `enableEmergentMaintenance`
12187
+ # @return [Boolean]
12188
+ attr_accessor :enable_emergent_maintenance
12189
+ alias_method :enable_emergent_maintenance?, :enable_emergent_maintenance
12190
+
12028
12191
  # [Output Only] A unique identifier for this future reservation. The server
12029
12192
  # defines this identifier.
12030
12193
  # Corresponds to the JSON property `id`
@@ -12138,6 +12301,7 @@ module Google
12138
12301
  @creation_timestamp = args[:creation_timestamp] if args.key?(:creation_timestamp)
12139
12302
  @deployment_type = args[:deployment_type] if args.key?(:deployment_type)
12140
12303
  @description = args[:description] if args.key?(:description)
12304
+ @enable_emergent_maintenance = args[:enable_emergent_maintenance] if args.key?(:enable_emergent_maintenance)
12141
12305
  @id = args[:id] if args.key?(:id)
12142
12306
  @kind = args[:kind] if args.key?(:kind)
12143
12307
  @name = args[:name] if args.key?(:name)
@@ -22564,6 +22728,12 @@ module Google
22564
22728
  # @return [Array<String>]
22565
22729
  attr_accessor :interconnect_attachments
22566
22730
 
22731
+ # [Output Only] URLs of InterconnectGroups that include this Interconnect. Order
22732
+ # is arbitrary and items are unique.
22733
+ # Corresponds to the JSON property `interconnectGroups`
22734
+ # @return [Array<String>]
22735
+ attr_accessor :interconnect_groups
22736
+
22567
22737
  # Type of interconnect, which can take one of the following values: - PARTNER: A
22568
22738
  # partner-managed interconnection shared between customers though a partner. -
22569
22739
  # DEDICATED: A dedicated physical interconnection with the customer. Note that a
@@ -22739,6 +22909,7 @@ module Google
22739
22909
  @google_reference_id = args[:google_reference_id] if args.key?(:google_reference_id)
22740
22910
  @id = args[:id] if args.key?(:id)
22741
22911
  @interconnect_attachments = args[:interconnect_attachments] if args.key?(:interconnect_attachments)
22912
+ @interconnect_groups = args[:interconnect_groups] if args.key?(:interconnect_groups)
22742
22913
  @interconnect_type = args[:interconnect_type] if args.key?(:interconnect_type)
22743
22914
  @kind = args[:kind] if args.key?(:kind)
22744
22915
  @label_fingerprint = args[:label_fingerprint] if args.key?(:label_fingerprint)
@@ -22874,6 +23045,11 @@ module Google
22874
23045
  attr_accessor :admin_enabled
22875
23046
  alias_method :admin_enabled?, :admin_enabled
22876
23047
 
23048
+ # [Output Only] URL of the AttachmentGroup that includes this Attachment.
23049
+ # Corresponds to the JSON property `attachmentGroup`
23050
+ # @return [String]
23051
+ attr_accessor :attachment_group
23052
+
22877
23053
  # Provisioned bandwidth capacity for the interconnect attachment. For
22878
23054
  # attachments of type DEDICATED, the user can set the bandwidth. For attachments
22879
23055
  # of type PARTNER, the Google Partner that is operating the interconnect must
@@ -22887,6 +23063,38 @@ module Google
22887
23063
  # @return [String]
22888
23064
  attr_accessor :bandwidth
22889
23065
 
23066
+ # Single IPv4 address + prefix length to be configured on the cloud router
23067
+ # interface for this interconnect attachment. - Both
23068
+ # candidate_cloud_router_ip_address and candidate_customer_router_ip_address
23069
+ # fields must be set or both must be unset. - Prefix length of both
23070
+ # candidate_cloud_router_ip_address and candidate_customer_router_ip_address
23071
+ # must be the same. - Max prefix length is 31.
23072
+ # Corresponds to the JSON property `candidateCloudRouterIpAddress`
23073
+ # @return [String]
23074
+ attr_accessor :candidate_cloud_router_ip_address
23075
+
23076
+ # Single IPv6 address + prefix length to be configured on the cloud router
23077
+ # interface for this interconnect attachment. - Both
23078
+ # candidate_cloud_router_ipv6_address and candidate_customer_router_ipv6_address
23079
+ # fields must be set or both must be unset. - Prefix length of both
23080
+ # candidate_cloud_router_ipv6_address and candidate_customer_router_ipv6_address
23081
+ # must be the same. - Max prefix length is 126.
23082
+ # Corresponds to the JSON property `candidateCloudRouterIpv6Address`
23083
+ # @return [String]
23084
+ attr_accessor :candidate_cloud_router_ipv6_address
23085
+
23086
+ # Single IPv4 address + prefix length to be configured on the customer router
23087
+ # interface for this interconnect attachment.
23088
+ # Corresponds to the JSON property `candidateCustomerRouterIpAddress`
23089
+ # @return [String]
23090
+ attr_accessor :candidate_customer_router_ip_address
23091
+
23092
+ # Single IPv6 address + prefix length to be configured on the customer router
23093
+ # interface for this interconnect attachment.
23094
+ # Corresponds to the JSON property `candidateCustomerRouterIpv6Address`
23095
+ # @return [String]
23096
+ attr_accessor :candidate_customer_router_ipv6_address
23097
+
22890
23098
  # This field is not available.
22891
23099
  # Corresponds to the JSON property `candidateIpv6Subnets`
22892
23100
  # @return [Array<String>]
@@ -23047,8 +23255,8 @@ module Google
23047
23255
  attr_accessor :labels
23048
23256
 
23049
23257
  # 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.
23258
+ # interconnect attachment. Valid values are 1440, 1460, 1500, and 8896. If not
23259
+ # specified, the value will default to 1440.
23052
23260
  # Corresponds to the JSON property `mtu`
23053
23261
  # @return [Fixnum]
23054
23262
  attr_accessor :mtu
@@ -23194,7 +23402,12 @@ module Google
23194
23402
  # Update properties of this object
23195
23403
  def update!(**args)
23196
23404
  @admin_enabled = args[:admin_enabled] if args.key?(:admin_enabled)
23405
+ @attachment_group = args[:attachment_group] if args.key?(:attachment_group)
23197
23406
  @bandwidth = args[:bandwidth] if args.key?(:bandwidth)
23407
+ @candidate_cloud_router_ip_address = args[:candidate_cloud_router_ip_address] if args.key?(:candidate_cloud_router_ip_address)
23408
+ @candidate_cloud_router_ipv6_address = args[:candidate_cloud_router_ipv6_address] if args.key?(:candidate_cloud_router_ipv6_address)
23409
+ @candidate_customer_router_ip_address = args[:candidate_customer_router_ip_address] if args.key?(:candidate_customer_router_ip_address)
23410
+ @candidate_customer_router_ipv6_address = args[:candidate_customer_router_ipv6_address] if args.key?(:candidate_customer_router_ipv6_address)
23198
23411
  @candidate_ipv6_subnets = args[:candidate_ipv6_subnets] if args.key?(:candidate_ipv6_subnets)
23199
23412
  @candidate_subnets = args[:candidate_subnets] if args.key?(:candidate_subnets)
23200
23413
  @cloud_router_ip_address = args[:cloud_router_ip_address] if args.key?(:cloud_router_ip_address)
@@ -23423,22 +23636,432 @@ module Google
23423
23636
  end
23424
23637
  end
23425
23638
 
23426
- # Response to the list request, and contains a list of interconnect attachments.
23427
- class InterconnectAttachmentList
23639
+ # An interconnect attachment group resource allows customers to create, analyze,
23640
+ # and expand highly available deployments.
23641
+ class InterconnectAttachmentGroup
23642
+ include Google::Apis::Core::Hashable
23643
+
23644
+ # Attachments in the AttachmentGroup. Keys are arbitrary user-specified strings.
23645
+ # Users are encouraged, but not required, to use their preferred format for
23646
+ # resource links as keys. Note that there are add-members and remove-members
23647
+ # methods in gcloud. The size of this map is limited by an "Attachments per
23648
+ # group" quota.
23649
+ # Corresponds to the JSON property `attachments`
23650
+ # @return [Hash<String,Google::Apis::ComputeBeta::InterconnectAttachmentGroupAttachment>]
23651
+ attr_accessor :attachments
23652
+
23653
+ # [Output Only] The redundancy this group is configured to support. The way a
23654
+ # user queries what SLA their Attachment gets is by looking at this field of the
23655
+ # Attachment's AttachmentGroup.
23656
+ # Corresponds to the JSON property `configured`
23657
+ # @return [Google::Apis::ComputeBeta::InterconnectAttachmentGroupConfigured]
23658
+ attr_accessor :configured
23659
+
23660
+ # [Output Only] Creation timestamp in RFC3339 text format.
23661
+ # Corresponds to the JSON property `creationTimestamp`
23662
+ # @return [String]
23663
+ attr_accessor :creation_timestamp
23664
+
23665
+ # An optional description of this resource. Provide this property when you
23666
+ # create the resource.
23667
+ # Corresponds to the JSON property `description`
23668
+ # @return [String]
23669
+ attr_accessor :description
23670
+
23671
+ # Opaque system-generated token that uniquely identifies the configuration. If
23672
+ # provided when patching a configuration in update mode, the provided token must
23673
+ # match the current token or the update is rejected. This provides a reliable
23674
+ # means of doing read-modify-write (optimistic locking) as described by AIP 154.
23675
+ # Corresponds to the JSON property `etag`
23676
+ # @return [String]
23677
+ attr_accessor :etag
23678
+
23679
+ # [Output Only] The unique identifier for the resource type. The server
23680
+ # generates this identifier.
23681
+ # Corresponds to the JSON property `id`
23682
+ # @return [Fixnum]
23683
+ attr_accessor :id
23684
+
23685
+ # The user's intent for this AttachmentGroup. This is the only required field
23686
+ # besides the name that must be specified on group creation.
23687
+ # Corresponds to the JSON property `intent`
23688
+ # @return [Google::Apis::ComputeBeta::InterconnectAttachmentGroupIntent]
23689
+ attr_accessor :intent
23690
+
23691
+ # The URL of an InterconnectGroup that groups these Attachments' Interconnects.
23692
+ # Customers do not need to set this unless directed by Google Support.
23693
+ # Corresponds to the JSON property `interconnectGroup`
23694
+ # @return [String]
23695
+ attr_accessor :interconnect_group
23696
+
23697
+ # [Output Only] Type of the resource. Always compute#interconnectAttachmentGroup.
23698
+ # Corresponds to the JSON property `kind`
23699
+ # @return [String]
23700
+ attr_accessor :kind
23701
+
23702
+ # [Output Only] An analysis of the logical layout of Attachments in this group.
23703
+ # Every Attachment in the group is shown once in this structure.
23704
+ # Corresponds to the JSON property `logicalStructure`
23705
+ # @return [Google::Apis::ComputeBeta::InterconnectAttachmentGroupLogicalStructure]
23706
+ attr_accessor :logical_structure
23707
+
23708
+ # Name of the resource. Provided by the client when the resource is created. The
23709
+ # name must be 1-63 characters long, and comply with RFC1035. Specifically, the
23710
+ # name must be 1-63 characters long and match the regular expression `[a-z]([-a-
23711
+ # z0-9]*[a-z0-9])?` which means the first character must be a lowercase letter,
23712
+ # and all following characters must be a dash, lowercase letter, or digit,
23713
+ # except the last character, which cannot be a dash.
23714
+ # Corresponds to the JSON property `name`
23715
+ # @return [String]
23716
+ attr_accessor :name
23717
+
23718
+ # [Output Only] Server-defined URL for the resource.
23719
+ # Corresponds to the JSON property `selfLink`
23720
+ # @return [String]
23721
+ attr_accessor :self_link
23722
+
23723
+ def initialize(**args)
23724
+ update!(**args)
23725
+ end
23726
+
23727
+ # Update properties of this object
23728
+ def update!(**args)
23729
+ @attachments = args[:attachments] if args.key?(:attachments)
23730
+ @configured = args[:configured] if args.key?(:configured)
23731
+ @creation_timestamp = args[:creation_timestamp] if args.key?(:creation_timestamp)
23732
+ @description = args[:description] if args.key?(:description)
23733
+ @etag = args[:etag] if args.key?(:etag)
23734
+ @id = args[:id] if args.key?(:id)
23735
+ @intent = args[:intent] if args.key?(:intent)
23736
+ @interconnect_group = args[:interconnect_group] if args.key?(:interconnect_group)
23737
+ @kind = args[:kind] if args.key?(:kind)
23738
+ @logical_structure = args[:logical_structure] if args.key?(:logical_structure)
23739
+ @name = args[:name] if args.key?(:name)
23740
+ @self_link = args[:self_link] if args.key?(:self_link)
23741
+ end
23742
+ end
23743
+
23744
+ # An Attachment in this AttachmentGroup.
23745
+ class InterconnectAttachmentGroupAttachment
23746
+ include Google::Apis::Core::Hashable
23747
+
23748
+ #
23749
+ # Corresponds to the JSON property `attachment`
23750
+ # @return [String]
23751
+ attr_accessor :attachment
23752
+
23753
+ def initialize(**args)
23754
+ update!(**args)
23755
+ end
23756
+
23757
+ # Update properties of this object
23758
+ def update!(**args)
23759
+ @attachment = args[:attachment] if args.key?(:attachment)
23760
+ end
23761
+ end
23762
+
23763
+ # [Output Only] The redundancy this group is configured to support. The way a
23764
+ # user queries what SLA their Attachment gets is by looking at this field of the
23765
+ # Attachment's AttachmentGroup.
23766
+ class InterconnectAttachmentGroupConfigured
23767
+ include Google::Apis::Core::Hashable
23768
+
23769
+ # [Output Only] Which SLA this group is configured to support, and why this
23770
+ # group does or does not meet that SLA's requirements.
23771
+ # Corresponds to the JSON property `availabilitySla`
23772
+ # @return [Google::Apis::ComputeBeta::InterconnectAttachmentGroupConfiguredAvailabilitySla]
23773
+ attr_accessor :availability_sla
23774
+
23775
+ def initialize(**args)
23776
+ update!(**args)
23777
+ end
23778
+
23779
+ # Update properties of this object
23780
+ def update!(**args)
23781
+ @availability_sla = args[:availability_sla] if args.key?(:availability_sla)
23782
+ end
23783
+ end
23784
+
23785
+ # [Output Only] Which SLA this group is configured to support, and why this
23786
+ # group does or does not meet that SLA's requirements.
23787
+ class InterconnectAttachmentGroupConfiguredAvailabilitySla
23788
+ include Google::Apis::Core::Hashable
23789
+
23790
+ #
23791
+ # Corresponds to the JSON property `effectiveSla`
23792
+ # @return [String]
23793
+ attr_accessor :effective_sla
23794
+
23795
+ #
23796
+ # Corresponds to the JSON property `intendedSlaBlockers`
23797
+ # @return [Array<Google::Apis::ComputeBeta::InterconnectAttachmentGroupConfiguredAvailabilitySlaIntendedSlaBlockers>]
23798
+ attr_accessor :intended_sla_blockers
23799
+
23800
+ def initialize(**args)
23801
+ update!(**args)
23802
+ end
23803
+
23804
+ # Update properties of this object
23805
+ def update!(**args)
23806
+ @effective_sla = args[:effective_sla] if args.key?(:effective_sla)
23807
+ @intended_sla_blockers = args[:intended_sla_blockers] if args.key?(:intended_sla_blockers)
23808
+ end
23809
+ end
23810
+
23811
+ # [Output Only] Reasons why configuration.availabilitySLA.sla differs from
23812
+ # intent.availabilitySLA. This list is empty if and only if those are the same.
23813
+ class InterconnectAttachmentGroupConfiguredAvailabilitySlaIntendedSlaBlockers
23814
+ include Google::Apis::Core::Hashable
23815
+
23816
+ # [Output Only] URLs of any particular Attachments to explain this blocker in
23817
+ # more detail.
23818
+ # Corresponds to the JSON property `attachments`
23819
+ # @return [Array<String>]
23820
+ attr_accessor :attachments
23821
+
23822
+ #
23823
+ # Corresponds to the JSON property `blockerType`
23824
+ # @return [String]
23825
+ attr_accessor :blocker_type
23826
+
23827
+ # [Output Only] The url of Google Cloud public documentation explaining this
23828
+ # requirement. This is set for every type of requirement.
23829
+ # Corresponds to the JSON property `documentationLink`
23830
+ # @return [String]
23831
+ attr_accessor :documentation_link
23832
+
23833
+ # [Output Only] A human-readable explanation of this requirement and why it's
23834
+ # not met. This is set for every type of requirement.
23835
+ # Corresponds to the JSON property `explanation`
23836
+ # @return [String]
23837
+ attr_accessor :explanation
23838
+
23839
+ # [Output Only] Metros used to explain this blocker in more detail. These are
23840
+ # three-letter lowercase strings like "iad". This will be set for some blockers (
23841
+ # like NO_ATTACHMENTS_IN_METRO_AND_ZONE) but does not apply to others.
23842
+ # Corresponds to the JSON property `metros`
23843
+ # @return [Array<String>]
23844
+ attr_accessor :metros
23845
+
23846
+ # [Output Only] Regions used to explain this blocker in more detail. These are
23847
+ # region names formatted like "us-central1". This will be set for some blockers (
23848
+ # like INCOMPATIBLE_REGIONS) but does not apply to others.
23849
+ # Corresponds to the JSON property `regions`
23850
+ # @return [Array<String>]
23851
+ attr_accessor :regions
23852
+
23853
+ # [Output Only] Zones used to explain this blocker in more detail. Format is "
23854
+ # zone1" and/or "zone2". This will be set for some blockers (like MISSING_ZONE)
23855
+ # but does not apply to others.
23856
+ # Corresponds to the JSON property `zones`
23857
+ # @return [Array<String>]
23858
+ attr_accessor :zones
23859
+
23860
+ def initialize(**args)
23861
+ update!(**args)
23862
+ end
23863
+
23864
+ # Update properties of this object
23865
+ def update!(**args)
23866
+ @attachments = args[:attachments] if args.key?(:attachments)
23867
+ @blocker_type = args[:blocker_type] if args.key?(:blocker_type)
23868
+ @documentation_link = args[:documentation_link] if args.key?(:documentation_link)
23869
+ @explanation = args[:explanation] if args.key?(:explanation)
23870
+ @metros = args[:metros] if args.key?(:metros)
23871
+ @regions = args[:regions] if args.key?(:regions)
23872
+ @zones = args[:zones] if args.key?(:zones)
23873
+ end
23874
+ end
23875
+
23876
+ # The user's intent for this AttachmentGroup. This is the only required field
23877
+ # besides the name that must be specified on group creation.
23878
+ class InterconnectAttachmentGroupIntent
23879
+ include Google::Apis::Core::Hashable
23880
+
23881
+ #
23882
+ # Corresponds to the JSON property `availabilitySla`
23883
+ # @return [String]
23884
+ attr_accessor :availability_sla
23885
+
23886
+ def initialize(**args)
23887
+ update!(**args)
23888
+ end
23889
+
23890
+ # Update properties of this object
23891
+ def update!(**args)
23892
+ @availability_sla = args[:availability_sla] if args.key?(:availability_sla)
23893
+ end
23894
+ end
23895
+
23896
+ # [Output Only] An analysis of the logical layout of Attachments in this group.
23897
+ # Every Attachment in the group is shown once in this structure.
23898
+ class InterconnectAttachmentGroupLogicalStructure
23899
+ include Google::Apis::Core::Hashable
23900
+
23901
+ #
23902
+ # Corresponds to the JSON property `regions`
23903
+ # @return [Array<Google::Apis::ComputeBeta::InterconnectAttachmentGroupLogicalStructureRegion>]
23904
+ attr_accessor :regions
23905
+
23906
+ def initialize(**args)
23907
+ update!(**args)
23908
+ end
23909
+
23910
+ # Update properties of this object
23911
+ def update!(**args)
23912
+ @regions = args[:regions] if args.key?(:regions)
23913
+ end
23914
+ end
23915
+
23916
+ # [Output Only] The regions Attachments in this group are in.
23917
+ class InterconnectAttachmentGroupLogicalStructureRegion
23918
+ include Google::Apis::Core::Hashable
23919
+
23920
+ #
23921
+ # Corresponds to the JSON property `metros`
23922
+ # @return [Array<Google::Apis::ComputeBeta::InterconnectAttachmentGroupLogicalStructureRegionMetro>]
23923
+ attr_accessor :metros
23924
+
23925
+ # [Output Only] The name of a region, like "us-central1".
23926
+ # Corresponds to the JSON property `region`
23927
+ # @return [String]
23928
+ attr_accessor :region
23929
+
23930
+ def initialize(**args)
23931
+ update!(**args)
23932
+ end
23933
+
23934
+ # Update properties of this object
23935
+ def update!(**args)
23936
+ @metros = args[:metros] if args.key?(:metros)
23937
+ @region = args[:region] if args.key?(:region)
23938
+ end
23939
+ end
23940
+
23941
+ # [Output Only] The metros of Attachments in this group in this region.
23942
+ class InterconnectAttachmentGroupLogicalStructureRegionMetro
23428
23943
  include Google::Apis::Core::Hashable
23429
23944
 
23945
+ #
23946
+ # Corresponds to the JSON property `facilities`
23947
+ # @return [Array<Google::Apis::ComputeBeta::InterconnectAttachmentGroupLogicalStructureRegionMetroFacility>]
23948
+ attr_accessor :facilities
23949
+
23950
+ # [Output Only] The name of the metro, as a three-letter lowercase string like "
23951
+ # iad". This is the first component of the location of an Interconnect.
23952
+ # Corresponds to the JSON property `metro`
23953
+ # @return [String]
23954
+ attr_accessor :metro
23955
+
23956
+ def initialize(**args)
23957
+ update!(**args)
23958
+ end
23959
+
23960
+ # Update properties of this object
23961
+ def update!(**args)
23962
+ @facilities = args[:facilities] if args.key?(:facilities)
23963
+ @metro = args[:metro] if args.key?(:metro)
23964
+ end
23965
+ end
23966
+
23967
+ # [Output Only] The facilities used for this group's Attachments' Interconnects.
23968
+ class InterconnectAttachmentGroupLogicalStructureRegionMetroFacility
23969
+ include Google::Apis::Core::Hashable
23970
+
23971
+ # [Output Only] The name of a facility, like "iad-1234".
23972
+ # Corresponds to the JSON property `facility`
23973
+ # @return [String]
23974
+ attr_accessor :facility
23975
+
23976
+ #
23977
+ # Corresponds to the JSON property `zones`
23978
+ # @return [Array<Google::Apis::ComputeBeta::InterconnectAttachmentGroupLogicalStructureRegionMetroFacilityZone>]
23979
+ attr_accessor :zones
23980
+
23981
+ def initialize(**args)
23982
+ update!(**args)
23983
+ end
23984
+
23985
+ # Update properties of this object
23986
+ def update!(**args)
23987
+ @facility = args[:facility] if args.key?(:facility)
23988
+ @zones = args[:zones] if args.key?(:zones)
23989
+ end
23990
+ end
23991
+
23992
+ # [Output Only] The zones that Attachments in this group are present in, in the
23993
+ # given facilities. This is inherited from their Interconnects.
23994
+ class InterconnectAttachmentGroupLogicalStructureRegionMetroFacilityZone
23995
+ include Google::Apis::Core::Hashable
23996
+
23997
+ # [Output Only] URLs of Attachments in the given zone, to the given region, on
23998
+ # Interconnects in the given facility and metro. Every Attachment in the AG has
23999
+ # such an entry.
24000
+ # Corresponds to the JSON property `attachments`
24001
+ # @return [Array<String>]
24002
+ attr_accessor :attachments
24003
+
24004
+ # [Output Only] The name of a zone, either "zone1" or "zone2".
24005
+ # Corresponds to the JSON property `zone`
24006
+ # @return [String]
24007
+ attr_accessor :zone
24008
+
24009
+ def initialize(**args)
24010
+ update!(**args)
24011
+ end
24012
+
24013
+ # Update properties of this object
24014
+ def update!(**args)
24015
+ @attachments = args[:attachments] if args.key?(:attachments)
24016
+ @zone = args[:zone] if args.key?(:zone)
24017
+ end
24018
+ end
24019
+
24020
+ # Response for the InterconnectAttachmentGroupsGetOperationalStatusResponse.
24021
+ class InterconnectAttachmentGroupsGetOperationalStatusResponse
24022
+ include Google::Apis::Core::Hashable
24023
+
24024
+ #
24025
+ # Corresponds to the JSON property `etag`
24026
+ # @return [String]
24027
+ attr_accessor :etag
24028
+
24029
+ #
24030
+ # Corresponds to the JSON property `result`
24031
+ # @return [Google::Apis::ComputeBeta::InterconnectAttachmentGroupsOperationalStatus]
24032
+ attr_accessor :result
24033
+
24034
+ def initialize(**args)
24035
+ update!(**args)
24036
+ end
24037
+
24038
+ # Update properties of this object
24039
+ def update!(**args)
24040
+ @etag = args[:etag] if args.key?(:etag)
24041
+ @result = args[:result] if args.key?(:result)
24042
+ end
24043
+ end
24044
+
24045
+ #
24046
+ class InterconnectAttachmentGroupsListResponse
24047
+ include Google::Apis::Core::Hashable
24048
+
24049
+ #
24050
+ # Corresponds to the JSON property `etag`
24051
+ # @return [String]
24052
+ attr_accessor :etag
24053
+
23430
24054
  # [Output Only] Unique identifier for the resource; defined by the server.
23431
24055
  # Corresponds to the JSON property `id`
23432
24056
  # @return [String]
23433
24057
  attr_accessor :id
23434
24058
 
23435
- # A list of InterconnectAttachment resources.
24059
+ # A list of InterconnectAttachmentGroup resources.
23436
24060
  # Corresponds to the JSON property `items`
23437
- # @return [Array<Google::Apis::ComputeBeta::InterconnectAttachment>]
24061
+ # @return [Array<Google::Apis::ComputeBeta::InterconnectAttachmentGroup>]
23438
24062
  attr_accessor :items
23439
24063
 
23440
- # [Output Only] Type of resource. Always compute#interconnectAttachmentList for
23441
- # lists of interconnect attachments.
24064
+ #
23442
24065
  # Corresponds to the JSON property `kind`
23443
24066
  # @return [String]
23444
24067
  attr_accessor :kind
@@ -23457,9 +24080,15 @@ module Google
23457
24080
  # @return [String]
23458
24081
  attr_accessor :self_link
23459
24082
 
24083
+ # [Output Only] Unreachable resources. end_interface:
24084
+ # MixerListResponseWithEtagBuilder
24085
+ # Corresponds to the JSON property `unreachables`
24086
+ # @return [Array<String>]
24087
+ attr_accessor :unreachables
24088
+
23460
24089
  # [Output Only] Informational warning message.
23461
24090
  # Corresponds to the JSON property `warning`
23462
- # @return [Google::Apis::ComputeBeta::InterconnectAttachmentList::Warning]
24091
+ # @return [Google::Apis::ComputeBeta::InterconnectAttachmentGroupsListResponse::Warning]
23463
24092
  attr_accessor :warning
23464
24093
 
23465
24094
  def initialize(**args)
@@ -23468,11 +24097,13 @@ module Google
23468
24097
 
23469
24098
  # Update properties of this object
23470
24099
  def update!(**args)
24100
+ @etag = args[:etag] if args.key?(:etag)
23471
24101
  @id = args[:id] if args.key?(:id)
23472
24102
  @items = args[:items] if args.key?(:items)
23473
24103
  @kind = args[:kind] if args.key?(:kind)
23474
24104
  @next_page_token = args[:next_page_token] if args.key?(:next_page_token)
23475
24105
  @self_link = args[:self_link] if args.key?(:self_link)
24106
+ @unreachables = args[:unreachables] if args.key?(:unreachables)
23476
24107
  @warning = args[:warning] if args.key?(:warning)
23477
24108
  end
23478
24109
 
@@ -23489,7 +24120,217 @@ module Google
23489
24120
  # [Output Only] Metadata about this warning in key: value format. For example: "
23490
24121
  # data": [ ` "key": "scope", "value": "zones/us-east1-d" `
23491
24122
  # Corresponds to the JSON property `data`
23492
- # @return [Array<Google::Apis::ComputeBeta::InterconnectAttachmentList::Warning::Datum>]
24123
+ # @return [Array<Google::Apis::ComputeBeta::InterconnectAttachmentGroupsListResponse::Warning::Datum>]
24124
+ attr_accessor :data
24125
+
24126
+ # [Output Only] A human-readable description of the warning code.
24127
+ # Corresponds to the JSON property `message`
24128
+ # @return [String]
24129
+ attr_accessor :message
24130
+
24131
+ def initialize(**args)
24132
+ update!(**args)
24133
+ end
24134
+
24135
+ # Update properties of this object
24136
+ def update!(**args)
24137
+ @code = args[:code] if args.key?(:code)
24138
+ @data = args[:data] if args.key?(:data)
24139
+ @message = args[:message] if args.key?(:message)
24140
+ end
24141
+
24142
+ #
24143
+ class Datum
24144
+ include Google::Apis::Core::Hashable
24145
+
24146
+ # [Output Only] A key that provides more detail on the warning being returned.
24147
+ # For example, for warnings where there are no results in a list request for a
24148
+ # particular zone, this key might be scope and the key value might be the zone
24149
+ # name. Other examples might be a key indicating a deprecated resource and a
24150
+ # suggested replacement, or a warning about invalid network settings (for
24151
+ # example, if an instance attempts to perform IP forwarding but is not enabled
24152
+ # for IP forwarding).
24153
+ # Corresponds to the JSON property `key`
24154
+ # @return [String]
24155
+ attr_accessor :key
24156
+
24157
+ # [Output Only] A warning data value corresponding to the key.
24158
+ # Corresponds to the JSON property `value`
24159
+ # @return [String]
24160
+ attr_accessor :value
24161
+
24162
+ def initialize(**args)
24163
+ update!(**args)
24164
+ end
24165
+
24166
+ # Update properties of this object
24167
+ def update!(**args)
24168
+ @key = args[:key] if args.key?(:key)
24169
+ @value = args[:value] if args.key?(:value)
24170
+ end
24171
+ end
24172
+ end
24173
+ end
24174
+
24175
+ #
24176
+ class InterconnectAttachmentGroupsOperationalStatus
24177
+ include Google::Apis::Core::Hashable
24178
+
24179
+ #
24180
+ # Corresponds to the JSON property `attachmentStatuses`
24181
+ # @return [Array<Google::Apis::ComputeBeta::InterconnectAttachmentGroupsOperationalStatusAttachmentStatus>]
24182
+ attr_accessor :attachment_statuses
24183
+
24184
+ # [Output Only] The redundancy this group is configured to support. The way a
24185
+ # user queries what SLA their Attachment gets is by looking at this field of the
24186
+ # Attachment's AttachmentGroup.
24187
+ # Corresponds to the JSON property `configured`
24188
+ # @return [Google::Apis::ComputeBeta::InterconnectAttachmentGroupConfigured]
24189
+ attr_accessor :configured
24190
+
24191
+ # Summarizes the status of the group.
24192
+ # Corresponds to the JSON property `groupStatus`
24193
+ # @return [String]
24194
+ attr_accessor :group_status
24195
+
24196
+ # The user's intent for this AttachmentGroup. This is the only required field
24197
+ # besides the name that must be specified on group creation.
24198
+ # Corresponds to the JSON property `intent`
24199
+ # @return [Google::Apis::ComputeBeta::InterconnectAttachmentGroupIntent]
24200
+ attr_accessor :intent
24201
+
24202
+ # [Output Only] The redundancy this group is configured to support. The way a
24203
+ # user queries what SLA their Attachment gets is by looking at this field of the
24204
+ # Attachment's AttachmentGroup.
24205
+ # Corresponds to the JSON property `operational`
24206
+ # @return [Google::Apis::ComputeBeta::InterconnectAttachmentGroupConfigured]
24207
+ attr_accessor :operational
24208
+
24209
+ def initialize(**args)
24210
+ update!(**args)
24211
+ end
24212
+
24213
+ # Update properties of this object
24214
+ def update!(**args)
24215
+ @attachment_statuses = args[:attachment_statuses] if args.key?(:attachment_statuses)
24216
+ @configured = args[:configured] if args.key?(:configured)
24217
+ @group_status = args[:group_status] if args.key?(:group_status)
24218
+ @intent = args[:intent] if args.key?(:intent)
24219
+ @operational = args[:operational] if args.key?(:operational)
24220
+ end
24221
+ end
24222
+
24223
+ # The status of one Attachment in the group. List order is arbitrary.
24224
+ class InterconnectAttachmentGroupsOperationalStatusAttachmentStatus
24225
+ include Google::Apis::Core::Hashable
24226
+
24227
+ # Whether this Attachment is enabled. This becomes false when the customer
24228
+ # drains their Attachment.
24229
+ # Corresponds to the JSON property `adminEnabled`
24230
+ # @return [Boolean]
24231
+ attr_accessor :admin_enabled
24232
+ alias_method :admin_enabled?, :admin_enabled
24233
+
24234
+ # The URL of the Attachment being described.
24235
+ # Corresponds to the JSON property `attachment`
24236
+ # @return [String]
24237
+ attr_accessor :attachment
24238
+
24239
+ # Whether this Attachment is participating in the redundant configuration. This
24240
+ # will be ACTIVE if and only if the status below is CONNECTION_UP. Any INACTIVE
24241
+ # Attachments are excluded from the analysis that generates operational.
24242
+ # availabilitySLA.
24243
+ # Corresponds to the JSON property `isActive`
24244
+ # @return [String]
24245
+ attr_accessor :is_active
24246
+
24247
+ # Whether this Attachment is active, and if so, whether BGP is up. This is based
24248
+ # on the statuses available in the Pantheon UI here: http://google3/java/com/
24249
+ # google/cloud/boq/clientapi/gce/hybrid/api/interconnect_models.proto
24250
+ # Corresponds to the JSON property `status`
24251
+ # @return [String]
24252
+ attr_accessor :status
24253
+
24254
+ def initialize(**args)
24255
+ update!(**args)
24256
+ end
24257
+
24258
+ # Update properties of this object
24259
+ def update!(**args)
24260
+ @admin_enabled = args[:admin_enabled] if args.key?(:admin_enabled)
24261
+ @attachment = args[:attachment] if args.key?(:attachment)
24262
+ @is_active = args[:is_active] if args.key?(:is_active)
24263
+ @status = args[:status] if args.key?(:status)
24264
+ end
24265
+ end
24266
+
24267
+ # Response to the list request, and contains a list of interconnect attachments.
24268
+ class InterconnectAttachmentList
24269
+ include Google::Apis::Core::Hashable
24270
+
24271
+ # [Output Only] Unique identifier for the resource; defined by the server.
24272
+ # Corresponds to the JSON property `id`
24273
+ # @return [String]
24274
+ attr_accessor :id
24275
+
24276
+ # A list of InterconnectAttachment resources.
24277
+ # Corresponds to the JSON property `items`
24278
+ # @return [Array<Google::Apis::ComputeBeta::InterconnectAttachment>]
24279
+ attr_accessor :items
24280
+
24281
+ # [Output Only] Type of resource. Always compute#interconnectAttachmentList for
24282
+ # lists of interconnect attachments.
24283
+ # Corresponds to the JSON property `kind`
24284
+ # @return [String]
24285
+ attr_accessor :kind
24286
+
24287
+ # [Output Only] This token allows you to get the next page of results for list
24288
+ # requests. If the number of results is larger than maxResults, use the
24289
+ # nextPageToken as a value for the query parameter pageToken in the next list
24290
+ # request. Subsequent list requests will have their own nextPageToken to
24291
+ # continue paging through the results.
24292
+ # Corresponds to the JSON property `nextPageToken`
24293
+ # @return [String]
24294
+ attr_accessor :next_page_token
24295
+
24296
+ # [Output Only] Server-defined URL for this resource.
24297
+ # Corresponds to the JSON property `selfLink`
24298
+ # @return [String]
24299
+ attr_accessor :self_link
24300
+
24301
+ # [Output Only] Informational warning message.
24302
+ # Corresponds to the JSON property `warning`
24303
+ # @return [Google::Apis::ComputeBeta::InterconnectAttachmentList::Warning]
24304
+ attr_accessor :warning
24305
+
24306
+ def initialize(**args)
24307
+ update!(**args)
24308
+ end
24309
+
24310
+ # Update properties of this object
24311
+ def update!(**args)
24312
+ @id = args[:id] if args.key?(:id)
24313
+ @items = args[:items] if args.key?(:items)
24314
+ @kind = args[:kind] if args.key?(:kind)
24315
+ @next_page_token = args[:next_page_token] if args.key?(:next_page_token)
24316
+ @self_link = args[:self_link] if args.key?(:self_link)
24317
+ @warning = args[:warning] if args.key?(:warning)
24318
+ end
24319
+
24320
+ # [Output Only] Informational warning message.
24321
+ class Warning
24322
+ include Google::Apis::Core::Hashable
24323
+
24324
+ # [Output Only] A warning code, if applicable. For example, Compute Engine
24325
+ # returns NO_RESULTS_ON_PAGE if there are no results in the response.
24326
+ # Corresponds to the JSON property `code`
24327
+ # @return [String]
24328
+ attr_accessor :code
24329
+
24330
+ # [Output Only] Metadata about this warning in key: value format. For example: "
24331
+ # data": [ ` "key": "scope", "value": "zones/us-east1-d" `
24332
+ # Corresponds to the JSON property `data`
24333
+ # @return [Array<Google::Apis::ComputeBeta::InterconnectAttachmentList::Warning::Datum>]
23493
24334
  attr_accessor :data
23494
24335
 
23495
24336
  # [Output Only] A human-readable description of the warning code.
@@ -23691,168 +24532,971 @@ module Google
23691
24532
  end
23692
24533
  end
23693
24534
 
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
23697
- include Google::Apis::Core::Hashable
23698
-
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
23749
-
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`
23758
- # @return [String]
23759
- attr_accessor :mac_address
23760
-
23761
- def initialize(**args)
23762
- update!(**args)
23763
- end
23764
-
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
24535
+ # Describes a single physical circuit between the Customer and Google.
24536
+ # CircuitInfo objects are created by Google, so all fields are output only.
24537
+ class InterconnectCircuitInfo
24538
+ include Google::Apis::Core::Hashable
24539
+
24540
+ # Customer-side demarc ID for this circuit.
24541
+ # Corresponds to the JSON property `customerDemarcId`
24542
+ # @return [String]
24543
+ attr_accessor :customer_demarc_id
24544
+
24545
+ # Google-assigned unique ID for this circuit. Assigned at circuit turn-up.
24546
+ # Corresponds to the JSON property `googleCircuitId`
24547
+ # @return [String]
24548
+ attr_accessor :google_circuit_id
24549
+
24550
+ # Google-side demarc ID for this circuit. Assigned at circuit turn-up and
24551
+ # provided by Google to the customer in the LOA.
24552
+ # Corresponds to the JSON property `googleDemarcId`
24553
+ # @return [String]
24554
+ attr_accessor :google_demarc_id
24555
+
24556
+ def initialize(**args)
24557
+ update!(**args)
24558
+ end
24559
+
24560
+ # Update properties of this object
24561
+ def update!(**args)
24562
+ @customer_demarc_id = args[:customer_demarc_id] if args.key?(:customer_demarc_id)
24563
+ @google_circuit_id = args[:google_circuit_id] if args.key?(:google_circuit_id)
24564
+ @google_demarc_id = args[:google_demarc_id] if args.key?(:google_demarc_id)
24565
+ end
24566
+ end
24567
+
24568
+ # Diagnostics information about the Interconnect connection, which contains
24569
+ # detailed and current technical information about Google's side of the
24570
+ # connection.
24571
+ class InterconnectDiagnostics
24572
+ include Google::Apis::Core::Hashable
24573
+
24574
+ # A list of InterconnectDiagnostics.ARPEntry objects, describing individual
24575
+ # neighbors currently seen by the Google router in the ARP cache for the
24576
+ # Interconnect. This will be empty when the Interconnect is not bundled.
24577
+ # Corresponds to the JSON property `arpCaches`
24578
+ # @return [Array<Google::Apis::ComputeBeta::InterconnectDiagnosticsArpEntry>]
24579
+ attr_accessor :arp_caches
24580
+
24581
+ # The aggregation type of the bundle interface.
24582
+ # Corresponds to the JSON property `bundleAggregationType`
24583
+ # @return [String]
24584
+ attr_accessor :bundle_aggregation_type
24585
+
24586
+ # The operational status of the bundle interface.
24587
+ # Corresponds to the JSON property `bundleOperationalStatus`
24588
+ # @return [String]
24589
+ attr_accessor :bundle_operational_status
24590
+
24591
+ # A list of InterconnectDiagnostics.LinkStatus objects, describing the status
24592
+ # for each link on the Interconnect.
24593
+ # Corresponds to the JSON property `links`
24594
+ # @return [Array<Google::Apis::ComputeBeta::InterconnectDiagnosticsLinkStatus>]
24595
+ attr_accessor :links
24596
+
24597
+ # The MAC address of the Interconnect's bundle interface.
24598
+ # Corresponds to the JSON property `macAddress`
24599
+ # @return [String]
24600
+ attr_accessor :mac_address
24601
+
24602
+ def initialize(**args)
24603
+ update!(**args)
24604
+ end
24605
+
24606
+ # Update properties of this object
24607
+ def update!(**args)
24608
+ @arp_caches = args[:arp_caches] if args.key?(:arp_caches)
24609
+ @bundle_aggregation_type = args[:bundle_aggregation_type] if args.key?(:bundle_aggregation_type)
24610
+ @bundle_operational_status = args[:bundle_operational_status] if args.key?(:bundle_operational_status)
24611
+ @links = args[:links] if args.key?(:links)
24612
+ @mac_address = args[:mac_address] if args.key?(:mac_address)
24613
+ end
24614
+ end
24615
+
24616
+ # Describing the ARP neighbor entries seen on this link
24617
+ class InterconnectDiagnosticsArpEntry
24618
+ include Google::Apis::Core::Hashable
24619
+
24620
+ # The IP address of this ARP neighbor.
24621
+ # Corresponds to the JSON property `ipAddress`
24622
+ # @return [String]
24623
+ attr_accessor :ip_address
24624
+
24625
+ # The MAC address of this ARP neighbor.
24626
+ # Corresponds to the JSON property `macAddress`
24627
+ # @return [String]
24628
+ attr_accessor :mac_address
24629
+
24630
+ def initialize(**args)
24631
+ update!(**args)
24632
+ end
24633
+
24634
+ # Update properties of this object
24635
+ def update!(**args)
24636
+ @ip_address = args[:ip_address] if args.key?(:ip_address)
24637
+ @mac_address = args[:mac_address] if args.key?(:mac_address)
24638
+ end
24639
+ end
24640
+
24641
+ #
24642
+ class InterconnectDiagnosticsLinkLacpStatus
24643
+ include Google::Apis::Core::Hashable
24644
+
24645
+ # System ID of the port on Google's side of the LACP exchange.
24646
+ # Corresponds to the JSON property `googleSystemId`
24647
+ # @return [String]
24648
+ attr_accessor :google_system_id
24649
+
24650
+ # System ID of the port on the neighbor's side of the LACP exchange.
24651
+ # Corresponds to the JSON property `neighborSystemId`
24652
+ # @return [String]
24653
+ attr_accessor :neighbor_system_id
24654
+
24655
+ # The state of a LACP link, which can take one of the following values: - ACTIVE:
24656
+ # The link is configured and active within the bundle. - DETACHED: The link is
24657
+ # not configured within the bundle. This means that the rest of the object
24658
+ # should be empty.
24659
+ # Corresponds to the JSON property `state`
24660
+ # @return [String]
24661
+ attr_accessor :state
24662
+
24663
+ def initialize(**args)
24664
+ update!(**args)
24665
+ end
24666
+
24667
+ # Update properties of this object
24668
+ def update!(**args)
24669
+ @google_system_id = args[:google_system_id] if args.key?(:google_system_id)
24670
+ @neighbor_system_id = args[:neighbor_system_id] if args.key?(:neighbor_system_id)
24671
+ @state = args[:state] if args.key?(:state)
24672
+ end
24673
+ end
24674
+
24675
+ #
24676
+ class InterconnectDiagnosticsLinkOpticalPower
24677
+ include Google::Apis::Core::Hashable
24678
+
24679
+ # The status of the current value when compared to the warning and alarm levels
24680
+ # for the receiving or transmitting transceiver. Possible states include: - OK:
24681
+ # The value has not crossed a warning threshold. - LOW_WARNING: The value has
24682
+ # crossed below the low warning threshold. - HIGH_WARNING: The value has crossed
24683
+ # above the high warning threshold. - LOW_ALARM: The value has crossed below the
24684
+ # low alarm threshold. - HIGH_ALARM: The value has crossed above the high alarm
24685
+ # threshold.
24686
+ # Corresponds to the JSON property `state`
24687
+ # @return [String]
24688
+ attr_accessor :state
24689
+
24690
+ # Value of the current receiving or transmitting optical power, read in dBm.
24691
+ # Take a known good optical value, give it a 10% margin and trigger warnings
24692
+ # relative to that value. In general, a -7dBm warning and a -11dBm alarm are
24693
+ # good optical value estimates for most links.
24694
+ # Corresponds to the JSON property `value`
24695
+ # @return [Float]
24696
+ attr_accessor :value
24697
+
24698
+ def initialize(**args)
24699
+ update!(**args)
24700
+ end
24701
+
24702
+ # Update properties of this object
24703
+ def update!(**args)
24704
+ @state = args[:state] if args.key?(:state)
24705
+ @value = args[:value] if args.key?(:value)
24706
+ end
24707
+ end
24708
+
24709
+ #
24710
+ class InterconnectDiagnosticsLinkStatus
24711
+ include Google::Apis::Core::Hashable
24712
+
24713
+ # A list of InterconnectDiagnostics.ARPEntry objects, describing the ARP
24714
+ # neighbor entries seen on this link. This will be empty if the link is bundled
24715
+ # Corresponds to the JSON property `arpCaches`
24716
+ # @return [Array<Google::Apis::ComputeBeta::InterconnectDiagnosticsArpEntry>]
24717
+ attr_accessor :arp_caches
24718
+
24719
+ # The unique ID for this link assigned during turn up by Google.
24720
+ # Corresponds to the JSON property `circuitId`
24721
+ # @return [String]
24722
+ attr_accessor :circuit_id
24723
+
24724
+ # The Demarc address assigned by Google and provided in the LoA.
24725
+ # Corresponds to the JSON property `googleDemarc`
24726
+ # @return [String]
24727
+ attr_accessor :google_demarc
24728
+
24729
+ #
24730
+ # Corresponds to the JSON property `lacpStatus`
24731
+ # @return [Google::Apis::ComputeBeta::InterconnectDiagnosticsLinkLacpStatus]
24732
+ attr_accessor :lacp_status
24733
+
24734
+ # Describes the status of MACsec encryption on the link.
24735
+ # Corresponds to the JSON property `macsec`
24736
+ # @return [Google::Apis::ComputeBeta::InterconnectDiagnosticsMacsecStatus]
24737
+ attr_accessor :macsec
24738
+
24739
+ # The operational status of the link.
24740
+ # Corresponds to the JSON property `operationalStatus`
24741
+ # @return [String]
24742
+ attr_accessor :operational_status
24743
+
24744
+ # An InterconnectDiagnostics.LinkOpticalPower object, describing the current
24745
+ # value and status of the received light level.
24746
+ # Corresponds to the JSON property `receivingOpticalPower`
24747
+ # @return [Google::Apis::ComputeBeta::InterconnectDiagnosticsLinkOpticalPower]
24748
+ attr_accessor :receiving_optical_power
24749
+
24750
+ # An InterconnectDiagnostics.LinkOpticalPower object, describing the current
24751
+ # value and status of the transmitted light level.
24752
+ # Corresponds to the JSON property `transmittingOpticalPower`
24753
+ # @return [Google::Apis::ComputeBeta::InterconnectDiagnosticsLinkOpticalPower]
24754
+ attr_accessor :transmitting_optical_power
24755
+
24756
+ def initialize(**args)
24757
+ update!(**args)
24758
+ end
24759
+
24760
+ # Update properties of this object
24761
+ def update!(**args)
24762
+ @arp_caches = args[:arp_caches] if args.key?(:arp_caches)
24763
+ @circuit_id = args[:circuit_id] if args.key?(:circuit_id)
24764
+ @google_demarc = args[:google_demarc] if args.key?(:google_demarc)
24765
+ @lacp_status = args[:lacp_status] if args.key?(:lacp_status)
24766
+ @macsec = args[:macsec] if args.key?(:macsec)
24767
+ @operational_status = args[:operational_status] if args.key?(:operational_status)
24768
+ @receiving_optical_power = args[:receiving_optical_power] if args.key?(:receiving_optical_power)
24769
+ @transmitting_optical_power = args[:transmitting_optical_power] if args.key?(:transmitting_optical_power)
24770
+ end
24771
+ end
24772
+
24773
+ # Describes the status of MACsec encryption on the link.
24774
+ class InterconnectDiagnosticsMacsecStatus
24775
+ include Google::Apis::Core::Hashable
24776
+
24777
+ # Indicates the Connectivity Association Key Name (CKN) currently being used if
24778
+ # MACsec is operational.
24779
+ # Corresponds to the JSON property `ckn`
24780
+ # @return [String]
24781
+ attr_accessor :ckn
24782
+
24783
+ # Indicates whether or not MACsec is operational on this link.
24784
+ # Corresponds to the JSON property `operational`
24785
+ # @return [Boolean]
24786
+ attr_accessor :operational
24787
+ alias_method :operational?, :operational
24788
+
24789
+ def initialize(**args)
24790
+ update!(**args)
24791
+ end
24792
+
24793
+ # Update properties of this object
24794
+ def update!(**args)
24795
+ @ckn = args[:ckn] if args.key?(:ckn)
24796
+ @operational = args[:operational] if args.key?(:operational)
24797
+ end
24798
+ end
24799
+
24800
+ # An interconnect group resource allows customers to create, analyze, and expand
24801
+ # their redundant connections.
24802
+ class InterconnectGroup
24803
+ include Google::Apis::Core::Hashable
24804
+
24805
+ # [Output Only] The status of the group as configured. This has the same
24806
+ # structure as the operational field reported by the OperationalStatus method,
24807
+ # but does not take into account the operational status of each resource.
24808
+ # Corresponds to the JSON property `configured`
24809
+ # @return [Google::Apis::ComputeBeta::InterconnectGroupConfigured]
24810
+ attr_accessor :configured
24811
+
24812
+ # [Output Only] Creation timestamp in RFC3339 text format.
24813
+ # Corresponds to the JSON property `creationTimestamp`
24814
+ # @return [String]
24815
+ attr_accessor :creation_timestamp
24816
+
24817
+ # An optional description of this resource. Provide this property when you
24818
+ # create the resource.
24819
+ # Corresponds to the JSON property `description`
24820
+ # @return [String]
24821
+ attr_accessor :description
24822
+
24823
+ # Opaque system-generated token that uniquely identifies the configuration. If
24824
+ # provided when patching a configuration in update mode, the provided token must
24825
+ # match the current token or the update is rejected. This provides a reliable
24826
+ # means of doing read-modify-write (optimistic locking) as described by API 154.
24827
+ # Corresponds to the JSON property `etag`
24828
+ # @return [String]
24829
+ attr_accessor :etag
24830
+
24831
+ # [Output Only] The unique identifier for the resource type. The server
24832
+ # generates this identifier.
24833
+ # Corresponds to the JSON property `id`
24834
+ # @return [Fixnum]
24835
+ attr_accessor :id
24836
+
24837
+ # The user's intent for this group. This is the only required field besides the
24838
+ # name that must be specified on group creation.
24839
+ # Corresponds to the JSON property `intent`
24840
+ # @return [Google::Apis::ComputeBeta::InterconnectGroupIntent]
24841
+ attr_accessor :intent
24842
+
24843
+ # Interconnects in the InterconnectGroup. Keys are arbitrary user-specified
24844
+ # strings. Users are encouraged, but not required, to use their preferred format
24845
+ # for resource links as keys. Note that there are add-members and remove-members
24846
+ # methods in gcloud. The size of this map is limited by an "Interconnects per
24847
+ # group" quota.
24848
+ # Corresponds to the JSON property `interconnects`
24849
+ # @return [Hash<String,Google::Apis::ComputeBeta::InterconnectGroupInterconnect>]
24850
+ attr_accessor :interconnects
24851
+
24852
+ # [Output Only] Type of the resource. Always compute#InterconnectGroup
24853
+ # Corresponds to the JSON property `kind`
24854
+ # @return [String]
24855
+ attr_accessor :kind
24856
+
24857
+ # Name of the resource. Provided by the client when the resource is created. The
24858
+ # name must be 1-63 characters long, and comply with RFC1035. Specifically, the
24859
+ # name must be 1-63 characters long and match the regular expression `[a-z]([-a-
24860
+ # z0-9]*[a-z0-9])?` which means the first character must be a lowercase letter,
24861
+ # and all following characters must be a dash, lowercase letter, or digit,
24862
+ # except the last character, which cannot be a dash.
24863
+ # Corresponds to the JSON property `name`
24864
+ # @return [String]
24865
+ attr_accessor :name
24866
+
24867
+ # [Output Only] An analysis of the physical layout of Interconnects in this
24868
+ # group. Every Interconnect in the group is shown once in this structure.
24869
+ # Corresponds to the JSON property `physicalStructure`
24870
+ # @return [Google::Apis::ComputeBeta::InterconnectGroupPhysicalStructure]
24871
+ attr_accessor :physical_structure
24872
+
24873
+ # [Output Only] Server-defined URL for the resource.
24874
+ # Corresponds to the JSON property `selfLink`
24875
+ # @return [String]
24876
+ attr_accessor :self_link
24877
+
24878
+ def initialize(**args)
24879
+ update!(**args)
24880
+ end
24881
+
24882
+ # Update properties of this object
24883
+ def update!(**args)
24884
+ @configured = args[:configured] if args.key?(:configured)
24885
+ @creation_timestamp = args[:creation_timestamp] if args.key?(:creation_timestamp)
24886
+ @description = args[:description] if args.key?(:description)
24887
+ @etag = args[:etag] if args.key?(:etag)
24888
+ @id = args[:id] if args.key?(:id)
24889
+ @intent = args[:intent] if args.key?(:intent)
24890
+ @interconnects = args[:interconnects] if args.key?(:interconnects)
24891
+ @kind = args[:kind] if args.key?(:kind)
24892
+ @name = args[:name] if args.key?(:name)
24893
+ @physical_structure = args[:physical_structure] if args.key?(:physical_structure)
24894
+ @self_link = args[:self_link] if args.key?(:self_link)
24895
+ end
24896
+ end
24897
+
24898
+ # [Output Only] The status of the group as configured. This has the same
24899
+ # structure as the operational field reported by the OperationalStatus method,
24900
+ # but does not take into account the operational status of each resource.
24901
+ class InterconnectGroupConfigured
24902
+ include Google::Apis::Core::Hashable
24903
+
24904
+ # [Output Only] How reliable this topology is configured to be, and why this
24905
+ # group does or does not meet the requirements for the intended capability.
24906
+ # Corresponds to the JSON property `topologyCapability`
24907
+ # @return [Google::Apis::ComputeBeta::InterconnectGroupConfiguredTopologyCapability]
24908
+ attr_accessor :topology_capability
24909
+
24910
+ def initialize(**args)
24911
+ update!(**args)
24912
+ end
24913
+
24914
+ # Update properties of this object
24915
+ def update!(**args)
24916
+ @topology_capability = args[:topology_capability] if args.key?(:topology_capability)
24917
+ end
24918
+ end
24919
+
24920
+ # [Output Only] How reliable this topology is configured to be, and why this
24921
+ # group does or does not meet the requirements for the intended capability.
24922
+ class InterconnectGroupConfiguredTopologyCapability
24923
+ include Google::Apis::Core::Hashable
24924
+
24925
+ #
24926
+ # Corresponds to the JSON property `intendedCapabilityBlockers`
24927
+ # @return [Array<Google::Apis::ComputeBeta::InterconnectGroupConfiguredTopologyCapabilityIntendedCapabilityBlockers>]
24928
+ attr_accessor :intended_capability_blockers
24929
+
24930
+ #
24931
+ # Corresponds to the JSON property `supportedSla`
24932
+ # @return [String]
24933
+ attr_accessor :supported_sla
24934
+
24935
+ def initialize(**args)
24936
+ update!(**args)
24937
+ end
24938
+
24939
+ # Update properties of this object
24940
+ def update!(**args)
24941
+ @intended_capability_blockers = args[:intended_capability_blockers] if args.key?(:intended_capability_blockers)
24942
+ @supported_sla = args[:supported_sla] if args.key?(:supported_sla)
24943
+ end
24944
+ end
24945
+
24946
+ # [Output Only] Reasons why configuration.topologyCapability.sla differs from
24947
+ # intent.topologyCapability. This list is empty if and only if those are the
24948
+ # same.
24949
+ class InterconnectGroupConfiguredTopologyCapabilityIntendedCapabilityBlockers
24950
+ include Google::Apis::Core::Hashable
24951
+
24952
+ #
24953
+ # Corresponds to the JSON property `blockerType`
24954
+ # @return [String]
24955
+ attr_accessor :blocker_type
24956
+
24957
+ # [Output Only] The url of Google Cloud public documentation explaining this
24958
+ # requirement. This is set for every type of requirement.
24959
+ # Corresponds to the JSON property `documentationLink`
24960
+ # @return [String]
24961
+ attr_accessor :documentation_link
24962
+
24963
+ # [Output Only] A human-readable explanation of this requirement and why it's
24964
+ # not met. This is set for every type of requirement.
24965
+ # Corresponds to the JSON property `explanation`
24966
+ # @return [String]
24967
+ attr_accessor :explanation
24968
+
24969
+ # [Output Only] Facilities used to explain this blocker in more detail. Like
24970
+ # physicalStructure.metros.facilities.facility, this is a numeric string like "
24971
+ # 5467".
24972
+ # Corresponds to the JSON property `facilities`
24973
+ # @return [Array<String>]
24974
+ attr_accessor :facilities
24975
+
24976
+ # [Output Only] Interconnects used to explain this blocker in more detail.
24977
+ # Corresponds to the JSON property `interconnects`
24978
+ # @return [Array<String>]
24979
+ attr_accessor :interconnects
24980
+
24981
+ # [Output Only] Metros used to explain this blocker in more detail. These are
24982
+ # three-letter lowercase strings like "iad". A blocker like INCOMPATIBLE_METROS
24983
+ # will specify the problematic metros in this field.
24984
+ # Corresponds to the JSON property `metros`
24985
+ # @return [Array<String>]
24986
+ attr_accessor :metros
24987
+
24988
+ # [Output Only] Zones used to explain this blocker in more detail. Zone names
24989
+ # are "zone1" and/or "zone2".
24990
+ # Corresponds to the JSON property `zones`
24991
+ # @return [Array<String>]
24992
+ attr_accessor :zones
24993
+
24994
+ def initialize(**args)
24995
+ update!(**args)
24996
+ end
24997
+
24998
+ # Update properties of this object
24999
+ def update!(**args)
25000
+ @blocker_type = args[:blocker_type] if args.key?(:blocker_type)
25001
+ @documentation_link = args[:documentation_link] if args.key?(:documentation_link)
25002
+ @explanation = args[:explanation] if args.key?(:explanation)
25003
+ @facilities = args[:facilities] if args.key?(:facilities)
25004
+ @interconnects = args[:interconnects] if args.key?(:interconnects)
25005
+ @metros = args[:metros] if args.key?(:metros)
25006
+ @zones = args[:zones] if args.key?(:zones)
25007
+ end
25008
+ end
25009
+
25010
+ # The user's intent for this group. This is the only required field besides the
25011
+ # name that must be specified on group creation.
25012
+ class InterconnectGroupIntent
25013
+ include Google::Apis::Core::Hashable
25014
+
25015
+ #
25016
+ # Corresponds to the JSON property `topologyCapability`
25017
+ # @return [String]
25018
+ attr_accessor :topology_capability
25019
+
25020
+ def initialize(**args)
25021
+ update!(**args)
25022
+ end
25023
+
25024
+ # Update properties of this object
25025
+ def update!(**args)
25026
+ @topology_capability = args[:topology_capability] if args.key?(:topology_capability)
25027
+ end
25028
+ end
25029
+
25030
+ # An Interconnect in this InterconnectGroup.
25031
+ class InterconnectGroupInterconnect
25032
+ include Google::Apis::Core::Hashable
25033
+
25034
+ # The URL of an Interconnect in this group. All Interconnects in the group are
25035
+ # unique.
25036
+ # Corresponds to the JSON property `interconnect`
25037
+ # @return [String]
25038
+ attr_accessor :interconnect
25039
+
25040
+ def initialize(**args)
25041
+ update!(**args)
25042
+ end
25043
+
25044
+ # Update properties of this object
25045
+ def update!(**args)
25046
+ @interconnect = args[:interconnect] if args.key?(:interconnect)
25047
+ end
25048
+ end
25049
+
25050
+ # [Output Only] An analysis of the physical layout of Interconnects in this
25051
+ # group. Every Interconnect in the group is shown once in this structure.
25052
+ class InterconnectGroupPhysicalStructure
25053
+ include Google::Apis::Core::Hashable
25054
+
25055
+ #
25056
+ # Corresponds to the JSON property `metros`
25057
+ # @return [Array<Google::Apis::ComputeBeta::InterconnectGroupPhysicalStructureMetros>]
25058
+ attr_accessor :metros
25059
+
25060
+ def initialize(**args)
25061
+ update!(**args)
25062
+ end
25063
+
25064
+ # Update properties of this object
25065
+ def update!(**args)
25066
+ @metros = args[:metros] if args.key?(:metros)
25067
+ end
25068
+ end
25069
+
25070
+ # [Output Only] The metros Interconnects in this group are in.
25071
+ class InterconnectGroupPhysicalStructureMetros
25072
+ include Google::Apis::Core::Hashable
25073
+
25074
+ #
25075
+ # Corresponds to the JSON property `facilities`
25076
+ # @return [Array<Google::Apis::ComputeBeta::InterconnectGroupPhysicalStructureMetrosFacilities>]
25077
+ attr_accessor :facilities
25078
+
25079
+ # [Output Only] The name of the metro, as a three-letter lowercase string like "
25080
+ # iad". This is the first component of the location of Interconnects underneath
25081
+ # this.
25082
+ # Corresponds to the JSON property `metro`
25083
+ # @return [String]
25084
+ attr_accessor :metro
25085
+
25086
+ def initialize(**args)
25087
+ update!(**args)
25088
+ end
25089
+
25090
+ # Update properties of this object
25091
+ def update!(**args)
25092
+ @facilities = args[:facilities] if args.key?(:facilities)
25093
+ @metro = args[:metro] if args.key?(:metro)
25094
+ end
25095
+ end
25096
+
25097
+ # [Output Only] The facilities Interconnects in this metro are present in.
25098
+ class InterconnectGroupPhysicalStructureMetrosFacilities
25099
+ include Google::Apis::Core::Hashable
25100
+
25101
+ # [Output Only] The ID of this facility, as a numeric string like "5467". This
25102
+ # is the third component of the location of Interconnects in this facility.
25103
+ # Corresponds to the JSON property `facility`
25104
+ # @return [String]
25105
+ attr_accessor :facility
25106
+
25107
+ #
25108
+ # Corresponds to the JSON property `zones`
25109
+ # @return [Array<Google::Apis::ComputeBeta::InterconnectGroupPhysicalStructureMetrosFacilitiesZones>]
25110
+ attr_accessor :zones
25111
+
25112
+ def initialize(**args)
25113
+ update!(**args)
25114
+ end
25115
+
25116
+ # Update properties of this object
25117
+ def update!(**args)
25118
+ @facility = args[:facility] if args.key?(:facility)
25119
+ @zones = args[:zones] if args.key?(:zones)
25120
+ end
25121
+ end
25122
+
25123
+ # [Output Only] The zones that Interconnects in this facility are present in.
25124
+ class InterconnectGroupPhysicalStructureMetrosFacilitiesZones
25125
+ include Google::Apis::Core::Hashable
25126
+
25127
+ # [Output Only] URLs of Interconnects in this redundancy group in the given
25128
+ # metro, facility, and zone.
25129
+ # Corresponds to the JSON property `interconnects`
25130
+ # @return [Array<String>]
25131
+ attr_accessor :interconnects
25132
+
25133
+ # [Output Only] The name of the zone, either "zone1" or "zone2". This is the
25134
+ # second component of the location of Interconnects in this facility.
25135
+ # Corresponds to the JSON property `zone`
25136
+ # @return [String]
25137
+ attr_accessor :zone
25138
+
25139
+ def initialize(**args)
25140
+ update!(**args)
25141
+ end
25142
+
25143
+ # Update properties of this object
25144
+ def update!(**args)
25145
+ @interconnects = args[:interconnects] if args.key?(:interconnects)
25146
+ @zone = args[:zone] if args.key?(:zone)
25147
+ end
25148
+ end
25149
+
25150
+ #
25151
+ class InterconnectGroupsCreateMembers
25152
+ include Google::Apis::Core::Hashable
25153
+
25154
+ # How to behave when configured.topologyCapability.supportedSLA would not equal
25155
+ # intent.topologyCapability after this call.
25156
+ # Corresponds to the JSON property `intentMismatchBehavior`
25157
+ # @return [String]
25158
+ attr_accessor :intent_mismatch_behavior
25159
+
25160
+ #
25161
+ # Corresponds to the JSON property `interconnects`
25162
+ # @return [Array<Google::Apis::ComputeBeta::InterconnectGroupsCreateMembersInterconnectInput>]
25163
+ attr_accessor :interconnects
25164
+
25165
+ # LINT.IfChange
25166
+ # Corresponds to the JSON property `templateInterconnect`
25167
+ # @return [Google::Apis::ComputeBeta::InterconnectGroupsCreateMembersInterconnectInput]
25168
+ attr_accessor :template_interconnect
25169
+
25170
+ def initialize(**args)
25171
+ update!(**args)
25172
+ end
25173
+
25174
+ # Update properties of this object
25175
+ def update!(**args)
25176
+ @intent_mismatch_behavior = args[:intent_mismatch_behavior] if args.key?(:intent_mismatch_behavior)
25177
+ @interconnects = args[:interconnects] if args.key?(:interconnects)
25178
+ @template_interconnect = args[:template_interconnect] if args.key?(:template_interconnect)
25179
+ end
25180
+ end
25181
+
25182
+ # LINT.IfChange
25183
+ class InterconnectGroupsCreateMembersInterconnectInput
25184
+ include Google::Apis::Core::Hashable
25185
+
25186
+ # Administrative status of the interconnect. When this is set to true, the
25187
+ # Interconnect is functional and can carry traffic. When set to false, no
25188
+ # packets can be carried over the interconnect and no BGP routes are exchanged
25189
+ # over it. By default, the status is set to true.
25190
+ # Corresponds to the JSON property `adminEnabled`
25191
+ # @return [Boolean]
25192
+ attr_accessor :admin_enabled
25193
+ alias_method :admin_enabled?, :admin_enabled
25194
+
25195
+ # Customer name, to put in the Letter of Authorization as the party authorized
25196
+ # to request a crossconnect.
25197
+ # Corresponds to the JSON property `customerName`
25198
+ # @return [String]
25199
+ attr_accessor :customer_name
25200
+
25201
+ # An optional description of this resource. Provide this property when you
25202
+ # create the resource.
25203
+ # Corresponds to the JSON property `description`
25204
+ # @return [String]
25205
+ attr_accessor :description
25206
+
25207
+ # A zone-free location to use for all Interconnects created in this call, like "
25208
+ # iad-1234".
25209
+ # Corresponds to the JSON property `facility`
25210
+ # @return [String]
25211
+ attr_accessor :facility
25212
+
25213
+ # Type of interconnect, which can take one of the following values: - PARTNER: A
25214
+ # partner-managed interconnection shared between customers though a partner. -
25215
+ # DEDICATED: A dedicated physical interconnection with the customer. Note that a
25216
+ # value IT_PRIVATE has been deprecated in favor of DEDICATED.
25217
+ # Corresponds to the JSON property `interconnectType`
25218
+ # @return [String]
25219
+ attr_accessor :interconnect_type
25220
+
25221
+ # Type of link requested, which can take one of the following values: -
25222
+ # LINK_TYPE_ETHERNET_10G_LR: A 10G Ethernet with LR optics -
25223
+ # LINK_TYPE_ETHERNET_100G_LR: A 100G Ethernet with LR optics. -
25224
+ # LINK_TYPE_ETHERNET_400G_LR4: A 400G Ethernet with LR4 optics. Note that this
25225
+ # field indicates the speed of each of the links in the bundle, not the speed of
25226
+ # the entire bundle.
25227
+ # Corresponds to the JSON property `linkType`
25228
+ # @return [String]
25229
+ attr_accessor :link_type
25230
+
25231
+ # Name of the Interconnects to be created. This must be specified on the
25232
+ # template and/or on each individual interconnect. The name, if not empty, must
25233
+ # be 1-63 characters long, and comply with RFC1035. Specifically, any nonempty
25234
+ # name must be 1-63 characters long and match the regular expression `[a-z]([-a-
25235
+ # z0-9]*[a-z0-9])?` which means the first character must be a lowercase letter,
25236
+ # and all following characters must be a dash, lowercase letter, or digit,
25237
+ # except the last character, which cannot be a dash.
25238
+ # Corresponds to the JSON property `name`
25239
+ # @return [String]
25240
+ attr_accessor :name
25241
+
25242
+ # Email address to contact the customer NOC for operations and maintenance
25243
+ # notifications regarding this Interconnect. If specified, this will be used for
25244
+ # notifications in addition to all other forms described, such as Cloud
25245
+ # Monitoring logs alerting and Cloud Notifications. This field is required for
25246
+ # users who sign up for Cloud Interconnect using workforce identity federation.
25247
+ # Corresponds to the JSON property `nocContactEmail`
25248
+ # @return [String]
25249
+ attr_accessor :noc_contact_email
25250
+
25251
+ # Indicates that this is a Cross-Cloud Interconnect. This field specifies the
25252
+ # location outside of Google's network that the interconnect is connected to.
25253
+ # Corresponds to the JSON property `remoteLocation`
25254
+ # @return [String]
25255
+ attr_accessor :remote_location
25256
+
25257
+ # Optional. List of features requested for this Interconnect connection, which
25258
+ # can take one of the following values: - IF_MACSEC If specified then the
25259
+ # connection is created on MACsec capable hardware ports. If not specified, the
25260
+ # default value is false, which allocates non-MACsec capable ports first if
25261
+ # available. This parameter can be provided only with Interconnect INSERT. It
25262
+ # isn't valid for Interconnect PATCH.
25263
+ # Corresponds to the JSON property `requestedFeatures`
25264
+ # @return [Array<String>]
25265
+ attr_accessor :requested_features
25266
+
25267
+ # Target number of physical links in the link bundle, as requested by the
25268
+ # customer.
25269
+ # Corresponds to the JSON property `requestedLinkCount`
25270
+ # @return [Fixnum]
25271
+ attr_accessor :requested_link_count
25272
+
25273
+ def initialize(**args)
25274
+ update!(**args)
25275
+ end
25276
+
25277
+ # Update properties of this object
25278
+ def update!(**args)
25279
+ @admin_enabled = args[:admin_enabled] if args.key?(:admin_enabled)
25280
+ @customer_name = args[:customer_name] if args.key?(:customer_name)
25281
+ @description = args[:description] if args.key?(:description)
25282
+ @facility = args[:facility] if args.key?(:facility)
25283
+ @interconnect_type = args[:interconnect_type] if args.key?(:interconnect_type)
25284
+ @link_type = args[:link_type] if args.key?(:link_type)
25285
+ @name = args[:name] if args.key?(:name)
25286
+ @noc_contact_email = args[:noc_contact_email] if args.key?(:noc_contact_email)
25287
+ @remote_location = args[:remote_location] if args.key?(:remote_location)
25288
+ @requested_features = args[:requested_features] if args.key?(:requested_features)
25289
+ @requested_link_count = args[:requested_link_count] if args.key?(:requested_link_count)
25290
+ end
25291
+ end
25292
+
25293
+ #
25294
+ class InterconnectGroupsCreateMembersRequest
25295
+ include Google::Apis::Core::Hashable
25296
+
25297
+ #
25298
+ # Corresponds to the JSON property `request`
25299
+ # @return [Google::Apis::ComputeBeta::InterconnectGroupsCreateMembers]
25300
+ attr_accessor :request
25301
+
25302
+ def initialize(**args)
25303
+ update!(**args)
25304
+ end
25305
+
25306
+ # Update properties of this object
25307
+ def update!(**args)
25308
+ @request = args[:request] if args.key?(:request)
25309
+ end
25310
+ end
25311
+
25312
+ # Response for the InterconnectGroupsGetOperationalStatusResponse.
25313
+ class InterconnectGroupsGetOperationalStatusResponse
25314
+ include Google::Apis::Core::Hashable
25315
+
25316
+ #
25317
+ # Corresponds to the JSON property `etag`
25318
+ # @return [String]
25319
+ attr_accessor :etag
25320
+
25321
+ # Request to get the status of the interconnect group with extra detail.
25322
+ # Corresponds to the JSON property `result`
25323
+ # @return [Google::Apis::ComputeBeta::InterconnectGroupsOperationalStatus]
25324
+ attr_accessor :result
25325
+
25326
+ def initialize(**args)
25327
+ update!(**args)
25328
+ end
25329
+
25330
+ # Update properties of this object
25331
+ def update!(**args)
25332
+ @etag = args[:etag] if args.key?(:etag)
25333
+ @result = args[:result] if args.key?(:result)
25334
+ end
25335
+ end
25336
+
25337
+ #
25338
+ class InterconnectGroupsListResponse
25339
+ include Google::Apis::Core::Hashable
25340
+
25341
+ #
25342
+ # Corresponds to the JSON property `etag`
25343
+ # @return [String]
25344
+ attr_accessor :etag
25345
+
25346
+ # [Output Only] Unique identifier for the resource; defined by the server.
25347
+ # Corresponds to the JSON property `id`
25348
+ # @return [String]
25349
+ attr_accessor :id
25350
+
25351
+ # A list of InterconnectGroup resources.
25352
+ # Corresponds to the JSON property `items`
25353
+ # @return [Array<Google::Apis::ComputeBeta::InterconnectGroup>]
25354
+ attr_accessor :items
25355
+
25356
+ #
25357
+ # Corresponds to the JSON property `kind`
25358
+ # @return [String]
25359
+ attr_accessor :kind
25360
+
25361
+ # [Output Only] This token allows you to get the next page of results for list
25362
+ # requests. If the number of results is larger than maxResults, use the
25363
+ # nextPageToken as a value for the query parameter pageToken in the next list
25364
+ # request. Subsequent list requests will have their own nextPageToken to
25365
+ # continue paging through the results.
25366
+ # Corresponds to the JSON property `nextPageToken`
25367
+ # @return [String]
25368
+ attr_accessor :next_page_token
25369
+
25370
+ # [Output Only] Server-defined URL for this resource.
25371
+ # Corresponds to the JSON property `selfLink`
25372
+ # @return [String]
25373
+ attr_accessor :self_link
25374
+
25375
+ # [Output Only] Unreachable resources. end_interface:
25376
+ # MixerListResponseWithEtagBuilder
25377
+ # Corresponds to the JSON property `unreachables`
25378
+ # @return [Array<String>]
25379
+ attr_accessor :unreachables
25380
+
25381
+ # [Output Only] Informational warning message.
25382
+ # Corresponds to the JSON property `warning`
25383
+ # @return [Google::Apis::ComputeBeta::InterconnectGroupsListResponse::Warning]
25384
+ attr_accessor :warning
25385
+
25386
+ def initialize(**args)
25387
+ update!(**args)
25388
+ end
25389
+
25390
+ # Update properties of this object
25391
+ def update!(**args)
25392
+ @etag = args[:etag] if args.key?(:etag)
25393
+ @id = args[:id] if args.key?(:id)
25394
+ @items = args[:items] if args.key?(:items)
25395
+ @kind = args[:kind] if args.key?(:kind)
25396
+ @next_page_token = args[:next_page_token] if args.key?(:next_page_token)
25397
+ @self_link = args[:self_link] if args.key?(:self_link)
25398
+ @unreachables = args[:unreachables] if args.key?(:unreachables)
25399
+ @warning = args[:warning] if args.key?(:warning)
25400
+ end
25401
+
25402
+ # [Output Only] Informational warning message.
25403
+ class Warning
25404
+ include Google::Apis::Core::Hashable
25405
+
25406
+ # [Output Only] A warning code, if applicable. For example, Compute Engine
25407
+ # returns NO_RESULTS_ON_PAGE if there are no results in the response.
25408
+ # Corresponds to the JSON property `code`
25409
+ # @return [String]
25410
+ attr_accessor :code
25411
+
25412
+ # [Output Only] Metadata about this warning in key: value format. For example: "
25413
+ # data": [ ` "key": "scope", "value": "zones/us-east1-d" `
25414
+ # Corresponds to the JSON property `data`
25415
+ # @return [Array<Google::Apis::ComputeBeta::InterconnectGroupsListResponse::Warning::Datum>]
25416
+ attr_accessor :data
25417
+
25418
+ # [Output Only] A human-readable description of the warning code.
25419
+ # Corresponds to the JSON property `message`
25420
+ # @return [String]
25421
+ attr_accessor :message
25422
+
25423
+ def initialize(**args)
25424
+ update!(**args)
25425
+ end
25426
+
25427
+ # Update properties of this object
25428
+ def update!(**args)
25429
+ @code = args[:code] if args.key?(:code)
25430
+ @data = args[:data] if args.key?(:data)
25431
+ @message = args[:message] if args.key?(:message)
25432
+ end
25433
+
25434
+ #
25435
+ class Datum
25436
+ include Google::Apis::Core::Hashable
25437
+
25438
+ # [Output Only] A key that provides more detail on the warning being returned.
25439
+ # For example, for warnings where there are no results in a list request for a
25440
+ # particular zone, this key might be scope and the key value might be the zone
25441
+ # name. Other examples might be a key indicating a deprecated resource and a
25442
+ # suggested replacement, or a warning about invalid network settings (for
25443
+ # example, if an instance attempts to perform IP forwarding but is not enabled
25444
+ # for IP forwarding).
25445
+ # Corresponds to the JSON property `key`
25446
+ # @return [String]
25447
+ attr_accessor :key
25448
+
25449
+ # [Output Only] A warning data value corresponding to the key.
25450
+ # Corresponds to the JSON property `value`
25451
+ # @return [String]
25452
+ attr_accessor :value
25453
+
25454
+ def initialize(**args)
25455
+ update!(**args)
25456
+ end
25457
+
25458
+ # Update properties of this object
25459
+ def update!(**args)
25460
+ @key = args[:key] if args.key?(:key)
25461
+ @value = args[:value] if args.key?(:value)
25462
+ end
25463
+ end
25464
+ end
25465
+ end
25466
+
25467
+ # Request to get the status of the interconnect group with extra detail.
25468
+ class InterconnectGroupsOperationalStatus
23802
25469
  include Google::Apis::Core::Hashable
23803
25470
 
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
25471
+ # [Output Only] The status of the group as configured. This has the same
25472
+ # structure as the operational field reported by the OperationalStatus method,
25473
+ # but does not take into account the operational status of each resource.
25474
+ # Corresponds to the JSON property `configured`
25475
+ # @return [Google::Apis::ComputeBeta::InterconnectGroupConfigured]
25476
+ attr_accessor :configured
23808
25477
 
23809
- # System ID of the port on the neighbor's side of the LACP exchange.
23810
- # Corresponds to the JSON property `neighborSystemId`
25478
+ # Summarizes the status of the group.
25479
+ # Corresponds to the JSON property `groupStatus`
23811
25480
  # @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
25481
+ attr_accessor :group_status
23821
25482
 
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
25483
+ # The user's intent for this group. This is the only required field besides the
25484
+ # name that must be specified on group creation.
25485
+ # Corresponds to the JSON property `intent`
25486
+ # @return [Google::Apis::ComputeBeta::InterconnectGroupIntent]
25487
+ attr_accessor :intent
23833
25488
 
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
25489
+ #
25490
+ # Corresponds to the JSON property `interconnectStatuses`
25491
+ # @return [Array<Google::Apis::ComputeBeta::InterconnectGroupsOperationalStatusInterconnectStatus>]
25492
+ attr_accessor :interconnect_statuses
23848
25493
 
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
25494
+ # [Output Only] The status of the group as configured. This has the same
25495
+ # structure as the operational field reported by the OperationalStatus method,
25496
+ # but does not take into account the operational status of each resource.
25497
+ # Corresponds to the JSON property `operational`
25498
+ # @return [Google::Apis::ComputeBeta::InterconnectGroupConfigured]
25499
+ attr_accessor :operational
23856
25500
 
23857
25501
  def initialize(**args)
23858
25502
  update!(**args)
@@ -23860,90 +25504,40 @@ module Google
23860
25504
 
23861
25505
  # Update properties of this object
23862
25506
  def update!(**args)
23863
- @state = args[:state] if args.key?(:state)
23864
- @value = args[:value] if args.key?(:value)
25507
+ @configured = args[:configured] if args.key?(:configured)
25508
+ @group_status = args[:group_status] if args.key?(:group_status)
25509
+ @intent = args[:intent] if args.key?(:intent)
25510
+ @interconnect_statuses = args[:interconnect_statuses] if args.key?(:interconnect_statuses)
25511
+ @operational = args[:operational] if args.key?(:operational)
23865
25512
  end
23866
25513
  end
23867
25514
 
23868
- #
23869
- class InterconnectDiagnosticsLinkStatus
25515
+ # The status of one Interconnect in the group. The order is arbitrary.
25516
+ class InterconnectGroupsOperationalStatusInterconnectStatus
23870
25517
  include Google::Apis::Core::Hashable
23871
25518
 
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
25519
+ # Whether the Interconnect is enabled.
25520
+ # Corresponds to the JSON property `adminEnabled`
25521
+ # @return [Boolean]
25522
+ attr_accessor :admin_enabled
25523
+ alias_method :admin_enabled?, :admin_enabled
23892
25524
 
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
25525
+ # Diagnostics information about the Interconnect connection, which contains
25526
+ # detailed and current technical information about Google's side of the
25527
+ # connection.
25528
+ # Corresponds to the JSON property `diagnostics`
25529
+ # @return [Google::Apis::ComputeBeta::InterconnectDiagnostics]
25530
+ attr_accessor :diagnostics
23897
25531
 
23898
- # The operational status of the link.
23899
- # Corresponds to the JSON property `operationalStatus`
25532
+ # The URL of the Interconnect being described.
25533
+ # Corresponds to the JSON property `interconnect`
23900
25534
  # @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
25535
+ attr_accessor :interconnect
23935
25536
 
23936
- # Indicates the Connectivity Association Key Name (CKN) currently being used if
23937
- # MACsec is operational.
23938
- # Corresponds to the JSON property `ckn`
25537
+ # Whether this interconnect is participating in the redundant configuration.
25538
+ # Corresponds to the JSON property `isActive`
23939
25539
  # @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
25540
+ attr_accessor :is_active
23947
25541
 
23948
25542
  def initialize(**args)
23949
25543
  update!(**args)
@@ -23951,8 +25545,10 @@ module Google
23951
25545
 
23952
25546
  # Update properties of this object
23953
25547
  def update!(**args)
23954
- @ckn = args[:ckn] if args.key?(:ckn)
23955
- @operational = args[:operational] if args.key?(:operational)
25548
+ @admin_enabled = args[:admin_enabled] if args.key?(:admin_enabled)
25549
+ @diagnostics = args[:diagnostics] if args.key?(:diagnostics)
25550
+ @interconnect = args[:interconnect] if args.key?(:interconnect)
25551
+ @is_active = args[:is_active] if args.key?(:is_active)
23956
25552
  end
23957
25553
  end
23958
25554
 
@@ -25025,6 +26621,18 @@ module Google
25025
26621
  class License
25026
26622
  include Google::Apis::Core::Hashable
25027
26623
 
26624
+ # Specifies licenseCodes of licenses that can replace this license. Note: such
26625
+ # replacements are allowed even if removable_from_disk is false.
26626
+ # Corresponds to the JSON property `allowedReplacementLicenses`
26627
+ # @return [Array<String>]
26628
+ attr_accessor :allowed_replacement_licenses
26629
+
26630
+ # If true, this license can be appended to an existing disk's set of licenses.
26631
+ # Corresponds to the JSON property `appendableToDisk`
26632
+ # @return [Boolean]
26633
+ attr_accessor :appendable_to_disk
26634
+ alias_method :appendable_to_disk?, :appendable_to_disk
26635
+
25028
26636
  # [Output Only] Deprecated. This field no longer reflects whether a license
25029
26637
  # charges a usage fee.
25030
26638
  # Corresponds to the JSON property `chargesUseFee`
@@ -25049,6 +26657,13 @@ module Google
25049
26657
  # @return [Fixnum]
25050
26658
  attr_accessor :id
25051
26659
 
26660
+ # Specifies licenseCodes of licenses that are incompatible with this license. If
26661
+ # a license is incompatible with this license, it cannot be attached to the same
26662
+ # disk or image.
26663
+ # Corresponds to the JSON property `incompatibleLicenses`
26664
+ # @return [Array<String>]
26665
+ attr_accessor :incompatible_licenses
26666
+
25052
26667
  # [Output Only] Type of resource. Always compute#license for licenses.
25053
26668
  # Corresponds to the JSON property `kind`
25054
26669
  # @return [String]
@@ -25060,12 +26675,47 @@ module Google
25060
26675
  # @return [Fixnum]
25061
26676
  attr_accessor :license_code
25062
26677
 
26678
+ # A Duration represents a fixed-length span of time represented as a count of
26679
+ # seconds and fractions of seconds at nanosecond resolution. It is independent
26680
+ # of any calendar and concepts like "day" or "month". Range is approximately 10,
26681
+ # 000 years.
26682
+ # Corresponds to the JSON property `minimumRetention`
26683
+ # @return [Google::Apis::ComputeBeta::Duration]
26684
+ attr_accessor :minimum_retention
26685
+
26686
+ # If true, this license can only be used on VMs on multi tenant nodes.
26687
+ # Corresponds to the JSON property `multiTenantOnly`
26688
+ # @return [Boolean]
26689
+ attr_accessor :multi_tenant_only
26690
+ alias_method :multi_tenant_only?, :multi_tenant_only
26691
+
25063
26692
  # Name of the resource. The name must be 1-63 characters long and comply with
25064
26693
  # RFC1035.
25065
26694
  # Corresponds to the JSON property `name`
25066
26695
  # @return [String]
25067
26696
  attr_accessor :name
25068
26697
 
26698
+ # If true, indicates this is an OS license. Only one OS license can be attached
26699
+ # to a disk or image at a time.
26700
+ # Corresponds to the JSON property `osLicense`
26701
+ # @return [Boolean]
26702
+ attr_accessor :os_license
26703
+ alias_method :os_license?, :os_license
26704
+
26705
+ # If true, this license can be removed from a disk's set of licenses, with no
26706
+ # replacement license needed.
26707
+ # Corresponds to the JSON property `removableFromDisk`
26708
+ # @return [Boolean]
26709
+ attr_accessor :removable_from_disk
26710
+ alias_method :removable_from_disk?, :removable_from_disk
26711
+
26712
+ # Specifies the set of permissible coattached licenseCodes of licenses that
26713
+ # satisfy the coattachment requirement of this license. At least one license
26714
+ # from the set must be attached to the same disk or image as this license.
26715
+ # Corresponds to the JSON property `requiredCoattachedLicenses`
26716
+ # @return [Array<String>]
26717
+ attr_accessor :required_coattached_licenses
26718
+
25069
26719
  # [Input Only] Deprecated.
25070
26720
  # Corresponds to the JSON property `resourceRequirements`
25071
26721
  # @return [Google::Apis::ComputeBeta::LicenseResourceRequirements]
@@ -25076,6 +26726,17 @@ module Google
25076
26726
  # @return [String]
25077
26727
  attr_accessor :self_link
25078
26728
 
26729
+ # [Output Only] Server-defined URL for this resource with the resource id.
26730
+ # Corresponds to the JSON property `selfLinkWithId`
26731
+ # @return [String]
26732
+ attr_accessor :self_link_with_id
26733
+
26734
+ # If true, this license can only be used on VMs on sole tenant nodes.
26735
+ # Corresponds to the JSON property `soleTenantOnly`
26736
+ # @return [Boolean]
26737
+ attr_accessor :sole_tenant_only
26738
+ alias_method :sole_tenant_only?, :sole_tenant_only
26739
+
25079
26740
  # If false, licenses will not be copied from the source resource when creating
25080
26741
  # an image from a disk, disk from snapshot, or snapshot from disk.
25081
26742
  # Corresponds to the JSON property `transferable`
@@ -25083,22 +26744,38 @@ module Google
25083
26744
  attr_accessor :transferable
25084
26745
  alias_method :transferable?, :transferable
25085
26746
 
26747
+ # [Output Only] Last update timestamp in RFC3339 text format.
26748
+ # Corresponds to the JSON property `updateTimestamp`
26749
+ # @return [String]
26750
+ attr_accessor :update_timestamp
26751
+
25086
26752
  def initialize(**args)
25087
26753
  update!(**args)
25088
26754
  end
25089
26755
 
25090
26756
  # Update properties of this object
25091
26757
  def update!(**args)
26758
+ @allowed_replacement_licenses = args[:allowed_replacement_licenses] if args.key?(:allowed_replacement_licenses)
26759
+ @appendable_to_disk = args[:appendable_to_disk] if args.key?(:appendable_to_disk)
25092
26760
  @charges_use_fee = args[:charges_use_fee] if args.key?(:charges_use_fee)
25093
26761
  @creation_timestamp = args[:creation_timestamp] if args.key?(:creation_timestamp)
25094
26762
  @description = args[:description] if args.key?(:description)
25095
26763
  @id = args[:id] if args.key?(:id)
26764
+ @incompatible_licenses = args[:incompatible_licenses] if args.key?(:incompatible_licenses)
25096
26765
  @kind = args[:kind] if args.key?(:kind)
25097
26766
  @license_code = args[:license_code] if args.key?(:license_code)
26767
+ @minimum_retention = args[:minimum_retention] if args.key?(:minimum_retention)
26768
+ @multi_tenant_only = args[:multi_tenant_only] if args.key?(:multi_tenant_only)
25098
26769
  @name = args[:name] if args.key?(:name)
26770
+ @os_license = args[:os_license] if args.key?(:os_license)
26771
+ @removable_from_disk = args[:removable_from_disk] if args.key?(:removable_from_disk)
26772
+ @required_coattached_licenses = args[:required_coattached_licenses] if args.key?(:required_coattached_licenses)
25099
26773
  @resource_requirements = args[:resource_requirements] if args.key?(:resource_requirements)
25100
26774
  @self_link = args[:self_link] if args.key?(:self_link)
26775
+ @self_link_with_id = args[:self_link_with_id] if args.key?(:self_link_with_id)
26776
+ @sole_tenant_only = args[:sole_tenant_only] if args.key?(:sole_tenant_only)
25101
26777
  @transferable = args[:transferable] if args.key?(:transferable)
26778
+ @update_timestamp = args[:update_timestamp] if args.key?(:update_timestamp)
25102
26779
  end
25103
26780
  end
25104
26781
 
@@ -29579,6 +31256,14 @@ module Google
29579
31256
  attr_accessor :auto_create_routes
29580
31257
  alias_method :auto_create_routes?, :auto_create_routes
29581
31258
 
31259
+ # [Output Only] Describes the state of a peering connection, not just the local
31260
+ # peering. This field provides information about the effective settings for the
31261
+ # connection as a whole, including pending delete/update requests for CONSENSUS
31262
+ # peerings.
31263
+ # Corresponds to the JSON property `connectionStatus`
31264
+ # @return [Google::Apis::ComputeBeta::NetworkPeeringConnectionStatus]
31265
+ attr_accessor :connection_status
31266
+
29582
31267
  # Indicates whether full mesh connectivity is created and managed automatically
29583
31268
  # between peered networks. Currently this field should always be true since
29584
31269
  # Google Compute Engine will automatically create and manage subnetwork routes
@@ -29658,6 +31343,12 @@ module Google
29658
31343
  # @return [String]
29659
31344
  attr_accessor :state_details
29660
31345
 
31346
+ # The update strategy determines the semantics for updates and deletes to the
31347
+ # peering connection configuration.
31348
+ # Corresponds to the JSON property `updateStrategy`
31349
+ # @return [String]
31350
+ attr_accessor :update_strategy
31351
+
29661
31352
  def initialize(**args)
29662
31353
  update!(**args)
29663
31354
  end
@@ -29665,6 +31356,7 @@ module Google
29665
31356
  # Update properties of this object
29666
31357
  def update!(**args)
29667
31358
  @auto_create_routes = args[:auto_create_routes] if args.key?(:auto_create_routes)
31359
+ @connection_status = args[:connection_status] if args.key?(:connection_status)
29668
31360
  @exchange_subnet_routes = args[:exchange_subnet_routes] if args.key?(:exchange_subnet_routes)
29669
31361
  @export_custom_routes = args[:export_custom_routes] if args.key?(:export_custom_routes)
29670
31362
  @export_subnet_routes_with_public_ip = args[:export_subnet_routes_with_public_ip] if args.key?(:export_subnet_routes_with_public_ip)
@@ -29676,6 +31368,122 @@ module Google
29676
31368
  @stack_type = args[:stack_type] if args.key?(:stack_type)
29677
31369
  @state = args[:state] if args.key?(:state)
29678
31370
  @state_details = args[:state_details] if args.key?(:state_details)
31371
+ @update_strategy = args[:update_strategy] if args.key?(:update_strategy)
31372
+ end
31373
+ end
31374
+
31375
+ # [Output Only] Describes the state of a peering connection, not just the local
31376
+ # peering. This field provides information about the effective settings for the
31377
+ # connection as a whole, including pending delete/update requests for CONSENSUS
31378
+ # peerings.
31379
+ class NetworkPeeringConnectionStatus
31380
+ include Google::Apis::Core::Hashable
31381
+
31382
+ # The status of update/delete for a consensus peering connection. Only set when
31383
+ # connection_status.update_strategy is CONSENSUS or a network peering is
31384
+ # proposing to update the strategy to CONSENSUS.
31385
+ # Corresponds to the JSON property `consensusState`
31386
+ # @return [Google::Apis::ComputeBeta::NetworkPeeringConnectionStatusConsensusState]
31387
+ attr_accessor :consensus_state
31388
+
31389
+ # The active connectivity settings for the peering connection based on the
31390
+ # settings of the network peerings.
31391
+ # Corresponds to the JSON property `trafficConfiguration`
31392
+ # @return [Google::Apis::ComputeBeta::NetworkPeeringConnectionStatusTrafficConfiguration]
31393
+ attr_accessor :traffic_configuration
31394
+
31395
+ # The update strategy determines the update/delete semantics for this peering
31396
+ # connection.
31397
+ # Corresponds to the JSON property `updateStrategy`
31398
+ # @return [String]
31399
+ attr_accessor :update_strategy
31400
+
31401
+ def initialize(**args)
31402
+ update!(**args)
31403
+ end
31404
+
31405
+ # Update properties of this object
31406
+ def update!(**args)
31407
+ @consensus_state = args[:consensus_state] if args.key?(:consensus_state)
31408
+ @traffic_configuration = args[:traffic_configuration] if args.key?(:traffic_configuration)
31409
+ @update_strategy = args[:update_strategy] if args.key?(:update_strategy)
31410
+ end
31411
+ end
31412
+
31413
+ # The status of update/delete for a consensus peering connection. Only set when
31414
+ # connection_status.update_strategy is CONSENSUS or a network peering is
31415
+ # proposing to update the strategy to CONSENSUS.
31416
+ class NetworkPeeringConnectionStatusConsensusState
31417
+ include Google::Apis::Core::Hashable
31418
+
31419
+ # The status of the delete request.
31420
+ # Corresponds to the JSON property `deleteStatus`
31421
+ # @return [String]
31422
+ attr_accessor :delete_status
31423
+
31424
+ # The status of the update request.
31425
+ # Corresponds to the JSON property `updateStatus`
31426
+ # @return [String]
31427
+ attr_accessor :update_status
31428
+
31429
+ def initialize(**args)
31430
+ update!(**args)
31431
+ end
31432
+
31433
+ # Update properties of this object
31434
+ def update!(**args)
31435
+ @delete_status = args[:delete_status] if args.key?(:delete_status)
31436
+ @update_status = args[:update_status] if args.key?(:update_status)
31437
+ end
31438
+ end
31439
+
31440
+ #
31441
+ class NetworkPeeringConnectionStatusTrafficConfiguration
31442
+ include Google::Apis::Core::Hashable
31443
+
31444
+ # Whether custom routes are being exported to the peer network.
31445
+ # Corresponds to the JSON property `exportCustomRoutesToPeer`
31446
+ # @return [Boolean]
31447
+ attr_accessor :export_custom_routes_to_peer
31448
+ alias_method :export_custom_routes_to_peer?, :export_custom_routes_to_peer
31449
+
31450
+ # Whether subnet routes with public IP ranges are being exported to the peer
31451
+ # network.
31452
+ # Corresponds to the JSON property `exportSubnetRoutesWithPublicIpToPeer`
31453
+ # @return [Boolean]
31454
+ attr_accessor :export_subnet_routes_with_public_ip_to_peer
31455
+ alias_method :export_subnet_routes_with_public_ip_to_peer?, :export_subnet_routes_with_public_ip_to_peer
31456
+
31457
+ # Whether custom routes are being imported from the peer network.
31458
+ # Corresponds to the JSON property `importCustomRoutesFromPeer`
31459
+ # @return [Boolean]
31460
+ attr_accessor :import_custom_routes_from_peer
31461
+ alias_method :import_custom_routes_from_peer?, :import_custom_routes_from_peer
31462
+
31463
+ # Whether subnet routes with public IP ranges are being imported from the peer
31464
+ # network.
31465
+ # Corresponds to the JSON property `importSubnetRoutesWithPublicIpFromPeer`
31466
+ # @return [Boolean]
31467
+ attr_accessor :import_subnet_routes_with_public_ip_from_peer
31468
+ alias_method :import_subnet_routes_with_public_ip_from_peer?, :import_subnet_routes_with_public_ip_from_peer
31469
+
31470
+ # Which IP version(s) of traffic and routes are being imported or exported
31471
+ # between peer networks.
31472
+ # Corresponds to the JSON property `stackType`
31473
+ # @return [String]
31474
+ attr_accessor :stack_type
31475
+
31476
+ def initialize(**args)
31477
+ update!(**args)
31478
+ end
31479
+
31480
+ # Update properties of this object
31481
+ def update!(**args)
31482
+ @export_custom_routes_to_peer = args[:export_custom_routes_to_peer] if args.key?(:export_custom_routes_to_peer)
31483
+ @export_subnet_routes_with_public_ip_to_peer = args[:export_subnet_routes_with_public_ip_to_peer] if args.key?(:export_subnet_routes_with_public_ip_to_peer)
31484
+ @import_custom_routes_from_peer = args[:import_custom_routes_from_peer] if args.key?(:import_custom_routes_from_peer)
31485
+ @import_subnet_routes_with_public_ip_from_peer = args[:import_subnet_routes_with_public_ip_from_peer] if args.key?(:import_subnet_routes_with_public_ip_from_peer)
31486
+ @stack_type = args[:stack_type] if args.key?(:stack_type)
29679
31487
  end
29680
31488
  end
29681
31489
 
@@ -30351,6 +32159,25 @@ module Google
30351
32159
  end
30352
32160
  end
30353
32161
 
32162
+ #
32163
+ class NetworksRequestRemovePeeringRequest
32164
+ include Google::Apis::Core::Hashable
32165
+
32166
+ # Name of the peering, which should conform to RFC1035.
32167
+ # Corresponds to the JSON property `name`
32168
+ # @return [String]
32169
+ attr_accessor :name
32170
+
32171
+ def initialize(**args)
32172
+ update!(**args)
32173
+ end
32174
+
32175
+ # Update properties of this object
32176
+ def update!(**args)
32177
+ @name = args[:name] if args.key?(:name)
32178
+ end
32179
+ end
32180
+
30354
32181
  #
30355
32182
  class NetworksUpdatePeeringRequest
30356
32183
  include Google::Apis::Core::Hashable
@@ -34396,6 +36223,377 @@ module Google
34396
36223
  end
34397
36224
  end
34398
36225
 
36226
+ # Represents a single Google Compute Engine preview feature.
36227
+ class PreviewFeature
36228
+ include Google::Apis::Core::Hashable
36229
+
36230
+ # Specifies whether the feature is enabled or disabled.
36231
+ # Corresponds to the JSON property `activationStatus`
36232
+ # @return [String]
36233
+ attr_accessor :activation_status
36234
+
36235
+ # [Output Only] Creation timestamp in RFC3339 text format.
36236
+ # Corresponds to the JSON property `creationTimestamp`
36237
+ # @return [String]
36238
+ attr_accessor :creation_timestamp
36239
+
36240
+ # [Output Only] Description of the feature.
36241
+ # Corresponds to the JSON property `description`
36242
+ # @return [String]
36243
+ attr_accessor :description
36244
+
36245
+ # [Output Only] The unique identifier for the resource. This identifier is
36246
+ # defined by the server.
36247
+ # Corresponds to the JSON property `id`
36248
+ # @return [Fixnum]
36249
+ attr_accessor :id
36250
+
36251
+ # [Output only] The type of the feature. Always "compute#previewFeature" for
36252
+ # preview features.
36253
+ # Corresponds to the JSON property `kind`
36254
+ # @return [String]
36255
+ attr_accessor :kind
36256
+
36257
+ # Name of the feature.
36258
+ # Corresponds to the JSON property `name`
36259
+ # @return [String]
36260
+ attr_accessor :name
36261
+
36262
+ # Represents the rollout operation
36263
+ # Corresponds to the JSON property `rolloutOperation`
36264
+ # @return [Google::Apis::ComputeBeta::PreviewFeatureRolloutOperation]
36265
+ attr_accessor :rollout_operation
36266
+
36267
+ # [Output Only] Server-defined URL for the resource.
36268
+ # Corresponds to the JSON property `selfLink`
36269
+ # @return [String]
36270
+ attr_accessor :self_link
36271
+
36272
+ # [Output Only] The status of the feature.
36273
+ # Corresponds to the JSON property `status`
36274
+ # @return [Google::Apis::ComputeBeta::PreviewFeatureStatus]
36275
+ attr_accessor :status
36276
+
36277
+ def initialize(**args)
36278
+ update!(**args)
36279
+ end
36280
+
36281
+ # Update properties of this object
36282
+ def update!(**args)
36283
+ @activation_status = args[:activation_status] if args.key?(:activation_status)
36284
+ @creation_timestamp = args[:creation_timestamp] if args.key?(:creation_timestamp)
36285
+ @description = args[:description] if args.key?(:description)
36286
+ @id = args[:id] if args.key?(:id)
36287
+ @kind = args[:kind] if args.key?(:kind)
36288
+ @name = args[:name] if args.key?(:name)
36289
+ @rollout_operation = args[:rollout_operation] if args.key?(:rollout_operation)
36290
+ @self_link = args[:self_link] if args.key?(:self_link)
36291
+ @status = args[:status] if args.key?(:status)
36292
+ end
36293
+ end
36294
+
36295
+ #
36296
+ class PreviewFeatureList
36297
+ include Google::Apis::Core::Hashable
36298
+
36299
+ #
36300
+ # Corresponds to the JSON property `etag`
36301
+ # @return [String]
36302
+ attr_accessor :etag
36303
+
36304
+ # [Output Only] Unique identifier for the resource; defined by the server.
36305
+ # Corresponds to the JSON property `id`
36306
+ # @return [String]
36307
+ attr_accessor :id
36308
+
36309
+ # A list of PreviewFeature resources.
36310
+ # Corresponds to the JSON property `items`
36311
+ # @return [Array<Google::Apis::ComputeBeta::PreviewFeature>]
36312
+ attr_accessor :items
36313
+
36314
+ # [Output Only] This token allows you to get the next page of results for list
36315
+ # requests. If the number of results is larger than maxResults, use the
36316
+ # nextPageToken as a value for the query parameter pageToken in the next list
36317
+ # request. Subsequent list requests will have their own nextPageToken to
36318
+ # continue paging through the results.
36319
+ # Corresponds to the JSON property `nextPageToken`
36320
+ # @return [String]
36321
+ attr_accessor :next_page_token
36322
+
36323
+ # [Output Only] Server-defined URL for this resource.
36324
+ # Corresponds to the JSON property `selfLink`
36325
+ # @return [String]
36326
+ attr_accessor :self_link
36327
+
36328
+ # [Output Only] Unreachable resources. end_interface:
36329
+ # MixerListResponseWithEtagBuilder
36330
+ # Corresponds to the JSON property `unreachables`
36331
+ # @return [Array<String>]
36332
+ attr_accessor :unreachables
36333
+
36334
+ # [Output Only] Informational warning message.
36335
+ # Corresponds to the JSON property `warning`
36336
+ # @return [Google::Apis::ComputeBeta::PreviewFeatureList::Warning]
36337
+ attr_accessor :warning
36338
+
36339
+ def initialize(**args)
36340
+ update!(**args)
36341
+ end
36342
+
36343
+ # Update properties of this object
36344
+ def update!(**args)
36345
+ @etag = args[:etag] if args.key?(:etag)
36346
+ @id = args[:id] if args.key?(:id)
36347
+ @items = args[:items] if args.key?(:items)
36348
+ @next_page_token = args[:next_page_token] if args.key?(:next_page_token)
36349
+ @self_link = args[:self_link] if args.key?(:self_link)
36350
+ @unreachables = args[:unreachables] if args.key?(:unreachables)
36351
+ @warning = args[:warning] if args.key?(:warning)
36352
+ end
36353
+
36354
+ # [Output Only] Informational warning message.
36355
+ class Warning
36356
+ include Google::Apis::Core::Hashable
36357
+
36358
+ # [Output Only] A warning code, if applicable. For example, Compute Engine
36359
+ # returns NO_RESULTS_ON_PAGE if there are no results in the response.
36360
+ # Corresponds to the JSON property `code`
36361
+ # @return [String]
36362
+ attr_accessor :code
36363
+
36364
+ # [Output Only] Metadata about this warning in key: value format. For example: "
36365
+ # data": [ ` "key": "scope", "value": "zones/us-east1-d" `
36366
+ # Corresponds to the JSON property `data`
36367
+ # @return [Array<Google::Apis::ComputeBeta::PreviewFeatureList::Warning::Datum>]
36368
+ attr_accessor :data
36369
+
36370
+ # [Output Only] A human-readable description of the warning code.
36371
+ # Corresponds to the JSON property `message`
36372
+ # @return [String]
36373
+ attr_accessor :message
36374
+
36375
+ def initialize(**args)
36376
+ update!(**args)
36377
+ end
36378
+
36379
+ # Update properties of this object
36380
+ def update!(**args)
36381
+ @code = args[:code] if args.key?(:code)
36382
+ @data = args[:data] if args.key?(:data)
36383
+ @message = args[:message] if args.key?(:message)
36384
+ end
36385
+
36386
+ #
36387
+ class Datum
36388
+ include Google::Apis::Core::Hashable
36389
+
36390
+ # [Output Only] A key that provides more detail on the warning being returned.
36391
+ # For example, for warnings where there are no results in a list request for a
36392
+ # particular zone, this key might be scope and the key value might be the zone
36393
+ # name. Other examples might be a key indicating a deprecated resource and a
36394
+ # suggested replacement, or a warning about invalid network settings (for
36395
+ # example, if an instance attempts to perform IP forwarding but is not enabled
36396
+ # for IP forwarding).
36397
+ # Corresponds to the JSON property `key`
36398
+ # @return [String]
36399
+ attr_accessor :key
36400
+
36401
+ # [Output Only] A warning data value corresponding to the key.
36402
+ # Corresponds to the JSON property `value`
36403
+ # @return [String]
36404
+ attr_accessor :value
36405
+
36406
+ def initialize(**args)
36407
+ update!(**args)
36408
+ end
36409
+
36410
+ # Update properties of this object
36411
+ def update!(**args)
36412
+ @key = args[:key] if args.key?(:key)
36413
+ @value = args[:value] if args.key?(:value)
36414
+ end
36415
+ end
36416
+ end
36417
+ end
36418
+
36419
+ # Represents the rollout operation
36420
+ class PreviewFeatureRolloutOperation
36421
+ include Google::Apis::Core::Hashable
36422
+
36423
+ #
36424
+ # Corresponds to the JSON property `rolloutInput`
36425
+ # @return [Google::Apis::ComputeBeta::PreviewFeatureRolloutOperationRolloutInput]
36426
+ attr_accessor :rollout_input
36427
+
36428
+ #
36429
+ # Corresponds to the JSON property `rolloutStatus`
36430
+ # @return [Google::Apis::ComputeBeta::PreviewFeatureRolloutOperationRolloutStatus]
36431
+ attr_accessor :rollout_status
36432
+
36433
+ def initialize(**args)
36434
+ update!(**args)
36435
+ end
36436
+
36437
+ # Update properties of this object
36438
+ def update!(**args)
36439
+ @rollout_input = args[:rollout_input] if args.key?(:rollout_input)
36440
+ @rollout_status = args[:rollout_status] if args.key?(:rollout_status)
36441
+ end
36442
+ end
36443
+
36444
+ #
36445
+ class PreviewFeatureRolloutOperationRolloutInput
36446
+ include Google::Apis::Core::Hashable
36447
+
36448
+ # The name of the rollout plan Ex. organizations//locations/global/rolloutPlans/
36449
+ # Ex. folders//locations/global/rolloutPlans/ Ex. projects//locations/global/
36450
+ # rolloutPlans/.
36451
+ # Corresponds to the JSON property `name`
36452
+ # @return [String]
36453
+ attr_accessor :name
36454
+
36455
+ # Predefined rollout plan.
36456
+ # Corresponds to the JSON property `predefinedRolloutPlan`
36457
+ # @return [String]
36458
+ attr_accessor :predefined_rollout_plan
36459
+
36460
+ # The UUID of the retry action. Only needed if this is a retry for an existing
36461
+ # rollout. This can be used after the user canceled a rollout and want to retry
36462
+ # it with no changes.
36463
+ # Corresponds to the JSON property `retryUuid`
36464
+ # @return [String]
36465
+ attr_accessor :retry_uuid
36466
+
36467
+ def initialize(**args)
36468
+ update!(**args)
36469
+ end
36470
+
36471
+ # Update properties of this object
36472
+ def update!(**args)
36473
+ @name = args[:name] if args.key?(:name)
36474
+ @predefined_rollout_plan = args[:predefined_rollout_plan] if args.key?(:predefined_rollout_plan)
36475
+ @retry_uuid = args[:retry_uuid] if args.key?(:retry_uuid)
36476
+ end
36477
+ end
36478
+
36479
+ #
36480
+ class PreviewFeatureRolloutOperationRolloutStatus
36481
+ include Google::Apis::Core::Hashable
36482
+
36483
+ # Output only. The ongoing rollout resources. There can be multiple ongoing
36484
+ # rollouts for a resource.
36485
+ # Corresponds to the JSON property `ongoingRollouts`
36486
+ # @return [Array<Google::Apis::ComputeBeta::PreviewFeatureRolloutOperationRolloutStatusRolloutMetadata>]
36487
+ attr_accessor :ongoing_rollouts
36488
+
36489
+ # Output only. The last completed rollout resource. This field will not be
36490
+ # populated until the first rollout is completed.
36491
+ # Corresponds to the JSON property `previousRollout`
36492
+ # @return [Google::Apis::ComputeBeta::PreviewFeatureRolloutOperationRolloutStatusRolloutMetadata]
36493
+ attr_accessor :previous_rollout
36494
+
36495
+ def initialize(**args)
36496
+ update!(**args)
36497
+ end
36498
+
36499
+ # Update properties of this object
36500
+ def update!(**args)
36501
+ @ongoing_rollouts = args[:ongoing_rollouts] if args.key?(:ongoing_rollouts)
36502
+ @previous_rollout = args[:previous_rollout] if args.key?(:previous_rollout)
36503
+ end
36504
+ end
36505
+
36506
+ #
36507
+ class PreviewFeatureRolloutOperationRolloutStatusRolloutMetadata
36508
+ include Google::Apis::Core::Hashable
36509
+
36510
+ # The name of the rollout Ex. organizations//locations/global/rollouts/ Ex.
36511
+ # folders//locations/global/rollouts/ Ex. projects//locations/global/rollouts/.
36512
+ # Corresponds to the JSON property `rollout`
36513
+ # @return [String]
36514
+ attr_accessor :rollout
36515
+
36516
+ # The name of the rollout plan Ex. organizations//locations/global/rolloutPlans/
36517
+ # Ex. folders//locations/global/rolloutPlans/ Ex. projects//locations/global/
36518
+ # rolloutPlans/.
36519
+ # Corresponds to the JSON property `rolloutPlan`
36520
+ # @return [String]
36521
+ attr_accessor :rollout_plan
36522
+
36523
+ # [Output Only] The status of the feature.
36524
+ # Corresponds to the JSON property `status`
36525
+ # @return [Google::Apis::ComputeBeta::PreviewFeatureStatus]
36526
+ attr_accessor :status
36527
+
36528
+ def initialize(**args)
36529
+ update!(**args)
36530
+ end
36531
+
36532
+ # Update properties of this object
36533
+ def update!(**args)
36534
+ @rollout = args[:rollout] if args.key?(:rollout)
36535
+ @rollout_plan = args[:rollout_plan] if args.key?(:rollout_plan)
36536
+ @status = args[:status] if args.key?(:status)
36537
+ end
36538
+ end
36539
+
36540
+ # [Output Only] The status of the feature.
36541
+ class PreviewFeatureStatus
36542
+ include Google::Apis::Core::Hashable
36543
+
36544
+ # [Output Only] The description of the feature.
36545
+ # Corresponds to the JSON property `description`
36546
+ # @return [String]
36547
+ attr_accessor :description
36548
+
36549
+ #
36550
+ # Corresponds to the JSON property `releaseStatus`
36551
+ # @return [Google::Apis::ComputeBeta::PreviewFeatureStatusReleaseStatus]
36552
+ attr_accessor :release_status
36553
+
36554
+ def initialize(**args)
36555
+ update!(**args)
36556
+ end
36557
+
36558
+ # Update properties of this object
36559
+ def update!(**args)
36560
+ @description = args[:description] if args.key?(:description)
36561
+ @release_status = args[:release_status] if args.key?(:release_status)
36562
+ end
36563
+ end
36564
+
36565
+ #
36566
+ class PreviewFeatureStatusReleaseStatus
36567
+ include Google::Apis::Core::Hashable
36568
+
36569
+ # [Output Only] The stage of the feature.
36570
+ # Corresponds to the JSON property `stage`
36571
+ # @return [String]
36572
+ attr_accessor :stage
36573
+
36574
+ # Represents a whole or partial calendar date, such as a birthday. The time of
36575
+ # day and time zone are either specified elsewhere or are insignificant. The
36576
+ # date is relative to the Gregorian Calendar. This can represent one of the
36577
+ # following: * A full date, with non-zero year, month, and day values. * A month
36578
+ # and day, with a zero year (for example, an anniversary). * A year on its own,
36579
+ # with a zero month and a zero day. * A year and month, with a zero day (for
36580
+ # example, a credit card expiration date). Related types: * google.type.
36581
+ # TimeOfDay * google.type.DateTime * google.protobuf.Timestamp
36582
+ # Corresponds to the JSON property `updateDate`
36583
+ # @return [Google::Apis::ComputeBeta::Date]
36584
+ attr_accessor :update_date
36585
+
36586
+ def initialize(**args)
36587
+ update!(**args)
36588
+ end
36589
+
36590
+ # Update properties of this object
36591
+ def update!(**args)
36592
+ @stage = args[:stage] if args.key?(:stage)
36593
+ @update_date = args[:update_date] if args.key?(:update_date)
36594
+ end
36595
+ end
36596
+
34399
36597
  # Represents a Project resource. A project is used to organize resources in a
34400
36598
  # Google Cloud Platform environment. For more information, read about the
34401
36599
  # Resource Hierarchy.
@@ -35072,8 +37270,8 @@ module Google
35072
37270
  # following values: - `INITIALIZING` The public delegated prefix is being
35073
37271
  # initialized and addresses cannot be created yet. - `READY_TO_ANNOUNCE` The
35074
37272
  # 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.
37273
+ # The public delegated prefix is announced and ready to use. - `DELETING` The
37274
+ # public delegated prefix is being deprovsioned.
35077
37275
  # Corresponds to the JSON property `status`
35078
37276
  # @return [String]
35079
37277
  attr_accessor :status
@@ -37729,6 +39927,12 @@ module Google
37729
39927
  # @return [String]
37730
39928
  attr_accessor :description
37731
39929
 
39930
+ # Indicates if this group of VMs have emergent maintenance enabled.
39931
+ # Corresponds to the JSON property `enableEmergentMaintenance`
39932
+ # @return [Boolean]
39933
+ attr_accessor :enable_emergent_maintenance
39934
+ alias_method :enable_emergent_maintenance?, :enable_emergent_maintenance
39935
+
37732
39936
  # [Output Only] The unique identifier for the resource. This identifier is
37733
39937
  # defined by the server.
37734
39938
  # Corresponds to the JSON property `id`
@@ -37837,6 +40041,7 @@ module Google
37837
40041
  @delete_at_time = args[:delete_at_time] if args.key?(:delete_at_time)
37838
40042
  @deployment_type = args[:deployment_type] if args.key?(:deployment_type)
37839
40043
  @description = args[:description] if args.key?(:description)
40044
+ @enable_emergent_maintenance = args[:enable_emergent_maintenance] if args.key?(:enable_emergent_maintenance)
37840
40045
  @id = args[:id] if args.key?(:id)
37841
40046
  @kind = args[:kind] if args.key?(:kind)
37842
40047
  @linked_commitments = args[:linked_commitments] if args.key?(:linked_commitments)
@@ -40352,6 +42557,11 @@ module Google
40352
42557
  # @return [Array<Google::Apis::ComputeBeta::RouterNat>]
40353
42558
  attr_accessor :nats
40354
42559
 
42560
+ # URI of the ncc_gateway to which this router associated.
42561
+ # Corresponds to the JSON property `nccGateway`
42562
+ # @return [String]
42563
+ attr_accessor :ncc_gateway
42564
+
40355
42565
  # URI of the network to which this router belongs.
40356
42566
  # Corresponds to the JSON property `network`
40357
42567
  # @return [String]
@@ -40386,6 +42596,7 @@ module Google
40386
42596
  @md5_authentication_keys = args[:md5_authentication_keys] if args.key?(:md5_authentication_keys)
40387
42597
  @name = args[:name] if args.key?(:name)
40388
42598
  @nats = args[:nats] if args.key?(:nats)
42599
+ @ncc_gateway = args[:ncc_gateway] if args.key?(:ncc_gateway)
40389
42600
  @network = args[:network] if args.key?(:network)
40390
42601
  @region = args[:region] if args.key?(:region)
40391
42602
  @self_link = args[:self_link] if args.key?(:self_link)
@@ -41534,6 +43745,11 @@ module Google
41534
43745
  # @return [Array<Google::Apis::ComputeBeta::RouterStatusNatStatus>]
41535
43746
  attr_accessor :nat_status
41536
43747
 
43748
+ # URI of the ncc_gateway to which this router associated.
43749
+ # Corresponds to the JSON property `nccGateway`
43750
+ # @return [String]
43751
+ attr_accessor :ncc_gateway
43752
+
41537
43753
  # URI of the network to which this router belongs.
41538
43754
  # Corresponds to the JSON property `network`
41539
43755
  # @return [String]
@@ -41549,6 +43765,7 @@ module Google
41549
43765
  @best_routes_for_router = args[:best_routes_for_router] if args.key?(:best_routes_for_router)
41550
43766
  @bgp_peer_status = args[:bgp_peer_status] if args.key?(:bgp_peer_status)
41551
43767
  @nat_status = args[:nat_status] if args.key?(:nat_status)
43768
+ @ncc_gateway = args[:ncc_gateway] if args.key?(:ncc_gateway)
41552
43769
  @network = args[:network] if args.key?(:network)
41553
43770
  end
41554
43771
  end
@@ -43462,8 +45679,9 @@ module Google
43462
45679
  # @return [String]
43463
45680
  attr_accessor :log_level
43464
45681
 
43465
- # The maximum request size chosen by the customer with Waf enabled. Currently
43466
- # only "8KB" and "128KB" are supported. Values are case insensitive.
45682
+ # The maximum request size chosen by the customer with Waf enabled. Values
45683
+ # supported are "8KB", "16KB, "32KB", "48KB" and "64KB". Values are case
45684
+ # insensitive.
43467
45685
  # Corresponds to the JSON property `requestBodyInspectionSize`
43468
45686
  # @return [String]
43469
45687
  attr_accessor :request_body_inspection_size
@@ -49377,6 +51595,18 @@ module Google
49377
51595
  # @return [String]
49378
51596
  attr_accessor :state
49379
51597
 
51598
+ # Output only. [Output Only] The array of external IPv6 network ranges reserved
51599
+ # from the subnetwork's external IPv6 range for system use.
51600
+ # Corresponds to the JSON property `systemReservedExternalIpv6Ranges`
51601
+ # @return [Array<String>]
51602
+ attr_accessor :system_reserved_external_ipv6_ranges
51603
+
51604
+ # Output only. [Output Only] The array of internal IPv6 network ranges reserved
51605
+ # from the subnetwork's internal IPv6 range for system use.
51606
+ # Corresponds to the JSON property `systemReservedInternalIpv6Ranges`
51607
+ # @return [Array<String>]
51608
+ attr_accessor :system_reserved_internal_ipv6_ranges
51609
+
49380
51610
  def initialize(**args)
49381
51611
  update!(**args)
49382
51612
  end
@@ -49412,6 +51642,8 @@ module Google
49412
51642
  @self_link = args[:self_link] if args.key?(:self_link)
49413
51643
  @stack_type = args[:stack_type] if args.key?(:stack_type)
49414
51644
  @state = args[:state] if args.key?(:state)
51645
+ @system_reserved_external_ipv6_ranges = args[:system_reserved_external_ipv6_ranges] if args.key?(:system_reserved_external_ipv6_ranges)
51646
+ @system_reserved_internal_ipv6_ranges = args[:system_reserved_internal_ipv6_ranges] if args.key?(:system_reserved_internal_ipv6_ranges)
49415
51647
  end
49416
51648
  end
49417
51649
 
@@ -49897,6 +52129,95 @@ module Google
49897
52129
  end
49898
52130
  end
49899
52131
 
52132
+ #
52133
+ class SubnetworksScopedWarning
52134
+ include Google::Apis::Core::Hashable
52135
+
52136
+ # Name of the scope containing this set of Subnetworks.
52137
+ # Corresponds to the JSON property `scopeName`
52138
+ # @return [String]
52139
+ attr_accessor :scope_name
52140
+
52141
+ # An informational warning about unreachable scope
52142
+ # Corresponds to the JSON property `warning`
52143
+ # @return [Google::Apis::ComputeBeta::SubnetworksScopedWarning::Warning]
52144
+ attr_accessor :warning
52145
+
52146
+ def initialize(**args)
52147
+ update!(**args)
52148
+ end
52149
+
52150
+ # Update properties of this object
52151
+ def update!(**args)
52152
+ @scope_name = args[:scope_name] if args.key?(:scope_name)
52153
+ @warning = args[:warning] if args.key?(:warning)
52154
+ end
52155
+
52156
+ # An informational warning about unreachable scope
52157
+ class Warning
52158
+ include Google::Apis::Core::Hashable
52159
+
52160
+ # [Output Only] A warning code, if applicable. For example, Compute Engine
52161
+ # returns NO_RESULTS_ON_PAGE if there are no results in the response.
52162
+ # Corresponds to the JSON property `code`
52163
+ # @return [String]
52164
+ attr_accessor :code
52165
+
52166
+ # [Output Only] Metadata about this warning in key: value format. For example: "
52167
+ # data": [ ` "key": "scope", "value": "zones/us-east1-d" `
52168
+ # Corresponds to the JSON property `data`
52169
+ # @return [Array<Google::Apis::ComputeBeta::SubnetworksScopedWarning::Warning::Datum>]
52170
+ attr_accessor :data
52171
+
52172
+ # [Output Only] A human-readable description of the warning code.
52173
+ # Corresponds to the JSON property `message`
52174
+ # @return [String]
52175
+ attr_accessor :message
52176
+
52177
+ def initialize(**args)
52178
+ update!(**args)
52179
+ end
52180
+
52181
+ # Update properties of this object
52182
+ def update!(**args)
52183
+ @code = args[:code] if args.key?(:code)
52184
+ @data = args[:data] if args.key?(:data)
52185
+ @message = args[:message] if args.key?(:message)
52186
+ end
52187
+
52188
+ #
52189
+ class Datum
52190
+ include Google::Apis::Core::Hashable
52191
+
52192
+ # [Output Only] A key that provides more detail on the warning being returned.
52193
+ # For example, for warnings where there are no results in a list request for a
52194
+ # particular zone, this key might be scope and the key value might be the zone
52195
+ # name. Other examples might be a key indicating a deprecated resource and a
52196
+ # suggested replacement, or a warning about invalid network settings (for
52197
+ # example, if an instance attempts to perform IP forwarding but is not enabled
52198
+ # for IP forwarding).
52199
+ # Corresponds to the JSON property `key`
52200
+ # @return [String]
52201
+ attr_accessor :key
52202
+
52203
+ # [Output Only] A warning data value corresponding to the key.
52204
+ # Corresponds to the JSON property `value`
52205
+ # @return [String]
52206
+ attr_accessor :value
52207
+
52208
+ def initialize(**args)
52209
+ update!(**args)
52210
+ end
52211
+
52212
+ # Update properties of this object
52213
+ def update!(**args)
52214
+ @key = args[:key] if args.key?(:key)
52215
+ @value = args[:value] if args.key?(:value)
52216
+ end
52217
+ end
52218
+ end
52219
+ end
52220
+
49900
52221
  #
49901
52222
  class SubnetworksSetPrivateIpGoogleAccessRequest
49902
52223
  include Google::Apis::Core::Hashable
@@ -54727,11 +57048,22 @@ module Google
54727
57048
  # @return [String]
54728
57049
  attr_accessor :next_page_token
54729
57050
 
57051
+ # [Output Only] Informational warning messages for failures encountered from
57052
+ # scopes.
57053
+ # Corresponds to the JSON property `scopedWarnings`
57054
+ # @return [Array<Google::Apis::ComputeBeta::SubnetworksScopedWarning>]
57055
+ attr_accessor :scoped_warnings
57056
+
54730
57057
  # [Output Only] Server-defined URL for this resource.
54731
57058
  # Corresponds to the JSON property `selfLink`
54732
57059
  # @return [String]
54733
57060
  attr_accessor :self_link
54734
57061
 
57062
+ # [Output Only] Unreachable resources.
57063
+ # Corresponds to the JSON property `unreachables`
57064
+ # @return [Array<String>]
57065
+ attr_accessor :unreachables
57066
+
54735
57067
  # [Output Only] Informational warning message.
54736
57068
  # Corresponds to the JSON property `warning`
54737
57069
  # @return [Google::Apis::ComputeBeta::UsableSubnetworksAggregatedList::Warning]
@@ -54747,7 +57079,9 @@ module Google
54747
57079
  @items = args[:items] if args.key?(:items)
54748
57080
  @kind = args[:kind] if args.key?(:kind)
54749
57081
  @next_page_token = args[:next_page_token] if args.key?(:next_page_token)
57082
+ @scoped_warnings = args[:scoped_warnings] if args.key?(:scoped_warnings)
54750
57083
  @self_link = args[:self_link] if args.key?(:self_link)
57084
+ @unreachables = args[:unreachables] if args.key?(:unreachables)
54751
57085
  @warning = args[:warning] if args.key?(:warning)
54752
57086
  end
54753
57087