google-apis-compute_v1 0.28.0 → 0.31.0

Sign up to get free protection for your applications and to get access to all the features.
@@ -3145,6 +3145,15 @@ module Google
3145
3145
  # @return [String]
3146
3146
  attr_accessor :load_balancing_scheme
3147
3147
 
3148
+ # A list of locality load balancing policies to be used in order of preference.
3149
+ # Either the policy or the customPolicy field should be set. Overrides any value
3150
+ # set in the localityLbPolicy field. localityLbPolicies is only supported when
3151
+ # the BackendService is referenced by a URL Map that is referenced by a target
3152
+ # gRPC proxy that has the validateForProxyless field set to true.
3153
+ # Corresponds to the JSON property `localityLbPolicies`
3154
+ # @return [Array<Google::Apis::ComputeV1::BackendServiceLocalityLoadBalancingPolicyConfig>]
3155
+ attr_accessor :locality_lb_policies
3156
+
3148
3157
  # The load balancing algorithm used within the scope of the locality. The
3149
3158
  # possible values are: - ROUND_ROBIN: This is a simple policy in which each
3150
3159
  # healthy backend is selected in round robin order. This is the default. -
@@ -3276,12 +3285,13 @@ module Google
3276
3285
  attr_accessor :subsetting
3277
3286
 
3278
3287
  # The backend service timeout has a different meaning depending on the type of
3279
- # load balancer. For more information see, Backend service settings The default
3280
- # is 30 seconds. The full range of timeout values allowed is 1 - 2,147,483,647
3281
- # seconds. This value can be overridden in the PathMatcher configuration of the
3282
- # UrlMap that references this backend service. Not supported when the backend
3283
- # service is referenced by a URL map that is bound to target gRPC proxy that has
3284
- # validateForProxyless field set to true. Instead, use maxStreamDuration.
3288
+ # load balancer. For more information see, Backend service settings. The default
3289
+ # is 30 seconds. The full range of timeout values allowed goes from 1 through 2,
3290
+ # 147,483,647 seconds. This value can be overridden in the PathMatcher
3291
+ # configuration of the UrlMap that references this backend service. Not
3292
+ # supported when the backend service is referenced by a URL map that is bound to
3293
+ # target gRPC proxy that has validateForProxyless field set to true. Instead,
3294
+ # use maxStreamDuration.
3285
3295
  # Corresponds to the JSON property `timeoutSec`
3286
3296
  # @return [Fixnum]
3287
3297
  attr_accessor :timeout_sec
@@ -3312,6 +3322,7 @@ module Google
3312
3322
  @id = args[:id] if args.key?(:id)
3313
3323
  @kind = args[:kind] if args.key?(:kind)
3314
3324
  @load_balancing_scheme = args[:load_balancing_scheme] if args.key?(:load_balancing_scheme)
3325
+ @locality_lb_policies = args[:locality_lb_policies] if args.key?(:locality_lb_policies)
3315
3326
  @locality_lb_policy = args[:locality_lb_policy] if args.key?(:locality_lb_policy)
3316
3327
  @log_config = args[:log_config] if args.key?(:log_config)
3317
3328
  @max_stream_duration = args[:max_stream_duration] if args.key?(:max_stream_duration)
@@ -3977,6 +3988,88 @@ module Google
3977
3988
  end
3978
3989
  end
3979
3990
 
3991
+ # Container for either a built-in LB policy supported by gRPC or Envoy or a
3992
+ # custom one implemented by the end user.
3993
+ class BackendServiceLocalityLoadBalancingPolicyConfig
3994
+ include Google::Apis::Core::Hashable
3995
+
3996
+ # The configuration for a custom policy implemented by the user and deployed
3997
+ # with the client.
3998
+ # Corresponds to the JSON property `customPolicy`
3999
+ # @return [Google::Apis::ComputeV1::BackendServiceLocalityLoadBalancingPolicyConfigCustomPolicy]
4000
+ attr_accessor :custom_policy
4001
+
4002
+ # The configuration for a built-in load balancing policy.
4003
+ # Corresponds to the JSON property `policy`
4004
+ # @return [Google::Apis::ComputeV1::BackendServiceLocalityLoadBalancingPolicyConfigPolicy]
4005
+ attr_accessor :policy
4006
+
4007
+ def initialize(**args)
4008
+ update!(**args)
4009
+ end
4010
+
4011
+ # Update properties of this object
4012
+ def update!(**args)
4013
+ @custom_policy = args[:custom_policy] if args.key?(:custom_policy)
4014
+ @policy = args[:policy] if args.key?(:policy)
4015
+ end
4016
+ end
4017
+
4018
+ # The configuration for a custom policy implemented by the user and deployed
4019
+ # with the client.
4020
+ class BackendServiceLocalityLoadBalancingPolicyConfigCustomPolicy
4021
+ include Google::Apis::Core::Hashable
4022
+
4023
+ # An optional, arbitrary JSON object with configuration data, understood by a
4024
+ # locally installed custom policy implementation.
4025
+ # Corresponds to the JSON property `data`
4026
+ # @return [String]
4027
+ attr_accessor :data
4028
+
4029
+ # Identifies the custom policy. The value should match the type the custom
4030
+ # implementation is registered with on the gRPC clients. It should follow
4031
+ # protocol buffer message naming conventions and include the full path (e.g.
4032
+ # myorg.CustomLbPolicy). The maximum length is 256 characters. Note that
4033
+ # specifying the same custom policy more than once for a backend is not a valid
4034
+ # configuration and will be rejected.
4035
+ # Corresponds to the JSON property `name`
4036
+ # @return [String]
4037
+ attr_accessor :name
4038
+
4039
+ def initialize(**args)
4040
+ update!(**args)
4041
+ end
4042
+
4043
+ # Update properties of this object
4044
+ def update!(**args)
4045
+ @data = args[:data] if args.key?(:data)
4046
+ @name = args[:name] if args.key?(:name)
4047
+ end
4048
+ end
4049
+
4050
+ # The configuration for a built-in load balancing policy.
4051
+ class BackendServiceLocalityLoadBalancingPolicyConfigPolicy
4052
+ include Google::Apis::Core::Hashable
4053
+
4054
+ # The name of a locality load balancer policy to be used. The value should be
4055
+ # one of the predefined ones as supported by localityLbPolicy, although at the
4056
+ # moment only ROUND_ROBIN is supported. This field should only be populated when
4057
+ # the customPolicy field is not used. Note that specifying the same policy more
4058
+ # than once for a backend is not a valid configuration and will be rejected.
4059
+ # Corresponds to the JSON property `name`
4060
+ # @return [String]
4061
+ attr_accessor :name
4062
+
4063
+ def initialize(**args)
4064
+ update!(**args)
4065
+ end
4066
+
4067
+ # Update properties of this object
4068
+ def update!(**args)
4069
+ @name = args[:name] if args.key?(:name)
4070
+ end
4071
+ end
4072
+
3980
4073
  # The available logging options for the load balancer traffic served by this
3981
4074
  # backend service.
3982
4075
  class BackendServiceLogConfig
@@ -8148,6 +8241,12 @@ module Google
8148
8241
  # @return [Fixnum]
8149
8242
  attr_accessor :priority
8150
8243
 
8244
+ # An optional name for the rule. This field is not a unique identifier and can
8245
+ # be updated.
8246
+ # Corresponds to the JSON property `ruleName`
8247
+ # @return [String]
8248
+ attr_accessor :rule_name
8249
+
8151
8250
  # [Output Only] Calculation of the complexity of a single firewall policy rule.
8152
8251
  # Corresponds to the JSON property `ruleTupleCount`
8153
8252
  # @return [Fixnum]
@@ -8192,6 +8291,7 @@ module Google
8192
8291
  @kind = args[:kind] if args.key?(:kind)
8193
8292
  @match = args[:match] if args.key?(:match)
8194
8293
  @priority = args[:priority] if args.key?(:priority)
8294
+ @rule_name = args[:rule_name] if args.key?(:rule_name)
8195
8295
  @rule_tuple_count = args[:rule_tuple_count] if args.key?(:rule_tuple_count)
8196
8296
  @target_resources = args[:target_resources] if args.key?(:target_resources)
8197
8297
  @target_secure_tags = args[:target_secure_tags] if args.key?(:target_secure_tags)
@@ -9205,13 +9305,9 @@ module Google
9205
9305
  # @return [String]
9206
9306
  attr_accessor :label_fingerprint
9207
9307
 
9208
- # A list of labels to apply for this resource. Each label key & value must
9209
- # comply with RFC1035. Specifically, the name must be 1-63 characters long and
9210
- # match the regular expression `[a-z]([-a-z0-9]*[a-z0-9])?` which means the
9211
- # first character must be a lowercase letter, and all following characters must
9212
- # be a dash, lowercase letter, or digit, except the last character, which cannot
9213
- # be a dash. For example, "webserver-frontend": "images". A label value can also
9214
- # be empty (e.g. "my-label": "").
9308
+ # A list of labels to apply for this resource. Each label must comply with the
9309
+ # requirements for labels. For example, "webserver-frontend": "images". A label
9310
+ # value can also be empty (e.g. "my-label": "").
9215
9311
  # Corresponds to the JSON property `labels`
9216
9312
  # @return [Hash<String,String>]
9217
9313
  attr_accessor :labels
@@ -9394,9 +9490,9 @@ module Google
9394
9490
 
9395
9491
  # The ID of a supported feature. To add multiple values, use commas to separate
9396
9492
  # values. Set to one or more of the following values: - VIRTIO_SCSI_MULTIQUEUE -
9397
- # WINDOWS - MULTI_IP_SUBNET - UEFI_COMPATIBLE - SECURE_BOOT - GVNIC -
9398
- # SEV_CAPABLE - SUSPEND_RESUME_COMPATIBLE - SEV_SNP_CAPABLE For more information,
9399
- # see Enabling guest operating system features.
9493
+ # WINDOWS - MULTI_IP_SUBNET - UEFI_COMPATIBLE - GVNIC - SEV_CAPABLE -
9494
+ # SUSPEND_RESUME_COMPATIBLE - SEV_SNP_CAPABLE For more information, see Enabling
9495
+ # guest operating system features.
9400
9496
  # Corresponds to the JSON property `type`
9401
9497
  # @return [String]
9402
9498
  attr_accessor :type
@@ -19224,125 +19320,45 @@ module Google
19224
19320
  end
19225
19321
  end
19226
19322
 
19227
- # The network endpoint.
19228
- class NetworkEndpoint
19229
- include Google::Apis::Core::Hashable
19230
-
19231
- # Metadata defined as annotations on the network endpoint.
19232
- # Corresponds to the JSON property `annotations`
19233
- # @return [Hash<String,String>]
19234
- attr_accessor :annotations
19235
-
19236
- # Optional fully qualified domain name of network endpoint. This can only be
19237
- # specified when NetworkEndpointGroup.network_endpoint_type is NON_GCP_FQDN_PORT.
19238
- # Corresponds to the JSON property `fqdn`
19239
- # @return [String]
19240
- attr_accessor :fqdn
19241
-
19242
- # The name for a specific VM instance that the IP address belongs to. This is
19243
- # required for network endpoints of type GCE_VM_IP_PORT. The instance must be in
19244
- # the same zone of network endpoint group. The name must be 1-63 characters long,
19245
- # and comply with RFC1035.
19246
- # Corresponds to the JSON property `instance`
19247
- # @return [String]
19248
- attr_accessor :instance
19249
-
19250
- # Optional IPv4 address of network endpoint. The IP address must belong to a VM
19251
- # in Compute Engine (either the primary IP or as part of an aliased IP range).
19252
- # If the IP address is not specified, then the primary IP address for the VM
19253
- # instance in the network that the network endpoint group belongs to will be
19254
- # used.
19255
- # Corresponds to the JSON property `ipAddress`
19256
- # @return [String]
19257
- attr_accessor :ip_address
19258
-
19259
- # Optional port number of network endpoint. If not specified, the defaultPort
19260
- # for the network endpoint group will be used.
19261
- # Corresponds to the JSON property `port`
19262
- # @return [Fixnum]
19263
- attr_accessor :port
19264
-
19265
- def initialize(**args)
19266
- update!(**args)
19267
- end
19268
-
19269
- # Update properties of this object
19270
- def update!(**args)
19271
- @annotations = args[:annotations] if args.key?(:annotations)
19272
- @fqdn = args[:fqdn] if args.key?(:fqdn)
19273
- @instance = args[:instance] if args.key?(:instance)
19274
- @ip_address = args[:ip_address] if args.key?(:ip_address)
19275
- @port = args[:port] if args.key?(:port)
19276
- end
19277
- end
19278
-
19279
- # Represents a collection of network endpoints. A network endpoint group (NEG)
19280
- # defines how a set of endpoints should be reached, whether they are reachable,
19281
- # and where they are located. For more information about using NEGs, see Setting
19282
- # up external HTTP(S) Load Balancing with internet NEGs, Setting up zonal NEGs,
19283
- # or Setting up external HTTP(S) Load Balancing with serverless NEGs.
19284
- class NetworkEndpointGroup
19323
+ # Represents a Google Cloud Armor network edge security service resource.
19324
+ class NetworkEdgeSecurityService
19285
19325
  include Google::Apis::Core::Hashable
19286
19326
 
19287
- # Metadata defined as annotations on the network endpoint group.
19288
- # Corresponds to the JSON property `annotations`
19289
- # @return [Hash<String,String>]
19290
- attr_accessor :annotations
19291
-
19292
- # Configuration for an App Engine network endpoint group (NEG). The service is
19293
- # optional, may be provided explicitly or in the URL mask. The version is
19294
- # optional and can only be provided explicitly or in the URL mask when service
19295
- # is present. Note: App Engine service must be in the same project and located
19296
- # in the same region as the Serverless NEG.
19297
- # Corresponds to the JSON property `appEngine`
19298
- # @return [Google::Apis::ComputeV1::NetworkEndpointGroupAppEngine]
19299
- attr_accessor :app_engine
19300
-
19301
- # Configuration for a Cloud Function network endpoint group (NEG). The function
19302
- # must be provided explicitly or in the URL mask. Note: Cloud Function must be
19303
- # in the same project and located in the same region as the Serverless NEG.
19304
- # Corresponds to the JSON property `cloudFunction`
19305
- # @return [Google::Apis::ComputeV1::NetworkEndpointGroupCloudFunction]
19306
- attr_accessor :cloud_function
19307
-
19308
- # Configuration for a Cloud Run network endpoint group (NEG). The service must
19309
- # be provided explicitly or in the URL mask. The tag is optional, may be
19310
- # provided explicitly or in the URL mask. Note: Cloud Run service must be in the
19311
- # same project and located in the same region as the Serverless NEG.
19312
- # Corresponds to the JSON property `cloudRun`
19313
- # @return [Google::Apis::ComputeV1::NetworkEndpointGroupCloudRun]
19314
- attr_accessor :cloud_run
19315
-
19316
19327
  # [Output Only] Creation timestamp in RFC3339 text format.
19317
19328
  # Corresponds to the JSON property `creationTimestamp`
19318
19329
  # @return [String]
19319
19330
  attr_accessor :creation_timestamp
19320
19331
 
19321
- # The default port used if the port number is not specified in the network
19322
- # endpoint.
19323
- # Corresponds to the JSON property `defaultPort`
19324
- # @return [Fixnum]
19325
- attr_accessor :default_port
19326
-
19327
19332
  # An optional description of this resource. Provide this property when you
19328
19333
  # create the resource.
19329
19334
  # Corresponds to the JSON property `description`
19330
19335
  # @return [String]
19331
19336
  attr_accessor :description
19332
19337
 
19338
+ # Fingerprint of this resource. A hash of the contents stored in this object.
19339
+ # This field is used in optimistic locking. This field will be ignored when
19340
+ # inserting a NetworkEdgeSecurityService. An up-to-date fingerprint must be
19341
+ # provided in order to update the NetworkEdgeSecurityService, otherwise the
19342
+ # request will fail with error 412 conditionNotMet. To see the latest
19343
+ # fingerprint, make a get() request to retrieve a NetworkEdgeSecurityService.
19344
+ # Corresponds to the JSON property `fingerprint`
19345
+ # NOTE: Values are automatically base64 encoded/decoded in the client library.
19346
+ # @return [String]
19347
+ attr_accessor :fingerprint
19348
+
19333
19349
  # [Output Only] The unique identifier for the resource. This identifier is
19334
19350
  # defined by the server.
19335
19351
  # Corresponds to the JSON property `id`
19336
19352
  # @return [Fixnum]
19337
19353
  attr_accessor :id
19338
19354
 
19339
- # [Output Only] Type of the resource. Always compute#networkEndpointGroup for
19340
- # network endpoint group.
19355
+ # [Output only] Type of the resource. Always compute#networkEdgeSecurityService
19356
+ # for NetworkEdgeSecurityServices
19341
19357
  # Corresponds to the JSON property `kind`
19342
19358
  # @return [String]
19343
19359
  attr_accessor :kind
19344
19360
 
19345
- # Name of the resource; provided by the client when the resource is created. The
19361
+ # Name of the resource. Provided by the client when the resource is created. The
19346
19362
  # name must be 1-63 characters long, and comply with RFC1035. Specifically, the
19347
19363
  # name must be 1-63 characters long and match the regular expression `[a-z]([-a-
19348
19364
  # z0-9]*[a-z0-9])?` which means the first character must be a lowercase letter,
@@ -19352,51 +19368,28 @@ module Google
19352
19368
  # @return [String]
19353
19369
  attr_accessor :name
19354
19370
 
19355
- # The URL of the network to which all network endpoints in the NEG belong. Uses "
19356
- # default" project network if unspecified.
19357
- # Corresponds to the JSON property `network`
19358
- # @return [String]
19359
- attr_accessor :network
19360
-
19361
- # Type of network endpoints in this network endpoint group. Can be one of
19362
- # GCE_VM_IP, GCE_VM_IP_PORT, NON_GCP_PRIVATE_IP_PORT, INTERNET_FQDN_PORT,
19363
- # INTERNET_IP_PORT, SERVERLESS, PRIVATE_SERVICE_CONNECT.
19364
- # Corresponds to the JSON property `networkEndpointType`
19365
- # @return [String]
19366
- attr_accessor :network_endpoint_type
19367
-
19368
- # The target service url used to set up private service connection to a Google
19369
- # API. An example value is: "asia-northeast3-cloudkms.googleapis.com"
19370
- # Corresponds to the JSON property `pscTargetService`
19371
- # @return [String]
19372
- attr_accessor :psc_target_service
19373
-
19374
- # [Output Only] The URL of the region where the network endpoint group is
19375
- # located.
19371
+ # [Output Only] URL of the region where the resource resides. You must specify
19372
+ # this field as part of the HTTP request URL. It is not settable as a field in
19373
+ # the request body.
19376
19374
  # Corresponds to the JSON property `region`
19377
19375
  # @return [String]
19378
19376
  attr_accessor :region
19379
19377
 
19378
+ # The resource URL for the network edge security service associated with this
19379
+ # network edge security service.
19380
+ # Corresponds to the JSON property `securityPolicy`
19381
+ # @return [String]
19382
+ attr_accessor :security_policy
19383
+
19380
19384
  # [Output Only] Server-defined URL for the resource.
19381
19385
  # Corresponds to the JSON property `selfLink`
19382
19386
  # @return [String]
19383
19387
  attr_accessor :self_link
19384
19388
 
19385
- # [Output only] Number of network endpoints in the network endpoint group.
19386
- # Corresponds to the JSON property `size`
19387
- # @return [Fixnum]
19388
- attr_accessor :size
19389
-
19390
- # Optional URL of the subnetwork to which all network endpoints in the NEG
19391
- # belong.
19392
- # Corresponds to the JSON property `subnetwork`
19393
- # @return [String]
19394
- attr_accessor :subnetwork
19395
-
19396
- # [Output Only] The URL of the zone where the network endpoint group is located.
19397
- # Corresponds to the JSON property `zone`
19389
+ # [Output Only] Server-defined URL for this resource with the resource id.
19390
+ # Corresponds to the JSON property `selfLinkWithId`
19398
19391
  # @return [String]
19399
- attr_accessor :zone
19392
+ attr_accessor :self_link_with_id
19400
19393
 
19401
19394
  def initialize(**args)
19402
19395
  update!(**args)
@@ -19404,44 +19397,41 @@ module Google
19404
19397
 
19405
19398
  # Update properties of this object
19406
19399
  def update!(**args)
19407
- @annotations = args[:annotations] if args.key?(:annotations)
19408
- @app_engine = args[:app_engine] if args.key?(:app_engine)
19409
- @cloud_function = args[:cloud_function] if args.key?(:cloud_function)
19410
- @cloud_run = args[:cloud_run] if args.key?(:cloud_run)
19411
19400
  @creation_timestamp = args[:creation_timestamp] if args.key?(:creation_timestamp)
19412
- @default_port = args[:default_port] if args.key?(:default_port)
19413
19401
  @description = args[:description] if args.key?(:description)
19402
+ @fingerprint = args[:fingerprint] if args.key?(:fingerprint)
19414
19403
  @id = args[:id] if args.key?(:id)
19415
19404
  @kind = args[:kind] if args.key?(:kind)
19416
19405
  @name = args[:name] if args.key?(:name)
19417
- @network = args[:network] if args.key?(:network)
19418
- @network_endpoint_type = args[:network_endpoint_type] if args.key?(:network_endpoint_type)
19419
- @psc_target_service = args[:psc_target_service] if args.key?(:psc_target_service)
19420
19406
  @region = args[:region] if args.key?(:region)
19407
+ @security_policy = args[:security_policy] if args.key?(:security_policy)
19421
19408
  @self_link = args[:self_link] if args.key?(:self_link)
19422
- @size = args[:size] if args.key?(:size)
19423
- @subnetwork = args[:subnetwork] if args.key?(:subnetwork)
19424
- @zone = args[:zone] if args.key?(:zone)
19409
+ @self_link_with_id = args[:self_link_with_id] if args.key?(:self_link_with_id)
19425
19410
  end
19426
19411
  end
19427
19412
 
19428
19413
  #
19429
- class NetworkEndpointGroupAggregatedList
19414
+ class NetworkEdgeSecurityServiceAggregatedList
19430
19415
  include Google::Apis::Core::Hashable
19431
19416
 
19417
+ #
19418
+ # Corresponds to the JSON property `etag`
19419
+ # @return [String]
19420
+ attr_accessor :etag
19421
+
19432
19422
  # [Output Only] Unique identifier for the resource; defined by the server.
19433
19423
  # Corresponds to the JSON property `id`
19434
19424
  # @return [String]
19435
19425
  attr_accessor :id
19436
19426
 
19437
- # A list of NetworkEndpointGroupsScopedList resources.
19427
+ # A list of NetworkEdgeSecurityServicesScopedList resources.
19438
19428
  # Corresponds to the JSON property `items`
19439
- # @return [Hash<String,Google::Apis::ComputeV1::NetworkEndpointGroupsScopedList>]
19429
+ # @return [Hash<String,Google::Apis::ComputeV1::NetworkEdgeSecurityServicesScopedList>]
19440
19430
  attr_accessor :items
19441
19431
 
19442
- # [Output Only] The resource type, which is always compute#
19443
- # networkEndpointGroupAggregatedList for aggregated lists of network endpoint
19444
- # groups.
19432
+ # [Output Only] Type of resource. Always compute#
19433
+ # networkEdgeSecurityServiceAggregatedList for lists of Network Edge Security
19434
+ # Services.
19445
19435
  # Corresponds to the JSON property `kind`
19446
19436
  # @return [String]
19447
19437
  attr_accessor :kind
@@ -19467,7 +19457,7 @@ module Google
19467
19457
 
19468
19458
  # [Output Only] Informational warning message.
19469
19459
  # Corresponds to the JSON property `warning`
19470
- # @return [Google::Apis::ComputeV1::NetworkEndpointGroupAggregatedList::Warning]
19460
+ # @return [Google::Apis::ComputeV1::NetworkEdgeSecurityServiceAggregatedList::Warning]
19471
19461
  attr_accessor :warning
19472
19462
 
19473
19463
  def initialize(**args)
@@ -19476,6 +19466,7 @@ module Google
19476
19466
 
19477
19467
  # Update properties of this object
19478
19468
  def update!(**args)
19469
+ @etag = args[:etag] if args.key?(:etag)
19479
19470
  @id = args[:id] if args.key?(:id)
19480
19471
  @items = args[:items] if args.key?(:items)
19481
19472
  @kind = args[:kind] if args.key?(:kind)
@@ -19498,7 +19489,7 @@ module Google
19498
19489
  # [Output Only] Metadata about this warning in key: value format. For example: "
19499
19490
  # data": [ ` "key": "scope", "value": "zones/us-east1-d" `
19500
19491
  # Corresponds to the JSON property `data`
19501
- # @return [Array<Google::Apis::ComputeV1::NetworkEndpointGroupAggregatedList::Warning::Datum>]
19492
+ # @return [Array<Google::Apis::ComputeV1::NetworkEdgeSecurityServiceAggregatedList::Warning::Datum>]
19502
19493
  attr_accessor :data
19503
19494
 
19504
19495
  # [Output Only] A human-readable description of the warning code.
@@ -19550,30 +19541,447 @@ module Google
19550
19541
  end
19551
19542
  end
19552
19543
 
19553
- # Configuration for an App Engine network endpoint group (NEG). The service is
19554
- # optional, may be provided explicitly or in the URL mask. The version is
19555
- # optional and can only be provided explicitly or in the URL mask when service
19556
- # is present. Note: App Engine service must be in the same project and located
19557
- # in the same region as the Serverless NEG.
19558
- class NetworkEndpointGroupAppEngine
19544
+ #
19545
+ class NetworkEdgeSecurityServicesScopedList
19559
19546
  include Google::Apis::Core::Hashable
19560
19547
 
19561
- # Optional serving service. The service name is case-sensitive and must be 1-63
19562
- # characters long. Example value: "default", "my-service".
19563
- # Corresponds to the JSON property `service`
19564
- # @return [String]
19565
- attr_accessor :service
19548
+ # A list of NetworkEdgeSecurityServices contained in this scope.
19549
+ # Corresponds to the JSON property `networkEdgeSecurityServices`
19550
+ # @return [Array<Google::Apis::ComputeV1::NetworkEdgeSecurityService>]
19551
+ attr_accessor :network_edge_security_services
19566
19552
 
19567
- # A template to parse service and version fields from a request URL. URL mask
19568
- # allows for routing to multiple App Engine services without having to create
19569
- # multiple Network Endpoint Groups and backend services. For example, the
19570
- # request URLs "foo1-dot-appname.appspot.com/v1" and "foo1-dot-appname.appspot.
19571
- # com/v2" can be backed by the same Serverless NEG with URL mask "-dot-appname.
19572
- # appspot.com/". The URL mask will parse them to ` service = "foo1", version = "
19573
- # v1" ` and ` service = "foo1", version = "v2" ` respectively.
19574
- # Corresponds to the JSON property `urlMask`
19575
- # @return [String]
19576
- attr_accessor :url_mask
19553
+ # Informational warning which replaces the list of security policies when the
19554
+ # list is empty.
19555
+ # Corresponds to the JSON property `warning`
19556
+ # @return [Google::Apis::ComputeV1::NetworkEdgeSecurityServicesScopedList::Warning]
19557
+ attr_accessor :warning
19558
+
19559
+ def initialize(**args)
19560
+ update!(**args)
19561
+ end
19562
+
19563
+ # Update properties of this object
19564
+ def update!(**args)
19565
+ @network_edge_security_services = args[:network_edge_security_services] if args.key?(:network_edge_security_services)
19566
+ @warning = args[:warning] if args.key?(:warning)
19567
+ end
19568
+
19569
+ # Informational warning which replaces the list of security policies when the
19570
+ # list is empty.
19571
+ class Warning
19572
+ include Google::Apis::Core::Hashable
19573
+
19574
+ # [Output Only] A warning code, if applicable. For example, Compute Engine
19575
+ # returns NO_RESULTS_ON_PAGE if there are no results in the response.
19576
+ # Corresponds to the JSON property `code`
19577
+ # @return [String]
19578
+ attr_accessor :code
19579
+
19580
+ # [Output Only] Metadata about this warning in key: value format. For example: "
19581
+ # data": [ ` "key": "scope", "value": "zones/us-east1-d" `
19582
+ # Corresponds to the JSON property `data`
19583
+ # @return [Array<Google::Apis::ComputeV1::NetworkEdgeSecurityServicesScopedList::Warning::Datum>]
19584
+ attr_accessor :data
19585
+
19586
+ # [Output Only] A human-readable description of the warning code.
19587
+ # Corresponds to the JSON property `message`
19588
+ # @return [String]
19589
+ attr_accessor :message
19590
+
19591
+ def initialize(**args)
19592
+ update!(**args)
19593
+ end
19594
+
19595
+ # Update properties of this object
19596
+ def update!(**args)
19597
+ @code = args[:code] if args.key?(:code)
19598
+ @data = args[:data] if args.key?(:data)
19599
+ @message = args[:message] if args.key?(:message)
19600
+ end
19601
+
19602
+ #
19603
+ class Datum
19604
+ include Google::Apis::Core::Hashable
19605
+
19606
+ # [Output Only] A key that provides more detail on the warning being returned.
19607
+ # For example, for warnings where there are no results in a list request for a
19608
+ # particular zone, this key might be scope and the key value might be the zone
19609
+ # name. Other examples might be a key indicating a deprecated resource and a
19610
+ # suggested replacement, or a warning about invalid network settings (for
19611
+ # example, if an instance attempts to perform IP forwarding but is not enabled
19612
+ # for IP forwarding).
19613
+ # Corresponds to the JSON property `key`
19614
+ # @return [String]
19615
+ attr_accessor :key
19616
+
19617
+ # [Output Only] A warning data value corresponding to the key.
19618
+ # Corresponds to the JSON property `value`
19619
+ # @return [String]
19620
+ attr_accessor :value
19621
+
19622
+ def initialize(**args)
19623
+ update!(**args)
19624
+ end
19625
+
19626
+ # Update properties of this object
19627
+ def update!(**args)
19628
+ @key = args[:key] if args.key?(:key)
19629
+ @value = args[:value] if args.key?(:value)
19630
+ end
19631
+ end
19632
+ end
19633
+ end
19634
+
19635
+ # The network endpoint.
19636
+ class NetworkEndpoint
19637
+ include Google::Apis::Core::Hashable
19638
+
19639
+ # Metadata defined as annotations on the network endpoint.
19640
+ # Corresponds to the JSON property `annotations`
19641
+ # @return [Hash<String,String>]
19642
+ attr_accessor :annotations
19643
+
19644
+ # Optional fully qualified domain name of network endpoint. This can only be
19645
+ # specified when NetworkEndpointGroup.network_endpoint_type is NON_GCP_FQDN_PORT.
19646
+ # Corresponds to the JSON property `fqdn`
19647
+ # @return [String]
19648
+ attr_accessor :fqdn
19649
+
19650
+ # The name for a specific VM instance that the IP address belongs to. This is
19651
+ # required for network endpoints of type GCE_VM_IP_PORT. The instance must be in
19652
+ # the same zone of network endpoint group. The name must be 1-63 characters long,
19653
+ # and comply with RFC1035.
19654
+ # Corresponds to the JSON property `instance`
19655
+ # @return [String]
19656
+ attr_accessor :instance
19657
+
19658
+ # Optional IPv4 address of network endpoint. The IP address must belong to a VM
19659
+ # in Compute Engine (either the primary IP or as part of an aliased IP range).
19660
+ # If the IP address is not specified, then the primary IP address for the VM
19661
+ # instance in the network that the network endpoint group belongs to will be
19662
+ # used.
19663
+ # Corresponds to the JSON property `ipAddress`
19664
+ # @return [String]
19665
+ attr_accessor :ip_address
19666
+
19667
+ # Optional port number of network endpoint. If not specified, the defaultPort
19668
+ # for the network endpoint group will be used.
19669
+ # Corresponds to the JSON property `port`
19670
+ # @return [Fixnum]
19671
+ attr_accessor :port
19672
+
19673
+ def initialize(**args)
19674
+ update!(**args)
19675
+ end
19676
+
19677
+ # Update properties of this object
19678
+ def update!(**args)
19679
+ @annotations = args[:annotations] if args.key?(:annotations)
19680
+ @fqdn = args[:fqdn] if args.key?(:fqdn)
19681
+ @instance = args[:instance] if args.key?(:instance)
19682
+ @ip_address = args[:ip_address] if args.key?(:ip_address)
19683
+ @port = args[:port] if args.key?(:port)
19684
+ end
19685
+ end
19686
+
19687
+ # Represents a collection of network endpoints. A network endpoint group (NEG)
19688
+ # defines how a set of endpoints should be reached, whether they are reachable,
19689
+ # and where they are located. For more information about using NEGs, see Setting
19690
+ # up external HTTP(S) Load Balancing with internet NEGs, Setting up zonal NEGs,
19691
+ # or Setting up external HTTP(S) Load Balancing with serverless NEGs.
19692
+ class NetworkEndpointGroup
19693
+ include Google::Apis::Core::Hashable
19694
+
19695
+ # Metadata defined as annotations on the network endpoint group.
19696
+ # Corresponds to the JSON property `annotations`
19697
+ # @return [Hash<String,String>]
19698
+ attr_accessor :annotations
19699
+
19700
+ # Configuration for an App Engine network endpoint group (NEG). The service is
19701
+ # optional, may be provided explicitly or in the URL mask. The version is
19702
+ # optional and can only be provided explicitly or in the URL mask when service
19703
+ # is present. Note: App Engine service must be in the same project and located
19704
+ # in the same region as the Serverless NEG.
19705
+ # Corresponds to the JSON property `appEngine`
19706
+ # @return [Google::Apis::ComputeV1::NetworkEndpointGroupAppEngine]
19707
+ attr_accessor :app_engine
19708
+
19709
+ # Configuration for a Cloud Function network endpoint group (NEG). The function
19710
+ # must be provided explicitly or in the URL mask. Note: Cloud Function must be
19711
+ # in the same project and located in the same region as the Serverless NEG.
19712
+ # Corresponds to the JSON property `cloudFunction`
19713
+ # @return [Google::Apis::ComputeV1::NetworkEndpointGroupCloudFunction]
19714
+ attr_accessor :cloud_function
19715
+
19716
+ # Configuration for a Cloud Run network endpoint group (NEG). The service must
19717
+ # be provided explicitly or in the URL mask. The tag is optional, may be
19718
+ # provided explicitly or in the URL mask. Note: Cloud Run service must be in the
19719
+ # same project and located in the same region as the Serverless NEG.
19720
+ # Corresponds to the JSON property `cloudRun`
19721
+ # @return [Google::Apis::ComputeV1::NetworkEndpointGroupCloudRun]
19722
+ attr_accessor :cloud_run
19723
+
19724
+ # [Output Only] Creation timestamp in RFC3339 text format.
19725
+ # Corresponds to the JSON property `creationTimestamp`
19726
+ # @return [String]
19727
+ attr_accessor :creation_timestamp
19728
+
19729
+ # The default port used if the port number is not specified in the network
19730
+ # endpoint.
19731
+ # Corresponds to the JSON property `defaultPort`
19732
+ # @return [Fixnum]
19733
+ attr_accessor :default_port
19734
+
19735
+ # An optional description of this resource. Provide this property when you
19736
+ # create the resource.
19737
+ # Corresponds to the JSON property `description`
19738
+ # @return [String]
19739
+ attr_accessor :description
19740
+
19741
+ # [Output Only] The unique identifier for the resource. This identifier is
19742
+ # defined by the server.
19743
+ # Corresponds to the JSON property `id`
19744
+ # @return [Fixnum]
19745
+ attr_accessor :id
19746
+
19747
+ # [Output Only] Type of the resource. Always compute#networkEndpointGroup for
19748
+ # network endpoint group.
19749
+ # Corresponds to the JSON property `kind`
19750
+ # @return [String]
19751
+ attr_accessor :kind
19752
+
19753
+ # Name of the resource; provided by the client when the resource is created. The
19754
+ # name must be 1-63 characters long, and comply with RFC1035. Specifically, the
19755
+ # name must be 1-63 characters long and match the regular expression `[a-z]([-a-
19756
+ # z0-9]*[a-z0-9])?` which means the first character must be a lowercase letter,
19757
+ # and all following characters must be a dash, lowercase letter, or digit,
19758
+ # except the last character, which cannot be a dash.
19759
+ # Corresponds to the JSON property `name`
19760
+ # @return [String]
19761
+ attr_accessor :name
19762
+
19763
+ # The URL of the network to which all network endpoints in the NEG belong. Uses "
19764
+ # default" project network if unspecified.
19765
+ # Corresponds to the JSON property `network`
19766
+ # @return [String]
19767
+ attr_accessor :network
19768
+
19769
+ # Type of network endpoints in this network endpoint group. Can be one of
19770
+ # GCE_VM_IP, GCE_VM_IP_PORT, NON_GCP_PRIVATE_IP_PORT, INTERNET_FQDN_PORT,
19771
+ # INTERNET_IP_PORT, SERVERLESS, PRIVATE_SERVICE_CONNECT.
19772
+ # Corresponds to the JSON property `networkEndpointType`
19773
+ # @return [String]
19774
+ attr_accessor :network_endpoint_type
19775
+
19776
+ # The target service url used to set up private service connection to a Google
19777
+ # API. An example value is: "asia-northeast3-cloudkms.googleapis.com"
19778
+ # Corresponds to the JSON property `pscTargetService`
19779
+ # @return [String]
19780
+ attr_accessor :psc_target_service
19781
+
19782
+ # [Output Only] The URL of the region where the network endpoint group is
19783
+ # located.
19784
+ # Corresponds to the JSON property `region`
19785
+ # @return [String]
19786
+ attr_accessor :region
19787
+
19788
+ # [Output Only] Server-defined URL for the resource.
19789
+ # Corresponds to the JSON property `selfLink`
19790
+ # @return [String]
19791
+ attr_accessor :self_link
19792
+
19793
+ # [Output only] Number of network endpoints in the network endpoint group.
19794
+ # Corresponds to the JSON property `size`
19795
+ # @return [Fixnum]
19796
+ attr_accessor :size
19797
+
19798
+ # Optional URL of the subnetwork to which all network endpoints in the NEG
19799
+ # belong.
19800
+ # Corresponds to the JSON property `subnetwork`
19801
+ # @return [String]
19802
+ attr_accessor :subnetwork
19803
+
19804
+ # [Output Only] The URL of the zone where the network endpoint group is located.
19805
+ # Corresponds to the JSON property `zone`
19806
+ # @return [String]
19807
+ attr_accessor :zone
19808
+
19809
+ def initialize(**args)
19810
+ update!(**args)
19811
+ end
19812
+
19813
+ # Update properties of this object
19814
+ def update!(**args)
19815
+ @annotations = args[:annotations] if args.key?(:annotations)
19816
+ @app_engine = args[:app_engine] if args.key?(:app_engine)
19817
+ @cloud_function = args[:cloud_function] if args.key?(:cloud_function)
19818
+ @cloud_run = args[:cloud_run] if args.key?(:cloud_run)
19819
+ @creation_timestamp = args[:creation_timestamp] if args.key?(:creation_timestamp)
19820
+ @default_port = args[:default_port] if args.key?(:default_port)
19821
+ @description = args[:description] if args.key?(:description)
19822
+ @id = args[:id] if args.key?(:id)
19823
+ @kind = args[:kind] if args.key?(:kind)
19824
+ @name = args[:name] if args.key?(:name)
19825
+ @network = args[:network] if args.key?(:network)
19826
+ @network_endpoint_type = args[:network_endpoint_type] if args.key?(:network_endpoint_type)
19827
+ @psc_target_service = args[:psc_target_service] if args.key?(:psc_target_service)
19828
+ @region = args[:region] if args.key?(:region)
19829
+ @self_link = args[:self_link] if args.key?(:self_link)
19830
+ @size = args[:size] if args.key?(:size)
19831
+ @subnetwork = args[:subnetwork] if args.key?(:subnetwork)
19832
+ @zone = args[:zone] if args.key?(:zone)
19833
+ end
19834
+ end
19835
+
19836
+ #
19837
+ class NetworkEndpointGroupAggregatedList
19838
+ include Google::Apis::Core::Hashable
19839
+
19840
+ # [Output Only] Unique identifier for the resource; defined by the server.
19841
+ # Corresponds to the JSON property `id`
19842
+ # @return [String]
19843
+ attr_accessor :id
19844
+
19845
+ # A list of NetworkEndpointGroupsScopedList resources.
19846
+ # Corresponds to the JSON property `items`
19847
+ # @return [Hash<String,Google::Apis::ComputeV1::NetworkEndpointGroupsScopedList>]
19848
+ attr_accessor :items
19849
+
19850
+ # [Output Only] The resource type, which is always compute#
19851
+ # networkEndpointGroupAggregatedList for aggregated lists of network endpoint
19852
+ # groups.
19853
+ # Corresponds to the JSON property `kind`
19854
+ # @return [String]
19855
+ attr_accessor :kind
19856
+
19857
+ # [Output Only] This token allows you to get the next page of results for list
19858
+ # requests. If the number of results is larger than maxResults, use the
19859
+ # nextPageToken as a value for the query parameter pageToken in the next list
19860
+ # request. Subsequent list requests will have their own nextPageToken to
19861
+ # continue paging through the results.
19862
+ # Corresponds to the JSON property `nextPageToken`
19863
+ # @return [String]
19864
+ attr_accessor :next_page_token
19865
+
19866
+ # [Output Only] Server-defined URL for this resource.
19867
+ # Corresponds to the JSON property `selfLink`
19868
+ # @return [String]
19869
+ attr_accessor :self_link
19870
+
19871
+ # [Output Only] Unreachable resources.
19872
+ # Corresponds to the JSON property `unreachables`
19873
+ # @return [Array<String>]
19874
+ attr_accessor :unreachables
19875
+
19876
+ # [Output Only] Informational warning message.
19877
+ # Corresponds to the JSON property `warning`
19878
+ # @return [Google::Apis::ComputeV1::NetworkEndpointGroupAggregatedList::Warning]
19879
+ attr_accessor :warning
19880
+
19881
+ def initialize(**args)
19882
+ update!(**args)
19883
+ end
19884
+
19885
+ # Update properties of this object
19886
+ def update!(**args)
19887
+ @id = args[:id] if args.key?(:id)
19888
+ @items = args[:items] if args.key?(:items)
19889
+ @kind = args[:kind] if args.key?(:kind)
19890
+ @next_page_token = args[:next_page_token] if args.key?(:next_page_token)
19891
+ @self_link = args[:self_link] if args.key?(:self_link)
19892
+ @unreachables = args[:unreachables] if args.key?(:unreachables)
19893
+ @warning = args[:warning] if args.key?(:warning)
19894
+ end
19895
+
19896
+ # [Output Only] Informational warning message.
19897
+ class Warning
19898
+ include Google::Apis::Core::Hashable
19899
+
19900
+ # [Output Only] A warning code, if applicable. For example, Compute Engine
19901
+ # returns NO_RESULTS_ON_PAGE if there are no results in the response.
19902
+ # Corresponds to the JSON property `code`
19903
+ # @return [String]
19904
+ attr_accessor :code
19905
+
19906
+ # [Output Only] Metadata about this warning in key: value format. For example: "
19907
+ # data": [ ` "key": "scope", "value": "zones/us-east1-d" `
19908
+ # Corresponds to the JSON property `data`
19909
+ # @return [Array<Google::Apis::ComputeV1::NetworkEndpointGroupAggregatedList::Warning::Datum>]
19910
+ attr_accessor :data
19911
+
19912
+ # [Output Only] A human-readable description of the warning code.
19913
+ # Corresponds to the JSON property `message`
19914
+ # @return [String]
19915
+ attr_accessor :message
19916
+
19917
+ def initialize(**args)
19918
+ update!(**args)
19919
+ end
19920
+
19921
+ # Update properties of this object
19922
+ def update!(**args)
19923
+ @code = args[:code] if args.key?(:code)
19924
+ @data = args[:data] if args.key?(:data)
19925
+ @message = args[:message] if args.key?(:message)
19926
+ end
19927
+
19928
+ #
19929
+ class Datum
19930
+ include Google::Apis::Core::Hashable
19931
+
19932
+ # [Output Only] A key that provides more detail on the warning being returned.
19933
+ # For example, for warnings where there are no results in a list request for a
19934
+ # particular zone, this key might be scope and the key value might be the zone
19935
+ # name. Other examples might be a key indicating a deprecated resource and a
19936
+ # suggested replacement, or a warning about invalid network settings (for
19937
+ # example, if an instance attempts to perform IP forwarding but is not enabled
19938
+ # for IP forwarding).
19939
+ # Corresponds to the JSON property `key`
19940
+ # @return [String]
19941
+ attr_accessor :key
19942
+
19943
+ # [Output Only] A warning data value corresponding to the key.
19944
+ # Corresponds to the JSON property `value`
19945
+ # @return [String]
19946
+ attr_accessor :value
19947
+
19948
+ def initialize(**args)
19949
+ update!(**args)
19950
+ end
19951
+
19952
+ # Update properties of this object
19953
+ def update!(**args)
19954
+ @key = args[:key] if args.key?(:key)
19955
+ @value = args[:value] if args.key?(:value)
19956
+ end
19957
+ end
19958
+ end
19959
+ end
19960
+
19961
+ # Configuration for an App Engine network endpoint group (NEG). The service is
19962
+ # optional, may be provided explicitly or in the URL mask. The version is
19963
+ # optional and can only be provided explicitly or in the URL mask when service
19964
+ # is present. Note: App Engine service must be in the same project and located
19965
+ # in the same region as the Serverless NEG.
19966
+ class NetworkEndpointGroupAppEngine
19967
+ include Google::Apis::Core::Hashable
19968
+
19969
+ # Optional serving service. The service name is case-sensitive and must be 1-63
19970
+ # characters long. Example value: "default", "my-service".
19971
+ # Corresponds to the JSON property `service`
19972
+ # @return [String]
19973
+ attr_accessor :service
19974
+
19975
+ # A template to parse service and version fields from a request URL. URL mask
19976
+ # allows for routing to multiple App Engine services without having to create
19977
+ # multiple Network Endpoint Groups and backend services. For example, the
19978
+ # request URLs "foo1-dot-appname.appspot.com/v1" and "foo1-dot-appname.appspot.
19979
+ # com/v2" can be backed by the same Serverless NEG with URL mask "-dot-appname.
19980
+ # appspot.com/". The URL mask will parse them to ` service = "foo1", version = "
19981
+ # v1" ` and ` service = "foo1", version = "v2" ` respectively.
19982
+ # Corresponds to the JSON property `urlMask`
19983
+ # @return [String]
19984
+ attr_accessor :url_mask
19577
19985
 
19578
19986
  # Optional serving version. The version name is case-sensitive and must be 1-100
19579
19987
  # characters long. Example value: "v1", "v2".
@@ -20134,7 +20542,8 @@ module Google
20134
20542
  attr_accessor :kind
20135
20543
 
20136
20544
  # [Output Only] The name of the network interface, which is generated by the
20137
- # server. For network devices, these are eth0, eth1, etc.
20545
+ # server. For a VM, the network interface uses the nicN naming format. Where N
20546
+ # is a value between 0 and 7. The default interface value is nic0.
20138
20547
  # Corresponds to the JSON property `name`
20139
20548
  # @return [String]
20140
20549
  attr_accessor :name
@@ -28510,6 +28919,11 @@ module Google
28510
28919
  # @return [Fixnum]
28511
28920
  attr_accessor :priority
28512
28921
 
28922
+ # [Output only] The status of the route.
28923
+ # Corresponds to the JSON property `routeStatus`
28924
+ # @return [String]
28925
+ attr_accessor :route_status
28926
+
28513
28927
  # [Output Only] The type of this route, which can be one of the following values:
28514
28928
  # - 'TRANSIT' for a transit route that this router learned from another Cloud
28515
28929
  # Router and will readvertise to one of its BGP peers - 'SUBNET' for a route
@@ -28557,6 +28971,7 @@ module Google
28557
28971
  @next_hop_peering = args[:next_hop_peering] if args.key?(:next_hop_peering)
28558
28972
  @next_hop_vpn_tunnel = args[:next_hop_vpn_tunnel] if args.key?(:next_hop_vpn_tunnel)
28559
28973
  @priority = args[:priority] if args.key?(:priority)
28974
+ @route_status = args[:route_status] if args.key?(:route_status)
28560
28975
  @route_type = args[:route_type] if args.key?(:route_type)
28561
28976
  @self_link = args[:self_link] if args.key?(:self_link)
28562
28977
  @tags = args[:tags] if args.key?(:tags)
@@ -30626,6 +31041,136 @@ module Google
30626
31041
  end
30627
31042
  end
30628
31043
 
31044
+ #
31045
+ class SecurityPoliciesAggregatedList
31046
+ include Google::Apis::Core::Hashable
31047
+
31048
+ #
31049
+ # Corresponds to the JSON property `etag`
31050
+ # @return [String]
31051
+ attr_accessor :etag
31052
+
31053
+ # [Output Only] Unique identifier for the resource; defined by the server.
31054
+ # Corresponds to the JSON property `id`
31055
+ # @return [String]
31056
+ attr_accessor :id
31057
+
31058
+ # A list of SecurityPoliciesScopedList resources.
31059
+ # Corresponds to the JSON property `items`
31060
+ # @return [Hash<String,Google::Apis::ComputeV1::SecurityPoliciesScopedList>]
31061
+ attr_accessor :items
31062
+
31063
+ # [Output Only] Type of resource. Always compute#securityPolicyAggregatedList
31064
+ # for lists of Security Policies.
31065
+ # Corresponds to the JSON property `kind`
31066
+ # @return [String]
31067
+ attr_accessor :kind
31068
+
31069
+ # [Output Only] This token allows you to get the next page of results for list
31070
+ # requests. If the number of results is larger than maxResults, use the
31071
+ # nextPageToken as a value for the query parameter pageToken in the next list
31072
+ # request. Subsequent list requests will have their own nextPageToken to
31073
+ # continue paging through the results.
31074
+ # Corresponds to the JSON property `nextPageToken`
31075
+ # @return [String]
31076
+ attr_accessor :next_page_token
31077
+
31078
+ # [Output Only] Server-defined URL for this resource.
31079
+ # Corresponds to the JSON property `selfLink`
31080
+ # @return [String]
31081
+ attr_accessor :self_link
31082
+
31083
+ # [Output Only] Unreachable resources.
31084
+ # Corresponds to the JSON property `unreachables`
31085
+ # @return [Array<String>]
31086
+ attr_accessor :unreachables
31087
+
31088
+ # [Output Only] Informational warning message.
31089
+ # Corresponds to the JSON property `warning`
31090
+ # @return [Google::Apis::ComputeV1::SecurityPoliciesAggregatedList::Warning]
31091
+ attr_accessor :warning
31092
+
31093
+ def initialize(**args)
31094
+ update!(**args)
31095
+ end
31096
+
31097
+ # Update properties of this object
31098
+ def update!(**args)
31099
+ @etag = args[:etag] if args.key?(:etag)
31100
+ @id = args[:id] if args.key?(:id)
31101
+ @items = args[:items] if args.key?(:items)
31102
+ @kind = args[:kind] if args.key?(:kind)
31103
+ @next_page_token = args[:next_page_token] if args.key?(:next_page_token)
31104
+ @self_link = args[:self_link] if args.key?(:self_link)
31105
+ @unreachables = args[:unreachables] if args.key?(:unreachables)
31106
+ @warning = args[:warning] if args.key?(:warning)
31107
+ end
31108
+
31109
+ # [Output Only] Informational warning message.
31110
+ class Warning
31111
+ include Google::Apis::Core::Hashable
31112
+
31113
+ # [Output Only] A warning code, if applicable. For example, Compute Engine
31114
+ # returns NO_RESULTS_ON_PAGE if there are no results in the response.
31115
+ # Corresponds to the JSON property `code`
31116
+ # @return [String]
31117
+ attr_accessor :code
31118
+
31119
+ # [Output Only] Metadata about this warning in key: value format. For example: "
31120
+ # data": [ ` "key": "scope", "value": "zones/us-east1-d" `
31121
+ # Corresponds to the JSON property `data`
31122
+ # @return [Array<Google::Apis::ComputeV1::SecurityPoliciesAggregatedList::Warning::Datum>]
31123
+ attr_accessor :data
31124
+
31125
+ # [Output Only] A human-readable description of the warning code.
31126
+ # Corresponds to the JSON property `message`
31127
+ # @return [String]
31128
+ attr_accessor :message
31129
+
31130
+ def initialize(**args)
31131
+ update!(**args)
31132
+ end
31133
+
31134
+ # Update properties of this object
31135
+ def update!(**args)
31136
+ @code = args[:code] if args.key?(:code)
31137
+ @data = args[:data] if args.key?(:data)
31138
+ @message = args[:message] if args.key?(:message)
31139
+ end
31140
+
31141
+ #
31142
+ class Datum
31143
+ include Google::Apis::Core::Hashable
31144
+
31145
+ # [Output Only] A key that provides more detail on the warning being returned.
31146
+ # For example, for warnings where there are no results in a list request for a
31147
+ # particular zone, this key might be scope and the key value might be the zone
31148
+ # name. Other examples might be a key indicating a deprecated resource and a
31149
+ # suggested replacement, or a warning about invalid network settings (for
31150
+ # example, if an instance attempts to perform IP forwarding but is not enabled
31151
+ # for IP forwarding).
31152
+ # Corresponds to the JSON property `key`
31153
+ # @return [String]
31154
+ attr_accessor :key
31155
+
31156
+ # [Output Only] A warning data value corresponding to the key.
31157
+ # Corresponds to the JSON property `value`
31158
+ # @return [String]
31159
+ attr_accessor :value
31160
+
31161
+ def initialize(**args)
31162
+ update!(**args)
31163
+ end
31164
+
31165
+ # Update properties of this object
31166
+ def update!(**args)
31167
+ @key = args[:key] if args.key?(:key)
31168
+ @value = args[:value] if args.key?(:value)
31169
+ end
31170
+ end
31171
+ end
31172
+ end
31173
+
30629
31174
  #
30630
31175
  class SecurityPoliciesListPreconfiguredExpressionSetsResponse
30631
31176
  include Google::Apis::Core::Hashable
@@ -30645,6 +31190,97 @@ module Google
30645
31190
  end
30646
31191
  end
30647
31192
 
31193
+ #
31194
+ class SecurityPoliciesScopedList
31195
+ include Google::Apis::Core::Hashable
31196
+
31197
+ # A list of SecurityPolicies contained in this scope.
31198
+ # Corresponds to the JSON property `securityPolicies`
31199
+ # @return [Array<Google::Apis::ComputeV1::SecurityPolicy>]
31200
+ attr_accessor :security_policies
31201
+
31202
+ # Informational warning which replaces the list of security policies when the
31203
+ # list is empty.
31204
+ # Corresponds to the JSON property `warning`
31205
+ # @return [Google::Apis::ComputeV1::SecurityPoliciesScopedList::Warning]
31206
+ attr_accessor :warning
31207
+
31208
+ def initialize(**args)
31209
+ update!(**args)
31210
+ end
31211
+
31212
+ # Update properties of this object
31213
+ def update!(**args)
31214
+ @security_policies = args[:security_policies] if args.key?(:security_policies)
31215
+ @warning = args[:warning] if args.key?(:warning)
31216
+ end
31217
+
31218
+ # Informational warning which replaces the list of security policies when the
31219
+ # list is empty.
31220
+ class Warning
31221
+ include Google::Apis::Core::Hashable
31222
+
31223
+ # [Output Only] A warning code, if applicable. For example, Compute Engine
31224
+ # returns NO_RESULTS_ON_PAGE if there are no results in the response.
31225
+ # Corresponds to the JSON property `code`
31226
+ # @return [String]
31227
+ attr_accessor :code
31228
+
31229
+ # [Output Only] Metadata about this warning in key: value format. For example: "
31230
+ # data": [ ` "key": "scope", "value": "zones/us-east1-d" `
31231
+ # Corresponds to the JSON property `data`
31232
+ # @return [Array<Google::Apis::ComputeV1::SecurityPoliciesScopedList::Warning::Datum>]
31233
+ attr_accessor :data
31234
+
31235
+ # [Output Only] A human-readable description of the warning code.
31236
+ # Corresponds to the JSON property `message`
31237
+ # @return [String]
31238
+ attr_accessor :message
31239
+
31240
+ def initialize(**args)
31241
+ update!(**args)
31242
+ end
31243
+
31244
+ # Update properties of this object
31245
+ def update!(**args)
31246
+ @code = args[:code] if args.key?(:code)
31247
+ @data = args[:data] if args.key?(:data)
31248
+ @message = args[:message] if args.key?(:message)
31249
+ end
31250
+
31251
+ #
31252
+ class Datum
31253
+ include Google::Apis::Core::Hashable
31254
+
31255
+ # [Output Only] A key that provides more detail on the warning being returned.
31256
+ # For example, for warnings where there are no results in a list request for a
31257
+ # particular zone, this key might be scope and the key value might be the zone
31258
+ # name. Other examples might be a key indicating a deprecated resource and a
31259
+ # suggested replacement, or a warning about invalid network settings (for
31260
+ # example, if an instance attempts to perform IP forwarding but is not enabled
31261
+ # for IP forwarding).
31262
+ # Corresponds to the JSON property `key`
31263
+ # @return [String]
31264
+ attr_accessor :key
31265
+
31266
+ # [Output Only] A warning data value corresponding to the key.
31267
+ # Corresponds to the JSON property `value`
31268
+ # @return [String]
31269
+ attr_accessor :value
31270
+
31271
+ def initialize(**args)
31272
+ update!(**args)
31273
+ end
31274
+
31275
+ # Update properties of this object
31276
+ def update!(**args)
31277
+ @key = args[:key] if args.key?(:key)
31278
+ @value = args[:value] if args.key?(:value)
31279
+ end
31280
+ end
31281
+ end
31282
+ end
31283
+
30648
31284
  #
30649
31285
  class SecurityPoliciesWafConfig
30650
31286
  include Google::Apis::Core::Hashable
@@ -30685,6 +31321,11 @@ module Google
30685
31321
  # @return [String]
30686
31322
  attr_accessor :creation_timestamp
30687
31323
 
31324
+ #
31325
+ # Corresponds to the JSON property `ddosProtectionConfig`
31326
+ # @return [Google::Apis::ComputeV1::SecurityPolicyDdosProtectionConfig]
31327
+ attr_accessor :ddos_protection_config
31328
+
30688
31329
  # An optional description of this resource. Provide this property when you
30689
31330
  # create the resource.
30690
31331
  # Corresponds to the JSON property `description`
@@ -30730,6 +31371,12 @@ module Google
30730
31371
  # @return [Google::Apis::ComputeV1::SecurityPolicyRecaptchaOptionsConfig]
30731
31372
  attr_accessor :recaptcha_options_config
30732
31373
 
31374
+ # [Output Only] URL of the region where the regional security policy resides.
31375
+ # This field is not applicable to global security policies.
31376
+ # Corresponds to the JSON property `region`
31377
+ # @return [String]
31378
+ attr_accessor :region
31379
+
30733
31380
  # A list of rules that belong to this policy. There must always be a default
30734
31381
  # rule (rule with priority 2147483647 and match "*"). If no rules are provided
30735
31382
  # when creating a security policy, a default rule with action "allow" will be
@@ -30767,12 +31414,14 @@ module Google
30767
31414
  @adaptive_protection_config = args[:adaptive_protection_config] if args.key?(:adaptive_protection_config)
30768
31415
  @advanced_options_config = args[:advanced_options_config] if args.key?(:advanced_options_config)
30769
31416
  @creation_timestamp = args[:creation_timestamp] if args.key?(:creation_timestamp)
31417
+ @ddos_protection_config = args[:ddos_protection_config] if args.key?(:ddos_protection_config)
30770
31418
  @description = args[:description] if args.key?(:description)
30771
31419
  @fingerprint = args[:fingerprint] if args.key?(:fingerprint)
30772
31420
  @id = args[:id] if args.key?(:id)
30773
31421
  @kind = args[:kind] if args.key?(:kind)
30774
31422
  @name = args[:name] if args.key?(:name)
30775
31423
  @recaptcha_options_config = args[:recaptcha_options_config] if args.key?(:recaptcha_options_config)
31424
+ @region = args[:region] if args.key?(:region)
30776
31425
  @rules = args[:rules] if args.key?(:rules)
30777
31426
  @self_link = args[:self_link] if args.key?(:self_link)
30778
31427
  @type = args[:type] if args.key?(:type)
@@ -30850,6 +31499,25 @@ module Google
30850
31499
  end
30851
31500
  end
30852
31501
 
31502
+ #
31503
+ class SecurityPolicyDdosProtectionConfig
31504
+ include Google::Apis::Core::Hashable
31505
+
31506
+ #
31507
+ # Corresponds to the JSON property `ddosProtection`
31508
+ # @return [String]
31509
+ attr_accessor :ddos_protection
31510
+
31511
+ def initialize(**args)
31512
+ update!(**args)
31513
+ end
31514
+
31515
+ # Update properties of this object
31516
+ def update!(**args)
31517
+ @ddos_protection = args[:ddos_protection] if args.key?(:ddos_protection)
31518
+ end
31519
+ end
31520
+
30853
31521
  #
30854
31522
  class SecurityPolicyList
30855
31523
  include Google::Apis::Core::Hashable
@@ -33628,7 +34296,7 @@ module Google
33628
34296
  attr_accessor :enable_flow_logs
33629
34297
  alias_method :enable_flow_logs?, :enable_flow_logs
33630
34298
 
33631
- # [Output Only] The range of external IPv6 addresses that are owned by this
34299
+ # [Output Only] The external IPv6 address range that is assigned to this
33632
34300
  # subnetwork.
33633
34301
  # Corresponds to the JSON property `externalIpv6Prefix`
33634
34302
  # @return [String]
@@ -33657,9 +34325,8 @@ module Google
33657
34325
  # @return [Fixnum]
33658
34326
  attr_accessor :id
33659
34327
 
33660
- # [Output Only] The range of internal IPv6 addresses that are owned by this
33661
- # subnetwork. Note this is for general VM to VM communication, not to be
33662
- # confused with the ipv6_cidr_range field.
34328
+ # [Output Only] The internal IPv6 address range that is assigned to this
34329
+ # subnetwork.
33663
34330
  # Corresponds to the JSON property `internalIpv6Prefix`
33664
34331
  # @return [String]
33665
34332
  attr_accessor :internal_ipv6_prefix
@@ -33676,14 +34343,12 @@ module Google
33676
34343
 
33677
34344
  # The access type of IPv6 address this subnet holds. It's immutable and can only
33678
34345
  # be specified during creation or the first time the subnet is updated into
33679
- # IPV4_IPV6 dual stack. If the ipv6_type is EXTERNAL then this subnet cannot
33680
- # enable direct path.
34346
+ # IPV4_IPV6 dual stack.
33681
34347
  # Corresponds to the JSON property `ipv6AccessType`
33682
34348
  # @return [String]
33683
34349
  attr_accessor :ipv6_access_type
33684
34350
 
33685
- # [Output Only] The range of internal IPv6 addresses that are owned by this
33686
- # subnetwork. Note this will be for private google access only eventually.
34351
+ # [Output Only] This field is for internal use.
33687
34352
  # Corresponds to the JSON property `ipv6CidrRange`
33688
34353
  # @return [String]
33689
34354
  attr_accessor :ipv6_cidr_range
@@ -33724,10 +34389,8 @@ module Google
33724
34389
  attr_accessor :private_ip_google_access
33725
34390
  alias_method :private_ip_google_access?, :private_ip_google_access
33726
34391
 
33727
- # The private IPv6 google access type for the VMs in this subnet. This is an
33728
- # expanded field of enablePrivateV6Access. If both fields are set,
33729
- # privateIpv6GoogleAccess will take priority. This field can be both set at
33730
- # resource creation time and updated using patch.
34392
+ # This field is for internal use. This field can be both set at resource
34393
+ # creation time and updated using patch.
33731
34394
  # Corresponds to the JSON property `privateIpv6GoogleAccess`
33732
34395
  # @return [String]
33733
34396
  attr_accessor :private_ipv6_google_access