google-apis-compute_beta 0.53.0 → 0.55.0

Sign up to get free protection for your applications and to get access to all the features.
@@ -22,6 +22,52 @@ module Google
22
22
  module Apis
23
23
  module ComputeBeta
24
24
 
25
+ # Contains the configurations necessary to generate a signature for access to
26
+ # private storage buckets that support Signature Version 4 for authentication.
27
+ # The service name for generating the authentication header will always default
28
+ # to 's3'.
29
+ class Awsv4Signature
30
+ include Google::Apis::Core::Hashable
31
+
32
+ # The access key used for s3 bucket authentication. Required for updating or
33
+ # creating a backend that uses AWS v4 signature authentication, but will not be
34
+ # returned as part of the configuration when queried with a REST API GET request.
35
+ # @InputOnly
36
+ # Corresponds to the JSON property `accessKey`
37
+ # @return [String]
38
+ attr_accessor :access_key
39
+
40
+ # The identifier of an access key used for s3 bucket authentication.
41
+ # Corresponds to the JSON property `accessKeyId`
42
+ # @return [String]
43
+ attr_accessor :access_key_id
44
+
45
+ # The optional version identifier for the access key. You can use this to keep
46
+ # track of different iterations of your access key.
47
+ # Corresponds to the JSON property `accessKeyVersion`
48
+ # @return [String]
49
+ attr_accessor :access_key_version
50
+
51
+ # The name of the cloud region of your origin. This is a free-form field with
52
+ # the name of the region your cloud uses to host your origin. For example, "us-
53
+ # east-1" for AWS or "us-ashburn-1" for OCI.
54
+ # Corresponds to the JSON property `originRegion`
55
+ # @return [String]
56
+ attr_accessor :origin_region
57
+
58
+ def initialize(**args)
59
+ update!(**args)
60
+ end
61
+
62
+ # Update properties of this object
63
+ def update!(**args)
64
+ @access_key = args[:access_key] if args.key?(:access_key)
65
+ @access_key_id = args[:access_key_id] if args.key?(:access_key_id)
66
+ @access_key_version = args[:access_key_version] if args.key?(:access_key_version)
67
+ @origin_region = args[:origin_region] if args.key?(:origin_region)
68
+ end
69
+ end
70
+
25
71
  # A specification of the type and number of accelerator cards attached to the
26
72
  # instance.
27
73
  class AcceleratorConfig
@@ -2614,7 +2660,9 @@ module Google
2614
2660
  # group is completely drained, offering 0% of its available capacity. The valid
2615
2661
  # ranges are 0.0 and [0.1,1.0]. You cannot configure a setting larger than 0 and
2616
2662
  # smaller than 0.1. You cannot configure a setting of 0 when there is only one
2617
- # 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.
2618
2666
  # Corresponds to the JSON property `capacityScaler`
2619
2667
  # @return [Float]
2620
2668
  attr_accessor :capacity_scaler
@@ -7328,7 +7376,8 @@ module Google
7328
7376
 
7329
7377
  # The reason of the error. This is a constant value that identifies the
7330
7378
  # proximate cause of the error. Error reasons are unique within a particular
7331
- # 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.
7332
7381
  # Corresponds to the JSON property `reason`
7333
7382
  # @return [String]
7334
7383
  attr_accessor :reason
@@ -8335,8 +8384,8 @@ module Google
8335
8384
  attr_accessor :kind
8336
8385
 
8337
8386
  # Name of the resource. For Organization Firewall Policies it's a [Output Only]
8338
- # numeric ID allocated by GCP which uniquely identifies the Organization
8339
- # Firewall Policy.
8387
+ # numeric ID allocated by Google Cloud which uniquely identifies the
8388
+ # Organization Firewall Policy.
8340
8389
  # Corresponds to the JSON property `name`
8341
8390
  # @return [String]
8342
8391
  attr_accessor :name
@@ -8930,12 +8979,13 @@ module Google
8930
8979
  # @return [String]
8931
8980
  attr_accessor :ip_protocol
8932
8981
 
8933
- # This field is used along with the backend_service field for Internal TCP/UDP
8934
- # Load Balancing or Network Load Balancing, or with the target field for
8935
- # internal and external TargetInstance. You can only use one of ports and
8936
- # port_range, or allPorts. The three are mutually exclusive. For TCP, UDP and
8937
- # SCTP traffic, packets addressed to any ports will be forwarded to the target
8938
- # 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.
8939
8989
  # Corresponds to the JSON property `allPorts`
8940
8990
  # @return [Boolean]
8941
8991
  attr_accessor :all_ports
@@ -8957,6 +9007,15 @@ module Google
8957
9007
  # @return [String]
8958
9008
  attr_accessor :backend_service
8959
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
+
8960
9019
  # [Output Only] Creation timestamp in RFC3339 text format.
8961
9020
  # Corresponds to the JSON property `creationTimestamp`
8962
9021
  # @return [String]
@@ -9091,27 +9150,35 @@ module Google
9091
9150
  attr_accessor :no_automate_dns_zone
9092
9151
  alias_method :no_automate_dns_zone?, :no_automate_dns_zone
9093
9152
 
9094
- # This field can be used only if: - Load balancing scheme is one of EXTERNAL,
9095
- # INTERNAL_SELF_MANAGED or INTERNAL_MANAGED - IPProtocol is one of TCP, UDP, or
9096
- # SCTP. Packets addressed to ports in the specified range will be forwarded to
9097
- # target or backend_service. You can only use one of ports, port_range, or
9098
- # allPorts. The three are mutually exclusive. Forwarding rules with the same [
9099
- # IPAddress, IPProtocol] pair must have disjoint ports. Some types of forwarding
9100
- # target have constraints on the acceptable ports. For more information, see [
9101
- # Port specifications](https://cloud.google.com/load-balancing/docs/forwarding-
9102
- # 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+)?
9103
9166
  # Corresponds to the JSON property `portRange`
9104
9167
  # @return [String]
9105
9168
  attr_accessor :port_range
9106
9169
 
9107
- # The ports field is only supported when the forwarding rule references a
9108
- # backend_service directly. Only packets addressed to the [specified list of
9109
- # ports]((https://cloud.google.com/load-balancing/docs/forwarding-rule-concepts#
9110
- # port_specifications)) are forwarded to backends. You can only use one of ports
9111
- # and port_range, or allPorts. The three are mutually exclusive. You can specify
9112
- # a list of up to five ports, which can be non-contiguous. Forwarding rules with
9113
- # the same [IPAddress, IPProtocol] pair must have disjoint ports. @pattern: \\d+(
9114
- # ?:-\\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+)?
9115
9182
  # Corresponds to the JSON property `ports`
9116
9183
  # @return [Array<String>]
9117
9184
  attr_accessor :ports
@@ -9207,6 +9274,7 @@ module Google
9207
9274
  @all_ports = args[:all_ports] if args.key?(:all_ports)
9208
9275
  @allow_global_access = args[:allow_global_access] if args.key?(:allow_global_access)
9209
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)
9210
9278
  @creation_timestamp = args[:creation_timestamp] if args.key?(:creation_timestamp)
9211
9279
  @description = args[:description] if args.key?(:description)
9212
9280
  @fingerprint = args[:fingerprint] if args.key?(:fingerprint)
@@ -10587,13 +10655,18 @@ module Google
10587
10655
  attr_accessor :fingerprint
10588
10656
 
10589
10657
  # A list of URLs to the HealthCheck resources. Must have at least one
10590
- # 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
10591
10660
  # portSpecification=USE_SERVING_PORT or portSpecification=USE_FIXED_PORT. For
10592
10661
  # regional HealthCheckService, the HealthCheck must be regional and in the same
10593
10662
  # region. For global HealthCheckService, HealthCheck must be global. Mix of
10594
10663
  # regional and global HealthChecks is not supported. Multiple regional
10595
10664
  # HealthChecks must belong to the same region. Regional HealthChecks must belong
10596
- # 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.
10597
10670
  # Corresponds to the JSON property `healthChecks`
10598
10671
  # @return [Array<String>]
10599
10672
  attr_accessor :health_checks
@@ -10603,7 +10676,8 @@ module Google
10603
10676
  # NO_AGGREGATION. An EndpointHealth message is returned for each pair in the
10604
10677
  # health check service. - AND. If any health check of an endpoint reports
10605
10678
  # UNHEALTHY, then UNHEALTHY is the HealthState of the endpoint. If all health
10606
- # 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.
10607
10681
  # Corresponds to the JSON property `healthStatusAggregationPolicy`
10608
10682
  # @return [String]
10609
10683
  attr_accessor :health_status_aggregation_policy
@@ -10643,7 +10717,8 @@ module Google
10643
10717
 
10644
10718
  # A list of URLs to the NetworkEndpointGroup resources. Must not have more than
10645
10719
  # 100. For regional HealthCheckService, NEGs must be in zones in the region of
10646
- # the HealthCheckService.
10720
+ # the HealthCheckService. For global HealthCheckServices, the
10721
+ # NetworkEndpointGroups must be global INTERNET_IP_PORT.
10647
10722
  # Corresponds to the JSON property `networkEndpointGroups`
10648
10723
  # @return [Array<String>]
10649
10724
  attr_accessor :network_endpoint_groups
@@ -12189,6 +12264,16 @@ module Google
12189
12264
  # @return [Array<Google::Apis::ComputeBeta::MetadataFilter>]
12190
12265
  attr_accessor :metadata_filters
12191
12266
 
12267
+ # If specified, the route is a pattern match expression that must match the :
12268
+ # path header once the query string is removed. A pattern match allows you to
12269
+ # match - The value must be between 1 and 1024 characters - The pattern must
12270
+ # start with a leading slash ("/") - There may be no more than 5 operators in
12271
+ # pattern Precisely one of prefix_match, full_path_match, regex_match or
12272
+ # path_template_match must be set.
12273
+ # Corresponds to the JSON property `pathTemplateMatch`
12274
+ # @return [String]
12275
+ attr_accessor :path_template_match
12276
+
12192
12277
  # For satisfying the matchRule condition, the request's path must begin with the
12193
12278
  # specified prefixMatch. prefixMatch must begin with a /. The value must be from
12194
12279
  # 1 to 1024 characters. Only one of prefixMatch, fullPathMatch or regexMatch
@@ -12224,6 +12309,7 @@ module Google
12224
12309
  @header_matches = args[:header_matches] if args.key?(:header_matches)
12225
12310
  @ignore_case = args[:ignore_case] if args.key?(:ignore_case)
12226
12311
  @metadata_filters = args[:metadata_filters] if args.key?(:metadata_filters)
12312
+ @path_template_match = args[:path_template_match] if args.key?(:path_template_match)
12227
12313
  @prefix_match = args[:prefix_match] if args.key?(:prefix_match)
12228
12314
  @query_parameter_matches = args[:query_parameter_matches] if args.key?(:query_parameter_matches)
12229
12315
  @regex_match = args[:regex_match] if args.key?(:regex_match)
@@ -13067,6 +13153,16 @@ module Google
13067
13153
  # @return [Fixnum]
13068
13154
  attr_accessor :id
13069
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
+
13070
13166
  # KeyRevocationActionType of the instance. Supported options are "STOP" and "
13071
13167
  # NONE". The default value is "NONE" if it is not specified.
13072
13168
  # Corresponds to the JSON property `keyRevocationActionType`
@@ -13303,6 +13399,7 @@ module Google
13303
13399
  @guest_accelerators = args[:guest_accelerators] if args.key?(:guest_accelerators)
13304
13400
  @hostname = args[:hostname] if args.key?(:hostname)
13305
13401
  @id = args[:id] if args.key?(:id)
13402
+ @instance_encryption_key = args[:instance_encryption_key] if args.key?(:instance_encryption_key)
13306
13403
  @key_revocation_action_type = args[:key_revocation_action_type] if args.key?(:key_revocation_action_type)
13307
13404
  @kind = args[:kind] if args.key?(:kind)
13308
13405
  @label_fingerprint = args[:label_fingerprint] if args.key?(:label_fingerprint)
@@ -17110,8 +17207,9 @@ module Google
17110
17207
 
17111
17208
  # Email address to contact the customer NOC for operations and maintenance
17112
17209
  # notifications regarding this Interconnect. If specified, this will be used for
17113
- # notifications in addition to all other forms described, such as Stackdriver
17114
- # 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.
17115
17213
  # Corresponds to the JSON property `nocContactEmail`
17116
17214
  # @return [String]
17117
17215
  attr_accessor :noc_contact_email
@@ -17991,6 +18089,16 @@ module Google
17991
18089
  # @return [Array<Google::Apis::ComputeBeta::InterconnectDiagnosticsArpEntry>]
17992
18090
  attr_accessor :arp_caches
17993
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
+
17994
18102
  # A list of InterconnectDiagnostics.LinkStatus objects, describing the status
17995
18103
  # for each link on the Interconnect.
17996
18104
  # Corresponds to the JSON property `links`
@@ -18009,6 +18117,8 @@ module Google
18009
18117
  # Update properties of this object
18010
18118
  def update!(**args)
18011
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)
18012
18122
  @links = args[:links] if args.key?(:links)
18013
18123
  @mac_address = args[:mac_address] if args.key?(:mac_address)
18014
18124
  end
@@ -18132,6 +18242,11 @@ module Google
18132
18242
  # @return [Google::Apis::ComputeBeta::InterconnectDiagnosticsLinkLacpStatus]
18133
18243
  attr_accessor :lacp_status
18134
18244
 
18245
+ # The operational status of the link.
18246
+ # Corresponds to the JSON property `operationalStatus`
18247
+ # @return [String]
18248
+ attr_accessor :operational_status
18249
+
18135
18250
  # An InterconnectDiagnostics.LinkOpticalPower object, describing the current
18136
18251
  # value and status of the received light level.
18137
18252
  # Corresponds to the JSON property `receivingOpticalPower`
@@ -18154,6 +18269,7 @@ module Google
18154
18269
  @circuit_id = args[:circuit_id] if args.key?(:circuit_id)
18155
18270
  @google_demarc = args[:google_demarc] if args.key?(:google_demarc)
18156
18271
  @lacp_status = args[:lacp_status] if args.key?(:lacp_status)
18272
+ @operational_status = args[:operational_status] if args.key?(:operational_status)
18157
18273
  @receiving_optical_power = args[:receiving_optical_power] if args.key?(:receiving_optical_power)
18158
18274
  @transmitting_optical_power = args[:transmitting_optical_power] if args.key?(:transmitting_optical_power)
18159
18275
  end
@@ -20618,10 +20734,21 @@ module Google
20618
20734
  end
20619
20735
  end
20620
20736
 
20621
- # Represents a Google Cloud Armor network edge security service resource.
20622
- class NetworkEdgeSecurityService
20737
+ # NetworkAttachments A network attachment resource ...
20738
+ class NetworkAttachment
20623
20739
  include Google::Apis::Core::Hashable
20624
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
+
20625
20752
  # [Output Only] Creation timestamp in RFC3339 text format.
20626
20753
  # Corresponds to the JSON property `creationTimestamp`
20627
20754
  # @return [String]
@@ -20633,25 +20760,21 @@ module Google
20633
20760
  # @return [String]
20634
20761
  attr_accessor :description
20635
20762
 
20636
- # Fingerprint of this resource. A hash of the contents stored in this object.
20637
- # This field is used in optimistic locking. This field will be ignored when
20638
- # inserting a NetworkEdgeSecurityService. An up-to-date fingerprint must be
20639
- # provided in order to update the NetworkEdgeSecurityService, otherwise the
20640
- # request will fail with error 412 conditionNotMet. To see the latest
20641
- # fingerprint, make a get() request to retrieve a NetworkEdgeSecurityService.
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.
20642
20766
  # Corresponds to the JSON property `fingerprint`
20643
20767
  # NOTE: Values are automatically base64 encoded/decoded in the client library.
20644
20768
  # @return [String]
20645
20769
  attr_accessor :fingerprint
20646
20770
 
20647
- # [Output Only] The unique identifier for the resource. This identifier is
20648
- # defined by the server.
20771
+ # [Output Only] The unique identifier for the resource type. The server
20772
+ # generates this identifier.
20649
20773
  # Corresponds to the JSON property `id`
20650
20774
  # @return [Fixnum]
20651
20775
  attr_accessor :id
20652
20776
 
20653
- # [Output only] Type of the resource. Always compute#networkEdgeSecurityService
20654
- # for NetworkEdgeSecurityServices
20777
+ # [Output Only] Type of the resource.
20655
20778
  # Corresponds to the JSON property `kind`
20656
20779
  # @return [String]
20657
20780
  attr_accessor :kind
@@ -20666,70 +20789,248 @@ module Google
20666
20789
  # @return [String]
20667
20790
  attr_accessor :name
20668
20791
 
20669
- # [Output Only] URL of the region where the resource resides. You must specify
20670
- # this field as part of the HTTP request URL. It is not settable as a field in
20671
- # the request body.
20672
- # Corresponds to the JSON property `region`
20792
+ # [Output Only] The URL of the network which the Network Attachment belongs to.
20793
+ # Corresponds to the JSON property `network`
20673
20794
  # @return [String]
20674
- attr_accessor :region
20795
+ attr_accessor :network
20675
20796
 
20676
- # The resource URL for the network edge security service associated with this
20677
- # network edge security service.
20678
- # Corresponds to the JSON property `securityPolicy`
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`
20679
20813
  # @return [String]
20680
- attr_accessor :security_policy
20814
+ attr_accessor :region
20681
20815
 
20682
20816
  # [Output Only] Server-defined URL for the resource.
20683
20817
  # Corresponds to the JSON property `selfLink`
20684
20818
  # @return [String]
20685
20819
  attr_accessor :self_link
20686
20820
 
20687
- # [Output Only] Server-defined URL for this resource with the resource id.
20821
+ # [Output Only] Server-defined URL for this resource's resource id.
20688
20822
  # Corresponds to the JSON property `selfLinkWithId`
20689
20823
  # @return [String]
20690
20824
  attr_accessor :self_link_with_id
20691
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
+
20692
20833
  def initialize(**args)
20693
20834
  update!(**args)
20694
20835
  end
20695
20836
 
20696
20837
  # Update properties of this object
20697
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)
20698
20841
  @creation_timestamp = args[:creation_timestamp] if args.key?(:creation_timestamp)
20699
20842
  @description = args[:description] if args.key?(:description)
20700
20843
  @fingerprint = args[:fingerprint] if args.key?(:fingerprint)
20701
20844
  @id = args[:id] if args.key?(:id)
20702
20845
  @kind = args[:kind] if args.key?(:kind)
20703
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)
20704
20850
  @region = args[:region] if args.key?(:region)
20705
- @security_policy = args[:security_policy] if args.key?(:security_policy)
20706
20851
  @self_link = args[:self_link] if args.key?(:self_link)
20707
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)
20708
20854
  end
20709
20855
  end
20710
20856
 
20711
- #
20712
- class NetworkEdgeSecurityServiceAggregatedList
20857
+ # Contains a list of NetworkAttachmentsScopedList.
20858
+ class NetworkAttachmentAggregatedList
20713
20859
  include Google::Apis::Core::Hashable
20714
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
+
20715
20871
  #
20716
- # Corresponds to the JSON property `etag`
20872
+ # Corresponds to the JSON property `kind`
20717
20873
  # @return [String]
20718
- attr_accessor :etag
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
20719
21022
 
20720
21023
  # [Output Only] Unique identifier for the resource; defined by the server.
20721
21024
  # Corresponds to the JSON property `id`
20722
21025
  # @return [String]
20723
21026
  attr_accessor :id
20724
21027
 
20725
- # A list of NetworkEdgeSecurityServicesScopedList resources.
21028
+ # A list of NetworkAttachment resources.
20726
21029
  # Corresponds to the JSON property `items`
20727
- # @return [Hash<String,Google::Apis::ComputeBeta::NetworkEdgeSecurityServicesScopedList>]
21030
+ # @return [Array<Google::Apis::ComputeBeta::NetworkAttachment>]
20728
21031
  attr_accessor :items
20729
21032
 
20730
- # [Output Only] Type of resource. Always compute#
20731
- # networkEdgeSecurityServiceAggregatedList for lists of Network Edge Security
20732
- # Services.
21033
+ #
20733
21034
  # Corresponds to the JSON property `kind`
20734
21035
  # @return [String]
20735
21036
  attr_accessor :kind
@@ -20748,14 +21049,9 @@ module Google
20748
21049
  # @return [String]
20749
21050
  attr_accessor :self_link
20750
21051
 
20751
- # [Output Only] Unreachable resources.
20752
- # Corresponds to the JSON property `unreachables`
20753
- # @return [Array<String>]
20754
- attr_accessor :unreachables
20755
-
20756
21052
  # [Output Only] Informational warning message.
20757
21053
  # Corresponds to the JSON property `warning`
20758
- # @return [Google::Apis::ComputeBeta::NetworkEdgeSecurityServiceAggregatedList::Warning]
21054
+ # @return [Google::Apis::ComputeBeta::NetworkAttachmentList::Warning]
20759
21055
  attr_accessor :warning
20760
21056
 
20761
21057
  def initialize(**args)
@@ -20764,13 +21060,11 @@ module Google
20764
21060
 
20765
21061
  # Update properties of this object
20766
21062
  def update!(**args)
20767
- @etag = args[:etag] if args.key?(:etag)
20768
21063
  @id = args[:id] if args.key?(:id)
20769
21064
  @items = args[:items] if args.key?(:items)
20770
21065
  @kind = args[:kind] if args.key?(:kind)
20771
21066
  @next_page_token = args[:next_page_token] if args.key?(:next_page_token)
20772
21067
  @self_link = args[:self_link] if args.key?(:self_link)
20773
- @unreachables = args[:unreachables] if args.key?(:unreachables)
20774
21068
  @warning = args[:warning] if args.key?(:warning)
20775
21069
  end
20776
21070
 
@@ -20787,7 +21081,7 @@ module Google
20787
21081
  # [Output Only] Metadata about this warning in key: value format. For example: "
20788
21082
  # data": [ ` "key": "scope", "value": "zones/us-east1-d" `
20789
21083
  # Corresponds to the JSON property `data`
20790
- # @return [Array<Google::Apis::ComputeBeta::NetworkEdgeSecurityServiceAggregatedList::Warning::Datum>]
21084
+ # @return [Array<Google::Apis::ComputeBeta::NetworkAttachmentList::Warning::Datum>]
20791
21085
  attr_accessor :data
20792
21086
 
20793
21087
  # [Output Only] A human-readable description of the warning code.
@@ -20840,18 +21134,18 @@ module Google
20840
21134
  end
20841
21135
 
20842
21136
  #
20843
- class NetworkEdgeSecurityServicesScopedList
21137
+ class NetworkAttachmentsScopedList
20844
21138
  include Google::Apis::Core::Hashable
20845
21139
 
20846
- # A list of NetworkEdgeSecurityServices contained in this scope.
20847
- # Corresponds to the JSON property `networkEdgeSecurityServices`
20848
- # @return [Array<Google::Apis::ComputeBeta::NetworkEdgeSecurityService>]
20849
- attr_accessor :network_edge_security_services
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
20850
21144
 
20851
- # Informational warning which replaces the list of security policies when the
21145
+ # Informational warning which replaces the list of network attachments when the
20852
21146
  # list is empty.
20853
21147
  # Corresponds to the JSON property `warning`
20854
- # @return [Google::Apis::ComputeBeta::NetworkEdgeSecurityServicesScopedList::Warning]
21148
+ # @return [Google::Apis::ComputeBeta::NetworkAttachmentsScopedList::Warning]
20855
21149
  attr_accessor :warning
20856
21150
 
20857
21151
  def initialize(**args)
@@ -20860,11 +21154,11 @@ module Google
20860
21154
 
20861
21155
  # Update properties of this object
20862
21156
  def update!(**args)
20863
- @network_edge_security_services = args[:network_edge_security_services] if args.key?(:network_edge_security_services)
21157
+ @network_attachments = args[:network_attachments] if args.key?(:network_attachments)
20864
21158
  @warning = args[:warning] if args.key?(:warning)
20865
21159
  end
20866
21160
 
20867
- # Informational warning which replaces the list of security policies when the
21161
+ # Informational warning which replaces the list of network attachments when the
20868
21162
  # list is empty.
20869
21163
  class Warning
20870
21164
  include Google::Apis::Core::Hashable
@@ -20878,7 +21172,319 @@ module Google
20878
21172
  # [Output Only] Metadata about this warning in key: value format. For example: "
20879
21173
  # data": [ ` "key": "scope", "value": "zones/us-east1-d" `
20880
21174
  # Corresponds to the JSON property `data`
20881
- # @return [Array<Google::Apis::ComputeBeta::NetworkEdgeSecurityServicesScopedList::Warning::Datum>]
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
+
21227
+ # Represents a Google Cloud Armor network edge security service resource.
21228
+ class NetworkEdgeSecurityService
21229
+ include Google::Apis::Core::Hashable
21230
+
21231
+ # [Output Only] Creation timestamp in RFC3339 text format.
21232
+ # Corresponds to the JSON property `creationTimestamp`
21233
+ # @return [String]
21234
+ attr_accessor :creation_timestamp
21235
+
21236
+ # An optional description of this resource. Provide this property when you
21237
+ # create the resource.
21238
+ # Corresponds to the JSON property `description`
21239
+ # @return [String]
21240
+ attr_accessor :description
21241
+
21242
+ # Fingerprint of this resource. A hash of the contents stored in this object.
21243
+ # This field is used in optimistic locking. This field will be ignored when
21244
+ # inserting a NetworkEdgeSecurityService. An up-to-date fingerprint must be
21245
+ # provided in order to update the NetworkEdgeSecurityService, otherwise the
21246
+ # request will fail with error 412 conditionNotMet. To see the latest
21247
+ # fingerprint, make a get() request to retrieve a NetworkEdgeSecurityService.
21248
+ # Corresponds to the JSON property `fingerprint`
21249
+ # NOTE: Values are automatically base64 encoded/decoded in the client library.
21250
+ # @return [String]
21251
+ attr_accessor :fingerprint
21252
+
21253
+ # [Output Only] The unique identifier for the resource. This identifier is
21254
+ # defined by the server.
21255
+ # Corresponds to the JSON property `id`
21256
+ # @return [Fixnum]
21257
+ attr_accessor :id
21258
+
21259
+ # [Output only] Type of the resource. Always compute#networkEdgeSecurityService
21260
+ # for NetworkEdgeSecurityServices
21261
+ # Corresponds to the JSON property `kind`
21262
+ # @return [String]
21263
+ attr_accessor :kind
21264
+
21265
+ # Name of the resource. Provided by the client when the resource is created. The
21266
+ # name must be 1-63 characters long, and comply with RFC1035. Specifically, the
21267
+ # name must be 1-63 characters long and match the regular expression `[a-z]([-a-
21268
+ # z0-9]*[a-z0-9])?` which means the first character must be a lowercase letter,
21269
+ # and all following characters must be a dash, lowercase letter, or digit,
21270
+ # except the last character, which cannot be a dash.
21271
+ # Corresponds to the JSON property `name`
21272
+ # @return [String]
21273
+ attr_accessor :name
21274
+
21275
+ # [Output Only] URL of the region where the resource resides. You must specify
21276
+ # this field as part of the HTTP request URL. It is not settable as a field in
21277
+ # the request body.
21278
+ # Corresponds to the JSON property `region`
21279
+ # @return [String]
21280
+ attr_accessor :region
21281
+
21282
+ # The resource URL for the network edge security service associated with this
21283
+ # network edge security service.
21284
+ # Corresponds to the JSON property `securityPolicy`
21285
+ # @return [String]
21286
+ attr_accessor :security_policy
21287
+
21288
+ # [Output Only] Server-defined URL for the resource.
21289
+ # Corresponds to the JSON property `selfLink`
21290
+ # @return [String]
21291
+ attr_accessor :self_link
21292
+
21293
+ # [Output Only] Server-defined URL for this resource with the resource id.
21294
+ # Corresponds to the JSON property `selfLinkWithId`
21295
+ # @return [String]
21296
+ attr_accessor :self_link_with_id
21297
+
21298
+ def initialize(**args)
21299
+ update!(**args)
21300
+ end
21301
+
21302
+ # Update properties of this object
21303
+ def update!(**args)
21304
+ @creation_timestamp = args[:creation_timestamp] if args.key?(:creation_timestamp)
21305
+ @description = args[:description] if args.key?(:description)
21306
+ @fingerprint = args[:fingerprint] if args.key?(:fingerprint)
21307
+ @id = args[:id] if args.key?(:id)
21308
+ @kind = args[:kind] if args.key?(:kind)
21309
+ @name = args[:name] if args.key?(:name)
21310
+ @region = args[:region] if args.key?(:region)
21311
+ @security_policy = args[:security_policy] if args.key?(:security_policy)
21312
+ @self_link = args[:self_link] if args.key?(:self_link)
21313
+ @self_link_with_id = args[:self_link_with_id] if args.key?(:self_link_with_id)
21314
+ end
21315
+ end
21316
+
21317
+ #
21318
+ class NetworkEdgeSecurityServiceAggregatedList
21319
+ include Google::Apis::Core::Hashable
21320
+
21321
+ #
21322
+ # Corresponds to the JSON property `etag`
21323
+ # @return [String]
21324
+ attr_accessor :etag
21325
+
21326
+ # [Output Only] Unique identifier for the resource; defined by the server.
21327
+ # Corresponds to the JSON property `id`
21328
+ # @return [String]
21329
+ attr_accessor :id
21330
+
21331
+ # A list of NetworkEdgeSecurityServicesScopedList resources.
21332
+ # Corresponds to the JSON property `items`
21333
+ # @return [Hash<String,Google::Apis::ComputeBeta::NetworkEdgeSecurityServicesScopedList>]
21334
+ attr_accessor :items
21335
+
21336
+ # [Output Only] Type of resource. Always compute#
21337
+ # networkEdgeSecurityServiceAggregatedList for lists of Network Edge Security
21338
+ # Services.
21339
+ # Corresponds to the JSON property `kind`
21340
+ # @return [String]
21341
+ attr_accessor :kind
21342
+
21343
+ # [Output Only] This token allows you to get the next page of results for list
21344
+ # requests. If the number of results is larger than maxResults, use the
21345
+ # nextPageToken as a value for the query parameter pageToken in the next list
21346
+ # request. Subsequent list requests will have their own nextPageToken to
21347
+ # continue paging through the results.
21348
+ # Corresponds to the JSON property `nextPageToken`
21349
+ # @return [String]
21350
+ attr_accessor :next_page_token
21351
+
21352
+ # [Output Only] Server-defined URL for this resource.
21353
+ # Corresponds to the JSON property `selfLink`
21354
+ # @return [String]
21355
+ attr_accessor :self_link
21356
+
21357
+ # [Output Only] Unreachable resources.
21358
+ # Corresponds to the JSON property `unreachables`
21359
+ # @return [Array<String>]
21360
+ attr_accessor :unreachables
21361
+
21362
+ # [Output Only] Informational warning message.
21363
+ # Corresponds to the JSON property `warning`
21364
+ # @return [Google::Apis::ComputeBeta::NetworkEdgeSecurityServiceAggregatedList::Warning]
21365
+ attr_accessor :warning
21366
+
21367
+ def initialize(**args)
21368
+ update!(**args)
21369
+ end
21370
+
21371
+ # Update properties of this object
21372
+ def update!(**args)
21373
+ @etag = args[:etag] if args.key?(:etag)
21374
+ @id = args[:id] if args.key?(:id)
21375
+ @items = args[:items] if args.key?(:items)
21376
+ @kind = args[:kind] if args.key?(:kind)
21377
+ @next_page_token = args[:next_page_token] if args.key?(:next_page_token)
21378
+ @self_link = args[:self_link] if args.key?(:self_link)
21379
+ @unreachables = args[:unreachables] if args.key?(:unreachables)
21380
+ @warning = args[:warning] if args.key?(:warning)
21381
+ end
21382
+
21383
+ # [Output Only] Informational warning message.
21384
+ class Warning
21385
+ include Google::Apis::Core::Hashable
21386
+
21387
+ # [Output Only] A warning code, if applicable. For example, Compute Engine
21388
+ # returns NO_RESULTS_ON_PAGE if there are no results in the response.
21389
+ # Corresponds to the JSON property `code`
21390
+ # @return [String]
21391
+ attr_accessor :code
21392
+
21393
+ # [Output Only] Metadata about this warning in key: value format. For example: "
21394
+ # data": [ ` "key": "scope", "value": "zones/us-east1-d" `
21395
+ # Corresponds to the JSON property `data`
21396
+ # @return [Array<Google::Apis::ComputeBeta::NetworkEdgeSecurityServiceAggregatedList::Warning::Datum>]
21397
+ attr_accessor :data
21398
+
21399
+ # [Output Only] A human-readable description of the warning code.
21400
+ # Corresponds to the JSON property `message`
21401
+ # @return [String]
21402
+ attr_accessor :message
21403
+
21404
+ def initialize(**args)
21405
+ update!(**args)
21406
+ end
21407
+
21408
+ # Update properties of this object
21409
+ def update!(**args)
21410
+ @code = args[:code] if args.key?(:code)
21411
+ @data = args[:data] if args.key?(:data)
21412
+ @message = args[:message] if args.key?(:message)
21413
+ end
21414
+
21415
+ #
21416
+ class Datum
21417
+ include Google::Apis::Core::Hashable
21418
+
21419
+ # [Output Only] A key that provides more detail on the warning being returned.
21420
+ # For example, for warnings where there are no results in a list request for a
21421
+ # particular zone, this key might be scope and the key value might be the zone
21422
+ # name. Other examples might be a key indicating a deprecated resource and a
21423
+ # suggested replacement, or a warning about invalid network settings (for
21424
+ # example, if an instance attempts to perform IP forwarding but is not enabled
21425
+ # for IP forwarding).
21426
+ # Corresponds to the JSON property `key`
21427
+ # @return [String]
21428
+ attr_accessor :key
21429
+
21430
+ # [Output Only] A warning data value corresponding to the key.
21431
+ # Corresponds to the JSON property `value`
21432
+ # @return [String]
21433
+ attr_accessor :value
21434
+
21435
+ def initialize(**args)
21436
+ update!(**args)
21437
+ end
21438
+
21439
+ # Update properties of this object
21440
+ def update!(**args)
21441
+ @key = args[:key] if args.key?(:key)
21442
+ @value = args[:value] if args.key?(:value)
21443
+ end
21444
+ end
21445
+ end
21446
+ end
21447
+
21448
+ #
21449
+ class NetworkEdgeSecurityServicesScopedList
21450
+ include Google::Apis::Core::Hashable
21451
+
21452
+ # A list of NetworkEdgeSecurityServices contained in this scope.
21453
+ # Corresponds to the JSON property `networkEdgeSecurityServices`
21454
+ # @return [Array<Google::Apis::ComputeBeta::NetworkEdgeSecurityService>]
21455
+ attr_accessor :network_edge_security_services
21456
+
21457
+ # Informational warning which replaces the list of security policies when the
21458
+ # list is empty.
21459
+ # Corresponds to the JSON property `warning`
21460
+ # @return [Google::Apis::ComputeBeta::NetworkEdgeSecurityServicesScopedList::Warning]
21461
+ attr_accessor :warning
21462
+
21463
+ def initialize(**args)
21464
+ update!(**args)
21465
+ end
21466
+
21467
+ # Update properties of this object
21468
+ def update!(**args)
21469
+ @network_edge_security_services = args[:network_edge_security_services] if args.key?(:network_edge_security_services)
21470
+ @warning = args[:warning] if args.key?(:warning)
21471
+ end
21472
+
21473
+ # Informational warning which replaces the list of security policies when the
21474
+ # list is empty.
21475
+ class Warning
21476
+ include Google::Apis::Core::Hashable
21477
+
21478
+ # [Output Only] A warning code, if applicable. For example, Compute Engine
21479
+ # returns NO_RESULTS_ON_PAGE if there are no results in the response.
21480
+ # Corresponds to the JSON property `code`
21481
+ # @return [String]
21482
+ attr_accessor :code
21483
+
21484
+ # [Output Only] Metadata about this warning in key: value format. For example: "
21485
+ # data": [ ` "key": "scope", "value": "zones/us-east1-d" `
21486
+ # Corresponds to the JSON property `data`
21487
+ # @return [Array<Google::Apis::ComputeBeta::NetworkEdgeSecurityServicesScopedList::Warning::Datum>]
20882
21488
  attr_accessor :data
20883
21489
 
20884
21490
  # [Output Only] A human-readable description of the warning code.
@@ -26553,6 +27159,11 @@ module Google
26553
27159
  # @return [Google::Apis::ComputeBeta::UsageExportLocation]
26554
27160
  attr_accessor :usage_export_location
26555
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
+
26556
27167
  # [Output Only] The role this project has in a shared VPC configuration.
26557
27168
  # Currently, only projects with the host role, which is specified by the value
26558
27169
  # HOST, are differentiated.
@@ -26578,6 +27189,7 @@ module Google
26578
27189
  @quotas = args[:quotas] if args.key?(:quotas)
26579
27190
  @self_link = args[:self_link] if args.key?(:self_link)
26580
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)
26581
27193
  @xpn_project_status = args[:xpn_project_status] if args.key?(:xpn_project_status)
26582
27194
  end
26583
27195
  end
@@ -29751,8 +30363,8 @@ module Google
29751
30363
  # @return [Fixnum]
29752
30364
  attr_accessor :amount
29753
30365
 
29754
- # Type of resource for which this commitment applies. Possible values are VCPU
29755
- # and MEMORY
30366
+ # Type of resource for which this commitment applies. Possible values are VCPU,
30367
+ # MEMORY, LOCAL_SSD, and ACCELERATOR.
29756
30368
  # Corresponds to the JSON property `type`
29757
30369
  # @return [String]
29758
30370
  attr_accessor :type
@@ -30650,6 +31262,11 @@ module Google
30650
31262
  # @return [String]
30651
31263
  attr_accessor :physical_host
30652
31264
 
31265
+ #
31266
+ # Corresponds to the JSON property `scheduling`
31267
+ # @return [Google::Apis::ComputeBeta::ResourceStatusScheduling]
31268
+ attr_accessor :scheduling
31269
+
30653
31270
  def initialize(**args)
30654
31271
  update!(**args)
30655
31272
  end
@@ -30657,6 +31274,26 @@ module Google
30657
31274
  # Update properties of this object
30658
31275
  def update!(**args)
30659
31276
  @physical_host = args[:physical_host] if args.key?(:physical_host)
31277
+ @scheduling = args[:scheduling] if args.key?(:scheduling)
31278
+ end
31279
+ end
31280
+
31281
+ #
31282
+ class ResourceStatusScheduling
31283
+ include Google::Apis::Core::Hashable
31284
+
31285
+ # Time in future when the instance will be terminated in RFC3339 text format.
31286
+ # Corresponds to the JSON property `terminationTimestamp`
31287
+ # @return [String]
31288
+ attr_accessor :termination_timestamp
31289
+
31290
+ def initialize(**args)
31291
+ update!(**args)
31292
+ end
31293
+
31294
+ # Update properties of this object
31295
+ def update!(**args)
31296
+ @termination_timestamp = args[:termination_timestamp] if args.key?(:termination_timestamp)
30660
31297
  end
30661
31298
  end
30662
31299
 
@@ -34318,6 +34955,14 @@ module Google
34318
34955
  # @return [String]
34319
34956
  attr_accessor :enforce_on_key
34320
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
+
34321
34966
  # Rate limit key name applicable only for the following key types: HTTP_HEADER --
34322
34967
  # Name of the HTTP header whose value is taken as the key value. HTTP_COOKIE --
34323
34968
  # Name of the HTTP cookie whose value is taken as the key value.
@@ -34355,6 +35000,7 @@ module Google
34355
35000
  @ban_threshold = args[:ban_threshold] if args.key?(:ban_threshold)
34356
35001
  @conform_action = args[:conform_action] if args.key?(:conform_action)
34357
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)
34358
35004
  @enforce_on_key_name = args[:enforce_on_key_name] if args.key?(:enforce_on_key_name)
34359
35005
  @exceed_action = args[:exceed_action] if args.key?(:exceed_action)
34360
35006
  @exceed_redirect_options = args[:exceed_redirect_options] if args.key?(:exceed_redirect_options)
@@ -34362,6 +35008,51 @@ module Google
34362
35008
  end
34363
35009
  end
34364
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
+
34365
35056
  #
34366
35057
  class SecurityPolicyRuleRateLimitOptionsThreshold
34367
35058
  include Google::Apis::Core::Hashable
@@ -34422,6 +35113,14 @@ module Google
34422
35113
  # @return [String]
34423
35114
  attr_accessor :authentication
34424
35115
 
35116
+ # Contains the configurations necessary to generate a signature for access to
35117
+ # private storage buckets that support Signature Version 4 for authentication.
35118
+ # The service name for generating the authentication header will always default
35119
+ # to 's3'.
35120
+ # Corresponds to the JSON property `awsV4Authentication`
35121
+ # @return [Google::Apis::ComputeBeta::Awsv4Signature]
35122
+ attr_accessor :aws_v4_authentication
35123
+
34425
35124
  # Optional. A URL referring to a networksecurity.ClientTlsPolicy resource that
34426
35125
  # describes how clients should authenticate with this service's backends.
34427
35126
  # clientTlsPolicy only applies to a global BackendService with the
@@ -34454,6 +35153,7 @@ module Google
34454
35153
  # Update properties of this object
34455
35154
  def update!(**args)
34456
35155
  @authentication = args[:authentication] if args.key?(:authentication)
35156
+ @aws_v4_authentication = args[:aws_v4_authentication] if args.key?(:aws_v4_authentication)
34457
35157
  @client_tls_policy = args[:client_tls_policy] if args.key?(:client_tls_policy)
34458
35158
  @subject_alt_names = args[:subject_alt_names] if args.key?(:subject_alt_names)
34459
35159
  end
@@ -34869,6 +35569,11 @@ module Google
34869
35569
  # @return [Fixnum]
34870
35570
  attr_accessor :connection_limit
34871
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
+
34872
35577
  # The project id or number for the project to set the limit for.
34873
35578
  # Corresponds to the JSON property `projectIdOrNum`
34874
35579
  # @return [String]
@@ -34881,6 +35586,7 @@ module Google
34881
35586
  # Update properties of this object
34882
35587
  def update!(**args)
34883
35588
  @connection_limit = args[:connection_limit] if args.key?(:connection_limit)
35589
+ @network_url = args[:network_url] if args.key?(:network_url)
34884
35590
  @project_id_or_num = args[:project_id_or_num] if args.key?(:project_id_or_num)
34885
35591
  end
34886
35592
  end
@@ -42321,6 +43027,22 @@ module Google
42321
43027
  # @return [String]
42322
43028
  attr_accessor :path_prefix_rewrite
42323
43029
 
43030
+ # If specified, the pattern rewrites the URL path (based on the :path header)
43031
+ # using the HTTP template syntax. A corresponding path_template_match must be
43032
+ # specified. Any template variables must exist in the path_template_match field.
43033
+ # - -At least one variable must be specified in the path_template_match field -
43034
+ # You can omit variables from the rewritten URL - The * and ** operators cannot
43035
+ # be matched unless they have a corresponding variable name - e.g. `format=*` or
43036
+ # `var=**`. For example, a path_template_match of /static/`format=**` could be
43037
+ # rewritten as /static/content/`format` to prefix /content to the URL. Variables
43038
+ # can also be re-ordered in a rewrite, so that /`country`/`format`/`suffix=**`
43039
+ # can be rewritten as /content/`format`/`country`/`suffix`. At least one non-
43040
+ # empty routeRules[].matchRules[].path_template_match is required. Only one of
43041
+ # path_prefix_rewrite or path_template_rewrite may be specified.
43042
+ # Corresponds to the JSON property `pathTemplateRewrite`
43043
+ # @return [String]
43044
+ attr_accessor :path_template_rewrite
43045
+
42324
43046
  def initialize(**args)
42325
43047
  update!(**args)
42326
43048
  end
@@ -42329,6 +43051,7 @@ module Google
42329
43051
  def update!(**args)
42330
43052
  @host_rewrite = args[:host_rewrite] if args.key?(:host_rewrite)
42331
43053
  @path_prefix_rewrite = args[:path_prefix_rewrite] if args.key?(:path_prefix_rewrite)
43054
+ @path_template_rewrite = args[:path_template_rewrite] if args.key?(:path_template_rewrite)
42332
43055
  end
42333
43056
  end
42334
43057