google-apis-compute_beta 0.145.0 → 0.147.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.
@@ -3341,7 +3341,8 @@ module Google
3341
3341
  # Specifies how to determine whether the backend of a load balancer can
3342
3342
  # handle additional traffic or is fully loaded. For usage guidelines, see
3343
3343
  # Connection balancing mode.
3344
- # Backends must use compatible balancing modes. For more information, see
3344
+ # Backends must use compatible balancing modes. Backends of a backend
3345
+ # service may use different balancing modes. For more information, see
3345
3346
  # Supported balancing modes and target capacity settings and
3346
3347
  # Restrictions and guidance for instance groups.
3347
3348
  # Note: Currently, if you use the API to configure incompatible balancing
@@ -3384,6 +3385,8 @@ module Google
3384
3385
 
3385
3386
  # This field designates whether this is a failover backend. More than one
3386
3387
  # failover backend can be configured for a given BackendService.
3388
+ # This field can only be used for a regional external Passthrough Network
3389
+ # Load Balancer or a regional internal Passthrough Network Load Balancer.
3387
3390
  # Corresponds to the JSON property `failover`
3388
3391
  # @return [Boolean]
3389
3392
  attr_accessor :failover
@@ -3501,6 +3504,12 @@ module Google
3501
3504
  # capacity, backends in this layer would be used and traffic would be
3502
3505
  # assigned based on the load balancing algorithm you use. This is the
3503
3506
  # default
3507
+ # For global external Passthrough Network Load Balancers, the following
3508
+ # restrictions apply:
3509
+ #
3510
+ # - At most one backend can be marked as PREFERRED.
3511
+ # - PREFERRED and DEFAULT backends cannot reside
3512
+ # in the same Cloud region.
3504
3513
  # Corresponds to the JSON property `preference`
3505
3514
  # @return [String]
3506
3515
  attr_accessor :preference
@@ -3843,16 +3852,17 @@ module Google
3843
3852
  attr_accessor :cache_key_policy
3844
3853
 
3845
3854
  # Specifies the cache setting for all responses from this backend.
3846
- # The possible values are:USE_ORIGIN_HEADERS Requires the origin to set valid
3847
- # caching
3855
+ # The possible values are:
3856
+ # USE_ORIGIN_HEADERS Requires the origin to set valid caching
3848
3857
  # headers to cache content. Responses without these headers will not be
3849
3858
  # cached at Google's edge, and will require a full trip to the origin on
3850
3859
  # every request, potentially impacting performance and increasing load on
3851
- # the origin server.FORCE_CACHE_ALL Cache all content, ignoring any "private",
3860
+ # the origin server.
3861
+ # FORCE_CACHE_ALL Cache all content, ignoring any "private",
3852
3862
  # "no-store" or "no-cache" directives in Cache-Control response headers.
3853
3863
  # Warning: this may result in Cloud CDN caching private,
3854
- # per-user (user identifiable) content.CACHE_ALL_STATIC Automatically cache
3855
- # static content,
3864
+ # per-user (user identifiable) content.
3865
+ # CACHE_ALL_STATIC Automatically cache static content,
3856
3866
  # including common image formats, media (video and audio), and web assets
3857
3867
  # (JavaScript and CSS). Requests and responses that are marked as
3858
3868
  # uncacheable, as well as dynamic content (including HTML), will not be
@@ -4720,8 +4730,10 @@ module Google
4720
4730
  # haPolicy requires customers to be responsible for tracking backend
4721
4731
  # endpoint health and electing a leader among the healthy endpoints.
4722
4732
  # Therefore, haPolicy cannot be specified with healthChecks.
4723
- # haPolicy can only be specified for External Passthrough Network Load
4724
- # Balancers and Internal Passthrough Network Load Balancers.
4733
+ # haPolicy can only be specified for External Passthrough
4734
+ # Network Load Balancers and Internal Passthrough Network Load Balancers.
4735
+ # haPolicy cannot be used by global external Passthrough Network
4736
+ # Load Balancers.
4725
4737
  # Corresponds to the JSON property `haPolicy`
4726
4738
  # @return [Google::Apis::ComputeBeta::BackendServiceHaPolicy]
4727
4739
  attr_accessor :ha_policy
@@ -4791,8 +4803,8 @@ module Google
4791
4803
 
4792
4804
  # Specifies the load balancer type. A backend service
4793
4805
  # created for one type of load balancer cannot be used with another.
4794
- # For more information, refer toChoosing
4795
- # a load balancer.
4806
+ # For more information, refer to
4807
+ # Backend services product and scheme table.
4796
4808
  # Corresponds to the JSON property `loadBalancingScheme`
4797
4809
  # @return [String]
4798
4810
  attr_accessor :load_balancing_scheme
@@ -4840,27 +4852,32 @@ module Google
4840
4852
  # HTTP response header field Endpoint-Load-Metrics. The reported
4841
4853
  # metrics to use for computing the weights are specified via thecustomMetrics
4842
4854
  # field.
4843
- #
4855
+ # - WEIGHTED_MAGLEV: Per-endpoint weighted load balancing via
4856
+ # health check reported weights. If set, the backend service must configure
4857
+ # an HTTP-based Health Check, and health check replies are expected to
4858
+ # contain the non-standard HTTP response header fieldX-Load-Balancing-
4859
+ # Endpoint-Weight to specify the per-endpoint
4860
+ # weights. If set, load balancing is weighted based on the per-endpoint
4861
+ # weights reported in the last processed health check replies, as long as
4862
+ # every instance either reported a valid weight or had UNAVAILABLE_WEIGHT.
4863
+ # Otherwise, load balancing remains equal-weight.
4844
4864
  # This field is applicable to either:
4865
+ #
4845
4866
  # - A regional backend service with the service protocol set to HTTP,
4846
4867
  # HTTPS, HTTP2 or H2C, and load_balancing_scheme set to
4847
4868
  # INTERNAL_MANAGED.
4848
4869
  # - A global backend service with the
4849
4870
  # load_balancing_scheme set to INTERNAL_SELF_MANAGED, INTERNAL_MANAGED, or
4850
4871
  # EXTERNAL_MANAGED.
4851
- #
4852
- #
4853
4872
  # If sessionAffinity is not configured—that is, if session
4854
4873
  # affinity remains at the default value of NONE—then the
4855
4874
  # default value for localityLbPolicy
4856
4875
  # is ROUND_ROBIN. If session affinity is set to a value other
4857
4876
  # than NONE,
4858
4877
  # then the default value for localityLbPolicy isMAGLEV.
4859
- #
4860
4878
  # Only ROUND_ROBIN and RING_HASH are supported
4861
4879
  # when the backend service is referenced by a URL map that is bound to
4862
4880
  # target gRPC proxy that has validateForProxyless field set to true.
4863
- #
4864
4881
  # localityLbPolicy cannot be specified with haPolicy.
4865
4882
  # Corresponds to the JSON property `localityLbPolicy`
4866
4883
  # @return [String]
@@ -4952,12 +4969,12 @@ module Google
4952
4969
  # @return [String]
4953
4970
  attr_accessor :port_name
4954
4971
 
4955
- # The protocol this BackendService uses to communicate
4956
- # with backends.
4957
- # Possible values are HTTP, HTTPS, HTTP2, H2C, TCP, SSL, UDP or GRPC.
4958
- # depending on the chosen load balancer or Traffic Director configuration.
4959
- # Refer to the documentation for the load balancers or for Traffic Director
4960
- # for more information.
4972
+ # The protocol this BackendService uses to communicate with backends.
4973
+ # Possible values are HTTP, HTTPS, HTTP2, H2C, TCP, SSL, UDP, GRPC, or
4974
+ # UNSPECIFIED, depending on the chosen load balancer or Traffic Director
4975
+ # configuration.
4976
+ # Refer to
4977
+ # Load balancing features for more information.
4961
4978
  # Must be set to GRPC when the backend service is referenced by a URL map
4962
4979
  # that is bound to target gRPC proxy.
4963
4980
  # Corresponds to the JSON property `protocol`
@@ -5268,16 +5285,17 @@ module Google
5268
5285
  attr_accessor :cache_key_policy
5269
5286
 
5270
5287
  # Specifies the cache setting for all responses from this backend.
5271
- # The possible values are:USE_ORIGIN_HEADERS Requires the origin to set valid
5272
- # caching
5288
+ # The possible values are:
5289
+ # USE_ORIGIN_HEADERS Requires the origin to set valid caching
5273
5290
  # headers to cache content. Responses without these headers will not be
5274
5291
  # cached at Google's edge, and will require a full trip to the origin on
5275
5292
  # every request, potentially impacting performance and increasing load on
5276
- # the origin server.FORCE_CACHE_ALL Cache all content, ignoring any "private",
5293
+ # the origin server.
5294
+ # FORCE_CACHE_ALL Cache all content, ignoring any "private",
5277
5295
  # "no-store" or "no-cache" directives in Cache-Control response headers.
5278
5296
  # Warning: this may result in Cloud CDN caching private,
5279
- # per-user (user identifiable) content.CACHE_ALL_STATIC Automatically cache
5280
- # static content,
5297
+ # per-user (user identifiable) content.
5298
+ # CACHE_ALL_STATIC Automatically cache static content,
5281
5299
  # including common image formats, media (video and audio), and web assets
5282
5300
  # (JavaScript and CSS). Requests and responses that are marked as
5283
5301
  # uncacheable, as well as dynamic content (including HTML), will not be
@@ -8151,7 +8169,6 @@ module Google
8151
8169
  include Google::Apis::Core::Hashable
8152
8170
 
8153
8171
  # Specifies the type of the disk.
8154
- # This field must be set to SCRATCH.
8155
8172
  # Corresponds to the JSON property `type`
8156
8173
  # @return [String]
8157
8174
  attr_accessor :type
@@ -10583,6 +10600,342 @@ module Google
10583
10600
  end
10584
10601
  end
10585
10602
 
10603
+ # A standalone, regional API resource that encapsulates a set of user-defined
10604
+ # DHCP configurations.
10605
+ class DhcpOptionsConfig
10606
+ include Google::Apis::Core::Hashable
10607
+
10608
+ # Mapping of user-defined keys to DhcpOptionsConfig to Network associations.
10609
+ # Corresponds to the JSON property `associations`
10610
+ # @return [Hash<String,Google::Apis::ComputeBeta::DhcpOptionsConfigAssociation>]
10611
+ attr_accessor :associations
10612
+
10613
+ # The file path and name of the boot image/file on the TFTP server that the
10614
+ # client VM guest OS should download and execute during network boot. Used
10615
+ # when the standard DHCP header 'file' field is overloaded. Corresponds to
10616
+ # DHCPv4 Option 67.
10617
+ # Corresponds to the JSON property `bootFileIpv4Name`
10618
+ # @return [String]
10619
+ attr_accessor :boot_file_ipv4_name
10620
+
10621
+ # A list of UTF-8 encoded parameter strings to be passed as arguments to the
10622
+ # bootloader program or OS kernel after downloading the boot file.
10623
+ # Corresponds to DHCPv6 Option 60.
10624
+ # Corresponds to the JSON property `bootFileIpv6Parameters`
10625
+ # @return [Array<String>]
10626
+ attr_accessor :boot_file_ipv6_parameters
10627
+
10628
+ # The Uniform Resource Locator (URL) specifying the protocol, server address,
10629
+ # and file path of the boot file that the client VM guest OS should download
10630
+ # and execute for network boot (e.g., 'tftp://[2001:db8::1]/bootx64.efi' or
10631
+ # 'http://[2001:db8::1]/boot.img'). Corresponds to DHCPv6 Option 59.
10632
+ # Corresponds to the JSON property `bootFileIpv6Url`
10633
+ # @return [String]
10634
+ attr_accessor :boot_file_ipv6_url
10635
+
10636
+ # Output only. [Output Only] Creation timestamp inRFC3339
10637
+ # text format.
10638
+ # Corresponds to the JSON property `creationTimestamp`
10639
+ # @return [String]
10640
+ attr_accessor :creation_timestamp
10641
+
10642
+ # An optional description of this resource. Provide this property when you
10643
+ # create the resource.
10644
+ # Corresponds to the JSON property `description`
10645
+ # @return [String]
10646
+ attr_accessor :description
10647
+
10648
+ # An ordered list of domain suffixes (search paths) that the client VM guest
10649
+ # OS should append to resolve hostnames that are not fully qualified. Applies
10650
+ # to both DHCPv4 Option 119 and DHCPv6 Option 24.
10651
+ # Corresponds to the JSON property `dnsSearchPaths`
10652
+ # @return [Array<String>]
10653
+ attr_accessor :dns_search_paths
10654
+
10655
+ # The domain name that the client VM guest OS should use when resolving
10656
+ # hostnames via DNS (e.g., 'example.com'). It defines the default domain
10657
+ # suffix for the client. Corresponds to DHCPv4 Option 15.
10658
+ # Corresponds to the JSON property `domainName`
10659
+ # @return [String]
10660
+ attr_accessor :domain_name
10661
+
10662
+ # Output only. [Output Only] The unique identifier for the resource type. The
10663
+ # server
10664
+ # generates this identifier.
10665
+ # Corresponds to the JSON property `id`
10666
+ # @return [Fixnum]
10667
+ attr_accessor :id
10668
+
10669
+ # Output only. [Output Only] Type of the resource. Alwayscompute#
10670
+ # dhcpOptionsConfig for dhcp options configs.
10671
+ # Corresponds to the JSON property `kind`
10672
+ # @return [String]
10673
+ attr_accessor :kind
10674
+
10675
+ # The duration, in seconds, of the IPv4 address lease offered by the DHCP
10676
+ # server to the client VM guest OS. Corresponds to DHCPv4 Option 51.
10677
+ # Corresponds to the JSON property `leaseTimeSec`
10678
+ # @return [Fixnum]
10679
+ attr_accessor :lease_time_sec
10680
+
10681
+ # Name of the resource. Provided by the client when the resource is created.
10682
+ # The name must be 1-63 characters long, and comply withRFC1035.
10683
+ # Specifically, the name must be 1-63 characters long and match the regular
10684
+ # expression `[a-z]([-a-z0-9]*[a-z0-9])?` which means the first
10685
+ # character must be a lowercase letter, and all following characters must
10686
+ # be a dash, lowercase letter, or digit, except the last character, which
10687
+ # cannot be a dash.
10688
+ # Corresponds to the JSON property `name`
10689
+ # @return [String]
10690
+ attr_accessor :name
10691
+
10692
+ # An ordered list of IPv4 addresses of Network Time Protocol (NTP) servers
10693
+ # available to the client VM guest OS for system clock synchronization,
10694
+ # listed in order of preference. Corresponds to DHCPv4 Option 42.
10695
+ # Corresponds to the JSON property `ntpServerIpv4Addresses`
10696
+ # @return [Array<String>]
10697
+ attr_accessor :ntp_server_ipv4_addresses
10698
+
10699
+ # An ordered list of IPv6 addresses of Network Time Protocol (NTP) servers
10700
+ # available to the client VM guest OS for system clock synchronization.
10701
+ # Corresponds to DHCPv6 Option 56.
10702
+ # Corresponds to the JSON property `ntpServerIpv6Addresses`
10703
+ # @return [Array<String>]
10704
+ attr_accessor :ntp_server_ipv6_addresses
10705
+
10706
+ # Output only. [Output Only] URL of the region where the resource resides.
10707
+ # Corresponds to the JSON property `region`
10708
+ # @return [String]
10709
+ attr_accessor :region
10710
+
10711
+ # Output only. [Output Only] Server-defined URL for the resource.
10712
+ # Corresponds to the JSON property `selfLink`
10713
+ # @return [String]
10714
+ attr_accessor :self_link
10715
+
10716
+ # An ordered list of one or more IPv4 addresses of TFTP servers. Provides
10717
+ # server redundancy and failover support, and is generally prioritized by
10718
+ # clients over the single hostname specified in Option 66. Corresponds to
10719
+ # DHCPv4 Option 150.
10720
+ # Corresponds to the JSON property `tftpServerIpv4Addresses`
10721
+ # @return [Array<String>]
10722
+ attr_accessor :tftp_server_ipv4_addresses
10723
+
10724
+ # The hostname or IP address of the Trivial File Transfer Protocol (TFTP)
10725
+ # server from which the client VM guest OS can download boot files. Typically
10726
+ # used in network booting (PXE) when the standard DHCP header 'sname' field
10727
+ # is overloaded. Corresponds to DHCPv4 Option 66.
10728
+ # Corresponds to the JSON property `tftpServerIpv4Name`
10729
+ # @return [String]
10730
+ attr_accessor :tftp_server_ipv4_name
10731
+
10732
+ def initialize(**args)
10733
+ update!(**args)
10734
+ end
10735
+
10736
+ # Update properties of this object
10737
+ def update!(**args)
10738
+ @associations = args[:associations] if args.key?(:associations)
10739
+ @boot_file_ipv4_name = args[:boot_file_ipv4_name] if args.key?(:boot_file_ipv4_name)
10740
+ @boot_file_ipv6_parameters = args[:boot_file_ipv6_parameters] if args.key?(:boot_file_ipv6_parameters)
10741
+ @boot_file_ipv6_url = args[:boot_file_ipv6_url] if args.key?(:boot_file_ipv6_url)
10742
+ @creation_timestamp = args[:creation_timestamp] if args.key?(:creation_timestamp)
10743
+ @description = args[:description] if args.key?(:description)
10744
+ @dns_search_paths = args[:dns_search_paths] if args.key?(:dns_search_paths)
10745
+ @domain_name = args[:domain_name] if args.key?(:domain_name)
10746
+ @id = args[:id] if args.key?(:id)
10747
+ @kind = args[:kind] if args.key?(:kind)
10748
+ @lease_time_sec = args[:lease_time_sec] if args.key?(:lease_time_sec)
10749
+ @name = args[:name] if args.key?(:name)
10750
+ @ntp_server_ipv4_addresses = args[:ntp_server_ipv4_addresses] if args.key?(:ntp_server_ipv4_addresses)
10751
+ @ntp_server_ipv6_addresses = args[:ntp_server_ipv6_addresses] if args.key?(:ntp_server_ipv6_addresses)
10752
+ @region = args[:region] if args.key?(:region)
10753
+ @self_link = args[:self_link] if args.key?(:self_link)
10754
+ @tftp_server_ipv4_addresses = args[:tftp_server_ipv4_addresses] if args.key?(:tftp_server_ipv4_addresses)
10755
+ @tftp_server_ipv4_name = args[:tftp_server_ipv4_name] if args.key?(:tftp_server_ipv4_name)
10756
+ end
10757
+ end
10758
+
10759
+ # Association represents the relationship between a DHCP options config and a
10760
+ # network. Association represents the relationship between a DHCP options
10761
+ # config and a network.
10762
+ class DhcpOptionsConfigAssociation
10763
+ include Google::Apis::Core::Hashable
10764
+
10765
+ # Required. The target network this DHCP option is attached to.
10766
+ # You can specify this as a full or partial URL. For example, the following
10767
+ # are all valid URLs:
10768
+ #
10769
+ #
10770
+ # - https://www.googleapis.com/compute/v1/projects/project/global/networks/
10771
+ # network
10772
+ #
10773
+ # - projects/project/global/networks/network
10774
+ # Corresponds to the JSON property `network`
10775
+ # @return [String]
10776
+ attr_accessor :network
10777
+
10778
+ # Output only. [Output Only] The server-defined ID of the associated Network.
10779
+ # Corresponds to the JSON property `networkId`
10780
+ # @return [Fixnum]
10781
+ attr_accessor :network_id
10782
+
10783
+ # Output only. [Output Only] State of the association.
10784
+ # Corresponds to the JSON property `state`
10785
+ # @return [String]
10786
+ attr_accessor :state
10787
+
10788
+ def initialize(**args)
10789
+ update!(**args)
10790
+ end
10791
+
10792
+ # Update properties of this object
10793
+ def update!(**args)
10794
+ @network = args[:network] if args.key?(:network)
10795
+ @network_id = args[:network_id] if args.key?(:network_id)
10796
+ @state = args[:state] if args.key?(:state)
10797
+ end
10798
+ end
10799
+
10800
+ #
10801
+ class DhcpOptionsConfigList
10802
+ include Google::Apis::Core::Hashable
10803
+
10804
+ # Server-defined ETag for optimistic concurrency control.
10805
+ # Corresponds to the JSON property `etag`
10806
+ # @return [String]
10807
+ attr_accessor :etag
10808
+
10809
+ # [Output Only] Unique identifier for the resource; defined by the server.
10810
+ # Corresponds to the JSON property `id`
10811
+ # @return [String]
10812
+ attr_accessor :id
10813
+
10814
+ # A list of DhcpOptionsConfig resources.
10815
+ # Corresponds to the JSON property `items`
10816
+ # @return [Array<Google::Apis::ComputeBeta::DhcpOptionsConfig>]
10817
+ attr_accessor :items
10818
+
10819
+ # Output only. [Output Only] Type of the resource. Alwayscompute#
10820
+ # dhcpOptionsConfigList for a list of dhcp options
10821
+ # configs.
10822
+ # Corresponds to the JSON property `kind`
10823
+ # @return [String]
10824
+ attr_accessor :kind
10825
+
10826
+ # [Output Only] This token allows you to get the next page of results for
10827
+ # list requests. If the number of results is larger thanmaxResults, use the
10828
+ # nextPageToken as a value for
10829
+ # the query parameter pageToken in the next list request.
10830
+ # Subsequent list requests will have their own nextPageToken to
10831
+ # continue paging through the results.
10832
+ # Corresponds to the JSON property `nextPageToken`
10833
+ # @return [String]
10834
+ attr_accessor :next_page_token
10835
+
10836
+ # [Output Only] Server-defined URL for this resource.
10837
+ # Corresponds to the JSON property `selfLink`
10838
+ # @return [String]
10839
+ attr_accessor :self_link
10840
+
10841
+ # Output only. [Output Only] Unreachable resources.
10842
+ # end_interface: MixerListResponseWithEtagBuilder
10843
+ # Corresponds to the JSON property `unreachables`
10844
+ # @return [Array<String>]
10845
+ attr_accessor :unreachables
10846
+
10847
+ # [Output Only] Informational warning message.
10848
+ # Corresponds to the JSON property `warning`
10849
+ # @return [Google::Apis::ComputeBeta::DhcpOptionsConfigList::Warning]
10850
+ attr_accessor :warning
10851
+
10852
+ def initialize(**args)
10853
+ update!(**args)
10854
+ end
10855
+
10856
+ # Update properties of this object
10857
+ def update!(**args)
10858
+ @etag = args[:etag] if args.key?(:etag)
10859
+ @id = args[:id] if args.key?(:id)
10860
+ @items = args[:items] if args.key?(:items)
10861
+ @kind = args[:kind] if args.key?(:kind)
10862
+ @next_page_token = args[:next_page_token] if args.key?(:next_page_token)
10863
+ @self_link = args[:self_link] if args.key?(:self_link)
10864
+ @unreachables = args[:unreachables] if args.key?(:unreachables)
10865
+ @warning = args[:warning] if args.key?(:warning)
10866
+ end
10867
+
10868
+ # [Output Only] Informational warning message.
10869
+ class Warning
10870
+ include Google::Apis::Core::Hashable
10871
+
10872
+ # [Output Only] A warning code, if applicable. For example, Compute
10873
+ # Engine returns NO_RESULTS_ON_PAGE if there
10874
+ # are no results in the response.
10875
+ # Corresponds to the JSON property `code`
10876
+ # @return [String]
10877
+ attr_accessor :code
10878
+
10879
+ # [Output Only] Metadata about this warning in key:
10880
+ # value format. For example:
10881
+ # "data": [
10882
+ # `
10883
+ # "key": "scope",
10884
+ # "value": "zones/us-east1-d"
10885
+ # `]
10886
+ # Corresponds to the JSON property `data`
10887
+ # @return [Array<Google::Apis::ComputeBeta::DhcpOptionsConfigList::Warning::Datum>]
10888
+ attr_accessor :data
10889
+
10890
+ # [Output Only] A human-readable description of the warning code.
10891
+ # Corresponds to the JSON property `message`
10892
+ # @return [String]
10893
+ attr_accessor :message
10894
+
10895
+ def initialize(**args)
10896
+ update!(**args)
10897
+ end
10898
+
10899
+ # Update properties of this object
10900
+ def update!(**args)
10901
+ @code = args[:code] if args.key?(:code)
10902
+ @data = args[:data] if args.key?(:data)
10903
+ @message = args[:message] if args.key?(:message)
10904
+ end
10905
+
10906
+ #
10907
+ class Datum
10908
+ include Google::Apis::Core::Hashable
10909
+
10910
+ # [Output Only] A key that provides more detail on the warning being
10911
+ # returned. For example, for warnings where there are no results in a list
10912
+ # request for a particular zone, this key might be scope and
10913
+ # the key value might be the zone name. Other examples might be a key
10914
+ # indicating a deprecated resource and a suggested replacement, or a
10915
+ # warning about invalid network settings (for example, if an instance
10916
+ # attempts to perform IP forwarding but is not enabled for IP forwarding).
10917
+ # Corresponds to the JSON property `key`
10918
+ # @return [String]
10919
+ attr_accessor :key
10920
+
10921
+ # [Output Only] A warning data value corresponding to the key.
10922
+ # Corresponds to the JSON property `value`
10923
+ # @return [String]
10924
+ attr_accessor :value
10925
+
10926
+ def initialize(**args)
10927
+ update!(**args)
10928
+ end
10929
+
10930
+ # Update properties of this object
10931
+ def update!(**args)
10932
+ @key = args[:key] if args.key?(:key)
10933
+ @value = args[:value] if args.key?(:value)
10934
+ end
10935
+ end
10936
+ end
10937
+ end
10938
+
10586
10939
  # Represents a Persistent Disk resource.
10587
10940
  # Google Compute Engine has two Disk resources:
10588
10941
  # * [Zonal](/compute/docs/reference/rest/beta/disks)
@@ -14737,6 +15090,7 @@ module Google
14737
15090
  # - regions/region/addresses/address-name
14738
15091
  # - global/addresses/address-name
14739
15092
  # - address-name
15093
+ # The IP address can only be set at creation. Once set, it cannot be updated.
14740
15094
  # The forwarding rule's target or backendService,
14741
15095
  # and in most cases, also the loadBalancingScheme, determine the
14742
15096
  # type of IP address that you can use. For detailed information, see
@@ -14745,11 +15099,66 @@ module Google
14745
15099
  # concepts#ip_address_specifications).
14746
15100
  # When reading an IPAddress, the API always returns the IP
14747
15101
  # address number.
15102
+ # When creating a global external Passthrough Network Load Balancer
15103
+ # forwarding rule (a parent forwarding rule), you must use theIPAddresses field,
15104
+ # but the Google Cloud generated child
15105
+ # forwarding rules set the IPAddress field instead. Refer to
15106
+ # theavailabilityGroup field for further details.
14748
15107
  # Corresponds to the JSON property `IPAddress`
14749
15108
  # @return [String]
14750
15109
  attr_accessor :ip_address
14751
15110
 
15111
+ # IP addresses for which this forwarding rule accepts traffic. All IP
15112
+ # addresses must have the same IP version, IPv4 or IPv6. When a client sends
15113
+ # traffic that matches one of the specified IP addresses, protocol and ports,
15114
+ # the forwarding rule directs the traffic to the referencedbackendService. All
15115
+ # IP addresses are served by the same set of
15116
+ # backends, and they share the target capacities specified in the backend
15117
+ # service fairly.
15118
+ # Global external Passthrough Network Load Balancer requires two IP addresses
15119
+ # for each forwarding rule to provide high availability when both IP
15120
+ # addresses are used to serve client requests. The two IP addresses must come
15121
+ # from global IP pools that belong to two distinct Availability
15122
+ # Groups, represented by the
15123
+ # purposePASSTHROUGH_LOAD_BALANCER_AVAILABILITY_GROUP0
15124
+ # andPASSTHROUGH_LOAD_BALANCER_AVAILABILITY_GROUP1. TheIPAddresses field
15125
+ # specifies zero, one, or two IP addresses:
15126
+ #
15127
+ # - If omitted, Google Cloud assigns two ephemeral IP addresses, one from
15128
+ # each Availability Group.
15129
+ # - If you specify one IP address that references an existing static IP
15130
+ # address resource from one Availability Group, Google Cloud assigns an
15131
+ # ephemeral IP address from the other Availability Group.
15132
+ # - If you specify two IP addresses that reference existing static IP
15133
+ # address resources, they are required to be from different Availability
15134
+ # Groups.
15135
+ # For global external Passthrough Network Load Balancer, each IP address can be
15136
+ # one of the following:
14752
15137
  #
15138
+ # - A static or ephemeral IPv4 address from a Google-owned IP pool.
15139
+ # - A static IPv4 address from a global public delegated prefix.
15140
+ # - A static or ephemeral IPv6 /96 prefix from a Google-owned IP pool.
15141
+ # For global external Passthrough Network Load Balancer, the two IP addresses
15142
+ # can be of different types. One IP address can be from a BYOIP prefix while
15143
+ # the other is from a Google-owned IP pool. One IP address can be static
15144
+ # while the other is ephemeral. However, both IP addresses must have the same
15145
+ # IP version, IPv4 or IPv6.
15146
+ # The IP addresses can only be set at creation and cannot be updated.
15147
+ # When creating a global external Passthrough Network Load Balancer
15148
+ # forwarding rule (a parent forwarding rule), you must use theIPAddresses field,
15149
+ # but the Google Cloud-generated child
15150
+ # forwarding rules set the IPAddress field instead. Refer to
15151
+ # theavailabilityGroup field for further details.
15152
+ # Refer to the IPAddress field for the formats that can be used
15153
+ # to specify IP addresses while creating a forwarding rule.
15154
+ # Because Passthrough Network Load Balancers do not terminate or translate
15155
+ # traffic, the backend stack types must be compatible with the forwarding
15156
+ # rule IP version:
15157
+ #
15158
+ # - If the forwarding rule IP version is IPv4, backends should be
15159
+ # configured as dual-stack or IPv4-only.
15160
+ # - If the forwarding rule IP version is IPv6, backends should be
15161
+ # configured as dual-stack or IPv6-only.
14753
15162
  # Corresponds to the JSON property `IPAddresses`
14754
15163
  # @return [Array<String>]
14755
15164
  attr_accessor :ip_addresses
@@ -14810,17 +15219,43 @@ module Google
14810
15219
  # @return [Array<Google::Apis::ComputeBeta::ForwardingRuleAttachedExtension>]
14811
15220
  attr_accessor :attached_extensions
14812
15221
 
14813
- # [Output Only] Specifies the availability group of the forwarding rule. This
15222
+ # Output only. [Output Only] Specifies the load balancing availability group,
15223
+ # one of the
15224
+ # two that collectively provide high availability.
15225
+ # Specifies the availability group of the forwarding rule. This
14814
15226
  # field is for use by global external passthrough load balancers (load
14815
- # balancing scheme EXTERNAL_PASSTHROUGH) and is set for the child forwarding
14816
- # rules only.
15227
+ # balancing scheme EXTERNAL_PASSTHROUGH) and is set for the
15228
+ # child forwarding rules only. The possible values are:
15229
+ #
15230
+ # - AVAILABILITY_GROUP0: Set for the child forwarding rule
15231
+ # that is programmed on the AVAILABILITY_GROUP0 load balancing
15232
+ # stack. The child forwarding rule has the same IP protocol, port, and
15233
+ # backend service settings as the parent forwarding rule, but has only one of
15234
+ # the two IP addresses of the parent forwarding rule, the one with the
15235
+ # purpose PASSTHROUGH_LOAD_BALANCER_AVAILABILITY_GROUP0.
15236
+ # - AVAILABILITY_GROUP1: Set for the child forwarding rule
15237
+ # that is programmed on the AVAILABILITY_GROUP1 load balancing
15238
+ # stack. The child forwarding rule has the same IP protocol, port and backend
15239
+ # service settings as the parent forwarding rule, but has only one of the two
15240
+ # IP addresses of the parent forwarding rule, the one with the
15241
+ # purposePASSTHROUGH_LOAD_BALANCER_AVAILABILITY_GROUP1.
15242
+ # For each global external Passthrough Network Load Balancer forwarding rule
15243
+ # (a parent forwarding rule) that you create, Google Cloud generates two
15244
+ # output-only child forwarding rules, one forAVAILABILITY_GROUP0 and one
15245
+ # forAVAILABILITY_GROUP1.
14817
15246
  # Corresponds to the JSON property `availabilityGroup`
14818
15247
  # @return [String]
14819
15248
  attr_accessor :availability_group
14820
15249
 
14821
15250
  # Identifies the backend service to which the forwarding rule sends traffic.
14822
- # Required for internal and external passthrough Network Load Balancers;
14823
- # must be omitted for all other load balancer types.
15251
+ # It is a required field for the following load balancers:
15252
+ #
15253
+ # - Internal passthrough Network Load Balancers
15254
+ # - Backend service-based regional external passthrough Network Load
15255
+ # Balancers
15256
+ # - Global external passthrough Network Load Balancers
15257
+ # It cannot be set by other load balancer types and protocol forwarding
15258
+ # rules.
14824
15259
  # Corresponds to the JSON property `backendService`
14825
15260
  # @return [String]
14826
15261
  attr_accessor :backend_service
@@ -14836,12 +15271,14 @@ module Google
14836
15271
  # @return [String]
14837
15272
  attr_accessor :base_forwarding_rule
14838
15273
 
14839
- # Output only. [Output Only] Applicable only to the parent forwarding rule of
14840
- # global
15274
+ # Output only. [Output Only] The resource URLs for the child forwarding rules.
15275
+ # Applicable only to the parent forwarding rule of global
14841
15276
  # external passthrough load balancers. This field contains the list of child
14842
15277
  # forwarding rule URLs associated with the parent forwarding rule: one for
14843
15278
  # each availability group. AVAILABILITY_GROUP0 will be the first element, and
14844
- # AVAILABILITY_GROUP1 will be the second element.
15279
+ # AVAILABILITY_GROUP1 will be the second element. Refer to theavailabilityGroup
15280
+ # field for further details. It cannot be set
15281
+ # by any other forwarding rules.
14845
15282
  # Corresponds to the JSON property `childForwardingRules`
14846
15283
  # @return [Array<String>]
14847
15284
  attr_accessor :child_forwarding_rules
@@ -14962,8 +15399,8 @@ module Google
14962
15399
  attr_accessor :labels
14963
15400
 
14964
15401
  # Specifies the forwarding rule type.
14965
- # For more information about forwarding rules, refer to
14966
- # Forwarding rule concepts.
15402
+ # For more information, refer to
15403
+ # Forwarding rule product and scheme table.
14967
15404
  # Corresponds to the JSON property `loadBalancingScheme`
14968
15405
  # @return [String]
14969
15406
  attr_accessor :load_balancing_scheme
@@ -15003,6 +15440,13 @@ module Google
15003
15440
  # For Private Service Connect forwarding rules that forward traffic to Google
15004
15441
  # APIs, the forwarding rule name must be a 1-20 characters string with
15005
15442
  # lowercase letters and numbers and must start with a letter.
15443
+ # For global external Passthrough Network Load Balancer forwarding rules, the
15444
+ # forwarding rule name must be 1-43 characters long. For each global external
15445
+ # Passthrough Network Load Balancer forwarding rule (a parent forwarding
15446
+ # rule) that you create, Google Cloud generates two output-only child
15447
+ # forwarding rules that are named by concatenating the parent forwarding rule
15448
+ # name with the `-ag0` and `-ag1` suffixes, respectively. Refer to
15449
+ # theavailabilityGroup field for further details.
15006
15450
  # Corresponds to the JSON property `name`
15007
15451
  # @return [String]
15008
15452
  attr_accessor :name
@@ -15039,8 +15483,8 @@ module Google
15039
15483
  attr_accessor :no_automate_dns_zone
15040
15484
  alias_method :no_automate_dns_zone?, :no_automate_dns_zone
15041
15485
 
15042
- # Output only. [Output Only] Applicable only to the child forwarding rules of
15043
- # global external
15486
+ # Output only. [Output Only] The resource URL for the parent forwarding rule.
15487
+ # Applicable only to the child forwarding rules of global external
15044
15488
  # passthrough load balancers. This field contains the URL of the parent
15045
15489
  # forwarding rule.
15046
15490
  # Corresponds to the JSON property `parentForwardingRule`
@@ -15062,7 +15506,9 @@ module Google
15062
15506
  # - Some products have restrictions on what ports can be used. See
15063
15507
  # port specifications for details.
15064
15508
  # For external forwarding rules, two or more forwarding rules cannot use the
15065
- # same [IPAddress, IPProtocol] pair, and cannot have overlappingportRanges.
15509
+ # same [IPAddress, IPProtocol] pair (specified inIPAddress, IPAddresses,
15510
+ # IPProtocol
15511
+ # fields) if they have overlapping portRanges.
15066
15512
  # For internal forwarding rules within the same VPC network, two or more
15067
15513
  # forwarding rules cannot use the same [IPAddress, IPProtocol]
15068
15514
  # pair, and cannot have overlapping portRanges.
@@ -15085,8 +15531,9 @@ module Google
15085
15531
  # - You can specify a list of up to five ports by number, separated by
15086
15532
  # commas. The ports can be contiguous or discontiguous.
15087
15533
  # For external forwarding rules, two or more forwarding rules cannot use the
15088
- # same [IPAddress, IPProtocol] pair if they share at least one
15089
- # port number.
15534
+ # same [IPAddress, IPProtocol] pair (specified inIPAddress, IPAddresses,
15535
+ # IPProtocol
15536
+ # fields) if they share at least one port number.
15090
15537
  # For internal forwarding rules within the same VPC network, two or more
15091
15538
  # forwarding rules cannot use the same [IPAddress, IPProtocol]
15092
15539
  # pair if they share at least one port number.
@@ -15194,6 +15641,13 @@ module Google
15194
15641
  # - For Private Service Connect forwarding rules that forward traffic to
15195
15642
  # managed services, the target must be a service attachment. The target is not
15196
15643
  # mutable once set as a service attachment.
15644
+ # The following load balancers cannot set the target field (they should set the
15645
+ # backendService field instead):
15646
+ #
15647
+ # - Internal passthrough Network Load Balancers
15648
+ # - Backend service-based regional external passthrough Network Load
15649
+ # Balancers
15650
+ # - Global external passthrough Network Load Balancers
15197
15651
  # Corresponds to the JSON property `target`
15198
15652
  # @return [String]
15199
15653
  attr_accessor :target
@@ -15819,6 +16273,13 @@ module Google
15819
16273
  # @return [String]
15820
16274
  attr_accessor :reservation_name
15821
16275
 
16276
+ # Name of the resource intended to be delivered. Name should conform to
16277
+ # RFC1035. This will be the name of storage pool or Exapool for persistent
16278
+ # disk FRs.
16279
+ # Corresponds to the JSON property `resourceName`
16280
+ # @return [String]
16281
+ attr_accessor :resource_name
16282
+
15822
16283
  # Maintenance information for this reservation
15823
16284
  # Corresponds to the JSON property `schedulingType`
15824
16285
  # @return [String]
@@ -15860,6 +16321,11 @@ module Google
15860
16321
  # @return [Google::Apis::ComputeBeta::FutureReservationStatus]
15861
16322
  attr_accessor :status
15862
16323
 
16324
+ # Storage pool properties for the future reservation.
16325
+ # Corresponds to the JSON property `storagePoolProperties`
16326
+ # @return [Google::Apis::ComputeBeta::FutureReservationStoragePoolProperties]
16327
+ attr_accessor :storage_pool_properties
16328
+
15863
16329
  # Time window for this Future Reservation.
15864
16330
  # Corresponds to the JSON property `timeWindow`
15865
16331
  # @return [Google::Apis::ComputeBeta::FutureReservationTimeWindow]
@@ -15897,6 +16363,7 @@ module Google
15897
16363
  @protection_tier = args[:protection_tier] if args.key?(:protection_tier)
15898
16364
  @reservation_mode = args[:reservation_mode] if args.key?(:reservation_mode)
15899
16365
  @reservation_name = args[:reservation_name] if args.key?(:reservation_name)
16366
+ @resource_name = args[:resource_name] if args.key?(:resource_name)
15900
16367
  @scheduling_type = args[:scheduling_type] if args.key?(:scheduling_type)
15901
16368
  @self_link = args[:self_link] if args.key?(:self_link)
15902
16369
  @self_link_with_id = args[:self_link_with_id] if args.key?(:self_link_with_id)
@@ -15904,6 +16371,7 @@ module Google
15904
16371
  @specific_reservation_required = args[:specific_reservation_required] if args.key?(:specific_reservation_required)
15905
16372
  @specific_sku_properties = args[:specific_sku_properties] if args.key?(:specific_sku_properties)
15906
16373
  @status = args[:status] if args.key?(:status)
16374
+ @storage_pool_properties = args[:storage_pool_properties] if args.key?(:storage_pool_properties)
15907
16375
  @time_window = args[:time_window] if args.key?(:time_window)
15908
16376
  @zone = args[:zone] if args.key?(:zone)
15909
16377
  end
@@ -16019,6 +16487,11 @@ module Google
16019
16487
  # @return [Array<String>]
16020
16488
  attr_accessor :auto_created_reservations
16021
16489
 
16490
+ # Exapool provisioned capacities for each SKU type
16491
+ # Corresponds to the JSON property `exapoolProvisionedCapacityGb`
16492
+ # @return [Google::Apis::ComputeBeta::StoragePoolExapoolProvisionedCapacityGb]
16493
+ attr_accessor :exapool_provisioned_capacity_gb
16494
+
16022
16495
  # [Output Only] Represents the existing matching usage for the future
16023
16496
  # reservation.
16024
16497
  # Corresponds to the JSON property `existingMatchingUsageInfo`
@@ -16058,6 +16531,11 @@ module Google
16058
16531
  # @return [Google::Apis::ComputeBeta::FutureReservationStatusSpecificSkuProperties]
16059
16532
  attr_accessor :specific_sku_properties
16060
16533
 
16534
+ # Storage pool provisioned capacities for each SKU type.
16535
+ # Corresponds to the JSON property `storagePoolProvisionedCapacity`
16536
+ # @return [Google::Apis::ComputeBeta::FutureReservationStoragePoolProvisionedCapacity]
16537
+ attr_accessor :storage_pool_provisioned_capacity
16538
+
16061
16539
  def initialize(**args)
16062
16540
  update!(**args)
16063
16541
  end
@@ -16066,12 +16544,14 @@ module Google
16066
16544
  def update!(**args)
16067
16545
  @amendment_status = args[:amendment_status] if args.key?(:amendment_status)
16068
16546
  @auto_created_reservations = args[:auto_created_reservations] if args.key?(:auto_created_reservations)
16547
+ @exapool_provisioned_capacity_gb = args[:exapool_provisioned_capacity_gb] if args.key?(:exapool_provisioned_capacity_gb)
16069
16548
  @existing_matching_usage_info = args[:existing_matching_usage_info] if args.key?(:existing_matching_usage_info)
16070
16549
  @fulfilled_count = args[:fulfilled_count] if args.key?(:fulfilled_count)
16071
16550
  @last_known_good_state = args[:last_known_good_state] if args.key?(:last_known_good_state)
16072
16551
  @lock_time = args[:lock_time] if args.key?(:lock_time)
16073
16552
  @procurement_status = args[:procurement_status] if args.key?(:procurement_status)
16074
16553
  @specific_sku_properties = args[:specific_sku_properties] if args.key?(:specific_sku_properties)
16554
+ @storage_pool_provisioned_capacity = args[:storage_pool_provisioned_capacity] if args.key?(:storage_pool_provisioned_capacity)
16075
16555
  end
16076
16556
  end
16077
16557
 
@@ -16210,6 +16690,70 @@ module Google
16210
16690
  end
16211
16691
  end
16212
16692
 
16693
+ # Storage pool properties for the future reservation.
16694
+ class FutureReservationStoragePoolProperties
16695
+ include Google::Apis::Core::Hashable
16696
+
16697
+ # Exapool provisioned capacities for each SKU type
16698
+ # Corresponds to the JSON property `requestedExapoolProvisionedCapacityGb`
16699
+ # @return [Google::Apis::ComputeBeta::StoragePoolExapoolProvisionedCapacityGb]
16700
+ attr_accessor :requested_exapool_provisioned_capacity_gb
16701
+
16702
+ # Storage pool provisioned capacities for each SKU type.
16703
+ # Corresponds to the JSON property `requestedStoragePoolProvisionedCapacity`
16704
+ # @return [Google::Apis::ComputeBeta::FutureReservationStoragePoolProvisionedCapacity]
16705
+ attr_accessor :requested_storage_pool_provisioned_capacity
16706
+
16707
+ # Type of the storage pool.
16708
+ # Corresponds to the JSON property `storagePoolType`
16709
+ # @return [String]
16710
+ attr_accessor :storage_pool_type
16711
+
16712
+ def initialize(**args)
16713
+ update!(**args)
16714
+ end
16715
+
16716
+ # Update properties of this object
16717
+ def update!(**args)
16718
+ @requested_exapool_provisioned_capacity_gb = args[:requested_exapool_provisioned_capacity_gb] if args.key?(:requested_exapool_provisioned_capacity_gb)
16719
+ @requested_storage_pool_provisioned_capacity = args[:requested_storage_pool_provisioned_capacity] if args.key?(:requested_storage_pool_provisioned_capacity)
16720
+ @storage_pool_type = args[:storage_pool_type] if args.key?(:storage_pool_type)
16721
+ end
16722
+ end
16723
+
16724
+ # Storage pool provisioned capacities for each SKU type.
16725
+ class FutureReservationStoragePoolProvisionedCapacity
16726
+ include Google::Apis::Core::Hashable
16727
+
16728
+ # Size of the storage pool in GiB.
16729
+ # Corresponds to the JSON property `poolProvisionedCapacityGb`
16730
+ # @return [Fixnum]
16731
+ attr_accessor :pool_provisioned_capacity_gb
16732
+
16733
+ # Provisioned IOPS of the storage pool. Only relevant if the storage pool
16734
+ # type is hyperdisk-balanced.
16735
+ # Corresponds to the JSON property `poolProvisionedIops`
16736
+ # @return [Fixnum]
16737
+ attr_accessor :pool_provisioned_iops
16738
+
16739
+ # Provisioned throughput of the storage pool in MiB/s. Only relevant if
16740
+ # the storage pool type is hyperdisk-balanced or hyperdisk-throughput.
16741
+ # Corresponds to the JSON property `poolProvisionedThroughput`
16742
+ # @return [Fixnum]
16743
+ attr_accessor :pool_provisioned_throughput
16744
+
16745
+ def initialize(**args)
16746
+ update!(**args)
16747
+ end
16748
+
16749
+ # Update properties of this object
16750
+ def update!(**args)
16751
+ @pool_provisioned_capacity_gb = args[:pool_provisioned_capacity_gb] if args.key?(:pool_provisioned_capacity_gb)
16752
+ @pool_provisioned_iops = args[:pool_provisioned_iops] if args.key?(:pool_provisioned_iops)
16753
+ @pool_provisioned_throughput = args[:pool_provisioned_throughput] if args.key?(:pool_provisioned_throughput)
16754
+ end
16755
+ end
16756
+
16213
16757
  #
16214
16758
  class FutureReservationTimeWindow
16215
16759
  include Google::Apis::Core::Hashable
@@ -17029,6 +17573,68 @@ module Google
17029
17573
  end
17030
17574
  end
17031
17575
 
17576
+ # Metadata for GetHealth operations.
17577
+ class GetHealthOperationMetadata
17578
+ include Google::Apis::Core::Hashable
17579
+
17580
+ # Health information.
17581
+ # Corresponds to the JSON property `healthInfo`
17582
+ # @return [Google::Apis::ComputeBeta::GetHealthOperationMetadataHealthInfo]
17583
+ attr_accessor :health_info
17584
+
17585
+ def initialize(**args)
17586
+ update!(**args)
17587
+ end
17588
+
17589
+ # Update properties of this object
17590
+ def update!(**args)
17591
+ @health_info = args[:health_info] if args.key?(:health_info)
17592
+ end
17593
+ end
17594
+
17595
+ # Health information.
17596
+ class GetHealthOperationMetadataHealthInfo
17597
+ include Google::Apis::Core::Hashable
17598
+
17599
+ # Output only. The availability SLO status.
17600
+ # Corresponds to the JSON property `availabilitySloStatus`
17601
+ # @return [String]
17602
+ attr_accessor :availability_slo_status
17603
+
17604
+ # Output only. The health status.
17605
+ # Corresponds to the JSON property `healthStatus`
17606
+ # @return [String]
17607
+ attr_accessor :health_status
17608
+
17609
+ # Output only. The repair category.
17610
+ # Corresponds to the JSON property `repairCategory`
17611
+ # @return [String]
17612
+ attr_accessor :repair_category
17613
+
17614
+ # Output only. The reason for unhealthy status.
17615
+ # Corresponds to the JSON property `unhealthyReason`
17616
+ # @return [String]
17617
+ attr_accessor :unhealthy_reason
17618
+
17619
+ # Output only. The time when health info was updated.
17620
+ # Corresponds to the JSON property `updateTime`
17621
+ # @return [String]
17622
+ attr_accessor :update_time
17623
+
17624
+ def initialize(**args)
17625
+ update!(**args)
17626
+ end
17627
+
17628
+ # Update properties of this object
17629
+ def update!(**args)
17630
+ @availability_slo_status = args[:availability_slo_status] if args.key?(:availability_slo_status)
17631
+ @health_status = args[:health_status] if args.key?(:health_status)
17632
+ @repair_category = args[:repair_category] if args.key?(:repair_category)
17633
+ @unhealthy_reason = args[:unhealthy_reason] if args.key?(:unhealthy_reason)
17634
+ @update_time = args[:update_time] if args.key?(:update_time)
17635
+ end
17636
+ end
17637
+
17032
17638
  #
17033
17639
  class GetVersionOperationMetadata
17034
17640
  include Google::Apis::Core::Hashable
@@ -17108,14 +17714,51 @@ module Google
17108
17714
  end
17109
17715
  end
17110
17716
 
17111
- #
17112
- class GlobalNetworkEndpointGroupsAttachEndpointsRequest
17717
+ # Represents the Global Frontend Bundle settings for a single project.
17718
+ class GlobalFrontendSettings
17113
17719
  include Google::Apis::Core::Hashable
17114
17720
 
17115
- # The list of network endpoints to be attached.
17116
- # Corresponds to the JSON property `networkEndpoints`
17117
- # @return [Array<Google::Apis::ComputeBeta::NetworkEndpoint>]
17118
- attr_accessor :network_endpoints
17721
+ # Customer-settable bundle type.
17722
+ # Corresponds to the JSON property `bundleType`
17723
+ # @return [String]
17724
+ attr_accessor :bundle_type
17725
+
17726
+ # Output only. [Output Only] Creation timestamp in RFC3339 text format.
17727
+ # Corresponds to the JSON property `creationTimestamp`
17728
+ # @return [String]
17729
+ attr_accessor :creation_timestamp
17730
+
17731
+ # Output only. [Output Only] An optional description of this resource.
17732
+ # Corresponds to the JSON property `description`
17733
+ # @return [String]
17734
+ attr_accessor :description
17735
+
17736
+ # Output only. For optimistic locking
17737
+ # Corresponds to the JSON property `etag`
17738
+ # @return [String]
17739
+ attr_accessor :etag
17740
+
17741
+ # Output only. [Output Only] The unique identifier for the resource. This
17742
+ # identifier is
17743
+ # defined by the server.
17744
+ # Corresponds to the JSON property `id`
17745
+ # @return [Fixnum]
17746
+ attr_accessor :id
17747
+
17748
+ # Output only. OUTPUT_ONLY fields
17749
+ # [Output Only] Name of the resource. Must be 1-63 characters long and match
17750
+ # the regular expression `[a-z]([-a-z0-9]*[a-z0-9])?` which means the first
17751
+ # character must be a lowercase letter, and all following characters must
17752
+ # be a dash, lowercase letter, or digit, except the last character, which
17753
+ # cannot be a dash.
17754
+ # Corresponds to the JSON property `name`
17755
+ # @return [String]
17756
+ attr_accessor :name
17757
+
17758
+ # Output only. [Output Only] Server-defined URL for the resource.
17759
+ # Corresponds to the JSON property `selfLink`
17760
+ # @return [String]
17761
+ attr_accessor :self_link
17119
17762
 
17120
17763
  def initialize(**args)
17121
17764
  update!(**args)
@@ -17123,18 +17766,43 @@ module Google
17123
17766
 
17124
17767
  # Update properties of this object
17125
17768
  def update!(**args)
17126
- @network_endpoints = args[:network_endpoints] if args.key?(:network_endpoints)
17769
+ @bundle_type = args[:bundle_type] if args.key?(:bundle_type)
17770
+ @creation_timestamp = args[:creation_timestamp] if args.key?(:creation_timestamp)
17771
+ @description = args[:description] if args.key?(:description)
17772
+ @etag = args[:etag] if args.key?(:etag)
17773
+ @id = args[:id] if args.key?(:id)
17774
+ @name = args[:name] if args.key?(:name)
17775
+ @self_link = args[:self_link] if args.key?(:self_link)
17127
17776
  end
17128
17777
  end
17129
17778
 
17130
- #
17131
- class GlobalNetworkEndpointGroupsDetachEndpointsRequest
17779
+ # Response to an UpdateGlobalFrontendSettingsRequest.
17780
+ class GlobalFrontendSettingsPatchResponse
17132
17781
  include Google::Apis::Core::Hashable
17133
17782
 
17134
- # The list of network endpoints to be detached.
17135
- # Corresponds to the JSON property `networkEndpoints`
17136
- # @return [Array<Google::Apis::ComputeBeta::NetworkEndpoint>]
17137
- attr_accessor :network_endpoints
17783
+ # Represents an Operation resource.
17784
+ # Google Compute Engine has three Operation resources:
17785
+ # * [Global](/compute/docs/reference/rest/beta/globalOperations)
17786
+ # * [Regional](/compute/docs/reference/rest/beta/regionOperations)
17787
+ # * [Zonal](/compute/docs/reference/rest/beta/zoneOperations)
17788
+ # You can use an operation resource to manage asynchronous API requests.
17789
+ # For more information, readHandling
17790
+ # API responses.
17791
+ # Operations can be global, regional or zonal.
17792
+ #
17793
+ # - For global operations, use the `globalOperations`
17794
+ # resource.
17795
+ # - For regional operations, use the
17796
+ # `regionOperations` resource.
17797
+ # - For zonal operations, use
17798
+ # the `zoneOperations` resource.
17799
+ # For more information, read
17800
+ # Global, Regional, and Zonal Resources.
17801
+ # Note that completed Operation resources have a limited
17802
+ # retention period.
17803
+ # Corresponds to the JSON property `operation`
17804
+ # @return [Google::Apis::ComputeBeta::Operation]
17805
+ attr_accessor :operation
17138
17806
 
17139
17807
  def initialize(**args)
17140
17808
  update!(**args)
@@ -17142,95 +17810,18 @@ module Google
17142
17810
 
17143
17811
  # Update properties of this object
17144
17812
  def update!(**args)
17145
- @network_endpoints = args[:network_endpoints] if args.key?(:network_endpoints)
17813
+ @operation = args[:operation] if args.key?(:operation)
17146
17814
  end
17147
17815
  end
17148
17816
 
17149
17817
  #
17150
- class GlobalOrganizationSetPolicyRequest
17818
+ class GlobalNetworkEndpointGroupsAttachEndpointsRequest
17151
17819
  include Google::Apis::Core::Hashable
17152
17820
 
17153
- # Flatten Policy to create a backward compatible wire-format.
17154
- # Deprecated. Use 'policy' to specify bindings.
17155
- # Corresponds to the JSON property `bindings`
17156
- # @return [Array<Google::Apis::ComputeBeta::Binding>]
17157
- attr_accessor :bindings
17158
-
17159
- # Flatten Policy to create a backward compatible wire-format.
17160
- # Deprecated. Use 'policy' to specify the etag.
17161
- # Corresponds to the JSON property `etag`
17162
- # NOTE: Values are automatically base64 encoded/decoded in the client library.
17163
- # @return [String]
17164
- attr_accessor :etag
17165
-
17166
- # An Identity and Access Management (IAM) policy, which specifies access
17167
- # controls for Google Cloud resources.
17168
- # A `Policy` is a collection of `bindings`. A `binding` binds one or more
17169
- # `members`, or principals, to a single `role`. Principals can be user
17170
- # accounts, service accounts, Google groups, and domains (such as G Suite). A
17171
- # `role` is a named list of permissions; each `role` can be an IAM predefined
17172
- # role or a user-created custom role.
17173
- # For some types of Google Cloud resources, a `binding` can also specify a
17174
- # `condition`, which is a logical expression that allows access to a resource
17175
- # only if the expression evaluates to `true`. A condition can add constraints
17176
- # based on attributes of the request, the resource, or both. To learn which
17177
- # resources support conditions in their IAM policies, see the
17178
- # [IAM documentation](https://cloud.google.com/iam/help/conditions/resource-
17179
- # policies).
17180
- # **JSON example:**
17181
- # ```
17182
- # `
17183
- # "bindings": [
17184
- # `
17185
- # "role": "roles/resourcemanager.organizationAdmin",
17186
- # "members": [
17187
- # "user:mike@example.com",
17188
- # "group:admins@example.com",
17189
- # "domain:google.com",
17190
- # "serviceAccount:my-project-id@appspot.gserviceaccount.com"
17191
- # ]
17192
- # `,
17193
- # `
17194
- # "role": "roles/resourcemanager.organizationViewer",
17195
- # "members": [
17196
- # "user:eve@example.com"
17197
- # ],
17198
- # "condition": `
17199
- # "title": "expirable access",
17200
- # "description": "Does not grant access after Sep 2020",
17201
- # "expression": "request.time < timestamp('2020-10-01T00:00:00.000Z')
17202
- # ",
17203
- # `
17204
- # `
17205
- # ],
17206
- # "etag": "BwWWja0YfJA=",
17207
- # "version": 3
17208
- # `
17209
- # ```
17210
- # **YAML example:**
17211
- # ```
17212
- # bindings:
17213
- # - members:
17214
- # - user:mike@example.com
17215
- # - group:admins@example.com
17216
- # - domain:google.com
17217
- # - serviceAccount:my-project-id@appspot.gserviceaccount.com
17218
- # role: roles/resourcemanager.organizationAdmin
17219
- # - members:
17220
- # - user:eve@example.com
17221
- # role: roles/resourcemanager.organizationViewer
17222
- # condition:
17223
- # title: expirable access
17224
- # description: Does not grant access after Sep 2020
17225
- # expression: request.time < timestamp('2020-10-01T00:00:00.000Z')
17226
- # etag: BwWWja0YfJA=
17227
- # version: 3
17228
- # ```
17229
- # For a description of IAM and its features, see the
17230
- # [IAM documentation](https://cloud.google.com/iam/docs/).
17231
- # Corresponds to the JSON property `policy`
17232
- # @return [Google::Apis::ComputeBeta::Policy]
17233
- attr_accessor :policy
17821
+ # The list of network endpoints to be attached.
17822
+ # Corresponds to the JSON property `networkEndpoints`
17823
+ # @return [Array<Google::Apis::ComputeBeta::NetworkEndpoint>]
17824
+ attr_accessor :network_endpoints
17234
17825
 
17235
17826
  def initialize(**args)
17236
17827
  update!(**args)
@@ -17238,36 +17829,18 @@ module Google
17238
17829
 
17239
17830
  # Update properties of this object
17240
17831
  def update!(**args)
17241
- @bindings = args[:bindings] if args.key?(:bindings)
17242
- @etag = args[:etag] if args.key?(:etag)
17243
- @policy = args[:policy] if args.key?(:policy)
17832
+ @network_endpoints = args[:network_endpoints] if args.key?(:network_endpoints)
17244
17833
  end
17245
17834
  end
17246
17835
 
17247
17836
  #
17248
- class GlobalSetLabelsRequest
17837
+ class GlobalNetworkEndpointGroupsDetachEndpointsRequest
17249
17838
  include Google::Apis::Core::Hashable
17250
17839
 
17251
- # The fingerprint of the previous set of labels for this resource,
17252
- # used to detect conflicts. The fingerprint is initially generated by Compute
17253
- # Engine and changes after every request to modify or update labels. You must
17254
- # always provide an up-to-date fingerprint hash when updating or changing
17255
- # labels, otherwise the request will fail with error412 conditionNotMet. Make a
17256
- # get() request to the
17257
- # resource to get the latest fingerprint.
17258
- # Corresponds to the JSON property `labelFingerprint`
17259
- # NOTE: Values are automatically base64 encoded/decoded in the client library.
17260
- # @return [String]
17261
- attr_accessor :label_fingerprint
17262
-
17263
- # A list of labels to apply for this resource. Each label must comply with
17264
- # the
17265
- # requirements for labels. For example,"webserver-frontend": "images". A label
17266
- # value can also be
17267
- # empty (e.g. "my-label": "").
17268
- # Corresponds to the JSON property `labels`
17269
- # @return [Hash<String,String>]
17270
- attr_accessor :labels
17840
+ # The list of network endpoints to be detached.
17841
+ # Corresponds to the JSON property `networkEndpoints`
17842
+ # @return [Array<Google::Apis::ComputeBeta::NetworkEndpoint>]
17843
+ attr_accessor :network_endpoints
17271
17844
 
17272
17845
  def initialize(**args)
17273
17846
  update!(**args)
@@ -17275,13 +17848,146 @@ module Google
17275
17848
 
17276
17849
  # Update properties of this object
17277
17850
  def update!(**args)
17278
- @label_fingerprint = args[:label_fingerprint] if args.key?(:label_fingerprint)
17279
- @labels = args[:labels] if args.key?(:labels)
17851
+ @network_endpoints = args[:network_endpoints] if args.key?(:network_endpoints)
17280
17852
  end
17281
17853
  end
17282
17854
 
17283
17855
  #
17284
- class GlobalSetPolicyRequest
17856
+ class GlobalOrganizationSetPolicyRequest
17857
+ include Google::Apis::Core::Hashable
17858
+
17859
+ # Flatten Policy to create a backward compatible wire-format.
17860
+ # Deprecated. Use 'policy' to specify bindings.
17861
+ # Corresponds to the JSON property `bindings`
17862
+ # @return [Array<Google::Apis::ComputeBeta::Binding>]
17863
+ attr_accessor :bindings
17864
+
17865
+ # Flatten Policy to create a backward compatible wire-format.
17866
+ # Deprecated. Use 'policy' to specify the etag.
17867
+ # Corresponds to the JSON property `etag`
17868
+ # NOTE: Values are automatically base64 encoded/decoded in the client library.
17869
+ # @return [String]
17870
+ attr_accessor :etag
17871
+
17872
+ # An Identity and Access Management (IAM) policy, which specifies access
17873
+ # controls for Google Cloud resources.
17874
+ # A `Policy` is a collection of `bindings`. A `binding` binds one or more
17875
+ # `members`, or principals, to a single `role`. Principals can be user
17876
+ # accounts, service accounts, Google groups, and domains (such as G Suite). A
17877
+ # `role` is a named list of permissions; each `role` can be an IAM predefined
17878
+ # role or a user-created custom role.
17879
+ # For some types of Google Cloud resources, a `binding` can also specify a
17880
+ # `condition`, which is a logical expression that allows access to a resource
17881
+ # only if the expression evaluates to `true`. A condition can add constraints
17882
+ # based on attributes of the request, the resource, or both. To learn which
17883
+ # resources support conditions in their IAM policies, see the
17884
+ # [IAM documentation](https://cloud.google.com/iam/help/conditions/resource-
17885
+ # policies).
17886
+ # **JSON example:**
17887
+ # ```
17888
+ # `
17889
+ # "bindings": [
17890
+ # `
17891
+ # "role": "roles/resourcemanager.organizationAdmin",
17892
+ # "members": [
17893
+ # "user:mike@example.com",
17894
+ # "group:admins@example.com",
17895
+ # "domain:google.com",
17896
+ # "serviceAccount:my-project-id@appspot.gserviceaccount.com"
17897
+ # ]
17898
+ # `,
17899
+ # `
17900
+ # "role": "roles/resourcemanager.organizationViewer",
17901
+ # "members": [
17902
+ # "user:eve@example.com"
17903
+ # ],
17904
+ # "condition": `
17905
+ # "title": "expirable access",
17906
+ # "description": "Does not grant access after Sep 2020",
17907
+ # "expression": "request.time < timestamp('2020-10-01T00:00:00.000Z')
17908
+ # ",
17909
+ # `
17910
+ # `
17911
+ # ],
17912
+ # "etag": "BwWWja0YfJA=",
17913
+ # "version": 3
17914
+ # `
17915
+ # ```
17916
+ # **YAML example:**
17917
+ # ```
17918
+ # bindings:
17919
+ # - members:
17920
+ # - user:mike@example.com
17921
+ # - group:admins@example.com
17922
+ # - domain:google.com
17923
+ # - serviceAccount:my-project-id@appspot.gserviceaccount.com
17924
+ # role: roles/resourcemanager.organizationAdmin
17925
+ # - members:
17926
+ # - user:eve@example.com
17927
+ # role: roles/resourcemanager.organizationViewer
17928
+ # condition:
17929
+ # title: expirable access
17930
+ # description: Does not grant access after Sep 2020
17931
+ # expression: request.time < timestamp('2020-10-01T00:00:00.000Z')
17932
+ # etag: BwWWja0YfJA=
17933
+ # version: 3
17934
+ # ```
17935
+ # For a description of IAM and its features, see the
17936
+ # [IAM documentation](https://cloud.google.com/iam/docs/).
17937
+ # Corresponds to the JSON property `policy`
17938
+ # @return [Google::Apis::ComputeBeta::Policy]
17939
+ attr_accessor :policy
17940
+
17941
+ def initialize(**args)
17942
+ update!(**args)
17943
+ end
17944
+
17945
+ # Update properties of this object
17946
+ def update!(**args)
17947
+ @bindings = args[:bindings] if args.key?(:bindings)
17948
+ @etag = args[:etag] if args.key?(:etag)
17949
+ @policy = args[:policy] if args.key?(:policy)
17950
+ end
17951
+ end
17952
+
17953
+ #
17954
+ class GlobalSetLabelsRequest
17955
+ include Google::Apis::Core::Hashable
17956
+
17957
+ # The fingerprint of the previous set of labels for this resource,
17958
+ # used to detect conflicts. The fingerprint is initially generated by Compute
17959
+ # Engine and changes after every request to modify or update labels. You must
17960
+ # always provide an up-to-date fingerprint hash when updating or changing
17961
+ # labels, otherwise the request will fail with error412 conditionNotMet. Make a
17962
+ # get() request to the
17963
+ # resource to get the latest fingerprint.
17964
+ # Corresponds to the JSON property `labelFingerprint`
17965
+ # NOTE: Values are automatically base64 encoded/decoded in the client library.
17966
+ # @return [String]
17967
+ attr_accessor :label_fingerprint
17968
+
17969
+ # A list of labels to apply for this resource. Each label must comply with
17970
+ # the
17971
+ # requirements for labels. For example,"webserver-frontend": "images". A label
17972
+ # value can also be
17973
+ # empty (e.g. "my-label": "").
17974
+ # Corresponds to the JSON property `labels`
17975
+ # @return [Hash<String,String>]
17976
+ attr_accessor :labels
17977
+
17978
+ def initialize(**args)
17979
+ update!(**args)
17980
+ end
17981
+
17982
+ # Update properties of this object
17983
+ def update!(**args)
17984
+ @label_fingerprint = args[:label_fingerprint] if args.key?(:label_fingerprint)
17985
+ @labels = args[:labels] if args.key?(:labels)
17986
+ end
17987
+ end
17988
+
17989
+ #
17990
+ class GlobalSetPolicyRequest
17285
17991
  include Google::Apis::Core::Hashable
17286
17992
 
17287
17993
  # Flatten Policy to create a backward compatible wire-format.
@@ -18065,6 +18771,7 @@ module Google
18065
18771
  # - IDPF
18066
18772
  # - SNP_SVSM_CAPABLE
18067
18773
  # - CCA_CAPABLE
18774
+ # - SUSPEND_SAFE_FPR
18068
18775
  # For more information, see
18069
18776
  # Enabling guest operating system features.
18070
18777
  # Corresponds to the JSON property `type`
@@ -23782,6 +24489,12 @@ module Google
23782
24489
  # @return [Array<String>]
23783
24490
  attr_accessor :machine_types
23784
24491
 
24492
+ # Name of the minimum CPU platform to be used by this instance selection.
24493
+ # e.g. 'Intel Ice Lake'.
24494
+ # Corresponds to the JSON property `minCpuPlatform`
24495
+ # @return [String]
24496
+ attr_accessor :min_cpu_platform
24497
+
23785
24498
  # Rank when prioritizing the shape flexibilities.
23786
24499
  # The instance selections with rank are considered
23787
24500
  # first, in the ascending order of the rank.
@@ -23798,6 +24511,7 @@ module Google
23798
24511
  def update!(**args)
23799
24512
  @disks = args[:disks] if args.key?(:disks)
23800
24513
  @machine_types = args[:machine_types] if args.key?(:machine_types)
24514
+ @min_cpu_platform = args[:min_cpu_platform] if args.key?(:min_cpu_platform)
23801
24515
  @rank = args[:rank] if args.key?(:rank)
23802
24516
  end
23803
24517
  end
@@ -30823,6 +31537,11 @@ module Google
30823
31537
  # @return [String]
30824
31538
  attr_accessor :self_link
30825
31539
 
31540
+ # Output only. Server-defined URL for this resource with the resource id.
31541
+ # Corresponds to the JSON property `selfLinkWithId`
31542
+ # @return [String]
31543
+ attr_accessor :self_link_with_id
31544
+
30826
31545
  # Output only. [Output Only] The current state of Interconnect functionality,
30827
31546
  # which can
30828
31547
  # take one of the following values:
@@ -30891,6 +31610,7 @@ module Google
30891
31610
  @requested_link_count = args[:requested_link_count] if args.key?(:requested_link_count)
30892
31611
  @satisfies_pzs = args[:satisfies_pzs] if args.key?(:satisfies_pzs)
30893
31612
  @self_link = args[:self_link] if args.key?(:self_link)
31613
+ @self_link_with_id = args[:self_link_with_id] if args.key?(:self_link_with_id)
30894
31614
  @state = args[:state] if args.key?(:state)
30895
31615
  @subzone = args[:subzone] if args.key?(:subzone)
30896
31616
  @wire_groups = args[:wire_groups] if args.key?(:wire_groups)
@@ -34202,6 +34922,19 @@ module Google
34202
34922
  # @return [String]
34203
34923
  attr_accessor :city
34204
34924
 
34925
+ # Output only. The maximum unmetered bandwidth for dynamic paths allowable per
34926
+ # WireGroup for this metro.
34927
+ # Corresponds to the JSON property `maxDynamicPathBandwidthGbps`
34928
+ # @return [Fixnum]
34929
+ attr_accessor :max_dynamic_path_bandwidth_gbps
34930
+
34931
+ # Output only. The maximum unmetered bandwidth for fixed paths allowable per
34932
+ # WireGroup
34933
+ # for this metro.
34934
+ # Corresponds to the JSON property `maxFixedPathBandwidthGbps`
34935
+ # @return [Fixnum]
34936
+ attr_accessor :max_fixed_path_bandwidth_gbps
34937
+
34205
34938
  def initialize(**args)
34206
34939
  update!(**args)
34207
34940
  end
@@ -34209,6 +34942,8 @@ module Google
34209
34942
  # Update properties of this object
34210
34943
  def update!(**args)
34211
34944
  @city = args[:city] if args.key?(:city)
34945
+ @max_dynamic_path_bandwidth_gbps = args[:max_dynamic_path_bandwidth_gbps] if args.key?(:max_dynamic_path_bandwidth_gbps)
34946
+ @max_fixed_path_bandwidth_gbps = args[:max_fixed_path_bandwidth_gbps] if args.key?(:max_fixed_path_bandwidth_gbps)
34212
34947
  end
34213
34948
  end
34214
34949
 
@@ -35971,6 +36706,147 @@ module Google
35971
36706
  end
35972
36707
  end
35973
36708
 
36709
+ #
36710
+ class ListVmExtensionStatesResponse
36711
+ include Google::Apis::Core::Hashable
36712
+
36713
+ # Output only. Fingerprint of this resource. A hash of the contents stored
36714
+ # in this object. This field is used in optimistic locking. This field will
36715
+ # be ignored when inserting a VmExtensionPolicy. An up-to-date
36716
+ # fingerprint must be provided in order to update the VmExtensionPolicy.
36717
+ # To see the latest value of the fingerprint, make a get() request to
36718
+ # retrieve a VmExtensionPolicy.
36719
+ # Corresponds to the JSON property `etag`
36720
+ # @return [String]
36721
+ attr_accessor :etag
36722
+
36723
+ # Output only. Unique identifier for the resource; defined by the server.
36724
+ # Corresponds to the JSON property `id`
36725
+ # @return [String]
36726
+ attr_accessor :id
36727
+
36728
+ # Output only. A list of VM extension policy resources.
36729
+ # Corresponds to the JSON property `items`
36730
+ # @return [Array<Google::Apis::ComputeBeta::VmExtensionState>]
36731
+ attr_accessor :items
36732
+
36733
+ # Output only. Type of resource.
36734
+ # Corresponds to the JSON property `kind`
36735
+ # @return [String]
36736
+ attr_accessor :kind
36737
+
36738
+ # Output only. This token allows you to get the next page of results for
36739
+ # list requests. If the number of results is larger thanmaxResults, use the
36740
+ # nextPageToken as a value for
36741
+ # the query parameter pageToken in the next list request.
36742
+ # Subsequent list requests will have their own nextPageToken to
36743
+ # continue paging through the results.
36744
+ # Corresponds to the JSON property `nextPageToken`
36745
+ # @return [String]
36746
+ attr_accessor :next_page_token
36747
+
36748
+ # Output only. Server-defined URL for this resource.
36749
+ # Corresponds to the JSON property `selfLink`
36750
+ # @return [String]
36751
+ attr_accessor :self_link
36752
+
36753
+ # Output only. Unreachable resources.
36754
+ # Corresponds to the JSON property `unreachables`
36755
+ # @return [Array<String>]
36756
+ attr_accessor :unreachables
36757
+
36758
+ # Output only. Informational warning message.
36759
+ # Corresponds to the JSON property `warning`
36760
+ # @return [Google::Apis::ComputeBeta::ListVmExtensionStatesResponse::Warning]
36761
+ attr_accessor :warning
36762
+
36763
+ def initialize(**args)
36764
+ update!(**args)
36765
+ end
36766
+
36767
+ # Update properties of this object
36768
+ def update!(**args)
36769
+ @etag = args[:etag] if args.key?(:etag)
36770
+ @id = args[:id] if args.key?(:id)
36771
+ @items = args[:items] if args.key?(:items)
36772
+ @kind = args[:kind] if args.key?(:kind)
36773
+ @next_page_token = args[:next_page_token] if args.key?(:next_page_token)
36774
+ @self_link = args[:self_link] if args.key?(:self_link)
36775
+ @unreachables = args[:unreachables] if args.key?(:unreachables)
36776
+ @warning = args[:warning] if args.key?(:warning)
36777
+ end
36778
+
36779
+ # Output only. Informational warning message.
36780
+ class Warning
36781
+ include Google::Apis::Core::Hashable
36782
+
36783
+ # [Output Only] A warning code, if applicable. For example, Compute
36784
+ # Engine returns NO_RESULTS_ON_PAGE if there
36785
+ # are no results in the response.
36786
+ # Corresponds to the JSON property `code`
36787
+ # @return [String]
36788
+ attr_accessor :code
36789
+
36790
+ # [Output Only] Metadata about this warning in key:
36791
+ # value format. For example:
36792
+ # "data": [
36793
+ # `
36794
+ # "key": "scope",
36795
+ # "value": "zones/us-east1-d"
36796
+ # `]
36797
+ # Corresponds to the JSON property `data`
36798
+ # @return [Array<Google::Apis::ComputeBeta::ListVmExtensionStatesResponse::Warning::Datum>]
36799
+ attr_accessor :data
36800
+
36801
+ # [Output Only] A human-readable description of the warning code.
36802
+ # Corresponds to the JSON property `message`
36803
+ # @return [String]
36804
+ attr_accessor :message
36805
+
36806
+ def initialize(**args)
36807
+ update!(**args)
36808
+ end
36809
+
36810
+ # Update properties of this object
36811
+ def update!(**args)
36812
+ @code = args[:code] if args.key?(:code)
36813
+ @data = args[:data] if args.key?(:data)
36814
+ @message = args[:message] if args.key?(:message)
36815
+ end
36816
+
36817
+ #
36818
+ class Datum
36819
+ include Google::Apis::Core::Hashable
36820
+
36821
+ # [Output Only] A key that provides more detail on the warning being
36822
+ # returned. For example, for warnings where there are no results in a list
36823
+ # request for a particular zone, this key might be scope and
36824
+ # the key value might be the zone name. Other examples might be a key
36825
+ # indicating a deprecated resource and a suggested replacement, or a
36826
+ # warning about invalid network settings (for example, if an instance
36827
+ # attempts to perform IP forwarding but is not enabled for IP forwarding).
36828
+ # Corresponds to the JSON property `key`
36829
+ # @return [String]
36830
+ attr_accessor :key
36831
+
36832
+ # [Output Only] A warning data value corresponding to the key.
36833
+ # Corresponds to the JSON property `value`
36834
+ # @return [String]
36835
+ attr_accessor :value
36836
+
36837
+ def initialize(**args)
36838
+ update!(**args)
36839
+ end
36840
+
36841
+ # Update properties of this object
36842
+ def update!(**args)
36843
+ @key = args[:key] if args.key?(:key)
36844
+ @value = args[:value] if args.key?(:value)
36845
+ end
36846
+ end
36847
+ end
36848
+ end
36849
+
35974
36850
  #
35975
36851
  class LocalDisk
35976
36852
  include Google::Apis::Core::Hashable
@@ -37113,8 +37989,7 @@ module Google
37113
37989
  # @return [Google::Apis::ComputeBeta::ManagedInstanceShutdownDetails]
37114
37990
  attr_accessor :shutdown_details
37115
37991
 
37116
- # Output only. [Output Only] The eventual status of the instance. The instance
37117
- # group
37992
+ # Output only. The eventual status of the instance. The instance group
37118
37993
  # manager will not be identified as stable till each managed instance reaches
37119
37994
  # its targetStatus.
37120
37995
  # Corresponds to the JSON property `targetStatus`
@@ -37469,6 +38344,189 @@ module Google
37469
38344
  end
37470
38345
  end
37471
38346
 
38347
+ # Represents a ManagedRuleset resource.
38348
+ # Managed internally by Cloud Armor CLH for Managed Rules features.
38349
+ # Customers can only view these resources to modify their Security Policies.
38350
+ # For more information, see
38351
+ # https://cloud.google.com/armor/docs/.
38352
+ class ManagedRuleset
38353
+ include Google::Apis::Core::Hashable
38354
+
38355
+ # Output only. [Output Only] The change log for this managed ruleset.
38356
+ # Corresponds to the JSON property `changeLog`
38357
+ # @return [String]
38358
+ attr_accessor :change_log
38359
+
38360
+ # Output only. [Output Only] Creation timestamp in RFC3339 text format.
38361
+ # Corresponds to the JSON property `creationTimestamp`
38362
+ # @return [String]
38363
+ attr_accessor :creation_timestamp
38364
+
38365
+ # [Output Only] An optional description of this resource.
38366
+ # Corresponds to the JSON property `description`
38367
+ # @return [String]
38368
+ attr_accessor :description
38369
+
38370
+ # Output only. [Output Only] The unique identifier for the resource. This
38371
+ # identifier is
38372
+ # defined by the server.
38373
+ # Corresponds to the JSON property `id`
38374
+ # @return [Fixnum]
38375
+ attr_accessor :id
38376
+
38377
+ # Name of the resource. Generated internally when the resource is created.
38378
+ # The name must be 1-63 characters long, and comply withRFC1035.
38379
+ # Specifically, the name must be 1-63 characters long and match the regular
38380
+ # expression `[a-z]([-a-z0-9]*[a-z0-9])?` which means the first
38381
+ # character must be a lowercase letter, and all following characters must
38382
+ # be a dash, lowercase letter, or digit, except the last character, which
38383
+ # cannot be a dash.
38384
+ # Corresponds to the JSON property `name`
38385
+ # @return [String]
38386
+ attr_accessor :name
38387
+
38388
+ # Output only. [Output Only] The list of managed rule IDs that are included in
38389
+ # this managed ruleset.
38390
+ # Corresponds to the JSON property `ruleIds`
38391
+ # @return [Array<String>]
38392
+ attr_accessor :rule_ids
38393
+
38394
+ # Output only. [Output Only] The managed ruleset identifier that can be
38395
+ # configured in
38396
+ # Security Policy rules.
38397
+ # Corresponds to the JSON property `rulesetId`
38398
+ # @return [String]
38399
+ attr_accessor :ruleset_id
38400
+
38401
+ # Output only. [Output Only] Server-defined URL for the resource.
38402
+ # Corresponds to the JSON property `selfLink`
38403
+ # @return [String]
38404
+ attr_accessor :self_link
38405
+
38406
+ def initialize(**args)
38407
+ update!(**args)
38408
+ end
38409
+
38410
+ # Update properties of this object
38411
+ def update!(**args)
38412
+ @change_log = args[:change_log] if args.key?(:change_log)
38413
+ @creation_timestamp = args[:creation_timestamp] if args.key?(:creation_timestamp)
38414
+ @description = args[:description] if args.key?(:description)
38415
+ @id = args[:id] if args.key?(:id)
38416
+ @name = args[:name] if args.key?(:name)
38417
+ @rule_ids = args[:rule_ids] if args.key?(:rule_ids)
38418
+ @ruleset_id = args[:ruleset_id] if args.key?(:ruleset_id)
38419
+ @self_link = args[:self_link] if args.key?(:self_link)
38420
+ end
38421
+ end
38422
+
38423
+ #
38424
+ class ManagedRulesetList
38425
+ include Google::Apis::Core::Hashable
38426
+
38427
+ #
38428
+ # Corresponds to the JSON property `id`
38429
+ # @return [String]
38430
+ attr_accessor :id
38431
+
38432
+ #
38433
+ # Corresponds to the JSON property `items`
38434
+ # @return [Array<Google::Apis::ComputeBeta::ManagedRuleset>]
38435
+ attr_accessor :items
38436
+
38437
+ #
38438
+ # Corresponds to the JSON property `nextPageToken`
38439
+ # @return [String]
38440
+ attr_accessor :next_page_token
38441
+
38442
+ #
38443
+ # Corresponds to the JSON property `warning`
38444
+ # @return [Google::Apis::ComputeBeta::ManagedRulesetList::Warning]
38445
+ attr_accessor :warning
38446
+
38447
+ def initialize(**args)
38448
+ update!(**args)
38449
+ end
38450
+
38451
+ # Update properties of this object
38452
+ def update!(**args)
38453
+ @id = args[:id] if args.key?(:id)
38454
+ @items = args[:items] if args.key?(:items)
38455
+ @next_page_token = args[:next_page_token] if args.key?(:next_page_token)
38456
+ @warning = args[:warning] if args.key?(:warning)
38457
+ end
38458
+
38459
+ #
38460
+ class Warning
38461
+ include Google::Apis::Core::Hashable
38462
+
38463
+ # [Output Only] A warning code, if applicable. For example, Compute
38464
+ # Engine returns NO_RESULTS_ON_PAGE if there
38465
+ # are no results in the response.
38466
+ # Corresponds to the JSON property `code`
38467
+ # @return [String]
38468
+ attr_accessor :code
38469
+
38470
+ # [Output Only] Metadata about this warning in key:
38471
+ # value format. For example:
38472
+ # "data": [
38473
+ # `
38474
+ # "key": "scope",
38475
+ # "value": "zones/us-east1-d"
38476
+ # `]
38477
+ # Corresponds to the JSON property `data`
38478
+ # @return [Array<Google::Apis::ComputeBeta::ManagedRulesetList::Warning::Datum>]
38479
+ attr_accessor :data
38480
+
38481
+ # [Output Only] A human-readable description of the warning code.
38482
+ # Corresponds to the JSON property `message`
38483
+ # @return [String]
38484
+ attr_accessor :message
38485
+
38486
+ def initialize(**args)
38487
+ update!(**args)
38488
+ end
38489
+
38490
+ # Update properties of this object
38491
+ def update!(**args)
38492
+ @code = args[:code] if args.key?(:code)
38493
+ @data = args[:data] if args.key?(:data)
38494
+ @message = args[:message] if args.key?(:message)
38495
+ end
38496
+
38497
+ #
38498
+ class Datum
38499
+ include Google::Apis::Core::Hashable
38500
+
38501
+ # [Output Only] A key that provides more detail on the warning being
38502
+ # returned. For example, for warnings where there are no results in a list
38503
+ # request for a particular zone, this key might be scope and
38504
+ # the key value might be the zone name. Other examples might be a key
38505
+ # indicating a deprecated resource and a suggested replacement, or a
38506
+ # warning about invalid network settings (for example, if an instance
38507
+ # attempts to perform IP forwarding but is not enabled for IP forwarding).
38508
+ # Corresponds to the JSON property `key`
38509
+ # @return [String]
38510
+ attr_accessor :key
38511
+
38512
+ # [Output Only] A warning data value corresponding to the key.
38513
+ # Corresponds to the JSON property `value`
38514
+ # @return [String]
38515
+ attr_accessor :value
38516
+
38517
+ def initialize(**args)
38518
+ update!(**args)
38519
+ end
38520
+
38521
+ # Update properties of this object
38522
+ def update!(**args)
38523
+ @key = args[:key] if args.key?(:key)
38524
+ @value = args[:value] if args.key?(:value)
38525
+ end
38526
+ end
38527
+ end
38528
+ end
38529
+
37472
38530
  # A metadata key/value entry.
37473
38531
  class Metadata
37474
38532
  include Google::Apis::Core::Hashable
@@ -45459,6 +46517,11 @@ module Google
45459
46517
  # @return [Google::Apis::ComputeBeta::Operation::Error]
45460
46518
  attr_accessor :error
45461
46519
 
46520
+ # Metadata for GetHealth operations.
46521
+ # Corresponds to the JSON property `getHealthOperationMetadata`
46522
+ # @return [Google::Apis::ComputeBeta::GetHealthOperationMetadata]
46523
+ attr_accessor :get_health_operation_metadata
46524
+
45462
46525
  #
45463
46526
  # Corresponds to the JSON property `getVersionOperationMetadata`
45464
46527
  # @return [Google::Apis::ComputeBeta::GetVersionOperationMetadata]
@@ -45611,6 +46674,7 @@ module Google
45611
46674
  @description = args[:description] if args.key?(:description)
45612
46675
  @end_time = args[:end_time] if args.key?(:end_time)
45613
46676
  @error = args[:error] if args.key?(:error)
46677
+ @get_health_operation_metadata = args[:get_health_operation_metadata] if args.key?(:get_health_operation_metadata)
45614
46678
  @get_version_operation_metadata = args[:get_version_operation_metadata] if args.key?(:get_version_operation_metadata)
45615
46679
  @http_error_message = args[:http_error_message] if args.key?(:http_error_message)
45616
46680
  @http_error_status_code = args[:http_error_status_code] if args.key?(:http_error_status_code)
@@ -49535,6 +50599,570 @@ module Google
49535
50599
  end
49536
50600
  end
49537
50601
 
50602
+ # Represents a RecoverableSnapshot resource.
50603
+ # A RecoverableSnapshot represents a snapshot in recycle bin.
50604
+ class RecoverableSnapshot
50605
+ include Google::Apis::Core::Hashable
50606
+
50607
+ # Output only. [Output Only] Creation timestamp inRFC3339
50608
+ # text format.
50609
+ # Corresponds to the JSON property `creationTimestamp`
50610
+ # @return [String]
50611
+ attr_accessor :creation_timestamp
50612
+
50613
+ # Optional. An optional description of this resource.
50614
+ # Corresponds to the JSON property `description`
50615
+ # @return [String]
50616
+ attr_accessor :description
50617
+
50618
+ # Output only. [Output Only] The unique identifier for the resource. This
50619
+ # identifier is
50620
+ # defined by the server.
50621
+ # Corresponds to the JSON property `id`
50622
+ # @return [Fixnum]
50623
+ attr_accessor :id
50624
+
50625
+ # Output only. [Output Only] Type of the resource. Alwayscompute#
50626
+ # recoverableSnapshot for RecoverableSnapshot
50627
+ # resources.
50628
+ # Corresponds to the JSON property `kind`
50629
+ # @return [String]
50630
+ attr_accessor :kind
50631
+
50632
+ # Output only. Identifier. Name of the recoverable snapshot generated on the
50633
+ # deletion of the snapshot.
50634
+ # The name will be 1-63 characters long, and comply withRFC1035.
50635
+ # Specifically, the name will be 1-63 characters long and match the regular
50636
+ # expression `[a-z]([-a-z0-9]*[a-z0-9])?` which means the first
50637
+ # character will be a lowercase letter, and all following characters can be
50638
+ # a dash, lowercase letter, or digit, except the last character, which cannot
50639
+ # be a dash.
50640
+ # Corresponds to the JSON property `name`
50641
+ # @return [String]
50642
+ attr_accessor :name
50643
+
50644
+ # Output only. Output Only] The original snapshot resource.
50645
+ # Corresponds to the JSON property `originalResource`
50646
+ # @return [Google::Apis::ComputeBeta::RecoverableSnapshotOriginalSnapshot]
50647
+ attr_accessor :original_resource
50648
+
50649
+ # Output only. [Output Only] Purge timestamp of recoverable snapshot inRFC3339
50650
+ # text format.
50651
+ # Corresponds to the JSON property `purgeTimestamp`
50652
+ # @return [String]
50653
+ attr_accessor :purge_timestamp
50654
+
50655
+ # Output only. [Output Only] Reserved for future use.
50656
+ # Corresponds to the JSON property `satisfiesPzi`
50657
+ # @return [Boolean]
50658
+ attr_accessor :satisfies_pzi
50659
+ alias_method :satisfies_pzi?, :satisfies_pzi
50660
+
50661
+ # Output only. [Output Only] Reserved for future use.
50662
+ # Corresponds to the JSON property `satisfiesPzs`
50663
+ # @return [Boolean]
50664
+ attr_accessor :satisfies_pzs
50665
+ alias_method :satisfies_pzs?, :satisfies_pzs
50666
+
50667
+ # Output only. [Output Only] Server-defined URL for the resource.
50668
+ # Corresponds to the JSON property `selfLink`
50669
+ # @return [String]
50670
+ attr_accessor :self_link
50671
+
50672
+ # Output only. [Output Only] Server-defined URL for this resource's resource id.
50673
+ # Corresponds to the JSON property `selfLinkWithId`
50674
+ # @return [String]
50675
+ attr_accessor :self_link_with_id
50676
+
50677
+ # Output only. [Output Only] Status of the recoverable snapshot.
50678
+ # Corresponds to the JSON property `status`
50679
+ # @return [String]
50680
+ attr_accessor :status
50681
+
50682
+ def initialize(**args)
50683
+ update!(**args)
50684
+ end
50685
+
50686
+ # Update properties of this object
50687
+ def update!(**args)
50688
+ @creation_timestamp = args[:creation_timestamp] if args.key?(:creation_timestamp)
50689
+ @description = args[:description] if args.key?(:description)
50690
+ @id = args[:id] if args.key?(:id)
50691
+ @kind = args[:kind] if args.key?(:kind)
50692
+ @name = args[:name] if args.key?(:name)
50693
+ @original_resource = args[:original_resource] if args.key?(:original_resource)
50694
+ @purge_timestamp = args[:purge_timestamp] if args.key?(:purge_timestamp)
50695
+ @satisfies_pzi = args[:satisfies_pzi] if args.key?(:satisfies_pzi)
50696
+ @satisfies_pzs = args[:satisfies_pzs] if args.key?(:satisfies_pzs)
50697
+ @self_link = args[:self_link] if args.key?(:self_link)
50698
+ @self_link_with_id = args[:self_link_with_id] if args.key?(:self_link_with_id)
50699
+ @status = args[:status] if args.key?(:status)
50700
+ end
50701
+ end
50702
+
50703
+ #
50704
+ class RecoverableSnapshotList
50705
+ include Google::Apis::Core::Hashable
50706
+
50707
+ #
50708
+ # Corresponds to the JSON property `etag`
50709
+ # @return [String]
50710
+ attr_accessor :etag
50711
+
50712
+ # [Output Only] Unique identifier for the resource; defined by the server.
50713
+ # Corresponds to the JSON property `id`
50714
+ # @return [String]
50715
+ attr_accessor :id
50716
+
50717
+ # A list of RecoverableSnapshots resources.
50718
+ # Corresponds to the JSON property `items`
50719
+ # @return [Array<Google::Apis::ComputeBeta::RecoverableSnapshot>]
50720
+ attr_accessor :items
50721
+
50722
+ # Output only. [Output Only] Type of resource. Alwayscompute#
50723
+ # recoverableSnapshotList for lists of
50724
+ # recoverablesnapshots.
50725
+ # Corresponds to the JSON property `kind`
50726
+ # @return [String]
50727
+ attr_accessor :kind
50728
+
50729
+ # [Output Only] This token allows you to get the next page of results for
50730
+ # list requests. If the number of results is larger thanmaxResults, use the
50731
+ # nextPageToken as a value for
50732
+ # the query parameter pageToken in the next list request.
50733
+ # Subsequent list requests will have their own nextPageToken to
50734
+ # continue paging through the results.
50735
+ # Corresponds to the JSON property `nextPageToken`
50736
+ # @return [String]
50737
+ attr_accessor :next_page_token
50738
+
50739
+ # Output only. [Output Only] Server-defined URL for this resource.
50740
+ # Corresponds to the JSON property `selfLink`
50741
+ # @return [String]
50742
+ attr_accessor :self_link
50743
+
50744
+ # Output only. [Output Only] Unreachable resources.
50745
+ # end_interface: MixerListResponseWithEtagBuilder
50746
+ # Corresponds to the JSON property `unreachables`
50747
+ # @return [Array<String>]
50748
+ attr_accessor :unreachables
50749
+
50750
+ # [Output Only] Informational warning message.
50751
+ # Corresponds to the JSON property `warning`
50752
+ # @return [Google::Apis::ComputeBeta::RecoverableSnapshotList::Warning]
50753
+ attr_accessor :warning
50754
+
50755
+ def initialize(**args)
50756
+ update!(**args)
50757
+ end
50758
+
50759
+ # Update properties of this object
50760
+ def update!(**args)
50761
+ @etag = args[:etag] if args.key?(:etag)
50762
+ @id = args[:id] if args.key?(:id)
50763
+ @items = args[:items] if args.key?(:items)
50764
+ @kind = args[:kind] if args.key?(:kind)
50765
+ @next_page_token = args[:next_page_token] if args.key?(:next_page_token)
50766
+ @self_link = args[:self_link] if args.key?(:self_link)
50767
+ @unreachables = args[:unreachables] if args.key?(:unreachables)
50768
+ @warning = args[:warning] if args.key?(:warning)
50769
+ end
50770
+
50771
+ # [Output Only] Informational warning message.
50772
+ class Warning
50773
+ include Google::Apis::Core::Hashable
50774
+
50775
+ # [Output Only] A warning code, if applicable. For example, Compute
50776
+ # Engine returns NO_RESULTS_ON_PAGE if there
50777
+ # are no results in the response.
50778
+ # Corresponds to the JSON property `code`
50779
+ # @return [String]
50780
+ attr_accessor :code
50781
+
50782
+ # [Output Only] Metadata about this warning in key:
50783
+ # value format. For example:
50784
+ # "data": [
50785
+ # `
50786
+ # "key": "scope",
50787
+ # "value": "zones/us-east1-d"
50788
+ # `]
50789
+ # Corresponds to the JSON property `data`
50790
+ # @return [Array<Google::Apis::ComputeBeta::RecoverableSnapshotList::Warning::Datum>]
50791
+ attr_accessor :data
50792
+
50793
+ # [Output Only] A human-readable description of the warning code.
50794
+ # Corresponds to the JSON property `message`
50795
+ # @return [String]
50796
+ attr_accessor :message
50797
+
50798
+ def initialize(**args)
50799
+ update!(**args)
50800
+ end
50801
+
50802
+ # Update properties of this object
50803
+ def update!(**args)
50804
+ @code = args[:code] if args.key?(:code)
50805
+ @data = args[:data] if args.key?(:data)
50806
+ @message = args[:message] if args.key?(:message)
50807
+ end
50808
+
50809
+ #
50810
+ class Datum
50811
+ include Google::Apis::Core::Hashable
50812
+
50813
+ # [Output Only] A key that provides more detail on the warning being
50814
+ # returned. For example, for warnings where there are no results in a list
50815
+ # request for a particular zone, this key might be scope and
50816
+ # the key value might be the zone name. Other examples might be a key
50817
+ # indicating a deprecated resource and a suggested replacement, or a
50818
+ # warning about invalid network settings (for example, if an instance
50819
+ # attempts to perform IP forwarding but is not enabled for IP forwarding).
50820
+ # Corresponds to the JSON property `key`
50821
+ # @return [String]
50822
+ attr_accessor :key
50823
+
50824
+ # [Output Only] A warning data value corresponding to the key.
50825
+ # Corresponds to the JSON property `value`
50826
+ # @return [String]
50827
+ attr_accessor :value
50828
+
50829
+ def initialize(**args)
50830
+ update!(**args)
50831
+ end
50832
+
50833
+ # Update properties of this object
50834
+ def update!(**args)
50835
+ @key = args[:key] if args.key?(:key)
50836
+ @value = args[:value] if args.key?(:value)
50837
+ end
50838
+ end
50839
+ end
50840
+ end
50841
+
50842
+ #
50843
+ class RecoverableSnapshotOriginalSnapshot
50844
+ include Google::Apis::Core::Hashable
50845
+
50846
+ # Output only. [Output Only] The architecture of the snapshot. Valid values are
50847
+ # ARM64 or X86_64.
50848
+ # Corresponds to the JSON property `architecture`
50849
+ # @return [String]
50850
+ attr_accessor :architecture
50851
+
50852
+ # Output only. [Output Only] Set to true if snapshots are automatically created
50853
+ # by
50854
+ # applying resource policy on the target disk.
50855
+ # Corresponds to the JSON property `autoCreated`
50856
+ # @return [Boolean]
50857
+ attr_accessor :auto_created
50858
+ alias_method :auto_created?, :auto_created
50859
+
50860
+ # Creates the new snapshot in the snapshot chain labeled with the
50861
+ # specified name. The chain name must be 1-63 characters long and comply
50862
+ # with RFC1035. This is an uncommon option only for advanced service
50863
+ # owners who needs to create separate snapshot chains, for example,
50864
+ # for chargeback tracking. When you describe your snapshot resource, this
50865
+ # field is visible only if it has a non-empty value.
50866
+ # Corresponds to the JSON property `chainName`
50867
+ # @return [String]
50868
+ attr_accessor :chain_name
50869
+
50870
+ # Output only. [Output Only] Size in bytes of the snapshot at creation time.
50871
+ # Corresponds to the JSON property `creationSizeBytes`
50872
+ # @return [Fixnum]
50873
+ attr_accessor :creation_size_bytes
50874
+
50875
+ # Output only. [Output Only] Creation timestamp inRFC3339 text format.
50876
+ # Corresponds to the JSON property `creationTimestamp`
50877
+ # @return [String]
50878
+ attr_accessor :creation_timestamp
50879
+
50880
+ # Output only. [Output Only] Deletion timestamp of snapshot inRFC3339 text
50881
+ # format.
50882
+ # Corresponds to the JSON property `deletionTimestamp`
50883
+ # @return [String]
50884
+ attr_accessor :deletion_timestamp
50885
+
50886
+ # An optional description of this resource.
50887
+ # Corresponds to the JSON property `description`
50888
+ # @return [String]
50889
+ attr_accessor :description
50890
+
50891
+ # Output only. [Output Only] Size of the source disk, specified in GB.
50892
+ # Corresponds to the JSON property `diskSizeGb`
50893
+ # @return [Fixnum]
50894
+ attr_accessor :disk_size_gb
50895
+
50896
+ # Output only. [Output Only] Number of bytes downloaded to restore a snapshot to
50897
+ # a disk.
50898
+ # Corresponds to the JSON property `downloadBytes`
50899
+ # @return [Fixnum]
50900
+ attr_accessor :download_bytes
50901
+
50902
+ # Output only. Whether this snapshot is created from a confidential compute mode
50903
+ # disk.
50904
+ # [Output Only]: This field is not set by user, but from source disk.
50905
+ # Corresponds to the JSON property `enableConfidentialCompute`
50906
+ # @return [Boolean]
50907
+ attr_accessor :enable_confidential_compute
50908
+ alias_method :enable_confidential_compute?, :enable_confidential_compute
50909
+
50910
+ # Output only. [Output Only] A list of features to enable on the guest operating
50911
+ # system.
50912
+ # Applicable only for bootable images. Read
50913
+ # Enabling guest operating system features to see a list of available
50914
+ # options.
50915
+ # Corresponds to the JSON property `guestOsFeatures`
50916
+ # @return [Array<Google::Apis::ComputeBeta::GuestOsFeature>]
50917
+ attr_accessor :guest_os_features
50918
+
50919
+ # Output only. [Output Only] The unique identifier for the original snapshot.
50920
+ # This
50921
+ # identifier is defined by the server.
50922
+ # Corresponds to the JSON property `id`
50923
+ # @return [Fixnum]
50924
+ attr_accessor :id
50925
+
50926
+ # A fingerprint for the labels being applied to this snapshot, which is
50927
+ # essentially a hash of the labels set used for optimistic locking. The
50928
+ # fingerprint is initially generated by Compute Engine and changes after
50929
+ # every request to modify or update labels. You must always provide an
50930
+ # up-to-date fingerprint hash in order to update or change labels,
50931
+ # otherwise the request will fail with error412 conditionNotMet.
50932
+ # To see the latest fingerprint, make a get() request to
50933
+ # retrieve a snapshot.
50934
+ # Corresponds to the JSON property `labelFingerprint`
50935
+ # NOTE: Values are automatically base64 encoded/decoded in the client library.
50936
+ # @return [String]
50937
+ attr_accessor :label_fingerprint
50938
+
50939
+ # Labels to apply to this snapshot. These can be later modified by
50940
+ # the setLabels method.
50941
+ # Label values may be empty.
50942
+ # Corresponds to the JSON property `labels`
50943
+ # @return [Hash<String,String>]
50944
+ attr_accessor :labels
50945
+
50946
+ # Output only. [Output Only] Integer license codes indicating which licenses are
50947
+ # attached to this snapshot.
50948
+ # Corresponds to the JSON property `licenseCodes`
50949
+ # @return [Array<Fixnum>]
50950
+ attr_accessor :license_codes
50951
+
50952
+ # Output only. [Output Only] A list of public visible licenses that apply to
50953
+ # this
50954
+ # snapshot.
50955
+ # Corresponds to the JSON property `licenses`
50956
+ # @return [Array<String>]
50957
+ attr_accessor :licenses
50958
+
50959
+ # Number of days the snapshot should be retained before being deleted
50960
+ # automatically.
50961
+ # Corresponds to the JSON property `maxRetentionDays`
50962
+ # @return [Fixnum]
50963
+ attr_accessor :max_retention_days
50964
+
50965
+ # Name of the original snapshot provided by the client. The name must be
50966
+ # 1-63 characters long, and comply with RFC1035.
50967
+ # Specifically, the name must be 1-63 characters long and match the regular
50968
+ # expression `[a-z]([-a-z0-9]*[a-z0-9])?` which means the first
50969
+ # character must be a lowercase letter, and all following characters must
50970
+ # be a dash, lowercase letter, or digit, except the last character, which
50971
+ # cannot be a dash.
50972
+ # Corresponds to the JSON property `name`
50973
+ # @return [String]
50974
+ attr_accessor :name
50975
+
50976
+ # Output only. [Output Only] URL of the region where the snapshot resides. Only
50977
+ # applicable for regional snapshots.
50978
+ # Corresponds to the JSON property `region`
50979
+ # @return [String]
50980
+ attr_accessor :region
50981
+
50982
+ # Output only. Reserved for future use.
50983
+ # Corresponds to the JSON property `satisfiesPzi`
50984
+ # @return [Boolean]
50985
+ attr_accessor :satisfies_pzi
50986
+ alias_method :satisfies_pzi?, :satisfies_pzi
50987
+
50988
+ # Output only. [Output Only] Reserved for future use.
50989
+ # Corresponds to the JSON property `satisfiesPzs`
50990
+ # @return [Boolean]
50991
+ attr_accessor :satisfies_pzs
50992
+ alias_method :satisfies_pzs?, :satisfies_pzs
50993
+
50994
+ # Output only. [Output Only] Server-defined URL for the resource.
50995
+ # Corresponds to the JSON property `selfLink`
50996
+ # @return [String]
50997
+ attr_accessor :self_link
50998
+
50999
+ # Output only. [Output Only] Server-defined URL for this resource's resource id.
51000
+ # Corresponds to the JSON property `selfLinkWithId`
51001
+ # @return [String]
51002
+ attr_accessor :self_link_with_id
51003
+
51004
+ # Encrypts the snapshot using acustomer-supplied
51005
+ # encryption key.
51006
+ # After you encrypt a snapshot using a customer-supplied key, you must
51007
+ # provide the same key if you use the snapshot later. For example, you must
51008
+ # provide the encryption key when you create a disk from the encrypted
51009
+ # snapshot in a future request.
51010
+ # Customer-supplied encryption keys do not protect access to metadata
51011
+ # of the snapshot.
51012
+ # If you do not provide an encryption key when creating the snapshot, then
51013
+ # the snapshot will be encrypted using an automatically generated key and
51014
+ # you do not need to provide a key to use the snapshot later.
51015
+ # Corresponds to the JSON property `snapshotEncryptionKey`
51016
+ # @return [Google::Apis::ComputeBeta::CustomerEncryptionKey]
51017
+ attr_accessor :snapshot_encryption_key
51018
+
51019
+ # Output only. [Output Only] The unique ID of the snapshot group that this
51020
+ # snapshot
51021
+ # belongs to. The usage of snapshot group feature is restricted.
51022
+ # Corresponds to the JSON property `snapshotGroupId`
51023
+ # @return [String]
51024
+ attr_accessor :snapshot_group_id
51025
+
51026
+ # Output only. [Output only] The snapshot group that this snapshot belongs to.
51027
+ # The usage
51028
+ # of snapshot group feature is restricted.
51029
+ # Corresponds to the JSON property `snapshotGroupName`
51030
+ # @return [String]
51031
+ attr_accessor :snapshot_group_name
51032
+
51033
+ # Indicates the type of the snapshot.
51034
+ # Corresponds to the JSON property `snapshotType`
51035
+ # @return [String]
51036
+ attr_accessor :snapshot_type
51037
+
51038
+ # The source disk used to create this snapshot.
51039
+ # Corresponds to the JSON property `sourceDisk`
51040
+ # @return [String]
51041
+ attr_accessor :source_disk
51042
+
51043
+ # The customer-supplied
51044
+ # encryption key of the source disk. Required if the source disk is
51045
+ # protected by a customer-supplied encryption key.
51046
+ # Corresponds to the JSON property `sourceDiskEncryptionKey`
51047
+ # @return [Google::Apis::ComputeBeta::CustomerEncryptionKey]
51048
+ attr_accessor :source_disk_encryption_key
51049
+
51050
+ # The source disk whose recovery checkpoint will be used to create this
51051
+ # snapshot.
51052
+ # Corresponds to the JSON property `sourceDiskForRecoveryCheckpoint`
51053
+ # @return [String]
51054
+ attr_accessor :source_disk_for_recovery_checkpoint
51055
+
51056
+ # Output only. [Output Only] The ID value of the disk used to create this
51057
+ # snapshot
51058
+ # Corresponds to the JSON property `sourceDiskId`
51059
+ # @return [String]
51060
+ attr_accessor :source_disk_id
51061
+
51062
+ # The source instant snapshot used to create this snapshot.
51063
+ # Corresponds to the JSON property `sourceInstantSnapshot`
51064
+ # @return [String]
51065
+ attr_accessor :source_instant_snapshot
51066
+
51067
+ # Customer provided encryption key when creating Snapshot from Instant
51068
+ # Snapshot.
51069
+ # Corresponds to the JSON property `sourceInstantSnapshotEncryptionKey`
51070
+ # @return [Google::Apis::ComputeBeta::CustomerEncryptionKey]
51071
+ attr_accessor :source_instant_snapshot_encryption_key
51072
+
51073
+ # Output only. [Output Only] The unique ID of the instant snapshot used to
51074
+ # create this
51075
+ # snapshot. This value identifies the exact instant snapshot that was used
51076
+ # to create this persistent disk. For example, if you created the
51077
+ # persistent disk from an instant snapshot that was later deleted and
51078
+ # recreated under the same name, the source instant snapshot ID would
51079
+ # identify the exact instant snapshot that was used.
51080
+ # Corresponds to the JSON property `sourceInstantSnapshotId`
51081
+ # @return [String]
51082
+ attr_accessor :source_instant_snapshot_id
51083
+
51084
+ # Output only. [Output Only] URL of the resource policy which created this
51085
+ # scheduled snapshot.
51086
+ # Corresponds to the JSON property `sourceSnapshotSchedulePolicy`
51087
+ # @return [String]
51088
+ attr_accessor :source_snapshot_schedule_policy
51089
+
51090
+ # Output only. [Output Only] ID of the resource policy which created this
51091
+ # scheduled snapshot.
51092
+ # Corresponds to the JSON property `sourceSnapshotSchedulePolicyId`
51093
+ # @return [String]
51094
+ attr_accessor :source_snapshot_schedule_policy_id
51095
+
51096
+ # Output only. [Output Only] A size of the storage used by the snapshot.
51097
+ # Corresponds to the JSON property `storageBytes`
51098
+ # @return [Fixnum]
51099
+ attr_accessor :storage_bytes
51100
+
51101
+ # Output only. [Deprecated] Instead, check the storageBytes field. After
51102
+ # snapshot creation, the storageBytesStatus field is alwaysUP_TO_DATE.
51103
+ # [Output Only] An indicator whether storageBytes is in a
51104
+ # stable state or it is being adjusted as a result of shared storage
51105
+ # reallocation. This status can either be unset, meaning the snapshot is
51106
+ # being created, or UP_TO_DATE, meaning the size of the
51107
+ # snapshot is up-to-date.
51108
+ # Corresponds to the JSON property `storageBytesStatus`
51109
+ # @return [String]
51110
+ attr_accessor :storage_bytes_status
51111
+
51112
+ # Cloud Storage bucket storage location of the snapshot (regional or
51113
+ # multi-regional).
51114
+ # Corresponds to the JSON property `storageLocations`
51115
+ # @return [Array<String>]
51116
+ attr_accessor :storage_locations
51117
+
51118
+ def initialize(**args)
51119
+ update!(**args)
51120
+ end
51121
+
51122
+ # Update properties of this object
51123
+ def update!(**args)
51124
+ @architecture = args[:architecture] if args.key?(:architecture)
51125
+ @auto_created = args[:auto_created] if args.key?(:auto_created)
51126
+ @chain_name = args[:chain_name] if args.key?(:chain_name)
51127
+ @creation_size_bytes = args[:creation_size_bytes] if args.key?(:creation_size_bytes)
51128
+ @creation_timestamp = args[:creation_timestamp] if args.key?(:creation_timestamp)
51129
+ @deletion_timestamp = args[:deletion_timestamp] if args.key?(:deletion_timestamp)
51130
+ @description = args[:description] if args.key?(:description)
51131
+ @disk_size_gb = args[:disk_size_gb] if args.key?(:disk_size_gb)
51132
+ @download_bytes = args[:download_bytes] if args.key?(:download_bytes)
51133
+ @enable_confidential_compute = args[:enable_confidential_compute] if args.key?(:enable_confidential_compute)
51134
+ @guest_os_features = args[:guest_os_features] if args.key?(:guest_os_features)
51135
+ @id = args[:id] if args.key?(:id)
51136
+ @label_fingerprint = args[:label_fingerprint] if args.key?(:label_fingerprint)
51137
+ @labels = args[:labels] if args.key?(:labels)
51138
+ @license_codes = args[:license_codes] if args.key?(:license_codes)
51139
+ @licenses = args[:licenses] if args.key?(:licenses)
51140
+ @max_retention_days = args[:max_retention_days] if args.key?(:max_retention_days)
51141
+ @name = args[:name] if args.key?(:name)
51142
+ @region = args[:region] if args.key?(:region)
51143
+ @satisfies_pzi = args[:satisfies_pzi] if args.key?(:satisfies_pzi)
51144
+ @satisfies_pzs = args[:satisfies_pzs] if args.key?(:satisfies_pzs)
51145
+ @self_link = args[:self_link] if args.key?(:self_link)
51146
+ @self_link_with_id = args[:self_link_with_id] if args.key?(:self_link_with_id)
51147
+ @snapshot_encryption_key = args[:snapshot_encryption_key] if args.key?(:snapshot_encryption_key)
51148
+ @snapshot_group_id = args[:snapshot_group_id] if args.key?(:snapshot_group_id)
51149
+ @snapshot_group_name = args[:snapshot_group_name] if args.key?(:snapshot_group_name)
51150
+ @snapshot_type = args[:snapshot_type] if args.key?(:snapshot_type)
51151
+ @source_disk = args[:source_disk] if args.key?(:source_disk)
51152
+ @source_disk_encryption_key = args[:source_disk_encryption_key] if args.key?(:source_disk_encryption_key)
51153
+ @source_disk_for_recovery_checkpoint = args[:source_disk_for_recovery_checkpoint] if args.key?(:source_disk_for_recovery_checkpoint)
51154
+ @source_disk_id = args[:source_disk_id] if args.key?(:source_disk_id)
51155
+ @source_instant_snapshot = args[:source_instant_snapshot] if args.key?(:source_instant_snapshot)
51156
+ @source_instant_snapshot_encryption_key = args[:source_instant_snapshot_encryption_key] if args.key?(:source_instant_snapshot_encryption_key)
51157
+ @source_instant_snapshot_id = args[:source_instant_snapshot_id] if args.key?(:source_instant_snapshot_id)
51158
+ @source_snapshot_schedule_policy = args[:source_snapshot_schedule_policy] if args.key?(:source_snapshot_schedule_policy)
51159
+ @source_snapshot_schedule_policy_id = args[:source_snapshot_schedule_policy_id] if args.key?(:source_snapshot_schedule_policy_id)
51160
+ @storage_bytes = args[:storage_bytes] if args.key?(:storage_bytes)
51161
+ @storage_bytes_status = args[:storage_bytes_status] if args.key?(:storage_bytes_status)
51162
+ @storage_locations = args[:storage_locations] if args.key?(:storage_locations)
51163
+ end
51164
+ end
51165
+
49538
51166
  # Represents a reference to a resource.
49539
51167
  class Reference
49540
51168
  include Google::Apis::Core::Hashable
@@ -49581,7 +51209,7 @@ module Google
49581
51209
  class RegexRewrite
49582
51210
  include Google::Apis::Core::Hashable
49583
51211
 
49584
- # The regular expression used to match against the URL path.
51212
+ # Required. The regular expression used to match against the URL path.
49585
51213
  # It uses RE2 syntax with the following constraints:
49586
51214
  #
49587
51215
  #
@@ -49609,7 +51237,8 @@ module Google
49609
51237
  # @return [String]
49610
51238
  attr_accessor :path_pattern
49611
51239
 
49612
- # Required when path pattern is specified. Used to rewrite matching parts of
51240
+ # Required. Required when path pattern is specified. Used to rewrite matching
51241
+ # parts of
49613
51242
  # the path.
49614
51243
  # Corresponds to the JSON property `pathSubstitution`
49615
51244
  # @return [String]
@@ -63672,157 +65301,333 @@ module Google
63672
65301
  end
63673
65302
  end
63674
65303
 
63675
- # Represents a SnapshotGroup resource.
63676
- # A snapshot group is a set of snapshots that represents a point in time state
63677
- # of a consistency group.
63678
- class SnapshotGroup
63679
- include Google::Apis::Core::Hashable
63680
-
63681
- # Output only. [Output Only] Creation timestamp inRFC3339
63682
- # text format.
63683
- # Corresponds to the JSON property `creationTimestamp`
63684
- # @return [String]
63685
- attr_accessor :creation_timestamp
63686
-
63687
- # Optional. An optional description of this resource. Provide this property when
63688
- # you
63689
- # create the resource.
63690
- # Corresponds to the JSON property `description`
63691
- # @return [String]
63692
- attr_accessor :description
63693
-
63694
- # Output only. [Output Only] The unique identifier for the resource. This
63695
- # identifier is
63696
- # defined by the server.
63697
- # Corresponds to the JSON property `id`
63698
- # @return [Fixnum]
63699
- attr_accessor :id
63700
-
63701
- # Output only. [Output Only] Type of the resource. Alwayscompute#snapshotGroup
63702
- # for SnapshotGroup
63703
- # resources.
63704
- # Corresponds to the JSON property `kind`
63705
- # @return [String]
63706
- attr_accessor :kind
63707
-
63708
- # Identifier. Name of the resource; provided by the client when the resource is
63709
- # created.
63710
- # The name must be 1-63 characters long, and comply withRFC1035.
63711
- # Specifically, the name must be 1-63 characters long and match the regular
63712
- # expression `[a-z]([-a-z0-9]*[a-z0-9])?` which means the first
63713
- # character must be a lowercase letter, and all following characters must be
63714
- # a dash, lowercase letter, or digit, except the last character, which cannot
63715
- # be a dash.
63716
- # Corresponds to the JSON property `name`
63717
- # @return [String]
63718
- attr_accessor :name
63719
-
63720
- # Output only. [Output Only] Server-defined URL for the resource.
63721
- # Corresponds to the JSON property `selfLink`
63722
- # @return [String]
63723
- attr_accessor :self_link
63724
-
63725
- # Output only. [Output Only] Server-defined URL for this resource's resource id.
63726
- # Corresponds to the JSON property `selfLinkWithId`
63727
- # @return [String]
63728
- attr_accessor :self_link_with_id
63729
-
63730
- # Output only. [Output Only]
63731
- # Corresponds to the JSON property `sourceInfo`
63732
- # @return [Google::Apis::ComputeBeta::SnapshotGroupSourceInfo]
63733
- attr_accessor :source_info
63734
-
63735
- # Input field for the source instant snapshot group.
63736
- # Corresponds to the JSON property `sourceInstantSnapshotGroup`
63737
- # @return [String]
63738
- attr_accessor :source_instant_snapshot_group
63739
-
63740
- # Output only. [Output Only]
63741
- # Corresponds to the JSON property `sourceInstantSnapshotGroupInfo`
63742
- # @return [Google::Apis::ComputeBeta::SnapshotGroupSourceInstantSnapshotGroupInfo]
63743
- attr_accessor :source_instant_snapshot_group_info
63744
-
63745
- # Output only. [Output Only]
63746
- # Corresponds to the JSON property `status`
63747
- # @return [String]
63748
- attr_accessor :status
63749
-
63750
- def initialize(**args)
63751
- update!(**args)
63752
- end
63753
-
63754
- # Update properties of this object
63755
- def update!(**args)
63756
- @creation_timestamp = args[:creation_timestamp] if args.key?(:creation_timestamp)
63757
- @description = args[:description] if args.key?(:description)
63758
- @id = args[:id] if args.key?(:id)
63759
- @kind = args[:kind] if args.key?(:kind)
63760
- @name = args[:name] if args.key?(:name)
63761
- @self_link = args[:self_link] if args.key?(:self_link)
63762
- @self_link_with_id = args[:self_link_with_id] if args.key?(:self_link_with_id)
63763
- @source_info = args[:source_info] if args.key?(:source_info)
63764
- @source_instant_snapshot_group = args[:source_instant_snapshot_group] if args.key?(:source_instant_snapshot_group)
63765
- @source_instant_snapshot_group_info = args[:source_instant_snapshot_group_info] if args.key?(:source_instant_snapshot_group_info)
63766
- @status = args[:status] if args.key?(:status)
63767
- end
63768
- end
63769
-
63770
- #
63771
- class SnapshotGroupParameters
63772
- include Google::Apis::Core::Hashable
63773
-
63774
- # URLs of the zones where disks should be replicated to. Only applicable
63775
- # for regional resources.
63776
- # Corresponds to the JSON property `replicaZones`
63777
- # @return [Array<String>]
63778
- attr_accessor :replica_zones
63779
-
63780
- # The source snapshot group used to create disks. You can provide this as a
63781
- # partial or full URL to the resource. For example, the following are valid
63782
- # values:
63783
- #
63784
- #
63785
- # - https://www.googleapis.com/compute/v1/projects/project/global/
63786
- # snapshotGroups/snapshotGroup
63787
- # - projects/project/global/snapshotGroups/snapshotGroup
63788
- # - global/snapshotGroups/snapshotGroup
63789
- # Corresponds to the JSON property `sourceSnapshotGroup`
63790
- # @return [String]
63791
- attr_accessor :source_snapshot_group
63792
-
63793
- # URL of the disk type resource describing which disk type to use to create
63794
- # disks. Provide this when creating the disk. For example:projects/project/zones/
63795
- # zone/diskTypes/pd-ssd. See Persistent disk
63796
- # types.
63797
- # Corresponds to the JSON property `type`
63798
- # @return [String]
63799
- attr_accessor :type
63800
-
63801
- def initialize(**args)
63802
- update!(**args)
63803
- end
63804
-
63805
- # Update properties of this object
63806
- def update!(**args)
63807
- @replica_zones = args[:replica_zones] if args.key?(:replica_zones)
63808
- @source_snapshot_group = args[:source_snapshot_group] if args.key?(:source_snapshot_group)
63809
- @type = args[:type] if args.key?(:type)
63810
- end
63811
- end
63812
-
63813
- #
63814
- class SnapshotGroupSourceInfo
65304
+ # Represents a SnapshotGroup resource.
65305
+ # A snapshot group is a set of snapshots that represents a point in time state
65306
+ # of a consistency group.
65307
+ class SnapshotGroup
65308
+ include Google::Apis::Core::Hashable
65309
+
65310
+ # Output only. [Output Only] Creation timestamp inRFC3339
65311
+ # text format.
65312
+ # Corresponds to the JSON property `creationTimestamp`
65313
+ # @return [String]
65314
+ attr_accessor :creation_timestamp
65315
+
65316
+ # Optional. An optional description of this resource. Provide this property when
65317
+ # you
65318
+ # create the resource.
65319
+ # Corresponds to the JSON property `description`
65320
+ # @return [String]
65321
+ attr_accessor :description
65322
+
65323
+ # Output only. [Output Only] The unique identifier for the resource. This
65324
+ # identifier is
65325
+ # defined by the server.
65326
+ # Corresponds to the JSON property `id`
65327
+ # @return [Fixnum]
65328
+ attr_accessor :id
65329
+
65330
+ # Output only. [Output Only] Type of the resource. Alwayscompute#snapshotGroup
65331
+ # for SnapshotGroup
65332
+ # resources.
65333
+ # Corresponds to the JSON property `kind`
65334
+ # @return [String]
65335
+ attr_accessor :kind
65336
+
65337
+ # Identifier. Name of the resource; provided by the client when the resource is
65338
+ # created.
65339
+ # The name must be 1-63 characters long, and comply withRFC1035.
65340
+ # Specifically, the name must be 1-63 characters long and match the regular
65341
+ # expression `[a-z]([-a-z0-9]*[a-z0-9])?` which means the first
65342
+ # character must be a lowercase letter, and all following characters must be
65343
+ # a dash, lowercase letter, or digit, except the last character, which cannot
65344
+ # be a dash.
65345
+ # Corresponds to the JSON property `name`
65346
+ # @return [String]
65347
+ attr_accessor :name
65348
+
65349
+ # Output only. [Output Only] Server-defined URL for the resource.
65350
+ # Corresponds to the JSON property `selfLink`
65351
+ # @return [String]
65352
+ attr_accessor :self_link
65353
+
65354
+ # Output only. [Output Only] Server-defined URL for this resource's resource id.
65355
+ # Corresponds to the JSON property `selfLinkWithId`
65356
+ # @return [String]
65357
+ attr_accessor :self_link_with_id
65358
+
65359
+ # Output only. [Output Only]
65360
+ # Corresponds to the JSON property `sourceInfo`
65361
+ # @return [Google::Apis::ComputeBeta::SnapshotGroupSourceInfo]
65362
+ attr_accessor :source_info
65363
+
65364
+ # Input field for the source instant snapshot group.
65365
+ # Corresponds to the JSON property `sourceInstantSnapshotGroup`
65366
+ # @return [String]
65367
+ attr_accessor :source_instant_snapshot_group
65368
+
65369
+ # Output only. [Output Only]
65370
+ # Corresponds to the JSON property `sourceInstantSnapshotGroupInfo`
65371
+ # @return [Google::Apis::ComputeBeta::SnapshotGroupSourceInstantSnapshotGroupInfo]
65372
+ attr_accessor :source_instant_snapshot_group_info
65373
+
65374
+ # Output only. [Output Only]
65375
+ # Corresponds to the JSON property `status`
65376
+ # @return [String]
65377
+ attr_accessor :status
65378
+
65379
+ def initialize(**args)
65380
+ update!(**args)
65381
+ end
65382
+
65383
+ # Update properties of this object
65384
+ def update!(**args)
65385
+ @creation_timestamp = args[:creation_timestamp] if args.key?(:creation_timestamp)
65386
+ @description = args[:description] if args.key?(:description)
65387
+ @id = args[:id] if args.key?(:id)
65388
+ @kind = args[:kind] if args.key?(:kind)
65389
+ @name = args[:name] if args.key?(:name)
65390
+ @self_link = args[:self_link] if args.key?(:self_link)
65391
+ @self_link_with_id = args[:self_link_with_id] if args.key?(:self_link_with_id)
65392
+ @source_info = args[:source_info] if args.key?(:source_info)
65393
+ @source_instant_snapshot_group = args[:source_instant_snapshot_group] if args.key?(:source_instant_snapshot_group)
65394
+ @source_instant_snapshot_group_info = args[:source_instant_snapshot_group_info] if args.key?(:source_instant_snapshot_group_info)
65395
+ @status = args[:status] if args.key?(:status)
65396
+ end
65397
+ end
65398
+
65399
+ #
65400
+ class SnapshotGroupParameters
65401
+ include Google::Apis::Core::Hashable
65402
+
65403
+ # URLs of the zones where disks should be replicated to. Only applicable
65404
+ # for regional resources.
65405
+ # Corresponds to the JSON property `replicaZones`
65406
+ # @return [Array<String>]
65407
+ attr_accessor :replica_zones
65408
+
65409
+ # The source snapshot group used to create disks. You can provide this as a
65410
+ # partial or full URL to the resource. For example, the following are valid
65411
+ # values:
65412
+ #
65413
+ #
65414
+ # - https://www.googleapis.com/compute/v1/projects/project/global/
65415
+ # snapshotGroups/snapshotGroup
65416
+ # - projects/project/global/snapshotGroups/snapshotGroup
65417
+ # - global/snapshotGroups/snapshotGroup
65418
+ # Corresponds to the JSON property `sourceSnapshotGroup`
65419
+ # @return [String]
65420
+ attr_accessor :source_snapshot_group
65421
+
65422
+ # URL of the disk type resource describing which disk type to use to create
65423
+ # disks. Provide this when creating the disk. For example:projects/project/zones/
65424
+ # zone/diskTypes/pd-ssd. See Persistent disk
65425
+ # types.
65426
+ # Corresponds to the JSON property `type`
65427
+ # @return [String]
65428
+ attr_accessor :type
65429
+
65430
+ def initialize(**args)
65431
+ update!(**args)
65432
+ end
65433
+
65434
+ # Update properties of this object
65435
+ def update!(**args)
65436
+ @replica_zones = args[:replica_zones] if args.key?(:replica_zones)
65437
+ @source_snapshot_group = args[:source_snapshot_group] if args.key?(:source_snapshot_group)
65438
+ @type = args[:type] if args.key?(:type)
65439
+ end
65440
+ end
65441
+
65442
+ #
65443
+ class SnapshotGroupSourceInfo
65444
+ include Google::Apis::Core::Hashable
65445
+
65446
+ #
65447
+ # Corresponds to the JSON property `consistencyGroup`
65448
+ # @return [String]
65449
+ attr_accessor :consistency_group
65450
+
65451
+ #
65452
+ # Corresponds to the JSON property `consistencyGroupId`
65453
+ # @return [String]
65454
+ attr_accessor :consistency_group_id
65455
+
65456
+ def initialize(**args)
65457
+ update!(**args)
65458
+ end
65459
+
65460
+ # Update properties of this object
65461
+ def update!(**args)
65462
+ @consistency_group = args[:consistency_group] if args.key?(:consistency_group)
65463
+ @consistency_group_id = args[:consistency_group_id] if args.key?(:consistency_group_id)
65464
+ end
65465
+ end
65466
+
65467
+ #
65468
+ class SnapshotGroupSourceInstantSnapshotGroupInfo
65469
+ include Google::Apis::Core::Hashable
65470
+
65471
+ #
65472
+ # Corresponds to the JSON property `instantSnapshotGroup`
65473
+ # @return [String]
65474
+ attr_accessor :instant_snapshot_group
65475
+
65476
+ #
65477
+ # Corresponds to the JSON property `instantSnapshotGroupId`
65478
+ # @return [String]
65479
+ attr_accessor :instant_snapshot_group_id
65480
+
65481
+ def initialize(**args)
65482
+ update!(**args)
65483
+ end
65484
+
65485
+ # Update properties of this object
65486
+ def update!(**args)
65487
+ @instant_snapshot_group = args[:instant_snapshot_group] if args.key?(:instant_snapshot_group)
65488
+ @instant_snapshot_group_id = args[:instant_snapshot_group_id] if args.key?(:instant_snapshot_group_id)
65489
+ end
65490
+ end
65491
+
65492
+ # Contains a list of Snapshot resources.
65493
+ class SnapshotList
65494
+ include Google::Apis::Core::Hashable
65495
+
65496
+ # [Output Only] Unique identifier for the resource; defined by the server.
65497
+ # Corresponds to the JSON property `id`
65498
+ # @return [String]
65499
+ attr_accessor :id
65500
+
65501
+ # A list of Snapshot resources.
65502
+ # Corresponds to the JSON property `items`
65503
+ # @return [Array<Google::Apis::ComputeBeta::Snapshot>]
65504
+ attr_accessor :items
65505
+
65506
+ # Output only. Type of resource.
65507
+ # Corresponds to the JSON property `kind`
65508
+ # @return [String]
65509
+ attr_accessor :kind
65510
+
65511
+ # [Output Only] This token allows you to get the next page of results for
65512
+ # list requests. If the number of results is larger thanmaxResults, use the
65513
+ # nextPageToken as a value for
65514
+ # the query parameter pageToken in the next list request.
65515
+ # Subsequent list requests will have their own nextPageToken to
65516
+ # continue paging through the results.
65517
+ # Corresponds to the JSON property `nextPageToken`
65518
+ # @return [String]
65519
+ attr_accessor :next_page_token
65520
+
65521
+ # Output only. [Output Only] Server-defined URL for this resource.
65522
+ # Corresponds to the JSON property `selfLink`
65523
+ # @return [String]
65524
+ attr_accessor :self_link
65525
+
65526
+ # [Output Only] Informational warning message.
65527
+ # Corresponds to the JSON property `warning`
65528
+ # @return [Google::Apis::ComputeBeta::SnapshotList::Warning]
65529
+ attr_accessor :warning
65530
+
65531
+ def initialize(**args)
65532
+ update!(**args)
65533
+ end
65534
+
65535
+ # Update properties of this object
65536
+ def update!(**args)
65537
+ @id = args[:id] if args.key?(:id)
65538
+ @items = args[:items] if args.key?(:items)
65539
+ @kind = args[:kind] if args.key?(:kind)
65540
+ @next_page_token = args[:next_page_token] if args.key?(:next_page_token)
65541
+ @self_link = args[:self_link] if args.key?(:self_link)
65542
+ @warning = args[:warning] if args.key?(:warning)
65543
+ end
65544
+
65545
+ # [Output Only] Informational warning message.
65546
+ class Warning
65547
+ include Google::Apis::Core::Hashable
65548
+
65549
+ # [Output Only] A warning code, if applicable. For example, Compute
65550
+ # Engine returns NO_RESULTS_ON_PAGE if there
65551
+ # are no results in the response.
65552
+ # Corresponds to the JSON property `code`
65553
+ # @return [String]
65554
+ attr_accessor :code
65555
+
65556
+ # [Output Only] Metadata about this warning in key:
65557
+ # value format. For example:
65558
+ # "data": [
65559
+ # `
65560
+ # "key": "scope",
65561
+ # "value": "zones/us-east1-d"
65562
+ # `]
65563
+ # Corresponds to the JSON property `data`
65564
+ # @return [Array<Google::Apis::ComputeBeta::SnapshotList::Warning::Datum>]
65565
+ attr_accessor :data
65566
+
65567
+ # [Output Only] A human-readable description of the warning code.
65568
+ # Corresponds to the JSON property `message`
65569
+ # @return [String]
65570
+ attr_accessor :message
65571
+
65572
+ def initialize(**args)
65573
+ update!(**args)
65574
+ end
65575
+
65576
+ # Update properties of this object
65577
+ def update!(**args)
65578
+ @code = args[:code] if args.key?(:code)
65579
+ @data = args[:data] if args.key?(:data)
65580
+ @message = args[:message] if args.key?(:message)
65581
+ end
65582
+
65583
+ #
65584
+ class Datum
65585
+ include Google::Apis::Core::Hashable
65586
+
65587
+ # [Output Only] A key that provides more detail on the warning being
65588
+ # returned. For example, for warnings where there are no results in a list
65589
+ # request for a particular zone, this key might be scope and
65590
+ # the key value might be the zone name. Other examples might be a key
65591
+ # indicating a deprecated resource and a suggested replacement, or a
65592
+ # warning about invalid network settings (for example, if an instance
65593
+ # attempts to perform IP forwarding but is not enabled for IP forwarding).
65594
+ # Corresponds to the JSON property `key`
65595
+ # @return [String]
65596
+ attr_accessor :key
65597
+
65598
+ # [Output Only] A warning data value corresponding to the key.
65599
+ # Corresponds to the JSON property `value`
65600
+ # @return [String]
65601
+ attr_accessor :value
65602
+
65603
+ def initialize(**args)
65604
+ update!(**args)
65605
+ end
65606
+
65607
+ # Update properties of this object
65608
+ def update!(**args)
65609
+ @key = args[:key] if args.key?(:key)
65610
+ @value = args[:value] if args.key?(:value)
65611
+ end
65612
+ end
65613
+ end
65614
+ end
65615
+
65616
+ # Additional snapshot params.
65617
+ class SnapshotParams
63815
65618
  include Google::Apis::Core::Hashable
63816
65619
 
63817
- #
63818
- # Corresponds to the JSON property `consistencyGroup`
63819
- # @return [String]
63820
- attr_accessor :consistency_group
63821
-
63822
- #
63823
- # Corresponds to the JSON property `consistencyGroupId`
63824
- # @return [String]
63825
- attr_accessor :consistency_group_id
65620
+ # Input only. Resource manager tags to be bound to the snapshot. Tag keys and
65621
+ # values have
65622
+ # the same definition as resource
65623
+ # manager tags. Keys and values can be either in numeric format,
65624
+ # such as `tagKeys/`tag_key_id`` and `tagValues/`tag_value_id`` or in
65625
+ # namespaced format such as ``org_id|project_id`/`tag_key_short_name`` and
65626
+ # ``tag_value_short_name``. The field is ignored (both PUT &
65627
+ # PATCH) when empty.
65628
+ # Corresponds to the JSON property `resourceManagerTags`
65629
+ # @return [Hash<String,String>]
65630
+ attr_accessor :resource_manager_tags
63826
65631
 
63827
65632
  def initialize(**args)
63828
65633
  update!(**args)
@@ -63830,24 +65635,37 @@ module Google
63830
65635
 
63831
65636
  # Update properties of this object
63832
65637
  def update!(**args)
63833
- @consistency_group = args[:consistency_group] if args.key?(:consistency_group)
63834
- @consistency_group_id = args[:consistency_group_id] if args.key?(:consistency_group_id)
65638
+ @resource_manager_tags = args[:resource_manager_tags] if args.key?(:resource_manager_tags)
63835
65639
  end
63836
65640
  end
63837
65641
 
63838
- #
63839
- class SnapshotGroupSourceInstantSnapshotGroupInfo
65642
+ # Represents the singleton resource Snapshot Recycle Bin Policy that
65643
+ # configures the retention duration for snapshots in the recycle bin.
65644
+ # You can configure the retention duration for snapshots in the recycle bin
65645
+ # at the project or organization level. If you configure the policy at the
65646
+ # organization level, all projects in that organization will share the same
65647
+ # policy. If you configure the policy at the project level it will be merged
65648
+ # with org level policy (if any) and the snapshots in that project will use
65649
+ # that policy.
65650
+ class SnapshotRecycleBinPolicy
63840
65651
  include Google::Apis::Core::Hashable
63841
65652
 
63842
- #
63843
- # Corresponds to the JSON property `instantSnapshotGroup`
63844
- # @return [String]
63845
- attr_accessor :instant_snapshot_group
65653
+ # The rules for the snapshot recycle bin policy. The key is either 'default'
65654
+ # or namespacedName of the TagValue which can be in the format:
65655
+ # ``organization_id`/`tag_key_short_name`/`tag_value_short_name`` or
65656
+ # ``project_id`/`tag_key_short_name`/`tag_value_short_name`` or
65657
+ # ``project_number`/`tag_key_short_name`/`tag_value_short_name``. The default
65658
+ # rule is applied if snapshots do not have any of these tags.
65659
+ # The value is the rule for the key.
65660
+ # Corresponds to the JSON property `rules`
65661
+ # @return [Hash<String,Google::Apis::ComputeBeta::SnapshotRecycleBinPolicyRule>]
65662
+ attr_accessor :rules
63846
65663
 
63847
- #
63848
- # Corresponds to the JSON property `instantSnapshotGroupId`
63849
- # @return [String]
63850
- attr_accessor :instant_snapshot_group_id
65664
+ # Output only. The system rules for snapshot recycle bin policy.
65665
+ # Defines the default rule that applies if no customer-defined rule matches.
65666
+ # Corresponds to the JSON property `systemRules`
65667
+ # @return [Hash<String,Google::Apis::ComputeBeta::SnapshotRecycleBinPolicyRule>]
65668
+ attr_accessor :system_rules
63851
65669
 
63852
65670
  def initialize(**args)
63853
65671
  update!(**args)
@@ -63855,49 +65673,19 @@ module Google
63855
65673
 
63856
65674
  # Update properties of this object
63857
65675
  def update!(**args)
63858
- @instant_snapshot_group = args[:instant_snapshot_group] if args.key?(:instant_snapshot_group)
63859
- @instant_snapshot_group_id = args[:instant_snapshot_group_id] if args.key?(:instant_snapshot_group_id)
65676
+ @rules = args[:rules] if args.key?(:rules)
65677
+ @system_rules = args[:system_rules] if args.key?(:system_rules)
63860
65678
  end
63861
65679
  end
63862
65680
 
63863
- # Contains a list of Snapshot resources.
63864
- class SnapshotList
65681
+ # A rule that defines the retention policy for snapshots in the recycle bin.
65682
+ class SnapshotRecycleBinPolicyRule
63865
65683
  include Google::Apis::Core::Hashable
63866
65684
 
63867
- # [Output Only] Unique identifier for the resource; defined by the server.
63868
- # Corresponds to the JSON property `id`
63869
- # @return [String]
63870
- attr_accessor :id
63871
-
63872
- # A list of Snapshot resources.
63873
- # Corresponds to the JSON property `items`
63874
- # @return [Array<Google::Apis::ComputeBeta::Snapshot>]
63875
- attr_accessor :items
63876
-
63877
- # Output only. Type of resource.
63878
- # Corresponds to the JSON property `kind`
63879
- # @return [String]
63880
- attr_accessor :kind
63881
-
63882
- # [Output Only] This token allows you to get the next page of results for
63883
- # list requests. If the number of results is larger thanmaxResults, use the
63884
- # nextPageToken as a value for
63885
- # the query parameter pageToken in the next list request.
63886
- # Subsequent list requests will have their own nextPageToken to
63887
- # continue paging through the results.
63888
- # Corresponds to the JSON property `nextPageToken`
63889
- # @return [String]
63890
- attr_accessor :next_page_token
63891
-
63892
- # Output only. [Output Only] Server-defined URL for this resource.
63893
- # Corresponds to the JSON property `selfLink`
63894
- # @return [String]
63895
- attr_accessor :self_link
63896
-
63897
- # [Output Only] Informational warning message.
63898
- # Corresponds to the JSON property `warning`
63899
- # @return [Google::Apis::ComputeBeta::SnapshotList::Warning]
63900
- attr_accessor :warning
65685
+ # The rule config for snapshots in the recycle bin.
65686
+ # Corresponds to the JSON property `standardSnapshots`
65687
+ # @return [Google::Apis::ComputeBeta::SnapshotRecycleBinPolicyRuleRuleConfig]
65688
+ attr_accessor :standard_snapshots
63901
65689
 
63902
65690
  def initialize(**args)
63903
65691
  update!(**args)
@@ -63905,100 +65693,19 @@ module Google
63905
65693
 
63906
65694
  # Update properties of this object
63907
65695
  def update!(**args)
63908
- @id = args[:id] if args.key?(:id)
63909
- @items = args[:items] if args.key?(:items)
63910
- @kind = args[:kind] if args.key?(:kind)
63911
- @next_page_token = args[:next_page_token] if args.key?(:next_page_token)
63912
- @self_link = args[:self_link] if args.key?(:self_link)
63913
- @warning = args[:warning] if args.key?(:warning)
63914
- end
63915
-
63916
- # [Output Only] Informational warning message.
63917
- class Warning
63918
- include Google::Apis::Core::Hashable
63919
-
63920
- # [Output Only] A warning code, if applicable. For example, Compute
63921
- # Engine returns NO_RESULTS_ON_PAGE if there
63922
- # are no results in the response.
63923
- # Corresponds to the JSON property `code`
63924
- # @return [String]
63925
- attr_accessor :code
63926
-
63927
- # [Output Only] Metadata about this warning in key:
63928
- # value format. For example:
63929
- # "data": [
63930
- # `
63931
- # "key": "scope",
63932
- # "value": "zones/us-east1-d"
63933
- # `]
63934
- # Corresponds to the JSON property `data`
63935
- # @return [Array<Google::Apis::ComputeBeta::SnapshotList::Warning::Datum>]
63936
- attr_accessor :data
63937
-
63938
- # [Output Only] A human-readable description of the warning code.
63939
- # Corresponds to the JSON property `message`
63940
- # @return [String]
63941
- attr_accessor :message
63942
-
63943
- def initialize(**args)
63944
- update!(**args)
63945
- end
63946
-
63947
- # Update properties of this object
63948
- def update!(**args)
63949
- @code = args[:code] if args.key?(:code)
63950
- @data = args[:data] if args.key?(:data)
63951
- @message = args[:message] if args.key?(:message)
63952
- end
63953
-
63954
- #
63955
- class Datum
63956
- include Google::Apis::Core::Hashable
63957
-
63958
- # [Output Only] A key that provides more detail on the warning being
63959
- # returned. For example, for warnings where there are no results in a list
63960
- # request for a particular zone, this key might be scope and
63961
- # the key value might be the zone name. Other examples might be a key
63962
- # indicating a deprecated resource and a suggested replacement, or a
63963
- # warning about invalid network settings (for example, if an instance
63964
- # attempts to perform IP forwarding but is not enabled for IP forwarding).
63965
- # Corresponds to the JSON property `key`
63966
- # @return [String]
63967
- attr_accessor :key
63968
-
63969
- # [Output Only] A warning data value corresponding to the key.
63970
- # Corresponds to the JSON property `value`
63971
- # @return [String]
63972
- attr_accessor :value
63973
-
63974
- def initialize(**args)
63975
- update!(**args)
63976
- end
63977
-
63978
- # Update properties of this object
63979
- def update!(**args)
63980
- @key = args[:key] if args.key?(:key)
63981
- @value = args[:value] if args.key?(:value)
63982
- end
63983
- end
65696
+ @standard_snapshots = args[:standard_snapshots] if args.key?(:standard_snapshots)
63984
65697
  end
63985
65698
  end
63986
65699
 
63987
- # Additional snapshot params.
63988
- class SnapshotParams
65700
+ # The rule config for snapshots in the recycle bin.
65701
+ class SnapshotRecycleBinPolicyRuleRuleConfig
63989
65702
  include Google::Apis::Core::Hashable
63990
65703
 
63991
- # Input only. Resource manager tags to be bound to the snapshot. Tag keys and
63992
- # values have
63993
- # the same definition as resource
63994
- # manager tags. Keys and values can be either in numeric format,
63995
- # such as `tagKeys/`tag_key_id`` and `tagValues/`tag_value_id`` or in
63996
- # namespaced format such as ``org_id|project_id`/`tag_key_short_name`` and
63997
- # ``tag_value_short_name``. The field is ignored (both PUT &
63998
- # PATCH) when empty.
63999
- # Corresponds to the JSON property `resourceManagerTags`
64000
- # @return [Hash<String,String>]
64001
- attr_accessor :resource_manager_tags
65704
+ # The retention duration for snapshots in the recycle bin after which the
65705
+ # snapshots are automatically deleted from recycle bin.
65706
+ # Corresponds to the JSON property `retentionDurationDays`
65707
+ # @return [Fixnum]
65708
+ attr_accessor :retention_duration_days
64002
65709
 
64003
65710
  def initialize(**args)
64004
65711
  update!(**args)
@@ -64006,7 +65713,7 @@ module Google
64006
65713
 
64007
65714
  # Update properties of this object
64008
65715
  def update!(**args)
64009
- @resource_manager_tags = args[:resource_manager_tags] if args.key?(:resource_manager_tags)
65716
+ @retention_duration_days = args[:retention_duration_days] if args.key?(:retention_duration_days)
64010
65717
  end
64011
65718
  end
64012
65719
 
@@ -64155,6 +65862,25 @@ module Google
64155
65862
  end
64156
65863
  end
64157
65864
 
65865
+ #
65866
+ class SnapshotsGetEffectiveRecycleBinRuleResponse
65867
+ include Google::Apis::Core::Hashable
65868
+
65869
+ # The retention duration of the snapshot in recycle bin.
65870
+ # Corresponds to the JSON property `retentionDurationDays`
65871
+ # @return [Fixnum]
65872
+ attr_accessor :retention_duration_days
65873
+
65874
+ def initialize(**args)
65875
+ update!(**args)
65876
+ end
65877
+
65878
+ # Update properties of this object
65879
+ def update!(**args)
65880
+ @retention_duration_days = args[:retention_duration_days] if args.key?(:retention_duration_days)
65881
+ end
65882
+ end
65883
+
64158
65884
  #
64159
65885
  class SnapshotsScopedList
64160
65886
  include Google::Apis::Core::Hashable
@@ -70347,7 +72073,8 @@ module Google
70347
72073
  # The server-defined URL for the resource. This field is applicable only when
70348
72074
  # the containing target pool is serving a forwarding rule as the primary
70349
72075
  # pool, and its failoverRatio field is properly set to a value
70350
- # between [0, 1].backupPool and failoverRatio together define
72076
+ # between [0, 1].
72077
+ # backupPool and failoverRatio together define
70351
72078
  # the fallback behavior of the primary target pool: if the ratio of the
70352
72079
  # healthy instances in the primary pool is at or belowfailoverRatio, traffic
70353
72080
  # arriving at the load-balanced
@@ -74569,6 +76296,63 @@ module Google
74569
76296
  end
74570
76297
  end
74571
76298
 
76299
+ # State of an extension on an instance.
76300
+ class VmExtensionState
76301
+ include Google::Apis::Core::Hashable
76302
+
76303
+ # The status message of the extension if the extension fails to enforce.
76304
+ # Corresponds to the JSON property `enforcementMsg`
76305
+ # @return [String]
76306
+ attr_accessor :enforcement_msg
76307
+
76308
+ # The enforcement state of the extension.
76309
+ # If the extension is not enforced yet, then the health status will not be
76310
+ # specified.
76311
+ # Corresponds to the JSON property `enforcementState`
76312
+ # @return [String]
76313
+ attr_accessor :enforcement_state
76314
+
76315
+ # The health status message of the extension.
76316
+ # Corresponds to the JSON property `healthMsg`
76317
+ # @return [String]
76318
+ attr_accessor :health_msg
76319
+
76320
+ # The health status of the extension.
76321
+ # Corresponds to the JSON property `healthStatus`
76322
+ # @return [String]
76323
+ attr_accessor :health_status
76324
+
76325
+ # The name of the extension.
76326
+ # Corresponds to the JSON property `name`
76327
+ # @return [String]
76328
+ attr_accessor :name
76329
+
76330
+ # The id of the policy that is enforced on the extension.
76331
+ # Corresponds to the JSON property `policyId`
76332
+ # @return [String]
76333
+ attr_accessor :policy_id
76334
+
76335
+ # The version of the extension.
76336
+ # Corresponds to the JSON property `version`
76337
+ # @return [String]
76338
+ attr_accessor :version
76339
+
76340
+ def initialize(**args)
76341
+ update!(**args)
76342
+ end
76343
+
76344
+ # Update properties of this object
76345
+ def update!(**args)
76346
+ @enforcement_msg = args[:enforcement_msg] if args.key?(:enforcement_msg)
76347
+ @enforcement_state = args[:enforcement_state] if args.key?(:enforcement_state)
76348
+ @health_msg = args[:health_msg] if args.key?(:health_msg)
76349
+ @health_status = args[:health_status] if args.key?(:health_status)
76350
+ @name = args[:name] if args.key?(:name)
76351
+ @policy_id = args[:policy_id] if args.key?(:policy_id)
76352
+ @version = args[:version] if args.key?(:version)
76353
+ end
76354
+ end
76355
+
74572
76356
  # Represents a HA VPN gateway.
74573
76357
  # HA VPN is a high-availability (HA) Cloud VPN solution that lets you securely
74574
76358
  # connect your on-premises network to your Google Cloud Virtual Private Cloud