google-apis-compute_v1 0.1.0 → 0.2.0

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 55bf9ec7a0190f324f36b5227031d736d2667cf869174cfa713535b52f184127
4
- data.tar.gz: 642e0cac4cbe6f0ba8b5a6d6fdfe7a2e654773c40d40fd16d297f2db1a29cd5c
3
+ metadata.gz: 683bbfb2a2e68971229566c711bec6132a4c202f90dc10338505a5ce839b4e7c
4
+ data.tar.gz: 58f56cd15cbcc79c8b28805c950e18f237731a2d11c54a5a4183159926239b2f
5
5
  SHA512:
6
- metadata.gz: 4b47ce336557422e1c1351fd85f8cdf1d1e2de62cc472c3ab6e1b793de5cb6c05c71ac47dee25e89b677be7c1e195b1cbe4f8d710189deace35c4e0066cc528c
7
- data.tar.gz: 13427b4180519f35babafc9500913e8c73b9e9cc72fb375ebc6485c3d95fd4c9d12e7714351f9ebfd115d86fd531efa65fed75d4000a37f26f4b74a9a2eb00a2
6
+ metadata.gz: 13e54f6d901ce721e276e8bd540d3493542c72465e7278427b77859add8c52bde7f2a6849dc18fba2c4cea54ac738055078782d70a8a3c9a8c47da930364de19
7
+ data.tar.gz: f934e33b4f6b2961fe492aa4962481079172273af542eec92813397d86a41b10ff9c3f59d1aab553a764e06cddd047848a769dd03ade4dc1ca1a95d386f68ae7
data/CHANGELOG.md CHANGED
@@ -1,5 +1,10 @@
1
1
  # Release history for google-apis-compute_v1
2
2
 
3
+ ### v0.2.0 (2021-01-29)
4
+
5
+ * Regenerated from discovery document revision 20210111
6
+ * Regenerated using generator version 0.1.2
7
+
3
8
  ### v0.1.0 (2021-01-07)
4
9
 
5
10
  * Regenerated using generator version 0.1.1
@@ -1028,6 +1028,30 @@ module Google
1028
1028
  end
1029
1029
  end
1030
1030
 
1031
+ # Specifies options for controlling advanced machine features. Options that
1032
+ # would traditionally be configured in a BIOS belong here. Features that require
1033
+ # operating system support may have corresponding entries in the GuestOsFeatures
1034
+ # of an Image (e.g., whether or not the OS in the Image supports nested
1035
+ # virtualization being enabled or disabled).
1036
+ class AdvancedMachineFeatures
1037
+ include Google::Apis::Core::Hashable
1038
+
1039
+ # Whether to enable nested virtualization or not (default is false).
1040
+ # Corresponds to the JSON property `enableNestedVirtualization`
1041
+ # @return [Boolean]
1042
+ attr_accessor :enable_nested_virtualization
1043
+ alias_method :enable_nested_virtualization?, :enable_nested_virtualization
1044
+
1045
+ def initialize(**args)
1046
+ update!(**args)
1047
+ end
1048
+
1049
+ # Update properties of this object
1050
+ def update!(**args)
1051
+ @enable_nested_virtualization = args[:enable_nested_virtualization] if args.key?(:enable_nested_virtualization)
1052
+ end
1053
+ end
1054
+
1031
1055
  # An alias IP range attached to an instance's network interface.
1032
1056
  class AliasIpRange
1033
1057
  include Google::Apis::Core::Hashable
@@ -2299,49 +2323,22 @@ module Google
2299
2323
  class Backend
2300
2324
  include Google::Apis::Core::Hashable
2301
2325
 
2302
- # Specifies the balancing mode for the backend.
2303
- # When choosing a balancing mode, you need to consider the loadBalancingScheme,
2304
- # and protocol for the backend service, as well as the type of backend (instance
2305
- # group or NEG).
2306
- #
2307
- # - If the load balancing mode is CONNECTION, then the load is spread based on
2308
- # how many concurrent connections the backend can handle.
2309
- # You can use the CONNECTION balancing mode if the protocol for the backend
2310
- # service is SSL, TCP, or UDP.
2311
- # If the loadBalancingScheme for the backend service is EXTERNAL (SSL Proxy and
2312
- # TCP Proxy load balancers), you must also specify exactly one of the following
2313
- # parameters: maxConnections (except for regional managed instance groups),
2314
- # maxConnectionsPerInstance, or maxConnectionsPerEndpoint.
2315
- # If the loadBalancingScheme for the backend service is INTERNAL (internal TCP/
2316
- # UDP Load Balancers) or EXTERNAL (Network Load Balancing), you cannot specify
2317
- # any additional parameters.
2318
- #
2319
- # - If the load balancing mode is RATE, the load is spread based on the rate of
2320
- # HTTP requests per second (RPS).
2321
- # You can use the RATE balancing mode if the protocol for the backend service is
2322
- # HTTP, HTTP2, or HTTPS. You must specify exactly one of the following
2323
- # parameters: maxRate (except for regional managed instance groups),
2324
- # maxRatePerInstance, or maxRatePerEndpoint.
2325
- #
2326
- # - If the load balancing mode is UTILIZATION, the load is spread based on the
2327
- # backend utilization of instances in an instance group.
2328
- # You can use the UTILIZATION balancing mode if the loadBalancingScheme of the
2329
- # backend service is EXTERNAL (except Network Load Balancing),
2330
- # INTERNAL_SELF_MANAGED, or INTERNAL_MANAGED and the backends are instance
2331
- # groups. There are no restrictions on the backend service protocol.
2326
+ # Specifies how to determine whether the backend of a load balancer can handle
2327
+ # additional traffic or is fully loaded. For usage guidelines, see Connection
2328
+ # balancing mode.
2332
2329
  # Corresponds to the JSON property `balancingMode`
2333
2330
  # @return [String]
2334
2331
  attr_accessor :balancing_mode
2335
2332
 
2336
- # A multiplier applied to the group's maximum servicing capacity (based on
2337
- # UTILIZATION, RATE or CONNECTION). Default value is 1, which means the group
2338
- # will serve up to 100% of its configured capacity (depending on balancingMode).
2339
- # A setting of 0 means the group is completely drained, offering 0% of its
2340
- # available capacity. Valid range is 0.0 and [0.1,1.0]. You cannot configure a
2341
- # setting larger than 0 and smaller than 0.1. You cannot configure a setting of
2342
- # 0 when there is only one backend attached to the backend service.
2343
- # This cannot be used for Internal TCP/UDP Load Balancing and Network Load
2344
- # Balancing.
2333
+ # A multiplier applied to the backend's target capacity of its balancing mode.
2334
+ # The default value is 1, which means the group serves up to 100% of its
2335
+ # configured capacity (depending on balancingMode). A setting of 0 means the
2336
+ # group is completely drained, offering 0% of its available capacity. The valid
2337
+ # ranges are 0.0 and [0.1,1.0]. You cannot configure a setting larger than 0 and
2338
+ # smaller than 0.1. You cannot configure a setting of 0 when there is only one
2339
+ # backend attached to the backend service.
2340
+ # Not supported by:
2341
+ # - Internal TCP/UDP Load Balancing - Network Load Balancing
2345
2342
  # Corresponds to the JSON property `capacityScaler`
2346
2343
  # @return [Float]
2347
2344
  attr_accessor :capacity_scaler
@@ -2379,91 +2376,52 @@ module Google
2379
2376
  # @return [String]
2380
2377
  attr_accessor :group
2381
2378
 
2382
- # Defines a target maximum number of simultaneous connections that the backend
2383
- # can handle. Valid for network endpoint group and instance group backends (
2384
- # except for regional managed instance groups). If the backend's balancingMode
2385
- # is UTILIZATION, this is an optional parameter. If the backend's balancingMode
2386
- # is CONNECTION, and backend is attached to a backend service whose
2387
- # loadBalancingScheme is EXTERNAL (except Network Load Balancing), you must
2388
- # specify either this parameter, maxConnectionsPerInstance, or
2389
- # maxConnectionsPerEndpoint.
2390
- # Not available if the backend's balancingMode is RATE. Cannot be specified for
2391
- # Network Load Balancing or Internal TCP/UDP Load Balancing, even though those
2392
- # load balancers require a balancing mode of CONNECTION.
2379
+ # Defines a target maximum number of simultaneous connections. For usage
2380
+ # guidelines, see Connection balancing mode and Utilization balancing mode. Not
2381
+ # available if the backend's balancingMode is RATE. Not supported by:
2382
+ # - Internal TCP/UDP Load Balancing - Network Load Balancing
2393
2383
  # Corresponds to the JSON property `maxConnections`
2394
2384
  # @return [Fixnum]
2395
2385
  attr_accessor :max_connections
2396
2386
 
2397
- # Defines a target maximum number of simultaneous connections for an endpoint of
2398
- # a NEG. This is multiplied by the number of endpoints in the NEG to implicitly
2399
- # calculate a maximum number of target maximum simultaneous connections for the
2400
- # NEG. If the backend's balancingMode is CONNECTION, and backend is attached to
2401
- # a backend service whose loadBalancingScheme is EXTERNAL (except Network Load
2402
- # Balancing), you must specify either this parameter, maxConnections, or
2403
- # maxConnectionsPerInstance.
2404
- # Not available if the backend's balancingMode is RATE. Cannot be specified for
2405
- # Network Load Balancing or Internal TCP/UDP Load Balancing, even though those
2406
- # load balancers require a balancing mode of CONNECTION.
2387
+ # Defines a target maximum number of simultaneous connections. For usage
2388
+ # guidelines, see Connection balancing mode and Utilization balancing mode.
2389
+ # Not available if the backend's balancingMode is RATE. Not supported by:
2390
+ # - Internal TCP/UDP Load Balancing - Network Load Balancing.
2407
2391
  # Corresponds to the JSON property `maxConnectionsPerEndpoint`
2408
2392
  # @return [Fixnum]
2409
2393
  attr_accessor :max_connections_per_endpoint
2410
2394
 
2411
- # Defines a target maximum number of simultaneous connections for a single VM in
2412
- # a backend instance group. This is multiplied by the number of instances in the
2413
- # instance group to implicitly calculate a target maximum number of simultaneous
2414
- # connections for the whole instance group. If the backend's balancingMode is
2415
- # UTILIZATION, this is an optional parameter. If the backend's balancingMode is
2416
- # CONNECTION, and backend is attached to a backend service whose
2417
- # loadBalancingScheme is EXTERNAL (except Network Load Balancing), you must
2418
- # specify either this parameter, maxConnections, or maxConnectionsPerEndpoint.
2419
- # Not available if the backend's balancingMode is RATE. Cannot be specified for
2420
- # Network Load Balancing or Internal TCP/UDP Load Balancing, even though those
2421
- # load balancers require a balancing mode of CONNECTION.
2395
+ # Defines a target maximum number of simultaneous connections. For usage
2396
+ # guidelines, see Connection balancing mode and Utilization balancing mode.
2397
+ # Not available if the backend's balancingMode is RATE. Not supported by:
2398
+ # - Internal TCP/UDP Load Balancing - Network Load Balancing.
2422
2399
  # Corresponds to the JSON property `maxConnectionsPerInstance`
2423
2400
  # @return [Fixnum]
2424
2401
  attr_accessor :max_connections_per_instance
2425
2402
 
2426
- # Defines a maximum number of HTTP requests per second (RPS) that the backend
2427
- # can handle. Valid for network endpoint group and instance group backends (
2428
- # except for regional managed instance groups). Must not be defined if the
2429
- # backend is a managed instance group that uses autoscaling based on load
2430
- # balancing.
2431
- # If the backend's balancingMode is UTILIZATION, this is an optional parameter.
2432
- # If the backend's balancingMode is RATE, you must specify maxRate,
2433
- # maxRatePerInstance, or maxRatePerEndpoint.
2403
+ # Defines a maximum number of HTTP requests per second (RPS). For usage
2404
+ # guidelines, see Rate balancing mode and Utilization balancing mode.
2434
2405
  # Not available if the backend's balancingMode is CONNECTION.
2435
2406
  # Corresponds to the JSON property `maxRate`
2436
2407
  # @return [Fixnum]
2437
2408
  attr_accessor :max_rate
2438
2409
 
2439
- # Defines a maximum target for requests per second (RPS) for an endpoint of a
2440
- # NEG. This is multiplied by the number of endpoints in the NEG to implicitly
2441
- # calculate a target maximum rate for the NEG.
2442
- # If the backend's balancingMode is RATE, you must specify either this parameter,
2443
- # maxRate (except for regional managed instance groups), or maxRatePerInstance.
2410
+ # Defines a maximum target for requests per second (RPS). For usage guidelines,
2411
+ # see Rate balancing mode and Utilization balancing mode.
2444
2412
  # Not available if the backend's balancingMode is CONNECTION.
2445
2413
  # Corresponds to the JSON property `maxRatePerEndpoint`
2446
2414
  # @return [Float]
2447
2415
  attr_accessor :max_rate_per_endpoint
2448
2416
 
2449
- # Defines a maximum target for requests per second (RPS) for a single VM in a
2450
- # backend instance group. This is multiplied by the number of instances in the
2451
- # instance group to implicitly calculate a target maximum rate for the whole
2452
- # instance group.
2453
- # If the backend's balancingMode is UTILIZATION, this is an optional parameter.
2454
- # If the backend's balancingMode is RATE, you must specify either this parameter,
2455
- # maxRate (except for regional managed instance groups), or maxRatePerEndpoint.
2417
+ # Defines a maximum target for requests per second (RPS). For usage guidelines,
2418
+ # see Rate balancing mode and Utilization balancing mode.
2456
2419
  # Not available if the backend's balancingMode is CONNECTION.
2457
2420
  # Corresponds to the JSON property `maxRatePerInstance`
2458
2421
  # @return [Float]
2459
2422
  attr_accessor :max_rate_per_instance
2460
2423
 
2461
- # Defines the maximum average backend utilization of a backend VM in an instance
2462
- # group. The valid range is [0.0, 1.0]. This is an optional parameter if the
2463
- # backend's balancingMode is UTILIZATION.
2464
- # This parameter can be used in conjunction with maxRate, maxRatePerInstance,
2465
- # maxConnections (except for regional managed instance groups), or
2466
- # maxConnectionsPerInstance.
2424
+ #
2467
2425
  # Corresponds to the JSON property `maxUtilization`
2468
2426
  # @return [Float]
2469
2427
  attr_accessor :max_utilization
@@ -3048,7 +3006,8 @@ module Google
3048
3006
 
3049
3007
  # The backend service timeout has a different meaning depending on the type of
3050
3008
  # load balancer. For more information see, Backend service settings The default
3051
- # is 30 seconds.
3009
+ # is 30 seconds. The full range of timeout values allowed is 1 - 2,147,483,647
3010
+ # seconds.
3052
3011
  # Corresponds to the JSON property `timeoutSec`
3053
3012
  # @return [Fixnum]
3054
3013
  attr_accessor :timeout_sec
@@ -4441,9 +4400,9 @@ module Google
4441
4400
  class ConnectionDraining
4442
4401
  include Google::Apis::Core::Hashable
4443
4402
 
4444
- # The amount of time in seconds to allow existing connections to persist while
4445
- # on unhealthy backend VMs. Only applicable if the protocol is not UDP. The
4446
- # valid range is [0, 3600].
4403
+ # Configures a duration timeout for existing requests on a removed backend
4404
+ # instance. For supported load balancers and protocols, as described in Enabling
4405
+ # connection draining.
4447
4406
  # Corresponds to the JSON property `drainingTimeoutSec`
4448
4407
  # @return [Fixnum]
4449
4408
  attr_accessor :draining_timeout_sec
@@ -4554,8 +4513,7 @@ module Google
4554
4513
  attr_accessor :allow_methods
4555
4514
 
4556
4515
  # Specifies the regualar expression patterns that match allowed origins. For
4557
- # regular expression grammar please see en.cppreference.com/w/cpp/regex/
4558
- # ecmascript
4516
+ # regular expression grammar please see github.com/google/re2/wiki/Syntax
4559
4517
  # An origin is allowed if it matches either an item in allowOrigins or an item
4560
4518
  # in allowOriginRegexes.
4561
4519
  # Corresponds to the JSON property `allowOriginRegexes`
@@ -4822,6 +4780,12 @@ module Google
4822
4780
  # @return [Array<String>]
4823
4781
  attr_accessor :licenses
4824
4782
 
4783
+ # An opaque location hint used to place the disk close to other resources. This
4784
+ # field is for use by internal tools that use the public API.
4785
+ # Corresponds to the JSON property `locationHint`
4786
+ # @return [String]
4787
+ attr_accessor :location_hint
4788
+
4825
4789
  # Name of the resource. Provided by the client when the resource is created. The
4826
4790
  # name must be 1-63 characters long, and comply with RFC1035. Specifically, the
4827
4791
  # name must be 1-63 characters long and match the regular expression `[a-z]([-a-
@@ -4863,6 +4827,12 @@ module Google
4863
4827
  # @return [Array<String>]
4864
4828
  attr_accessor :resource_policies
4865
4829
 
4830
+ # [Output Only] Reserved for future use.
4831
+ # Corresponds to the JSON property `satisfiesPzs`
4832
+ # @return [Boolean]
4833
+ attr_accessor :satisfies_pzs
4834
+ alias_method :satisfies_pzs?, :satisfies_pzs
4835
+
4866
4836
  # [Output Only] Server-defined fully-qualified URL for this resource.
4867
4837
  # Corresponds to the JSON property `selfLink`
4868
4838
  # @return [String]
@@ -4955,9 +4925,22 @@ module Google
4955
4925
  # @return [String]
4956
4926
  attr_accessor :source_snapshot_id
4957
4927
 
4958
- # [Output Only] The status of disk creation. CREATING: Disk is provisioning.
4959
- # RESTORING: Source data is being copied into the disk. FAILED: Disk creation
4960
- # failed. READY: Disk is ready for use. DELETING: Disk is deleting.
4928
+ # The full Google Cloud Storage URI where the disk image is stored. This file
4929
+ # must be a gzip-compressed tarball whose name ends in .tar.gz or virtual
4930
+ # machine disk whose name ends in vmdk. Valid URIs may start with gs:// or https:
4931
+ # //storage.googleapis.com/. This flag is not optimized for creating multiple
4932
+ # disks from a source storage object. To create many disks from a source storage
4933
+ # object, use gcloud compute images import instead.
4934
+ # Corresponds to the JSON property `sourceStorageObject`
4935
+ # @return [String]
4936
+ attr_accessor :source_storage_object
4937
+
4938
+ # [Output Only] The status of disk creation.
4939
+ # - CREATING: Disk is provisioning.
4940
+ # - RESTORING: Source data is being copied into the disk.
4941
+ # - FAILED: Disk creation failed.
4942
+ # - READY: Disk is ready for use.
4943
+ # - DELETING: Disk is deleting.
4961
4944
  # Corresponds to the JSON property `status`
4962
4945
  # @return [String]
4963
4946
  attr_accessor :status
@@ -5000,12 +4983,14 @@ module Google
5000
4983
  @last_detach_timestamp = args[:last_detach_timestamp] if args.key?(:last_detach_timestamp)
5001
4984
  @license_codes = args[:license_codes] if args.key?(:license_codes)
5002
4985
  @licenses = args[:licenses] if args.key?(:licenses)
4986
+ @location_hint = args[:location_hint] if args.key?(:location_hint)
5003
4987
  @name = args[:name] if args.key?(:name)
5004
4988
  @options = args[:options] if args.key?(:options)
5005
4989
  @physical_block_size_bytes = args[:physical_block_size_bytes] if args.key?(:physical_block_size_bytes)
5006
4990
  @region = args[:region] if args.key?(:region)
5007
4991
  @replica_zones = args[:replica_zones] if args.key?(:replica_zones)
5008
4992
  @resource_policies = args[:resource_policies] if args.key?(:resource_policies)
4993
+ @satisfies_pzs = args[:satisfies_pzs] if args.key?(:satisfies_pzs)
5009
4994
  @self_link = args[:self_link] if args.key?(:self_link)
5010
4995
  @size_gb = args[:size_gb] if args.key?(:size_gb)
5011
4996
  @source_disk = args[:source_disk] if args.key?(:source_disk)
@@ -5016,6 +5001,7 @@ module Google
5016
5001
  @source_snapshot = args[:source_snapshot] if args.key?(:source_snapshot)
5017
5002
  @source_snapshot_encryption_key = args[:source_snapshot_encryption_key] if args.key?(:source_snapshot_encryption_key)
5018
5003
  @source_snapshot_id = args[:source_snapshot_id] if args.key?(:source_snapshot_id)
5004
+ @source_storage_object = args[:source_storage_object] if args.key?(:source_storage_object)
5019
5005
  @status = args[:status] if args.key?(:status)
5020
5006
  @type = args[:type] if args.key?(:type)
5021
5007
  @users = args[:users] if args.key?(:users)
@@ -6924,6 +6910,475 @@ module Google
6924
6910
  end
6925
6911
  end
6926
6912
 
6913
+ #
6914
+ class FirewallPoliciesListAssociationsResponse
6915
+ include Google::Apis::Core::Hashable
6916
+
6917
+ # A list of associations.
6918
+ # Corresponds to the JSON property `associations`
6919
+ # @return [Array<Google::Apis::ComputeV1::FirewallPolicyAssociation>]
6920
+ attr_accessor :associations
6921
+
6922
+ # [Output Only] Type of firewallPolicy associations. Always compute#
6923
+ # FirewallPoliciesListAssociations for lists of firewallPolicy associations.
6924
+ # Corresponds to the JSON property `kind`
6925
+ # @return [String]
6926
+ attr_accessor :kind
6927
+
6928
+ def initialize(**args)
6929
+ update!(**args)
6930
+ end
6931
+
6932
+ # Update properties of this object
6933
+ def update!(**args)
6934
+ @associations = args[:associations] if args.key?(:associations)
6935
+ @kind = args[:kind] if args.key?(:kind)
6936
+ end
6937
+ end
6938
+
6939
+ # Represents a Firewall Policy resource. (== resource_for `$api_version`.
6940
+ # firewallPolicies ==)
6941
+ class FirewallPolicy
6942
+ include Google::Apis::Core::Hashable
6943
+
6944
+ # A list of associations that belong to this firewall policy.
6945
+ # Corresponds to the JSON property `associations`
6946
+ # @return [Array<Google::Apis::ComputeV1::FirewallPolicyAssociation>]
6947
+ attr_accessor :associations
6948
+
6949
+ # [Output Only] Creation timestamp in RFC3339 text format.
6950
+ # Corresponds to the JSON property `creationTimestamp`
6951
+ # @return [String]
6952
+ attr_accessor :creation_timestamp
6953
+
6954
+ # An optional description of this resource. Provide this property when you
6955
+ # create the resource.
6956
+ # Corresponds to the JSON property `description`
6957
+ # @return [String]
6958
+ attr_accessor :description
6959
+
6960
+ # User-provided name of the Organization firewall plicy. The name should be
6961
+ # unique in the organization in which the firewall policy is created. The name
6962
+ # must be 1-63 characters long, and comply with RFC1035. Specifically, the name
6963
+ # must be 1-63 characters long and match the regular expression `[a-z]([-a-z0-9]*
6964
+ # [a-z0-9])?` which means the first character must be a lowercase letter, and
6965
+ # all following characters must be a dash, lowercase letter, or digit, except
6966
+ # the last character, which cannot be a dash.
6967
+ # Corresponds to the JSON property `displayName`
6968
+ # @return [String]
6969
+ attr_accessor :display_name
6970
+
6971
+ # Specifies a fingerprint for this resource, which is essentially a hash of the
6972
+ # metadata's contents and used for optimistic locking. The fingerprint is
6973
+ # initially generated by Compute Engine and changes after every request to
6974
+ # modify or update metadata. You must always provide an up-to-date fingerprint
6975
+ # hash in order to update or change metadata, otherwise the request will fail
6976
+ # with error 412 conditionNotMet.
6977
+ # To see the latest fingerprint, make get() request to the firewall policy.
6978
+ # Corresponds to the JSON property `fingerprint`
6979
+ # NOTE: Values are automatically base64 encoded/decoded in the client library.
6980
+ # @return [String]
6981
+ attr_accessor :fingerprint
6982
+
6983
+ # [Output Only] The unique identifier for the resource. This identifier is
6984
+ # defined by the server.
6985
+ # Corresponds to the JSON property `id`
6986
+ # @return [Fixnum]
6987
+ attr_accessor :id
6988
+
6989
+ # [Output only] Type of the resource. Always compute#firewallPolicyfor firewall
6990
+ # policies
6991
+ # Corresponds to the JSON property `kind`
6992
+ # @return [String]
6993
+ attr_accessor :kind
6994
+
6995
+ # [Output Only] Name of the resource. It is a numeric ID allocated by GCP which
6996
+ # uniquely identifies the Firewall Policy.
6997
+ # Corresponds to the JSON property `name`
6998
+ # @return [String]
6999
+ attr_accessor :name
7000
+
7001
+ # [Output Only] The parent of the firewall policy.
7002
+ # Corresponds to the JSON property `parent`
7003
+ # @return [String]
7004
+ attr_accessor :parent
7005
+
7006
+ # [Output Only] Total count of all firewall policy rule tuples. A firewall
7007
+ # policy can not exceed a set number of tuples.
7008
+ # Corresponds to the JSON property `ruleTupleCount`
7009
+ # @return [Fixnum]
7010
+ attr_accessor :rule_tuple_count
7011
+
7012
+ # A list of rules that belong to this policy. There must always be a default
7013
+ # rule (rule with priority 2147483647 and match "*"). If no rules are provided
7014
+ # when creating a firewall policy, a default rule with action "allow" will be
7015
+ # added.
7016
+ # Corresponds to the JSON property `rules`
7017
+ # @return [Array<Google::Apis::ComputeV1::FirewallPolicyRule>]
7018
+ attr_accessor :rules
7019
+
7020
+ # [Output Only] Server-defined URL for the resource.
7021
+ # Corresponds to the JSON property `selfLink`
7022
+ # @return [String]
7023
+ attr_accessor :self_link
7024
+
7025
+ # [Output Only] Server-defined URL for this resource with the resource id.
7026
+ # Corresponds to the JSON property `selfLinkWithId`
7027
+ # @return [String]
7028
+ attr_accessor :self_link_with_id
7029
+
7030
+ def initialize(**args)
7031
+ update!(**args)
7032
+ end
7033
+
7034
+ # Update properties of this object
7035
+ def update!(**args)
7036
+ @associations = args[:associations] if args.key?(:associations)
7037
+ @creation_timestamp = args[:creation_timestamp] if args.key?(:creation_timestamp)
7038
+ @description = args[:description] if args.key?(:description)
7039
+ @display_name = args[:display_name] if args.key?(:display_name)
7040
+ @fingerprint = args[:fingerprint] if args.key?(:fingerprint)
7041
+ @id = args[:id] if args.key?(:id)
7042
+ @kind = args[:kind] if args.key?(:kind)
7043
+ @name = args[:name] if args.key?(:name)
7044
+ @parent = args[:parent] if args.key?(:parent)
7045
+ @rule_tuple_count = args[:rule_tuple_count] if args.key?(:rule_tuple_count)
7046
+ @rules = args[:rules] if args.key?(:rules)
7047
+ @self_link = args[:self_link] if args.key?(:self_link)
7048
+ @self_link_with_id = args[:self_link_with_id] if args.key?(:self_link_with_id)
7049
+ end
7050
+ end
7051
+
7052
+ #
7053
+ class FirewallPolicyAssociation
7054
+ include Google::Apis::Core::Hashable
7055
+
7056
+ # The target that the firewall policy is attached to.
7057
+ # Corresponds to the JSON property `attachmentTarget`
7058
+ # @return [String]
7059
+ attr_accessor :attachment_target
7060
+
7061
+ # [Output Only] The display name of the firewall policy of the association.
7062
+ # Corresponds to the JSON property `displayName`
7063
+ # @return [String]
7064
+ attr_accessor :display_name
7065
+
7066
+ # [Output Only] The firewall policy ID of the association.
7067
+ # Corresponds to the JSON property `firewallPolicyId`
7068
+ # @return [String]
7069
+ attr_accessor :firewall_policy_id
7070
+
7071
+ # The name for an association.
7072
+ # Corresponds to the JSON property `name`
7073
+ # @return [String]
7074
+ attr_accessor :name
7075
+
7076
+ def initialize(**args)
7077
+ update!(**args)
7078
+ end
7079
+
7080
+ # Update properties of this object
7081
+ def update!(**args)
7082
+ @attachment_target = args[:attachment_target] if args.key?(:attachment_target)
7083
+ @display_name = args[:display_name] if args.key?(:display_name)
7084
+ @firewall_policy_id = args[:firewall_policy_id] if args.key?(:firewall_policy_id)
7085
+ @name = args[:name] if args.key?(:name)
7086
+ end
7087
+ end
7088
+
7089
+ #
7090
+ class FirewallPolicyList
7091
+ include Google::Apis::Core::Hashable
7092
+
7093
+ # [Output Only] Unique identifier for the resource; defined by the server.
7094
+ # Corresponds to the JSON property `id`
7095
+ # @return [String]
7096
+ attr_accessor :id
7097
+
7098
+ # A list of FirewallPolicy resources.
7099
+ # Corresponds to the JSON property `items`
7100
+ # @return [Array<Google::Apis::ComputeV1::FirewallPolicy>]
7101
+ attr_accessor :items
7102
+
7103
+ # [Output Only] Type of resource. Always compute#firewallPolicyList for listsof
7104
+ # FirewallPolicies
7105
+ # Corresponds to the JSON property `kind`
7106
+ # @return [String]
7107
+ attr_accessor :kind
7108
+
7109
+ # [Output Only] This token allows you to get the next page of results for list
7110
+ # requests. If the number of results is larger than maxResults, use the
7111
+ # nextPageToken as a value for the query parameter pageToken in the next list
7112
+ # request. Subsequent list requests will have their own nextPageToken to
7113
+ # continue paging through the results.
7114
+ # Corresponds to the JSON property `nextPageToken`
7115
+ # @return [String]
7116
+ attr_accessor :next_page_token
7117
+
7118
+ # [Output Only] Informational warning message.
7119
+ # Corresponds to the JSON property `warning`
7120
+ # @return [Google::Apis::ComputeV1::FirewallPolicyList::Warning]
7121
+ attr_accessor :warning
7122
+
7123
+ def initialize(**args)
7124
+ update!(**args)
7125
+ end
7126
+
7127
+ # Update properties of this object
7128
+ def update!(**args)
7129
+ @id = args[:id] if args.key?(:id)
7130
+ @items = args[:items] if args.key?(:items)
7131
+ @kind = args[:kind] if args.key?(:kind)
7132
+ @next_page_token = args[:next_page_token] if args.key?(:next_page_token)
7133
+ @warning = args[:warning] if args.key?(:warning)
7134
+ end
7135
+
7136
+ # [Output Only] Informational warning message.
7137
+ class Warning
7138
+ include Google::Apis::Core::Hashable
7139
+
7140
+ # [Output Only] A warning code, if applicable. For example, Compute Engine
7141
+ # returns NO_RESULTS_ON_PAGE if there are no results in the response.
7142
+ # Corresponds to the JSON property `code`
7143
+ # @return [String]
7144
+ attr_accessor :code
7145
+
7146
+ # [Output Only] Metadata about this warning in key: value format. For example:
7147
+ # "data": [ ` "key": "scope", "value": "zones/us-east1-d" `
7148
+ # Corresponds to the JSON property `data`
7149
+ # @return [Array<Google::Apis::ComputeV1::FirewallPolicyList::Warning::Datum>]
7150
+ attr_accessor :data
7151
+
7152
+ # [Output Only] A human-readable description of the warning code.
7153
+ # Corresponds to the JSON property `message`
7154
+ # @return [String]
7155
+ attr_accessor :message
7156
+
7157
+ def initialize(**args)
7158
+ update!(**args)
7159
+ end
7160
+
7161
+ # Update properties of this object
7162
+ def update!(**args)
7163
+ @code = args[:code] if args.key?(:code)
7164
+ @data = args[:data] if args.key?(:data)
7165
+ @message = args[:message] if args.key?(:message)
7166
+ end
7167
+
7168
+ #
7169
+ class Datum
7170
+ include Google::Apis::Core::Hashable
7171
+
7172
+ # [Output Only] A key that provides more detail on the warning being returned.
7173
+ # For example, for warnings where there are no results in a list request for a
7174
+ # particular zone, this key might be scope and the key value might be the zone
7175
+ # name. Other examples might be a key indicating a deprecated resource and a
7176
+ # suggested replacement, or a warning about invalid network settings (for
7177
+ # example, if an instance attempts to perform IP forwarding but is not enabled
7178
+ # for IP forwarding).
7179
+ # Corresponds to the JSON property `key`
7180
+ # @return [String]
7181
+ attr_accessor :key
7182
+
7183
+ # [Output Only] A warning data value corresponding to the key.
7184
+ # Corresponds to the JSON property `value`
7185
+ # @return [String]
7186
+ attr_accessor :value
7187
+
7188
+ def initialize(**args)
7189
+ update!(**args)
7190
+ end
7191
+
7192
+ # Update properties of this object
7193
+ def update!(**args)
7194
+ @key = args[:key] if args.key?(:key)
7195
+ @value = args[:value] if args.key?(:value)
7196
+ end
7197
+ end
7198
+ end
7199
+ end
7200
+
7201
+ # Represents a rule that describes one or more match conditions along with the
7202
+ # action to be taken when traffic matches this condition (allow or deny).
7203
+ class FirewallPolicyRule
7204
+ include Google::Apis::Core::Hashable
7205
+
7206
+ # The Action to perform when the client connection triggers the rule. Can
7207
+ # currently be either "allow" or "deny()" where valid values for status are 403,
7208
+ # 404, and 502.
7209
+ # Corresponds to the JSON property `action`
7210
+ # @return [String]
7211
+ attr_accessor :action
7212
+
7213
+ # An optional description of this resource. Provide this property when you
7214
+ # create the resource.
7215
+ # Corresponds to the JSON property `description`
7216
+ # @return [String]
7217
+ attr_accessor :description
7218
+
7219
+ # The direction in which this rule applies.
7220
+ # Corresponds to the JSON property `direction`
7221
+ # @return [String]
7222
+ attr_accessor :direction
7223
+
7224
+ # Denotes whether the firewall policy rule is disabled. When set to true, the
7225
+ # firewall policy rule is not enforced and traffic behaves as if it did not
7226
+ # exist. If this is unspecified, the firewall policy rule will be enabled.
7227
+ # Corresponds to the JSON property `disabled`
7228
+ # @return [Boolean]
7229
+ attr_accessor :disabled
7230
+ alias_method :disabled?, :disabled
7231
+
7232
+ # Denotes whether to enable logging for a particular rule. If logging is enabled,
7233
+ # logs will be exported to the configured export destination in Stackdriver.
7234
+ # Logs may be exported to BigQuery or Pub/Sub. Note: you cannot enable logging
7235
+ # on "goto_next" rules.
7236
+ # Corresponds to the JSON property `enableLogging`
7237
+ # @return [Boolean]
7238
+ attr_accessor :enable_logging
7239
+ alias_method :enable_logging?, :enable_logging
7240
+
7241
+ # [Output only] Type of the resource. Always compute#firewallPolicyRule for
7242
+ # firewall policy rules
7243
+ # Corresponds to the JSON property `kind`
7244
+ # @return [String]
7245
+ attr_accessor :kind
7246
+
7247
+ # Represents a match condition that incoming traffic is evaluated against.
7248
+ # Exactly one field must be specified.
7249
+ # Corresponds to the JSON property `match`
7250
+ # @return [Google::Apis::ComputeV1::FirewallPolicyRuleMatcher]
7251
+ attr_accessor :match
7252
+
7253
+ # An integer indicating the priority of a rule in the list. The priority must be
7254
+ # a positive value between 0 and 2147483647. Rules are evaluated from highest to
7255
+ # lowest priority where 0 is the highest priority and 2147483647 is the lowest
7256
+ # prority.
7257
+ # Corresponds to the JSON property `priority`
7258
+ # @return [Fixnum]
7259
+ attr_accessor :priority
7260
+
7261
+ # [Output Only] Calculation of the complexity of a single firewall policy rule.
7262
+ # Corresponds to the JSON property `ruleTupleCount`
7263
+ # @return [Fixnum]
7264
+ attr_accessor :rule_tuple_count
7265
+
7266
+ # A list of network resource URLs to which this rule applies. This field allows
7267
+ # you to control which network's VMs get this rule. If this field is left blank,
7268
+ # all VMs within the organization will receive the rule.
7269
+ # Corresponds to the JSON property `targetResources`
7270
+ # @return [Array<String>]
7271
+ attr_accessor :target_resources
7272
+
7273
+ # A list of secure labels that controls which instances the firewall rule
7274
+ # applies to. If targetSecureLabel are specified, then the firewall rule applies
7275
+ # only to instances in the VPC network that have one of those secure labels.
7276
+ # targetSecureLabel may not be set at the same time as targetServiceAccounts. If
7277
+ # neither targetServiceAccounts nor targetSecureLabel are specified, the
7278
+ # firewall rule applies to all instances on the specified network. Maximum
7279
+ # number of target label values allowed is 256.
7280
+ # Corresponds to the JSON property `targetSecureLabels`
7281
+ # @return [Array<String>]
7282
+ attr_accessor :target_secure_labels
7283
+
7284
+ # A list of service accounts indicating the sets of instances that are applied
7285
+ # with this rule.
7286
+ # Corresponds to the JSON property `targetServiceAccounts`
7287
+ # @return [Array<String>]
7288
+ attr_accessor :target_service_accounts
7289
+
7290
+ def initialize(**args)
7291
+ update!(**args)
7292
+ end
7293
+
7294
+ # Update properties of this object
7295
+ def update!(**args)
7296
+ @action = args[:action] if args.key?(:action)
7297
+ @description = args[:description] if args.key?(:description)
7298
+ @direction = args[:direction] if args.key?(:direction)
7299
+ @disabled = args[:disabled] if args.key?(:disabled)
7300
+ @enable_logging = args[:enable_logging] if args.key?(:enable_logging)
7301
+ @kind = args[:kind] if args.key?(:kind)
7302
+ @match = args[:match] if args.key?(:match)
7303
+ @priority = args[:priority] if args.key?(:priority)
7304
+ @rule_tuple_count = args[:rule_tuple_count] if args.key?(:rule_tuple_count)
7305
+ @target_resources = args[:target_resources] if args.key?(:target_resources)
7306
+ @target_secure_labels = args[:target_secure_labels] if args.key?(:target_secure_labels)
7307
+ @target_service_accounts = args[:target_service_accounts] if args.key?(:target_service_accounts)
7308
+ end
7309
+ end
7310
+
7311
+ # Represents a match condition that incoming traffic is evaluated against.
7312
+ # Exactly one field must be specified.
7313
+ class FirewallPolicyRuleMatcher
7314
+ include Google::Apis::Core::Hashable
7315
+
7316
+ # CIDR IP address range. Maximum number of destination CIDR IP ranges allowed is
7317
+ # 256.
7318
+ # Corresponds to the JSON property `destIpRanges`
7319
+ # @return [Array<String>]
7320
+ attr_accessor :dest_ip_ranges
7321
+
7322
+ # Pairs of IP protocols and ports that the rule should match.
7323
+ # Corresponds to the JSON property `layer4Configs`
7324
+ # @return [Array<Google::Apis::ComputeV1::FirewallPolicyRuleMatcherLayer4Config>]
7325
+ attr_accessor :layer4_configs
7326
+
7327
+ # CIDR IP address range. Maximum number of source CIDR IP ranges allowed is 256.
7328
+ # Corresponds to the JSON property `srcIpRanges`
7329
+ # @return [Array<String>]
7330
+ attr_accessor :src_ip_ranges
7331
+
7332
+ # List of firewall label values, which should be matched at the source of the
7333
+ # traffic. Maximum number of source label values allowed is 256.
7334
+ # Corresponds to the JSON property `srcSecureLabels`
7335
+ # @return [Array<String>]
7336
+ attr_accessor :src_secure_labels
7337
+
7338
+ def initialize(**args)
7339
+ update!(**args)
7340
+ end
7341
+
7342
+ # Update properties of this object
7343
+ def update!(**args)
7344
+ @dest_ip_ranges = args[:dest_ip_ranges] if args.key?(:dest_ip_ranges)
7345
+ @layer4_configs = args[:layer4_configs] if args.key?(:layer4_configs)
7346
+ @src_ip_ranges = args[:src_ip_ranges] if args.key?(:src_ip_ranges)
7347
+ @src_secure_labels = args[:src_secure_labels] if args.key?(:src_secure_labels)
7348
+ end
7349
+ end
7350
+
7351
+ #
7352
+ class FirewallPolicyRuleMatcherLayer4Config
7353
+ include Google::Apis::Core::Hashable
7354
+
7355
+ # The IP protocol to which this rule applies. The protocol type is required when
7356
+ # creating a firewall rule. This value can either be one of the following well
7357
+ # known protocol strings (tcp, udp, icmp, esp, ah, ipip, sctp), or the IP
7358
+ # protocol number.
7359
+ # Corresponds to the JSON property `ipProtocol`
7360
+ # @return [String]
7361
+ attr_accessor :ip_protocol
7362
+
7363
+ # An optional list of ports to which this rule applies. This field is only
7364
+ # applicable for UDP or TCP protocol. Each entry must be either an integer or a
7365
+ # range. If not specified, this rule applies to connections through any port.
7366
+ # Example inputs include: ["22"], ["80","443"], and ["12345-12349"].
7367
+ # Corresponds to the JSON property `ports`
7368
+ # @return [Array<String>]
7369
+ attr_accessor :ports
7370
+
7371
+ def initialize(**args)
7372
+ update!(**args)
7373
+ end
7374
+
7375
+ # Update properties of this object
7376
+ def update!(**args)
7377
+ @ip_protocol = args[:ip_protocol] if args.key?(:ip_protocol)
7378
+ @ports = args[:ports] if args.key?(:ports)
7379
+ end
7380
+ end
7381
+
6927
7382
  # Encapsulates numeric value that can be either absolute or relative.
6928
7383
  class FixedOrPercent
6929
7384
  include Google::Apis::Core::Hashable
@@ -6998,8 +7453,6 @@ module Google
6998
7453
  # ip_address_specifications).
6999
7454
  # Must be set to `0.0.0.0` when the target is targetGrpcProxy that has
7000
7455
  # validateForProxyless field set to true.
7001
- # For Private Service Connect forwarding rules that forward traffic to Google
7002
- # APIs, IP address must be provided.
7003
7456
  # Corresponds to the JSON property `IPAddress`
7004
7457
  # @return [String]
7005
7458
  attr_accessor :ip_address
@@ -7100,6 +7553,26 @@ module Google
7100
7553
  # @return [String]
7101
7554
  attr_accessor :kind
7102
7555
 
7556
+ # A fingerprint for the labels being applied to this resource, which is
7557
+ # essentially a hash of the labels set used for optimistic locking. The
7558
+ # fingerprint is initially generated by Compute Engine and changes after every
7559
+ # request to modify or update labels. You must always provide an up-to-date
7560
+ # fingerprint hash in order to update or change labels, otherwise the request
7561
+ # will fail with error 412 conditionNotMet.
7562
+ # To see the latest fingerprint, make a get() request to retrieve a
7563
+ # ForwardingRule.
7564
+ # Corresponds to the JSON property `labelFingerprint`
7565
+ # NOTE: Values are automatically base64 encoded/decoded in the client library.
7566
+ # @return [String]
7567
+ attr_accessor :label_fingerprint
7568
+
7569
+ # Labels for this resource. These can only be added or modified by the setLabels
7570
+ # method. Each label key/value pair must comply with RFC1035. Label values may
7571
+ # be empty.
7572
+ # Corresponds to the JSON property `labels`
7573
+ # @return [Hash<String,String>]
7574
+ attr_accessor :labels
7575
+
7103
7576
  # Specifies the forwarding rule type.
7104
7577
  #
7105
7578
  # - EXTERNAL is used for:
@@ -7152,8 +7625,6 @@ module Google
7152
7625
  # For Internal TCP/UDP Load Balancing, this field identifies the network that
7153
7626
  # the load balanced IP should belong to for this Forwarding Rule. If this field
7154
7627
  # is not specified, the default network will be used.
7155
- # For Private Service Connect forwarding rules that forward traffic to Google
7156
- # APIs, a network must be provided.
7157
7628
  # Corresponds to the JSON property `network`
7158
7629
  # @return [String]
7159
7630
  attr_accessor :network
@@ -7251,15 +7722,6 @@ module Google
7251
7722
  # resource. The forwarded traffic must be of a type appropriate to the target
7252
7723
  # object. For more information, see the "Target" column in [Port specifications](
7253
7724
  # /load-balancing/docs/forwarding-rule-concepts#ip_address_specifications).
7254
- # For Private Service Connect forwarding rules that forward traffic to Google
7255
- # APIs, provide the name of a supported Google API bundle. Currently, the
7256
- # supported Google API bundles include:
7257
- #
7258
- # - vpc-sc - GCP APIs that support VPC Service Controls. For more information
7259
- # about which APIs support VPC Service Controls, refer to VPC-SC supported
7260
- # products and limitations.
7261
- # - all-apis - All GCP APIs. For more information about which APIs are supported
7262
- # with this bundle, refer to Private Google Access-specific domains and VIPs.
7263
7725
  # Corresponds to the JSON property `target`
7264
7726
  # @return [String]
7265
7727
  attr_accessor :target
@@ -7282,6 +7744,8 @@ module Google
7282
7744
  @ip_version = args[:ip_version] if args.key?(:ip_version)
7283
7745
  @is_mirroring_collector = args[:is_mirroring_collector] if args.key?(:is_mirroring_collector)
7284
7746
  @kind = args[:kind] if args.key?(:kind)
7747
+ @label_fingerprint = args[:label_fingerprint] if args.key?(:label_fingerprint)
7748
+ @labels = args[:labels] if args.key?(:labels)
7285
7749
  @load_balancing_scheme = args[:load_balancing_scheme] if args.key?(:load_balancing_scheme)
7286
7750
  @metadata_filters = args[:metadata_filters] if args.key?(:metadata_filters)
7287
7751
  @name = args[:name] if args.key?(:name)
@@ -7741,6 +8205,69 @@ module Google
7741
8205
  end
7742
8206
  end
7743
8207
 
8208
+ #
8209
+ class GlobalOrganizationSetPolicyRequest
8210
+ include Google::Apis::Core::Hashable
8211
+
8212
+ # Flatten Policy to create a backward compatible wire-format. Deprecated. Use '
8213
+ # policy' to specify bindings.
8214
+ # Corresponds to the JSON property `bindings`
8215
+ # @return [Array<Google::Apis::ComputeV1::Binding>]
8216
+ attr_accessor :bindings
8217
+
8218
+ # Flatten Policy to create a backward compatible wire-format. Deprecated. Use '
8219
+ # policy' to specify the etag.
8220
+ # Corresponds to the JSON property `etag`
8221
+ # NOTE: Values are automatically base64 encoded/decoded in the client library.
8222
+ # @return [String]
8223
+ attr_accessor :etag
8224
+
8225
+ # An Identity and Access Management (IAM) policy, which specifies access
8226
+ # controls for Google Cloud resources.
8227
+ # A `Policy` is a collection of `bindings`. A `binding` binds one or more `
8228
+ # members` to a single `role`. Members can be user accounts, service accounts,
8229
+ # Google groups, and domains (such as G Suite). A `role` is a named list of
8230
+ # permissions; each `role` can be an IAM predefined role or a user-created
8231
+ # custom role.
8232
+ # For some types of Google Cloud resources, a `binding` can also specify a `
8233
+ # condition`, which is a logical expression that allows access to a resource
8234
+ # only if the expression evaluates to `true`. A condition can add constraints
8235
+ # based on attributes of the request, the resource, or both. To learn which
8236
+ # resources support conditions in their IAM policies, see the [IAM documentation]
8237
+ # (https://cloud.google.com/iam/help/conditions/resource-policies).
8238
+ # **JSON example:**
8239
+ # ` "bindings": [ ` "role": "roles/resourcemanager.organizationAdmin", "members":
8240
+ # [ "user:mike@example.com", "group:admins@example.com", "domain:google.com", "
8241
+ # serviceAccount:my-project-id@appspot.gserviceaccount.com" ] `, ` "role": "
8242
+ # roles/resourcemanager.organizationViewer", "members": [ "user:eve@example.com"
8243
+ # ], "condition": ` "title": "expirable access", "description": "Does not grant
8244
+ # access after Sep 2020", "expression": "request.time < timestamp('2020-10-01T00:
8245
+ # 00:00.000Z')", ` ` ], "etag": "BwWWja0YfJA=", "version": 3 `
8246
+ # **YAML example:**
8247
+ # bindings: - members: - user:mike@example.com - group:admins@example.com -
8248
+ # domain:google.com - serviceAccount:my-project-id@appspot.gserviceaccount.com
8249
+ # role: roles/resourcemanager.organizationAdmin - members: - user:eve@example.
8250
+ # com role: roles/resourcemanager.organizationViewer condition: title: expirable
8251
+ # access description: Does not grant access after Sep 2020 expression: request.
8252
+ # time < timestamp('2020-10-01T00:00:00.000Z') - etag: BwWWja0YfJA= - version: 3
8253
+ # For a description of IAM and its features, see the [IAM documentation](https://
8254
+ # cloud.google.com/iam/docs/).
8255
+ # Corresponds to the JSON property `policy`
8256
+ # @return [Google::Apis::ComputeV1::Policy]
8257
+ attr_accessor :policy
8258
+
8259
+ def initialize(**args)
8260
+ update!(**args)
8261
+ end
8262
+
8263
+ # Update properties of this object
8264
+ def update!(**args)
8265
+ @bindings = args[:bindings] if args.key?(:bindings)
8266
+ @etag = args[:etag] if args.key?(:etag)
8267
+ @policy = args[:policy] if args.key?(:policy)
8268
+ end
8269
+ end
8270
+
7744
8271
  #
7745
8272
  class GlobalSetLabelsRequest
7746
8273
  include Google::Apis::Core::Hashable
@@ -9309,8 +9836,8 @@ module Google
9309
9836
  attr_accessor :range_match
9310
9837
 
9311
9838
  # The value of the header must match the regular expression specified in
9312
- # regexMatch. For regular expression grammar, please see: en.cppreference.com/w/
9313
- # cpp/regex/ecmascript
9839
+ # regexMatch. For regular expression grammar, please see: github.com/google/re2/
9840
+ # wiki/Syntax
9314
9841
  # For matching against a port specified in the HTTP request, use a headerMatch
9315
9842
  # with headerName set to PORT and a regular expression that satisfies the
9316
9843
  # RFC2616 Host header's port specifier.
@@ -9633,7 +10160,7 @@ module Google
9633
10160
 
9634
10161
  # The queryParameterMatch matches if the value of the parameter matches the
9635
10162
  # regular expression specified by regexMatch. For the regular expression grammar,
9636
- # please see en.cppreference.com/w/cpp/regex/ecmascript
10163
+ # please see github.com/google/re2/wiki/Syntax
9637
10164
  # Only one of presentMatch, exactMatch or regexMatch must be set.
9638
10165
  # Note that regexMatch only applies when the loadBalancingScheme is set to
9639
10166
  # INTERNAL_SELF_MANAGED.
@@ -10023,7 +10550,7 @@ module Google
10023
10550
  # For satisfying the matchRule condition, the path of the request must satisfy
10024
10551
  # the regular expression specified in regexMatch after removing any query
10025
10552
  # parameters and anchor supplied with the original URL. For regular expression
10026
- # grammar please see en.cppreference.com/w/cpp/regex/ecmascript
10553
+ # grammar please see github.com/google/re2/wiki/Syntax
10027
10554
  # Only one of prefixMatch, fullPathMatch or regexMatch must be specified.
10028
10555
  # Note that regexMatch only applies to Loadbalancers that have their
10029
10556
  # loadBalancingScheme set to INTERNAL_SELF_MANAGED.
@@ -10724,6 +11251,15 @@ module Google
10724
11251
  class Instance
10725
11252
  include Google::Apis::Core::Hashable
10726
11253
 
11254
+ # Specifies options for controlling advanced machine features. Options that
11255
+ # would traditionally be configured in a BIOS belong here. Features that require
11256
+ # operating system support may have corresponding entries in the GuestOsFeatures
11257
+ # of an Image (e.g., whether or not the OS in the Image supports nested
11258
+ # virtualization being enabled or disabled).
11259
+ # Corresponds to the JSON property `advancedMachineFeatures`
11260
+ # @return [Google::Apis::ComputeV1::AdvancedMachineFeatures]
11261
+ attr_accessor :advanced_machine_features
11262
+
10727
11263
  # Allows this instance to send and receive packets with non-matching destination
10728
11264
  # or source IPs. This is required if you plan to use this instance to forward
10729
11265
  # routes. For more information, see Enabling IP Forwarding.
@@ -10900,6 +11436,12 @@ module Google
10900
11436
  # @return [Array<String>]
10901
11437
  attr_accessor :resource_policies
10902
11438
 
11439
+ # [Output Only] Reserved for future use.
11440
+ # Corresponds to the JSON property `satisfiesPzs`
11441
+ # @return [Boolean]
11442
+ attr_accessor :satisfies_pzs
11443
+ alias_method :satisfies_pzs?, :satisfies_pzs
11444
+
10903
11445
  # Sets the scheduling options for an Instance. NextID: 13
10904
11446
  # Corresponds to the JSON property `scheduling`
10905
11447
  # @return [Google::Apis::ComputeV1::Scheduling]
@@ -10968,6 +11510,7 @@ module Google
10968
11510
 
10969
11511
  # Update properties of this object
10970
11512
  def update!(**args)
11513
+ @advanced_machine_features = args[:advanced_machine_features] if args.key?(:advanced_machine_features)
10971
11514
  @can_ip_forward = args[:can_ip_forward] if args.key?(:can_ip_forward)
10972
11515
  @confidential_instance_config = args[:confidential_instance_config] if args.key?(:confidential_instance_config)
10973
11516
  @cpu_platform = args[:cpu_platform] if args.key?(:cpu_platform)
@@ -10994,6 +11537,7 @@ module Google
10994
11537
  @private_ipv6_google_access = args[:private_ipv6_google_access] if args.key?(:private_ipv6_google_access)
10995
11538
  @reservation_affinity = args[:reservation_affinity] if args.key?(:reservation_affinity)
10996
11539
  @resource_policies = args[:resource_policies] if args.key?(:resource_policies)
11540
+ @satisfies_pzs = args[:satisfies_pzs] if args.key?(:satisfies_pzs)
10997
11541
  @scheduling = args[:scheduling] if args.key?(:scheduling)
10998
11542
  @self_link = args[:self_link] if args.key?(:self_link)
10999
11543
  @service_accounts = args[:service_accounts] if args.key?(:service_accounts)
@@ -13430,6 +13974,15 @@ module Google
13430
13974
  class InstanceProperties
13431
13975
  include Google::Apis::Core::Hashable
13432
13976
 
13977
+ # Specifies options for controlling advanced machine features. Options that
13978
+ # would traditionally be configured in a BIOS belong here. Features that require
13979
+ # operating system support may have corresponding entries in the GuestOsFeatures
13980
+ # of an Image (e.g., whether or not the OS in the Image supports nested
13981
+ # virtualization being enabled or disabled).
13982
+ # Corresponds to the JSON property `advancedMachineFeatures`
13983
+ # @return [Google::Apis::ComputeV1::AdvancedMachineFeatures]
13984
+ attr_accessor :advanced_machine_features
13985
+
13433
13986
  # Enables instances created based on these properties to send packets with
13434
13987
  # source IP addresses other than their own and receive packets with destination
13435
13988
  # IP addresses other than their own. If these instances will be used as an IP
@@ -13539,6 +14092,7 @@ module Google
13539
14092
 
13540
14093
  # Update properties of this object
13541
14094
  def update!(**args)
14095
+ @advanced_machine_features = args[:advanced_machine_features] if args.key?(:advanced_machine_features)
13542
14096
  @can_ip_forward = args[:can_ip_forward] if args.key?(:can_ip_forward)
13543
14097
  @confidential_instance_config = args[:confidential_instance_config] if args.key?(:confidential_instance_config)
13544
14098
  @description = args[:description] if args.key?(:description)
@@ -17233,9 +17787,8 @@ module Google
17233
17787
  # @return [String]
17234
17788
  attr_accessor :ip_address
17235
17789
 
17236
- # Optional port number of network endpoint. If not specified and the
17237
- # NetworkEndpointGroup.network_endpoint_type is GCE_IP_PORT, the defaultPort for
17238
- # the network endpoint group will be used.
17790
+ # Optional port number of network endpoint. If not specified, the defaultPort
17791
+ # for the network endpoint group will be used.
17239
17792
  # Corresponds to the JSON property `port`
17240
17793
  # @return [Fixnum]
17241
17794
  attr_accessor :port
@@ -22548,6 +23101,12 @@ module Google
22548
23101
  # @return [String]
22549
23102
  attr_accessor :status
22550
23103
 
23104
+ # [Output Only] Reserved for future use.
23105
+ # Corresponds to the JSON property `supportsPzs`
23106
+ # @return [Boolean]
23107
+ attr_accessor :supports_pzs
23108
+ alias_method :supports_pzs?, :supports_pzs
23109
+
22551
23110
  # [Output Only] A list of zones available in this region, in the form of
22552
23111
  # resource URLs.
22553
23112
  # Corresponds to the JSON property `zones`
@@ -22569,6 +23128,7 @@ module Google
22569
23128
  @quotas = args[:quotas] if args.key?(:quotas)
22570
23129
  @self_link = args[:self_link] if args.key?(:self_link)
22571
23130
  @status = args[:status] if args.key?(:status)
23131
+ @supports_pzs = args[:supports_pzs] if args.key?(:supports_pzs)
22572
23132
  @zones = args[:zones] if args.key?(:zones)
22573
23133
  end
22574
23134
  end
@@ -27640,6 +28200,12 @@ module Google
27640
28200
  # @return [Array<String>]
27641
28201
  attr_accessor :licenses
27642
28202
 
28203
+ # An opaque location hint used to place the snapshot close to other resources.
28204
+ # This field is for use by internal tools that use the public API.
28205
+ # Corresponds to the JSON property `locationHint`
28206
+ # @return [String]
28207
+ attr_accessor :location_hint
28208
+
27643
28209
  # Name of the resource; provided by the client when the resource is created. The
27644
28210
  # name must be 1-63 characters long, and comply with RFC1035. Specifically, the
27645
28211
  # name must be 1-63 characters long and match the regular expression `[a-z]([-a-
@@ -27650,6 +28216,12 @@ module Google
27650
28216
  # @return [String]
27651
28217
  attr_accessor :name
27652
28218
 
28219
+ # [Output Only] Reserved for future use.
28220
+ # Corresponds to the JSON property `satisfiesPzs`
28221
+ # @return [Boolean]
28222
+ attr_accessor :satisfies_pzs
28223
+ alias_method :satisfies_pzs?, :satisfies_pzs
28224
+
27653
28225
  # [Output Only] Server-defined URL for the resource.
27654
28226
  # Corresponds to the JSON property `selfLink`
27655
28227
  # @return [String]
@@ -27731,7 +28303,9 @@ module Google
27731
28303
  @labels = args[:labels] if args.key?(:labels)
27732
28304
  @license_codes = args[:license_codes] if args.key?(:license_codes)
27733
28305
  @licenses = args[:licenses] if args.key?(:licenses)
28306
+ @location_hint = args[:location_hint] if args.key?(:location_hint)
27734
28307
  @name = args[:name] if args.key?(:name)
28308
+ @satisfies_pzs = args[:satisfies_pzs] if args.key?(:satisfies_pzs)
27735
28309
  @self_link = args[:self_link] if args.key?(:self_link)
27736
28310
  @snapshot_encryption_key = args[:snapshot_encryption_key] if args.key?(:snapshot_encryption_key)
27737
28311
  @source_disk = args[:source_disk] if args.key?(:source_disk)
@@ -28262,8 +28836,9 @@ module Google
28262
28836
  # @return [Hash<String,String>]
28263
28837
  attr_accessor :domain_status
28264
28838
 
28265
- # The domains for which a managed SSL certificate will be generated. Currently
28266
- # only single-domain certs are supported.
28839
+ # The domains for which a managed SSL certificate will be generated. Each Google-
28840
+ # managed SSL certificate supports up to the [maximum number of domains per
28841
+ # Google-managed SSL certificate](/load-balancing/docs/quotas#ssl_certificates).
28267
28842
  # Corresponds to the JSON property `domains`
28268
28843
  # @return [Array<String>]
28269
28844
  attr_accessor :domains
@@ -29554,9 +30129,10 @@ module Google
29554
30129
 
29555
30130
  # Represents a Target gRPC Proxy resource.
29556
30131
  # A target gRPC proxy is a component of load balancers intended for load
29557
- # balancing gRPC traffic. Global forwarding rules reference a target gRPC proxy.
29558
- # The Target gRPC Proxy references a URL map which specifies how traffic routes
29559
- # to gRPC backend services. (== resource_for `$api_version`.targetGrpcProxies ==)
30132
+ # balancing gRPC traffic. Only global forwarding rules with load balancing
30133
+ # scheme INTERNAL_SELF_MANAGED can reference a target gRPC proxy. The target
30134
+ # gRPC Proxy references a URL map that specifies how traffic is routed to gRPC
30135
+ # backend services. (== resource_for `$api_version`.targetGrpcProxies ==)
29560
30136
  class TargetGrpcProxy
29561
30137
  include Google::Apis::Core::Hashable
29562
30138
 
@@ -30350,7 +30926,6 @@ module Google
30350
30926
  # possible.
30351
30927
  # - When quic-override is set to DISABLE, the load balancer doesn't use QUIC.
30352
30928
  # - If the quic-override flag is not specified, NONE is implied.
30353
- # -
30354
30929
  # Corresponds to the JSON property `quicOverride`
30355
30930
  # @return [String]
30356
30931
  attr_accessor :quic_override
@@ -31137,8 +31712,7 @@ module Google
31137
31712
  attr_accessor :failover_ratio
31138
31713
 
31139
31714
  # The URL of the HttpHealthCheck resource. A member instance in this pool is
31140
- # considered healthy if and only if the health checks pass. An empty list means
31141
- # all member instances will be considered healthy at all times. Only legacy
31715
+ # considered healthy if and only if the health checks pass. Only legacy
31142
31716
  # HttpHealthChecks are supported. Only one health check may be specified.
31143
31717
  # Corresponds to the JSON property `healthChecks`
31144
31718
  # @return [Array<String>]
@@ -32606,17 +33180,46 @@ module Google
32606
33180
  class TestFailure
32607
33181
  include Google::Apis::Core::Hashable
32608
33182
 
33183
+ # The actual output URL evaluated by load balancer containing the scheme, host,
33184
+ # path and query parameters.
33185
+ # Corresponds to the JSON property `actualOutputUrl`
33186
+ # @return [String]
33187
+ attr_accessor :actual_output_url
33188
+
33189
+ # Actual HTTP status code for rule with `urlRedirect` calculated by load
33190
+ # balancer
33191
+ # Corresponds to the JSON property `actualRedirectResponseCode`
33192
+ # @return [Fixnum]
33193
+ attr_accessor :actual_redirect_response_code
33194
+
32609
33195
  # BackendService or BackendBucket returned by load balancer.
32610
33196
  # Corresponds to the JSON property `actualService`
32611
33197
  # @return [String]
32612
33198
  attr_accessor :actual_service
32613
33199
 
33200
+ # The expected output URL evaluated by load balancer containing the scheme, host,
33201
+ # path and query parameters.
33202
+ # Corresponds to the JSON property `expectedOutputUrl`
33203
+ # @return [String]
33204
+ attr_accessor :expected_output_url
33205
+
33206
+ # Expected HTTP status code for rule with `urlRedirect` calculated by load
33207
+ # balancer
33208
+ # Corresponds to the JSON property `expectedRedirectResponseCode`
33209
+ # @return [Fixnum]
33210
+ attr_accessor :expected_redirect_response_code
33211
+
32614
33212
  # Expected BackendService or BackendBucket resource the given URL should be
32615
33213
  # mapped to.
32616
33214
  # Corresponds to the JSON property `expectedService`
32617
33215
  # @return [String]
32618
33216
  attr_accessor :expected_service
32619
33217
 
33218
+ # HTTP headers of the request.
33219
+ # Corresponds to the JSON property `headers`
33220
+ # @return [Array<Google::Apis::ComputeV1::UrlMapTestHeader>]
33221
+ attr_accessor :headers
33222
+
32620
33223
  # Host portion of the URL.
32621
33224
  # Corresponds to the JSON property `host`
32622
33225
  # @return [String]
@@ -32633,8 +33236,13 @@ module Google
32633
33236
 
32634
33237
  # Update properties of this object
32635
33238
  def update!(**args)
33239
+ @actual_output_url = args[:actual_output_url] if args.key?(:actual_output_url)
33240
+ @actual_redirect_response_code = args[:actual_redirect_response_code] if args.key?(:actual_redirect_response_code)
32636
33241
  @actual_service = args[:actual_service] if args.key?(:actual_service)
33242
+ @expected_output_url = args[:expected_output_url] if args.key?(:expected_output_url)
33243
+ @expected_redirect_response_code = args[:expected_redirect_response_code] if args.key?(:expected_redirect_response_code)
32637
33244
  @expected_service = args[:expected_service] if args.key?(:expected_service)
33245
+ @headers = args[:headers] if args.key?(:headers)
32638
33246
  @host = args[:host] if args.key?(:host)
32639
33247
  @path = args[:path] if args.key?(:path)
32640
33248
  end
@@ -32984,6 +33592,37 @@ module Google
32984
33592
  # @return [String]
32985
33593
  attr_accessor :description
32986
33594
 
33595
+ # The expected output URL evaluated by load balancer containing the scheme, host,
33596
+ # path and query parameters.
33597
+ # For rules that forward requests to backends, the test passes only when
33598
+ # expectedOutputUrl matches the request forwarded by load balancer to backends.
33599
+ # For rules with urlRewrite, the test verifies that the forwarded request
33600
+ # matches hostRewrite and pathPrefixRewrite in the urlRewrite action. When
33601
+ # service is specified, expectedOutputUrl`s scheme is ignored.
33602
+ # For rules with urlRedirect, the test passes only if expectedOutputUrl matches
33603
+ # the URL in the load balancer's redirect response. If urlRedirect specifies
33604
+ # https_redirect, the test passes only if the scheme in expectedOutputUrl is
33605
+ # also set to https. If urlRedirect specifies strip_query, the test passes only
33606
+ # if expectedOutputUrl does not contain any query parameters.
33607
+ # expectedOutputUrl is optional when service is specified.
33608
+ # Corresponds to the JSON property `expectedOutputUrl`
33609
+ # @return [String]
33610
+ attr_accessor :expected_output_url
33611
+
33612
+ # For rules with urlRedirect, the test passes only if
33613
+ # expectedRedirectResponseCode matches the HTTP status code in load balancer's
33614
+ # redirect response.
33615
+ # expectedRedirectResponseCode cannot be set when service is set.
33616
+ # Corresponds to the JSON property `expectedRedirectResponseCode`
33617
+ # @return [Fixnum]
33618
+ attr_accessor :expected_redirect_response_code
33619
+
33620
+ # HTTP headers for this request. If headers contains a host header, then host
33621
+ # must also match the header value.
33622
+ # Corresponds to the JSON property `headers`
33623
+ # @return [Array<Google::Apis::ComputeV1::UrlMapTestHeader>]
33624
+ attr_accessor :headers
33625
+
32987
33626
  # Host portion of the URL. If headers contains a host header, then host must
32988
33627
  # also match the header value.
32989
33628
  # Corresponds to the JSON property `host`
@@ -33009,12 +33648,40 @@ module Google
33009
33648
  # Update properties of this object
33010
33649
  def update!(**args)
33011
33650
  @description = args[:description] if args.key?(:description)
33651
+ @expected_output_url = args[:expected_output_url] if args.key?(:expected_output_url)
33652
+ @expected_redirect_response_code = args[:expected_redirect_response_code] if args.key?(:expected_redirect_response_code)
33653
+ @headers = args[:headers] if args.key?(:headers)
33012
33654
  @host = args[:host] if args.key?(:host)
33013
33655
  @path = args[:path] if args.key?(:path)
33014
33656
  @service = args[:service] if args.key?(:service)
33015
33657
  end
33016
33658
  end
33017
33659
 
33660
+ # HTTP headers used in UrlMapTests.
33661
+ class UrlMapTestHeader
33662
+ include Google::Apis::Core::Hashable
33663
+
33664
+ # Header name.
33665
+ # Corresponds to the JSON property `name`
33666
+ # @return [String]
33667
+ attr_accessor :name
33668
+
33669
+ # Header value.
33670
+ # Corresponds to the JSON property `value`
33671
+ # @return [String]
33672
+ attr_accessor :value
33673
+
33674
+ def initialize(**args)
33675
+ update!(**args)
33676
+ end
33677
+
33678
+ # Update properties of this object
33679
+ def update!(**args)
33680
+ @name = args[:name] if args.key?(:name)
33681
+ @value = args[:value] if args.key?(:value)
33682
+ end
33683
+ end
33684
+
33018
33685
  # Message representing the validation result for a UrlMap.
33019
33686
  class UrlMapValidationResult
33020
33687
  include Google::Apis::Core::Hashable
@@ -35201,6 +35868,12 @@ module Google
35201
35868
  # @return [String]
35202
35869
  attr_accessor :status
35203
35870
 
35871
+ # [Output Only] Reserved for future use.
35872
+ # Corresponds to the JSON property `supportsPzs`
35873
+ # @return [Boolean]
35874
+ attr_accessor :supports_pzs
35875
+ alias_method :supports_pzs?, :supports_pzs
35876
+
35204
35877
  def initialize(**args)
35205
35878
  update!(**args)
35206
35879
  end
@@ -35217,6 +35890,7 @@ module Google
35217
35890
  @region = args[:region] if args.key?(:region)
35218
35891
  @self_link = args[:self_link] if args.key?(:self_link)
35219
35892
  @status = args[:status] if args.key?(:status)
35893
+ @supports_pzs = args[:supports_pzs] if args.key?(:supports_pzs)
35220
35894
  end
35221
35895
  end
35222
35896