google-apis-compute_v1 0.77.0 → 0.79.0

Sign up to get free protection for your applications and to get access to all the features.
@@ -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