google-apis-compute_alpha 0.4.0 → 0.9.0

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 3324edf66d8d2452916ae34f3c091204e902e64ff91243e25530ef2953f03ba1
4
- data.tar.gz: d79673999be98a3a287b6a6d32c173092b154e4f514e23da70b6f4f4604ac181
3
+ metadata.gz: 02ce68094e319671550d7d7dd9f95033c748b80382c5be137d5b8fa7b65a91ac
4
+ data.tar.gz: d8a70eed281be32d30a25f5b71f9b16090b9b93cff6d05ea1667b1d4267b9516
5
5
  SHA512:
6
- metadata.gz: 7991e0a5da321f39bea567a578e044dbac526f6dbe6970336b838a26eb83c7cea7ed48b8ba7e76b279d8601190a944078ca4a7bb492ee7e9376ee23069fbbea8
7
- data.tar.gz: '01699fd3705f16f3845657e6c2af924dc4bdf5a6370bbd0c98ff1b433c6eb7d06c3ed6b682f55c2891d8cf85d65eccb5701f7dda8911fcb71d6d7adbea56c0da'
6
+ metadata.gz: 146dad68ad0c6d53768528cba1bb2796c7387ac479a75c339d961455d836103d1920ace50e95d427f83785432239d7e981b51221b5cc3730184d2dd7cd77e6ae
7
+ data.tar.gz: 35219a8db465b996f7e22c7eeccc23ad8c47b03b3d38f9a547c38d4d0107aba9ba26090c801965c81c7d9b8e0c2201fed2ad331a323cc8621f4ce6513c479fcb
data/CHANGELOG.md CHANGED
@@ -1,5 +1,26 @@
1
1
  # Release history for google-apis-compute_alpha
2
2
 
3
+ ### v0.9.0 (2021-05-05)
4
+
5
+ * Regenerated from discovery document revision 20210415
6
+
7
+ ### v0.8.0 (2021-03-30)
8
+
9
+ * Regenerated from discovery document revision 20210316
10
+
11
+ ### v0.7.0 (2021-03-19)
12
+
13
+ * Regenerated from discovery document revision 20210310
14
+
15
+ ### v0.6.0 (2021-03-10)
16
+
17
+ * Regenerated from discovery document revision 20210301
18
+ * Regenerated using generator version 0.2.0
19
+
20
+ ### v0.5.0 (2021-03-04)
21
+
22
+ * Unspecified changes
23
+
3
24
  ### v0.4.0 (2021-02-24)
4
25
 
5
26
  * Regenerated from discovery document revision 20210209
@@ -29,7 +29,7 @@ module Google
29
29
  # This is NOT the gem version.
30
30
  VERSION = 'Alpha'
31
31
 
32
- # View and manage your data across Google Cloud Platform services
32
+ # See, edit, configure, and delete your Google Cloud Platform data
33
33
  AUTH_CLOUD_PLATFORM = 'https://www.googleapis.com/auth/cloud-platform'
34
34
 
35
35
  # View and manage your Google Compute Engine resources
@@ -671,7 +671,7 @@ module Google
671
671
  # @return [String]
672
672
  attr_accessor :network_tier
673
673
 
674
- # The prefix length if the resource reprensents an IP range.
674
+ # The prefix length if the resource represents an IP range.
675
675
  # Corresponds to the JSON property `prefixLength`
676
676
  # @return [Fixnum]
677
677
  attr_accessor :prefix_length
@@ -684,7 +684,7 @@ module Google
684
684
  # - `NAT_AUTO` for addresses that are external IP addresses automatically
685
685
  # reserved for Cloud NAT.
686
686
  # - `IPSEC_INTERCONNECT` for addresses created from a private IP range that are
687
- # reserved for a VLAN attachment in an IPsec encrypted Interconnect
687
+ # reserved for a VLAN attachment in an IPsec-encrypted Cloud Interconnect
688
688
  # configuration. These addresses are regional resources.
689
689
  # Corresponds to the JSON property `purpose`
690
690
  # @return [String]
@@ -1111,6 +1111,14 @@ module Google
1111
1111
  # @return [Fixnum]
1112
1112
  attr_accessor :threads_per_core
1113
1113
 
1114
+ # The number of physical cores to expose to an instance. Multiply by the number
1115
+ # of threads per core to compute the total number of virtual CPUs to expose to
1116
+ # the instance. If unset, the number of cores is inferred from the instance's
1117
+ # nominal CPU count and the underlying platform's SMT width.
1118
+ # Corresponds to the JSON property `visibleCoreCount`
1119
+ # @return [Fixnum]
1120
+ attr_accessor :visible_core_count
1121
+
1114
1122
  def initialize(**args)
1115
1123
  update!(**args)
1116
1124
  end
@@ -1119,6 +1127,7 @@ module Google
1119
1127
  def update!(**args)
1120
1128
  @enable_nested_virtualization = args[:enable_nested_virtualization] if args.key?(:enable_nested_virtualization)
1121
1129
  @threads_per_core = args[:threads_per_core] if args.key?(:threads_per_core)
1130
+ @visible_core_count = args[:visible_core_count] if args.key?(:visible_core_count)
1122
1131
  end
1123
1132
  end
1124
1133
 
@@ -1239,9 +1248,8 @@ module Google
1239
1248
  # @return [Fixnum]
1240
1249
  attr_accessor :maintenance_freeze_duration_hours
1241
1250
 
1242
- # Specifies whether this VM may be a stable fleet VM. Setting this to "Periodic"
1243
- # designates this VM as a Stable Fleet VM.
1244
- # See go/stable-fleet-ug for more details.
1251
+ # For more information about maintenance intervals, see Setting maintenance
1252
+ # intervals.
1245
1253
  # Corresponds to the JSON property `maintenanceInterval`
1246
1254
  # @return [String]
1247
1255
  attr_accessor :maintenance_interval
@@ -1298,80 +1306,6 @@ module Google
1298
1306
  end
1299
1307
  end
1300
1308
 
1301
- # `Any` contains an arbitrary serialized protocol buffer message along with a
1302
- # URL that describes the type of the serialized message.
1303
- # Protobuf library provides support to pack/unpack Any values in the form of
1304
- # utility functions or additional generated methods of the Any type.
1305
- # Example 1: Pack and unpack a message in C++.
1306
- # Foo foo = ...; Any any; any.PackFrom(foo); ... if (any.UnpackTo(&foo)) ` ... `
1307
- # Example 2: Pack and unpack a message in Java.
1308
- # Foo foo = ...; Any any = Any.pack(foo); ... if (any.is(Foo.class)) ` foo = any.
1309
- # unpack(Foo.class); `
1310
- # Example 3: Pack and unpack a message in Python.
1311
- # foo = Foo(...) any = Any() any.Pack(foo) ... if any.Is(Foo.DESCRIPTOR): any.
1312
- # Unpack(foo) ...
1313
- # Example 4: Pack and unpack a message in Go
1314
- # foo := &pb.Foo`...` any, err := anypb.New(foo) if err != nil ` ... ` ... foo :=
1315
- # &pb.Foo`` if err := any.UnmarshalTo(foo); err != nil ` ... `
1316
- # The pack methods provided by protobuf library will by default use 'type.
1317
- # googleapis.com/full.type.name' as the type URL and the unpack methods only use
1318
- # the fully qualified type name after the last '/' in the type URL, for example "
1319
- # foo.bar.com/x/y.z" will yield type name "y.z".
1320
- # JSON ==== The JSON representation of an `Any` value uses the regular
1321
- # representation of the deserialized, embedded message, with an additional field
1322
- # `@type` which contains the type URL. Example:
1323
- # package google.profile; message Person ` string first_name = 1; string
1324
- # last_name = 2; `
1325
- # ` "@type": "type.googleapis.com/google.profile.Person", "firstName": , "
1326
- # lastName": `
1327
- # If the embedded message type is well-known and has a custom JSON
1328
- # representation, that representation will be embedded adding a field `value`
1329
- # which holds the custom JSON in addition to the `@type` field. Example (for
1330
- # message [google.protobuf.Duration][]):
1331
- # ` "@type": "type.googleapis.com/google.protobuf.Duration", "value": "1.212s" `
1332
- class Any
1333
- include Google::Apis::Core::Hashable
1334
-
1335
- # A URL/resource name that uniquely identifies the type of the serialized
1336
- # protocol buffer message. This string must contain at least one "/" character.
1337
- # The last segment of the URL's path must represent the fully qualified name of
1338
- # the type (as in `path/google.protobuf.Duration`). The name should be in a
1339
- # canonical form (e.g., leading "." is not accepted).
1340
- # In practice, teams usually precompile into the binary all types that they
1341
- # expect it to use in the context of Any. However, for URLs which use the scheme
1342
- # `http`, `https`, or no scheme, one can optionally set up a type server that
1343
- # maps type URLs to message definitions as follows:
1344
- # * If no scheme is provided, `https` is assumed. * An HTTP GET on the URL must
1345
- # yield a [google.protobuf.Type][] value in binary format, or produce an error. *
1346
- # Applications are allowed to cache lookup results based on the URL, or have
1347
- # them precompiled into a binary to avoid any lookup. Therefore, binary
1348
- # compatibility needs to be preserved on changes to types. (Use versioned type
1349
- # names to manage breaking changes.)
1350
- # Note: this functionality is not currently available in the official protobuf
1351
- # release, and it is not used for type URLs beginning with type.googleapis.com.
1352
- # Schemes other than `http`, `https` (or the empty scheme) might be used with
1353
- # implementation specific semantics.
1354
- # Corresponds to the JSON property `typeUrl`
1355
- # @return [String]
1356
- attr_accessor :type_url
1357
-
1358
- # Must be a valid serialized protocol buffer of the above specified type.
1359
- # Corresponds to the JSON property `value`
1360
- # NOTE: Values are automatically base64 encoded/decoded in the client library.
1361
- # @return [String]
1362
- attr_accessor :value
1363
-
1364
- def initialize(**args)
1365
- update!(**args)
1366
- end
1367
-
1368
- # Update properties of this object
1369
- def update!(**args)
1370
- @type_url = args[:type_url] if args.key?(:type_url)
1371
- @value = args[:value] if args.key?(:value)
1372
- end
1373
- end
1374
-
1375
1309
  # An instance-attached disk resource.
1376
1310
  class AttachedDisk
1377
1311
  include Google::Apis::Core::Hashable
@@ -3008,6 +2942,12 @@ module Google
3008
2942
  # @return [Array<Google::Apis::ComputeAlpha::BackendBucketCdnPolicyBypassCacheOnRequestHeader>]
3009
2943
  attr_accessor :bypass_cache_on_request_headers
3010
2944
 
2945
+ # Message containing what to include in the cache key for a request for Cloud
2946
+ # CDN.
2947
+ # Corresponds to the JSON property `cacheKeyPolicy`
2948
+ # @return [Google::Apis::ComputeAlpha::BackendBucketCdnPolicyCacheKeyPolicy]
2949
+ attr_accessor :cache_key_policy
2950
+
3011
2951
  # Specifies the cache setting for all responses from this backend. The possible
3012
2952
  # values are:
3013
2953
  # USE_ORIGIN_HEADERS Requires the origin to set valid caching headers to cache
@@ -3132,6 +3072,7 @@ module Google
3132
3072
  # Update properties of this object
3133
3073
  def update!(**args)
3134
3074
  @bypass_cache_on_request_headers = args[:bypass_cache_on_request_headers] if args.key?(:bypass_cache_on_request_headers)
3075
+ @cache_key_policy = args[:cache_key_policy] if args.key?(:cache_key_policy)
3135
3076
  @cache_mode = args[:cache_mode] if args.key?(:cache_mode)
3136
3077
  @client_ttl = args[:client_ttl] if args.key?(:client_ttl)
3137
3078
  @default_ttl = args[:default_ttl] if args.key?(:default_ttl)
@@ -3167,13 +3108,41 @@ module Google
3167
3108
  end
3168
3109
  end
3169
3110
 
3111
+ # Message containing what to include in the cache key for a request for Cloud
3112
+ # CDN.
3113
+ class BackendBucketCdnPolicyCacheKeyPolicy
3114
+ include Google::Apis::Core::Hashable
3115
+
3116
+ # Allows HTTP request headers (by name) to be used in the cache key.
3117
+ # Corresponds to the JSON property `includeHttpHeaders`
3118
+ # @return [Array<String>]
3119
+ attr_accessor :include_http_headers
3120
+
3121
+ # Names of query string parameters to include in cache keys. All other
3122
+ # parameters will be excluded. '&' and '=' will be percent encoded and not
3123
+ # treated as delimiters.
3124
+ # Corresponds to the JSON property `queryStringWhitelist`
3125
+ # @return [Array<String>]
3126
+ attr_accessor :query_string_whitelist
3127
+
3128
+ def initialize(**args)
3129
+ update!(**args)
3130
+ end
3131
+
3132
+ # Update properties of this object
3133
+ def update!(**args)
3134
+ @include_http_headers = args[:include_http_headers] if args.key?(:include_http_headers)
3135
+ @query_string_whitelist = args[:query_string_whitelist] if args.key?(:query_string_whitelist)
3136
+ end
3137
+ end
3138
+
3170
3139
  # Specify CDN TTLs for response error codes.
3171
3140
  class BackendBucketCdnPolicyNegativeCachingPolicy
3172
3141
  include Google::Apis::Core::Hashable
3173
3142
 
3174
3143
  # The HTTP status code to define a TTL against. Only HTTP status codes 300, 301,
3175
- # 308, 404, 405, 410, 421, 451 and 501 are can be specified as values, and you
3176
- # cannot specify a status code more than once.
3144
+ # 302, 307, 308, 404, 405, 410, 421, 451 and 501 are can be specified as values,
3145
+ # and you cannot specify a status code more than once.
3177
3146
  # Corresponds to the JSON property `code`
3178
3147
  # @return [Fixnum]
3179
3148
  attr_accessor :code
@@ -3597,7 +3566,7 @@ module Google
3597
3566
 
3598
3567
  # Type of session affinity to use. The default is NONE.
3599
3568
  # When the loadBalancingScheme is EXTERNAL: * For Network Load Balancing, the
3600
- # possible values are NONE, CLIENT_IP, CLIENT_IP_PROTO, or CLIENT_IP_PORT_PROTO.
3569
+ # possible values are NONE, CLIENT_IP, CLIENT_IP_PROTO, or CLIENT_IP_PORT_PROTO.
3601
3570
  # * For all other load balancers that use loadBalancingScheme=EXTERNAL, the
3602
3571
  # possible values are NONE, CLIENT_IP, or GENERATED_COOKIE. * You can use
3603
3572
  # GENERATED_COOKIE if the protocol is HTTP, HTTP2, or HTTPS.
@@ -3612,7 +3581,8 @@ module Google
3612
3581
  # @return [String]
3613
3582
  attr_accessor :session_affinity
3614
3583
 
3615
- # Subsetting options to make L4 ILB support any number of backend instances
3584
+ # Subsetting configuration for this BackendService. Currently this is applicable
3585
+ # only for Internal TCP/UDP load balancing and Internal HTTP(S) load balancing.
3616
3586
  # Corresponds to the JSON property `subsetting`
3617
3587
  # @return [Google::Apis::ComputeAlpha::Subsetting]
3618
3588
  attr_accessor :subsetting
@@ -3976,8 +3946,8 @@ module Google
3976
3946
  include Google::Apis::Core::Hashable
3977
3947
 
3978
3948
  # The HTTP status code to define a TTL against. Only HTTP status codes 300, 301,
3979
- # 308, 404, 405, 410, 421, 451 and 501 are can be specified as values, and you
3980
- # cannot specify a status code more than once.
3949
+ # 302, 307, 308, 404, 405, 410, 421, 451 and 501 are can be specified as values,
3950
+ # and you cannot specify a status code more than once.
3981
3951
  # Corresponds to the JSON property `code`
3982
3952
  # @return [Fixnum]
3983
3953
  attr_accessor :code
@@ -4866,16 +4836,17 @@ module Google
4866
4836
 
4867
4837
  # The minimum number of instances to create. If no min_count is specified then
4868
4838
  # count is used as the default value. If min_count instances cannot be created,
4869
- # then no instances will be created.
4839
+ # then no instances will be created and instances already created will be
4840
+ # deleted.
4870
4841
  # Corresponds to the JSON property `minCount`
4871
4842
  # @return [Fixnum]
4872
4843
  attr_accessor :min_count
4873
4844
 
4874
4845
  # The string pattern used for the names of the VMs. Either name_pattern or
4875
- # predefined_names must be set. The pattern should contain one consecutive
4846
+ # per_instance_properties must be set. The pattern should contain one continuous
4876
4847
  # sequence of placeholder hash characters (#) with each character corresponding
4877
4848
  # to one digit of the generated instance name. Example: name_pattern of inst-####
4878
- # will generate instance names like inst-0001, inst-0002, ... . If there
4849
+ # will generate instance names such as inst-0001, inst-0002, ... . If there
4879
4850
  # already exist instance(s) whose names match the name pattern in the same
4880
4851
  # project and zone, then the generated instance numbers will start after the
4881
4852
  # biggest existing number. For example, if there exists an instance with name
@@ -4892,11 +4863,17 @@ module Google
4892
4863
  # @return [Hash<String,Google::Apis::ComputeAlpha::BulkInsertInstanceResourcePerInstanceProperties>]
4893
4864
  attr_accessor :per_instance_properties
4894
4865
 
4895
- # List of predefined names. The number of names provided must be equal to count.
4866
+ # DEPRECATED: Please use per_instance_properties instead.
4896
4867
  # Corresponds to the JSON property `predefinedNames`
4897
4868
  # @return [Array<String>]
4898
4869
  attr_accessor :predefined_names
4899
4870
 
4871
+ # Secure tags to apply to this instance. These can be later modified by the
4872
+ # update method. Maximum number of secure tags allowed is 300.
4873
+ # Corresponds to the JSON property `secureTags`
4874
+ # @return [Array<String>]
4875
+ attr_accessor :secure_tags
4876
+
4900
4877
  # Specifies the instance template from which to create instances. You may
4901
4878
  # combine sourceInstanceTemplate with instanceProperties to override specific
4902
4879
  # values from an existing instance template. Bulk API follows the semantics of
@@ -4926,6 +4903,7 @@ module Google
4926
4903
  @name_pattern = args[:name_pattern] if args.key?(:name_pattern)
4927
4904
  @per_instance_properties = args[:per_instance_properties] if args.key?(:per_instance_properties)
4928
4905
  @predefined_names = args[:predefined_names] if args.key?(:predefined_names)
4906
+ @secure_tags = args[:secure_tags] if args.key?(:secure_tags)
4929
4907
  @source_instance_template = args[:source_instance_template] if args.key?(:source_instance_template)
4930
4908
  end
4931
4909
  end
@@ -4987,6 +4965,17 @@ module Google
4987
4965
  attr_accessor :include_host
4988
4966
  alias_method :include_host?, :include_host
4989
4967
 
4968
+ # Allows HTTP request headers (by name) to be used in the cache key.
4969
+ # Corresponds to the JSON property `includeHttpHeaders`
4970
+ # @return [Array<String>]
4971
+ attr_accessor :include_http_headers
4972
+
4973
+ # Allows HTTP cookies (by name) to be used in the cache key. The name=value pair
4974
+ # will be used in the cache key Cloud CDN generates.
4975
+ # Corresponds to the JSON property `includeNamedCookies`
4976
+ # @return [Array<String>]
4977
+ attr_accessor :include_named_cookies
4978
+
4990
4979
  # If true, http and https requests will be cached separately.
4991
4980
  # Corresponds to the JSON property `includeProtocol`
4992
4981
  # @return [Boolean]
@@ -5025,6 +5014,8 @@ module Google
5025
5014
  # Update properties of this object
5026
5015
  def update!(**args)
5027
5016
  @include_host = args[:include_host] if args.key?(:include_host)
5017
+ @include_http_headers = args[:include_http_headers] if args.key?(:include_http_headers)
5018
+ @include_named_cookies = args[:include_named_cookies] if args.key?(:include_named_cookies)
5028
5019
  @include_protocol = args[:include_protocol] if args.key?(:include_protocol)
5029
5020
  @include_query_string = args[:include_query_string] if args.key?(:include_query_string)
5030
5021
  @query_string_blacklist = args[:query_string_blacklist] if args.key?(:query_string_blacklist)
@@ -8453,13 +8444,14 @@ module Google
8453
8444
  # @return [String]
8454
8445
  attr_accessor :description
8455
8446
 
8456
- # User-provided name of the Organization firewall plicy. The name should be
8457
- # unique in the organization in which the firewall policy is created. The name
8458
- # must be 1-63 characters long, and comply with RFC1035. Specifically, the name
8459
- # must be 1-63 characters long and match the regular expression `[a-z]([-a-z0-9]*
8460
- # [a-z0-9])?` which means the first character must be a lowercase letter, and
8461
- # all following characters must be a dash, lowercase letter, or digit, except
8462
- # the last character, which cannot be a dash.
8447
+ # Depreacted, please use short name instead. User-provided name of the
8448
+ # Organization firewall plicy. The name should be unique in the organization in
8449
+ # which the firewall policy is created. The name must be 1-63 characters long,
8450
+ # and comply with RFC1035. Specifically, the name must be 1-63 characters long
8451
+ # and match the regular expression `[a-z]([-a-z0-9]*[a-z0-9])?` which means the
8452
+ # first character must be a lowercase letter, and all following characters must
8453
+ # be a dash, lowercase letter, or digit, except the last character, which cannot
8454
+ # be a dash.
8463
8455
  # Corresponds to the JSON property `displayName`
8464
8456
  # @return [String]
8465
8457
  attr_accessor :display_name
@@ -8499,6 +8491,14 @@ module Google
8499
8491
  # @return [String]
8500
8492
  attr_accessor :parent
8501
8493
 
8494
+ # [Output Only] URL of the region where the regional firewall policy resides.
8495
+ # This field is not applicable to global firewall policies. You must specify
8496
+ # this field as part of the HTTP request URL. It is not settable as a field in
8497
+ # the request body.
8498
+ # Corresponds to the JSON property `region`
8499
+ # @return [String]
8500
+ attr_accessor :region
8501
+
8502
8502
  # [Output Only] Total count of all firewall policy rule tuples. A firewall
8503
8503
  # policy can not exceed a set number of tuples.
8504
8504
  # Corresponds to the JSON property `ruleTupleCount`
@@ -8523,6 +8523,17 @@ module Google
8523
8523
  # @return [String]
8524
8524
  attr_accessor :self_link_with_id
8525
8525
 
8526
+ # User-provided name of the Organization firewall plicy. The name should be
8527
+ # unique in the organization in which the firewall policy is created. The name
8528
+ # must be 1-63 characters long, and comply with RFC1035. Specifically, the name
8529
+ # must be 1-63 characters long and match the regular expression `[a-z]([-a-z0-9]*
8530
+ # [a-z0-9])?` which means the first character must be a lowercase letter, and
8531
+ # all following characters must be a dash, lowercase letter, or digit, except
8532
+ # the last character, which cannot be a dash.
8533
+ # Corresponds to the JSON property `shortName`
8534
+ # @return [String]
8535
+ attr_accessor :short_name
8536
+
8526
8537
  def initialize(**args)
8527
8538
  update!(**args)
8528
8539
  end
@@ -8538,10 +8549,12 @@ module Google
8538
8549
  @kind = args[:kind] if args.key?(:kind)
8539
8550
  @name = args[:name] if args.key?(:name)
8540
8551
  @parent = args[:parent] if args.key?(:parent)
8552
+ @region = args[:region] if args.key?(:region)
8541
8553
  @rule_tuple_count = args[:rule_tuple_count] if args.key?(:rule_tuple_count)
8542
8554
  @rules = args[:rules] if args.key?(:rules)
8543
8555
  @self_link = args[:self_link] if args.key?(:self_link)
8544
8556
  @self_link_with_id = args[:self_link_with_id] if args.key?(:self_link_with_id)
8557
+ @short_name = args[:short_name] if args.key?(:short_name)
8545
8558
  end
8546
8559
  end
8547
8560
 
@@ -8554,7 +8567,8 @@ module Google
8554
8567
  # @return [String]
8555
8568
  attr_accessor :attachment_target
8556
8569
 
8557
- # [Output Only] The display name of the firewall policy of the association.
8570
+ # [Output Only] Deprecated, please use short name instead. The display name of
8571
+ # the firewall policy of the association.
8558
8572
  # Corresponds to the JSON property `displayName`
8559
8573
  # @return [String]
8560
8574
  attr_accessor :display_name
@@ -8569,6 +8583,11 @@ module Google
8569
8583
  # @return [String]
8570
8584
  attr_accessor :name
8571
8585
 
8586
+ # [Output Only] The short name of the firewall policy of the association.
8587
+ # Corresponds to the JSON property `shortName`
8588
+ # @return [String]
8589
+ attr_accessor :short_name
8590
+
8572
8591
  def initialize(**args)
8573
8592
  update!(**args)
8574
8593
  end
@@ -8579,6 +8598,7 @@ module Google
8579
8598
  @display_name = args[:display_name] if args.key?(:display_name)
8580
8599
  @firewall_policy_id = args[:firewall_policy_id] if args.key?(:firewall_policy_id)
8581
8600
  @name = args[:name] if args.key?(:name)
8601
+ @short_name = args[:short_name] if args.key?(:short_name)
8582
8602
  end
8583
8603
  end
8584
8604
 
@@ -8765,17 +8785,6 @@ module Google
8765
8785
  # @return [Array<String>]
8766
8786
  attr_accessor :target_resources
8767
8787
 
8768
- # A list of secure labels that controls which instances the firewall rule
8769
- # applies to. If targetSecureLabel are specified, then the firewall rule applies
8770
- # only to instances in the VPC network that have one of those secure labels.
8771
- # targetSecureLabel may not be set at the same time as targetServiceAccounts. If
8772
- # neither targetServiceAccounts nor targetSecureLabel are specified, the
8773
- # firewall rule applies to all instances on the specified network. Maximum
8774
- # number of target label values allowed is 256.
8775
- # Corresponds to the JSON property `targetSecureLabels`
8776
- # @return [Array<String>]
8777
- attr_accessor :target_secure_labels
8778
-
8779
8788
  # A list of secure tags that controls which instances the firewall rule applies
8780
8789
  # to. If targetSecureTag are specified, then the firewall rule applies only to
8781
8790
  # instances in the VPC network that have one of those EFFECTIVE secure tags, if
@@ -8810,7 +8819,6 @@ module Google
8810
8819
  @priority = args[:priority] if args.key?(:priority)
8811
8820
  @rule_tuple_count = args[:rule_tuple_count] if args.key?(:rule_tuple_count)
8812
8821
  @target_resources = args[:target_resources] if args.key?(:target_resources)
8813
- @target_secure_labels = args[:target_secure_labels] if args.key?(:target_secure_labels)
8814
8822
  @target_secure_tags = args[:target_secure_tags] if args.key?(:target_secure_tags)
8815
8823
  @target_service_accounts = args[:target_service_accounts] if args.key?(:target_service_accounts)
8816
8824
  end
@@ -8837,12 +8845,6 @@ module Google
8837
8845
  # @return [Array<String>]
8838
8846
  attr_accessor :src_ip_ranges
8839
8847
 
8840
- # List of firewall label values, which should be matched at the source of the
8841
- # traffic. Maximum number of source label values allowed is 256.
8842
- # Corresponds to the JSON property `srcSecureLabels`
8843
- # @return [Array<String>]
8844
- attr_accessor :src_secure_labels
8845
-
8846
8848
  # List of secure tag values, which should be matched at the source of the
8847
8849
  # traffic. For INGRESS rule, if all the srcSecureTag are INEFFECTIVE, and there
8848
8850
  # is no srcIpRange, this rule will be ignored. Maximum number of source tag
@@ -8860,7 +8862,6 @@ module Google
8860
8862
  @dest_ip_ranges = args[:dest_ip_ranges] if args.key?(:dest_ip_ranges)
8861
8863
  @layer4_configs = args[:layer4_configs] if args.key?(:layer4_configs)
8862
8864
  @src_ip_ranges = args[:src_ip_ranges] if args.key?(:src_ip_ranges)
8863
- @src_secure_labels = args[:src_secure_labels] if args.key?(:src_secure_labels)
8864
8865
  @src_secure_tags = args[:src_secure_tags] if args.key?(:src_secure_tags)
8865
8866
  end
8866
8867
  end
@@ -8996,6 +8997,8 @@ module Google
8996
8997
  # ip_address_specifications).
8997
8998
  # Must be set to `0.0.0.0` when the target is targetGrpcProxy that has
8998
8999
  # validateForProxyless field set to true.
9000
+ # For Private Service Connect forwarding rules that forward traffic to Google
9001
+ # APIs, IP address must be provided.
8999
9002
  # Corresponds to the JSON property `IPAddress`
9000
9003
  # @return [String]
9001
9004
  attr_accessor :ip_address
@@ -9168,6 +9171,8 @@ module Google
9168
9171
  # For Internal TCP/UDP Load Balancing, this field identifies the network that
9169
9172
  # the load balanced IP should belong to for this Forwarding Rule. If this field
9170
9173
  # is not specified, the default network will be used.
9174
+ # For Private Service Connect forwarding rules that forward traffic to Google
9175
+ # APIs, a network must be provided.
9171
9176
  # Corresponds to the JSON property `network`
9172
9177
  # @return [String]
9173
9178
  attr_accessor :network
@@ -9222,6 +9227,11 @@ module Google
9222
9227
  # @return [Fixnum]
9223
9228
  attr_accessor :psc_connection_id
9224
9229
 
9230
+ #
9231
+ # Corresponds to the JSON property `pscConnectionStatus`
9232
+ # @return [String]
9233
+ attr_accessor :psc_connection_status
9234
+
9225
9235
  # [Output Only] URL of the region where the regional forwarding rule resides.
9226
9236
  # This field is not applicable to global forwarding rules. You must specify this
9227
9237
  # field as part of the HTTP request URL. It is not settable as a field in the
@@ -9277,12 +9287,7 @@ module Google
9277
9287
  # @return [String]
9278
9288
  attr_accessor :subnetwork
9279
9289
 
9280
- # The URL of the target resource to receive the matched traffic. For regional
9281
- # forwarding rules, this target must be in the same region as the forwarding
9282
- # rule. For global forwarding rules, this target must be a global load balancing
9283
- # resource. The forwarded traffic must be of a type appropriate to the target
9284
- # object. For more information, see the "Target" column in [Port specifications](
9285
- # /load-balancing/docs/forwarding-rule-concepts#ip_address_specifications).
9290
+ #
9286
9291
  # Corresponds to the JSON property `target`
9287
9292
  # @return [String]
9288
9293
  attr_accessor :target
@@ -9315,6 +9320,7 @@ module Google
9315
9320
  @port_range = args[:port_range] if args.key?(:port_range)
9316
9321
  @ports = args[:ports] if args.key?(:ports)
9317
9322
  @psc_connection_id = args[:psc_connection_id] if args.key?(:psc_connection_id)
9323
+ @psc_connection_status = args[:psc_connection_status] if args.key?(:psc_connection_status)
9318
9324
  @region = args[:region] if args.key?(:region)
9319
9325
  @self_link = args[:self_link] if args.key?(:self_link)
9320
9326
  @self_link_with_id = args[:self_link_with_id] if args.key?(:self_link_with_id)
@@ -10196,6 +10202,11 @@ module Google
10196
10202
  # @return [String]
10197
10203
  attr_accessor :response
10198
10204
 
10205
+ # Weight report mode. used for weighted Load Balancing.
10206
+ # Corresponds to the JSON property `weightReportMode`
10207
+ # @return [String]
10208
+ attr_accessor :weight_report_mode
10209
+
10199
10210
  def initialize(**args)
10200
10211
  update!(**args)
10201
10212
  end
@@ -10209,6 +10220,7 @@ module Google
10209
10220
  @proxy_header = args[:proxy_header] if args.key?(:proxy_header)
10210
10221
  @request_path = args[:request_path] if args.key?(:request_path)
10211
10222
  @response = args[:response] if args.key?(:response)
10223
+ @weight_report_mode = args[:weight_report_mode] if args.key?(:weight_report_mode)
10212
10224
  end
10213
10225
  end
10214
10226
 
@@ -10266,6 +10278,11 @@ module Google
10266
10278
  # @return [String]
10267
10279
  attr_accessor :response
10268
10280
 
10281
+ # Weight report mode. used for weighted Load Balancing.
10282
+ # Corresponds to the JSON property `weightReportMode`
10283
+ # @return [String]
10284
+ attr_accessor :weight_report_mode
10285
+
10269
10286
  def initialize(**args)
10270
10287
  update!(**args)
10271
10288
  end
@@ -10279,6 +10296,7 @@ module Google
10279
10296
  @proxy_header = args[:proxy_header] if args.key?(:proxy_header)
10280
10297
  @request_path = args[:request_path] if args.key?(:request_path)
10281
10298
  @response = args[:response] if args.key?(:response)
10299
+ @weight_report_mode = args[:weight_report_mode] if args.key?(:weight_report_mode)
10282
10300
  end
10283
10301
  end
10284
10302
 
@@ -10336,6 +10354,11 @@ module Google
10336
10354
  # @return [String]
10337
10355
  attr_accessor :response
10338
10356
 
10357
+ # Weight report mode. used for weighted Load Balancing.
10358
+ # Corresponds to the JSON property `weightReportMode`
10359
+ # @return [String]
10360
+ attr_accessor :weight_report_mode
10361
+
10339
10362
  def initialize(**args)
10340
10363
  update!(**args)
10341
10364
  end
@@ -10349,6 +10372,7 @@ module Google
10349
10372
  @proxy_header = args[:proxy_header] if args.key?(:proxy_header)
10350
10373
  @request_path = args[:request_path] if args.key?(:request_path)
10351
10374
  @response = args[:response] if args.key?(:response)
10375
+ @weight_report_mode = args[:weight_report_mode] if args.key?(:weight_report_mode)
10352
10376
  end
10353
10377
  end
10354
10378
 
@@ -11403,6 +11427,16 @@ module Google
11403
11427
  # @return [Hash<String,String>]
11404
11428
  attr_accessor :annotations
11405
11429
 
11430
+ # URL of the forwarding rule associated with the health status of the instance.
11431
+ # Corresponds to the JSON property `forwardingRule`
11432
+ # @return [String]
11433
+ attr_accessor :forwarding_rule
11434
+
11435
+ # A forwarding rule IP address assigned to this instance.
11436
+ # Corresponds to the JSON property `forwardingRuleIp`
11437
+ # @return [String]
11438
+ attr_accessor :forwarding_rule_ip
11439
+
11406
11440
  # Health state of the instance.
11407
11441
  # Corresponds to the JSON property `healthState`
11408
11442
  # @return [String]
@@ -11443,6 +11477,8 @@ module Google
11443
11477
  # Update properties of this object
11444
11478
  def update!(**args)
11445
11479
  @annotations = args[:annotations] if args.key?(:annotations)
11480
+ @forwarding_rule = args[:forwarding_rule] if args.key?(:forwarding_rule)
11481
+ @forwarding_rule_ip = args[:forwarding_rule_ip] if args.key?(:forwarding_rule_ip)
11446
11482
  @health_state = args[:health_state] if args.key?(:health_state)
11447
11483
  @instance = args[:instance] if args.key?(:instance)
11448
11484
  @ip_address = args[:ip_address] if args.key?(:ip_address)
@@ -13771,17 +13807,11 @@ module Google
13771
13807
  attr_accessor :satisfies_pzs
13772
13808
  alias_method :satisfies_pzs?, :satisfies_pzs
13773
13809
 
13774
- # Sets the scheduling options for an Instance. NextID: 17
13810
+ # Sets the scheduling options for an Instance. NextID: 20
13775
13811
  # Corresponds to the JSON property `scheduling`
13776
13812
  # @return [Google::Apis::ComputeAlpha::Scheduling]
13777
13813
  attr_accessor :scheduling
13778
13814
 
13779
- # Secure labels to apply to this instance. These can be later modified by the
13780
- # update method. Maximum number of secure labels allowed is 300.
13781
- # Corresponds to the JSON property `secureLabels`
13782
- # @return [Array<String>]
13783
- attr_accessor :secure_labels
13784
-
13785
13815
  # Secure tags to apply to this instance. These can be later modified by the
13786
13816
  # update method. Maximum number of secure tags allowed is 300.
13787
13817
  # Corresponds to the JSON property `secureTags`
@@ -13834,7 +13864,8 @@ module Google
13834
13864
  # @return [String]
13835
13865
  attr_accessor :source_machine_image
13836
13866
 
13837
- # Source GMI encryption key when creating an instance from GMI.
13867
+ # Source machine image encryption key when creating an instance from a machine
13868
+ # image.
13838
13869
  # Corresponds to the JSON property `sourceMachineImageEncryptionKey`
13839
13870
  # @return [Google::Apis::ComputeAlpha::CustomerEncryptionKey]
13840
13871
  attr_accessor :source_machine_image_encryption_key
@@ -13917,7 +13948,6 @@ module Google
13917
13948
  @resource_status = args[:resource_status] if args.key?(:resource_status)
13918
13949
  @satisfies_pzs = args[:satisfies_pzs] if args.key?(:satisfies_pzs)
13919
13950
  @scheduling = args[:scheduling] if args.key?(:scheduling)
13920
- @secure_labels = args[:secure_labels] if args.key?(:secure_labels)
13921
13951
  @secure_tags = args[:secure_tags] if args.key?(:secure_tags)
13922
13952
  @self_link = args[:self_link] if args.key?(:self_link)
13923
13953
  @self_link_with_id = args[:self_link_with_id] if args.key?(:self_link_with_id)
@@ -14506,6 +14536,11 @@ module Google
14506
14536
  # @return [String]
14507
14537
  attr_accessor :instance_group
14508
14538
 
14539
+ # Instance lifecycle policy for this Instance Group Manager.
14540
+ # Corresponds to the JSON property `instanceLifecyclePolicy`
14541
+ # @return [Google::Apis::ComputeAlpha::InstanceGroupManagerInstanceLifecyclePolicy]
14542
+ attr_accessor :instance_lifecycle_policy
14543
+
14509
14544
  # The URL of the instance template that is specified for this managed instance
14510
14545
  # group. The group uses this template to create all new instances in the managed
14511
14546
  # instance group. The templates for existing instances in the group do not
@@ -14582,6 +14617,24 @@ module Google
14582
14617
  # @return [Fixnum]
14583
14618
  attr_accessor :target_size
14584
14619
 
14620
+ # The target number of stopped instances for this managed instance group. This
14621
+ # number changes when you:
14622
+ # - Stop instance using the stopInstances method or start instances using the
14623
+ # startInstances method.
14624
+ # - Manually change the targetStoppedSize using the update method.
14625
+ # Corresponds to the JSON property `targetStoppedSize`
14626
+ # @return [Fixnum]
14627
+ attr_accessor :target_stopped_size
14628
+
14629
+ # The target number of suspended instances for this managed instance group. This
14630
+ # number changes when you:
14631
+ # - Suspend instance using the suspendInstances method or resume instances using
14632
+ # the resumeInstances method.
14633
+ # - Manually change the targetSuspendedSize using the update method.
14634
+ # Corresponds to the JSON property `targetSuspendedSize`
14635
+ # @return [Fixnum]
14636
+ attr_accessor :target_suspended_size
14637
+
14585
14638
  # The update policy for this managed instance group.
14586
14639
  # Corresponds to the JSON property `updatePolicy`
14587
14640
  # @return [Google::Apis::ComputeAlpha::InstanceGroupManagerUpdatePolicy]
@@ -14621,6 +14674,7 @@ module Google
14621
14674
  @fingerprint = args[:fingerprint] if args.key?(:fingerprint)
14622
14675
  @id = args[:id] if args.key?(:id)
14623
14676
  @instance_group = args[:instance_group] if args.key?(:instance_group)
14677
+ @instance_lifecycle_policy = args[:instance_lifecycle_policy] if args.key?(:instance_lifecycle_policy)
14624
14678
  @instance_template = args[:instance_template] if args.key?(:instance_template)
14625
14679
  @kind = args[:kind] if args.key?(:kind)
14626
14680
  @name = args[:name] if args.key?(:name)
@@ -14633,6 +14687,8 @@ module Google
14633
14687
  @status = args[:status] if args.key?(:status)
14634
14688
  @target_pools = args[:target_pools] if args.key?(:target_pools)
14635
14689
  @target_size = args[:target_size] if args.key?(:target_size)
14690
+ @target_stopped_size = args[:target_stopped_size] if args.key?(:target_stopped_size)
14691
+ @target_suspended_size = args[:target_suspended_size] if args.key?(:target_suspended_size)
14636
14692
  @update_policy = args[:update_policy] if args.key?(:update_policy)
14637
14693
  @versions = args[:versions] if args.key?(:versions)
14638
14694
  @zone = args[:zone] if args.key?(:zone)
@@ -14701,6 +14757,30 @@ module Google
14701
14757
  # @return [Fixnum]
14702
14758
  attr_accessor :restarting
14703
14759
 
14760
+ # [Output Only] The number of instances in the managed instance group that are
14761
+ # scheduled to be resumed or are currently being resumed.
14762
+ # Corresponds to the JSON property `resuming`
14763
+ # @return [Fixnum]
14764
+ attr_accessor :resuming
14765
+
14766
+ # [Output Only] The number of instances in the managed instance group that are
14767
+ # scheduled to be started or are currently being started.
14768
+ # Corresponds to the JSON property `starting`
14769
+ # @return [Fixnum]
14770
+ attr_accessor :starting
14771
+
14772
+ # [Output Only] The number of instances in the managed instance group that are
14773
+ # scheduled to be stopped or are currently being stopped.
14774
+ # Corresponds to the JSON property `stopping`
14775
+ # @return [Fixnum]
14776
+ attr_accessor :stopping
14777
+
14778
+ # [Output Only] The number of instances in the managed instance group that are
14779
+ # scheduled to be suspended or are currently being suspended.
14780
+ # Corresponds to the JSON property `suspending`
14781
+ # @return [Fixnum]
14782
+ attr_accessor :suspending
14783
+
14704
14784
  # [Output Only] The number of instances in the managed instance group that are
14705
14785
  # being verified. See the managedInstances[].currentAction property in the
14706
14786
  # listManagedInstances method documentation.
@@ -14722,6 +14802,10 @@ module Google
14722
14802
  @recreating = args[:recreating] if args.key?(:recreating)
14723
14803
  @refreshing = args[:refreshing] if args.key?(:refreshing)
14724
14804
  @restarting = args[:restarting] if args.key?(:restarting)
14805
+ @resuming = args[:resuming] if args.key?(:resuming)
14806
+ @starting = args[:starting] if args.key?(:starting)
14807
+ @stopping = args[:stopping] if args.key?(:stopping)
14808
+ @suspending = args[:suspending] if args.key?(:suspending)
14725
14809
  @verifying = args[:verifying] if args.key?(:verifying)
14726
14810
  end
14727
14811
  end
@@ -14887,6 +14971,55 @@ module Google
14887
14971
  end
14888
14972
  end
14889
14973
 
14974
+ #
14975
+ class InstanceGroupManagerInstanceLifecyclePolicy
14976
+ include Google::Apis::Core::Hashable
14977
+
14978
+ # The configuration for metadata based readiness signal sent by the instance
14979
+ # during initialization when stopping / suspending an instance. The Instance
14980
+ # Group Manager will wait for a signal that indicates successful initialization
14981
+ # before stopping / suspending an instance.
14982
+ # If a successful readiness signal is not sent before timeout, the corresponding
14983
+ # instance will not be stopped / suspended. Instead, an error will be visible in
14984
+ # the lastAttempt.errors field of the managed instance in the
14985
+ # listmanagedinstances method.
14986
+ # If metadataBasedReadinessSignal.timeoutSec is unset, the Instance Group
14987
+ # Manager will directly proceed to suspend / stop instances, skipping
14988
+ # initialization on them.
14989
+ # Corresponds to the JSON property `metadataBasedReadinessSignal`
14990
+ # @return [Google::Apis::ComputeAlpha::InstanceGroupManagerInstanceLifecyclePolicyMetadataBasedReadinessSignal]
14991
+ attr_accessor :metadata_based_readiness_signal
14992
+
14993
+ def initialize(**args)
14994
+ update!(**args)
14995
+ end
14996
+
14997
+ # Update properties of this object
14998
+ def update!(**args)
14999
+ @metadata_based_readiness_signal = args[:metadata_based_readiness_signal] if args.key?(:metadata_based_readiness_signal)
15000
+ end
15001
+ end
15002
+
15003
+ #
15004
+ class InstanceGroupManagerInstanceLifecyclePolicyMetadataBasedReadinessSignal
15005
+ include Google::Apis::Core::Hashable
15006
+
15007
+ # The number of seconds to wait for a readiness signal during initialization
15008
+ # before timing out.
15009
+ # Corresponds to the JSON property `timeoutSec`
15010
+ # @return [Fixnum]
15011
+ attr_accessor :timeout_sec
15012
+
15013
+ def initialize(**args)
15014
+ update!(**args)
15015
+ end
15016
+
15017
+ # Update properties of this object
15018
+ def update!(**args)
15019
+ @timeout_sec = args[:timeout_sec] if args.key?(:timeout_sec)
15020
+ end
15021
+ end
15022
+
14890
15023
  # [Output Only] A list of managed instance groups.
14891
15024
  class InstanceGroupManagerList
14892
15025
  include Google::Apis::Core::Hashable
@@ -15644,6 +15777,26 @@ module Google
15644
15777
  end
15645
15778
  end
15646
15779
 
15780
+ #
15781
+ class InstanceGroupManagersResumeInstancesRequest
15782
+ include Google::Apis::Core::Hashable
15783
+
15784
+ # The URLs of one or more instances to resume. This can be a full URL or a
15785
+ # partial URL, such as zones/[ZONE]/instances/[INSTANCE_NAME].
15786
+ # Corresponds to the JSON property `instances`
15787
+ # @return [Array<String>]
15788
+ attr_accessor :instances
15789
+
15790
+ def initialize(**args)
15791
+ update!(**args)
15792
+ end
15793
+
15794
+ # Update properties of this object
15795
+ def update!(**args)
15796
+ @instances = args[:instances] if args.key?(:instances)
15797
+ end
15798
+ end
15799
+
15647
15800
  #
15648
15801
  class InstanceGroupManagersScopedList
15649
15802
  include Google::Apis::Core::Hashable
@@ -15811,6 +15964,82 @@ module Google
15811
15964
  end
15812
15965
  end
15813
15966
 
15967
+ #
15968
+ class InstanceGroupManagersStartInstancesRequest
15969
+ include Google::Apis::Core::Hashable
15970
+
15971
+ # The URLs of one or more instances to start. This can be a full URL or a
15972
+ # partial URL, such as zones/[ZONE]/instances/[INSTANCE_NAME].
15973
+ # Corresponds to the JSON property `instances`
15974
+ # @return [Array<String>]
15975
+ attr_accessor :instances
15976
+
15977
+ def initialize(**args)
15978
+ update!(**args)
15979
+ end
15980
+
15981
+ # Update properties of this object
15982
+ def update!(**args)
15983
+ @instances = args[:instances] if args.key?(:instances)
15984
+ end
15985
+ end
15986
+
15987
+ #
15988
+ class InstanceGroupManagersStopInstancesRequest
15989
+ include Google::Apis::Core::Hashable
15990
+
15991
+ # If this flag is set to true, the Instance Group Manager will proceed to stop
15992
+ # the instances, skipping initialization on them.
15993
+ # Corresponds to the JSON property `forceStop`
15994
+ # @return [Boolean]
15995
+ attr_accessor :force_stop
15996
+ alias_method :force_stop?, :force_stop
15997
+
15998
+ # The URLs of one or more instances to stop. This can be a full URL or a partial
15999
+ # URL, such as zones/[ZONE]/instances/[INSTANCE_NAME].
16000
+ # Corresponds to the JSON property `instances`
16001
+ # @return [Array<String>]
16002
+ attr_accessor :instances
16003
+
16004
+ def initialize(**args)
16005
+ update!(**args)
16006
+ end
16007
+
16008
+ # Update properties of this object
16009
+ def update!(**args)
16010
+ @force_stop = args[:force_stop] if args.key?(:force_stop)
16011
+ @instances = args[:instances] if args.key?(:instances)
16012
+ end
16013
+ end
16014
+
16015
+ #
16016
+ class InstanceGroupManagersSuspendInstancesRequest
16017
+ include Google::Apis::Core::Hashable
16018
+
16019
+ # If this flag is set to true, the Instance Group Manager will proceed to
16020
+ # suspend the instances, skipping initialization on them.
16021
+ # Corresponds to the JSON property `forceSuspend`
16022
+ # @return [Boolean]
16023
+ attr_accessor :force_suspend
16024
+ alias_method :force_suspend?, :force_suspend
16025
+
16026
+ # The URLs of one or more instances to suspend. This can be a full URL or a
16027
+ # partial URL, such as zones/[ZONE]/instances/[INSTANCE_NAME].
16028
+ # Corresponds to the JSON property `instances`
16029
+ # @return [Array<String>]
16030
+ attr_accessor :instances
16031
+
16032
+ def initialize(**args)
16033
+ update!(**args)
16034
+ end
16035
+
16036
+ # Update properties of this object
16037
+ def update!(**args)
16038
+ @force_suspend = args[:force_suspend] if args.key?(:force_suspend)
16039
+ @instances = args[:instances] if args.key?(:instances)
16040
+ end
16041
+ end
16042
+
15814
16043
  # InstanceGroupManagers.updatePerInstanceConfigs
15815
16044
  class InstanceGroupManagersUpdatePerInstanceConfigsReq
15816
16045
  include Google::Apis::Core::Hashable
@@ -16605,7 +16834,7 @@ module Google
16605
16834
  # @return [Array<String>]
16606
16835
  attr_accessor :resource_policies
16607
16836
 
16608
- # Sets the scheduling options for an Instance. NextID: 17
16837
+ # Sets the scheduling options for an Instance. NextID: 20
16609
16838
  # Corresponds to the JSON property `scheduling`
16610
16839
  # @return [Google::Apis::ComputeAlpha::Scheduling]
16611
16840
  attr_accessor :scheduling
@@ -16977,7 +17206,8 @@ module Google
16977
17206
  class InstancesGetEffectiveFirewallsResponseEffectiveFirewallPolicy
16978
17207
  include Google::Apis::Core::Hashable
16979
17208
 
16980
- # [Output Only] The display name of the firewall policy.
17209
+ # [Output Only] Deprecated, please use short name instead. The display name of
17210
+ # the firewall policy.
16981
17211
  # Corresponds to the JSON property `displayName`
16982
17212
  # @return [String]
16983
17213
  attr_accessor :display_name
@@ -16992,6 +17222,11 @@ module Google
16992
17222
  # @return [Array<Google::Apis::ComputeAlpha::FirewallPolicyRule>]
16993
17223
  attr_accessor :rules
16994
17224
 
17225
+ # [Output Only] The short name of the firewall policy.
17226
+ # Corresponds to the JSON property `shortName`
17227
+ # @return [String]
17228
+ attr_accessor :short_name
17229
+
16995
17230
  # [Output Only] The type of the firewall policy.
16996
17231
  # Corresponds to the JSON property `type`
16997
17232
  # @return [String]
@@ -17006,6 +17241,7 @@ module Google
17006
17241
  @display_name = args[:display_name] if args.key?(:display_name)
17007
17242
  @name = args[:name] if args.key?(:name)
17008
17243
  @rules = args[:rules] if args.key?(:rules)
17244
+ @short_name = args[:short_name] if args.key?(:short_name)
17009
17245
  @type = args[:type] if args.key?(:type)
17010
17246
  end
17011
17247
  end
@@ -17958,6 +18194,17 @@ module Google
17958
18194
  # @return [String]
17959
18195
  attr_accessor :bandwidth
17960
18196
 
18197
+ # Up to 16 candidate prefixes that control the allocation of
18198
+ # cloudRouterIpv6Address and customerRouterIpv6Address for this attachment. Each
18199
+ # prefix must be in the Global Unique Address (GUA) space. It is highly
18200
+ # recommended that it be in a range owned by the requestor. A GUA in a range
18201
+ # owned by Google will cause the request to fail. Google will select an
18202
+ # available prefix from the supplied candidates or fail the request. If not
18203
+ # supplied, a /125 from a Google-owned GUA block will be selected.
18204
+ # Corresponds to the JSON property `candidateIpv6Subnets`
18205
+ # @return [Array<String>]
18206
+ attr_accessor :candidate_ipv6_subnets
18207
+
17961
18208
  # Up to 16 candidate prefixes that can be used to restrict the allocation of
17962
18209
  # cloudRouterIpAddress and customerRouterIpAddress for this attachment. All
17963
18210
  # prefixes must be within link-local address space (169.254.0.0/16) and must be /
@@ -17975,6 +18222,20 @@ module Google
17975
18222
  # @return [String]
17976
18223
  attr_accessor :cloud_router_ip_address
17977
18224
 
18225
+ # [Output Only] IPv6 address + prefix length to be configured on Cloud Router
18226
+ # Interface for this interconnect attachment.
18227
+ # Corresponds to the JSON property `cloudRouterIpv6Address`
18228
+ # @return [String]
18229
+ attr_accessor :cloud_router_ipv6_address
18230
+
18231
+ # If supplied, the interface id (index within the subnet) to be used for the
18232
+ # cloud router address. The id must be in the range of 1 to 6. If a subnet mask
18233
+ # is supplied, it must be /125, and the subnet should either be 0 or match the
18234
+ # selected subnet.
18235
+ # Corresponds to the JSON property `cloudRouterIpv6InterfaceId`
18236
+ # @return [String]
18237
+ attr_accessor :cloud_router_ipv6_interface_id
18238
+
17978
18239
  # [Output Only] Creation timestamp in RFC3339 text format.
17979
18240
  # Corresponds to the JSON property `creationTimestamp`
17980
18241
  # @return [String]
@@ -17986,6 +18247,20 @@ module Google
17986
18247
  # @return [String]
17987
18248
  attr_accessor :customer_router_ip_address
17988
18249
 
18250
+ # [Output Only] IPv6 address + prefix length to be configured on the customer
18251
+ # router subinterface for this interconnect attachment.
18252
+ # Corresponds to the JSON property `customerRouterIpv6Address`
18253
+ # @return [String]
18254
+ attr_accessor :customer_router_ipv6_address
18255
+
18256
+ # If supplied, the interface id (index within the subnet) to be used for the
18257
+ # customer router address. The id must be in the range of 1 to 6. If a subnet
18258
+ # mask is supplied, it must be /125, and the subnet should either be 0 or match
18259
+ # the selected subnet.
18260
+ # Corresponds to the JSON property `customerRouterIpv6InterfaceId`
18261
+ # @return [String]
18262
+ attr_accessor :customer_router_ipv6_interface_id
18263
+
17989
18264
  # [Output Only] Dataplane version for this InterconnectAttachment.
17990
18265
  # Corresponds to the JSON property `dataplaneVersion`
17991
18266
  # @return [Fixnum]
@@ -18015,8 +18290,9 @@ module Google
18015
18290
  # type of attachment.
18016
18291
  # - IPSEC indicates that the attachment carries only traffic encrypted by an
18017
18292
  # IPsec device such as an HA VPN gateway. VMs cannot directly send traffic to,
18018
- # or receive traffic from, such an attachment. To use IPsec over Interconnect,
18019
- # create the attachment using this option.
18293
+ # or receive traffic from, such an attachment. To use IPsec-encrypted Cloud
18294
+ # Interconnect, create the attachment using this option.
18295
+ # Not currently available in all Interconnect locations.
18020
18296
  # Corresponds to the JSON property `encryption`
18021
18297
  # @return [String]
18022
18298
  attr_accessor :encryption
@@ -18044,14 +18320,15 @@ module Google
18044
18320
  # only for interconnect attachment that has the encryption option as IPSEC. The
18045
18321
  # addresses must be RFC 1918 IP address ranges. When creating HA VPN gateway
18046
18322
  # over the interconnect attachment, if the attachment is configured to use an
18047
- # RFC 1918 IP address, then the VPN gateway?s IP address will be allocated from
18048
- # the IP address range specified here. For example, if the HA VPN gateway?s
18323
+ # RFC 1918 IP address, then the VPN gateway's IP address will be allocated from
18324
+ # the IP address range specified here. For example, if the HA VPN gateway's
18049
18325
  # interface 0 is paired to this interconnect attachment, then an RFC 1918 IP
18050
18326
  # address for the VPN gateway interface 0 will be allocated from the IP address
18051
18327
  # specified for this interconnect attachment. If this field is not specified for
18052
18328
  # interconnect attachment that has encryption option as IPSEC, later on when
18053
18329
  # creating HA VPN gateway on this interconnect attachment, the HA VPN gateway's
18054
18330
  # IP address will be allocated from regional external IP address pool.
18331
+ # Not currently available in all Interconnect locations.
18055
18332
  # Corresponds to the JSON property `ipsecInternalAddresses`
18056
18333
  # @return [Array<String>]
18057
18334
  attr_accessor :ipsec_internal_addresses
@@ -18161,6 +18438,14 @@ module Google
18161
18438
  # @return [String]
18162
18439
  attr_accessor :self_link_with_id
18163
18440
 
18441
+ # The stack type for this interconnect attachment to identify whether the IPv6
18442
+ # feature is enabled or not. If not specified, IPV4_ONLY will be used.
18443
+ # This field can be both set at interconnect attachments creation and update
18444
+ # interconnect attachment operations.
18445
+ # Corresponds to the JSON property `stackType`
18446
+ # @return [String]
18447
+ attr_accessor :stack_type
18448
+
18164
18449
  # [Output Only] The current state of this attachment's functionality. Enum
18165
18450
  # values ACTIVE and UNPROVISIONED are shared by DEDICATED/PRIVATE, PARTNER, and
18166
18451
  # PARTNER_PROVIDER interconnect attachments, while enum values PENDING_PARTNER,
@@ -18208,10 +18493,15 @@ module Google
18208
18493
  def update!(**args)
18209
18494
  @admin_enabled = args[:admin_enabled] if args.key?(:admin_enabled)
18210
18495
  @bandwidth = args[:bandwidth] if args.key?(:bandwidth)
18496
+ @candidate_ipv6_subnets = args[:candidate_ipv6_subnets] if args.key?(:candidate_ipv6_subnets)
18211
18497
  @candidate_subnets = args[:candidate_subnets] if args.key?(:candidate_subnets)
18212
18498
  @cloud_router_ip_address = args[:cloud_router_ip_address] if args.key?(:cloud_router_ip_address)
18499
+ @cloud_router_ipv6_address = args[:cloud_router_ipv6_address] if args.key?(:cloud_router_ipv6_address)
18500
+ @cloud_router_ipv6_interface_id = args[:cloud_router_ipv6_interface_id] if args.key?(:cloud_router_ipv6_interface_id)
18213
18501
  @creation_timestamp = args[:creation_timestamp] if args.key?(:creation_timestamp)
18214
18502
  @customer_router_ip_address = args[:customer_router_ip_address] if args.key?(:customer_router_ip_address)
18503
+ @customer_router_ipv6_address = args[:customer_router_ipv6_address] if args.key?(:customer_router_ipv6_address)
18504
+ @customer_router_ipv6_interface_id = args[:customer_router_ipv6_interface_id] if args.key?(:customer_router_ipv6_interface_id)
18215
18505
  @dataplane_version = args[:dataplane_version] if args.key?(:dataplane_version)
18216
18506
  @description = args[:description] if args.key?(:description)
18217
18507
  @edge_availability_domain = args[:edge_availability_domain] if args.key?(:edge_availability_domain)
@@ -18234,6 +18524,7 @@ module Google
18234
18524
  @router = args[:router] if args.key?(:router)
18235
18525
  @self_link = args[:self_link] if args.key?(:self_link)
18236
18526
  @self_link_with_id = args[:self_link_with_id] if args.key?(:self_link_with_id)
18527
+ @stack_type = args[:stack_type] if args.key?(:stack_type)
18237
18528
  @state = args[:state] if args.key?(:state)
18238
18529
  @type = args[:type] if args.key?(:type)
18239
18530
  @vlan_tag8021q = args[:vlan_tag8021q] if args.key?(:vlan_tag8021q)
@@ -20142,7 +20433,7 @@ module Google
20142
20433
  include Google::Apis::Core::Hashable
20143
20434
 
20144
20435
  # Location configurations mapped by location name. Currently only zone names are
20145
- # supported and must be represented as valid internal URLs, like: zones/us-
20436
+ # supported and must be represented as valid internal URLs, such as zones/us-
20146
20437
  # central1-a.
20147
20438
  # Corresponds to the JSON property `locations`
20148
20439
  # @return [Hash<String,Google::Apis::ComputeAlpha::LocationPolicyLocation>]
@@ -20162,7 +20453,7 @@ module Google
20162
20453
  class LocationPolicyLocation
20163
20454
  include Google::Apis::Core::Hashable
20164
20455
 
20165
- #
20456
+ # Preference for a given locaction: ALLOW or DENY.
20166
20457
  # Corresponds to the JSON property `preference`
20167
20458
  # @return [String]
20168
20459
  attr_accessor :preference
@@ -21148,6 +21439,13 @@ module Google
21148
21439
  # @return [String]
21149
21440
  attr_accessor :tag
21150
21441
 
21442
+ # [Output Only] The eventual status of the instance. The instance group manager
21443
+ # will not be identified as stable till each managed instance reaches its
21444
+ # targetStatus.
21445
+ # Corresponds to the JSON property `targetStatus`
21446
+ # @return [String]
21447
+ attr_accessor :target_status
21448
+
21151
21449
  # [Output Only] Intended version of this instance.
21152
21450
  # Corresponds to the JSON property `version`
21153
21451
  # @return [Google::Apis::ComputeAlpha::ManagedInstanceVersion]
@@ -21169,6 +21467,7 @@ module Google
21169
21467
  @preserved_state_from_config = args[:preserved_state_from_config] if args.key?(:preserved_state_from_config)
21170
21468
  @preserved_state_from_policy = args[:preserved_state_from_policy] if args.key?(:preserved_state_from_policy)
21171
21469
  @tag = args[:tag] if args.key?(:tag)
21470
+ @target_status = args[:target_status] if args.key?(:target_status)
21172
21471
  @version = args[:version] if args.key?(:version)
21173
21472
  end
21174
21473
  end
@@ -21807,6 +22106,12 @@ module Google
21807
22106
  # @return [String]
21808
22107
  attr_accessor :network_endpoint_type
21809
22108
 
22109
+ # The target service url used to set up private service connection to a Google
22110
+ # API. An example value is: "asia-northeast3-cloudkms.googleapis.com"
22111
+ # Corresponds to the JSON property `pscTargetService`
22112
+ # @return [String]
22113
+ attr_accessor :psc_target_service
22114
+
21810
22115
  # [Output Only] The URL of the region where the network endpoint group is
21811
22116
  # located.
21812
22117
  # Corresponds to the JSON property `region`
@@ -21823,8 +22128,8 @@ module Google
21823
22128
  # @return [String]
21824
22129
  attr_accessor :self_link_with_id
21825
22130
 
21826
- # Configuration for a Serverless Deployment network endpoint group (NEG). The
21827
- # platform must be provided.
22131
+ # Configuration for a serverless network endpoint group (NEG). The platform must
22132
+ # be provided.
21828
22133
  # Note: The target backend service must be in the same project and located in
21829
22134
  # the same region as the Serverless NEG.
21830
22135
  # Corresponds to the JSON property `serverlessDeployment`
@@ -21872,6 +22177,7 @@ module Google
21872
22177
  @name = args[:name] if args.key?(:name)
21873
22178
  @network = args[:network] if args.key?(:network)
21874
22179
  @network_endpoint_type = args[:network_endpoint_type] if args.key?(:network_endpoint_type)
22180
+ @psc_target_service = args[:psc_target_service] if args.key?(:psc_target_service)
21875
22181
  @region = args[:region] if args.key?(:region)
21876
22182
  @self_link = args[:self_link] if args.key?(:self_link)
21877
22183
  @self_link_with_id = args[:self_link_with_id] if args.key?(:self_link_with_id)
@@ -22295,8 +22601,8 @@ module Google
22295
22601
  end
22296
22602
  end
22297
22603
 
22298
- # Configuration for a Serverless Deployment network endpoint group (NEG). The
22299
- # platform must be provided.
22604
+ # Configuration for a serverless network endpoint group (NEG). The platform must
22605
+ # be provided.
22300
22606
  # Note: The target backend service must be in the same project and located in
22301
22607
  # the same region as the Serverless NEG.
22302
22608
  class NetworkEndpointGroupServerlessDeployment
@@ -22304,10 +22610,10 @@ module Google
22304
22610
 
22305
22611
  # The platform of the backend target(s) of this NEG. Possible values include:
22306
22612
  #
22307
- # - apigateway.googleapis.com
22308
- # - appengine.googleapies.com
22309
- # - cloudfunctions.googleapis.com
22310
- # - run.googleapis.com
22613
+ # - API Gateway: apigateway.googleapis.com
22614
+ # - App Engine: appengine.googleapis.com
22615
+ # - Cloud Functions: cloudfunctions.googleapis.com
22616
+ # - Cloud Run: run.googleapis.com
22311
22617
  # Corresponds to the JSON property `platform`
22312
22618
  # @return [String]
22313
22619
  attr_accessor :platform
@@ -22316,8 +22622,8 @@ module Google
22316
22622
  # explicitly or in the urlMask. The resource identified by this value is
22317
22623
  # platform-specific and is as follows:
22318
22624
  #
22319
- # - API Gateway: The gateway id
22320
- # - AppEngine: The service name
22625
+ # - API Gateway: The gateway ID
22626
+ # - App Engine: The service name
22321
22627
  # - Cloud Functions: The function name
22322
22628
  # - Cloud Run: The service name
22323
22629
  # Corresponds to the JSON property `resource`
@@ -22325,23 +22631,24 @@ module Google
22325
22631
  attr_accessor :resource
22326
22632
 
22327
22633
  # A template to parse platform-specific fields from a request URL. URL mask
22328
- # allows for routing to multiple services on the same serverless platform
22329
- # without having to create multiple Network Endpoint Groups and backend services.
22330
- # The fields parsed by this template is platform-specific and are as follows:
22634
+ # allows for routing to multiple resources on the same serverless platform
22635
+ # without having to create multiple Network Endpoint Groups and backend
22636
+ # resources. The fields parsed by this template are platform-specific and are as
22637
+ # follows:
22331
22638
  #
22332
- # - API Gateway: The gateway id
22333
- # - AppEngine: The service and version
22334
- # - Cloud Functions: The function
22639
+ # - API Gateway: The gateway ID
22640
+ # - App Engine: The service and version
22641
+ # - Cloud Functions: The function name
22335
22642
  # - Cloud Run: The service and tag
22336
22643
  # Corresponds to the JSON property `urlMask`
22337
22644
  # @return [String]
22338
22645
  attr_accessor :url_mask
22339
22646
 
22340
- # The optional resource version. The version identified by this value is as
22647
+ # The optional resource version. The version identified by this value is
22341
22648
  # platform-specific and is follows:
22342
22649
  #
22343
22650
  # - API Gateway: Unused
22344
- # - AppEngine: The service version
22651
+ # - App Engine: The service version
22345
22652
  # - Cloud Functions: Unused
22346
22653
  # - Cloud Run: The service tag
22347
22654
  # Corresponds to the JSON property `version`
@@ -22696,8 +23003,9 @@ module Google
22696
23003
 
22697
23004
  # Fingerprint hash of contents stored in this network interface. This field will
22698
23005
  # be ignored when inserting an Instance or adding a NetworkInterface. An up-to-
22699
- # date fingerprint must be provided in order to update the NetworkInterface,
22700
- # otherwise the request will fail with error 412 conditionNotMet.
23006
+ # date fingerprint must be provided in order to update the NetworkInterface. The
23007
+ # request will fail with error 400 Bad Request if the fingerprint is not
23008
+ # provided, or 412 Precondition Failed if the fingerprint is out of date.
22701
23009
  # Corresponds to the JSON property `fingerprint`
22702
23010
  # NOTE: Values are automatically base64 encoded/decoded in the client library.
22703
23011
  # @return [String]
@@ -23246,7 +23554,8 @@ module Google
23246
23554
  class NetworksGetEffectiveFirewallsResponseEffectiveFirewallPolicy
23247
23555
  include Google::Apis::Core::Hashable
23248
23556
 
23249
- # [Output Only] The display name of the firewall policy.
23557
+ # [Output Only] Deprecated, please use short name instead. The display name of
23558
+ # the firewall policy.
23250
23559
  # Corresponds to the JSON property `displayName`
23251
23560
  # @return [String]
23252
23561
  attr_accessor :display_name
@@ -23261,6 +23570,11 @@ module Google
23261
23570
  # @return [Array<Google::Apis::ComputeAlpha::FirewallPolicyRule>]
23262
23571
  attr_accessor :rules
23263
23572
 
23573
+ # [Output Only] The short name of the firewall policy.
23574
+ # Corresponds to the JSON property `shortName`
23575
+ # @return [String]
23576
+ attr_accessor :short_name
23577
+
23264
23578
  # [Output Only] The type of the firewall policy.
23265
23579
  # Corresponds to the JSON property `type`
23266
23580
  # @return [String]
@@ -23275,6 +23589,7 @@ module Google
23275
23589
  @display_name = args[:display_name] if args.key?(:display_name)
23276
23590
  @name = args[:name] if args.key?(:name)
23277
23591
  @rules = args[:rules] if args.key?(:rules)
23592
+ @short_name = args[:short_name] if args.key?(:short_name)
23278
23593
  @type = args[:type] if args.key?(:type)
23279
23594
  end
23280
23595
  end
@@ -25604,41 +25919,6 @@ module Google
25604
25919
  # @return [String]
25605
25920
  attr_accessor :kind
25606
25921
 
25607
- # `Any` contains an arbitrary serialized protocol buffer message along with a
25608
- # URL that describes the type of the serialized message.
25609
- # Protobuf library provides support to pack/unpack Any values in the form of
25610
- # utility functions or additional generated methods of the Any type.
25611
- # Example 1: Pack and unpack a message in C++.
25612
- # Foo foo = ...; Any any; any.PackFrom(foo); ... if (any.UnpackTo(&foo)) ` ... `
25613
- # Example 2: Pack and unpack a message in Java.
25614
- # Foo foo = ...; Any any = Any.pack(foo); ... if (any.is(Foo.class)) ` foo = any.
25615
- # unpack(Foo.class); `
25616
- # Example 3: Pack and unpack a message in Python.
25617
- # foo = Foo(...) any = Any() any.Pack(foo) ... if any.Is(Foo.DESCRIPTOR): any.
25618
- # Unpack(foo) ...
25619
- # Example 4: Pack and unpack a message in Go
25620
- # foo := &pb.Foo`...` any, err := anypb.New(foo) if err != nil ` ... ` ... foo :=
25621
- # &pb.Foo`` if err := any.UnmarshalTo(foo); err != nil ` ... `
25622
- # The pack methods provided by protobuf library will by default use 'type.
25623
- # googleapis.com/full.type.name' as the type URL and the unpack methods only use
25624
- # the fully qualified type name after the last '/' in the type URL, for example "
25625
- # foo.bar.com/x/y.z" will yield type name "y.z".
25626
- # JSON ==== The JSON representation of an `Any` value uses the regular
25627
- # representation of the deserialized, embedded message, with an additional field
25628
- # `@type` which contains the type URL. Example:
25629
- # package google.profile; message Person ` string first_name = 1; string
25630
- # last_name = 2; `
25631
- # ` "@type": "type.googleapis.com/google.profile.Person", "firstName": , "
25632
- # lastName": `
25633
- # If the embedded message type is well-known and has a custom JSON
25634
- # representation, that representation will be embedded adding a field `value`
25635
- # which holds the custom JSON in addition to the `@type` field. Example (for
25636
- # message [google.protobuf.Duration][]):
25637
- # ` "@type": "type.googleapis.com/google.protobuf.Duration", "value": "1.212s" `
25638
- # Corresponds to the JSON property `metadata`
25639
- # @return [Google::Apis::ComputeAlpha::Any]
25640
- attr_accessor :metadata
25641
-
25642
25922
  # [Output Only] Name of the operation.
25643
25923
  # Corresponds to the JSON property `name`
25644
25924
  # @return [String]
@@ -25745,7 +26025,6 @@ module Google
25745
26025
  @id = args[:id] if args.key?(:id)
25746
26026
  @insert_time = args[:insert_time] if args.key?(:insert_time)
25747
26027
  @kind = args[:kind] if args.key?(:kind)
25748
- @metadata = args[:metadata] if args.key?(:metadata)
25749
26028
  @name = args[:name] if args.key?(:name)
25750
26029
  @operation_group_id = args[:operation_group_id] if args.key?(:operation_group_id)
25751
26030
  @operation_type = args[:operation_type] if args.key?(:operation_type)
@@ -29657,7 +29936,8 @@ module Google
29657
29936
 
29658
29937
  # Skip instances which cannot be deleted (instances not belonging to this
29659
29938
  # managed group, already being deleted or being abandoned). If `false`, fail
29660
- # whole flow, if such instance is passed.
29939
+ # whole flow, if such instance is passed. DEPRECATED: Use
29940
+ # skip_instances_on_validation_error instead.
29661
29941
  # Corresponds to the JSON property `skipInapplicableInstances`
29662
29942
  # @return [Boolean]
29663
29943
  attr_accessor :skip_inapplicable_instances
@@ -29894,6 +30174,26 @@ module Google
29894
30174
  end
29895
30175
  end
29896
30176
 
30177
+ #
30178
+ class RegionInstanceGroupManagersResumeInstancesRequest
30179
+ include Google::Apis::Core::Hashable
30180
+
30181
+ # The URLs of one or more instances to resume. This can be a full URL or a
30182
+ # partial URL, such as zones/[ZONE]/instances/[INSTANCE_NAME].
30183
+ # Corresponds to the JSON property `instances`
30184
+ # @return [Array<String>]
30185
+ attr_accessor :instances
30186
+
30187
+ def initialize(**args)
30188
+ update!(**args)
30189
+ end
30190
+
30191
+ # Update properties of this object
30192
+ def update!(**args)
30193
+ @instances = args[:instances] if args.key?(:instances)
30194
+ end
30195
+ end
30196
+
29897
30197
  #
29898
30198
  class RegionInstanceGroupManagersSetAutoHealingRequest
29899
30199
  include Google::Apis::Core::Hashable
@@ -29963,6 +30263,82 @@ module Google
29963
30263
  end
29964
30264
  end
29965
30265
 
30266
+ #
30267
+ class RegionInstanceGroupManagersStartInstancesRequest
30268
+ include Google::Apis::Core::Hashable
30269
+
30270
+ # The URLs of one or more instances to start. This can be a full URL or a
30271
+ # partial URL, such as zones/[ZONE]/instances/[INSTANCE_NAME].
30272
+ # Corresponds to the JSON property `instances`
30273
+ # @return [Array<String>]
30274
+ attr_accessor :instances
30275
+
30276
+ def initialize(**args)
30277
+ update!(**args)
30278
+ end
30279
+
30280
+ # Update properties of this object
30281
+ def update!(**args)
30282
+ @instances = args[:instances] if args.key?(:instances)
30283
+ end
30284
+ end
30285
+
30286
+ #
30287
+ class RegionInstanceGroupManagersStopInstancesRequest
30288
+ include Google::Apis::Core::Hashable
30289
+
30290
+ # If this flag is set to true, the Instance Group Manager will proceed to stop
30291
+ # the instances, skipping initialization on them.
30292
+ # Corresponds to the JSON property `forceStop`
30293
+ # @return [Boolean]
30294
+ attr_accessor :force_stop
30295
+ alias_method :force_stop?, :force_stop
30296
+
30297
+ # The URLs of one or more instances to stop. This can be a full URL or a partial
30298
+ # URL, such as zones/[ZONE]/instances/[INSTANCE_NAME].
30299
+ # Corresponds to the JSON property `instances`
30300
+ # @return [Array<String>]
30301
+ attr_accessor :instances
30302
+
30303
+ def initialize(**args)
30304
+ update!(**args)
30305
+ end
30306
+
30307
+ # Update properties of this object
30308
+ def update!(**args)
30309
+ @force_stop = args[:force_stop] if args.key?(:force_stop)
30310
+ @instances = args[:instances] if args.key?(:instances)
30311
+ end
30312
+ end
30313
+
30314
+ #
30315
+ class RegionInstanceGroupManagersSuspendInstancesRequest
30316
+ include Google::Apis::Core::Hashable
30317
+
30318
+ # If this flag is set to true, the Instance Group Manager will proceed to
30319
+ # suspend the instances, skipping initialization on them.
30320
+ # Corresponds to the JSON property `forceSuspend`
30321
+ # @return [Boolean]
30322
+ attr_accessor :force_suspend
30323
+ alias_method :force_suspend?, :force_suspend
30324
+
30325
+ # The URLs of one or more instances to suspend. This can be a full URL or a
30326
+ # partial URL, such as zones/[ZONE]/instances/[INSTANCE_NAME].
30327
+ # Corresponds to the JSON property `instances`
30328
+ # @return [Array<String>]
30329
+ attr_accessor :instances
30330
+
30331
+ def initialize(**args)
30332
+ update!(**args)
30333
+ end
30334
+
30335
+ # Update properties of this object
30336
+ def update!(**args)
30337
+ @force_suspend = args[:force_suspend] if args.key?(:force_suspend)
30338
+ @instances = args[:instances] if args.key?(:instances)
30339
+ end
30340
+ end
30341
+
29966
30342
  #
29967
30343
  class RegionInstanceGroupsListInstances
29968
30344
  include Google::Apis::Core::Hashable
@@ -32047,6 +32423,14 @@ module Google
32047
32423
  class Route
32048
32424
  include Google::Apis::Core::Hashable
32049
32425
 
32426
+ # Whether this route can conflict with existing subnetworks. Setting this to
32427
+ # true allows this route to conflict with subnetworks that have already been
32428
+ # configured on the corresponding network.
32429
+ # Corresponds to the JSON property `allowConflictingSubnetworks`
32430
+ # @return [Boolean]
32431
+ attr_accessor :allow_conflicting_subnetworks
32432
+ alias_method :allow_conflicting_subnetworks?, :allow_conflicting_subnetworks
32433
+
32050
32434
  # [Output Only] Creation timestamp in RFC3339 text format.
32051
32435
  # Corresponds to the JSON property `creationTimestamp`
32052
32436
  # @return [String]
@@ -32070,6 +32454,12 @@ module Google
32070
32454
  # @return [Fixnum]
32071
32455
  attr_accessor :id
32072
32456
 
32457
+ # ILB route behavior when ILB is deemed unhealthy based on user specified
32458
+ # threshold on the Backend Service of the internal load balancing.
32459
+ # Corresponds to the JSON property `ilbRouteBehaviorOnUnhealthy`
32460
+ # @return [String]
32461
+ attr_accessor :ilb_route_behavior_on_unhealthy
32462
+
32073
32463
  # [Output Only] Type of this resource. Always compute#routes for Route resources.
32074
32464
  # Corresponds to the JSON property `kind`
32075
32465
  # @return [String]
@@ -32180,10 +32570,12 @@ module Google
32180
32570
 
32181
32571
  # Update properties of this object
32182
32572
  def update!(**args)
32573
+ @allow_conflicting_subnetworks = args[:allow_conflicting_subnetworks] if args.key?(:allow_conflicting_subnetworks)
32183
32574
  @creation_timestamp = args[:creation_timestamp] if args.key?(:creation_timestamp)
32184
32575
  @description = args[:description] if args.key?(:description)
32185
32576
  @dest_range = args[:dest_range] if args.key?(:dest_range)
32186
32577
  @id = args[:id] if args.key?(:id)
32578
+ @ilb_route_behavior_on_unhealthy = args[:ilb_route_behavior_on_unhealthy] if args.key?(:ilb_route_behavior_on_unhealthy)
32187
32579
  @kind = args[:kind] if args.key?(:kind)
32188
32580
  @name = args[:name] if args.key?(:name)
32189
32581
  @network = args[:network] if args.key?(:network)
@@ -32413,7 +32805,8 @@ module Google
32413
32805
  attr_accessor :description
32414
32806
 
32415
32807
  # Field to indicate if a router is dedicated to use with encrypted Interconnect
32416
- # Attachment (Encrypted Interconnect feature).
32808
+ # Attachment (IPsec-encrypted Cloud Interconnect feature).
32809
+ # Not currently available in all Interconnect locations.
32417
32810
  # Corresponds to the JSON property `encryptedInterconnectRouter`
32418
32811
  # @return [Boolean]
32419
32812
  attr_accessor :encrypted_interconnect_router
@@ -32686,7 +33079,7 @@ module Google
32686
33079
  # successive keepalive messages that BGP receives from a peer.
32687
33080
  # BGP will use the smaller of either the local hold time value or the peer's
32688
33081
  # hold time value as the hold time for the BGP connection between the two peers.
32689
- # If set, this value must be between 1 and 120. The default is 20.
33082
+ # If set, this value must be between 20 and 60. The default is 20.
32690
33083
  # Corresponds to the JSON property `keepaliveInterval`
32691
33084
  # @return [Fixnum]
32692
33085
  attr_accessor :keepalive_interval
@@ -32717,12 +33110,11 @@ module Google
32717
33110
  # User-specified list of prefix groups to advertise in custom mode, which can
32718
33111
  # take one of the following options:
32719
33112
  # - ALL_SUBNETS: Advertises all available subnets, including peer VPC subnets.
32720
- # - ALL_VPC_SUBNETS: Advertises the router's own VPC subnets.
32721
- # - ALL_PEER_VPC_SUBNETS: Advertises peer subnets of the router's VPC network.
32722
- # Note that this field can only be populated if advertise_mode is CUSTOM and
32723
- # overrides the list defined for the router (in the "bgp" message). These groups
32724
- # are advertised in addition to any specified prefixes. Leave this field blank
32725
- # to advertise no custom groups.
33113
+ # - ALL_VPC_SUBNETS: Advertises the router's own VPC subnets. Note that this
33114
+ # field can only be populated if advertise_mode is CUSTOM and overrides the list
33115
+ # defined for the router (in the "bgp" message). These groups are advertised in
33116
+ # addition to any specified prefixes. Leave this field blank to advertise no
33117
+ # custom groups.
32726
33118
  # Corresponds to the JSON property `advertisedGroups`
32727
33119
  # @return [Array<String>]
32728
33120
  attr_accessor :advertised_groups
@@ -32758,6 +33150,12 @@ module Google
32758
33150
  # @return [String]
32759
33151
  attr_accessor :enable
32760
33152
 
33153
+ # Enable IPv6 traffic over BGP Peer. If not specified, it is disabled by default.
33154
+ # Corresponds to the JSON property `enableIpv6`
33155
+ # @return [Boolean]
33156
+ attr_accessor :enable_ipv6
33157
+ alias_method :enable_ipv6?, :enable_ipv6
33158
+
32761
33159
  # Name of the interface the BGP peer is associated with.
32762
33160
  # Corresponds to the JSON property `interfaceName`
32763
33161
  # @return [String]
@@ -32769,6 +33167,11 @@ module Google
32769
33167
  # @return [String]
32770
33168
  attr_accessor :ip_address
32771
33169
 
33170
+ # IPv6 address of the interface inside Google Cloud Platform.
33171
+ # Corresponds to the JSON property `ipv6NexthopAddress`
33172
+ # @return [String]
33173
+ attr_accessor :ipv6_nexthop_address
33174
+
32772
33175
  # [Output Only] The resource that configures and manages this BGP peer.
32773
33176
  # - MANAGED_BY_USER is the default value and can be managed by you or other
32774
33177
  # users
@@ -32802,6 +33205,11 @@ module Google
32802
33205
  # @return [String]
32803
33206
  attr_accessor :peer_ip_address
32804
33207
 
33208
+ # IPv6 address of the BGP interface outside Google Cloud Platform.
33209
+ # Corresponds to the JSON property `peerIpv6NexthopAddress`
33210
+ # @return [String]
33211
+ attr_accessor :peer_ipv6_nexthop_address
33212
+
32805
33213
  # URI of the VM instance that is used as third-party router appliances such as
32806
33214
  # Next Gen Firewalls, Virtual Routers, or Router Appliances. The VM instance
32807
33215
  # must be located in zones contained in the same region as this Cloud Router.
@@ -32822,12 +33230,15 @@ module Google
32822
33230
  @advertised_route_priority = args[:advertised_route_priority] if args.key?(:advertised_route_priority)
32823
33231
  @bfd = args[:bfd] if args.key?(:bfd)
32824
33232
  @enable = args[:enable] if args.key?(:enable)
33233
+ @enable_ipv6 = args[:enable_ipv6] if args.key?(:enable_ipv6)
32825
33234
  @interface_name = args[:interface_name] if args.key?(:interface_name)
32826
33235
  @ip_address = args[:ip_address] if args.key?(:ip_address)
33236
+ @ipv6_nexthop_address = args[:ipv6_nexthop_address] if args.key?(:ipv6_nexthop_address)
32827
33237
  @management_type = args[:management_type] if args.key?(:management_type)
32828
33238
  @name = args[:name] if args.key?(:name)
32829
33239
  @peer_asn = args[:peer_asn] if args.key?(:peer_asn)
32830
33240
  @peer_ip_address = args[:peer_ip_address] if args.key?(:peer_ip_address)
33241
+ @peer_ipv6_nexthop_address = args[:peer_ipv6_nexthop_address] if args.key?(:peer_ipv6_nexthop_address)
32831
33242
  @router_appliance_instance = args[:router_appliance_instance] if args.key?(:router_appliance_instance)
32832
33243
  end
32833
33244
  end
@@ -33148,6 +33559,19 @@ module Google
33148
33559
  # @return [Array<String>]
33149
33560
  attr_accessor :drain_nat_ips
33150
33561
 
33562
+ # Enable Dynamic Port Allocation.
33563
+ # If not specified, it is disabled by default.
33564
+ # If set to true,
33565
+ # - Dynamic Port Allocation will be enabled on this NAT config.
33566
+ # - enableEndpointIndependentMapping cannot be set to true.
33567
+ # - If minPorts is set, minPortsPerVm must be set to a power of two greater than
33568
+ # or equal to 32. If minPortsPerVm is not set, a minimum of 32 ports will be
33569
+ # allocated to a VM from this NAT config.
33570
+ # Corresponds to the JSON property `enableDynamicPortAllocation`
33571
+ # @return [Boolean]
33572
+ attr_accessor :enable_dynamic_port_allocation
33573
+ alias_method :enable_dynamic_port_allocation?, :enable_dynamic_port_allocation
33574
+
33151
33575
  #
33152
33576
  # Corresponds to the JSON property `enableEndpointIndependentMapping`
33153
33577
  # @return [Boolean]
@@ -33164,6 +33588,18 @@ module Google
33164
33588
  # @return [Google::Apis::ComputeAlpha::RouterNatLogConfig]
33165
33589
  attr_accessor :log_config
33166
33590
 
33591
+ # Maximum number of ports allocated to a VM from this NAT config when Dynamic
33592
+ # Port Allocation is enabled.
33593
+ # If Dynamic Port Allocation is not enabled, this field has no effect.
33594
+ # If Dynamic Port Allocation is enabled, and this field is set, it must be set
33595
+ # to a power of two greater than minPortsPerVm, or 64 if minPortsPerVm is not
33596
+ # set.
33597
+ # If Dynamic Port Allocation is enabled and this field is not set, a maximum of
33598
+ # 65536 ports will be allocated to a VM from this NAT config.
33599
+ # Corresponds to the JSON property `maxPortsPerVm`
33600
+ # @return [Fixnum]
33601
+ attr_accessor :max_ports_per_vm
33602
+
33167
33603
  # Minimum number of ports allocated to a VM from this NAT config. If not set, a
33168
33604
  # default number of ports is allocated to a VM. This is rounded up to the
33169
33605
  # nearest power of 2. For example, if the value of this field is 50, at least 64
@@ -33250,9 +33686,11 @@ module Google
33250
33686
  # Update properties of this object
33251
33687
  def update!(**args)
33252
33688
  @drain_nat_ips = args[:drain_nat_ips] if args.key?(:drain_nat_ips)
33689
+ @enable_dynamic_port_allocation = args[:enable_dynamic_port_allocation] if args.key?(:enable_dynamic_port_allocation)
33253
33690
  @enable_endpoint_independent_mapping = args[:enable_endpoint_independent_mapping] if args.key?(:enable_endpoint_independent_mapping)
33254
33691
  @icmp_idle_timeout_sec = args[:icmp_idle_timeout_sec] if args.key?(:icmp_idle_timeout_sec)
33255
33692
  @log_config = args[:log_config] if args.key?(:log_config)
33693
+ @max_ports_per_vm = args[:max_ports_per_vm] if args.key?(:max_ports_per_vm)
33256
33694
  @min_ports_per_vm = args[:min_ports_per_vm] if args.key?(:min_ports_per_vm)
33257
33695
  @name = args[:name] if args.key?(:name)
33258
33696
  @nat_ip_allocate_option = args[:nat_ip_allocate_option] if args.key?(:nat_ip_allocate_option)
@@ -33313,7 +33751,7 @@ module Google
33313
33751
  attr_accessor :description
33314
33752
 
33315
33753
  # CEL expression that specifies the match condition that egress traffic from a
33316
- # VM is evaluated against. If it evaluates to true, the corresponding ?action?
33754
+ # VM is evaluated against. If it evaluates to true, the corresponding `action`
33317
33755
  # is enforced.
33318
33756
  # The following examples are valid match expressions:
33319
33757
  # "inIpRange(destination.ip, '1.1.0.0/16') || inIpRange(destination.ip, '2.2.0.0/
@@ -33464,11 +33902,22 @@ module Google
33464
33902
  # @return [Google::Apis::ComputeAlpha::BfdStatus]
33465
33903
  attr_accessor :bfd_status
33466
33904
 
33905
+ # Enable IPv6 traffic over BGP Peer. If not specified, it is disabled by default.
33906
+ # Corresponds to the JSON property `enableIpv6`
33907
+ # @return [Boolean]
33908
+ attr_accessor :enable_ipv6
33909
+ alias_method :enable_ipv6?, :enable_ipv6
33910
+
33467
33911
  # IP address of the local BGP interface.
33468
33912
  # Corresponds to the JSON property `ipAddress`
33469
33913
  # @return [String]
33470
33914
  attr_accessor :ip_address
33471
33915
 
33916
+ # IPv6 address of the local BGP interface.
33917
+ # Corresponds to the JSON property `ipv6NexthopAddress`
33918
+ # @return [String]
33919
+ attr_accessor :ipv6_nexthop_address
33920
+
33472
33921
  # URL of the VPN tunnel that this BGP peer controls.
33473
33922
  # Corresponds to the JSON property `linkedVpnTunnel`
33474
33923
  # @return [String]
@@ -33489,6 +33938,18 @@ module Google
33489
33938
  # @return [String]
33490
33939
  attr_accessor :peer_ip_address
33491
33940
 
33941
+ # IPv6 address of the remote BGP interface.
33942
+ # Corresponds to the JSON property `peerIpv6NexthopAddress`
33943
+ # @return [String]
33944
+ attr_accessor :peer_ipv6_nexthop_address
33945
+
33946
+ # [Output only] URI of the VM instance that is used as third-party router
33947
+ # appliances such as Next Gen Firewalls, Virtual Routers, or Router Appliances.
33948
+ # The VM instance is the peer side of the BGP session.
33949
+ # Corresponds to the JSON property `routerApplianceInstance`
33950
+ # @return [String]
33951
+ attr_accessor :router_appliance_instance
33952
+
33492
33953
  # BGP state as specified in RFC1771.
33493
33954
  # Corresponds to the JSON property `state`
33494
33955
  # @return [String]
@@ -33518,11 +33979,15 @@ module Google
33518
33979
  def update!(**args)
33519
33980
  @advertised_routes = args[:advertised_routes] if args.key?(:advertised_routes)
33520
33981
  @bfd_status = args[:bfd_status] if args.key?(:bfd_status)
33982
+ @enable_ipv6 = args[:enable_ipv6] if args.key?(:enable_ipv6)
33521
33983
  @ip_address = args[:ip_address] if args.key?(:ip_address)
33984
+ @ipv6_nexthop_address = args[:ipv6_nexthop_address] if args.key?(:ipv6_nexthop_address)
33522
33985
  @linked_vpn_tunnel = args[:linked_vpn_tunnel] if args.key?(:linked_vpn_tunnel)
33523
33986
  @name = args[:name] if args.key?(:name)
33524
33987
  @num_learned_routes = args[:num_learned_routes] if args.key?(:num_learned_routes)
33525
33988
  @peer_ip_address = args[:peer_ip_address] if args.key?(:peer_ip_address)
33989
+ @peer_ipv6_nexthop_address = args[:peer_ipv6_nexthop_address] if args.key?(:peer_ipv6_nexthop_address)
33990
+ @router_appliance_instance = args[:router_appliance_instance] if args.key?(:router_appliance_instance)
33526
33991
  @state = args[:state] if args.key?(:state)
33527
33992
  @status = args[:status] if args.key?(:status)
33528
33993
  @uptime = args[:uptime] if args.key?(:uptime)
@@ -34068,7 +34533,7 @@ module Google
34068
34533
  end
34069
34534
  end
34070
34535
 
34071
- # Sets the scheduling options for an Instance. NextID: 17
34536
+ # Sets the scheduling options for an Instance. NextID: 20
34072
34537
  class Scheduling
34073
34538
  include Google::Apis::Core::Hashable
34074
34539
 
@@ -34106,15 +34571,14 @@ module Google
34106
34571
  # @return [String]
34107
34572
  attr_accessor :location_hint
34108
34573
 
34109
- # Specifies the number of hours after instance creation where the instance won't
34110
- # be scheduled for maintenance.
34574
+ # Specifies the number of hours after VM instance creation where the VM won't be
34575
+ # scheduled for maintenance.
34111
34576
  # Corresponds to the JSON property `maintenanceFreezeDurationHours`
34112
34577
  # @return [Fixnum]
34113
34578
  attr_accessor :maintenance_freeze_duration_hours
34114
34579
 
34115
- # Specifies whether this VM may be a stable fleet VM. Setting this to "Periodic"
34116
- # designates this VM as a Stable Fleet VM.
34117
- # See go/stable-fleet-ug for more details.
34580
+ # For more information about maintenance intervals, see Setting maintenance
34581
+ # intervals.
34118
34582
  # Corresponds to the JSON property `maintenanceInterval`
34119
34583
  # @return [String]
34120
34584
  attr_accessor :maintenance_interval
@@ -34683,7 +35147,7 @@ module Google
34683
35147
  class SecurityPolicyRule
34684
35148
  include Google::Apis::Core::Hashable
34685
35149
 
34686
- # The Action to preform when the client connection triggers the rule. Can
35150
+ # The Action to perform when the client connection triggers the rule. Can
34687
35151
  # currently be either "allow" or "deny()" where valid values for status are 403,
34688
35152
  # 404, and 502.
34689
35153
  # Corresponds to the JSON property `action`
@@ -34712,6 +35176,11 @@ module Google
34712
35176
  attr_accessor :enable_logging
34713
35177
  alias_method :enable_logging?, :enable_logging
34714
35178
 
35179
+ # Optional, additional actions that are performed on headers.
35180
+ # Corresponds to the JSON property `headerAction`
35181
+ # @return [Google::Apis::ComputeAlpha::SecurityPolicyRuleHttpHeaderAction]
35182
+ attr_accessor :header_action
35183
+
34715
35184
  # [Output only] Type of the resource. Always compute#securityPolicyRule for
34716
35185
  # security policy rules
34717
35186
  # Corresponds to the JSON property `kind`
@@ -34787,6 +35256,7 @@ module Google
34787
35256
  @description = args[:description] if args.key?(:description)
34788
35257
  @direction = args[:direction] if args.key?(:direction)
34789
35258
  @enable_logging = args[:enable_logging] if args.key?(:enable_logging)
35259
+ @header_action = args[:header_action] if args.key?(:header_action)
34790
35260
  @kind = args[:kind] if args.key?(:kind)
34791
35261
  @match = args[:match] if args.key?(:match)
34792
35262
  @preview = args[:preview] if args.key?(:preview)
@@ -34800,6 +35270,50 @@ module Google
34800
35270
  end
34801
35271
  end
34802
35272
 
35273
+ #
35274
+ class SecurityPolicyRuleHttpHeaderAction
35275
+ include Google::Apis::Core::Hashable
35276
+
35277
+ # The list of request headers to add or overwrite if they're already present.
35278
+ # Corresponds to the JSON property `requestHeadersToAdds`
35279
+ # @return [Array<Google::Apis::ComputeAlpha::SecurityPolicyRuleHttpHeaderActionHttpHeaderOption>]
35280
+ attr_accessor :request_headers_to_adds
35281
+
35282
+ def initialize(**args)
35283
+ update!(**args)
35284
+ end
35285
+
35286
+ # Update properties of this object
35287
+ def update!(**args)
35288
+ @request_headers_to_adds = args[:request_headers_to_adds] if args.key?(:request_headers_to_adds)
35289
+ end
35290
+ end
35291
+
35292
+ #
35293
+ class SecurityPolicyRuleHttpHeaderActionHttpHeaderOption
35294
+ include Google::Apis::Core::Hashable
35295
+
35296
+ # The name of the header to set.
35297
+ # Corresponds to the JSON property `headerName`
35298
+ # @return [String]
35299
+ attr_accessor :header_name
35300
+
35301
+ # The value to set the named header to.
35302
+ # Corresponds to the JSON property `headerValue`
35303
+ # @return [String]
35304
+ attr_accessor :header_value
35305
+
35306
+ def initialize(**args)
35307
+ update!(**args)
35308
+ end
35309
+
35310
+ # Update properties of this object
35311
+ def update!(**args)
35312
+ @header_name = args[:header_name] if args.key?(:header_name)
35313
+ @header_value = args[:header_value] if args.key?(:header_value)
35314
+ end
35315
+ end
35316
+
34803
35317
  # Represents a match condition that incoming traffic is evaluated against.
34804
35318
  # Exactly one field must be specified.
34805
35319
  class SecurityPolicyRuleMatcher
@@ -34965,29 +35479,20 @@ module Google
34965
35479
  include Google::Apis::Core::Hashable
34966
35480
 
34967
35481
  # Can only be specified if the action for the rule is "rate_based_ban". If
34968
- # specified, the key will be banned for the configured 'ban_duration' when the
34969
- # number of requests that exceed the 'rate_limit_threshold' also exceed this '
34970
- # ban_threshold'.
35482
+ # specified, determines the time (in seconds) the traffic will continue to be
35483
+ # banned by the rate limit after the rate falls below the threshold.
34971
35484
  # Corresponds to the JSON property `banDurationSec`
34972
35485
  # @return [Fixnum]
34973
35486
  attr_accessor :ban_duration_sec
34974
35487
 
34975
35488
  # Can only be specified if the action for the rule is "rate_based_ban". If
34976
- # specified, the key will be banned for the configured 'ban_duration' when the
34977
- # number of requests that exceed the 'rate_limit_threshold' also exceed this '
34978
- # ban_threshold'.
35489
+ # specified, the key will be banned for the configured 'ban_duration_sec' when
35490
+ # the number of requests that exceed the 'rate_limit_threshold' also exceed this
35491
+ # 'ban_threshold'.
34979
35492
  # Corresponds to the JSON property `banThreshold`
34980
35493
  # @return [Google::Apis::ComputeAlpha::SecurityPolicyRuleRateLimitOptionsThreshold]
34981
35494
  attr_accessor :ban_threshold
34982
35495
 
34983
- # Can only be specified if the action for the rule is "rate_based_ban" If
34984
- # specified, determines the time (in seconds) the traffic will continue to be
34985
- # blocked by the rate limit after the rate falls below the threshold. The
34986
- # default value is 0 seconds. [Deprecated] This field is deprecated.
34987
- # Corresponds to the JSON property `blockDuration`
34988
- # @return [Fixnum]
34989
- attr_accessor :block_duration
34990
-
34991
35496
  # Action to take when requests are under the given threshold. When requests are
34992
35497
  # throttled, this is also the action for all requests which are not dropped.
34993
35498
  # Valid options are "allow", "fairshare", and "drop_overload".
@@ -35013,12 +35518,6 @@ module Google
35013
35518
  # @return [Google::Apis::ComputeAlpha::SecurityPolicyRuleRateLimitOptionsThreshold]
35014
35519
  attr_accessor :rate_limit_threshold
35015
35520
 
35016
- # Rate in requests per second at which to begin ratelimiting. [Deprecated] This
35017
- # field is deprecated.
35018
- # Corresponds to the JSON property `thresholdRps`
35019
- # @return [Fixnum]
35020
- attr_accessor :threshold_rps
35021
-
35022
35521
  def initialize(**args)
35023
35522
  update!(**args)
35024
35523
  end
@@ -35027,12 +35526,10 @@ module Google
35027
35526
  def update!(**args)
35028
35527
  @ban_duration_sec = args[:ban_duration_sec] if args.key?(:ban_duration_sec)
35029
35528
  @ban_threshold = args[:ban_threshold] if args.key?(:ban_threshold)
35030
- @block_duration = args[:block_duration] if args.key?(:block_duration)
35031
35529
  @conform_action = args[:conform_action] if args.key?(:conform_action)
35032
35530
  @enforce_on_key = args[:enforce_on_key] if args.key?(:enforce_on_key)
35033
35531
  @exceed_action = args[:exceed_action] if args.key?(:exceed_action)
35034
35532
  @rate_limit_threshold = args[:rate_limit_threshold] if args.key?(:rate_limit_threshold)
35035
- @threshold_rps = args[:threshold_rps] if args.key?(:threshold_rps)
35036
35533
  end
35037
35534
  end
35038
35535
 
@@ -35267,10 +35764,16 @@ module Google
35267
35764
  # A service attachment represents a service that a producer has exposed. It
35268
35765
  # encapsulates the load balancer which fronts the service runs and a list of NAT
35269
35766
  # IP ranges that the producers uses to represent the consumers connecting to the
35270
- # service. next tag = 16
35767
+ # service. next tag = 19
35271
35768
  class ServiceAttachment
35272
35769
  include Google::Apis::Core::Hashable
35273
35770
 
35771
+ # [Output Only] An array of connections for all the consumers connected to this
35772
+ # service attachment.
35773
+ # Corresponds to the JSON property `connectedEndpoints`
35774
+ # @return [Array<Google::Apis::ComputeAlpha::ServiceAttachmentConnectedEndpoint>]
35775
+ attr_accessor :connected_endpoints
35776
+
35274
35777
  # The connection preference of service attachment. The value can be set to
35275
35778
  # ACCEPT_AUTOMATIC. An ACCEPT_AUTOMATIC service attachment is one that always
35276
35779
  # accepts the connection from consumer forwarding rules.
@@ -35278,12 +35781,23 @@ module Google
35278
35781
  # @return [String]
35279
35782
  attr_accessor :connection_preference
35280
35783
 
35784
+ # Projects that are allowed to connect to this service attachment.
35785
+ # Corresponds to the JSON property `consumerAcceptLists`
35786
+ # @return [Array<Google::Apis::ComputeAlpha::ServiceAttachmentConsumerProjectLimit>]
35787
+ attr_accessor :consumer_accept_lists
35788
+
35281
35789
  # [Output Only] An array of forwarding rules for all the consumers connected to
35282
35790
  # this service attachment.
35283
35791
  # Corresponds to the JSON property `consumerForwardingRules`
35284
35792
  # @return [Array<Google::Apis::ComputeAlpha::ServiceAttachmentConsumerForwardingRule>]
35285
35793
  attr_accessor :consumer_forwarding_rules
35286
35794
 
35795
+ # Projects that are not allowed to connect to this service attachment. The
35796
+ # project can be specified using its id or number.
35797
+ # Corresponds to the JSON property `consumerRejectLists`
35798
+ # @return [Array<String>]
35799
+ attr_accessor :consumer_reject_lists
35800
+
35287
35801
  # [Output Only] Creation timestamp in RFC3339 text format.
35288
35802
  # Corresponds to the JSON property `creationTimestamp`
35289
35803
  # @return [String]
@@ -35303,6 +35817,17 @@ module Google
35303
35817
  attr_accessor :enable_proxy_protocol
35304
35818
  alias_method :enable_proxy_protocol?, :enable_proxy_protocol
35305
35819
 
35820
+ # Fingerprint of this resource. A hash of the contents stored in this object.
35821
+ # This field is used in optimistic locking. This field will be ignored when
35822
+ # inserting a ServiceAttachment. An up-to-date fingerprint must be provided in
35823
+ # order to patch/update the ServiceAttachment; otherwise, the request will fail
35824
+ # with error 412 conditionNotMet. To see the latest fingerprint, make a get()
35825
+ # request to retrieve the ServiceAttachment.
35826
+ # Corresponds to the JSON property `fingerprint`
35827
+ # NOTE: Values are automatically base64 encoded/decoded in the client library.
35828
+ # @return [String]
35829
+ attr_accessor :fingerprint
35830
+
35306
35831
  # [Output Only] The unique identifier for the resource type. The server
35307
35832
  # generates this identifier.
35308
35833
  # Corresponds to the JSON property `id`
@@ -35337,6 +35862,11 @@ module Google
35337
35862
  # @return [String]
35338
35863
  attr_accessor :producer_forwarding_rule
35339
35864
 
35865
+ # [Output Only] An 128-bit global unique ID of the PSC service attachment.
35866
+ # Corresponds to the JSON property `pscServiceAttachmentId`
35867
+ # @return [Google::Apis::ComputeAlpha::Uint128]
35868
+ attr_accessor :psc_service_attachment_id
35869
+
35340
35870
  # [Output Only] URL of the region where the service attachment resides. This
35341
35871
  # field applies only to the region resource. You must specify this field as part
35342
35872
  # of the HTTP request URL. It is not settable as a field in the request body.
@@ -35349,24 +35879,36 @@ module Google
35349
35879
  # @return [String]
35350
35880
  attr_accessor :self_link
35351
35881
 
35882
+ # The URL of a service serving the endpoint identified by this service
35883
+ # attachment.
35884
+ # Corresponds to the JSON property `targetService`
35885
+ # @return [String]
35886
+ attr_accessor :target_service
35887
+
35352
35888
  def initialize(**args)
35353
35889
  update!(**args)
35354
35890
  end
35355
35891
 
35356
35892
  # Update properties of this object
35357
35893
  def update!(**args)
35894
+ @connected_endpoints = args[:connected_endpoints] if args.key?(:connected_endpoints)
35358
35895
  @connection_preference = args[:connection_preference] if args.key?(:connection_preference)
35896
+ @consumer_accept_lists = args[:consumer_accept_lists] if args.key?(:consumer_accept_lists)
35359
35897
  @consumer_forwarding_rules = args[:consumer_forwarding_rules] if args.key?(:consumer_forwarding_rules)
35898
+ @consumer_reject_lists = args[:consumer_reject_lists] if args.key?(:consumer_reject_lists)
35360
35899
  @creation_timestamp = args[:creation_timestamp] if args.key?(:creation_timestamp)
35361
35900
  @description = args[:description] if args.key?(:description)
35362
35901
  @enable_proxy_protocol = args[:enable_proxy_protocol] if args.key?(:enable_proxy_protocol)
35902
+ @fingerprint = args[:fingerprint] if args.key?(:fingerprint)
35363
35903
  @id = args[:id] if args.key?(:id)
35364
35904
  @kind = args[:kind] if args.key?(:kind)
35365
35905
  @name = args[:name] if args.key?(:name)
35366
35906
  @nat_subnets = args[:nat_subnets] if args.key?(:nat_subnets)
35367
35907
  @producer_forwarding_rule = args[:producer_forwarding_rule] if args.key?(:producer_forwarding_rule)
35908
+ @psc_service_attachment_id = args[:psc_service_attachment_id] if args.key?(:psc_service_attachment_id)
35368
35909
  @region = args[:region] if args.key?(:region)
35369
35910
  @self_link = args[:self_link] if args.key?(:self_link)
35911
+ @target_service = args[:target_service] if args.key?(:target_service)
35370
35912
  end
35371
35913
  end
35372
35914
 
@@ -35493,7 +36035,45 @@ module Google
35493
36035
  end
35494
36036
  end
35495
36037
 
36038
+ # [Output Only] A connection connected to this service attachment.
36039
+ class ServiceAttachmentConnectedEndpoint
36040
+ include Google::Apis::Core::Hashable
36041
+
36042
+ # The url of a connected endpoint.
36043
+ # Corresponds to the JSON property `endpoint`
36044
+ # @return [String]
36045
+ attr_accessor :endpoint
36046
+
36047
+ # The url of a consumer forwarding rule. [Deprecated] Do not use.
36048
+ # Corresponds to the JSON property `forwardingRule`
36049
+ # @return [String]
36050
+ attr_accessor :forwarding_rule
36051
+
36052
+ # The PSC connection id of the connected endpoint.
36053
+ # Corresponds to the JSON property `pscConnectionId`
36054
+ # @return [Fixnum]
36055
+ attr_accessor :psc_connection_id
36056
+
36057
+ # The status of a connected endpoint to this service attachment.
36058
+ # Corresponds to the JSON property `status`
36059
+ # @return [String]
36060
+ attr_accessor :status
36061
+
36062
+ def initialize(**args)
36063
+ update!(**args)
36064
+ end
36065
+
36066
+ # Update properties of this object
36067
+ def update!(**args)
36068
+ @endpoint = args[:endpoint] if args.key?(:endpoint)
36069
+ @forwarding_rule = args[:forwarding_rule] if args.key?(:forwarding_rule)
36070
+ @psc_connection_id = args[:psc_connection_id] if args.key?(:psc_connection_id)
36071
+ @status = args[:status] if args.key?(:status)
36072
+ end
36073
+ end
36074
+
35496
36075
  # [Output Only] A consumer forwarding rule connected to this service attachment.
36076
+ # [Deprecated] Do not use.
35497
36077
  class ServiceAttachmentConsumerForwardingRule
35498
36078
  include Google::Apis::Core::Hashable
35499
36079
 
@@ -35502,6 +36082,11 @@ module Google
35502
36082
  # @return [String]
35503
36083
  attr_accessor :forwarding_rule
35504
36084
 
36085
+ # The PSC connection id of the PSC Forwarding Rule.
36086
+ # Corresponds to the JSON property `pscConnectionId`
36087
+ # @return [Fixnum]
36088
+ attr_accessor :psc_connection_id
36089
+
35505
36090
  # The status of the forwarding rule.
35506
36091
  # Corresponds to the JSON property `status`
35507
36092
  # @return [String]
@@ -35514,10 +36099,36 @@ module Google
35514
36099
  # Update properties of this object
35515
36100
  def update!(**args)
35516
36101
  @forwarding_rule = args[:forwarding_rule] if args.key?(:forwarding_rule)
36102
+ @psc_connection_id = args[:psc_connection_id] if args.key?(:psc_connection_id)
35517
36103
  @status = args[:status] if args.key?(:status)
35518
36104
  end
35519
36105
  end
35520
36106
 
36107
+ #
36108
+ class ServiceAttachmentConsumerProjectLimit
36109
+ include Google::Apis::Core::Hashable
36110
+
36111
+ # The value of the limit to set.
36112
+ # Corresponds to the JSON property `connectionLimit`
36113
+ # @return [Fixnum]
36114
+ attr_accessor :connection_limit
36115
+
36116
+ # The project id or number for the project to set the limit for.
36117
+ # Corresponds to the JSON property `projectIdOrNum`
36118
+ # @return [String]
36119
+ attr_accessor :project_id_or_num
36120
+
36121
+ def initialize(**args)
36122
+ update!(**args)
36123
+ end
36124
+
36125
+ # Update properties of this object
36126
+ def update!(**args)
36127
+ @connection_limit = args[:connection_limit] if args.key?(:connection_limit)
36128
+ @project_id_or_num = args[:project_id_or_num] if args.key?(:project_id_or_num)
36129
+ end
36130
+ end
36131
+
35521
36132
  #
35522
36133
  class ServiceAttachmentList
35523
36134
  include Google::Apis::Core::Hashable
@@ -36458,7 +37069,7 @@ module Google
36458
37069
  # @return [String]
36459
37070
  attr_accessor :post_key_revocation_action_type
36460
37071
 
36461
- # Sets the scheduling options for an Instance. NextID: 17
37072
+ # Sets the scheduling options for an Instance. NextID: 20
36462
37073
  # Corresponds to the JSON property `scheduling`
36463
37074
  # @return [Google::Apis::ComputeAlpha::Scheduling]
36464
37075
  attr_accessor :scheduling
@@ -37612,7 +38223,7 @@ module Google
37612
38223
  # Can only be specified if VPC flow logging for this subnetwork is enabled.
37613
38224
  # Configures whether metadata fields should be added to the reported VPC flow
37614
38225
  # logs. Options are INCLUDE_ALL_METADATA, EXCLUDE_ALL_METADATA, and
37615
- # CUSTOM_METADATA. Default is INCLUDE_ALL_METADATA.
38226
+ # CUSTOM_METADATA. Default is EXCLUDE_ALL_METADATA.
37616
38227
  # Corresponds to the JSON property `metadata`
37617
38228
  # @return [String]
37618
38229
  attr_accessor :metadata
@@ -37717,9 +38328,7 @@ module Google
37717
38328
  # applicable to subnetworks that have the purpose set to
37718
38329
  # INTERNAL_HTTPS_LOAD_BALANCER and indicates that connections to the load
37719
38330
  # balancer are being drained. A subnetwork that is draining cannot be used or
37720
- # modified until it reaches a status of READY CREATING: Subnetwork is
37721
- # provisioning DELETING: Subnetwork is being deleted UPDATING: Subnetwork is
37722
- # being updated
38331
+ # modified until it reaches a status of READY
37723
38332
  # Corresponds to the JSON property `state`
37724
38333
  # @return [String]
37725
38334
  attr_accessor :state
@@ -38052,7 +38661,7 @@ module Google
38052
38661
 
38053
38662
  # Can only be specified if VPC flow logs for this subnetwork is enabled.
38054
38663
  # Configures whether all, none or a subset of metadata fields should be added to
38055
- # the reported VPC flow logs. Default is INCLUDE_ALL_METADATA.
38664
+ # the reported VPC flow logs. Default is EXCLUDE_ALL_METADATA.
38056
38665
  # Corresponds to the JSON property `metadata`
38057
38666
  # @return [String]
38058
38667
  attr_accessor :metadata
@@ -38240,7 +38849,8 @@ module Google
38240
38849
  end
38241
38850
  end
38242
38851
 
38243
- # Subsetting options to make L4 ILB support any number of backend instances
38852
+ # Subsetting configuration for this BackendService. Currently this is applicable
38853
+ # only for Internal TCP/UDP load balancing and Internal HTTP(S) load balancing.
38244
38854
  class Subsetting
38245
38855
  include Google::Apis::Core::Hashable
38246
38856
 
@@ -41929,6 +42539,31 @@ module Google
41929
42539
  end
41930
42540
  end
41931
42541
 
42542
+ #
42543
+ class Uint128
42544
+ include Google::Apis::Core::Hashable
42545
+
42546
+ #
42547
+ # Corresponds to the JSON property `high`
42548
+ # @return [Fixnum]
42549
+ attr_accessor :high
42550
+
42551
+ #
42552
+ # Corresponds to the JSON property `low`
42553
+ # @return [Fixnum]
42554
+ attr_accessor :low
42555
+
42556
+ def initialize(**args)
42557
+ update!(**args)
42558
+ end
42559
+
42560
+ # Update properties of this object
42561
+ def update!(**args)
42562
+ @high = args[:high] if args.key?(:high)
42563
+ @low = args[:low] if args.key?(:low)
42564
+ end
42565
+ end
42566
+
41932
42567
  # Upcoming Maintenance notification information.
41933
42568
  class UpcomingMaintenance
41934
42569
  include Google::Apis::Core::Hashable
@@ -43695,6 +44330,7 @@ module Google
43695
44330
  # present, the VPN Gateway will be used for IPsec-encrypted Cloud Interconnect;
43696
44331
  # all Egress or Ingress traffic for this VPN Gateway interface will go through
43697
44332
  # the specified interconnect attachment resource.
44333
+ # Not currently available in all Interconnect locations.
43698
44334
  # Corresponds to the JSON property `interconnectAttachment`
43699
44335
  # @return [String]
43700
44336
  attr_accessor :interconnect_attachment
@@ -43977,8 +44613,8 @@ module Google
43977
44613
  # - DEPROVISIONING: Resources are being deallocated for the VPN tunnel.
43978
44614
  # - FAILED: Tunnel creation has failed and the tunnel is not ready to be used.
43979
44615
  # - NO_INCOMING_PACKETS: No incoming packets from peer.
43980
- # - REJECTED: Tunnel configuration was rejected, can be result of being
43981
- # blacklisted.
44616
+ # - REJECTED: Tunnel configuration was rejected, can be result of being denied
44617
+ # access.
43982
44618
  # - ALLOCATING_RESOURCES: Cloud VPN is in the process of allocating all required
43983
44619
  # resources.
43984
44620
  # - STOPPED: Tunnel is stopped due to its Forwarding Rules being deleted for