google-apis-compute_v1 0.1.0 → 0.6.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
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