google-apis-networksecurity_v1 0.33.0 → 0.55.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.
@@ -278,6 +278,22 @@ module Google
278
278
  # @return [String]
279
279
  attr_accessor :name
280
280
 
281
+ # Optional. A list of authorization network rules to match against the incoming
282
+ # request. A policy match occurs when at least one network rule matches the
283
+ # request. At least one network rule is required for Allow or Deny Action if no
284
+ # HTTP rules are provided. Network rules are mutually exclusive with HTTP rules.
285
+ # Limited to 5 rules.
286
+ # Corresponds to the JSON property `networkRules`
287
+ # @return [Array<Google::Apis::NetworksecurityV1::AuthzPolicyAuthzRule>]
288
+ attr_accessor :network_rules
289
+
290
+ # Optional. Immutable. Defines the type of authorization being performed. If not
291
+ # specified, `REQUEST_AUTHZ` is applied. This field cannot be changed once
292
+ # AuthzPolicy is created.
293
+ # Corresponds to the JSON property `policyProfile`
294
+ # @return [String]
295
+ attr_accessor :policy_profile
296
+
281
297
  # Specifies the set of targets to which this policy should be applied to.
282
298
  # Corresponds to the JSON property `target`
283
299
  # @return [Google::Apis::NetworksecurityV1::AuthzPolicyTarget]
@@ -301,6 +317,8 @@ module Google
301
317
  @http_rules = args[:http_rules] if args.key?(:http_rules)
302
318
  @labels = args[:labels] if args.key?(:labels)
303
319
  @name = args[:name] if args.key?(:name)
320
+ @network_rules = args[:network_rules] if args.key?(:network_rules)
321
+ @policy_profile = args[:policy_profile] if args.key?(:policy_profile)
304
322
  @target = args[:target] if args.key?(:target)
305
323
  @update_time = args[:update_time] if args.key?(:update_time)
306
324
  end
@@ -375,21 +393,29 @@ module Google
375
393
  class AuthzPolicyAuthzRuleFromRequestSource
376
394
  include Google::Apis::Core::Hashable
377
395
 
396
+ # Optional. A list of IP addresses or IP address ranges to match against the
397
+ # source IP address of the request. Limited to 10 ip_blocks per Authorization
398
+ # Policy
399
+ # Corresponds to the JSON property `ipBlocks`
400
+ # @return [Array<Google::Apis::NetworksecurityV1::AuthzPolicyAuthzRuleIpBlock>]
401
+ attr_accessor :ip_blocks
402
+
378
403
  # Optional. A list of identities derived from the client's certificate. This
379
- # field will not match on a request unless mutual TLS is enabled for the
380
- # forwarding rule or Gateway. For Application Load Balancers, each identity is a
381
- # string whose value is matched against the URI SAN, or DNS SAN, or SPIFFE ID,
382
- # or the subject field in the client's certificate. For Cloud Service Mesh, each
383
- # identity is a string whose value is matched against the URI SAN, or DNS SAN,
384
- # or the subject field in the client's certificate. The match can be exact,
385
- # prefix, suffix, or a substring match. One of exact, prefix, suffix, or
386
- # contains must be specified. Limited to 5 principals.
404
+ # field will not match on a request unless frontend mutual TLS is enabled for
405
+ # the forwarding rule or Gateway and the client certificate has been
406
+ # successfully validated by mTLS. Each identity is a string whose value is
407
+ # matched against a list of URI SANs, DNS Name SANs, or the common name in the
408
+ # client's certificate. A match happens when any principal matches with the rule.
409
+ # Limited to 50 principals per Authorization Policy for regional internal
410
+ # Application Load Balancers, regional external Application Load Balancers,
411
+ # cross-region internal Application Load Balancers, and Cloud Service Mesh. This
412
+ # field is not supported for global external Application Load Balancers.
387
413
  # Corresponds to the JSON property `principals`
388
- # @return [Array<Google::Apis::NetworksecurityV1::AuthzPolicyAuthzRuleStringMatch>]
414
+ # @return [Array<Google::Apis::NetworksecurityV1::AuthzPolicyAuthzRulePrincipal>]
389
415
  attr_accessor :principals
390
416
 
391
417
  # Optional. A list of resources to match against the resource of the source VM
392
- # of a request. Limited to 5 resources.
418
+ # of a request. Limited to 10 resources per Authorization Policy.
393
419
  # Corresponds to the JSON property `resources`
394
420
  # @return [Array<Google::Apis::NetworksecurityV1::AuthzPolicyAuthzRuleRequestResource>]
395
421
  attr_accessor :resources
@@ -400,6 +426,7 @@ module Google
400
426
 
401
427
  # Update properties of this object
402
428
  def update!(**args)
429
+ @ip_blocks = args[:ip_blocks] if args.key?(:ip_blocks)
403
430
  @principals = args[:principals] if args.key?(:principals)
404
431
  @resources = args[:resources] if args.key?(:resources)
405
432
  end
@@ -430,6 +457,57 @@ module Google
430
457
  end
431
458
  end
432
459
 
460
+ # Represents a range of IP Addresses.
461
+ class AuthzPolicyAuthzRuleIpBlock
462
+ include Google::Apis::Core::Hashable
463
+
464
+ # Required. The length of the address range.
465
+ # Corresponds to the JSON property `length`
466
+ # @return [Fixnum]
467
+ attr_accessor :length
468
+
469
+ # Required. The address prefix.
470
+ # Corresponds to the JSON property `prefix`
471
+ # @return [String]
472
+ attr_accessor :prefix
473
+
474
+ def initialize(**args)
475
+ update!(**args)
476
+ end
477
+
478
+ # Update properties of this object
479
+ def update!(**args)
480
+ @length = args[:length] if args.key?(:length)
481
+ @prefix = args[:prefix] if args.key?(:prefix)
482
+ end
483
+ end
484
+
485
+ # Describes the properties of a principal to be matched against.
486
+ class AuthzPolicyAuthzRulePrincipal
487
+ include Google::Apis::Core::Hashable
488
+
489
+ # Determines how a string value should be matched.
490
+ # Corresponds to the JSON property `principal`
491
+ # @return [Google::Apis::NetworksecurityV1::AuthzPolicyAuthzRuleStringMatch]
492
+ attr_accessor :principal
493
+
494
+ # Optional. An enum to decide what principal value the principal rule will match
495
+ # against. If not specified, the PrincipalSelector is CLIENT_CERT_URI_SAN.
496
+ # Corresponds to the JSON property `principalSelector`
497
+ # @return [String]
498
+ attr_accessor :principal_selector
499
+
500
+ def initialize(**args)
501
+ update!(**args)
502
+ end
503
+
504
+ # Update properties of this object
505
+ def update!(**args)
506
+ @principal = args[:principal] if args.key?(:principal)
507
+ @principal_selector = args[:principal_selector] if args.key?(:principal_selector)
508
+ end
509
+ end
510
+
433
511
  # Describes the properties of a client VM resource accessing the internal
434
512
  # application load balancers.
435
513
  class AuthzPolicyAuthzRuleRequestResource
@@ -465,7 +543,7 @@ module Google
465
543
  # Required. A list of resource tag value permanent IDs to match against the
466
544
  # resource manager tags value associated with the source VM of a request. The
467
545
  # match follows AND semantics which means all the ids must match. Limited to 5
468
- # matches.
546
+ # ids in the Tag value id set.
469
547
  # Corresponds to the JSON property `ids`
470
548
  # @return [Array<Fixnum>]
471
549
  attr_accessor :ids
@@ -576,27 +654,45 @@ module Google
576
654
 
577
655
  # Optional. A list of HTTP Hosts to match against. The match can be one of exact,
578
656
  # prefix, suffix, or contains (substring match). Matches are always case
579
- # sensitive unless the ignoreCase is set. Limited to 5 matches.
657
+ # sensitive unless the ignoreCase is set. Limited to 10 hosts per Authorization
658
+ # Policy.
580
659
  # Corresponds to the JSON property `hosts`
581
660
  # @return [Array<Google::Apis::NetworksecurityV1::AuthzPolicyAuthzRuleStringMatch>]
582
661
  attr_accessor :hosts
583
662
 
663
+ # Describes a set of MCP protocol attributes to match against for a given MCP
664
+ # request.
665
+ # Corresponds to the JSON property `mcp`
666
+ # @return [Google::Apis::NetworksecurityV1::AuthzPolicyAuthzRuleToRequestOperationMcp]
667
+ attr_accessor :mcp
668
+
584
669
  # Optional. A list of HTTP methods to match against. Each entry must be a valid
585
670
  # HTTP method name (GET, PUT, POST, HEAD, PATCH, DELETE, OPTIONS). It only
586
- # allows exact match and is always case sensitive.
671
+ # allows exact match and is always case sensitive. Limited to 10 methods per
672
+ # Authorization Policy.
587
673
  # Corresponds to the JSON property `methods`
588
674
  # @return [Array<String>]
589
675
  attr_accessor :methods_prop
590
676
 
591
677
  # Optional. A list of paths to match against. The match can be one of exact,
592
678
  # prefix, suffix, or contains (substring match). Matches are always case
593
- # sensitive unless the ignoreCase is set. Limited to 5 matches. Note that this
594
- # path match includes the query parameters. For gRPC services, this should be a
595
- # fully-qualified name of the form /package.service/method.
679
+ # sensitive unless the ignoreCase is set. Limited to 10 paths per Authorization
680
+ # Policy. Note that this path match includes the query parameters. For gRPC
681
+ # services, this should be a fully-qualified name of the form /package.service/
682
+ # method.
596
683
  # Corresponds to the JSON property `paths`
597
684
  # @return [Array<Google::Apis::NetworksecurityV1::AuthzPolicyAuthzRuleStringMatch>]
598
685
  attr_accessor :paths
599
686
 
687
+ # Optional. A list of SNIs to match against. The match can be one of exact,
688
+ # prefix, suffix, or contains (substring match). If there is no SNI (i.e.
689
+ # plaintext HTTP traffic), the request will be denied. Matches are always case
690
+ # sensitive unless the ignoreCase is set. Limited to 10 SNIs per Authorization
691
+ # Policy.
692
+ # Corresponds to the JSON property `snis`
693
+ # @return [Array<Google::Apis::NetworksecurityV1::AuthzPolicyAuthzRuleStringMatch>]
694
+ attr_accessor :snis
695
+
600
696
  def initialize(**args)
601
697
  update!(**args)
602
698
  end
@@ -605,8 +701,10 @@ module Google
605
701
  def update!(**args)
606
702
  @header_set = args[:header_set] if args.key?(:header_set)
607
703
  @hosts = args[:hosts] if args.key?(:hosts)
704
+ @mcp = args[:mcp] if args.key?(:mcp)
608
705
  @methods_prop = args[:methods_prop] if args.key?(:methods_prop)
609
706
  @paths = args[:paths] if args.key?(:paths)
707
+ @snis = args[:snis] if args.key?(:snis)
610
708
  end
611
709
  end
612
710
 
@@ -617,7 +715,8 @@ module Google
617
715
  # Required. A list of headers to match against in http header. The match can be
618
716
  # one of exact, prefix, suffix, or contains (substring match). The match follows
619
717
  # AND semantics which means all the headers must match. Matches are always case
620
- # sensitive unless the ignoreCase is set. Limited to 5 matches.
718
+ # sensitive unless the ignoreCase is set. Limited to 10 headers per
719
+ # Authorization Policy.
621
720
  # Corresponds to the JSON property `headers`
622
721
  # @return [Array<Google::Apis::NetworksecurityV1::AuthzPolicyAuthzRuleHeaderMatch>]
623
722
  attr_accessor :headers
@@ -632,6 +731,71 @@ module Google
632
731
  end
633
732
  end
634
733
 
734
+ # Describes a set of MCP protocol attributes to match against for a given MCP
735
+ # request.
736
+ class AuthzPolicyAuthzRuleToRequestOperationMcp
737
+ include Google::Apis::Core::Hashable
738
+
739
+ # Optional. If specified, matches on the MCP protocol’s non-access specific
740
+ # methods namely: * initialize * completion/ * logging/ * notifications/ * ping
741
+ # Defaults to SKIP_BASE_PROTOCOL_METHODS if not specified.
742
+ # Corresponds to the JSON property `baseProtocolMethodsOption`
743
+ # @return [String]
744
+ attr_accessor :base_protocol_methods_option
745
+
746
+ # Optional. A list of MCP methods and associated parameters to match on. It is
747
+ # recommended to use this field to match on tools, prompts and resource accesses
748
+ # while setting the baseProtocolMethodsOption to MATCH_BASE_PROTOCOL_METHODS to
749
+ # match on all the other MCP protocol methods. Limited to 10 MCP methods per
750
+ # Authorization Policy.
751
+ # Corresponds to the JSON property `methods`
752
+ # @return [Array<Google::Apis::NetworksecurityV1::AuthzPolicyAuthzRuleToRequestOperationMcpMethod>]
753
+ attr_accessor :methods_prop
754
+
755
+ def initialize(**args)
756
+ update!(**args)
757
+ end
758
+
759
+ # Update properties of this object
760
+ def update!(**args)
761
+ @base_protocol_methods_option = args[:base_protocol_methods_option] if args.key?(:base_protocol_methods_option)
762
+ @methods_prop = args[:methods_prop] if args.key?(:methods_prop)
763
+ end
764
+ end
765
+
766
+ # Describes a set of MCP methods to match against.
767
+ class AuthzPolicyAuthzRuleToRequestOperationMcpMethod
768
+ include Google::Apis::Core::Hashable
769
+
770
+ # Required. The MCP method to match against. Allowed values are as follows: 1. `
771
+ # tools`, `prompts`, `resources` - these will match against all sub methods
772
+ # under the respective methods. 2. `prompts/list`, `tools/list`, `resources/list`
773
+ # , `resources/templates/list` 3. `prompts/get`, `tools/call`, `resources/
774
+ # subscribe`, `resources/unsubscribe`, `resources/read` Params cannot be
775
+ # specified for categories 1 and 2.
776
+ # Corresponds to the JSON property `name`
777
+ # @return [String]
778
+ attr_accessor :name
779
+
780
+ # Optional. A list of MCP method parameters to match against. The match can be
781
+ # one of exact, prefix, suffix, or contains (substring match). Matches are
782
+ # always case sensitive unless the ignoreCase is set. Limited to 10 MCP method
783
+ # parameters per Authorization Policy.
784
+ # Corresponds to the JSON property `params`
785
+ # @return [Array<Google::Apis::NetworksecurityV1::AuthzPolicyAuthzRuleStringMatch>]
786
+ attr_accessor :params
787
+
788
+ def initialize(**args)
789
+ update!(**args)
790
+ end
791
+
792
+ # Update properties of this object
793
+ def update!(**args)
794
+ @name = args[:name] if args.key?(:name)
795
+ @params = args[:params] if args.key?(:params)
796
+ end
797
+ end
798
+
635
799
  # Allows delegating authorization decisions to Cloud IAP or to Service
636
800
  # Extensions.
637
801
  class AuthzPolicyCustomProvider
@@ -705,17 +869,19 @@ module Google
705
869
  class AuthzPolicyTarget
706
870
  include Google::Apis::Core::Hashable
707
871
 
708
- # Required. All gateways and forwarding rules referenced by this policy and
709
- # extensions must share the same load balancing scheme. Supported values: `
710
- # INTERNAL_MANAGED` and `EXTERNAL_MANAGED`. For more information, refer to [
711
- # Backend services overview](https://cloud.google.com/load-balancing/docs/
712
- # backend-service).
872
+ # Optional. All gateways and forwarding rules referenced by this policy and
873
+ # extensions must share the same load balancing scheme. Required only when
874
+ # targeting forwarding rules. If targeting Secure Web Proxy, this field must be `
875
+ # INTERNAL_MANAGED` or not specified. Must not be specified when targeting Agent
876
+ # Gateway. Supported values: `INTERNAL_MANAGED` and `EXTERNAL_MANAGED`. For more
877
+ # information, refer to [Backend services overview](https://cloud.google.com/
878
+ # load-balancing/docs/backend-service).
713
879
  # Corresponds to the JSON property `loadBalancingScheme`
714
880
  # @return [String]
715
881
  attr_accessor :load_balancing_scheme
716
882
 
717
- # Required. A list of references to the Forwarding Rules on which this policy
718
- # will be applied.
883
+ # Required. A list of references to the Forwarding Rules, Secure Web Proxy
884
+ # Gateways, or Agent Gateways on which this policy will be applied.
719
885
  # Corresponds to the JSON property `resources`
720
886
  # @return [Array<String>]
721
887
  attr_accessor :resources
@@ -731,6 +897,93 @@ module Google
731
897
  end
732
898
  end
733
899
 
900
+ # BackendAuthenticationConfig message groups the TrustConfig together with other
901
+ # settings that control how the load balancer authenticates, and expresses its
902
+ # identity to, the backend: * `trustConfig` is the attached TrustConfig. * `
903
+ # wellKnownRoots` indicates whether the load balance should trust backend server
904
+ # certificates that are issued by public certificate authorities, in addition to
905
+ # certificates trusted by the TrustConfig. * `clientCertificate` is a client
906
+ # certificate that the load balancer uses to express its identity to the backend,
907
+ # if the connection to the backend uses mTLS. You can attach the
908
+ # BackendAuthenticationConfig to the load balancer's BackendService directly
909
+ # determining how that BackendService negotiates TLS.
910
+ class BackendAuthenticationConfig
911
+ include Google::Apis::Core::Hashable
912
+
913
+ # Optional. A reference to a certificatemanager.googleapis.com.Certificate
914
+ # resource. This is a relative resource path following the form "projects/`
915
+ # project`/locations/`location`/certificates/`certificate`". Used by a
916
+ # BackendService to negotiate mTLS when the backend connection uses TLS and the
917
+ # backend requests a client certificate. Must have a CLIENT_AUTH scope.
918
+ # Corresponds to the JSON property `clientCertificate`
919
+ # @return [String]
920
+ attr_accessor :client_certificate
921
+
922
+ # Output only. The timestamp when the resource was created.
923
+ # Corresponds to the JSON property `createTime`
924
+ # @return [String]
925
+ attr_accessor :create_time
926
+
927
+ # Optional. Free-text description of the resource.
928
+ # Corresponds to the JSON property `description`
929
+ # @return [String]
930
+ attr_accessor :description
931
+
932
+ # Output only. Etag of the resource.
933
+ # Corresponds to the JSON property `etag`
934
+ # @return [String]
935
+ attr_accessor :etag
936
+
937
+ # Set of label tags associated with the resource.
938
+ # Corresponds to the JSON property `labels`
939
+ # @return [Hash<String,String>]
940
+ attr_accessor :labels
941
+
942
+ # Required. Name of the BackendAuthenticationConfig resource. It matches the
943
+ # pattern `projects/*/locations/`location`/backendAuthenticationConfigs/`
944
+ # backend_authentication_config``
945
+ # Corresponds to the JSON property `name`
946
+ # @return [String]
947
+ attr_accessor :name
948
+
949
+ # Optional. A reference to a TrustConfig resource from the certificatemanager.
950
+ # googleapis.com namespace. This is a relative resource path following the form "
951
+ # projects/`project`/locations/`location`/trustConfigs/`trust_config`". A
952
+ # BackendService uses the chain of trust represented by this TrustConfig, if
953
+ # specified, to validate the server certificates presented by the backend.
954
+ # Required unless wellKnownRoots is set to PUBLIC_ROOTS.
955
+ # Corresponds to the JSON property `trustConfig`
956
+ # @return [String]
957
+ attr_accessor :trust_config
958
+
959
+ # Output only. The timestamp when the resource was updated.
960
+ # Corresponds to the JSON property `updateTime`
961
+ # @return [String]
962
+ attr_accessor :update_time
963
+
964
+ # Well known roots to use for server certificate validation.
965
+ # Corresponds to the JSON property `wellKnownRoots`
966
+ # @return [String]
967
+ attr_accessor :well_known_roots
968
+
969
+ def initialize(**args)
970
+ update!(**args)
971
+ end
972
+
973
+ # Update properties of this object
974
+ def update!(**args)
975
+ @client_certificate = args[:client_certificate] if args.key?(:client_certificate)
976
+ @create_time = args[:create_time] if args.key?(:create_time)
977
+ @description = args[:description] if args.key?(:description)
978
+ @etag = args[:etag] if args.key?(:etag)
979
+ @labels = args[:labels] if args.key?(:labels)
980
+ @name = args[:name] if args.key?(:name)
981
+ @trust_config = args[:trust_config] if args.key?(:trust_config)
982
+ @update_time = args[:update_time] if args.key?(:update_time)
983
+ @well_known_roots = args[:well_known_roots] if args.key?(:well_known_roots)
984
+ end
985
+ end
986
+
734
987
  # The request message for Operations.CancelOperation.
735
988
  class CancelOperationRequest
736
989
  include Google::Apis::Core::Hashable
@@ -796,7 +1049,7 @@ module Google
796
1049
  attr_accessor :labels
797
1050
 
798
1051
  # Required. Name of the ClientTlsPolicy resource. It matches the pattern `
799
- # projects/*/locations/`location`/clientTlsPolicies/`client_tls_policy``
1052
+ # projects/`project`/locations/`location`/clientTlsPolicies/`client_tls_policy``
800
1053
  # Corresponds to the JSON property `name`
801
1054
  # @return [String]
802
1055
  attr_accessor :name
@@ -897,9 +1150,9 @@ module Google
897
1150
  class CustomMirroringProfile
898
1151
  include Google::Apis::Core::Hashable
899
1152
 
900
- # Required. The target MirroringEndpointGroup. When a mirroring rule with this
901
- # security profile attached matches a packet, a replica will be mirrored to the
902
- # location-local target in this group.
1153
+ # Required. Immutable. The target MirroringEndpointGroup. When a mirroring rule
1154
+ # with this security profile attached matches a packet, a replica will be
1155
+ # mirrored to the location-local target in this group.
903
1156
  # Corresponds to the JSON property `mirroringEndpointGroup`
904
1157
  # @return [String]
905
1158
  attr_accessor :mirroring_endpoint_group
@@ -955,6 +1208,60 @@ module Google
955
1208
  end
956
1209
  end
957
1210
 
1211
+ # A DNS threat detector sends DNS query logs to a _provider_ that then analyzes
1212
+ # the logs to identify threat events in the DNS queries. By default, all VPC
1213
+ # networks in your projects are included. You can exclude specific networks by
1214
+ # supplying `excluded_networks`.
1215
+ class DnsThreatDetector
1216
+ include Google::Apis::Core::Hashable
1217
+
1218
+ # Output only. Create time stamp.
1219
+ # Corresponds to the JSON property `createTime`
1220
+ # @return [String]
1221
+ attr_accessor :create_time
1222
+
1223
+ # Optional. A list of network resource names which aren't monitored by this
1224
+ # DnsThreatDetector. Example: `projects/PROJECT_ID/global/networks/NETWORK_NAME`.
1225
+ # Corresponds to the JSON property `excludedNetworks`
1226
+ # @return [Array<String>]
1227
+ attr_accessor :excluded_networks
1228
+
1229
+ # Optional. Any labels associated with the DnsThreatDetector, listed as key
1230
+ # value pairs.
1231
+ # Corresponds to the JSON property `labels`
1232
+ # @return [Hash<String,String>]
1233
+ attr_accessor :labels
1234
+
1235
+ # Immutable. Identifier. Name of the DnsThreatDetector resource.
1236
+ # Corresponds to the JSON property `name`
1237
+ # @return [String]
1238
+ attr_accessor :name
1239
+
1240
+ # Required. The provider used for DNS threat analysis.
1241
+ # Corresponds to the JSON property `provider`
1242
+ # @return [String]
1243
+ attr_accessor :provider
1244
+
1245
+ # Output only. Update time stamp.
1246
+ # Corresponds to the JSON property `updateTime`
1247
+ # @return [String]
1248
+ attr_accessor :update_time
1249
+
1250
+ def initialize(**args)
1251
+ update!(**args)
1252
+ end
1253
+
1254
+ # Update properties of this object
1255
+ def update!(**args)
1256
+ @create_time = args[:create_time] if args.key?(:create_time)
1257
+ @excluded_networks = args[:excluded_networks] if args.key?(:excluded_networks)
1258
+ @labels = args[:labels] if args.key?(:labels)
1259
+ @name = args[:name] if args.key?(:name)
1260
+ @provider = args[:provider] if args.key?(:provider)
1261
+ @update_time = args[:update_time] if args.key?(:update_time)
1262
+ end
1263
+ end
1264
+
958
1265
  # A generic empty message that you can re-use to avoid defining duplicated empty
959
1266
  # messages in your APIs. A typical example is to use it as the request or the
960
1267
  # response type of an API method. For instance: service Foo ` rpc Bar(google.
@@ -1025,14 +1332,15 @@ module Google
1025
1332
  end
1026
1333
  end
1027
1334
 
1028
- # Message describing Endpoint object
1335
+ # Message describing Endpoint object.
1029
1336
  class FirewallEndpoint
1030
1337
  include Google::Apis::Core::Hashable
1031
1338
 
1032
- # Output only. List of networks that are associated with this endpoint in the
1033
- # local zone. This is a projection of the FirewallEndpointAssociations pointing
1034
- # at this endpoint. A network will only appear in this list after traffic
1035
- # routing is fully configured. Format: projects/`project`/global/networks/`name`.
1339
+ # Output only. Deprecated: List of networks that are associated with this
1340
+ # endpoint in the local zone. This is a projection of the
1341
+ # FirewallEndpointAssociations pointing at this endpoint. A network will only
1342
+ # appear in this list after traffic routing is fully configured. Format:
1343
+ # projects/`project`/global/networks/`name`.
1036
1344
  # Corresponds to the JSON property `associatedNetworks`
1037
1345
  # @return [Array<String>]
1038
1346
  attr_accessor :associated_networks
@@ -1044,12 +1352,14 @@ module Google
1044
1352
  # @return [Array<Google::Apis::NetworksecurityV1::FirewallEndpointAssociationReference>]
1045
1353
  attr_accessor :associations
1046
1354
 
1047
- # Required. Project to bill on endpoint uptime usage.
1355
+ # Optional. Project to charge for the deployed firewall endpoint. This field
1356
+ # must be specified when creating the endpoint in the organization scope, and
1357
+ # should be omitted otherwise.
1048
1358
  # Corresponds to the JSON property `billingProjectId`
1049
1359
  # @return [String]
1050
1360
  attr_accessor :billing_project_id
1051
1361
 
1052
- # Output only. Create time stamp
1362
+ # Output only. Create time stamp.
1053
1363
  # Corresponds to the JSON property `createTime`
1054
1364
  # @return [String]
1055
1365
  attr_accessor :create_time
@@ -1059,12 +1369,17 @@ module Google
1059
1369
  # @return [String]
1060
1370
  attr_accessor :description
1061
1371
 
1372
+ # Settings for the endpoint.
1373
+ # Corresponds to the JSON property `endpointSettings`
1374
+ # @return [Google::Apis::NetworksecurityV1::FirewallEndpointEndpointSettings]
1375
+ attr_accessor :endpoint_settings
1376
+
1062
1377
  # Optional. Labels as key value pairs
1063
1378
  # Corresponds to the JSON property `labels`
1064
1379
  # @return [Hash<String,String>]
1065
1380
  attr_accessor :labels
1066
1381
 
1067
- # Immutable. Identifier. name of resource
1382
+ # Immutable. Identifier. Name of resource.
1068
1383
  # Corresponds to the JSON property `name`
1069
1384
  # @return [String]
1070
1385
  attr_accessor :name
@@ -1109,6 +1424,7 @@ module Google
1109
1424
  @billing_project_id = args[:billing_project_id] if args.key?(:billing_project_id)
1110
1425
  @create_time = args[:create_time] if args.key?(:create_time)
1111
1426
  @description = args[:description] if args.key?(:description)
1427
+ @endpoint_settings = args[:endpoint_settings] if args.key?(:endpoint_settings)
1112
1428
  @labels = args[:labels] if args.key?(:labels)
1113
1429
  @name = args[:name] if args.key?(:name)
1114
1430
  @reconciling = args[:reconciling] if args.key?(:reconciling)
@@ -1224,6 +1540,27 @@ module Google
1224
1540
  end
1225
1541
  end
1226
1542
 
1543
+ # Settings for the endpoint.
1544
+ class FirewallEndpointEndpointSettings
1545
+ include Google::Apis::Core::Hashable
1546
+
1547
+ # Optional. Immutable. Indicates whether Jumbo Frames are enabled. Default value
1548
+ # is false.
1549
+ # Corresponds to the JSON property `jumboFramesEnabled`
1550
+ # @return [Boolean]
1551
+ attr_accessor :jumbo_frames_enabled
1552
+ alias_method :jumbo_frames_enabled?, :jumbo_frames_enabled
1553
+
1554
+ def initialize(**args)
1555
+ update!(**args)
1556
+ end
1557
+
1558
+ # Update properties of this object
1559
+ def update!(**args)
1560
+ @jumbo_frames_enabled = args[:jumbo_frames_enabled] if args.key?(:jumbo_frames_enabled)
1561
+ end
1562
+ end
1563
+
1227
1564
  # The GatewaySecurityPolicy resource contains a collection of
1228
1565
  # GatewaySecurityPolicyRules and associated metadata.
1229
1566
  class GatewaySecurityPolicy
@@ -1793,60 +2130,590 @@ module Google
1793
2130
  end
1794
2131
  end
1795
2132
 
1796
- # Response of the ListAddressGroupReferences method.
1797
- class ListAddressGroupReferencesResponse
2133
+ # A deployment represents a zonal intercept backend ready to accept GENEVE-
2134
+ # encapsulated traffic, e.g. a zonal instance group fronted by an internal
2135
+ # passthrough load balancer. Deployments are always part of a global deployment
2136
+ # group which represents a global intercept service.
2137
+ class InterceptDeployment
1798
2138
  include Google::Apis::Core::Hashable
1799
2139
 
1800
- # A list of references that matches the specified filter in the request.
1801
- # Corresponds to the JSON property `addressGroupReferences`
1802
- # @return [Array<Google::Apis::NetworksecurityV1::ListAddressGroupReferencesResponseAddressGroupReference>]
1803
- attr_accessor :address_group_references
1804
-
1805
- # If there might be more results than those appearing in this response, then `
1806
- # next_page_token` is included. To get the next set of results, call this method
1807
- # again using the value of `next_page_token` as `page_token`.
1808
- # Corresponds to the JSON property `nextPageToken`
2140
+ # Output only. The timestamp when the resource was created. See https://google.
2141
+ # aip.dev/148#timestamps.
2142
+ # Corresponds to the JSON property `createTime`
1809
2143
  # @return [String]
1810
- attr_accessor :next_page_token
1811
-
1812
- def initialize(**args)
1813
- update!(**args)
1814
- end
2144
+ attr_accessor :create_time
1815
2145
 
1816
- # Update properties of this object
1817
- def update!(**args)
1818
- @address_group_references = args[:address_group_references] if args.key?(:address_group_references)
1819
- @next_page_token = args[:next_page_token] if args.key?(:next_page_token)
1820
- end
1821
- end
2146
+ # Optional. User-provided description of the deployment. Used as additional
2147
+ # context for the deployment.
2148
+ # Corresponds to the JSON property `description`
2149
+ # @return [String]
2150
+ attr_accessor :description
1822
2151
 
1823
- # The Reference of AddressGroup.
1824
- class ListAddressGroupReferencesResponseAddressGroupReference
1825
- include Google::Apis::Core::Hashable
2152
+ # Required. Immutable. The regional forwarding rule that fronts the interceptors,
2153
+ # for example: `projects/123456789/regions/us-central1/forwardingRules/my-rule`.
2154
+ # See https://google.aip.dev/124.
2155
+ # Corresponds to the JSON property `forwardingRule`
2156
+ # @return [String]
2157
+ attr_accessor :forwarding_rule
1826
2158
 
1827
- # FirewallPolicy that is using the Address Group.
1828
- # Corresponds to the JSON property `firewallPolicy`
2159
+ # Required. Immutable. The deployment group that this deployment is a part of,
2160
+ # for example: `projects/123456789/locations/global/interceptDeploymentGroups/my-
2161
+ # dg`. See https://google.aip.dev/124.
2162
+ # Corresponds to the JSON property `interceptDeploymentGroup`
1829
2163
  # @return [String]
1830
- attr_accessor :firewall_policy
2164
+ attr_accessor :intercept_deployment_group
1831
2165
 
1832
- # Rule priority of the FirewallPolicy that is using the Address Group.
1833
- # Corresponds to the JSON property `rulePriority`
1834
- # @return [Fixnum]
1835
- attr_accessor :rule_priority
2166
+ # Optional. Labels are key/value pairs that help to organize and filter
2167
+ # resources.
2168
+ # Corresponds to the JSON property `labels`
2169
+ # @return [Hash<String,String>]
2170
+ attr_accessor :labels
1836
2171
 
1837
- # Cloud Armor SecurityPolicy that is using the Address Group.
1838
- # Corresponds to the JSON property `securityPolicy`
2172
+ # Immutable. Identifier. The resource name of this deployment, for example: `
2173
+ # projects/123456789/locations/us-central1-a/interceptDeployments/my-dep`. See
2174
+ # https://google.aip.dev/122 for more details.
2175
+ # Corresponds to the JSON property `name`
1839
2176
  # @return [String]
1840
- attr_accessor :security_policy
1841
-
1842
- def initialize(**args)
1843
- update!(**args)
1844
- end
2177
+ attr_accessor :name
1845
2178
 
1846
- # Update properties of this object
1847
- def update!(**args)
1848
- @firewall_policy = args[:firewall_policy] if args.key?(:firewall_policy)
1849
- @rule_priority = args[:rule_priority] if args.key?(:rule_priority)
2179
+ # Output only. The current state of the resource does not match the user's
2180
+ # intended state, and the system is working to reconcile them. This part of the
2181
+ # normal operation (e.g. linking a new association to the parent group). See
2182
+ # https://google.aip.dev/128.
2183
+ # Corresponds to the JSON property `reconciling`
2184
+ # @return [Boolean]
2185
+ attr_accessor :reconciling
2186
+ alias_method :reconciling?, :reconciling
2187
+
2188
+ # Output only. The current state of the deployment. See https://google.aip.dev/
2189
+ # 216.
2190
+ # Corresponds to the JSON property `state`
2191
+ # @return [String]
2192
+ attr_accessor :state
2193
+
2194
+ # Output only. The timestamp when the resource was most recently updated. See
2195
+ # https://google.aip.dev/148#timestamps.
2196
+ # Corresponds to the JSON property `updateTime`
2197
+ # @return [String]
2198
+ attr_accessor :update_time
2199
+
2200
+ def initialize(**args)
2201
+ update!(**args)
2202
+ end
2203
+
2204
+ # Update properties of this object
2205
+ def update!(**args)
2206
+ @create_time = args[:create_time] if args.key?(:create_time)
2207
+ @description = args[:description] if args.key?(:description)
2208
+ @forwarding_rule = args[:forwarding_rule] if args.key?(:forwarding_rule)
2209
+ @intercept_deployment_group = args[:intercept_deployment_group] if args.key?(:intercept_deployment_group)
2210
+ @labels = args[:labels] if args.key?(:labels)
2211
+ @name = args[:name] if args.key?(:name)
2212
+ @reconciling = args[:reconciling] if args.key?(:reconciling)
2213
+ @state = args[:state] if args.key?(:state)
2214
+ @update_time = args[:update_time] if args.key?(:update_time)
2215
+ end
2216
+ end
2217
+
2218
+ # A deployment group aggregates many zonal intercept backends (deployments) into
2219
+ # a single global intercept service. Consumers can connect this service using an
2220
+ # endpoint group.
2221
+ class InterceptDeploymentGroup
2222
+ include Google::Apis::Core::Hashable
2223
+
2224
+ # Output only. The list of endpoint groups that are connected to this resource.
2225
+ # Corresponds to the JSON property `connectedEndpointGroups`
2226
+ # @return [Array<Google::Apis::NetworksecurityV1::InterceptDeploymentGroupConnectedEndpointGroup>]
2227
+ attr_accessor :connected_endpoint_groups
2228
+
2229
+ # Output only. The timestamp when the resource was created. See https://google.
2230
+ # aip.dev/148#timestamps.
2231
+ # Corresponds to the JSON property `createTime`
2232
+ # @return [String]
2233
+ attr_accessor :create_time
2234
+
2235
+ # Optional. User-provided description of the deployment group. Used as
2236
+ # additional context for the deployment group.
2237
+ # Corresponds to the JSON property `description`
2238
+ # @return [String]
2239
+ attr_accessor :description
2240
+
2241
+ # Optional. Labels are key/value pairs that help to organize and filter
2242
+ # resources.
2243
+ # Corresponds to the JSON property `labels`
2244
+ # @return [Hash<String,String>]
2245
+ attr_accessor :labels
2246
+
2247
+ # Output only. The list of locations where the deployment group is present.
2248
+ # Corresponds to the JSON property `locations`
2249
+ # @return [Array<Google::Apis::NetworksecurityV1::InterceptLocation>]
2250
+ attr_accessor :locations
2251
+
2252
+ # Immutable. Identifier. The resource name of this deployment group, for example:
2253
+ # `projects/123456789/locations/global/interceptDeploymentGroups/my-dg`. See
2254
+ # https://google.aip.dev/122 for more details.
2255
+ # Corresponds to the JSON property `name`
2256
+ # @return [String]
2257
+ attr_accessor :name
2258
+
2259
+ # Output only. The list of Intercept Deployments that belong to this group.
2260
+ # Corresponds to the JSON property `nestedDeployments`
2261
+ # @return [Array<Google::Apis::NetworksecurityV1::InterceptDeploymentGroupDeployment>]
2262
+ attr_accessor :nested_deployments
2263
+
2264
+ # Required. Immutable. The network that will be used for all child deployments,
2265
+ # for example: `projects/`project`/global/networks/`network``. See https://
2266
+ # google.aip.dev/124.
2267
+ # Corresponds to the JSON property `network`
2268
+ # @return [String]
2269
+ attr_accessor :network
2270
+
2271
+ # Output only. The current state of the resource does not match the user's
2272
+ # intended state, and the system is working to reconcile them. This is part of
2273
+ # the normal operation (e.g. adding a new deployment to the group) See https://
2274
+ # google.aip.dev/128.
2275
+ # Corresponds to the JSON property `reconciling`
2276
+ # @return [Boolean]
2277
+ attr_accessor :reconciling
2278
+ alias_method :reconciling?, :reconciling
2279
+
2280
+ # Output only. The current state of the deployment group. See https://google.aip.
2281
+ # dev/216.
2282
+ # Corresponds to the JSON property `state`
2283
+ # @return [String]
2284
+ attr_accessor :state
2285
+
2286
+ # Output only. The timestamp when the resource was most recently updated. See
2287
+ # https://google.aip.dev/148#timestamps.
2288
+ # Corresponds to the JSON property `updateTime`
2289
+ # @return [String]
2290
+ attr_accessor :update_time
2291
+
2292
+ def initialize(**args)
2293
+ update!(**args)
2294
+ end
2295
+
2296
+ # Update properties of this object
2297
+ def update!(**args)
2298
+ @connected_endpoint_groups = args[:connected_endpoint_groups] if args.key?(:connected_endpoint_groups)
2299
+ @create_time = args[:create_time] if args.key?(:create_time)
2300
+ @description = args[:description] if args.key?(:description)
2301
+ @labels = args[:labels] if args.key?(:labels)
2302
+ @locations = args[:locations] if args.key?(:locations)
2303
+ @name = args[:name] if args.key?(:name)
2304
+ @nested_deployments = args[:nested_deployments] if args.key?(:nested_deployments)
2305
+ @network = args[:network] if args.key?(:network)
2306
+ @reconciling = args[:reconciling] if args.key?(:reconciling)
2307
+ @state = args[:state] if args.key?(:state)
2308
+ @update_time = args[:update_time] if args.key?(:update_time)
2309
+ end
2310
+ end
2311
+
2312
+ # An endpoint group connected to this deployment group.
2313
+ class InterceptDeploymentGroupConnectedEndpointGroup
2314
+ include Google::Apis::Core::Hashable
2315
+
2316
+ # Output only. The connected endpoint group's resource name, for example: `
2317
+ # projects/123456789/locations/global/interceptEndpointGroups/my-eg`. See https:/
2318
+ # /google.aip.dev/124.
2319
+ # Corresponds to the JSON property `name`
2320
+ # @return [String]
2321
+ attr_accessor :name
2322
+
2323
+ def initialize(**args)
2324
+ update!(**args)
2325
+ end
2326
+
2327
+ # Update properties of this object
2328
+ def update!(**args)
2329
+ @name = args[:name] if args.key?(:name)
2330
+ end
2331
+ end
2332
+
2333
+ # A deployment belonging to this deployment group.
2334
+ class InterceptDeploymentGroupDeployment
2335
+ include Google::Apis::Core::Hashable
2336
+
2337
+ # Output only. The name of the Intercept Deployment, in the format: `projects/`
2338
+ # project`/locations/`location`/interceptDeployments/`intercept_deployment``.
2339
+ # Corresponds to the JSON property `name`
2340
+ # @return [String]
2341
+ attr_accessor :name
2342
+
2343
+ # Output only. Most recent known state of the deployment.
2344
+ # Corresponds to the JSON property `state`
2345
+ # @return [String]
2346
+ attr_accessor :state
2347
+
2348
+ def initialize(**args)
2349
+ update!(**args)
2350
+ end
2351
+
2352
+ # Update properties of this object
2353
+ def update!(**args)
2354
+ @name = args[:name] if args.key?(:name)
2355
+ @state = args[:state] if args.key?(:state)
2356
+ end
2357
+ end
2358
+
2359
+ # An endpoint group is a consumer frontend for a deployment group (backend). In
2360
+ # order to configure intercept for a network, consumers must create: - An
2361
+ # association between their network and the endpoint group. - A security profile
2362
+ # that points to the endpoint group. - A firewall rule that references the
2363
+ # security profile (group).
2364
+ class InterceptEndpointGroup
2365
+ include Google::Apis::Core::Hashable
2366
+
2367
+ # Output only. List of associations to this endpoint group.
2368
+ # Corresponds to the JSON property `associations`
2369
+ # @return [Array<Google::Apis::NetworksecurityV1::InterceptEndpointGroupAssociationDetails>]
2370
+ attr_accessor :associations
2371
+
2372
+ # The endpoint group's view of a connected deployment group.
2373
+ # Corresponds to the JSON property `connectedDeploymentGroup`
2374
+ # @return [Google::Apis::NetworksecurityV1::InterceptEndpointGroupConnectedDeploymentGroup]
2375
+ attr_accessor :connected_deployment_group
2376
+
2377
+ # Output only. The timestamp when the resource was created. See https://google.
2378
+ # aip.dev/148#timestamps.
2379
+ # Corresponds to the JSON property `createTime`
2380
+ # @return [String]
2381
+ attr_accessor :create_time
2382
+
2383
+ # Optional. User-provided description of the endpoint group. Used as additional
2384
+ # context for the endpoint group.
2385
+ # Corresponds to the JSON property `description`
2386
+ # @return [String]
2387
+ attr_accessor :description
2388
+
2389
+ # Required. Immutable. The deployment group that this endpoint group is
2390
+ # connected to, for example: `projects/123456789/locations/global/
2391
+ # interceptDeploymentGroups/my-dg`. See https://google.aip.dev/124.
2392
+ # Corresponds to the JSON property `interceptDeploymentGroup`
2393
+ # @return [String]
2394
+ attr_accessor :intercept_deployment_group
2395
+
2396
+ # Optional. Labels are key/value pairs that help to organize and filter
2397
+ # resources.
2398
+ # Corresponds to the JSON property `labels`
2399
+ # @return [Hash<String,String>]
2400
+ attr_accessor :labels
2401
+
2402
+ # Immutable. Identifier. The resource name of this endpoint group, for example: `
2403
+ # projects/123456789/locations/global/interceptEndpointGroups/my-eg`. See https:/
2404
+ # /google.aip.dev/122 for more details.
2405
+ # Corresponds to the JSON property `name`
2406
+ # @return [String]
2407
+ attr_accessor :name
2408
+
2409
+ # Output only. The current state of the resource does not match the user's
2410
+ # intended state, and the system is working to reconcile them. This is part of
2411
+ # the normal operation (e.g. adding a new association to the group). See https://
2412
+ # google.aip.dev/128.
2413
+ # Corresponds to the JSON property `reconciling`
2414
+ # @return [Boolean]
2415
+ attr_accessor :reconciling
2416
+ alias_method :reconciling?, :reconciling
2417
+
2418
+ # Output only. The current state of the endpoint group. See https://google.aip.
2419
+ # dev/216.
2420
+ # Corresponds to the JSON property `state`
2421
+ # @return [String]
2422
+ attr_accessor :state
2423
+
2424
+ # Output only. The timestamp when the resource was most recently updated. See
2425
+ # https://google.aip.dev/148#timestamps.
2426
+ # Corresponds to the JSON property `updateTime`
2427
+ # @return [String]
2428
+ attr_accessor :update_time
2429
+
2430
+ def initialize(**args)
2431
+ update!(**args)
2432
+ end
2433
+
2434
+ # Update properties of this object
2435
+ def update!(**args)
2436
+ @associations = args[:associations] if args.key?(:associations)
2437
+ @connected_deployment_group = args[:connected_deployment_group] if args.key?(:connected_deployment_group)
2438
+ @create_time = args[:create_time] if args.key?(:create_time)
2439
+ @description = args[:description] if args.key?(:description)
2440
+ @intercept_deployment_group = args[:intercept_deployment_group] if args.key?(:intercept_deployment_group)
2441
+ @labels = args[:labels] if args.key?(:labels)
2442
+ @name = args[:name] if args.key?(:name)
2443
+ @reconciling = args[:reconciling] if args.key?(:reconciling)
2444
+ @state = args[:state] if args.key?(:state)
2445
+ @update_time = args[:update_time] if args.key?(:update_time)
2446
+ end
2447
+ end
2448
+
2449
+ # An endpoint group association represents a link between a network and an
2450
+ # endpoint group in the organization. Creating an association creates the
2451
+ # networking infrastructure linking the network to the endpoint group, but does
2452
+ # not enable intercept by itself. To enable intercept, the user must also create
2453
+ # a network firewall policy containing intercept rules and associate it with the
2454
+ # network.
2455
+ class InterceptEndpointGroupAssociation
2456
+ include Google::Apis::Core::Hashable
2457
+
2458
+ # Output only. The timestamp when the resource was created. See https://google.
2459
+ # aip.dev/148#timestamps.
2460
+ # Corresponds to the JSON property `createTime`
2461
+ # @return [String]
2462
+ attr_accessor :create_time
2463
+
2464
+ # Required. Immutable. The endpoint group that this association is connected to,
2465
+ # for example: `projects/123456789/locations/global/interceptEndpointGroups/my-
2466
+ # eg`. See https://google.aip.dev/124.
2467
+ # Corresponds to the JSON property `interceptEndpointGroup`
2468
+ # @return [String]
2469
+ attr_accessor :intercept_endpoint_group
2470
+
2471
+ # Optional. Labels are key/value pairs that help to organize and filter
2472
+ # resources.
2473
+ # Corresponds to the JSON property `labels`
2474
+ # @return [Hash<String,String>]
2475
+ attr_accessor :labels
2476
+
2477
+ # Output only. The list of locations where the association is configured. This
2478
+ # information is retrieved from the linked endpoint group.
2479
+ # Corresponds to the JSON property `locations`
2480
+ # @return [Array<Google::Apis::NetworksecurityV1::InterceptLocation>]
2481
+ attr_accessor :locations
2482
+
2483
+ # Output only. The list of locations where the association is present. This
2484
+ # information is retrieved from the linked endpoint group, and not configured as
2485
+ # part of the association itself.
2486
+ # Corresponds to the JSON property `locationsDetails`
2487
+ # @return [Array<Google::Apis::NetworksecurityV1::InterceptEndpointGroupAssociationLocationDetails>]
2488
+ attr_accessor :locations_details
2489
+
2490
+ # Immutable. Identifier. The resource name of this endpoint group association,
2491
+ # for example: `projects/123456789/locations/global/
2492
+ # interceptEndpointGroupAssociations/my-eg-association`. See https://google.aip.
2493
+ # dev/122 for more details.
2494
+ # Corresponds to the JSON property `name`
2495
+ # @return [String]
2496
+ attr_accessor :name
2497
+
2498
+ # Required. Immutable. The VPC network that is associated. for example: `
2499
+ # projects/123456789/global/networks/my-network`. See https://google.aip.dev/124.
2500
+ # Corresponds to the JSON property `network`
2501
+ # @return [String]
2502
+ attr_accessor :network
2503
+
2504
+ # Output only. Identifier used by the data-path. See the NSI GENEVE format for
2505
+ # more details: https://docs.cloud.google.com/network-security-integration/docs/
2506
+ # understand-geneve#network_id
2507
+ # Corresponds to the JSON property `networkCookie`
2508
+ # @return [Fixnum]
2509
+ attr_accessor :network_cookie
2510
+
2511
+ # Output only. The current state of the resource does not match the user's
2512
+ # intended state, and the system is working to reconcile them. This part of the
2513
+ # normal operation (e.g. adding a new location to the target deployment group).
2514
+ # See https://google.aip.dev/128.
2515
+ # Corresponds to the JSON property `reconciling`
2516
+ # @return [Boolean]
2517
+ attr_accessor :reconciling
2518
+ alias_method :reconciling?, :reconciling
2519
+
2520
+ # Output only. Current state of the endpoint group association.
2521
+ # Corresponds to the JSON property `state`
2522
+ # @return [String]
2523
+ attr_accessor :state
2524
+
2525
+ # Output only. The timestamp when the resource was most recently updated. See
2526
+ # https://google.aip.dev/148#timestamps.
2527
+ # Corresponds to the JSON property `updateTime`
2528
+ # @return [String]
2529
+ attr_accessor :update_time
2530
+
2531
+ def initialize(**args)
2532
+ update!(**args)
2533
+ end
2534
+
2535
+ # Update properties of this object
2536
+ def update!(**args)
2537
+ @create_time = args[:create_time] if args.key?(:create_time)
2538
+ @intercept_endpoint_group = args[:intercept_endpoint_group] if args.key?(:intercept_endpoint_group)
2539
+ @labels = args[:labels] if args.key?(:labels)
2540
+ @locations = args[:locations] if args.key?(:locations)
2541
+ @locations_details = args[:locations_details] if args.key?(:locations_details)
2542
+ @name = args[:name] if args.key?(:name)
2543
+ @network = args[:network] if args.key?(:network)
2544
+ @network_cookie = args[:network_cookie] if args.key?(:network_cookie)
2545
+ @reconciling = args[:reconciling] if args.key?(:reconciling)
2546
+ @state = args[:state] if args.key?(:state)
2547
+ @update_time = args[:update_time] if args.key?(:update_time)
2548
+ end
2549
+ end
2550
+
2551
+ # The endpoint group's view of a connected association.
2552
+ class InterceptEndpointGroupAssociationDetails
2553
+ include Google::Apis::Core::Hashable
2554
+
2555
+ # Output only. The connected association's resource name, for example: `projects/
2556
+ # 123456789/locations/global/interceptEndpointGroupAssociations/my-ega`. See
2557
+ # https://google.aip.dev/124.
2558
+ # Corresponds to the JSON property `name`
2559
+ # @return [String]
2560
+ attr_accessor :name
2561
+
2562
+ # Output only. The associated network, for example: projects/123456789/global/
2563
+ # networks/my-network. See https://google.aip.dev/124.
2564
+ # Corresponds to the JSON property `network`
2565
+ # @return [String]
2566
+ attr_accessor :network
2567
+
2568
+ # Output only. Most recent known state of the association.
2569
+ # Corresponds to the JSON property `state`
2570
+ # @return [String]
2571
+ attr_accessor :state
2572
+
2573
+ def initialize(**args)
2574
+ update!(**args)
2575
+ end
2576
+
2577
+ # Update properties of this object
2578
+ def update!(**args)
2579
+ @name = args[:name] if args.key?(:name)
2580
+ @network = args[:network] if args.key?(:network)
2581
+ @state = args[:state] if args.key?(:state)
2582
+ end
2583
+ end
2584
+
2585
+ # Contains details about the state of an association in a specific cloud
2586
+ # location.
2587
+ class InterceptEndpointGroupAssociationLocationDetails
2588
+ include Google::Apis::Core::Hashable
2589
+
2590
+ # Output only. The cloud location, e.g. "us-central1-a" or "asia-south1".
2591
+ # Corresponds to the JSON property `location`
2592
+ # @return [String]
2593
+ attr_accessor :location
2594
+
2595
+ # Output only. The current state of the association in this location.
2596
+ # Corresponds to the JSON property `state`
2597
+ # @return [String]
2598
+ attr_accessor :state
2599
+
2600
+ def initialize(**args)
2601
+ update!(**args)
2602
+ end
2603
+
2604
+ # Update properties of this object
2605
+ def update!(**args)
2606
+ @location = args[:location] if args.key?(:location)
2607
+ @state = args[:state] if args.key?(:state)
2608
+ end
2609
+ end
2610
+
2611
+ # The endpoint group's view of a connected deployment group.
2612
+ class InterceptEndpointGroupConnectedDeploymentGroup
2613
+ include Google::Apis::Core::Hashable
2614
+
2615
+ # Output only. The list of locations where the deployment group is present.
2616
+ # Corresponds to the JSON property `locations`
2617
+ # @return [Array<Google::Apis::NetworksecurityV1::InterceptLocation>]
2618
+ attr_accessor :locations
2619
+
2620
+ # Output only. The connected deployment group's resource name, for example: `
2621
+ # projects/123456789/locations/global/interceptDeploymentGroups/my-dg`. See
2622
+ # https://google.aip.dev/124.
2623
+ # Corresponds to the JSON property `name`
2624
+ # @return [String]
2625
+ attr_accessor :name
2626
+
2627
+ def initialize(**args)
2628
+ update!(**args)
2629
+ end
2630
+
2631
+ # Update properties of this object
2632
+ def update!(**args)
2633
+ @locations = args[:locations] if args.key?(:locations)
2634
+ @name = args[:name] if args.key?(:name)
2635
+ end
2636
+ end
2637
+
2638
+ # Details about intercept in a specific cloud location.
2639
+ class InterceptLocation
2640
+ include Google::Apis::Core::Hashable
2641
+
2642
+ # Output only. The cloud location, e.g. "us-central1-a" or "asia-south1".
2643
+ # Corresponds to the JSON property `location`
2644
+ # @return [String]
2645
+ attr_accessor :location
2646
+
2647
+ # Output only. The current state of the association in this location.
2648
+ # Corresponds to the JSON property `state`
2649
+ # @return [String]
2650
+ attr_accessor :state
2651
+
2652
+ def initialize(**args)
2653
+ update!(**args)
2654
+ end
2655
+
2656
+ # Update properties of this object
2657
+ def update!(**args)
2658
+ @location = args[:location] if args.key?(:location)
2659
+ @state = args[:state] if args.key?(:state)
2660
+ end
2661
+ end
2662
+
2663
+ # Response of the ListAddressGroupReferences method.
2664
+ class ListAddressGroupReferencesResponse
2665
+ include Google::Apis::Core::Hashable
2666
+
2667
+ # A list of references that matches the specified filter in the request.
2668
+ # Corresponds to the JSON property `addressGroupReferences`
2669
+ # @return [Array<Google::Apis::NetworksecurityV1::ListAddressGroupReferencesResponseAddressGroupReference>]
2670
+ attr_accessor :address_group_references
2671
+
2672
+ # If there might be more results than those appearing in this response, then `
2673
+ # next_page_token` is included. To get the next set of results, call this method
2674
+ # again using the value of `next_page_token` as `page_token`.
2675
+ # Corresponds to the JSON property `nextPageToken`
2676
+ # @return [String]
2677
+ attr_accessor :next_page_token
2678
+
2679
+ def initialize(**args)
2680
+ update!(**args)
2681
+ end
2682
+
2683
+ # Update properties of this object
2684
+ def update!(**args)
2685
+ @address_group_references = args[:address_group_references] if args.key?(:address_group_references)
2686
+ @next_page_token = args[:next_page_token] if args.key?(:next_page_token)
2687
+ end
2688
+ end
2689
+
2690
+ # The Reference of AddressGroup.
2691
+ class ListAddressGroupReferencesResponseAddressGroupReference
2692
+ include Google::Apis::Core::Hashable
2693
+
2694
+ # FirewallPolicy that is using the Address Group.
2695
+ # Corresponds to the JSON property `firewallPolicy`
2696
+ # @return [String]
2697
+ attr_accessor :firewall_policy
2698
+
2699
+ # Rule priority of the FirewallPolicy that is using the Address Group.
2700
+ # Corresponds to the JSON property `rulePriority`
2701
+ # @return [Fixnum]
2702
+ attr_accessor :rule_priority
2703
+
2704
+ # Cloud Armor SecurityPolicy that is using the Address Group.
2705
+ # Corresponds to the JSON property `securityPolicy`
2706
+ # @return [String]
2707
+ attr_accessor :security_policy
2708
+
2709
+ def initialize(**args)
2710
+ update!(**args)
2711
+ end
2712
+
2713
+ # Update properties of this object
2714
+ def update!(**args)
2715
+ @firewall_policy = args[:firewall_policy] if args.key?(:firewall_policy)
2716
+ @rule_priority = args[:rule_priority] if args.key?(:rule_priority)
1850
2717
  @security_policy = args[:security_policy] if args.key?(:security_policy)
1851
2718
  end
1852
2719
  end
@@ -1942,6 +2809,39 @@ module Google
1942
2809
  end
1943
2810
  end
1944
2811
 
2812
+ # Response returned by the ListBackendAuthenticationConfigs method.
2813
+ class ListBackendAuthenticationConfigsResponse
2814
+ include Google::Apis::Core::Hashable
2815
+
2816
+ # List of BackendAuthenticationConfig resources.
2817
+ # Corresponds to the JSON property `backendAuthenticationConfigs`
2818
+ # @return [Array<Google::Apis::NetworksecurityV1::BackendAuthenticationConfig>]
2819
+ attr_accessor :backend_authentication_configs
2820
+
2821
+ # If there might be more results than those appearing in this response, then `
2822
+ # next_page_token` is included. To get the next set of results, call this method
2823
+ # again using the value of `next_page_token` as `page_token`.
2824
+ # Corresponds to the JSON property `nextPageToken`
2825
+ # @return [String]
2826
+ attr_accessor :next_page_token
2827
+
2828
+ # Locations that could not be reached.
2829
+ # Corresponds to the JSON property `unreachable`
2830
+ # @return [Array<String>]
2831
+ attr_accessor :unreachable
2832
+
2833
+ def initialize(**args)
2834
+ update!(**args)
2835
+ end
2836
+
2837
+ # Update properties of this object
2838
+ def update!(**args)
2839
+ @backend_authentication_configs = args[:backend_authentication_configs] if args.key?(:backend_authentication_configs)
2840
+ @next_page_token = args[:next_page_token] if args.key?(:next_page_token)
2841
+ @unreachable = args[:unreachable] if args.key?(:unreachable)
2842
+ end
2843
+ end
2844
+
1945
2845
  # Response returned by the ListClientTlsPolicies method.
1946
2846
  class ListClientTlsPoliciesResponse
1947
2847
  include Google::Apis::Core::Hashable
@@ -1969,6 +2869,37 @@ module Google
1969
2869
  end
1970
2870
  end
1971
2871
 
2872
+ # The response message to requesting a list of DnsThreatDetectors.
2873
+ class ListDnsThreatDetectorsResponse
2874
+ include Google::Apis::Core::Hashable
2875
+
2876
+ # The list of DnsThreatDetector resources.
2877
+ # Corresponds to the JSON property `dnsThreatDetectors`
2878
+ # @return [Array<Google::Apis::NetworksecurityV1::DnsThreatDetector>]
2879
+ attr_accessor :dns_threat_detectors
2880
+
2881
+ # A token, which can be sent as `page_token`, to retrieve the next page.
2882
+ # Corresponds to the JSON property `nextPageToken`
2883
+ # @return [String]
2884
+ attr_accessor :next_page_token
2885
+
2886
+ # Unordered list. Unreachable `DnsThreatDetector` resources.
2887
+ # Corresponds to the JSON property `unreachable`
2888
+ # @return [Array<String>]
2889
+ attr_accessor :unreachable
2890
+
2891
+ def initialize(**args)
2892
+ update!(**args)
2893
+ end
2894
+
2895
+ # Update properties of this object
2896
+ def update!(**args)
2897
+ @dns_threat_detectors = args[:dns_threat_detectors] if args.key?(:dns_threat_detectors)
2898
+ @next_page_token = args[:next_page_token] if args.key?(:next_page_token)
2899
+ @unreachable = args[:unreachable] if args.key?(:unreachable)
2900
+ end
2901
+ end
2902
+
1972
2903
  # Message for response to listing Associations
1973
2904
  class ListFirewallEndpointAssociationsResponse
1974
2905
  include Google::Apis::Core::Hashable
@@ -2080,20 +3011,134 @@ module Google
2080
3011
  # @return [String]
2081
3012
  attr_accessor :next_page_token
2082
3013
 
2083
- # Locations that could not be reached.
2084
- # Corresponds to the JSON property `unreachable`
2085
- # @return [Array<String>]
2086
- attr_accessor :unreachable
2087
-
3014
+ # Locations that could not be reached.
3015
+ # Corresponds to the JSON property `unreachable`
3016
+ # @return [Array<String>]
3017
+ attr_accessor :unreachable
3018
+
3019
+ def initialize(**args)
3020
+ update!(**args)
3021
+ end
3022
+
3023
+ # Update properties of this object
3024
+ def update!(**args)
3025
+ @gateway_security_policy_rules = args[:gateway_security_policy_rules] if args.key?(:gateway_security_policy_rules)
3026
+ @next_page_token = args[:next_page_token] if args.key?(:next_page_token)
3027
+ @unreachable = args[:unreachable] if args.key?(:unreachable)
3028
+ end
3029
+ end
3030
+
3031
+ # Response message for ListInterceptDeploymentGroups.
3032
+ class ListInterceptDeploymentGroupsResponse
3033
+ include Google::Apis::Core::Hashable
3034
+
3035
+ # The deployment groups from the specified parent.
3036
+ # Corresponds to the JSON property `interceptDeploymentGroups`
3037
+ # @return [Array<Google::Apis::NetworksecurityV1::InterceptDeploymentGroup>]
3038
+ attr_accessor :intercept_deployment_groups
3039
+
3040
+ # A token that can be sent as `page_token` to retrieve the next page. If this
3041
+ # field is omitted, there are no subsequent pages. See https://google.aip.dev/
3042
+ # 158 for more details.
3043
+ # Corresponds to the JSON property `nextPageToken`
3044
+ # @return [String]
3045
+ attr_accessor :next_page_token
3046
+
3047
+ def initialize(**args)
3048
+ update!(**args)
3049
+ end
3050
+
3051
+ # Update properties of this object
3052
+ def update!(**args)
3053
+ @intercept_deployment_groups = args[:intercept_deployment_groups] if args.key?(:intercept_deployment_groups)
3054
+ @next_page_token = args[:next_page_token] if args.key?(:next_page_token)
3055
+ end
3056
+ end
3057
+
3058
+ # Response message for ListInterceptDeployments.
3059
+ class ListInterceptDeploymentsResponse
3060
+ include Google::Apis::Core::Hashable
3061
+
3062
+ # The deployments from the specified parent.
3063
+ # Corresponds to the JSON property `interceptDeployments`
3064
+ # @return [Array<Google::Apis::NetworksecurityV1::InterceptDeployment>]
3065
+ attr_accessor :intercept_deployments
3066
+
3067
+ # A token that can be sent as `page_token` to retrieve the next page. If this
3068
+ # field is omitted, there are no subsequent pages. See https://google.aip.dev/
3069
+ # 158 for more details.
3070
+ # Corresponds to the JSON property `nextPageToken`
3071
+ # @return [String]
3072
+ attr_accessor :next_page_token
3073
+
3074
+ # Locations that could not be reached.
3075
+ # Corresponds to the JSON property `unreachable`
3076
+ # @return [Array<String>]
3077
+ attr_accessor :unreachable
3078
+
3079
+ def initialize(**args)
3080
+ update!(**args)
3081
+ end
3082
+
3083
+ # Update properties of this object
3084
+ def update!(**args)
3085
+ @intercept_deployments = args[:intercept_deployments] if args.key?(:intercept_deployments)
3086
+ @next_page_token = args[:next_page_token] if args.key?(:next_page_token)
3087
+ @unreachable = args[:unreachable] if args.key?(:unreachable)
3088
+ end
3089
+ end
3090
+
3091
+ # Response message for ListInterceptEndpointGroupAssociations.
3092
+ class ListInterceptEndpointGroupAssociationsResponse
3093
+ include Google::Apis::Core::Hashable
3094
+
3095
+ # The associations from the specified parent.
3096
+ # Corresponds to the JSON property `interceptEndpointGroupAssociations`
3097
+ # @return [Array<Google::Apis::NetworksecurityV1::InterceptEndpointGroupAssociation>]
3098
+ attr_accessor :intercept_endpoint_group_associations
3099
+
3100
+ # A token that can be sent as `page_token` to retrieve the next page. If this
3101
+ # field is omitted, there are no subsequent pages. See https://google.aip.dev/
3102
+ # 158 for more details.
3103
+ # Corresponds to the JSON property `nextPageToken`
3104
+ # @return [String]
3105
+ attr_accessor :next_page_token
3106
+
3107
+ def initialize(**args)
3108
+ update!(**args)
3109
+ end
3110
+
3111
+ # Update properties of this object
3112
+ def update!(**args)
3113
+ @intercept_endpoint_group_associations = args[:intercept_endpoint_group_associations] if args.key?(:intercept_endpoint_group_associations)
3114
+ @next_page_token = args[:next_page_token] if args.key?(:next_page_token)
3115
+ end
3116
+ end
3117
+
3118
+ # Response message for ListInterceptEndpointGroups.
3119
+ class ListInterceptEndpointGroupsResponse
3120
+ include Google::Apis::Core::Hashable
3121
+
3122
+ # The endpoint groups from the specified parent.
3123
+ # Corresponds to the JSON property `interceptEndpointGroups`
3124
+ # @return [Array<Google::Apis::NetworksecurityV1::InterceptEndpointGroup>]
3125
+ attr_accessor :intercept_endpoint_groups
3126
+
3127
+ # A token that can be sent as `page_token` to retrieve the next page. If this
3128
+ # field is omitted, there are no subsequent pages. See https://google.aip.dev/
3129
+ # 158 for more details.
3130
+ # Corresponds to the JSON property `nextPageToken`
3131
+ # @return [String]
3132
+ attr_accessor :next_page_token
3133
+
2088
3134
  def initialize(**args)
2089
3135
  update!(**args)
2090
3136
  end
2091
3137
 
2092
3138
  # Update properties of this object
2093
3139
  def update!(**args)
2094
- @gateway_security_policy_rules = args[:gateway_security_policy_rules] if args.key?(:gateway_security_policy_rules)
3140
+ @intercept_endpoint_groups = args[:intercept_endpoint_groups] if args.key?(:intercept_endpoint_groups)
2095
3141
  @next_page_token = args[:next_page_token] if args.key?(:next_page_token)
2096
- @unreachable = args[:unreachable] if args.key?(:unreachable)
2097
3142
  end
2098
3143
  end
2099
3144
 
@@ -2165,7 +3210,8 @@ module Google
2165
3210
  # @return [String]
2166
3211
  attr_accessor :next_page_token
2167
3212
 
2168
- # Locations that could not be reached.
3213
+ # Unordered list. Locations that could not be reached. See https://google.aip.
3214
+ # dev/217 for more details.
2169
3215
  # Corresponds to the JSON property `unreachable`
2170
3216
  # @return [Array<String>]
2171
3217
  attr_accessor :unreachable
@@ -2250,6 +3296,14 @@ module Google
2250
3296
  # @return [Array<Google::Apis::NetworksecurityV1::Operation>]
2251
3297
  attr_accessor :operations
2252
3298
 
3299
+ # Unordered list. Unreachable resources. Populated when the request sets `
3300
+ # ListOperationsRequest.return_partial_success` and reads across collections.
3301
+ # For example, when attempting to list all resources across all supported
3302
+ # locations.
3303
+ # Corresponds to the JSON property `unreachable`
3304
+ # @return [Array<String>]
3305
+ attr_accessor :unreachable
3306
+
2253
3307
  def initialize(**args)
2254
3308
  update!(**args)
2255
3309
  end
@@ -2258,6 +3312,69 @@ module Google
2258
3312
  def update!(**args)
2259
3313
  @next_page_token = args[:next_page_token] if args.key?(:next_page_token)
2260
3314
  @operations = args[:operations] if args.key?(:operations)
3315
+ @unreachable = args[:unreachable] if args.key?(:unreachable)
3316
+ end
3317
+ end
3318
+
3319
+ # Response for `ListSACAttachments` method.
3320
+ class ListSacAttachmentsResponse
3321
+ include Google::Apis::Core::Hashable
3322
+
3323
+ # A token identifying a page of results the server should return.
3324
+ # Corresponds to the JSON property `nextPageToken`
3325
+ # @return [String]
3326
+ attr_accessor :next_page_token
3327
+
3328
+ # The list of SACAttachments.
3329
+ # Corresponds to the JSON property `sacAttachments`
3330
+ # @return [Array<Google::Apis::NetworksecurityV1::SacAttachment>]
3331
+ attr_accessor :sac_attachments
3332
+
3333
+ # Locations that could not be reached.
3334
+ # Corresponds to the JSON property `unreachable`
3335
+ # @return [Array<String>]
3336
+ attr_accessor :unreachable
3337
+
3338
+ def initialize(**args)
3339
+ update!(**args)
3340
+ end
3341
+
3342
+ # Update properties of this object
3343
+ def update!(**args)
3344
+ @next_page_token = args[:next_page_token] if args.key?(:next_page_token)
3345
+ @sac_attachments = args[:sac_attachments] if args.key?(:sac_attachments)
3346
+ @unreachable = args[:unreachable] if args.key?(:unreachable)
3347
+ end
3348
+ end
3349
+
3350
+ # Response for `ListSACRealms` method.
3351
+ class ListSacRealmsResponse
3352
+ include Google::Apis::Core::Hashable
3353
+
3354
+ # A token identifying a page of results the server should return.
3355
+ # Corresponds to the JSON property `nextPageToken`
3356
+ # @return [String]
3357
+ attr_accessor :next_page_token
3358
+
3359
+ # The list of SACRealms.
3360
+ # Corresponds to the JSON property `sacRealms`
3361
+ # @return [Array<Google::Apis::NetworksecurityV1::SacRealm>]
3362
+ attr_accessor :sac_realms
3363
+
3364
+ # Locations that could not be reached.
3365
+ # Corresponds to the JSON property `unreachable`
3366
+ # @return [Array<String>]
3367
+ attr_accessor :unreachable
3368
+
3369
+ def initialize(**args)
3370
+ update!(**args)
3371
+ end
3372
+
3373
+ # Update properties of this object
3374
+ def update!(**args)
3375
+ @next_page_token = args[:next_page_token] if args.key?(:next_page_token)
3376
+ @sac_realms = args[:sac_realms] if args.key?(:sac_realms)
3377
+ @unreachable = args[:unreachable] if args.key?(:unreachable)
2261
3378
  end
2262
3379
  end
2263
3380
 
@@ -2331,6 +3448,13 @@ module Google
2331
3448
  # @return [Array<Google::Apis::NetworksecurityV1::ServerTlsPolicy>]
2332
3449
  attr_accessor :server_tls_policies
2333
3450
 
3451
+ # Unreachable resources. Populated when the request opts into `
3452
+ # return_partial_success` and reading across collections e.g. when attempting to
3453
+ # list all resources across all supported locations.
3454
+ # Corresponds to the JSON property `unreachable`
3455
+ # @return [Array<String>]
3456
+ attr_accessor :unreachable
3457
+
2334
3458
  def initialize(**args)
2335
3459
  update!(**args)
2336
3460
  end
@@ -2339,6 +3463,7 @@ module Google
2339
3463
  def update!(**args)
2340
3464
  @next_page_token = args[:next_page_token] if args.key?(:next_page_token)
2341
3465
  @server_tls_policies = args[:server_tls_policies] if args.key?(:server_tls_policies)
3466
+ @unreachable = args[:unreachable] if args.key?(:unreachable)
2342
3467
  end
2343
3468
  end
2344
3469
 
@@ -2608,6 +3733,11 @@ module Google
2608
3733
  # @return [Hash<String,String>]
2609
3734
  attr_accessor :labels
2610
3735
 
3736
+ # Output only. The list of locations where the deployment group is present.
3737
+ # Corresponds to the JSON property `locations`
3738
+ # @return [Array<Google::Apis::NetworksecurityV1::MirroringLocation>]
3739
+ attr_accessor :locations
3740
+
2611
3741
  # Immutable. Identifier. The resource name of this deployment group, for example:
2612
3742
  # `projects/123456789/locations/global/mirroringDeploymentGroups/my-dg`. See
2613
3743
  # https://google.aip.dev/122 for more details.
@@ -2658,6 +3788,7 @@ module Google
2658
3788
  @create_time = args[:create_time] if args.key?(:create_time)
2659
3789
  @description = args[:description] if args.key?(:description)
2660
3790
  @labels = args[:labels] if args.key?(:labels)
3791
+ @locations = args[:locations] if args.key?(:locations)
2661
3792
  @name = args[:name] if args.key?(:name)
2662
3793
  @nested_deployments = args[:nested_deployments] if args.key?(:nested_deployments)
2663
3794
  @network = args[:network] if args.key?(:network)
@@ -2727,6 +3858,12 @@ module Google
2727
3858
  # @return [Array<Google::Apis::NetworksecurityV1::MirroringEndpointGroupAssociationDetails>]
2728
3859
  attr_accessor :associations
2729
3860
 
3861
+ # Output only. List of details about the connected deployment groups to this
3862
+ # endpoint group.
3863
+ # Corresponds to the JSON property `connectedDeploymentGroups`
3864
+ # @return [Array<Google::Apis::NetworksecurityV1::MirroringEndpointGroupConnectedDeploymentGroup>]
3865
+ attr_accessor :connected_deployment_groups
3866
+
2730
3867
  # Output only. The timestamp when the resource was created. See https://google.
2731
3868
  # aip.dev/148#timestamps.
2732
3869
  # Corresponds to the JSON property `createTime`
@@ -2774,6 +3911,12 @@ module Google
2774
3911
  # @return [String]
2775
3912
  attr_accessor :state
2776
3913
 
3914
+ # Immutable. The type of the endpoint group. If left unspecified, defaults to
3915
+ # DIRECT.
3916
+ # Corresponds to the JSON property `type`
3917
+ # @return [String]
3918
+ attr_accessor :type
3919
+
2777
3920
  # Output only. The timestamp when the resource was most recently updated. See
2778
3921
  # https://google.aip.dev/148#timestamps.
2779
3922
  # Corresponds to the JSON property `updateTime`
@@ -2787,6 +3930,7 @@ module Google
2787
3930
  # Update properties of this object
2788
3931
  def update!(**args)
2789
3932
  @associations = args[:associations] if args.key?(:associations)
3933
+ @connected_deployment_groups = args[:connected_deployment_groups] if args.key?(:connected_deployment_groups)
2790
3934
  @create_time = args[:create_time] if args.key?(:create_time)
2791
3935
  @description = args[:description] if args.key?(:description)
2792
3936
  @labels = args[:labels] if args.key?(:labels)
@@ -2794,6 +3938,7 @@ module Google
2794
3938
  @name = args[:name] if args.key?(:name)
2795
3939
  @reconciling = args[:reconciling] if args.key?(:reconciling)
2796
3940
  @state = args[:state] if args.key?(:state)
3941
+ @type = args[:type] if args.key?(:type)
2797
3942
  @update_time = args[:update_time] if args.key?(:update_time)
2798
3943
  end
2799
3944
  end
@@ -2819,6 +3964,12 @@ module Google
2819
3964
  # @return [Hash<String,String>]
2820
3965
  attr_accessor :labels
2821
3966
 
3967
+ # Output only. The list of locations where the association is configured. This
3968
+ # information is retrieved from the linked endpoint group.
3969
+ # Corresponds to the JSON property `locations`
3970
+ # @return [Array<Google::Apis::NetworksecurityV1::MirroringLocation>]
3971
+ attr_accessor :locations
3972
+
2822
3973
  # Output only. The list of locations where the association is present. This
2823
3974
  # information is retrieved from the linked endpoint group, and not configured as
2824
3975
  # part of the association itself.
@@ -2847,6 +3998,13 @@ module Google
2847
3998
  # @return [String]
2848
3999
  attr_accessor :network
2849
4000
 
4001
+ # Output only. Identifier used by the data-path. See the NSI GENEVE format for
4002
+ # more details: https://docs.cloud.google.com/network-security-integration/docs/
4003
+ # understand-geneve#network_id
4004
+ # Corresponds to the JSON property `networkCookie`
4005
+ # @return [Fixnum]
4006
+ attr_accessor :network_cookie
4007
+
2850
4008
  # Output only. The current state of the resource does not match the user's
2851
4009
  # intended state, and the system is working to reconcile them. This part of the
2852
4010
  # normal operation (e.g. adding a new location to the target deployment group).
@@ -2875,10 +4033,12 @@ module Google
2875
4033
  def update!(**args)
2876
4034
  @create_time = args[:create_time] if args.key?(:create_time)
2877
4035
  @labels = args[:labels] if args.key?(:labels)
4036
+ @locations = args[:locations] if args.key?(:locations)
2878
4037
  @locations_details = args[:locations_details] if args.key?(:locations_details)
2879
4038
  @mirroring_endpoint_group = args[:mirroring_endpoint_group] if args.key?(:mirroring_endpoint_group)
2880
4039
  @name = args[:name] if args.key?(:name)
2881
4040
  @network = args[:network] if args.key?(:network)
4041
+ @network_cookie = args[:network_cookie] if args.key?(:network_cookie)
2882
4042
  @reconciling = args[:reconciling] if args.key?(:reconciling)
2883
4043
  @state = args[:state] if args.key?(:state)
2884
4044
  @update_time = args[:update_time] if args.key?(:update_time)
@@ -2945,6 +4105,58 @@ module Google
2945
4105
  end
2946
4106
  end
2947
4107
 
4108
+ # The endpoint group's view of a connected deployment group.
4109
+ class MirroringEndpointGroupConnectedDeploymentGroup
4110
+ include Google::Apis::Core::Hashable
4111
+
4112
+ # Output only. The list of locations where the deployment group is present.
4113
+ # Corresponds to the JSON property `locations`
4114
+ # @return [Array<Google::Apis::NetworksecurityV1::MirroringLocation>]
4115
+ attr_accessor :locations
4116
+
4117
+ # Output only. The connected deployment group's resource name, for example: `
4118
+ # projects/123456789/locations/global/mirroringDeploymentGroups/my-dg`. See
4119
+ # https://google.aip.dev/124.
4120
+ # Corresponds to the JSON property `name`
4121
+ # @return [String]
4122
+ attr_accessor :name
4123
+
4124
+ def initialize(**args)
4125
+ update!(**args)
4126
+ end
4127
+
4128
+ # Update properties of this object
4129
+ def update!(**args)
4130
+ @locations = args[:locations] if args.key?(:locations)
4131
+ @name = args[:name] if args.key?(:name)
4132
+ end
4133
+ end
4134
+
4135
+ # Details about mirroring in a specific cloud location.
4136
+ class MirroringLocation
4137
+ include Google::Apis::Core::Hashable
4138
+
4139
+ # Output only. The cloud location, e.g. "us-central1-a" or "asia-south1".
4140
+ # Corresponds to the JSON property `location`
4141
+ # @return [String]
4142
+ attr_accessor :location
4143
+
4144
+ # Output only. The current state of the association in this location.
4145
+ # Corresponds to the JSON property `state`
4146
+ # @return [String]
4147
+ attr_accessor :state
4148
+
4149
+ def initialize(**args)
4150
+ update!(**args)
4151
+ end
4152
+
4153
+ # Update properties of this object
4154
+ def update!(**args)
4155
+ @location = args[:location] if args.key?(:location)
4156
+ @state = args[:state] if args.key?(:state)
4157
+ end
4158
+ end
4159
+
2948
4160
  # This resource represents a long-running operation that is the result of a
2949
4161
  # network API call.
2950
4162
  class Operation
@@ -3132,6 +4344,151 @@ module Google
3132
4344
  end
3133
4345
  end
3134
4346
 
4347
+ # Represents a Secure Access Connect (SAC) attachment resource. A Secure Access
4348
+ # Connect attachment enables NCC Gateway to process traffic with an SSE product.
4349
+ class SacAttachment
4350
+ include Google::Apis::Core::Hashable
4351
+
4352
+ # Output only. Timestamp when the attachment was created.
4353
+ # Corresponds to the JSON property `createTime`
4354
+ # @return [String]
4355
+ attr_accessor :create_time
4356
+
4357
+ # Optional. Optional list of labels applied to the resource.
4358
+ # Corresponds to the JSON property `labels`
4359
+ # @return [Hash<String,String>]
4360
+ attr_accessor :labels
4361
+
4362
+ # Identifier. Resource name, in the form `projects/`project`/locations/`location`
4363
+ # /sacAttachments/`sac_attachment``.
4364
+ # Corresponds to the JSON property `name`
4365
+ # @return [String]
4366
+ attr_accessor :name
4367
+
4368
+ # Required. NCC Gateway associated with the attachment. This can be input as an
4369
+ # ID or a full resource name. The output always has the form `projects/`
4370
+ # project_number`/locations/`location`/spokes/`ncc_gateway``.
4371
+ # Corresponds to the JSON property `nccGateway`
4372
+ # @return [String]
4373
+ attr_accessor :ncc_gateway
4374
+
4375
+ # Required. SAC Realm which owns the attachment. This can be input as an ID or a
4376
+ # full resource name. The output always has the form `projects/`project_number`/
4377
+ # locations/`location`/sacRealms/`sac_realm``.
4378
+ # Corresponds to the JSON property `sacRealm`
4379
+ # @return [String]
4380
+ attr_accessor :sac_realm
4381
+
4382
+ # Output only. State of the attachment.
4383
+ # Corresponds to the JSON property `state`
4384
+ # @return [String]
4385
+ attr_accessor :state
4386
+
4387
+ # Output only. Timestamp when the attachment was last updated.
4388
+ # Corresponds to the JSON property `updateTime`
4389
+ # @return [String]
4390
+ attr_accessor :update_time
4391
+
4392
+ def initialize(**args)
4393
+ update!(**args)
4394
+ end
4395
+
4396
+ # Update properties of this object
4397
+ def update!(**args)
4398
+ @create_time = args[:create_time] if args.key?(:create_time)
4399
+ @labels = args[:labels] if args.key?(:labels)
4400
+ @name = args[:name] if args.key?(:name)
4401
+ @ncc_gateway = args[:ncc_gateway] if args.key?(:ncc_gateway)
4402
+ @sac_realm = args[:sac_realm] if args.key?(:sac_realm)
4403
+ @state = args[:state] if args.key?(:state)
4404
+ @update_time = args[:update_time] if args.key?(:update_time)
4405
+ end
4406
+ end
4407
+
4408
+ # Represents a Secure Access Connect (SAC) realm resource. A Secure Access
4409
+ # Connect realm establishes a connection between your Google Cloud project and
4410
+ # an SSE service.
4411
+ class SacRealm
4412
+ include Google::Apis::Core::Hashable
4413
+
4414
+ # Output only. Timestamp when the realm was created.
4415
+ # Corresponds to the JSON property `createTime`
4416
+ # @return [String]
4417
+ attr_accessor :create_time
4418
+
4419
+ # Optional. Optional list of labels applied to the resource.
4420
+ # Corresponds to the JSON property `labels`
4421
+ # @return [Hash<String,String>]
4422
+ attr_accessor :labels
4423
+
4424
+ # Identifier. Resource name, in the form `projects/`project`/locations/global/
4425
+ # sacRealms/`sacRealm``.
4426
+ # Corresponds to the JSON property `name`
4427
+ # @return [String]
4428
+ attr_accessor :name
4429
+
4430
+ # Key to be shared with SSE service provider to establish global handshake.
4431
+ # Corresponds to the JSON property `pairingKey`
4432
+ # @return [Google::Apis::NetworksecurityV1::SacRealmPairingKey]
4433
+ attr_accessor :pairing_key
4434
+
4435
+ # Immutable. SSE service provider associated with the realm.
4436
+ # Corresponds to the JSON property `securityService`
4437
+ # @return [String]
4438
+ attr_accessor :security_service
4439
+
4440
+ # Output only. State of the realm.
4441
+ # Corresponds to the JSON property `state`
4442
+ # @return [String]
4443
+ attr_accessor :state
4444
+
4445
+ # Output only. Timestamp when the realm was last updated.
4446
+ # Corresponds to the JSON property `updateTime`
4447
+ # @return [String]
4448
+ attr_accessor :update_time
4449
+
4450
+ def initialize(**args)
4451
+ update!(**args)
4452
+ end
4453
+
4454
+ # Update properties of this object
4455
+ def update!(**args)
4456
+ @create_time = args[:create_time] if args.key?(:create_time)
4457
+ @labels = args[:labels] if args.key?(:labels)
4458
+ @name = args[:name] if args.key?(:name)
4459
+ @pairing_key = args[:pairing_key] if args.key?(:pairing_key)
4460
+ @security_service = args[:security_service] if args.key?(:security_service)
4461
+ @state = args[:state] if args.key?(:state)
4462
+ @update_time = args[:update_time] if args.key?(:update_time)
4463
+ end
4464
+ end
4465
+
4466
+ # Key to be shared with SSE service provider to establish global handshake.
4467
+ class SacRealmPairingKey
4468
+ include Google::Apis::Core::Hashable
4469
+
4470
+ # Output only. Timestamp in UTC of when this resource is considered expired. It
4471
+ # expires 7 days after creation.
4472
+ # Corresponds to the JSON property `expireTime`
4473
+ # @return [String]
4474
+ attr_accessor :expire_time
4475
+
4476
+ # Output only. Key value.
4477
+ # Corresponds to the JSON property `key`
4478
+ # @return [String]
4479
+ attr_accessor :key
4480
+
4481
+ def initialize(**args)
4482
+ update!(**args)
4483
+ end
4484
+
4485
+ # Update properties of this object
4486
+ def update!(**args)
4487
+ @expire_time = args[:expire_time] if args.key?(:expire_time)
4488
+ @key = args[:key] if args.key?(:key)
4489
+ end
4490
+ end
4491
+
3135
4492
  # SecurityProfile is a resource that defines the behavior for one of many
3136
4493
  # ProfileTypes.
3137
4494
  class SecurityProfile
@@ -3194,6 +4551,11 @@ module Google
3194
4551
  # @return [String]
3195
4552
  attr_accessor :update_time
3196
4553
 
4554
+ # UrlFilteringProfile defines filters based on URL.
4555
+ # Corresponds to the JSON property `urlFilteringProfile`
4556
+ # @return [Google::Apis::NetworksecurityV1::UrlFilteringProfile]
4557
+ attr_accessor :url_filtering_profile
4558
+
3197
4559
  def initialize(**args)
3198
4560
  update!(**args)
3199
4561
  end
@@ -3210,6 +4572,7 @@ module Google
3210
4572
  @threat_prevention_profile = args[:threat_prevention_profile] if args.key?(:threat_prevention_profile)
3211
4573
  @type = args[:type] if args.key?(:type)
3212
4574
  @update_time = args[:update_time] if args.key?(:update_time)
4575
+ @url_filtering_profile = args[:url_filtering_profile] if args.key?(:url_filtering_profile)
3213
4576
  end
3214
4577
  end
3215
4578
 
@@ -3277,6 +4640,11 @@ module Google
3277
4640
  # @return [String]
3278
4641
  attr_accessor :update_time
3279
4642
 
4643
+ # Optional. Reference to a SecurityProfile with the UrlFiltering configuration.
4644
+ # Corresponds to the JSON property `urlFilteringProfile`
4645
+ # @return [String]
4646
+ attr_accessor :url_filtering_profile
4647
+
3280
4648
  def initialize(**args)
3281
4649
  update!(**args)
3282
4650
  end
@@ -3293,6 +4661,7 @@ module Google
3293
4661
  @name = args[:name] if args.key?(:name)
3294
4662
  @threat_prevention_profile = args[:threat_prevention_profile] if args.key?(:threat_prevention_profile)
3295
4663
  @update_time = args[:update_time] if args.key?(:update_time)
4664
+ @url_filtering_profile = args[:url_filtering_profile] if args.key?(:url_filtering_profile)
3296
4665
  end
3297
4666
  end
3298
4667
 
@@ -3645,6 +5014,60 @@ module Google
3645
5014
  end
3646
5015
  end
3647
5016
 
5017
+ # A URL filter defines an action to take for some URL match.
5018
+ class UrlFilter
5019
+ include Google::Apis::Core::Hashable
5020
+
5021
+ # Required. The action taken when this filter is applied.
5022
+ # Corresponds to the JSON property `filteringAction`
5023
+ # @return [String]
5024
+ attr_accessor :filtering_action
5025
+
5026
+ # Required. The priority of this filter within the URL Filtering Profile. Lower
5027
+ # integers indicate higher priorities. The priority of a filter must be unique
5028
+ # within a URL Filtering Profile.
5029
+ # Corresponds to the JSON property `priority`
5030
+ # @return [Fixnum]
5031
+ attr_accessor :priority
5032
+
5033
+ # Required. The list of strings that a URL must match with for this filter to be
5034
+ # applied.
5035
+ # Corresponds to the JSON property `urls`
5036
+ # @return [Array<String>]
5037
+ attr_accessor :urls
5038
+
5039
+ def initialize(**args)
5040
+ update!(**args)
5041
+ end
5042
+
5043
+ # Update properties of this object
5044
+ def update!(**args)
5045
+ @filtering_action = args[:filtering_action] if args.key?(:filtering_action)
5046
+ @priority = args[:priority] if args.key?(:priority)
5047
+ @urls = args[:urls] if args.key?(:urls)
5048
+ end
5049
+ end
5050
+
5051
+ # UrlFilteringProfile defines filters based on URL.
5052
+ class UrlFilteringProfile
5053
+ include Google::Apis::Core::Hashable
5054
+
5055
+ # Optional. The list of filtering configs in which each config defines an action
5056
+ # to take for some URL match.
5057
+ # Corresponds to the JSON property `urlFilters`
5058
+ # @return [Array<Google::Apis::NetworksecurityV1::UrlFilter>]
5059
+ attr_accessor :url_filters
5060
+
5061
+ def initialize(**args)
5062
+ update!(**args)
5063
+ end
5064
+
5065
+ # Update properties of this object
5066
+ def update!(**args)
5067
+ @url_filters = args[:url_filters] if args.key?(:url_filters)
5068
+ end
5069
+ end
5070
+
3648
5071
  # UrlList proto helps users to set reusable, independently manageable lists of
3649
5072
  # hosts, host patterns, URLs, URL patterns.
3650
5073
  class UrlList