pulumi-gcp 7.7.0a1705990280__py3-none-any.whl → 7.8.0a1706310284__py3-none-any.whl

Sign up to get free protection for your applications and to get access to all the features.
Files changed (49) hide show
  1. pulumi_gcp/__init__.py +56 -0
  2. pulumi_gcp/alloydb/cluster.py +26 -21
  3. pulumi_gcp/bigquery/_inputs.py +231 -0
  4. pulumi_gcp/bigquery/outputs.py +229 -0
  5. pulumi_gcp/bigquery/routine.py +256 -10
  6. pulumi_gcp/bigquery/table.py +47 -0
  7. pulumi_gcp/cloudbuildv2/repository.py +60 -53
  8. pulumi_gcp/cloudrunv2/_inputs.py +176 -4
  9. pulumi_gcp/cloudrunv2/outputs.py +256 -3
  10. pulumi_gcp/cloudrunv2/service.py +148 -0
  11. pulumi_gcp/composer/_inputs.py +24 -0
  12. pulumi_gcp/composer/outputs.py +34 -0
  13. pulumi_gcp/compute/_inputs.py +4 -2
  14. pulumi_gcp/compute/disk.py +14 -14
  15. pulumi_gcp/compute/outputs.py +4 -2
  16. pulumi_gcp/healthcare/fhir_store.py +56 -0
  17. pulumi_gcp/kms/crypto_key.py +2 -2
  18. pulumi_gcp/kms/crypto_key_iam_binding.py +2 -2
  19. pulumi_gcp/kms/crypto_key_iam_member.py +2 -2
  20. pulumi_gcp/kms/crypto_key_iam_policy.py +2 -2
  21. pulumi_gcp/kms/crypto_key_version.py +2 -2
  22. pulumi_gcp/kms/secret_ciphertext.py +2 -2
  23. pulumi_gcp/netapp/__init__.py +4 -0
  24. pulumi_gcp/netapp/_inputs.py +643 -0
  25. pulumi_gcp/netapp/backup_policy.py +829 -0
  26. pulumi_gcp/netapp/kmsconfig.py +2 -2
  27. pulumi_gcp/netapp/outputs.py +651 -0
  28. pulumi_gcp/netapp/volume.py +1467 -0
  29. pulumi_gcp/networksecurity/__init__.py +5 -0
  30. pulumi_gcp/networksecurity/_inputs.py +228 -0
  31. pulumi_gcp/networksecurity/address_group_iam_binding.py +324 -0
  32. pulumi_gcp/networksecurity/address_group_iam_member.py +324 -0
  33. pulumi_gcp/networksecurity/address_group_iam_policy.py +492 -0
  34. pulumi_gcp/networksecurity/get_address_group_iam_policy.py +144 -0
  35. pulumi_gcp/networksecurity/outputs.py +212 -0
  36. pulumi_gcp/networksecurity/security_profile.py +800 -0
  37. pulumi_gcp/networkservices/gateway.py +1 -1
  38. pulumi_gcp/organizations/get_folders.py +1 -1
  39. pulumi_gcp/orgpolicy/_inputs.py +12 -12
  40. pulumi_gcp/orgpolicy/outputs.py +12 -12
  41. pulumi_gcp/securesourcemanager/instance.py +4 -2
  42. pulumi_gcp/storage/insights_report_config.py +12 -10
  43. pulumi_gcp/vertex/__init__.py +1 -0
  44. pulumi_gcp/vertex/ai_feature_group_feature.py +767 -0
  45. pulumi_gcp/workstations/workstation_config.py +47 -0
  46. {pulumi_gcp-7.7.0a1705990280.dist-info → pulumi_gcp-7.8.0a1706310284.dist-info}/METADATA +1 -1
  47. {pulumi_gcp-7.7.0a1705990280.dist-info → pulumi_gcp-7.8.0a1706310284.dist-info}/RECORD +49 -39
  48. {pulumi_gcp-7.7.0a1705990280.dist-info → pulumi_gcp-7.8.0a1706310284.dist-info}/WHEEL +0 -0
  49. {pulumi_gcp-7.7.0a1705990280.dist-info → pulumi_gcp-7.8.0a1706310284.dist-info}/top_level.txt +0 -0
@@ -0,0 +1,800 @@
1
+ # coding=utf-8
2
+ # *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. ***
3
+ # *** Do not edit by hand unless you're certain you know what you are doing! ***
4
+
5
+ import copy
6
+ import warnings
7
+ import pulumi
8
+ import pulumi.runtime
9
+ from typing import Any, Mapping, Optional, Sequence, Union, overload
10
+ from .. import _utilities
11
+ from . import outputs
12
+ from ._inputs import *
13
+
14
+ __all__ = ['SecurityProfileArgs', 'SecurityProfile']
15
+
16
+ @pulumi.input_type
17
+ class SecurityProfileArgs:
18
+ def __init__(__self__, *,
19
+ type: pulumi.Input[str],
20
+ description: Optional[pulumi.Input[str]] = None,
21
+ labels: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None,
22
+ location: Optional[pulumi.Input[str]] = None,
23
+ name: Optional[pulumi.Input[str]] = None,
24
+ parent: Optional[pulumi.Input[str]] = None,
25
+ threat_prevention_profile: Optional[pulumi.Input['SecurityProfileThreatPreventionProfileArgs']] = None):
26
+ """
27
+ The set of arguments for constructing a SecurityProfile resource.
28
+ :param pulumi.Input[str] type: The type of security profile.
29
+ Possible values are: `THREAT_PREVENTION`.
30
+ :param pulumi.Input[str] description: An optional description of the security profile. The Max length is 512 characters.
31
+ :param pulumi.Input[Mapping[str, pulumi.Input[str]]] labels: A map of key/value label pairs to assign to the resource.
32
+
33
+ **Note**: This field is non-authoritative, and will only manage the labels present in your configuration.
34
+ Please refer to the field `effective_labels` for all of the labels present on the resource.
35
+ :param pulumi.Input[str] location: The location of the security profile.
36
+ The default value is `global`.
37
+ :param pulumi.Input[str] name: The name of the security profile resource.
38
+
39
+
40
+ - - -
41
+ :param pulumi.Input[str] parent: The name of the parent this security profile belongs to.
42
+ Format: organizations/{organization_id}.
43
+ :param pulumi.Input['SecurityProfileThreatPreventionProfileArgs'] threat_prevention_profile: The threat prevention configuration for the security profile.
44
+ Structure is documented below.
45
+ """
46
+ pulumi.set(__self__, "type", type)
47
+ if description is not None:
48
+ pulumi.set(__self__, "description", description)
49
+ if labels is not None:
50
+ pulumi.set(__self__, "labels", labels)
51
+ if location is not None:
52
+ pulumi.set(__self__, "location", location)
53
+ if name is not None:
54
+ pulumi.set(__self__, "name", name)
55
+ if parent is not None:
56
+ pulumi.set(__self__, "parent", parent)
57
+ if threat_prevention_profile is not None:
58
+ pulumi.set(__self__, "threat_prevention_profile", threat_prevention_profile)
59
+
60
+ @property
61
+ @pulumi.getter
62
+ def type(self) -> pulumi.Input[str]:
63
+ """
64
+ The type of security profile.
65
+ Possible values are: `THREAT_PREVENTION`.
66
+ """
67
+ return pulumi.get(self, "type")
68
+
69
+ @type.setter
70
+ def type(self, value: pulumi.Input[str]):
71
+ pulumi.set(self, "type", value)
72
+
73
+ @property
74
+ @pulumi.getter
75
+ def description(self) -> Optional[pulumi.Input[str]]:
76
+ """
77
+ An optional description of the security profile. The Max length is 512 characters.
78
+ """
79
+ return pulumi.get(self, "description")
80
+
81
+ @description.setter
82
+ def description(self, value: Optional[pulumi.Input[str]]):
83
+ pulumi.set(self, "description", value)
84
+
85
+ @property
86
+ @pulumi.getter
87
+ def labels(self) -> Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]]:
88
+ """
89
+ A map of key/value label pairs to assign to the resource.
90
+
91
+ **Note**: This field is non-authoritative, and will only manage the labels present in your configuration.
92
+ Please refer to the field `effective_labels` for all of the labels present on the resource.
93
+ """
94
+ return pulumi.get(self, "labels")
95
+
96
+ @labels.setter
97
+ def labels(self, value: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]]):
98
+ pulumi.set(self, "labels", value)
99
+
100
+ @property
101
+ @pulumi.getter
102
+ def location(self) -> Optional[pulumi.Input[str]]:
103
+ """
104
+ The location of the security profile.
105
+ The default value is `global`.
106
+ """
107
+ return pulumi.get(self, "location")
108
+
109
+ @location.setter
110
+ def location(self, value: Optional[pulumi.Input[str]]):
111
+ pulumi.set(self, "location", value)
112
+
113
+ @property
114
+ @pulumi.getter
115
+ def name(self) -> Optional[pulumi.Input[str]]:
116
+ """
117
+ The name of the security profile resource.
118
+
119
+
120
+ - - -
121
+ """
122
+ return pulumi.get(self, "name")
123
+
124
+ @name.setter
125
+ def name(self, value: Optional[pulumi.Input[str]]):
126
+ pulumi.set(self, "name", value)
127
+
128
+ @property
129
+ @pulumi.getter
130
+ def parent(self) -> Optional[pulumi.Input[str]]:
131
+ """
132
+ The name of the parent this security profile belongs to.
133
+ Format: organizations/{organization_id}.
134
+ """
135
+ return pulumi.get(self, "parent")
136
+
137
+ @parent.setter
138
+ def parent(self, value: Optional[pulumi.Input[str]]):
139
+ pulumi.set(self, "parent", value)
140
+
141
+ @property
142
+ @pulumi.getter(name="threatPreventionProfile")
143
+ def threat_prevention_profile(self) -> Optional[pulumi.Input['SecurityProfileThreatPreventionProfileArgs']]:
144
+ """
145
+ The threat prevention configuration for the security profile.
146
+ Structure is documented below.
147
+ """
148
+ return pulumi.get(self, "threat_prevention_profile")
149
+
150
+ @threat_prevention_profile.setter
151
+ def threat_prevention_profile(self, value: Optional[pulumi.Input['SecurityProfileThreatPreventionProfileArgs']]):
152
+ pulumi.set(self, "threat_prevention_profile", value)
153
+
154
+
155
+ @pulumi.input_type
156
+ class _SecurityProfileState:
157
+ def __init__(__self__, *,
158
+ create_time: Optional[pulumi.Input[str]] = None,
159
+ description: Optional[pulumi.Input[str]] = None,
160
+ effective_labels: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None,
161
+ etag: Optional[pulumi.Input[str]] = None,
162
+ labels: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None,
163
+ location: Optional[pulumi.Input[str]] = None,
164
+ name: Optional[pulumi.Input[str]] = None,
165
+ parent: Optional[pulumi.Input[str]] = None,
166
+ pulumi_labels: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None,
167
+ self_link: Optional[pulumi.Input[str]] = None,
168
+ threat_prevention_profile: Optional[pulumi.Input['SecurityProfileThreatPreventionProfileArgs']] = None,
169
+ type: Optional[pulumi.Input[str]] = None,
170
+ update_time: Optional[pulumi.Input[str]] = None):
171
+ """
172
+ Input properties used for looking up and filtering SecurityProfile resources.
173
+ :param pulumi.Input[str] create_time: Time the security profile was created in UTC.
174
+ :param pulumi.Input[str] description: An optional description of the security profile. The Max length is 512 characters.
175
+ :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.
176
+ :param pulumi.Input[str] etag: This checksum is computed by the server based on the value of other fields,
177
+ and may be sent on update and delete requests to ensure the client has an up-to-date
178
+ value before proceeding.
179
+ :param pulumi.Input[Mapping[str, pulumi.Input[str]]] labels: A map of key/value label pairs to assign to the resource.
180
+
181
+ **Note**: This field is non-authoritative, and will only manage the labels present in your configuration.
182
+ Please refer to the field `effective_labels` for all of the labels present on the resource.
183
+ :param pulumi.Input[str] location: The location of the security profile.
184
+ The default value is `global`.
185
+ :param pulumi.Input[str] name: The name of the security profile resource.
186
+
187
+
188
+ - - -
189
+ :param pulumi.Input[str] parent: The name of the parent this security profile belongs to.
190
+ Format: organizations/{organization_id}.
191
+ :param pulumi.Input[Mapping[str, pulumi.Input[str]]] pulumi_labels: The combination of labels configured directly on the resource
192
+ and default labels configured on the provider.
193
+ :param pulumi.Input[str] self_link: Server-defined URL of this resource.
194
+ :param pulumi.Input['SecurityProfileThreatPreventionProfileArgs'] threat_prevention_profile: The threat prevention configuration for the security profile.
195
+ Structure is documented below.
196
+ :param pulumi.Input[str] type: The type of security profile.
197
+ Possible values are: `THREAT_PREVENTION`.
198
+ :param pulumi.Input[str] update_time: Time the security profile was updated in UTC.
199
+ """
200
+ if create_time is not None:
201
+ pulumi.set(__self__, "create_time", create_time)
202
+ if description is not None:
203
+ pulumi.set(__self__, "description", description)
204
+ if effective_labels is not None:
205
+ pulumi.set(__self__, "effective_labels", effective_labels)
206
+ if etag is not None:
207
+ pulumi.set(__self__, "etag", etag)
208
+ if labels is not None:
209
+ pulumi.set(__self__, "labels", labels)
210
+ if location is not None:
211
+ pulumi.set(__self__, "location", location)
212
+ if name is not None:
213
+ pulumi.set(__self__, "name", name)
214
+ if parent is not None:
215
+ pulumi.set(__self__, "parent", parent)
216
+ if pulumi_labels is not None:
217
+ pulumi.set(__self__, "pulumi_labels", pulumi_labels)
218
+ if self_link is not None:
219
+ pulumi.set(__self__, "self_link", self_link)
220
+ if threat_prevention_profile is not None:
221
+ pulumi.set(__self__, "threat_prevention_profile", threat_prevention_profile)
222
+ if type is not None:
223
+ pulumi.set(__self__, "type", type)
224
+ if update_time is not None:
225
+ pulumi.set(__self__, "update_time", update_time)
226
+
227
+ @property
228
+ @pulumi.getter(name="createTime")
229
+ def create_time(self) -> Optional[pulumi.Input[str]]:
230
+ """
231
+ Time the security profile was created in UTC.
232
+ """
233
+ return pulumi.get(self, "create_time")
234
+
235
+ @create_time.setter
236
+ def create_time(self, value: Optional[pulumi.Input[str]]):
237
+ pulumi.set(self, "create_time", value)
238
+
239
+ @property
240
+ @pulumi.getter
241
+ def description(self) -> Optional[pulumi.Input[str]]:
242
+ """
243
+ An optional description of the security profile. The Max length is 512 characters.
244
+ """
245
+ return pulumi.get(self, "description")
246
+
247
+ @description.setter
248
+ def description(self, value: Optional[pulumi.Input[str]]):
249
+ pulumi.set(self, "description", value)
250
+
251
+ @property
252
+ @pulumi.getter(name="effectiveLabels")
253
+ def effective_labels(self) -> Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]]:
254
+ """
255
+ All of labels (key/value pairs) present on the resource in GCP, including the labels configured through Pulumi, other clients and services.
256
+ """
257
+ return pulumi.get(self, "effective_labels")
258
+
259
+ @effective_labels.setter
260
+ def effective_labels(self, value: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]]):
261
+ pulumi.set(self, "effective_labels", value)
262
+
263
+ @property
264
+ @pulumi.getter
265
+ def etag(self) -> Optional[pulumi.Input[str]]:
266
+ """
267
+ This checksum is computed by the server based on the value of other fields,
268
+ and may be sent on update and delete requests to ensure the client has an up-to-date
269
+ value before proceeding.
270
+ """
271
+ return pulumi.get(self, "etag")
272
+
273
+ @etag.setter
274
+ def etag(self, value: Optional[pulumi.Input[str]]):
275
+ pulumi.set(self, "etag", value)
276
+
277
+ @property
278
+ @pulumi.getter
279
+ def labels(self) -> Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]]:
280
+ """
281
+ A map of key/value label pairs to assign to the resource.
282
+
283
+ **Note**: This field is non-authoritative, and will only manage the labels present in your configuration.
284
+ Please refer to the field `effective_labels` for all of the labels present on the resource.
285
+ """
286
+ return pulumi.get(self, "labels")
287
+
288
+ @labels.setter
289
+ def labels(self, value: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]]):
290
+ pulumi.set(self, "labels", value)
291
+
292
+ @property
293
+ @pulumi.getter
294
+ def location(self) -> Optional[pulumi.Input[str]]:
295
+ """
296
+ The location of the security profile.
297
+ The default value is `global`.
298
+ """
299
+ return pulumi.get(self, "location")
300
+
301
+ @location.setter
302
+ def location(self, value: Optional[pulumi.Input[str]]):
303
+ pulumi.set(self, "location", value)
304
+
305
+ @property
306
+ @pulumi.getter
307
+ def name(self) -> Optional[pulumi.Input[str]]:
308
+ """
309
+ The name of the security profile resource.
310
+
311
+
312
+ - - -
313
+ """
314
+ return pulumi.get(self, "name")
315
+
316
+ @name.setter
317
+ def name(self, value: Optional[pulumi.Input[str]]):
318
+ pulumi.set(self, "name", value)
319
+
320
+ @property
321
+ @pulumi.getter
322
+ def parent(self) -> Optional[pulumi.Input[str]]:
323
+ """
324
+ The name of the parent this security profile belongs to.
325
+ Format: organizations/{organization_id}.
326
+ """
327
+ return pulumi.get(self, "parent")
328
+
329
+ @parent.setter
330
+ def parent(self, value: Optional[pulumi.Input[str]]):
331
+ pulumi.set(self, "parent", value)
332
+
333
+ @property
334
+ @pulumi.getter(name="pulumiLabels")
335
+ def pulumi_labels(self) -> Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]]:
336
+ """
337
+ The combination of labels configured directly on the resource
338
+ and default labels configured on the provider.
339
+ """
340
+ return pulumi.get(self, "pulumi_labels")
341
+
342
+ @pulumi_labels.setter
343
+ def pulumi_labels(self, value: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]]):
344
+ pulumi.set(self, "pulumi_labels", value)
345
+
346
+ @property
347
+ @pulumi.getter(name="selfLink")
348
+ def self_link(self) -> Optional[pulumi.Input[str]]:
349
+ """
350
+ Server-defined URL of this resource.
351
+ """
352
+ return pulumi.get(self, "self_link")
353
+
354
+ @self_link.setter
355
+ def self_link(self, value: Optional[pulumi.Input[str]]):
356
+ pulumi.set(self, "self_link", value)
357
+
358
+ @property
359
+ @pulumi.getter(name="threatPreventionProfile")
360
+ def threat_prevention_profile(self) -> Optional[pulumi.Input['SecurityProfileThreatPreventionProfileArgs']]:
361
+ """
362
+ The threat prevention configuration for the security profile.
363
+ Structure is documented below.
364
+ """
365
+ return pulumi.get(self, "threat_prevention_profile")
366
+
367
+ @threat_prevention_profile.setter
368
+ def threat_prevention_profile(self, value: Optional[pulumi.Input['SecurityProfileThreatPreventionProfileArgs']]):
369
+ pulumi.set(self, "threat_prevention_profile", value)
370
+
371
+ @property
372
+ @pulumi.getter
373
+ def type(self) -> Optional[pulumi.Input[str]]:
374
+ """
375
+ The type of security profile.
376
+ Possible values are: `THREAT_PREVENTION`.
377
+ """
378
+ return pulumi.get(self, "type")
379
+
380
+ @type.setter
381
+ def type(self, value: Optional[pulumi.Input[str]]):
382
+ pulumi.set(self, "type", value)
383
+
384
+ @property
385
+ @pulumi.getter(name="updateTime")
386
+ def update_time(self) -> Optional[pulumi.Input[str]]:
387
+ """
388
+ Time the security profile was updated in UTC.
389
+ """
390
+ return pulumi.get(self, "update_time")
391
+
392
+ @update_time.setter
393
+ def update_time(self, value: Optional[pulumi.Input[str]]):
394
+ pulumi.set(self, "update_time", value)
395
+
396
+
397
+ class SecurityProfile(pulumi.CustomResource):
398
+ @overload
399
+ def __init__(__self__,
400
+ resource_name: str,
401
+ opts: Optional[pulumi.ResourceOptions] = None,
402
+ description: Optional[pulumi.Input[str]] = None,
403
+ labels: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None,
404
+ location: Optional[pulumi.Input[str]] = None,
405
+ name: Optional[pulumi.Input[str]] = None,
406
+ parent: Optional[pulumi.Input[str]] = None,
407
+ threat_prevention_profile: Optional[pulumi.Input[pulumi.InputType['SecurityProfileThreatPreventionProfileArgs']]] = None,
408
+ type: Optional[pulumi.Input[str]] = None,
409
+ __props__=None):
410
+ """
411
+ ## Example Usage
412
+ ### Network Security Security Profile Basic
413
+
414
+ ```python
415
+ import pulumi
416
+ import pulumi_gcp as gcp
417
+
418
+ default = gcp.networksecurity.SecurityProfile("default",
419
+ parent="organizations/123456789",
420
+ description="my description",
421
+ type="THREAT_PREVENTION",
422
+ labels={
423
+ "foo": "bar",
424
+ },
425
+ opts=pulumi.ResourceOptions(provider=google_beta))
426
+ ```
427
+ ### Network Security Security Profile Overrides
428
+
429
+ ```python
430
+ import pulumi
431
+ import pulumi_gcp as gcp
432
+
433
+ default = gcp.networksecurity.SecurityProfile("default",
434
+ parent="organizations/123456789",
435
+ description="my description",
436
+ type="THREAT_PREVENTION",
437
+ threat_prevention_profile=gcp.networksecurity.SecurityProfileThreatPreventionProfileArgs(
438
+ severity_overrides=[
439
+ gcp.networksecurity.SecurityProfileThreatPreventionProfileSeverityOverrideArgs(
440
+ action="ALLOW",
441
+ severity="INFORMATIONAL",
442
+ ),
443
+ gcp.networksecurity.SecurityProfileThreatPreventionProfileSeverityOverrideArgs(
444
+ action="DENY",
445
+ severity="HIGH",
446
+ ),
447
+ ],
448
+ threat_overrides=[gcp.networksecurity.SecurityProfileThreatPreventionProfileThreatOverrideArgs(
449
+ action="ALLOW",
450
+ threat_id="280647",
451
+ )],
452
+ ),
453
+ opts=pulumi.ResourceOptions(provider=google_beta))
454
+ ```
455
+
456
+ ## Import
457
+
458
+ SecurityProfile can be imported using any of these accepted formats* `{{parent}}/locations/{{location}}/securityProfiles/{{name}}` In Terraform v1.5.0 and later, use an [`import` block](https://developer.hashicorp.com/terraform/language/import) to import SecurityProfile using one of the formats above. For exampletf import {
459
+
460
+ id = "{{parent}}/locations/{{location}}/securityProfiles/{{name}}"
461
+
462
+ to = google_network_security_security_profile.default }
463
+
464
+ ```sh
465
+ $ pulumi import gcp:networksecurity/securityProfile:SecurityProfile When using the [`terraform import` command](https://developer.hashicorp.com/terraform/cli/commands/import), SecurityProfile can be imported using one of the formats above. For example
466
+ ```
467
+
468
+ ```sh
469
+ $ pulumi import gcp:networksecurity/securityProfile:SecurityProfile default {{parent}}/locations/{{location}}/securityProfiles/{{name}}
470
+ ```
471
+
472
+ :param str resource_name: The name of the resource.
473
+ :param pulumi.ResourceOptions opts: Options for the resource.
474
+ :param pulumi.Input[str] description: An optional description of the security profile. The Max length is 512 characters.
475
+ :param pulumi.Input[Mapping[str, pulumi.Input[str]]] labels: A map of key/value label pairs to assign to the resource.
476
+
477
+ **Note**: This field is non-authoritative, and will only manage the labels present in your configuration.
478
+ Please refer to the field `effective_labels` for all of the labels present on the resource.
479
+ :param pulumi.Input[str] location: The location of the security profile.
480
+ The default value is `global`.
481
+ :param pulumi.Input[str] name: The name of the security profile resource.
482
+
483
+
484
+ - - -
485
+ :param pulumi.Input[str] parent: The name of the parent this security profile belongs to.
486
+ Format: organizations/{organization_id}.
487
+ :param pulumi.Input[pulumi.InputType['SecurityProfileThreatPreventionProfileArgs']] threat_prevention_profile: The threat prevention configuration for the security profile.
488
+ Structure is documented below.
489
+ :param pulumi.Input[str] type: The type of security profile.
490
+ Possible values are: `THREAT_PREVENTION`.
491
+ """
492
+ ...
493
+ @overload
494
+ def __init__(__self__,
495
+ resource_name: str,
496
+ args: SecurityProfileArgs,
497
+ opts: Optional[pulumi.ResourceOptions] = None):
498
+ """
499
+ ## Example Usage
500
+ ### Network Security Security Profile Basic
501
+
502
+ ```python
503
+ import pulumi
504
+ import pulumi_gcp as gcp
505
+
506
+ default = gcp.networksecurity.SecurityProfile("default",
507
+ parent="organizations/123456789",
508
+ description="my description",
509
+ type="THREAT_PREVENTION",
510
+ labels={
511
+ "foo": "bar",
512
+ },
513
+ opts=pulumi.ResourceOptions(provider=google_beta))
514
+ ```
515
+ ### Network Security Security Profile Overrides
516
+
517
+ ```python
518
+ import pulumi
519
+ import pulumi_gcp as gcp
520
+
521
+ default = gcp.networksecurity.SecurityProfile("default",
522
+ parent="organizations/123456789",
523
+ description="my description",
524
+ type="THREAT_PREVENTION",
525
+ threat_prevention_profile=gcp.networksecurity.SecurityProfileThreatPreventionProfileArgs(
526
+ severity_overrides=[
527
+ gcp.networksecurity.SecurityProfileThreatPreventionProfileSeverityOverrideArgs(
528
+ action="ALLOW",
529
+ severity="INFORMATIONAL",
530
+ ),
531
+ gcp.networksecurity.SecurityProfileThreatPreventionProfileSeverityOverrideArgs(
532
+ action="DENY",
533
+ severity="HIGH",
534
+ ),
535
+ ],
536
+ threat_overrides=[gcp.networksecurity.SecurityProfileThreatPreventionProfileThreatOverrideArgs(
537
+ action="ALLOW",
538
+ threat_id="280647",
539
+ )],
540
+ ),
541
+ opts=pulumi.ResourceOptions(provider=google_beta))
542
+ ```
543
+
544
+ ## Import
545
+
546
+ SecurityProfile can be imported using any of these accepted formats* `{{parent}}/locations/{{location}}/securityProfiles/{{name}}` In Terraform v1.5.0 and later, use an [`import` block](https://developer.hashicorp.com/terraform/language/import) to import SecurityProfile using one of the formats above. For exampletf import {
547
+
548
+ id = "{{parent}}/locations/{{location}}/securityProfiles/{{name}}"
549
+
550
+ to = google_network_security_security_profile.default }
551
+
552
+ ```sh
553
+ $ pulumi import gcp:networksecurity/securityProfile:SecurityProfile When using the [`terraform import` command](https://developer.hashicorp.com/terraform/cli/commands/import), SecurityProfile can be imported using one of the formats above. For example
554
+ ```
555
+
556
+ ```sh
557
+ $ pulumi import gcp:networksecurity/securityProfile:SecurityProfile default {{parent}}/locations/{{location}}/securityProfiles/{{name}}
558
+ ```
559
+
560
+ :param str resource_name: The name of the resource.
561
+ :param SecurityProfileArgs args: The arguments to use to populate this resource's properties.
562
+ :param pulumi.ResourceOptions opts: Options for the resource.
563
+ """
564
+ ...
565
+ def __init__(__self__, resource_name: str, *args, **kwargs):
566
+ resource_args, opts = _utilities.get_resource_args_opts(SecurityProfileArgs, pulumi.ResourceOptions, *args, **kwargs)
567
+ if resource_args is not None:
568
+ __self__._internal_init(resource_name, opts, **resource_args.__dict__)
569
+ else:
570
+ __self__._internal_init(resource_name, *args, **kwargs)
571
+
572
+ def _internal_init(__self__,
573
+ resource_name: str,
574
+ opts: Optional[pulumi.ResourceOptions] = None,
575
+ description: Optional[pulumi.Input[str]] = None,
576
+ labels: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None,
577
+ location: Optional[pulumi.Input[str]] = None,
578
+ name: Optional[pulumi.Input[str]] = None,
579
+ parent: Optional[pulumi.Input[str]] = None,
580
+ threat_prevention_profile: Optional[pulumi.Input[pulumi.InputType['SecurityProfileThreatPreventionProfileArgs']]] = None,
581
+ type: Optional[pulumi.Input[str]] = None,
582
+ __props__=None):
583
+ opts = pulumi.ResourceOptions.merge(_utilities.get_resource_opts_defaults(), opts)
584
+ if not isinstance(opts, pulumi.ResourceOptions):
585
+ raise TypeError('Expected resource options to be a ResourceOptions instance')
586
+ if opts.id is None:
587
+ if __props__ is not None:
588
+ raise TypeError('__props__ is only valid when passed in combination with a valid opts.id to get an existing resource')
589
+ __props__ = SecurityProfileArgs.__new__(SecurityProfileArgs)
590
+
591
+ __props__.__dict__["description"] = description
592
+ __props__.__dict__["labels"] = labels
593
+ __props__.__dict__["location"] = location
594
+ __props__.__dict__["name"] = name
595
+ __props__.__dict__["parent"] = parent
596
+ __props__.__dict__["threat_prevention_profile"] = threat_prevention_profile
597
+ if type is None and not opts.urn:
598
+ raise TypeError("Missing required property 'type'")
599
+ __props__.__dict__["type"] = type
600
+ __props__.__dict__["create_time"] = None
601
+ __props__.__dict__["effective_labels"] = None
602
+ __props__.__dict__["etag"] = None
603
+ __props__.__dict__["pulumi_labels"] = None
604
+ __props__.__dict__["self_link"] = None
605
+ __props__.__dict__["update_time"] = None
606
+ secret_opts = pulumi.ResourceOptions(additional_secret_outputs=["effectiveLabels", "pulumiLabels"])
607
+ opts = pulumi.ResourceOptions.merge(opts, secret_opts)
608
+ super(SecurityProfile, __self__).__init__(
609
+ 'gcp:networksecurity/securityProfile:SecurityProfile',
610
+ resource_name,
611
+ __props__,
612
+ opts)
613
+
614
+ @staticmethod
615
+ def get(resource_name: str,
616
+ id: pulumi.Input[str],
617
+ opts: Optional[pulumi.ResourceOptions] = None,
618
+ create_time: Optional[pulumi.Input[str]] = None,
619
+ description: Optional[pulumi.Input[str]] = None,
620
+ effective_labels: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None,
621
+ etag: Optional[pulumi.Input[str]] = None,
622
+ labels: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None,
623
+ location: Optional[pulumi.Input[str]] = None,
624
+ name: Optional[pulumi.Input[str]] = None,
625
+ parent: Optional[pulumi.Input[str]] = None,
626
+ pulumi_labels: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None,
627
+ self_link: Optional[pulumi.Input[str]] = None,
628
+ threat_prevention_profile: Optional[pulumi.Input[pulumi.InputType['SecurityProfileThreatPreventionProfileArgs']]] = None,
629
+ type: Optional[pulumi.Input[str]] = None,
630
+ update_time: Optional[pulumi.Input[str]] = None) -> 'SecurityProfile':
631
+ """
632
+ Get an existing SecurityProfile resource's state with the given name, id, and optional extra
633
+ properties used to qualify the lookup.
634
+
635
+ :param str resource_name: The unique name of the resulting resource.
636
+ :param pulumi.Input[str] id: The unique provider ID of the resource to lookup.
637
+ :param pulumi.ResourceOptions opts: Options for the resource.
638
+ :param pulumi.Input[str] create_time: Time the security profile was created in UTC.
639
+ :param pulumi.Input[str] description: An optional description of the security profile. The Max length is 512 characters.
640
+ :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.
641
+ :param pulumi.Input[str] etag: This checksum is computed by the server based on the value of other fields,
642
+ and may be sent on update and delete requests to ensure the client has an up-to-date
643
+ value before proceeding.
644
+ :param pulumi.Input[Mapping[str, pulumi.Input[str]]] labels: A map of key/value label pairs to assign to the resource.
645
+
646
+ **Note**: This field is non-authoritative, and will only manage the labels present in your configuration.
647
+ Please refer to the field `effective_labels` for all of the labels present on the resource.
648
+ :param pulumi.Input[str] location: The location of the security profile.
649
+ The default value is `global`.
650
+ :param pulumi.Input[str] name: The name of the security profile resource.
651
+
652
+
653
+ - - -
654
+ :param pulumi.Input[str] parent: The name of the parent this security profile belongs to.
655
+ Format: organizations/{organization_id}.
656
+ :param pulumi.Input[Mapping[str, pulumi.Input[str]]] pulumi_labels: The combination of labels configured directly on the resource
657
+ and default labels configured on the provider.
658
+ :param pulumi.Input[str] self_link: Server-defined URL of this resource.
659
+ :param pulumi.Input[pulumi.InputType['SecurityProfileThreatPreventionProfileArgs']] threat_prevention_profile: The threat prevention configuration for the security profile.
660
+ Structure is documented below.
661
+ :param pulumi.Input[str] type: The type of security profile.
662
+ Possible values are: `THREAT_PREVENTION`.
663
+ :param pulumi.Input[str] update_time: Time the security profile was updated in UTC.
664
+ """
665
+ opts = pulumi.ResourceOptions.merge(opts, pulumi.ResourceOptions(id=id))
666
+
667
+ __props__ = _SecurityProfileState.__new__(_SecurityProfileState)
668
+
669
+ __props__.__dict__["create_time"] = create_time
670
+ __props__.__dict__["description"] = description
671
+ __props__.__dict__["effective_labels"] = effective_labels
672
+ __props__.__dict__["etag"] = etag
673
+ __props__.__dict__["labels"] = labels
674
+ __props__.__dict__["location"] = location
675
+ __props__.__dict__["name"] = name
676
+ __props__.__dict__["parent"] = parent
677
+ __props__.__dict__["pulumi_labels"] = pulumi_labels
678
+ __props__.__dict__["self_link"] = self_link
679
+ __props__.__dict__["threat_prevention_profile"] = threat_prevention_profile
680
+ __props__.__dict__["type"] = type
681
+ __props__.__dict__["update_time"] = update_time
682
+ return SecurityProfile(resource_name, opts=opts, __props__=__props__)
683
+
684
+ @property
685
+ @pulumi.getter(name="createTime")
686
+ def create_time(self) -> pulumi.Output[str]:
687
+ """
688
+ Time the security profile was created in UTC.
689
+ """
690
+ return pulumi.get(self, "create_time")
691
+
692
+ @property
693
+ @pulumi.getter
694
+ def description(self) -> pulumi.Output[Optional[str]]:
695
+ """
696
+ An optional description of the security profile. The Max length is 512 characters.
697
+ """
698
+ return pulumi.get(self, "description")
699
+
700
+ @property
701
+ @pulumi.getter(name="effectiveLabels")
702
+ def effective_labels(self) -> pulumi.Output[Mapping[str, str]]:
703
+ """
704
+ All of labels (key/value pairs) present on the resource in GCP, including the labels configured through Pulumi, other clients and services.
705
+ """
706
+ return pulumi.get(self, "effective_labels")
707
+
708
+ @property
709
+ @pulumi.getter
710
+ def etag(self) -> pulumi.Output[str]:
711
+ """
712
+ This checksum is computed by the server based on the value of other fields,
713
+ and may be sent on update and delete requests to ensure the client has an up-to-date
714
+ value before proceeding.
715
+ """
716
+ return pulumi.get(self, "etag")
717
+
718
+ @property
719
+ @pulumi.getter
720
+ def labels(self) -> pulumi.Output[Optional[Mapping[str, str]]]:
721
+ """
722
+ A map of key/value label pairs to assign to the resource.
723
+
724
+ **Note**: This field is non-authoritative, and will only manage the labels present in your configuration.
725
+ Please refer to the field `effective_labels` for all of the labels present on the resource.
726
+ """
727
+ return pulumi.get(self, "labels")
728
+
729
+ @property
730
+ @pulumi.getter
731
+ def location(self) -> pulumi.Output[Optional[str]]:
732
+ """
733
+ The location of the security profile.
734
+ The default value is `global`.
735
+ """
736
+ return pulumi.get(self, "location")
737
+
738
+ @property
739
+ @pulumi.getter
740
+ def name(self) -> pulumi.Output[str]:
741
+ """
742
+ The name of the security profile resource.
743
+
744
+
745
+ - - -
746
+ """
747
+ return pulumi.get(self, "name")
748
+
749
+ @property
750
+ @pulumi.getter
751
+ def parent(self) -> pulumi.Output[Optional[str]]:
752
+ """
753
+ The name of the parent this security profile belongs to.
754
+ Format: organizations/{organization_id}.
755
+ """
756
+ return pulumi.get(self, "parent")
757
+
758
+ @property
759
+ @pulumi.getter(name="pulumiLabels")
760
+ def pulumi_labels(self) -> pulumi.Output[Mapping[str, str]]:
761
+ """
762
+ The combination of labels configured directly on the resource
763
+ and default labels configured on the provider.
764
+ """
765
+ return pulumi.get(self, "pulumi_labels")
766
+
767
+ @property
768
+ @pulumi.getter(name="selfLink")
769
+ def self_link(self) -> pulumi.Output[str]:
770
+ """
771
+ Server-defined URL of this resource.
772
+ """
773
+ return pulumi.get(self, "self_link")
774
+
775
+ @property
776
+ @pulumi.getter(name="threatPreventionProfile")
777
+ def threat_prevention_profile(self) -> pulumi.Output[Optional['outputs.SecurityProfileThreatPreventionProfile']]:
778
+ """
779
+ The threat prevention configuration for the security profile.
780
+ Structure is documented below.
781
+ """
782
+ return pulumi.get(self, "threat_prevention_profile")
783
+
784
+ @property
785
+ @pulumi.getter
786
+ def type(self) -> pulumi.Output[str]:
787
+ """
788
+ The type of security profile.
789
+ Possible values are: `THREAT_PREVENTION`.
790
+ """
791
+ return pulumi.get(self, "type")
792
+
793
+ @property
794
+ @pulumi.getter(name="updateTime")
795
+ def update_time(self) -> pulumi.Output[str]:
796
+ """
797
+ Time the security profile was updated in UTC.
798
+ """
799
+ return pulumi.get(self, "update_time")
800
+