google-apis-compute_v1 0.118.0 → 0.119.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.
@@ -2967,6 +2967,14 @@ module Google
2967
2967
  # @return [String]
2968
2968
  attr_accessor :kind
2969
2969
 
2970
+ # The value can only be INTERNAL_MANAGED for cross-region internal layer 7 load
2971
+ # balancer. If loadBalancingScheme is not specified, the backend bucket can be
2972
+ # used by classic global external load balancers, or global application external
2973
+ # load balancers, or both.
2974
+ # Corresponds to the JSON property `loadBalancingScheme`
2975
+ # @return [String]
2976
+ attr_accessor :load_balancing_scheme
2977
+
2970
2978
  # Name of the resource. Provided by the client when the resource is created. The
2971
2979
  # name must be 1-63 characters long, and comply with RFC1035. Specifically, the
2972
2980
  # name must be 1-63 characters long and match the regular expression `[a-z]([-a-
@@ -3003,6 +3011,7 @@ module Google
3003
3011
  @enable_cdn = args[:enable_cdn] if args.key?(:enable_cdn)
3004
3012
  @id = args[:id] if args.key?(:id)
3005
3013
  @kind = args[:kind] if args.key?(:kind)
3014
+ @load_balancing_scheme = args[:load_balancing_scheme] if args.key?(:load_balancing_scheme)
3006
3015
  @name = args[:name] if args.key?(:name)
3007
3016
  @self_link = args[:self_link] if args.key?(:self_link)
3008
3017
  @used_by = args[:used_by] if args.key?(:used_by)
@@ -3683,7 +3692,7 @@ module Google
3683
3692
  # faster table lookup build times and host selection times. For more information
3684
3693
  # about Maglev, see https://ai.google/research/pubs/pub44824 This field is
3685
3694
  # applicable to either: - A regional backend service with the service_protocol
3686
- # set to HTTP, HTTPS, or HTTP2, and load_balancing_scheme set to
3695
+ # set to HTTP, HTTPS, HTTP2 or H2C, and load_balancing_scheme set to
3687
3696
  # INTERNAL_MANAGED. - A global backend service with the load_balancing_scheme
3688
3697
  # set to INTERNAL_SELF_MANAGED, INTERNAL_MANAGED, or EXTERNAL_MANAGED. If
3689
3698
  # sessionAffinity is not configured—that is, if session affinity remains at the
@@ -3760,11 +3769,11 @@ module Google
3760
3769
  attr_accessor :port_name
3761
3770
 
3762
3771
  # The protocol this BackendService uses to communicate with backends. Possible
3763
- # values are HTTP, HTTPS, HTTP2, TCP, SSL, UDP or GRPC. depending on the chosen
3764
- # load balancer or Traffic Director configuration. Refer to the documentation
3765
- # for the load balancers or for Traffic Director for more information. Must be
3766
- # set to GRPC when the backend service is referenced by a URL map that is bound
3767
- # to target gRPC proxy.
3772
+ # values are HTTP, HTTPS, HTTP2, H2C, TCP, SSL, UDP or GRPC. depending on the
3773
+ # chosen load balancer or Traffic Director configuration. Refer to the
3774
+ # documentation for the load balancers or for Traffic Director for more
3775
+ # information. Must be set to GRPC when the backend service is referenced by a
3776
+ # URL map that is bound to target gRPC proxy.
3768
3777
  # Corresponds to the JSON property `protocol`
3769
3778
  # @return [String]
3770
3779
  attr_accessor :protocol
@@ -4478,6 +4487,17 @@ module Google
4478
4487
  # @return [String]
4479
4488
  attr_accessor :fast_ip_move
4480
4489
 
4490
+ # Selects one of the network endpoints attached to the backend NEGs of this
4491
+ # service as the active endpoint (the leader) that receives all traffic. When
4492
+ # the leader changes, there is no connection draining to persist existing
4493
+ # connections on the old leader. You are responsible for selecting a suitable
4494
+ # endpoint as the leader. For example, preferring a healthy endpoint over
4495
+ # unhealthy ones. Note that this service does not track backend endpoint health,
4496
+ # and selects the configured leader unconditionally.
4497
+ # Corresponds to the JSON property `leader`
4498
+ # @return [Google::Apis::ComputeV1::BackendServiceHaPolicyLeader]
4499
+ attr_accessor :leader
4500
+
4481
4501
  def initialize(**args)
4482
4502
  update!(**args)
4483
4503
  end
@@ -4485,6 +4505,62 @@ module Google
4485
4505
  # Update properties of this object
4486
4506
  def update!(**args)
4487
4507
  @fast_ip_move = args[:fast_ip_move] if args.key?(:fast_ip_move)
4508
+ @leader = args[:leader] if args.key?(:leader)
4509
+ end
4510
+ end
4511
+
4512
+ #
4513
+ class BackendServiceHaPolicyLeader
4514
+ include Google::Apis::Core::Hashable
4515
+
4516
+ # A fully-qualified URL (starting with https://www.googleapis.com/) of the zonal
4517
+ # Network Endpoint Group (NEG) with `GCE_VM_IP` endpoints that the leader is
4518
+ # attached to. The leader's backendGroup must already be specified as a backend
4519
+ # of this backend service. Removing a backend that is designated as the leader's
4520
+ # backendGroup is not permitted.
4521
+ # Corresponds to the JSON property `backendGroup`
4522
+ # @return [String]
4523
+ attr_accessor :backend_group
4524
+
4525
+ # The network endpoint within the leader.backendGroup that is designated as the
4526
+ # leader. This network endpoint cannot be detached from the NEG specified in the
4527
+ # haPolicy.leader.backendGroup until the leader is updated with another network
4528
+ # endpoint, or the leader is removed from the haPolicy.
4529
+ # Corresponds to the JSON property `networkEndpoint`
4530
+ # @return [Google::Apis::ComputeV1::BackendServiceHaPolicyLeaderNetworkEndpoint]
4531
+ attr_accessor :network_endpoint
4532
+
4533
+ def initialize(**args)
4534
+ update!(**args)
4535
+ end
4536
+
4537
+ # Update properties of this object
4538
+ def update!(**args)
4539
+ @backend_group = args[:backend_group] if args.key?(:backend_group)
4540
+ @network_endpoint = args[:network_endpoint] if args.key?(:network_endpoint)
4541
+ end
4542
+ end
4543
+
4544
+ #
4545
+ class BackendServiceHaPolicyLeaderNetworkEndpoint
4546
+ include Google::Apis::Core::Hashable
4547
+
4548
+ # The name of the VM instance of the leader network endpoint. The instance must
4549
+ # already be attached to the NEG specified in the haPolicy.leader.backendGroup.
4550
+ # The name must be 1-63 characters long, and comply with RFC1035. Authorization
4551
+ # requires the following IAM permission on the specified resource instance:
4552
+ # compute.instances.use
4553
+ # Corresponds to the JSON property `instance`
4554
+ # @return [String]
4555
+ attr_accessor :instance
4556
+
4557
+ def initialize(**args)
4558
+ update!(**args)
4559
+ end
4560
+
4561
+ # Update properties of this object
4562
+ def update!(**args)
4563
+ @instance = args[:instance] if args.key?(:instance)
4488
4564
  end
4489
4565
  end
4490
4566
 
@@ -10261,6 +10337,33 @@ module Google
10261
10337
  # @return [String]
10262
10338
  attr_accessor :description
10263
10339
 
10340
+ # Specifies the canary migration state for the backend buckets attached to this
10341
+ # forwarding rule. Possible values are PREPARE, TEST_BY_PERCENTAGE, and
10342
+ # TEST_ALL_TRAFFIC. To begin the migration from EXTERNAL to EXTERNAL_MANAGED,
10343
+ # the state must be changed to PREPARE. The state must be changed to
10344
+ # TEST_ALL_TRAFFIC before the loadBalancingScheme can be changed to
10345
+ # EXTERNAL_MANAGED. Optionally, the TEST_BY_PERCENTAGE state can be used to
10346
+ # migrate traffic to backend buckets attached to this forwarding rule by
10347
+ # percentage using externalManagedBackendBucketMigrationTestingPercentage.
10348
+ # Rolling back a migration requires the states to be set in reverse order. So
10349
+ # changing the scheme from EXTERNAL_MANAGED to EXTERNAL requires the state to be
10350
+ # set to TEST_ALL_TRAFFIC at the same time. Optionally, the TEST_BY_PERCENTAGE
10351
+ # state can be used to migrate some traffic back to EXTERNAL or PREPARE can be
10352
+ # used to migrate all traffic back to EXTERNAL.
10353
+ # Corresponds to the JSON property `externalManagedBackendBucketMigrationState`
10354
+ # @return [String]
10355
+ attr_accessor :external_managed_backend_bucket_migration_state
10356
+
10357
+ # Determines the fraction of requests to backend buckets that should be
10358
+ # processed by the global external Application Load Balancer. The value of this
10359
+ # field must be in the range [0, 100]. This value can only be set if the
10360
+ # loadBalancingScheme in the BackendService is set to EXTERNAL (when using the
10361
+ # classic Application Load Balancer) and the migration state is
10362
+ # TEST_BY_PERCENTAGE.
10363
+ # Corresponds to the JSON property `externalManagedBackendBucketMigrationTestingPercentage`
10364
+ # @return [Float]
10365
+ attr_accessor :external_managed_backend_bucket_migration_testing_percentage
10366
+
10264
10367
  # Fingerprint of this resource. A hash of the contents stored in this object.
10265
10368
  # This field is used in optimistic locking. This field will be ignored when
10266
10369
  # inserting a ForwardingRule. Include the fingerprint in patch request to ensure
@@ -10531,6 +10634,8 @@ module Google
10531
10634
  @base_forwarding_rule = args[:base_forwarding_rule] if args.key?(:base_forwarding_rule)
10532
10635
  @creation_timestamp = args[:creation_timestamp] if args.key?(:creation_timestamp)
10533
10636
  @description = args[:description] if args.key?(:description)
10637
+ @external_managed_backend_bucket_migration_state = args[:external_managed_backend_bucket_migration_state] if args.key?(:external_managed_backend_bucket_migration_state)
10638
+ @external_managed_backend_bucket_migration_testing_percentage = args[:external_managed_backend_bucket_migration_testing_percentage] if args.key?(:external_managed_backend_bucket_migration_testing_percentage)
10534
10639
  @fingerprint = args[:fingerprint] if args.key?(:fingerprint)
10535
10640
  @id = args[:id] if args.key?(:id)
10536
10641
  @ip_collection = args[:ip_collection] if args.key?(:ip_collection)
@@ -19921,6 +20026,12 @@ module Google
19921
20026
  # @return [Array<String>]
19922
20027
  attr_accessor :interconnect_attachments
19923
20028
 
20029
+ # [Output Only] URLs of InterconnectGroups that include this Interconnect. Order
20030
+ # is arbitrary and items are unique.
20031
+ # Corresponds to the JSON property `interconnectGroups`
20032
+ # @return [Array<String>]
20033
+ attr_accessor :interconnect_groups
20034
+
19924
20035
  # Type of interconnect, which can take one of the following values: - PARTNER: A
19925
20036
  # partner-managed interconnection shared between customers though a partner. -
19926
20037
  # DEDICATED: A dedicated physical interconnection with the customer. Note that a
@@ -20087,6 +20198,7 @@ module Google
20087
20198
  @google_reference_id = args[:google_reference_id] if args.key?(:google_reference_id)
20088
20199
  @id = args[:id] if args.key?(:id)
20089
20200
  @interconnect_attachments = args[:interconnect_attachments] if args.key?(:interconnect_attachments)
20201
+ @interconnect_groups = args[:interconnect_groups] if args.key?(:interconnect_groups)
20090
20202
  @interconnect_type = args[:interconnect_type] if args.key?(:interconnect_type)
20091
20203
  @kind = args[:kind] if args.key?(:kind)
20092
20204
  @label_fingerprint = args[:label_fingerprint] if args.key?(:label_fingerprint)
@@ -20123,6 +20235,11 @@ module Google
20123
20235
  attr_accessor :admin_enabled
20124
20236
  alias_method :admin_enabled?, :admin_enabled
20125
20237
 
20238
+ # [Output Only] URL of the AttachmentGroup that includes this Attachment.
20239
+ # Corresponds to the JSON property `attachmentGroup`
20240
+ # @return [String]
20241
+ attr_accessor :attachment_group
20242
+
20126
20243
  # Provisioned bandwidth capacity for the interconnect attachment. For
20127
20244
  # attachments of type DEDICATED, the user can set the bandwidth. For attachments
20128
20245
  # of type PARTNER, the Google Partner that is operating the interconnect must
@@ -20443,6 +20560,7 @@ module Google
20443
20560
  # Update properties of this object
20444
20561
  def update!(**args)
20445
20562
  @admin_enabled = args[:admin_enabled] if args.key?(:admin_enabled)
20563
+ @attachment_group = args[:attachment_group] if args.key?(:attachment_group)
20446
20564
  @bandwidth = args[:bandwidth] if args.key?(:bandwidth)
20447
20565
  @candidate_ipv6_subnets = args[:candidate_ipv6_subnets] if args.key?(:candidate_ipv6_subnets)
20448
20566
  @candidate_subnets = args[:candidate_subnets] if args.key?(:candidate_subnets)
@@ -20672,22 +20790,432 @@ module Google
20672
20790
  end
20673
20791
  end
20674
20792
 
20675
- # Response to the list request, and contains a list of interconnect attachments.
20676
- class InterconnectAttachmentList
20793
+ # An interconnect attachment group resource allows customers to create, analyze,
20794
+ # and expand highly available deployments.
20795
+ class InterconnectAttachmentGroup
20796
+ include Google::Apis::Core::Hashable
20797
+
20798
+ # Attachments in the AttachmentGroup. Keys are arbitrary user-specified strings.
20799
+ # Users are encouraged, but not required, to use their preferred format for
20800
+ # resource links as keys. Note that there are add-members and remove-members
20801
+ # methods in gcloud. The size of this map is limited by an "Attachments per
20802
+ # group" quota.
20803
+ # Corresponds to the JSON property `attachments`
20804
+ # @return [Hash<String,Google::Apis::ComputeV1::InterconnectAttachmentGroupAttachment>]
20805
+ attr_accessor :attachments
20806
+
20807
+ # [Output Only] The redundancy this group is configured to support. The way a
20808
+ # user queries what SLA their Attachment gets is by looking at this field of the
20809
+ # Attachment's AttachmentGroup.
20810
+ # Corresponds to the JSON property `configured`
20811
+ # @return [Google::Apis::ComputeV1::InterconnectAttachmentGroupConfigured]
20812
+ attr_accessor :configured
20813
+
20814
+ # [Output Only] Creation timestamp in RFC3339 text format.
20815
+ # Corresponds to the JSON property `creationTimestamp`
20816
+ # @return [String]
20817
+ attr_accessor :creation_timestamp
20818
+
20819
+ # An optional description of this resource. Provide this property when you
20820
+ # create the resource.
20821
+ # Corresponds to the JSON property `description`
20822
+ # @return [String]
20823
+ attr_accessor :description
20824
+
20825
+ # Opaque system-generated token that uniquely identifies the configuration. If
20826
+ # provided when patching a configuration in update mode, the provided token must
20827
+ # match the current token or the update is rejected. This provides a reliable
20828
+ # means of doing read-modify-write (optimistic locking) as described by AIP 154.
20829
+ # Corresponds to the JSON property `etag`
20830
+ # @return [String]
20831
+ attr_accessor :etag
20832
+
20833
+ # [Output Only] The unique identifier for the resource type. The server
20834
+ # generates this identifier.
20835
+ # Corresponds to the JSON property `id`
20836
+ # @return [Fixnum]
20837
+ attr_accessor :id
20838
+
20839
+ # The user's intent for this AttachmentGroup. This is the only required field
20840
+ # besides the name that must be specified on group creation.
20841
+ # Corresponds to the JSON property `intent`
20842
+ # @return [Google::Apis::ComputeV1::InterconnectAttachmentGroupIntent]
20843
+ attr_accessor :intent
20844
+
20845
+ # The URL of an InterconnectGroup that groups these Attachments' Interconnects.
20846
+ # Customers do not need to set this unless directed by Google Support.
20847
+ # Corresponds to the JSON property `interconnectGroup`
20848
+ # @return [String]
20849
+ attr_accessor :interconnect_group
20850
+
20851
+ # [Output Only] Type of the resource. Always compute#interconnectAttachmentGroup.
20852
+ # Corresponds to the JSON property `kind`
20853
+ # @return [String]
20854
+ attr_accessor :kind
20855
+
20856
+ # [Output Only] An analysis of the logical layout of Attachments in this group.
20857
+ # Every Attachment in the group is shown once in this structure.
20858
+ # Corresponds to the JSON property `logicalStructure`
20859
+ # @return [Google::Apis::ComputeV1::InterconnectAttachmentGroupLogicalStructure]
20860
+ attr_accessor :logical_structure
20861
+
20862
+ # Name of the resource. Provided by the client when the resource is created. The
20863
+ # name must be 1-63 characters long, and comply with RFC1035. Specifically, the
20864
+ # name must be 1-63 characters long and match the regular expression `[a-z]([-a-
20865
+ # z0-9]*[a-z0-9])?` which means the first character must be a lowercase letter,
20866
+ # and all following characters must be a dash, lowercase letter, or digit,
20867
+ # except the last character, which cannot be a dash.
20868
+ # Corresponds to the JSON property `name`
20869
+ # @return [String]
20870
+ attr_accessor :name
20871
+
20872
+ # [Output Only] Server-defined URL for the resource.
20873
+ # Corresponds to the JSON property `selfLink`
20874
+ # @return [String]
20875
+ attr_accessor :self_link
20876
+
20877
+ def initialize(**args)
20878
+ update!(**args)
20879
+ end
20880
+
20881
+ # Update properties of this object
20882
+ def update!(**args)
20883
+ @attachments = args[:attachments] if args.key?(:attachments)
20884
+ @configured = args[:configured] if args.key?(:configured)
20885
+ @creation_timestamp = args[:creation_timestamp] if args.key?(:creation_timestamp)
20886
+ @description = args[:description] if args.key?(:description)
20887
+ @etag = args[:etag] if args.key?(:etag)
20888
+ @id = args[:id] if args.key?(:id)
20889
+ @intent = args[:intent] if args.key?(:intent)
20890
+ @interconnect_group = args[:interconnect_group] if args.key?(:interconnect_group)
20891
+ @kind = args[:kind] if args.key?(:kind)
20892
+ @logical_structure = args[:logical_structure] if args.key?(:logical_structure)
20893
+ @name = args[:name] if args.key?(:name)
20894
+ @self_link = args[:self_link] if args.key?(:self_link)
20895
+ end
20896
+ end
20897
+
20898
+ # An Attachment in this AttachmentGroup.
20899
+ class InterconnectAttachmentGroupAttachment
20900
+ include Google::Apis::Core::Hashable
20901
+
20902
+ #
20903
+ # Corresponds to the JSON property `attachment`
20904
+ # @return [String]
20905
+ attr_accessor :attachment
20906
+
20907
+ def initialize(**args)
20908
+ update!(**args)
20909
+ end
20910
+
20911
+ # Update properties of this object
20912
+ def update!(**args)
20913
+ @attachment = args[:attachment] if args.key?(:attachment)
20914
+ end
20915
+ end
20916
+
20917
+ # [Output Only] The redundancy this group is configured to support. The way a
20918
+ # user queries what SLA their Attachment gets is by looking at this field of the
20919
+ # Attachment's AttachmentGroup.
20920
+ class InterconnectAttachmentGroupConfigured
20921
+ include Google::Apis::Core::Hashable
20922
+
20923
+ # [Output Only] Which SLA this group is configured to support, and why this
20924
+ # group does or does not meet that SLA's requirements.
20925
+ # Corresponds to the JSON property `availabilitySla`
20926
+ # @return [Google::Apis::ComputeV1::InterconnectAttachmentGroupConfiguredAvailabilitySla]
20927
+ attr_accessor :availability_sla
20928
+
20929
+ def initialize(**args)
20930
+ update!(**args)
20931
+ end
20932
+
20933
+ # Update properties of this object
20934
+ def update!(**args)
20935
+ @availability_sla = args[:availability_sla] if args.key?(:availability_sla)
20936
+ end
20937
+ end
20938
+
20939
+ # [Output Only] Which SLA this group is configured to support, and why this
20940
+ # group does or does not meet that SLA's requirements.
20941
+ class InterconnectAttachmentGroupConfiguredAvailabilitySla
20942
+ include Google::Apis::Core::Hashable
20943
+
20944
+ #
20945
+ # Corresponds to the JSON property `effectiveSla`
20946
+ # @return [String]
20947
+ attr_accessor :effective_sla
20948
+
20949
+ #
20950
+ # Corresponds to the JSON property `intendedSlaBlockers`
20951
+ # @return [Array<Google::Apis::ComputeV1::InterconnectAttachmentGroupConfiguredAvailabilitySlaIntendedSlaBlockers>]
20952
+ attr_accessor :intended_sla_blockers
20953
+
20954
+ def initialize(**args)
20955
+ update!(**args)
20956
+ end
20957
+
20958
+ # Update properties of this object
20959
+ def update!(**args)
20960
+ @effective_sla = args[:effective_sla] if args.key?(:effective_sla)
20961
+ @intended_sla_blockers = args[:intended_sla_blockers] if args.key?(:intended_sla_blockers)
20962
+ end
20963
+ end
20964
+
20965
+ # [Output Only] Reasons why configuration.availabilitySLA.sla differs from
20966
+ # intent.availabilitySLA. This list is empty if and only if those are the same.
20967
+ class InterconnectAttachmentGroupConfiguredAvailabilitySlaIntendedSlaBlockers
20968
+ include Google::Apis::Core::Hashable
20969
+
20970
+ # [Output Only] URLs of any particular Attachments to explain this blocker in
20971
+ # more detail.
20972
+ # Corresponds to the JSON property `attachments`
20973
+ # @return [Array<String>]
20974
+ attr_accessor :attachments
20975
+
20976
+ #
20977
+ # Corresponds to the JSON property `blockerType`
20978
+ # @return [String]
20979
+ attr_accessor :blocker_type
20980
+
20981
+ # [Output Only] The url of Google Cloud public documentation explaining this
20982
+ # requirement. This is set for every type of requirement.
20983
+ # Corresponds to the JSON property `documentationLink`
20984
+ # @return [String]
20985
+ attr_accessor :documentation_link
20986
+
20987
+ # [Output Only] A human-readable explanation of this requirement and why it's
20988
+ # not met. This is set for every type of requirement.
20989
+ # Corresponds to the JSON property `explanation`
20990
+ # @return [String]
20991
+ attr_accessor :explanation
20992
+
20993
+ # [Output Only] Metros used to explain this blocker in more detail. These are
20994
+ # three-letter lowercase strings like "iad". This will be set for some blockers (
20995
+ # like NO_ATTACHMENTS_IN_METRO_AND_ZONE) but does not apply to others.
20996
+ # Corresponds to the JSON property `metros`
20997
+ # @return [Array<String>]
20998
+ attr_accessor :metros
20999
+
21000
+ # [Output Only] Regions used to explain this blocker in more detail. These are
21001
+ # region names formatted like "us-central1". This will be set for some blockers (
21002
+ # like INCOMPATIBLE_REGIONS) but does not apply to others.
21003
+ # Corresponds to the JSON property `regions`
21004
+ # @return [Array<String>]
21005
+ attr_accessor :regions
21006
+
21007
+ # [Output Only] Zones used to explain this blocker in more detail. Format is "
21008
+ # zone1" and/or "zone2". This will be set for some blockers (like MISSING_ZONE)
21009
+ # but does not apply to others.
21010
+ # Corresponds to the JSON property `zones`
21011
+ # @return [Array<String>]
21012
+ attr_accessor :zones
21013
+
21014
+ def initialize(**args)
21015
+ update!(**args)
21016
+ end
21017
+
21018
+ # Update properties of this object
21019
+ def update!(**args)
21020
+ @attachments = args[:attachments] if args.key?(:attachments)
21021
+ @blocker_type = args[:blocker_type] if args.key?(:blocker_type)
21022
+ @documentation_link = args[:documentation_link] if args.key?(:documentation_link)
21023
+ @explanation = args[:explanation] if args.key?(:explanation)
21024
+ @metros = args[:metros] if args.key?(:metros)
21025
+ @regions = args[:regions] if args.key?(:regions)
21026
+ @zones = args[:zones] if args.key?(:zones)
21027
+ end
21028
+ end
21029
+
21030
+ # The user's intent for this AttachmentGroup. This is the only required field
21031
+ # besides the name that must be specified on group creation.
21032
+ class InterconnectAttachmentGroupIntent
21033
+ include Google::Apis::Core::Hashable
21034
+
21035
+ #
21036
+ # Corresponds to the JSON property `availabilitySla`
21037
+ # @return [String]
21038
+ attr_accessor :availability_sla
21039
+
21040
+ def initialize(**args)
21041
+ update!(**args)
21042
+ end
21043
+
21044
+ # Update properties of this object
21045
+ def update!(**args)
21046
+ @availability_sla = args[:availability_sla] if args.key?(:availability_sla)
21047
+ end
21048
+ end
21049
+
21050
+ # [Output Only] An analysis of the logical layout of Attachments in this group.
21051
+ # Every Attachment in the group is shown once in this structure.
21052
+ class InterconnectAttachmentGroupLogicalStructure
21053
+ include Google::Apis::Core::Hashable
21054
+
21055
+ #
21056
+ # Corresponds to the JSON property `regions`
21057
+ # @return [Array<Google::Apis::ComputeV1::InterconnectAttachmentGroupLogicalStructureRegion>]
21058
+ attr_accessor :regions
21059
+
21060
+ def initialize(**args)
21061
+ update!(**args)
21062
+ end
21063
+
21064
+ # Update properties of this object
21065
+ def update!(**args)
21066
+ @regions = args[:regions] if args.key?(:regions)
21067
+ end
21068
+ end
21069
+
21070
+ # [Output Only] The regions Attachments in this group are in.
21071
+ class InterconnectAttachmentGroupLogicalStructureRegion
21072
+ include Google::Apis::Core::Hashable
21073
+
21074
+ #
21075
+ # Corresponds to the JSON property `metros`
21076
+ # @return [Array<Google::Apis::ComputeV1::InterconnectAttachmentGroupLogicalStructureRegionMetro>]
21077
+ attr_accessor :metros
21078
+
21079
+ # [Output Only] The name of a region, like "us-central1".
21080
+ # Corresponds to the JSON property `region`
21081
+ # @return [String]
21082
+ attr_accessor :region
21083
+
21084
+ def initialize(**args)
21085
+ update!(**args)
21086
+ end
21087
+
21088
+ # Update properties of this object
21089
+ def update!(**args)
21090
+ @metros = args[:metros] if args.key?(:metros)
21091
+ @region = args[:region] if args.key?(:region)
21092
+ end
21093
+ end
21094
+
21095
+ # [Output Only] The metros of Attachments in this group in this region.
21096
+ class InterconnectAttachmentGroupLogicalStructureRegionMetro
21097
+ include Google::Apis::Core::Hashable
21098
+
21099
+ #
21100
+ # Corresponds to the JSON property `facilities`
21101
+ # @return [Array<Google::Apis::ComputeV1::InterconnectAttachmentGroupLogicalStructureRegionMetroFacility>]
21102
+ attr_accessor :facilities
21103
+
21104
+ # [Output Only] The name of the metro, as a three-letter lowercase string like "
21105
+ # iad". This is the first component of the location of an Interconnect.
21106
+ # Corresponds to the JSON property `metro`
21107
+ # @return [String]
21108
+ attr_accessor :metro
21109
+
21110
+ def initialize(**args)
21111
+ update!(**args)
21112
+ end
21113
+
21114
+ # Update properties of this object
21115
+ def update!(**args)
21116
+ @facilities = args[:facilities] if args.key?(:facilities)
21117
+ @metro = args[:metro] if args.key?(:metro)
21118
+ end
21119
+ end
21120
+
21121
+ # [Output Only] The facilities used for this group's Attachments' Interconnects.
21122
+ class InterconnectAttachmentGroupLogicalStructureRegionMetroFacility
21123
+ include Google::Apis::Core::Hashable
21124
+
21125
+ # [Output Only] The name of a facility, like "iad-1234".
21126
+ # Corresponds to the JSON property `facility`
21127
+ # @return [String]
21128
+ attr_accessor :facility
21129
+
21130
+ #
21131
+ # Corresponds to the JSON property `zones`
21132
+ # @return [Array<Google::Apis::ComputeV1::InterconnectAttachmentGroupLogicalStructureRegionMetroFacilityZone>]
21133
+ attr_accessor :zones
21134
+
21135
+ def initialize(**args)
21136
+ update!(**args)
21137
+ end
21138
+
21139
+ # Update properties of this object
21140
+ def update!(**args)
21141
+ @facility = args[:facility] if args.key?(:facility)
21142
+ @zones = args[:zones] if args.key?(:zones)
21143
+ end
21144
+ end
21145
+
21146
+ # [Output Only] The zones that Attachments in this group are present in, in the
21147
+ # given facilities. This is inherited from their Interconnects.
21148
+ class InterconnectAttachmentGroupLogicalStructureRegionMetroFacilityZone
20677
21149
  include Google::Apis::Core::Hashable
20678
21150
 
21151
+ # [Output Only] URLs of Attachments in the given zone, to the given region, on
21152
+ # Interconnects in the given facility and metro. Every Attachment in the AG has
21153
+ # such an entry.
21154
+ # Corresponds to the JSON property `attachments`
21155
+ # @return [Array<String>]
21156
+ attr_accessor :attachments
21157
+
21158
+ # [Output Only] The name of a zone, either "zone1" or "zone2".
21159
+ # Corresponds to the JSON property `zone`
21160
+ # @return [String]
21161
+ attr_accessor :zone
21162
+
21163
+ def initialize(**args)
21164
+ update!(**args)
21165
+ end
21166
+
21167
+ # Update properties of this object
21168
+ def update!(**args)
21169
+ @attachments = args[:attachments] if args.key?(:attachments)
21170
+ @zone = args[:zone] if args.key?(:zone)
21171
+ end
21172
+ end
21173
+
21174
+ # Response for the InterconnectAttachmentGroupsGetOperationalStatusResponse.
21175
+ class InterconnectAttachmentGroupsGetOperationalStatusResponse
21176
+ include Google::Apis::Core::Hashable
21177
+
21178
+ #
21179
+ # Corresponds to the JSON property `etag`
21180
+ # @return [String]
21181
+ attr_accessor :etag
21182
+
21183
+ #
21184
+ # Corresponds to the JSON property `result`
21185
+ # @return [Google::Apis::ComputeV1::InterconnectAttachmentGroupsOperationalStatus]
21186
+ attr_accessor :result
21187
+
21188
+ def initialize(**args)
21189
+ update!(**args)
21190
+ end
21191
+
21192
+ # Update properties of this object
21193
+ def update!(**args)
21194
+ @etag = args[:etag] if args.key?(:etag)
21195
+ @result = args[:result] if args.key?(:result)
21196
+ end
21197
+ end
21198
+
21199
+ #
21200
+ class InterconnectAttachmentGroupsListResponse
21201
+ include Google::Apis::Core::Hashable
21202
+
21203
+ #
21204
+ # Corresponds to the JSON property `etag`
21205
+ # @return [String]
21206
+ attr_accessor :etag
21207
+
20679
21208
  # [Output Only] Unique identifier for the resource; defined by the server.
20680
21209
  # Corresponds to the JSON property `id`
20681
21210
  # @return [String]
20682
21211
  attr_accessor :id
20683
21212
 
20684
- # A list of InterconnectAttachment resources.
21213
+ # A list of InterconnectAttachmentGroup resources.
20685
21214
  # Corresponds to the JSON property `items`
20686
- # @return [Array<Google::Apis::ComputeV1::InterconnectAttachment>]
21215
+ # @return [Array<Google::Apis::ComputeV1::InterconnectAttachmentGroup>]
20687
21216
  attr_accessor :items
20688
21217
 
20689
- # [Output Only] Type of resource. Always compute#interconnectAttachmentList for
20690
- # lists of interconnect attachments.
21218
+ #
20691
21219
  # Corresponds to the JSON property `kind`
20692
21220
  # @return [String]
20693
21221
  attr_accessor :kind
@@ -20706,9 +21234,15 @@ module Google
20706
21234
  # @return [String]
20707
21235
  attr_accessor :self_link
20708
21236
 
21237
+ # [Output Only] Unreachable resources. end_interface:
21238
+ # MixerListResponseWithEtagBuilder
21239
+ # Corresponds to the JSON property `unreachables`
21240
+ # @return [Array<String>]
21241
+ attr_accessor :unreachables
21242
+
20709
21243
  # [Output Only] Informational warning message.
20710
21244
  # Corresponds to the JSON property `warning`
20711
- # @return [Google::Apis::ComputeV1::InterconnectAttachmentList::Warning]
21245
+ # @return [Google::Apis::ComputeV1::InterconnectAttachmentGroupsListResponse::Warning]
20712
21246
  attr_accessor :warning
20713
21247
 
20714
21248
  def initialize(**args)
@@ -20717,11 +21251,13 @@ module Google
20717
21251
 
20718
21252
  # Update properties of this object
20719
21253
  def update!(**args)
21254
+ @etag = args[:etag] if args.key?(:etag)
20720
21255
  @id = args[:id] if args.key?(:id)
20721
21256
  @items = args[:items] if args.key?(:items)
20722
21257
  @kind = args[:kind] if args.key?(:kind)
20723
21258
  @next_page_token = args[:next_page_token] if args.key?(:next_page_token)
20724
21259
  @self_link = args[:self_link] if args.key?(:self_link)
21260
+ @unreachables = args[:unreachables] if args.key?(:unreachables)
20725
21261
  @warning = args[:warning] if args.key?(:warning)
20726
21262
  end
20727
21263
 
@@ -20738,7 +21274,217 @@ module Google
20738
21274
  # [Output Only] Metadata about this warning in key: value format. For example: "
20739
21275
  # data": [ ` "key": "scope", "value": "zones/us-east1-d" `
20740
21276
  # Corresponds to the JSON property `data`
20741
- # @return [Array<Google::Apis::ComputeV1::InterconnectAttachmentList::Warning::Datum>]
21277
+ # @return [Array<Google::Apis::ComputeV1::InterconnectAttachmentGroupsListResponse::Warning::Datum>]
21278
+ attr_accessor :data
21279
+
21280
+ # [Output Only] A human-readable description of the warning code.
21281
+ # Corresponds to the JSON property `message`
21282
+ # @return [String]
21283
+ attr_accessor :message
21284
+
21285
+ def initialize(**args)
21286
+ update!(**args)
21287
+ end
21288
+
21289
+ # Update properties of this object
21290
+ def update!(**args)
21291
+ @code = args[:code] if args.key?(:code)
21292
+ @data = args[:data] if args.key?(:data)
21293
+ @message = args[:message] if args.key?(:message)
21294
+ end
21295
+
21296
+ #
21297
+ class Datum
21298
+ include Google::Apis::Core::Hashable
21299
+
21300
+ # [Output Only] A key that provides more detail on the warning being returned.
21301
+ # For example, for warnings where there are no results in a list request for a
21302
+ # particular zone, this key might be scope and the key value might be the zone
21303
+ # name. Other examples might be a key indicating a deprecated resource and a
21304
+ # suggested replacement, or a warning about invalid network settings (for
21305
+ # example, if an instance attempts to perform IP forwarding but is not enabled
21306
+ # for IP forwarding).
21307
+ # Corresponds to the JSON property `key`
21308
+ # @return [String]
21309
+ attr_accessor :key
21310
+
21311
+ # [Output Only] A warning data value corresponding to the key.
21312
+ # Corresponds to the JSON property `value`
21313
+ # @return [String]
21314
+ attr_accessor :value
21315
+
21316
+ def initialize(**args)
21317
+ update!(**args)
21318
+ end
21319
+
21320
+ # Update properties of this object
21321
+ def update!(**args)
21322
+ @key = args[:key] if args.key?(:key)
21323
+ @value = args[:value] if args.key?(:value)
21324
+ end
21325
+ end
21326
+ end
21327
+ end
21328
+
21329
+ #
21330
+ class InterconnectAttachmentGroupsOperationalStatus
21331
+ include Google::Apis::Core::Hashable
21332
+
21333
+ #
21334
+ # Corresponds to the JSON property `attachmentStatuses`
21335
+ # @return [Array<Google::Apis::ComputeV1::InterconnectAttachmentGroupsOperationalStatusAttachmentStatus>]
21336
+ attr_accessor :attachment_statuses
21337
+
21338
+ # [Output Only] The redundancy this group is configured to support. The way a
21339
+ # user queries what SLA their Attachment gets is by looking at this field of the
21340
+ # Attachment's AttachmentGroup.
21341
+ # Corresponds to the JSON property `configured`
21342
+ # @return [Google::Apis::ComputeV1::InterconnectAttachmentGroupConfigured]
21343
+ attr_accessor :configured
21344
+
21345
+ # Summarizes the status of the group.
21346
+ # Corresponds to the JSON property `groupStatus`
21347
+ # @return [String]
21348
+ attr_accessor :group_status
21349
+
21350
+ # The user's intent for this AttachmentGroup. This is the only required field
21351
+ # besides the name that must be specified on group creation.
21352
+ # Corresponds to the JSON property `intent`
21353
+ # @return [Google::Apis::ComputeV1::InterconnectAttachmentGroupIntent]
21354
+ attr_accessor :intent
21355
+
21356
+ # [Output Only] The redundancy this group is configured to support. The way a
21357
+ # user queries what SLA their Attachment gets is by looking at this field of the
21358
+ # Attachment's AttachmentGroup.
21359
+ # Corresponds to the JSON property `operational`
21360
+ # @return [Google::Apis::ComputeV1::InterconnectAttachmentGroupConfigured]
21361
+ attr_accessor :operational
21362
+
21363
+ def initialize(**args)
21364
+ update!(**args)
21365
+ end
21366
+
21367
+ # Update properties of this object
21368
+ def update!(**args)
21369
+ @attachment_statuses = args[:attachment_statuses] if args.key?(:attachment_statuses)
21370
+ @configured = args[:configured] if args.key?(:configured)
21371
+ @group_status = args[:group_status] if args.key?(:group_status)
21372
+ @intent = args[:intent] if args.key?(:intent)
21373
+ @operational = args[:operational] if args.key?(:operational)
21374
+ end
21375
+ end
21376
+
21377
+ # The status of one Attachment in the group. List order is arbitrary.
21378
+ class InterconnectAttachmentGroupsOperationalStatusAttachmentStatus
21379
+ include Google::Apis::Core::Hashable
21380
+
21381
+ # Whether this Attachment is enabled. This becomes false when the customer
21382
+ # drains their Attachment.
21383
+ # Corresponds to the JSON property `adminEnabled`
21384
+ # @return [Boolean]
21385
+ attr_accessor :admin_enabled
21386
+ alias_method :admin_enabled?, :admin_enabled
21387
+
21388
+ # The URL of the Attachment being described.
21389
+ # Corresponds to the JSON property `attachment`
21390
+ # @return [String]
21391
+ attr_accessor :attachment
21392
+
21393
+ # Whether this Attachment is participating in the redundant configuration. This
21394
+ # will be ACTIVE if and only if the status below is CONNECTION_UP. Any INACTIVE
21395
+ # Attachments are excluded from the analysis that generates operational.
21396
+ # availabilitySLA.
21397
+ # Corresponds to the JSON property `isActive`
21398
+ # @return [String]
21399
+ attr_accessor :is_active
21400
+
21401
+ # Whether this Attachment is active, and if so, whether BGP is up. This is based
21402
+ # on the statuses available in the Pantheon UI here: http://google3/java/com/
21403
+ # google/cloud/boq/clientapi/gce/hybrid/api/interconnect_models.proto
21404
+ # Corresponds to the JSON property `status`
21405
+ # @return [String]
21406
+ attr_accessor :status
21407
+
21408
+ def initialize(**args)
21409
+ update!(**args)
21410
+ end
21411
+
21412
+ # Update properties of this object
21413
+ def update!(**args)
21414
+ @admin_enabled = args[:admin_enabled] if args.key?(:admin_enabled)
21415
+ @attachment = args[:attachment] if args.key?(:attachment)
21416
+ @is_active = args[:is_active] if args.key?(:is_active)
21417
+ @status = args[:status] if args.key?(:status)
21418
+ end
21419
+ end
21420
+
21421
+ # Response to the list request, and contains a list of interconnect attachments.
21422
+ class InterconnectAttachmentList
21423
+ include Google::Apis::Core::Hashable
21424
+
21425
+ # [Output Only] Unique identifier for the resource; defined by the server.
21426
+ # Corresponds to the JSON property `id`
21427
+ # @return [String]
21428
+ attr_accessor :id
21429
+
21430
+ # A list of InterconnectAttachment resources.
21431
+ # Corresponds to the JSON property `items`
21432
+ # @return [Array<Google::Apis::ComputeV1::InterconnectAttachment>]
21433
+ attr_accessor :items
21434
+
21435
+ # [Output Only] Type of resource. Always compute#interconnectAttachmentList for
21436
+ # lists of interconnect attachments.
21437
+ # Corresponds to the JSON property `kind`
21438
+ # @return [String]
21439
+ attr_accessor :kind
21440
+
21441
+ # [Output Only] This token allows you to get the next page of results for list
21442
+ # requests. If the number of results is larger than maxResults, use the
21443
+ # nextPageToken as a value for the query parameter pageToken in the next list
21444
+ # request. Subsequent list requests will have their own nextPageToken to
21445
+ # continue paging through the results.
21446
+ # Corresponds to the JSON property `nextPageToken`
21447
+ # @return [String]
21448
+ attr_accessor :next_page_token
21449
+
21450
+ # [Output Only] Server-defined URL for this resource.
21451
+ # Corresponds to the JSON property `selfLink`
21452
+ # @return [String]
21453
+ attr_accessor :self_link
21454
+
21455
+ # [Output Only] Informational warning message.
21456
+ # Corresponds to the JSON property `warning`
21457
+ # @return [Google::Apis::ComputeV1::InterconnectAttachmentList::Warning]
21458
+ attr_accessor :warning
21459
+
21460
+ def initialize(**args)
21461
+ update!(**args)
21462
+ end
21463
+
21464
+ # Update properties of this object
21465
+ def update!(**args)
21466
+ @id = args[:id] if args.key?(:id)
21467
+ @items = args[:items] if args.key?(:items)
21468
+ @kind = args[:kind] if args.key?(:kind)
21469
+ @next_page_token = args[:next_page_token] if args.key?(:next_page_token)
21470
+ @self_link = args[:self_link] if args.key?(:self_link)
21471
+ @warning = args[:warning] if args.key?(:warning)
21472
+ end
21473
+
21474
+ # [Output Only] Informational warning message.
21475
+ class Warning
21476
+ include Google::Apis::Core::Hashable
21477
+
21478
+ # [Output Only] A warning code, if applicable. For example, Compute Engine
21479
+ # returns NO_RESULTS_ON_PAGE if there are no results in the response.
21480
+ # Corresponds to the JSON property `code`
21481
+ # @return [String]
21482
+ attr_accessor :code
21483
+
21484
+ # [Output Only] Metadata about this warning in key: value format. For example: "
21485
+ # data": [ ` "key": "scope", "value": "zones/us-east1-d" `
21486
+ # Corresponds to the JSON property `data`
21487
+ # @return [Array<Google::Apis::ComputeV1::InterconnectAttachmentList::Warning::Datum>]
20742
21488
  attr_accessor :data
20743
21489
 
20744
21490
  # [Output Only] A human-readable description of the warning code.
@@ -20940,168 +21686,971 @@ module Google
20940
21686
  end
20941
21687
  end
20942
21688
 
20943
- # Describes a single physical circuit between the Customer and Google.
20944
- # CircuitInfo objects are created by Google, so all fields are output only.
20945
- class InterconnectCircuitInfo
20946
- include Google::Apis::Core::Hashable
20947
-
20948
- # Customer-side demarc ID for this circuit.
20949
- # Corresponds to the JSON property `customerDemarcId`
20950
- # @return [String]
20951
- attr_accessor :customer_demarc_id
20952
-
20953
- # Google-assigned unique ID for this circuit. Assigned at circuit turn-up.
20954
- # Corresponds to the JSON property `googleCircuitId`
20955
- # @return [String]
20956
- attr_accessor :google_circuit_id
20957
-
20958
- # Google-side demarc ID for this circuit. Assigned at circuit turn-up and
20959
- # provided by Google to the customer in the LOA.
20960
- # Corresponds to the JSON property `googleDemarcId`
20961
- # @return [String]
20962
- attr_accessor :google_demarc_id
20963
-
20964
- def initialize(**args)
20965
- update!(**args)
20966
- end
20967
-
20968
- # Update properties of this object
20969
- def update!(**args)
20970
- @customer_demarc_id = args[:customer_demarc_id] if args.key?(:customer_demarc_id)
20971
- @google_circuit_id = args[:google_circuit_id] if args.key?(:google_circuit_id)
20972
- @google_demarc_id = args[:google_demarc_id] if args.key?(:google_demarc_id)
20973
- end
20974
- end
20975
-
20976
- # Diagnostics information about the Interconnect connection, which contains
20977
- # detailed and current technical information about Google's side of the
20978
- # connection.
20979
- class InterconnectDiagnostics
20980
- include Google::Apis::Core::Hashable
20981
-
20982
- # A list of InterconnectDiagnostics.ARPEntry objects, describing individual
20983
- # neighbors currently seen by the Google router in the ARP cache for the
20984
- # Interconnect. This will be empty when the Interconnect is not bundled.
20985
- # Corresponds to the JSON property `arpCaches`
20986
- # @return [Array<Google::Apis::ComputeV1::InterconnectDiagnosticsArpEntry>]
20987
- attr_accessor :arp_caches
20988
-
20989
- # The aggregation type of the bundle interface.
20990
- # Corresponds to the JSON property `bundleAggregationType`
20991
- # @return [String]
20992
- attr_accessor :bundle_aggregation_type
20993
-
20994
- # The operational status of the bundle interface.
20995
- # Corresponds to the JSON property `bundleOperationalStatus`
20996
- # @return [String]
20997
- attr_accessor :bundle_operational_status
20998
-
20999
- # A list of InterconnectDiagnostics.LinkStatus objects, describing the status
21000
- # for each link on the Interconnect.
21001
- # Corresponds to the JSON property `links`
21002
- # @return [Array<Google::Apis::ComputeV1::InterconnectDiagnosticsLinkStatus>]
21003
- attr_accessor :links
21004
-
21005
- # The MAC address of the Interconnect's bundle interface.
21006
- # Corresponds to the JSON property `macAddress`
21007
- # @return [String]
21008
- attr_accessor :mac_address
21009
-
21010
- def initialize(**args)
21011
- update!(**args)
21012
- end
21013
-
21014
- # Update properties of this object
21015
- def update!(**args)
21016
- @arp_caches = args[:arp_caches] if args.key?(:arp_caches)
21017
- @bundle_aggregation_type = args[:bundle_aggregation_type] if args.key?(:bundle_aggregation_type)
21018
- @bundle_operational_status = args[:bundle_operational_status] if args.key?(:bundle_operational_status)
21019
- @links = args[:links] if args.key?(:links)
21020
- @mac_address = args[:mac_address] if args.key?(:mac_address)
21021
- end
21022
- end
21023
-
21024
- # Describing the ARP neighbor entries seen on this link
21025
- class InterconnectDiagnosticsArpEntry
21026
- include Google::Apis::Core::Hashable
21027
-
21028
- # The IP address of this ARP neighbor.
21029
- # Corresponds to the JSON property `ipAddress`
21030
- # @return [String]
21031
- attr_accessor :ip_address
21032
-
21033
- # The MAC address of this ARP neighbor.
21034
- # Corresponds to the JSON property `macAddress`
21035
- # @return [String]
21036
- attr_accessor :mac_address
21037
-
21038
- def initialize(**args)
21039
- update!(**args)
21040
- end
21041
-
21042
- # Update properties of this object
21043
- def update!(**args)
21044
- @ip_address = args[:ip_address] if args.key?(:ip_address)
21045
- @mac_address = args[:mac_address] if args.key?(:mac_address)
21046
- end
21047
- end
21048
-
21049
- #
21050
- class InterconnectDiagnosticsLinkLacpStatus
21689
+ # Describes a single physical circuit between the Customer and Google.
21690
+ # CircuitInfo objects are created by Google, so all fields are output only.
21691
+ class InterconnectCircuitInfo
21692
+ include Google::Apis::Core::Hashable
21693
+
21694
+ # Customer-side demarc ID for this circuit.
21695
+ # Corresponds to the JSON property `customerDemarcId`
21696
+ # @return [String]
21697
+ attr_accessor :customer_demarc_id
21698
+
21699
+ # Google-assigned unique ID for this circuit. Assigned at circuit turn-up.
21700
+ # Corresponds to the JSON property `googleCircuitId`
21701
+ # @return [String]
21702
+ attr_accessor :google_circuit_id
21703
+
21704
+ # Google-side demarc ID for this circuit. Assigned at circuit turn-up and
21705
+ # provided by Google to the customer in the LOA.
21706
+ # Corresponds to the JSON property `googleDemarcId`
21707
+ # @return [String]
21708
+ attr_accessor :google_demarc_id
21709
+
21710
+ def initialize(**args)
21711
+ update!(**args)
21712
+ end
21713
+
21714
+ # Update properties of this object
21715
+ def update!(**args)
21716
+ @customer_demarc_id = args[:customer_demarc_id] if args.key?(:customer_demarc_id)
21717
+ @google_circuit_id = args[:google_circuit_id] if args.key?(:google_circuit_id)
21718
+ @google_demarc_id = args[:google_demarc_id] if args.key?(:google_demarc_id)
21719
+ end
21720
+ end
21721
+
21722
+ # Diagnostics information about the Interconnect connection, which contains
21723
+ # detailed and current technical information about Google's side of the
21724
+ # connection.
21725
+ class InterconnectDiagnostics
21726
+ include Google::Apis::Core::Hashable
21727
+
21728
+ # A list of InterconnectDiagnostics.ARPEntry objects, describing individual
21729
+ # neighbors currently seen by the Google router in the ARP cache for the
21730
+ # Interconnect. This will be empty when the Interconnect is not bundled.
21731
+ # Corresponds to the JSON property `arpCaches`
21732
+ # @return [Array<Google::Apis::ComputeV1::InterconnectDiagnosticsArpEntry>]
21733
+ attr_accessor :arp_caches
21734
+
21735
+ # The aggregation type of the bundle interface.
21736
+ # Corresponds to the JSON property `bundleAggregationType`
21737
+ # @return [String]
21738
+ attr_accessor :bundle_aggregation_type
21739
+
21740
+ # The operational status of the bundle interface.
21741
+ # Corresponds to the JSON property `bundleOperationalStatus`
21742
+ # @return [String]
21743
+ attr_accessor :bundle_operational_status
21744
+
21745
+ # A list of InterconnectDiagnostics.LinkStatus objects, describing the status
21746
+ # for each link on the Interconnect.
21747
+ # Corresponds to the JSON property `links`
21748
+ # @return [Array<Google::Apis::ComputeV1::InterconnectDiagnosticsLinkStatus>]
21749
+ attr_accessor :links
21750
+
21751
+ # The MAC address of the Interconnect's bundle interface.
21752
+ # Corresponds to the JSON property `macAddress`
21753
+ # @return [String]
21754
+ attr_accessor :mac_address
21755
+
21756
+ def initialize(**args)
21757
+ update!(**args)
21758
+ end
21759
+
21760
+ # Update properties of this object
21761
+ def update!(**args)
21762
+ @arp_caches = args[:arp_caches] if args.key?(:arp_caches)
21763
+ @bundle_aggregation_type = args[:bundle_aggregation_type] if args.key?(:bundle_aggregation_type)
21764
+ @bundle_operational_status = args[:bundle_operational_status] if args.key?(:bundle_operational_status)
21765
+ @links = args[:links] if args.key?(:links)
21766
+ @mac_address = args[:mac_address] if args.key?(:mac_address)
21767
+ end
21768
+ end
21769
+
21770
+ # Describing the ARP neighbor entries seen on this link
21771
+ class InterconnectDiagnosticsArpEntry
21772
+ include Google::Apis::Core::Hashable
21773
+
21774
+ # The IP address of this ARP neighbor.
21775
+ # Corresponds to the JSON property `ipAddress`
21776
+ # @return [String]
21777
+ attr_accessor :ip_address
21778
+
21779
+ # The MAC address of this ARP neighbor.
21780
+ # Corresponds to the JSON property `macAddress`
21781
+ # @return [String]
21782
+ attr_accessor :mac_address
21783
+
21784
+ def initialize(**args)
21785
+ update!(**args)
21786
+ end
21787
+
21788
+ # Update properties of this object
21789
+ def update!(**args)
21790
+ @ip_address = args[:ip_address] if args.key?(:ip_address)
21791
+ @mac_address = args[:mac_address] if args.key?(:mac_address)
21792
+ end
21793
+ end
21794
+
21795
+ #
21796
+ class InterconnectDiagnosticsLinkLacpStatus
21797
+ include Google::Apis::Core::Hashable
21798
+
21799
+ # System ID of the port on Google's side of the LACP exchange.
21800
+ # Corresponds to the JSON property `googleSystemId`
21801
+ # @return [String]
21802
+ attr_accessor :google_system_id
21803
+
21804
+ # System ID of the port on the neighbor's side of the LACP exchange.
21805
+ # Corresponds to the JSON property `neighborSystemId`
21806
+ # @return [String]
21807
+ attr_accessor :neighbor_system_id
21808
+
21809
+ # The state of a LACP link, which can take one of the following values: - ACTIVE:
21810
+ # The link is configured and active within the bundle. - DETACHED: The link is
21811
+ # not configured within the bundle. This means that the rest of the object
21812
+ # should be empty.
21813
+ # Corresponds to the JSON property `state`
21814
+ # @return [String]
21815
+ attr_accessor :state
21816
+
21817
+ def initialize(**args)
21818
+ update!(**args)
21819
+ end
21820
+
21821
+ # Update properties of this object
21822
+ def update!(**args)
21823
+ @google_system_id = args[:google_system_id] if args.key?(:google_system_id)
21824
+ @neighbor_system_id = args[:neighbor_system_id] if args.key?(:neighbor_system_id)
21825
+ @state = args[:state] if args.key?(:state)
21826
+ end
21827
+ end
21828
+
21829
+ #
21830
+ class InterconnectDiagnosticsLinkOpticalPower
21831
+ include Google::Apis::Core::Hashable
21832
+
21833
+ # The status of the current value when compared to the warning and alarm levels
21834
+ # for the receiving or transmitting transceiver. Possible states include: - OK:
21835
+ # The value has not crossed a warning threshold. - LOW_WARNING: The value has
21836
+ # crossed below the low warning threshold. - HIGH_WARNING: The value has crossed
21837
+ # above the high warning threshold. - LOW_ALARM: The value has crossed below the
21838
+ # low alarm threshold. - HIGH_ALARM: The value has crossed above the high alarm
21839
+ # threshold.
21840
+ # Corresponds to the JSON property `state`
21841
+ # @return [String]
21842
+ attr_accessor :state
21843
+
21844
+ # Value of the current receiving or transmitting optical power, read in dBm.
21845
+ # Take a known good optical value, give it a 10% margin and trigger warnings
21846
+ # relative to that value. In general, a -7dBm warning and a -11dBm alarm are
21847
+ # good optical value estimates for most links.
21848
+ # Corresponds to the JSON property `value`
21849
+ # @return [Float]
21850
+ attr_accessor :value
21851
+
21852
+ def initialize(**args)
21853
+ update!(**args)
21854
+ end
21855
+
21856
+ # Update properties of this object
21857
+ def update!(**args)
21858
+ @state = args[:state] if args.key?(:state)
21859
+ @value = args[:value] if args.key?(:value)
21860
+ end
21861
+ end
21862
+
21863
+ #
21864
+ class InterconnectDiagnosticsLinkStatus
21865
+ include Google::Apis::Core::Hashable
21866
+
21867
+ # A list of InterconnectDiagnostics.ARPEntry objects, describing the ARP
21868
+ # neighbor entries seen on this link. This will be empty if the link is bundled
21869
+ # Corresponds to the JSON property `arpCaches`
21870
+ # @return [Array<Google::Apis::ComputeV1::InterconnectDiagnosticsArpEntry>]
21871
+ attr_accessor :arp_caches
21872
+
21873
+ # The unique ID for this link assigned during turn up by Google.
21874
+ # Corresponds to the JSON property `circuitId`
21875
+ # @return [String]
21876
+ attr_accessor :circuit_id
21877
+
21878
+ # The Demarc address assigned by Google and provided in the LoA.
21879
+ # Corresponds to the JSON property `googleDemarc`
21880
+ # @return [String]
21881
+ attr_accessor :google_demarc
21882
+
21883
+ #
21884
+ # Corresponds to the JSON property `lacpStatus`
21885
+ # @return [Google::Apis::ComputeV1::InterconnectDiagnosticsLinkLacpStatus]
21886
+ attr_accessor :lacp_status
21887
+
21888
+ # Describes the status of MACsec encryption on the link.
21889
+ # Corresponds to the JSON property `macsec`
21890
+ # @return [Google::Apis::ComputeV1::InterconnectDiagnosticsMacsecStatus]
21891
+ attr_accessor :macsec
21892
+
21893
+ # The operational status of the link.
21894
+ # Corresponds to the JSON property `operationalStatus`
21895
+ # @return [String]
21896
+ attr_accessor :operational_status
21897
+
21898
+ # An InterconnectDiagnostics.LinkOpticalPower object, describing the current
21899
+ # value and status of the received light level.
21900
+ # Corresponds to the JSON property `receivingOpticalPower`
21901
+ # @return [Google::Apis::ComputeV1::InterconnectDiagnosticsLinkOpticalPower]
21902
+ attr_accessor :receiving_optical_power
21903
+
21904
+ # An InterconnectDiagnostics.LinkOpticalPower object, describing the current
21905
+ # value and status of the transmitted light level.
21906
+ # Corresponds to the JSON property `transmittingOpticalPower`
21907
+ # @return [Google::Apis::ComputeV1::InterconnectDiagnosticsLinkOpticalPower]
21908
+ attr_accessor :transmitting_optical_power
21909
+
21910
+ def initialize(**args)
21911
+ update!(**args)
21912
+ end
21913
+
21914
+ # Update properties of this object
21915
+ def update!(**args)
21916
+ @arp_caches = args[:arp_caches] if args.key?(:arp_caches)
21917
+ @circuit_id = args[:circuit_id] if args.key?(:circuit_id)
21918
+ @google_demarc = args[:google_demarc] if args.key?(:google_demarc)
21919
+ @lacp_status = args[:lacp_status] if args.key?(:lacp_status)
21920
+ @macsec = args[:macsec] if args.key?(:macsec)
21921
+ @operational_status = args[:operational_status] if args.key?(:operational_status)
21922
+ @receiving_optical_power = args[:receiving_optical_power] if args.key?(:receiving_optical_power)
21923
+ @transmitting_optical_power = args[:transmitting_optical_power] if args.key?(:transmitting_optical_power)
21924
+ end
21925
+ end
21926
+
21927
+ # Describes the status of MACsec encryption on the link.
21928
+ class InterconnectDiagnosticsMacsecStatus
21929
+ include Google::Apis::Core::Hashable
21930
+
21931
+ # Indicates the Connectivity Association Key Name (CKN) currently being used if
21932
+ # MACsec is operational.
21933
+ # Corresponds to the JSON property `ckn`
21934
+ # @return [String]
21935
+ attr_accessor :ckn
21936
+
21937
+ # Indicates whether or not MACsec is operational on this link.
21938
+ # Corresponds to the JSON property `operational`
21939
+ # @return [Boolean]
21940
+ attr_accessor :operational
21941
+ alias_method :operational?, :operational
21942
+
21943
+ def initialize(**args)
21944
+ update!(**args)
21945
+ end
21946
+
21947
+ # Update properties of this object
21948
+ def update!(**args)
21949
+ @ckn = args[:ckn] if args.key?(:ckn)
21950
+ @operational = args[:operational] if args.key?(:operational)
21951
+ end
21952
+ end
21953
+
21954
+ # An interconnect group resource allows customers to create, analyze, and expand
21955
+ # their redundant connections.
21956
+ class InterconnectGroup
21957
+ include Google::Apis::Core::Hashable
21958
+
21959
+ # [Output Only] The status of the group as configured. This has the same
21960
+ # structure as the operational field reported by the OperationalStatus method,
21961
+ # but does not take into account the operational status of each resource.
21962
+ # Corresponds to the JSON property `configured`
21963
+ # @return [Google::Apis::ComputeV1::InterconnectGroupConfigured]
21964
+ attr_accessor :configured
21965
+
21966
+ # [Output Only] Creation timestamp in RFC3339 text format.
21967
+ # Corresponds to the JSON property `creationTimestamp`
21968
+ # @return [String]
21969
+ attr_accessor :creation_timestamp
21970
+
21971
+ # An optional description of this resource. Provide this property when you
21972
+ # create the resource.
21973
+ # Corresponds to the JSON property `description`
21974
+ # @return [String]
21975
+ attr_accessor :description
21976
+
21977
+ # Opaque system-generated token that uniquely identifies the configuration. If
21978
+ # provided when patching a configuration in update mode, the provided token must
21979
+ # match the current token or the update is rejected. This provides a reliable
21980
+ # means of doing read-modify-write (optimistic locking) as described by API 154.
21981
+ # Corresponds to the JSON property `etag`
21982
+ # @return [String]
21983
+ attr_accessor :etag
21984
+
21985
+ # [Output Only] The unique identifier for the resource type. The server
21986
+ # generates this identifier.
21987
+ # Corresponds to the JSON property `id`
21988
+ # @return [Fixnum]
21989
+ attr_accessor :id
21990
+
21991
+ # The user's intent for this group. This is the only required field besides the
21992
+ # name that must be specified on group creation.
21993
+ # Corresponds to the JSON property `intent`
21994
+ # @return [Google::Apis::ComputeV1::InterconnectGroupIntent]
21995
+ attr_accessor :intent
21996
+
21997
+ # Interconnects in the InterconnectGroup. Keys are arbitrary user-specified
21998
+ # strings. Users are encouraged, but not required, to use their preferred format
21999
+ # for resource links as keys. Note that there are add-members and remove-members
22000
+ # methods in gcloud. The size of this map is limited by an "Interconnects per
22001
+ # group" quota.
22002
+ # Corresponds to the JSON property `interconnects`
22003
+ # @return [Hash<String,Google::Apis::ComputeV1::InterconnectGroupInterconnect>]
22004
+ attr_accessor :interconnects
22005
+
22006
+ # [Output Only] Type of the resource. Always compute#InterconnectGroup
22007
+ # Corresponds to the JSON property `kind`
22008
+ # @return [String]
22009
+ attr_accessor :kind
22010
+
22011
+ # Name of the resource. Provided by the client when the resource is created. The
22012
+ # name must be 1-63 characters long, and comply with RFC1035. Specifically, the
22013
+ # name must be 1-63 characters long and match the regular expression `[a-z]([-a-
22014
+ # z0-9]*[a-z0-9])?` which means the first character must be a lowercase letter,
22015
+ # and all following characters must be a dash, lowercase letter, or digit,
22016
+ # except the last character, which cannot be a dash.
22017
+ # Corresponds to the JSON property `name`
22018
+ # @return [String]
22019
+ attr_accessor :name
22020
+
22021
+ # [Output Only] An analysis of the physical layout of Interconnects in this
22022
+ # group. Every Interconnect in the group is shown once in this structure.
22023
+ # Corresponds to the JSON property `physicalStructure`
22024
+ # @return [Google::Apis::ComputeV1::InterconnectGroupPhysicalStructure]
22025
+ attr_accessor :physical_structure
22026
+
22027
+ # [Output Only] Server-defined URL for the resource.
22028
+ # Corresponds to the JSON property `selfLink`
22029
+ # @return [String]
22030
+ attr_accessor :self_link
22031
+
22032
+ def initialize(**args)
22033
+ update!(**args)
22034
+ end
22035
+
22036
+ # Update properties of this object
22037
+ def update!(**args)
22038
+ @configured = args[:configured] if args.key?(:configured)
22039
+ @creation_timestamp = args[:creation_timestamp] if args.key?(:creation_timestamp)
22040
+ @description = args[:description] if args.key?(:description)
22041
+ @etag = args[:etag] if args.key?(:etag)
22042
+ @id = args[:id] if args.key?(:id)
22043
+ @intent = args[:intent] if args.key?(:intent)
22044
+ @interconnects = args[:interconnects] if args.key?(:interconnects)
22045
+ @kind = args[:kind] if args.key?(:kind)
22046
+ @name = args[:name] if args.key?(:name)
22047
+ @physical_structure = args[:physical_structure] if args.key?(:physical_structure)
22048
+ @self_link = args[:self_link] if args.key?(:self_link)
22049
+ end
22050
+ end
22051
+
22052
+ # [Output Only] The status of the group as configured. This has the same
22053
+ # structure as the operational field reported by the OperationalStatus method,
22054
+ # but does not take into account the operational status of each resource.
22055
+ class InterconnectGroupConfigured
22056
+ include Google::Apis::Core::Hashable
22057
+
22058
+ # [Output Only] How reliable this topology is configured to be, and why this
22059
+ # group does or does not meet the requirements for the intended capability.
22060
+ # Corresponds to the JSON property `topologyCapability`
22061
+ # @return [Google::Apis::ComputeV1::InterconnectGroupConfiguredTopologyCapability]
22062
+ attr_accessor :topology_capability
22063
+
22064
+ def initialize(**args)
22065
+ update!(**args)
22066
+ end
22067
+
22068
+ # Update properties of this object
22069
+ def update!(**args)
22070
+ @topology_capability = args[:topology_capability] if args.key?(:topology_capability)
22071
+ end
22072
+ end
22073
+
22074
+ # [Output Only] How reliable this topology is configured to be, and why this
22075
+ # group does or does not meet the requirements for the intended capability.
22076
+ class InterconnectGroupConfiguredTopologyCapability
22077
+ include Google::Apis::Core::Hashable
22078
+
22079
+ #
22080
+ # Corresponds to the JSON property `intendedCapabilityBlockers`
22081
+ # @return [Array<Google::Apis::ComputeV1::InterconnectGroupConfiguredTopologyCapabilityIntendedCapabilityBlockers>]
22082
+ attr_accessor :intended_capability_blockers
22083
+
22084
+ #
22085
+ # Corresponds to the JSON property `supportedSla`
22086
+ # @return [String]
22087
+ attr_accessor :supported_sla
22088
+
22089
+ def initialize(**args)
22090
+ update!(**args)
22091
+ end
22092
+
22093
+ # Update properties of this object
22094
+ def update!(**args)
22095
+ @intended_capability_blockers = args[:intended_capability_blockers] if args.key?(:intended_capability_blockers)
22096
+ @supported_sla = args[:supported_sla] if args.key?(:supported_sla)
22097
+ end
22098
+ end
22099
+
22100
+ # [Output Only] Reasons why configuration.topologyCapability.sla differs from
22101
+ # intent.topologyCapability. This list is empty if and only if those are the
22102
+ # same.
22103
+ class InterconnectGroupConfiguredTopologyCapabilityIntendedCapabilityBlockers
22104
+ include Google::Apis::Core::Hashable
22105
+
22106
+ #
22107
+ # Corresponds to the JSON property `blockerType`
22108
+ # @return [String]
22109
+ attr_accessor :blocker_type
22110
+
22111
+ # [Output Only] The url of Google Cloud public documentation explaining this
22112
+ # requirement. This is set for every type of requirement.
22113
+ # Corresponds to the JSON property `documentationLink`
22114
+ # @return [String]
22115
+ attr_accessor :documentation_link
22116
+
22117
+ # [Output Only] A human-readable explanation of this requirement and why it's
22118
+ # not met. This is set for every type of requirement.
22119
+ # Corresponds to the JSON property `explanation`
22120
+ # @return [String]
22121
+ attr_accessor :explanation
22122
+
22123
+ # [Output Only] Facilities used to explain this blocker in more detail. Like
22124
+ # physicalStructure.metros.facilities.facility, this is a numeric string like "
22125
+ # 5467".
22126
+ # Corresponds to the JSON property `facilities`
22127
+ # @return [Array<String>]
22128
+ attr_accessor :facilities
22129
+
22130
+ # [Output Only] Interconnects used to explain this blocker in more detail.
22131
+ # Corresponds to the JSON property `interconnects`
22132
+ # @return [Array<String>]
22133
+ attr_accessor :interconnects
22134
+
22135
+ # [Output Only] Metros used to explain this blocker in more detail. These are
22136
+ # three-letter lowercase strings like "iad". A blocker like INCOMPATIBLE_METROS
22137
+ # will specify the problematic metros in this field.
22138
+ # Corresponds to the JSON property `metros`
22139
+ # @return [Array<String>]
22140
+ attr_accessor :metros
22141
+
22142
+ # [Output Only] Zones used to explain this blocker in more detail. Zone names
22143
+ # are "zone1" and/or "zone2".
22144
+ # Corresponds to the JSON property `zones`
22145
+ # @return [Array<String>]
22146
+ attr_accessor :zones
22147
+
22148
+ def initialize(**args)
22149
+ update!(**args)
22150
+ end
22151
+
22152
+ # Update properties of this object
22153
+ def update!(**args)
22154
+ @blocker_type = args[:blocker_type] if args.key?(:blocker_type)
22155
+ @documentation_link = args[:documentation_link] if args.key?(:documentation_link)
22156
+ @explanation = args[:explanation] if args.key?(:explanation)
22157
+ @facilities = args[:facilities] if args.key?(:facilities)
22158
+ @interconnects = args[:interconnects] if args.key?(:interconnects)
22159
+ @metros = args[:metros] if args.key?(:metros)
22160
+ @zones = args[:zones] if args.key?(:zones)
22161
+ end
22162
+ end
22163
+
22164
+ # The user's intent for this group. This is the only required field besides the
22165
+ # name that must be specified on group creation.
22166
+ class InterconnectGroupIntent
22167
+ include Google::Apis::Core::Hashable
22168
+
22169
+ #
22170
+ # Corresponds to the JSON property `topologyCapability`
22171
+ # @return [String]
22172
+ attr_accessor :topology_capability
22173
+
22174
+ def initialize(**args)
22175
+ update!(**args)
22176
+ end
22177
+
22178
+ # Update properties of this object
22179
+ def update!(**args)
22180
+ @topology_capability = args[:topology_capability] if args.key?(:topology_capability)
22181
+ end
22182
+ end
22183
+
22184
+ # An Interconnect in this InterconnectGroup.
22185
+ class InterconnectGroupInterconnect
22186
+ include Google::Apis::Core::Hashable
22187
+
22188
+ # The URL of an Interconnect in this group. All Interconnects in the group are
22189
+ # unique.
22190
+ # Corresponds to the JSON property `interconnect`
22191
+ # @return [String]
22192
+ attr_accessor :interconnect
22193
+
22194
+ def initialize(**args)
22195
+ update!(**args)
22196
+ end
22197
+
22198
+ # Update properties of this object
22199
+ def update!(**args)
22200
+ @interconnect = args[:interconnect] if args.key?(:interconnect)
22201
+ end
22202
+ end
22203
+
22204
+ # [Output Only] An analysis of the physical layout of Interconnects in this
22205
+ # group. Every Interconnect in the group is shown once in this structure.
22206
+ class InterconnectGroupPhysicalStructure
22207
+ include Google::Apis::Core::Hashable
22208
+
22209
+ #
22210
+ # Corresponds to the JSON property `metros`
22211
+ # @return [Array<Google::Apis::ComputeV1::InterconnectGroupPhysicalStructureMetros>]
22212
+ attr_accessor :metros
22213
+
22214
+ def initialize(**args)
22215
+ update!(**args)
22216
+ end
22217
+
22218
+ # Update properties of this object
22219
+ def update!(**args)
22220
+ @metros = args[:metros] if args.key?(:metros)
22221
+ end
22222
+ end
22223
+
22224
+ # [Output Only] The metros Interconnects in this group are in.
22225
+ class InterconnectGroupPhysicalStructureMetros
22226
+ include Google::Apis::Core::Hashable
22227
+
22228
+ #
22229
+ # Corresponds to the JSON property `facilities`
22230
+ # @return [Array<Google::Apis::ComputeV1::InterconnectGroupPhysicalStructureMetrosFacilities>]
22231
+ attr_accessor :facilities
22232
+
22233
+ # [Output Only] The name of the metro, as a three-letter lowercase string like "
22234
+ # iad". This is the first component of the location of Interconnects underneath
22235
+ # this.
22236
+ # Corresponds to the JSON property `metro`
22237
+ # @return [String]
22238
+ attr_accessor :metro
22239
+
22240
+ def initialize(**args)
22241
+ update!(**args)
22242
+ end
22243
+
22244
+ # Update properties of this object
22245
+ def update!(**args)
22246
+ @facilities = args[:facilities] if args.key?(:facilities)
22247
+ @metro = args[:metro] if args.key?(:metro)
22248
+ end
22249
+ end
22250
+
22251
+ # [Output Only] The facilities Interconnects in this metro are present in.
22252
+ class InterconnectGroupPhysicalStructureMetrosFacilities
22253
+ include Google::Apis::Core::Hashable
22254
+
22255
+ # [Output Only] The ID of this facility, as a numeric string like "5467". This
22256
+ # is the third component of the location of Interconnects in this facility.
22257
+ # Corresponds to the JSON property `facility`
22258
+ # @return [String]
22259
+ attr_accessor :facility
22260
+
22261
+ #
22262
+ # Corresponds to the JSON property `zones`
22263
+ # @return [Array<Google::Apis::ComputeV1::InterconnectGroupPhysicalStructureMetrosFacilitiesZones>]
22264
+ attr_accessor :zones
22265
+
22266
+ def initialize(**args)
22267
+ update!(**args)
22268
+ end
22269
+
22270
+ # Update properties of this object
22271
+ def update!(**args)
22272
+ @facility = args[:facility] if args.key?(:facility)
22273
+ @zones = args[:zones] if args.key?(:zones)
22274
+ end
22275
+ end
22276
+
22277
+ # [Output Only] The zones that Interconnects in this facility are present in.
22278
+ class InterconnectGroupPhysicalStructureMetrosFacilitiesZones
22279
+ include Google::Apis::Core::Hashable
22280
+
22281
+ # [Output Only] URLs of Interconnects in this redundancy group in the given
22282
+ # metro, facility, and zone.
22283
+ # Corresponds to the JSON property `interconnects`
22284
+ # @return [Array<String>]
22285
+ attr_accessor :interconnects
22286
+
22287
+ # [Output Only] The name of the zone, either "zone1" or "zone2". This is the
22288
+ # second component of the location of Interconnects in this facility.
22289
+ # Corresponds to the JSON property `zone`
22290
+ # @return [String]
22291
+ attr_accessor :zone
22292
+
22293
+ def initialize(**args)
22294
+ update!(**args)
22295
+ end
22296
+
22297
+ # Update properties of this object
22298
+ def update!(**args)
22299
+ @interconnects = args[:interconnects] if args.key?(:interconnects)
22300
+ @zone = args[:zone] if args.key?(:zone)
22301
+ end
22302
+ end
22303
+
22304
+ #
22305
+ class InterconnectGroupsCreateMembers
22306
+ include Google::Apis::Core::Hashable
22307
+
22308
+ # How to behave when configured.topologyCapability.supportedSLA would not equal
22309
+ # intent.topologyCapability after this call.
22310
+ # Corresponds to the JSON property `intentMismatchBehavior`
22311
+ # @return [String]
22312
+ attr_accessor :intent_mismatch_behavior
22313
+
22314
+ #
22315
+ # Corresponds to the JSON property `interconnects`
22316
+ # @return [Array<Google::Apis::ComputeV1::InterconnectGroupsCreateMembersInterconnectInput>]
22317
+ attr_accessor :interconnects
22318
+
22319
+ # LINT.IfChange
22320
+ # Corresponds to the JSON property `templateInterconnect`
22321
+ # @return [Google::Apis::ComputeV1::InterconnectGroupsCreateMembersInterconnectInput]
22322
+ attr_accessor :template_interconnect
22323
+
22324
+ def initialize(**args)
22325
+ update!(**args)
22326
+ end
22327
+
22328
+ # Update properties of this object
22329
+ def update!(**args)
22330
+ @intent_mismatch_behavior = args[:intent_mismatch_behavior] if args.key?(:intent_mismatch_behavior)
22331
+ @interconnects = args[:interconnects] if args.key?(:interconnects)
22332
+ @template_interconnect = args[:template_interconnect] if args.key?(:template_interconnect)
22333
+ end
22334
+ end
22335
+
22336
+ # LINT.IfChange
22337
+ class InterconnectGroupsCreateMembersInterconnectInput
22338
+ include Google::Apis::Core::Hashable
22339
+
22340
+ # Administrative status of the interconnect. When this is set to true, the
22341
+ # Interconnect is functional and can carry traffic. When set to false, no
22342
+ # packets can be carried over the interconnect and no BGP routes are exchanged
22343
+ # over it. By default, the status is set to true.
22344
+ # Corresponds to the JSON property `adminEnabled`
22345
+ # @return [Boolean]
22346
+ attr_accessor :admin_enabled
22347
+ alias_method :admin_enabled?, :admin_enabled
22348
+
22349
+ # Customer name, to put in the Letter of Authorization as the party authorized
22350
+ # to request a crossconnect.
22351
+ # Corresponds to the JSON property `customerName`
22352
+ # @return [String]
22353
+ attr_accessor :customer_name
22354
+
22355
+ # An optional description of this resource. Provide this property when you
22356
+ # create the resource.
22357
+ # Corresponds to the JSON property `description`
22358
+ # @return [String]
22359
+ attr_accessor :description
22360
+
22361
+ # A zone-free location to use for all Interconnects created in this call, like "
22362
+ # iad-1234".
22363
+ # Corresponds to the JSON property `facility`
22364
+ # @return [String]
22365
+ attr_accessor :facility
22366
+
22367
+ # Type of interconnect, which can take one of the following values: - PARTNER: A
22368
+ # partner-managed interconnection shared between customers though a partner. -
22369
+ # DEDICATED: A dedicated physical interconnection with the customer. Note that a
22370
+ # value IT_PRIVATE has been deprecated in favor of DEDICATED.
22371
+ # Corresponds to the JSON property `interconnectType`
22372
+ # @return [String]
22373
+ attr_accessor :interconnect_type
22374
+
22375
+ # Type of link requested, which can take one of the following values: -
22376
+ # LINK_TYPE_ETHERNET_10G_LR: A 10G Ethernet with LR optics -
22377
+ # LINK_TYPE_ETHERNET_100G_LR: A 100G Ethernet with LR optics. -
22378
+ # LINK_TYPE_ETHERNET_400G_LR4: A 400G Ethernet with LR4 optics. Note that this
22379
+ # field indicates the speed of each of the links in the bundle, not the speed of
22380
+ # the entire bundle.
22381
+ # Corresponds to the JSON property `linkType`
22382
+ # @return [String]
22383
+ attr_accessor :link_type
22384
+
22385
+ # Name of the Interconnects to be created. This must be specified on the
22386
+ # template and/or on each individual interconnect. The name, if not empty, must
22387
+ # be 1-63 characters long, and comply with RFC1035. Specifically, any nonempty
22388
+ # name must be 1-63 characters long and match the regular expression `[a-z]([-a-
22389
+ # z0-9]*[a-z0-9])?` which means the first character must be a lowercase letter,
22390
+ # and all following characters must be a dash, lowercase letter, or digit,
22391
+ # except the last character, which cannot be a dash.
22392
+ # Corresponds to the JSON property `name`
22393
+ # @return [String]
22394
+ attr_accessor :name
22395
+
22396
+ # Email address to contact the customer NOC for operations and maintenance
22397
+ # notifications regarding this Interconnect. If specified, this will be used for
22398
+ # notifications in addition to all other forms described, such as Cloud
22399
+ # Monitoring logs alerting and Cloud Notifications. This field is required for
22400
+ # users who sign up for Cloud Interconnect using workforce identity federation.
22401
+ # Corresponds to the JSON property `nocContactEmail`
22402
+ # @return [String]
22403
+ attr_accessor :noc_contact_email
22404
+
22405
+ # Indicates that this is a Cross-Cloud Interconnect. This field specifies the
22406
+ # location outside of Google's network that the interconnect is connected to.
22407
+ # Corresponds to the JSON property `remoteLocation`
22408
+ # @return [String]
22409
+ attr_accessor :remote_location
22410
+
22411
+ # Optional. List of features requested for this Interconnect connection, which
22412
+ # can take one of the following values: - IF_MACSEC If specified then the
22413
+ # connection is created on MACsec capable hardware ports. If not specified, the
22414
+ # default value is false, which allocates non-MACsec capable ports first if
22415
+ # available. This parameter can be provided only with Interconnect INSERT. It
22416
+ # isn't valid for Interconnect PATCH.
22417
+ # Corresponds to the JSON property `requestedFeatures`
22418
+ # @return [Array<String>]
22419
+ attr_accessor :requested_features
22420
+
22421
+ # Target number of physical links in the link bundle, as requested by the
22422
+ # customer.
22423
+ # Corresponds to the JSON property `requestedLinkCount`
22424
+ # @return [Fixnum]
22425
+ attr_accessor :requested_link_count
22426
+
22427
+ def initialize(**args)
22428
+ update!(**args)
22429
+ end
22430
+
22431
+ # Update properties of this object
22432
+ def update!(**args)
22433
+ @admin_enabled = args[:admin_enabled] if args.key?(:admin_enabled)
22434
+ @customer_name = args[:customer_name] if args.key?(:customer_name)
22435
+ @description = args[:description] if args.key?(:description)
22436
+ @facility = args[:facility] if args.key?(:facility)
22437
+ @interconnect_type = args[:interconnect_type] if args.key?(:interconnect_type)
22438
+ @link_type = args[:link_type] if args.key?(:link_type)
22439
+ @name = args[:name] if args.key?(:name)
22440
+ @noc_contact_email = args[:noc_contact_email] if args.key?(:noc_contact_email)
22441
+ @remote_location = args[:remote_location] if args.key?(:remote_location)
22442
+ @requested_features = args[:requested_features] if args.key?(:requested_features)
22443
+ @requested_link_count = args[:requested_link_count] if args.key?(:requested_link_count)
22444
+ end
22445
+ end
22446
+
22447
+ #
22448
+ class InterconnectGroupsCreateMembersRequest
22449
+ include Google::Apis::Core::Hashable
22450
+
22451
+ #
22452
+ # Corresponds to the JSON property `request`
22453
+ # @return [Google::Apis::ComputeV1::InterconnectGroupsCreateMembers]
22454
+ attr_accessor :request
22455
+
22456
+ def initialize(**args)
22457
+ update!(**args)
22458
+ end
22459
+
22460
+ # Update properties of this object
22461
+ def update!(**args)
22462
+ @request = args[:request] if args.key?(:request)
22463
+ end
22464
+ end
22465
+
22466
+ # Response for the InterconnectGroupsGetOperationalStatusResponse.
22467
+ class InterconnectGroupsGetOperationalStatusResponse
22468
+ include Google::Apis::Core::Hashable
22469
+
22470
+ #
22471
+ # Corresponds to the JSON property `etag`
22472
+ # @return [String]
22473
+ attr_accessor :etag
22474
+
22475
+ # Request to get the status of the interconnect group with extra detail.
22476
+ # Corresponds to the JSON property `result`
22477
+ # @return [Google::Apis::ComputeV1::InterconnectGroupsOperationalStatus]
22478
+ attr_accessor :result
22479
+
22480
+ def initialize(**args)
22481
+ update!(**args)
22482
+ end
22483
+
22484
+ # Update properties of this object
22485
+ def update!(**args)
22486
+ @etag = args[:etag] if args.key?(:etag)
22487
+ @result = args[:result] if args.key?(:result)
22488
+ end
22489
+ end
22490
+
22491
+ #
22492
+ class InterconnectGroupsListResponse
22493
+ include Google::Apis::Core::Hashable
22494
+
22495
+ #
22496
+ # Corresponds to the JSON property `etag`
22497
+ # @return [String]
22498
+ attr_accessor :etag
22499
+
22500
+ # [Output Only] Unique identifier for the resource; defined by the server.
22501
+ # Corresponds to the JSON property `id`
22502
+ # @return [String]
22503
+ attr_accessor :id
22504
+
22505
+ # A list of InterconnectGroup resources.
22506
+ # Corresponds to the JSON property `items`
22507
+ # @return [Array<Google::Apis::ComputeV1::InterconnectGroup>]
22508
+ attr_accessor :items
22509
+
22510
+ #
22511
+ # Corresponds to the JSON property `kind`
22512
+ # @return [String]
22513
+ attr_accessor :kind
22514
+
22515
+ # [Output Only] This token allows you to get the next page of results for list
22516
+ # requests. If the number of results is larger than maxResults, use the
22517
+ # nextPageToken as a value for the query parameter pageToken in the next list
22518
+ # request. Subsequent list requests will have their own nextPageToken to
22519
+ # continue paging through the results.
22520
+ # Corresponds to the JSON property `nextPageToken`
22521
+ # @return [String]
22522
+ attr_accessor :next_page_token
22523
+
22524
+ # [Output Only] Server-defined URL for this resource.
22525
+ # Corresponds to the JSON property `selfLink`
22526
+ # @return [String]
22527
+ attr_accessor :self_link
22528
+
22529
+ # [Output Only] Unreachable resources. end_interface:
22530
+ # MixerListResponseWithEtagBuilder
22531
+ # Corresponds to the JSON property `unreachables`
22532
+ # @return [Array<String>]
22533
+ attr_accessor :unreachables
22534
+
22535
+ # [Output Only] Informational warning message.
22536
+ # Corresponds to the JSON property `warning`
22537
+ # @return [Google::Apis::ComputeV1::InterconnectGroupsListResponse::Warning]
22538
+ attr_accessor :warning
22539
+
22540
+ def initialize(**args)
22541
+ update!(**args)
22542
+ end
22543
+
22544
+ # Update properties of this object
22545
+ def update!(**args)
22546
+ @etag = args[:etag] if args.key?(:etag)
22547
+ @id = args[:id] if args.key?(:id)
22548
+ @items = args[:items] if args.key?(:items)
22549
+ @kind = args[:kind] if args.key?(:kind)
22550
+ @next_page_token = args[:next_page_token] if args.key?(:next_page_token)
22551
+ @self_link = args[:self_link] if args.key?(:self_link)
22552
+ @unreachables = args[:unreachables] if args.key?(:unreachables)
22553
+ @warning = args[:warning] if args.key?(:warning)
22554
+ end
22555
+
22556
+ # [Output Only] Informational warning message.
22557
+ class Warning
22558
+ include Google::Apis::Core::Hashable
22559
+
22560
+ # [Output Only] A warning code, if applicable. For example, Compute Engine
22561
+ # returns NO_RESULTS_ON_PAGE if there are no results in the response.
22562
+ # Corresponds to the JSON property `code`
22563
+ # @return [String]
22564
+ attr_accessor :code
22565
+
22566
+ # [Output Only] Metadata about this warning in key: value format. For example: "
22567
+ # data": [ ` "key": "scope", "value": "zones/us-east1-d" `
22568
+ # Corresponds to the JSON property `data`
22569
+ # @return [Array<Google::Apis::ComputeV1::InterconnectGroupsListResponse::Warning::Datum>]
22570
+ attr_accessor :data
22571
+
22572
+ # [Output Only] A human-readable description of the warning code.
22573
+ # Corresponds to the JSON property `message`
22574
+ # @return [String]
22575
+ attr_accessor :message
22576
+
22577
+ def initialize(**args)
22578
+ update!(**args)
22579
+ end
22580
+
22581
+ # Update properties of this object
22582
+ def update!(**args)
22583
+ @code = args[:code] if args.key?(:code)
22584
+ @data = args[:data] if args.key?(:data)
22585
+ @message = args[:message] if args.key?(:message)
22586
+ end
22587
+
22588
+ #
22589
+ class Datum
22590
+ include Google::Apis::Core::Hashable
22591
+
22592
+ # [Output Only] A key that provides more detail on the warning being returned.
22593
+ # For example, for warnings where there are no results in a list request for a
22594
+ # particular zone, this key might be scope and the key value might be the zone
22595
+ # name. Other examples might be a key indicating a deprecated resource and a
22596
+ # suggested replacement, or a warning about invalid network settings (for
22597
+ # example, if an instance attempts to perform IP forwarding but is not enabled
22598
+ # for IP forwarding).
22599
+ # Corresponds to the JSON property `key`
22600
+ # @return [String]
22601
+ attr_accessor :key
22602
+
22603
+ # [Output Only] A warning data value corresponding to the key.
22604
+ # Corresponds to the JSON property `value`
22605
+ # @return [String]
22606
+ attr_accessor :value
22607
+
22608
+ def initialize(**args)
22609
+ update!(**args)
22610
+ end
22611
+
22612
+ # Update properties of this object
22613
+ def update!(**args)
22614
+ @key = args[:key] if args.key?(:key)
22615
+ @value = args[:value] if args.key?(:value)
22616
+ end
22617
+ end
22618
+ end
22619
+ end
22620
+
22621
+ # Request to get the status of the interconnect group with extra detail.
22622
+ class InterconnectGroupsOperationalStatus
21051
22623
  include Google::Apis::Core::Hashable
21052
22624
 
21053
- # System ID of the port on Google's side of the LACP exchange.
21054
- # Corresponds to the JSON property `googleSystemId`
21055
- # @return [String]
21056
- attr_accessor :google_system_id
22625
+ # [Output Only] The status of the group as configured. This has the same
22626
+ # structure as the operational field reported by the OperationalStatus method,
22627
+ # but does not take into account the operational status of each resource.
22628
+ # Corresponds to the JSON property `configured`
22629
+ # @return [Google::Apis::ComputeV1::InterconnectGroupConfigured]
22630
+ attr_accessor :configured
21057
22631
 
21058
- # System ID of the port on the neighbor's side of the LACP exchange.
21059
- # Corresponds to the JSON property `neighborSystemId`
22632
+ # Summarizes the status of the group.
22633
+ # Corresponds to the JSON property `groupStatus`
21060
22634
  # @return [String]
21061
- attr_accessor :neighbor_system_id
22635
+ attr_accessor :group_status
21062
22636
 
21063
- # The state of a LACP link, which can take one of the following values: - ACTIVE:
21064
- # The link is configured and active within the bundle. - DETACHED: The link is
21065
- # not configured within the bundle. This means that the rest of the object
21066
- # should be empty.
21067
- # Corresponds to the JSON property `state`
21068
- # @return [String]
21069
- attr_accessor :state
22637
+ # The user's intent for this group. This is the only required field besides the
22638
+ # name that must be specified on group creation.
22639
+ # Corresponds to the JSON property `intent`
22640
+ # @return [Google::Apis::ComputeV1::InterconnectGroupIntent]
22641
+ attr_accessor :intent
21070
22642
 
21071
- def initialize(**args)
21072
- update!(**args)
21073
- end
21074
-
21075
- # Update properties of this object
21076
- def update!(**args)
21077
- @google_system_id = args[:google_system_id] if args.key?(:google_system_id)
21078
- @neighbor_system_id = args[:neighbor_system_id] if args.key?(:neighbor_system_id)
21079
- @state = args[:state] if args.key?(:state)
21080
- end
21081
- end
21082
-
21083
- #
21084
- class InterconnectDiagnosticsLinkOpticalPower
21085
- include Google::Apis::Core::Hashable
21086
-
21087
- # The status of the current value when compared to the warning and alarm levels
21088
- # for the receiving or transmitting transceiver. Possible states include: - OK:
21089
- # The value has not crossed a warning threshold. - LOW_WARNING: The value has
21090
- # crossed below the low warning threshold. - HIGH_WARNING: The value has crossed
21091
- # above the high warning threshold. - LOW_ALARM: The value has crossed below the
21092
- # low alarm threshold. - HIGH_ALARM: The value has crossed above the high alarm
21093
- # threshold.
21094
- # Corresponds to the JSON property `state`
21095
- # @return [String]
21096
- attr_accessor :state
22643
+ #
22644
+ # Corresponds to the JSON property `interconnectStatuses`
22645
+ # @return [Array<Google::Apis::ComputeV1::InterconnectGroupsOperationalStatusInterconnectStatus>]
22646
+ attr_accessor :interconnect_statuses
21097
22647
 
21098
- # Value of the current receiving or transmitting optical power, read in dBm.
21099
- # Take a known good optical value, give it a 10% margin and trigger warnings
21100
- # relative to that value. In general, a -7dBm warning and a -11dBm alarm are
21101
- # good optical value estimates for most links.
21102
- # Corresponds to the JSON property `value`
21103
- # @return [Float]
21104
- attr_accessor :value
22648
+ # [Output Only] The status of the group as configured. This has the same
22649
+ # structure as the operational field reported by the OperationalStatus method,
22650
+ # but does not take into account the operational status of each resource.
22651
+ # Corresponds to the JSON property `operational`
22652
+ # @return [Google::Apis::ComputeV1::InterconnectGroupConfigured]
22653
+ attr_accessor :operational
21105
22654
 
21106
22655
  def initialize(**args)
21107
22656
  update!(**args)
@@ -21109,90 +22658,40 @@ module Google
21109
22658
 
21110
22659
  # Update properties of this object
21111
22660
  def update!(**args)
21112
- @state = args[:state] if args.key?(:state)
21113
- @value = args[:value] if args.key?(:value)
22661
+ @configured = args[:configured] if args.key?(:configured)
22662
+ @group_status = args[:group_status] if args.key?(:group_status)
22663
+ @intent = args[:intent] if args.key?(:intent)
22664
+ @interconnect_statuses = args[:interconnect_statuses] if args.key?(:interconnect_statuses)
22665
+ @operational = args[:operational] if args.key?(:operational)
21114
22666
  end
21115
22667
  end
21116
22668
 
21117
- #
21118
- class InterconnectDiagnosticsLinkStatus
22669
+ # The status of one Interconnect in the group. The order is arbitrary.
22670
+ class InterconnectGroupsOperationalStatusInterconnectStatus
21119
22671
  include Google::Apis::Core::Hashable
21120
22672
 
21121
- # A list of InterconnectDiagnostics.ARPEntry objects, describing the ARP
21122
- # neighbor entries seen on this link. This will be empty if the link is bundled
21123
- # Corresponds to the JSON property `arpCaches`
21124
- # @return [Array<Google::Apis::ComputeV1::InterconnectDiagnosticsArpEntry>]
21125
- attr_accessor :arp_caches
21126
-
21127
- # The unique ID for this link assigned during turn up by Google.
21128
- # Corresponds to the JSON property `circuitId`
21129
- # @return [String]
21130
- attr_accessor :circuit_id
21131
-
21132
- # The Demarc address assigned by Google and provided in the LoA.
21133
- # Corresponds to the JSON property `googleDemarc`
21134
- # @return [String]
21135
- attr_accessor :google_demarc
21136
-
21137
- #
21138
- # Corresponds to the JSON property `lacpStatus`
21139
- # @return [Google::Apis::ComputeV1::InterconnectDiagnosticsLinkLacpStatus]
21140
- attr_accessor :lacp_status
22673
+ # Whether the Interconnect is enabled.
22674
+ # Corresponds to the JSON property `adminEnabled`
22675
+ # @return [Boolean]
22676
+ attr_accessor :admin_enabled
22677
+ alias_method :admin_enabled?, :admin_enabled
21141
22678
 
21142
- # Describes the status of MACsec encryption on the link.
21143
- # Corresponds to the JSON property `macsec`
21144
- # @return [Google::Apis::ComputeV1::InterconnectDiagnosticsMacsecStatus]
21145
- attr_accessor :macsec
22679
+ # Diagnostics information about the Interconnect connection, which contains
22680
+ # detailed and current technical information about Google's side of the
22681
+ # connection.
22682
+ # Corresponds to the JSON property `diagnostics`
22683
+ # @return [Google::Apis::ComputeV1::InterconnectDiagnostics]
22684
+ attr_accessor :diagnostics
21146
22685
 
21147
- # The operational status of the link.
21148
- # Corresponds to the JSON property `operationalStatus`
22686
+ # The URL of the Interconnect being described.
22687
+ # Corresponds to the JSON property `interconnect`
21149
22688
  # @return [String]
21150
- attr_accessor :operational_status
21151
-
21152
- # An InterconnectDiagnostics.LinkOpticalPower object, describing the current
21153
- # value and status of the received light level.
21154
- # Corresponds to the JSON property `receivingOpticalPower`
21155
- # @return [Google::Apis::ComputeV1::InterconnectDiagnosticsLinkOpticalPower]
21156
- attr_accessor :receiving_optical_power
21157
-
21158
- # An InterconnectDiagnostics.LinkOpticalPower object, describing the current
21159
- # value and status of the transmitted light level.
21160
- # Corresponds to the JSON property `transmittingOpticalPower`
21161
- # @return [Google::Apis::ComputeV1::InterconnectDiagnosticsLinkOpticalPower]
21162
- attr_accessor :transmitting_optical_power
21163
-
21164
- def initialize(**args)
21165
- update!(**args)
21166
- end
21167
-
21168
- # Update properties of this object
21169
- def update!(**args)
21170
- @arp_caches = args[:arp_caches] if args.key?(:arp_caches)
21171
- @circuit_id = args[:circuit_id] if args.key?(:circuit_id)
21172
- @google_demarc = args[:google_demarc] if args.key?(:google_demarc)
21173
- @lacp_status = args[:lacp_status] if args.key?(:lacp_status)
21174
- @macsec = args[:macsec] if args.key?(:macsec)
21175
- @operational_status = args[:operational_status] if args.key?(:operational_status)
21176
- @receiving_optical_power = args[:receiving_optical_power] if args.key?(:receiving_optical_power)
21177
- @transmitting_optical_power = args[:transmitting_optical_power] if args.key?(:transmitting_optical_power)
21178
- end
21179
- end
21180
-
21181
- # Describes the status of MACsec encryption on the link.
21182
- class InterconnectDiagnosticsMacsecStatus
21183
- include Google::Apis::Core::Hashable
22689
+ attr_accessor :interconnect
21184
22690
 
21185
- # Indicates the Connectivity Association Key Name (CKN) currently being used if
21186
- # MACsec is operational.
21187
- # Corresponds to the JSON property `ckn`
22691
+ # Whether this interconnect is participating in the redundant configuration.
22692
+ # Corresponds to the JSON property `isActive`
21188
22693
  # @return [String]
21189
- attr_accessor :ckn
21190
-
21191
- # Indicates whether or not MACsec is operational on this link.
21192
- # Corresponds to the JSON property `operational`
21193
- # @return [Boolean]
21194
- attr_accessor :operational
21195
- alias_method :operational?, :operational
22694
+ attr_accessor :is_active
21196
22695
 
21197
22696
  def initialize(**args)
21198
22697
  update!(**args)
@@ -21200,8 +22699,10 @@ module Google
21200
22699
 
21201
22700
  # Update properties of this object
21202
22701
  def update!(**args)
21203
- @ckn = args[:ckn] if args.key?(:ckn)
21204
- @operational = args[:operational] if args.key?(:operational)
22702
+ @admin_enabled = args[:admin_enabled] if args.key?(:admin_enabled)
22703
+ @diagnostics = args[:diagnostics] if args.key?(:diagnostics)
22704
+ @interconnect = args[:interconnect] if args.key?(:interconnect)
22705
+ @is_active = args[:is_active] if args.key?(:is_active)
21205
22706
  end
21206
22707
  end
21207
22708
 
@@ -22243,6 +23744,18 @@ module Google
22243
23744
  class License
22244
23745
  include Google::Apis::Core::Hashable
22245
23746
 
23747
+ # Specifies licenseCodes of licenses that can replace this license. Note: such
23748
+ # replacements are allowed even if removable_from_disk is false.
23749
+ # Corresponds to the JSON property `allowedReplacementLicenses`
23750
+ # @return [Array<String>]
23751
+ attr_accessor :allowed_replacement_licenses
23752
+
23753
+ # If true, this license can be appended to an existing disk's set of licenses.
23754
+ # Corresponds to the JSON property `appendableToDisk`
23755
+ # @return [Boolean]
23756
+ attr_accessor :appendable_to_disk
23757
+ alias_method :appendable_to_disk?, :appendable_to_disk
23758
+
22246
23759
  # [Output Only] Deprecated. This field no longer reflects whether a license
22247
23760
  # charges a usage fee.
22248
23761
  # Corresponds to the JSON property `chargesUseFee`
@@ -22267,6 +23780,13 @@ module Google
22267
23780
  # @return [Fixnum]
22268
23781
  attr_accessor :id
22269
23782
 
23783
+ # Specifies licenseCodes of licenses that are incompatible with this license. If
23784
+ # a license is incompatible with this license, it cannot be attached to the same
23785
+ # disk or image.
23786
+ # Corresponds to the JSON property `incompatibleLicenses`
23787
+ # @return [Array<String>]
23788
+ attr_accessor :incompatible_licenses
23789
+
22270
23790
  # [Output Only] Type of resource. Always compute#license for licenses.
22271
23791
  # Corresponds to the JSON property `kind`
22272
23792
  # @return [String]
@@ -22278,12 +23798,47 @@ module Google
22278
23798
  # @return [Fixnum]
22279
23799
  attr_accessor :license_code
22280
23800
 
23801
+ # A Duration represents a fixed-length span of time represented as a count of
23802
+ # seconds and fractions of seconds at nanosecond resolution. It is independent
23803
+ # of any calendar and concepts like "day" or "month". Range is approximately 10,
23804
+ # 000 years.
23805
+ # Corresponds to the JSON property `minimumRetention`
23806
+ # @return [Google::Apis::ComputeV1::Duration]
23807
+ attr_accessor :minimum_retention
23808
+
23809
+ # If true, this license can only be used on VMs on multi tenant nodes.
23810
+ # Corresponds to the JSON property `multiTenantOnly`
23811
+ # @return [Boolean]
23812
+ attr_accessor :multi_tenant_only
23813
+ alias_method :multi_tenant_only?, :multi_tenant_only
23814
+
22281
23815
  # Name of the resource. The name must be 1-63 characters long and comply with
22282
23816
  # RFC1035.
22283
23817
  # Corresponds to the JSON property `name`
22284
23818
  # @return [String]
22285
23819
  attr_accessor :name
22286
23820
 
23821
+ # If true, indicates this is an OS license. Only one OS license can be attached
23822
+ # to a disk or image at a time.
23823
+ # Corresponds to the JSON property `osLicense`
23824
+ # @return [Boolean]
23825
+ attr_accessor :os_license
23826
+ alias_method :os_license?, :os_license
23827
+
23828
+ # If true, this license can be removed from a disk's set of licenses, with no
23829
+ # replacement license needed.
23830
+ # Corresponds to the JSON property `removableFromDisk`
23831
+ # @return [Boolean]
23832
+ attr_accessor :removable_from_disk
23833
+ alias_method :removable_from_disk?, :removable_from_disk
23834
+
23835
+ # Specifies the set of permissible coattached licenseCodes of licenses that
23836
+ # satisfy the coattachment requirement of this license. At least one license
23837
+ # from the set must be attached to the same disk or image as this license.
23838
+ # Corresponds to the JSON property `requiredCoattachedLicenses`
23839
+ # @return [Array<String>]
23840
+ attr_accessor :required_coattached_licenses
23841
+
22287
23842
  # [Input Only] Deprecated.
22288
23843
  # Corresponds to the JSON property `resourceRequirements`
22289
23844
  # @return [Google::Apis::ComputeV1::LicenseResourceRequirements]
@@ -22294,6 +23849,17 @@ module Google
22294
23849
  # @return [String]
22295
23850
  attr_accessor :self_link
22296
23851
 
23852
+ # [Output Only] Server-defined URL for this resource with the resource id.
23853
+ # Corresponds to the JSON property `selfLinkWithId`
23854
+ # @return [String]
23855
+ attr_accessor :self_link_with_id
23856
+
23857
+ # If true, this license can only be used on VMs on sole tenant nodes.
23858
+ # Corresponds to the JSON property `soleTenantOnly`
23859
+ # @return [Boolean]
23860
+ attr_accessor :sole_tenant_only
23861
+ alias_method :sole_tenant_only?, :sole_tenant_only
23862
+
22297
23863
  # If false, licenses will not be copied from the source resource when creating
22298
23864
  # an image from a disk, disk from snapshot, or snapshot from disk.
22299
23865
  # Corresponds to the JSON property `transferable`
@@ -22301,22 +23867,38 @@ module Google
22301
23867
  attr_accessor :transferable
22302
23868
  alias_method :transferable?, :transferable
22303
23869
 
23870
+ # [Output Only] Last update timestamp in RFC3339 text format.
23871
+ # Corresponds to the JSON property `updateTimestamp`
23872
+ # @return [String]
23873
+ attr_accessor :update_timestamp
23874
+
22304
23875
  def initialize(**args)
22305
23876
  update!(**args)
22306
23877
  end
22307
23878
 
22308
23879
  # Update properties of this object
22309
23880
  def update!(**args)
23881
+ @allowed_replacement_licenses = args[:allowed_replacement_licenses] if args.key?(:allowed_replacement_licenses)
23882
+ @appendable_to_disk = args[:appendable_to_disk] if args.key?(:appendable_to_disk)
22310
23883
  @charges_use_fee = args[:charges_use_fee] if args.key?(:charges_use_fee)
22311
23884
  @creation_timestamp = args[:creation_timestamp] if args.key?(:creation_timestamp)
22312
23885
  @description = args[:description] if args.key?(:description)
22313
23886
  @id = args[:id] if args.key?(:id)
23887
+ @incompatible_licenses = args[:incompatible_licenses] if args.key?(:incompatible_licenses)
22314
23888
  @kind = args[:kind] if args.key?(:kind)
22315
23889
  @license_code = args[:license_code] if args.key?(:license_code)
23890
+ @minimum_retention = args[:minimum_retention] if args.key?(:minimum_retention)
23891
+ @multi_tenant_only = args[:multi_tenant_only] if args.key?(:multi_tenant_only)
22316
23892
  @name = args[:name] if args.key?(:name)
23893
+ @os_license = args[:os_license] if args.key?(:os_license)
23894
+ @removable_from_disk = args[:removable_from_disk] if args.key?(:removable_from_disk)
23895
+ @required_coattached_licenses = args[:required_coattached_licenses] if args.key?(:required_coattached_licenses)
22317
23896
  @resource_requirements = args[:resource_requirements] if args.key?(:resource_requirements)
22318
23897
  @self_link = args[:self_link] if args.key?(:self_link)
23898
+ @self_link_with_id = args[:self_link_with_id] if args.key?(:self_link_with_id)
23899
+ @sole_tenant_only = args[:sole_tenant_only] if args.key?(:sole_tenant_only)
22319
23900
  @transferable = args[:transferable] if args.key?(:transferable)
23901
+ @update_timestamp = args[:update_timestamp] if args.key?(:update_timestamp)
22320
23902
  end
22321
23903
  end
22322
23904
 
@@ -23095,11 +24677,6 @@ module Google
23095
24677
  # @return [String]
23096
24678
  attr_accessor :name
23097
24679
 
23098
- # [Output Only] A list of extended scratch disks assigned to the instance.
23099
- # Corresponds to the JSON property `scratchDisks`
23100
- # @return [Array<Google::Apis::ComputeV1::MachineType::ScratchDisk>]
23101
- attr_accessor :scratch_disks
23102
-
23103
24680
  # [Output Only] Server-defined URL for the resource.
23104
24681
  # Corresponds to the JSON property `selfLink`
23105
24682
  # @return [String]
@@ -23131,7 +24708,6 @@ module Google
23131
24708
  @maximum_persistent_disks_size_gb = args[:maximum_persistent_disks_size_gb] if args.key?(:maximum_persistent_disks_size_gb)
23132
24709
  @memory_mb = args[:memory_mb] if args.key?(:memory_mb)
23133
24710
  @name = args[:name] if args.key?(:name)
23134
- @scratch_disks = args[:scratch_disks] if args.key?(:scratch_disks)
23135
24711
  @self_link = args[:self_link] if args.key?(:self_link)
23136
24712
  @zone = args[:zone] if args.key?(:zone)
23137
24713
  end
@@ -23160,25 +24736,6 @@ module Google
23160
24736
  @guest_accelerator_type = args[:guest_accelerator_type] if args.key?(:guest_accelerator_type)
23161
24737
  end
23162
24738
  end
23163
-
23164
- #
23165
- class ScratchDisk
23166
- include Google::Apis::Core::Hashable
23167
-
23168
- # Size of the scratch disk, defined in GB.
23169
- # Corresponds to the JSON property `diskGb`
23170
- # @return [Fixnum]
23171
- attr_accessor :disk_gb
23172
-
23173
- def initialize(**args)
23174
- update!(**args)
23175
- end
23176
-
23177
- # Update properties of this object
23178
- def update!(**args)
23179
- @disk_gb = args[:disk_gb] if args.key?(:disk_gb)
23180
- end
23181
- end
23182
24739
  end
23183
24740
 
23184
24741
  #
@@ -31754,8 +33311,8 @@ module Google
31754
33311
  # following values: - `INITIALIZING` The public delegated prefix is being
31755
33312
  # initialized and addresses cannot be created yet. - `READY_TO_ANNOUNCE` The
31756
33313
  # public delegated prefix is a live migration prefix and is active. - `ANNOUNCED`
31757
- # The public delegated prefix is active. - `DELETING` The public delegated
31758
- # prefix is being deprovsioned.
33314
+ # The public delegated prefix is announced and ready to use. - `DELETING` The
33315
+ # public delegated prefix is being deprovsioned.
31759
33316
  # Corresponds to the JSON property `status`
31760
33317
  # @return [String]
31761
33318
  attr_accessor :status
@@ -34169,6 +35726,20 @@ module Google
34169
35726
  # @return [String]
34170
35727
  attr_accessor :creation_timestamp
34171
35728
 
35729
+ # A Duration represents a fixed-length span of time represented as a count of
35730
+ # seconds and fractions of seconds at nanosecond resolution. It is independent
35731
+ # of any calendar and concepts like "day" or "month". Range is approximately 10,
35732
+ # 000 years.
35733
+ # Corresponds to the JSON property `deleteAfterDuration`
35734
+ # @return [Google::Apis::ComputeV1::Duration]
35735
+ attr_accessor :delete_after_duration
35736
+
35737
+ # Absolute time in future when the reservation will be auto-deleted by Compute
35738
+ # Engine. Timestamp is represented in RFC3339 text format.
35739
+ # Corresponds to the JSON property `deleteAtTime`
35740
+ # @return [String]
35741
+ attr_accessor :delete_at_time
35742
+
34172
35743
  # Specifies the deployment strategy for this reservation.
34173
35744
  # Corresponds to the JSON property `deploymentType`
34174
35745
  # @return [String]
@@ -34279,6 +35850,8 @@ module Google
34279
35850
  @aggregate_reservation = args[:aggregate_reservation] if args.key?(:aggregate_reservation)
34280
35851
  @commitment = args[:commitment] if args.key?(:commitment)
34281
35852
  @creation_timestamp = args[:creation_timestamp] if args.key?(:creation_timestamp)
35853
+ @delete_after_duration = args[:delete_after_duration] if args.key?(:delete_after_duration)
35854
+ @delete_at_time = args[:delete_at_time] if args.key?(:delete_at_time)
34282
35855
  @deployment_type = args[:deployment_type] if args.key?(:deployment_type)
34283
35856
  @description = args[:description] if args.key?(:description)
34284
35857
  @id = args[:id] if args.key?(:id)
@@ -44831,6 +46404,18 @@ module Google
44831
46404
  # @return [String]
44832
46405
  attr_accessor :state
44833
46406
 
46407
+ # Output only. [Output Only] The array of external IPv6 network ranges reserved
46408
+ # from the subnetwork's external IPv6 range for system use.
46409
+ # Corresponds to the JSON property `systemReservedExternalIpv6Ranges`
46410
+ # @return [Array<String>]
46411
+ attr_accessor :system_reserved_external_ipv6_ranges
46412
+
46413
+ # Output only. [Output Only] The array of internal IPv6 network ranges reserved
46414
+ # from the subnetwork's internal IPv6 range for system use.
46415
+ # Corresponds to the JSON property `systemReservedInternalIpv6Ranges`
46416
+ # @return [Array<String>]
46417
+ attr_accessor :system_reserved_internal_ipv6_ranges
46418
+
44834
46419
  def initialize(**args)
44835
46420
  update!(**args)
44836
46421
  end
@@ -44864,6 +46449,8 @@ module Google
44864
46449
  @self_link = args[:self_link] if args.key?(:self_link)
44865
46450
  @stack_type = args[:stack_type] if args.key?(:stack_type)
44866
46451
  @state = args[:state] if args.key?(:state)
46452
+ @system_reserved_external_ipv6_ranges = args[:system_reserved_external_ipv6_ranges] if args.key?(:system_reserved_external_ipv6_ranges)
46453
+ @system_reserved_internal_ipv6_ranges = args[:system_reserved_internal_ipv6_ranges] if args.key?(:system_reserved_internal_ipv6_ranges)
44867
46454
  end
44868
46455
  end
44869
46456
 
@@ -45323,6 +46910,95 @@ module Google
45323
46910
  end
45324
46911
  end
45325
46912
 
46913
+ #
46914
+ class SubnetworksScopedWarning
46915
+ include Google::Apis::Core::Hashable
46916
+
46917
+ # Name of the scope containing this set of Subnetworks.
46918
+ # Corresponds to the JSON property `scopeName`
46919
+ # @return [String]
46920
+ attr_accessor :scope_name
46921
+
46922
+ # An informational warning about unreachable scope
46923
+ # Corresponds to the JSON property `warning`
46924
+ # @return [Google::Apis::ComputeV1::SubnetworksScopedWarning::Warning]
46925
+ attr_accessor :warning
46926
+
46927
+ def initialize(**args)
46928
+ update!(**args)
46929
+ end
46930
+
46931
+ # Update properties of this object
46932
+ def update!(**args)
46933
+ @scope_name = args[:scope_name] if args.key?(:scope_name)
46934
+ @warning = args[:warning] if args.key?(:warning)
46935
+ end
46936
+
46937
+ # An informational warning about unreachable scope
46938
+ class Warning
46939
+ include Google::Apis::Core::Hashable
46940
+
46941
+ # [Output Only] A warning code, if applicable. For example, Compute Engine
46942
+ # returns NO_RESULTS_ON_PAGE if there are no results in the response.
46943
+ # Corresponds to the JSON property `code`
46944
+ # @return [String]
46945
+ attr_accessor :code
46946
+
46947
+ # [Output Only] Metadata about this warning in key: value format. For example: "
46948
+ # data": [ ` "key": "scope", "value": "zones/us-east1-d" `
46949
+ # Corresponds to the JSON property `data`
46950
+ # @return [Array<Google::Apis::ComputeV1::SubnetworksScopedWarning::Warning::Datum>]
46951
+ attr_accessor :data
46952
+
46953
+ # [Output Only] A human-readable description of the warning code.
46954
+ # Corresponds to the JSON property `message`
46955
+ # @return [String]
46956
+ attr_accessor :message
46957
+
46958
+ def initialize(**args)
46959
+ update!(**args)
46960
+ end
46961
+
46962
+ # Update properties of this object
46963
+ def update!(**args)
46964
+ @code = args[:code] if args.key?(:code)
46965
+ @data = args[:data] if args.key?(:data)
46966
+ @message = args[:message] if args.key?(:message)
46967
+ end
46968
+
46969
+ #
46970
+ class Datum
46971
+ include Google::Apis::Core::Hashable
46972
+
46973
+ # [Output Only] A key that provides more detail on the warning being returned.
46974
+ # For example, for warnings where there are no results in a list request for a
46975
+ # particular zone, this key might be scope and the key value might be the zone
46976
+ # name. Other examples might be a key indicating a deprecated resource and a
46977
+ # suggested replacement, or a warning about invalid network settings (for
46978
+ # example, if an instance attempts to perform IP forwarding but is not enabled
46979
+ # for IP forwarding).
46980
+ # Corresponds to the JSON property `key`
46981
+ # @return [String]
46982
+ attr_accessor :key
46983
+
46984
+ # [Output Only] A warning data value corresponding to the key.
46985
+ # Corresponds to the JSON property `value`
46986
+ # @return [String]
46987
+ attr_accessor :value
46988
+
46989
+ def initialize(**args)
46990
+ update!(**args)
46991
+ end
46992
+
46993
+ # Update properties of this object
46994
+ def update!(**args)
46995
+ @key = args[:key] if args.key?(:key)
46996
+ @value = args[:value] if args.key?(:value)
46997
+ end
46998
+ end
46999
+ end
47000
+ end
47001
+
45326
47002
  #
45327
47003
  class SubnetworksSetPrivateIpGoogleAccessRequest
45328
47004
  include Google::Apis::Core::Hashable
@@ -50015,11 +51691,22 @@ module Google
50015
51691
  # @return [String]
50016
51692
  attr_accessor :next_page_token
50017
51693
 
51694
+ # [Output Only] Informational warning messages for failures encountered from
51695
+ # scopes.
51696
+ # Corresponds to the JSON property `scopedWarnings`
51697
+ # @return [Array<Google::Apis::ComputeV1::SubnetworksScopedWarning>]
51698
+ attr_accessor :scoped_warnings
51699
+
50018
51700
  # [Output Only] Server-defined URL for this resource.
50019
51701
  # Corresponds to the JSON property `selfLink`
50020
51702
  # @return [String]
50021
51703
  attr_accessor :self_link
50022
51704
 
51705
+ # [Output Only] Unreachable resources.
51706
+ # Corresponds to the JSON property `unreachables`
51707
+ # @return [Array<String>]
51708
+ attr_accessor :unreachables
51709
+
50023
51710
  # [Output Only] Informational warning message.
50024
51711
  # Corresponds to the JSON property `warning`
50025
51712
  # @return [Google::Apis::ComputeV1::UsableSubnetworksAggregatedList::Warning]
@@ -50035,7 +51722,9 @@ module Google
50035
51722
  @items = args[:items] if args.key?(:items)
50036
51723
  @kind = args[:kind] if args.key?(:kind)
50037
51724
  @next_page_token = args[:next_page_token] if args.key?(:next_page_token)
51725
+ @scoped_warnings = args[:scoped_warnings] if args.key?(:scoped_warnings)
50038
51726
  @self_link = args[:self_link] if args.key?(:self_link)
51727
+ @unreachables = args[:unreachables] if args.key?(:unreachables)
50039
51728
  @warning = args[:warning] if args.key?(:warning)
50040
51729
  end
50041
51730