google-apis-compute_v1 0.1.0 → 0.6.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: 7c8803e03eb6fe8e78fc17bcf462b0c7b2fe9d63fc113426383be1035ef42989
4
+ data.tar.gz: 2faad6d913bb2f418304d67a89dd36e327d688519e0dbb6dbe05b8242e8833f4
5
5
  SHA512:
6
- metadata.gz: 4b47ce336557422e1c1351fd85f8cdf1d1e2de62cc472c3ab6e1b793de5cb6c05c71ac47dee25e89b677be7c1e195b1cbe4f8d710189deace35c4e0066cc528c
7
- data.tar.gz: 13427b4180519f35babafc9500913e8c73b9e9cc72fb375ebc6485c3d95fd4c9d12e7714351f9ebfd115d86fd531efa65fed75d4000a37f26f4b74a9a2eb00a2
6
+ metadata.gz: a20aaca7e41285d877cbb94465dcafc27106e1b86be50e0ca1475f4ba383d458417c44dfbf5fdf6c17e8066cf6d5e518f4faa91e05942851af034de5f9feb6b8
7
+ data.tar.gz: 57e5f28ca15026042af873a95ae12f09a6d5aabc7438cf2f42f05951a0080fe384fadbe1f06d1b4fb917b29e18a263770484c6ba9b64d01fb6defe4678993e3a
data/CHANGELOG.md CHANGED
@@ -1,5 +1,27 @@
1
1
  # Release history for google-apis-compute_v1
2
2
 
3
+ ### v0.6.0 (2021-03-10)
4
+
5
+ * Regenerated from discovery document revision 20210301
6
+ * Regenerated using generator version 0.2.0
7
+
8
+ ### v0.5.0 (2021-03-04)
9
+
10
+ * Unspecified changes
11
+
12
+ ### v0.4.0 (2021-02-24)
13
+
14
+ * Regenerated from discovery document revision 20210209
15
+
16
+ ### v0.3.0 (2021-02-16)
17
+
18
+ * Regenerated from discovery document revision 20210129
19
+
20
+ ### v0.2.0 (2021-01-29)
21
+
22
+ * Regenerated from discovery document revision 20210111
23
+ * Regenerated using generator version 0.1.2
24
+
3
25
  ### v0.1.0 (2021-01-07)
4
26
 
5
27
  * Regenerated using generator version 0.1.1
@@ -617,7 +617,7 @@ module Google
617
617
  # @return [String]
618
618
  attr_accessor :network_tier
619
619
 
620
- # The prefix length if the resource reprensents an IP range.
620
+ # The prefix length if the resource represents an IP range.
621
621
  # Corresponds to the JSON property `prefixLength`
622
622
  # @return [Fixnum]
623
623
  attr_accessor :prefix_length
@@ -630,15 +630,15 @@ module Google
630
630
  # - `NAT_AUTO` for addresses that are external IP addresses automatically
631
631
  # reserved for Cloud NAT.
632
632
  # - `IPSEC_INTERCONNECT` for addresses created from a private IP range that are
633
- # reserved for a VLAN attachment in an IPsec encrypted Interconnect
633
+ # reserved for a VLAN attachment in an IPsec-encrypted Cloud Interconnect
634
634
  # configuration. These addresses are regional resources.
635
635
  # Corresponds to the JSON property `purpose`
636
636
  # @return [String]
637
637
  attr_accessor :purpose
638
638
 
639
- # [Output Only] The URL of the region where the regional address resides. This
640
- # field is not applicable to global addresses. You must specify this field as
641
- # part of the HTTP request URL.
639
+ # [Output Only] The URL of the region where a regional address resides. For
640
+ # regional addresses, you must specify the region as a path parameter in the
641
+ # HTTP request URL. This field is not applicable to global addresses.
642
642
  # Corresponds to the JSON property `region`
643
643
  # @return [String]
644
644
  attr_accessor :region
@@ -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
@@ -1100,6 +1124,12 @@ module Google
1100
1124
  # @return [Array<Google::Apis::ComputeV1::AllocationSpecificSkuAllocationAllocatedInstancePropertiesReservedDisk>]
1101
1125
  attr_accessor :local_ssds
1102
1126
 
1127
+ # An opaque location hint used to place the allocation close to other resources.
1128
+ # This field is for use by internal tools that use the public API.
1129
+ # Corresponds to the JSON property `locationHint`
1130
+ # @return [String]
1131
+ attr_accessor :location_hint
1132
+
1103
1133
  # Specifies type of machine (name only) which has fixed number of vCPUs and
1104
1134
  # fixed amount of memory. This also includes specifying custom machine type
1105
1135
  # following custom-NUMBER_OF_CPUS-AMOUNT_OF_MEMORY pattern.
@@ -1120,6 +1150,7 @@ module Google
1120
1150
  def update!(**args)
1121
1151
  @guest_accelerators = args[:guest_accelerators] if args.key?(:guest_accelerators)
1122
1152
  @local_ssds = args[:local_ssds] if args.key?(:local_ssds)
1153
+ @location_hint = args[:location_hint] if args.key?(:location_hint)
1123
1154
  @machine_type = args[:machine_type] if args.key?(:machine_type)
1124
1155
  @min_cpu_platform = args[:min_cpu_platform] if args.key?(:min_cpu_platform)
1125
1156
  end
@@ -1362,6 +1393,11 @@ module Google
1362
1393
  # @return [String]
1363
1394
  attr_accessor :on_update_action
1364
1395
 
1396
+ # Indicates how many IOPS must be provisioned for the disk.
1397
+ # Corresponds to the JSON property `provisionedIops`
1398
+ # @return [Fixnum]
1399
+ attr_accessor :provisioned_iops
1400
+
1365
1401
  # Resource policies applied to this disk for automatic snapshot creations.
1366
1402
  # Specified using the full or partial URL. For instance template, specify only
1367
1403
  # the resource policy name.
@@ -1427,6 +1463,7 @@ module Google
1427
1463
  @disk_type = args[:disk_type] if args.key?(:disk_type)
1428
1464
  @labels = args[:labels] if args.key?(:labels)
1429
1465
  @on_update_action = args[:on_update_action] if args.key?(:on_update_action)
1466
+ @provisioned_iops = args[:provisioned_iops] if args.key?(:provisioned_iops)
1430
1467
  @resource_policies = args[:resource_policies] if args.key?(:resource_policies)
1431
1468
  @source_image = args[:source_image] if args.key?(:source_image)
1432
1469
  @source_image_encryption_key = args[:source_image_encryption_key] if args.key?(:source_image_encryption_key)
@@ -2299,49 +2336,22 @@ module Google
2299
2336
  class Backend
2300
2337
  include Google::Apis::Core::Hashable
2301
2338
 
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.
2339
+ # Specifies how to determine whether the backend of a load balancer can handle
2340
+ # additional traffic or is fully loaded. For usage guidelines, see Connection
2341
+ # balancing mode.
2332
2342
  # Corresponds to the JSON property `balancingMode`
2333
2343
  # @return [String]
2334
2344
  attr_accessor :balancing_mode
2335
2345
 
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.
2346
+ # A multiplier applied to the backend's target capacity of its balancing mode.
2347
+ # The default value is 1, which means the group serves up to 100% of its
2348
+ # configured capacity (depending on balancingMode). A setting of 0 means the
2349
+ # group is completely drained, offering 0% of its available capacity. The valid
2350
+ # ranges are 0.0 and [0.1,1.0]. You cannot configure a setting larger than 0 and
2351
+ # smaller than 0.1. You cannot configure a setting of 0 when there is only one
2352
+ # backend attached to the backend service.
2353
+ # Not supported by:
2354
+ # - Internal TCP/UDP Load Balancing - Network Load Balancing
2345
2355
  # Corresponds to the JSON property `capacityScaler`
2346
2356
  # @return [Float]
2347
2357
  attr_accessor :capacity_scaler
@@ -2379,91 +2389,52 @@ module Google
2379
2389
  # @return [String]
2380
2390
  attr_accessor :group
2381
2391
 
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.
2392
+ # Defines a target maximum number of simultaneous connections. For usage
2393
+ # guidelines, see Connection balancing mode and Utilization balancing mode. Not
2394
+ # available if the backend's balancingMode is RATE. Not supported by:
2395
+ # - Internal TCP/UDP Load Balancing - Network Load Balancing
2393
2396
  # Corresponds to the JSON property `maxConnections`
2394
2397
  # @return [Fixnum]
2395
2398
  attr_accessor :max_connections
2396
2399
 
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.
2400
+ # Defines a target maximum number of simultaneous connections. For usage
2401
+ # guidelines, see Connection balancing mode and Utilization balancing mode.
2402
+ # Not available if the backend's balancingMode is RATE. Not supported by:
2403
+ # - Internal TCP/UDP Load Balancing - Network Load Balancing.
2407
2404
  # Corresponds to the JSON property `maxConnectionsPerEndpoint`
2408
2405
  # @return [Fixnum]
2409
2406
  attr_accessor :max_connections_per_endpoint
2410
2407
 
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.
2408
+ # Defines a target maximum number of simultaneous connections. For usage
2409
+ # guidelines, see Connection balancing mode and Utilization balancing mode.
2410
+ # Not available if the backend's balancingMode is RATE. Not supported by:
2411
+ # - Internal TCP/UDP Load Balancing - Network Load Balancing.
2422
2412
  # Corresponds to the JSON property `maxConnectionsPerInstance`
2423
2413
  # @return [Fixnum]
2424
2414
  attr_accessor :max_connections_per_instance
2425
2415
 
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.
2416
+ # Defines a maximum number of HTTP requests per second (RPS). For usage
2417
+ # guidelines, see Rate balancing mode and Utilization balancing mode.
2434
2418
  # Not available if the backend's balancingMode is CONNECTION.
2435
2419
  # Corresponds to the JSON property `maxRate`
2436
2420
  # @return [Fixnum]
2437
2421
  attr_accessor :max_rate
2438
2422
 
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.
2423
+ # Defines a maximum target for requests per second (RPS). For usage guidelines,
2424
+ # see Rate balancing mode and Utilization balancing mode.
2444
2425
  # Not available if the backend's balancingMode is CONNECTION.
2445
2426
  # Corresponds to the JSON property `maxRatePerEndpoint`
2446
2427
  # @return [Float]
2447
2428
  attr_accessor :max_rate_per_endpoint
2448
2429
 
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.
2430
+ # Defines a maximum target for requests per second (RPS). For usage guidelines,
2431
+ # see Rate balancing mode and Utilization balancing mode.
2456
2432
  # Not available if the backend's balancingMode is CONNECTION.
2457
2433
  # Corresponds to the JSON property `maxRatePerInstance`
2458
2434
  # @return [Float]
2459
2435
  attr_accessor :max_rate_per_instance
2460
2436
 
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.
2437
+ #
2467
2438
  # Corresponds to the JSON property `maxUtilization`
2468
2439
  # @return [Float]
2469
2440
  attr_accessor :max_utilization
@@ -2592,10 +2563,15 @@ module Google
2592
2563
  # @return [String]
2593
2564
  attr_accessor :cache_mode
2594
2565
 
2595
- # Specifies a separate client (e.g. browser client) TTL, separate from the TTL
2596
- # for Cloud CDN's edge caches. Leaving this empty will use the same cache TTL
2597
- # for both Cloud CDN and the client-facing response. The maximum allowed value
2598
- # is 86400s (1 day).
2566
+ # Specifies a separate client (e.g. browser client) maximum TTL. This is used to
2567
+ # clamp the max-age (or Expires) value sent to the client. With FORCE_CACHE_ALL,
2568
+ # the lesser of client_ttl and default_ttl is used for the response max-age
2569
+ # directive, along with a "public" directive. For cacheable content in
2570
+ # CACHE_ALL_STATIC mode, client_ttl clamps the max-age from the origin (if
2571
+ # specified), or else sets the response max-age directive to the lesser of the
2572
+ # client_ttl and default_ttl, and also ensures a "public" cache-control
2573
+ # directive is present. If a client TTL is not specified, a default value (1
2574
+ # hour) will be used. The maximum allowed value is 86400s (1 day).
2599
2575
  # Corresponds to the JSON property `clientTtl`
2600
2576
  # @return [Fixnum]
2601
2577
  attr_accessor :client_ttl
@@ -2976,8 +2952,8 @@ module Google
2976
2952
 
2977
2953
  # Deprecated in favor of portName. The TCP port to connect on the backend. The
2978
2954
  # default value is 80.
2979
- # This cannot be used if the loadBalancingScheme is INTERNAL (Internal TCP/UDP
2980
- # Load Balancing).
2955
+ # Backend services for Internal TCP/UDP Load Balancing and Network Load
2956
+ # Balancing require you omit port.
2981
2957
  # Corresponds to the JSON property `port`
2982
2958
  # @return [Fixnum]
2983
2959
  attr_accessor :port
@@ -3048,7 +3024,8 @@ module Google
3048
3024
 
3049
3025
  # The backend service timeout has a different meaning depending on the type of
3050
3026
  # load balancer. For more information see, Backend service settings The default
3051
- # is 30 seconds.
3027
+ # is 30 seconds. The full range of timeout values allowed is 1 - 2,147,483,647
3028
+ # seconds.
3052
3029
  # Corresponds to the JSON property `timeoutSec`
3053
3030
  # @return [Fixnum]
3054
3031
  attr_accessor :timeout_sec
@@ -3244,10 +3221,15 @@ module Google
3244
3221
  # @return [String]
3245
3222
  attr_accessor :cache_mode
3246
3223
 
3247
- # Specifies a separate client (e.g. browser client) TTL, separate from the TTL
3248
- # for Cloud CDN's edge caches. Leaving this empty will use the same cache TTL
3249
- # for both Cloud CDN and the client-facing response. The maximum allowed value
3250
- # is 86400s (1 day).
3224
+ # Specifies a separate client (e.g. browser client) maximum TTL. This is used to
3225
+ # clamp the max-age (or Expires) value sent to the client. With FORCE_CACHE_ALL,
3226
+ # the lesser of client_ttl and default_ttl is used for the response max-age
3227
+ # directive, along with a "public" directive. For cacheable content in
3228
+ # CACHE_ALL_STATIC mode, client_ttl clamps the max-age from the origin (if
3229
+ # specified), or else sets the response max-age directive to the lesser of the
3230
+ # client_ttl and default_ttl, and also ensures a "public" cache-control
3231
+ # directive is present. If a client TTL is not specified, a default value (1
3232
+ # hour) will be used. The maximum allowed value is 86400s (1 day).
3251
3233
  # Corresponds to the JSON property `clientTtl`
3252
3234
  # @return [Fixnum]
3253
3235
  attr_accessor :client_ttl
@@ -3778,6 +3760,105 @@ module Google
3778
3760
  end
3779
3761
  end
3780
3762
 
3763
+ #
3764
+ class BulkInsertInstanceResource
3765
+ include Google::Apis::Core::Hashable
3766
+
3767
+ # The maximum number of instances to create.
3768
+ # Corresponds to the JSON property `count`
3769
+ # @return [Fixnum]
3770
+ attr_accessor :count
3771
+
3772
+ #
3773
+ # Corresponds to the JSON property `instanceProperties`
3774
+ # @return [Google::Apis::ComputeV1::InstanceProperties]
3775
+ attr_accessor :instance_properties
3776
+
3777
+ # Configuration for location policy among multiple possible locations (e.g.
3778
+ # preferences for zone selection among zones in a single region).
3779
+ # Corresponds to the JSON property `locationPolicy`
3780
+ # @return [Google::Apis::ComputeV1::LocationPolicy]
3781
+ attr_accessor :location_policy
3782
+
3783
+ # The minimum number of instances to create. If no min_count is specified then
3784
+ # count is used as the default value. If min_count instances cannot be created,
3785
+ # then no instances will be created.
3786
+ # Corresponds to the JSON property `minCount`
3787
+ # @return [Fixnum]
3788
+ attr_accessor :min_count
3789
+
3790
+ # The string pattern used for the names of the VMs. Either name_pattern or
3791
+ # predefined_names must be set. The pattern should contain one consecutive
3792
+ # sequence of placeholder hash characters (#) with each character corresponding
3793
+ # to one digit of the generated instance name. Example: name_pattern of inst-####
3794
+ # will generate instance names like inst-0001, inst-0002, ... . If there
3795
+ # already exist instance(s) whose names match the name pattern in the same
3796
+ # project and zone, then the generated instance numbers will start after the
3797
+ # biggest existing number. For example, if there exists an instance with name
3798
+ # inst-0050, then instance names generated using the pattern inst-#### will be
3799
+ # inst-0051, inst-0052, etc. The name pattern placeholder #...# can contain up
3800
+ # to 18 characters.
3801
+ # Corresponds to the JSON property `namePattern`
3802
+ # @return [String]
3803
+ attr_accessor :name_pattern
3804
+
3805
+ # Per-instance properties to be set on individual instances. Keys of this map
3806
+ # specify requested instance names. Can be empty if name_pattern is used.
3807
+ # Corresponds to the JSON property `perInstanceProperties`
3808
+ # @return [Hash<String,Google::Apis::ComputeV1::BulkInsertInstanceResourcePerInstanceProperties>]
3809
+ attr_accessor :per_instance_properties
3810
+
3811
+ # Specifies the instance template from which to create instances. You may
3812
+ # combine sourceInstanceTemplate with instanceProperties to override specific
3813
+ # values from an existing instance template. Bulk API follows the semantics of
3814
+ # JSON Merge Patch described by RFC 7396.
3815
+ # It can be a full or partial URL. For example, the following are all valid URLs
3816
+ # to an instance template:
3817
+ # - https://www.googleapis.com/compute/v1/projects/project/global/
3818
+ # instanceTemplates/instanceTemplate
3819
+ # - projects/project/global/instanceTemplates/instanceTemplate
3820
+ # - global/instanceTemplates/instanceTemplate
3821
+ # This field is optional.
3822
+ # Corresponds to the JSON property `sourceInstanceTemplate`
3823
+ # @return [String]
3824
+ attr_accessor :source_instance_template
3825
+
3826
+ def initialize(**args)
3827
+ update!(**args)
3828
+ end
3829
+
3830
+ # Update properties of this object
3831
+ def update!(**args)
3832
+ @count = args[:count] if args.key?(:count)
3833
+ @instance_properties = args[:instance_properties] if args.key?(:instance_properties)
3834
+ @location_policy = args[:location_policy] if args.key?(:location_policy)
3835
+ @min_count = args[:min_count] if args.key?(:min_count)
3836
+ @name_pattern = args[:name_pattern] if args.key?(:name_pattern)
3837
+ @per_instance_properties = args[:per_instance_properties] if args.key?(:per_instance_properties)
3838
+ @source_instance_template = args[:source_instance_template] if args.key?(:source_instance_template)
3839
+ end
3840
+ end
3841
+
3842
+ # Per-instance properties to be set on individual instances. To be extended in
3843
+ # the future.
3844
+ class BulkInsertInstanceResourcePerInstanceProperties
3845
+ include Google::Apis::Core::Hashable
3846
+
3847
+ # This field is only temporary. It will be removed. Do not use it.
3848
+ # Corresponds to the JSON property `name`
3849
+ # @return [String]
3850
+ attr_accessor :name
3851
+
3852
+ def initialize(**args)
3853
+ update!(**args)
3854
+ end
3855
+
3856
+ # Update properties of this object
3857
+ def update!(**args)
3858
+ @name = args[:name] if args.key?(:name)
3859
+ end
3860
+ end
3861
+
3781
3862
  #
3782
3863
  class CacheInvalidationRule
3783
3864
  include Google::Apis::Core::Hashable
@@ -4441,9 +4522,9 @@ module Google
4441
4522
  class ConnectionDraining
4442
4523
  include Google::Apis::Core::Hashable
4443
4524
 
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].
4525
+ # Configures a duration timeout for existing requests on a removed backend
4526
+ # instance. For supported load balancers and protocols, as described in Enabling
4527
+ # connection draining.
4447
4528
  # Corresponds to the JSON property `drainingTimeoutSec`
4448
4529
  # @return [Fixnum]
4449
4530
  attr_accessor :draining_timeout_sec
@@ -4554,8 +4635,7 @@ module Google
4554
4635
  attr_accessor :allow_methods
4555
4636
 
4556
4637
  # Specifies the regualar expression patterns that match allowed origins. For
4557
- # regular expression grammar please see en.cppreference.com/w/cpp/regex/
4558
- # ecmascript
4638
+ # regular expression grammar please see github.com/google/re2/wiki/Syntax
4559
4639
  # An origin is allowed if it matches either an item in allowOrigins or an item
4560
4640
  # in allowOriginRegexes.
4561
4641
  # Corresponds to the JSON property `allowOriginRegexes`
@@ -4822,6 +4902,12 @@ module Google
4822
4902
  # @return [Array<String>]
4823
4903
  attr_accessor :licenses
4824
4904
 
4905
+ # An opaque location hint used to place the disk close to other resources. This
4906
+ # field is for use by internal tools that use the public API.
4907
+ # Corresponds to the JSON property `locationHint`
4908
+ # @return [String]
4909
+ attr_accessor :location_hint
4910
+
4825
4911
  # Name of the resource. Provided by the client when the resource is created. The
4826
4912
  # name must be 1-63 characters long, and comply with RFC1035. Specifically, the
4827
4913
  # name must be 1-63 characters long and match the regular expression `[a-z]([-a-
@@ -4845,6 +4931,11 @@ module Google
4845
4931
  # @return [Fixnum]
4846
4932
  attr_accessor :physical_block_size_bytes
4847
4933
 
4934
+ # Indicates how many IOPS must be provisioned for the disk.
4935
+ # Corresponds to the JSON property `provisionedIops`
4936
+ # @return [Fixnum]
4937
+ attr_accessor :provisioned_iops
4938
+
4848
4939
  # [Output Only] URL of the region where the disk resides. Only applicable for
4849
4940
  # regional resources. You must specify this field as part of the HTTP request
4850
4941
  # URL. It is not settable as a field in the request body.
@@ -4863,6 +4954,12 @@ module Google
4863
4954
  # @return [Array<String>]
4864
4955
  attr_accessor :resource_policies
4865
4956
 
4957
+ # [Output Only] Reserved for future use.
4958
+ # Corresponds to the JSON property `satisfiesPzs`
4959
+ # @return [Boolean]
4960
+ attr_accessor :satisfies_pzs
4961
+ alias_method :satisfies_pzs?, :satisfies_pzs
4962
+
4866
4963
  # [Output Only] Server-defined fully-qualified URL for this resource.
4867
4964
  # Corresponds to the JSON property `selfLink`
4868
4965
  # @return [String]
@@ -4880,8 +4977,13 @@ module Google
4880
4977
  # The source disk used to create this disk. You can provide this as a partial or
4881
4978
  # full URL to the resource. For example, the following are valid values:
4882
4979
  # - https://www.googleapis.com/compute/v1/projects/project/zones/zone/disks/disk
4980
+ #
4981
+ # - https://www.googleapis.com/compute/v1/projects/project/regions/region/disks/
4982
+ # disk
4883
4983
  # - projects/project/zones/zone/disks/disk
4984
+ # - projects/project/regions/region/disks/disk
4884
4985
  # - zones/zone/disks/disk
4986
+ # - regions/region/disks/disk
4885
4987
  # Corresponds to the JSON property `sourceDisk`
4886
4988
  # @return [String]
4887
4989
  attr_accessor :source_disk
@@ -4955,9 +5057,22 @@ module Google
4955
5057
  # @return [String]
4956
5058
  attr_accessor :source_snapshot_id
4957
5059
 
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.
5060
+ # The full Google Cloud Storage URI where the disk image is stored. This file
5061
+ # must be a gzip-compressed tarball whose name ends in .tar.gz or virtual
5062
+ # machine disk whose name ends in vmdk. Valid URIs may start with gs:// or https:
5063
+ # //storage.googleapis.com/. This flag is not optimized for creating multiple
5064
+ # disks from a source storage object. To create many disks from a source storage
5065
+ # object, use gcloud compute images import instead.
5066
+ # Corresponds to the JSON property `sourceStorageObject`
5067
+ # @return [String]
5068
+ attr_accessor :source_storage_object
5069
+
5070
+ # [Output Only] The status of disk creation.
5071
+ # - CREATING: Disk is provisioning.
5072
+ # - RESTORING: Source data is being copied into the disk.
5073
+ # - FAILED: Disk creation failed.
5074
+ # - READY: Disk is ready for use.
5075
+ # - DELETING: Disk is deleting.
4961
5076
  # Corresponds to the JSON property `status`
4962
5077
  # @return [String]
4963
5078
  attr_accessor :status
@@ -5000,12 +5115,15 @@ module Google
5000
5115
  @last_detach_timestamp = args[:last_detach_timestamp] if args.key?(:last_detach_timestamp)
5001
5116
  @license_codes = args[:license_codes] if args.key?(:license_codes)
5002
5117
  @licenses = args[:licenses] if args.key?(:licenses)
5118
+ @location_hint = args[:location_hint] if args.key?(:location_hint)
5003
5119
  @name = args[:name] if args.key?(:name)
5004
5120
  @options = args[:options] if args.key?(:options)
5005
5121
  @physical_block_size_bytes = args[:physical_block_size_bytes] if args.key?(:physical_block_size_bytes)
5122
+ @provisioned_iops = args[:provisioned_iops] if args.key?(:provisioned_iops)
5006
5123
  @region = args[:region] if args.key?(:region)
5007
5124
  @replica_zones = args[:replica_zones] if args.key?(:replica_zones)
5008
5125
  @resource_policies = args[:resource_policies] if args.key?(:resource_policies)
5126
+ @satisfies_pzs = args[:satisfies_pzs] if args.key?(:satisfies_pzs)
5009
5127
  @self_link = args[:self_link] if args.key?(:self_link)
5010
5128
  @size_gb = args[:size_gb] if args.key?(:size_gb)
5011
5129
  @source_disk = args[:source_disk] if args.key?(:source_disk)
@@ -5016,6 +5134,7 @@ module Google
5016
5134
  @source_snapshot = args[:source_snapshot] if args.key?(:source_snapshot)
5017
5135
  @source_snapshot_encryption_key = args[:source_snapshot_encryption_key] if args.key?(:source_snapshot_encryption_key)
5018
5136
  @source_snapshot_id = args[:source_snapshot_id] if args.key?(:source_snapshot_id)
5137
+ @source_storage_object = args[:source_storage_object] if args.key?(:source_storage_object)
5019
5138
  @status = args[:status] if args.key?(:status)
5020
5139
  @type = args[:type] if args.key?(:type)
5021
5140
  @users = args[:users] if args.key?(:users)
@@ -6924,6 +7043,474 @@ module Google
6924
7043
  end
6925
7044
  end
6926
7045
 
7046
+ #
7047
+ class FirewallPoliciesListAssociationsResponse
7048
+ include Google::Apis::Core::Hashable
7049
+
7050
+ # A list of associations.
7051
+ # Corresponds to the JSON property `associations`
7052
+ # @return [Array<Google::Apis::ComputeV1::FirewallPolicyAssociation>]
7053
+ attr_accessor :associations
7054
+
7055
+ # [Output Only] Type of firewallPolicy associations. Always compute#
7056
+ # FirewallPoliciesListAssociations for lists of firewallPolicy associations.
7057
+ # Corresponds to the JSON property `kind`
7058
+ # @return [String]
7059
+ attr_accessor :kind
7060
+
7061
+ def initialize(**args)
7062
+ update!(**args)
7063
+ end
7064
+
7065
+ # Update properties of this object
7066
+ def update!(**args)
7067
+ @associations = args[:associations] if args.key?(:associations)
7068
+ @kind = args[:kind] if args.key?(:kind)
7069
+ end
7070
+ end
7071
+
7072
+ # Represents a Firewall Policy resource. (== resource_for `$api_version`.
7073
+ # firewallPolicies ==)
7074
+ class FirewallPolicy
7075
+ include Google::Apis::Core::Hashable
7076
+
7077
+ # A list of associations that belong to this firewall policy.
7078
+ # Corresponds to the JSON property `associations`
7079
+ # @return [Array<Google::Apis::ComputeV1::FirewallPolicyAssociation>]
7080
+ attr_accessor :associations
7081
+
7082
+ # [Output Only] Creation timestamp in RFC3339 text format.
7083
+ # Corresponds to the JSON property `creationTimestamp`
7084
+ # @return [String]
7085
+ attr_accessor :creation_timestamp
7086
+
7087
+ # An optional description of this resource. Provide this property when you
7088
+ # create the resource.
7089
+ # Corresponds to the JSON property `description`
7090
+ # @return [String]
7091
+ attr_accessor :description
7092
+
7093
+ # User-provided name of the Organization firewall plicy. The name should be
7094
+ # unique in the organization in which the firewall policy is created. The name
7095
+ # must be 1-63 characters long, and comply with RFC1035. Specifically, the name
7096
+ # must be 1-63 characters long and match the regular expression `[a-z]([-a-z0-9]*
7097
+ # [a-z0-9])?` which means the first character must be a lowercase letter, and
7098
+ # all following characters must be a dash, lowercase letter, or digit, except
7099
+ # the last character, which cannot be a dash.
7100
+ # Corresponds to the JSON property `displayName`
7101
+ # @return [String]
7102
+ attr_accessor :display_name
7103
+
7104
+ # Specifies a fingerprint for this resource, which is essentially a hash of the
7105
+ # metadata's contents and used for optimistic locking. The fingerprint is
7106
+ # initially generated by Compute Engine and changes after every request to
7107
+ # modify or update metadata. You must always provide an up-to-date fingerprint
7108
+ # hash in order to update or change metadata, otherwise the request will fail
7109
+ # with error 412 conditionNotMet.
7110
+ # To see the latest fingerprint, make get() request to the firewall policy.
7111
+ # Corresponds to the JSON property `fingerprint`
7112
+ # NOTE: Values are automatically base64 encoded/decoded in the client library.
7113
+ # @return [String]
7114
+ attr_accessor :fingerprint
7115
+
7116
+ # [Output Only] The unique identifier for the resource. This identifier is
7117
+ # defined by the server.
7118
+ # Corresponds to the JSON property `id`
7119
+ # @return [Fixnum]
7120
+ attr_accessor :id
7121
+
7122
+ # [Output only] Type of the resource. Always compute#firewallPolicyfor firewall
7123
+ # policies
7124
+ # Corresponds to the JSON property `kind`
7125
+ # @return [String]
7126
+ attr_accessor :kind
7127
+
7128
+ # [Output Only] Name of the resource. It is a numeric ID allocated by GCP which
7129
+ # uniquely identifies the Firewall Policy.
7130
+ # Corresponds to the JSON property `name`
7131
+ # @return [String]
7132
+ attr_accessor :name
7133
+
7134
+ # [Output Only] The parent of the firewall policy.
7135
+ # Corresponds to the JSON property `parent`
7136
+ # @return [String]
7137
+ attr_accessor :parent
7138
+
7139
+ # [Output Only] Total count of all firewall policy rule tuples. A firewall
7140
+ # policy can not exceed a set number of tuples.
7141
+ # Corresponds to the JSON property `ruleTupleCount`
7142
+ # @return [Fixnum]
7143
+ attr_accessor :rule_tuple_count
7144
+
7145
+ # A list of rules that belong to this policy. There must always be a default
7146
+ # rule (rule with priority 2147483647 and match "*"). If no rules are provided
7147
+ # when creating a firewall policy, a default rule with action "allow" will be
7148
+ # added.
7149
+ # Corresponds to the JSON property `rules`
7150
+ # @return [Array<Google::Apis::ComputeV1::FirewallPolicyRule>]
7151
+ attr_accessor :rules
7152
+
7153
+ # [Output Only] Server-defined URL for the resource.
7154
+ # Corresponds to the JSON property `selfLink`
7155
+ # @return [String]
7156
+ attr_accessor :self_link
7157
+
7158
+ # [Output Only] Server-defined URL for this resource with the resource id.
7159
+ # Corresponds to the JSON property `selfLinkWithId`
7160
+ # @return [String]
7161
+ attr_accessor :self_link_with_id
7162
+
7163
+ def initialize(**args)
7164
+ update!(**args)
7165
+ end
7166
+
7167
+ # Update properties of this object
7168
+ def update!(**args)
7169
+ @associations = args[:associations] if args.key?(:associations)
7170
+ @creation_timestamp = args[:creation_timestamp] if args.key?(:creation_timestamp)
7171
+ @description = args[:description] if args.key?(:description)
7172
+ @display_name = args[:display_name] if args.key?(:display_name)
7173
+ @fingerprint = args[:fingerprint] if args.key?(:fingerprint)
7174
+ @id = args[:id] if args.key?(:id)
7175
+ @kind = args[:kind] if args.key?(:kind)
7176
+ @name = args[:name] if args.key?(:name)
7177
+ @parent = args[:parent] if args.key?(:parent)
7178
+ @rule_tuple_count = args[:rule_tuple_count] if args.key?(:rule_tuple_count)
7179
+ @rules = args[:rules] if args.key?(:rules)
7180
+ @self_link = args[:self_link] if args.key?(:self_link)
7181
+ @self_link_with_id = args[:self_link_with_id] if args.key?(:self_link_with_id)
7182
+ end
7183
+ end
7184
+
7185
+ #
7186
+ class FirewallPolicyAssociation
7187
+ include Google::Apis::Core::Hashable
7188
+
7189
+ # The target that the firewall policy is attached to.
7190
+ # Corresponds to the JSON property `attachmentTarget`
7191
+ # @return [String]
7192
+ attr_accessor :attachment_target
7193
+
7194
+ # [Output Only] The display name of the firewall policy of the association.
7195
+ # Corresponds to the JSON property `displayName`
7196
+ # @return [String]
7197
+ attr_accessor :display_name
7198
+
7199
+ # [Output Only] The firewall policy ID of the association.
7200
+ # Corresponds to the JSON property `firewallPolicyId`
7201
+ # @return [String]
7202
+ attr_accessor :firewall_policy_id
7203
+
7204
+ # The name for an association.
7205
+ # Corresponds to the JSON property `name`
7206
+ # @return [String]
7207
+ attr_accessor :name
7208
+
7209
+ def initialize(**args)
7210
+ update!(**args)
7211
+ end
7212
+
7213
+ # Update properties of this object
7214
+ def update!(**args)
7215
+ @attachment_target = args[:attachment_target] if args.key?(:attachment_target)
7216
+ @display_name = args[:display_name] if args.key?(:display_name)
7217
+ @firewall_policy_id = args[:firewall_policy_id] if args.key?(:firewall_policy_id)
7218
+ @name = args[:name] if args.key?(:name)
7219
+ end
7220
+ end
7221
+
7222
+ #
7223
+ class FirewallPolicyList
7224
+ include Google::Apis::Core::Hashable
7225
+
7226
+ # [Output Only] Unique identifier for the resource; defined by the server.
7227
+ # Corresponds to the JSON property `id`
7228
+ # @return [String]
7229
+ attr_accessor :id
7230
+
7231
+ # A list of FirewallPolicy resources.
7232
+ # Corresponds to the JSON property `items`
7233
+ # @return [Array<Google::Apis::ComputeV1::FirewallPolicy>]
7234
+ attr_accessor :items
7235
+
7236
+ # [Output Only] Type of resource. Always compute#firewallPolicyList for listsof
7237
+ # FirewallPolicies
7238
+ # Corresponds to the JSON property `kind`
7239
+ # @return [String]
7240
+ attr_accessor :kind
7241
+
7242
+ # [Output Only] This token allows you to get the next page of results for list
7243
+ # requests. If the number of results is larger than maxResults, use the
7244
+ # nextPageToken as a value for the query parameter pageToken in the next list
7245
+ # request. Subsequent list requests will have their own nextPageToken to
7246
+ # continue paging through the results.
7247
+ # Corresponds to the JSON property `nextPageToken`
7248
+ # @return [String]
7249
+ attr_accessor :next_page_token
7250
+
7251
+ # [Output Only] Informational warning message.
7252
+ # Corresponds to the JSON property `warning`
7253
+ # @return [Google::Apis::ComputeV1::FirewallPolicyList::Warning]
7254
+ attr_accessor :warning
7255
+
7256
+ def initialize(**args)
7257
+ update!(**args)
7258
+ end
7259
+
7260
+ # Update properties of this object
7261
+ def update!(**args)
7262
+ @id = args[:id] if args.key?(:id)
7263
+ @items = args[:items] if args.key?(:items)
7264
+ @kind = args[:kind] if args.key?(:kind)
7265
+ @next_page_token = args[:next_page_token] if args.key?(:next_page_token)
7266
+ @warning = args[:warning] if args.key?(:warning)
7267
+ end
7268
+
7269
+ # [Output Only] Informational warning message.
7270
+ class Warning
7271
+ include Google::Apis::Core::Hashable
7272
+
7273
+ # [Output Only] A warning code, if applicable. For example, Compute Engine
7274
+ # returns NO_RESULTS_ON_PAGE if there are no results in the response.
7275
+ # Corresponds to the JSON property `code`
7276
+ # @return [String]
7277
+ attr_accessor :code
7278
+
7279
+ # [Output Only] Metadata about this warning in key: value format. For example:
7280
+ # "data": [ ` "key": "scope", "value": "zones/us-east1-d" `
7281
+ # Corresponds to the JSON property `data`
7282
+ # @return [Array<Google::Apis::ComputeV1::FirewallPolicyList::Warning::Datum>]
7283
+ attr_accessor :data
7284
+
7285
+ # [Output Only] A human-readable description of the warning code.
7286
+ # Corresponds to the JSON property `message`
7287
+ # @return [String]
7288
+ attr_accessor :message
7289
+
7290
+ def initialize(**args)
7291
+ update!(**args)
7292
+ end
7293
+
7294
+ # Update properties of this object
7295
+ def update!(**args)
7296
+ @code = args[:code] if args.key?(:code)
7297
+ @data = args[:data] if args.key?(:data)
7298
+ @message = args[:message] if args.key?(:message)
7299
+ end
7300
+
7301
+ #
7302
+ class Datum
7303
+ include Google::Apis::Core::Hashable
7304
+
7305
+ # [Output Only] A key that provides more detail on the warning being returned.
7306
+ # For example, for warnings where there are no results in a list request for a
7307
+ # particular zone, this key might be scope and the key value might be the zone
7308
+ # name. Other examples might be a key indicating a deprecated resource and a
7309
+ # suggested replacement, or a warning about invalid network settings (for
7310
+ # example, if an instance attempts to perform IP forwarding but is not enabled
7311
+ # for IP forwarding).
7312
+ # Corresponds to the JSON property `key`
7313
+ # @return [String]
7314
+ attr_accessor :key
7315
+
7316
+ # [Output Only] A warning data value corresponding to the key.
7317
+ # Corresponds to the JSON property `value`
7318
+ # @return [String]
7319
+ attr_accessor :value
7320
+
7321
+ def initialize(**args)
7322
+ update!(**args)
7323
+ end
7324
+
7325
+ # Update properties of this object
7326
+ def update!(**args)
7327
+ @key = args[:key] if args.key?(:key)
7328
+ @value = args[:value] if args.key?(:value)
7329
+ end
7330
+ end
7331
+ end
7332
+ end
7333
+
7334
+ # Represents a rule that describes one or more match conditions along with the
7335
+ # action to be taken when traffic matches this condition (allow or deny).
7336
+ class FirewallPolicyRule
7337
+ include Google::Apis::Core::Hashable
7338
+
7339
+ # The Action to perform when the client connection triggers the rule. Can
7340
+ # currently be either "allow" or "deny()" where valid values for status are 403,
7341
+ # 404, and 502.
7342
+ # Corresponds to the JSON property `action`
7343
+ # @return [String]
7344
+ attr_accessor :action
7345
+
7346
+ # An optional description for this resource.
7347
+ # Corresponds to the JSON property `description`
7348
+ # @return [String]
7349
+ attr_accessor :description
7350
+
7351
+ # The direction in which this rule applies.
7352
+ # Corresponds to the JSON property `direction`
7353
+ # @return [String]
7354
+ attr_accessor :direction
7355
+
7356
+ # Denotes whether the firewall policy rule is disabled. When set to true, the
7357
+ # firewall policy rule is not enforced and traffic behaves as if it did not
7358
+ # exist. If this is unspecified, the firewall policy rule will be enabled.
7359
+ # Corresponds to the JSON property `disabled`
7360
+ # @return [Boolean]
7361
+ attr_accessor :disabled
7362
+ alias_method :disabled?, :disabled
7363
+
7364
+ # Denotes whether to enable logging for a particular rule. If logging is enabled,
7365
+ # logs will be exported to the configured export destination in Stackdriver.
7366
+ # Logs may be exported to BigQuery or Pub/Sub. Note: you cannot enable logging
7367
+ # on "goto_next" rules.
7368
+ # Corresponds to the JSON property `enableLogging`
7369
+ # @return [Boolean]
7370
+ attr_accessor :enable_logging
7371
+ alias_method :enable_logging?, :enable_logging
7372
+
7373
+ # [Output only] Type of the resource. Always compute#firewallPolicyRule for
7374
+ # firewall policy rules
7375
+ # Corresponds to the JSON property `kind`
7376
+ # @return [String]
7377
+ attr_accessor :kind
7378
+
7379
+ # Represents a match condition that incoming traffic is evaluated against.
7380
+ # Exactly one field must be specified.
7381
+ # Corresponds to the JSON property `match`
7382
+ # @return [Google::Apis::ComputeV1::FirewallPolicyRuleMatcher]
7383
+ attr_accessor :match
7384
+
7385
+ # An integer indicating the priority of a rule in the list. The priority must be
7386
+ # a positive value between 0 and 2147483647. Rules are evaluated from highest to
7387
+ # lowest priority where 0 is the highest priority and 2147483647 is the lowest
7388
+ # prority.
7389
+ # Corresponds to the JSON property `priority`
7390
+ # @return [Fixnum]
7391
+ attr_accessor :priority
7392
+
7393
+ # [Output Only] Calculation of the complexity of a single firewall policy rule.
7394
+ # Corresponds to the JSON property `ruleTupleCount`
7395
+ # @return [Fixnum]
7396
+ attr_accessor :rule_tuple_count
7397
+
7398
+ # A list of network resource URLs to which this rule applies. This field allows
7399
+ # you to control which network's VMs get this rule. If this field is left blank,
7400
+ # all VMs within the organization will receive the rule.
7401
+ # Corresponds to the JSON property `targetResources`
7402
+ # @return [Array<String>]
7403
+ attr_accessor :target_resources
7404
+
7405
+ # A list of secure labels that controls which instances the firewall rule
7406
+ # applies to. If targetSecureLabel are specified, then the firewall rule applies
7407
+ # only to instances in the VPC network that have one of those secure labels.
7408
+ # targetSecureLabel may not be set at the same time as targetServiceAccounts. If
7409
+ # neither targetServiceAccounts nor targetSecureLabel are specified, the
7410
+ # firewall rule applies to all instances on the specified network. Maximum
7411
+ # number of target label values allowed is 256.
7412
+ # Corresponds to the JSON property `targetSecureLabels`
7413
+ # @return [Array<String>]
7414
+ attr_accessor :target_secure_labels
7415
+
7416
+ # A list of service accounts indicating the sets of instances that are applied
7417
+ # with this rule.
7418
+ # Corresponds to the JSON property `targetServiceAccounts`
7419
+ # @return [Array<String>]
7420
+ attr_accessor :target_service_accounts
7421
+
7422
+ def initialize(**args)
7423
+ update!(**args)
7424
+ end
7425
+
7426
+ # Update properties of this object
7427
+ def update!(**args)
7428
+ @action = args[:action] if args.key?(:action)
7429
+ @description = args[:description] if args.key?(:description)
7430
+ @direction = args[:direction] if args.key?(:direction)
7431
+ @disabled = args[:disabled] if args.key?(:disabled)
7432
+ @enable_logging = args[:enable_logging] if args.key?(:enable_logging)
7433
+ @kind = args[:kind] if args.key?(:kind)
7434
+ @match = args[:match] if args.key?(:match)
7435
+ @priority = args[:priority] if args.key?(:priority)
7436
+ @rule_tuple_count = args[:rule_tuple_count] if args.key?(:rule_tuple_count)
7437
+ @target_resources = args[:target_resources] if args.key?(:target_resources)
7438
+ @target_secure_labels = args[:target_secure_labels] if args.key?(:target_secure_labels)
7439
+ @target_service_accounts = args[:target_service_accounts] if args.key?(:target_service_accounts)
7440
+ end
7441
+ end
7442
+
7443
+ # Represents a match condition that incoming traffic is evaluated against.
7444
+ # Exactly one field must be specified.
7445
+ class FirewallPolicyRuleMatcher
7446
+ include Google::Apis::Core::Hashable
7447
+
7448
+ # CIDR IP address range. Maximum number of destination CIDR IP ranges allowed is
7449
+ # 256.
7450
+ # Corresponds to the JSON property `destIpRanges`
7451
+ # @return [Array<String>]
7452
+ attr_accessor :dest_ip_ranges
7453
+
7454
+ # Pairs of IP protocols and ports that the rule should match.
7455
+ # Corresponds to the JSON property `layer4Configs`
7456
+ # @return [Array<Google::Apis::ComputeV1::FirewallPolicyRuleMatcherLayer4Config>]
7457
+ attr_accessor :layer4_configs
7458
+
7459
+ # CIDR IP address range. Maximum number of source CIDR IP ranges allowed is 256.
7460
+ # Corresponds to the JSON property `srcIpRanges`
7461
+ # @return [Array<String>]
7462
+ attr_accessor :src_ip_ranges
7463
+
7464
+ # List of firewall label values, which should be matched at the source of the
7465
+ # traffic. Maximum number of source label values allowed is 256.
7466
+ # Corresponds to the JSON property `srcSecureLabels`
7467
+ # @return [Array<String>]
7468
+ attr_accessor :src_secure_labels
7469
+
7470
+ def initialize(**args)
7471
+ update!(**args)
7472
+ end
7473
+
7474
+ # Update properties of this object
7475
+ def update!(**args)
7476
+ @dest_ip_ranges = args[:dest_ip_ranges] if args.key?(:dest_ip_ranges)
7477
+ @layer4_configs = args[:layer4_configs] if args.key?(:layer4_configs)
7478
+ @src_ip_ranges = args[:src_ip_ranges] if args.key?(:src_ip_ranges)
7479
+ @src_secure_labels = args[:src_secure_labels] if args.key?(:src_secure_labels)
7480
+ end
7481
+ end
7482
+
7483
+ #
7484
+ class FirewallPolicyRuleMatcherLayer4Config
7485
+ include Google::Apis::Core::Hashable
7486
+
7487
+ # The IP protocol to which this rule applies. The protocol type is required when
7488
+ # creating a firewall rule. This value can either be one of the following well
7489
+ # known protocol strings (tcp, udp, icmp, esp, ah, ipip, sctp), or the IP
7490
+ # protocol number.
7491
+ # Corresponds to the JSON property `ipProtocol`
7492
+ # @return [String]
7493
+ attr_accessor :ip_protocol
7494
+
7495
+ # An optional list of ports to which this rule applies. This field is only
7496
+ # applicable for UDP or TCP protocol. Each entry must be either an integer or a
7497
+ # range. If not specified, this rule applies to connections through any port.
7498
+ # Example inputs include: ["22"], ["80","443"], and ["12345-12349"].
7499
+ # Corresponds to the JSON property `ports`
7500
+ # @return [Array<String>]
7501
+ attr_accessor :ports
7502
+
7503
+ def initialize(**args)
7504
+ update!(**args)
7505
+ end
7506
+
7507
+ # Update properties of this object
7508
+ def update!(**args)
7509
+ @ip_protocol = args[:ip_protocol] if args.key?(:ip_protocol)
7510
+ @ports = args[:ports] if args.key?(:ports)
7511
+ end
7512
+ end
7513
+
6927
7514
  # Encapsulates numeric value that can be either absolute or relative.
6928
7515
  class FixedOrPercent
6929
7516
  include Google::Apis::Core::Hashable
@@ -7100,6 +7687,26 @@ module Google
7100
7687
  # @return [String]
7101
7688
  attr_accessor :kind
7102
7689
 
7690
+ # A fingerprint for the labels being applied to this resource, which is
7691
+ # essentially a hash of the labels set used for optimistic locking. The
7692
+ # fingerprint is initially generated by Compute Engine and changes after every
7693
+ # request to modify or update labels. You must always provide an up-to-date
7694
+ # fingerprint hash in order to update or change labels, otherwise the request
7695
+ # will fail with error 412 conditionNotMet.
7696
+ # To see the latest fingerprint, make a get() request to retrieve a
7697
+ # ForwardingRule.
7698
+ # Corresponds to the JSON property `labelFingerprint`
7699
+ # NOTE: Values are automatically base64 encoded/decoded in the client library.
7700
+ # @return [String]
7701
+ attr_accessor :label_fingerprint
7702
+
7703
+ # Labels for this resource. These can only be added or modified by the setLabels
7704
+ # method. Each label key/value pair must comply with RFC1035. Label values may
7705
+ # be empty.
7706
+ # Corresponds to the JSON property `labels`
7707
+ # @return [Hash<String,String>]
7708
+ attr_accessor :labels
7709
+
7103
7710
  # Specifies the forwarding rule type.
7104
7711
  #
7105
7712
  # - EXTERNAL is used for:
@@ -7203,6 +7810,11 @@ module Google
7203
7810
  # @return [Array<String>]
7204
7811
  attr_accessor :ports
7205
7812
 
7813
+ # [Output Only] The PSC connection id of the PSC Forwarding Rule.
7814
+ # Corresponds to the JSON property `pscConnectionId`
7815
+ # @return [Fixnum]
7816
+ attr_accessor :psc_connection_id
7817
+
7206
7818
  # [Output Only] URL of the region where the regional forwarding rule resides.
7207
7819
  # This field is not applicable to global forwarding rules. You must specify this
7208
7820
  # field as part of the HTTP request URL. It is not settable as a field in the
@@ -7216,6 +7828,14 @@ module Google
7216
7828
  # @return [String]
7217
7829
  attr_accessor :self_link
7218
7830
 
7831
+ # Service Directory resources to register this forwarding rule with. Currently,
7832
+ # only supports a single Service Directory resource.
7833
+ # It is only supported for Internal TCP/UDP Load Balancing and Internal HTTP(S)
7834
+ # Load Balancing.
7835
+ # Corresponds to the JSON property `serviceDirectoryRegistrations`
7836
+ # @return [Array<Google::Apis::ComputeV1::ForwardingRuleServiceDirectoryRegistration>]
7837
+ attr_accessor :service_directory_registrations
7838
+
7219
7839
  # An optional prefix to the service name for this Forwarding Rule. If specified,
7220
7840
  # the prefix is the first label of the fully qualified service name.
7221
7841
  # The label must be 1-63 characters long, and comply with RFC1035. Specifically,
@@ -7245,21 +7865,7 @@ module Google
7245
7865
  # @return [String]
7246
7866
  attr_accessor :subnetwork
7247
7867
 
7248
- # The URL of the target resource to receive the matched traffic. For regional
7249
- # forwarding rules, this target must be in the same region as the forwarding
7250
- # rule. For global forwarding rules, this target must be a global load balancing
7251
- # resource. The forwarded traffic must be of a type appropriate to the target
7252
- # object. For more information, see the "Target" column in [Port specifications](
7253
- # /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
7868
  #
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
7869
  # Corresponds to the JSON property `target`
7264
7870
  # @return [String]
7265
7871
  attr_accessor :target
@@ -7282,6 +7888,8 @@ module Google
7282
7888
  @ip_version = args[:ip_version] if args.key?(:ip_version)
7283
7889
  @is_mirroring_collector = args[:is_mirroring_collector] if args.key?(:is_mirroring_collector)
7284
7890
  @kind = args[:kind] if args.key?(:kind)
7891
+ @label_fingerprint = args[:label_fingerprint] if args.key?(:label_fingerprint)
7892
+ @labels = args[:labels] if args.key?(:labels)
7285
7893
  @load_balancing_scheme = args[:load_balancing_scheme] if args.key?(:load_balancing_scheme)
7286
7894
  @metadata_filters = args[:metadata_filters] if args.key?(:metadata_filters)
7287
7895
  @name = args[:name] if args.key?(:name)
@@ -7289,8 +7897,10 @@ module Google
7289
7897
  @network_tier = args[:network_tier] if args.key?(:network_tier)
7290
7898
  @port_range = args[:port_range] if args.key?(:port_range)
7291
7899
  @ports = args[:ports] if args.key?(:ports)
7900
+ @psc_connection_id = args[:psc_connection_id] if args.key?(:psc_connection_id)
7292
7901
  @region = args[:region] if args.key?(:region)
7293
7902
  @self_link = args[:self_link] if args.key?(:self_link)
7903
+ @service_directory_registrations = args[:service_directory_registrations] if args.key?(:service_directory_registrations)
7294
7904
  @service_label = args[:service_label] if args.key?(:service_label)
7295
7905
  @service_name = args[:service_name] if args.key?(:service_name)
7296
7906
  @subnetwork = args[:subnetwork] if args.key?(:subnetwork)
@@ -7558,6 +8168,42 @@ module Google
7558
8168
  end
7559
8169
  end
7560
8170
 
8171
+ # Describes the auto-registration of the Forwarding Rule to Service Directory.
8172
+ # The region and project of the Service Directory resource generated from this
8173
+ # registration will be the same as this Forwarding Rule.
8174
+ class ForwardingRuleServiceDirectoryRegistration
8175
+ include Google::Apis::Core::Hashable
8176
+
8177
+ # Service Directory namespace to register the forwarding rule under.
8178
+ # Corresponds to the JSON property `namespace`
8179
+ # @return [String]
8180
+ attr_accessor :namespace
8181
+
8182
+ # Service Directory service to register the forwarding rule under.
8183
+ # Corresponds to the JSON property `service`
8184
+ # @return [String]
8185
+ attr_accessor :service
8186
+
8187
+ # [Optional] Service Directory region to register this global forwarding rule
8188
+ # under. Default to "us-central1". Only used for PSC for Google APIs. All PSC
8189
+ # for Google APIs Forwarding Rules on the same network should use the same
8190
+ # Service Directory region.
8191
+ # Corresponds to the JSON property `serviceDirectoryRegion`
8192
+ # @return [String]
8193
+ attr_accessor :service_directory_region
8194
+
8195
+ def initialize(**args)
8196
+ update!(**args)
8197
+ end
8198
+
8199
+ # Update properties of this object
8200
+ def update!(**args)
8201
+ @namespace = args[:namespace] if args.key?(:namespace)
8202
+ @service = args[:service] if args.key?(:service)
8203
+ @service_directory_region = args[:service_directory_region] if args.key?(:service_directory_region)
8204
+ end
8205
+ end
8206
+
7561
8207
  #
7562
8208
  class ForwardingRulesScopedList
7563
8209
  include Google::Apis::Core::Hashable
@@ -7741,6 +8387,69 @@ module Google
7741
8387
  end
7742
8388
  end
7743
8389
 
8390
+ #
8391
+ class GlobalOrganizationSetPolicyRequest
8392
+ include Google::Apis::Core::Hashable
8393
+
8394
+ # Flatten Policy to create a backward compatible wire-format. Deprecated. Use '
8395
+ # policy' to specify bindings.
8396
+ # Corresponds to the JSON property `bindings`
8397
+ # @return [Array<Google::Apis::ComputeV1::Binding>]
8398
+ attr_accessor :bindings
8399
+
8400
+ # Flatten Policy to create a backward compatible wire-format. Deprecated. Use '
8401
+ # policy' to specify the etag.
8402
+ # Corresponds to the JSON property `etag`
8403
+ # NOTE: Values are automatically base64 encoded/decoded in the client library.
8404
+ # @return [String]
8405
+ attr_accessor :etag
8406
+
8407
+ # An Identity and Access Management (IAM) policy, which specifies access
8408
+ # controls for Google Cloud resources.
8409
+ # A `Policy` is a collection of `bindings`. A `binding` binds one or more `
8410
+ # members` to a single `role`. Members can be user accounts, service accounts,
8411
+ # Google groups, and domains (such as G Suite). A `role` is a named list of
8412
+ # permissions; each `role` can be an IAM predefined role or a user-created
8413
+ # custom role.
8414
+ # For some types of Google Cloud resources, a `binding` can also specify a `
8415
+ # condition`, which is a logical expression that allows access to a resource
8416
+ # only if the expression evaluates to `true`. A condition can add constraints
8417
+ # based on attributes of the request, the resource, or both. To learn which
8418
+ # resources support conditions in their IAM policies, see the [IAM documentation]
8419
+ # (https://cloud.google.com/iam/help/conditions/resource-policies).
8420
+ # **JSON example:**
8421
+ # ` "bindings": [ ` "role": "roles/resourcemanager.organizationAdmin", "members":
8422
+ # [ "user:mike@example.com", "group:admins@example.com", "domain:google.com", "
8423
+ # serviceAccount:my-project-id@appspot.gserviceaccount.com" ] `, ` "role": "
8424
+ # roles/resourcemanager.organizationViewer", "members": [ "user:eve@example.com"
8425
+ # ], "condition": ` "title": "expirable access", "description": "Does not grant
8426
+ # access after Sep 2020", "expression": "request.time < timestamp('2020-10-01T00:
8427
+ # 00:00.000Z')", ` ` ], "etag": "BwWWja0YfJA=", "version": 3 `
8428
+ # **YAML example:**
8429
+ # bindings: - members: - user:mike@example.com - group:admins@example.com -
8430
+ # domain:google.com - serviceAccount:my-project-id@appspot.gserviceaccount.com
8431
+ # role: roles/resourcemanager.organizationAdmin - members: - user:eve@example.
8432
+ # com role: roles/resourcemanager.organizationViewer condition: title: expirable
8433
+ # access description: Does not grant access after Sep 2020 expression: request.
8434
+ # time < timestamp('2020-10-01T00:00:00.000Z') - etag: BwWWja0YfJA= - version: 3
8435
+ # For a description of IAM and its features, see the [IAM documentation](https://
8436
+ # cloud.google.com/iam/docs/).
8437
+ # Corresponds to the JSON property `policy`
8438
+ # @return [Google::Apis::ComputeV1::Policy]
8439
+ attr_accessor :policy
8440
+
8441
+ def initialize(**args)
8442
+ update!(**args)
8443
+ end
8444
+
8445
+ # Update properties of this object
8446
+ def update!(**args)
8447
+ @bindings = args[:bindings] if args.key?(:bindings)
8448
+ @etag = args[:etag] if args.key?(:etag)
8449
+ @policy = args[:policy] if args.key?(:policy)
8450
+ end
8451
+ end
8452
+
7744
8453
  #
7745
8454
  class GlobalSetLabelsRequest
7746
8455
  include Google::Apis::Core::Hashable
@@ -8249,11 +8958,12 @@ module Google
8249
8958
  attr_accessor :log_config
8250
8959
 
8251
8960
  # Name of the resource. Provided by the client when the resource is created. The
8252
- # name must be 1-63 characters long, and comply with RFC1035. Specifically, the
8253
- # name must be 1-63 characters long and match the regular expression `[a-z]([-a-
8254
- # z0-9]*[a-z0-9])?` which means the first character must be a lowercase letter,
8255
- # and all following characters must be a dash, lowercase letter, or digit,
8256
- # except the last character, which cannot be a dash.
8961
+ # name must be 1-63 characters long, and comply with RFC1035. For example, a
8962
+ # name that is 1-63 characters long, matches the regular expression `[a-z]([-a-
8963
+ # z0-9]*[a-z0-9])?`, and otherwise complies with RFC1035. This regular
8964
+ # expression describes a name where the first character is a lowercase letter,
8965
+ # and all following characters are a dash, lowercase letter, or digit, except
8966
+ # the last character, which isn't a dash.
8257
8967
  # Corresponds to the JSON property `name`
8258
8968
  # @return [String]
8259
8969
  attr_accessor :name
@@ -8987,7 +9697,9 @@ module Google
8987
9697
  # @return [String]
8988
9698
  attr_accessor :instance
8989
9699
 
8990
- # A forwarding rule IP address assigned to this instance.
9700
+ # For target pool based Network Load Balancing, it indicates the forwarding rule'
9701
+ # s IP address assigned to this instance. For other types of load balancing, the
9702
+ # field indicates VM internal ip.
8991
9703
  # Corresponds to the JSON property `ipAddress`
8992
9704
  # @return [String]
8993
9705
  attr_accessor :ip_address
@@ -9309,8 +10021,8 @@ module Google
9309
10021
  attr_accessor :range_match
9310
10022
 
9311
10023
  # 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
10024
+ # regexMatch. For regular expression grammar, please see: github.com/google/re2/
10025
+ # wiki/Syntax
9314
10026
  # For matching against a port specified in the HTTP request, use a headerMatch
9315
10027
  # with headerName set to PORT and a regular expression that satisfies the
9316
10028
  # RFC2616 Host header's port specifier.
@@ -9633,7 +10345,7 @@ module Google
9633
10345
 
9634
10346
  # The queryParameterMatch matches if the value of the parameter matches the
9635
10347
  # regular expression specified by regexMatch. For the regular expression grammar,
9636
- # please see en.cppreference.com/w/cpp/regex/ecmascript
10348
+ # please see github.com/google/re2/wiki/Syntax
9637
10349
  # Only one of presentMatch, exactMatch or regexMatch must be set.
9638
10350
  # Note that regexMatch only applies when the loadBalancingScheme is set to
9639
10351
  # INTERNAL_SELF_MANAGED.
@@ -10023,7 +10735,7 @@ module Google
10023
10735
  # For satisfying the matchRule condition, the path of the request must satisfy
10024
10736
  # the regular expression specified in regexMatch after removing any query
10025
10737
  # parameters and anchor supplied with the original URL. For regular expression
10026
- # grammar please see en.cppreference.com/w/cpp/regex/ecmascript
10738
+ # grammar please see github.com/google/re2/wiki/Syntax
10027
10739
  # Only one of prefixMatch, fullPathMatch or regexMatch must be specified.
10028
10740
  # Note that regexMatch only applies to Loadbalancers that have their
10029
10741
  # loadBalancingScheme set to INTERNAL_SELF_MANAGED.
@@ -10384,6 +11096,12 @@ module Google
10384
11096
  # @return [Google::Apis::ComputeV1::Image::RawDisk]
10385
11097
  attr_accessor :raw_disk
10386
11098
 
11099
+ # [Output Only] Reserved for future use.
11100
+ # Corresponds to the JSON property `satisfiesPzs`
11101
+ # @return [Boolean]
11102
+ attr_accessor :satisfies_pzs
11103
+ alias_method :satisfies_pzs?, :satisfies_pzs
11104
+
10387
11105
  # [Output Only] Server-defined URL for the resource.
10388
11106
  # Corresponds to the JSON property `selfLink`
10389
11107
  # @return [String]
@@ -10510,6 +11228,7 @@ module Google
10510
11228
  @licenses = args[:licenses] if args.key?(:licenses)
10511
11229
  @name = args[:name] if args.key?(:name)
10512
11230
  @raw_disk = args[:raw_disk] if args.key?(:raw_disk)
11231
+ @satisfies_pzs = args[:satisfies_pzs] if args.key?(:satisfies_pzs)
10513
11232
  @self_link = args[:self_link] if args.key?(:self_link)
10514
11233
  @shielded_instance_initial_state = args[:shielded_instance_initial_state] if args.key?(:shielded_instance_initial_state)
10515
11234
  @source_disk = args[:source_disk] if args.key?(:source_disk)
@@ -10724,6 +11443,15 @@ module Google
10724
11443
  class Instance
10725
11444
  include Google::Apis::Core::Hashable
10726
11445
 
11446
+ # Specifies options for controlling advanced machine features. Options that
11447
+ # would traditionally be configured in a BIOS belong here. Features that require
11448
+ # operating system support may have corresponding entries in the GuestOsFeatures
11449
+ # of an Image (e.g., whether or not the OS in the Image supports nested
11450
+ # virtualization being enabled or disabled).
11451
+ # Corresponds to the JSON property `advancedMachineFeatures`
11452
+ # @return [Google::Apis::ComputeV1::AdvancedMachineFeatures]
11453
+ attr_accessor :advanced_machine_features
11454
+
10727
11455
  # Allows this instance to send and receive packets with non-matching destination
10728
11456
  # or source IPs. This is required if you plan to use this instance to forward
10729
11457
  # routes. For more information, see Enabling IP Forwarding.
@@ -10884,6 +11612,11 @@ module Google
10884
11612
  # @return [Array<Google::Apis::ComputeV1::NetworkInterface>]
10885
11613
  attr_accessor :network_interfaces
10886
11614
 
11615
+ # PostKeyRevocationActionType of the instance.
11616
+ # Corresponds to the JSON property `postKeyRevocationActionType`
11617
+ # @return [String]
11618
+ attr_accessor :post_key_revocation_action_type
11619
+
10887
11620
  # The private IPv6 google access type for the VM. If not specified, use
10888
11621
  # INHERIT_FROM_SUBNETWORK as default.
10889
11622
  # Corresponds to the JSON property `privateIpv6GoogleAccess`
@@ -10900,7 +11633,13 @@ module Google
10900
11633
  # @return [Array<String>]
10901
11634
  attr_accessor :resource_policies
10902
11635
 
10903
- # Sets the scheduling options for an Instance. NextID: 13
11636
+ # [Output Only] Reserved for future use.
11637
+ # Corresponds to the JSON property `satisfiesPzs`
11638
+ # @return [Boolean]
11639
+ attr_accessor :satisfies_pzs
11640
+ alias_method :satisfies_pzs?, :satisfies_pzs
11641
+
11642
+ # Sets the scheduling options for an Instance. NextID: 17
10904
11643
  # Corresponds to the JSON property `scheduling`
10905
11644
  # @return [Google::Apis::ComputeV1::Scheduling]
10906
11645
  attr_accessor :scheduling
@@ -10968,6 +11707,7 @@ module Google
10968
11707
 
10969
11708
  # Update properties of this object
10970
11709
  def update!(**args)
11710
+ @advanced_machine_features = args[:advanced_machine_features] if args.key?(:advanced_machine_features)
10971
11711
  @can_ip_forward = args[:can_ip_forward] if args.key?(:can_ip_forward)
10972
11712
  @confidential_instance_config = args[:confidential_instance_config] if args.key?(:confidential_instance_config)
10973
11713
  @cpu_platform = args[:cpu_platform] if args.key?(:cpu_platform)
@@ -10991,9 +11731,11 @@ module Google
10991
11731
  @min_cpu_platform = args[:min_cpu_platform] if args.key?(:min_cpu_platform)
10992
11732
  @name = args[:name] if args.key?(:name)
10993
11733
  @network_interfaces = args[:network_interfaces] if args.key?(:network_interfaces)
11734
+ @post_key_revocation_action_type = args[:post_key_revocation_action_type] if args.key?(:post_key_revocation_action_type)
10994
11735
  @private_ipv6_google_access = args[:private_ipv6_google_access] if args.key?(:private_ipv6_google_access)
10995
11736
  @reservation_affinity = args[:reservation_affinity] if args.key?(:reservation_affinity)
10996
11737
  @resource_policies = args[:resource_policies] if args.key?(:resource_policies)
11738
+ @satisfies_pzs = args[:satisfies_pzs] if args.key?(:satisfies_pzs)
10997
11739
  @scheduling = args[:scheduling] if args.key?(:scheduling)
10998
11740
  @self_link = args[:self_link] if args.key?(:self_link)
10999
11741
  @service_accounts = args[:service_accounts] if args.key?(:service_accounts)
@@ -13430,6 +14172,15 @@ module Google
13430
14172
  class InstanceProperties
13431
14173
  include Google::Apis::Core::Hashable
13432
14174
 
14175
+ # Specifies options for controlling advanced machine features. Options that
14176
+ # would traditionally be configured in a BIOS belong here. Features that require
14177
+ # operating system support may have corresponding entries in the GuestOsFeatures
14178
+ # of an Image (e.g., whether or not the OS in the Image supports nested
14179
+ # virtualization being enabled or disabled).
14180
+ # Corresponds to the JSON property `advancedMachineFeatures`
14181
+ # @return [Google::Apis::ComputeV1::AdvancedMachineFeatures]
14182
+ attr_accessor :advanced_machine_features
14183
+
13433
14184
  # Enables instances created based on these properties to send packets with
13434
14185
  # source IP addresses other than their own and receive packets with destination
13435
14186
  # IP addresses other than their own. If these instances will be used as an IP
@@ -13493,6 +14244,11 @@ module Google
13493
14244
  # @return [Array<Google::Apis::ComputeV1::NetworkInterface>]
13494
14245
  attr_accessor :network_interfaces
13495
14246
 
14247
+ # PostKeyRevocationActionType of the instance.
14248
+ # Corresponds to the JSON property `postKeyRevocationActionType`
14249
+ # @return [String]
14250
+ attr_accessor :post_key_revocation_action_type
14251
+
13496
14252
  # The private IPv6 google access type for VMs. If not specified, use
13497
14253
  # INHERIT_FROM_SUBNETWORK as default.
13498
14254
  # Corresponds to the JSON property `privateIpv6GoogleAccess`
@@ -13510,7 +14266,7 @@ module Google
13510
14266
  # @return [Array<String>]
13511
14267
  attr_accessor :resource_policies
13512
14268
 
13513
- # Sets the scheduling options for an Instance. NextID: 13
14269
+ # Sets the scheduling options for an Instance. NextID: 17
13514
14270
  # Corresponds to the JSON property `scheduling`
13515
14271
  # @return [Google::Apis::ComputeV1::Scheduling]
13516
14272
  attr_accessor :scheduling
@@ -13539,6 +14295,7 @@ module Google
13539
14295
 
13540
14296
  # Update properties of this object
13541
14297
  def update!(**args)
14298
+ @advanced_machine_features = args[:advanced_machine_features] if args.key?(:advanced_machine_features)
13542
14299
  @can_ip_forward = args[:can_ip_forward] if args.key?(:can_ip_forward)
13543
14300
  @confidential_instance_config = args[:confidential_instance_config] if args.key?(:confidential_instance_config)
13544
14301
  @description = args[:description] if args.key?(:description)
@@ -13549,6 +14306,7 @@ module Google
13549
14306
  @metadata = args[:metadata] if args.key?(:metadata)
13550
14307
  @min_cpu_platform = args[:min_cpu_platform] if args.key?(:min_cpu_platform)
13551
14308
  @network_interfaces = args[:network_interfaces] if args.key?(:network_interfaces)
14309
+ @post_key_revocation_action_type = args[:post_key_revocation_action_type] if args.key?(:post_key_revocation_action_type)
13552
14310
  @private_ipv6_google_access = args[:private_ipv6_google_access] if args.key?(:private_ipv6_google_access)
13553
14311
  @reservation_affinity = args[:reservation_affinity] if args.key?(:reservation_affinity)
13554
14312
  @resource_policies = args[:resource_policies] if args.key?(:resource_policies)
@@ -13831,6 +14589,68 @@ module Google
13831
14589
  end
13832
14590
  end
13833
14591
 
14592
+ #
14593
+ class InstancesGetEffectiveFirewallsResponse
14594
+ include Google::Apis::Core::Hashable
14595
+
14596
+ # Effective firewalls from firewall policies.
14597
+ # Corresponds to the JSON property `firewallPolicys`
14598
+ # @return [Array<Google::Apis::ComputeV1::InstancesGetEffectiveFirewallsResponseEffectiveFirewallPolicy>]
14599
+ attr_accessor :firewall_policys
14600
+
14601
+ # Effective firewalls on the instance.
14602
+ # Corresponds to the JSON property `firewalls`
14603
+ # @return [Array<Google::Apis::ComputeV1::Firewall>]
14604
+ attr_accessor :firewalls
14605
+
14606
+ def initialize(**args)
14607
+ update!(**args)
14608
+ end
14609
+
14610
+ # Update properties of this object
14611
+ def update!(**args)
14612
+ @firewall_policys = args[:firewall_policys] if args.key?(:firewall_policys)
14613
+ @firewalls = args[:firewalls] if args.key?(:firewalls)
14614
+ end
14615
+ end
14616
+
14617
+ #
14618
+ class InstancesGetEffectiveFirewallsResponseEffectiveFirewallPolicy
14619
+ include Google::Apis::Core::Hashable
14620
+
14621
+ # [Output Only] The display name of the firewall policy.
14622
+ # Corresponds to the JSON property `displayName`
14623
+ # @return [String]
14624
+ attr_accessor :display_name
14625
+
14626
+ # [Output Only] The name of the firewall policy.
14627
+ # Corresponds to the JSON property `name`
14628
+ # @return [String]
14629
+ attr_accessor :name
14630
+
14631
+ # The rules that apply to the network.
14632
+ # Corresponds to the JSON property `rules`
14633
+ # @return [Array<Google::Apis::ComputeV1::FirewallPolicyRule>]
14634
+ attr_accessor :rules
14635
+
14636
+ # [Output Only] The type of the firewall policy.
14637
+ # Corresponds to the JSON property `type`
14638
+ # @return [String]
14639
+ attr_accessor :type
14640
+
14641
+ def initialize(**args)
14642
+ update!(**args)
14643
+ end
14644
+
14645
+ # Update properties of this object
14646
+ def update!(**args)
14647
+ @display_name = args[:display_name] if args.key?(:display_name)
14648
+ @name = args[:name] if args.key?(:name)
14649
+ @rules = args[:rules] if args.key?(:rules)
14650
+ @type = args[:type] if args.key?(:type)
14651
+ end
14652
+ end
14653
+
13834
14654
  #
13835
14655
  class InstancesRemoveResourcePoliciesRequest
13836
14656
  include Google::Apis::Core::Hashable
@@ -16043,6 +16863,47 @@ module Google
16043
16863
  end
16044
16864
  end
16045
16865
 
16866
+ # Configuration for location policy among multiple possible locations (e.g.
16867
+ # preferences for zone selection among zones in a single region).
16868
+ class LocationPolicy
16869
+ include Google::Apis::Core::Hashable
16870
+
16871
+ # Location configurations mapped by location name. Currently only zone names are
16872
+ # supported and must be represented as valid internal URLs, like: zones/us-
16873
+ # central1-a.
16874
+ # Corresponds to the JSON property `locations`
16875
+ # @return [Hash<String,Google::Apis::ComputeV1::LocationPolicyLocation>]
16876
+ attr_accessor :locations
16877
+
16878
+ def initialize(**args)
16879
+ update!(**args)
16880
+ end
16881
+
16882
+ # Update properties of this object
16883
+ def update!(**args)
16884
+ @locations = args[:locations] if args.key?(:locations)
16885
+ end
16886
+ end
16887
+
16888
+ #
16889
+ class LocationPolicyLocation
16890
+ include Google::Apis::Core::Hashable
16891
+
16892
+ #
16893
+ # Corresponds to the JSON property `preference`
16894
+ # @return [String]
16895
+ attr_accessor :preference
16896
+
16897
+ def initialize(**args)
16898
+ update!(**args)
16899
+ end
16900
+
16901
+ # Update properties of this object
16902
+ def update!(**args)
16903
+ @preference = args[:preference] if args.key?(:preference)
16904
+ end
16905
+ end
16906
+
16046
16907
  # Specifies what kind of log the caller must write
16047
16908
  class LogConfig
16048
16909
  include Google::Apis::Core::Hashable
@@ -17233,9 +18094,8 @@ module Google
17233
18094
  # @return [String]
17234
18095
  attr_accessor :ip_address
17235
18096
 
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.
18097
+ # Optional port number of network endpoint. If not specified, the defaultPort
18098
+ # for the network endpoint group will be used.
17239
18099
  # Corresponds to the JSON property `port`
17240
18100
  # @return [Fixnum]
17241
18101
  attr_accessor :port
@@ -18082,8 +18942,9 @@ module Google
18082
18942
 
18083
18943
  # Fingerprint hash of contents stored in this network interface. This field will
18084
18944
  # be ignored when inserting an Instance or adding a NetworkInterface. An up-to-
18085
- # date fingerprint must be provided in order to update the NetworkInterface,
18086
- # otherwise the request will fail with error 412 conditionNotMet.
18945
+ # date fingerprint must be provided in order to update the NetworkInterface. The
18946
+ # request will fail with error 400 Bad Request if the fingerprint is not
18947
+ # provided, or 412 Precondition Failed if the fingerprint is out of date.
18087
18948
  # Corresponds to the JSON property `fingerprint`
18088
18949
  # NOTE: Values are automatically base64 encoded/decoded in the client library.
18089
18950
  # @return [String]
@@ -18462,6 +19323,68 @@ module Google
18462
19323
  end
18463
19324
  end
18464
19325
 
19326
+ #
19327
+ class NetworksGetEffectiveFirewallsResponse
19328
+ include Google::Apis::Core::Hashable
19329
+
19330
+ # Effective firewalls from firewall policy.
19331
+ # Corresponds to the JSON property `firewallPolicys`
19332
+ # @return [Array<Google::Apis::ComputeV1::NetworksGetEffectiveFirewallsResponseEffectiveFirewallPolicy>]
19333
+ attr_accessor :firewall_policys
19334
+
19335
+ # Effective firewalls on the network.
19336
+ # Corresponds to the JSON property `firewalls`
19337
+ # @return [Array<Google::Apis::ComputeV1::Firewall>]
19338
+ attr_accessor :firewalls
19339
+
19340
+ def initialize(**args)
19341
+ update!(**args)
19342
+ end
19343
+
19344
+ # Update properties of this object
19345
+ def update!(**args)
19346
+ @firewall_policys = args[:firewall_policys] if args.key?(:firewall_policys)
19347
+ @firewalls = args[:firewalls] if args.key?(:firewalls)
19348
+ end
19349
+ end
19350
+
19351
+ #
19352
+ class NetworksGetEffectiveFirewallsResponseEffectiveFirewallPolicy
19353
+ include Google::Apis::Core::Hashable
19354
+
19355
+ # [Output Only] The display name of the firewall policy.
19356
+ # Corresponds to the JSON property `displayName`
19357
+ # @return [String]
19358
+ attr_accessor :display_name
19359
+
19360
+ # [Output Only] The name of the firewall policy.
19361
+ # Corresponds to the JSON property `name`
19362
+ # @return [String]
19363
+ attr_accessor :name
19364
+
19365
+ # The rules that apply to the network.
19366
+ # Corresponds to the JSON property `rules`
19367
+ # @return [Array<Google::Apis::ComputeV1::FirewallPolicyRule>]
19368
+ attr_accessor :rules
19369
+
19370
+ # [Output Only] The type of the firewall policy.
19371
+ # Corresponds to the JSON property `type`
19372
+ # @return [String]
19373
+ attr_accessor :type
19374
+
19375
+ def initialize(**args)
19376
+ update!(**args)
19377
+ end
19378
+
19379
+ # Update properties of this object
19380
+ def update!(**args)
19381
+ @display_name = args[:display_name] if args.key?(:display_name)
19382
+ @name = args[:name] if args.key?(:name)
19383
+ @rules = args[:rules] if args.key?(:rules)
19384
+ @type = args[:type] if args.key?(:type)
19385
+ end
19386
+ end
19387
+
18465
19388
  #
18466
19389
  class NetworksRemovePeeringRequest
18467
19390
  include Google::Apis::Core::Hashable
@@ -18545,6 +19468,13 @@ module Google
18545
19468
  # @return [String]
18546
19469
  attr_accessor :kind
18547
19470
 
19471
+ # An opaque location hint used to place the Node close to other resources. This
19472
+ # field is for use by internal tools that use the public API. The location hint
19473
+ # here on the NodeGroup overrides any location_hint present in the NodeTemplate.
19474
+ # Corresponds to the JSON property `locationHint`
19475
+ # @return [String]
19476
+ attr_accessor :location_hint
19477
+
18548
19478
  # Specifies how to handle instances when a node in the group undergoes
18549
19479
  # maintenance. Set to one of: DEFAULT, RESTART_IN_PLACE, or
18550
19480
  # MIGRATE_WITHIN_NODE_GROUP. The default value is DEFAULT. For more information,
@@ -18608,6 +19538,7 @@ module Google
18608
19538
  @fingerprint = args[:fingerprint] if args.key?(:fingerprint)
18609
19539
  @id = args[:id] if args.key?(:id)
18610
19540
  @kind = args[:kind] if args.key?(:kind)
19541
+ @location_hint = args[:location_hint] if args.key?(:location_hint)
18611
19542
  @maintenance_policy = args[:maintenance_policy] if args.key?(:maintenance_policy)
18612
19543
  @maintenance_window = args[:maintenance_window] if args.key?(:maintenance_window)
18613
19544
  @name = args[:name] if args.key?(:name)
@@ -18959,6 +19890,12 @@ module Google
18959
19890
  # @return [String]
18960
19891
  attr_accessor :node_type
18961
19892
 
19893
+ # [Output Only] Reserved for future use.
19894
+ # Corresponds to the JSON property `satisfiesPzs`
19895
+ # @return [Boolean]
19896
+ attr_accessor :satisfies_pzs
19897
+ alias_method :satisfies_pzs?, :satisfies_pzs
19898
+
18962
19899
  # Binding properties for the physical server.
18963
19900
  # Corresponds to the JSON property `serverBinding`
18964
19901
  # @return [Google::Apis::ComputeV1::ServerBinding]
@@ -18986,6 +19923,7 @@ module Google
18986
19923
  @instances = args[:instances] if args.key?(:instances)
18987
19924
  @name = args[:name] if args.key?(:name)
18988
19925
  @node_type = args[:node_type] if args.key?(:node_type)
19926
+ @satisfies_pzs = args[:satisfies_pzs] if args.key?(:satisfies_pzs)
18989
19927
  @server_binding = args[:server_binding] if args.key?(:server_binding)
18990
19928
  @server_id = args[:server_id] if args.key?(:server_id)
18991
19929
  @status = args[:status] if args.key?(:status)
@@ -20512,6 +21450,12 @@ module Google
20512
21450
  # @return [String]
20513
21451
  attr_accessor :name
20514
21452
 
21453
+ # [Output Only] An ID that represents a group of operations, such as when a
21454
+ # group of operations results from a `bulkInsert` API request.
21455
+ # Corresponds to the JSON property `operationGroupId`
21456
+ # @return [String]
21457
+ attr_accessor :operation_group_id
21458
+
20515
21459
  # [Output Only] The type of operation, such as `insert`, `update`, or `delete`,
20516
21460
  # and so on.
20517
21461
  # Corresponds to the JSON property `operationType`
@@ -20603,6 +21547,7 @@ module Google
20603
21547
  @insert_time = args[:insert_time] if args.key?(:insert_time)
20604
21548
  @kind = args[:kind] if args.key?(:kind)
20605
21549
  @name = args[:name] if args.key?(:name)
21550
+ @operation_group_id = args[:operation_group_id] if args.key?(:operation_group_id)
20606
21551
  @operation_type = args[:operation_type] if args.key?(:operation_type)
20607
21552
  @progress = args[:progress] if args.key?(:progress)
20608
21553
  @region = args[:region] if args.key?(:region)
@@ -22548,6 +23493,12 @@ module Google
22548
23493
  # @return [String]
22549
23494
  attr_accessor :status
22550
23495
 
23496
+ # [Output Only] Reserved for future use.
23497
+ # Corresponds to the JSON property `supportsPzs`
23498
+ # @return [Boolean]
23499
+ attr_accessor :supports_pzs
23500
+ alias_method :supports_pzs?, :supports_pzs
23501
+
22551
23502
  # [Output Only] A list of zones available in this region, in the form of
22552
23503
  # resource URLs.
22553
23504
  # Corresponds to the JSON property `zones`
@@ -22569,6 +23520,7 @@ module Google
22569
23520
  @quotas = args[:quotas] if args.key?(:quotas)
22570
23521
  @self_link = args[:self_link] if args.key?(:self_link)
22571
23522
  @status = args[:status] if args.key?(:status)
23523
+ @supports_pzs = args[:supports_pzs] if args.key?(:supports_pzs)
22572
23524
  @zones = args[:zones] if args.key?(:zones)
22573
23525
  end
22574
23526
  end
@@ -24013,6 +24965,12 @@ module Google
24013
24965
  # @return [String]
24014
24966
  attr_accessor :name
24015
24967
 
24968
+ # [Output Only] Reserved for future use.
24969
+ # Corresponds to the JSON property `satisfiesPzs`
24970
+ # @return [Boolean]
24971
+ attr_accessor :satisfies_pzs
24972
+ alias_method :satisfies_pzs?, :satisfies_pzs
24973
+
24016
24974
  # [Output Only] Server-defined fully-qualified URL for this resource.
24017
24975
  # Corresponds to the JSON property `selfLink`
24018
24976
  # @return [String]
@@ -24054,6 +25012,7 @@ module Google
24054
25012
  @id = args[:id] if args.key?(:id)
24055
25013
  @kind = args[:kind] if args.key?(:kind)
24056
25014
  @name = args[:name] if args.key?(:name)
25015
+ @satisfies_pzs = args[:satisfies_pzs] if args.key?(:satisfies_pzs)
24057
25016
  @self_link = args[:self_link] if args.key?(:self_link)
24058
25017
  @specific_reservation = args[:specific_reservation] if args.key?(:specific_reservation)
24059
25018
  @specific_reservation_required = args[:specific_reservation_required] if args.key?(:specific_reservation_required)
@@ -24627,6 +25586,12 @@ module Google
24627
25586
  # @return [Fixnum]
24628
25587
  attr_accessor :id
24629
25588
 
25589
+ # An InstanceSchedulePolicy specifies when and how frequent certain operations
25590
+ # are performed on the instance.
25591
+ # Corresponds to the JSON property `instanceSchedulePolicy`
25592
+ # @return [Google::Apis::ComputeV1::ResourcePolicyInstanceSchedulePolicy]
25593
+ attr_accessor :instance_schedule_policy
25594
+
24630
25595
  # [Output Only] Type of the resource. Always compute#resource_policies for
24631
25596
  # resource policies.
24632
25597
  # Corresponds to the JSON property `kind`
@@ -24649,6 +25614,13 @@ module Google
24649
25614
  # @return [String]
24650
25615
  attr_accessor :region
24651
25616
 
25617
+ # Contains output only fields. Use this sub-message for all output fields set on
25618
+ # ResourcePolicy. The internal structure of this "status" field should mimic the
25619
+ # structure of ResourcePolicy proto specification.
25620
+ # Corresponds to the JSON property `resourceStatus`
25621
+ # @return [Google::Apis::ComputeV1::ResourcePolicyResourceStatus]
25622
+ attr_accessor :resource_status
25623
+
24652
25624
  # [Output Only] Server-defined fully-qualified URL for this resource.
24653
25625
  # Corresponds to the JSON property `selfLink`
24654
25626
  # @return [String]
@@ -24676,9 +25648,11 @@ module Google
24676
25648
  @description = args[:description] if args.key?(:description)
24677
25649
  @group_placement_policy = args[:group_placement_policy] if args.key?(:group_placement_policy)
24678
25650
  @id = args[:id] if args.key?(:id)
25651
+ @instance_schedule_policy = args[:instance_schedule_policy] if args.key?(:instance_schedule_policy)
24679
25652
  @kind = args[:kind] if args.key?(:kind)
24680
25653
  @name = args[:name] if args.key?(:name)
24681
25654
  @region = args[:region] if args.key?(:region)
25655
+ @resource_status = args[:resource_status] if args.key?(:resource_status)
24682
25656
  @self_link = args[:self_link] if args.key?(:self_link)
24683
25657
  @snapshot_schedule_policy = args[:snapshot_schedule_policy] if args.key?(:snapshot_schedule_policy)
24684
25658
  @status = args[:status] if args.key?(:status)
@@ -24917,6 +25891,71 @@ module Google
24917
25891
  end
24918
25892
  end
24919
25893
 
25894
+ # An InstanceSchedulePolicy specifies when and how frequent certain operations
25895
+ # are performed on the instance.
25896
+ class ResourcePolicyInstanceSchedulePolicy
25897
+ include Google::Apis::Core::Hashable
25898
+
25899
+ # The expiration time of the schedule. The timestamp is an RFC3339 string.
25900
+ # Corresponds to the JSON property `expirationTime`
25901
+ # @return [String]
25902
+ attr_accessor :expiration_time
25903
+
25904
+ # The start time of the schedule. The timestamp is an RFC3339 string.
25905
+ # Corresponds to the JSON property `startTime`
25906
+ # @return [String]
25907
+ attr_accessor :start_time
25908
+
25909
+ # Specifies the time zone to be used in interpreting Schedule.schedule. The
25910
+ # value of this field must be a time zone name from the tz database: http://en.
25911
+ # wikipedia.org/wiki/Tz_database.
25912
+ # Corresponds to the JSON property `timeZone`
25913
+ # @return [String]
25914
+ attr_accessor :time_zone
25915
+
25916
+ # Schedule for an instance operation.
25917
+ # Corresponds to the JSON property `vmStartSchedule`
25918
+ # @return [Google::Apis::ComputeV1::ResourcePolicyInstanceSchedulePolicySchedule]
25919
+ attr_accessor :vm_start_schedule
25920
+
25921
+ # Schedule for an instance operation.
25922
+ # Corresponds to the JSON property `vmStopSchedule`
25923
+ # @return [Google::Apis::ComputeV1::ResourcePolicyInstanceSchedulePolicySchedule]
25924
+ attr_accessor :vm_stop_schedule
25925
+
25926
+ def initialize(**args)
25927
+ update!(**args)
25928
+ end
25929
+
25930
+ # Update properties of this object
25931
+ def update!(**args)
25932
+ @expiration_time = args[:expiration_time] if args.key?(:expiration_time)
25933
+ @start_time = args[:start_time] if args.key?(:start_time)
25934
+ @time_zone = args[:time_zone] if args.key?(:time_zone)
25935
+ @vm_start_schedule = args[:vm_start_schedule] if args.key?(:vm_start_schedule)
25936
+ @vm_stop_schedule = args[:vm_stop_schedule] if args.key?(:vm_stop_schedule)
25937
+ end
25938
+ end
25939
+
25940
+ # Schedule for an instance operation.
25941
+ class ResourcePolicyInstanceSchedulePolicySchedule
25942
+ include Google::Apis::Core::Hashable
25943
+
25944
+ # Specifies the frequency for the operation, using the unix-cron format.
25945
+ # Corresponds to the JSON property `schedule`
25946
+ # @return [String]
25947
+ attr_accessor :schedule
25948
+
25949
+ def initialize(**args)
25950
+ update!(**args)
25951
+ end
25952
+
25953
+ # Update properties of this object
25954
+ def update!(**args)
25955
+ @schedule = args[:schedule] if args.key?(:schedule)
25956
+ end
25957
+ end
25958
+
24920
25959
  #
24921
25960
  class ResourcePolicyList
24922
25961
  include Google::Apis::Core::Hashable
@@ -25042,6 +26081,56 @@ module Google
25042
26081
  end
25043
26082
  end
25044
26083
 
26084
+ # Contains output only fields. Use this sub-message for all output fields set on
26085
+ # ResourcePolicy. The internal structure of this "status" field should mimic the
26086
+ # structure of ResourcePolicy proto specification.
26087
+ class ResourcePolicyResourceStatus
26088
+ include Google::Apis::Core::Hashable
26089
+
26090
+ # [Output Only] Specifies a set of output values reffering to the
26091
+ # instance_schedule_policy system status. This field should have the same name
26092
+ # as corresponding policy field.
26093
+ # Corresponds to the JSON property `instanceSchedulePolicy`
26094
+ # @return [Google::Apis::ComputeV1::ResourcePolicyResourceStatusInstanceSchedulePolicyStatus]
26095
+ attr_accessor :instance_schedule_policy
26096
+
26097
+ def initialize(**args)
26098
+ update!(**args)
26099
+ end
26100
+
26101
+ # Update properties of this object
26102
+ def update!(**args)
26103
+ @instance_schedule_policy = args[:instance_schedule_policy] if args.key?(:instance_schedule_policy)
26104
+ end
26105
+ end
26106
+
26107
+ #
26108
+ class ResourcePolicyResourceStatusInstanceSchedulePolicyStatus
26109
+ include Google::Apis::Core::Hashable
26110
+
26111
+ # [Output Only] The last time the schedule successfully ran. The timestamp is an
26112
+ # RFC3339 string.
26113
+ # Corresponds to the JSON property `lastRunStartTime`
26114
+ # @return [String]
26115
+ attr_accessor :last_run_start_time
26116
+
26117
+ # [Output Only] The next time the schedule is planned to run. The actual time
26118
+ # might be slightly different. The timestamp is an RFC3339 string.
26119
+ # Corresponds to the JSON property `nextRunStartTime`
26120
+ # @return [String]
26121
+ attr_accessor :next_run_start_time
26122
+
26123
+ def initialize(**args)
26124
+ update!(**args)
26125
+ end
26126
+
26127
+ # Update properties of this object
26128
+ def update!(**args)
26129
+ @last_run_start_time = args[:last_run_start_time] if args.key?(:last_run_start_time)
26130
+ @next_run_start_time = args[:next_run_start_time] if args.key?(:next_run_start_time)
26131
+ end
26132
+ end
26133
+
25045
26134
  # A snapshot schedule policy specifies when and how frequently snapshots are to
25046
26135
  # be created for the target disk. Also specifies how many and how long these
25047
26136
  # scheduled snapshots should be retained.
@@ -26761,7 +27850,7 @@ module Google
26761
27850
  end
26762
27851
  end
26763
27852
 
26764
- # Sets the scheduling options for an Instance. NextID: 13
27853
+ # Sets the scheduling options for an Instance. NextID: 17
26765
27854
  class Scheduling
26766
27855
  include Google::Apis::Core::Hashable
26767
27856
 
@@ -27640,6 +28729,12 @@ module Google
27640
28729
  # @return [Array<String>]
27641
28730
  attr_accessor :licenses
27642
28731
 
28732
+ # An opaque location hint used to place the snapshot close to other resources.
28733
+ # This field is for use by internal tools that use the public API.
28734
+ # Corresponds to the JSON property `locationHint`
28735
+ # @return [String]
28736
+ attr_accessor :location_hint
28737
+
27643
28738
  # Name of the resource; provided by the client when the resource is created. The
27644
28739
  # name must be 1-63 characters long, and comply with RFC1035. Specifically, the
27645
28740
  # name must be 1-63 characters long and match the regular expression `[a-z]([-a-
@@ -27650,6 +28745,12 @@ module Google
27650
28745
  # @return [String]
27651
28746
  attr_accessor :name
27652
28747
 
28748
+ # [Output Only] Reserved for future use.
28749
+ # Corresponds to the JSON property `satisfiesPzs`
28750
+ # @return [Boolean]
28751
+ attr_accessor :satisfies_pzs
28752
+ alias_method :satisfies_pzs?, :satisfies_pzs
28753
+
27653
28754
  # [Output Only] Server-defined URL for the resource.
27654
28755
  # Corresponds to the JSON property `selfLink`
27655
28756
  # @return [String]
@@ -27731,7 +28832,9 @@ module Google
27731
28832
  @labels = args[:labels] if args.key?(:labels)
27732
28833
  @license_codes = args[:license_codes] if args.key?(:license_codes)
27733
28834
  @licenses = args[:licenses] if args.key?(:licenses)
28835
+ @location_hint = args[:location_hint] if args.key?(:location_hint)
27734
28836
  @name = args[:name] if args.key?(:name)
28837
+ @satisfies_pzs = args[:satisfies_pzs] if args.key?(:satisfies_pzs)
27735
28838
  @self_link = args[:self_link] if args.key?(:self_link)
27736
28839
  @snapshot_encryption_key = args[:snapshot_encryption_key] if args.key?(:snapshot_encryption_key)
27737
28840
  @source_disk = args[:source_disk] if args.key?(:source_disk)
@@ -28262,8 +29365,9 @@ module Google
28262
29365
  # @return [Hash<String,String>]
28263
29366
  attr_accessor :domain_status
28264
29367
 
28265
- # The domains for which a managed SSL certificate will be generated. Currently
28266
- # only single-domain certs are supported.
29368
+ # The domains for which a managed SSL certificate will be generated. Each Google-
29369
+ # managed SSL certificate supports up to the [maximum number of domains per
29370
+ # Google-managed SSL certificate](/load-balancing/docs/quotas#ssl_certificates).
28267
29371
  # Corresponds to the JSON property `domains`
28268
29372
  # @return [Array<String>]
28269
29373
  attr_accessor :domains
@@ -28850,9 +29954,9 @@ module Google
28850
29954
  # The range of internal addresses that are owned by this subnetwork. Provide
28851
29955
  # this property when you create the subnetwork. For example, 10.0.0.0/8 or 100.
28852
29956
  # 64.0.0/10. Ranges must be unique and non-overlapping within a network. Only
28853
- # IPv4 is supported. This field is set at resource creation time. This may be a
28854
- # RFC 1918 IP range, or a privately routed, non-RFC 1918 IP range, not belonging
28855
- # to Google. The range can be expanded after creation using expandIpCidrRange.
29957
+ # IPv4 is supported. This field is set at resource creation time. The range can
29958
+ # be any range listed in the Valid ranges list. The range can be expanded after
29959
+ # creation using expandIpCidrRange.
28856
29960
  # Corresponds to the JSON property `ipCidrRange`
28857
29961
  # @return [String]
28858
29962
  attr_accessor :ip_cidr_range
@@ -29300,8 +30404,8 @@ module Google
29300
30404
  # The range of IP addresses belonging to this subnetwork secondary range.
29301
30405
  # Provide this property when you create the subnetwork. Ranges must be unique
29302
30406
  # and non-overlapping with all primary and secondary IP ranges within a network.
29303
- # Only IPv4 is supported. This may be a RFC 1918 IP range, or a privately, non-
29304
- # RFC 1918 IP range, not belonging to Google.
30407
+ # Only IPv4 is supported. The range can be any range listed in the Valid ranges
30408
+ # list.
29305
30409
  # Corresponds to the JSON property `ipCidrRange`
29306
30410
  # @return [String]
29307
30411
  attr_accessor :ip_cidr_range
@@ -29554,9 +30658,10 @@ module Google
29554
30658
 
29555
30659
  # Represents a Target gRPC Proxy resource.
29556
30660
  # 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 ==)
30661
+ # balancing gRPC traffic. Only global forwarding rules with load balancing
30662
+ # scheme INTERNAL_SELF_MANAGED can reference a target gRPC proxy. The target
30663
+ # gRPC Proxy references a URL map that specifies how traffic is routed to gRPC
30664
+ # backend services. (== resource_for `$api_version`.targetGrpcProxies ==)
29560
30665
  class TargetGrpcProxy
29561
30666
  include Google::Apis::Core::Hashable
29562
30667
 
@@ -30307,6 +31412,17 @@ module Google
30307
31412
  # @return [String]
30308
31413
  attr_accessor :description
30309
31414
 
31415
+ # Fingerprint of this resource. A hash of the contents stored in this object.
31416
+ # This field is used in optimistic locking. This field will be ignored when
31417
+ # inserting a TargetHttpsProxy. An up-to-date fingerprint must be provided in
31418
+ # order to patch the TargetHttpsProxy; otherwise, the request will fail with
31419
+ # error 412 conditionNotMet. To see the latest fingerprint, make a get() request
31420
+ # to retrieve the TargetHttpsProxy.
31421
+ # Corresponds to the JSON property `fingerprint`
31422
+ # NOTE: Values are automatically base64 encoded/decoded in the client library.
31423
+ # @return [String]
31424
+ attr_accessor :fingerprint
31425
+
30310
31426
  # [Output Only] The unique identifier for the resource. This identifier is
30311
31427
  # defined by the server.
30312
31428
  # Corresponds to the JSON property `id`
@@ -30350,7 +31466,6 @@ module Google
30350
31466
  # possible.
30351
31467
  # - When quic-override is set to DISABLE, the load balancer doesn't use QUIC.
30352
31468
  # - If the quic-override flag is not specified, NONE is implied.
30353
- # -
30354
31469
  # Corresponds to the JSON property `quicOverride`
30355
31470
  # @return [String]
30356
31471
  attr_accessor :quic_override
@@ -30410,6 +31525,7 @@ module Google
30410
31525
  @authorization_policy = args[:authorization_policy] if args.key?(:authorization_policy)
30411
31526
  @creation_timestamp = args[:creation_timestamp] if args.key?(:creation_timestamp)
30412
31527
  @description = args[:description] if args.key?(:description)
31528
+ @fingerprint = args[:fingerprint] if args.key?(:fingerprint)
30413
31529
  @id = args[:id] if args.key?(:id)
30414
31530
  @kind = args[:kind] if args.key?(:kind)
30415
31531
  @name = args[:name] if args.key?(:name)
@@ -31137,8 +32253,7 @@ module Google
31137
32253
  attr_accessor :failover_ratio
31138
32254
 
31139
32255
  # 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
32256
+ # considered healthy if and only if the health checks pass. Only legacy
31142
32257
  # HttpHealthChecks are supported. Only one health check may be specified.
31143
32258
  # Corresponds to the JSON property `healthChecks`
31144
32259
  # @return [Array<String>]
@@ -32022,6 +33137,19 @@ module Google
32022
33137
  # @return [String]
32023
33138
  attr_accessor :name
32024
33139
 
33140
+ # This field only applies when the forwarding rule that references this target
33141
+ # proxy has a loadBalancingScheme set to INTERNAL_SELF_MANAGED.
33142
+ # When this field is set to true, Envoy proxies set up inbound traffic
33143
+ # interception and bind to the IP address and port specified in the forwarding
33144
+ # rule. This is generally useful when using Traffic Director to configure Envoy
33145
+ # as a gateway or middle proxy (in other words, not a sidecar proxy). The Envoy
33146
+ # proxy listens for inbound requests and handles requests when it receives them.
33147
+ # The default is false.
33148
+ # Corresponds to the JSON property `proxyBind`
33149
+ # @return [Boolean]
33150
+ attr_accessor :proxy_bind
33151
+ alias_method :proxy_bind?, :proxy_bind
33152
+
32025
33153
  # Specifies the type of proxy header to append before sending data to the
32026
33154
  # backend, either NONE or PROXY_V1. The default is NONE.
32027
33155
  # Corresponds to the JSON property `proxyHeader`
@@ -32049,6 +33177,7 @@ module Google
32049
33177
  @id = args[:id] if args.key?(:id)
32050
33178
  @kind = args[:kind] if args.key?(:kind)
32051
33179
  @name = args[:name] if args.key?(:name)
33180
+ @proxy_bind = args[:proxy_bind] if args.key?(:proxy_bind)
32052
33181
  @proxy_header = args[:proxy_header] if args.key?(:proxy_header)
32053
33182
  @self_link = args[:self_link] if args.key?(:self_link)
32054
33183
  @service = args[:service] if args.key?(:service)
@@ -32606,17 +33735,46 @@ module Google
32606
33735
  class TestFailure
32607
33736
  include Google::Apis::Core::Hashable
32608
33737
 
33738
+ # The actual output URL evaluated by load balancer containing the scheme, host,
33739
+ # path and query parameters.
33740
+ # Corresponds to the JSON property `actualOutputUrl`
33741
+ # @return [String]
33742
+ attr_accessor :actual_output_url
33743
+
33744
+ # Actual HTTP status code for rule with `urlRedirect` calculated by load
33745
+ # balancer
33746
+ # Corresponds to the JSON property `actualRedirectResponseCode`
33747
+ # @return [Fixnum]
33748
+ attr_accessor :actual_redirect_response_code
33749
+
32609
33750
  # BackendService or BackendBucket returned by load balancer.
32610
33751
  # Corresponds to the JSON property `actualService`
32611
33752
  # @return [String]
32612
33753
  attr_accessor :actual_service
32613
33754
 
33755
+ # The expected output URL evaluated by load balancer containing the scheme, host,
33756
+ # path and query parameters.
33757
+ # Corresponds to the JSON property `expectedOutputUrl`
33758
+ # @return [String]
33759
+ attr_accessor :expected_output_url
33760
+
33761
+ # Expected HTTP status code for rule with `urlRedirect` calculated by load
33762
+ # balancer
33763
+ # Corresponds to the JSON property `expectedRedirectResponseCode`
33764
+ # @return [Fixnum]
33765
+ attr_accessor :expected_redirect_response_code
33766
+
32614
33767
  # Expected BackendService or BackendBucket resource the given URL should be
32615
33768
  # mapped to.
32616
33769
  # Corresponds to the JSON property `expectedService`
32617
33770
  # @return [String]
32618
33771
  attr_accessor :expected_service
32619
33772
 
33773
+ # HTTP headers of the request.
33774
+ # Corresponds to the JSON property `headers`
33775
+ # @return [Array<Google::Apis::ComputeV1::UrlMapTestHeader>]
33776
+ attr_accessor :headers
33777
+
32620
33778
  # Host portion of the URL.
32621
33779
  # Corresponds to the JSON property `host`
32622
33780
  # @return [String]
@@ -32633,8 +33791,13 @@ module Google
32633
33791
 
32634
33792
  # Update properties of this object
32635
33793
  def update!(**args)
33794
+ @actual_output_url = args[:actual_output_url] if args.key?(:actual_output_url)
33795
+ @actual_redirect_response_code = args[:actual_redirect_response_code] if args.key?(:actual_redirect_response_code)
32636
33796
  @actual_service = args[:actual_service] if args.key?(:actual_service)
33797
+ @expected_output_url = args[:expected_output_url] if args.key?(:expected_output_url)
33798
+ @expected_redirect_response_code = args[:expected_redirect_response_code] if args.key?(:expected_redirect_response_code)
32637
33799
  @expected_service = args[:expected_service] if args.key?(:expected_service)
33800
+ @headers = args[:headers] if args.key?(:headers)
32638
33801
  @host = args[:host] if args.key?(:host)
32639
33802
  @path = args[:path] if args.key?(:path)
32640
33803
  end
@@ -32984,6 +34147,37 @@ module Google
32984
34147
  # @return [String]
32985
34148
  attr_accessor :description
32986
34149
 
34150
+ # The expected output URL evaluated by load balancer containing the scheme, host,
34151
+ # path and query parameters.
34152
+ # For rules that forward requests to backends, the test passes only when
34153
+ # expectedOutputUrl matches the request forwarded by load balancer to backends.
34154
+ # For rules with urlRewrite, the test verifies that the forwarded request
34155
+ # matches hostRewrite and pathPrefixRewrite in the urlRewrite action. When
34156
+ # service is specified, expectedOutputUrl`s scheme is ignored.
34157
+ # For rules with urlRedirect, the test passes only if expectedOutputUrl matches
34158
+ # the URL in the load balancer's redirect response. If urlRedirect specifies
34159
+ # https_redirect, the test passes only if the scheme in expectedOutputUrl is
34160
+ # also set to https. If urlRedirect specifies strip_query, the test passes only
34161
+ # if expectedOutputUrl does not contain any query parameters.
34162
+ # expectedOutputUrl is optional when service is specified.
34163
+ # Corresponds to the JSON property `expectedOutputUrl`
34164
+ # @return [String]
34165
+ attr_accessor :expected_output_url
34166
+
34167
+ # For rules with urlRedirect, the test passes only if
34168
+ # expectedRedirectResponseCode matches the HTTP status code in load balancer's
34169
+ # redirect response.
34170
+ # expectedRedirectResponseCode cannot be set when service is set.
34171
+ # Corresponds to the JSON property `expectedRedirectResponseCode`
34172
+ # @return [Fixnum]
34173
+ attr_accessor :expected_redirect_response_code
34174
+
34175
+ # HTTP headers for this request. If headers contains a host header, then host
34176
+ # must also match the header value.
34177
+ # Corresponds to the JSON property `headers`
34178
+ # @return [Array<Google::Apis::ComputeV1::UrlMapTestHeader>]
34179
+ attr_accessor :headers
34180
+
32987
34181
  # Host portion of the URL. If headers contains a host header, then host must
32988
34182
  # also match the header value.
32989
34183
  # Corresponds to the JSON property `host`
@@ -33009,12 +34203,40 @@ module Google
33009
34203
  # Update properties of this object
33010
34204
  def update!(**args)
33011
34205
  @description = args[:description] if args.key?(:description)
34206
+ @expected_output_url = args[:expected_output_url] if args.key?(:expected_output_url)
34207
+ @expected_redirect_response_code = args[:expected_redirect_response_code] if args.key?(:expected_redirect_response_code)
34208
+ @headers = args[:headers] if args.key?(:headers)
33012
34209
  @host = args[:host] if args.key?(:host)
33013
34210
  @path = args[:path] if args.key?(:path)
33014
34211
  @service = args[:service] if args.key?(:service)
33015
34212
  end
33016
34213
  end
33017
34214
 
34215
+ # HTTP headers used in UrlMapTests.
34216
+ class UrlMapTestHeader
34217
+ include Google::Apis::Core::Hashable
34218
+
34219
+ # Header name.
34220
+ # Corresponds to the JSON property `name`
34221
+ # @return [String]
34222
+ attr_accessor :name
34223
+
34224
+ # Header value.
34225
+ # Corresponds to the JSON property `value`
34226
+ # @return [String]
34227
+ attr_accessor :value
34228
+
34229
+ def initialize(**args)
34230
+ update!(**args)
34231
+ end
34232
+
34233
+ # Update properties of this object
34234
+ def update!(**args)
34235
+ @name = args[:name] if args.key?(:name)
34236
+ @value = args[:value] if args.key?(:value)
34237
+ end
34238
+ end
34239
+
33018
34240
  # Message representing the validation result for a UrlMap.
33019
34241
  class UrlMapValidationResult
33020
34242
  include Google::Apis::Core::Hashable
@@ -35201,6 +36423,12 @@ module Google
35201
36423
  # @return [String]
35202
36424
  attr_accessor :status
35203
36425
 
36426
+ # [Output Only] Reserved for future use.
36427
+ # Corresponds to the JSON property `supportsPzs`
36428
+ # @return [Boolean]
36429
+ attr_accessor :supports_pzs
36430
+ alias_method :supports_pzs?, :supports_pzs
36431
+
35204
36432
  def initialize(**args)
35205
36433
  update!(**args)
35206
36434
  end
@@ -35217,6 +36445,7 @@ module Google
35217
36445
  @region = args[:region] if args.key?(:region)
35218
36446
  @self_link = args[:self_link] if args.key?(:self_link)
35219
36447
  @status = args[:status] if args.key?(:status)
36448
+ @supports_pzs = args[:supports_pzs] if args.key?(:supports_pzs)
35220
36449
  end
35221
36450
  end
35222
36451