google-apis-compute_beta 0.54.0 → 0.55.0

Sign up to get free protection for your applications and to get access to all the features.
@@ -2660,7 +2660,9 @@ module Google
2660
2660
  # group is completely drained, offering 0% of its available capacity. The valid
2661
2661
  # ranges are 0.0 and [0.1,1.0]. You cannot configure a setting larger than 0 and
2662
2662
  # smaller than 0.1. You cannot configure a setting of 0 when there is only one
2663
- # backend attached to the backend service.
2663
+ # backend attached to the backend service. Not available with backends that don'
2664
+ # t support using a balancingMode. This includes backends such as global
2665
+ # internet NEGs, regional serverless NEGs, and PSC NEGs.
2664
2666
  # Corresponds to the JSON property `capacityScaler`
2665
2667
  # @return [Float]
2666
2668
  attr_accessor :capacity_scaler
@@ -7374,7 +7376,8 @@ module Google
7374
7376
 
7375
7377
  # The reason of the error. This is a constant value that identifies the
7376
7378
  # proximate cause of the error. Error reasons are unique within a particular
7377
- # domain of errors. This should be at most 63 characters and match /[A-Z0-9_]+/.
7379
+ # domain of errors. This should be at most 63 characters and match a regular
7380
+ # expression of `A-Z+[A-Z0-9]`, which represents UPPER_SNAKE_CASE.
7378
7381
  # Corresponds to the JSON property `reason`
7379
7382
  # @return [String]
7380
7383
  attr_accessor :reason
@@ -8381,8 +8384,8 @@ module Google
8381
8384
  attr_accessor :kind
8382
8385
 
8383
8386
  # Name of the resource. For Organization Firewall Policies it's a [Output Only]
8384
- # numeric ID allocated by GCP which uniquely identifies the Organization
8385
- # Firewall Policy.
8387
+ # numeric ID allocated by Google Cloud which uniquely identifies the
8388
+ # Organization Firewall Policy.
8386
8389
  # Corresponds to the JSON property `name`
8387
8390
  # @return [String]
8388
8391
  attr_accessor :name
@@ -8976,12 +8979,13 @@ module Google
8976
8979
  # @return [String]
8977
8980
  attr_accessor :ip_protocol
8978
8981
 
8979
- # This field is used along with the backend_service field for Internal TCP/UDP
8980
- # Load Balancing or Network Load Balancing, or with the target field for
8981
- # internal and external TargetInstance. You can only use one of ports and
8982
- # port_range, or allPorts. The three are mutually exclusive. For TCP, UDP and
8983
- # SCTP traffic, packets addressed to any ports will be forwarded to the target
8984
- # or backendService.
8982
+ # This field can only be used: - If IPProtocol is one of TCP, UDP, or SCTP. - By
8983
+ # internal TCP/UDP load balancers, backend service-based network load balancers,
8984
+ # and internal and external protocol forwarding. Set this field to true to allow
8985
+ # packets addressed to any port or packets lacking destination port information (
8986
+ # for example, UDP fragments after the first fragment) to be forwarded to the
8987
+ # backends configured with this forwarding rule. The ports, port_range, and
8988
+ # allPorts fields are mutually exclusive.
8985
8989
  # Corresponds to the JSON property `allPorts`
8986
8990
  # @return [Boolean]
8987
8991
  attr_accessor :all_ports
@@ -9003,6 +9007,15 @@ module Google
9003
9007
  # @return [String]
9004
9008
  attr_accessor :backend_service
9005
9009
 
9010
+ # [Output Only] The URL for the corresponding base Forwarding Rule. By base
9011
+ # Forwarding Rule, we mean the Forwarding Rule that has the same IP address,
9012
+ # protocol, and port settings with the current Forwarding Rule, but without
9013
+ # sourceIPRanges specified. Always empty if the current Forwarding Rule does not
9014
+ # have sourceIPRanges specified.
9015
+ # Corresponds to the JSON property `baseForwardingRule`
9016
+ # @return [String]
9017
+ attr_accessor :base_forwarding_rule
9018
+
9006
9019
  # [Output Only] Creation timestamp in RFC3339 text format.
9007
9020
  # Corresponds to the JSON property `creationTimestamp`
9008
9021
  # @return [String]
@@ -9137,27 +9150,35 @@ module Google
9137
9150
  attr_accessor :no_automate_dns_zone
9138
9151
  alias_method :no_automate_dns_zone?, :no_automate_dns_zone
9139
9152
 
9140
- # This field can be used only if: - Load balancing scheme is one of EXTERNAL,
9141
- # INTERNAL_SELF_MANAGED or INTERNAL_MANAGED - IPProtocol is one of TCP, UDP, or
9142
- # SCTP. Packets addressed to ports in the specified range will be forwarded to
9143
- # target or backend_service. You can only use one of ports, port_range, or
9144
- # allPorts. The three are mutually exclusive. Forwarding rules with the same [
9145
- # IPAddress, IPProtocol] pair must have disjoint ports. Some types of forwarding
9146
- # target have constraints on the acceptable ports. For more information, see [
9147
- # Port specifications](https://cloud.google.com/load-balancing/docs/forwarding-
9148
- # rule-concepts#port_specifications). @pattern: \\d+(?:-\\d+)?
9153
+ # This field can only be used: - If IPProtocol is one of TCP, UDP, or SCTP. - By
9154
+ # backend service-based network load balancers, target pool-based network load
9155
+ # balancers, internal proxy load balancers, external proxy load balancers,
9156
+ # Traffic Director, external protocol forwarding, and Classic VPN. Some products
9157
+ # have restrictions on what ports can be used. See port specifications for
9158
+ # details. Only packets addressed to ports in the specified range will be
9159
+ # forwarded to the backends configured with this forwarding rule. The ports,
9160
+ # port_range, and allPorts fields are mutually exclusive. For external
9161
+ # forwarding rules, two or more forwarding rules cannot use the same [IPAddress,
9162
+ # IPProtocol] pair, and cannot have overlapping portRanges. For internal
9163
+ # forwarding rules within the same VPC network, two or more forwarding rules
9164
+ # cannot use the same [IPAddress, IPProtocol] pair, and cannot have overlapping
9165
+ # portRanges. @pattern: \\d+(?:-\\d+)?
9149
9166
  # Corresponds to the JSON property `portRange`
9150
9167
  # @return [String]
9151
9168
  attr_accessor :port_range
9152
9169
 
9153
- # The ports field is only supported when the forwarding rule references a
9154
- # backend_service directly. Only packets addressed to the [specified list of
9155
- # ports]((https://cloud.google.com/load-balancing/docs/forwarding-rule-concepts#
9156
- # port_specifications)) are forwarded to backends. You can only use one of ports
9157
- # and port_range, or allPorts. The three are mutually exclusive. You can specify
9158
- # a list of up to five ports, which can be non-contiguous. Forwarding rules with
9159
- # the same [IPAddress, IPProtocol] pair must have disjoint ports. @pattern: \\d+(
9160
- # ?:-\\d+)?
9170
+ # This field can only be used: - If IPProtocol is one of TCP, UDP, or SCTP. - By
9171
+ # internal TCP/UDP load balancers, backend service-based network load balancers,
9172
+ # and internal protocol forwarding. You can specify a list of up to five ports
9173
+ # by number, separated by commas. The ports can be contiguous or discontiguous.
9174
+ # Only packets addressed to these ports will be forwarded to the backends
9175
+ # configured with this forwarding rule. For external forwarding rules, two or
9176
+ # more forwarding rules cannot use the same [IPAddress, IPProtocol] pair, and
9177
+ # cannot share any values defined in ports. For internal forwarding rules within
9178
+ # the same VPC network, two or more forwarding rules cannot use the same [
9179
+ # IPAddress, IPProtocol] pair, and cannot share any values defined in ports. The
9180
+ # ports, port_range, and allPorts fields are mutually exclusive. @pattern: \\d+(?
9181
+ # :-\\d+)?
9161
9182
  # Corresponds to the JSON property `ports`
9162
9183
  # @return [Array<String>]
9163
9184
  attr_accessor :ports
@@ -9253,6 +9274,7 @@ module Google
9253
9274
  @all_ports = args[:all_ports] if args.key?(:all_ports)
9254
9275
  @allow_global_access = args[:allow_global_access] if args.key?(:allow_global_access)
9255
9276
  @backend_service = args[:backend_service] if args.key?(:backend_service)
9277
+ @base_forwarding_rule = args[:base_forwarding_rule] if args.key?(:base_forwarding_rule)
9256
9278
  @creation_timestamp = args[:creation_timestamp] if args.key?(:creation_timestamp)
9257
9279
  @description = args[:description] if args.key?(:description)
9258
9280
  @fingerprint = args[:fingerprint] if args.key?(:fingerprint)
@@ -10633,13 +10655,18 @@ module Google
10633
10655
  attr_accessor :fingerprint
10634
10656
 
10635
10657
  # A list of URLs to the HealthCheck resources. Must have at least one
10636
- # HealthCheck, and not more than 10. HealthCheck resources must have
10658
+ # HealthCheck, and not more than 10 for regional HealthCheckService, and not
10659
+ # more than 1 for global HealthCheckService. HealthCheck resources must have
10637
10660
  # portSpecification=USE_SERVING_PORT or portSpecification=USE_FIXED_PORT. For
10638
10661
  # regional HealthCheckService, the HealthCheck must be regional and in the same
10639
10662
  # region. For global HealthCheckService, HealthCheck must be global. Mix of
10640
10663
  # regional and global HealthChecks is not supported. Multiple regional
10641
10664
  # HealthChecks must belong to the same region. Regional HealthChecks must belong
10642
- # to the same region as zones of NEGs.
10665
+ # to the same region as zones of NetworkEndpointGroups. For global
10666
+ # HealthCheckService using global INTERNET_IP_PORT NetworkEndpointGroups, the
10667
+ # global HealthChecks must specify sourceRegions, and HealthChecks that specify
10668
+ # sourceRegions can only be used with global INTERNET_IP_PORT
10669
+ # NetworkEndpointGroups.
10643
10670
  # Corresponds to the JSON property `healthChecks`
10644
10671
  # @return [Array<String>]
10645
10672
  attr_accessor :health_checks
@@ -10649,7 +10676,8 @@ module Google
10649
10676
  # NO_AGGREGATION. An EndpointHealth message is returned for each pair in the
10650
10677
  # health check service. - AND. If any health check of an endpoint reports
10651
10678
  # UNHEALTHY, then UNHEALTHY is the HealthState of the endpoint. If all health
10652
- # checks report HEALTHY, the HealthState of the endpoint is HEALTHY. .
10679
+ # checks report HEALTHY, the HealthState of the endpoint is HEALTHY. . This is
10680
+ # only allowed with regional HealthCheckService.
10653
10681
  # Corresponds to the JSON property `healthStatusAggregationPolicy`
10654
10682
  # @return [String]
10655
10683
  attr_accessor :health_status_aggregation_policy
@@ -10689,7 +10717,8 @@ module Google
10689
10717
 
10690
10718
  # A list of URLs to the NetworkEndpointGroup resources. Must not have more than
10691
10719
  # 100. For regional HealthCheckService, NEGs must be in zones in the region of
10692
- # the HealthCheckService.
10720
+ # the HealthCheckService. For global HealthCheckServices, the
10721
+ # NetworkEndpointGroups must be global INTERNET_IP_PORT.
10693
10722
  # Corresponds to the JSON property `networkEndpointGroups`
10694
10723
  # @return [Array<String>]
10695
10724
  attr_accessor :network_endpoint_groups
@@ -13124,6 +13153,16 @@ module Google
13124
13153
  # @return [Fixnum]
13125
13154
  attr_accessor :id
13126
13155
 
13156
+ # Encrypts suspended data for an instance with a customer-managed encryption key.
13157
+ # If you are creating a new instance, this field will encrypt the local SSD and
13158
+ # in-memory contents of the instance during the suspend operation. If you do not
13159
+ # provide an encryption key when creating the instance, then the local SSD and
13160
+ # in-memory contents will be encrypted using an automatically generated key
13161
+ # during the suspend operation.
13162
+ # Corresponds to the JSON property `instanceEncryptionKey`
13163
+ # @return [Google::Apis::ComputeBeta::CustomerEncryptionKey]
13164
+ attr_accessor :instance_encryption_key
13165
+
13127
13166
  # KeyRevocationActionType of the instance. Supported options are "STOP" and "
13128
13167
  # NONE". The default value is "NONE" if it is not specified.
13129
13168
  # Corresponds to the JSON property `keyRevocationActionType`
@@ -13360,6 +13399,7 @@ module Google
13360
13399
  @guest_accelerators = args[:guest_accelerators] if args.key?(:guest_accelerators)
13361
13400
  @hostname = args[:hostname] if args.key?(:hostname)
13362
13401
  @id = args[:id] if args.key?(:id)
13402
+ @instance_encryption_key = args[:instance_encryption_key] if args.key?(:instance_encryption_key)
13363
13403
  @key_revocation_action_type = args[:key_revocation_action_type] if args.key?(:key_revocation_action_type)
13364
13404
  @kind = args[:kind] if args.key?(:kind)
13365
13405
  @label_fingerprint = args[:label_fingerprint] if args.key?(:label_fingerprint)
@@ -17167,8 +17207,9 @@ module Google
17167
17207
 
17168
17208
  # Email address to contact the customer NOC for operations and maintenance
17169
17209
  # notifications regarding this Interconnect. If specified, this will be used for
17170
- # notifications in addition to all other forms described, such as Stackdriver
17171
- # logs alerting and Cloud Notifications.
17210
+ # notifications in addition to all other forms described, such as Cloud
17211
+ # Monitoring logs alerting and Cloud Notifications. This field is required for
17212
+ # users who sign up for Cloud Interconnect using workforce identity federation.
17172
17213
  # Corresponds to the JSON property `nocContactEmail`
17173
17214
  # @return [String]
17174
17215
  attr_accessor :noc_contact_email
@@ -18048,6 +18089,16 @@ module Google
18048
18089
  # @return [Array<Google::Apis::ComputeBeta::InterconnectDiagnosticsArpEntry>]
18049
18090
  attr_accessor :arp_caches
18050
18091
 
18092
+ # The aggregation type of the bundle interface.
18093
+ # Corresponds to the JSON property `bundleAggregationType`
18094
+ # @return [String]
18095
+ attr_accessor :bundle_aggregation_type
18096
+
18097
+ # The operational status of the bundle interface.
18098
+ # Corresponds to the JSON property `bundleOperationalStatus`
18099
+ # @return [String]
18100
+ attr_accessor :bundle_operational_status
18101
+
18051
18102
  # A list of InterconnectDiagnostics.LinkStatus objects, describing the status
18052
18103
  # for each link on the Interconnect.
18053
18104
  # Corresponds to the JSON property `links`
@@ -18066,6 +18117,8 @@ module Google
18066
18117
  # Update properties of this object
18067
18118
  def update!(**args)
18068
18119
  @arp_caches = args[:arp_caches] if args.key?(:arp_caches)
18120
+ @bundle_aggregation_type = args[:bundle_aggregation_type] if args.key?(:bundle_aggregation_type)
18121
+ @bundle_operational_status = args[:bundle_operational_status] if args.key?(:bundle_operational_status)
18069
18122
  @links = args[:links] if args.key?(:links)
18070
18123
  @mac_address = args[:mac_address] if args.key?(:mac_address)
18071
18124
  end
@@ -18189,6 +18242,11 @@ module Google
18189
18242
  # @return [Google::Apis::ComputeBeta::InterconnectDiagnosticsLinkLacpStatus]
18190
18243
  attr_accessor :lacp_status
18191
18244
 
18245
+ # The operational status of the link.
18246
+ # Corresponds to the JSON property `operationalStatus`
18247
+ # @return [String]
18248
+ attr_accessor :operational_status
18249
+
18192
18250
  # An InterconnectDiagnostics.LinkOpticalPower object, describing the current
18193
18251
  # value and status of the received light level.
18194
18252
  # Corresponds to the JSON property `receivingOpticalPower`
@@ -18211,6 +18269,7 @@ module Google
18211
18269
  @circuit_id = args[:circuit_id] if args.key?(:circuit_id)
18212
18270
  @google_demarc = args[:google_demarc] if args.key?(:google_demarc)
18213
18271
  @lacp_status = args[:lacp_status] if args.key?(:lacp_status)
18272
+ @operational_status = args[:operational_status] if args.key?(:operational_status)
18214
18273
  @receiving_optical_power = args[:receiving_optical_power] if args.key?(:receiving_optical_power)
18215
18274
  @transmitting_optical_power = args[:transmitting_optical_power] if args.key?(:transmitting_optical_power)
18216
18275
  end
@@ -20675,6 +20734,496 @@ module Google
20675
20734
  end
20676
20735
  end
20677
20736
 
20737
+ # NetworkAttachments A network attachment resource ...
20738
+ class NetworkAttachment
20739
+ include Google::Apis::Core::Hashable
20740
+
20741
+ # [Output Only] An array of connections for all the producers connected to this
20742
+ # network attachment.
20743
+ # Corresponds to the JSON property `connectionEndpoints`
20744
+ # @return [Array<Google::Apis::ComputeBeta::NetworkAttachmentConnectedEndpoint>]
20745
+ attr_accessor :connection_endpoints
20746
+
20747
+ #
20748
+ # Corresponds to the JSON property `connectionPreference`
20749
+ # @return [String]
20750
+ attr_accessor :connection_preference
20751
+
20752
+ # [Output Only] Creation timestamp in RFC3339 text format.
20753
+ # Corresponds to the JSON property `creationTimestamp`
20754
+ # @return [String]
20755
+ attr_accessor :creation_timestamp
20756
+
20757
+ # An optional description of this resource. Provide this property when you
20758
+ # create the resource.
20759
+ # Corresponds to the JSON property `description`
20760
+ # @return [String]
20761
+ attr_accessor :description
20762
+
20763
+ # [Output Only] Fingerprint of this resource. A hash of the contents stored in
20764
+ # this object. This field is used in optimistic locking. An up-to-date
20765
+ # fingerprint must be provided in order to patch.
20766
+ # Corresponds to the JSON property `fingerprint`
20767
+ # NOTE: Values are automatically base64 encoded/decoded in the client library.
20768
+ # @return [String]
20769
+ attr_accessor :fingerprint
20770
+
20771
+ # [Output Only] The unique identifier for the resource type. The server
20772
+ # generates this identifier.
20773
+ # Corresponds to the JSON property `id`
20774
+ # @return [Fixnum]
20775
+ attr_accessor :id
20776
+
20777
+ # [Output Only] Type of the resource.
20778
+ # Corresponds to the JSON property `kind`
20779
+ # @return [String]
20780
+ attr_accessor :kind
20781
+
20782
+ # Name of the resource. Provided by the client when the resource is created. The
20783
+ # name must be 1-63 characters long, and comply with RFC1035. Specifically, the
20784
+ # name must be 1-63 characters long and match the regular expression `[a-z]([-a-
20785
+ # z0-9]*[a-z0-9])?` which means the first character must be a lowercase letter,
20786
+ # and all following characters must be a dash, lowercase letter, or digit,
20787
+ # except the last character, which cannot be a dash.
20788
+ # Corresponds to the JSON property `name`
20789
+ # @return [String]
20790
+ attr_accessor :name
20791
+
20792
+ # [Output Only] The URL of the network which the Network Attachment belongs to.
20793
+ # Corresponds to the JSON property `network`
20794
+ # @return [String]
20795
+ attr_accessor :network
20796
+
20797
+ # Projects that are allowed to connect to this network attachment. The project
20798
+ # can be specified using its id or number.
20799
+ # Corresponds to the JSON property `producerAcceptLists`
20800
+ # @return [Array<String>]
20801
+ attr_accessor :producer_accept_lists
20802
+
20803
+ # Projects that are not allowed to connect to this network attachment. The
20804
+ # project can be specified using its id or number.
20805
+ # Corresponds to the JSON property `producerRejectLists`
20806
+ # @return [Array<String>]
20807
+ attr_accessor :producer_reject_lists
20808
+
20809
+ # [Output Only] URL of the region where the network attachment resides. This
20810
+ # field applies only to the region resource. You must specify this field as part
20811
+ # of the HTTP request URL. It is not settable as a field in the request body.
20812
+ # Corresponds to the JSON property `region`
20813
+ # @return [String]
20814
+ attr_accessor :region
20815
+
20816
+ # [Output Only] Server-defined URL for the resource.
20817
+ # Corresponds to the JSON property `selfLink`
20818
+ # @return [String]
20819
+ attr_accessor :self_link
20820
+
20821
+ # [Output Only] Server-defined URL for this resource's resource id.
20822
+ # Corresponds to the JSON property `selfLinkWithId`
20823
+ # @return [String]
20824
+ attr_accessor :self_link_with_id
20825
+
20826
+ # An array of URLs where each entry is the URL of a subnet provided by the
20827
+ # service consumer to use for endpoints in the producers that connect to this
20828
+ # network attachment.
20829
+ # Corresponds to the JSON property `subnetworks`
20830
+ # @return [Array<String>]
20831
+ attr_accessor :subnetworks
20832
+
20833
+ def initialize(**args)
20834
+ update!(**args)
20835
+ end
20836
+
20837
+ # Update properties of this object
20838
+ def update!(**args)
20839
+ @connection_endpoints = args[:connection_endpoints] if args.key?(:connection_endpoints)
20840
+ @connection_preference = args[:connection_preference] if args.key?(:connection_preference)
20841
+ @creation_timestamp = args[:creation_timestamp] if args.key?(:creation_timestamp)
20842
+ @description = args[:description] if args.key?(:description)
20843
+ @fingerprint = args[:fingerprint] if args.key?(:fingerprint)
20844
+ @id = args[:id] if args.key?(:id)
20845
+ @kind = args[:kind] if args.key?(:kind)
20846
+ @name = args[:name] if args.key?(:name)
20847
+ @network = args[:network] if args.key?(:network)
20848
+ @producer_accept_lists = args[:producer_accept_lists] if args.key?(:producer_accept_lists)
20849
+ @producer_reject_lists = args[:producer_reject_lists] if args.key?(:producer_reject_lists)
20850
+ @region = args[:region] if args.key?(:region)
20851
+ @self_link = args[:self_link] if args.key?(:self_link)
20852
+ @self_link_with_id = args[:self_link_with_id] if args.key?(:self_link_with_id)
20853
+ @subnetworks = args[:subnetworks] if args.key?(:subnetworks)
20854
+ end
20855
+ end
20856
+
20857
+ # Contains a list of NetworkAttachmentsScopedList.
20858
+ class NetworkAttachmentAggregatedList
20859
+ include Google::Apis::Core::Hashable
20860
+
20861
+ # [Output Only] Unique identifier for the resource; defined by the server.
20862
+ # Corresponds to the JSON property `id`
20863
+ # @return [String]
20864
+ attr_accessor :id
20865
+
20866
+ # A list of NetworkAttachmentsScopedList resources.
20867
+ # Corresponds to the JSON property `items`
20868
+ # @return [Hash<String,Google::Apis::ComputeBeta::NetworkAttachmentsScopedList>]
20869
+ attr_accessor :items
20870
+
20871
+ #
20872
+ # Corresponds to the JSON property `kind`
20873
+ # @return [String]
20874
+ attr_accessor :kind
20875
+
20876
+ # [Output Only] This token allows you to get the next page of results for list
20877
+ # requests. If the number of results is larger than maxResults, use the
20878
+ # nextPageToken as a value for the query parameter pageToken in the next list
20879
+ # request. Subsequent list requests will have their own nextPageToken to
20880
+ # continue paging through the results.
20881
+ # Corresponds to the JSON property `nextPageToken`
20882
+ # @return [String]
20883
+ attr_accessor :next_page_token
20884
+
20885
+ # [Output Only] Server-defined URL for this resource.
20886
+ # Corresponds to the JSON property `selfLink`
20887
+ # @return [String]
20888
+ attr_accessor :self_link
20889
+
20890
+ # [Output Only] Informational warning message.
20891
+ # Corresponds to the JSON property `warning`
20892
+ # @return [Google::Apis::ComputeBeta::NetworkAttachmentAggregatedList::Warning]
20893
+ attr_accessor :warning
20894
+
20895
+ def initialize(**args)
20896
+ update!(**args)
20897
+ end
20898
+
20899
+ # Update properties of this object
20900
+ def update!(**args)
20901
+ @id = args[:id] if args.key?(:id)
20902
+ @items = args[:items] if args.key?(:items)
20903
+ @kind = args[:kind] if args.key?(:kind)
20904
+ @next_page_token = args[:next_page_token] if args.key?(:next_page_token)
20905
+ @self_link = args[:self_link] if args.key?(:self_link)
20906
+ @warning = args[:warning] if args.key?(:warning)
20907
+ end
20908
+
20909
+ # [Output Only] Informational warning message.
20910
+ class Warning
20911
+ include Google::Apis::Core::Hashable
20912
+
20913
+ # [Output Only] A warning code, if applicable. For example, Compute Engine
20914
+ # returns NO_RESULTS_ON_PAGE if there are no results in the response.
20915
+ # Corresponds to the JSON property `code`
20916
+ # @return [String]
20917
+ attr_accessor :code
20918
+
20919
+ # [Output Only] Metadata about this warning in key: value format. For example: "
20920
+ # data": [ ` "key": "scope", "value": "zones/us-east1-d" `
20921
+ # Corresponds to the JSON property `data`
20922
+ # @return [Array<Google::Apis::ComputeBeta::NetworkAttachmentAggregatedList::Warning::Datum>]
20923
+ attr_accessor :data
20924
+
20925
+ # [Output Only] A human-readable description of the warning code.
20926
+ # Corresponds to the JSON property `message`
20927
+ # @return [String]
20928
+ attr_accessor :message
20929
+
20930
+ def initialize(**args)
20931
+ update!(**args)
20932
+ end
20933
+
20934
+ # Update properties of this object
20935
+ def update!(**args)
20936
+ @code = args[:code] if args.key?(:code)
20937
+ @data = args[:data] if args.key?(:data)
20938
+ @message = args[:message] if args.key?(:message)
20939
+ end
20940
+
20941
+ #
20942
+ class Datum
20943
+ include Google::Apis::Core::Hashable
20944
+
20945
+ # [Output Only] A key that provides more detail on the warning being returned.
20946
+ # For example, for warnings where there are no results in a list request for a
20947
+ # particular zone, this key might be scope and the key value might be the zone
20948
+ # name. Other examples might be a key indicating a deprecated resource and a
20949
+ # suggested replacement, or a warning about invalid network settings (for
20950
+ # example, if an instance attempts to perform IP forwarding but is not enabled
20951
+ # for IP forwarding).
20952
+ # Corresponds to the JSON property `key`
20953
+ # @return [String]
20954
+ attr_accessor :key
20955
+
20956
+ # [Output Only] A warning data value corresponding to the key.
20957
+ # Corresponds to the JSON property `value`
20958
+ # @return [String]
20959
+ attr_accessor :value
20960
+
20961
+ def initialize(**args)
20962
+ update!(**args)
20963
+ end
20964
+
20965
+ # Update properties of this object
20966
+ def update!(**args)
20967
+ @key = args[:key] if args.key?(:key)
20968
+ @value = args[:value] if args.key?(:value)
20969
+ end
20970
+ end
20971
+ end
20972
+ end
20973
+
20974
+ # [Output Only] A connection connected to this network attachment.
20975
+ class NetworkAttachmentConnectedEndpoint
20976
+ include Google::Apis::Core::Hashable
20977
+
20978
+ # The IP address assigned to the producer instance network interface. This value
20979
+ # will be a range in case of Serverless.
20980
+ # Corresponds to the JSON property `ipAddress`
20981
+ # @return [String]
20982
+ attr_accessor :ip_address
20983
+
20984
+ # The project id or number of the interface to which the IP was assigned.
20985
+ # Corresponds to the JSON property `projectIdOrNum`
20986
+ # @return [String]
20987
+ attr_accessor :project_id_or_num
20988
+
20989
+ # Alias IP ranges from the same subnetwork
20990
+ # Corresponds to the JSON property `secondaryIpCidrRanges`
20991
+ # @return [Array<String>]
20992
+ attr_accessor :secondary_ip_cidr_ranges
20993
+
20994
+ # The status of a connected endpoint to this network attachment.
20995
+ # Corresponds to the JSON property `status`
20996
+ # @return [String]
20997
+ attr_accessor :status
20998
+
20999
+ # The subnetwork used to assign the IP to the producer instance network
21000
+ # interface.
21001
+ # Corresponds to the JSON property `subnetwork`
21002
+ # @return [String]
21003
+ attr_accessor :subnetwork
21004
+
21005
+ def initialize(**args)
21006
+ update!(**args)
21007
+ end
21008
+
21009
+ # Update properties of this object
21010
+ def update!(**args)
21011
+ @ip_address = args[:ip_address] if args.key?(:ip_address)
21012
+ @project_id_or_num = args[:project_id_or_num] if args.key?(:project_id_or_num)
21013
+ @secondary_ip_cidr_ranges = args[:secondary_ip_cidr_ranges] if args.key?(:secondary_ip_cidr_ranges)
21014
+ @status = args[:status] if args.key?(:status)
21015
+ @subnetwork = args[:subnetwork] if args.key?(:subnetwork)
21016
+ end
21017
+ end
21018
+
21019
+ #
21020
+ class NetworkAttachmentList
21021
+ include Google::Apis::Core::Hashable
21022
+
21023
+ # [Output Only] Unique identifier for the resource; defined by the server.
21024
+ # Corresponds to the JSON property `id`
21025
+ # @return [String]
21026
+ attr_accessor :id
21027
+
21028
+ # A list of NetworkAttachment resources.
21029
+ # Corresponds to the JSON property `items`
21030
+ # @return [Array<Google::Apis::ComputeBeta::NetworkAttachment>]
21031
+ attr_accessor :items
21032
+
21033
+ #
21034
+ # Corresponds to the JSON property `kind`
21035
+ # @return [String]
21036
+ attr_accessor :kind
21037
+
21038
+ # [Output Only] This token allows you to get the next page of results for list
21039
+ # requests. If the number of results is larger than maxResults, use the
21040
+ # nextPageToken as a value for the query parameter pageToken in the next list
21041
+ # request. Subsequent list requests will have their own nextPageToken to
21042
+ # continue paging through the results.
21043
+ # Corresponds to the JSON property `nextPageToken`
21044
+ # @return [String]
21045
+ attr_accessor :next_page_token
21046
+
21047
+ # [Output Only] Server-defined URL for this resource.
21048
+ # Corresponds to the JSON property `selfLink`
21049
+ # @return [String]
21050
+ attr_accessor :self_link
21051
+
21052
+ # [Output Only] Informational warning message.
21053
+ # Corresponds to the JSON property `warning`
21054
+ # @return [Google::Apis::ComputeBeta::NetworkAttachmentList::Warning]
21055
+ attr_accessor :warning
21056
+
21057
+ def initialize(**args)
21058
+ update!(**args)
21059
+ end
21060
+
21061
+ # Update properties of this object
21062
+ def update!(**args)
21063
+ @id = args[:id] if args.key?(:id)
21064
+ @items = args[:items] if args.key?(:items)
21065
+ @kind = args[:kind] if args.key?(:kind)
21066
+ @next_page_token = args[:next_page_token] if args.key?(:next_page_token)
21067
+ @self_link = args[:self_link] if args.key?(:self_link)
21068
+ @warning = args[:warning] if args.key?(:warning)
21069
+ end
21070
+
21071
+ # [Output Only] Informational warning message.
21072
+ class Warning
21073
+ include Google::Apis::Core::Hashable
21074
+
21075
+ # [Output Only] A warning code, if applicable. For example, Compute Engine
21076
+ # returns NO_RESULTS_ON_PAGE if there are no results in the response.
21077
+ # Corresponds to the JSON property `code`
21078
+ # @return [String]
21079
+ attr_accessor :code
21080
+
21081
+ # [Output Only] Metadata about this warning in key: value format. For example: "
21082
+ # data": [ ` "key": "scope", "value": "zones/us-east1-d" `
21083
+ # Corresponds to the JSON property `data`
21084
+ # @return [Array<Google::Apis::ComputeBeta::NetworkAttachmentList::Warning::Datum>]
21085
+ attr_accessor :data
21086
+
21087
+ # [Output Only] A human-readable description of the warning code.
21088
+ # Corresponds to the JSON property `message`
21089
+ # @return [String]
21090
+ attr_accessor :message
21091
+
21092
+ def initialize(**args)
21093
+ update!(**args)
21094
+ end
21095
+
21096
+ # Update properties of this object
21097
+ def update!(**args)
21098
+ @code = args[:code] if args.key?(:code)
21099
+ @data = args[:data] if args.key?(:data)
21100
+ @message = args[:message] if args.key?(:message)
21101
+ end
21102
+
21103
+ #
21104
+ class Datum
21105
+ include Google::Apis::Core::Hashable
21106
+
21107
+ # [Output Only] A key that provides more detail on the warning being returned.
21108
+ # For example, for warnings where there are no results in a list request for a
21109
+ # particular zone, this key might be scope and the key value might be the zone
21110
+ # name. Other examples might be a key indicating a deprecated resource and a
21111
+ # suggested replacement, or a warning about invalid network settings (for
21112
+ # example, if an instance attempts to perform IP forwarding but is not enabled
21113
+ # for IP forwarding).
21114
+ # Corresponds to the JSON property `key`
21115
+ # @return [String]
21116
+ attr_accessor :key
21117
+
21118
+ # [Output Only] A warning data value corresponding to the key.
21119
+ # Corresponds to the JSON property `value`
21120
+ # @return [String]
21121
+ attr_accessor :value
21122
+
21123
+ def initialize(**args)
21124
+ update!(**args)
21125
+ end
21126
+
21127
+ # Update properties of this object
21128
+ def update!(**args)
21129
+ @key = args[:key] if args.key?(:key)
21130
+ @value = args[:value] if args.key?(:value)
21131
+ end
21132
+ end
21133
+ end
21134
+ end
21135
+
21136
+ #
21137
+ class NetworkAttachmentsScopedList
21138
+ include Google::Apis::Core::Hashable
21139
+
21140
+ # A list of NetworkAttachments contained in this scope.
21141
+ # Corresponds to the JSON property `networkAttachments`
21142
+ # @return [Array<Google::Apis::ComputeBeta::NetworkAttachment>]
21143
+ attr_accessor :network_attachments
21144
+
21145
+ # Informational warning which replaces the list of network attachments when the
21146
+ # list is empty.
21147
+ # Corresponds to the JSON property `warning`
21148
+ # @return [Google::Apis::ComputeBeta::NetworkAttachmentsScopedList::Warning]
21149
+ attr_accessor :warning
21150
+
21151
+ def initialize(**args)
21152
+ update!(**args)
21153
+ end
21154
+
21155
+ # Update properties of this object
21156
+ def update!(**args)
21157
+ @network_attachments = args[:network_attachments] if args.key?(:network_attachments)
21158
+ @warning = args[:warning] if args.key?(:warning)
21159
+ end
21160
+
21161
+ # Informational warning which replaces the list of network attachments when the
21162
+ # list is empty.
21163
+ class Warning
21164
+ include Google::Apis::Core::Hashable
21165
+
21166
+ # [Output Only] A warning code, if applicable. For example, Compute Engine
21167
+ # returns NO_RESULTS_ON_PAGE if there are no results in the response.
21168
+ # Corresponds to the JSON property `code`
21169
+ # @return [String]
21170
+ attr_accessor :code
21171
+
21172
+ # [Output Only] Metadata about this warning in key: value format. For example: "
21173
+ # data": [ ` "key": "scope", "value": "zones/us-east1-d" `
21174
+ # Corresponds to the JSON property `data`
21175
+ # @return [Array<Google::Apis::ComputeBeta::NetworkAttachmentsScopedList::Warning::Datum>]
21176
+ attr_accessor :data
21177
+
21178
+ # [Output Only] A human-readable description of the warning code.
21179
+ # Corresponds to the JSON property `message`
21180
+ # @return [String]
21181
+ attr_accessor :message
21182
+
21183
+ def initialize(**args)
21184
+ update!(**args)
21185
+ end
21186
+
21187
+ # Update properties of this object
21188
+ def update!(**args)
21189
+ @code = args[:code] if args.key?(:code)
21190
+ @data = args[:data] if args.key?(:data)
21191
+ @message = args[:message] if args.key?(:message)
21192
+ end
21193
+
21194
+ #
21195
+ class Datum
21196
+ include Google::Apis::Core::Hashable
21197
+
21198
+ # [Output Only] A key that provides more detail on the warning being returned.
21199
+ # For example, for warnings where there are no results in a list request for a
21200
+ # particular zone, this key might be scope and the key value might be the zone
21201
+ # name. Other examples might be a key indicating a deprecated resource and a
21202
+ # suggested replacement, or a warning about invalid network settings (for
21203
+ # example, if an instance attempts to perform IP forwarding but is not enabled
21204
+ # for IP forwarding).
21205
+ # Corresponds to the JSON property `key`
21206
+ # @return [String]
21207
+ attr_accessor :key
21208
+
21209
+ # [Output Only] A warning data value corresponding to the key.
21210
+ # Corresponds to the JSON property `value`
21211
+ # @return [String]
21212
+ attr_accessor :value
21213
+
21214
+ def initialize(**args)
21215
+ update!(**args)
21216
+ end
21217
+
21218
+ # Update properties of this object
21219
+ def update!(**args)
21220
+ @key = args[:key] if args.key?(:key)
21221
+ @value = args[:value] if args.key?(:value)
21222
+ end
21223
+ end
21224
+ end
21225
+ end
21226
+
20678
21227
  # Represents a Google Cloud Armor network edge security service resource.
20679
21228
  class NetworkEdgeSecurityService
20680
21229
  include Google::Apis::Core::Hashable
@@ -26610,6 +27159,11 @@ module Google
26610
27159
  # @return [Google::Apis::ComputeBeta::UsageExportLocation]
26611
27160
  attr_accessor :usage_export_location
26612
27161
 
27162
+ # [Output Only] Default internal DNS setting used by VMs running in this project.
27163
+ # Corresponds to the JSON property `vmDnsSetting`
27164
+ # @return [String]
27165
+ attr_accessor :vm_dns_setting
27166
+
26613
27167
  # [Output Only] The role this project has in a shared VPC configuration.
26614
27168
  # Currently, only projects with the host role, which is specified by the value
26615
27169
  # HOST, are differentiated.
@@ -26635,6 +27189,7 @@ module Google
26635
27189
  @quotas = args[:quotas] if args.key?(:quotas)
26636
27190
  @self_link = args[:self_link] if args.key?(:self_link)
26637
27191
  @usage_export_location = args[:usage_export_location] if args.key?(:usage_export_location)
27192
+ @vm_dns_setting = args[:vm_dns_setting] if args.key?(:vm_dns_setting)
26638
27193
  @xpn_project_status = args[:xpn_project_status] if args.key?(:xpn_project_status)
26639
27194
  end
26640
27195
  end
@@ -29808,8 +30363,8 @@ module Google
29808
30363
  # @return [Fixnum]
29809
30364
  attr_accessor :amount
29810
30365
 
29811
- # Type of resource for which this commitment applies. Possible values are VCPU
29812
- # and MEMORY
30366
+ # Type of resource for which this commitment applies. Possible values are VCPU,
30367
+ # MEMORY, LOCAL_SSD, and ACCELERATOR.
29813
30368
  # Corresponds to the JSON property `type`
29814
30369
  # @return [String]
29815
30370
  attr_accessor :type
@@ -34400,6 +34955,14 @@ module Google
34400
34955
  # @return [String]
34401
34956
  attr_accessor :enforce_on_key
34402
34957
 
34958
+ # If specified, any combination of values of enforce_on_key_type/
34959
+ # enforce_on_key_name is treated as the key on which ratelimit threshold/action
34960
+ # is enforced. You can specify up to 3 enforce_on_key_configs. If
34961
+ # enforce_on_key_configs is specified, enforce_on_key must not be specified.
34962
+ # Corresponds to the JSON property `enforceOnKeyConfigs`
34963
+ # @return [Array<Google::Apis::ComputeBeta::SecurityPolicyRuleRateLimitOptionsEnforceOnKeyConfig>]
34964
+ attr_accessor :enforce_on_key_configs
34965
+
34403
34966
  # Rate limit key name applicable only for the following key types: HTTP_HEADER --
34404
34967
  # Name of the HTTP header whose value is taken as the key value. HTTP_COOKIE --
34405
34968
  # Name of the HTTP cookie whose value is taken as the key value.
@@ -34437,6 +35000,7 @@ module Google
34437
35000
  @ban_threshold = args[:ban_threshold] if args.key?(:ban_threshold)
34438
35001
  @conform_action = args[:conform_action] if args.key?(:conform_action)
34439
35002
  @enforce_on_key = args[:enforce_on_key] if args.key?(:enforce_on_key)
35003
+ @enforce_on_key_configs = args[:enforce_on_key_configs] if args.key?(:enforce_on_key_configs)
34440
35004
  @enforce_on_key_name = args[:enforce_on_key_name] if args.key?(:enforce_on_key_name)
34441
35005
  @exceed_action = args[:exceed_action] if args.key?(:exceed_action)
34442
35006
  @exceed_redirect_options = args[:exceed_redirect_options] if args.key?(:exceed_redirect_options)
@@ -34444,6 +35008,51 @@ module Google
34444
35008
  end
34445
35009
  end
34446
35010
 
35011
+ #
35012
+ class SecurityPolicyRuleRateLimitOptionsEnforceOnKeyConfig
35013
+ include Google::Apis::Core::Hashable
35014
+
35015
+ # Rate limit key name applicable only for the following key types: HTTP_HEADER --
35016
+ # Name of the HTTP header whose value is taken as the key value. HTTP_COOKIE --
35017
+ # Name of the HTTP cookie whose value is taken as the key value.
35018
+ # Corresponds to the JSON property `enforceOnKeyName`
35019
+ # @return [String]
35020
+ attr_accessor :enforce_on_key_name
35021
+
35022
+ # Determines the key to enforce the rate_limit_threshold on. Possible values are:
35023
+ # - ALL: A single rate limit threshold is applied to all the requests matching
35024
+ # this rule. This is the default value if "enforceOnKeyConfigs" is not
35025
+ # configured. - IP: The source IP address of the request is the key. Each IP has
35026
+ # this limit enforced separately. - HTTP_HEADER: The value of the HTTP header
35027
+ # whose name is configured under "enforceOnKeyName". The key value is truncated
35028
+ # to the first 128 bytes of the header value. If no such header is present in
35029
+ # the request, the key type defaults to ALL. - XFF_IP: The first IP address (i.e.
35030
+ # the originating client IP address) specified in the list of IPs under X-
35031
+ # Forwarded-For HTTP header. If no such header is present or the value is not a
35032
+ # valid IP, the key defaults to the source IP address of the request i.e. key
35033
+ # type IP. - HTTP_COOKIE: The value of the HTTP cookie whose name is configured
35034
+ # under "enforceOnKeyName". The key value is truncated to the first 128 bytes of
35035
+ # the cookie value. If no such cookie is present in the request, the key type
35036
+ # defaults to ALL. - HTTP_PATH: The URL path of the HTTP request. The key value
35037
+ # is truncated to the first 128 bytes. - SNI: Server name indication in the TLS
35038
+ # session of the HTTPS request. The key value is truncated to the first 128
35039
+ # bytes. The key type defaults to ALL on a HTTP session. - REGION_CODE: The
35040
+ # country/region from which the request originates.
35041
+ # Corresponds to the JSON property `enforceOnKeyType`
35042
+ # @return [String]
35043
+ attr_accessor :enforce_on_key_type
35044
+
35045
+ def initialize(**args)
35046
+ update!(**args)
35047
+ end
35048
+
35049
+ # Update properties of this object
35050
+ def update!(**args)
35051
+ @enforce_on_key_name = args[:enforce_on_key_name] if args.key?(:enforce_on_key_name)
35052
+ @enforce_on_key_type = args[:enforce_on_key_type] if args.key?(:enforce_on_key_type)
35053
+ end
35054
+ end
35055
+
34447
35056
  #
34448
35057
  class SecurityPolicyRuleRateLimitOptionsThreshold
34449
35058
  include Google::Apis::Core::Hashable
@@ -34960,6 +35569,11 @@ module Google
34960
35569
  # @return [Fixnum]
34961
35570
  attr_accessor :connection_limit
34962
35571
 
35572
+ # The network URL for the network to set the limit for.
35573
+ # Corresponds to the JSON property `networkUrl`
35574
+ # @return [String]
35575
+ attr_accessor :network_url
35576
+
34963
35577
  # The project id or number for the project to set the limit for.
34964
35578
  # Corresponds to the JSON property `projectIdOrNum`
34965
35579
  # @return [String]
@@ -34972,6 +35586,7 @@ module Google
34972
35586
  # Update properties of this object
34973
35587
  def update!(**args)
34974
35588
  @connection_limit = args[:connection_limit] if args.key?(:connection_limit)
35589
+ @network_url = args[:network_url] if args.key?(:network_url)
34975
35590
  @project_id_or_num = args[:project_id_or_num] if args.key?(:project_id_or_num)
34976
35591
  end
34977
35592
  end