google-apis-compute_v1 0.121.0 → 0.123.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.
@@ -3851,6 +3851,12 @@ module Google
3851
3851
  # @return [Fixnum]
3852
3852
  attr_accessor :timeout_sec
3853
3853
 
3854
+ # Configuration for Backend Authenticated TLS and mTLS. May only be specified
3855
+ # when the backend protocol is SSL, HTTPS or HTTP2.
3856
+ # Corresponds to the JSON property `tlsSettings`
3857
+ # @return [Google::Apis::ComputeV1::BackendServiceTlsSettings]
3858
+ attr_accessor :tls_settings
3859
+
3854
3860
  # [Output Only] List of resources referencing given backend service.
3855
3861
  # Corresponds to the JSON property `usedBy`
3856
3862
  # @return [Array<Google::Apis::ComputeV1::BackendServiceUsedBy>]
@@ -3909,6 +3915,7 @@ module Google
3909
3915
  @strong_session_affinity_cookie = args[:strong_session_affinity_cookie] if args.key?(:strong_session_affinity_cookie)
3910
3916
  @subsetting = args[:subsetting] if args.key?(:subsetting)
3911
3917
  @timeout_sec = args[:timeout_sec] if args.key?(:timeout_sec)
3918
+ @tls_settings = args[:tls_settings] if args.key?(:tls_settings)
3912
3919
  @used_by = args[:used_by] if args.key?(:used_by)
3913
3920
  end
3914
3921
  end
@@ -4472,7 +4479,7 @@ module Google
4472
4479
  # backend service must set the network field, and all NEGs must belong to that
4473
4480
  # network. However, individual NEGs can belong to different subnetworks of that
4474
4481
  # network. - The maximum number of network endpoints across all backends of a
4475
- # backend service with fastIPMove is 64. - The maximum number of backend
4482
+ # backend service with fastIPMove is 32. - The maximum number of backend
4476
4483
  # services with fastIPMove that can have the same network endpoint attached to
4477
4484
  # one of its backends is 64. - The maximum number of backend services with
4478
4485
  # fastIPMove in a VPC in a region is 64. - The network endpoints that are
@@ -5027,6 +5034,80 @@ module Google
5027
5034
  end
5028
5035
  end
5029
5036
 
5037
+ #
5038
+ class BackendServiceTlsSettings
5039
+ include Google::Apis::Core::Hashable
5040
+
5041
+ # Reference to the BackendAuthenticationConfig resource from the networksecurity.
5042
+ # googleapis.com namespace. Can be used in authenticating TLS connections to the
5043
+ # backend, as specified by the authenticationMode field. Can only be specified
5044
+ # if authenticationMode is not NONE.
5045
+ # Corresponds to the JSON property `authenticationConfig`
5046
+ # @return [String]
5047
+ attr_accessor :authentication_config
5048
+
5049
+ # Server Name Indication - see RFC3546 section 3.1. If set, the load balancer
5050
+ # sends this string as the SNI hostname in the TLS connection to the backend,
5051
+ # and requires that this string match a Subject Alternative Name (SAN) in the
5052
+ # backend's server certificate. With a Regional Internet NEG backend, if the SNI
5053
+ # is specified here, the load balancer uses it regardless of whether the
5054
+ # Regional Internet NEG is specified with FQDN or IP address and port. When both
5055
+ # sni and subjectAltNames[] are specified, the load balancer matches the backend
5056
+ # certificate's SAN only to subjectAltNames[].
5057
+ # Corresponds to the JSON property `sni`
5058
+ # @return [String]
5059
+ attr_accessor :sni
5060
+
5061
+ # A list of Subject Alternative Names (SANs) that the Load Balancer verifies
5062
+ # during a TLS handshake with the backend. When the server presents its X.509
5063
+ # certificate to the Load Balancer, the Load Balancer inspects the certificate's
5064
+ # SAN field, and requires that at least one SAN match one of the subjectAltNames
5065
+ # in the list. This field is limited to 5 entries. When both sni and
5066
+ # subjectAltNames[] are specified, the load balancer matches the backend
5067
+ # certificate's SAN only to subjectAltNames[].
5068
+ # Corresponds to the JSON property `subjectAltNames`
5069
+ # @return [Array<Google::Apis::ComputeV1::BackendServiceTlsSettingsSubjectAltName>]
5070
+ attr_accessor :subject_alt_names
5071
+
5072
+ def initialize(**args)
5073
+ update!(**args)
5074
+ end
5075
+
5076
+ # Update properties of this object
5077
+ def update!(**args)
5078
+ @authentication_config = args[:authentication_config] if args.key?(:authentication_config)
5079
+ @sni = args[:sni] if args.key?(:sni)
5080
+ @subject_alt_names = args[:subject_alt_names] if args.key?(:subject_alt_names)
5081
+ end
5082
+ end
5083
+
5084
+ # A Subject Alternative Name that the load balancer matches against the SAN
5085
+ # field in the TLS certificate provided by the backend, specified as either a
5086
+ # DNS name or a URI, in accordance with RFC 5280 4.2.1.6
5087
+ class BackendServiceTlsSettingsSubjectAltName
5088
+ include Google::Apis::Core::Hashable
5089
+
5090
+ # The SAN specified as a DNS Name.
5091
+ # Corresponds to the JSON property `dnsName`
5092
+ # @return [String]
5093
+ attr_accessor :dns_name
5094
+
5095
+ # The SAN specified as a URI.
5096
+ # Corresponds to the JSON property `uniformResourceIdentifier`
5097
+ # @return [String]
5098
+ attr_accessor :uniform_resource_identifier
5099
+
5100
+ def initialize(**args)
5101
+ update!(**args)
5102
+ end
5103
+
5104
+ # Update properties of this object
5105
+ def update!(**args)
5106
+ @dns_name = args[:dns_name] if args.key?(:dns_name)
5107
+ @uniform_resource_identifier = args[:uniform_resource_identifier] if args.key?(:uniform_resource_identifier)
5108
+ end
5109
+ end
5110
+
5030
5111
  #
5031
5112
  class BackendServiceUsedBy
5032
5113
  include Google::Apis::Core::Hashable
@@ -5758,6 +5839,55 @@ module Google
5758
5839
  end
5759
5840
  end
5760
5841
 
5842
+ #
5843
+ class BulkSetLabelsRequest
5844
+ include Google::Apis::Core::Hashable
5845
+
5846
+ # The fingerprint of the previous set of labels for this resource, used to
5847
+ # detect conflicts. The fingerprint is initially generated by Compute Engine and
5848
+ # changes after every request to modify or update labels. You may optionally
5849
+ # provide an up-to-date fingerprint hash in order to update or change labels.
5850
+ # Make a get() request to the resource to get the latest fingerprint.
5851
+ # Corresponds to the JSON property `labelFingerprint`
5852
+ # NOTE: Values are automatically base64 encoded/decoded in the client library.
5853
+ # @return [String]
5854
+ attr_accessor :label_fingerprint
5855
+
5856
+ # The labels to set for this resource.
5857
+ # Corresponds to the JSON property `labels`
5858
+ # @return [Hash<String,String>]
5859
+ attr_accessor :labels
5860
+
5861
+ def initialize(**args)
5862
+ update!(**args)
5863
+ end
5864
+
5865
+ # Update properties of this object
5866
+ def update!(**args)
5867
+ @label_fingerprint = args[:label_fingerprint] if args.key?(:label_fingerprint)
5868
+ @labels = args[:labels] if args.key?(:labels)
5869
+ end
5870
+ end
5871
+
5872
+ #
5873
+ class BulkZoneSetLabelsRequest
5874
+ include Google::Apis::Core::Hashable
5875
+
5876
+ #
5877
+ # Corresponds to the JSON property `requests`
5878
+ # @return [Array<Google::Apis::ComputeV1::BulkSetLabelsRequest>]
5879
+ attr_accessor :requests
5880
+
5881
+ def initialize(**args)
5882
+ update!(**args)
5883
+ end
5884
+
5885
+ # Update properties of this object
5886
+ def update!(**args)
5887
+ @requests = args[:requests] if args.key?(:requests)
5888
+ end
5889
+ end
5890
+
5761
5891
  #
5762
5892
  class CacheInvalidationRule
5763
5893
  include Google::Apis::Core::Hashable
@@ -10091,6 +10221,12 @@ module Google
10091
10221
  # @return [Array<String>]
10092
10222
  attr_accessor :dest_ip_ranges
10093
10223
 
10224
+ # Network type of the traffic destination. Allowed values are: - UNSPECIFIED -
10225
+ # INTERNET - NON_INTERNET
10226
+ # Corresponds to the JSON property `destNetworkType`
10227
+ # @return [String]
10228
+ attr_accessor :dest_network_type
10229
+
10094
10230
  # Region codes whose IP addresses will be used to match for destination of
10095
10231
  # traffic. Should be specified as 2 letter country code defined as per ISO 3166
10096
10232
  # alpha-2 country codes. ex."US" Maximum number of dest region codes allowed is
@@ -10127,6 +10263,17 @@ module Google
10127
10263
  # @return [Array<String>]
10128
10264
  attr_accessor :src_ip_ranges
10129
10265
 
10266
+ # Network type of the traffic source. Allowed values are: - UNSPECIFIED -
10267
+ # INTERNET - INTRA_VPC - NON_INTERNET - VPC_NETWORKS
10268
+ # Corresponds to the JSON property `srcNetworkType`
10269
+ # @return [String]
10270
+ attr_accessor :src_network_type
10271
+
10272
+ # Networks of the traffic source. It can be either a full or partial url.
10273
+ # Corresponds to the JSON property `srcNetworks`
10274
+ # @return [Array<String>]
10275
+ attr_accessor :src_networks
10276
+
10130
10277
  # Region codes whose IP addresses will be used to match for source of traffic.
10131
10278
  # Should be specified as 2 letter country code defined as per ISO 3166 alpha-2
10132
10279
  # country codes. ex."US" Maximum number of source region codes allowed is 5000.
@@ -10157,12 +10304,15 @@ module Google
10157
10304
  @dest_address_groups = args[:dest_address_groups] if args.key?(:dest_address_groups)
10158
10305
  @dest_fqdns = args[:dest_fqdns] if args.key?(:dest_fqdns)
10159
10306
  @dest_ip_ranges = args[:dest_ip_ranges] if args.key?(:dest_ip_ranges)
10307
+ @dest_network_type = args[:dest_network_type] if args.key?(:dest_network_type)
10160
10308
  @dest_region_codes = args[:dest_region_codes] if args.key?(:dest_region_codes)
10161
10309
  @dest_threat_intelligences = args[:dest_threat_intelligences] if args.key?(:dest_threat_intelligences)
10162
10310
  @layer4_configs = args[:layer4_configs] if args.key?(:layer4_configs)
10163
10311
  @src_address_groups = args[:src_address_groups] if args.key?(:src_address_groups)
10164
10312
  @src_fqdns = args[:src_fqdns] if args.key?(:src_fqdns)
10165
10313
  @src_ip_ranges = args[:src_ip_ranges] if args.key?(:src_ip_ranges)
10314
+ @src_network_type = args[:src_network_type] if args.key?(:src_network_type)
10315
+ @src_networks = args[:src_networks] if args.key?(:src_networks)
10166
10316
  @src_region_codes = args[:src_region_codes] if args.key?(:src_region_codes)
10167
10317
  @src_secure_tags = args[:src_secure_tags] if args.key?(:src_secure_tags)
10168
10318
  @src_threat_intelligences = args[:src_threat_intelligences] if args.key?(:src_threat_intelligences)
@@ -10592,6 +10742,11 @@ module Google
10592
10742
  # @return [String]
10593
10743
  attr_accessor :self_link
10594
10744
 
10745
+ # [Output Only] Server-defined URL for this resource with the resource id.
10746
+ # Corresponds to the JSON property `selfLinkWithId`
10747
+ # @return [String]
10748
+ attr_accessor :self_link_with_id
10749
+
10595
10750
  # Service Directory resources to register this forwarding rule with. Currently,
10596
10751
  # only supports a single Service Directory resource.
10597
10752
  # Corresponds to the JSON property `serviceDirectoryRegistrations`
@@ -10689,6 +10844,7 @@ module Google
10689
10844
  @psc_connection_status = args[:psc_connection_status] if args.key?(:psc_connection_status)
10690
10845
  @region = args[:region] if args.key?(:region)
10691
10846
  @self_link = args[:self_link] if args.key?(:self_link)
10847
+ @self_link_with_id = args[:self_link_with_id] if args.key?(:self_link_with_id)
10692
10848
  @service_directory_registrations = args[:service_directory_registrations] if args.key?(:service_directory_registrations)
10693
10849
  @service_label = args[:service_label] if args.key?(:service_label)
10694
10850
  @service_name = args[:service_name] if args.key?(:service_name)
@@ -11370,6 +11526,16 @@ module Google
11370
11526
  class GroupMaintenanceInfo
11371
11527
  include Google::Apis::Core::Hashable
11372
11528
 
11529
+ # Describes number of instances that have ongoing maintenance.
11530
+ # Corresponds to the JSON property `instanceMaintenanceOngoingCount`
11531
+ # @return [Fixnum]
11532
+ attr_accessor :instance_maintenance_ongoing_count
11533
+
11534
+ # Describes number of instances that have pending maintenance.
11535
+ # Corresponds to the JSON property `instanceMaintenancePendingCount`
11536
+ # @return [Fixnum]
11537
+ attr_accessor :instance_maintenance_pending_count
11538
+
11373
11539
  # Progress for ongoing maintenance for this group of VMs/hosts. Describes number
11374
11540
  # of hosts in the block that have ongoing maintenance.
11375
11541
  # Corresponds to the JSON property `maintenanceOngoingCount`
@@ -11387,6 +11553,22 @@ module Google
11387
11553
  # @return [String]
11388
11554
  attr_accessor :scheduling_type
11389
11555
 
11556
+ # Describes number of subblock Infrastructure that has ongoing maintenance. Here,
11557
+ # Subblock Infrastructure Maintenance pertains to upstream hardware contained
11558
+ # in the Subblock that is necessary for a VM Family(e.g. NVLink Domains). Not
11559
+ # all VM Families will support this field.
11560
+ # Corresponds to the JSON property `subblockInfraMaintenanceOngoingCount`
11561
+ # @return [Fixnum]
11562
+ attr_accessor :subblock_infra_maintenance_ongoing_count
11563
+
11564
+ # Describes number of subblock Infrastructure that has pending maintenance. Here,
11565
+ # Subblock Infrastructure Maintenance pertains to upstream hardware contained
11566
+ # in the Subblock that is necessary for a VM Family (e.g. NVLink Domains). Not
11567
+ # all VM Families will support this field.
11568
+ # Corresponds to the JSON property `subblockInfraMaintenancePendingCount`
11569
+ # @return [Fixnum]
11570
+ attr_accessor :subblock_infra_maintenance_pending_count
11571
+
11390
11572
  # Upcoming Maintenance notification information.
11391
11573
  # Corresponds to the JSON property `upcomingGroupMaintenance`
11392
11574
  # @return [Google::Apis::ComputeV1::UpcomingMaintenance]
@@ -11398,9 +11580,13 @@ module Google
11398
11580
 
11399
11581
  # Update properties of this object
11400
11582
  def update!(**args)
11583
+ @instance_maintenance_ongoing_count = args[:instance_maintenance_ongoing_count] if args.key?(:instance_maintenance_ongoing_count)
11584
+ @instance_maintenance_pending_count = args[:instance_maintenance_pending_count] if args.key?(:instance_maintenance_pending_count)
11401
11585
  @maintenance_ongoing_count = args[:maintenance_ongoing_count] if args.key?(:maintenance_ongoing_count)
11402
11586
  @maintenance_pending_count = args[:maintenance_pending_count] if args.key?(:maintenance_pending_count)
11403
11587
  @scheduling_type = args[:scheduling_type] if args.key?(:scheduling_type)
11588
+ @subblock_infra_maintenance_ongoing_count = args[:subblock_infra_maintenance_ongoing_count] if args.key?(:subblock_infra_maintenance_ongoing_count)
11589
+ @subblock_infra_maintenance_pending_count = args[:subblock_infra_maintenance_pending_count] if args.key?(:subblock_infra_maintenance_pending_count)
11404
11590
  @upcoming_group_maintenance = args[:upcoming_group_maintenance] if args.key?(:upcoming_group_maintenance)
11405
11591
  end
11406
11592
  end
@@ -13057,7 +13243,8 @@ module Google
13057
13243
 
13058
13244
  # If false, headerValue is appended to any values that already exist for the
13059
13245
  # header. If true, headerValue is set for the header, discarding any values that
13060
- # were set for that header. The default value is false.
13246
+ # were set for that header. The default value is true, unless a variable is
13247
+ # present in headerValue, in which case the default value is false. .
13061
13248
  # Corresponds to the JSON property `replace`
13062
13249
  # @return [Boolean]
13063
13250
  attr_accessor :replace
@@ -25755,6 +25942,11 @@ module Google
25755
25942
  # @return [String]
25756
25943
  attr_accessor :network_profile
25757
25944
 
25945
+ # Additional network parameters.
25946
+ # Corresponds to the JSON property `params`
25947
+ # @return [Google::Apis::ComputeV1::NetworkParams]
25948
+ attr_accessor :params
25949
+
25758
25950
  # [Output Only] A list of network peerings for the resource.
25759
25951
  # Corresponds to the JSON property `peerings`
25760
25952
  # @return [Array<Google::Apis::ComputeV1::NetworkPeering>]
@@ -25803,6 +25995,7 @@ module Google
25803
25995
  @name = args[:name] if args.key?(:name)
25804
25996
  @network_firewall_policy_enforcement_order = args[:network_firewall_policy_enforcement_order] if args.key?(:network_firewall_policy_enforcement_order)
25805
25997
  @network_profile = args[:network_profile] if args.key?(:network_profile)
25998
+ @params = args[:params] if args.key?(:params)
25806
25999
  @peerings = args[:peerings] if args.key?(:peerings)
25807
26000
  @routing_config = args[:routing_config] if args.key?(:routing_config)
25808
26001
  @self_link = args[:self_link] if args.key?(:self_link)
@@ -27952,6 +28145,32 @@ module Google
27952
28145
  end
27953
28146
  end
27954
28147
 
28148
+ # Additional network parameters.
28149
+ class NetworkParams
28150
+ include Google::Apis::Core::Hashable
28151
+
28152
+ # Tag keys/values directly bound to this resource. Tag keys and values have the
28153
+ # same definition as resource manager tags. The field is allowed for INSERT only.
28154
+ # The keys/values to set on the resource should be specified in either ID ` : `
28155
+ # or Namespaced format ` : `. For example the following are valid inputs: * `"
28156
+ # tagKeys/333" : "tagValues/444", "tagKeys/123" : "tagValues/456"` * `"123/
28157
+ # environment" : "production", "345/abc" : "xyz"` Note: * Invalid combinations
28158
+ # of ID & namespaced format is not supported. For instance: `"123/environment" :
28159
+ # "tagValues/444"` is invalid.
28160
+ # Corresponds to the JSON property `resourceManagerTags`
28161
+ # @return [Hash<String,String>]
28162
+ attr_accessor :resource_manager_tags
28163
+
28164
+ def initialize(**args)
28165
+ update!(**args)
28166
+ end
28167
+
28168
+ # Update properties of this object
28169
+ def update!(**args)
28170
+ @resource_manager_tags = args[:resource_manager_tags] if args.key?(:resource_manager_tags)
28171
+ end
28172
+ end
28173
+
27955
28174
  # A network peering attached to a network resource. The message includes the
27956
28175
  # peering name, peer network, peering state, and a flag indicating whether
27957
28176
  # Google Compute Engine should automatically create routes for the peering.
@@ -35784,6 +36003,13 @@ module Google
35784
36003
  # @return [String]
35785
36004
  attr_accessor :description
35786
36005
 
36006
+ # Indicates whether Compute Engine allows unplanned maintenance for your VMs;
36007
+ # for example, to fix hardware errors.
36008
+ # Corresponds to the JSON property `enableEmergentMaintenance`
36009
+ # @return [Boolean]
36010
+ attr_accessor :enable_emergent_maintenance
36011
+ alias_method :enable_emergent_maintenance?, :enable_emergent_maintenance
36012
+
35787
36013
  # [Output Only] The unique identifier for the resource. This identifier is
35788
36014
  # defined by the server.
35789
36015
  # Corresponds to the JSON property `id`
@@ -35887,6 +36113,7 @@ module Google
35887
36113
  @delete_at_time = args[:delete_at_time] if args.key?(:delete_at_time)
35888
36114
  @deployment_type = args[:deployment_type] if args.key?(:deployment_type)
35889
36115
  @description = args[:description] if args.key?(:description)
36116
+ @enable_emergent_maintenance = args[:enable_emergent_maintenance] if args.key?(:enable_emergent_maintenance)
35890
36117
  @id = args[:id] if args.key?(:id)
35891
36118
  @kind = args[:kind] if args.key?(:kind)
35892
36119
  @linked_commitments = args[:linked_commitments] if args.key?(:linked_commitments)
@@ -36115,6 +36342,19 @@ module Google
36115
36342
  # @return [Google::Apis::ComputeV1::GroupMaintenanceInfo]
36116
36343
  attr_accessor :reservation_maintenance
36117
36344
 
36345
+ # [Output Only] The number of reservation subBlocks associated with this
36346
+ # reservation block.
36347
+ # Corresponds to the JSON property `reservationSubBlockCount`
36348
+ # @return [Fixnum]
36349
+ attr_accessor :reservation_sub_block_count
36350
+
36351
+ # [Output Only] The number of in-use reservation subBlocks associated with this
36352
+ # reservation block. If at least one VM is running on a subBlock, it is
36353
+ # considered in-use.
36354
+ # Corresponds to the JSON property `reservationSubBlockInUseCount`
36355
+ # @return [Fixnum]
36356
+ attr_accessor :reservation_sub_block_in_use_count
36357
+
36118
36358
  # [Output Only] Server-defined fully-qualified URL for this resource.
36119
36359
  # Corresponds to the JSON property `selfLink`
36120
36360
  # @return [String]
@@ -36149,6 +36389,8 @@ module Google
36149
36389
  @name = args[:name] if args.key?(:name)
36150
36390
  @physical_topology = args[:physical_topology] if args.key?(:physical_topology)
36151
36391
  @reservation_maintenance = args[:reservation_maintenance] if args.key?(:reservation_maintenance)
36392
+ @reservation_sub_block_count = args[:reservation_sub_block_count] if args.key?(:reservation_sub_block_count)
36393
+ @reservation_sub_block_in_use_count = args[:reservation_sub_block_in_use_count] if args.key?(:reservation_sub_block_in_use_count)
36152
36394
  @self_link = args[:self_link] if args.key?(:self_link)
36153
36395
  @self_link_with_id = args[:self_link_with_id] if args.key?(:self_link_with_id)
36154
36396
  @status = args[:status] if args.key?(:status)
@@ -36437,6 +36679,265 @@ module Google
36437
36679
  end
36438
36680
  end
36439
36681
 
36682
+ # Represents a reservation subBlock resource.
36683
+ class ReservationSubBlock
36684
+ include Google::Apis::Core::Hashable
36685
+
36686
+ # [Output Only] The number of hosts that are allocated in this reservation
36687
+ # subBlock.
36688
+ # Corresponds to the JSON property `count`
36689
+ # @return [Fixnum]
36690
+ attr_accessor :count
36691
+
36692
+ # [Output Only] Creation timestamp in RFC3339 text format.
36693
+ # Corresponds to the JSON property `creationTimestamp`
36694
+ # @return [String]
36695
+ attr_accessor :creation_timestamp
36696
+
36697
+ # [Output Only] The unique identifier for the resource. This identifier is
36698
+ # defined by the server.
36699
+ # Corresponds to the JSON property `id`
36700
+ # @return [Fixnum]
36701
+ attr_accessor :id
36702
+
36703
+ # [Output Only] The number of instances that are currently in use on this
36704
+ # reservation subBlock.
36705
+ # Corresponds to the JSON property `inUseCount`
36706
+ # @return [Fixnum]
36707
+ attr_accessor :in_use_count
36708
+
36709
+ # [Output Only] Type of the resource. Always compute#reservationSubBlock for
36710
+ # reservation subBlocks.
36711
+ # Corresponds to the JSON property `kind`
36712
+ # @return [String]
36713
+ attr_accessor :kind
36714
+
36715
+ # [Output Only] The name of this reservation subBlock generated by Google
36716
+ # Compute Engine. The name must be 1-63 characters long, and comply with RFC1035
36717
+ # @pattern [a-z](?:[-a-z0-9]`0,61`[a-z0-9])?
36718
+ # Corresponds to the JSON property `name`
36719
+ # @return [String]
36720
+ attr_accessor :name
36721
+
36722
+ # [Output Only] The physical topology of the reservation subBlock.
36723
+ # Corresponds to the JSON property `physicalTopology`
36724
+ # @return [Google::Apis::ComputeV1::ReservationSubBlockPhysicalTopology]
36725
+ attr_accessor :physical_topology
36726
+
36727
+ # Maintenance Info for ReservationBlocks.
36728
+ # Corresponds to the JSON property `reservationSubBlockMaintenance`
36729
+ # @return [Google::Apis::ComputeV1::GroupMaintenanceInfo]
36730
+ attr_accessor :reservation_sub_block_maintenance
36731
+
36732
+ # [Output Only] Server-defined fully-qualified URL for this resource.
36733
+ # Corresponds to the JSON property `selfLink`
36734
+ # @return [String]
36735
+ attr_accessor :self_link
36736
+
36737
+ # [Output Only] Server-defined URL for this resource with the resource id.
36738
+ # Corresponds to the JSON property `selfLinkWithId`
36739
+ # @return [String]
36740
+ attr_accessor :self_link_with_id
36741
+
36742
+ # [Output Only] Status of the reservation subBlock.
36743
+ # Corresponds to the JSON property `status`
36744
+ # @return [String]
36745
+ attr_accessor :status
36746
+
36747
+ # [Output Only] Zone in which the reservation subBlock resides.
36748
+ # Corresponds to the JSON property `zone`
36749
+ # @return [String]
36750
+ attr_accessor :zone
36751
+
36752
+ def initialize(**args)
36753
+ update!(**args)
36754
+ end
36755
+
36756
+ # Update properties of this object
36757
+ def update!(**args)
36758
+ @count = args[:count] if args.key?(:count)
36759
+ @creation_timestamp = args[:creation_timestamp] if args.key?(:creation_timestamp)
36760
+ @id = args[:id] if args.key?(:id)
36761
+ @in_use_count = args[:in_use_count] if args.key?(:in_use_count)
36762
+ @kind = args[:kind] if args.key?(:kind)
36763
+ @name = args[:name] if args.key?(:name)
36764
+ @physical_topology = args[:physical_topology] if args.key?(:physical_topology)
36765
+ @reservation_sub_block_maintenance = args[:reservation_sub_block_maintenance] if args.key?(:reservation_sub_block_maintenance)
36766
+ @self_link = args[:self_link] if args.key?(:self_link)
36767
+ @self_link_with_id = args[:self_link_with_id] if args.key?(:self_link_with_id)
36768
+ @status = args[:status] if args.key?(:status)
36769
+ @zone = args[:zone] if args.key?(:zone)
36770
+ end
36771
+ end
36772
+
36773
+ #
36774
+ class ReservationSubBlockPhysicalTopology
36775
+ include Google::Apis::Core::Hashable
36776
+
36777
+ # The hash of the capacity block within the cluster.
36778
+ # Corresponds to the JSON property `block`
36779
+ # @return [String]
36780
+ attr_accessor :block
36781
+
36782
+ # The cluster name of the reservation subBlock.
36783
+ # Corresponds to the JSON property `cluster`
36784
+ # @return [String]
36785
+ attr_accessor :cluster
36786
+
36787
+ # The hash of the capacity sub-block within the capacity block.
36788
+ # Corresponds to the JSON property `subBlock`
36789
+ # @return [String]
36790
+ attr_accessor :sub_block
36791
+
36792
+ def initialize(**args)
36793
+ update!(**args)
36794
+ end
36795
+
36796
+ # Update properties of this object
36797
+ def update!(**args)
36798
+ @block = args[:block] if args.key?(:block)
36799
+ @cluster = args[:cluster] if args.key?(:cluster)
36800
+ @sub_block = args[:sub_block] if args.key?(:sub_block)
36801
+ end
36802
+ end
36803
+
36804
+ #
36805
+ class ReservationSubBlocksGetResponse
36806
+ include Google::Apis::Core::Hashable
36807
+
36808
+ # Represents a reservation subBlock resource.
36809
+ # Corresponds to the JSON property `resource`
36810
+ # @return [Google::Apis::ComputeV1::ReservationSubBlock]
36811
+ attr_accessor :resource
36812
+
36813
+ def initialize(**args)
36814
+ update!(**args)
36815
+ end
36816
+
36817
+ # Update properties of this object
36818
+ def update!(**args)
36819
+ @resource = args[:resource] if args.key?(:resource)
36820
+ end
36821
+ end
36822
+
36823
+ # A list of reservation subBlocks under a single reservation.
36824
+ class ReservationSubBlocksListResponse
36825
+ include Google::Apis::Core::Hashable
36826
+
36827
+ # Unique identifier for the resource; defined by the server.
36828
+ # Corresponds to the JSON property `id`
36829
+ # @return [String]
36830
+ attr_accessor :id
36831
+
36832
+ # A list of reservation subBlock resources.
36833
+ # Corresponds to the JSON property `items`
36834
+ # @return [Array<Google::Apis::ComputeV1::ReservationSubBlock>]
36835
+ attr_accessor :items
36836
+
36837
+ # Type of the resource. Always compute#reservationSubBlock for a list of
36838
+ # reservation subBlocks.
36839
+ # Corresponds to the JSON property `kind`
36840
+ # @return [String]
36841
+ attr_accessor :kind
36842
+
36843
+ # This token allows you to get the next page of results for list requests. If
36844
+ # the number of results is larger than maxResults, use the nextPageToken as a
36845
+ # value for the query parameter pageToken in the next list request. Subsequent
36846
+ # list requests will have their own nextPageToken to continue paging through the
36847
+ # results.
36848
+ # Corresponds to the JSON property `nextPageToken`
36849
+ # @return [String]
36850
+ attr_accessor :next_page_token
36851
+
36852
+ # Server-defined URL for this resource.
36853
+ # Corresponds to the JSON property `selfLink`
36854
+ # @return [String]
36855
+ attr_accessor :self_link
36856
+
36857
+ # Informational warning message.
36858
+ # Corresponds to the JSON property `warning`
36859
+ # @return [Google::Apis::ComputeV1::ReservationSubBlocksListResponse::Warning]
36860
+ attr_accessor :warning
36861
+
36862
+ def initialize(**args)
36863
+ update!(**args)
36864
+ end
36865
+
36866
+ # Update properties of this object
36867
+ def update!(**args)
36868
+ @id = args[:id] if args.key?(:id)
36869
+ @items = args[:items] if args.key?(:items)
36870
+ @kind = args[:kind] if args.key?(:kind)
36871
+ @next_page_token = args[:next_page_token] if args.key?(:next_page_token)
36872
+ @self_link = args[:self_link] if args.key?(:self_link)
36873
+ @warning = args[:warning] if args.key?(:warning)
36874
+ end
36875
+
36876
+ # Informational warning message.
36877
+ class Warning
36878
+ include Google::Apis::Core::Hashable
36879
+
36880
+ # [Output Only] A warning code, if applicable. For example, Compute Engine
36881
+ # returns NO_RESULTS_ON_PAGE if there are no results in the response.
36882
+ # Corresponds to the JSON property `code`
36883
+ # @return [String]
36884
+ attr_accessor :code
36885
+
36886
+ # [Output Only] Metadata about this warning in key: value format. For example: "
36887
+ # data": [ ` "key": "scope", "value": "zones/us-east1-d" `
36888
+ # Corresponds to the JSON property `data`
36889
+ # @return [Array<Google::Apis::ComputeV1::ReservationSubBlocksListResponse::Warning::Datum>]
36890
+ attr_accessor :data
36891
+
36892
+ # [Output Only] A human-readable description of the warning code.
36893
+ # Corresponds to the JSON property `message`
36894
+ # @return [String]
36895
+ attr_accessor :message
36896
+
36897
+ def initialize(**args)
36898
+ update!(**args)
36899
+ end
36900
+
36901
+ # Update properties of this object
36902
+ def update!(**args)
36903
+ @code = args[:code] if args.key?(:code)
36904
+ @data = args[:data] if args.key?(:data)
36905
+ @message = args[:message] if args.key?(:message)
36906
+ end
36907
+
36908
+ #
36909
+ class Datum
36910
+ include Google::Apis::Core::Hashable
36911
+
36912
+ # [Output Only] A key that provides more detail on the warning being returned.
36913
+ # For example, for warnings where there are no results in a list request for a
36914
+ # particular zone, this key might be scope and the key value might be the zone
36915
+ # name. Other examples might be a key indicating a deprecated resource and a
36916
+ # suggested replacement, or a warning about invalid network settings (for
36917
+ # example, if an instance attempts to perform IP forwarding but is not enabled
36918
+ # for IP forwarding).
36919
+ # Corresponds to the JSON property `key`
36920
+ # @return [String]
36921
+ attr_accessor :key
36922
+
36923
+ # [Output Only] A warning data value corresponding to the key.
36924
+ # Corresponds to the JSON property `value`
36925
+ # @return [String]
36926
+ attr_accessor :value
36927
+
36928
+ def initialize(**args)
36929
+ update!(**args)
36930
+ end
36931
+
36932
+ # Update properties of this object
36933
+ def update!(**args)
36934
+ @key = args[:key] if args.key?(:key)
36935
+ @value = args[:value] if args.key?(:value)
36936
+ end
36937
+ end
36938
+ end
36939
+ end
36940
+
36440
36941
  #
36441
36942
  class ReservationsBlocksPerformMaintenanceRequest
36442
36943
  include Google::Apis::Core::Hashable
@@ -36822,6 +37323,11 @@ module Google
36822
37323
  # @return [String]
36823
37324
  attr_accessor :status
36824
37325
 
37326
+ # Represents the workload policy.
37327
+ # Corresponds to the JSON property `workloadPolicy`
37328
+ # @return [Google::Apis::ComputeV1::ResourcePolicyWorkloadPolicy]
37329
+ attr_accessor :workload_policy
37330
+
36825
37331
  def initialize(**args)
36826
37332
  update!(**args)
36827
37333
  end
@@ -36841,6 +37347,7 @@ module Google
36841
37347
  @self_link = args[:self_link] if args.key?(:self_link)
36842
37348
  @snapshot_schedule_policy = args[:snapshot_schedule_policy] if args.key?(:snapshot_schedule_policy)
36843
37349
  @status = args[:status] if args.key?(:status)
37350
+ @workload_policy = args[:workload_policy] if args.key?(:workload_policy)
36844
37351
  end
36845
37352
  end
36846
37353
 
@@ -37038,6 +37545,11 @@ module Google
37038
37545
  # @return [String]
37039
37546
  attr_accessor :collocation
37040
37547
 
37548
+ # Specifies the shape of the GPU slice, in slice based GPU families eg. A4X.
37549
+ # Corresponds to the JSON property `gpuTopology`
37550
+ # @return [String]
37551
+ attr_accessor :gpu_topology
37552
+
37041
37553
  # Number of VMs in this placement group. Google does not recommend that you use
37042
37554
  # this field unless you use a compact policy and you want your policy to work
37043
37555
  # only if it contains this exact number of VMs.
@@ -37053,6 +37565,7 @@ module Google
37053
37565
  def update!(**args)
37054
37566
  @availability_domain_count = args[:availability_domain_count] if args.key?(:availability_domain_count)
37055
37567
  @collocation = args[:collocation] if args.key?(:collocation)
37568
+ @gpu_topology = args[:gpu_topology] if args.key?(:gpu_topology)
37056
37569
  @vm_count = args[:vm_count] if args.key?(:vm_count)
37057
37570
  end
37058
37571
  end
@@ -37515,6 +38028,37 @@ module Google
37515
38028
  end
37516
38029
  end
37517
38030
 
38031
+ # Represents the workload policy.
38032
+ class ResourcePolicyWorkloadPolicy
38033
+ include Google::Apis::Core::Hashable
38034
+
38035
+ #
38036
+ # Corresponds to the JSON property `acceleratorTopology`
38037
+ # @return [String]
38038
+ attr_accessor :accelerator_topology
38039
+
38040
+ #
38041
+ # Corresponds to the JSON property `maxTopologyDistance`
38042
+ # @return [String]
38043
+ attr_accessor :max_topology_distance
38044
+
38045
+ #
38046
+ # Corresponds to the JSON property `type`
38047
+ # @return [String]
38048
+ attr_accessor :type
38049
+
38050
+ def initialize(**args)
38051
+ update!(**args)
38052
+ end
38053
+
38054
+ # Update properties of this object
38055
+ def update!(**args)
38056
+ @accelerator_topology = args[:accelerator_topology] if args.key?(:accelerator_topology)
38057
+ @max_topology_distance = args[:max_topology_distance] if args.key?(:max_topology_distance)
38058
+ @type = args[:type] if args.key?(:type)
38059
+ end
38060
+ end
38061
+
37518
38062
  # Contains output only fields. Use this sub-message for actual values set on
37519
38063
  # Instance attributes as compared to the value requested by the user (intent) in
37520
38064
  # their instance CRUD calls.
@@ -46398,6 +46942,11 @@ module Google
46398
46942
  # @return [String]
46399
46943
  attr_accessor :network
46400
46944
 
46945
+ # Additional subnetwork parameters.
46946
+ # Corresponds to the JSON property `params`
46947
+ # @return [Google::Apis::ComputeV1::SubnetworkParams]
46948
+ attr_accessor :params
46949
+
46401
46950
  # Whether the VMs in this subnet can access Google services without assigned
46402
46951
  # external IP addresses. This field can be both set at resource creation time
46403
46952
  # and updated using setPrivateIpGoogleAccess.
@@ -46504,6 +47053,7 @@ module Google
46504
47053
  @log_config = args[:log_config] if args.key?(:log_config)
46505
47054
  @name = args[:name] if args.key?(:name)
46506
47055
  @network = args[:network] if args.key?(:network)
47056
+ @params = args[:params] if args.key?(:params)
46507
47057
  @private_ip_google_access = args[:private_ip_google_access] if args.key?(:private_ip_google_access)
46508
47058
  @private_ipv6_google_access = args[:private_ipv6_google_access] if args.key?(:private_ipv6_google_access)
46509
47059
  @purpose = args[:purpose] if args.key?(:purpose)
@@ -46827,6 +47377,32 @@ module Google
46827
47377
  end
46828
47378
  end
46829
47379
 
47380
+ # Additional subnetwork parameters.
47381
+ class SubnetworkParams
47382
+ include Google::Apis::Core::Hashable
47383
+
47384
+ # Tag keys/values directly bound to this resource. Tag keys and values have the
47385
+ # same definition as resource manager tags. The field is allowed for INSERT only.
47386
+ # The keys/values to set on the resource should be specified in either ID ` : `
47387
+ # or Namespaced format ` : `. For example the following are valid inputs: * `"
47388
+ # tagKeys/333" : "tagValues/444", "tagKeys/123" : "tagValues/456"` * `"123/
47389
+ # environment" : "production", "345/abc" : "xyz"` Note: * Invalid combinations
47390
+ # of ID & namespaced format is not supported. For instance: `"123/environment" :
47391
+ # "tagValues/444"` is invalid.
47392
+ # Corresponds to the JSON property `resourceManagerTags`
47393
+ # @return [Hash<String,String>]
47394
+ attr_accessor :resource_manager_tags
47395
+
47396
+ def initialize(**args)
47397
+ update!(**args)
47398
+ end
47399
+
47400
+ # Update properties of this object
47401
+ def update!(**args)
47402
+ @resource_manager_tags = args[:resource_manager_tags] if args.key?(:resource_manager_tags)
47403
+ end
47404
+ end
47405
+
46830
47406
  # Represents a secondary IP range of a subnetwork.
46831
47407
  class SubnetworkSecondaryRange
46832
47408
  include Google::Apis::Core::Hashable