google-apis-compute_v1 0.137.0 → 0.139.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.
@@ -4312,6 +4312,13 @@ module Google
4312
4312
  # @return [String]
4313
4313
  attr_accessor :network
4314
4314
 
4315
+ # Configures traffic steering properties of internal passthrough Network
4316
+ # Load Balancers.
4317
+ # networkPassThroughLbTrafficPolicy cannot be specified with haPolicy.
4318
+ # Corresponds to the JSON property `networkPassThroughLbTrafficPolicy`
4319
+ # @return [Google::Apis::ComputeV1::BackendServiceNetworkPassThroughLbTrafficPolicy]
4320
+ attr_accessor :network_pass_through_lb_traffic_policy
4321
+
4315
4322
  # Settings controlling the eviction of unhealthy hosts from the load balancing
4316
4323
  # pool for the backend service.
4317
4324
  # Corresponds to the JSON property `outlierDetection`
@@ -4484,6 +4491,7 @@ module Google
4484
4491
  @metadatas = args[:metadatas] if args.key?(:metadatas)
4485
4492
  @name = args[:name] if args.key?(:name)
4486
4493
  @network = args[:network] if args.key?(:network)
4494
+ @network_pass_through_lb_traffic_policy = args[:network_pass_through_lb_traffic_policy] if args.key?(:network_pass_through_lb_traffic_policy)
4487
4495
  @outlier_detection = args[:outlier_detection] if args.key?(:outlier_detection)
4488
4496
  @params = args[:params] if args.key?(:params)
4489
4497
  @port = args[:port] if args.key?(:port)
@@ -5711,6 +5719,74 @@ module Google
5711
5719
  end
5712
5720
  end
5713
5721
 
5722
+ #
5723
+ class BackendServiceNetworkPassThroughLbTrafficPolicy
5724
+ include Google::Apis::Core::Hashable
5725
+
5726
+ # When configured, new connections are load balanced across healthy backend
5727
+ # endpoints in the local zone.
5728
+ # Corresponds to the JSON property `zonalAffinity`
5729
+ # @return [Google::Apis::ComputeV1::BackendServiceNetworkPassThroughLbTrafficPolicyZonalAffinity]
5730
+ attr_accessor :zonal_affinity
5731
+
5732
+ def initialize(**args)
5733
+ update!(**args)
5734
+ end
5735
+
5736
+ # Update properties of this object
5737
+ def update!(**args)
5738
+ @zonal_affinity = args[:zonal_affinity] if args.key?(:zonal_affinity)
5739
+ end
5740
+ end
5741
+
5742
+ #
5743
+ class BackendServiceNetworkPassThroughLbTrafficPolicyZonalAffinity
5744
+ include Google::Apis::Core::Hashable
5745
+
5746
+ # This field indicates whether zonal affinity is enabled or not. The
5747
+ # possible values are:
5748
+ #
5749
+ # - ZONAL_AFFINITY_DISABLED: Default Value. Zonal Affinity
5750
+ # is disabled. The load balancer distributes new connections to all
5751
+ # healthy backend endpoints across all zones.
5752
+ # - ZONAL_AFFINITY_STAY_WITHIN_ZONE: Zonal Affinity is
5753
+ # enabled. The load balancer distributes new connections to all healthy
5754
+ # backend endpoints in the local zone only. If there are no healthy
5755
+ # backend endpoints in the local zone, the load balancer distributes
5756
+ # new connections to all backend endpoints in the local zone.
5757
+ # - ZONAL_AFFINITY_SPILL_CROSS_ZONE: Zonal Affinity is
5758
+ # enabled. The load balancer distributes new connections to all healthy
5759
+ # backend endpoints in the local zone only. If there aren't enough
5760
+ # healthy backend endpoints in the local zone, the load balancer
5761
+ # distributes new connections to all healthy backend endpoints across all
5762
+ # zones.
5763
+ # Corresponds to the JSON property `spillover`
5764
+ # @return [String]
5765
+ attr_accessor :spillover
5766
+
5767
+ # The value of the field must be in [0, 1]. When the ratio of the count
5768
+ # of healthy backend endpoints in a zone to the count of backend
5769
+ # endpoints in that same zone is equal to or above this threshold, the
5770
+ # load balancer distributes new connections to all healthy endpoints in
5771
+ # the local zone only. When the ratio of the count of healthy backend
5772
+ # endpoints in a zone to the count of backend endpoints in that same
5773
+ # zone is below this threshold, the load balancer distributes all new
5774
+ # connections to all healthy endpoints across all zones.
5775
+ # Corresponds to the JSON property `spilloverRatio`
5776
+ # @return [Float]
5777
+ attr_accessor :spillover_ratio
5778
+
5779
+ def initialize(**args)
5780
+ update!(**args)
5781
+ end
5782
+
5783
+ # Update properties of this object
5784
+ def update!(**args)
5785
+ @spillover = args[:spillover] if args.key?(:spillover)
5786
+ @spillover_ratio = args[:spillover_ratio] if args.key?(:spillover_ratio)
5787
+ end
5788
+ end
5789
+
5714
5790
  # Additional Backend Service parameters.
5715
5791
  class BackendServiceParams
5716
5792
  include Google::Apis::Core::Hashable
@@ -6478,6 +6554,11 @@ module Google
6478
6554
  # @return [Fixnum]
6479
6555
  attr_accessor :count
6480
6556
 
6557
+ # A flexible specification of machine types for instances to create.
6558
+ # Corresponds to the JSON property `instanceFlexibilityPolicy`
6559
+ # @return [Google::Apis::ComputeV1::InstanceFlexibilityPolicy]
6560
+ attr_accessor :instance_flexibility_policy
6561
+
6481
6562
  # The instance properties defining the VM instances to be created. Required
6482
6563
  # if sourceInstanceTemplate is not provided.
6483
6564
  # Corresponds to the JSON property `instanceProperties`
@@ -6548,6 +6629,7 @@ module Google
6548
6629
  # Update properties of this object
6549
6630
  def update!(**args)
6550
6631
  @count = args[:count] if args.key?(:count)
6632
+ @instance_flexibility_policy = args[:instance_flexibility_policy] if args.key?(:instance_flexibility_policy)
6551
6633
  @instance_properties = args[:instance_properties] if args.key?(:instance_properties)
6552
6634
  @location_policy = args[:location_policy] if args.key?(:location_policy)
6553
6635
  @min_count = args[:min_count] if args.key?(:min_count)
@@ -11730,6 +11812,16 @@ module Google
11730
11812
  # @return [Array<String>]
11731
11813
  attr_accessor :dest_ip_ranges
11732
11814
 
11815
+ # Network context of the traffic destination. Allowed values are:
11816
+ #
11817
+ #
11818
+ # - UNSPECIFIED
11819
+ # - INTERNET
11820
+ # - NON_INTERNET
11821
+ # Corresponds to the JSON property `destNetworkContext`
11822
+ # @return [String]
11823
+ attr_accessor :dest_network_context
11824
+
11733
11825
  # Network type of the traffic destination. Allowed values are:
11734
11826
  #
11735
11827
  #
@@ -11778,6 +11870,18 @@ module Google
11778
11870
  # @return [Array<String>]
11779
11871
  attr_accessor :src_ip_ranges
11780
11872
 
11873
+ # Network context of the traffic source. Allowed values are:
11874
+ #
11875
+ #
11876
+ # - UNSPECIFIED
11877
+ # - INTERNET
11878
+ # - INTRA_VPC
11879
+ # - NON_INTERNET
11880
+ # - VPC_NETWORKS
11881
+ # Corresponds to the JSON property `srcNetworkContext`
11882
+ # @return [String]
11883
+ attr_accessor :src_network_context
11884
+
11781
11885
  # Network type of the traffic source. Allowed values are:
11782
11886
  #
11783
11887
  #
@@ -11827,6 +11931,7 @@ module Google
11827
11931
  @dest_address_groups = args[:dest_address_groups] if args.key?(:dest_address_groups)
11828
11932
  @dest_fqdns = args[:dest_fqdns] if args.key?(:dest_fqdns)
11829
11933
  @dest_ip_ranges = args[:dest_ip_ranges] if args.key?(:dest_ip_ranges)
11934
+ @dest_network_context = args[:dest_network_context] if args.key?(:dest_network_context)
11830
11935
  @dest_network_type = args[:dest_network_type] if args.key?(:dest_network_type)
11831
11936
  @dest_region_codes = args[:dest_region_codes] if args.key?(:dest_region_codes)
11832
11937
  @dest_threat_intelligences = args[:dest_threat_intelligences] if args.key?(:dest_threat_intelligences)
@@ -11834,6 +11939,7 @@ module Google
11834
11939
  @src_address_groups = args[:src_address_groups] if args.key?(:src_address_groups)
11835
11940
  @src_fqdns = args[:src_fqdns] if args.key?(:src_fqdns)
11836
11941
  @src_ip_ranges = args[:src_ip_ranges] if args.key?(:src_ip_ranges)
11942
+ @src_network_context = args[:src_network_context] if args.key?(:src_network_context)
11837
11943
  @src_network_type = args[:src_network_type] if args.key?(:src_network_type)
11838
11944
  @src_networks = args[:src_networks] if args.key?(:src_networks)
11839
11945
  @src_region_codes = args[:src_region_codes] if args.key?(:src_region_codes)
@@ -18547,6 +18653,76 @@ module Google
18547
18653
  end
18548
18654
  end
18549
18655
 
18656
+ # A flexible specification of machine types for instances to create.
18657
+ class InstanceFlexibilityPolicy
18658
+ include Google::Apis::Core::Hashable
18659
+
18660
+ # Specification of alternative, flexible instance subsets.
18661
+ # One of them will be selected to create the instances
18662
+ # based on various criteria, like:
18663
+ # - ranks,
18664
+ # - location policy,
18665
+ # - current capacity,
18666
+ # - available reservations (you can specify affinity in
18667
+ # InstanceProperties),
18668
+ # - SWAN/GOOSE limitations.
18669
+ # Key is an arbitrary, unique RFC1035 string that identifies the instance
18670
+ # selection.
18671
+ # Corresponds to the JSON property `instanceSelections`
18672
+ # @return [Hash<String,Google::Apis::ComputeV1::InstanceFlexibilityPolicyInstanceSelection>]
18673
+ attr_accessor :instance_selections
18674
+
18675
+ def initialize(**args)
18676
+ update!(**args)
18677
+ end
18678
+
18679
+ # Update properties of this object
18680
+ def update!(**args)
18681
+ @instance_selections = args[:instance_selections] if args.key?(:instance_selections)
18682
+ end
18683
+ end
18684
+
18685
+ # Specification of machine type to use. Every position inside this message
18686
+ # is an alternative.
18687
+ # The count specified in the shape flexibility must not exceed the number
18688
+ # of entries in per_instance_properties or the capacity of the
18689
+ # name_pattern, if used.
18690
+ class InstanceFlexibilityPolicyInstanceSelection
18691
+ include Google::Apis::Core::Hashable
18692
+
18693
+ # Disks to be attached to the instances created from in this selection.
18694
+ # They override the disks specified in the instance properties.
18695
+ # Corresponds to the JSON property `disks`
18696
+ # @return [Array<Google::Apis::ComputeV1::AttachedDisk>]
18697
+ attr_accessor :disks
18698
+
18699
+ # Alternative machine types to use for instances that are created from
18700
+ # these properties. This field only accepts a machine type names, for
18701
+ # example `n2-standard-4` and not URLs or partial URLs.
18702
+ # Corresponds to the JSON property `machineTypes`
18703
+ # @return [Array<String>]
18704
+ attr_accessor :machine_types
18705
+
18706
+ # Rank when prioritizing the shape flexibilities.
18707
+ # The instance selections with rank are considered
18708
+ # first, in the ascending order of the rank.
18709
+ # If not set, defaults to 0.
18710
+ # Corresponds to the JSON property `rank`
18711
+ # @return [Fixnum]
18712
+ attr_accessor :rank
18713
+
18714
+ def initialize(**args)
18715
+ update!(**args)
18716
+ end
18717
+
18718
+ # Update properties of this object
18719
+ def update!(**args)
18720
+ @disks = args[:disks] if args.key?(:disks)
18721
+ @machine_types = args[:machine_types] if args.key?(:machine_types)
18722
+ @rank = args[:rank] if args.key?(:rank)
18723
+ end
18724
+ end
18725
+
18550
18726
  # Represents an Instance Group resource.
18551
18727
  # Instance Groups can be used to configure a target forload
18552
18728
  # balancing.
@@ -24358,6 +24534,7 @@ module Google
24358
24534
  # - BPS_20G: 20 Gbit/s
24359
24535
  # - BPS_50G: 50 Gbit/s
24360
24536
  # - BPS_100G: 100 Gbit/s
24537
+ # - BPS_400G: 400 Gbit/s
24361
24538
  # Corresponds to the JSON property `bandwidth`
24362
24539
  # @return [String]
24363
24540
  attr_accessor :bandwidth
@@ -28511,6 +28688,11 @@ module Google
28511
28688
  attr_accessor :os_license
28512
28689
  alias_method :os_license?, :os_license
28513
28690
 
28691
+ # Additional license params.
28692
+ # Corresponds to the JSON property `params`
28693
+ # @return [Google::Apis::ComputeV1::LicenseParams]
28694
+ attr_accessor :params
28695
+
28514
28696
  # If true, this license can be removed from a disk's set of licenses, with no
28515
28697
  # replacement license needed.
28516
28698
  # Corresponds to the JSON property `removableFromDisk`
@@ -28579,6 +28761,7 @@ module Google
28579
28761
  @multi_tenant_only = args[:multi_tenant_only] if args.key?(:multi_tenant_only)
28580
28762
  @name = args[:name] if args.key?(:name)
28581
28763
  @os_license = args[:os_license] if args.key?(:os_license)
28764
+ @params = args[:params] if args.key?(:params)
28582
28765
  @removable_from_disk = args[:removable_from_disk] if args.key?(:removable_from_disk)
28583
28766
  @required_coattached_licenses = args[:required_coattached_licenses] if args.key?(:required_coattached_licenses)
28584
28767
  @resource_requirements = args[:resource_requirements] if args.key?(:resource_requirements)
@@ -28697,6 +28880,32 @@ module Google
28697
28880
  end
28698
28881
  end
28699
28882
 
28883
+ # Additional license params.
28884
+ class LicenseParams
28885
+ include Google::Apis::Core::Hashable
28886
+
28887
+ # Input only. Resource manager tags to be bound to the license. Tag keys and
28888
+ # values
28889
+ # have the same definition as resource
28890
+ # manager tags. Keys and values can be either in numeric format,
28891
+ # such as `tagKeys/`tag_key_id`` and `tagValues/456` or in namespaced
28892
+ # format such as ``org_id|project_id`/`tag_key_short_name`` and
28893
+ # ``tag_value_short_name``. The field is ignored (both PUT &
28894
+ # PATCH) when empty.
28895
+ # Corresponds to the JSON property `resourceManagerTags`
28896
+ # @return [Hash<String,String>]
28897
+ attr_accessor :resource_manager_tags
28898
+
28899
+ def initialize(**args)
28900
+ update!(**args)
28901
+ end
28902
+
28903
+ # Update properties of this object
28904
+ def update!(**args)
28905
+ @resource_manager_tags = args[:resource_manager_tags] if args.key?(:resource_manager_tags)
28906
+ end
28907
+ end
28908
+
28700
28909
  # Commitment for a particular license resource.
28701
28910
  class LicenseResourceCommitment
28702
28911
  include Google::Apis::Core::Hashable
@@ -33330,6 +33539,11 @@ module Google
33330
33539
  # @return [Array<String>]
33331
33540
  attr_accessor :address_purposes
33332
33541
 
33542
+ # Specifies whether address creation is allowed.
33543
+ # Corresponds to the JSON property `allowAddressCreation`
33544
+ # @return [String]
33545
+ attr_accessor :allow_address_creation
33546
+
33333
33547
  # Specifies whether alias IP ranges (and secondary address ranges) are
33334
33548
  # allowed.
33335
33549
  # Corresponds to the JSON property `allowAliasIpRanges`
@@ -33367,6 +33581,11 @@ module Google
33367
33581
  # @return [String]
33368
33582
  attr_accessor :allow_external_ip_access
33369
33583
 
33584
+ # Specifies whether firewall policy can be attached to the network.
33585
+ # Corresponds to the JSON property `allowFirewallPolicy`
33586
+ # @return [String]
33587
+ attr_accessor :allow_firewall_policy
33588
+
33370
33589
  # Specifies whether Cloud Interconnect creation is allowed.
33371
33590
  # Corresponds to the JSON property `allowInterconnect`
33372
33591
  # @return [String]
@@ -33387,6 +33606,11 @@ module Google
33387
33606
  # @return [String]
33388
33607
  attr_accessor :allow_multi_nic_in_same_network
33389
33608
 
33609
+ # Specifies whether multi-nic in the same subnetwork is allowed.
33610
+ # Corresponds to the JSON property `allowMultiNicInSameSubnetwork`
33611
+ # @return [String]
33612
+ attr_accessor :allow_multi_nic_in_same_subnetwork
33613
+
33390
33614
  # Specifies whether multicast is allowed.
33391
33615
  # Corresponds to the JSON property `allowMulticast`
33392
33616
  # @return [String]
@@ -33432,6 +33656,16 @@ module Google
33432
33656
  # @return [String]
33433
33657
  attr_accessor :allow_sub_interfaces
33434
33658
 
33659
+ # Specifies whether subnetwork creation is allowed.
33660
+ # Corresponds to the JSON property `allowSubnetworkCreation`
33661
+ # @return [String]
33662
+ attr_accessor :allow_subnetwork_creation
33663
+
33664
+ # Specifies whether VPC firewall rules can be created under the network.
33665
+ # Corresponds to the JSON property `allowVpcFirewallRules`
33666
+ # @return [String]
33667
+ attr_accessor :allow_vpc_firewall_rules
33668
+
33435
33669
  # Specifies whether VPC peering is allowed.
33436
33670
  # Corresponds to the JSON property `allowVpcPeering`
33437
33671
  # @return [String]
@@ -33442,6 +33676,11 @@ module Google
33442
33676
  # @return [String]
33443
33677
  attr_accessor :allow_vpn
33444
33678
 
33679
+ #
33680
+ # Corresponds to the JSON property `firewallPolicyTypes`
33681
+ # @return [Array<String>]
33682
+ attr_accessor :firewall_policy_types
33683
+
33445
33684
  # If set, limits the interface types that the network supports. If
33446
33685
  # empty, all interface types are supported.
33447
33686
  # Corresponds to the JSON property `interfaceTypes`
@@ -33453,6 +33692,16 @@ module Google
33453
33692
  # @return [String]
33454
33693
  attr_accessor :multicast
33455
33694
 
33695
+ # Specifies a predefined internal IPv6 range for the network.
33696
+ # Corresponds to the JSON property `predefinedNetworkInternalIpv6Range`
33697
+ # @return [String]
33698
+ attr_accessor :predefined_network_internal_ipv6_range
33699
+
33700
+ # Predefined subnetwork ranges for the network.
33701
+ # Corresponds to the JSON property `predefinedSubnetworkRanges`
33702
+ # @return [Array<Google::Apis::ComputeV1::NetworkProfileNetworkFeaturesPredefinedSubnetworkRange>]
33703
+ attr_accessor :predefined_subnetwork_ranges
33704
+
33456
33705
  # Specifies which subnetwork purposes are supported.
33457
33706
  # Corresponds to the JSON property `subnetPurposes`
33458
33707
  # @return [Array<String>]
@@ -33485,6 +33734,7 @@ module Google
33485
33734
  # Update properties of this object
33486
33735
  def update!(**args)
33487
33736
  @address_purposes = args[:address_purposes] if args.key?(:address_purposes)
33737
+ @allow_address_creation = args[:allow_address_creation] if args.key?(:allow_address_creation)
33488
33738
  @allow_alias_ip_ranges = args[:allow_alias_ip_ranges] if args.key?(:allow_alias_ip_ranges)
33489
33739
  @allow_auto_mode_subnet = args[:allow_auto_mode_subnet] if args.key?(:allow_auto_mode_subnet)
33490
33740
  @allow_class_d_firewalls = args[:allow_class_d_firewalls] if args.key?(:allow_class_d_firewalls)
@@ -33492,10 +33742,12 @@ module Google
33492
33742
  @allow_cloud_router = args[:allow_cloud_router] if args.key?(:allow_cloud_router)
33493
33743
  @allow_default_nic_attachment = args[:allow_default_nic_attachment] if args.key?(:allow_default_nic_attachment)
33494
33744
  @allow_external_ip_access = args[:allow_external_ip_access] if args.key?(:allow_external_ip_access)
33745
+ @allow_firewall_policy = args[:allow_firewall_policy] if args.key?(:allow_firewall_policy)
33495
33746
  @allow_interconnect = args[:allow_interconnect] if args.key?(:allow_interconnect)
33496
33747
  @allow_ip_forwarding = args[:allow_ip_forwarding] if args.key?(:allow_ip_forwarding)
33497
33748
  @allow_load_balancing = args[:allow_load_balancing] if args.key?(:allow_load_balancing)
33498
33749
  @allow_multi_nic_in_same_network = args[:allow_multi_nic_in_same_network] if args.key?(:allow_multi_nic_in_same_network)
33750
+ @allow_multi_nic_in_same_subnetwork = args[:allow_multi_nic_in_same_subnetwork] if args.key?(:allow_multi_nic_in_same_subnetwork)
33499
33751
  @allow_multicast = args[:allow_multicast] if args.key?(:allow_multicast)
33500
33752
  @allow_ncc = args[:allow_ncc] if args.key?(:allow_ncc)
33501
33753
  @allow_network_migration = args[:allow_network_migration] if args.key?(:allow_network_migration)
@@ -33505,10 +33757,15 @@ module Google
33505
33757
  @allow_same_network_unicast = args[:allow_same_network_unicast] if args.key?(:allow_same_network_unicast)
33506
33758
  @allow_static_routes = args[:allow_static_routes] if args.key?(:allow_static_routes)
33507
33759
  @allow_sub_interfaces = args[:allow_sub_interfaces] if args.key?(:allow_sub_interfaces)
33760
+ @allow_subnetwork_creation = args[:allow_subnetwork_creation] if args.key?(:allow_subnetwork_creation)
33761
+ @allow_vpc_firewall_rules = args[:allow_vpc_firewall_rules] if args.key?(:allow_vpc_firewall_rules)
33508
33762
  @allow_vpc_peering = args[:allow_vpc_peering] if args.key?(:allow_vpc_peering)
33509
33763
  @allow_vpn = args[:allow_vpn] if args.key?(:allow_vpn)
33764
+ @firewall_policy_types = args[:firewall_policy_types] if args.key?(:firewall_policy_types)
33510
33765
  @interface_types = args[:interface_types] if args.key?(:interface_types)
33511
33766
  @multicast = args[:multicast] if args.key?(:multicast)
33767
+ @predefined_network_internal_ipv6_range = args[:predefined_network_internal_ipv6_range] if args.key?(:predefined_network_internal_ipv6_range)
33768
+ @predefined_subnetwork_ranges = args[:predefined_subnetwork_ranges] if args.key?(:predefined_subnetwork_ranges)
33512
33769
  @subnet_purposes = args[:subnet_purposes] if args.key?(:subnet_purposes)
33513
33770
  @subnet_stack_types = args[:subnet_stack_types] if args.key?(:subnet_stack_types)
33514
33771
  @subnetwork_purposes = args[:subnetwork_purposes] if args.key?(:subnetwork_purposes)
@@ -33517,6 +33774,31 @@ module Google
33517
33774
  end
33518
33775
  end
33519
33776
 
33777
+ #
33778
+ class NetworkProfileNetworkFeaturesPredefinedSubnetworkRange
33779
+ include Google::Apis::Core::Hashable
33780
+
33781
+ # The IPv6 range of the predefined subnetwork.
33782
+ # Corresponds to the JSON property `ipv6Range`
33783
+ # @return [String]
33784
+ attr_accessor :ipv6_range
33785
+
33786
+ # The naming prefix of the predefined subnetwork.
33787
+ # Corresponds to the JSON property `namePrefix`
33788
+ # @return [String]
33789
+ attr_accessor :name_prefix
33790
+
33791
+ def initialize(**args)
33792
+ update!(**args)
33793
+ end
33794
+
33795
+ # Update properties of this object
33796
+ def update!(**args)
33797
+ @ipv6_range = args[:ipv6_range] if args.key?(:ipv6_range)
33798
+ @name_prefix = args[:name_prefix] if args.key?(:name_prefix)
33799
+ end
33800
+ end
33801
+
33520
33802
  #
33521
33803
  class NetworkProfileProfileType
33522
33804
  include Google::Apis::Core::Hashable
@@ -42301,6 +42583,13 @@ module Google
42301
42583
  # @return [Fixnum]
42302
42584
  attr_accessor :in_use_count
42303
42585
 
42586
+ # Output only. Number of hosts currently in use. If there is one or more
42587
+ # Instances running
42588
+ # on the host, it is considered in use.
42589
+ # Corresponds to the JSON property `inUseHostCount`
42590
+ # @return [Fixnum]
42591
+ attr_accessor :in_use_host_count
42592
+
42304
42593
  # Output only. [Output Only] Type of the resource. Alwayscompute#
42305
42594
  # reservationBlock for reservation blocks.
42306
42595
  # Corresponds to the JSON property `kind`
@@ -42373,6 +42662,7 @@ module Google
42373
42662
  @health_info = args[:health_info] if args.key?(:health_info)
42374
42663
  @id = args[:id] if args.key?(:id)
42375
42664
  @in_use_count = args[:in_use_count] if args.key?(:in_use_count)
42665
+ @in_use_host_count = args[:in_use_host_count] if args.key?(:in_use_host_count)
42376
42666
  @kind = args[:kind] if args.key?(:kind)
42377
42667
  @name = args[:name] if args.key?(:name)
42378
42668
  @physical_topology = args[:physical_topology] if args.key?(:physical_topology)
@@ -42774,6 +43064,303 @@ module Google
42774
43064
  end
42775
43065
  end
42776
43066
 
43067
+ # Represents a reservation slot resource.
43068
+ class ReservationSlot
43069
+ include Google::Apis::Core::Hashable
43070
+
43071
+ # Output only. [Output Only] The creation timestamp, formatted asRFC3339 text.
43072
+ # Corresponds to the JSON property `creationTimestamp`
43073
+ # @return [String]
43074
+ attr_accessor :creation_timestamp
43075
+
43076
+ # Output only. [Output Only] The unique identifier for this resource. This
43077
+ # identifier is
43078
+ # defined by the server.
43079
+ # Corresponds to the JSON property `id`
43080
+ # @return [Fixnum]
43081
+ attr_accessor :id
43082
+
43083
+ # Output only. [Output Only] The type of resource. Alwayscompute#reservationSlot
43084
+ # for reservation slots.
43085
+ # Corresponds to the JSON property `kind`
43086
+ # @return [String]
43087
+ attr_accessor :kind
43088
+
43089
+ # Output only. [Output Only] The name of the reservation slot.
43090
+ # Corresponds to the JSON property `name`
43091
+ # @return [String]
43092
+ attr_accessor :name
43093
+
43094
+ # Output only. [Output Only] The physical topology of the reservation slot.
43095
+ # Corresponds to the JSON property `physicalTopology`
43096
+ # @return [Google::Apis::ComputeV1::ReservationSlotPhysicalTopology]
43097
+ attr_accessor :physical_topology
43098
+
43099
+ # Output only. [Output Only] A server-defined fully-qualified URL for this
43100
+ # resource.
43101
+ # Corresponds to the JSON property `selfLink`
43102
+ # @return [String]
43103
+ attr_accessor :self_link
43104
+
43105
+ # Output only. [Output Only] A server-defined URL for this resource with the
43106
+ # resource ID.
43107
+ # Corresponds to the JSON property `selfLinkWithId`
43108
+ # @return [String]
43109
+ attr_accessor :self_link_with_id
43110
+
43111
+ # The share setting for reservations and sole tenancy node groups.
43112
+ # Corresponds to the JSON property `shareSettings`
43113
+ # @return [Google::Apis::ComputeV1::ShareSettings]
43114
+ attr_accessor :share_settings
43115
+
43116
+ # Output only. [Output Only] The state of the reservation slot.
43117
+ # Corresponds to the JSON property `state`
43118
+ # @return [String]
43119
+ attr_accessor :state
43120
+
43121
+ # Output only. [Output Only] The status of the reservation slot.
43122
+ # Corresponds to the JSON property `status`
43123
+ # @return [Google::Apis::ComputeV1::ReservationSlotStatus]
43124
+ attr_accessor :status
43125
+
43126
+ # Output only. [Output Only] The zone in which the reservation slot resides.
43127
+ # Corresponds to the JSON property `zone`
43128
+ # @return [String]
43129
+ attr_accessor :zone
43130
+
43131
+ def initialize(**args)
43132
+ update!(**args)
43133
+ end
43134
+
43135
+ # Update properties of this object
43136
+ def update!(**args)
43137
+ @creation_timestamp = args[:creation_timestamp] if args.key?(:creation_timestamp)
43138
+ @id = args[:id] if args.key?(:id)
43139
+ @kind = args[:kind] if args.key?(:kind)
43140
+ @name = args[:name] if args.key?(:name)
43141
+ @physical_topology = args[:physical_topology] if args.key?(:physical_topology)
43142
+ @self_link = args[:self_link] if args.key?(:self_link)
43143
+ @self_link_with_id = args[:self_link_with_id] if args.key?(:self_link_with_id)
43144
+ @share_settings = args[:share_settings] if args.key?(:share_settings)
43145
+ @state = args[:state] if args.key?(:state)
43146
+ @status = args[:status] if args.key?(:status)
43147
+ @zone = args[:zone] if args.key?(:zone)
43148
+ end
43149
+ end
43150
+
43151
+ #
43152
+ class ReservationSlotPhysicalTopology
43153
+ include Google::Apis::Core::Hashable
43154
+
43155
+ # The unique identifier of the capacity block within the cluster.
43156
+ # Corresponds to the JSON property `block`
43157
+ # @return [String]
43158
+ attr_accessor :block
43159
+
43160
+ # The cluster name of the reservation sub-block.
43161
+ # Corresponds to the JSON property `cluster`
43162
+ # @return [String]
43163
+ attr_accessor :cluster
43164
+
43165
+ # The unique identifier of the capacity host within the capacity sub-block.
43166
+ # Corresponds to the JSON property `host`
43167
+ # @return [String]
43168
+ attr_accessor :host
43169
+
43170
+ # The unique identifier of the capacity sub-block within the capacity
43171
+ # block.
43172
+ # Corresponds to the JSON property `subBlock`
43173
+ # @return [String]
43174
+ attr_accessor :sub_block
43175
+
43176
+ def initialize(**args)
43177
+ update!(**args)
43178
+ end
43179
+
43180
+ # Update properties of this object
43181
+ def update!(**args)
43182
+ @block = args[:block] if args.key?(:block)
43183
+ @cluster = args[:cluster] if args.key?(:cluster)
43184
+ @host = args[:host] if args.key?(:host)
43185
+ @sub_block = args[:sub_block] if args.key?(:sub_block)
43186
+ end
43187
+ end
43188
+
43189
+ #
43190
+ class ReservationSlotStatus
43191
+ include Google::Apis::Core::Hashable
43192
+
43193
+ # Output only. [Output Only] The physical topology of the reservation sub-block.
43194
+ # Corresponds to the JSON property `physicalTopology`
43195
+ # @return [Google::Apis::ComputeV1::ReservationSlotPhysicalTopology]
43196
+ attr_accessor :physical_topology
43197
+
43198
+ # Output only. The RDMA IP address of the physical host.
43199
+ # Corresponds to the JSON property `rdmaIpAddresses`
43200
+ # @return [Array<String>]
43201
+ attr_accessor :rdma_ip_addresses
43202
+
43203
+ # Output only. The URIs of the instances currently running on this slot.
43204
+ # Corresponds to the JSON property `runningInstances`
43205
+ # @return [Array<String>]
43206
+ attr_accessor :running_instances
43207
+
43208
+ def initialize(**args)
43209
+ update!(**args)
43210
+ end
43211
+
43212
+ # Update properties of this object
43213
+ def update!(**args)
43214
+ @physical_topology = args[:physical_topology] if args.key?(:physical_topology)
43215
+ @rdma_ip_addresses = args[:rdma_ip_addresses] if args.key?(:rdma_ip_addresses)
43216
+ @running_instances = args[:running_instances] if args.key?(:running_instances)
43217
+ end
43218
+ end
43219
+
43220
+ #
43221
+ class ReservationSlotsGetResponse
43222
+ include Google::Apis::Core::Hashable
43223
+
43224
+ # Represents a reservation slot resource.
43225
+ # Corresponds to the JSON property `resource`
43226
+ # @return [Google::Apis::ComputeV1::ReservationSlot]
43227
+ attr_accessor :resource
43228
+
43229
+ def initialize(**args)
43230
+ update!(**args)
43231
+ end
43232
+
43233
+ # Update properties of this object
43234
+ def update!(**args)
43235
+ @resource = args[:resource] if args.key?(:resource)
43236
+ end
43237
+ end
43238
+
43239
+ # A list of reservation slots within a single reservation.
43240
+ class ReservationSlotsListResponse
43241
+ include Google::Apis::Core::Hashable
43242
+
43243
+ # The unique identifier for the resource; defined by the server.
43244
+ # Corresponds to the JSON property `id`
43245
+ # @return [String]
43246
+ attr_accessor :id
43247
+
43248
+ # A list of reservation slot resources.
43249
+ # Corresponds to the JSON property `items`
43250
+ # @return [Array<Google::Apis::ComputeV1::ReservationSlot>]
43251
+ attr_accessor :items
43252
+
43253
+ # The type of resource. Alwayscompute#reservationSlot for a list of reservation
43254
+ # slots.
43255
+ # Corresponds to the JSON property `kind`
43256
+ # @return [String]
43257
+ attr_accessor :kind
43258
+
43259
+ # This token allows you to get the next page of results for
43260
+ # list requests. If the number of results is larger thanmaxResults, use the
43261
+ # nextPageToken as a value for
43262
+ # the query parameter pageToken in the next list request.
43263
+ # Subsequent list requests will have their own nextPageToken to
43264
+ # continue paging through the results.
43265
+ # Corresponds to the JSON property `nextPageToken`
43266
+ # @return [String]
43267
+ attr_accessor :next_page_token
43268
+
43269
+ # The server-defined URL for this resource.
43270
+ # Corresponds to the JSON property `selfLink`
43271
+ # @return [String]
43272
+ attr_accessor :self_link
43273
+
43274
+ # An informational warning message.
43275
+ # Corresponds to the JSON property `warning`
43276
+ # @return [Google::Apis::ComputeV1::ReservationSlotsListResponse::Warning]
43277
+ attr_accessor :warning
43278
+
43279
+ def initialize(**args)
43280
+ update!(**args)
43281
+ end
43282
+
43283
+ # Update properties of this object
43284
+ def update!(**args)
43285
+ @id = args[:id] if args.key?(:id)
43286
+ @items = args[:items] if args.key?(:items)
43287
+ @kind = args[:kind] if args.key?(:kind)
43288
+ @next_page_token = args[:next_page_token] if args.key?(:next_page_token)
43289
+ @self_link = args[:self_link] if args.key?(:self_link)
43290
+ @warning = args[:warning] if args.key?(:warning)
43291
+ end
43292
+
43293
+ # An informational warning message.
43294
+ class Warning
43295
+ include Google::Apis::Core::Hashable
43296
+
43297
+ # [Output Only] A warning code, if applicable. For example, Compute
43298
+ # Engine returns NO_RESULTS_ON_PAGE if there
43299
+ # are no results in the response.
43300
+ # Corresponds to the JSON property `code`
43301
+ # @return [String]
43302
+ attr_accessor :code
43303
+
43304
+ # [Output Only] Metadata about this warning in key:
43305
+ # value format. For example:
43306
+ # "data": [
43307
+ # `
43308
+ # "key": "scope",
43309
+ # "value": "zones/us-east1-d"
43310
+ # `
43311
+ # Corresponds to the JSON property `data`
43312
+ # @return [Array<Google::Apis::ComputeV1::ReservationSlotsListResponse::Warning::Datum>]
43313
+ attr_accessor :data
43314
+
43315
+ # [Output Only] A human-readable description of the warning code.
43316
+ # Corresponds to the JSON property `message`
43317
+ # @return [String]
43318
+ attr_accessor :message
43319
+
43320
+ def initialize(**args)
43321
+ update!(**args)
43322
+ end
43323
+
43324
+ # Update properties of this object
43325
+ def update!(**args)
43326
+ @code = args[:code] if args.key?(:code)
43327
+ @data = args[:data] if args.key?(:data)
43328
+ @message = args[:message] if args.key?(:message)
43329
+ end
43330
+
43331
+ #
43332
+ class Datum
43333
+ include Google::Apis::Core::Hashable
43334
+
43335
+ # [Output Only] A key that provides more detail on the warning being
43336
+ # returned. For example, for warnings where there are no results in a list
43337
+ # request for a particular zone, this key might be scope and
43338
+ # the key value might be the zone name. Other examples might be a key
43339
+ # indicating a deprecated resource and a suggested replacement, or a
43340
+ # warning about invalid network settings (for example, if an instance
43341
+ # attempts to perform IP forwarding but is not enabled for IP forwarding).
43342
+ # Corresponds to the JSON property `key`
43343
+ # @return [String]
43344
+ attr_accessor :key
43345
+
43346
+ # [Output Only] A warning data value corresponding to the key.
43347
+ # Corresponds to the JSON property `value`
43348
+ # @return [String]
43349
+ attr_accessor :value
43350
+
43351
+ def initialize(**args)
43352
+ update!(**args)
43353
+ end
43354
+
43355
+ # Update properties of this object
43356
+ def update!(**args)
43357
+ @key = args[:key] if args.key?(:key)
43358
+ @value = args[:value] if args.key?(:value)
43359
+ end
43360
+ end
43361
+ end
43362
+ end
43363
+
42777
43364
  # Represents a reservation subBlock resource.
42778
43365
  class ReservationSubBlock
42779
43366
  include Google::Apis::Core::Hashable
@@ -42813,6 +43400,13 @@ module Google
42813
43400
  # @return [Fixnum]
42814
43401
  attr_accessor :in_use_count
42815
43402
 
43403
+ # Output only. Number of hosts currently in use. If there is one or more
43404
+ # Instances running
43405
+ # on the host, it is considered in use.
43406
+ # Corresponds to the JSON property `inUseHostCount`
43407
+ # @return [Fixnum]
43408
+ attr_accessor :in_use_host_count
43409
+
42816
43410
  # Output only. [Output Only] Type of the resource. Alwayscompute#
42817
43411
  # reservationSubBlock for reservation subBlocks.
42818
43412
  # Corresponds to the JSON property `kind`
@@ -42871,6 +43465,7 @@ module Google
42871
43465
  @health_info = args[:health_info] if args.key?(:health_info)
42872
43466
  @id = args[:id] if args.key?(:id)
42873
43467
  @in_use_count = args[:in_use_count] if args.key?(:in_use_count)
43468
+ @in_use_host_count = args[:in_use_host_count] if args.key?(:in_use_host_count)
42874
43469
  @kind = args[:kind] if args.key?(:kind)
42875
43470
  @name = args[:name] if args.key?(:name)
42876
43471
  @physical_topology = args[:physical_topology] if args.key?(:physical_topology)
@@ -51315,6 +51910,11 @@ module Google
51315
51910
  # @return [Array<Google::Apis::ComputeV1::NetworkInterface>]
51316
51911
  attr_accessor :network_interfaces
51317
51912
 
51913
+ # PostKeyRevocationActionType of the instance.
51914
+ # Corresponds to the JSON property `postKeyRevocationActionType`
51915
+ # @return [String]
51916
+ attr_accessor :post_key_revocation_action_type
51917
+
51318
51918
  # Sets the scheduling options for an Instance.
51319
51919
  # Corresponds to the JSON property `scheduling`
51320
51920
  # @return [Google::Apis::ComputeV1::Scheduling]
@@ -51350,6 +51950,7 @@ module Google
51350
51950
  @metadata = args[:metadata] if args.key?(:metadata)
51351
51951
  @min_cpu_platform = args[:min_cpu_platform] if args.key?(:min_cpu_platform)
51352
51952
  @network_interfaces = args[:network_interfaces] if args.key?(:network_interfaces)
51953
+ @post_key_revocation_action_type = args[:post_key_revocation_action_type] if args.key?(:post_key_revocation_action_type)
51353
51954
  @scheduling = args[:scheduling] if args.key?(:scheduling)
51354
51955
  @service_accounts = args[:service_accounts] if args.key?(:service_accounts)
51355
51956
  @tags = args[:tags] if args.key?(:tags)
@@ -52716,6 +53317,11 @@ module Google
52716
53317
  # @return [String]
52717
53318
  attr_accessor :name
52718
53319
 
53320
+ # Additional storage pool params.
53321
+ # Corresponds to the JSON property `params`
53322
+ # @return [Google::Apis::ComputeV1::StoragePoolParams]
53323
+ attr_accessor :params
53324
+
52719
53325
  # Provisioning type of the performance-related parameters of the pool,
52720
53326
  # such as throughput and IOPS.
52721
53327
  # Corresponds to the JSON property `performanceProvisioningType`
@@ -52800,6 +53406,7 @@ module Google
52800
53406
  @label_fingerprint = args[:label_fingerprint] if args.key?(:label_fingerprint)
52801
53407
  @labels = args[:labels] if args.key?(:labels)
52802
53408
  @name = args[:name] if args.key?(:name)
53409
+ @params = args[:params] if args.key?(:params)
52803
53410
  @performance_provisioning_type = args[:performance_provisioning_type] if args.key?(:performance_provisioning_type)
52804
53411
  @pool_provisioned_capacity_gb = args[:pool_provisioned_capacity_gb] if args.key?(:pool_provisioned_capacity_gb)
52805
53412
  @pool_provisioned_iops = args[:pool_provisioned_iops] if args.key?(:pool_provisioned_iops)
@@ -53347,6 +53954,32 @@ module Google
53347
53954
  end
53348
53955
  end
53349
53956
 
53957
+ # Additional storage pool params.
53958
+ class StoragePoolParams
53959
+ include Google::Apis::Core::Hashable
53960
+
53961
+ # Input only. Resource manager tags to be bound to the storage pool. Tag keys
53962
+ # and values
53963
+ # have the same definition as resource
53964
+ # manager tags. Keys and values can be either in numeric format,
53965
+ # such as `tagKeys/`tag_key_id`` and `tagValues/456` or in namespaced
53966
+ # format such as ``org_id|project_id`/`tag_key_short_name`` and
53967
+ # ``tag_value_short_name``. The field is ignored (both PUT &
53968
+ # PATCH) when empty.
53969
+ # Corresponds to the JSON property `resourceManagerTags`
53970
+ # @return [Hash<String,String>]
53971
+ attr_accessor :resource_manager_tags
53972
+
53973
+ def initialize(**args)
53974
+ update!(**args)
53975
+ end
53976
+
53977
+ # Update properties of this object
53978
+ def update!(**args)
53979
+ @resource_manager_tags = args[:resource_manager_tags] if args.key?(:resource_manager_tags)
53980
+ end
53981
+ end
53982
+
53350
53983
  # [Output Only] Contains output only fields.
53351
53984
  class StoragePoolResourceStatus
53352
53985
  include Google::Apis::Core::Hashable