google-apis-compute_alpha 0.109.0 → 0.110.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -3099,7 +3099,8 @@ module Google
3099
3099
  # the [Backend services overview](https://cloud.google.com/load-balancing/docs/
3100
3100
  # backend-service#backends). You must use the *fully-qualified* URL (starting
3101
3101
  # with https://www.googleapis.com/) to specify the instance group or NEG.
3102
- # Partial URLs are not supported.
3102
+ # Partial URLs are not supported. If haPolicy is specified, backends must refer
3103
+ # to NEG resources of type GCE_VM_IP.
3103
3104
  # Corresponds to the JSON property `group`
3104
3105
  # @return [String]
3105
3106
  attr_accessor :group
@@ -3993,7 +3994,23 @@ module Google
3993
3994
  # @return [String]
3994
3995
  attr_accessor :fingerprint
3995
3996
 
3996
- # Configuring haPolicy is not supported.
3997
+ # Configures self-managed High Availability (HA) for External and Internal
3998
+ # Protocol Forwarding. The backends of this regional backend service must only
3999
+ # specify zonal network endpoint groups (NEGs) of type GCE_VM_IP. When haPolicy
4000
+ # is set for an Internal Passthrough Network Load Balancer, the regional backend
4001
+ # service must set the network field. All zonal NEGs must belong to the same
4002
+ # network. However, individual NEGs can belong to different subnetworks of that
4003
+ # network. When haPolicy is specified, the set of attached network endpoints
4004
+ # across all backends comprise an High Availability domain from which one
4005
+ # endpoint is selected as the active endpoint (the leader) that receives all
4006
+ # traffic. haPolicy can be added only at backend service creation time. Once set
4007
+ # up, it cannot be deleted. Note that haPolicy is not for load balancing, and
4008
+ # therefore cannot be specified with sessionAffinity, connectionTrackingPolicy,
4009
+ # and failoverPolicy. haPolicy requires customers to be responsible for tracking
4010
+ # backend endpoint health and electing a leader among the healthy endpoints.
4011
+ # Therefore, haPolicy cannot be specified with healthChecks. haPolicy can only
4012
+ # be specified for External Passthrough Network Load Balancers and Internal
4013
+ # Passthrough Network Load Balancers.
3997
4014
  # Corresponds to the JSON property `haPolicy`
3998
4015
  # @return [Google::Apis::ComputeAlpha::BackendServiceHaPolicy]
3999
4016
  attr_accessor :ha_policy
@@ -4003,8 +4020,9 @@ module Google
4003
4020
  # Not all backend services support legacy health checks. See Load balancer guide.
4004
4021
  # Currently, at most one health check can be specified for each backend service.
4005
4022
  # Backend services with instance group or zonal NEG backends must have a health
4006
- # check. Backend services with internet or serverless NEG backends must not have
4007
- # a health check.
4023
+ # check unless haPolicy is specified. Backend services with internet or
4024
+ # serverless NEG backends must not have a health check. healthChecks[] cannot be
4025
+ # specified with haPolicy.
4008
4026
  # Corresponds to the JSON property `healthChecks`
4009
4027
  # @return [Array<String>]
4010
4028
  attr_accessor :health_checks
@@ -4092,6 +4110,7 @@ module Google
4092
4110
  # default value for localityLbPolicy is MAGLEV. Only ROUND_ROBIN and RING_HASH
4093
4111
  # are supported when the backend service is referenced by a URL map that is
4094
4112
  # bound to target gRPC proxy that has validateForProxyless field set to true.
4113
+ # localityLbPolicy cannot be specified with haPolicy.
4095
4114
  # Corresponds to the JSON property `localityLbPolicy`
4096
4115
  # @return [String]
4097
4116
  attr_accessor :locality_lb_policy
@@ -4126,14 +4145,17 @@ module Google
4126
4145
  # @return [String]
4127
4146
  attr_accessor :name
4128
4147
 
4129
- # The URL of the network to which this backend service belongs. This field can
4130
- # only be specified when the load balancing scheme is set to INTERNAL.
4148
+ # The URL of the network to which this backend service belongs. This field must
4149
+ # be set for Internal Passthrough Network Load Balancers when the haPolicy is
4150
+ # enabled, and for External Passthrough Network Load Balancers when the haPolicy
4151
+ # fastIpMove is enabled. This field can only be specified when the load
4152
+ # balancing scheme is set to INTERNAL.
4131
4153
  # Corresponds to the JSON property `network`
4132
4154
  # @return [String]
4133
4155
  attr_accessor :network
4134
4156
 
4135
4157
  # Configures traffic steering properties of internal passthrough Network Load
4136
- # Balancers.
4158
+ # Balancers. networkPassThroughLbTrafficPolicy cannot be specified with haPolicy.
4137
4159
  # Corresponds to the JSON property `networkPassThroughLbTrafficPolicy`
4138
4160
  # @return [Google::Apis::ComputeAlpha::BackendServiceNetworkPassThroughLbTrafficPolicy]
4139
4161
  attr_accessor :network_pass_through_lb_traffic_policy
@@ -4218,7 +4240,8 @@ module Google
4218
4240
  # HEADER_FIELD are supported when the backend service is referenced by a URL map
4219
4241
  # that is bound to target gRPC proxy that has validateForProxyless field set to
4220
4242
  # true. For more details, see: [Session Affinity](https://cloud.google.com/load-
4221
- # balancing/docs/backend-service#session_affinity).
4243
+ # balancing/docs/backend-service#session_affinity). sessionAffinity cannot be
4244
+ # specified with haPolicy.
4222
4245
  # Corresponds to the JSON property `sessionAffinity`
4223
4246
  # @return [String]
4224
4247
  attr_accessor :session_affinity
@@ -4896,12 +4919,63 @@ module Google
4896
4919
  class BackendServiceHaPolicy
4897
4920
  include Google::Apis::Core::Hashable
4898
4921
 
4899
- # Enabling fastIPMove is not supported.
4922
+ # Specifies whether fast IP move is enabled, and if so, the mechanism to achieve
4923
+ # it. Supported values are: - DISABLED: Fast IP Move is disabled. You can only
4924
+ # use the haPolicy.leader API to update the leader. - >GARP_RA: Provides a
4925
+ # method to very quickly define a new network endpoint as the leader. This
4926
+ # method is faster than updating the leader using the haPolicy.leader API. Fast
4927
+ # IP move works as follows: The VM hosting the network endpoint that should
4928
+ # become the new leader sends either a Gratuitous ARP (GARP) packet (IPv4) or an
4929
+ # ICMPv6 Router Advertisement(RA) packet (IPv6). Google Cloud immediately but
4930
+ # temporarily associates the forwarding rule IP address with that VM, and both
4931
+ # new and in-flight packets are quickly delivered to that VM. Note the important
4932
+ # properties of the Fast IP Move functionality: - The GARP/RA-initiated re-
4933
+ # routing stays active for approximately 20 minutes. After triggering fast
4934
+ # failover, you must also appropriately set the haPolicy.leader. - The new
4935
+ # leader instance should continue to send GARP/RA packets periodically every 10
4936
+ # seconds until at least 10 minutes after updating the haPolicy.leader (but stop
4937
+ # immediately if it is no longer the leader). - After triggering a fast failover,
4938
+ # we recommend that you wait at least 3 seconds before sending another GARP/RA
4939
+ # packet from a different VM instance to avoid race conditions. - Don't send
4940
+ # GARP/RA packets from different VM instances at the same time. If multiple
4941
+ # instances continue to send GARP/RA packets, traffic might be routed to
4942
+ # different destinations in an alternating order. This condition ceases when a
4943
+ # single instance issues a GARP/RA packet. - The GARP/RA request always takes
4944
+ # priority over the leader API. Using the haPolicy.leader API to change the
4945
+ # leader to a different instance will have no effect until the GARP/RA request
4946
+ # becomes inactive. - The GARP/RA packets should follow the GARP/RA Packet
4947
+ # Specifications.. - When multiple forwarding rules refer to a regional backend
4948
+ # service, you need only send a GARP or RA packet for a single forwarding rule
4949
+ # virtual IP. The virtual IPs for all forwarding rules targeting the same
4950
+ # backend service will also be moved to the sender of the GARP or RA packet. The
4951
+ # following are the Fast IP Move limitations (that is, when fastIPMove is not
4952
+ # DISABLED): - Multiple forwarding rules cannot use the same IP address if one
4953
+ # of them refers to a regional backend service with fastIPMove. - The regional
4954
+ # backend service must set the network field, and all NEGs must belong to that
4955
+ # network. However, individual NEGs can belong to different subnetworks of that
4956
+ # network. - The maximum number of network endpoints across all backends of a
4957
+ # backend service with fastIPMove is 64. - The maximum number of backend
4958
+ # services with fastIPMove that can have the same network endpoint attached to
4959
+ # one of its backends is 64. - The maximum number of backend services with
4960
+ # fastIPMove in a VPC in a region is 64. - The network endpoints that are
4961
+ # attached to a backend of a backend service with fastIPMove cannot resolve to
4962
+ # C3 machines. - Traffic directed to the leader by a static route next hop will
4963
+ # not be redirected to a new leader by fast failover. Such traffic will only be
4964
+ # redirected once an haPolicy.leader update has taken effect. Only traffic to
4965
+ # the forwarding rule's virtual IP will be redirected to a new leader by fast
4966
+ # failover. haPolicy.fastIPMove can be set only at backend service creation time.
4967
+ # Once set, it cannot be updated. By default, fastIpMove is set to DISABLED.
4900
4968
  # Corresponds to the JSON property `fastIPMove`
4901
4969
  # @return [String]
4902
4970
  attr_accessor :fast_ip_move
4903
4971
 
4904
- # Setting a leader is not supported.
4972
+ # Selects one of the network endpoints attached to the backend NEGs of this
4973
+ # service as the active endpoint (the leader) that receives all traffic. When
4974
+ # the leader changes, there is no connection draining to persist existing
4975
+ # connections on the old leader. You are responsible for selecting a suitable
4976
+ # endpoint as the leader. For example, preferring a healthy endpoint over
4977
+ # unhealthy ones. Note that this service does not track backend endpoint health,
4978
+ # and selects the configured leader unconditionally.
4905
4979
  # Corresponds to the JSON property `leader`
4906
4980
  # @return [Google::Apis::ComputeAlpha::BackendServiceHaPolicyLeader]
4907
4981
  attr_accessor :leader
@@ -4921,12 +4995,19 @@ module Google
4921
4995
  class BackendServiceHaPolicyLeader
4922
4996
  include Google::Apis::Core::Hashable
4923
4997
 
4924
- # Setting backendGroup is not supported.
4998
+ # A fully-qualified URL (starting with https://www.googleapis.com/) of the zonal
4999
+ # Network Endpoint Group (NEG) with `GCE_VM_IP` endpoints that the leader is
5000
+ # attached to. The leader's backendGroup must already be specified as a backend
5001
+ # of this backend service. Removing a backend that is designated as the leader's
5002
+ # backendGroup is not permitted.
4925
5003
  # Corresponds to the JSON property `backendGroup`
4926
5004
  # @return [String]
4927
5005
  attr_accessor :backend_group
4928
5006
 
4929
- # Setting a network endpoint as leader is not supported.
5007
+ # The network endpoint within the leader.backendGroup that is designated as the
5008
+ # leader. This network endpoint cannot be detached from the NEG specified in the
5009
+ # haPolicy.leader.backendGroup until the leader is updated with another network
5010
+ # endpoint, or the leader is removed from the haPolicy.
4930
5011
  # Corresponds to the JSON property `networkEndpoint`
4931
5012
  # @return [Google::Apis::ComputeAlpha::BackendServiceHaPolicyLeaderNetworkEndpoint]
4932
5013
  attr_accessor :network_endpoint
@@ -4946,7 +5027,11 @@ module Google
4946
5027
  class BackendServiceHaPolicyLeaderNetworkEndpoint
4947
5028
  include Google::Apis::Core::Hashable
4948
5029
 
4949
- # Specifying the instance name of a leader is not supported.
5030
+ # The name of the VM instance of the leader network endpoint. The instance must
5031
+ # already be attached to the NEG specified in the haPolicy.leader.backendGroup.
5032
+ # The name must be 1-63 characters long, and comply with RFC1035. Authorization
5033
+ # requires the following IAM permission on the specified resource instance:
5034
+ # compute.instances.use
4950
5035
  # Corresponds to the JSON property `instance`
4951
5036
  # @return [String]
4952
5037
  attr_accessor :instance
@@ -25321,7 +25406,8 @@ module Google
25321
25406
 
25322
25407
  # Type of link requested, which can take one of the following values: -
25323
25408
  # LINK_TYPE_ETHERNET_10G_LR: A 10G Ethernet with LR optics -
25324
- # LINK_TYPE_ETHERNET_100G_LR: A 100G Ethernet with LR optics. Note that this
25409
+ # LINK_TYPE_ETHERNET_100G_LR: A 100G Ethernet with LR optics. -
25410
+ # LINK_TYPE_ETHERNET_400G_LR4: A 400G Ethernet with LR4 optics. Note that this
25325
25411
  # field indicates the speed of each of the links in the bundle, not the speed of
25326
25412
  # the entire bundle.
25327
25413
  # Corresponds to the JSON property `linkType`
@@ -28262,7 +28348,8 @@ module Google
28262
28348
 
28263
28349
  # Type of link requested, which can take one of the following values: -
28264
28350
  # LINK_TYPE_ETHERNET_10G_LR: A 10G Ethernet with LR optics -
28265
- # LINK_TYPE_ETHERNET_100G_LR: A 100G Ethernet with LR optics. Note that this
28351
+ # LINK_TYPE_ETHERNET_100G_LR: A 100G Ethernet with LR optics. -
28352
+ # LINK_TYPE_ETHERNET_400G_LR4: A 400G Ethernet with LR4 optics. Note that this
28266
28353
  # field indicates the speed of each of the links in the bundle, not the speed of
28267
28354
  # the entire bundle.
28268
28355
  # Corresponds to the JSON property `linkType`
@@ -30707,6 +30794,136 @@ module Google
30707
30794
  end
30708
30795
  end
30709
30796
 
30797
+ # Contains a list of SnapshotGroup resources.
30798
+ class ListSnapshotGroups
30799
+ include Google::Apis::Core::Hashable
30800
+
30801
+ #
30802
+ # Corresponds to the JSON property `etag`
30803
+ # @return [String]
30804
+ attr_accessor :etag
30805
+
30806
+ # [Output Only] Unique identifier for the resource; defined by the server.
30807
+ # Corresponds to the JSON property `id`
30808
+ # @return [String]
30809
+ attr_accessor :id
30810
+
30811
+ # A list of SnapshotGroup resources.
30812
+ # Corresponds to the JSON property `items`
30813
+ # @return [Array<Google::Apis::ComputeAlpha::SnapshotGroup>]
30814
+ attr_accessor :items
30815
+
30816
+ # Type of resource.
30817
+ # Corresponds to the JSON property `kind`
30818
+ # @return [String]
30819
+ attr_accessor :kind
30820
+
30821
+ # [Output Only] This token allows you to get the next page of results for list
30822
+ # requests. If the number of results is larger than maxResults, use the
30823
+ # nextPageToken as a value for the query parameter pageToken in the next list
30824
+ # request. Subsequent list requests will have their own nextPageToken to
30825
+ # continue paging through the results.
30826
+ # Corresponds to the JSON property `nextPageToken`
30827
+ # @return [String]
30828
+ attr_accessor :next_page_token
30829
+
30830
+ # [Output Only] Server-defined URL for this resource.
30831
+ # Corresponds to the JSON property `selfLink`
30832
+ # @return [String]
30833
+ attr_accessor :self_link
30834
+
30835
+ # [Output Only] Unreachable resources. end_interface:
30836
+ # MixerListResponseWithEtagBuilder
30837
+ # Corresponds to the JSON property `unreachables`
30838
+ # @return [Array<String>]
30839
+ attr_accessor :unreachables
30840
+
30841
+ # [Output Only] Informational warning message.
30842
+ # Corresponds to the JSON property `warning`
30843
+ # @return [Google::Apis::ComputeAlpha::ListSnapshotGroups::Warning]
30844
+ attr_accessor :warning
30845
+
30846
+ def initialize(**args)
30847
+ update!(**args)
30848
+ end
30849
+
30850
+ # Update properties of this object
30851
+ def update!(**args)
30852
+ @etag = args[:etag] if args.key?(:etag)
30853
+ @id = args[:id] if args.key?(:id)
30854
+ @items = args[:items] if args.key?(:items)
30855
+ @kind = args[:kind] if args.key?(:kind)
30856
+ @next_page_token = args[:next_page_token] if args.key?(:next_page_token)
30857
+ @self_link = args[:self_link] if args.key?(:self_link)
30858
+ @unreachables = args[:unreachables] if args.key?(:unreachables)
30859
+ @warning = args[:warning] if args.key?(:warning)
30860
+ end
30861
+
30862
+ # [Output Only] Informational warning message.
30863
+ class Warning
30864
+ include Google::Apis::Core::Hashable
30865
+
30866
+ # [Output Only] A warning code, if applicable. For example, Compute Engine
30867
+ # returns NO_RESULTS_ON_PAGE if there are no results in the response.
30868
+ # Corresponds to the JSON property `code`
30869
+ # @return [String]
30870
+ attr_accessor :code
30871
+
30872
+ # [Output Only] Metadata about this warning in key: value format. For example: "
30873
+ # data": [ ` "key": "scope", "value": "zones/us-east1-d" `
30874
+ # Corresponds to the JSON property `data`
30875
+ # @return [Array<Google::Apis::ComputeAlpha::ListSnapshotGroups::Warning::Datum>]
30876
+ attr_accessor :data
30877
+
30878
+ # [Output Only] A human-readable description of the warning code.
30879
+ # Corresponds to the JSON property `message`
30880
+ # @return [String]
30881
+ attr_accessor :message
30882
+
30883
+ def initialize(**args)
30884
+ update!(**args)
30885
+ end
30886
+
30887
+ # Update properties of this object
30888
+ def update!(**args)
30889
+ @code = args[:code] if args.key?(:code)
30890
+ @data = args[:data] if args.key?(:data)
30891
+ @message = args[:message] if args.key?(:message)
30892
+ end
30893
+
30894
+ #
30895
+ class Datum
30896
+ include Google::Apis::Core::Hashable
30897
+
30898
+ # [Output Only] A key that provides more detail on the warning being returned.
30899
+ # For example, for warnings where there are no results in a list request for a
30900
+ # particular zone, this key might be scope and the key value might be the zone
30901
+ # name. Other examples might be a key indicating a deprecated resource and a
30902
+ # suggested replacement, or a warning about invalid network settings (for
30903
+ # example, if an instance attempts to perform IP forwarding but is not enabled
30904
+ # for IP forwarding).
30905
+ # Corresponds to the JSON property `key`
30906
+ # @return [String]
30907
+ attr_accessor :key
30908
+
30909
+ # [Output Only] A warning data value corresponding to the key.
30910
+ # Corresponds to the JSON property `value`
30911
+ # @return [String]
30912
+ attr_accessor :value
30913
+
30914
+ def initialize(**args)
30915
+ update!(**args)
30916
+ end
30917
+
30918
+ # Update properties of this object
30919
+ def update!(**args)
30920
+ @key = args[:key] if args.key?(:key)
30921
+ @value = args[:value] if args.key?(:value)
30922
+ end
30923
+ end
30924
+ end
30925
+ end
30926
+
30710
30927
  #
30711
30928
  class LocalDisk
30712
30929
  include Google::Apis::Core::Hashable
@@ -30890,6 +31107,23 @@ module Google
30890
31107
  # @return [String]
30891
31108
  attr_accessor :kind
30892
31109
 
31110
+ # A fingerprint for the labels being applied to this machine image, which is
31111
+ # essentially a hash of the labels set used for optimistic locking. The
31112
+ # fingerprint is initially generated by Compute Engine and changes after every
31113
+ # request to modify or update labels. You must always provide an up-to-date
31114
+ # fingerprint hash in order to update or change labels. To see the latest
31115
+ # fingerprint, make get() request to the machine image.
31116
+ # Corresponds to the JSON property `labelFingerprint`
31117
+ # NOTE: Values are automatically base64 encoded/decoded in the client library.
31118
+ # @return [String]
31119
+ attr_accessor :label_fingerprint
31120
+
31121
+ # Labels to apply to this machine image. These can be later modified by the
31122
+ # setLabels method.
31123
+ # Corresponds to the JSON property `labels`
31124
+ # @return [Hash<String,String>]
31125
+ attr_accessor :labels
31126
+
30893
31127
  # Encrypts the machine image using a customer-supplied encryption key. After you
30894
31128
  # encrypt a machine image using a customer-supplied key, you must provide the
30895
31129
  # same key if you use the machine image later. For example, you must provide the
@@ -30996,6 +31230,8 @@ module Google
30996
31230
  @id = args[:id] if args.key?(:id)
30997
31231
  @instance_properties = args[:instance_properties] if args.key?(:instance_properties)
30998
31232
  @kind = args[:kind] if args.key?(:kind)
31233
+ @label_fingerprint = args[:label_fingerprint] if args.key?(:label_fingerprint)
31234
+ @labels = args[:labels] if args.key?(:labels)
30999
31235
  @machine_image_encryption_key = args[:machine_image_encryption_key] if args.key?(:machine_image_encryption_key)
31000
31236
  @name = args[:name] if args.key?(:name)
31001
31237
  @params = args[:params] if args.key?(:params)
@@ -44727,6 +44963,201 @@ module Google
44727
44963
  end
44728
44964
  end
44729
44965
 
44966
+ # Represents a ReliabilityRisk resource.
44967
+ class ReliabilityRisk
44968
+ include Google::Apis::Core::Hashable
44969
+
44970
+ # [Output Only] Creation timestamp in RFC3339 text format.
44971
+ # Corresponds to the JSON property `creationTimestamp`
44972
+ # @return [String]
44973
+ attr_accessor :creation_timestamp
44974
+
44975
+ # An optional textual description of the resource; provided when the resource is
44976
+ # created.
44977
+ # Corresponds to the JSON property `description`
44978
+ # @return [String]
44979
+ attr_accessor :description
44980
+
44981
+ # Details about a risk.
44982
+ # Corresponds to the JSON property `details`
44983
+ # @return [Google::Apis::ComputeAlpha::RiskDetails]
44984
+ attr_accessor :details
44985
+
44986
+ # [Output Only] The unique identifier for the resource. This identifier is
44987
+ # defined by the server.
44988
+ # Corresponds to the JSON property `id`
44989
+ # @return [Fixnum]
44990
+ attr_accessor :id
44991
+
44992
+ # [Output Only] Type of resource. Always compute#reliabilityRisk for reliability
44993
+ # risks.
44994
+ # Corresponds to the JSON property `kind`
44995
+ # @return [String]
44996
+ attr_accessor :kind
44997
+
44998
+ # Name of the resource. The name must be 1-63 characters long and comply with
44999
+ # RFC1035.
45000
+ # Corresponds to the JSON property `name`
45001
+ # @return [String]
45002
+ attr_accessor :name
45003
+
45004
+ # Recommendation with reference url.
45005
+ # Corresponds to the JSON property `recommendation`
45006
+ # @return [Google::Apis::ComputeAlpha::RiskRecommendation]
45007
+ attr_accessor :recommendation
45008
+
45009
+ # [Output Only] Server-defined URL for the resource.
45010
+ # Corresponds to the JSON property `selfLink`
45011
+ # @return [String]
45012
+ attr_accessor :self_link
45013
+
45014
+ # [Output Only] Server-defined URL for this resource with the resource id.
45015
+ # Corresponds to the JSON property `selfLinkWithId`
45016
+ # @return [String]
45017
+ attr_accessor :self_link_with_id
45018
+
45019
+ def initialize(**args)
45020
+ update!(**args)
45021
+ end
45022
+
45023
+ # Update properties of this object
45024
+ def update!(**args)
45025
+ @creation_timestamp = args[:creation_timestamp] if args.key?(:creation_timestamp)
45026
+ @description = args[:description] if args.key?(:description)
45027
+ @details = args[:details] if args.key?(:details)
45028
+ @id = args[:id] if args.key?(:id)
45029
+ @kind = args[:kind] if args.key?(:kind)
45030
+ @name = args[:name] if args.key?(:name)
45031
+ @recommendation = args[:recommendation] if args.key?(:recommendation)
45032
+ @self_link = args[:self_link] if args.key?(:self_link)
45033
+ @self_link_with_id = args[:self_link_with_id] if args.key?(:self_link_with_id)
45034
+ end
45035
+ end
45036
+
45037
+ #
45038
+ class ReliabilityRisksListResponse
45039
+ include Google::Apis::Core::Hashable
45040
+
45041
+ #
45042
+ # Corresponds to the JSON property `etag`
45043
+ # @return [String]
45044
+ attr_accessor :etag
45045
+
45046
+ # [Output Only] Unique identifier for the resource; defined by the server.
45047
+ # Corresponds to the JSON property `id`
45048
+ # @return [String]
45049
+ attr_accessor :id
45050
+
45051
+ # A list of ReliabilityRisk resources.
45052
+ # Corresponds to the JSON property `items`
45053
+ # @return [Array<Google::Apis::ComputeAlpha::ReliabilityRisk>]
45054
+ attr_accessor :items
45055
+
45056
+ # [Output Only] This token allows you to get the next page of results for list
45057
+ # requests. If the number of results is larger than maxResults, use the
45058
+ # nextPageToken as a value for the query parameter pageToken in the next list
45059
+ # request. Subsequent list requests will have their own nextPageToken to
45060
+ # continue paging through the results.
45061
+ # Corresponds to the JSON property `nextPageToken`
45062
+ # @return [String]
45063
+ attr_accessor :next_page_token
45064
+
45065
+ # [Output Only] Server-defined URL for this resource.
45066
+ # Corresponds to the JSON property `selfLink`
45067
+ # @return [String]
45068
+ attr_accessor :self_link
45069
+
45070
+ # [Output Only] Unreachable resources. end_interface:
45071
+ # MixerListResponseWithEtagBuilder
45072
+ # Corresponds to the JSON property `unreachables`
45073
+ # @return [Array<String>]
45074
+ attr_accessor :unreachables
45075
+
45076
+ # [Output Only] Informational warning message.
45077
+ # Corresponds to the JSON property `warning`
45078
+ # @return [Google::Apis::ComputeAlpha::ReliabilityRisksListResponse::Warning]
45079
+ attr_accessor :warning
45080
+
45081
+ def initialize(**args)
45082
+ update!(**args)
45083
+ end
45084
+
45085
+ # Update properties of this object
45086
+ def update!(**args)
45087
+ @etag = args[:etag] if args.key?(:etag)
45088
+ @id = args[:id] if args.key?(:id)
45089
+ @items = args[:items] if args.key?(:items)
45090
+ @next_page_token = args[:next_page_token] if args.key?(:next_page_token)
45091
+ @self_link = args[:self_link] if args.key?(:self_link)
45092
+ @unreachables = args[:unreachables] if args.key?(:unreachables)
45093
+ @warning = args[:warning] if args.key?(:warning)
45094
+ end
45095
+
45096
+ # [Output Only] Informational warning message.
45097
+ class Warning
45098
+ include Google::Apis::Core::Hashable
45099
+
45100
+ # [Output Only] A warning code, if applicable. For example, Compute Engine
45101
+ # returns NO_RESULTS_ON_PAGE if there are no results in the response.
45102
+ # Corresponds to the JSON property `code`
45103
+ # @return [String]
45104
+ attr_accessor :code
45105
+
45106
+ # [Output Only] Metadata about this warning in key: value format. For example: "
45107
+ # data": [ ` "key": "scope", "value": "zones/us-east1-d" `
45108
+ # Corresponds to the JSON property `data`
45109
+ # @return [Array<Google::Apis::ComputeAlpha::ReliabilityRisksListResponse::Warning::Datum>]
45110
+ attr_accessor :data
45111
+
45112
+ # [Output Only] A human-readable description of the warning code.
45113
+ # Corresponds to the JSON property `message`
45114
+ # @return [String]
45115
+ attr_accessor :message
45116
+
45117
+ def initialize(**args)
45118
+ update!(**args)
45119
+ end
45120
+
45121
+ # Update properties of this object
45122
+ def update!(**args)
45123
+ @code = args[:code] if args.key?(:code)
45124
+ @data = args[:data] if args.key?(:data)
45125
+ @message = args[:message] if args.key?(:message)
45126
+ end
45127
+
45128
+ #
45129
+ class Datum
45130
+ include Google::Apis::Core::Hashable
45131
+
45132
+ # [Output Only] A key that provides more detail on the warning being returned.
45133
+ # For example, for warnings where there are no results in a list request for a
45134
+ # particular zone, this key might be scope and the key value might be the zone
45135
+ # name. Other examples might be a key indicating a deprecated resource and a
45136
+ # suggested replacement, or a warning about invalid network settings (for
45137
+ # example, if an instance attempts to perform IP forwarding but is not enabled
45138
+ # for IP forwarding).
45139
+ # Corresponds to the JSON property `key`
45140
+ # @return [String]
45141
+ attr_accessor :key
45142
+
45143
+ # [Output Only] A warning data value corresponding to the key.
45144
+ # Corresponds to the JSON property `value`
45145
+ # @return [String]
45146
+ attr_accessor :value
45147
+
45148
+ def initialize(**args)
45149
+ update!(**args)
45150
+ end
45151
+
45152
+ # Update properties of this object
45153
+ def update!(**args)
45154
+ @key = args[:key] if args.key?(:key)
45155
+ @value = args[:value] if args.key?(:value)
45156
+ end
45157
+ end
45158
+ end
45159
+ end
45160
+
44730
45161
  #
44731
45162
  class ReplicationDetails
44732
45163
  include Google::Apis::Core::Hashable
@@ -47162,6 +47593,113 @@ module Google
47162
47593
  end
47163
47594
  end
47164
47595
 
47596
+ # Details about a risk.
47597
+ class RiskDetails
47598
+ include Google::Apis::Core::Hashable
47599
+
47600
+ # The duration of the risk since it was detected.
47601
+ # Corresponds to the JSON property `duration`
47602
+ # @return [String]
47603
+ attr_accessor :duration
47604
+
47605
+ #
47606
+ # Corresponds to the JSON property `globalDnsInsight`
47607
+ # @return [Google::Apis::ComputeAlpha::RiskDetailsGlobalDnsInsight]
47608
+ attr_accessor :global_dns_insight
47609
+
47610
+ # The last time the risk was updated.
47611
+ # Corresponds to the JSON property `lastUpdateTimestamp`
47612
+ # @return [String]
47613
+ attr_accessor :last_update_timestamp
47614
+
47615
+ # The severity of the risk.
47616
+ # Corresponds to the JSON property `severity`
47617
+ # @return [String]
47618
+ attr_accessor :severity
47619
+
47620
+ # The type of risk.
47621
+ # Corresponds to the JSON property `type`
47622
+ # @return [String]
47623
+ attr_accessor :type
47624
+
47625
+ def initialize(**args)
47626
+ update!(**args)
47627
+ end
47628
+
47629
+ # Update properties of this object
47630
+ def update!(**args)
47631
+ @duration = args[:duration] if args.key?(:duration)
47632
+ @global_dns_insight = args[:global_dns_insight] if args.key?(:global_dns_insight)
47633
+ @last_update_timestamp = args[:last_update_timestamp] if args.key?(:last_update_timestamp)
47634
+ @severity = args[:severity] if args.key?(:severity)
47635
+ @type = args[:type] if args.key?(:type)
47636
+ end
47637
+ end
47638
+
47639
+ #
47640
+ class RiskDetailsGlobalDnsInsight
47641
+ include Google::Apis::Core::Hashable
47642
+
47643
+ # Whether the project default DNS setting is global or not.
47644
+ # Corresponds to the JSON property `projectDefaultIsGlobalDns`
47645
+ # @return [Boolean]
47646
+ attr_accessor :project_default_is_global_dns
47647
+ alias_method :project_default_is_global_dns?, :project_default_is_global_dns
47648
+
47649
+ # The observation window for the query counts.
47650
+ # Corresponds to the JSON property `queryObservationWindow`
47651
+ # @return [String]
47652
+ attr_accessor :query_observation_window
47653
+
47654
+ # The number of queries that are risky. This will always be less than
47655
+ # total_query_count.
47656
+ # Corresponds to the JSON property `riskyQueryCount`
47657
+ # @return [Fixnum]
47658
+ attr_accessor :risky_query_count
47659
+
47660
+ # The total number of queries in the observation window.
47661
+ # Corresponds to the JSON property `totalQueryCount`
47662
+ # @return [Fixnum]
47663
+ attr_accessor :total_query_count
47664
+
47665
+ def initialize(**args)
47666
+ update!(**args)
47667
+ end
47668
+
47669
+ # Update properties of this object
47670
+ def update!(**args)
47671
+ @project_default_is_global_dns = args[:project_default_is_global_dns] if args.key?(:project_default_is_global_dns)
47672
+ @query_observation_window = args[:query_observation_window] if args.key?(:query_observation_window)
47673
+ @risky_query_count = args[:risky_query_count] if args.key?(:risky_query_count)
47674
+ @total_query_count = args[:total_query_count] if args.key?(:total_query_count)
47675
+ end
47676
+ end
47677
+
47678
+ # Recommendation with reference url.
47679
+ class RiskRecommendation
47680
+ include Google::Apis::Core::Hashable
47681
+
47682
+ # Mitigation guide for the risk.
47683
+ # Corresponds to the JSON property `content`
47684
+ # @return [String]
47685
+ attr_accessor :content
47686
+
47687
+ # URL referencing a more detailed mitigation guide.
47688
+ # Corresponds to the JSON property `referenceUrl`
47689
+ # @return [String]
47690
+ attr_accessor :reference_url
47691
+
47692
+ def initialize(**args)
47693
+ update!(**args)
47694
+ end
47695
+
47696
+ # Update properties of this object
47697
+ def update!(**args)
47698
+ @content = args[:content] if args.key?(:content)
47699
+ @reference_url = args[:reference_url] if args.key?(:reference_url)
47700
+ end
47701
+ end
47702
+
47165
47703
  # A rollout policy configuration.
47166
47704
  class RolloutPolicy
47167
47705
  include Google::Apis::Core::Hashable
@@ -53914,6 +54452,17 @@ module Google
53914
54452
  # @return [Google::Apis::ComputeAlpha::CustomerEncryptionKey]
53915
54453
  attr_accessor :snapshot_encryption_key
53916
54454
 
54455
+ # [Output Only] The unique ID of the snapshot group that this snapshot belongs
54456
+ # to.
54457
+ # Corresponds to the JSON property `snapshotGroupId`
54458
+ # @return [String]
54459
+ attr_accessor :snapshot_group_id
54460
+
54461
+ # [Output only] The snapshot group that this snapshot belongs to.
54462
+ # Corresponds to the JSON property `snapshotGroupName`
54463
+ # @return [String]
54464
+ attr_accessor :snapshot_group_name
54465
+
53917
54466
  # Indicates the type of the snapshot.
53918
54467
  # Corresponds to the JSON property `snapshotType`
53919
54468
  # @return [String]
@@ -54040,6 +54589,8 @@ module Google
54040
54589
  @self_link = args[:self_link] if args.key?(:self_link)
54041
54590
  @self_link_with_id = args[:self_link_with_id] if args.key?(:self_link_with_id)
54042
54591
  @snapshot_encryption_key = args[:snapshot_encryption_key] if args.key?(:snapshot_encryption_key)
54592
+ @snapshot_group_id = args[:snapshot_group_id] if args.key?(:snapshot_group_id)
54593
+ @snapshot_group_name = args[:snapshot_group_name] if args.key?(:snapshot_group_name)
54043
54594
  @snapshot_type = args[:snapshot_type] if args.key?(:snapshot_type)
54044
54595
  @source_disk = args[:source_disk] if args.key?(:source_disk)
54045
54596
  @source_disk_encryption_key = args[:source_disk_encryption_key] if args.key?(:source_disk_encryption_key)
@@ -54188,6 +54739,144 @@ module Google
54188
54739
  end
54189
54740
  end
54190
54741
 
54742
+ # Represents a SnapshotGroup resource. A snapshot group is a set of snapshots
54743
+ # that represents a point in time state of a consistency group.
54744
+ class SnapshotGroup
54745
+ include Google::Apis::Core::Hashable
54746
+
54747
+ # [Output Only] Creation timestamp in RFC3339 text format.
54748
+ # Corresponds to the JSON property `creationTimestamp`
54749
+ # @return [String]
54750
+ attr_accessor :creation_timestamp
54751
+
54752
+ # Optional. An optional description of this resource. Provide this property when
54753
+ # you create the resource.
54754
+ # Corresponds to the JSON property `description`
54755
+ # @return [String]
54756
+ attr_accessor :description
54757
+
54758
+ # [Output Only] The unique identifier for the resource. This identifier is
54759
+ # defined by the server.
54760
+ # Corresponds to the JSON property `id`
54761
+ # @return [Fixnum]
54762
+ attr_accessor :id
54763
+
54764
+ # [Output Only] Type of the resource. Always compute#snapshotGroup for
54765
+ # SnapshotGroup resources.
54766
+ # Corresponds to the JSON property `kind`
54767
+ # @return [String]
54768
+ attr_accessor :kind
54769
+
54770
+ # Identifier. Name of the resource; provided by the client when the resource is
54771
+ # created. The name must be 1-63 characters long, and comply with RFC1035.
54772
+ # Specifically, the name must be 1-63 characters long and match the regular
54773
+ # expression `[a-z]([-a-z0-9]*[a-z0-9])?` which means the first character must
54774
+ # be a lowercase letter, and all following characters must be a dash, lowercase
54775
+ # letter, or digit, except the last character, which cannot be a dash.
54776
+ # Corresponds to the JSON property `name`
54777
+ # @return [String]
54778
+ attr_accessor :name
54779
+
54780
+ # [Output Only] Server-defined URL for the resource.
54781
+ # Corresponds to the JSON property `selfLink`
54782
+ # @return [String]
54783
+ attr_accessor :self_link
54784
+
54785
+ # [Output Only] Server-defined URL for this resource's resource id.
54786
+ # Corresponds to the JSON property `selfLinkWithId`
54787
+ # @return [String]
54788
+ attr_accessor :self_link_with_id
54789
+
54790
+ # [Output Only]
54791
+ # Corresponds to the JSON property `sourceInfo`
54792
+ # @return [Google::Apis::ComputeAlpha::SnapshotGroupSourceInfo]
54793
+ attr_accessor :source_info
54794
+
54795
+ # Input field for the source instant snapshot group.
54796
+ # Corresponds to the JSON property `sourceInstantSnapshotGroup`
54797
+ # @return [String]
54798
+ attr_accessor :source_instant_snapshot_group
54799
+
54800
+ # [Output Only]
54801
+ # Corresponds to the JSON property `sourceInstantSnapshotGroupInfo`
54802
+ # @return [Google::Apis::ComputeAlpha::SnapshotGroupSourceInstantSnapshotGroupInfo]
54803
+ attr_accessor :source_instant_snapshot_group_info
54804
+
54805
+ # [Output Only]
54806
+ # Corresponds to the JSON property `status`
54807
+ # @return [String]
54808
+ attr_accessor :status
54809
+
54810
+ def initialize(**args)
54811
+ update!(**args)
54812
+ end
54813
+
54814
+ # Update properties of this object
54815
+ def update!(**args)
54816
+ @creation_timestamp = args[:creation_timestamp] if args.key?(:creation_timestamp)
54817
+ @description = args[:description] if args.key?(:description)
54818
+ @id = args[:id] if args.key?(:id)
54819
+ @kind = args[:kind] if args.key?(:kind)
54820
+ @name = args[:name] if args.key?(:name)
54821
+ @self_link = args[:self_link] if args.key?(:self_link)
54822
+ @self_link_with_id = args[:self_link_with_id] if args.key?(:self_link_with_id)
54823
+ @source_info = args[:source_info] if args.key?(:source_info)
54824
+ @source_instant_snapshot_group = args[:source_instant_snapshot_group] if args.key?(:source_instant_snapshot_group)
54825
+ @source_instant_snapshot_group_info = args[:source_instant_snapshot_group_info] if args.key?(:source_instant_snapshot_group_info)
54826
+ @status = args[:status] if args.key?(:status)
54827
+ end
54828
+ end
54829
+
54830
+ #
54831
+ class SnapshotGroupSourceInfo
54832
+ include Google::Apis::Core::Hashable
54833
+
54834
+ #
54835
+ # Corresponds to the JSON property `consistencyGroup`
54836
+ # @return [String]
54837
+ attr_accessor :consistency_group
54838
+
54839
+ #
54840
+ # Corresponds to the JSON property `consistencyGroupId`
54841
+ # @return [String]
54842
+ attr_accessor :consistency_group_id
54843
+
54844
+ def initialize(**args)
54845
+ update!(**args)
54846
+ end
54847
+
54848
+ # Update properties of this object
54849
+ def update!(**args)
54850
+ @consistency_group = args[:consistency_group] if args.key?(:consistency_group)
54851
+ @consistency_group_id = args[:consistency_group_id] if args.key?(:consistency_group_id)
54852
+ end
54853
+ end
54854
+
54855
+ #
54856
+ class SnapshotGroupSourceInstantSnapshotGroupInfo
54857
+ include Google::Apis::Core::Hashable
54858
+
54859
+ #
54860
+ # Corresponds to the JSON property `instantSnapshotGroup`
54861
+ # @return [String]
54862
+ attr_accessor :instant_snapshot_group
54863
+
54864
+ #
54865
+ # Corresponds to the JSON property `instantSnapshotGroupId`
54866
+ # @return [String]
54867
+ attr_accessor :instant_snapshot_group_id
54868
+
54869
+ def initialize(**args)
54870
+ update!(**args)
54871
+ end
54872
+
54873
+ # Update properties of this object
54874
+ def update!(**args)
54875
+ @instant_snapshot_group = args[:instant_snapshot_group] if args.key?(:instant_snapshot_group)
54876
+ @instant_snapshot_group_id = args[:instant_snapshot_group_id] if args.key?(:instant_snapshot_group_id)
54877
+ end
54878
+ end
54879
+
54191
54880
  # Contains a list of Snapshot resources.
54192
54881
  class SnapshotList
54193
54882
  include Google::Apis::Core::Hashable