google-apis-networksecurity_v1 0.32.0 → 0.34.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.
@@ -131,6 +131,32 @@ module Google
131
131
  end
132
132
  end
133
133
 
134
+ # Defines what action to take for antivirus threats per protocol.
135
+ class AntivirusOverride
136
+ include Google::Apis::Core::Hashable
137
+
138
+ # Required. Threat action override. For some threat types, only a subset of
139
+ # actions applies.
140
+ # Corresponds to the JSON property `action`
141
+ # @return [String]
142
+ attr_accessor :action
143
+
144
+ # Required. Protocol to match.
145
+ # Corresponds to the JSON property `protocol`
146
+ # @return [String]
147
+ attr_accessor :protocol
148
+
149
+ def initialize(**args)
150
+ update!(**args)
151
+ end
152
+
153
+ # Update properties of this object
154
+ def update!(**args)
155
+ @action = args[:action] if args.key?(:action)
156
+ @protocol = args[:protocol] if args.key?(:protocol)
157
+ end
158
+ end
159
+
134
160
  # AuthorizationPolicy is a resource that specifies how a server should authorize
135
161
  # incoming connections. This resource in itself does not change the
136
162
  # configuration unless it's attached to a target https proxy or endpoint config
@@ -351,11 +377,13 @@ module Google
351
377
 
352
378
  # Optional. A list of identities derived from the client's certificate. This
353
379
  # field will not match on a request unless mutual TLS is enabled for the
354
- # Forwarding rule or Gateway. Each identity is a string whose value is matched
355
- # against the URI SAN, or DNS SAN or the subject field in the client's
356
- # certificate. The match can be exact, prefix, suffix or a substring match. One
357
- # of exact, prefix, suffix or contains must be specified. Limited to 5
358
- # principals.
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.
359
387
  # Corresponds to the JSON property `principals`
360
388
  # @return [Array<Google::Apis::NetworksecurityV1::AuthzPolicyAuthzRuleStringMatch>]
361
389
  attr_accessor :principals
@@ -842,13 +870,14 @@ module Google
842
870
  end
843
871
  end
844
872
 
845
- # CustomInterceptProfile defines the Packet Intercept Endpoint Group used to
846
- # intercept traffic to a third-party firewall in a Firewall rule.
873
+ # CustomInterceptProfile defines in-band integration behavior (intercept). It is
874
+ # used by firewall rules with an APPLY_SECURITY_PROFILE_GROUP action.
847
875
  class CustomInterceptProfile
848
876
  include Google::Apis::Core::Hashable
849
877
 
850
- # Required. The InterceptEndpointGroup to which traffic associated with the SP
851
- # should be mirrored.
878
+ # Required. The target InterceptEndpointGroup. When a firewall rule with this
879
+ # security profile attached matches a packet, the packet will be intercepted to
880
+ # the location-local target in this group.
852
881
  # Corresponds to the JSON property `interceptEndpointGroup`
853
882
  # @return [String]
854
883
  attr_accessor :intercept_endpoint_group
@@ -863,13 +892,14 @@ module Google
863
892
  end
864
893
  end
865
894
 
866
- # CustomMirroringProfile defines an action for mirroring traffic to a collector'
867
- # s EndpointGroup
895
+ # CustomMirroringProfile defines out-of-band integration behavior (mirroring).
896
+ # It is used by mirroring rules with a MIRROR action.
868
897
  class CustomMirroringProfile
869
898
  include Google::Apis::Core::Hashable
870
899
 
871
- # Required. The MirroringEndpointGroup to which traffic associated with the SP
872
- # should be mirrored.
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.
873
903
  # Corresponds to the JSON property `mirroringEndpointGroup`
874
904
  # @return [String]
875
905
  attr_accessor :mirroring_endpoint_group
@@ -1046,6 +1076,18 @@ module Google
1046
1076
  attr_accessor :reconciling
1047
1077
  alias_method :reconciling?, :reconciling
1048
1078
 
1079
+ # Output only. [Output Only] Reserved for future use.
1080
+ # Corresponds to the JSON property `satisfiesPzi`
1081
+ # @return [Boolean]
1082
+ attr_accessor :satisfies_pzi
1083
+ alias_method :satisfies_pzi?, :satisfies_pzi
1084
+
1085
+ # Output only. [Output Only] Reserved for future use.
1086
+ # Corresponds to the JSON property `satisfiesPzs`
1087
+ # @return [Boolean]
1088
+ attr_accessor :satisfies_pzs
1089
+ alias_method :satisfies_pzs?, :satisfies_pzs
1090
+
1049
1091
  # Output only. Current state of the endpoint.
1050
1092
  # Corresponds to the JSON property `state`
1051
1093
  # @return [String]
@@ -1070,6 +1112,8 @@ module Google
1070
1112
  @labels = args[:labels] if args.key?(:labels)
1071
1113
  @name = args[:name] if args.key?(:name)
1072
1114
  @reconciling = args[:reconciling] if args.key?(:reconciling)
1115
+ @satisfies_pzi = args[:satisfies_pzi] if args.key?(:satisfies_pzi)
1116
+ @satisfies_pzs = args[:satisfies_pzs] if args.key?(:satisfies_pzs)
1073
1117
  @state = args[:state] if args.key?(:state)
1074
1118
  @update_time = args[:update_time] if args.key?(:update_time)
1075
1119
  end
@@ -1823,6 +1867,11 @@ module Google
1823
1867
  # @return [String]
1824
1868
  attr_accessor :next_page_token
1825
1869
 
1870
+ # Locations that could not be reached.
1871
+ # Corresponds to the JSON property `unreachable`
1872
+ # @return [Array<String>]
1873
+ attr_accessor :unreachable
1874
+
1826
1875
  def initialize(**args)
1827
1876
  update!(**args)
1828
1877
  end
@@ -1831,6 +1880,7 @@ module Google
1831
1880
  def update!(**args)
1832
1881
  @address_groups = args[:address_groups] if args.key?(:address_groups)
1833
1882
  @next_page_token = args[:next_page_token] if args.key?(:next_page_token)
1883
+ @unreachable = args[:unreachable] if args.key?(:unreachable)
1834
1884
  end
1835
1885
  end
1836
1886
 
@@ -2072,6 +2122,120 @@ module Google
2072
2122
  end
2073
2123
  end
2074
2124
 
2125
+ # Response message for ListMirroringDeploymentGroups.
2126
+ class ListMirroringDeploymentGroupsResponse
2127
+ include Google::Apis::Core::Hashable
2128
+
2129
+ # The deployment groups from the specified parent.
2130
+ # Corresponds to the JSON property `mirroringDeploymentGroups`
2131
+ # @return [Array<Google::Apis::NetworksecurityV1::MirroringDeploymentGroup>]
2132
+ attr_accessor :mirroring_deployment_groups
2133
+
2134
+ # A token that can be sent as `page_token` to retrieve the next page. If this
2135
+ # field is omitted, there are no subsequent pages. See https://google.aip.dev/
2136
+ # 158 for more details.
2137
+ # Corresponds to the JSON property `nextPageToken`
2138
+ # @return [String]
2139
+ attr_accessor :next_page_token
2140
+
2141
+ def initialize(**args)
2142
+ update!(**args)
2143
+ end
2144
+
2145
+ # Update properties of this object
2146
+ def update!(**args)
2147
+ @mirroring_deployment_groups = args[:mirroring_deployment_groups] if args.key?(:mirroring_deployment_groups)
2148
+ @next_page_token = args[:next_page_token] if args.key?(:next_page_token)
2149
+ end
2150
+ end
2151
+
2152
+ # Response message for ListMirroringDeployments.
2153
+ class ListMirroringDeploymentsResponse
2154
+ include Google::Apis::Core::Hashable
2155
+
2156
+ # The deployments from the specified parent.
2157
+ # Corresponds to the JSON property `mirroringDeployments`
2158
+ # @return [Array<Google::Apis::NetworksecurityV1::MirroringDeployment>]
2159
+ attr_accessor :mirroring_deployments
2160
+
2161
+ # A token that can be sent as `page_token` to retrieve the next page. If this
2162
+ # field is omitted, there are no subsequent pages. See https://google.aip.dev/
2163
+ # 158 for more details.
2164
+ # Corresponds to the JSON property `nextPageToken`
2165
+ # @return [String]
2166
+ attr_accessor :next_page_token
2167
+
2168
+ # Locations that could not be reached.
2169
+ # Corresponds to the JSON property `unreachable`
2170
+ # @return [Array<String>]
2171
+ attr_accessor :unreachable
2172
+
2173
+ def initialize(**args)
2174
+ update!(**args)
2175
+ end
2176
+
2177
+ # Update properties of this object
2178
+ def update!(**args)
2179
+ @mirroring_deployments = args[:mirroring_deployments] if args.key?(:mirroring_deployments)
2180
+ @next_page_token = args[:next_page_token] if args.key?(:next_page_token)
2181
+ @unreachable = args[:unreachable] if args.key?(:unreachable)
2182
+ end
2183
+ end
2184
+
2185
+ # Response message for ListMirroringEndpointGroupAssociations.
2186
+ class ListMirroringEndpointGroupAssociationsResponse
2187
+ include Google::Apis::Core::Hashable
2188
+
2189
+ # The associations from the specified parent.
2190
+ # Corresponds to the JSON property `mirroringEndpointGroupAssociations`
2191
+ # @return [Array<Google::Apis::NetworksecurityV1::MirroringEndpointGroupAssociation>]
2192
+ attr_accessor :mirroring_endpoint_group_associations
2193
+
2194
+ # A token that can be sent as `page_token` to retrieve the next page. If this
2195
+ # field is omitted, there are no subsequent pages. See https://google.aip.dev/
2196
+ # 158 for more details.
2197
+ # Corresponds to the JSON property `nextPageToken`
2198
+ # @return [String]
2199
+ attr_accessor :next_page_token
2200
+
2201
+ def initialize(**args)
2202
+ update!(**args)
2203
+ end
2204
+
2205
+ # Update properties of this object
2206
+ def update!(**args)
2207
+ @mirroring_endpoint_group_associations = args[:mirroring_endpoint_group_associations] if args.key?(:mirroring_endpoint_group_associations)
2208
+ @next_page_token = args[:next_page_token] if args.key?(:next_page_token)
2209
+ end
2210
+ end
2211
+
2212
+ # Response message for ListMirroringEndpointGroups.
2213
+ class ListMirroringEndpointGroupsResponse
2214
+ include Google::Apis::Core::Hashable
2215
+
2216
+ # The endpoint groups from the specified parent.
2217
+ # Corresponds to the JSON property `mirroringEndpointGroups`
2218
+ # @return [Array<Google::Apis::NetworksecurityV1::MirroringEndpointGroup>]
2219
+ attr_accessor :mirroring_endpoint_groups
2220
+
2221
+ # A token that can be sent as `page_token` to retrieve the next page. If this
2222
+ # field is omitted, there are no subsequent pages. See https://google.aip.dev/
2223
+ # 158 for more details.
2224
+ # Corresponds to the JSON property `nextPageToken`
2225
+ # @return [String]
2226
+ attr_accessor :next_page_token
2227
+
2228
+ def initialize(**args)
2229
+ update!(**args)
2230
+ end
2231
+
2232
+ # Update properties of this object
2233
+ def update!(**args)
2234
+ @mirroring_endpoint_groups = args[:mirroring_endpoint_groups] if args.key?(:mirroring_endpoint_groups)
2235
+ @next_page_token = args[:next_page_token] if args.key?(:next_page_token)
2236
+ end
2237
+ end
2238
+
2075
2239
  # The response message for Operations.ListOperations.
2076
2240
  class ListOperationsResponse
2077
2241
  include Google::Apis::Core::Hashable
@@ -2167,6 +2331,13 @@ module Google
2167
2331
  # @return [Array<Google::Apis::NetworksecurityV1::ServerTlsPolicy>]
2168
2332
  attr_accessor :server_tls_policies
2169
2333
 
2334
+ # Unreachable resources. Populated when the request opts into `
2335
+ # return_partial_success` and reading across collections e.g. when attempting to
2336
+ # list all resources across all supported locations.
2337
+ # Corresponds to the JSON property `unreachable`
2338
+ # @return [Array<String>]
2339
+ attr_accessor :unreachable
2340
+
2170
2341
  def initialize(**args)
2171
2342
  update!(**args)
2172
2343
  end
@@ -2175,6 +2346,7 @@ module Google
2175
2346
  def update!(**args)
2176
2347
  @next_page_token = args[:next_page_token] if args.key?(:next_page_token)
2177
2348
  @server_tls_policies = args[:server_tls_policies] if args.key?(:server_tls_policies)
2349
+ @unreachable = args[:unreachable] if args.key?(:unreachable)
2178
2350
  end
2179
2351
  end
2180
2352
 
@@ -2330,6 +2502,529 @@ module Google
2330
2502
  end
2331
2503
  end
2332
2504
 
2505
+ # A deployment represents a zonal mirroring backend ready to accept GENEVE-
2506
+ # encapsulated replica traffic, e.g. a zonal instance group fronted by an
2507
+ # internal passthrough load balancer. Deployments are always part of a global
2508
+ # deployment group which represents a global mirroring service.
2509
+ class MirroringDeployment
2510
+ include Google::Apis::Core::Hashable
2511
+
2512
+ # Output only. The timestamp when the resource was created. See https://google.
2513
+ # aip.dev/148#timestamps.
2514
+ # Corresponds to the JSON property `createTime`
2515
+ # @return [String]
2516
+ attr_accessor :create_time
2517
+
2518
+ # Optional. User-provided description of the deployment. Used as additional
2519
+ # context for the deployment.
2520
+ # Corresponds to the JSON property `description`
2521
+ # @return [String]
2522
+ attr_accessor :description
2523
+
2524
+ # Required. Immutable. The regional forwarding rule that fronts the mirroring
2525
+ # collectors, for example: `projects/123456789/regions/us-central1/
2526
+ # forwardingRules/my-rule`. See https://google.aip.dev/124.
2527
+ # Corresponds to the JSON property `forwardingRule`
2528
+ # @return [String]
2529
+ attr_accessor :forwarding_rule
2530
+
2531
+ # Optional. Labels are key/value pairs that help to organize and filter
2532
+ # resources.
2533
+ # Corresponds to the JSON property `labels`
2534
+ # @return [Hash<String,String>]
2535
+ attr_accessor :labels
2536
+
2537
+ # Required. Immutable. The deployment group that this deployment is a part of,
2538
+ # for example: `projects/123456789/locations/global/mirroringDeploymentGroups/my-
2539
+ # dg`. See https://google.aip.dev/124.
2540
+ # Corresponds to the JSON property `mirroringDeploymentGroup`
2541
+ # @return [String]
2542
+ attr_accessor :mirroring_deployment_group
2543
+
2544
+ # Immutable. Identifier. The resource name of this deployment, for example: `
2545
+ # projects/123456789/locations/us-central1-a/mirroringDeployments/my-dep`. See
2546
+ # https://google.aip.dev/122 for more details.
2547
+ # Corresponds to the JSON property `name`
2548
+ # @return [String]
2549
+ attr_accessor :name
2550
+
2551
+ # Output only. The current state of the resource does not match the user's
2552
+ # intended state, and the system is working to reconcile them. This part of the
2553
+ # normal operation (e.g. linking a new association to the parent group). See
2554
+ # https://google.aip.dev/128.
2555
+ # Corresponds to the JSON property `reconciling`
2556
+ # @return [Boolean]
2557
+ attr_accessor :reconciling
2558
+ alias_method :reconciling?, :reconciling
2559
+
2560
+ # Output only. The current state of the deployment. See https://google.aip.dev/
2561
+ # 216.
2562
+ # Corresponds to the JSON property `state`
2563
+ # @return [String]
2564
+ attr_accessor :state
2565
+
2566
+ # Output only. The timestamp when the resource was most recently updated. See
2567
+ # https://google.aip.dev/148#timestamps.
2568
+ # Corresponds to the JSON property `updateTime`
2569
+ # @return [String]
2570
+ attr_accessor :update_time
2571
+
2572
+ def initialize(**args)
2573
+ update!(**args)
2574
+ end
2575
+
2576
+ # Update properties of this object
2577
+ def update!(**args)
2578
+ @create_time = args[:create_time] if args.key?(:create_time)
2579
+ @description = args[:description] if args.key?(:description)
2580
+ @forwarding_rule = args[:forwarding_rule] if args.key?(:forwarding_rule)
2581
+ @labels = args[:labels] if args.key?(:labels)
2582
+ @mirroring_deployment_group = args[:mirroring_deployment_group] if args.key?(:mirroring_deployment_group)
2583
+ @name = args[:name] if args.key?(:name)
2584
+ @reconciling = args[:reconciling] if args.key?(:reconciling)
2585
+ @state = args[:state] if args.key?(:state)
2586
+ @update_time = args[:update_time] if args.key?(:update_time)
2587
+ end
2588
+ end
2589
+
2590
+ # A deployment group aggregates many zonal mirroring backends (deployments) into
2591
+ # a single global mirroring service. Consumers can connect this service using an
2592
+ # endpoint group.
2593
+ class MirroringDeploymentGroup
2594
+ include Google::Apis::Core::Hashable
2595
+
2596
+ # Output only. The list of endpoint groups that are connected to this resource.
2597
+ # Corresponds to the JSON property `connectedEndpointGroups`
2598
+ # @return [Array<Google::Apis::NetworksecurityV1::MirroringDeploymentGroupConnectedEndpointGroup>]
2599
+ attr_accessor :connected_endpoint_groups
2600
+
2601
+ # Output only. The timestamp when the resource was created. See https://google.
2602
+ # aip.dev/148#timestamps.
2603
+ # Corresponds to the JSON property `createTime`
2604
+ # @return [String]
2605
+ attr_accessor :create_time
2606
+
2607
+ # Optional. User-provided description of the deployment group. Used as
2608
+ # additional context for the deployment group.
2609
+ # Corresponds to the JSON property `description`
2610
+ # @return [String]
2611
+ attr_accessor :description
2612
+
2613
+ # Optional. Labels are key/value pairs that help to organize and filter
2614
+ # resources.
2615
+ # Corresponds to the JSON property `labels`
2616
+ # @return [Hash<String,String>]
2617
+ attr_accessor :labels
2618
+
2619
+ # Output only. The list of locations where the deployment group is present.
2620
+ # Corresponds to the JSON property `locations`
2621
+ # @return [Array<Google::Apis::NetworksecurityV1::MirroringLocation>]
2622
+ attr_accessor :locations
2623
+
2624
+ # Immutable. Identifier. The resource name of this deployment group, for example:
2625
+ # `projects/123456789/locations/global/mirroringDeploymentGroups/my-dg`. See
2626
+ # https://google.aip.dev/122 for more details.
2627
+ # Corresponds to the JSON property `name`
2628
+ # @return [String]
2629
+ attr_accessor :name
2630
+
2631
+ # Output only. The list of Mirroring Deployments that belong to this group.
2632
+ # Corresponds to the JSON property `nestedDeployments`
2633
+ # @return [Array<Google::Apis::NetworksecurityV1::MirroringDeploymentGroupDeployment>]
2634
+ attr_accessor :nested_deployments
2635
+
2636
+ # Required. Immutable. The network that will be used for all child deployments,
2637
+ # for example: `projects/`project`/global/networks/`network``. See https://
2638
+ # google.aip.dev/124.
2639
+ # Corresponds to the JSON property `network`
2640
+ # @return [String]
2641
+ attr_accessor :network
2642
+
2643
+ # Output only. The current state of the resource does not match the user's
2644
+ # intended state, and the system is working to reconcile them. This is part of
2645
+ # the normal operation (e.g. adding a new deployment to the group) See https://
2646
+ # google.aip.dev/128.
2647
+ # Corresponds to the JSON property `reconciling`
2648
+ # @return [Boolean]
2649
+ attr_accessor :reconciling
2650
+ alias_method :reconciling?, :reconciling
2651
+
2652
+ # Output only. The current state of the deployment group. See https://google.aip.
2653
+ # dev/216.
2654
+ # Corresponds to the JSON property `state`
2655
+ # @return [String]
2656
+ attr_accessor :state
2657
+
2658
+ # Output only. The timestamp when the resource was most recently updated. See
2659
+ # https://google.aip.dev/148#timestamps.
2660
+ # Corresponds to the JSON property `updateTime`
2661
+ # @return [String]
2662
+ attr_accessor :update_time
2663
+
2664
+ def initialize(**args)
2665
+ update!(**args)
2666
+ end
2667
+
2668
+ # Update properties of this object
2669
+ def update!(**args)
2670
+ @connected_endpoint_groups = args[:connected_endpoint_groups] if args.key?(:connected_endpoint_groups)
2671
+ @create_time = args[:create_time] if args.key?(:create_time)
2672
+ @description = args[:description] if args.key?(:description)
2673
+ @labels = args[:labels] if args.key?(:labels)
2674
+ @locations = args[:locations] if args.key?(:locations)
2675
+ @name = args[:name] if args.key?(:name)
2676
+ @nested_deployments = args[:nested_deployments] if args.key?(:nested_deployments)
2677
+ @network = args[:network] if args.key?(:network)
2678
+ @reconciling = args[:reconciling] if args.key?(:reconciling)
2679
+ @state = args[:state] if args.key?(:state)
2680
+ @update_time = args[:update_time] if args.key?(:update_time)
2681
+ end
2682
+ end
2683
+
2684
+ # An endpoint group connected to this deployment group.
2685
+ class MirroringDeploymentGroupConnectedEndpointGroup
2686
+ include Google::Apis::Core::Hashable
2687
+
2688
+ # Output only. The connected endpoint group's resource name, for example: `
2689
+ # projects/123456789/locations/global/mirroringEndpointGroups/my-eg`. See https:/
2690
+ # /google.aip.dev/124.
2691
+ # Corresponds to the JSON property `name`
2692
+ # @return [String]
2693
+ attr_accessor :name
2694
+
2695
+ def initialize(**args)
2696
+ update!(**args)
2697
+ end
2698
+
2699
+ # Update properties of this object
2700
+ def update!(**args)
2701
+ @name = args[:name] if args.key?(:name)
2702
+ end
2703
+ end
2704
+
2705
+ # A deployment belonging to this deployment group.
2706
+ class MirroringDeploymentGroupDeployment
2707
+ include Google::Apis::Core::Hashable
2708
+
2709
+ # Output only. The name of the Mirroring Deployment, in the format: `projects/`
2710
+ # project`/locations/`location`/mirroringDeployments/`mirroring_deployment``.
2711
+ # Corresponds to the JSON property `name`
2712
+ # @return [String]
2713
+ attr_accessor :name
2714
+
2715
+ # Output only. Most recent known state of the deployment.
2716
+ # Corresponds to the JSON property `state`
2717
+ # @return [String]
2718
+ attr_accessor :state
2719
+
2720
+ def initialize(**args)
2721
+ update!(**args)
2722
+ end
2723
+
2724
+ # Update properties of this object
2725
+ def update!(**args)
2726
+ @name = args[:name] if args.key?(:name)
2727
+ @state = args[:state] if args.key?(:state)
2728
+ end
2729
+ end
2730
+
2731
+ # An endpoint group is a consumer frontend for a deployment group (backend). In
2732
+ # order to configure mirroring for a network, consumers must create: - An
2733
+ # association between their network and the endpoint group. - A security profile
2734
+ # that points to the endpoint group. - A mirroring rule that references the
2735
+ # security profile (group).
2736
+ class MirroringEndpointGroup
2737
+ include Google::Apis::Core::Hashable
2738
+
2739
+ # Output only. List of associations to this endpoint group.
2740
+ # Corresponds to the JSON property `associations`
2741
+ # @return [Array<Google::Apis::NetworksecurityV1::MirroringEndpointGroupAssociationDetails>]
2742
+ attr_accessor :associations
2743
+
2744
+ # Output only. List of details about the connected deployment groups to this
2745
+ # endpoint group.
2746
+ # Corresponds to the JSON property `connectedDeploymentGroups`
2747
+ # @return [Array<Google::Apis::NetworksecurityV1::MirroringEndpointGroupConnectedDeploymentGroup>]
2748
+ attr_accessor :connected_deployment_groups
2749
+
2750
+ # Output only. The timestamp when the resource was created. See https://google.
2751
+ # aip.dev/148#timestamps.
2752
+ # Corresponds to the JSON property `createTime`
2753
+ # @return [String]
2754
+ attr_accessor :create_time
2755
+
2756
+ # Optional. User-provided description of the endpoint group. Used as additional
2757
+ # context for the endpoint group.
2758
+ # Corresponds to the JSON property `description`
2759
+ # @return [String]
2760
+ attr_accessor :description
2761
+
2762
+ # Optional. Labels are key/value pairs that help to organize and filter
2763
+ # resources.
2764
+ # Corresponds to the JSON property `labels`
2765
+ # @return [Hash<String,String>]
2766
+ attr_accessor :labels
2767
+
2768
+ # Immutable. The deployment group that this DIRECT endpoint group is connected
2769
+ # to, for example: `projects/123456789/locations/global/
2770
+ # mirroringDeploymentGroups/my-dg`. See https://google.aip.dev/124.
2771
+ # Corresponds to the JSON property `mirroringDeploymentGroup`
2772
+ # @return [String]
2773
+ attr_accessor :mirroring_deployment_group
2774
+
2775
+ # Immutable. Identifier. The resource name of this endpoint group, for example: `
2776
+ # projects/123456789/locations/global/mirroringEndpointGroups/my-eg`. See https:/
2777
+ # /google.aip.dev/122 for more details.
2778
+ # Corresponds to the JSON property `name`
2779
+ # @return [String]
2780
+ attr_accessor :name
2781
+
2782
+ # Output only. The current state of the resource does not match the user's
2783
+ # intended state, and the system is working to reconcile them. This is part of
2784
+ # the normal operation (e.g. adding a new association to the group). See https://
2785
+ # google.aip.dev/128.
2786
+ # Corresponds to the JSON property `reconciling`
2787
+ # @return [Boolean]
2788
+ attr_accessor :reconciling
2789
+ alias_method :reconciling?, :reconciling
2790
+
2791
+ # Output only. The current state of the endpoint group. See https://google.aip.
2792
+ # dev/216.
2793
+ # Corresponds to the JSON property `state`
2794
+ # @return [String]
2795
+ attr_accessor :state
2796
+
2797
+ # Output only. The timestamp when the resource was most recently updated. See
2798
+ # https://google.aip.dev/148#timestamps.
2799
+ # Corresponds to the JSON property `updateTime`
2800
+ # @return [String]
2801
+ attr_accessor :update_time
2802
+
2803
+ def initialize(**args)
2804
+ update!(**args)
2805
+ end
2806
+
2807
+ # Update properties of this object
2808
+ def update!(**args)
2809
+ @associations = args[:associations] if args.key?(:associations)
2810
+ @connected_deployment_groups = args[:connected_deployment_groups] if args.key?(:connected_deployment_groups)
2811
+ @create_time = args[:create_time] if args.key?(:create_time)
2812
+ @description = args[:description] if args.key?(:description)
2813
+ @labels = args[:labels] if args.key?(:labels)
2814
+ @mirroring_deployment_group = args[:mirroring_deployment_group] if args.key?(:mirroring_deployment_group)
2815
+ @name = args[:name] if args.key?(:name)
2816
+ @reconciling = args[:reconciling] if args.key?(:reconciling)
2817
+ @state = args[:state] if args.key?(:state)
2818
+ @update_time = args[:update_time] if args.key?(:update_time)
2819
+ end
2820
+ end
2821
+
2822
+ # An endpoint group association represents a link between a network and an
2823
+ # endpoint group in the organization. Creating an association creates the
2824
+ # networking infrastructure linking the network to the endpoint group, but does
2825
+ # not enable mirroring by itself. To enable mirroring, the user must also create
2826
+ # a network firewall policy containing mirroring rules and associate it with the
2827
+ # network.
2828
+ class MirroringEndpointGroupAssociation
2829
+ include Google::Apis::Core::Hashable
2830
+
2831
+ # Output only. The timestamp when the resource was created. See https://google.
2832
+ # aip.dev/148#timestamps.
2833
+ # Corresponds to the JSON property `createTime`
2834
+ # @return [String]
2835
+ attr_accessor :create_time
2836
+
2837
+ # Optional. Labels are key/value pairs that help to organize and filter
2838
+ # resources.
2839
+ # Corresponds to the JSON property `labels`
2840
+ # @return [Hash<String,String>]
2841
+ attr_accessor :labels
2842
+
2843
+ # Output only. The list of locations where the association is configured. This
2844
+ # information is retrieved from the linked endpoint group.
2845
+ # Corresponds to the JSON property `locations`
2846
+ # @return [Array<Google::Apis::NetworksecurityV1::MirroringLocation>]
2847
+ attr_accessor :locations
2848
+
2849
+ # Output only. The list of locations where the association is present. This
2850
+ # information is retrieved from the linked endpoint group, and not configured as
2851
+ # part of the association itself.
2852
+ # Corresponds to the JSON property `locationsDetails`
2853
+ # @return [Array<Google::Apis::NetworksecurityV1::MirroringEndpointGroupAssociationLocationDetails>]
2854
+ attr_accessor :locations_details
2855
+
2856
+ # Immutable. The endpoint group that this association is connected to, for
2857
+ # example: `projects/123456789/locations/global/mirroringEndpointGroups/my-eg`.
2858
+ # See https://google.aip.dev/124.
2859
+ # Corresponds to the JSON property `mirroringEndpointGroup`
2860
+ # @return [String]
2861
+ attr_accessor :mirroring_endpoint_group
2862
+
2863
+ # Immutable. Identifier. The resource name of this endpoint group association,
2864
+ # for example: `projects/123456789/locations/global/
2865
+ # mirroringEndpointGroupAssociations/my-eg-association`. See https://google.aip.
2866
+ # dev/122 for more details.
2867
+ # Corresponds to the JSON property `name`
2868
+ # @return [String]
2869
+ attr_accessor :name
2870
+
2871
+ # Immutable. The VPC network that is associated. for example: `projects/
2872
+ # 123456789/global/networks/my-network`. See https://google.aip.dev/124.
2873
+ # Corresponds to the JSON property `network`
2874
+ # @return [String]
2875
+ attr_accessor :network
2876
+
2877
+ # Output only. The current state of the resource does not match the user's
2878
+ # intended state, and the system is working to reconcile them. This part of the
2879
+ # normal operation (e.g. adding a new location to the target deployment group).
2880
+ # See https://google.aip.dev/128.
2881
+ # Corresponds to the JSON property `reconciling`
2882
+ # @return [Boolean]
2883
+ attr_accessor :reconciling
2884
+ alias_method :reconciling?, :reconciling
2885
+
2886
+ # Output only. Current state of the endpoint group association.
2887
+ # Corresponds to the JSON property `state`
2888
+ # @return [String]
2889
+ attr_accessor :state
2890
+
2891
+ # Output only. The timestamp when the resource was most recently updated. See
2892
+ # https://google.aip.dev/148#timestamps.
2893
+ # Corresponds to the JSON property `updateTime`
2894
+ # @return [String]
2895
+ attr_accessor :update_time
2896
+
2897
+ def initialize(**args)
2898
+ update!(**args)
2899
+ end
2900
+
2901
+ # Update properties of this object
2902
+ def update!(**args)
2903
+ @create_time = args[:create_time] if args.key?(:create_time)
2904
+ @labels = args[:labels] if args.key?(:labels)
2905
+ @locations = args[:locations] if args.key?(:locations)
2906
+ @locations_details = args[:locations_details] if args.key?(:locations_details)
2907
+ @mirroring_endpoint_group = args[:mirroring_endpoint_group] if args.key?(:mirroring_endpoint_group)
2908
+ @name = args[:name] if args.key?(:name)
2909
+ @network = args[:network] if args.key?(:network)
2910
+ @reconciling = args[:reconciling] if args.key?(:reconciling)
2911
+ @state = args[:state] if args.key?(:state)
2912
+ @update_time = args[:update_time] if args.key?(:update_time)
2913
+ end
2914
+ end
2915
+
2916
+ # The endpoint group's view of a connected association.
2917
+ class MirroringEndpointGroupAssociationDetails
2918
+ include Google::Apis::Core::Hashable
2919
+
2920
+ # Output only. The connected association's resource name, for example: `projects/
2921
+ # 123456789/locations/global/mirroringEndpointGroupAssociations/my-ega`. See
2922
+ # https://google.aip.dev/124.
2923
+ # Corresponds to the JSON property `name`
2924
+ # @return [String]
2925
+ attr_accessor :name
2926
+
2927
+ # Output only. The associated network, for example: projects/123456789/global/
2928
+ # networks/my-network. See https://google.aip.dev/124.
2929
+ # Corresponds to the JSON property `network`
2930
+ # @return [String]
2931
+ attr_accessor :network
2932
+
2933
+ # Output only. Most recent known state of the association.
2934
+ # Corresponds to the JSON property `state`
2935
+ # @return [String]
2936
+ attr_accessor :state
2937
+
2938
+ def initialize(**args)
2939
+ update!(**args)
2940
+ end
2941
+
2942
+ # Update properties of this object
2943
+ def update!(**args)
2944
+ @name = args[:name] if args.key?(:name)
2945
+ @network = args[:network] if args.key?(:network)
2946
+ @state = args[:state] if args.key?(:state)
2947
+ end
2948
+ end
2949
+
2950
+ # Contains details about the state of an association in a specific cloud
2951
+ # location.
2952
+ class MirroringEndpointGroupAssociationLocationDetails
2953
+ include Google::Apis::Core::Hashable
2954
+
2955
+ # Output only. The cloud location, e.g. "us-central1-a" or "asia-south1".
2956
+ # Corresponds to the JSON property `location`
2957
+ # @return [String]
2958
+ attr_accessor :location
2959
+
2960
+ # Output only. The current state of the association in this location.
2961
+ # Corresponds to the JSON property `state`
2962
+ # @return [String]
2963
+ attr_accessor :state
2964
+
2965
+ def initialize(**args)
2966
+ update!(**args)
2967
+ end
2968
+
2969
+ # Update properties of this object
2970
+ def update!(**args)
2971
+ @location = args[:location] if args.key?(:location)
2972
+ @state = args[:state] if args.key?(:state)
2973
+ end
2974
+ end
2975
+
2976
+ # The endpoint group's view of a connected deployment group.
2977
+ class MirroringEndpointGroupConnectedDeploymentGroup
2978
+ include Google::Apis::Core::Hashable
2979
+
2980
+ # Output only. The list of locations where the deployment group is present.
2981
+ # Corresponds to the JSON property `locations`
2982
+ # @return [Array<Google::Apis::NetworksecurityV1::MirroringLocation>]
2983
+ attr_accessor :locations
2984
+
2985
+ # Output only. The connected deployment group's resource name, for example: `
2986
+ # projects/123456789/locations/global/mirroringDeploymentGroups/my-dg`. See
2987
+ # https://google.aip.dev/124.
2988
+ # Corresponds to the JSON property `name`
2989
+ # @return [String]
2990
+ attr_accessor :name
2991
+
2992
+ def initialize(**args)
2993
+ update!(**args)
2994
+ end
2995
+
2996
+ # Update properties of this object
2997
+ def update!(**args)
2998
+ @locations = args[:locations] if args.key?(:locations)
2999
+ @name = args[:name] if args.key?(:name)
3000
+ end
3001
+ end
3002
+
3003
+ # Details about mirroring in a specific cloud location.
3004
+ class MirroringLocation
3005
+ include Google::Apis::Core::Hashable
3006
+
3007
+ # Output only. The cloud location, e.g. "us-central1-a" or "asia-south1".
3008
+ # Corresponds to the JSON property `location`
3009
+ # @return [String]
3010
+ attr_accessor :location
3011
+
3012
+ # Output only. The current state of the association in this location.
3013
+ # Corresponds to the JSON property `state`
3014
+ # @return [String]
3015
+ attr_accessor :state
3016
+
3017
+ def initialize(**args)
3018
+ update!(**args)
3019
+ end
3020
+
3021
+ # Update properties of this object
3022
+ def update!(**args)
3023
+ @location = args[:location] if args.key?(:location)
3024
+ @state = args[:state] if args.key?(:state)
3025
+ end
3026
+ end
3027
+
2333
3028
  # This resource represents a long-running operation that is the result of a
2334
3029
  # network API call.
2335
3030
  class Operation
@@ -2527,14 +3222,14 @@ module Google
2527
3222
  # @return [String]
2528
3223
  attr_accessor :create_time
2529
3224
 
2530
- # CustomInterceptProfile defines the Packet Intercept Endpoint Group used to
2531
- # intercept traffic to a third-party firewall in a Firewall rule.
3225
+ # CustomInterceptProfile defines in-band integration behavior (intercept). It is
3226
+ # used by firewall rules with an APPLY_SECURITY_PROFILE_GROUP action.
2532
3227
  # Corresponds to the JSON property `customInterceptProfile`
2533
3228
  # @return [Google::Apis::NetworksecurityV1::CustomInterceptProfile]
2534
3229
  attr_accessor :custom_intercept_profile
2535
3230
 
2536
- # CustomMirroringProfile defines an action for mirroring traffic to a collector'
2537
- # s EndpointGroup
3231
+ # CustomMirroringProfile defines out-of-band integration behavior (mirroring).
3232
+ # It is used by mirroring rules with a MIRROR action.
2538
3233
  # Corresponds to the JSON property `customMirroringProfile`
2539
3234
  # @return [Google::Apis::NetworksecurityV1::CustomMirroringProfile]
2540
3235
  attr_accessor :custom_mirroring_profile
@@ -2620,6 +3315,12 @@ module Google
2620
3315
  # @return [String]
2621
3316
  attr_accessor :custom_mirroring_profile
2622
3317
 
3318
+ # Output only. Identifier used by the data-path. Unique within `container,
3319
+ # location`.
3320
+ # Corresponds to the JSON property `dataPathId`
3321
+ # @return [Fixnum]
3322
+ attr_accessor :data_path_id
3323
+
2623
3324
  # Optional. An optional description of the profile group. Max length 2048
2624
3325
  # characters.
2625
3326
  # Corresponds to the JSON property `description`
@@ -2665,6 +3366,7 @@ module Google
2665
3366
  @create_time = args[:create_time] if args.key?(:create_time)
2666
3367
  @custom_intercept_profile = args[:custom_intercept_profile] if args.key?(:custom_intercept_profile)
2667
3368
  @custom_mirroring_profile = args[:custom_mirroring_profile] if args.key?(:custom_mirroring_profile)
3369
+ @data_path_id = args[:data_path_id] if args.key?(:data_path_id)
2668
3370
  @description = args[:description] if args.key?(:description)
2669
3371
  @etag = args[:etag] if args.key?(:etag)
2670
3372
  @labels = args[:labels] if args.key?(:labels)
@@ -2888,6 +3590,11 @@ module Google
2888
3590
  class ThreatPreventionProfile
2889
3591
  include Google::Apis::Core::Hashable
2890
3592
 
3593
+ # Optional. Configuration for overriding antivirus actions per protocol.
3594
+ # Corresponds to the JSON property `antivirusOverrides`
3595
+ # @return [Array<Google::Apis::NetworksecurityV1::AntivirusOverride>]
3596
+ attr_accessor :antivirus_overrides
3597
+
2891
3598
  # Optional. Configuration for overriding threats actions by severity match.
2892
3599
  # Corresponds to the JSON property `severityOverrides`
2893
3600
  # @return [Array<Google::Apis::NetworksecurityV1::SeverityOverride>]
@@ -2906,6 +3613,7 @@ module Google
2906
3613
 
2907
3614
  # Update properties of this object
2908
3615
  def update!(**args)
3616
+ @antivirus_overrides = args[:antivirus_overrides] if args.key?(:antivirus_overrides)
2909
3617
  @severity_overrides = args[:severity_overrides] if args.key?(:severity_overrides)
2910
3618
  @threat_overrides = args[:threat_overrides] if args.key?(:threat_overrides)
2911
3619
  end