google-apis-compute_alpha 0.4.0 → 0.9.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 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