google-apis-compute_alpha 0.109.0 → 0.111.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.
@@ -3099,7 +3099,8 @@ module Google
3099
3099
  # the [Backend services overview](https://cloud.google.com/load-balancing/docs/
3100
3100
  # backend-service#backends). You must use the *fully-qualified* URL (starting
3101
3101
  # with https://www.googleapis.com/) to specify the instance group or NEG.
3102
- # Partial URLs are not supported.
3102
+ # Partial URLs are not supported. If haPolicy is specified, backends must refer
3103
+ # to NEG resources of type GCE_VM_IP.
3103
3104
  # Corresponds to the JSON property `group`
3104
3105
  # @return [String]
3105
3106
  attr_accessor :group
@@ -3351,7 +3352,7 @@ module Google
3351
3352
  attr_accessor :client_ttl
3352
3353
 
3353
3354
  # Specifies the default TTL for cached content served by this origin for
3354
- # responses that do not have an existing valid TTL (max-age or s-max-age).
3355
+ # responses that do not have an existing valid TTL (max-age or s-maxage).
3355
3356
  # Setting a TTL of "0" means "always revalidate". The value of defaultTTL cannot
3356
3357
  # be set to a value greater than that of maxTTL, but can be equal. When the
3357
3358
  # cacheMode is set to FORCE_CACHE_ALL, the defaultTTL will overwrite the TTL set
@@ -3415,7 +3416,7 @@ module Google
3415
3416
  # that do not specify a max-stale directive. Stale responses that exceed the TTL
3416
3417
  # configured here will not be served. The default limit (max-stale) is 86400s (1
3417
3418
  # day), which will allow stale content to be served up to this limit beyond the
3418
- # max-age (or s-max-age) of a cached response. The maximum allowed value is
3419
+ # max-age (or s-maxage) of a cached response. The maximum allowed value is
3419
3420
  # 604800 (1 week). Set this to zero (0) to disable serve-while-stale.
3420
3421
  # Corresponds to the JSON property `serveWhileStale`
3421
3422
  # @return [Fixnum]
@@ -3993,7 +3994,23 @@ module Google
3993
3994
  # @return [String]
3994
3995
  attr_accessor :fingerprint
3995
3996
 
3996
- # Configuring haPolicy is not supported.
3997
+ # Configures self-managed High Availability (HA) for External and Internal
3998
+ # Protocol Forwarding. The backends of this regional backend service must only
3999
+ # specify zonal network endpoint groups (NEGs) of type GCE_VM_IP. When haPolicy
4000
+ # is set for an Internal Passthrough Network Load Balancer, the regional backend
4001
+ # service must set the network field. All zonal NEGs must belong to the same
4002
+ # network. However, individual NEGs can belong to different subnetworks of that
4003
+ # network. When haPolicy is specified, the set of attached network endpoints
4004
+ # across all backends comprise an High Availability domain from which one
4005
+ # endpoint is selected as the active endpoint (the leader) that receives all
4006
+ # traffic. haPolicy can be added only at backend service creation time. Once set
4007
+ # up, it cannot be deleted. Note that haPolicy is not for load balancing, and
4008
+ # therefore cannot be specified with sessionAffinity, connectionTrackingPolicy,
4009
+ # and failoverPolicy. haPolicy requires customers to be responsible for tracking
4010
+ # backend endpoint health and electing a leader among the healthy endpoints.
4011
+ # Therefore, haPolicy cannot be specified with healthChecks. haPolicy can only
4012
+ # be specified for External Passthrough Network Load Balancers and Internal
4013
+ # Passthrough Network Load Balancers.
3997
4014
  # Corresponds to the JSON property `haPolicy`
3998
4015
  # @return [Google::Apis::ComputeAlpha::BackendServiceHaPolicy]
3999
4016
  attr_accessor :ha_policy
@@ -4003,8 +4020,9 @@ module Google
4003
4020
  # Not all backend services support legacy health checks. See Load balancer guide.
4004
4021
  # Currently, at most one health check can be specified for each backend service.
4005
4022
  # Backend services with instance group or zonal NEG backends must have a health
4006
- # check. Backend services with internet or serverless NEG backends must not have
4007
- # a health check.
4023
+ # check unless haPolicy is specified. Backend services with internet or
4024
+ # serverless NEG backends must not have a health check. healthChecks[] cannot be
4025
+ # specified with haPolicy.
4008
4026
  # Corresponds to the JSON property `healthChecks`
4009
4027
  # @return [Array<String>]
4010
4028
  attr_accessor :health_checks
@@ -4092,6 +4110,7 @@ module Google
4092
4110
  # default value for localityLbPolicy is MAGLEV. Only ROUND_ROBIN and RING_HASH
4093
4111
  # are supported when the backend service is referenced by a URL map that is
4094
4112
  # bound to target gRPC proxy that has validateForProxyless field set to true.
4113
+ # localityLbPolicy cannot be specified with haPolicy.
4095
4114
  # Corresponds to the JSON property `localityLbPolicy`
4096
4115
  # @return [String]
4097
4116
  attr_accessor :locality_lb_policy
@@ -4126,14 +4145,17 @@ module Google
4126
4145
  # @return [String]
4127
4146
  attr_accessor :name
4128
4147
 
4129
- # The URL of the network to which this backend service belongs. This field can
4130
- # only be specified when the load balancing scheme is set to INTERNAL.
4148
+ # The URL of the network to which this backend service belongs. This field must
4149
+ # be set for Internal Passthrough Network Load Balancers when the haPolicy is
4150
+ # enabled, and for External Passthrough Network Load Balancers when the haPolicy
4151
+ # fastIpMove is enabled. This field can only be specified when the load
4152
+ # balancing scheme is set to INTERNAL.
4131
4153
  # Corresponds to the JSON property `network`
4132
4154
  # @return [String]
4133
4155
  attr_accessor :network
4134
4156
 
4135
4157
  # Configures traffic steering properties of internal passthrough Network Load
4136
- # Balancers.
4158
+ # Balancers. networkPassThroughLbTrafficPolicy cannot be specified with haPolicy.
4137
4159
  # Corresponds to the JSON property `networkPassThroughLbTrafficPolicy`
4138
4160
  # @return [Google::Apis::ComputeAlpha::BackendServiceNetworkPassThroughLbTrafficPolicy]
4139
4161
  attr_accessor :network_pass_through_lb_traffic_policy
@@ -4218,7 +4240,8 @@ module Google
4218
4240
  # HEADER_FIELD are supported when the backend service is referenced by a URL map
4219
4241
  # that is bound to target gRPC proxy that has validateForProxyless field set to
4220
4242
  # true. For more details, see: [Session Affinity](https://cloud.google.com/load-
4221
- # balancing/docs/backend-service#session_affinity).
4243
+ # balancing/docs/backend-service#session_affinity). sessionAffinity cannot be
4244
+ # specified with haPolicy.
4222
4245
  # Corresponds to the JSON property `sessionAffinity`
4223
4246
  # @return [String]
4224
4247
  attr_accessor :session_affinity
@@ -4502,7 +4525,7 @@ module Google
4502
4525
  attr_accessor :client_ttl
4503
4526
 
4504
4527
  # Specifies the default TTL for cached content served by this origin for
4505
- # responses that do not have an existing valid TTL (max-age or s-max-age).
4528
+ # responses that do not have an existing valid TTL (max-age or s-maxage).
4506
4529
  # Setting a TTL of "0" means "always revalidate". The value of defaultTTL cannot
4507
4530
  # be set to a value greater than that of maxTTL, but can be equal. When the
4508
4531
  # cacheMode is set to FORCE_CACHE_ALL, the defaultTTL will overwrite the TTL set
@@ -4566,7 +4589,7 @@ module Google
4566
4589
  # that do not specify a max-stale directive. Stale responses that exceed the TTL
4567
4590
  # configured here will not be served. The default limit (max-stale) is 86400s (1
4568
4591
  # day), which will allow stale content to be served up to this limit beyond the
4569
- # max-age (or s-max-age) of a cached response. The maximum allowed value is
4592
+ # max-age (or s-maxage) of a cached response. The maximum allowed value is
4570
4593
  # 604800 (1 week). Set this to zero (0) to disable serve-while-stale.
4571
4594
  # Corresponds to the JSON property `serveWhileStale`
4572
4595
  # @return [Fixnum]
@@ -4896,12 +4919,64 @@ module Google
4896
4919
  class BackendServiceHaPolicy
4897
4920
  include Google::Apis::Core::Hashable
4898
4921
 
4899
- # Enabling fastIPMove is not supported.
4922
+ # Specifies whether fast IP move is enabled, and if so, the mechanism to achieve
4923
+ # it. Supported values are: - DISABLED: Fast IP Move is disabled. You can only
4924
+ # use the haPolicy.leader API to update the leader. - >GARP_RA: Provides a
4925
+ # method to very quickly define a new network endpoint as the leader. This
4926
+ # method is faster than updating the leader using the haPolicy.leader API. Fast
4927
+ # IP move works as follows: The VM hosting the network endpoint that should
4928
+ # become the new leader sends either a Gratuitous ARP (GARP) packet (IPv4) or an
4929
+ # ICMPv6 Router Advertisement(RA) packet (IPv6). Google Cloud immediately but
4930
+ # temporarily associates the forwarding rule IP address with that VM, and both
4931
+ # new and in-flight packets are quickly delivered to that VM. Note the important
4932
+ # properties of the Fast IP Move functionality: - The GARP/RA-initiated re-
4933
+ # routing stays active for approximately 20 minutes. After triggering fast
4934
+ # failover, you must also appropriately set the haPolicy.leader. - The new
4935
+ # leader instance should continue to send GARP/RA packets periodically every 10
4936
+ # seconds until at least 10 minutes after updating the haPolicy.leader (but stop
4937
+ # immediately if it is no longer the leader). - After triggering a fast failover,
4938
+ # we recommend that you wait at least 3 seconds before sending another GARP/RA
4939
+ # packet from a different VM instance to avoid race conditions. - Don't send
4940
+ # GARP/RA packets from different VM instances at the same time. If multiple
4941
+ # instances continue to send GARP/RA packets, traffic might be routed to
4942
+ # different destinations in an alternating order. This condition ceases when a
4943
+ # single instance issues a GARP/RA packet. - The GARP/RA request always takes
4944
+ # priority over the leader API. Using the haPolicy.leader API to change the
4945
+ # leader to a different instance will have no effect until the GARP/RA request
4946
+ # becomes inactive. - The GARP/RA packets should follow the GARP/RA Packet
4947
+ # Specifications.. - When multiple forwarding rules refer to a regional backend
4948
+ # service, you need only send a GARP or RA packet for a single forwarding rule
4949
+ # virtual IP. The virtual IPs for all forwarding rules targeting the same
4950
+ # backend service will also be moved to the sender of the GARP or RA packet. The
4951
+ # following are the Fast IP Move limitations (that is, when fastIPMove is not
4952
+ # DISABLED): - Multiple forwarding rules cannot use the same IP address if one
4953
+ # of them refers to a regional backend service with fastIPMove. - The regional
4954
+ # backend service must set the network field, and all NEGs must belong to that
4955
+ # network. However, individual NEGs can belong to different subnetworks of that
4956
+ # network. - The maximum number of network endpoints across all backends of a
4957
+ # backend service with fastIPMove is 64. - The maximum number of backend
4958
+ # services with fastIPMove that can have the same network endpoint attached to
4959
+ # one of its backends is 64. - The maximum number of backend services with
4960
+ # fastIPMove in a VPC in a region is 64. - The network endpoints that are
4961
+ # attached to a backend of a backend service with fastIPMove cannot resolve to
4962
+ # Gen3+ machines for IPv6. - Traffic directed to the leader by a static route
4963
+ # next hop will not be redirected to a new leader by fast failover. Such traffic
4964
+ # will only be redirected once an haPolicy.leader update has taken effect. Only
4965
+ # traffic to the forwarding rule's virtual IP will be redirected to a new leader
4966
+ # by fast failover. haPolicy.fastIPMove can be set only at backend service
4967
+ # creation time. Once set, it cannot be updated. By default, fastIpMove is set
4968
+ # to DISABLED.
4900
4969
  # Corresponds to the JSON property `fastIPMove`
4901
4970
  # @return [String]
4902
4971
  attr_accessor :fast_ip_move
4903
4972
 
4904
- # Setting a leader is not supported.
4973
+ # Selects one of the network endpoints attached to the backend NEGs of this
4974
+ # service as the active endpoint (the leader) that receives all traffic. When
4975
+ # the leader changes, there is no connection draining to persist existing
4976
+ # connections on the old leader. You are responsible for selecting a suitable
4977
+ # endpoint as the leader. For example, preferring a healthy endpoint over
4978
+ # unhealthy ones. Note that this service does not track backend endpoint health,
4979
+ # and selects the configured leader unconditionally.
4905
4980
  # Corresponds to the JSON property `leader`
4906
4981
  # @return [Google::Apis::ComputeAlpha::BackendServiceHaPolicyLeader]
4907
4982
  attr_accessor :leader
@@ -4921,12 +4996,19 @@ module Google
4921
4996
  class BackendServiceHaPolicyLeader
4922
4997
  include Google::Apis::Core::Hashable
4923
4998
 
4924
- # Setting backendGroup is not supported.
4999
+ # A fully-qualified URL (starting with https://www.googleapis.com/) of the zonal
5000
+ # Network Endpoint Group (NEG) with `GCE_VM_IP` endpoints that the leader is
5001
+ # attached to. The leader's backendGroup must already be specified as a backend
5002
+ # of this backend service. Removing a backend that is designated as the leader's
5003
+ # backendGroup is not permitted.
4925
5004
  # Corresponds to the JSON property `backendGroup`
4926
5005
  # @return [String]
4927
5006
  attr_accessor :backend_group
4928
5007
 
4929
- # Setting a network endpoint as leader is not supported.
5008
+ # The network endpoint within the leader.backendGroup that is designated as the
5009
+ # leader. This network endpoint cannot be detached from the NEG specified in the
5010
+ # haPolicy.leader.backendGroup until the leader is updated with another network
5011
+ # endpoint, or the leader is removed from the haPolicy.
4930
5012
  # Corresponds to the JSON property `networkEndpoint`
4931
5013
  # @return [Google::Apis::ComputeAlpha::BackendServiceHaPolicyLeaderNetworkEndpoint]
4932
5014
  attr_accessor :network_endpoint
@@ -4946,7 +5028,11 @@ module Google
4946
5028
  class BackendServiceHaPolicyLeaderNetworkEndpoint
4947
5029
  include Google::Apis::Core::Hashable
4948
5030
 
4949
- # Specifying the instance name of a leader is not supported.
5031
+ # The name of the VM instance of the leader network endpoint. The instance must
5032
+ # already be attached to the NEG specified in the haPolicy.leader.backendGroup.
5033
+ # The name must be 1-63 characters long, and comply with RFC1035. Authorization
5034
+ # requires the following IAM permission on the specified resource instance:
5035
+ # compute.instances.use
4950
5036
  # Corresponds to the JSON property `instance`
4951
5037
  # @return [String]
4952
5038
  attr_accessor :instance
@@ -6214,6 +6300,16 @@ module Google
6214
6300
  class BulkInsertDiskResource
6215
6301
  include Google::Apis::Core::Hashable
6216
6302
 
6303
+ # The parameters for the instant snapshot group.
6304
+ # Corresponds to the JSON property `instantSnapshotGroupParameters`
6305
+ # @return [Google::Apis::ComputeAlpha::InstantSnapshotGroupParameters]
6306
+ attr_accessor :instant_snapshot_group_parameters
6307
+
6308
+ # The parameters for the snapshot group.
6309
+ # Corresponds to the JSON property `snapshotGroupParameters`
6310
+ # @return [Google::Apis::ComputeAlpha::SnapshotGroupParameters]
6311
+ attr_accessor :snapshot_group_parameters
6312
+
6217
6313
  # The URL of the DiskConsistencyGroupPolicy for the group of disks to clone.
6218
6314
  # This may be a full or partial URL, such as: - https://www.googleapis.com/
6219
6315
  # compute/v1/projects/project/regions/region /resourcePolicies/resourcePolicy -
@@ -6229,6 +6325,8 @@ module Google
6229
6325
 
6230
6326
  # Update properties of this object
6231
6327
  def update!(**args)
6328
+ @instant_snapshot_group_parameters = args[:instant_snapshot_group_parameters] if args.key?(:instant_snapshot_group_parameters)
6329
+ @snapshot_group_parameters = args[:snapshot_group_parameters] if args.key?(:snapshot_group_parameters)
6232
6330
  @source_consistency_group_policy = args[:source_consistency_group_policy] if args.key?(:source_consistency_group_policy)
6233
6331
  end
6234
6332
  end
@@ -6461,8 +6559,8 @@ module Google
6461
6559
  class CacheInvalidationRule
6462
6560
  include Google::Apis::Core::Hashable
6463
6561
 
6464
- # [Preview] A list of cache tags used to identify cached objects. - Cache tags
6465
- # are specified when the response is first cached, by setting the `Cache-Tag`
6562
+ # A list of cache tags used to identify cached objects. - Cache tags are
6563
+ # specified when the response is first cached, by setting the `Cache-Tag`
6466
6564
  # response header at the origin. - Multiple cache tags in the same invalidation
6467
6565
  # request are treated as Boolean `OR` - for example, `tag1 OR tag2 OR tag3`. -
6468
6566
  # If other fields are also specified, these are treated as Boolean `AND` with
@@ -8477,6 +8575,47 @@ module Google
8477
8575
  end
8478
8576
  end
8479
8577
 
8578
+ # Represents a whole or partial calendar date, such as a birthday. The time of
8579
+ # day and time zone are either specified elsewhere or are insignificant. The
8580
+ # date is relative to the Gregorian Calendar. This can represent one of the
8581
+ # following: * A full date, with non-zero year, month, and day values. * A month
8582
+ # and day, with a zero year (for example, an anniversary). * A year on its own,
8583
+ # with a zero month and a zero day. * A year and month, with a zero day (for
8584
+ # example, a credit card expiration date). Related types: * google.type.
8585
+ # TimeOfDay * google.type.DateTime * google.protobuf.Timestamp
8586
+ class Date
8587
+ include Google::Apis::Core::Hashable
8588
+
8589
+ # Day of a month. Must be from 1 to 31 and valid for the year and month, or 0 to
8590
+ # specify a year by itself or a year and month where the day isn't significant.
8591
+ # Corresponds to the JSON property `day`
8592
+ # @return [Fixnum]
8593
+ attr_accessor :day
8594
+
8595
+ # Month of a year. Must be from 1 to 12, or 0 to specify a year without a month
8596
+ # and day.
8597
+ # Corresponds to the JSON property `month`
8598
+ # @return [Fixnum]
8599
+ attr_accessor :month
8600
+
8601
+ # Year of the date. Must be from 1 to 9999, or 0 to specify a date without a
8602
+ # year.
8603
+ # Corresponds to the JSON property `year`
8604
+ # @return [Fixnum]
8605
+ attr_accessor :year
8606
+
8607
+ def initialize(**args)
8608
+ update!(**args)
8609
+ end
8610
+
8611
+ # Update properties of this object
8612
+ def update!(**args)
8613
+ @day = args[:day] if args.key?(:day)
8614
+ @month = args[:month] if args.key?(:month)
8615
+ @year = args[:year] if args.key?(:year)
8616
+ end
8617
+ end
8618
+
8480
8619
  # Deprecation status for a public resource.
8481
8620
  class DeprecationStatus
8482
8621
  include Google::Apis::Core::Hashable
@@ -11038,6 +11177,11 @@ module Google
11038
11177
  # @return [String]
11039
11178
  attr_accessor :network
11040
11179
 
11180
+ # Additional firewall parameters.
11181
+ # Corresponds to the JSON property `params`
11182
+ # @return [Google::Apis::ComputeAlpha::FirewallParams]
11183
+ attr_accessor :params
11184
+
11041
11185
  # Priority for this rule. This is an integer between `0` and `65535`, both
11042
11186
  # inclusive. The default value is `1000`. Relative priorities determine which
11043
11187
  # rule takes effect if multiple rules apply. Lower values indicate higher
@@ -11136,6 +11280,7 @@ module Google
11136
11280
  @log_config = args[:log_config] if args.key?(:log_config)
11137
11281
  @name = args[:name] if args.key?(:name)
11138
11282
  @network = args[:network] if args.key?(:network)
11283
+ @params = args[:params] if args.key?(:params)
11139
11284
  @priority = args[:priority] if args.key?(:priority)
11140
11285
  @self_link = args[:self_link] if args.key?(:self_link)
11141
11286
  @self_link_with_id = args[:self_link_with_id] if args.key?(:self_link_with_id)
@@ -11355,6 +11500,32 @@ module Google
11355
11500
  end
11356
11501
  end
11357
11502
 
11503
+ # Additional firewall parameters.
11504
+ class FirewallParams
11505
+ include Google::Apis::Core::Hashable
11506
+
11507
+ # Tag keys/values directly bound to this resource. Tag keys and values have the
11508
+ # same definition as resource manager tags. The field is allowed for INSERT only.
11509
+ # The keys/values to set on the resource should be specified in either ID ` : `
11510
+ # or Namespaced format ` : `. For example the following are valid inputs: * `"
11511
+ # tagKeys/333" : "tagValues/444", "tagKeys/123" : "tagValues/456"` * `"123/
11512
+ # environment" : "production", "345/abc" : "xyz"` Note: * Invalid combinations
11513
+ # of ID & namespaced format is not supported. For instance: `"123/environment" :
11514
+ # "tagValues/444"` is invalid.
11515
+ # Corresponds to the JSON property `resourceManagerTags`
11516
+ # @return [Hash<String,String>]
11517
+ attr_accessor :resource_manager_tags
11518
+
11519
+ def initialize(**args)
11520
+ update!(**args)
11521
+ end
11522
+
11523
+ # Update properties of this object
11524
+ def update!(**args)
11525
+ @resource_manager_tags = args[:resource_manager_tags] if args.key?(:resource_manager_tags)
11526
+ end
11527
+ end
11528
+
11358
11529
  #
11359
11530
  class FirewallPoliciesListAssociationsResponse
11360
11531
  include Google::Apis::Core::Hashable
@@ -11547,6 +11718,12 @@ module Google
11547
11718
  # @return [String]
11548
11719
  attr_accessor :parent
11549
11720
 
11721
+ # The type of the firewall policy. This field can be either VPC_POLICY or
11722
+ # RDMA_ROCE_POLICY. Note: if not specified then VPC_POLICY will be used.
11723
+ # Corresponds to the JSON property `policyType`
11724
+ # @return [String]
11725
+ attr_accessor :policy_type
11726
+
11550
11727
  # [Output Only] URL of the region where the regional firewall policy resides.
11551
11728
  # This field is not applicable to global firewall policies. You must specify
11552
11729
  # this field as part of the HTTP request URL. It is not settable as a field in
@@ -11619,6 +11796,7 @@ module Google
11619
11796
  @name = args[:name] if args.key?(:name)
11620
11797
  @packet_mirroring_rules = args[:packet_mirroring_rules] if args.key?(:packet_mirroring_rules)
11621
11798
  @parent = args[:parent] if args.key?(:parent)
11799
+ @policy_type = args[:policy_type] if args.key?(:policy_type)
11622
11800
  @region = args[:region] if args.key?(:region)
11623
11801
  @rule_tuple_count = args[:rule_tuple_count] if args.key?(:rule_tuple_count)
11624
11802
  @rules = args[:rules] if args.key?(:rules)
@@ -11875,6 +12053,17 @@ module Google
11875
12053
  # @return [String]
11876
12054
  attr_accessor :security_profile_group
11877
12055
 
12056
+ # A list of forwarding rules to which this rule applies. This field allows you
12057
+ # to control which load balancers get this rule. For example, the following are
12058
+ # valid values: - https://www.googleapis.com/compute/v1/projects/project /global/
12059
+ # forwardingRules/forwardingRule - https://www.googleapis.com/compute/v1/
12060
+ # projects/project/regions/region /forwardingRules/forwardingRule - projects/
12061
+ # project/global/ forwardingRules/forwardingRule - projects/project/regions/
12062
+ # region/forwardingRules/ forwardingRule
12063
+ # Corresponds to the JSON property `targetForwardingRules`
12064
+ # @return [Array<String>]
12065
+ attr_accessor :target_forwarding_rules
12066
+
11878
12067
  # A list of network resource URLs to which this rule applies. This field allows
11879
12068
  # you to control which network's VMs get this rule. If this field is left blank,
11880
12069
  # all VMs within the organization will receive the rule.
@@ -11900,6 +12089,11 @@ module Google
11900
12089
  # @return [Array<String>]
11901
12090
  attr_accessor :target_service_accounts
11902
12091
 
12092
+ # Target types of the firewall policy rule. Default value is INSTANCES.
12093
+ # Corresponds to the JSON property `targetType`
12094
+ # @return [String]
12095
+ attr_accessor :target_type
12096
+
11903
12097
  # Boolean flag indicating if the traffic should be TLS decrypted. Can be set
11904
12098
  # only if action = 'apply_security_profile_group' and cannot be set for other
11905
12099
  # actions.
@@ -11925,9 +12119,11 @@ module Google
11925
12119
  @rule_name = args[:rule_name] if args.key?(:rule_name)
11926
12120
  @rule_tuple_count = args[:rule_tuple_count] if args.key?(:rule_tuple_count)
11927
12121
  @security_profile_group = args[:security_profile_group] if args.key?(:security_profile_group)
12122
+ @target_forwarding_rules = args[:target_forwarding_rules] if args.key?(:target_forwarding_rules)
11928
12123
  @target_resources = args[:target_resources] if args.key?(:target_resources)
11929
12124
  @target_secure_tags = args[:target_secure_tags] if args.key?(:target_secure_tags)
11930
12125
  @target_service_accounts = args[:target_service_accounts] if args.key?(:target_service_accounts)
12126
+ @target_type = args[:target_type] if args.key?(:target_type)
11931
12127
  @tls_inspect = args[:tls_inspect] if args.key?(:tls_inspect)
11932
12128
  end
11933
12129
  end
@@ -13096,6 +13292,12 @@ module Google
13096
13292
  # @return [String]
13097
13293
  attr_accessor :description
13098
13294
 
13295
+ # Indicates if this group of VMs have emergent maintenance enabled.
13296
+ # Corresponds to the JSON property `enableEmergentMaintenance`
13297
+ # @return [Boolean]
13298
+ attr_accessor :enable_emergent_maintenance
13299
+ alias_method :enable_emergent_maintenance?, :enable_emergent_maintenance
13300
+
13099
13301
  # [Output Only] A unique identifier for this future reservation. The server
13100
13302
  # defines this identifier.
13101
13303
  # Corresponds to the JSON property `id`
@@ -13209,6 +13411,7 @@ module Google
13209
13411
  @creation_timestamp = args[:creation_timestamp] if args.key?(:creation_timestamp)
13210
13412
  @deployment_type = args[:deployment_type] if args.key?(:deployment_type)
13211
13413
  @description = args[:description] if args.key?(:description)
13414
+ @enable_emergent_maintenance = args[:enable_emergent_maintenance] if args.key?(:enable_emergent_maintenance)
13212
13415
  @id = args[:id] if args.key?(:id)
13213
13416
  @kind = args[:kind] if args.key?(:kind)
13214
13417
  @name = args[:name] if args.key?(:name)
@@ -14723,8 +14926,8 @@ module Google
14723
14926
  # values. Set to one or more of the following values: - VIRTIO_SCSI_MULTIQUEUE -
14724
14927
  # WINDOWS - MULTI_IP_SUBNET - UEFI_COMPATIBLE - GVNIC - SEV_CAPABLE -
14725
14928
  # SUSPEND_RESUME_COMPATIBLE - SEV_LIVE_MIGRATABLE_V2 - SEV_SNP_CAPABLE -
14726
- # TDX_CAPABLE - IDPF For more information, see Enabling guest operating system
14727
- # features.
14929
+ # TDX_CAPABLE - IDPF - SNP_SVSM_CAPABLE For more information, see Enabling guest
14930
+ # operating system features.
14728
14931
  # Corresponds to the JSON property `type`
14729
14932
  # @return [String]
14730
14933
  attr_accessor :type
@@ -20744,8 +20947,10 @@ module Google
20744
20947
  # @return [Fixnum]
20745
20948
  attr_accessor :id
20746
20949
 
20747
- # The list of specifications of per-instance configs to be created. This field
20748
- # cannot be used together with 'resize_by'.
20950
+ # The names of instances to be created by this resize request. The number of
20951
+ # names specified determines the number of instances to create. The group's
20952
+ # target size will be increased by this number. This field cannot be used
20953
+ # together with 'resize_by'.
20749
20954
  # Corresponds to the JSON property `instances`
20750
20955
  # @return [Array<Google::Apis::ComputeAlpha::PerInstanceConfig>]
20751
20956
  attr_accessor :instances
@@ -24115,7 +24320,7 @@ module Google
24115
24320
  # @return [String]
24116
24321
  attr_accessor :action_hint
24117
24322
 
24118
- # The disruption schedule for the VM. Default to IMMEDIATE.
24323
+ # The disruption schedule for the VM. Required field, only allows IMMEDIATE.
24119
24324
  # Corresponds to the JSON property `disruptionSchedule`
24120
24325
  # @return [String]
24121
24326
  attr_accessor :disruption_schedule
@@ -24890,6 +25095,30 @@ module Google
24890
25095
  end
24891
25096
  end
24892
25097
 
25098
+ #
25099
+ class InstantSnapshotGroupParameters
25100
+ include Google::Apis::Core::Hashable
25101
+
25102
+ # The source instant snapshot group used to create disks. You can provide this
25103
+ # as a partial or full URL to the resource. For example, the following are valid
25104
+ # values: - https://www.googleapis.com/compute/v1/projects/project/zones/zone /
25105
+ # instantSnapshotGroups/instantSnapshotGroup - projects/project/zones/zone/
25106
+ # instantSnapshotGroups/instantSnapshotGroup - zones/zone/instantSnapshotGroups/
25107
+ # instantSnapshotGroup
25108
+ # Corresponds to the JSON property `sourceInstantSnapshotGroup`
25109
+ # @return [String]
25110
+ attr_accessor :source_instant_snapshot_group
25111
+
25112
+ def initialize(**args)
25113
+ update!(**args)
25114
+ end
25115
+
25116
+ # Update properties of this object
25117
+ def update!(**args)
25118
+ @source_instant_snapshot_group = args[:source_instant_snapshot_group] if args.key?(:source_instant_snapshot_group)
25119
+ end
25120
+ end
25121
+
24893
25122
  #
24894
25123
  class InstantSnapshotGroupResourceStatus
24895
25124
  include Google::Apis::Core::Hashable
@@ -25321,7 +25550,8 @@ module Google
25321
25550
 
25322
25551
  # Type of link requested, which can take one of the following values: -
25323
25552
  # LINK_TYPE_ETHERNET_10G_LR: A 10G Ethernet with LR optics -
25324
- # LINK_TYPE_ETHERNET_100G_LR: A 100G Ethernet with LR optics. Note that this
25553
+ # LINK_TYPE_ETHERNET_100G_LR: A 100G Ethernet with LR optics. -
25554
+ # LINK_TYPE_ETHERNET_400G_LR4: A 400G Ethernet with LR4 optics. Note that this
25325
25555
  # field indicates the speed of each of the links in the bundle, not the speed of
25326
25556
  # the entire bundle.
25327
25557
  # Corresponds to the JSON property `linkType`
@@ -28262,7 +28492,8 @@ module Google
28262
28492
 
28263
28493
  # Type of link requested, which can take one of the following values: -
28264
28494
  # LINK_TYPE_ETHERNET_10G_LR: A 10G Ethernet with LR optics -
28265
- # LINK_TYPE_ETHERNET_100G_LR: A 100G Ethernet with LR optics. Note that this
28495
+ # LINK_TYPE_ETHERNET_100G_LR: A 100G Ethernet with LR optics. -
28496
+ # LINK_TYPE_ETHERNET_400G_LR4: A 400G Ethernet with LR4 optics. Note that this
28266
28497
  # field indicates the speed of each of the links in the bundle, not the speed of
28267
28498
  # the entire bundle.
28268
28499
  # Corresponds to the JSON property `linkType`
@@ -28738,7 +28969,7 @@ module Google
28738
28969
 
28739
28970
  # [Output only] List of link types available at this InterconnectLocation, which
28740
28971
  # can take one of the following values: - LINK_TYPE_ETHERNET_10G_LR -
28741
- # LINK_TYPE_ETHERNET_100G_LR
28972
+ # LINK_TYPE_ETHERNET_100G_LR - LINK_TYPE_ETHERNET_400G_LR4
28742
28973
  # Corresponds to the JSON property `availableLinkTypes`
28743
28974
  # @return [Array<String>]
28744
28975
  attr_accessor :available_link_types
@@ -29900,6 +30131,11 @@ module Google
29900
30131
  # @return [String]
29901
30132
  attr_accessor :self_link
29902
30133
 
30134
+ # [Output Only] Unreachable resources.
30135
+ # Corresponds to the JSON property `unreachables`
30136
+ # @return [Array<String>]
30137
+ attr_accessor :unreachables
30138
+
29903
30139
  # [Output Only] Informational warning message.
29904
30140
  # Corresponds to the JSON property `warning`
29905
30141
  # @return [Google::Apis::ComputeAlpha::IpOwnerList::Warning]
@@ -29916,6 +30152,7 @@ module Google
29916
30152
  @kind = args[:kind] if args.key?(:kind)
29917
30153
  @next_page_token = args[:next_page_token] if args.key?(:next_page_token)
29918
30154
  @self_link = args[:self_link] if args.key?(:self_link)
30155
+ @unreachables = args[:unreachables] if args.key?(:unreachables)
29919
30156
  @warning = args[:warning] if args.key?(:warning)
29920
30157
  end
29921
30158
 
@@ -30707,6 +30944,136 @@ module Google
30707
30944
  end
30708
30945
  end
30709
30946
 
30947
+ # Contains a list of SnapshotGroup resources.
30948
+ class ListSnapshotGroups
30949
+ include Google::Apis::Core::Hashable
30950
+
30951
+ #
30952
+ # Corresponds to the JSON property `etag`
30953
+ # @return [String]
30954
+ attr_accessor :etag
30955
+
30956
+ # [Output Only] Unique identifier for the resource; defined by the server.
30957
+ # Corresponds to the JSON property `id`
30958
+ # @return [String]
30959
+ attr_accessor :id
30960
+
30961
+ # A list of SnapshotGroup resources.
30962
+ # Corresponds to the JSON property `items`
30963
+ # @return [Array<Google::Apis::ComputeAlpha::SnapshotGroup>]
30964
+ attr_accessor :items
30965
+
30966
+ # Type of resource.
30967
+ # Corresponds to the JSON property `kind`
30968
+ # @return [String]
30969
+ attr_accessor :kind
30970
+
30971
+ # [Output Only] This token allows you to get the next page of results for list
30972
+ # requests. If the number of results is larger than maxResults, use the
30973
+ # nextPageToken as a value for the query parameter pageToken in the next list
30974
+ # request. Subsequent list requests will have their own nextPageToken to
30975
+ # continue paging through the results.
30976
+ # Corresponds to the JSON property `nextPageToken`
30977
+ # @return [String]
30978
+ attr_accessor :next_page_token
30979
+
30980
+ # [Output Only] Server-defined URL for this resource.
30981
+ # Corresponds to the JSON property `selfLink`
30982
+ # @return [String]
30983
+ attr_accessor :self_link
30984
+
30985
+ # [Output Only] Unreachable resources. end_interface:
30986
+ # MixerListResponseWithEtagBuilder
30987
+ # Corresponds to the JSON property `unreachables`
30988
+ # @return [Array<String>]
30989
+ attr_accessor :unreachables
30990
+
30991
+ # [Output Only] Informational warning message.
30992
+ # Corresponds to the JSON property `warning`
30993
+ # @return [Google::Apis::ComputeAlpha::ListSnapshotGroups::Warning]
30994
+ attr_accessor :warning
30995
+
30996
+ def initialize(**args)
30997
+ update!(**args)
30998
+ end
30999
+
31000
+ # Update properties of this object
31001
+ def update!(**args)
31002
+ @etag = args[:etag] if args.key?(:etag)
31003
+ @id = args[:id] if args.key?(:id)
31004
+ @items = args[:items] if args.key?(:items)
31005
+ @kind = args[:kind] if args.key?(:kind)
31006
+ @next_page_token = args[:next_page_token] if args.key?(:next_page_token)
31007
+ @self_link = args[:self_link] if args.key?(:self_link)
31008
+ @unreachables = args[:unreachables] if args.key?(:unreachables)
31009
+ @warning = args[:warning] if args.key?(:warning)
31010
+ end
31011
+
31012
+ # [Output Only] Informational warning message.
31013
+ class Warning
31014
+ include Google::Apis::Core::Hashable
31015
+
31016
+ # [Output Only] A warning code, if applicable. For example, Compute Engine
31017
+ # returns NO_RESULTS_ON_PAGE if there are no results in the response.
31018
+ # Corresponds to the JSON property `code`
31019
+ # @return [String]
31020
+ attr_accessor :code
31021
+
31022
+ # [Output Only] Metadata about this warning in key: value format. For example: "
31023
+ # data": [ ` "key": "scope", "value": "zones/us-east1-d" `
31024
+ # Corresponds to the JSON property `data`
31025
+ # @return [Array<Google::Apis::ComputeAlpha::ListSnapshotGroups::Warning::Datum>]
31026
+ attr_accessor :data
31027
+
31028
+ # [Output Only] A human-readable description of the warning code.
31029
+ # Corresponds to the JSON property `message`
31030
+ # @return [String]
31031
+ attr_accessor :message
31032
+
31033
+ def initialize(**args)
31034
+ update!(**args)
31035
+ end
31036
+
31037
+ # Update properties of this object
31038
+ def update!(**args)
31039
+ @code = args[:code] if args.key?(:code)
31040
+ @data = args[:data] if args.key?(:data)
31041
+ @message = args[:message] if args.key?(:message)
31042
+ end
31043
+
31044
+ #
31045
+ class Datum
31046
+ include Google::Apis::Core::Hashable
31047
+
31048
+ # [Output Only] A key that provides more detail on the warning being returned.
31049
+ # For example, for warnings where there are no results in a list request for a
31050
+ # particular zone, this key might be scope and the key value might be the zone
31051
+ # name. Other examples might be a key indicating a deprecated resource and a
31052
+ # suggested replacement, or a warning about invalid network settings (for
31053
+ # example, if an instance attempts to perform IP forwarding but is not enabled
31054
+ # for IP forwarding).
31055
+ # Corresponds to the JSON property `key`
31056
+ # @return [String]
31057
+ attr_accessor :key
31058
+
31059
+ # [Output Only] A warning data value corresponding to the key.
31060
+ # Corresponds to the JSON property `value`
31061
+ # @return [String]
31062
+ attr_accessor :value
31063
+
31064
+ def initialize(**args)
31065
+ update!(**args)
31066
+ end
31067
+
31068
+ # Update properties of this object
31069
+ def update!(**args)
31070
+ @key = args[:key] if args.key?(:key)
31071
+ @value = args[:value] if args.key?(:value)
31072
+ end
31073
+ end
31074
+ end
31075
+ end
31076
+
30710
31077
  #
30711
31078
  class LocalDisk
30712
31079
  include Google::Apis::Core::Hashable
@@ -30890,6 +31257,23 @@ module Google
30890
31257
  # @return [String]
30891
31258
  attr_accessor :kind
30892
31259
 
31260
+ # A fingerprint for the labels being applied to this machine image, which is
31261
+ # essentially a hash of the labels set used for optimistic locking. The
31262
+ # fingerprint is initially generated by Compute Engine and changes after every
31263
+ # request to modify or update labels. You must always provide an up-to-date
31264
+ # fingerprint hash in order to update or change labels. To see the latest
31265
+ # fingerprint, make get() request to the machine image.
31266
+ # Corresponds to the JSON property `labelFingerprint`
31267
+ # NOTE: Values are automatically base64 encoded/decoded in the client library.
31268
+ # @return [String]
31269
+ attr_accessor :label_fingerprint
31270
+
31271
+ # Labels to apply to this machine image. These can be later modified by the
31272
+ # setLabels method.
31273
+ # Corresponds to the JSON property `labels`
31274
+ # @return [Hash<String,String>]
31275
+ attr_accessor :labels
31276
+
30893
31277
  # Encrypts the machine image using a customer-supplied encryption key. After you
30894
31278
  # encrypt a machine image using a customer-supplied key, you must provide the
30895
31279
  # same key if you use the machine image later. For example, you must provide the
@@ -30996,6 +31380,8 @@ module Google
30996
31380
  @id = args[:id] if args.key?(:id)
30997
31381
  @instance_properties = args[:instance_properties] if args.key?(:instance_properties)
30998
31382
  @kind = args[:kind] if args.key?(:kind)
31383
+ @label_fingerprint = args[:label_fingerprint] if args.key?(:label_fingerprint)
31384
+ @labels = args[:labels] if args.key?(:labels)
30999
31385
  @machine_image_encryption_key = args[:machine_image_encryption_key] if args.key?(:machine_image_encryption_key)
31000
31386
  @name = args[:name] if args.key?(:name)
31001
31387
  @params = args[:params] if args.key?(:params)
@@ -31740,6 +32126,12 @@ module Google
31740
32126
  # @return [Google::Apis::ComputeAlpha::ManagedInstancePropertiesFromFlexibilityPolicy]
31741
32127
  attr_accessor :properties_from_flexibility_policy
31742
32128
 
32129
+ # [Output Only] Information about the termination timestamp of the instance, if
32130
+ # applicable.
32131
+ # Corresponds to the JSON property `scheduling`
32132
+ # @return [Google::Apis::ComputeAlpha::ManagedInstanceScheduling]
32133
+ attr_accessor :scheduling
32134
+
31743
32135
  # [Output only] The size of the VM represented by this Managed Instance. This is
31744
32136
  # how much this Managed Instance contributes to the size of the group.
31745
32137
  # Corresponds to the JSON property `sizeInUnit`
@@ -31783,6 +32175,7 @@ module Google
31783
32175
  @preserved_state_from_config = args[:preserved_state_from_config] if args.key?(:preserved_state_from_config)
31784
32176
  @preserved_state_from_policy = args[:preserved_state_from_policy] if args.key?(:preserved_state_from_policy)
31785
32177
  @properties_from_flexibility_policy = args[:properties_from_flexibility_policy] if args.key?(:properties_from_flexibility_policy)
32178
+ @scheduling = args[:scheduling] if args.key?(:scheduling)
31786
32179
  @size_in_unit = args[:size_in_unit] if args.key?(:size_in_unit)
31787
32180
  @tag = args[:tag] if args.key?(:tag)
31788
32181
  @target_status = args[:target_status] if args.key?(:target_status)
@@ -32062,6 +32455,26 @@ module Google
32062
32455
  end
32063
32456
  end
32064
32457
 
32458
+ #
32459
+ class ManagedInstanceScheduling
32460
+ include Google::Apis::Core::Hashable
32461
+
32462
+ # [Output Only] The timestamp when the MIG will automatically terminate the
32463
+ # instance. The value is in RFC3339 text format.
32464
+ # Corresponds to the JSON property `terminationTimestamp`
32465
+ # @return [String]
32466
+ attr_accessor :termination_timestamp
32467
+
32468
+ def initialize(**args)
32469
+ update!(**args)
32470
+ end
32471
+
32472
+ # Update properties of this object
32473
+ def update!(**args)
32474
+ @termination_timestamp = args[:termination_timestamp] if args.key?(:termination_timestamp)
32475
+ end
32476
+ end
32477
+
32065
32478
  #
32066
32479
  class ManagedInstanceVersion
32067
32480
  include Google::Apis::Core::Hashable
@@ -32615,6 +33028,11 @@ module Google
32615
33028
  # @return [Array<String>]
32616
33029
  attr_accessor :member_instance_group_managers
32617
33030
 
33031
+ # [Output Only] The number of instance group manager members in this multi-MIG.
33032
+ # Corresponds to the JSON property `membersCount`
33033
+ # @return [Fixnum]
33034
+ attr_accessor :members_count
33035
+
32618
33036
  def initialize(**args)
32619
33037
  update!(**args)
32620
33038
  end
@@ -32622,6 +33040,7 @@ module Google
32622
33040
  # Update properties of this object
32623
33041
  def update!(**args)
32624
33042
  @member_instance_group_managers = args[:member_instance_group_managers] if args.key?(:member_instance_group_managers)
33043
+ @members_count = args[:members_count] if args.key?(:members_count)
32625
33044
  end
32626
33045
  end
32627
33046
 
@@ -33030,6 +33449,11 @@ module Google
33030
33449
  # @return [String]
33031
33450
  attr_accessor :network_profile
33032
33451
 
33452
+ # Additional network parameters.
33453
+ # Corresponds to the JSON property `params`
33454
+ # @return [Google::Apis::ComputeAlpha::NetworkParams]
33455
+ attr_accessor :params
33456
+
33033
33457
  # [Output Only] A list of network peerings for the resource.
33034
33458
  # Corresponds to the JSON property `peerings`
33035
33459
  # @return [Array<Google::Apis::ComputeAlpha::NetworkPeering>]
@@ -33085,6 +33509,7 @@ module Google
33085
33509
  @name = args[:name] if args.key?(:name)
33086
33510
  @network_firewall_policy_enforcement_order = args[:network_firewall_policy_enforcement_order] if args.key?(:network_firewall_policy_enforcement_order)
33087
33511
  @network_profile = args[:network_profile] if args.key?(:network_profile)
33512
+ @params = args[:params] if args.key?(:params)
33088
33513
  @peerings = args[:peerings] if args.key?(:peerings)
33089
33514
  @region = args[:region] if args.key?(:region)
33090
33515
  @routing_config = args[:routing_config] if args.key?(:routing_config)
@@ -35457,6 +35882,32 @@ module Google
35457
35882
  end
35458
35883
  end
35459
35884
 
35885
+ # Additional network parameters.
35886
+ class NetworkParams
35887
+ include Google::Apis::Core::Hashable
35888
+
35889
+ # Tag keys/values directly bound to this resource. Tag keys and values have the
35890
+ # same definition as resource manager tags. The field is allowed for INSERT only.
35891
+ # The keys/values to set on the resource should be specified in either ID ` : `
35892
+ # or Namespaced format ` : `. For example the following are valid inputs: * `"
35893
+ # tagKeys/333" : "tagValues/444", "tagKeys/123" : "tagValues/456"` * `"123/
35894
+ # environment" : "production", "345/abc" : "xyz"` Note: * Invalid combinations
35895
+ # of ID & namespaced format is not supported. For instance: `"123/environment" :
35896
+ # "tagValues/444"` is invalid.
35897
+ # Corresponds to the JSON property `resourceManagerTags`
35898
+ # @return [Hash<String,String>]
35899
+ attr_accessor :resource_manager_tags
35900
+
35901
+ def initialize(**args)
35902
+ update!(**args)
35903
+ end
35904
+
35905
+ # Update properties of this object
35906
+ def update!(**args)
35907
+ @resource_manager_tags = args[:resource_manager_tags] if args.key?(:resource_manager_tags)
35908
+ end
35909
+ end
35910
+
35460
35911
  # A network peering attached to a network resource. The message includes the
35461
35912
  # peering name, peer network, peering state, and a flag indicating whether
35462
35913
  # Google Compute Engine should automatically create routes for the peering.
@@ -35480,6 +35931,14 @@ module Google
35480
35931
  attr_accessor :auto_create_routes
35481
35932
  alias_method :auto_create_routes?, :auto_create_routes
35482
35933
 
35934
+ # [Output Only] Describes the state of a peering connection, not just the local
35935
+ # peering. This field provides information about the effective settings for the
35936
+ # connection as a whole, including pending delete/update requests for CONSENSUS
35937
+ # peerings.
35938
+ # Corresponds to the JSON property `connectionStatus`
35939
+ # @return [Google::Apis::ComputeAlpha::NetworkPeeringConnectionStatus]
35940
+ attr_accessor :connection_status
35941
+
35483
35942
  # Indicates whether full mesh connectivity is created and managed automatically
35484
35943
  # between peered networks. Currently this field should always be true since
35485
35944
  # Google Compute Engine will automatically create and manage subnetwork routes
@@ -35537,7 +35996,7 @@ module Google
35537
35996
  # @return [String]
35538
35997
  attr_accessor :network
35539
35998
 
35540
- # Maximum Transmission Unit in bytes.
35999
+ # [Output Only] Maximum Transmission Unit in bytes of the peer network.
35541
36000
  # Corresponds to the JSON property `peerMtu`
35542
36001
  # @return [Fixnum]
35543
36002
  attr_accessor :peer_mtu
@@ -35559,6 +36018,12 @@ module Google
35559
36018
  # @return [String]
35560
36019
  attr_accessor :state_details
35561
36020
 
36021
+ # The update strategy determines the semantics for updates and deletes to the
36022
+ # peering connection configuration.
36023
+ # Corresponds to the JSON property `updateStrategy`
36024
+ # @return [String]
36025
+ attr_accessor :update_strategy
36026
+
35562
36027
  def initialize(**args)
35563
36028
  update!(**args)
35564
36029
  end
@@ -35567,6 +36032,7 @@ module Google
35567
36032
  def update!(**args)
35568
36033
  @advertise_peer_subnets_via_routers = args[:advertise_peer_subnets_via_routers] if args.key?(:advertise_peer_subnets_via_routers)
35569
36034
  @auto_create_routes = args[:auto_create_routes] if args.key?(:auto_create_routes)
36035
+ @connection_status = args[:connection_status] if args.key?(:connection_status)
35570
36036
  @exchange_subnet_routes = args[:exchange_subnet_routes] if args.key?(:exchange_subnet_routes)
35571
36037
  @export_custom_routes = args[:export_custom_routes] if args.key?(:export_custom_routes)
35572
36038
  @export_subnet_routes_with_public_ip = args[:export_subnet_routes_with_public_ip] if args.key?(:export_subnet_routes_with_public_ip)
@@ -35578,6 +36044,122 @@ module Google
35578
36044
  @stack_type = args[:stack_type] if args.key?(:stack_type)
35579
36045
  @state = args[:state] if args.key?(:state)
35580
36046
  @state_details = args[:state_details] if args.key?(:state_details)
36047
+ @update_strategy = args[:update_strategy] if args.key?(:update_strategy)
36048
+ end
36049
+ end
36050
+
36051
+ # [Output Only] Describes the state of a peering connection, not just the local
36052
+ # peering. This field provides information about the effective settings for the
36053
+ # connection as a whole, including pending delete/update requests for CONSENSUS
36054
+ # peerings.
36055
+ class NetworkPeeringConnectionStatus
36056
+ include Google::Apis::Core::Hashable
36057
+
36058
+ # Surfaces relevant state for a consensus peering connection update/delete
36059
+ # semantics. Only set when connection_status.update_strategy is CONSENSUS or one
36060
+ # network peering is proposing upgrading to CONSENSUS.
36061
+ # Corresponds to the JSON property `consensusState`
36062
+ # @return [Google::Apis::ComputeAlpha::NetworkPeeringConnectionStatusConsensusState]
36063
+ attr_accessor :consensus_state
36064
+
36065
+ # The active connectivity settings for the peering connection based on the
36066
+ # settings of the network peerings.
36067
+ # Corresponds to the JSON property `trafficConfiguration`
36068
+ # @return [Google::Apis::ComputeAlpha::NetworkPeeringConnectionStatusTrafficConfiguration]
36069
+ attr_accessor :traffic_configuration
36070
+
36071
+ # The update strategy determines the update/delete semantics for this peering
36072
+ # connection.
36073
+ # Corresponds to the JSON property `updateStrategy`
36074
+ # @return [String]
36075
+ attr_accessor :update_strategy
36076
+
36077
+ def initialize(**args)
36078
+ update!(**args)
36079
+ end
36080
+
36081
+ # Update properties of this object
36082
+ def update!(**args)
36083
+ @consensus_state = args[:consensus_state] if args.key?(:consensus_state)
36084
+ @traffic_configuration = args[:traffic_configuration] if args.key?(:traffic_configuration)
36085
+ @update_strategy = args[:update_strategy] if args.key?(:update_strategy)
36086
+ end
36087
+ end
36088
+
36089
+ # Surfaces relevant state for a consensus peering connection update/delete
36090
+ # semantics. Only set when connection_status.update_strategy is CONSENSUS or one
36091
+ # network peering is proposing upgrading to CONSENSUS.
36092
+ class NetworkPeeringConnectionStatusConsensusState
36093
+ include Google::Apis::Core::Hashable
36094
+
36095
+ # The status of the delete request.
36096
+ # Corresponds to the JSON property `deleteStatus`
36097
+ # @return [String]
36098
+ attr_accessor :delete_status
36099
+
36100
+ # The status of the update request.
36101
+ # Corresponds to the JSON property `updateStatus`
36102
+ # @return [String]
36103
+ attr_accessor :update_status
36104
+
36105
+ def initialize(**args)
36106
+ update!(**args)
36107
+ end
36108
+
36109
+ # Update properties of this object
36110
+ def update!(**args)
36111
+ @delete_status = args[:delete_status] if args.key?(:delete_status)
36112
+ @update_status = args[:update_status] if args.key?(:update_status)
36113
+ end
36114
+ end
36115
+
36116
+ #
36117
+ class NetworkPeeringConnectionStatusTrafficConfiguration
36118
+ include Google::Apis::Core::Hashable
36119
+
36120
+ # Whether custom routes are being exported to the peer network.
36121
+ # Corresponds to the JSON property `exportCustomRoutesToPeer`
36122
+ # @return [Boolean]
36123
+ attr_accessor :export_custom_routes_to_peer
36124
+ alias_method :export_custom_routes_to_peer?, :export_custom_routes_to_peer
36125
+
36126
+ # Whether subnet routes with public IP range are being exported to the peer
36127
+ # network.
36128
+ # Corresponds to the JSON property `exportSubnetRoutesWithPublicIpToPeer`
36129
+ # @return [Boolean]
36130
+ attr_accessor :export_subnet_routes_with_public_ip_to_peer
36131
+ alias_method :export_subnet_routes_with_public_ip_to_peer?, :export_subnet_routes_with_public_ip_to_peer
36132
+
36133
+ # Whether custom routes is being imported from the peer network.
36134
+ # Corresponds to the JSON property `importCustomRoutesFromPeer`
36135
+ # @return [Boolean]
36136
+ attr_accessor :import_custom_routes_from_peer
36137
+ alias_method :import_custom_routes_from_peer?, :import_custom_routes_from_peer
36138
+
36139
+ # Whether subnet routes with public IP range are being imported from the peer
36140
+ # network.
36141
+ # Corresponds to the JSON property `importSubnetRoutesWithPublicIpFromPeer`
36142
+ # @return [Boolean]
36143
+ attr_accessor :import_subnet_routes_with_public_ip_from_peer
36144
+ alias_method :import_subnet_routes_with_public_ip_from_peer?, :import_subnet_routes_with_public_ip_from_peer
36145
+
36146
+ # Which IP version(s) of traffic and routes are being imported or exported
36147
+ # between peer networks.
36148
+ # Corresponds to the JSON property `stackType`
36149
+ # @return [String]
36150
+ attr_accessor :stack_type
36151
+
36152
+ def initialize(**args)
36153
+ update!(**args)
36154
+ end
36155
+
36156
+ # Update properties of this object
36157
+ def update!(**args)
36158
+ @export_custom_routes_to_peer = args[:export_custom_routes_to_peer] if args.key?(:export_custom_routes_to_peer)
36159
+ @export_subnet_routes_with_public_ip_to_peer = args[:export_subnet_routes_with_public_ip_to_peer] if args.key?(:export_subnet_routes_with_public_ip_to_peer)
36160
+ @import_custom_routes_from_peer = args[:import_custom_routes_from_peer] if args.key?(:import_custom_routes_from_peer)
36161
+ @import_subnet_routes_with_public_ip_from_peer = args[:import_subnet_routes_with_public_ip_from_peer] if args.key?(:import_subnet_routes_with_public_ip_from_peer)
36162
+ @stack_type = args[:stack_type] if args.key?(:stack_type)
35581
36163
  end
35582
36164
  end
35583
36165
 
@@ -35735,6 +36317,11 @@ module Google
35735
36317
  # @return [String]
35736
36318
  attr_accessor :allow_cloud_router
35737
36319
 
36320
+ # Specifies whether default NIC attachment is allowed.
36321
+ # Corresponds to the JSON property `allowDefaultNicAttachment`
36322
+ # @return [String]
36323
+ attr_accessor :allow_default_nic_attachment
36324
+
35738
36325
  # Specifies whether VMs are allowed to have external IP access on network
35739
36326
  # interfaces connected to this VPC.
35740
36327
  # Corresponds to the JSON property `allowExternalIpAccess`
@@ -35746,6 +36333,11 @@ module Google
35746
36333
  # @return [String]
35747
36334
  attr_accessor :allow_interconnect
35748
36335
 
36336
+ # Specifies whether IP forwarding is allowed.
36337
+ # Corresponds to the JSON property `allowIpForwarding`
36338
+ # @return [String]
36339
+ attr_accessor :allow_ip_forwarding
36340
+
35749
36341
  # Specifies whether cloud load balancing is allowed.
35750
36342
  # Corresponds to the JSON property `allowLoadBalancing`
35751
36343
  # @return [String]
@@ -35756,6 +36348,16 @@ module Google
35756
36348
  # @return [String]
35757
36349
  attr_accessor :allow_multi_nic_in_same_network
35758
36350
 
36351
+ # Specifies whether NCC is allowed.
36352
+ # Corresponds to the JSON property `allowNcc`
36353
+ # @return [String]
36354
+ attr_accessor :allow_ncc
36355
+
36356
+ # Specifies whether VM network migration is allowed.
36357
+ # Corresponds to the JSON property `allowNetworkMigration`
36358
+ # @return [String]
36359
+ attr_accessor :allow_network_migration
36360
+
35759
36361
  # Specifies whether Packet Mirroring 1.0 is supported.
35760
36362
  # Corresponds to the JSON property `allowPacketMirroring`
35761
36363
  # @return [String]
@@ -35812,6 +36414,16 @@ module Google
35812
36414
  # @return [Array<String>]
35813
36415
  attr_accessor :subnet_stack_types
35814
36416
 
36417
+ # Specifies which subnetwork purposes are supported.
36418
+ # Corresponds to the JSON property `subnetworkPurposes`
36419
+ # @return [Array<String>]
36420
+ attr_accessor :subnetwork_purposes
36421
+
36422
+ # Specifies which subnetwork stack types are supported.
36423
+ # Corresponds to the JSON property `subnetworkStackTypes`
36424
+ # @return [Array<String>]
36425
+ attr_accessor :subnetwork_stack_types
36426
+
35815
36427
  # Specifies which type of unicast is supported.
35816
36428
  # Corresponds to the JSON property `unicast`
35817
36429
  # @return [String]
@@ -35829,10 +36441,14 @@ module Google
35829
36441
  @allow_class_d_firewalls = args[:allow_class_d_firewalls] if args.key?(:allow_class_d_firewalls)
35830
36442
  @allow_cloud_nat = args[:allow_cloud_nat] if args.key?(:allow_cloud_nat)
35831
36443
  @allow_cloud_router = args[:allow_cloud_router] if args.key?(:allow_cloud_router)
36444
+ @allow_default_nic_attachment = args[:allow_default_nic_attachment] if args.key?(:allow_default_nic_attachment)
35832
36445
  @allow_external_ip_access = args[:allow_external_ip_access] if args.key?(:allow_external_ip_access)
35833
36446
  @allow_interconnect = args[:allow_interconnect] if args.key?(:allow_interconnect)
36447
+ @allow_ip_forwarding = args[:allow_ip_forwarding] if args.key?(:allow_ip_forwarding)
35834
36448
  @allow_load_balancing = args[:allow_load_balancing] if args.key?(:allow_load_balancing)
35835
36449
  @allow_multi_nic_in_same_network = args[:allow_multi_nic_in_same_network] if args.key?(:allow_multi_nic_in_same_network)
36450
+ @allow_ncc = args[:allow_ncc] if args.key?(:allow_ncc)
36451
+ @allow_network_migration = args[:allow_network_migration] if args.key?(:allow_network_migration)
35836
36452
  @allow_packet_mirroring = args[:allow_packet_mirroring] if args.key?(:allow_packet_mirroring)
35837
36453
  @allow_private_google_access = args[:allow_private_google_access] if args.key?(:allow_private_google_access)
35838
36454
  @allow_psc = args[:allow_psc] if args.key?(:allow_psc)
@@ -35844,6 +36460,8 @@ module Google
35844
36460
  @interface_types = args[:interface_types] if args.key?(:interface_types)
35845
36461
  @subnet_purposes = args[:subnet_purposes] if args.key?(:subnet_purposes)
35846
36462
  @subnet_stack_types = args[:subnet_stack_types] if args.key?(:subnet_stack_types)
36463
+ @subnetwork_purposes = args[:subnetwork_purposes] if args.key?(:subnetwork_purposes)
36464
+ @subnetwork_stack_types = args[:subnetwork_stack_types] if args.key?(:subnetwork_stack_types)
35847
36465
  @unicast = args[:unicast] if args.key?(:unicast)
35848
36466
  end
35849
36467
  end
@@ -36239,6 +36857,25 @@ module Google
36239
36857
  end
36240
36858
  end
36241
36859
 
36860
+ #
36861
+ class NetworksRequestRemovePeeringRequest
36862
+ include Google::Apis::Core::Hashable
36863
+
36864
+ # Name of the peering, which should conform to RFC1035.
36865
+ # Corresponds to the JSON property `name`
36866
+ # @return [String]
36867
+ attr_accessor :name
36868
+
36869
+ def initialize(**args)
36870
+ update!(**args)
36871
+ end
36872
+
36873
+ # Update properties of this object
36874
+ def update!(**args)
36875
+ @name = args[:name] if args.key?(:name)
36876
+ end
36877
+ end
36878
+
36242
36879
  #
36243
36880
  class NetworksUpdatePeeringRequest
36244
36881
  include Google::Apis::Core::Hashable
@@ -40672,6 +41309,383 @@ module Google
40672
41309
  end
40673
41310
  end
40674
41311
 
41312
+ # Represents a single Google Compute Engine preview feature.
41313
+ class PreviewFeature
41314
+ include Google::Apis::Core::Hashable
41315
+
41316
+ # Specifies whether the feature is enabled or disabled.
41317
+ # Corresponds to the JSON property `activationStatus`
41318
+ # @return [String]
41319
+ attr_accessor :activation_status
41320
+
41321
+ # [Output Only] Creation timestamp in RFC3339 text format.
41322
+ # Corresponds to the JSON property `creationTimestamp`
41323
+ # @return [String]
41324
+ attr_accessor :creation_timestamp
41325
+
41326
+ # [Output Only] Description of the feature.
41327
+ # Corresponds to the JSON property `description`
41328
+ # @return [String]
41329
+ attr_accessor :description
41330
+
41331
+ # [Output Only] The unique identifier for the resource. This identifier is
41332
+ # defined by the server.
41333
+ # Corresponds to the JSON property `id`
41334
+ # @return [Fixnum]
41335
+ attr_accessor :id
41336
+
41337
+ # [Output only] The type of the feature. Always "compute#previewFeature" for
41338
+ # preview features.
41339
+ # Corresponds to the JSON property `kind`
41340
+ # @return [String]
41341
+ attr_accessor :kind
41342
+
41343
+ # Name of the feature.
41344
+ # Corresponds to the JSON property `name`
41345
+ # @return [String]
41346
+ attr_accessor :name
41347
+
41348
+ # Represents the rollout operation
41349
+ # Corresponds to the JSON property `rolloutOperation`
41350
+ # @return [Google::Apis::ComputeAlpha::PreviewFeatureRolloutOperation]
41351
+ attr_accessor :rollout_operation
41352
+
41353
+ # [Output Only] Server-defined URL for the resource.
41354
+ # Corresponds to the JSON property `selfLink`
41355
+ # @return [String]
41356
+ attr_accessor :self_link
41357
+
41358
+ # [Output Only] The status of the feature.
41359
+ # Corresponds to the JSON property `status`
41360
+ # @return [Google::Apis::ComputeAlpha::PreviewFeatureStatus]
41361
+ attr_accessor :status
41362
+
41363
+ def initialize(**args)
41364
+ update!(**args)
41365
+ end
41366
+
41367
+ # Update properties of this object
41368
+ def update!(**args)
41369
+ @activation_status = args[:activation_status] if args.key?(:activation_status)
41370
+ @creation_timestamp = args[:creation_timestamp] if args.key?(:creation_timestamp)
41371
+ @description = args[:description] if args.key?(:description)
41372
+ @id = args[:id] if args.key?(:id)
41373
+ @kind = args[:kind] if args.key?(:kind)
41374
+ @name = args[:name] if args.key?(:name)
41375
+ @rollout_operation = args[:rollout_operation] if args.key?(:rollout_operation)
41376
+ @self_link = args[:self_link] if args.key?(:self_link)
41377
+ @status = args[:status] if args.key?(:status)
41378
+ end
41379
+ end
41380
+
41381
+ #
41382
+ class PreviewFeatureList
41383
+ include Google::Apis::Core::Hashable
41384
+
41385
+ #
41386
+ # Corresponds to the JSON property `etag`
41387
+ # @return [String]
41388
+ attr_accessor :etag
41389
+
41390
+ # [Output Only] Unique identifier for the resource; defined by the server.
41391
+ # Corresponds to the JSON property `id`
41392
+ # @return [String]
41393
+ attr_accessor :id
41394
+
41395
+ # A list of PreviewFeature resources.
41396
+ # Corresponds to the JSON property `items`
41397
+ # @return [Array<Google::Apis::ComputeAlpha::PreviewFeature>]
41398
+ attr_accessor :items
41399
+
41400
+ # [Output Only] This token allows you to get the next page of results for list
41401
+ # requests. If the number of results is larger than maxResults, use the
41402
+ # nextPageToken as a value for the query parameter pageToken in the next list
41403
+ # request. Subsequent list requests will have their own nextPageToken to
41404
+ # continue paging through the results.
41405
+ # Corresponds to the JSON property `nextPageToken`
41406
+ # @return [String]
41407
+ attr_accessor :next_page_token
41408
+
41409
+ # [Output Only] Server-defined URL for this resource.
41410
+ # Corresponds to the JSON property `selfLink`
41411
+ # @return [String]
41412
+ attr_accessor :self_link
41413
+
41414
+ # [Output Only] Unreachable resources. end_interface:
41415
+ # MixerListResponseWithEtagBuilder
41416
+ # Corresponds to the JSON property `unreachables`
41417
+ # @return [Array<String>]
41418
+ attr_accessor :unreachables
41419
+
41420
+ # [Output Only] Informational warning message.
41421
+ # Corresponds to the JSON property `warning`
41422
+ # @return [Google::Apis::ComputeAlpha::PreviewFeatureList::Warning]
41423
+ attr_accessor :warning
41424
+
41425
+ def initialize(**args)
41426
+ update!(**args)
41427
+ end
41428
+
41429
+ # Update properties of this object
41430
+ def update!(**args)
41431
+ @etag = args[:etag] if args.key?(:etag)
41432
+ @id = args[:id] if args.key?(:id)
41433
+ @items = args[:items] if args.key?(:items)
41434
+ @next_page_token = args[:next_page_token] if args.key?(:next_page_token)
41435
+ @self_link = args[:self_link] if args.key?(:self_link)
41436
+ @unreachables = args[:unreachables] if args.key?(:unreachables)
41437
+ @warning = args[:warning] if args.key?(:warning)
41438
+ end
41439
+
41440
+ # [Output Only] Informational warning message.
41441
+ class Warning
41442
+ include Google::Apis::Core::Hashable
41443
+
41444
+ # [Output Only] A warning code, if applicable. For example, Compute Engine
41445
+ # returns NO_RESULTS_ON_PAGE if there are no results in the response.
41446
+ # Corresponds to the JSON property `code`
41447
+ # @return [String]
41448
+ attr_accessor :code
41449
+
41450
+ # [Output Only] Metadata about this warning in key: value format. For example: "
41451
+ # data": [ ` "key": "scope", "value": "zones/us-east1-d" `
41452
+ # Corresponds to the JSON property `data`
41453
+ # @return [Array<Google::Apis::ComputeAlpha::PreviewFeatureList::Warning::Datum>]
41454
+ attr_accessor :data
41455
+
41456
+ # [Output Only] A human-readable description of the warning code.
41457
+ # Corresponds to the JSON property `message`
41458
+ # @return [String]
41459
+ attr_accessor :message
41460
+
41461
+ def initialize(**args)
41462
+ update!(**args)
41463
+ end
41464
+
41465
+ # Update properties of this object
41466
+ def update!(**args)
41467
+ @code = args[:code] if args.key?(:code)
41468
+ @data = args[:data] if args.key?(:data)
41469
+ @message = args[:message] if args.key?(:message)
41470
+ end
41471
+
41472
+ #
41473
+ class Datum
41474
+ include Google::Apis::Core::Hashable
41475
+
41476
+ # [Output Only] A key that provides more detail on the warning being returned.
41477
+ # For example, for warnings where there are no results in a list request for a
41478
+ # particular zone, this key might be scope and the key value might be the zone
41479
+ # name. Other examples might be a key indicating a deprecated resource and a
41480
+ # suggested replacement, or a warning about invalid network settings (for
41481
+ # example, if an instance attempts to perform IP forwarding but is not enabled
41482
+ # for IP forwarding).
41483
+ # Corresponds to the JSON property `key`
41484
+ # @return [String]
41485
+ attr_accessor :key
41486
+
41487
+ # [Output Only] A warning data value corresponding to the key.
41488
+ # Corresponds to the JSON property `value`
41489
+ # @return [String]
41490
+ attr_accessor :value
41491
+
41492
+ def initialize(**args)
41493
+ update!(**args)
41494
+ end
41495
+
41496
+ # Update properties of this object
41497
+ def update!(**args)
41498
+ @key = args[:key] if args.key?(:key)
41499
+ @value = args[:value] if args.key?(:value)
41500
+ end
41501
+ end
41502
+ end
41503
+ end
41504
+
41505
+ # Represents the rollout operation
41506
+ class PreviewFeatureRolloutOperation
41507
+ include Google::Apis::Core::Hashable
41508
+
41509
+ #
41510
+ # Corresponds to the JSON property `rolloutInput`
41511
+ # @return [Google::Apis::ComputeAlpha::PreviewFeatureRolloutOperationRolloutInput]
41512
+ attr_accessor :rollout_input
41513
+
41514
+ #
41515
+ # Corresponds to the JSON property `rolloutStatus`
41516
+ # @return [Google::Apis::ComputeAlpha::PreviewFeatureRolloutOperationRolloutStatus]
41517
+ attr_accessor :rollout_status
41518
+
41519
+ def initialize(**args)
41520
+ update!(**args)
41521
+ end
41522
+
41523
+ # Update properties of this object
41524
+ def update!(**args)
41525
+ @rollout_input = args[:rollout_input] if args.key?(:rollout_input)
41526
+ @rollout_status = args[:rollout_status] if args.key?(:rollout_status)
41527
+ end
41528
+ end
41529
+
41530
+ #
41531
+ class PreviewFeatureRolloutOperationRolloutInput
41532
+ include Google::Apis::Core::Hashable
41533
+
41534
+ # The name of the rollout plan Ex. organizations//locations/global/rolloutPlans/
41535
+ # Ex. folders//locations/global/rolloutPlans/ Ex. projects//locations/global/
41536
+ # rolloutPlans/.
41537
+ # Corresponds to the JSON property `name`
41538
+ # @return [String]
41539
+ attr_accessor :name
41540
+
41541
+ # Predefined rollout plan.
41542
+ # Corresponds to the JSON property `predefinedRolloutPlan`
41543
+ # @return [String]
41544
+ attr_accessor :predefined_rollout_plan
41545
+
41546
+ # The UUID of the retry action. Only needed if this is a retry for an existing
41547
+ # rollout. This can be used after the user canceled a rollout and want to retry
41548
+ # it with no changes.
41549
+ # Corresponds to the JSON property `retryUuid`
41550
+ # @return [String]
41551
+ attr_accessor :retry_uuid
41552
+
41553
+ def initialize(**args)
41554
+ update!(**args)
41555
+ end
41556
+
41557
+ # Update properties of this object
41558
+ def update!(**args)
41559
+ @name = args[:name] if args.key?(:name)
41560
+ @predefined_rollout_plan = args[:predefined_rollout_plan] if args.key?(:predefined_rollout_plan)
41561
+ @retry_uuid = args[:retry_uuid] if args.key?(:retry_uuid)
41562
+ end
41563
+ end
41564
+
41565
+ #
41566
+ class PreviewFeatureRolloutOperationRolloutStatus
41567
+ include Google::Apis::Core::Hashable
41568
+
41569
+ # Output only. The ongoing rollout resources. There can be multiple ongoing
41570
+ # rollouts for a resource.
41571
+ # Corresponds to the JSON property `ongoingRollouts`
41572
+ # @return [Array<Google::Apis::ComputeAlpha::PreviewFeatureRolloutOperationRolloutStatusRolloutMetadata>]
41573
+ attr_accessor :ongoing_rollouts
41574
+
41575
+ # Output only. The last completed rollout resource. This field will not be
41576
+ # populated until the first rollout is completed.
41577
+ # Corresponds to the JSON property `previousRollout`
41578
+ # @return [Google::Apis::ComputeAlpha::PreviewFeatureRolloutOperationRolloutStatusRolloutMetadata]
41579
+ attr_accessor :previous_rollout
41580
+
41581
+ def initialize(**args)
41582
+ update!(**args)
41583
+ end
41584
+
41585
+ # Update properties of this object
41586
+ def update!(**args)
41587
+ @ongoing_rollouts = args[:ongoing_rollouts] if args.key?(:ongoing_rollouts)
41588
+ @previous_rollout = args[:previous_rollout] if args.key?(:previous_rollout)
41589
+ end
41590
+ end
41591
+
41592
+ #
41593
+ class PreviewFeatureRolloutOperationRolloutStatusRolloutMetadata
41594
+ include Google::Apis::Core::Hashable
41595
+
41596
+ # The name of the rollout Ex. organizations//locations/global/rollouts/ Ex.
41597
+ # folders//locations/global/rollouts/ Ex. projects//locations/global/rollouts/.
41598
+ # Corresponds to the JSON property `rollout`
41599
+ # @return [String]
41600
+ attr_accessor :rollout
41601
+
41602
+ # The name of the rollout plan Ex. organizations//locations/global/rolloutPlans/
41603
+ # Ex. folders//locations/global/rolloutPlans/ Ex. projects//locations/global/
41604
+ # rolloutPlans/.
41605
+ # Corresponds to the JSON property `rolloutPlan`
41606
+ # @return [String]
41607
+ attr_accessor :rollout_plan
41608
+
41609
+ # [Output Only] The status of the feature.
41610
+ # Corresponds to the JSON property `status`
41611
+ # @return [Google::Apis::ComputeAlpha::PreviewFeatureStatus]
41612
+ attr_accessor :status
41613
+
41614
+ def initialize(**args)
41615
+ update!(**args)
41616
+ end
41617
+
41618
+ # Update properties of this object
41619
+ def update!(**args)
41620
+ @rollout = args[:rollout] if args.key?(:rollout)
41621
+ @rollout_plan = args[:rollout_plan] if args.key?(:rollout_plan)
41622
+ @status = args[:status] if args.key?(:status)
41623
+ end
41624
+ end
41625
+
41626
+ # [Output Only] The status of the feature.
41627
+ class PreviewFeatureStatus
41628
+ include Google::Apis::Core::Hashable
41629
+
41630
+ # [Output Only] The description of the feature.
41631
+ # Corresponds to the JSON property `description`
41632
+ # @return [String]
41633
+ attr_accessor :description
41634
+
41635
+ # [Output Only] Link to the public documentation for the feature.
41636
+ # Corresponds to the JSON property `helpLink`
41637
+ # @return [String]
41638
+ attr_accessor :help_link
41639
+
41640
+ #
41641
+ # Corresponds to the JSON property `releaseStatus`
41642
+ # @return [Google::Apis::ComputeAlpha::PreviewFeatureStatusReleaseStatus]
41643
+ attr_accessor :release_status
41644
+
41645
+ def initialize(**args)
41646
+ update!(**args)
41647
+ end
41648
+
41649
+ # Update properties of this object
41650
+ def update!(**args)
41651
+ @description = args[:description] if args.key?(:description)
41652
+ @help_link = args[:help_link] if args.key?(:help_link)
41653
+ @release_status = args[:release_status] if args.key?(:release_status)
41654
+ end
41655
+ end
41656
+
41657
+ #
41658
+ class PreviewFeatureStatusReleaseStatus
41659
+ include Google::Apis::Core::Hashable
41660
+
41661
+ # [Output Only] The stage of the feature.
41662
+ # Corresponds to the JSON property `stage`
41663
+ # @return [String]
41664
+ attr_accessor :stage
41665
+
41666
+ # Represents a whole or partial calendar date, such as a birthday. The time of
41667
+ # day and time zone are either specified elsewhere or are insignificant. The
41668
+ # date is relative to the Gregorian Calendar. This can represent one of the
41669
+ # following: * A full date, with non-zero year, month, and day values. * A month
41670
+ # and day, with a zero year (for example, an anniversary). * A year on its own,
41671
+ # with a zero month and a zero day. * A year and month, with a zero day (for
41672
+ # example, a credit card expiration date). Related types: * google.type.
41673
+ # TimeOfDay * google.type.DateTime * google.protobuf.Timestamp
41674
+ # Corresponds to the JSON property `updateDate`
41675
+ # @return [Google::Apis::ComputeAlpha::Date]
41676
+ attr_accessor :update_date
41677
+
41678
+ def initialize(**args)
41679
+ update!(**args)
41680
+ end
41681
+
41682
+ # Update properties of this object
41683
+ def update!(**args)
41684
+ @stage = args[:stage] if args.key?(:stage)
41685
+ @update_date = args[:update_date] if args.key?(:update_date)
41686
+ end
41687
+ end
41688
+
40675
41689
  # [Deprecated] All fields defined in a principal are ANDed.
40676
41690
  class Principal
40677
41691
  include Google::Apis::Core::Hashable
@@ -44727,6 +45741,201 @@ module Google
44727
45741
  end
44728
45742
  end
44729
45743
 
45744
+ # Represents a ReliabilityRisk resource.
45745
+ class ReliabilityRisk
45746
+ include Google::Apis::Core::Hashable
45747
+
45748
+ # [Output Only] Creation timestamp in RFC3339 text format.
45749
+ # Corresponds to the JSON property `creationTimestamp`
45750
+ # @return [String]
45751
+ attr_accessor :creation_timestamp
45752
+
45753
+ # An optional textual description of the resource; provided when the resource is
45754
+ # created.
45755
+ # Corresponds to the JSON property `description`
45756
+ # @return [String]
45757
+ attr_accessor :description
45758
+
45759
+ # Details about a risk.
45760
+ # Corresponds to the JSON property `details`
45761
+ # @return [Google::Apis::ComputeAlpha::RiskDetails]
45762
+ attr_accessor :details
45763
+
45764
+ # [Output Only] The unique identifier for the resource. This identifier is
45765
+ # defined by the server.
45766
+ # Corresponds to the JSON property `id`
45767
+ # @return [Fixnum]
45768
+ attr_accessor :id
45769
+
45770
+ # [Output Only] Type of resource. Always compute#reliabilityRisk for reliability
45771
+ # risks.
45772
+ # Corresponds to the JSON property `kind`
45773
+ # @return [String]
45774
+ attr_accessor :kind
45775
+
45776
+ # Name of the resource. The name must be 1-63 characters long and comply with
45777
+ # RFC1035.
45778
+ # Corresponds to the JSON property `name`
45779
+ # @return [String]
45780
+ attr_accessor :name
45781
+
45782
+ # Recommendation with reference url.
45783
+ # Corresponds to the JSON property `recommendation`
45784
+ # @return [Google::Apis::ComputeAlpha::RiskRecommendation]
45785
+ attr_accessor :recommendation
45786
+
45787
+ # [Output Only] Server-defined URL for the resource.
45788
+ # Corresponds to the JSON property `selfLink`
45789
+ # @return [String]
45790
+ attr_accessor :self_link
45791
+
45792
+ # [Output Only] Server-defined URL for this resource with the resource id.
45793
+ # Corresponds to the JSON property `selfLinkWithId`
45794
+ # @return [String]
45795
+ attr_accessor :self_link_with_id
45796
+
45797
+ def initialize(**args)
45798
+ update!(**args)
45799
+ end
45800
+
45801
+ # Update properties of this object
45802
+ def update!(**args)
45803
+ @creation_timestamp = args[:creation_timestamp] if args.key?(:creation_timestamp)
45804
+ @description = args[:description] if args.key?(:description)
45805
+ @details = args[:details] if args.key?(:details)
45806
+ @id = args[:id] if args.key?(:id)
45807
+ @kind = args[:kind] if args.key?(:kind)
45808
+ @name = args[:name] if args.key?(:name)
45809
+ @recommendation = args[:recommendation] if args.key?(:recommendation)
45810
+ @self_link = args[:self_link] if args.key?(:self_link)
45811
+ @self_link_with_id = args[:self_link_with_id] if args.key?(:self_link_with_id)
45812
+ end
45813
+ end
45814
+
45815
+ #
45816
+ class ReliabilityRisksListResponse
45817
+ include Google::Apis::Core::Hashable
45818
+
45819
+ #
45820
+ # Corresponds to the JSON property `etag`
45821
+ # @return [String]
45822
+ attr_accessor :etag
45823
+
45824
+ # [Output Only] Unique identifier for the resource; defined by the server.
45825
+ # Corresponds to the JSON property `id`
45826
+ # @return [String]
45827
+ attr_accessor :id
45828
+
45829
+ # A list of ReliabilityRisk resources.
45830
+ # Corresponds to the JSON property `items`
45831
+ # @return [Array<Google::Apis::ComputeAlpha::ReliabilityRisk>]
45832
+ attr_accessor :items
45833
+
45834
+ # [Output Only] This token allows you to get the next page of results for list
45835
+ # requests. If the number of results is larger than maxResults, use the
45836
+ # nextPageToken as a value for the query parameter pageToken in the next list
45837
+ # request. Subsequent list requests will have their own nextPageToken to
45838
+ # continue paging through the results.
45839
+ # Corresponds to the JSON property `nextPageToken`
45840
+ # @return [String]
45841
+ attr_accessor :next_page_token
45842
+
45843
+ # [Output Only] Server-defined URL for this resource.
45844
+ # Corresponds to the JSON property `selfLink`
45845
+ # @return [String]
45846
+ attr_accessor :self_link
45847
+
45848
+ # [Output Only] Unreachable resources. end_interface:
45849
+ # MixerListResponseWithEtagBuilder
45850
+ # Corresponds to the JSON property `unreachables`
45851
+ # @return [Array<String>]
45852
+ attr_accessor :unreachables
45853
+
45854
+ # [Output Only] Informational warning message.
45855
+ # Corresponds to the JSON property `warning`
45856
+ # @return [Google::Apis::ComputeAlpha::ReliabilityRisksListResponse::Warning]
45857
+ attr_accessor :warning
45858
+
45859
+ def initialize(**args)
45860
+ update!(**args)
45861
+ end
45862
+
45863
+ # Update properties of this object
45864
+ def update!(**args)
45865
+ @etag = args[:etag] if args.key?(:etag)
45866
+ @id = args[:id] if args.key?(:id)
45867
+ @items = args[:items] if args.key?(:items)
45868
+ @next_page_token = args[:next_page_token] if args.key?(:next_page_token)
45869
+ @self_link = args[:self_link] if args.key?(:self_link)
45870
+ @unreachables = args[:unreachables] if args.key?(:unreachables)
45871
+ @warning = args[:warning] if args.key?(:warning)
45872
+ end
45873
+
45874
+ # [Output Only] Informational warning message.
45875
+ class Warning
45876
+ include Google::Apis::Core::Hashable
45877
+
45878
+ # [Output Only] A warning code, if applicable. For example, Compute Engine
45879
+ # returns NO_RESULTS_ON_PAGE if there are no results in the response.
45880
+ # Corresponds to the JSON property `code`
45881
+ # @return [String]
45882
+ attr_accessor :code
45883
+
45884
+ # [Output Only] Metadata about this warning in key: value format. For example: "
45885
+ # data": [ ` "key": "scope", "value": "zones/us-east1-d" `
45886
+ # Corresponds to the JSON property `data`
45887
+ # @return [Array<Google::Apis::ComputeAlpha::ReliabilityRisksListResponse::Warning::Datum>]
45888
+ attr_accessor :data
45889
+
45890
+ # [Output Only] A human-readable description of the warning code.
45891
+ # Corresponds to the JSON property `message`
45892
+ # @return [String]
45893
+ attr_accessor :message
45894
+
45895
+ def initialize(**args)
45896
+ update!(**args)
45897
+ end
45898
+
45899
+ # Update properties of this object
45900
+ def update!(**args)
45901
+ @code = args[:code] if args.key?(:code)
45902
+ @data = args[:data] if args.key?(:data)
45903
+ @message = args[:message] if args.key?(:message)
45904
+ end
45905
+
45906
+ #
45907
+ class Datum
45908
+ include Google::Apis::Core::Hashable
45909
+
45910
+ # [Output Only] A key that provides more detail on the warning being returned.
45911
+ # For example, for warnings where there are no results in a list request for a
45912
+ # particular zone, this key might be scope and the key value might be the zone
45913
+ # name. Other examples might be a key indicating a deprecated resource and a
45914
+ # suggested replacement, or a warning about invalid network settings (for
45915
+ # example, if an instance attempts to perform IP forwarding but is not enabled
45916
+ # for IP forwarding).
45917
+ # Corresponds to the JSON property `key`
45918
+ # @return [String]
45919
+ attr_accessor :key
45920
+
45921
+ # [Output Only] A warning data value corresponding to the key.
45922
+ # Corresponds to the JSON property `value`
45923
+ # @return [String]
45924
+ attr_accessor :value
45925
+
45926
+ def initialize(**args)
45927
+ update!(**args)
45928
+ end
45929
+
45930
+ # Update properties of this object
45931
+ def update!(**args)
45932
+ @key = args[:key] if args.key?(:key)
45933
+ @value = args[:value] if args.key?(:value)
45934
+ end
45935
+ end
45936
+ end
45937
+ end
45938
+
44730
45939
  #
44731
45940
  class ReplicationDetails
44732
45941
  include Google::Apis::Core::Hashable
@@ -44861,6 +46070,12 @@ module Google
44861
46070
  # @return [String]
44862
46071
  attr_accessor :description
44863
46072
 
46073
+ # Indicates if this group of VMs have emergent maintenance enabled.
46074
+ # Corresponds to the JSON property `enableEmergentMaintenance`
46075
+ # @return [Boolean]
46076
+ attr_accessor :enable_emergent_maintenance
46077
+ alias_method :enable_emergent_maintenance?, :enable_emergent_maintenance
46078
+
44864
46079
  # [Output Only] The unique identifier for the resource. This identifier is
44865
46080
  # defined by the server.
44866
46081
  # Corresponds to the JSON property `id`
@@ -44873,6 +46088,12 @@ module Google
44873
46088
  # @return [String]
44874
46089
  attr_accessor :kind
44875
46090
 
46091
+ # [Output Only] Full or partial URL to parent commitments. This field displays
46092
+ # for reservations that are tied to multiple commitments.
46093
+ # Corresponds to the JSON property `linkedCommitments`
46094
+ # @return [Array<String>]
46095
+ attr_accessor :linked_commitments
46096
+
44876
46097
  # The name of the resource, provided by the client when initially creating the
44877
46098
  # resource. The resource name must be 1-63 characters long, and comply with
44878
46099
  # RFC1035. Specifically, the name must be 1-63 characters long and match the
@@ -44968,8 +46189,10 @@ module Google
44968
46189
  @delete_at_time = args[:delete_at_time] if args.key?(:delete_at_time)
44969
46190
  @deployment_type = args[:deployment_type] if args.key?(:deployment_type)
44970
46191
  @description = args[:description] if args.key?(:description)
46192
+ @enable_emergent_maintenance = args[:enable_emergent_maintenance] if args.key?(:enable_emergent_maintenance)
44971
46193
  @id = args[:id] if args.key?(:id)
44972
46194
  @kind = args[:kind] if args.key?(:kind)
46195
+ @linked_commitments = args[:linked_commitments] if args.key?(:linked_commitments)
44973
46196
  @name = args[:name] if args.key?(:name)
44974
46197
  @reservation_mode = args[:reservation_mode] if args.key?(:reservation_mode)
44975
46198
  @reservation_sharing_policy = args[:reservation_sharing_policy] if args.key?(:reservation_sharing_policy)
@@ -45205,6 +46428,19 @@ module Google
45205
46428
  # @return [Google::Apis::ComputeAlpha::GroupMaintenanceInfo]
45206
46429
  attr_accessor :reservation_maintenance
45207
46430
 
46431
+ # [Output Only] The number of reservation subBlocks associated with this
46432
+ # reservation block.
46433
+ # Corresponds to the JSON property `reservationSubBlockCount`
46434
+ # @return [Fixnum]
46435
+ attr_accessor :reservation_sub_block_count
46436
+
46437
+ # [Output Only] The number of in-use reservation subBlocks associated with this
46438
+ # reservation block. If at least one VM is running on a subBlock, it is
46439
+ # considered in-use.
46440
+ # Corresponds to the JSON property `reservationSubBlockInUseCount`
46441
+ # @return [Fixnum]
46442
+ attr_accessor :reservation_sub_block_in_use_count
46443
+
45208
46444
  # [Output Only] Server-defined fully-qualified URL for this resource.
45209
46445
  # Corresponds to the JSON property `selfLink`
45210
46446
  # @return [String]
@@ -45240,6 +46476,8 @@ module Google
45240
46476
  @name = args[:name] if args.key?(:name)
45241
46477
  @physical_topology = args[:physical_topology] if args.key?(:physical_topology)
45242
46478
  @reservation_maintenance = args[:reservation_maintenance] if args.key?(:reservation_maintenance)
46479
+ @reservation_sub_block_count = args[:reservation_sub_block_count] if args.key?(:reservation_sub_block_count)
46480
+ @reservation_sub_block_in_use_count = args[:reservation_sub_block_in_use_count] if args.key?(:reservation_sub_block_in_use_count)
45243
46481
  @self_link = args[:self_link] if args.key?(:self_link)
45244
46482
  @self_link_with_id = args[:self_link_with_id] if args.key?(:self_link_with_id)
45245
46483
  @status = args[:status] if args.key?(:status)
@@ -45528,6 +46766,259 @@ module Google
45528
46766
  end
45529
46767
  end
45530
46768
 
46769
+ # Represents a reservation subBlock resource.
46770
+ class ReservationSubBlock
46771
+ include Google::Apis::Core::Hashable
46772
+
46773
+ # [Output Only] The number of hosts that are allocated in this reservation
46774
+ # subBlock.
46775
+ # Corresponds to the JSON property `count`
46776
+ # @return [Fixnum]
46777
+ attr_accessor :count
46778
+
46779
+ # [Output Only] Creation timestamp in RFC3339 text format.
46780
+ # Corresponds to the JSON property `creationTimestamp`
46781
+ # @return [String]
46782
+ attr_accessor :creation_timestamp
46783
+
46784
+ # [Output Only] The unique identifier for the resource. This identifier is
46785
+ # defined by the server.
46786
+ # Corresponds to the JSON property `id`
46787
+ # @return [Fixnum]
46788
+ attr_accessor :id
46789
+
46790
+ # [Output Only] The number of instances that are currently in use on this
46791
+ # reservation subBlock.
46792
+ # Corresponds to the JSON property `inUseCount`
46793
+ # @return [Fixnum]
46794
+ attr_accessor :in_use_count
46795
+
46796
+ # [Output Only] Type of the resource. Always compute#reservationSubBlock for
46797
+ # reservation subBlocks.
46798
+ # Corresponds to the JSON property `kind`
46799
+ # @return [String]
46800
+ attr_accessor :kind
46801
+
46802
+ # [Output Only] The name of this reservation subBlock generated by Google
46803
+ # Compute Engine. The name must be 1-63 characters long, and comply with RFC1035
46804
+ # @pattern [a-z](?:[-a-z0-9]`0,61`[a-z0-9])?
46805
+ # Corresponds to the JSON property `name`
46806
+ # @return [String]
46807
+ attr_accessor :name
46808
+
46809
+ # [Output Only] The physical topology of the reservation subBlock.
46810
+ # Corresponds to the JSON property `physicalTopology`
46811
+ # @return [Google::Apis::ComputeAlpha::ReservationSubBlockPhysicalTopology]
46812
+ attr_accessor :physical_topology
46813
+
46814
+ # [Output Only] Server-defined fully-qualified URL for this resource.
46815
+ # Corresponds to the JSON property `selfLink`
46816
+ # @return [String]
46817
+ attr_accessor :self_link
46818
+
46819
+ # [Output Only] Server-defined URL for this resource with the resource id.
46820
+ # Corresponds to the JSON property `selfLinkWithId`
46821
+ # @return [String]
46822
+ attr_accessor :self_link_with_id
46823
+
46824
+ # [Output Only] Status of the reservation subBlock.
46825
+ # Corresponds to the JSON property `status`
46826
+ # @return [String]
46827
+ attr_accessor :status
46828
+
46829
+ # [Output Only] Zone in which the reservation subBlock resides.
46830
+ # Corresponds to the JSON property `zone`
46831
+ # @return [String]
46832
+ attr_accessor :zone
46833
+
46834
+ def initialize(**args)
46835
+ update!(**args)
46836
+ end
46837
+
46838
+ # Update properties of this object
46839
+ def update!(**args)
46840
+ @count = args[:count] if args.key?(:count)
46841
+ @creation_timestamp = args[:creation_timestamp] if args.key?(:creation_timestamp)
46842
+ @id = args[:id] if args.key?(:id)
46843
+ @in_use_count = args[:in_use_count] if args.key?(:in_use_count)
46844
+ @kind = args[:kind] if args.key?(:kind)
46845
+ @name = args[:name] if args.key?(:name)
46846
+ @physical_topology = args[:physical_topology] if args.key?(:physical_topology)
46847
+ @self_link = args[:self_link] if args.key?(:self_link)
46848
+ @self_link_with_id = args[:self_link_with_id] if args.key?(:self_link_with_id)
46849
+ @status = args[:status] if args.key?(:status)
46850
+ @zone = args[:zone] if args.key?(:zone)
46851
+ end
46852
+ end
46853
+
46854
+ #
46855
+ class ReservationSubBlockPhysicalTopology
46856
+ include Google::Apis::Core::Hashable
46857
+
46858
+ # The hash of the capacity block within the cluster.
46859
+ # Corresponds to the JSON property `block`
46860
+ # @return [String]
46861
+ attr_accessor :block
46862
+
46863
+ # The cluster name of the reservation subBlock.
46864
+ # Corresponds to the JSON property `cluster`
46865
+ # @return [String]
46866
+ attr_accessor :cluster
46867
+
46868
+ # The hash of the capacity sub-block within the capacity block.
46869
+ # Corresponds to the JSON property `subBlock`
46870
+ # @return [String]
46871
+ attr_accessor :sub_block
46872
+
46873
+ def initialize(**args)
46874
+ update!(**args)
46875
+ end
46876
+
46877
+ # Update properties of this object
46878
+ def update!(**args)
46879
+ @block = args[:block] if args.key?(:block)
46880
+ @cluster = args[:cluster] if args.key?(:cluster)
46881
+ @sub_block = args[:sub_block] if args.key?(:sub_block)
46882
+ end
46883
+ end
46884
+
46885
+ #
46886
+ class ReservationSubBlocksGetResponse
46887
+ include Google::Apis::Core::Hashable
46888
+
46889
+ # Represents a reservation subBlock resource.
46890
+ # Corresponds to the JSON property `resource`
46891
+ # @return [Google::Apis::ComputeAlpha::ReservationSubBlock]
46892
+ attr_accessor :resource
46893
+
46894
+ def initialize(**args)
46895
+ update!(**args)
46896
+ end
46897
+
46898
+ # Update properties of this object
46899
+ def update!(**args)
46900
+ @resource = args[:resource] if args.key?(:resource)
46901
+ end
46902
+ end
46903
+
46904
+ # A list of reservation subBlocks under a single reservation.
46905
+ class ReservationSubBlocksListResponse
46906
+ include Google::Apis::Core::Hashable
46907
+
46908
+ # Unique identifier for the resource; defined by the server.
46909
+ # Corresponds to the JSON property `id`
46910
+ # @return [String]
46911
+ attr_accessor :id
46912
+
46913
+ # A list of reservation subBlock resources.
46914
+ # Corresponds to the JSON property `items`
46915
+ # @return [Array<Google::Apis::ComputeAlpha::ReservationSubBlock>]
46916
+ attr_accessor :items
46917
+
46918
+ # Type of the resource. Always compute#reservationSubBlock for a list of
46919
+ # reservation subBlocks.
46920
+ # Corresponds to the JSON property `kind`
46921
+ # @return [String]
46922
+ attr_accessor :kind
46923
+
46924
+ # This token allows you to get the next page of results for list requests. If
46925
+ # the number of results is larger than maxResults, use the nextPageToken as a
46926
+ # value for the query parameter pageToken in the next list request. Subsequent
46927
+ # list requests will have their own nextPageToken to continue paging through the
46928
+ # results.
46929
+ # Corresponds to the JSON property `nextPageToken`
46930
+ # @return [String]
46931
+ attr_accessor :next_page_token
46932
+
46933
+ # Server-defined URL for this resource.
46934
+ # Corresponds to the JSON property `selfLink`
46935
+ # @return [String]
46936
+ attr_accessor :self_link
46937
+
46938
+ # Informational warning message.
46939
+ # Corresponds to the JSON property `warning`
46940
+ # @return [Google::Apis::ComputeAlpha::ReservationSubBlocksListResponse::Warning]
46941
+ attr_accessor :warning
46942
+
46943
+ def initialize(**args)
46944
+ update!(**args)
46945
+ end
46946
+
46947
+ # Update properties of this object
46948
+ def update!(**args)
46949
+ @id = args[:id] if args.key?(:id)
46950
+ @items = args[:items] if args.key?(:items)
46951
+ @kind = args[:kind] if args.key?(:kind)
46952
+ @next_page_token = args[:next_page_token] if args.key?(:next_page_token)
46953
+ @self_link = args[:self_link] if args.key?(:self_link)
46954
+ @warning = args[:warning] if args.key?(:warning)
46955
+ end
46956
+
46957
+ # Informational warning message.
46958
+ class Warning
46959
+ include Google::Apis::Core::Hashable
46960
+
46961
+ # [Output Only] A warning code, if applicable. For example, Compute Engine
46962
+ # returns NO_RESULTS_ON_PAGE if there are no results in the response.
46963
+ # Corresponds to the JSON property `code`
46964
+ # @return [String]
46965
+ attr_accessor :code
46966
+
46967
+ # [Output Only] Metadata about this warning in key: value format. For example: "
46968
+ # data": [ ` "key": "scope", "value": "zones/us-east1-d" `
46969
+ # Corresponds to the JSON property `data`
46970
+ # @return [Array<Google::Apis::ComputeAlpha::ReservationSubBlocksListResponse::Warning::Datum>]
46971
+ attr_accessor :data
46972
+
46973
+ # [Output Only] A human-readable description of the warning code.
46974
+ # Corresponds to the JSON property `message`
46975
+ # @return [String]
46976
+ attr_accessor :message
46977
+
46978
+ def initialize(**args)
46979
+ update!(**args)
46980
+ end
46981
+
46982
+ # Update properties of this object
46983
+ def update!(**args)
46984
+ @code = args[:code] if args.key?(:code)
46985
+ @data = args[:data] if args.key?(:data)
46986
+ @message = args[:message] if args.key?(:message)
46987
+ end
46988
+
46989
+ #
46990
+ class Datum
46991
+ include Google::Apis::Core::Hashable
46992
+
46993
+ # [Output Only] A key that provides more detail on the warning being returned.
46994
+ # For example, for warnings where there are no results in a list request for a
46995
+ # particular zone, this key might be scope and the key value might be the zone
46996
+ # name. Other examples might be a key indicating a deprecated resource and a
46997
+ # suggested replacement, or a warning about invalid network settings (for
46998
+ # example, if an instance attempts to perform IP forwarding but is not enabled
46999
+ # for IP forwarding).
47000
+ # Corresponds to the JSON property `key`
47001
+ # @return [String]
47002
+ attr_accessor :key
47003
+
47004
+ # [Output Only] A warning data value corresponding to the key.
47005
+ # Corresponds to the JSON property `value`
47006
+ # @return [String]
47007
+ attr_accessor :value
47008
+
47009
+ def initialize(**args)
47010
+ update!(**args)
47011
+ end
47012
+
47013
+ # Update properties of this object
47014
+ def update!(**args)
47015
+ @key = args[:key] if args.key?(:key)
47016
+ @value = args[:value] if args.key?(:value)
47017
+ end
47018
+ end
47019
+ end
47020
+ end
47021
+
45531
47022
  #
45532
47023
  class ReservationsBlocksPerformMaintenanceRequest
45533
47024
  include Google::Apis::Core::Hashable
@@ -47162,6 +48653,113 @@ module Google
47162
48653
  end
47163
48654
  end
47164
48655
 
48656
+ # Details about a risk.
48657
+ class RiskDetails
48658
+ include Google::Apis::Core::Hashable
48659
+
48660
+ # The duration of the risk since it was detected.
48661
+ # Corresponds to the JSON property `duration`
48662
+ # @return [String]
48663
+ attr_accessor :duration
48664
+
48665
+ #
48666
+ # Corresponds to the JSON property `globalDnsInsight`
48667
+ # @return [Google::Apis::ComputeAlpha::RiskDetailsGlobalDnsInsight]
48668
+ attr_accessor :global_dns_insight
48669
+
48670
+ # The last time the risk was updated.
48671
+ # Corresponds to the JSON property `lastUpdateTimestamp`
48672
+ # @return [String]
48673
+ attr_accessor :last_update_timestamp
48674
+
48675
+ # The severity of the risk.
48676
+ # Corresponds to the JSON property `severity`
48677
+ # @return [String]
48678
+ attr_accessor :severity
48679
+
48680
+ # The type of risk.
48681
+ # Corresponds to the JSON property `type`
48682
+ # @return [String]
48683
+ attr_accessor :type
48684
+
48685
+ def initialize(**args)
48686
+ update!(**args)
48687
+ end
48688
+
48689
+ # Update properties of this object
48690
+ def update!(**args)
48691
+ @duration = args[:duration] if args.key?(:duration)
48692
+ @global_dns_insight = args[:global_dns_insight] if args.key?(:global_dns_insight)
48693
+ @last_update_timestamp = args[:last_update_timestamp] if args.key?(:last_update_timestamp)
48694
+ @severity = args[:severity] if args.key?(:severity)
48695
+ @type = args[:type] if args.key?(:type)
48696
+ end
48697
+ end
48698
+
48699
+ #
48700
+ class RiskDetailsGlobalDnsInsight
48701
+ include Google::Apis::Core::Hashable
48702
+
48703
+ # Whether the project default DNS setting is global or not.
48704
+ # Corresponds to the JSON property `projectDefaultIsGlobalDns`
48705
+ # @return [Boolean]
48706
+ attr_accessor :project_default_is_global_dns
48707
+ alias_method :project_default_is_global_dns?, :project_default_is_global_dns
48708
+
48709
+ # The observation window for the query counts.
48710
+ # Corresponds to the JSON property `queryObservationWindow`
48711
+ # @return [String]
48712
+ attr_accessor :query_observation_window
48713
+
48714
+ # The number of queries that are risky. This will always be less than
48715
+ # total_query_count.
48716
+ # Corresponds to the JSON property `riskyQueryCount`
48717
+ # @return [Fixnum]
48718
+ attr_accessor :risky_query_count
48719
+
48720
+ # The total number of queries in the observation window.
48721
+ # Corresponds to the JSON property `totalQueryCount`
48722
+ # @return [Fixnum]
48723
+ attr_accessor :total_query_count
48724
+
48725
+ def initialize(**args)
48726
+ update!(**args)
48727
+ end
48728
+
48729
+ # Update properties of this object
48730
+ def update!(**args)
48731
+ @project_default_is_global_dns = args[:project_default_is_global_dns] if args.key?(:project_default_is_global_dns)
48732
+ @query_observation_window = args[:query_observation_window] if args.key?(:query_observation_window)
48733
+ @risky_query_count = args[:risky_query_count] if args.key?(:risky_query_count)
48734
+ @total_query_count = args[:total_query_count] if args.key?(:total_query_count)
48735
+ end
48736
+ end
48737
+
48738
+ # Recommendation with reference url.
48739
+ class RiskRecommendation
48740
+ include Google::Apis::Core::Hashable
48741
+
48742
+ # Mitigation guide for the risk.
48743
+ # Corresponds to the JSON property `content`
48744
+ # @return [String]
48745
+ attr_accessor :content
48746
+
48747
+ # URL referencing a more detailed mitigation guide.
48748
+ # Corresponds to the JSON property `referenceUrl`
48749
+ # @return [String]
48750
+ attr_accessor :reference_url
48751
+
48752
+ def initialize(**args)
48753
+ update!(**args)
48754
+ end
48755
+
48756
+ # Update properties of this object
48757
+ def update!(**args)
48758
+ @content = args[:content] if args.key?(:content)
48759
+ @reference_url = args[:reference_url] if args.key?(:reference_url)
48760
+ end
48761
+ end
48762
+
47165
48763
  # A rollout policy configuration.
47166
48764
  class RolloutPolicy
47167
48765
  include Google::Apis::Core::Hashable
@@ -47303,8 +48901,9 @@ module Google
47303
48901
  attr_accessor :next_hop_inter_region_cost
47304
48902
 
47305
48903
  # [Output Only] The URL to an InterconnectAttachment which is the next hop for
47306
- # the route. This field will only be populated for the dynamic routes generated
47307
- # by Cloud Router with a linked interconnectAttachment.
48904
+ # the route. This field will only be populated for dynamic routes generated by
48905
+ # Cloud Router with a linked interconnectAttachment or the static route
48906
+ # generated by each L2 Interconnect Attachment.
47308
48907
  # Corresponds to the JSON property `nextHopInterconnectAttachment`
47309
48908
  # @return [String]
47310
48909
  attr_accessor :next_hop_interconnect_attachment
@@ -47347,6 +48946,11 @@ module Google
47347
48946
  # @return [String]
47348
48947
  attr_accessor :next_hop_vpn_tunnel
47349
48948
 
48949
+ # Additional route parameters.
48950
+ # Corresponds to the JSON property `params`
48951
+ # @return [Google::Apis::ComputeAlpha::RouteParams]
48952
+ attr_accessor :params
48953
+
47350
48954
  # The priority of this route. Priority is used to break ties in cases where
47351
48955
  # there is more than one matching route of equal prefix length. In cases where
47352
48956
  # multiple routes have equal prefix length, the one with the lowest-numbered
@@ -47419,6 +49023,7 @@ module Google
47419
49023
  @next_hop_origin = args[:next_hop_origin] if args.key?(:next_hop_origin)
47420
49024
  @next_hop_peering = args[:next_hop_peering] if args.key?(:next_hop_peering)
47421
49025
  @next_hop_vpn_tunnel = args[:next_hop_vpn_tunnel] if args.key?(:next_hop_vpn_tunnel)
49026
+ @params = args[:params] if args.key?(:params)
47422
49027
  @priority = args[:priority] if args.key?(:priority)
47423
49028
  @route_status = args[:route_status] if args.key?(:route_status)
47424
49029
  @route_type = args[:route_type] if args.key?(:route_type)
@@ -47641,6 +49246,32 @@ module Google
47641
49246
  end
47642
49247
  end
47643
49248
 
49249
+ # Additional route parameters.
49250
+ class RouteParams
49251
+ include Google::Apis::Core::Hashable
49252
+
49253
+ # Tag keys/values directly bound to this resource. Tag keys and values have the
49254
+ # same definition as resource manager tags. The field is allowed for INSERT only.
49255
+ # The keys/values to set on the resource should be specified in either ID ` : `
49256
+ # or Namespaced format ` : `. For example the following are valid inputs: * `"
49257
+ # tagKeys/333" : "tagValues/444", "tagKeys/123" : "tagValues/456"` * `"123/
49258
+ # environment" : "production", "345/abc" : "xyz"` Note: * Invalid combinations
49259
+ # of ID & namespaced format is not supported. For instance: `"123/environment" :
49260
+ # "tagValues/444"` is invalid.
49261
+ # Corresponds to the JSON property `resourceManagerTags`
49262
+ # @return [Hash<String,String>]
49263
+ attr_accessor :resource_manager_tags
49264
+
49265
+ def initialize(**args)
49266
+ update!(**args)
49267
+ end
49268
+
49269
+ # Update properties of this object
49270
+ def update!(**args)
49271
+ @resource_manager_tags = args[:resource_manager_tags] if args.key?(:resource_manager_tags)
49272
+ end
49273
+ end
49274
+
47644
49275
  #
47645
49276
  class RoutePolicy
47646
49277
  include Google::Apis::Core::Hashable
@@ -52977,6 +54608,12 @@ module Google
52977
54608
  # @return [String]
52978
54609
  attr_accessor :endpoint
52979
54610
 
54611
+ # NAT IPs of the connected PSC endpoint and those of other endpoints propagated
54612
+ # from it.
54613
+ # Corresponds to the JSON property `natIps`
54614
+ # @return [Array<String>]
54615
+ attr_accessor :nat_ips
54616
+
52980
54617
  # The number of consumer Network Connectivity Center spokes that the connected
52981
54618
  # Private Service Connect endpoint has propagated to.
52982
54619
  # Corresponds to the JSON property `propagatedConnectionCount`
@@ -53001,6 +54638,7 @@ module Google
53001
54638
  def update!(**args)
53002
54639
  @consumer_network = args[:consumer_network] if args.key?(:consumer_network)
53003
54640
  @endpoint = args[:endpoint] if args.key?(:endpoint)
54641
+ @nat_ips = args[:nat_ips] if args.key?(:nat_ips)
53004
54642
  @propagated_connection_count = args[:propagated_connection_count] if args.key?(:propagated_connection_count)
53005
54643
  @psc_connection_id = args[:psc_connection_id] if args.key?(:psc_connection_id)
53006
54644
  @status = args[:status] if args.key?(:status)
@@ -53730,7 +55368,7 @@ module Google
53730
55368
 
53731
55369
  # Represents a Persistent Disk Snapshot resource. You can use snapshots to back
53732
55370
  # up data on a regular interval. For more information, read Creating persistent
53733
- # disk snapshots.
55371
+ # disk snapshots. LINT.IfChange
53734
55372
  class Snapshot
53735
55373
  include Google::Apis::Core::Hashable
53736
55374
 
@@ -53914,6 +55552,17 @@ module Google
53914
55552
  # @return [Google::Apis::ComputeAlpha::CustomerEncryptionKey]
53915
55553
  attr_accessor :snapshot_encryption_key
53916
55554
 
55555
+ # [Output Only] The unique ID of the snapshot group that this snapshot belongs
55556
+ # to.
55557
+ # Corresponds to the JSON property `snapshotGroupId`
55558
+ # @return [String]
55559
+ attr_accessor :snapshot_group_id
55560
+
55561
+ # [Output only] The snapshot group that this snapshot belongs to.
55562
+ # Corresponds to the JSON property `snapshotGroupName`
55563
+ # @return [String]
55564
+ attr_accessor :snapshot_group_name
55565
+
53917
55566
  # Indicates the type of the snapshot.
53918
55567
  # Corresponds to the JSON property `snapshotType`
53919
55568
  # @return [String]
@@ -54040,6 +55689,8 @@ module Google
54040
55689
  @self_link = args[:self_link] if args.key?(:self_link)
54041
55690
  @self_link_with_id = args[:self_link_with_id] if args.key?(:self_link_with_id)
54042
55691
  @snapshot_encryption_key = args[:snapshot_encryption_key] if args.key?(:snapshot_encryption_key)
55692
+ @snapshot_group_id = args[:snapshot_group_id] if args.key?(:snapshot_group_id)
55693
+ @snapshot_group_name = args[:snapshot_group_name] if args.key?(:snapshot_group_name)
54043
55694
  @snapshot_type = args[:snapshot_type] if args.key?(:snapshot_type)
54044
55695
  @source_disk = args[:source_disk] if args.key?(:source_disk)
54045
55696
  @source_disk_encryption_key = args[:source_disk_encryption_key] if args.key?(:source_disk_encryption_key)
@@ -54188,6 +55839,182 @@ module Google
54188
55839
  end
54189
55840
  end
54190
55841
 
55842
+ # Represents a SnapshotGroup resource. A snapshot group is a set of snapshots
55843
+ # that represents a point in time state of a consistency group.
55844
+ class SnapshotGroup
55845
+ include Google::Apis::Core::Hashable
55846
+
55847
+ # [Output Only] Creation timestamp in RFC3339 text format.
55848
+ # Corresponds to the JSON property `creationTimestamp`
55849
+ # @return [String]
55850
+ attr_accessor :creation_timestamp
55851
+
55852
+ # Optional. An optional description of this resource. Provide this property when
55853
+ # you create the resource.
55854
+ # Corresponds to the JSON property `description`
55855
+ # @return [String]
55856
+ attr_accessor :description
55857
+
55858
+ # [Output Only] The unique identifier for the resource. This identifier is
55859
+ # defined by the server.
55860
+ # Corresponds to the JSON property `id`
55861
+ # @return [Fixnum]
55862
+ attr_accessor :id
55863
+
55864
+ # [Output Only] Type of the resource. Always compute#snapshotGroup for
55865
+ # SnapshotGroup resources.
55866
+ # Corresponds to the JSON property `kind`
55867
+ # @return [String]
55868
+ attr_accessor :kind
55869
+
55870
+ # Identifier. Name of the resource; provided by the client when the resource is
55871
+ # created. The name must be 1-63 characters long, and comply with RFC1035.
55872
+ # Specifically, the name must be 1-63 characters long and match the regular
55873
+ # expression `[a-z]([-a-z0-9]*[a-z0-9])?` which means the first character must
55874
+ # be a lowercase letter, and all following characters must be a dash, lowercase
55875
+ # letter, or digit, except the last character, which cannot be a dash.
55876
+ # Corresponds to the JSON property `name`
55877
+ # @return [String]
55878
+ attr_accessor :name
55879
+
55880
+ # [Output Only] Server-defined URL for the resource.
55881
+ # Corresponds to the JSON property `selfLink`
55882
+ # @return [String]
55883
+ attr_accessor :self_link
55884
+
55885
+ # [Output Only] Server-defined URL for this resource's resource id.
55886
+ # Corresponds to the JSON property `selfLinkWithId`
55887
+ # @return [String]
55888
+ attr_accessor :self_link_with_id
55889
+
55890
+ # [Output Only]
55891
+ # Corresponds to the JSON property `sourceInfo`
55892
+ # @return [Google::Apis::ComputeAlpha::SnapshotGroupSourceInfo]
55893
+ attr_accessor :source_info
55894
+
55895
+ # Input field for the source instant snapshot group.
55896
+ # Corresponds to the JSON property `sourceInstantSnapshotGroup`
55897
+ # @return [String]
55898
+ attr_accessor :source_instant_snapshot_group
55899
+
55900
+ # [Output Only]
55901
+ # Corresponds to the JSON property `sourceInstantSnapshotGroupInfo`
55902
+ # @return [Google::Apis::ComputeAlpha::SnapshotGroupSourceInstantSnapshotGroupInfo]
55903
+ attr_accessor :source_instant_snapshot_group_info
55904
+
55905
+ # [Output Only]
55906
+ # Corresponds to the JSON property `status`
55907
+ # @return [String]
55908
+ attr_accessor :status
55909
+
55910
+ def initialize(**args)
55911
+ update!(**args)
55912
+ end
55913
+
55914
+ # Update properties of this object
55915
+ def update!(**args)
55916
+ @creation_timestamp = args[:creation_timestamp] if args.key?(:creation_timestamp)
55917
+ @description = args[:description] if args.key?(:description)
55918
+ @id = args[:id] if args.key?(:id)
55919
+ @kind = args[:kind] if args.key?(:kind)
55920
+ @name = args[:name] if args.key?(:name)
55921
+ @self_link = args[:self_link] if args.key?(:self_link)
55922
+ @self_link_with_id = args[:self_link_with_id] if args.key?(:self_link_with_id)
55923
+ @source_info = args[:source_info] if args.key?(:source_info)
55924
+ @source_instant_snapshot_group = args[:source_instant_snapshot_group] if args.key?(:source_instant_snapshot_group)
55925
+ @source_instant_snapshot_group_info = args[:source_instant_snapshot_group_info] if args.key?(:source_instant_snapshot_group_info)
55926
+ @status = args[:status] if args.key?(:status)
55927
+ end
55928
+ end
55929
+
55930
+ #
55931
+ class SnapshotGroupParameters
55932
+ include Google::Apis::Core::Hashable
55933
+
55934
+ # URLs of the zones where disks should be replicated to. Only applicable for
55935
+ # regional resources.
55936
+ # Corresponds to the JSON property `replicaZones`
55937
+ # @return [Array<String>]
55938
+ attr_accessor :replica_zones
55939
+
55940
+ # The source snapshot group used to create disks. You can provide this as a
55941
+ # partial or full URL to the resource. For example, the following are valid
55942
+ # values: - https://www.googleapis.com/compute/v1/projects/project /global/
55943
+ # snapshotGroups/snapshotGroup - projects/project/global/snapshotGroups/
55944
+ # snapshotGroup - global/snapshotGroups/snapshotGroup
55945
+ # Corresponds to the JSON property `sourceSnapshotGroup`
55946
+ # @return [String]
55947
+ attr_accessor :source_snapshot_group
55948
+
55949
+ # URL of the disk type resource describing which disk type to use to create
55950
+ # disks. Provide this when creating the disk. For example: projects/project /
55951
+ # zones/zone/diskTypes/pd-ssd . See Persistent disk types.
55952
+ # Corresponds to the JSON property `type`
55953
+ # @return [String]
55954
+ attr_accessor :type
55955
+
55956
+ def initialize(**args)
55957
+ update!(**args)
55958
+ end
55959
+
55960
+ # Update properties of this object
55961
+ def update!(**args)
55962
+ @replica_zones = args[:replica_zones] if args.key?(:replica_zones)
55963
+ @source_snapshot_group = args[:source_snapshot_group] if args.key?(:source_snapshot_group)
55964
+ @type = args[:type] if args.key?(:type)
55965
+ end
55966
+ end
55967
+
55968
+ #
55969
+ class SnapshotGroupSourceInfo
55970
+ include Google::Apis::Core::Hashable
55971
+
55972
+ #
55973
+ # Corresponds to the JSON property `consistencyGroup`
55974
+ # @return [String]
55975
+ attr_accessor :consistency_group
55976
+
55977
+ #
55978
+ # Corresponds to the JSON property `consistencyGroupId`
55979
+ # @return [String]
55980
+ attr_accessor :consistency_group_id
55981
+
55982
+ def initialize(**args)
55983
+ update!(**args)
55984
+ end
55985
+
55986
+ # Update properties of this object
55987
+ def update!(**args)
55988
+ @consistency_group = args[:consistency_group] if args.key?(:consistency_group)
55989
+ @consistency_group_id = args[:consistency_group_id] if args.key?(:consistency_group_id)
55990
+ end
55991
+ end
55992
+
55993
+ #
55994
+ class SnapshotGroupSourceInstantSnapshotGroupInfo
55995
+ include Google::Apis::Core::Hashable
55996
+
55997
+ #
55998
+ # Corresponds to the JSON property `instantSnapshotGroup`
55999
+ # @return [String]
56000
+ attr_accessor :instant_snapshot_group
56001
+
56002
+ #
56003
+ # Corresponds to the JSON property `instantSnapshotGroupId`
56004
+ # @return [String]
56005
+ attr_accessor :instant_snapshot_group_id
56006
+
56007
+ def initialize(**args)
56008
+ update!(**args)
56009
+ end
56010
+
56011
+ # Update properties of this object
56012
+ def update!(**args)
56013
+ @instant_snapshot_group = args[:instant_snapshot_group] if args.key?(:instant_snapshot_group)
56014
+ @instant_snapshot_group_id = args[:instant_snapshot_group_id] if args.key?(:instant_snapshot_group_id)
56015
+ end
56016
+ end
56017
+
54191
56018
  # Contains a list of Snapshot resources.
54192
56019
  class SnapshotList
54193
56020
  include Google::Apis::Core::Hashable
@@ -57458,6 +59285,11 @@ module Google
57458
59285
  # @return [String]
57459
59286
  attr_accessor :network
57460
59287
 
59288
+ # Additional subnetwork parameters.
59289
+ # Corresponds to the JSON property `params`
59290
+ # @return [Google::Apis::ComputeAlpha::SubnetworkParams]
59291
+ attr_accessor :params
59292
+
57461
59293
  # Whether the VMs in this subnet can access Google services without assigned
57462
59294
  # external IP addresses. This field can be both set at resource creation time
57463
59295
  # and updated using setPrivateIpGoogleAccess.
@@ -57472,20 +59304,7 @@ module Google
57472
59304
  # @return [String]
57473
59305
  attr_accessor :private_ipv6_google_access
57474
59306
 
57475
- # The purpose of the resource. This field can be either PRIVATE,
57476
- # GLOBAL_MANAGED_PROXY, REGIONAL_MANAGED_PROXY, PEER_MIGRATION,
57477
- # PRIVATE_SERVICE_CONNECT or PRIVATE_NAT. PRIVATE is the default purpose for
57478
- # user-created subnets or subnets that are automatically created in auto mode
57479
- # networks. Subnets with purpose set to GLOBAL_MANAGED_PROXY or
57480
- # REGIONAL_MANAGED_PROXY are user-created subnetworks that are reserved for
57481
- # Envoy-based load balancers. A subnet with purpose set to
57482
- # PRIVATE_SERVICE_CONNECT is used to publish services using Private Service
57483
- # Connect. A subnet with purpose set to PEER_MIGRATION is used for subnet
57484
- # migration from one peered VPC to another. A subnet with purpose set to
57485
- # PRIVATE_NAT is used for Private NAT IP address by Private NAT Gateway. If
57486
- # unspecified, the subnet purpose defaults to PRIVATE. The enableFlowLogs field
57487
- # isn't supported if the subnet purpose field is set to GLOBAL_MANAGED_PROXY or
57488
- # REGIONAL_MANAGED_PROXY.
59307
+ #
57489
59308
  # Corresponds to the JSON property `purpose`
57490
59309
  # @return [String]
57491
59310
  attr_accessor :purpose
@@ -57547,6 +59366,12 @@ module Google
57547
59366
  # @return [String]
57548
59367
  attr_accessor :state
57549
59368
 
59369
+ # The current IP utilization of all subnetwork ranges. Contains the total number
59370
+ # of allocated and free IPs in each range.
59371
+ # Corresponds to the JSON property `utilizationDetails`
59372
+ # @return [Google::Apis::ComputeAlpha::SubnetworkUtilizationDetails]
59373
+ attr_accessor :utilization_details
59374
+
57550
59375
  # A repeated field indicating the VLAN IDs supported on this subnetwork. During
57551
59376
  # Subnet creation, specifying vlan is valid only if enable_l2 is true. During
57552
59377
  # Subnet Update, specifying vlan is allowed only for l2 enabled subnets.
@@ -57584,6 +59409,7 @@ module Google
57584
59409
  @metadata = args[:metadata] if args.key?(:metadata)
57585
59410
  @name = args[:name] if args.key?(:name)
57586
59411
  @network = args[:network] if args.key?(:network)
59412
+ @params = args[:params] if args.key?(:params)
57587
59413
  @private_ip_google_access = args[:private_ip_google_access] if args.key?(:private_ip_google_access)
57588
59414
  @private_ipv6_google_access = args[:private_ipv6_google_access] if args.key?(:private_ipv6_google_access)
57589
59415
  @purpose = args[:purpose] if args.key?(:purpose)
@@ -57595,6 +59421,7 @@ module Google
57595
59421
  @self_link_with_id = args[:self_link_with_id] if args.key?(:self_link_with_id)
57596
59422
  @stack_type = args[:stack_type] if args.key?(:stack_type)
57597
59423
  @state = args[:state] if args.key?(:state)
59424
+ @utilization_details = args[:utilization_details] if args.key?(:utilization_details)
57598
59425
  @vlans = args[:vlans] if args.key?(:vlans)
57599
59426
  end
57600
59427
  end
@@ -57907,6 +59734,32 @@ module Google
57907
59734
  end
57908
59735
  end
57909
59736
 
59737
+ # Additional subnetwork parameters.
59738
+ class SubnetworkParams
59739
+ include Google::Apis::Core::Hashable
59740
+
59741
+ # Tag keys/values directly bound to this resource. Tag keys and values have the
59742
+ # same definition as resource manager tags. The field is allowed for INSERT only.
59743
+ # The keys/values to set on the resource should be specified in either ID ` : `
59744
+ # or Namespaced format ` : `. For example the following are valid inputs: * `"
59745
+ # tagKeys/333" : "tagValues/444", "tagKeys/123" : "tagValues/456"` * `"123/
59746
+ # environment" : "production", "345/abc" : "xyz"` Note: * Invalid combinations
59747
+ # of ID & namespaced format is not supported. For instance: `"123/environment" :
59748
+ # "tagValues/444"` is invalid.
59749
+ # Corresponds to the JSON property `resourceManagerTags`
59750
+ # @return [Hash<String,String>]
59751
+ attr_accessor :resource_manager_tags
59752
+
59753
+ def initialize(**args)
59754
+ update!(**args)
59755
+ end
59756
+
59757
+ # Update properties of this object
59758
+ def update!(**args)
59759
+ @resource_manager_tags = args[:resource_manager_tags] if args.key?(:resource_manager_tags)
59760
+ end
59761
+ end
59762
+
57910
59763
  # Represents a secondary IP range of a subnetwork.
57911
59764
  class SubnetworkSecondaryRange
57912
59765
  include Google::Apis::Core::Hashable
@@ -57944,6 +59797,101 @@ module Google
57944
59797
  end
57945
59798
  end
57946
59799
 
59800
+ # The current IP utilization of all subnetwork ranges. Contains the total number
59801
+ # of allocated and free IPs in each range.
59802
+ class SubnetworkUtilizationDetails
59803
+ include Google::Apis::Core::Hashable
59804
+
59805
+ # The IPV6 utilization of a single IP range.
59806
+ # Corresponds to the JSON property `externalIpv6InstanceUtilization`
59807
+ # @return [Google::Apis::ComputeAlpha::SubnetworkUtilizationDetailsIpv6Utilization]
59808
+ attr_accessor :external_ipv6_instance_utilization
59809
+
59810
+ # The IPV6 utilization of a single IP range.
59811
+ # Corresponds to the JSON property `externalIpv6LbUtilization`
59812
+ # @return [Google::Apis::ComputeAlpha::SubnetworkUtilizationDetailsIpv6Utilization]
59813
+ attr_accessor :external_ipv6_lb_utilization
59814
+
59815
+ # The IPV6 utilization of a single IP range.
59816
+ # Corresponds to the JSON property `internalIpv6Utilization`
59817
+ # @return [Google::Apis::ComputeAlpha::SubnetworkUtilizationDetailsIpv6Utilization]
59818
+ attr_accessor :internal_ipv6_utilization
59819
+
59820
+ # Utilizations of all IPV4 IP ranges. For primary ranges, the range name will be
59821
+ # empty.
59822
+ # Corresponds to the JSON property `ipv4Utilizations`
59823
+ # @return [Array<Google::Apis::ComputeAlpha::SubnetworkUtilizationDetailsIpv4Utilization>]
59824
+ attr_accessor :ipv4_utilizations
59825
+
59826
+ def initialize(**args)
59827
+ update!(**args)
59828
+ end
59829
+
59830
+ # Update properties of this object
59831
+ def update!(**args)
59832
+ @external_ipv6_instance_utilization = args[:external_ipv6_instance_utilization] if args.key?(:external_ipv6_instance_utilization)
59833
+ @external_ipv6_lb_utilization = args[:external_ipv6_lb_utilization] if args.key?(:external_ipv6_lb_utilization)
59834
+ @internal_ipv6_utilization = args[:internal_ipv6_utilization] if args.key?(:internal_ipv6_utilization)
59835
+ @ipv4_utilizations = args[:ipv4_utilizations] if args.key?(:ipv4_utilizations)
59836
+ end
59837
+ end
59838
+
59839
+ # The IPV4 utilization of a single IP range.
59840
+ class SubnetworkUtilizationDetailsIpv4Utilization
59841
+ include Google::Apis::Core::Hashable
59842
+
59843
+ # Will be set for secondary range. Empty for primary IPv4 range.
59844
+ # Corresponds to the JSON property `rangeName`
59845
+ # @return [String]
59846
+ attr_accessor :range_name
59847
+
59848
+ #
59849
+ # Corresponds to the JSON property `totalAllocatedIp`
59850
+ # @return [Fixnum]
59851
+ attr_accessor :total_allocated_ip
59852
+
59853
+ #
59854
+ # Corresponds to the JSON property `totalFreeIp`
59855
+ # @return [Fixnum]
59856
+ attr_accessor :total_free_ip
59857
+
59858
+ def initialize(**args)
59859
+ update!(**args)
59860
+ end
59861
+
59862
+ # Update properties of this object
59863
+ def update!(**args)
59864
+ @range_name = args[:range_name] if args.key?(:range_name)
59865
+ @total_allocated_ip = args[:total_allocated_ip] if args.key?(:total_allocated_ip)
59866
+ @total_free_ip = args[:total_free_ip] if args.key?(:total_free_ip)
59867
+ end
59868
+ end
59869
+
59870
+ # The IPV6 utilization of a single IP range.
59871
+ class SubnetworkUtilizationDetailsIpv6Utilization
59872
+ include Google::Apis::Core::Hashable
59873
+
59874
+ #
59875
+ # Corresponds to the JSON property `totalAllocatedIp`
59876
+ # @return [Google::Apis::ComputeAlpha::Uint128]
59877
+ attr_accessor :total_allocated_ip
59878
+
59879
+ #
59880
+ # Corresponds to the JSON property `totalFreeIp`
59881
+ # @return [Google::Apis::ComputeAlpha::Uint128]
59882
+ attr_accessor :total_free_ip
59883
+
59884
+ def initialize(**args)
59885
+ update!(**args)
59886
+ end
59887
+
59888
+ # Update properties of this object
59889
+ def update!(**args)
59890
+ @total_allocated_ip = args[:total_allocated_ip] if args.key?(:total_allocated_ip)
59891
+ @total_free_ip = args[:total_free_ip] if args.key?(:total_free_ip)
59892
+ end
59893
+ end
59894
+
57947
59895
  #
57948
59896
  class SubnetworksExpandIpCidrRangeRequest
57949
59897
  include Google::Apis::Core::Hashable
@@ -62215,6 +64163,17 @@ module Google
62215
64163
  # @return [String]
62216
64164
  attr_accessor :latest_window_start_time
62217
64165
 
64166
+ # Indicates whether the UpcomingMaintenance will be triggered on VM shutdown.
64167
+ # Corresponds to the JSON property `maintenanceOnShutdown`
64168
+ # @return [Boolean]
64169
+ attr_accessor :maintenance_on_shutdown
64170
+ alias_method :maintenance_on_shutdown?, :maintenance_on_shutdown
64171
+
64172
+ # The reasons for the maintenance. Only valid for vms.
64173
+ # Corresponds to the JSON property `maintenanceReasons`
64174
+ # @return [Array<String>]
64175
+ attr_accessor :maintenance_reasons
64176
+
62218
64177
  #
62219
64178
  # Corresponds to the JSON property `maintenanceStatus`
62220
64179
  # @return [String]
@@ -62257,6 +64216,8 @@ module Google
62257
64216
  @can_reschedule = args[:can_reschedule] if args.key?(:can_reschedule)
62258
64217
  @date = args[:date] if args.key?(:date)
62259
64218
  @latest_window_start_time = args[:latest_window_start_time] if args.key?(:latest_window_start_time)
64219
+ @maintenance_on_shutdown = args[:maintenance_on_shutdown] if args.key?(:maintenance_on_shutdown)
64220
+ @maintenance_reasons = args[:maintenance_reasons] if args.key?(:maintenance_reasons)
62260
64221
  @maintenance_status = args[:maintenance_status] if args.key?(:maintenance_status)
62261
64222
  @start_time_window = args[:start_time_window] if args.key?(:start_time_window)
62262
64223
  @time = args[:time] if args.key?(:time)
@@ -63103,20 +65064,7 @@ module Google
63103
65064
  # @return [String]
63104
65065
  attr_accessor :network
63105
65066
 
63106
- # The purpose of the resource. This field can be either PRIVATE,
63107
- # GLOBAL_MANAGED_PROXY, REGIONAL_MANAGED_PROXY, PEER_MIGRATION,
63108
- # PRIVATE_SERVICE_CONNECT or PRIVATE_NAT. PRIVATE is the default purpose for
63109
- # user-created subnets or subnets that are automatically created in auto mode
63110
- # networks. Subnets with purpose set to GLOBAL_MANAGED_PROXY or
63111
- # REGIONAL_MANAGED_PROXY are user-created subnetworks that are reserved for
63112
- # Envoy-based load balancers. A subnet with purpose set to
63113
- # PRIVATE_SERVICE_CONNECT is used to publish services using Private Service
63114
- # Connect. A subnet with purpose set to PEER_MIGRATION is used for subnet
63115
- # migration from one peered VPC to another. A subnet with purpose set to
63116
- # PRIVATE_NAT is used for Private NAT IP address by Private NAT Gateway. If
63117
- # unspecified, the subnet purpose defaults to PRIVATE. The enableFlowLogs field
63118
- # isn't supported if the subnet purpose field is set to GLOBAL_MANAGED_PROXY or
63119
- # REGIONAL_MANAGED_PROXY.
65067
+ #
63120
65068
  # Corresponds to the JSON property `purpose`
63121
65069
  # @return [String]
63122
65070
  attr_accessor :purpose