google-apis-compute_v1 0.133.0 → 0.135.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.
@@ -101,6 +101,75 @@ module Google
101
101
  end
102
102
  end
103
103
 
104
+ # Info for accelerator topologies within a densely packed reservation.
105
+ class AcceleratorTopologiesInfo
106
+ include Google::Apis::Core::Hashable
107
+
108
+ # Info for each accelerator topology.
109
+ # Corresponds to the JSON property `acceleratorTopologyInfos`
110
+ # @return [Array<Google::Apis::ComputeV1::AcceleratorTopologiesInfoAcceleratorTopologyInfo>]
111
+ attr_accessor :accelerator_topology_infos
112
+
113
+ def initialize(**args)
114
+ update!(**args)
115
+ end
116
+
117
+ # Update properties of this object
118
+ def update!(**args)
119
+ @accelerator_topology_infos = args[:accelerator_topology_infos] if args.key?(:accelerator_topology_infos)
120
+ end
121
+ end
122
+
123
+ # Info for a slice of a given topology.
124
+ class AcceleratorTopologiesInfoAcceleratorTopologyInfo
125
+ include Google::Apis::Core::Hashable
126
+
127
+ # The accelerator topology.
128
+ # Corresponds to the JSON property `acceleratorTopology`
129
+ # @return [String]
130
+ attr_accessor :accelerator_topology
131
+
132
+ # Info for each topology state.
133
+ # Corresponds to the JSON property `infoPerTopologyStates`
134
+ # @return [Array<Google::Apis::ComputeV1::AcceleratorTopologiesInfoAcceleratorTopologyInfoInfoPerTopologyState>]
135
+ attr_accessor :info_per_topology_states
136
+
137
+ def initialize(**args)
138
+ update!(**args)
139
+ end
140
+
141
+ # Update properties of this object
142
+ def update!(**args)
143
+ @accelerator_topology = args[:accelerator_topology] if args.key?(:accelerator_topology)
144
+ @info_per_topology_states = args[:info_per_topology_states] if args.key?(:info_per_topology_states)
145
+ end
146
+ end
147
+
148
+ # Info for each topology state.
149
+ class AcceleratorTopologiesInfoAcceleratorTopologyInfoInfoPerTopologyState
150
+ include Google::Apis::Core::Hashable
151
+
152
+ # The number of accelerator topologies in this state.
153
+ # Corresponds to the JSON property `count`
154
+ # @return [Fixnum]
155
+ attr_accessor :count
156
+
157
+ # The state of the accelerator topology.
158
+ # Corresponds to the JSON property `state`
159
+ # @return [String]
160
+ attr_accessor :state
161
+
162
+ def initialize(**args)
163
+ update!(**args)
164
+ end
165
+
166
+ # Update properties of this object
167
+ def update!(**args)
168
+ @count = args[:count] if args.key?(:count)
169
+ @state = args[:state] if args.key?(:state)
170
+ end
171
+ end
172
+
104
173
  # Represents an Accelerator Type resource.
105
174
  # Google Cloud Platform provides graphics processing units (accelerators) that
106
175
  # you can add to VM instances to improve or accelerate performance when working
@@ -3586,7 +3655,7 @@ module Google
3586
3655
  include Google::Apis::Core::Hashable
3587
3656
 
3588
3657
  # The HTTP status code to define a TTL against. Only HTTP status codes
3589
- # 300, 301, 302, 307, 308, 404, 405, 410, 421, 451 and 501 are can be
3658
+ # 300, 301, 302, 307, 308, 404, 405, 410, 421, 451 and 501 can be
3590
3659
  # specified as values, and you cannot specify a status code more than
3591
3660
  # once.
3592
3661
  # Corresponds to the JSON property `code`
@@ -3805,8 +3874,8 @@ module Google
3805
3874
  attr_accessor :max_utilization
3806
3875
 
3807
3876
  # Name of a custom utilization signal. The name must be 1-64 characters
3808
- # long and match the regular expression[a-z]([-_.a-z0-9]*[a-z0-9])? which means
3809
- # that the
3877
+ # long and match the regular expression
3878
+ # `[a-z]([-_.a-z0-9]*[a-z0-9])?` which means that the
3810
3879
  # first character must be a lowercase letter, and all following
3811
3880
  # characters must be a dash, period, underscore, lowercase letter, or
3812
3881
  # digit, except the last character, which cannot be a dash, period, or
@@ -4734,7 +4803,7 @@ module Google
4734
4803
  include Google::Apis::Core::Hashable
4735
4804
 
4736
4805
  # The HTTP status code to define a TTL against. Only HTTP status codes
4737
- # 300, 301, 302, 307, 308, 404, 405, 410, 421, 451 and 501 are can be
4806
+ # 300, 301, 302, 307, 308, 404, 405, 410, 421, 451 and 501 can be
4738
4807
  # specified as values, and you cannot specify a status code more than
4739
4808
  # once.
4740
4809
  # Corresponds to the JSON property `code`
@@ -4856,8 +4925,8 @@ module Google
4856
4925
  alias_method :dry_run?, :dry_run
4857
4926
 
4858
4927
  # Name of a custom utilization signal. The name must be 1-64 characters
4859
- # long and match the regular expression[a-z]([-_.a-z0-9]*[a-z0-9])? which means
4860
- # that the
4928
+ # long and match the regular expression
4929
+ # `[a-z]([-_.a-z0-9]*[a-z0-9])?` which means that the
4861
4930
  # first character must be a lowercase letter, and all following
4862
4931
  # characters must be a dash, period, underscore, lowercase letter, or
4863
4932
  # digit, except the last character, which cannot be a dash, period, or
@@ -12767,6 +12836,12 @@ module Google
12767
12836
  # @return [String]
12768
12837
  attr_accessor :planning_status
12769
12838
 
12839
+ # The reservation mode which determines reservation-termination behavior and
12840
+ # expected pricing.
12841
+ # Corresponds to the JSON property `reservationMode`
12842
+ # @return [String]
12843
+ attr_accessor :reservation_mode
12844
+
12770
12845
  # Name of reservations where the capacity is provisioned at the time of
12771
12846
  # delivery of future reservations. If the reservation with the given name
12772
12847
  # does not exist already, it is created automatically at the time of Approval
@@ -12845,6 +12920,7 @@ module Google
12845
12920
  @name = args[:name] if args.key?(:name)
12846
12921
  @name_prefix = args[:name_prefix] if args.key?(:name_prefix)
12847
12922
  @planning_status = args[:planning_status] if args.key?(:planning_status)
12923
+ @reservation_mode = args[:reservation_mode] if args.key?(:reservation_mode)
12848
12924
  @reservation_name = args[:reservation_name] if args.key?(:reservation_name)
12849
12925
  @scheduling_type = args[:scheduling_type] if args.key?(:scheduling_type)
12850
12926
  @self_link = args[:self_link] if args.key?(:self_link)
@@ -13606,6 +13682,66 @@ module Google
13606
13682
  end
13607
13683
  end
13608
13684
 
13685
+ #
13686
+ class GrpctlsHealthCheck
13687
+ include Google::Apis::Core::Hashable
13688
+
13689
+ # The gRPC service name for the health check. This field is optional. The
13690
+ # value of grpc_service_name has the following meanings by convention:
13691
+ # - Empty service_name means the overall status of all services at the
13692
+ # backend.
13693
+ # - Non-empty service_name means the health of that gRPC service, as defined
13694
+ # by the owner of the service.
13695
+ # The grpc_service_name can only be ASCII.
13696
+ # Corresponds to the JSON property `grpcServiceName`
13697
+ # @return [String]
13698
+ attr_accessor :grpc_service_name
13699
+
13700
+ # The TCP port number to which the health check prober sends packets. Valid
13701
+ # values are 1 through 65535.
13702
+ # Corresponds to the JSON property `port`
13703
+ # @return [Fixnum]
13704
+ attr_accessor :port
13705
+
13706
+ # Specifies how a port is selected for health checking. Can be one of the
13707
+ # following values:
13708
+ # USE_FIXED_PORT: Specifies a port number explicitly using theport field in the
13709
+ # health check. Supported by backend services
13710
+ # for passthrough load balancers and backend services for proxy load
13711
+ # balancers. Not supported by target pools. The health check supports all
13712
+ # backends supported by the backend service provided the backend can be
13713
+ # health checked. For example, GCE_VM_IP network endpoint
13714
+ # groups, GCE_VM_IP_PORT network endpoint groups, and instance
13715
+ # group backends.
13716
+ # USE_NAMED_PORT: Not supported.
13717
+ # USE_SERVING_PORT: Provides an indirect method of specifying
13718
+ # the health check port by referring to the backend service. Only supported
13719
+ # by backend services for proxy load balancers. Not supported by target
13720
+ # pools. Not supported by backend services for passthrough load balancers.
13721
+ # Supports all backends that can be health checked; for example,GCE_VM_IP_PORT
13722
+ # network endpoint groups and instance group
13723
+ # backends.
13724
+ # For GCE_VM_IP_PORT network endpoint group backends, the health
13725
+ # check uses the port number specified for each endpoint in the network
13726
+ # endpoint group. For instance group backends, the health check uses the
13727
+ # port number determined by looking up the backend service's named port in
13728
+ # the instance group's list of named ports.
13729
+ # Corresponds to the JSON property `portSpecification`
13730
+ # @return [String]
13731
+ attr_accessor :port_specification
13732
+
13733
+ def initialize(**args)
13734
+ update!(**args)
13735
+ end
13736
+
13737
+ # Update properties of this object
13738
+ def update!(**args)
13739
+ @grpc_service_name = args[:grpc_service_name] if args.key?(:grpc_service_name)
13740
+ @port = args[:port] if args.key?(:port)
13741
+ @port_specification = args[:port_specification] if args.key?(:port_specification)
13742
+ end
13743
+ end
13744
+
13609
13745
  #
13610
13746
  class GlobalAddressesMoveRequest
13611
13747
  include Google::Apis::Core::Hashable
@@ -14432,6 +14568,11 @@ module Google
14432
14568
  # @return [Google::Apis::ComputeV1::GrpcHealthCheck]
14433
14569
  attr_accessor :grpc_health_check
14434
14570
 
14571
+ #
14572
+ # Corresponds to the JSON property `grpcTlsHealthCheck`
14573
+ # @return [Google::Apis::ComputeV1::GrpctlsHealthCheck]
14574
+ attr_accessor :grpc_tls_health_check
14575
+
14435
14576
  # A so-far unhealthy instance will be marked healthy after this
14436
14577
  # many consecutive successes. The default value is 2.
14437
14578
  # Corresponds to the JSON property `healthyThreshold`
@@ -14552,6 +14693,7 @@ module Google
14552
14693
  @creation_timestamp = args[:creation_timestamp] if args.key?(:creation_timestamp)
14553
14694
  @description = args[:description] if args.key?(:description)
14554
14695
  @grpc_health_check = args[:grpc_health_check] if args.key?(:grpc_health_check)
14696
+ @grpc_tls_health_check = args[:grpc_tls_health_check] if args.key?(:grpc_tls_health_check)
14555
14697
  @healthy_threshold = args[:healthy_threshold] if args.key?(:healthy_threshold)
14556
14698
  @http2_health_check = args[:http2_health_check] if args.key?(:http2_health_check)
14557
14699
  @http_health_check = args[:http_health_check] if args.key?(:http_health_check)
@@ -15705,7 +15847,7 @@ module Google
15705
15847
  # Only one of exactMatch, prefixMatch,suffixMatch, regexMatch,presentMatch or
15706
15848
  # rangeMatch must be set.
15707
15849
  # Regular expressions can only be used when the loadBalancingScheme is
15708
- # set to INTERNAL_SELF_MANAGED.
15850
+ # set to INTERNAL_SELF_MANAGED, EXTERNAL_MANAGED orINTERNAL_MANAGED.
15709
15851
  # Corresponds to the JSON property `regexMatch`
15710
15852
  # @return [String]
15711
15853
  attr_accessor :regex_match
@@ -16043,7 +16185,7 @@ module Google
16043
16185
  # more information about regular expression syntax, see Syntax.
16044
16186
  # Only one of presentMatch, exactMatch, orregexMatch must be set.
16045
16187
  # Regular expressions can only be used when the loadBalancingScheme is
16046
- # set to INTERNAL_SELF_MANAGED.
16188
+ # set to INTERNAL_SELF_MANAGED, EXTERNAL_MANAGED orINTERNAL_MANAGED.
16047
16189
  # Corresponds to the JSON property `regexMatch`
16048
16190
  # @return [String]
16049
16191
  attr_accessor :regex_match
@@ -16410,7 +16552,8 @@ module Google
16410
16552
  # any query parameters and anchor
16411
16553
  # that may be part of the original URL.
16412
16554
  # fullPathMatch must be from 1 to 1024 characters.
16413
- # Only one of prefixMatch, fullPathMatch or regexMatch must be
16555
+ # Only one of prefixMatch, fullPathMatch,regexMatch or path_template_match must
16556
+ # be
16414
16557
  # specified.
16415
16558
  # Corresponds to the JSON property `fullPathMatch`
16416
16559
  # @return [String]
@@ -16474,7 +16617,9 @@ module Google
16474
16617
  # For satisfying the matchRule condition, the request's
16475
16618
  # path must begin with the specified prefixMatch.prefixMatch must begin with a /.
16476
16619
  # The value must be from 1 to 1024 characters.
16477
- # Only one of prefixMatch, fullPathMatch or regexMatch must be
16620
+ # Only one of prefixMatch, fullPathMatch,regexMatch or path_template_match must
16621
+ # be
16622
+ # specified.
16478
16623
  # specified.
16479
16624
  # Corresponds to the JSON property `prefixMatch`
16480
16625
  # @return [String]
@@ -16492,10 +16637,11 @@ module Google
16492
16637
  # removing any query parameters and anchor
16493
16638
  # supplied with the original URL. For
16494
16639
  # more information about regular expression syntax, see Syntax.
16495
- # Only one of prefixMatch, fullPathMatch orregexMatch must be
16640
+ # Only one of prefixMatch, fullPathMatch,regexMatch or path_template_match must
16641
+ # be
16496
16642
  # specified.
16497
16643
  # Regular expressions can only be used when the loadBalancingScheme is
16498
- # set to INTERNAL_SELF_MANAGED.
16644
+ # set to INTERNAL_SELF_MANAGED, EXTERNAL_MANAGED orINTERNAL_MANAGED.
16499
16645
  # Corresponds to the JSON property `regexMatch`
16500
16646
  # @return [String]
16501
16647
  attr_accessor :regex_match
@@ -23379,6 +23525,11 @@ module Google
23379
23525
  # @return [String]
23380
23526
  attr_accessor :operational_status
23381
23527
 
23528
+ # Additional interconnect parameters.
23529
+ # Corresponds to the JSON property `params`
23530
+ # @return [Google::Apis::ComputeV1::InterconnectParams]
23531
+ attr_accessor :params
23532
+
23382
23533
  # [Output Only] IP address configured on the customer side of the
23383
23534
  # Interconnect link. The customer should configure this IP address during
23384
23535
  # turnup when prompted by Google NOC. This can be used only for ping tests.
@@ -23486,6 +23637,7 @@ module Google
23486
23637
  @name = args[:name] if args.key?(:name)
23487
23638
  @noc_contact_email = args[:noc_contact_email] if args.key?(:noc_contact_email)
23488
23639
  @operational_status = args[:operational_status] if args.key?(:operational_status)
23640
+ @params = args[:params] if args.key?(:params)
23489
23641
  @peer_ip_address = args[:peer_ip_address] if args.key?(:peer_ip_address)
23490
23642
  @provisioned_link_count = args[:provisioned_link_count] if args.key?(:provisioned_link_count)
23491
23643
  @remote_location = args[:remote_location] if args.key?(:remote_location)
@@ -23796,6 +23948,11 @@ module Google
23796
23948
  # @return [String]
23797
23949
  attr_accessor :kind
23798
23950
 
23951
+ # L2 Interconnect Attachment related configuration.
23952
+ # Corresponds to the JSON property `l2Forwarding`
23953
+ # @return [Google::Apis::ComputeV1::InterconnectAttachmentL2Forwarding]
23954
+ attr_accessor :l2_forwarding
23955
+
23799
23956
  # A fingerprint for the labels being applied to this InterconnectAttachment,
23800
23957
  # which is essentially a hash of the labels set used for optimistic locking.
23801
23958
  # The fingerprint is initially generated by Compute Engine and changes after
@@ -23855,6 +24012,11 @@ module Google
23855
24012
  # @return [String]
23856
24013
  attr_accessor :pairing_key
23857
24014
 
24015
+ # Additional interconnect attachment parameters.
24016
+ # Corresponds to the JSON property `params`
24017
+ # @return [Google::Apis::ComputeV1::InterconnectAttachmentParams]
24018
+ attr_accessor :params
24019
+
23858
24020
  # Optional BGP ASN for the router supplied by a Layer 3 Partner if they
23859
24021
  # configured BGP on behalf of the customer.
23860
24022
  # Output only for PARTNER type, input only for PARTNER_PROVIDER, not
@@ -23974,6 +24136,7 @@ module Google
23974
24136
  # customer.
23975
24137
  # - PARTNER_PROVIDER: an attachment to a Partner Interconnect, created by
23976
24138
  # the partner.
24139
+ # - L2_DEDICATED: a L2 attachment to a Dedicated Interconnect.
23977
24140
  # Corresponds to the JSON property `type`
23978
24141
  # @return [String]
23979
24142
  attr_accessor :type
@@ -24012,12 +24175,14 @@ module Google
24012
24175
  @interconnect = args[:interconnect] if args.key?(:interconnect)
24013
24176
  @ipsec_internal_addresses = args[:ipsec_internal_addresses] if args.key?(:ipsec_internal_addresses)
24014
24177
  @kind = args[:kind] if args.key?(:kind)
24178
+ @l2_forwarding = args[:l2_forwarding] if args.key?(:l2_forwarding)
24015
24179
  @label_fingerprint = args[:label_fingerprint] if args.key?(:label_fingerprint)
24016
24180
  @labels = args[:labels] if args.key?(:labels)
24017
24181
  @mtu = args[:mtu] if args.key?(:mtu)
24018
24182
  @name = args[:name] if args.key?(:name)
24019
24183
  @operational_status = args[:operational_status] if args.key?(:operational_status)
24020
24184
  @pairing_key = args[:pairing_key] if args.key?(:pairing_key)
24185
+ @params = args[:params] if args.key?(:params)
24021
24186
  @partner_asn = args[:partner_asn] if args.key?(:partner_asn)
24022
24187
  @partner_metadata = args[:partner_metadata] if args.key?(:partner_metadata)
24023
24188
  @private_interconnect_info = args[:private_interconnect_info] if args.key?(:private_interconnect_info)
@@ -24874,6 +25039,153 @@ module Google
24874
25039
  end
24875
25040
  end
24876
25041
 
25042
+ # L2 Interconnect Attachment related configuration.
25043
+ class InterconnectAttachmentL2Forwarding
25044
+ include Google::Apis::Core::Hashable
25045
+
25046
+ # Optional. A map of VLAN tags to appliances and optional inner mapping
25047
+ # rules. If VLANs are not explicitly mapped to any appliance, the
25048
+ # defaultApplianceIpAddress is used.
25049
+ # Each VLAN tag can be a single number or a range of numbers in the range
25050
+ # of 1 to 4094, e.g., "1" or "4001-4094". Non-empty and non-overlapping
25051
+ # VLAN tag ranges are enforced, and violating operations will be rejected.
25052
+ # The VLAN tags in the Ethernet header must use an ethertype value of
25053
+ # 0x88A8 or 0x8100.
25054
+ # Corresponds to the JSON property `applianceMappings`
25055
+ # @return [Hash<String,Google::Apis::ComputeV1::InterconnectAttachmentL2ForwardingApplianceMapping>]
25056
+ attr_accessor :appliance_mappings
25057
+
25058
+ # Optional. A single IPv4 or IPv6 address used as the default destination
25059
+ # IP when there is no VLAN mapping result found.
25060
+ # Unset field (null-value) indicates the unmatched packet should be
25061
+ # dropped.
25062
+ # Corresponds to the JSON property `defaultApplianceIpAddress`
25063
+ # @return [String]
25064
+ attr_accessor :default_appliance_ip_address
25065
+
25066
+ # GeneveHeader related configurations.
25067
+ # Corresponds to the JSON property `geneveHeader`
25068
+ # @return [Google::Apis::ComputeV1::InterconnectAttachmentL2ForwardingGeneveHeader]
25069
+ attr_accessor :geneve_header
25070
+
25071
+ # Required. Resource URL of the network to which this attachment belongs.
25072
+ # Corresponds to the JSON property `network`
25073
+ # @return [String]
25074
+ attr_accessor :network
25075
+
25076
+ # Required. A single IPv4 or IPv6 address. This address will be used as the
25077
+ # source IP address for packets sent to the appliances, and must be used as
25078
+ # the destination IP address for packets that should be sent out through
25079
+ # this attachment.
25080
+ # Corresponds to the JSON property `tunnelEndpointIpAddress`
25081
+ # @return [String]
25082
+ attr_accessor :tunnel_endpoint_ip_address
25083
+
25084
+ def initialize(**args)
25085
+ update!(**args)
25086
+ end
25087
+
25088
+ # Update properties of this object
25089
+ def update!(**args)
25090
+ @appliance_mappings = args[:appliance_mappings] if args.key?(:appliance_mappings)
25091
+ @default_appliance_ip_address = args[:default_appliance_ip_address] if args.key?(:default_appliance_ip_address)
25092
+ @geneve_header = args[:geneve_header] if args.key?(:geneve_header)
25093
+ @network = args[:network] if args.key?(:network)
25094
+ @tunnel_endpoint_ip_address = args[:tunnel_endpoint_ip_address] if args.key?(:tunnel_endpoint_ip_address)
25095
+ end
25096
+ end
25097
+
25098
+ # Two-level VLAN-to-Appliance mapping rule.
25099
+ class InterconnectAttachmentL2ForwardingApplianceMapping
25100
+ include Google::Apis::Core::Hashable
25101
+
25102
+ # Optional. A single IPv4 or IPv6 address used as the destination IP
25103
+ # address for ingress packets that match on a VLAN tag, but do not match
25104
+ # a more specific inner VLAN tag.
25105
+ # Unset field (null-value) indicates both VLAN tags are required to be
25106
+ # mapped. Otherwise, defaultApplianceIpAddress is used.
25107
+ # Corresponds to the JSON property `applianceIpAddress`
25108
+ # @return [String]
25109
+ attr_accessor :appliance_ip_address
25110
+
25111
+ # Optional. Used to match against the inner VLAN when the packet
25112
+ # contains two VLAN tags.
25113
+ # A list of mapping rules from inner VLAN tags to IP addresses. If the
25114
+ # inner VLAN is not explicitly mapped to an IP address range, the
25115
+ # applianceIpAddress is used.
25116
+ # Corresponds to the JSON property `innerVlanToApplianceMappings`
25117
+ # @return [Array<Google::Apis::ComputeV1::InterconnectAttachmentL2ForwardingApplianceMappingInnerVlanToApplianceMapping>]
25118
+ attr_accessor :inner_vlan_to_appliance_mappings
25119
+
25120
+ # Optional. The name of this appliance mapping rule.
25121
+ # Corresponds to the JSON property `name`
25122
+ # @return [String]
25123
+ attr_accessor :name
25124
+
25125
+ def initialize(**args)
25126
+ update!(**args)
25127
+ end
25128
+
25129
+ # Update properties of this object
25130
+ def update!(**args)
25131
+ @appliance_ip_address = args[:appliance_ip_address] if args.key?(:appliance_ip_address)
25132
+ @inner_vlan_to_appliance_mappings = args[:inner_vlan_to_appliance_mappings] if args.key?(:inner_vlan_to_appliance_mappings)
25133
+ @name = args[:name] if args.key?(:name)
25134
+ end
25135
+ end
25136
+
25137
+ # The inner VLAN-to-Appliance mapping.
25138
+ class InterconnectAttachmentL2ForwardingApplianceMappingInnerVlanToApplianceMapping
25139
+ include Google::Apis::Core::Hashable
25140
+
25141
+ # Required in this object. A single IPv4 or IPv6 address used as the
25142
+ # destination IP address for ingress packets that match on both VLAN
25143
+ # tags.
25144
+ # Corresponds to the JSON property `innerApplianceIpAddress`
25145
+ # @return [String]
25146
+ attr_accessor :inner_appliance_ip_address
25147
+
25148
+ # Required in this object. Used to match the inner VLAN tag on the
25149
+ # packet. Each entry can be a single number or a range of numbers in
25150
+ # the range of 1 to 4094, e.g., ["1", "4001-4094"] is valid. Non-empty
25151
+ # and Non-overlapping VLAN tag ranges are enforced, and violating
25152
+ # operations will be rejected.
25153
+ # The inner VLAN tags must have an ethertype value of 0x8100.
25154
+ # Corresponds to the JSON property `innerVlanTags`
25155
+ # @return [Array<String>]
25156
+ attr_accessor :inner_vlan_tags
25157
+
25158
+ def initialize(**args)
25159
+ update!(**args)
25160
+ end
25161
+
25162
+ # Update properties of this object
25163
+ def update!(**args)
25164
+ @inner_appliance_ip_address = args[:inner_appliance_ip_address] if args.key?(:inner_appliance_ip_address)
25165
+ @inner_vlan_tags = args[:inner_vlan_tags] if args.key?(:inner_vlan_tags)
25166
+ end
25167
+ end
25168
+
25169
+ # GeneveHeader related configurations.
25170
+ class InterconnectAttachmentL2ForwardingGeneveHeader
25171
+ include Google::Apis::Core::Hashable
25172
+
25173
+ # Optional. VNI is a 24-bit unique virtual network identifier, from 0 to
25174
+ # 16,777,215.
25175
+ # Corresponds to the JSON property `vni`
25176
+ # @return [Fixnum]
25177
+ attr_accessor :vni
25178
+
25179
+ def initialize(**args)
25180
+ update!(**args)
25181
+ end
25182
+
25183
+ # Update properties of this object
25184
+ def update!(**args)
25185
+ @vni = args[:vni] if args.key?(:vni)
25186
+ end
25187
+ end
25188
+
24877
25189
  # Response to the list request, and contains a list of interconnect
24878
25190
  # attachments.
24879
25191
  class InterconnectAttachmentList
@@ -25001,6 +25313,38 @@ module Google
25001
25313
  end
25002
25314
  end
25003
25315
 
25316
+ # Additional interconnect attachment parameters.
25317
+ class InterconnectAttachmentParams
25318
+ include Google::Apis::Core::Hashable
25319
+
25320
+ # Tag keys/values directly bound to this resource.
25321
+ # Tag keys and values have the same definition as resource
25322
+ # manager tags. The field is allowed for INSERT
25323
+ # only. The keys/values to set on the resource should be specified in
25324
+ # either ID ` : ` or Namespaced format
25325
+ # ` : `.
25326
+ # For example the following are valid inputs:
25327
+ # * `"tagKeys/333" : "tagValues/444", "tagKeys/123" : "tagValues/456"`
25328
+ # * `"123/environment" : "production", "345/abc" : "xyz"`
25329
+ # Note:
25330
+ # * Invalid combinations of ID & namespaced format is not supported. For
25331
+ # instance: `"123/environment" : "tagValues/444"` is invalid.
25332
+ # * Inconsistent format is not supported. For instance:
25333
+ # `"tagKeys/333" : "tagValues/444", "123/env" : "prod"` is invalid.
25334
+ # Corresponds to the JSON property `resourceManagerTags`
25335
+ # @return [Hash<String,String>]
25336
+ attr_accessor :resource_manager_tags
25337
+
25338
+ def initialize(**args)
25339
+ update!(**args)
25340
+ end
25341
+
25342
+ # Update properties of this object
25343
+ def update!(**args)
25344
+ @resource_manager_tags = args[:resource_manager_tags] if args.key?(:resource_manager_tags)
25345
+ end
25346
+ end
25347
+
25004
25348
  # Informational metadata about Partner attachments from Partners to display
25005
25349
  # to customers. These fields are propagated from PARTNER_PROVIDER
25006
25350
  # attachments to their corresponding PARTNER attachments.
@@ -25461,7 +25805,7 @@ module Google
25461
25805
  # If provided when patching a configuration in update mode, the provided
25462
25806
  # token must match the current token or the update is rejected. This provides
25463
25807
  # a reliable means of doing read-modify-write (optimistic locking) as
25464
- # described byAPI 154.
25808
+ # described by AIP 154.
25465
25809
  # Corresponds to the JSON property `etag`
25466
25810
  # @return [String]
25467
25811
  attr_accessor :etag
@@ -26684,6 +27028,13 @@ module Google
26684
27028
  # @return [Fixnum]
26685
27029
  attr_accessor :expected_rtt_ms
26686
27030
 
27031
+ # Identifies whether L2 Interconnect Attachments can be created in this
27032
+ # region for interconnects that are in this location.
27033
+ # Corresponds to the JSON property `l2ForwardingEnabled`
27034
+ # @return [Boolean]
27035
+ attr_accessor :l2_forwarding_enabled
27036
+ alias_method :l2_forwarding_enabled?, :l2_forwarding_enabled
27037
+
26687
27038
  # Identifies the network presence of this location.
26688
27039
  # Corresponds to the JSON property `locationPresence`
26689
27040
  # @return [String]
@@ -26701,6 +27052,7 @@ module Google
26701
27052
  # Update properties of this object
26702
27053
  def update!(**args)
26703
27054
  @expected_rtt_ms = args[:expected_rtt_ms] if args.key?(:expected_rtt_ms)
27055
+ @l2_forwarding_enabled = args[:l2_forwarding_enabled] if args.key?(:l2_forwarding_enabled)
26704
27056
  @location_presence = args[:location_presence] if args.key?(:location_presence)
26705
27057
  @region = args[:region] if args.key?(:region)
26706
27058
  end
@@ -26929,6 +27281,38 @@ module Google
26929
27281
  end
26930
27282
  end
26931
27283
 
27284
+ # Additional interconnect parameters.
27285
+ class InterconnectParams
27286
+ include Google::Apis::Core::Hashable
27287
+
27288
+ # Tag keys/values directly bound to this resource.
27289
+ # Tag keys and values have the same definition as resource
27290
+ # manager tags. The field is allowed for INSERT
27291
+ # only. The keys/values to set on the resource should be specified in
27292
+ # either ID ` : ` or Namespaced format
27293
+ # ` : `.
27294
+ # For example the following are valid inputs:
27295
+ # * `"tagKeys/333" : "tagValues/444", "tagKeys/123" : "tagValues/456"`
27296
+ # * `"123/environment" : "production", "345/abc" : "xyz"`
27297
+ # Note:
27298
+ # * Invalid combinations of ID & namespaced format is not supported. For
27299
+ # instance: `"123/environment" : "tagValues/444"` is invalid.
27300
+ # * Inconsistent format is not supported. For instance:
27301
+ # `"tagKeys/333" : "tagValues/444", "123/env" : "prod"` is invalid.
27302
+ # Corresponds to the JSON property `resourceManagerTags`
27303
+ # @return [Hash<String,String>]
27304
+ attr_accessor :resource_manager_tags
27305
+
27306
+ def initialize(**args)
27307
+ update!(**args)
27308
+ end
27309
+
27310
+ # Update properties of this object
27311
+ def update!(**args)
27312
+ @resource_manager_tags = args[:resource_manager_tags] if args.key?(:resource_manager_tags)
27313
+ end
27314
+ end
27315
+
26932
27316
  # Represents a Cross-Cloud Interconnect Remote Location resource.
26933
27317
  # You can use this resource to find remote location details about an
26934
27318
  # Interconnect attachment (VLAN).
@@ -31552,6 +31936,12 @@ module Google
31552
31936
  # @return [String]
31553
31937
  attr_accessor :fingerprint
31554
31938
 
31939
+ # Indicate whether igmp query is enabled on the network interface
31940
+ # or not. If enabled, also indicates the version of IGMP supported.
31941
+ # Corresponds to the JSON property `igmpQuery`
31942
+ # @return [String]
31943
+ attr_accessor :igmp_query
31944
+
31555
31945
  # The prefix length of the primary internal IPv6 range.
31556
31946
  # Corresponds to the JSON property `internalIpv6PrefixLength`
31557
31947
  # @return [Fixnum]
@@ -31685,6 +32075,7 @@ module Google
31685
32075
  @access_configs = args[:access_configs] if args.key?(:access_configs)
31686
32076
  @alias_ip_ranges = args[:alias_ip_ranges] if args.key?(:alias_ip_ranges)
31687
32077
  @fingerprint = args[:fingerprint] if args.key?(:fingerprint)
32078
+ @igmp_query = args[:igmp_query] if args.key?(:igmp_query)
31688
32079
  @internal_ipv6_prefix_length = args[:internal_ipv6_prefix_length] if args.key?(:internal_ipv6_prefix_length)
31689
32080
  @ipv6_access_configs = args[:ipv6_access_configs] if args.key?(:ipv6_access_configs)
31690
32081
  @ipv6_access_type = args[:ipv6_access_type] if args.key?(:ipv6_access_type)
@@ -32299,6 +32690,11 @@ module Google
32299
32690
  # @return [String]
32300
32691
  attr_accessor :allow_multi_nic_in_same_network
32301
32692
 
32693
+ # Specifies whether multicast is allowed.
32694
+ # Corresponds to the JSON property `allowMulticast`
32695
+ # @return [String]
32696
+ attr_accessor :allow_multicast
32697
+
32302
32698
  # Specifies whether NCC is allowed.
32303
32699
  # Corresponds to the JSON property `allowNcc`
32304
32700
  # @return [String]
@@ -32355,6 +32751,11 @@ module Google
32355
32751
  # @return [Array<String>]
32356
32752
  attr_accessor :interface_types
32357
32753
 
32754
+ # Specifies which type of multicast is supported.
32755
+ # Corresponds to the JSON property `multicast`
32756
+ # @return [String]
32757
+ attr_accessor :multicast
32758
+
32358
32759
  # Specifies which subnetwork purposes are supported.
32359
32760
  # Corresponds to the JSON property `subnetPurposes`
32360
32761
  # @return [Array<String>]
@@ -32398,6 +32799,7 @@ module Google
32398
32799
  @allow_ip_forwarding = args[:allow_ip_forwarding] if args.key?(:allow_ip_forwarding)
32399
32800
  @allow_load_balancing = args[:allow_load_balancing] if args.key?(:allow_load_balancing)
32400
32801
  @allow_multi_nic_in_same_network = args[:allow_multi_nic_in_same_network] if args.key?(:allow_multi_nic_in_same_network)
32802
+ @allow_multicast = args[:allow_multicast] if args.key?(:allow_multicast)
32401
32803
  @allow_ncc = args[:allow_ncc] if args.key?(:allow_ncc)
32402
32804
  @allow_network_migration = args[:allow_network_migration] if args.key?(:allow_network_migration)
32403
32805
  @allow_packet_mirroring = args[:allow_packet_mirroring] if args.key?(:allow_packet_mirroring)
@@ -32409,6 +32811,7 @@ module Google
32409
32811
  @allow_vpc_peering = args[:allow_vpc_peering] if args.key?(:allow_vpc_peering)
32410
32812
  @allow_vpn = args[:allow_vpn] if args.key?(:allow_vpn)
32411
32813
  @interface_types = args[:interface_types] if args.key?(:interface_types)
32814
+ @multicast = args[:multicast] if args.key?(:multicast)
32412
32815
  @subnet_purposes = args[:subnet_purposes] if args.key?(:subnet_purposes)
32413
32816
  @subnet_stack_types = args[:subnet_stack_types] if args.key?(:subnet_stack_types)
32414
32817
  @subnetwork_purposes = args[:subnetwork_purposes] if args.key?(:subnetwork_purposes)
@@ -40793,6 +41196,13 @@ module Google
40793
41196
  # @return [String]
40794
41197
  attr_accessor :name
40795
41198
 
41199
+ # Protection tier for the workload which specifies the workload expectations
41200
+ # in the event of infrastructure failures at data center (e.g. power
41201
+ # and/or cooling failures).
41202
+ # Corresponds to the JSON property `protectionTier`
41203
+ # @return [String]
41204
+ attr_accessor :protection_tier
41205
+
40796
41206
  # Specify the reservation sharing policy. If unspecified, the reservation
40797
41207
  # will not be shared with Google Cloud managed services.
40798
41208
  # Corresponds to the JSON property `reservationSharingPolicy`
@@ -40884,6 +41294,7 @@ module Google
40884
41294
  @kind = args[:kind] if args.key?(:kind)
40885
41295
  @linked_commitments = args[:linked_commitments] if args.key?(:linked_commitments)
40886
41296
  @name = args[:name] if args.key?(:name)
41297
+ @protection_tier = args[:protection_tier] if args.key?(:protection_tier)
40887
41298
  @reservation_sharing_policy = args[:reservation_sharing_policy] if args.key?(:reservation_sharing_policy)
40888
41299
  @resource_policies = args[:resource_policies] if args.key?(:resource_policies)
40889
41300
  @resource_status = args[:resource_status] if args.key?(:resource_status)
@@ -41592,6 +42003,11 @@ module Google
41592
42003
  class ReservationSubBlock
41593
42004
  include Google::Apis::Core::Hashable
41594
42005
 
42006
+ # Info for accelerator topologies within a densely packed reservation.
42007
+ # Corresponds to the JSON property `acceleratorTopologiesInfo`
42008
+ # @return [Google::Apis::ComputeV1::AcceleratorTopologiesInfo]
42009
+ attr_accessor :accelerator_topologies_info
42010
+
41595
42011
  # [Output Only] The number of hosts that are allocated in this
41596
42012
  # reservation subBlock.
41597
42013
  # Corresponds to the JSON property `count`
@@ -41669,6 +42085,7 @@ module Google
41669
42085
 
41670
42086
  # Update properties of this object
41671
42087
  def update!(**args)
42088
+ @accelerator_topologies_info = args[:accelerator_topologies_info] if args.key?(:accelerator_topologies_info)
41672
42089
  @count = args[:count] if args.key?(:count)
41673
42090
  @creation_timestamp = args[:creation_timestamp] if args.key?(:creation_timestamp)
41674
42091
  @health_info = args[:health_info] if args.key?(:health_info)
@@ -43502,7 +43919,9 @@ module Google
43502
43919
  # @return [Fixnum]
43503
43920
  attr_accessor :priority
43504
43921
 
43505
- # [Output only] The status of the route.
43922
+ # [Output only] The status of the route. This status only applies to
43923
+ # dynamic routes learned by Cloud Routers. This status is not applicable
43924
+ # to static routes.
43506
43925
  # Corresponds to the JSON property `routeStatus`
43507
43926
  # @return [String]
43508
43927
  attr_accessor :route_status
@@ -46930,6 +47349,11 @@ module Google
46930
47349
  # @return [String]
46931
47350
  attr_accessor :name
46932
47351
 
47352
+ # [Output Only] The parent of the security policy.
47353
+ # Corresponds to the JSON property `parent`
47354
+ # @return [String]
47355
+ attr_accessor :parent
47356
+
46933
47357
  #
46934
47358
  # Corresponds to the JSON property `recaptchaOptionsConfig`
46935
47359
  # @return [Google::Apis::ComputeV1::SecurityPolicyRecaptchaOptionsConfig]
@@ -47027,6 +47451,7 @@ module Google
47027
47451
  @label_fingerprint = args[:label_fingerprint] if args.key?(:label_fingerprint)
47028
47452
  @labels = args[:labels] if args.key?(:labels)
47029
47453
  @name = args[:name] if args.key?(:name)
47454
+ @parent = args[:parent] if args.key?(:parent)
47030
47455
  @recaptcha_options_config = args[:recaptcha_options_config] if args.key?(:recaptcha_options_config)
47031
47456
  @region = args[:region] if args.key?(:region)
47032
47457
  @rules = args[:rules] if args.key?(:rules)
@@ -49252,6 +49677,16 @@ module Google
49252
49677
  class ShieldedInstanceIdentity
49253
49678
  include Google::Apis::Core::Hashable
49254
49679
 
49680
+ # A Shielded Instance Identity Entry.
49681
+ # Corresponds to the JSON property `eccP256EncryptionKey`
49682
+ # @return [Google::Apis::ComputeV1::ShieldedInstanceIdentityEntry]
49683
+ attr_accessor :ecc_p256_encryption_key
49684
+
49685
+ # A Shielded Instance Identity Entry.
49686
+ # Corresponds to the JSON property `eccP256SigningKey`
49687
+ # @return [Google::Apis::ComputeV1::ShieldedInstanceIdentityEntry]
49688
+ attr_accessor :ecc_p256_signing_key
49689
+
49255
49690
  # A Shielded Instance Identity Entry.
49256
49691
  # Corresponds to the JSON property `encryptionKey`
49257
49692
  # @return [Google::Apis::ComputeV1::ShieldedInstanceIdentityEntry]
@@ -49275,6 +49710,8 @@ module Google
49275
49710
 
49276
49711
  # Update properties of this object
49277
49712
  def update!(**args)
49713
+ @ecc_p256_encryption_key = args[:ecc_p256_encryption_key] if args.key?(:ecc_p256_encryption_key)
49714
+ @ecc_p256_signing_key = args[:ecc_p256_signing_key] if args.key?(:ecc_p256_signing_key)
49278
49715
  @encryption_key = args[:encryption_key] if args.key?(:encryption_key)
49279
49716
  @kind = args[:kind] if args.key?(:kind)
49280
49717
  @signing_key = args[:signing_key] if args.key?(:signing_key)
@@ -61443,6 +61880,104 @@ module Google
61443
61880
  end
61444
61881
  end
61445
61882
 
61883
+ #
61884
+ class ZoneSetNestedPolicyRequest
61885
+ include Google::Apis::Core::Hashable
61886
+
61887
+ # Flatten Policy to create a backwacd compatible wire-format.
61888
+ # Deprecated. Use 'policy' to specify bindings.
61889
+ # Corresponds to the JSON property `bindings`
61890
+ # @return [Array<Google::Apis::ComputeV1::Binding>]
61891
+ attr_accessor :bindings
61892
+
61893
+ # Flatten Policy to create a backward compatible wire-format.
61894
+ # Deprecated. Use 'policy' to specify the etag.
61895
+ # Corresponds to the JSON property `etag`
61896
+ # NOTE: Values are automatically base64 encoded/decoded in the client library.
61897
+ # @return [String]
61898
+ attr_accessor :etag
61899
+
61900
+ # An Identity and Access Management (IAM) policy, which specifies access
61901
+ # controls for Google Cloud resources.
61902
+ # A `Policy` is a collection of `bindings`. A `binding` binds one or more
61903
+ # `members`, or principals, to a single `role`. Principals can be user
61904
+ # accounts, service accounts, Google groups, and domains (such as G Suite). A
61905
+ # `role` is a named list of permissions; each `role` can be an IAM predefined
61906
+ # role or a user-created custom role.
61907
+ # For some types of Google Cloud resources, a `binding` can also specify a
61908
+ # `condition`, which is a logical expression that allows access to a resource
61909
+ # only if the expression evaluates to `true`. A condition can add constraints
61910
+ # based on attributes of the request, the resource, or both. To learn which
61911
+ # resources support conditions in their IAM policies, see the
61912
+ # [IAM documentation](https://cloud.google.com/iam/help/conditions/resource-
61913
+ # policies).
61914
+ # **JSON example:**
61915
+ # ```
61916
+ # `
61917
+ # "bindings": [
61918
+ # `
61919
+ # "role": "roles/resourcemanager.organizationAdmin",
61920
+ # "members": [
61921
+ # "user:mike@example.com",
61922
+ # "group:admins@example.com",
61923
+ # "domain:google.com",
61924
+ # "serviceAccount:my-project-id@appspot.gserviceaccount.com"
61925
+ # ]
61926
+ # `,
61927
+ # `
61928
+ # "role": "roles/resourcemanager.organizationViewer",
61929
+ # "members": [
61930
+ # "user:eve@example.com"
61931
+ # ],
61932
+ # "condition": `
61933
+ # "title": "expirable access",
61934
+ # "description": "Does not grant access after Sep 2020",
61935
+ # "expression": "request.time < timestamp('2020-10-01T00:00:00.000Z')
61936
+ # ",
61937
+ # `
61938
+ # `
61939
+ # ],
61940
+ # "etag": "BwWWja0YfJA=",
61941
+ # "version": 3
61942
+ # `
61943
+ # ```
61944
+ # **YAML example:**
61945
+ # ```
61946
+ # bindings:
61947
+ # - members:
61948
+ # - user:mike@example.com
61949
+ # - group:admins@example.com
61950
+ # - domain:google.com
61951
+ # - serviceAccount:my-project-id@appspot.gserviceaccount.com
61952
+ # role: roles/resourcemanager.organizationAdmin
61953
+ # - members:
61954
+ # - user:eve@example.com
61955
+ # role: roles/resourcemanager.organizationViewer
61956
+ # condition:
61957
+ # title: expirable access
61958
+ # description: Does not grant access after Sep 2020
61959
+ # expression: request.time < timestamp('2020-10-01T00:00:00.000Z')
61960
+ # etag: BwWWja0YfJA=
61961
+ # version: 3
61962
+ # ```
61963
+ # For a description of IAM and its features, see the
61964
+ # [IAM documentation](https://cloud.google.com/iam/docs/).
61965
+ # Corresponds to the JSON property `policy`
61966
+ # @return [Google::Apis::ComputeV1::Policy]
61967
+ attr_accessor :policy
61968
+
61969
+ def initialize(**args)
61970
+ update!(**args)
61971
+ end
61972
+
61973
+ # Update properties of this object
61974
+ def update!(**args)
61975
+ @bindings = args[:bindings] if args.key?(:bindings)
61976
+ @etag = args[:etag] if args.key?(:etag)
61977
+ @policy = args[:policy] if args.key?(:policy)
61978
+ end
61979
+ end
61980
+
61446
61981
  #
61447
61982
  class ZoneSetPolicyRequest
61448
61983
  include Google::Apis::Core::Hashable