google-apis-compute_v1 0.77.0 → 0.79.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.
@@ -567,6 +567,12 @@ module Google
567
567
  # @return [String]
568
568
  attr_accessor :public_ptr_domain_name
569
569
 
570
+ # [Output Only] The resource URL for the security policy associated with this
571
+ # access config.
572
+ # Corresponds to the JSON property `securityPolicy`
573
+ # @return [String]
574
+ attr_accessor :security_policy
575
+
570
576
  # Specifies whether a public DNS 'PTR' record should be created to map the
571
577
  # external IP address of the instance to a DNS domain name. This field is not
572
578
  # used in ipv6AccessConfig. A default PTR record will be created if the VM has
@@ -596,6 +602,7 @@ module Google
596
602
  @nat_ip = args[:nat_ip] if args.key?(:nat_ip)
597
603
  @network_tier = args[:network_tier] if args.key?(:network_tier)
598
604
  @public_ptr_domain_name = args[:public_ptr_domain_name] if args.key?(:public_ptr_domain_name)
605
+ @security_policy = args[:security_policy] if args.key?(:security_policy)
599
606
  @set_public_ptr = args[:set_public_ptr] if args.key?(:set_public_ptr)
600
607
  @type = args[:type] if args.key?(:type)
601
608
  end
@@ -2616,7 +2623,7 @@ module Google
2616
2623
  attr_accessor :schedule
2617
2624
 
2618
2625
  # The time zone to use when interpreting the schedule. The value of this field
2619
- # must be a time zone name from the tz database: http://en.wikipedia.org/wiki/
2626
+ # must be a time zone name from the tz database: https://en.wikipedia.org/wiki/
2620
2627
  # Tz_database. This field is assigned a default value of “UTC” if left empty.
2621
2628
  # Corresponds to the JSON property `timeZone`
2622
2629
  # @return [String]
@@ -4072,8 +4079,7 @@ module Google
4072
4079
  include Google::Apis::Core::Hashable
4073
4080
 
4074
4081
  # Whether the serving infrastructure will authenticate and authorize all
4075
- # incoming requests. If true, the oauth2ClientId and oauth2ClientSecret fields
4076
- # must be non-empty.
4082
+ # incoming requests.
4077
4083
  # Corresponds to the JSON property `enabled`
4078
4084
  # @return [Boolean]
4079
4085
  attr_accessor :enabled
@@ -5214,7 +5220,7 @@ module Google
5214
5220
  # @return [String]
5215
5221
  attr_accessor :region
5216
5222
 
5217
- # List of reservations in this commitment.
5223
+ # List of create-on-create reseravtions for this commitment.
5218
5224
  # Corresponds to the JSON property `reservations`
5219
5225
  # @return [Array<Google::Apis::ComputeV1::Reservation>]
5220
5226
  attr_accessor :reservations
@@ -9332,13 +9338,13 @@ module Google
9332
9338
  # @return [String]
9333
9339
  attr_accessor :name
9334
9340
 
9335
- # This field is not used for external load balancing. For Internal TCP/UDP Load
9336
- # Balancing, this field identifies the network that the load balanced IP should
9337
- # belong to for this Forwarding Rule. If the subnetwork is specified, the
9338
- # network of the subnetwork will be used. If neither subnetwork nor this field
9339
- # is specified, the default network will be used. For Private Service Connect
9340
- # forwarding rules that forward traffic to Google APIs, a network must be
9341
- # provided.
9341
+ # This field is not used for global external load balancing. For Internal TCP/
9342
+ # UDP Load Balancing, this field identifies the network that the load balanced
9343
+ # IP should belong to for this Forwarding Rule. If the subnetwork is specified,
9344
+ # the network of the subnetwork will be used. If neither subnetwork nor this
9345
+ # field is specified, the default network will be used. For Private Service
9346
+ # Connect forwarding rules that forward traffic to Google APIs, a network must
9347
+ # be provided.
9342
9348
  # Corresponds to the JSON property `network`
9343
9349
  # @return [String]
9344
9350
  attr_accessor :network
@@ -12354,8 +12360,8 @@ module Google
12354
12360
  # weightedBackendServices, service must not be set. Conversely if service is set,
12355
12361
  # routeAction cannot contain any weightedBackendServices. Only one of
12356
12362
  # urlRedirect, service or routeAction.weightedBackendService must be set. URL
12357
- # maps for Classic external HTTP(S) load balancers only support the urlRewrite
12358
- # action within a route rule's routeAction.
12363
+ # maps for classic Application Load Balancers only support the urlRewrite action
12364
+ # within a route rule's routeAction.
12359
12365
  # Corresponds to the JSON property `routeAction`
12360
12366
  # @return [Google::Apis::ComputeV1::HttpRouteAction]
12361
12367
  attr_accessor :route_action
@@ -17101,6 +17107,34 @@ module Google
17101
17107
  end
17102
17108
  end
17103
17109
 
17110
+ #
17111
+ class InstancesSetSecurityPolicyRequest
17112
+ include Google::Apis::Core::Hashable
17113
+
17114
+ # The network interfaces that the security policy will be applied to. Network
17115
+ # interfaces use the nicN naming format. You can only set a security policy for
17116
+ # network interfaces with an access config.
17117
+ # Corresponds to the JSON property `networkInterfaces`
17118
+ # @return [Array<String>]
17119
+ attr_accessor :network_interfaces
17120
+
17121
+ # A full or partial URL to a security policy to add to this instance. If this
17122
+ # field is set to an empty string it will remove the associated security policy.
17123
+ # Corresponds to the JSON property `securityPolicy`
17124
+ # @return [String]
17125
+ attr_accessor :security_policy
17126
+
17127
+ def initialize(**args)
17128
+ update!(**args)
17129
+ end
17130
+
17131
+ # Update properties of this object
17132
+ def update!(**args)
17133
+ @network_interfaces = args[:network_interfaces] if args.key?(:network_interfaces)
17134
+ @security_policy = args[:security_policy] if args.key?(:security_policy)
17135
+ end
17136
+ end
17137
+
17104
17138
  #
17105
17139
  class InstancesSetServiceAccountRequest
17106
17140
  include Google::Apis::Core::Hashable
@@ -22221,9 +22255,8 @@ module Google
22221
22255
 
22222
22256
  # Represents a collection of network endpoints. A network endpoint group (NEG)
22223
22257
  # defines how a set of endpoints should be reached, whether they are reachable,
22224
- # and where they are located. For more information about using NEGs, see Setting
22225
- # up external HTTP(S) Load Balancing with internet NEGs, Setting up zonal NEGs,
22226
- # or Setting up external HTTP(S) Load Balancing with serverless NEGs.
22258
+ # and where they are located. For more information about using NEGs for
22259
+ # different use cases, see Network endpoint groups overview.
22227
22260
  class NetworkEndpointGroup
22228
22261
  include Google::Apis::Core::Hashable
22229
22262
 
@@ -27130,8 +27163,8 @@ module Google
27130
27163
  # If defaultRouteAction specifies any weightedBackendServices, defaultService
27131
27164
  # must not be set. Conversely if defaultService is set, defaultRouteAction
27132
27165
  # cannot contain any weightedBackendServices. Only one of defaultRouteAction or
27133
- # defaultUrlRedirect must be set. URL maps for Classic external HTTP(S) load
27134
- # balancers only support the urlRewrite action within a path matcher's
27166
+ # defaultUrlRedirect must be set. URL maps for classic Application Load
27167
+ # Balancers only support the urlRewrite action within a path matcher's
27135
27168
  # defaultRouteAction.
27136
27169
  # Corresponds to the JSON property `defaultRouteAction`
27137
27170
  # @return [Google::Apis::ComputeV1::HttpRouteAction]
@@ -27231,9 +27264,8 @@ module Google
27231
27264
  # the request to the selected backend. If routeAction specifies any
27232
27265
  # weightedBackendServices, service must not be set. Conversely if service is set,
27233
27266
  # routeAction cannot contain any weightedBackendServices. Only one of
27234
- # routeAction or urlRedirect must be set. URL maps for Classic external HTTP(S)
27235
- # load balancers only support the urlRewrite action within a path rule's
27236
- # routeAction.
27267
+ # routeAction or urlRedirect must be set. URL maps for classic Application Load
27268
+ # Balancers only support the urlRewrite action within a path rule's routeAction.
27237
27269
  # Corresponds to the JSON property `routeAction`
27238
27270
  # @return [Google::Apis::ComputeV1::HttpRouteAction]
27239
27271
  attr_accessor :route_action
@@ -27444,6 +27476,18 @@ module Google
27444
27476
  # @return [Hash<String,Google::Apis::ComputeV1::PreservedStatePreservedDisk>]
27445
27477
  attr_accessor :disks
27446
27478
 
27479
+ # Preserved external IPs defined for this instance. This map is keyed with the
27480
+ # name of the network interface.
27481
+ # Corresponds to the JSON property `externalIPs`
27482
+ # @return [Hash<String,Google::Apis::ComputeV1::PreservedStatePreservedNetworkIp>]
27483
+ attr_accessor :external_i_ps
27484
+
27485
+ # Preserved internal IPs defined for this instance. This map is keyed with the
27486
+ # name of the network interface.
27487
+ # Corresponds to the JSON property `internalIPs`
27488
+ # @return [Hash<String,Google::Apis::ComputeV1::PreservedStatePreservedNetworkIp>]
27489
+ attr_accessor :internal_i_ps
27490
+
27447
27491
  # Preserved metadata defined for this instance.
27448
27492
  # Corresponds to the JSON property `metadata`
27449
27493
  # @return [Hash<String,String>]
@@ -27456,6 +27500,8 @@ module Google
27456
27500
  # Update properties of this object
27457
27501
  def update!(**args)
27458
27502
  @disks = args[:disks] if args.key?(:disks)
27503
+ @external_i_ps = args[:external_i_ps] if args.key?(:external_i_ps)
27504
+ @internal_i_ps = args[:internal_i_ps] if args.key?(:internal_i_ps)
27459
27505
  @metadata = args[:metadata] if args.key?(:metadata)
27460
27506
  end
27461
27507
  end
@@ -27497,6 +27543,60 @@ module Google
27497
27543
  end
27498
27544
  end
27499
27545
 
27546
+ #
27547
+ class PreservedStatePreservedNetworkIp
27548
+ include Google::Apis::Core::Hashable
27549
+
27550
+ # These stateful IPs will never be released during autohealing, update or VM
27551
+ # instance recreate operations. This flag is used to configure if the IP
27552
+ # reservation should be deleted after it is no longer used by the group, e.g.
27553
+ # when the given instance or the whole group is deleted.
27554
+ # Corresponds to the JSON property `autoDelete`
27555
+ # @return [String]
27556
+ attr_accessor :auto_delete
27557
+
27558
+ # Ip address representation
27559
+ # Corresponds to the JSON property `ipAddress`
27560
+ # @return [Google::Apis::ComputeV1::PreservedStatePreservedNetworkIpIpAddress]
27561
+ attr_accessor :ip_address
27562
+
27563
+ def initialize(**args)
27564
+ update!(**args)
27565
+ end
27566
+
27567
+ # Update properties of this object
27568
+ def update!(**args)
27569
+ @auto_delete = args[:auto_delete] if args.key?(:auto_delete)
27570
+ @ip_address = args[:ip_address] if args.key?(:ip_address)
27571
+ end
27572
+ end
27573
+
27574
+ #
27575
+ class PreservedStatePreservedNetworkIpIpAddress
27576
+ include Google::Apis::Core::Hashable
27577
+
27578
+ # The URL of the reservation for this IP address.
27579
+ # Corresponds to the JSON property `address`
27580
+ # @return [String]
27581
+ attr_accessor :address
27582
+
27583
+ # An IPv4 internal network address to assign to the instance for this network
27584
+ # interface.
27585
+ # Corresponds to the JSON property `literal`
27586
+ # @return [String]
27587
+ attr_accessor :literal
27588
+
27589
+ def initialize(**args)
27590
+ update!(**args)
27591
+ end
27592
+
27593
+ # Update properties of this object
27594
+ def update!(**args)
27595
+ @address = args[:address] if args.key?(:address)
27596
+ @literal = args[:literal] if args.key?(:literal)
27597
+ end
27598
+ end
27599
+
27500
27600
  # Represents a Project resource. A project is used to organize resources in a
27501
27601
  # Google Cloud Platform environment. For more information, read about the
27502
27602
  # Resource Hierarchy.
@@ -30186,17 +30286,19 @@ module Google
30186
30286
  # Global](/compute/docs/reference/rest/v1/urlMaps) * [Regional](/compute/docs/
30187
30287
  # reference/rest/v1/regionUrlMaps) A URL map resource is a component of certain
30188
30288
  # types of cloud load balancers and Traffic Director: * urlMaps are used by
30189
- # external HTTP(S) load balancers and Traffic Director. * regionUrlMaps are used
30190
- # by internal HTTP(S) load balancers. For a list of supported URL map features
30191
- # by the load balancer type, see the Load balancing features: Routing and
30192
- # traffic management table. For a list of supported URL map features for Traffic
30193
- # Director, see the Traffic Director features: Routing and traffic management
30194
- # table. This resource defines mappings from hostnames and URL paths to either a
30195
- # backend service or a backend bucket. To use the global urlMaps resource, the
30196
- # backend service must have a loadBalancingScheme of either EXTERNAL or
30197
- # INTERNAL_SELF_MANAGED. To use the regionUrlMaps resource, the backend service
30198
- # must have a loadBalancingScheme of INTERNAL_MANAGED. For more information,
30199
- # read URL Map Concepts.
30289
+ # global external Application Load Balancers, classic Application Load Balancers,
30290
+ # and cross-region internal Application Load Balancers. * regionUrlMaps are
30291
+ # used by internal Application Load Balancers, regional external Application
30292
+ # Load Balancers and regional internal Application Load Balancers. For a list of
30293
+ # supported URL map features by the load balancer type, see the Load balancing
30294
+ # features: Routing and traffic management table. For a list of supported URL
30295
+ # map features for Traffic Director, see the Traffic Director features: Routing
30296
+ # and traffic management table. This resource defines mappings from hostnames
30297
+ # and URL paths to either a backend service or a backend bucket. To use the
30298
+ # global urlMaps resource, the backend service must have a loadBalancingScheme
30299
+ # of either EXTERNAL or INTERNAL_SELF_MANAGED. To use the regionUrlMaps resource,
30300
+ # the backend service must have a loadBalancingScheme of INTERNAL_MANAGED. For
30301
+ # more information, read URL Map Concepts.
30200
30302
  # Corresponds to the JSON property `resource`
30201
30303
  # @return [Google::Apis::ComputeV1::UrlMap]
30202
30304
  attr_accessor :resource
@@ -32132,9 +32234,11 @@ module Google
32132
32234
  # @return [Fixnum]
32133
32235
  attr_accessor :id
32134
32236
 
32135
- # Router interfaces. Each interface requires either one linked resource, (for
32136
- # example, linkedVpnTunnel), or IP address and IP address range (for example,
32137
- # ipRange), or both.
32237
+ # Router interfaces. To create a BGP peer that uses a router interface, the
32238
+ # interface must have one of the following fields specified: - linkedVpnTunnel -
32239
+ # linkedInterconnectAttachment - subnetwork You can create a router interface
32240
+ # without any of these fields specified. However, you cannot create a BGP peer
32241
+ # that uses that interface.
32138
32242
  # Corresponds to the JSON property `interfaces`
32139
32243
  # @return [Array<Google::Apis::ComputeV1::RouterInterface>]
32140
32244
  attr_accessor :interfaces
@@ -32661,14 +32765,14 @@ module Google
32661
32765
 
32662
32766
  # URI of the linked Interconnect attachment. It must be in the same region as
32663
32767
  # the router. Each interface can have one linked resource, which can be a VPN
32664
- # tunnel, an Interconnect attachment, or a virtual machine instance.
32768
+ # tunnel, an Interconnect attachment, or a subnetwork.
32665
32769
  # Corresponds to the JSON property `linkedInterconnectAttachment`
32666
32770
  # @return [String]
32667
32771
  attr_accessor :linked_interconnect_attachment
32668
32772
 
32669
32773
  # URI of the linked VPN tunnel, which must be in the same region as the router.
32670
32774
  # Each interface can have one linked resource, which can be a VPN tunnel, an
32671
- # Interconnect attachment, or a virtual machine instance.
32775
+ # Interconnect attachment, or a subnetwork.
32672
32776
  # Corresponds to the JSON property `linkedVpnTunnel`
32673
32777
  # @return [String]
32674
32778
  attr_accessor :linked_vpn_tunnel
@@ -32869,7 +32973,7 @@ module Google
32869
32973
  attr_accessor :key
32870
32974
 
32871
32975
  # Name used to identify the key. Must be unique within a router. Must be
32872
- # referenced by at least one bgpPeer. Must comply with RFC1035.
32976
+ # referenced by exactly one bgpPeer. Must comply with RFC1035.
32873
32977
  # Corresponds to the JSON property `name`
32874
32978
  # @return [String]
32875
32979
  attr_accessor :name
@@ -33105,8 +33209,8 @@ module Google
33105
33209
  # "inIpRange(destination.ip, '1.1.0.0/16') || inIpRange(destination.ip, '2.2.0.
33106
33210
  # 0/16')" "destination.ip == '1.1.0.1' || destination.ip == '8.8.8.8'" The
33107
33211
  # following example is a valid match expression for private NAT: "nexthop.hub ==
33108
- # 'https://networkconnectivity.googleapis.com/v1alpha1/projects/my-project/
33109
- # global/hub/hub-1'"
33212
+ # '//networkconnectivity.googleapis.com/projects/my-project/locations/global/
33213
+ # hubs/hub-1'"
33110
33214
  # Corresponds to the JSON property `match`
33111
33215
  # @return [String]
33112
33216
  attr_accessor :match
@@ -34480,6 +34584,16 @@ module Google
34480
34584
  # @return [String]
34481
34585
  attr_accessor :type
34482
34586
 
34587
+ # Definitions of user-defined fields for CLOUD_ARMOR_NETWORK policies. A user-
34588
+ # defined field consists of up to 4 bytes extracted from a fixed offset in the
34589
+ # packet, relative to the IPv4, IPv6, TCP, or UDP header, with an optional mask
34590
+ # to select certain bits. Rules may then specify matching values for these
34591
+ # fields. Example: userDefinedFields: - name: "ipv4_fragment_offset" base: IPV4
34592
+ # offset: 6 size: 2 mask: "0x1fff"
34593
+ # Corresponds to the JSON property `userDefinedFields`
34594
+ # @return [Array<Google::Apis::ComputeV1::SecurityPolicyUserDefinedField>]
34595
+ attr_accessor :user_defined_fields
34596
+
34483
34597
  def initialize(**args)
34484
34598
  update!(**args)
34485
34599
  end
@@ -34502,6 +34616,7 @@ module Google
34502
34616
  @rules = args[:rules] if args.key?(:rules)
34503
34617
  @self_link = args[:self_link] if args.key?(:self_link)
34504
34618
  @type = args[:type] if args.key?(:type)
34619
+ @user_defined_fields = args[:user_defined_fields] if args.key?(:user_defined_fields)
34505
34620
  end
34506
34621
  end
34507
34622
 
@@ -34881,6 +34996,12 @@ module Google
34881
34996
  # @return [Google::Apis::ComputeV1::SecurityPolicyRuleMatcher]
34882
34997
  attr_accessor :match
34883
34998
 
34999
+ # Represents a match condition that incoming network traffic is evaluated
35000
+ # against.
35001
+ # Corresponds to the JSON property `networkMatch`
35002
+ # @return [Google::Apis::ComputeV1::SecurityPolicyRuleNetworkMatcher]
35003
+ attr_accessor :network_match
35004
+
34884
35005
  # Preconfigured WAF configuration to be applied for the rule. If the rule does
34885
35006
  # not evaluate preconfigured WAF rules, i.e., if evaluatePreconfiguredWaf() is
34886
35007
  # not used, this field will have no effect.
@@ -34926,6 +35047,7 @@ module Google
34926
35047
  @header_action = args[:header_action] if args.key?(:header_action)
34927
35048
  @kind = args[:kind] if args.key?(:kind)
34928
35049
  @match = args[:match] if args.key?(:match)
35050
+ @network_match = args[:network_match] if args.key?(:network_match)
34929
35051
  @preconfigured_waf_config = args[:preconfigured_waf_config] if args.key?(:preconfigured_waf_config)
34930
35052
  @preview = args[:preview] if args.key?(:preview)
34931
35053
  @priority = args[:priority] if args.key?(:priority)
@@ -35048,6 +35170,102 @@ module Google
35048
35170
  end
35049
35171
  end
35050
35172
 
35173
+ # Represents a match condition that incoming network traffic is evaluated
35174
+ # against.
35175
+ class SecurityPolicyRuleNetworkMatcher
35176
+ include Google::Apis::Core::Hashable
35177
+
35178
+ # Destination IPv4/IPv6 addresses or CIDR prefixes, in standard text format.
35179
+ # Corresponds to the JSON property `destIpRanges`
35180
+ # @return [Array<String>]
35181
+ attr_accessor :dest_ip_ranges
35182
+
35183
+ # Destination port numbers for TCP/UDP/SCTP. Each element can be a 16-bit
35184
+ # unsigned decimal number (e.g. "80") or range (e.g. "0-1023").
35185
+ # Corresponds to the JSON property `destPorts`
35186
+ # @return [Array<String>]
35187
+ attr_accessor :dest_ports
35188
+
35189
+ # IPv4 protocol / IPv6 next header (after extension headers). Each element can
35190
+ # be an 8-bit unsigned decimal number (e.g. "6"), range (e.g. "253-254"), or one
35191
+ # of the following protocol names: "tcp", "udp", "icmp", "esp", "ah", "ipip", or
35192
+ # "sctp".
35193
+ # Corresponds to the JSON property `ipProtocols`
35194
+ # @return [Array<String>]
35195
+ attr_accessor :ip_protocols
35196
+
35197
+ # BGP Autonomous System Number associated with the source IP address.
35198
+ # Corresponds to the JSON property `srcAsns`
35199
+ # @return [Array<Fixnum>]
35200
+ attr_accessor :src_asns
35201
+
35202
+ # Source IPv4/IPv6 addresses or CIDR prefixes, in standard text format.
35203
+ # Corresponds to the JSON property `srcIpRanges`
35204
+ # @return [Array<String>]
35205
+ attr_accessor :src_ip_ranges
35206
+
35207
+ # Source port numbers for TCP/UDP/SCTP. Each element can be a 16-bit unsigned
35208
+ # decimal number (e.g. "80") or range (e.g. "0-1023").
35209
+ # Corresponds to the JSON property `srcPorts`
35210
+ # @return [Array<String>]
35211
+ attr_accessor :src_ports
35212
+
35213
+ # Two-letter ISO 3166-1 alpha-2 country code associated with the source IP
35214
+ # address.
35215
+ # Corresponds to the JSON property `srcRegionCodes`
35216
+ # @return [Array<String>]
35217
+ attr_accessor :src_region_codes
35218
+
35219
+ # User-defined fields. Each element names a defined field and lists the matching
35220
+ # values for that field.
35221
+ # Corresponds to the JSON property `userDefinedFields`
35222
+ # @return [Array<Google::Apis::ComputeV1::SecurityPolicyRuleNetworkMatcherUserDefinedFieldMatch>]
35223
+ attr_accessor :user_defined_fields
35224
+
35225
+ def initialize(**args)
35226
+ update!(**args)
35227
+ end
35228
+
35229
+ # Update properties of this object
35230
+ def update!(**args)
35231
+ @dest_ip_ranges = args[:dest_ip_ranges] if args.key?(:dest_ip_ranges)
35232
+ @dest_ports = args[:dest_ports] if args.key?(:dest_ports)
35233
+ @ip_protocols = args[:ip_protocols] if args.key?(:ip_protocols)
35234
+ @src_asns = args[:src_asns] if args.key?(:src_asns)
35235
+ @src_ip_ranges = args[:src_ip_ranges] if args.key?(:src_ip_ranges)
35236
+ @src_ports = args[:src_ports] if args.key?(:src_ports)
35237
+ @src_region_codes = args[:src_region_codes] if args.key?(:src_region_codes)
35238
+ @user_defined_fields = args[:user_defined_fields] if args.key?(:user_defined_fields)
35239
+ end
35240
+ end
35241
+
35242
+ #
35243
+ class SecurityPolicyRuleNetworkMatcherUserDefinedFieldMatch
35244
+ include Google::Apis::Core::Hashable
35245
+
35246
+ # Name of the user-defined field, as given in the definition.
35247
+ # Corresponds to the JSON property `name`
35248
+ # @return [String]
35249
+ attr_accessor :name
35250
+
35251
+ # Matching values of the field. Each element can be a 32-bit unsigned decimal or
35252
+ # hexadecimal (starting with "0x") number (e.g. "64") or range (e.g. "0x400-
35253
+ # 0x7ff").
35254
+ # Corresponds to the JSON property `values`
35255
+ # @return [Array<String>]
35256
+ attr_accessor :values
35257
+
35258
+ def initialize(**args)
35259
+ update!(**args)
35260
+ end
35261
+
35262
+ # Update properties of this object
35263
+ def update!(**args)
35264
+ @name = args[:name] if args.key?(:name)
35265
+ @values = args[:values] if args.key?(:values)
35266
+ end
35267
+ end
35268
+
35051
35269
  #
35052
35270
  class SecurityPolicyRulePreconfiguredWafConfig
35053
35271
  include Google::Apis::Core::Hashable
@@ -35348,6 +35566,59 @@ module Google
35348
35566
  end
35349
35567
  end
35350
35568
 
35569
+ #
35570
+ class SecurityPolicyUserDefinedField
35571
+ include Google::Apis::Core::Hashable
35572
+
35573
+ # The base relative to which 'offset' is measured. Possible values are: - IPV4:
35574
+ # Points to the beginning of the IPv4 header. - IPV6: Points to the beginning of
35575
+ # the IPv6 header. - TCP: Points to the beginning of the TCP header, skipping
35576
+ # over any IPv4 options or IPv6 extension headers. Not present for non-first
35577
+ # fragments. - UDP: Points to the beginning of the UDP header, skipping over any
35578
+ # IPv4 options or IPv6 extension headers. Not present for non-first fragments.
35579
+ # required
35580
+ # Corresponds to the JSON property `base`
35581
+ # @return [String]
35582
+ attr_accessor :base
35583
+
35584
+ # If specified, apply this mask (bitwise AND) to the field to ignore bits before
35585
+ # matching. Encoded as a hexadecimal number (starting with "0x"). The last byte
35586
+ # of the field (in network byte order) corresponds to the least significant byte
35587
+ # of the mask.
35588
+ # Corresponds to the JSON property `mask`
35589
+ # @return [String]
35590
+ attr_accessor :mask
35591
+
35592
+ # The name of this field. Must be unique within the policy.
35593
+ # Corresponds to the JSON property `name`
35594
+ # @return [String]
35595
+ attr_accessor :name
35596
+
35597
+ # Offset of the first byte of the field (in network byte order) relative to '
35598
+ # base'.
35599
+ # Corresponds to the JSON property `offset`
35600
+ # @return [Fixnum]
35601
+ attr_accessor :offset
35602
+
35603
+ # Size of the field in bytes. Valid values: 1-4.
35604
+ # Corresponds to the JSON property `size`
35605
+ # @return [Fixnum]
35606
+ attr_accessor :size
35607
+
35608
+ def initialize(**args)
35609
+ update!(**args)
35610
+ end
35611
+
35612
+ # Update properties of this object
35613
+ def update!(**args)
35614
+ @base = args[:base] if args.key?(:base)
35615
+ @mask = args[:mask] if args.key?(:mask)
35616
+ @name = args[:name] if args.key?(:name)
35617
+ @offset = args[:offset] if args.key?(:offset)
35618
+ @size = args[:size] if args.key?(:size)
35619
+ end
35620
+ end
35621
+
35351
35622
  # The authentication and authorization settings for a BackendService.
35352
35623
  class SecuritySettings
35353
35624
  include Google::Apis::Core::Hashable
@@ -36827,17 +37098,20 @@ module Google
36827
37098
  end
36828
37099
  end
36829
37100
 
36830
- # Represents an SSL Certificate resource. Google Compute Engine has two SSL
36831
- # Certificate resources: * [Global](/compute/docs/reference/rest/v1/
37101
+ # Represents an SSL certificate resource. Google Compute Engine has two SSL
37102
+ # certificate resources: * [Global](/compute/docs/reference/rest/v1/
36832
37103
  # sslCertificates) * [Regional](/compute/docs/reference/rest/v1/
36833
- # regionSslCertificates) The sslCertificates are used by: - external HTTPS load
36834
- # balancers - SSL proxy load balancers The regionSslCertificates are used by
36835
- # internal HTTPS load balancers. Optionally, certificate file contents that you
36836
- # upload can contain a set of up to five PEM-encoded certificates. The API call
36837
- # creates an object (sslCertificate) that holds this data. You can use SSL keys
36838
- # and certificates to secure connections to a load balancer. For more
36839
- # information, read Creating and using SSL certificates, SSL certificates quotas
36840
- # and limits, and Troubleshooting SSL certificates.
37104
+ # regionSslCertificates) The global SSL certificates (sslCertificates) are used
37105
+ # by: - Global external Application Load Balancers - Classic Application Load
37106
+ # Balancers - Proxy Network Load Balancers (with target SSL proxies) The
37107
+ # regional SSL certificates (regionSslCertificates) are used by: - Regional
37108
+ # external Application Load Balancers - Regional internal Application Load
37109
+ # Balancers Optionally, certificate file contents that you upload can contain a
37110
+ # set of up to five PEM-encoded certificates. The API call creates an object (
37111
+ # sslCertificate) that holds this data. You can use SSL keys and certificates to
37112
+ # secure connections to a load balancer. For more information, read Creating and
37113
+ # using SSL certificates, SSL certificates quotas and limits, and
37114
+ # Troubleshooting SSL certificates.
36841
37115
  class SslCertificate
36842
37116
  include Google::Apis::Core::Hashable
36843
37117
 
@@ -37930,6 +38204,20 @@ module Google
37930
38204
  # @return [Hash<String,Google::Apis::ComputeV1::StatefulPolicyPreservedStateDiskDevice>]
37931
38205
  attr_accessor :disks
37932
38206
 
38207
+ # External network IPs assigned to the instances that will be preserved on
38208
+ # instance delete, update, etc. This map is keyed with the network interface
38209
+ # name.
38210
+ # Corresponds to the JSON property `externalIPs`
38211
+ # @return [Hash<String,Google::Apis::ComputeV1::StatefulPolicyPreservedStateNetworkIp>]
38212
+ attr_accessor :external_i_ps
38213
+
38214
+ # Internal network IPs assigned to the instances that will be preserved on
38215
+ # instance delete, update, etc. This map is keyed with the network interface
38216
+ # name.
38217
+ # Corresponds to the JSON property `internalIPs`
38218
+ # @return [Hash<String,Google::Apis::ComputeV1::StatefulPolicyPreservedStateNetworkIp>]
38219
+ attr_accessor :internal_i_ps
38220
+
37933
38221
  def initialize(**args)
37934
38222
  update!(**args)
37935
38223
  end
@@ -37937,6 +38225,8 @@ module Google
37937
38225
  # Update properties of this object
37938
38226
  def update!(**args)
37939
38227
  @disks = args[:disks] if args.key?(:disks)
38228
+ @external_i_ps = args[:external_i_ps] if args.key?(:external_i_ps)
38229
+ @internal_i_ps = args[:internal_i_ps] if args.key?(:internal_i_ps)
37940
38230
  end
37941
38231
  end
37942
38232
 
@@ -37963,6 +38253,28 @@ module Google
37963
38253
  end
37964
38254
  end
37965
38255
 
38256
+ #
38257
+ class StatefulPolicyPreservedStateNetworkIp
38258
+ include Google::Apis::Core::Hashable
38259
+
38260
+ # These stateful IPs will never be released during autohealing, update or VM
38261
+ # instance recreate operations. This flag is used to configure if the IP
38262
+ # reservation should be deleted after it is no longer used by the group, e.g.
38263
+ # when the given instance or the whole group is deleted.
38264
+ # Corresponds to the JSON property `autoDelete`
38265
+ # @return [String]
38266
+ attr_accessor :auto_delete
38267
+
38268
+ def initialize(**args)
38269
+ update!(**args)
38270
+ end
38271
+
38272
+ # Update properties of this object
38273
+ def update!(**args)
38274
+ @auto_delete = args[:auto_delete] if args.key?(:auto_delete)
38275
+ end
38276
+ end
38277
+
37966
38278
  # The `Status` type defines a logical error model that is suitable for different
37967
38279
  # programming environments, including REST APIs and RPC APIs. It is used by [
37968
38280
  # gRPC](https://github.com/grpc). Each `Status` message contains three pieces of
@@ -39133,11 +39445,13 @@ module Google
39133
39445
  # HTTP Proxy resources: * [Global](/compute/docs/reference/rest/v1/
39134
39446
  # targetHttpProxies) * [Regional](/compute/docs/reference/rest/v1/
39135
39447
  # regionTargetHttpProxies) A target HTTP proxy is a component of GCP HTTP load
39136
- # balancers. * targetHttpProxies are used by external HTTP load balancers and
39137
- # Traffic Director. * regionTargetHttpProxies are used by internal HTTP load
39138
- # balancers. Forwarding rules reference a target HTTP proxy, and the target
39139
- # proxy then references a URL map. For more information, read Using Target
39140
- # Proxies and Forwarding rule concepts.
39448
+ # balancers. * targetHttpProxies are used by global external Application Load
39449
+ # Balancers, classic Application Load Balancers, cross-region internal
39450
+ # Application Load Balancers, and Traffic Director. * regionTargetHttpProxies
39451
+ # are used by regional internal Application Load Balancers and regional external
39452
+ # Application Load Balancers. Forwarding rules reference a target HTTP proxy,
39453
+ # and the target proxy then references a URL map. For more information, read
39454
+ # Using Target Proxies and Forwarding rule concepts.
39141
39455
  class TargetHttpProxy
39142
39456
  include Google::Apis::Core::Hashable
39143
39457
 
@@ -39165,10 +39479,10 @@ module Google
39165
39479
 
39166
39480
  # Specifies how long to keep a connection open, after completing a response,
39167
39481
  # while there is no matching traffic (in seconds). If an HTTP keep-alive is not
39168
- # specified, a default value (610 seconds) will be used. For Global external
39169
- # HTTP(S) load balancer, the minimum allowed value is 5 seconds and the maximum
39170
- # allowed value is 1200 seconds. For Global external HTTP(S) load balancer (
39171
- # classic), this option is not available publicly.
39482
+ # specified, a default value (610 seconds) will be used. For global external
39483
+ # Application Load Balancers, the minimum allowed value is 5 seconds and the
39484
+ # maximum allowed value is 1200 seconds. For classic Application Load Balancers,
39485
+ # this option is not supported.
39172
39486
  # Corresponds to the JSON property `httpKeepAliveTimeoutSec`
39173
39487
  # @return [Fixnum]
39174
39488
  attr_accessor :http_keep_alive_timeout_sec
@@ -39573,11 +39887,13 @@ module Google
39573
39887
  # HTTPS Proxy resources: * [Global](/compute/docs/reference/rest/v1/
39574
39888
  # targetHttpsProxies) * [Regional](/compute/docs/reference/rest/v1/
39575
39889
  # regionTargetHttpsProxies) A target HTTPS proxy is a component of GCP HTTPS
39576
- # load balancers. * targetHttpsProxies are used by external HTTPS load balancers.
39577
- # * regionTargetHttpsProxies are used by internal HTTPS load balancers.
39578
- # Forwarding rules reference a target HTTPS proxy, and the target proxy then
39579
- # references a URL map. For more information, read Using Target Proxies and
39580
- # Forwarding rule concepts.
39890
+ # load balancers. * targetHttpProxies are used by global external Application
39891
+ # Load Balancers, classic Application Load Balancers, cross-region internal
39892
+ # Application Load Balancers, and Traffic Director. * regionTargetHttpProxies
39893
+ # are used by regional internal Application Load Balancers and regional external
39894
+ # Application Load Balancers. Forwarding rules reference a target HTTPS proxy,
39895
+ # and the target proxy then references a URL map. For more information, read
39896
+ # Using Target Proxies and Forwarding rule concepts.
39581
39897
  class TargetHttpsProxy
39582
39898
  include Google::Apis::Core::Hashable
39583
39899
 
@@ -39625,10 +39941,10 @@ module Google
39625
39941
 
39626
39942
  # Specifies how long to keep a connection open, after completing a response,
39627
39943
  # while there is no matching traffic (in seconds). If an HTTP keep-alive is not
39628
- # specified, a default value (610 seconds) will be used. For Global external
39629
- # HTTP(S) load balancer, the minimum allowed value is 5 seconds and the maximum
39630
- # allowed value is 1200 seconds. For Global external HTTP(S) load balancer (
39631
- # classic), this option is not available publicly.
39944
+ # specified, a default value (610 seconds) will be used. For global external
39945
+ # Application Load Balancers, the minimum allowed value is 5 seconds and the
39946
+ # maximum allowed value is 1200 seconds. For classic Application Load Balancers,
39947
+ # this option is not supported.
39632
39948
  # Corresponds to the JSON property `httpKeepAliveTimeoutSec`
39633
39949
  # @return [Fixnum]
39634
39950
  attr_accessor :http_keep_alive_timeout_sec
@@ -40059,6 +40375,12 @@ module Google
40059
40375
  # @return [String]
40060
40376
  attr_accessor :network
40061
40377
 
40378
+ # [Output Only] The resource URL for the security policy associated with this
40379
+ # target instance.
40380
+ # Corresponds to the JSON property `securityPolicy`
40381
+ # @return [String]
40382
+ attr_accessor :security_policy
40383
+
40062
40384
  # [Output Only] Server-defined URL for the resource.
40063
40385
  # Corresponds to the JSON property `selfLink`
40064
40386
  # @return [String]
@@ -40085,6 +40407,7 @@ module Google
40085
40407
  @name = args[:name] if args.key?(:name)
40086
40408
  @nat_policy = args[:nat_policy] if args.key?(:nat_policy)
40087
40409
  @network = args[:network] if args.key?(:network)
40410
+ @security_policy = args[:security_policy] if args.key?(:security_policy)
40088
40411
  @self_link = args[:self_link] if args.key?(:self_link)
40089
40412
  @zone = args[:zone] if args.key?(:zone)
40090
40413
  end
@@ -40508,6 +40831,12 @@ module Google
40508
40831
  # @return [String]
40509
40832
  attr_accessor :region
40510
40833
 
40834
+ # [Output Only] The resource URL for the security policy associated with this
40835
+ # target pool.
40836
+ # Corresponds to the JSON property `securityPolicy`
40837
+ # @return [String]
40838
+ attr_accessor :security_policy
40839
+
40511
40840
  # [Output Only] Server-defined URL for the resource.
40512
40841
  # Corresponds to the JSON property `selfLink`
40513
40842
  # @return [String]
@@ -40539,6 +40868,7 @@ module Google
40539
40868
  @kind = args[:kind] if args.key?(:kind)
40540
40869
  @name = args[:name] if args.key?(:name)
40541
40870
  @region = args[:region] if args.key?(:region)
40871
+ @security_policy = args[:security_policy] if args.key?(:security_policy)
40542
40872
  @self_link = args[:self_link] if args.key?(:self_link)
40543
40873
  @session_affinity = args[:session_affinity] if args.key?(:session_affinity)
40544
40874
  end
@@ -42358,17 +42688,19 @@ module Google
42358
42688
  # Global](/compute/docs/reference/rest/v1/urlMaps) * [Regional](/compute/docs/
42359
42689
  # reference/rest/v1/regionUrlMaps) A URL map resource is a component of certain
42360
42690
  # types of cloud load balancers and Traffic Director: * urlMaps are used by
42361
- # external HTTP(S) load balancers and Traffic Director. * regionUrlMaps are used
42362
- # by internal HTTP(S) load balancers. For a list of supported URL map features
42363
- # by the load balancer type, see the Load balancing features: Routing and
42364
- # traffic management table. For a list of supported URL map features for Traffic
42365
- # Director, see the Traffic Director features: Routing and traffic management
42366
- # table. This resource defines mappings from hostnames and URL paths to either a
42367
- # backend service or a backend bucket. To use the global urlMaps resource, the
42368
- # backend service must have a loadBalancingScheme of either EXTERNAL or
42369
- # INTERNAL_SELF_MANAGED. To use the regionUrlMaps resource, the backend service
42370
- # must have a loadBalancingScheme of INTERNAL_MANAGED. For more information,
42371
- # read URL Map Concepts.
42691
+ # global external Application Load Balancers, classic Application Load Balancers,
42692
+ # and cross-region internal Application Load Balancers. * regionUrlMaps are
42693
+ # used by internal Application Load Balancers, regional external Application
42694
+ # Load Balancers and regional internal Application Load Balancers. For a list of
42695
+ # supported URL map features by the load balancer type, see the Load balancing
42696
+ # features: Routing and traffic management table. For a list of supported URL
42697
+ # map features for Traffic Director, see the Traffic Director features: Routing
42698
+ # and traffic management table. This resource defines mappings from hostnames
42699
+ # and URL paths to either a backend service or a backend bucket. To use the
42700
+ # global urlMaps resource, the backend service must have a loadBalancingScheme
42701
+ # of either EXTERNAL or INTERNAL_SELF_MANAGED. To use the regionUrlMaps resource,
42702
+ # the backend service must have a loadBalancingScheme of INTERNAL_MANAGED. For
42703
+ # more information, read URL Map Concepts.
42372
42704
  class UrlMap
42373
42705
  include Google::Apis::Core::Hashable
42374
42706
 
@@ -42383,8 +42715,8 @@ module Google
42383
42715
  # defaultRouteAction specifies any weightedBackendServices, defaultService must
42384
42716
  # not be set. Conversely if defaultService is set, defaultRouteAction cannot
42385
42717
  # contain any weightedBackendServices. Only one of defaultRouteAction or
42386
- # defaultUrlRedirect must be set. URL maps for Classic external HTTP(S) load
42387
- # balancers only support the urlRewrite action within defaultRouteAction.
42718
+ # defaultUrlRedirect must be set. URL maps for classic Application Load
42719
+ # Balancers only support the urlRewrite action within defaultRouteAction.
42388
42720
  # defaultRouteAction has no effect when the URL map is bound to a target gRPC
42389
42721
  # proxy that has the validateForProxyless field set to true.
42390
42722
  # Corresponds to the JSON property `defaultRouteAction`
@@ -43001,16 +43333,16 @@ module Google
43001
43333
  include Google::Apis::Core::Hashable
43002
43334
 
43003
43335
  # Specifies the load balancer type(s) this validation request is for. Use
43004
- # EXTERNAL_MANAGED for HTTP/HTTPS External Global Load Balancer with Advanced
43005
- # Traffic Management. Use EXTERNAL for Classic HTTP/HTTPS External Global Load
43006
- # Balancer. Other load balancer types are not supported. For more information,
43007
- # refer to Choosing a load balancer. If unspecified, the load balancing scheme
43008
- # will be inferred from the backend service resources this URL map references.
43009
- # If that can not be inferred (for example, this URL map only references backend
43010
- # buckets, or this Url map is for rewrites and redirects only and doesn't
43011
- # reference any backends), EXTERNAL will be used as the default type. If
43012
- # specified, the scheme(s) must not conflict with the load balancing scheme of
43013
- # the backend service resources this Url map references.
43336
+ # EXTERNAL_MANAGED for global external Application Load Balancers and regional
43337
+ # external Application Load Balancers. Use EXTERNAL for classic Application Load
43338
+ # Balancers. Use INTERNAL_MANAGED for internal Application Load Balancers. For
43339
+ # more information, refer to Choosing a load balancer. If unspecified, the load
43340
+ # balancing scheme will be inferred from the backend service resources this URL
43341
+ # map references. If that can not be inferred (for example, this URL map only
43342
+ # references backend buckets, or this Url map is for rewrites and redirects only
43343
+ # and doesn't reference any backends), EXTERNAL will be used as the default type.
43344
+ # If specified, the scheme(s) must not conflict with the load balancing scheme
43345
+ # of the backend service resources this Url map references.
43014
43346
  # Corresponds to the JSON property `loadBalancingSchemes`
43015
43347
  # @return [Array<String>]
43016
43348
  attr_accessor :load_balancing_schemes
@@ -43019,17 +43351,19 @@ module Google
43019
43351
  # Global](/compute/docs/reference/rest/v1/urlMaps) * [Regional](/compute/docs/
43020
43352
  # reference/rest/v1/regionUrlMaps) A URL map resource is a component of certain
43021
43353
  # types of cloud load balancers and Traffic Director: * urlMaps are used by
43022
- # external HTTP(S) load balancers and Traffic Director. * regionUrlMaps are used
43023
- # by internal HTTP(S) load balancers. For a list of supported URL map features
43024
- # by the load balancer type, see the Load balancing features: Routing and
43025
- # traffic management table. For a list of supported URL map features for Traffic
43026
- # Director, see the Traffic Director features: Routing and traffic management
43027
- # table. This resource defines mappings from hostnames and URL paths to either a
43028
- # backend service or a backend bucket. To use the global urlMaps resource, the
43029
- # backend service must have a loadBalancingScheme of either EXTERNAL or
43030
- # INTERNAL_SELF_MANAGED. To use the regionUrlMaps resource, the backend service
43031
- # must have a loadBalancingScheme of INTERNAL_MANAGED. For more information,
43032
- # read URL Map Concepts.
43354
+ # global external Application Load Balancers, classic Application Load Balancers,
43355
+ # and cross-region internal Application Load Balancers. * regionUrlMaps are
43356
+ # used by internal Application Load Balancers, regional external Application
43357
+ # Load Balancers and regional internal Application Load Balancers. For a list of
43358
+ # supported URL map features by the load balancer type, see the Load balancing
43359
+ # features: Routing and traffic management table. For a list of supported URL
43360
+ # map features for Traffic Director, see the Traffic Director features: Routing
43361
+ # and traffic management table. This resource defines mappings from hostnames
43362
+ # and URL paths to either a backend service or a backend bucket. To use the
43363
+ # global urlMaps resource, the backend service must have a loadBalancingScheme
43364
+ # of either EXTERNAL or INTERNAL_SELF_MANAGED. To use the regionUrlMaps resource,
43365
+ # the backend service must have a loadBalancingScheme of INTERNAL_MANAGED. For
43366
+ # more information, read URL Map Concepts.
43033
43367
  # Corresponds to the JSON property `resource`
43034
43368
  # @return [Google::Apis::ComputeV1::UrlMap]
43035
43369
  attr_accessor :resource