pulumi-gcp 8.17.0a1738274430__py3-none-any.whl → 8.18.0a1738391833__py3-none-any.whl

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.
Files changed (83) hide show
  1. pulumi_gcp/__init__.py +91 -0
  2. pulumi_gcp/alloydb/cluster.py +75 -7
  3. pulumi_gcp/apigee/_inputs.py +91 -0
  4. pulumi_gcp/apigee/endpoint_attachment.py +0 -64
  5. pulumi_gcp/apigee/environment.py +54 -0
  6. pulumi_gcp/apigee/outputs.py +54 -0
  7. pulumi_gcp/apihub/__init__.py +10 -0
  8. pulumi_gcp/apihub/_inputs.py +154 -0
  9. pulumi_gcp/apihub/api_hub_instance.py +784 -0
  10. pulumi_gcp/apihub/outputs.py +124 -0
  11. pulumi_gcp/chronicle/__init__.py +1 -0
  12. pulumi_gcp/chronicle/_inputs.py +124 -0
  13. pulumi_gcp/chronicle/outputs.py +112 -0
  14. pulumi_gcp/chronicle/retrohunt.py +645 -0
  15. pulumi_gcp/cloudrunv2/_inputs.py +197 -0
  16. pulumi_gcp/cloudrunv2/get_service.py +12 -1
  17. pulumi_gcp/cloudrunv2/outputs.py +256 -0
  18. pulumi_gcp/cloudrunv2/service.py +159 -0
  19. pulumi_gcp/colab/__init__.py +5 -0
  20. pulumi_gcp/colab/_inputs.py +131 -0
  21. pulumi_gcp/colab/get_runtime_template_iam_policy.py +182 -0
  22. pulumi_gcp/colab/outputs.py +92 -0
  23. pulumi_gcp/colab/runtime.py +696 -0
  24. pulumi_gcp/colab/runtime_template_iam_binding.py +828 -0
  25. pulumi_gcp/colab/runtime_template_iam_member.py +828 -0
  26. pulumi_gcp/colab/runtime_template_iam_policy.py +667 -0
  27. pulumi_gcp/compute/__init__.py +4 -0
  28. pulumi_gcp/compute/_inputs.py +526 -0
  29. pulumi_gcp/compute/firewall_policy_rule.py +104 -22
  30. pulumi_gcp/compute/firewall_policy_with_rules.py +114 -42
  31. pulumi_gcp/compute/get_instance_template_iam_policy.py +159 -0
  32. pulumi_gcp/compute/instance_template_iam_binding.py +998 -0
  33. pulumi_gcp/compute/instance_template_iam_member.py +998 -0
  34. pulumi_gcp/compute/instance_template_iam_policy.py +817 -0
  35. pulumi_gcp/compute/interconnect_attachment.py +189 -2
  36. pulumi_gcp/compute/network_firewall_policy_rule.py +122 -10
  37. pulumi_gcp/compute/network_firewall_policy_with_rules.py +116 -44
  38. pulumi_gcp/compute/outputs.py +352 -0
  39. pulumi_gcp/compute/project_metadata_item.py +12 -0
  40. pulumi_gcp/compute/public_advertised_prefix.py +87 -0
  41. pulumi_gcp/compute/region_network_firewall_policy_rule.py +130 -10
  42. pulumi_gcp/compute/region_network_firewall_policy_with_rules.py +104 -32
  43. pulumi_gcp/compute/router_peer.py +115 -3
  44. pulumi_gcp/config/__init__.pyi +2 -0
  45. pulumi_gcp/config/vars.py +4 -0
  46. pulumi_gcp/filestore/get_instance.py +12 -1
  47. pulumi_gcp/filestore/instance.py +75 -0
  48. pulumi_gcp/gemini/code_repository_index.py +29 -33
  49. pulumi_gcp/gemini/get_repository_group_iam_policy.py +28 -2
  50. pulumi_gcp/gemini/repository_group.py +76 -26
  51. pulumi_gcp/gemini/repository_group_iam_binding.py +258 -0
  52. pulumi_gcp/gemini/repository_group_iam_member.py +258 -0
  53. pulumi_gcp/gemini/repository_group_iam_policy.py +258 -0
  54. pulumi_gcp/kms/__init__.py +1 -0
  55. pulumi_gcp/kms/get_key_handles.py +172 -0
  56. pulumi_gcp/kms/outputs.py +45 -0
  57. pulumi_gcp/networksecurity/_inputs.py +72 -0
  58. pulumi_gcp/networksecurity/outputs.py +76 -0
  59. pulumi_gcp/networksecurity/security_profile.py +233 -7
  60. pulumi_gcp/networksecurity/security_profile_group.py +218 -0
  61. pulumi_gcp/organizations/__init__.py +1 -0
  62. pulumi_gcp/organizations/get_s.py +128 -0
  63. pulumi_gcp/organizations/outputs.py +63 -0
  64. pulumi_gcp/parametermanager/__init__.py +3 -0
  65. pulumi_gcp/parametermanager/get_parameter.py +211 -0
  66. pulumi_gcp/parametermanager/get_regional_parameters.py +157 -0
  67. pulumi_gcp/parametermanager/outputs.py +210 -0
  68. pulumi_gcp/parametermanager/parameter_version.py +496 -0
  69. pulumi_gcp/parametermanager/regional_parameter_version.py +10 -38
  70. pulumi_gcp/provider.py +20 -0
  71. pulumi_gcp/pubsub/_inputs.py +213 -1
  72. pulumi_gcp/pubsub/outputs.py +278 -2
  73. pulumi_gcp/pubsub/topic.py +42 -0
  74. pulumi_gcp/pulumi-plugin.json +1 -1
  75. pulumi_gcp/redis/__init__.py +1 -0
  76. pulumi_gcp/redis/_inputs.py +342 -6
  77. pulumi_gcp/redis/cluster.py +223 -102
  78. pulumi_gcp/redis/cluster_user_created_connections.py +845 -0
  79. pulumi_gcp/redis/outputs.py +268 -4
  80. {pulumi_gcp-8.17.0a1738274430.dist-info → pulumi_gcp-8.18.0a1738391833.dist-info}/METADATA +1 -1
  81. {pulumi_gcp-8.17.0a1738274430.dist-info → pulumi_gcp-8.18.0a1738391833.dist-info}/RECORD +83 -63
  82. {pulumi_gcp-8.17.0a1738274430.dist-info → pulumi_gcp-8.18.0a1738391833.dist-info}/WHEEL +0 -0
  83. {pulumi_gcp-8.17.0a1738274430.dist-info → pulumi_gcp-8.18.0a1738391833.dist-info}/top_level.txt +0 -0
@@ -55,6 +55,8 @@ __all__ = [
55
55
  'InterceptEndpointGroupAssociationLocationsDetail',
56
56
  'MirroringDeploymentGroupConnectedEndpointGroup',
57
57
  'MirroringEndpointGroupAssociationLocationsDetail',
58
+ 'SecurityProfileCustomInterceptProfile',
59
+ 'SecurityProfileCustomMirroringProfile',
58
60
  'SecurityProfileThreatPreventionProfile',
59
61
  'SecurityProfileThreatPreventionProfileSeverityOverride',
60
62
  'SecurityProfileThreatPreventionProfileThreatOverride',
@@ -2065,6 +2067,80 @@ class MirroringEndpointGroupAssociationLocationsDetail(dict):
2065
2067
  return pulumi.get(self, "state")
2066
2068
 
2067
2069
 
2070
+ @pulumi.output_type
2071
+ class SecurityProfileCustomInterceptProfile(dict):
2072
+ @staticmethod
2073
+ def __key_warning(key: str):
2074
+ suggest = None
2075
+ if key == "interceptEndpointGroup":
2076
+ suggest = "intercept_endpoint_group"
2077
+
2078
+ if suggest:
2079
+ pulumi.log.warn(f"Key '{key}' not found in SecurityProfileCustomInterceptProfile. Access the value via the '{suggest}' property getter instead.")
2080
+
2081
+ def __getitem__(self, key: str) -> Any:
2082
+ SecurityProfileCustomInterceptProfile.__key_warning(key)
2083
+ return super().__getitem__(key)
2084
+
2085
+ def get(self, key: str, default = None) -> Any:
2086
+ SecurityProfileCustomInterceptProfile.__key_warning(key)
2087
+ return super().get(key, default)
2088
+
2089
+ def __init__(__self__, *,
2090
+ intercept_endpoint_group: str):
2091
+ """
2092
+ :param str intercept_endpoint_group: The Intercept Endpoint Group to which matching traffic should be intercepted.
2093
+ Format: projects/{project_id}/locations/global/interceptEndpointGroups/{endpoint_group_id}
2094
+ """
2095
+ pulumi.set(__self__, "intercept_endpoint_group", intercept_endpoint_group)
2096
+
2097
+ @property
2098
+ @pulumi.getter(name="interceptEndpointGroup")
2099
+ def intercept_endpoint_group(self) -> str:
2100
+ """
2101
+ The Intercept Endpoint Group to which matching traffic should be intercepted.
2102
+ Format: projects/{project_id}/locations/global/interceptEndpointGroups/{endpoint_group_id}
2103
+ """
2104
+ return pulumi.get(self, "intercept_endpoint_group")
2105
+
2106
+
2107
+ @pulumi.output_type
2108
+ class SecurityProfileCustomMirroringProfile(dict):
2109
+ @staticmethod
2110
+ def __key_warning(key: str):
2111
+ suggest = None
2112
+ if key == "mirroringEndpointGroup":
2113
+ suggest = "mirroring_endpoint_group"
2114
+
2115
+ if suggest:
2116
+ pulumi.log.warn(f"Key '{key}' not found in SecurityProfileCustomMirroringProfile. Access the value via the '{suggest}' property getter instead.")
2117
+
2118
+ def __getitem__(self, key: str) -> Any:
2119
+ SecurityProfileCustomMirroringProfile.__key_warning(key)
2120
+ return super().__getitem__(key)
2121
+
2122
+ def get(self, key: str, default = None) -> Any:
2123
+ SecurityProfileCustomMirroringProfile.__key_warning(key)
2124
+ return super().get(key, default)
2125
+
2126
+ def __init__(__self__, *,
2127
+ mirroring_endpoint_group: str):
2128
+ """
2129
+ :param str mirroring_endpoint_group: The Mirroring Endpoint Group to which matching traffic should be mirrored.
2130
+ Format: projects/{project_id}/locations/global/mirroringEndpointGroups/{endpoint_group_id}
2131
+ """
2132
+ pulumi.set(__self__, "mirroring_endpoint_group", mirroring_endpoint_group)
2133
+
2134
+ @property
2135
+ @pulumi.getter(name="mirroringEndpointGroup")
2136
+ def mirroring_endpoint_group(self) -> str:
2137
+ """
2138
+ The Mirroring Endpoint Group to which matching traffic should be mirrored.
2139
+ Format: projects/{project_id}/locations/global/mirroringEndpointGroups/{endpoint_group_id}
2140
+ """
2141
+ return pulumi.get(self, "mirroring_endpoint_group")
2142
+
2143
+
2068
2144
  @pulumi.output_type
2069
2145
  class SecurityProfileThreatPreventionProfile(dict):
2070
2146
  @staticmethod
@@ -22,6 +22,8 @@ __all__ = ['SecurityProfileArgs', 'SecurityProfile']
22
22
  class SecurityProfileArgs:
23
23
  def __init__(__self__, *,
24
24
  type: pulumi.Input[str],
25
+ custom_intercept_profile: Optional[pulumi.Input['SecurityProfileCustomInterceptProfileArgs']] = None,
26
+ custom_mirroring_profile: Optional[pulumi.Input['SecurityProfileCustomMirroringProfileArgs']] = None,
25
27
  description: Optional[pulumi.Input[str]] = None,
26
28
  labels: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None,
27
29
  location: Optional[pulumi.Input[str]] = None,
@@ -31,7 +33,13 @@ class SecurityProfileArgs:
31
33
  """
32
34
  The set of arguments for constructing a SecurityProfile resource.
33
35
  :param pulumi.Input[str] type: The type of security profile.
34
- Possible values are: `THREAT_PREVENTION`.
36
+ Possible values are: `THREAT_PREVENTION`, `CUSTOM_MIRRORING`, `CUSTOM_INTERCEPT`.
37
+ :param pulumi.Input['SecurityProfileCustomInterceptProfileArgs'] custom_intercept_profile: The configuration for defining the Intercept Endpoint Group used to
38
+ intercept traffic to third-party firewall appliances.
39
+ Structure is documented below.
40
+ :param pulumi.Input['SecurityProfileCustomMirroringProfileArgs'] custom_mirroring_profile: The configuration for defining the Mirroring Endpoint Group used to
41
+ mirror traffic to third-party collectors.
42
+ Structure is documented below.
35
43
  :param pulumi.Input[str] description: An optional description of the security profile. The Max length is 512 characters.
36
44
  :param pulumi.Input[Mapping[str, pulumi.Input[str]]] labels: A map of key/value label pairs to assign to the resource.
37
45
 
@@ -49,6 +57,10 @@ class SecurityProfileArgs:
49
57
  Structure is documented below.
50
58
  """
51
59
  pulumi.set(__self__, "type", type)
60
+ if custom_intercept_profile is not None:
61
+ pulumi.set(__self__, "custom_intercept_profile", custom_intercept_profile)
62
+ if custom_mirroring_profile is not None:
63
+ pulumi.set(__self__, "custom_mirroring_profile", custom_mirroring_profile)
52
64
  if description is not None:
53
65
  pulumi.set(__self__, "description", description)
54
66
  if labels is not None:
@@ -67,7 +79,7 @@ class SecurityProfileArgs:
67
79
  def type(self) -> pulumi.Input[str]:
68
80
  """
69
81
  The type of security profile.
70
- Possible values are: `THREAT_PREVENTION`.
82
+ Possible values are: `THREAT_PREVENTION`, `CUSTOM_MIRRORING`, `CUSTOM_INTERCEPT`.
71
83
  """
72
84
  return pulumi.get(self, "type")
73
85
 
@@ -75,6 +87,34 @@ class SecurityProfileArgs:
75
87
  def type(self, value: pulumi.Input[str]):
76
88
  pulumi.set(self, "type", value)
77
89
 
90
+ @property
91
+ @pulumi.getter(name="customInterceptProfile")
92
+ def custom_intercept_profile(self) -> Optional[pulumi.Input['SecurityProfileCustomInterceptProfileArgs']]:
93
+ """
94
+ The configuration for defining the Intercept Endpoint Group used to
95
+ intercept traffic to third-party firewall appliances.
96
+ Structure is documented below.
97
+ """
98
+ return pulumi.get(self, "custom_intercept_profile")
99
+
100
+ @custom_intercept_profile.setter
101
+ def custom_intercept_profile(self, value: Optional[pulumi.Input['SecurityProfileCustomInterceptProfileArgs']]):
102
+ pulumi.set(self, "custom_intercept_profile", value)
103
+
104
+ @property
105
+ @pulumi.getter(name="customMirroringProfile")
106
+ def custom_mirroring_profile(self) -> Optional[pulumi.Input['SecurityProfileCustomMirroringProfileArgs']]:
107
+ """
108
+ The configuration for defining the Mirroring Endpoint Group used to
109
+ mirror traffic to third-party collectors.
110
+ Structure is documented below.
111
+ """
112
+ return pulumi.get(self, "custom_mirroring_profile")
113
+
114
+ @custom_mirroring_profile.setter
115
+ def custom_mirroring_profile(self, value: Optional[pulumi.Input['SecurityProfileCustomMirroringProfileArgs']]):
116
+ pulumi.set(self, "custom_mirroring_profile", value)
117
+
78
118
  @property
79
119
  @pulumi.getter
80
120
  def description(self) -> Optional[pulumi.Input[str]]:
@@ -161,6 +201,8 @@ class SecurityProfileArgs:
161
201
  class _SecurityProfileState:
162
202
  def __init__(__self__, *,
163
203
  create_time: Optional[pulumi.Input[str]] = None,
204
+ custom_intercept_profile: Optional[pulumi.Input['SecurityProfileCustomInterceptProfileArgs']] = None,
205
+ custom_mirroring_profile: Optional[pulumi.Input['SecurityProfileCustomMirroringProfileArgs']] = None,
164
206
  description: Optional[pulumi.Input[str]] = None,
165
207
  effective_labels: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None,
166
208
  etag: Optional[pulumi.Input[str]] = None,
@@ -176,6 +218,12 @@ class _SecurityProfileState:
176
218
  """
177
219
  Input properties used for looking up and filtering SecurityProfile resources.
178
220
  :param pulumi.Input[str] create_time: Time the security profile was created in UTC.
221
+ :param pulumi.Input['SecurityProfileCustomInterceptProfileArgs'] custom_intercept_profile: The configuration for defining the Intercept Endpoint Group used to
222
+ intercept traffic to third-party firewall appliances.
223
+ Structure is documented below.
224
+ :param pulumi.Input['SecurityProfileCustomMirroringProfileArgs'] custom_mirroring_profile: The configuration for defining the Mirroring Endpoint Group used to
225
+ mirror traffic to third-party collectors.
226
+ Structure is documented below.
179
227
  :param pulumi.Input[str] description: An optional description of the security profile. The Max length is 512 characters.
180
228
  :param pulumi.Input[Mapping[str, pulumi.Input[str]]] effective_labels: All of labels (key/value pairs) present on the resource in GCP, including the labels configured through Pulumi, other clients and services.
181
229
  :param pulumi.Input[str] etag: This checksum is computed by the server based on the value of other fields,
@@ -199,11 +247,15 @@ class _SecurityProfileState:
199
247
  :param pulumi.Input['SecurityProfileThreatPreventionProfileArgs'] threat_prevention_profile: The threat prevention configuration for the security profile.
200
248
  Structure is documented below.
201
249
  :param pulumi.Input[str] type: The type of security profile.
202
- Possible values are: `THREAT_PREVENTION`.
250
+ Possible values are: `THREAT_PREVENTION`, `CUSTOM_MIRRORING`, `CUSTOM_INTERCEPT`.
203
251
  :param pulumi.Input[str] update_time: Time the security profile was updated in UTC.
204
252
  """
205
253
  if create_time is not None:
206
254
  pulumi.set(__self__, "create_time", create_time)
255
+ if custom_intercept_profile is not None:
256
+ pulumi.set(__self__, "custom_intercept_profile", custom_intercept_profile)
257
+ if custom_mirroring_profile is not None:
258
+ pulumi.set(__self__, "custom_mirroring_profile", custom_mirroring_profile)
207
259
  if description is not None:
208
260
  pulumi.set(__self__, "description", description)
209
261
  if effective_labels is not None:
@@ -241,6 +293,34 @@ class _SecurityProfileState:
241
293
  def create_time(self, value: Optional[pulumi.Input[str]]):
242
294
  pulumi.set(self, "create_time", value)
243
295
 
296
+ @property
297
+ @pulumi.getter(name="customInterceptProfile")
298
+ def custom_intercept_profile(self) -> Optional[pulumi.Input['SecurityProfileCustomInterceptProfileArgs']]:
299
+ """
300
+ The configuration for defining the Intercept Endpoint Group used to
301
+ intercept traffic to third-party firewall appliances.
302
+ Structure is documented below.
303
+ """
304
+ return pulumi.get(self, "custom_intercept_profile")
305
+
306
+ @custom_intercept_profile.setter
307
+ def custom_intercept_profile(self, value: Optional[pulumi.Input['SecurityProfileCustomInterceptProfileArgs']]):
308
+ pulumi.set(self, "custom_intercept_profile", value)
309
+
310
+ @property
311
+ @pulumi.getter(name="customMirroringProfile")
312
+ def custom_mirroring_profile(self) -> Optional[pulumi.Input['SecurityProfileCustomMirroringProfileArgs']]:
313
+ """
314
+ The configuration for defining the Mirroring Endpoint Group used to
315
+ mirror traffic to third-party collectors.
316
+ Structure is documented below.
317
+ """
318
+ return pulumi.get(self, "custom_mirroring_profile")
319
+
320
+ @custom_mirroring_profile.setter
321
+ def custom_mirroring_profile(self, value: Optional[pulumi.Input['SecurityProfileCustomMirroringProfileArgs']]):
322
+ pulumi.set(self, "custom_mirroring_profile", value)
323
+
244
324
  @property
245
325
  @pulumi.getter
246
326
  def description(self) -> Optional[pulumi.Input[str]]:
@@ -378,7 +458,7 @@ class _SecurityProfileState:
378
458
  def type(self) -> Optional[pulumi.Input[str]]:
379
459
  """
380
460
  The type of security profile.
381
- Possible values are: `THREAT_PREVENTION`.
461
+ Possible values are: `THREAT_PREVENTION`, `CUSTOM_MIRRORING`, `CUSTOM_INTERCEPT`.
382
462
  """
383
463
  return pulumi.get(self, "type")
384
464
 
@@ -404,6 +484,8 @@ class SecurityProfile(pulumi.CustomResource):
404
484
  def __init__(__self__,
405
485
  resource_name: str,
406
486
  opts: Optional[pulumi.ResourceOptions] = None,
487
+ custom_intercept_profile: Optional[pulumi.Input[Union['SecurityProfileCustomInterceptProfileArgs', 'SecurityProfileCustomInterceptProfileArgsDict']]] = None,
488
+ custom_mirroring_profile: Optional[pulumi.Input[Union['SecurityProfileCustomMirroringProfileArgs', 'SecurityProfileCustomMirroringProfileArgsDict']]] = None,
407
489
  description: Optional[pulumi.Input[str]] = None,
408
490
  labels: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None,
409
491
  location: Optional[pulumi.Input[str]] = None,
@@ -466,6 +548,58 @@ class SecurityProfile(pulumi.CustomResource):
466
548
  }],
467
549
  })
468
550
  ```
551
+ ### Network Security Security Profile Mirroring
552
+
553
+ ```python
554
+ import pulumi
555
+ import pulumi_gcp as gcp
556
+
557
+ default = gcp.compute.Network("default",
558
+ name="my-network",
559
+ auto_create_subnetworks=False)
560
+ default_mirroring_deployment_group = gcp.networksecurity.MirroringDeploymentGroup("default",
561
+ mirroring_deployment_group_id="my-dg",
562
+ location="global",
563
+ network=default.id)
564
+ default_mirroring_endpoint_group = gcp.networksecurity.MirroringEndpointGroup("default",
565
+ mirroring_endpoint_group_id="my-eg",
566
+ location="global",
567
+ mirroring_deployment_group=default_mirroring_deployment_group.id)
568
+ default_security_profile = gcp.networksecurity.SecurityProfile("default",
569
+ name="my-security-profile",
570
+ parent="organizations/123456789",
571
+ description="my description",
572
+ type="CUSTOM_MIRRORING",
573
+ custom_mirroring_profile={
574
+ "mirroring_endpoint_group": default_mirroring_endpoint_group.id,
575
+ })
576
+ ```
577
+ ### Network Security Security Profile Intercept
578
+
579
+ ```python
580
+ import pulumi
581
+ import pulumi_gcp as gcp
582
+
583
+ default = gcp.compute.Network("default",
584
+ name="my-network",
585
+ auto_create_subnetworks=False)
586
+ default_intercept_deployment_group = gcp.networksecurity.InterceptDeploymentGroup("default",
587
+ intercept_deployment_group_id="my-dg",
588
+ location="global",
589
+ network=default.id)
590
+ default_intercept_endpoint_group = gcp.networksecurity.InterceptEndpointGroup("default",
591
+ intercept_endpoint_group_id="my-eg",
592
+ location="global",
593
+ intercept_deployment_group=default_intercept_deployment_group.id)
594
+ default_security_profile = gcp.networksecurity.SecurityProfile("default",
595
+ name="my-security-profile",
596
+ parent="organizations/123456789",
597
+ description="my description",
598
+ type="CUSTOM_INTERCEPT",
599
+ custom_intercept_profile={
600
+ "intercept_endpoint_group": default_intercept_endpoint_group.id,
601
+ })
602
+ ```
469
603
 
470
604
  ## Import
471
605
 
@@ -481,6 +615,12 @@ class SecurityProfile(pulumi.CustomResource):
481
615
 
482
616
  :param str resource_name: The name of the resource.
483
617
  :param pulumi.ResourceOptions opts: Options for the resource.
618
+ :param pulumi.Input[Union['SecurityProfileCustomInterceptProfileArgs', 'SecurityProfileCustomInterceptProfileArgsDict']] custom_intercept_profile: The configuration for defining the Intercept Endpoint Group used to
619
+ intercept traffic to third-party firewall appliances.
620
+ Structure is documented below.
621
+ :param pulumi.Input[Union['SecurityProfileCustomMirroringProfileArgs', 'SecurityProfileCustomMirroringProfileArgsDict']] custom_mirroring_profile: The configuration for defining the Mirroring Endpoint Group used to
622
+ mirror traffic to third-party collectors.
623
+ Structure is documented below.
484
624
  :param pulumi.Input[str] description: An optional description of the security profile. The Max length is 512 characters.
485
625
  :param pulumi.Input[Mapping[str, pulumi.Input[str]]] labels: A map of key/value label pairs to assign to the resource.
486
626
 
@@ -497,7 +637,7 @@ class SecurityProfile(pulumi.CustomResource):
497
637
  :param pulumi.Input[Union['SecurityProfileThreatPreventionProfileArgs', 'SecurityProfileThreatPreventionProfileArgsDict']] threat_prevention_profile: The threat prevention configuration for the security profile.
498
638
  Structure is documented below.
499
639
  :param pulumi.Input[str] type: The type of security profile.
500
- Possible values are: `THREAT_PREVENTION`.
640
+ Possible values are: `THREAT_PREVENTION`, `CUSTOM_MIRRORING`, `CUSTOM_INTERCEPT`.
501
641
  """
502
642
  ...
503
643
  @overload
@@ -559,6 +699,58 @@ class SecurityProfile(pulumi.CustomResource):
559
699
  }],
560
700
  })
561
701
  ```
702
+ ### Network Security Security Profile Mirroring
703
+
704
+ ```python
705
+ import pulumi
706
+ import pulumi_gcp as gcp
707
+
708
+ default = gcp.compute.Network("default",
709
+ name="my-network",
710
+ auto_create_subnetworks=False)
711
+ default_mirroring_deployment_group = gcp.networksecurity.MirroringDeploymentGroup("default",
712
+ mirroring_deployment_group_id="my-dg",
713
+ location="global",
714
+ network=default.id)
715
+ default_mirroring_endpoint_group = gcp.networksecurity.MirroringEndpointGroup("default",
716
+ mirroring_endpoint_group_id="my-eg",
717
+ location="global",
718
+ mirroring_deployment_group=default_mirroring_deployment_group.id)
719
+ default_security_profile = gcp.networksecurity.SecurityProfile("default",
720
+ name="my-security-profile",
721
+ parent="organizations/123456789",
722
+ description="my description",
723
+ type="CUSTOM_MIRRORING",
724
+ custom_mirroring_profile={
725
+ "mirroring_endpoint_group": default_mirroring_endpoint_group.id,
726
+ })
727
+ ```
728
+ ### Network Security Security Profile Intercept
729
+
730
+ ```python
731
+ import pulumi
732
+ import pulumi_gcp as gcp
733
+
734
+ default = gcp.compute.Network("default",
735
+ name="my-network",
736
+ auto_create_subnetworks=False)
737
+ default_intercept_deployment_group = gcp.networksecurity.InterceptDeploymentGroup("default",
738
+ intercept_deployment_group_id="my-dg",
739
+ location="global",
740
+ network=default.id)
741
+ default_intercept_endpoint_group = gcp.networksecurity.InterceptEndpointGroup("default",
742
+ intercept_endpoint_group_id="my-eg",
743
+ location="global",
744
+ intercept_deployment_group=default_intercept_deployment_group.id)
745
+ default_security_profile = gcp.networksecurity.SecurityProfile("default",
746
+ name="my-security-profile",
747
+ parent="organizations/123456789",
748
+ description="my description",
749
+ type="CUSTOM_INTERCEPT",
750
+ custom_intercept_profile={
751
+ "intercept_endpoint_group": default_intercept_endpoint_group.id,
752
+ })
753
+ ```
562
754
 
563
755
  ## Import
564
756
 
@@ -587,6 +779,8 @@ class SecurityProfile(pulumi.CustomResource):
587
779
  def _internal_init(__self__,
588
780
  resource_name: str,
589
781
  opts: Optional[pulumi.ResourceOptions] = None,
782
+ custom_intercept_profile: Optional[pulumi.Input[Union['SecurityProfileCustomInterceptProfileArgs', 'SecurityProfileCustomInterceptProfileArgsDict']]] = None,
783
+ custom_mirroring_profile: Optional[pulumi.Input[Union['SecurityProfileCustomMirroringProfileArgs', 'SecurityProfileCustomMirroringProfileArgsDict']]] = None,
590
784
  description: Optional[pulumi.Input[str]] = None,
591
785
  labels: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None,
592
786
  location: Optional[pulumi.Input[str]] = None,
@@ -603,6 +797,8 @@ class SecurityProfile(pulumi.CustomResource):
603
797
  raise TypeError('__props__ is only valid when passed in combination with a valid opts.id to get an existing resource')
604
798
  __props__ = SecurityProfileArgs.__new__(SecurityProfileArgs)
605
799
 
800
+ __props__.__dict__["custom_intercept_profile"] = custom_intercept_profile
801
+ __props__.__dict__["custom_mirroring_profile"] = custom_mirroring_profile
606
802
  __props__.__dict__["description"] = description
607
803
  __props__.__dict__["labels"] = labels
608
804
  __props__.__dict__["location"] = location
@@ -631,6 +827,8 @@ class SecurityProfile(pulumi.CustomResource):
631
827
  id: pulumi.Input[str],
632
828
  opts: Optional[pulumi.ResourceOptions] = None,
633
829
  create_time: Optional[pulumi.Input[str]] = None,
830
+ custom_intercept_profile: Optional[pulumi.Input[Union['SecurityProfileCustomInterceptProfileArgs', 'SecurityProfileCustomInterceptProfileArgsDict']]] = None,
831
+ custom_mirroring_profile: Optional[pulumi.Input[Union['SecurityProfileCustomMirroringProfileArgs', 'SecurityProfileCustomMirroringProfileArgsDict']]] = None,
634
832
  description: Optional[pulumi.Input[str]] = None,
635
833
  effective_labels: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None,
636
834
  etag: Optional[pulumi.Input[str]] = None,
@@ -651,6 +849,12 @@ class SecurityProfile(pulumi.CustomResource):
651
849
  :param pulumi.Input[str] id: The unique provider ID of the resource to lookup.
652
850
  :param pulumi.ResourceOptions opts: Options for the resource.
653
851
  :param pulumi.Input[str] create_time: Time the security profile was created in UTC.
852
+ :param pulumi.Input[Union['SecurityProfileCustomInterceptProfileArgs', 'SecurityProfileCustomInterceptProfileArgsDict']] custom_intercept_profile: The configuration for defining the Intercept Endpoint Group used to
853
+ intercept traffic to third-party firewall appliances.
854
+ Structure is documented below.
855
+ :param pulumi.Input[Union['SecurityProfileCustomMirroringProfileArgs', 'SecurityProfileCustomMirroringProfileArgsDict']] custom_mirroring_profile: The configuration for defining the Mirroring Endpoint Group used to
856
+ mirror traffic to third-party collectors.
857
+ Structure is documented below.
654
858
  :param pulumi.Input[str] description: An optional description of the security profile. The Max length is 512 characters.
655
859
  :param pulumi.Input[Mapping[str, pulumi.Input[str]]] effective_labels: All of labels (key/value pairs) present on the resource in GCP, including the labels configured through Pulumi, other clients and services.
656
860
  :param pulumi.Input[str] etag: This checksum is computed by the server based on the value of other fields,
@@ -674,7 +878,7 @@ class SecurityProfile(pulumi.CustomResource):
674
878
  :param pulumi.Input[Union['SecurityProfileThreatPreventionProfileArgs', 'SecurityProfileThreatPreventionProfileArgsDict']] threat_prevention_profile: The threat prevention configuration for the security profile.
675
879
  Structure is documented below.
676
880
  :param pulumi.Input[str] type: The type of security profile.
677
- Possible values are: `THREAT_PREVENTION`.
881
+ Possible values are: `THREAT_PREVENTION`, `CUSTOM_MIRRORING`, `CUSTOM_INTERCEPT`.
678
882
  :param pulumi.Input[str] update_time: Time the security profile was updated in UTC.
679
883
  """
680
884
  opts = pulumi.ResourceOptions.merge(opts, pulumi.ResourceOptions(id=id))
@@ -682,6 +886,8 @@ class SecurityProfile(pulumi.CustomResource):
682
886
  __props__ = _SecurityProfileState.__new__(_SecurityProfileState)
683
887
 
684
888
  __props__.__dict__["create_time"] = create_time
889
+ __props__.__dict__["custom_intercept_profile"] = custom_intercept_profile
890
+ __props__.__dict__["custom_mirroring_profile"] = custom_mirroring_profile
685
891
  __props__.__dict__["description"] = description
686
892
  __props__.__dict__["effective_labels"] = effective_labels
687
893
  __props__.__dict__["etag"] = etag
@@ -704,6 +910,26 @@ class SecurityProfile(pulumi.CustomResource):
704
910
  """
705
911
  return pulumi.get(self, "create_time")
706
912
 
913
+ @property
914
+ @pulumi.getter(name="customInterceptProfile")
915
+ def custom_intercept_profile(self) -> pulumi.Output[Optional['outputs.SecurityProfileCustomInterceptProfile']]:
916
+ """
917
+ The configuration for defining the Intercept Endpoint Group used to
918
+ intercept traffic to third-party firewall appliances.
919
+ Structure is documented below.
920
+ """
921
+ return pulumi.get(self, "custom_intercept_profile")
922
+
923
+ @property
924
+ @pulumi.getter(name="customMirroringProfile")
925
+ def custom_mirroring_profile(self) -> pulumi.Output[Optional['outputs.SecurityProfileCustomMirroringProfile']]:
926
+ """
927
+ The configuration for defining the Mirroring Endpoint Group used to
928
+ mirror traffic to third-party collectors.
929
+ Structure is documented below.
930
+ """
931
+ return pulumi.get(self, "custom_mirroring_profile")
932
+
707
933
  @property
708
934
  @pulumi.getter
709
935
  def description(self) -> pulumi.Output[Optional[str]]:
@@ -801,7 +1027,7 @@ class SecurityProfile(pulumi.CustomResource):
801
1027
  def type(self) -> pulumi.Output[str]:
802
1028
  """
803
1029
  The type of security profile.
804
- Possible values are: `THREAT_PREVENTION`.
1030
+ Possible values are: `THREAT_PREVENTION`, `CUSTOM_MIRRORING`, `CUSTOM_INTERCEPT`.
805
1031
  """
806
1032
  return pulumi.get(self, "type")
807
1033