pulumi-gcp 8.15.0a1737527599__py3-none-any.whl → 8.16.0__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 (77) hide show
  1. pulumi_gcp/__init__.py +78 -0
  2. pulumi_gcp/accesscontextmanager/access_level_condition.py +28 -0
  3. pulumi_gcp/accesscontextmanager/egress_policy.py +28 -0
  4. pulumi_gcp/accesscontextmanager/ingress_policy.py +28 -0
  5. pulumi_gcp/accesscontextmanager/service_perimeter_dry_run_egress_policy.py +28 -0
  6. pulumi_gcp/accesscontextmanager/service_perimeter_dry_run_ingress_policy.py +28 -0
  7. pulumi_gcp/accesscontextmanager/service_perimeter_dry_run_resource.py +28 -0
  8. pulumi_gcp/accesscontextmanager/service_perimeter_egress_policy.py +28 -0
  9. pulumi_gcp/accesscontextmanager/service_perimeter_ingress_policy.py +28 -0
  10. pulumi_gcp/accesscontextmanager/service_perimeter_resource.py +56 -0
  11. pulumi_gcp/apigee/__init__.py +1 -0
  12. pulumi_gcp/apigee/environment_addons_config.py +266 -0
  13. pulumi_gcp/artifactregistry/repository.py +32 -2
  14. pulumi_gcp/bigquery/connection.py +2 -2
  15. pulumi_gcp/bigquery/routine.py +2 -2
  16. pulumi_gcp/billing/project_info.py +4 -4
  17. pulumi_gcp/chronicle/__init__.py +3 -0
  18. pulumi_gcp/chronicle/_inputs.py +379 -0
  19. pulumi_gcp/chronicle/data_access_label.py +21 -21
  20. pulumi_gcp/chronicle/outputs.py +302 -0
  21. pulumi_gcp/chronicle/reference_list.py +788 -0
  22. pulumi_gcp/chronicle/rule.py +1308 -0
  23. pulumi_gcp/chronicle/rule_deployment.py +849 -0
  24. pulumi_gcp/colab/__init__.py +10 -0
  25. pulumi_gcp/colab/_inputs.py +359 -0
  26. pulumi_gcp/colab/outputs.py +344 -0
  27. pulumi_gcp/colab/runtime_template.py +1160 -0
  28. pulumi_gcp/compute/_inputs.py +9 -9
  29. pulumi_gcp/compute/interconnect_attachment.py +7 -7
  30. pulumi_gcp/compute/outputs.py +6 -6
  31. pulumi_gcp/compute/route.py +8 -16
  32. pulumi_gcp/compute/subnetwork.py +7 -7
  33. pulumi_gcp/compute/target_instance.py +4 -4
  34. pulumi_gcp/compute/url_map.py +4 -0
  35. pulumi_gcp/config/__init__.pyi +6 -0
  36. pulumi_gcp/config/vars.py +12 -0
  37. pulumi_gcp/databasemigrationservice/connection_profile.py +6 -6
  38. pulumi_gcp/dataplex/entry_type.py +2 -2
  39. pulumi_gcp/dataplex/task.py +16 -16
  40. pulumi_gcp/dataproc/batch.py +10 -10
  41. pulumi_gcp/discoveryengine/_inputs.py +54 -0
  42. pulumi_gcp/discoveryengine/data_store.py +94 -0
  43. pulumi_gcp/discoveryengine/outputs.py +51 -0
  44. pulumi_gcp/edgenetwork/__init__.py +1 -0
  45. pulumi_gcp/edgenetwork/interconnect_attachment.py +941 -0
  46. pulumi_gcp/firestore/field.py +4 -4
  47. pulumi_gcp/gemini/code_repository_index.py +47 -0
  48. pulumi_gcp/gkehub/membership_binding.py +6 -6
  49. pulumi_gcp/gkehub/membership_rbac_role_binding.py +4 -4
  50. pulumi_gcp/gkehub/namespace.py +4 -4
  51. pulumi_gcp/gkehub/scope_rbac_role_binding.py +4 -4
  52. pulumi_gcp/iap/tunnel_dest_group.py +2 -2
  53. pulumi_gcp/integrationconnectors/managed_zone.py +8 -8
  54. pulumi_gcp/networkconnectivity/spoke.py +14 -14
  55. pulumi_gcp/networksecurity/authz_policy.py +0 -202
  56. pulumi_gcp/orgpolicy/policy.py +2 -2
  57. pulumi_gcp/parametermanager/__init__.py +13 -0
  58. pulumi_gcp/parametermanager/_inputs.py +174 -0
  59. pulumi_gcp/parametermanager/get_regional_parameter.py +230 -0
  60. pulumi_gcp/parametermanager/outputs.py +191 -0
  61. pulumi_gcp/parametermanager/parameter.py +706 -0
  62. pulumi_gcp/parametermanager/regional_parameter.py +762 -0
  63. pulumi_gcp/parametermanager/regional_parameter_version.py +558 -0
  64. pulumi_gcp/provider.py +60 -0
  65. pulumi_gcp/pubsub/subscription.py +6 -6
  66. pulumi_gcp/pulumi-plugin.json +1 -1
  67. pulumi_gcp/sql/_inputs.py +54 -0
  68. pulumi_gcp/sql/database_instance.py +78 -16
  69. pulumi_gcp/sql/get_database_instance.py +12 -1
  70. pulumi_gcp/sql/outputs.py +122 -0
  71. pulumi_gcp/sql/source_representation_instance.py +7 -14
  72. pulumi_gcp/vertex/ai_endpoint.py +4 -4
  73. pulumi_gcp/vertex/ai_feature_online_store_featureview.py +4 -4
  74. {pulumi_gcp-8.15.0a1737527599.dist-info → pulumi_gcp-8.16.0.dist-info}/METADATA +1 -1
  75. {pulumi_gcp-8.15.0a1737527599.dist-info → pulumi_gcp-8.16.0.dist-info}/RECORD +77 -61
  76. {pulumi_gcp-8.15.0a1737527599.dist-info → pulumi_gcp-8.16.0.dist-info}/WHEEL +0 -0
  77. {pulumi_gcp-8.15.0a1737527599.dist-info → pulumi_gcp-8.16.0.dist-info}/top_level.txt +0 -0
@@ -0,0 +1,1308 @@
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 sys
8
+ import pulumi
9
+ import pulumi.runtime
10
+ from typing import Any, Mapping, Optional, Sequence, Union, overload
11
+ if sys.version_info >= (3, 11):
12
+ from typing import NotRequired, TypedDict, TypeAlias
13
+ else:
14
+ from typing_extensions import NotRequired, TypedDict, TypeAlias
15
+ from .. import _utilities
16
+ from . import outputs
17
+ from ._inputs import *
18
+
19
+ __all__ = ['RuleArgs', 'Rule']
20
+
21
+ @pulumi.input_type
22
+ class RuleArgs:
23
+ def __init__(__self__, *,
24
+ instance: pulumi.Input[str],
25
+ location: pulumi.Input[str],
26
+ deletion_policy: Optional[pulumi.Input[str]] = None,
27
+ etag: Optional[pulumi.Input[str]] = None,
28
+ project: Optional[pulumi.Input[str]] = None,
29
+ rule_id: Optional[pulumi.Input[str]] = None,
30
+ scope: Optional[pulumi.Input[str]] = None,
31
+ text: Optional[pulumi.Input[str]] = None):
32
+ """
33
+ The set of arguments for constructing a Rule resource.
34
+ :param pulumi.Input[str] instance: The unique identifier for the Chronicle instance, which is the same as the customer ID.
35
+
36
+
37
+ - - -
38
+ :param pulumi.Input[str] location: The location of the resource. This is the geographical region where the Chronicle instance resides, such as "us" or "europe-west2".
39
+ :param pulumi.Input[str] deletion_policy: Policy to determine if the rule should be deleted forcefully.
40
+ If deletion_policy = "FORCE", any retrohunts and any detections associated with the rule
41
+ will also be deleted. If deletion_policy = "DEFAULT", the call will only succeed if the
42
+ rule has no associated retrohunts, including completed retrohunts, and no
43
+ associated detections. Regardless of this field's value, the rule
44
+ deployment associated with this rule will also be deleted.
45
+ Possible values: DEFAULT, FORCE
46
+ :param pulumi.Input[str] etag: The etag for this rule.
47
+ If this is provided on update, the request will succeed if and only if it
48
+ matches the server-computed value, and will fail with an ABORTED error
49
+ otherwise.
50
+ Populated in BASIC view and FULL view.
51
+ :param pulumi.Input[str] project: The ID of the project in which the resource belongs.
52
+ If it is not provided, the provider project is used.
53
+ :param pulumi.Input[str] rule_id: Rule Id is the ID of the Rule.
54
+ :param pulumi.Input[str] scope: Resource name of the DataAccessScope bound to this rule.
55
+ Populated in BASIC view and FULL view.
56
+ If reference lists are used in the rule, validations will be performed
57
+ against this scope to ensure that the reference lists are compatible with
58
+ both the user's and the rule's scopes.
59
+ The scope should be in the format:
60
+ "projects/{project}/locations/{location}/instances/{instance}/dataAccessScopes/{scope}".
61
+ :param pulumi.Input[str] text: The YARA-L content of the rule.
62
+ Populated in FULL view.
63
+ """
64
+ pulumi.set(__self__, "instance", instance)
65
+ pulumi.set(__self__, "location", location)
66
+ if deletion_policy is not None:
67
+ pulumi.set(__self__, "deletion_policy", deletion_policy)
68
+ if etag is not None:
69
+ pulumi.set(__self__, "etag", etag)
70
+ if project is not None:
71
+ pulumi.set(__self__, "project", project)
72
+ if rule_id is not None:
73
+ pulumi.set(__self__, "rule_id", rule_id)
74
+ if scope is not None:
75
+ pulumi.set(__self__, "scope", scope)
76
+ if text is not None:
77
+ pulumi.set(__self__, "text", text)
78
+
79
+ @property
80
+ @pulumi.getter
81
+ def instance(self) -> pulumi.Input[str]:
82
+ """
83
+ The unique identifier for the Chronicle instance, which is the same as the customer ID.
84
+
85
+
86
+ - - -
87
+ """
88
+ return pulumi.get(self, "instance")
89
+
90
+ @instance.setter
91
+ def instance(self, value: pulumi.Input[str]):
92
+ pulumi.set(self, "instance", value)
93
+
94
+ @property
95
+ @pulumi.getter
96
+ def location(self) -> pulumi.Input[str]:
97
+ """
98
+ The location of the resource. This is the geographical region where the Chronicle instance resides, such as "us" or "europe-west2".
99
+ """
100
+ return pulumi.get(self, "location")
101
+
102
+ @location.setter
103
+ def location(self, value: pulumi.Input[str]):
104
+ pulumi.set(self, "location", value)
105
+
106
+ @property
107
+ @pulumi.getter(name="deletionPolicy")
108
+ def deletion_policy(self) -> Optional[pulumi.Input[str]]:
109
+ """
110
+ Policy to determine if the rule should be deleted forcefully.
111
+ If deletion_policy = "FORCE", any retrohunts and any detections associated with the rule
112
+ will also be deleted. If deletion_policy = "DEFAULT", the call will only succeed if the
113
+ rule has no associated retrohunts, including completed retrohunts, and no
114
+ associated detections. Regardless of this field's value, the rule
115
+ deployment associated with this rule will also be deleted.
116
+ Possible values: DEFAULT, FORCE
117
+ """
118
+ return pulumi.get(self, "deletion_policy")
119
+
120
+ @deletion_policy.setter
121
+ def deletion_policy(self, value: Optional[pulumi.Input[str]]):
122
+ pulumi.set(self, "deletion_policy", value)
123
+
124
+ @property
125
+ @pulumi.getter
126
+ def etag(self) -> Optional[pulumi.Input[str]]:
127
+ """
128
+ The etag for this rule.
129
+ If this is provided on update, the request will succeed if and only if it
130
+ matches the server-computed value, and will fail with an ABORTED error
131
+ otherwise.
132
+ Populated in BASIC view and FULL view.
133
+ """
134
+ return pulumi.get(self, "etag")
135
+
136
+ @etag.setter
137
+ def etag(self, value: Optional[pulumi.Input[str]]):
138
+ pulumi.set(self, "etag", value)
139
+
140
+ @property
141
+ @pulumi.getter
142
+ def project(self) -> Optional[pulumi.Input[str]]:
143
+ """
144
+ The ID of the project in which the resource belongs.
145
+ If it is not provided, the provider project is used.
146
+ """
147
+ return pulumi.get(self, "project")
148
+
149
+ @project.setter
150
+ def project(self, value: Optional[pulumi.Input[str]]):
151
+ pulumi.set(self, "project", value)
152
+
153
+ @property
154
+ @pulumi.getter(name="ruleId")
155
+ def rule_id(self) -> Optional[pulumi.Input[str]]:
156
+ """
157
+ Rule Id is the ID of the Rule.
158
+ """
159
+ return pulumi.get(self, "rule_id")
160
+
161
+ @rule_id.setter
162
+ def rule_id(self, value: Optional[pulumi.Input[str]]):
163
+ pulumi.set(self, "rule_id", value)
164
+
165
+ @property
166
+ @pulumi.getter
167
+ def scope(self) -> Optional[pulumi.Input[str]]:
168
+ """
169
+ Resource name of the DataAccessScope bound to this rule.
170
+ Populated in BASIC view and FULL view.
171
+ If reference lists are used in the rule, validations will be performed
172
+ against this scope to ensure that the reference lists are compatible with
173
+ both the user's and the rule's scopes.
174
+ The scope should be in the format:
175
+ "projects/{project}/locations/{location}/instances/{instance}/dataAccessScopes/{scope}".
176
+ """
177
+ return pulumi.get(self, "scope")
178
+
179
+ @scope.setter
180
+ def scope(self, value: Optional[pulumi.Input[str]]):
181
+ pulumi.set(self, "scope", value)
182
+
183
+ @property
184
+ @pulumi.getter
185
+ def text(self) -> Optional[pulumi.Input[str]]:
186
+ """
187
+ The YARA-L content of the rule.
188
+ Populated in FULL view.
189
+ """
190
+ return pulumi.get(self, "text")
191
+
192
+ @text.setter
193
+ def text(self, value: Optional[pulumi.Input[str]]):
194
+ pulumi.set(self, "text", value)
195
+
196
+
197
+ @pulumi.input_type
198
+ class _RuleState:
199
+ def __init__(__self__, *,
200
+ allowed_run_frequencies: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None,
201
+ author: Optional[pulumi.Input[str]] = None,
202
+ compilation_diagnostics: Optional[pulumi.Input[Sequence[pulumi.Input['RuleCompilationDiagnosticArgs']]]] = None,
203
+ compilation_state: Optional[pulumi.Input[str]] = None,
204
+ create_time: Optional[pulumi.Input[str]] = None,
205
+ data_tables: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None,
206
+ deletion_policy: Optional[pulumi.Input[str]] = None,
207
+ display_name: Optional[pulumi.Input[str]] = None,
208
+ etag: Optional[pulumi.Input[str]] = None,
209
+ instance: Optional[pulumi.Input[str]] = None,
210
+ location: Optional[pulumi.Input[str]] = None,
211
+ metadata: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None,
212
+ name: Optional[pulumi.Input[str]] = None,
213
+ near_real_time_live_rule_eligible: Optional[pulumi.Input[bool]] = None,
214
+ project: Optional[pulumi.Input[str]] = None,
215
+ reference_lists: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None,
216
+ revision_create_time: Optional[pulumi.Input[str]] = None,
217
+ revision_id: Optional[pulumi.Input[str]] = None,
218
+ rule_id: Optional[pulumi.Input[str]] = None,
219
+ scope: Optional[pulumi.Input[str]] = None,
220
+ severities: Optional[pulumi.Input[Sequence[pulumi.Input['RuleSeverityArgs']]]] = None,
221
+ text: Optional[pulumi.Input[str]] = None,
222
+ type: Optional[pulumi.Input[str]] = None):
223
+ """
224
+ Input properties used for looking up and filtering Rule resources.
225
+ :param pulumi.Input[Sequence[pulumi.Input[str]]] allowed_run_frequencies: Output only. The run frequencies that are allowed for the rule.
226
+ Populated in BASIC view and FULL view.
227
+ :param pulumi.Input[str] author: Output only. The author of the rule. Extracted from the meta section of text.
228
+ Populated in BASIC view and FULL view.
229
+ :param pulumi.Input[Sequence[pulumi.Input['RuleCompilationDiagnosticArgs']]] compilation_diagnostics: Output only. A list of a rule's corresponding compilation diagnostic messages
230
+ such as compilation errors and compilation warnings.
231
+ Populated in FULL view.
232
+ Structure is documented below.
233
+ :param pulumi.Input[str] compilation_state: Output only. The current compilation state of the rule.
234
+ Populated in FULL view.
235
+ Possible values:
236
+ COMPILATION_STATE_UNSPECIFIED
237
+ SUCCEEDED
238
+ FAILED
239
+ :param pulumi.Input[str] create_time: Output only. The timestamp of when the rule was created.
240
+ Populated in FULL view.
241
+ :param pulumi.Input[Sequence[pulumi.Input[str]]] data_tables: Output only. Resource names of the data tables used in this rule.
242
+ :param pulumi.Input[str] deletion_policy: Policy to determine if the rule should be deleted forcefully.
243
+ If deletion_policy = "FORCE", any retrohunts and any detections associated with the rule
244
+ will also be deleted. If deletion_policy = "DEFAULT", the call will only succeed if the
245
+ rule has no associated retrohunts, including completed retrohunts, and no
246
+ associated detections. Regardless of this field's value, the rule
247
+ deployment associated with this rule will also be deleted.
248
+ Possible values: DEFAULT, FORCE
249
+ :param pulumi.Input[str] display_name: The display name of the severity level. Extracted from the meta section of
250
+ the rule text.
251
+ :param pulumi.Input[str] etag: The etag for this rule.
252
+ If this is provided on update, the request will succeed if and only if it
253
+ matches the server-computed value, and will fail with an ABORTED error
254
+ otherwise.
255
+ Populated in BASIC view and FULL view.
256
+ :param pulumi.Input[str] instance: The unique identifier for the Chronicle instance, which is the same as the customer ID.
257
+
258
+
259
+ - - -
260
+ :param pulumi.Input[str] location: The location of the resource. This is the geographical region where the Chronicle instance resides, such as "us" or "europe-west2".
261
+ :param pulumi.Input[Mapping[str, pulumi.Input[str]]] metadata: Output only. Additional metadata specified in the meta section of text.
262
+ Populated in FULL view.
263
+ :param pulumi.Input[str] name: Full resource name for the rule. This unique identifier is generated using values provided for the URL parameters.
264
+ Format:
265
+ projects/{project}/locations/{location}/instances/{instance}/rules/{rule}
266
+ :param pulumi.Input[bool] near_real_time_live_rule_eligible: Output only. Indicate the rule can run in near real time live rule.
267
+ If this is true, the rule uses the near real time live rule when the run
268
+ frequency is set to LIVE.
269
+ :param pulumi.Input[str] project: The ID of the project in which the resource belongs.
270
+ If it is not provided, the provider project is used.
271
+ :param pulumi.Input[Sequence[pulumi.Input[str]]] reference_lists: Output only. Resource names of the reference lists used in this rule.
272
+ Populated in FULL view.
273
+ :param pulumi.Input[str] revision_create_time: Output only. The timestamp of when the rule revision was created.
274
+ Populated in FULL, REVISION_METADATA_ONLY views.
275
+ :param pulumi.Input[str] revision_id: Output only. The revision ID of the rule.
276
+ A new revision is created whenever the rule text is changed in any way.
277
+ Format: v_{10 digits}_{9 digits}
278
+ Populated in REVISION_METADATA_ONLY view and FULL view.
279
+ :param pulumi.Input[str] rule_id: Rule Id is the ID of the Rule.
280
+ :param pulumi.Input[str] scope: Resource name of the DataAccessScope bound to this rule.
281
+ Populated in BASIC view and FULL view.
282
+ If reference lists are used in the rule, validations will be performed
283
+ against this scope to ensure that the reference lists are compatible with
284
+ both the user's and the rule's scopes.
285
+ The scope should be in the format:
286
+ "projects/{project}/locations/{location}/instances/{instance}/dataAccessScopes/{scope}".
287
+ :param pulumi.Input[Sequence[pulumi.Input['RuleSeverityArgs']]] severities: (Output)
288
+ Output only. The severity of a rule's compilation diagnostic.
289
+ Possible values:
290
+ SEVERITY_UNSPECIFIED
291
+ WARNING
292
+ ERROR
293
+ :param pulumi.Input[str] text: The YARA-L content of the rule.
294
+ Populated in FULL view.
295
+ :param pulumi.Input[str] type: Possible values:
296
+ RULE_TYPE_UNSPECIFIED
297
+ SINGLE_EVENT
298
+ MULTI_EVENT
299
+ """
300
+ if allowed_run_frequencies is not None:
301
+ pulumi.set(__self__, "allowed_run_frequencies", allowed_run_frequencies)
302
+ if author is not None:
303
+ pulumi.set(__self__, "author", author)
304
+ if compilation_diagnostics is not None:
305
+ pulumi.set(__self__, "compilation_diagnostics", compilation_diagnostics)
306
+ if compilation_state is not None:
307
+ pulumi.set(__self__, "compilation_state", compilation_state)
308
+ if create_time is not None:
309
+ pulumi.set(__self__, "create_time", create_time)
310
+ if data_tables is not None:
311
+ pulumi.set(__self__, "data_tables", data_tables)
312
+ if deletion_policy is not None:
313
+ pulumi.set(__self__, "deletion_policy", deletion_policy)
314
+ if display_name is not None:
315
+ pulumi.set(__self__, "display_name", display_name)
316
+ if etag is not None:
317
+ pulumi.set(__self__, "etag", etag)
318
+ if instance is not None:
319
+ pulumi.set(__self__, "instance", instance)
320
+ if location is not None:
321
+ pulumi.set(__self__, "location", location)
322
+ if metadata is not None:
323
+ pulumi.set(__self__, "metadata", metadata)
324
+ if name is not None:
325
+ pulumi.set(__self__, "name", name)
326
+ if near_real_time_live_rule_eligible is not None:
327
+ pulumi.set(__self__, "near_real_time_live_rule_eligible", near_real_time_live_rule_eligible)
328
+ if project is not None:
329
+ pulumi.set(__self__, "project", project)
330
+ if reference_lists is not None:
331
+ pulumi.set(__self__, "reference_lists", reference_lists)
332
+ if revision_create_time is not None:
333
+ pulumi.set(__self__, "revision_create_time", revision_create_time)
334
+ if revision_id is not None:
335
+ pulumi.set(__self__, "revision_id", revision_id)
336
+ if rule_id is not None:
337
+ pulumi.set(__self__, "rule_id", rule_id)
338
+ if scope is not None:
339
+ pulumi.set(__self__, "scope", scope)
340
+ if severities is not None:
341
+ pulumi.set(__self__, "severities", severities)
342
+ if text is not None:
343
+ pulumi.set(__self__, "text", text)
344
+ if type is not None:
345
+ pulumi.set(__self__, "type", type)
346
+
347
+ @property
348
+ @pulumi.getter(name="allowedRunFrequencies")
349
+ def allowed_run_frequencies(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[str]]]]:
350
+ """
351
+ Output only. The run frequencies that are allowed for the rule.
352
+ Populated in BASIC view and FULL view.
353
+ """
354
+ return pulumi.get(self, "allowed_run_frequencies")
355
+
356
+ @allowed_run_frequencies.setter
357
+ def allowed_run_frequencies(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]]):
358
+ pulumi.set(self, "allowed_run_frequencies", value)
359
+
360
+ @property
361
+ @pulumi.getter
362
+ def author(self) -> Optional[pulumi.Input[str]]:
363
+ """
364
+ Output only. The author of the rule. Extracted from the meta section of text.
365
+ Populated in BASIC view and FULL view.
366
+ """
367
+ return pulumi.get(self, "author")
368
+
369
+ @author.setter
370
+ def author(self, value: Optional[pulumi.Input[str]]):
371
+ pulumi.set(self, "author", value)
372
+
373
+ @property
374
+ @pulumi.getter(name="compilationDiagnostics")
375
+ def compilation_diagnostics(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['RuleCompilationDiagnosticArgs']]]]:
376
+ """
377
+ Output only. A list of a rule's corresponding compilation diagnostic messages
378
+ such as compilation errors and compilation warnings.
379
+ Populated in FULL view.
380
+ Structure is documented below.
381
+ """
382
+ return pulumi.get(self, "compilation_diagnostics")
383
+
384
+ @compilation_diagnostics.setter
385
+ def compilation_diagnostics(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['RuleCompilationDiagnosticArgs']]]]):
386
+ pulumi.set(self, "compilation_diagnostics", value)
387
+
388
+ @property
389
+ @pulumi.getter(name="compilationState")
390
+ def compilation_state(self) -> Optional[pulumi.Input[str]]:
391
+ """
392
+ Output only. The current compilation state of the rule.
393
+ Populated in FULL view.
394
+ Possible values:
395
+ COMPILATION_STATE_UNSPECIFIED
396
+ SUCCEEDED
397
+ FAILED
398
+ """
399
+ return pulumi.get(self, "compilation_state")
400
+
401
+ @compilation_state.setter
402
+ def compilation_state(self, value: Optional[pulumi.Input[str]]):
403
+ pulumi.set(self, "compilation_state", value)
404
+
405
+ @property
406
+ @pulumi.getter(name="createTime")
407
+ def create_time(self) -> Optional[pulumi.Input[str]]:
408
+ """
409
+ Output only. The timestamp of when the rule was created.
410
+ Populated in FULL view.
411
+ """
412
+ return pulumi.get(self, "create_time")
413
+
414
+ @create_time.setter
415
+ def create_time(self, value: Optional[pulumi.Input[str]]):
416
+ pulumi.set(self, "create_time", value)
417
+
418
+ @property
419
+ @pulumi.getter(name="dataTables")
420
+ def data_tables(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[str]]]]:
421
+ """
422
+ Output only. Resource names of the data tables used in this rule.
423
+ """
424
+ return pulumi.get(self, "data_tables")
425
+
426
+ @data_tables.setter
427
+ def data_tables(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]]):
428
+ pulumi.set(self, "data_tables", value)
429
+
430
+ @property
431
+ @pulumi.getter(name="deletionPolicy")
432
+ def deletion_policy(self) -> Optional[pulumi.Input[str]]:
433
+ """
434
+ Policy to determine if the rule should be deleted forcefully.
435
+ If deletion_policy = "FORCE", any retrohunts and any detections associated with the rule
436
+ will also be deleted. If deletion_policy = "DEFAULT", the call will only succeed if the
437
+ rule has no associated retrohunts, including completed retrohunts, and no
438
+ associated detections. Regardless of this field's value, the rule
439
+ deployment associated with this rule will also be deleted.
440
+ Possible values: DEFAULT, FORCE
441
+ """
442
+ return pulumi.get(self, "deletion_policy")
443
+
444
+ @deletion_policy.setter
445
+ def deletion_policy(self, value: Optional[pulumi.Input[str]]):
446
+ pulumi.set(self, "deletion_policy", value)
447
+
448
+ @property
449
+ @pulumi.getter(name="displayName")
450
+ def display_name(self) -> Optional[pulumi.Input[str]]:
451
+ """
452
+ The display name of the severity level. Extracted from the meta section of
453
+ the rule text.
454
+ """
455
+ return pulumi.get(self, "display_name")
456
+
457
+ @display_name.setter
458
+ def display_name(self, value: Optional[pulumi.Input[str]]):
459
+ pulumi.set(self, "display_name", value)
460
+
461
+ @property
462
+ @pulumi.getter
463
+ def etag(self) -> Optional[pulumi.Input[str]]:
464
+ """
465
+ The etag for this rule.
466
+ If this is provided on update, the request will succeed if and only if it
467
+ matches the server-computed value, and will fail with an ABORTED error
468
+ otherwise.
469
+ Populated in BASIC view and FULL view.
470
+ """
471
+ return pulumi.get(self, "etag")
472
+
473
+ @etag.setter
474
+ def etag(self, value: Optional[pulumi.Input[str]]):
475
+ pulumi.set(self, "etag", value)
476
+
477
+ @property
478
+ @pulumi.getter
479
+ def instance(self) -> Optional[pulumi.Input[str]]:
480
+ """
481
+ The unique identifier for the Chronicle instance, which is the same as the customer ID.
482
+
483
+
484
+ - - -
485
+ """
486
+ return pulumi.get(self, "instance")
487
+
488
+ @instance.setter
489
+ def instance(self, value: Optional[pulumi.Input[str]]):
490
+ pulumi.set(self, "instance", value)
491
+
492
+ @property
493
+ @pulumi.getter
494
+ def location(self) -> Optional[pulumi.Input[str]]:
495
+ """
496
+ The location of the resource. This is the geographical region where the Chronicle instance resides, such as "us" or "europe-west2".
497
+ """
498
+ return pulumi.get(self, "location")
499
+
500
+ @location.setter
501
+ def location(self, value: Optional[pulumi.Input[str]]):
502
+ pulumi.set(self, "location", value)
503
+
504
+ @property
505
+ @pulumi.getter
506
+ def metadata(self) -> Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]]:
507
+ """
508
+ Output only. Additional metadata specified in the meta section of text.
509
+ Populated in FULL view.
510
+ """
511
+ return pulumi.get(self, "metadata")
512
+
513
+ @metadata.setter
514
+ def metadata(self, value: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]]):
515
+ pulumi.set(self, "metadata", value)
516
+
517
+ @property
518
+ @pulumi.getter
519
+ def name(self) -> Optional[pulumi.Input[str]]:
520
+ """
521
+ Full resource name for the rule. This unique identifier is generated using values provided for the URL parameters.
522
+ Format:
523
+ projects/{project}/locations/{location}/instances/{instance}/rules/{rule}
524
+ """
525
+ return pulumi.get(self, "name")
526
+
527
+ @name.setter
528
+ def name(self, value: Optional[pulumi.Input[str]]):
529
+ pulumi.set(self, "name", value)
530
+
531
+ @property
532
+ @pulumi.getter(name="nearRealTimeLiveRuleEligible")
533
+ def near_real_time_live_rule_eligible(self) -> Optional[pulumi.Input[bool]]:
534
+ """
535
+ Output only. Indicate the rule can run in near real time live rule.
536
+ If this is true, the rule uses the near real time live rule when the run
537
+ frequency is set to LIVE.
538
+ """
539
+ return pulumi.get(self, "near_real_time_live_rule_eligible")
540
+
541
+ @near_real_time_live_rule_eligible.setter
542
+ def near_real_time_live_rule_eligible(self, value: Optional[pulumi.Input[bool]]):
543
+ pulumi.set(self, "near_real_time_live_rule_eligible", value)
544
+
545
+ @property
546
+ @pulumi.getter
547
+ def project(self) -> Optional[pulumi.Input[str]]:
548
+ """
549
+ The ID of the project in which the resource belongs.
550
+ If it is not provided, the provider project is used.
551
+ """
552
+ return pulumi.get(self, "project")
553
+
554
+ @project.setter
555
+ def project(self, value: Optional[pulumi.Input[str]]):
556
+ pulumi.set(self, "project", value)
557
+
558
+ @property
559
+ @pulumi.getter(name="referenceLists")
560
+ def reference_lists(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[str]]]]:
561
+ """
562
+ Output only. Resource names of the reference lists used in this rule.
563
+ Populated in FULL view.
564
+ """
565
+ return pulumi.get(self, "reference_lists")
566
+
567
+ @reference_lists.setter
568
+ def reference_lists(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]]):
569
+ pulumi.set(self, "reference_lists", value)
570
+
571
+ @property
572
+ @pulumi.getter(name="revisionCreateTime")
573
+ def revision_create_time(self) -> Optional[pulumi.Input[str]]:
574
+ """
575
+ Output only. The timestamp of when the rule revision was created.
576
+ Populated in FULL, REVISION_METADATA_ONLY views.
577
+ """
578
+ return pulumi.get(self, "revision_create_time")
579
+
580
+ @revision_create_time.setter
581
+ def revision_create_time(self, value: Optional[pulumi.Input[str]]):
582
+ pulumi.set(self, "revision_create_time", value)
583
+
584
+ @property
585
+ @pulumi.getter(name="revisionId")
586
+ def revision_id(self) -> Optional[pulumi.Input[str]]:
587
+ """
588
+ Output only. The revision ID of the rule.
589
+ A new revision is created whenever the rule text is changed in any way.
590
+ Format: v_{10 digits}_{9 digits}
591
+ Populated in REVISION_METADATA_ONLY view and FULL view.
592
+ """
593
+ return pulumi.get(self, "revision_id")
594
+
595
+ @revision_id.setter
596
+ def revision_id(self, value: Optional[pulumi.Input[str]]):
597
+ pulumi.set(self, "revision_id", value)
598
+
599
+ @property
600
+ @pulumi.getter(name="ruleId")
601
+ def rule_id(self) -> Optional[pulumi.Input[str]]:
602
+ """
603
+ Rule Id is the ID of the Rule.
604
+ """
605
+ return pulumi.get(self, "rule_id")
606
+
607
+ @rule_id.setter
608
+ def rule_id(self, value: Optional[pulumi.Input[str]]):
609
+ pulumi.set(self, "rule_id", value)
610
+
611
+ @property
612
+ @pulumi.getter
613
+ def scope(self) -> Optional[pulumi.Input[str]]:
614
+ """
615
+ Resource name of the DataAccessScope bound to this rule.
616
+ Populated in BASIC view and FULL view.
617
+ If reference lists are used in the rule, validations will be performed
618
+ against this scope to ensure that the reference lists are compatible with
619
+ both the user's and the rule's scopes.
620
+ The scope should be in the format:
621
+ "projects/{project}/locations/{location}/instances/{instance}/dataAccessScopes/{scope}".
622
+ """
623
+ return pulumi.get(self, "scope")
624
+
625
+ @scope.setter
626
+ def scope(self, value: Optional[pulumi.Input[str]]):
627
+ pulumi.set(self, "scope", value)
628
+
629
+ @property
630
+ @pulumi.getter
631
+ def severities(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['RuleSeverityArgs']]]]:
632
+ """
633
+ (Output)
634
+ Output only. The severity of a rule's compilation diagnostic.
635
+ Possible values:
636
+ SEVERITY_UNSPECIFIED
637
+ WARNING
638
+ ERROR
639
+ """
640
+ return pulumi.get(self, "severities")
641
+
642
+ @severities.setter
643
+ def severities(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['RuleSeverityArgs']]]]):
644
+ pulumi.set(self, "severities", value)
645
+
646
+ @property
647
+ @pulumi.getter
648
+ def text(self) -> Optional[pulumi.Input[str]]:
649
+ """
650
+ The YARA-L content of the rule.
651
+ Populated in FULL view.
652
+ """
653
+ return pulumi.get(self, "text")
654
+
655
+ @text.setter
656
+ def text(self, value: Optional[pulumi.Input[str]]):
657
+ pulumi.set(self, "text", value)
658
+
659
+ @property
660
+ @pulumi.getter
661
+ def type(self) -> Optional[pulumi.Input[str]]:
662
+ """
663
+ Possible values:
664
+ RULE_TYPE_UNSPECIFIED
665
+ SINGLE_EVENT
666
+ MULTI_EVENT
667
+ """
668
+ return pulumi.get(self, "type")
669
+
670
+ @type.setter
671
+ def type(self, value: Optional[pulumi.Input[str]]):
672
+ pulumi.set(self, "type", value)
673
+
674
+
675
+ class Rule(pulumi.CustomResource):
676
+ @overload
677
+ def __init__(__self__,
678
+ resource_name: str,
679
+ opts: Optional[pulumi.ResourceOptions] = None,
680
+ deletion_policy: Optional[pulumi.Input[str]] = None,
681
+ etag: Optional[pulumi.Input[str]] = None,
682
+ instance: Optional[pulumi.Input[str]] = None,
683
+ location: Optional[pulumi.Input[str]] = None,
684
+ project: Optional[pulumi.Input[str]] = None,
685
+ rule_id: Optional[pulumi.Input[str]] = None,
686
+ scope: Optional[pulumi.Input[str]] = None,
687
+ text: Optional[pulumi.Input[str]] = None,
688
+ __props__=None):
689
+ """
690
+ ## Example Usage
691
+
692
+ ### Chronicle Rule Basic
693
+
694
+ ```python
695
+ import pulumi
696
+ import pulumi_gcp as gcp
697
+
698
+ example = gcp.chronicle.Rule("example",
699
+ location="us",
700
+ instance="00000000-0000-0000-0000-000000000000",
701
+ deletion_policy="DEFAULT",
702
+ text="rule test_rule { meta: events: $userid = $e.principal.user.userid match: $userid over 10m condition: $e }\\n")
703
+ ```
704
+ ### Chronicle Rule With Force Deletion
705
+
706
+ ```python
707
+ import pulumi
708
+ import pulumi_gcp as gcp
709
+
710
+ example = gcp.chronicle.Rule("example",
711
+ location="us",
712
+ instance="00000000-0000-0000-0000-000000000000",
713
+ deletion_policy="FORCE",
714
+ text="rule test_rule { meta: events: $userid = $e.principal.user.userid match: $userid over 10m condition: $e }\\n")
715
+ ```
716
+ ### Chronicle Rule With Data Access Scope
717
+
718
+ ```python
719
+ import pulumi
720
+ import pulumi_gcp as gcp
721
+
722
+ data_access_scope_test = gcp.chronicle.DataAccessScope("data_access_scope_test",
723
+ location="us",
724
+ instance="00000000-0000-0000-0000-000000000000",
725
+ data_access_scope_id="scope-name",
726
+ description="scope-description",
727
+ allowed_data_access_labels=[{
728
+ "log_type": "GCP_CLOUDAUDIT",
729
+ }])
730
+ example = gcp.chronicle.Rule("example",
731
+ location="us",
732
+ instance="00000000-0000-0000-0000-000000000000",
733
+ scope=google_chronicle_data_access_scope["dataAccessScopeTest"]["name"],
734
+ text="rule test_rule { meta: events: $userid = $e.principal.user.userid match: $userid over 10m condition: $e }\\n")
735
+ ```
736
+
737
+ ## Import
738
+
739
+ Rule can be imported using any of these accepted formats:
740
+
741
+ * `projects/{{project}}/locations/{{location}}/instances/{{instance}}/rules/{{rule_id}}`
742
+
743
+ * `{{project}}/{{location}}/{{instance}}/{{rule_id}}`
744
+
745
+ * `{{location}}/{{instance}}/{{rule_id}}`
746
+
747
+ When using the `pulumi import` command, Rule can be imported using one of the formats above. For example:
748
+
749
+ ```sh
750
+ $ pulumi import gcp:chronicle/rule:Rule default projects/{{project}}/locations/{{location}}/instances/{{instance}}/rules/{{rule_id}}
751
+ ```
752
+
753
+ ```sh
754
+ $ pulumi import gcp:chronicle/rule:Rule default {{project}}/{{location}}/{{instance}}/{{rule_id}}
755
+ ```
756
+
757
+ ```sh
758
+ $ pulumi import gcp:chronicle/rule:Rule default {{location}}/{{instance}}/{{rule_id}}
759
+ ```
760
+
761
+ :param str resource_name: The name of the resource.
762
+ :param pulumi.ResourceOptions opts: Options for the resource.
763
+ :param pulumi.Input[str] deletion_policy: Policy to determine if the rule should be deleted forcefully.
764
+ If deletion_policy = "FORCE", any retrohunts and any detections associated with the rule
765
+ will also be deleted. If deletion_policy = "DEFAULT", the call will only succeed if the
766
+ rule has no associated retrohunts, including completed retrohunts, and no
767
+ associated detections. Regardless of this field's value, the rule
768
+ deployment associated with this rule will also be deleted.
769
+ Possible values: DEFAULT, FORCE
770
+ :param pulumi.Input[str] etag: The etag for this rule.
771
+ If this is provided on update, the request will succeed if and only if it
772
+ matches the server-computed value, and will fail with an ABORTED error
773
+ otherwise.
774
+ Populated in BASIC view and FULL view.
775
+ :param pulumi.Input[str] instance: The unique identifier for the Chronicle instance, which is the same as the customer ID.
776
+
777
+
778
+ - - -
779
+ :param pulumi.Input[str] location: The location of the resource. This is the geographical region where the Chronicle instance resides, such as "us" or "europe-west2".
780
+ :param pulumi.Input[str] project: The ID of the project in which the resource belongs.
781
+ If it is not provided, the provider project is used.
782
+ :param pulumi.Input[str] rule_id: Rule Id is the ID of the Rule.
783
+ :param pulumi.Input[str] scope: Resource name of the DataAccessScope bound to this rule.
784
+ Populated in BASIC view and FULL view.
785
+ If reference lists are used in the rule, validations will be performed
786
+ against this scope to ensure that the reference lists are compatible with
787
+ both the user's and the rule's scopes.
788
+ The scope should be in the format:
789
+ "projects/{project}/locations/{location}/instances/{instance}/dataAccessScopes/{scope}".
790
+ :param pulumi.Input[str] text: The YARA-L content of the rule.
791
+ Populated in FULL view.
792
+ """
793
+ ...
794
+ @overload
795
+ def __init__(__self__,
796
+ resource_name: str,
797
+ args: RuleArgs,
798
+ opts: Optional[pulumi.ResourceOptions] = None):
799
+ """
800
+ ## Example Usage
801
+
802
+ ### Chronicle Rule Basic
803
+
804
+ ```python
805
+ import pulumi
806
+ import pulumi_gcp as gcp
807
+
808
+ example = gcp.chronicle.Rule("example",
809
+ location="us",
810
+ instance="00000000-0000-0000-0000-000000000000",
811
+ deletion_policy="DEFAULT",
812
+ text="rule test_rule { meta: events: $userid = $e.principal.user.userid match: $userid over 10m condition: $e }\\n")
813
+ ```
814
+ ### Chronicle Rule With Force Deletion
815
+
816
+ ```python
817
+ import pulumi
818
+ import pulumi_gcp as gcp
819
+
820
+ example = gcp.chronicle.Rule("example",
821
+ location="us",
822
+ instance="00000000-0000-0000-0000-000000000000",
823
+ deletion_policy="FORCE",
824
+ text="rule test_rule { meta: events: $userid = $e.principal.user.userid match: $userid over 10m condition: $e }\\n")
825
+ ```
826
+ ### Chronicle Rule With Data Access Scope
827
+
828
+ ```python
829
+ import pulumi
830
+ import pulumi_gcp as gcp
831
+
832
+ data_access_scope_test = gcp.chronicle.DataAccessScope("data_access_scope_test",
833
+ location="us",
834
+ instance="00000000-0000-0000-0000-000000000000",
835
+ data_access_scope_id="scope-name",
836
+ description="scope-description",
837
+ allowed_data_access_labels=[{
838
+ "log_type": "GCP_CLOUDAUDIT",
839
+ }])
840
+ example = gcp.chronicle.Rule("example",
841
+ location="us",
842
+ instance="00000000-0000-0000-0000-000000000000",
843
+ scope=google_chronicle_data_access_scope["dataAccessScopeTest"]["name"],
844
+ text="rule test_rule { meta: events: $userid = $e.principal.user.userid match: $userid over 10m condition: $e }\\n")
845
+ ```
846
+
847
+ ## Import
848
+
849
+ Rule can be imported using any of these accepted formats:
850
+
851
+ * `projects/{{project}}/locations/{{location}}/instances/{{instance}}/rules/{{rule_id}}`
852
+
853
+ * `{{project}}/{{location}}/{{instance}}/{{rule_id}}`
854
+
855
+ * `{{location}}/{{instance}}/{{rule_id}}`
856
+
857
+ When using the `pulumi import` command, Rule can be imported using one of the formats above. For example:
858
+
859
+ ```sh
860
+ $ pulumi import gcp:chronicle/rule:Rule default projects/{{project}}/locations/{{location}}/instances/{{instance}}/rules/{{rule_id}}
861
+ ```
862
+
863
+ ```sh
864
+ $ pulumi import gcp:chronicle/rule:Rule default {{project}}/{{location}}/{{instance}}/{{rule_id}}
865
+ ```
866
+
867
+ ```sh
868
+ $ pulumi import gcp:chronicle/rule:Rule default {{location}}/{{instance}}/{{rule_id}}
869
+ ```
870
+
871
+ :param str resource_name: The name of the resource.
872
+ :param RuleArgs args: The arguments to use to populate this resource's properties.
873
+ :param pulumi.ResourceOptions opts: Options for the resource.
874
+ """
875
+ ...
876
+ def __init__(__self__, resource_name: str, *args, **kwargs):
877
+ resource_args, opts = _utilities.get_resource_args_opts(RuleArgs, pulumi.ResourceOptions, *args, **kwargs)
878
+ if resource_args is not None:
879
+ __self__._internal_init(resource_name, opts, **resource_args.__dict__)
880
+ else:
881
+ __self__._internal_init(resource_name, *args, **kwargs)
882
+
883
+ def _internal_init(__self__,
884
+ resource_name: str,
885
+ opts: Optional[pulumi.ResourceOptions] = None,
886
+ deletion_policy: Optional[pulumi.Input[str]] = None,
887
+ etag: Optional[pulumi.Input[str]] = None,
888
+ instance: Optional[pulumi.Input[str]] = None,
889
+ location: Optional[pulumi.Input[str]] = None,
890
+ project: Optional[pulumi.Input[str]] = None,
891
+ rule_id: Optional[pulumi.Input[str]] = None,
892
+ scope: Optional[pulumi.Input[str]] = None,
893
+ text: Optional[pulumi.Input[str]] = None,
894
+ __props__=None):
895
+ opts = pulumi.ResourceOptions.merge(_utilities.get_resource_opts_defaults(), opts)
896
+ if not isinstance(opts, pulumi.ResourceOptions):
897
+ raise TypeError('Expected resource options to be a ResourceOptions instance')
898
+ if opts.id is None:
899
+ if __props__ is not None:
900
+ raise TypeError('__props__ is only valid when passed in combination with a valid opts.id to get an existing resource')
901
+ __props__ = RuleArgs.__new__(RuleArgs)
902
+
903
+ __props__.__dict__["deletion_policy"] = deletion_policy
904
+ __props__.__dict__["etag"] = etag
905
+ if instance is None and not opts.urn:
906
+ raise TypeError("Missing required property 'instance'")
907
+ __props__.__dict__["instance"] = instance
908
+ if location is None and not opts.urn:
909
+ raise TypeError("Missing required property 'location'")
910
+ __props__.__dict__["location"] = location
911
+ __props__.__dict__["project"] = project
912
+ __props__.__dict__["rule_id"] = rule_id
913
+ __props__.__dict__["scope"] = scope
914
+ __props__.__dict__["text"] = text
915
+ __props__.__dict__["allowed_run_frequencies"] = None
916
+ __props__.__dict__["author"] = None
917
+ __props__.__dict__["compilation_diagnostics"] = None
918
+ __props__.__dict__["compilation_state"] = None
919
+ __props__.__dict__["create_time"] = None
920
+ __props__.__dict__["data_tables"] = None
921
+ __props__.__dict__["display_name"] = None
922
+ __props__.__dict__["metadata"] = None
923
+ __props__.__dict__["name"] = None
924
+ __props__.__dict__["near_real_time_live_rule_eligible"] = None
925
+ __props__.__dict__["reference_lists"] = None
926
+ __props__.__dict__["revision_create_time"] = None
927
+ __props__.__dict__["revision_id"] = None
928
+ __props__.__dict__["severities"] = None
929
+ __props__.__dict__["type"] = None
930
+ super(Rule, __self__).__init__(
931
+ 'gcp:chronicle/rule:Rule',
932
+ resource_name,
933
+ __props__,
934
+ opts)
935
+
936
+ @staticmethod
937
+ def get(resource_name: str,
938
+ id: pulumi.Input[str],
939
+ opts: Optional[pulumi.ResourceOptions] = None,
940
+ allowed_run_frequencies: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None,
941
+ author: Optional[pulumi.Input[str]] = None,
942
+ compilation_diagnostics: Optional[pulumi.Input[Sequence[pulumi.Input[Union['RuleCompilationDiagnosticArgs', 'RuleCompilationDiagnosticArgsDict']]]]] = None,
943
+ compilation_state: Optional[pulumi.Input[str]] = None,
944
+ create_time: Optional[pulumi.Input[str]] = None,
945
+ data_tables: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None,
946
+ deletion_policy: Optional[pulumi.Input[str]] = None,
947
+ display_name: Optional[pulumi.Input[str]] = None,
948
+ etag: Optional[pulumi.Input[str]] = None,
949
+ instance: Optional[pulumi.Input[str]] = None,
950
+ location: Optional[pulumi.Input[str]] = None,
951
+ metadata: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None,
952
+ name: Optional[pulumi.Input[str]] = None,
953
+ near_real_time_live_rule_eligible: Optional[pulumi.Input[bool]] = None,
954
+ project: Optional[pulumi.Input[str]] = None,
955
+ reference_lists: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None,
956
+ revision_create_time: Optional[pulumi.Input[str]] = None,
957
+ revision_id: Optional[pulumi.Input[str]] = None,
958
+ rule_id: Optional[pulumi.Input[str]] = None,
959
+ scope: Optional[pulumi.Input[str]] = None,
960
+ severities: Optional[pulumi.Input[Sequence[pulumi.Input[Union['RuleSeverityArgs', 'RuleSeverityArgsDict']]]]] = None,
961
+ text: Optional[pulumi.Input[str]] = None,
962
+ type: Optional[pulumi.Input[str]] = None) -> 'Rule':
963
+ """
964
+ Get an existing Rule resource's state with the given name, id, and optional extra
965
+ properties used to qualify the lookup.
966
+
967
+ :param str resource_name: The unique name of the resulting resource.
968
+ :param pulumi.Input[str] id: The unique provider ID of the resource to lookup.
969
+ :param pulumi.ResourceOptions opts: Options for the resource.
970
+ :param pulumi.Input[Sequence[pulumi.Input[str]]] allowed_run_frequencies: Output only. The run frequencies that are allowed for the rule.
971
+ Populated in BASIC view and FULL view.
972
+ :param pulumi.Input[str] author: Output only. The author of the rule. Extracted from the meta section of text.
973
+ Populated in BASIC view and FULL view.
974
+ :param pulumi.Input[Sequence[pulumi.Input[Union['RuleCompilationDiagnosticArgs', 'RuleCompilationDiagnosticArgsDict']]]] compilation_diagnostics: Output only. A list of a rule's corresponding compilation diagnostic messages
975
+ such as compilation errors and compilation warnings.
976
+ Populated in FULL view.
977
+ Structure is documented below.
978
+ :param pulumi.Input[str] compilation_state: Output only. The current compilation state of the rule.
979
+ Populated in FULL view.
980
+ Possible values:
981
+ COMPILATION_STATE_UNSPECIFIED
982
+ SUCCEEDED
983
+ FAILED
984
+ :param pulumi.Input[str] create_time: Output only. The timestamp of when the rule was created.
985
+ Populated in FULL view.
986
+ :param pulumi.Input[Sequence[pulumi.Input[str]]] data_tables: Output only. Resource names of the data tables used in this rule.
987
+ :param pulumi.Input[str] deletion_policy: Policy to determine if the rule should be deleted forcefully.
988
+ If deletion_policy = "FORCE", any retrohunts and any detections associated with the rule
989
+ will also be deleted. If deletion_policy = "DEFAULT", the call will only succeed if the
990
+ rule has no associated retrohunts, including completed retrohunts, and no
991
+ associated detections. Regardless of this field's value, the rule
992
+ deployment associated with this rule will also be deleted.
993
+ Possible values: DEFAULT, FORCE
994
+ :param pulumi.Input[str] display_name: The display name of the severity level. Extracted from the meta section of
995
+ the rule text.
996
+ :param pulumi.Input[str] etag: The etag for this rule.
997
+ If this is provided on update, the request will succeed if and only if it
998
+ matches the server-computed value, and will fail with an ABORTED error
999
+ otherwise.
1000
+ Populated in BASIC view and FULL view.
1001
+ :param pulumi.Input[str] instance: The unique identifier for the Chronicle instance, which is the same as the customer ID.
1002
+
1003
+
1004
+ - - -
1005
+ :param pulumi.Input[str] location: The location of the resource. This is the geographical region where the Chronicle instance resides, such as "us" or "europe-west2".
1006
+ :param pulumi.Input[Mapping[str, pulumi.Input[str]]] metadata: Output only. Additional metadata specified in the meta section of text.
1007
+ Populated in FULL view.
1008
+ :param pulumi.Input[str] name: Full resource name for the rule. This unique identifier is generated using values provided for the URL parameters.
1009
+ Format:
1010
+ projects/{project}/locations/{location}/instances/{instance}/rules/{rule}
1011
+ :param pulumi.Input[bool] near_real_time_live_rule_eligible: Output only. Indicate the rule can run in near real time live rule.
1012
+ If this is true, the rule uses the near real time live rule when the run
1013
+ frequency is set to LIVE.
1014
+ :param pulumi.Input[str] project: The ID of the project in which the resource belongs.
1015
+ If it is not provided, the provider project is used.
1016
+ :param pulumi.Input[Sequence[pulumi.Input[str]]] reference_lists: Output only. Resource names of the reference lists used in this rule.
1017
+ Populated in FULL view.
1018
+ :param pulumi.Input[str] revision_create_time: Output only. The timestamp of when the rule revision was created.
1019
+ Populated in FULL, REVISION_METADATA_ONLY views.
1020
+ :param pulumi.Input[str] revision_id: Output only. The revision ID of the rule.
1021
+ A new revision is created whenever the rule text is changed in any way.
1022
+ Format: v_{10 digits}_{9 digits}
1023
+ Populated in REVISION_METADATA_ONLY view and FULL view.
1024
+ :param pulumi.Input[str] rule_id: Rule Id is the ID of the Rule.
1025
+ :param pulumi.Input[str] scope: Resource name of the DataAccessScope bound to this rule.
1026
+ Populated in BASIC view and FULL view.
1027
+ If reference lists are used in the rule, validations will be performed
1028
+ against this scope to ensure that the reference lists are compatible with
1029
+ both the user's and the rule's scopes.
1030
+ The scope should be in the format:
1031
+ "projects/{project}/locations/{location}/instances/{instance}/dataAccessScopes/{scope}".
1032
+ :param pulumi.Input[Sequence[pulumi.Input[Union['RuleSeverityArgs', 'RuleSeverityArgsDict']]]] severities: (Output)
1033
+ Output only. The severity of a rule's compilation diagnostic.
1034
+ Possible values:
1035
+ SEVERITY_UNSPECIFIED
1036
+ WARNING
1037
+ ERROR
1038
+ :param pulumi.Input[str] text: The YARA-L content of the rule.
1039
+ Populated in FULL view.
1040
+ :param pulumi.Input[str] type: Possible values:
1041
+ RULE_TYPE_UNSPECIFIED
1042
+ SINGLE_EVENT
1043
+ MULTI_EVENT
1044
+ """
1045
+ opts = pulumi.ResourceOptions.merge(opts, pulumi.ResourceOptions(id=id))
1046
+
1047
+ __props__ = _RuleState.__new__(_RuleState)
1048
+
1049
+ __props__.__dict__["allowed_run_frequencies"] = allowed_run_frequencies
1050
+ __props__.__dict__["author"] = author
1051
+ __props__.__dict__["compilation_diagnostics"] = compilation_diagnostics
1052
+ __props__.__dict__["compilation_state"] = compilation_state
1053
+ __props__.__dict__["create_time"] = create_time
1054
+ __props__.__dict__["data_tables"] = data_tables
1055
+ __props__.__dict__["deletion_policy"] = deletion_policy
1056
+ __props__.__dict__["display_name"] = display_name
1057
+ __props__.__dict__["etag"] = etag
1058
+ __props__.__dict__["instance"] = instance
1059
+ __props__.__dict__["location"] = location
1060
+ __props__.__dict__["metadata"] = metadata
1061
+ __props__.__dict__["name"] = name
1062
+ __props__.__dict__["near_real_time_live_rule_eligible"] = near_real_time_live_rule_eligible
1063
+ __props__.__dict__["project"] = project
1064
+ __props__.__dict__["reference_lists"] = reference_lists
1065
+ __props__.__dict__["revision_create_time"] = revision_create_time
1066
+ __props__.__dict__["revision_id"] = revision_id
1067
+ __props__.__dict__["rule_id"] = rule_id
1068
+ __props__.__dict__["scope"] = scope
1069
+ __props__.__dict__["severities"] = severities
1070
+ __props__.__dict__["text"] = text
1071
+ __props__.__dict__["type"] = type
1072
+ return Rule(resource_name, opts=opts, __props__=__props__)
1073
+
1074
+ @property
1075
+ @pulumi.getter(name="allowedRunFrequencies")
1076
+ def allowed_run_frequencies(self) -> pulumi.Output[Sequence[str]]:
1077
+ """
1078
+ Output only. The run frequencies that are allowed for the rule.
1079
+ Populated in BASIC view and FULL view.
1080
+ """
1081
+ return pulumi.get(self, "allowed_run_frequencies")
1082
+
1083
+ @property
1084
+ @pulumi.getter
1085
+ def author(self) -> pulumi.Output[str]:
1086
+ """
1087
+ Output only. The author of the rule. Extracted from the meta section of text.
1088
+ Populated in BASIC view and FULL view.
1089
+ """
1090
+ return pulumi.get(self, "author")
1091
+
1092
+ @property
1093
+ @pulumi.getter(name="compilationDiagnostics")
1094
+ def compilation_diagnostics(self) -> pulumi.Output[Sequence['outputs.RuleCompilationDiagnostic']]:
1095
+ """
1096
+ Output only. A list of a rule's corresponding compilation diagnostic messages
1097
+ such as compilation errors and compilation warnings.
1098
+ Populated in FULL view.
1099
+ Structure is documented below.
1100
+ """
1101
+ return pulumi.get(self, "compilation_diagnostics")
1102
+
1103
+ @property
1104
+ @pulumi.getter(name="compilationState")
1105
+ def compilation_state(self) -> pulumi.Output[str]:
1106
+ """
1107
+ Output only. The current compilation state of the rule.
1108
+ Populated in FULL view.
1109
+ Possible values:
1110
+ COMPILATION_STATE_UNSPECIFIED
1111
+ SUCCEEDED
1112
+ FAILED
1113
+ """
1114
+ return pulumi.get(self, "compilation_state")
1115
+
1116
+ @property
1117
+ @pulumi.getter(name="createTime")
1118
+ def create_time(self) -> pulumi.Output[str]:
1119
+ """
1120
+ Output only. The timestamp of when the rule was created.
1121
+ Populated in FULL view.
1122
+ """
1123
+ return pulumi.get(self, "create_time")
1124
+
1125
+ @property
1126
+ @pulumi.getter(name="dataTables")
1127
+ def data_tables(self) -> pulumi.Output[Sequence[str]]:
1128
+ """
1129
+ Output only. Resource names of the data tables used in this rule.
1130
+ """
1131
+ return pulumi.get(self, "data_tables")
1132
+
1133
+ @property
1134
+ @pulumi.getter(name="deletionPolicy")
1135
+ def deletion_policy(self) -> pulumi.Output[Optional[str]]:
1136
+ """
1137
+ Policy to determine if the rule should be deleted forcefully.
1138
+ If deletion_policy = "FORCE", any retrohunts and any detections associated with the rule
1139
+ will also be deleted. If deletion_policy = "DEFAULT", the call will only succeed if the
1140
+ rule has no associated retrohunts, including completed retrohunts, and no
1141
+ associated detections. Regardless of this field's value, the rule
1142
+ deployment associated with this rule will also be deleted.
1143
+ Possible values: DEFAULT, FORCE
1144
+ """
1145
+ return pulumi.get(self, "deletion_policy")
1146
+
1147
+ @property
1148
+ @pulumi.getter(name="displayName")
1149
+ def display_name(self) -> pulumi.Output[str]:
1150
+ """
1151
+ The display name of the severity level. Extracted from the meta section of
1152
+ the rule text.
1153
+ """
1154
+ return pulumi.get(self, "display_name")
1155
+
1156
+ @property
1157
+ @pulumi.getter
1158
+ def etag(self) -> pulumi.Output[str]:
1159
+ """
1160
+ The etag for this rule.
1161
+ If this is provided on update, the request will succeed if and only if it
1162
+ matches the server-computed value, and will fail with an ABORTED error
1163
+ otherwise.
1164
+ Populated in BASIC view and FULL view.
1165
+ """
1166
+ return pulumi.get(self, "etag")
1167
+
1168
+ @property
1169
+ @pulumi.getter
1170
+ def instance(self) -> pulumi.Output[str]:
1171
+ """
1172
+ The unique identifier for the Chronicle instance, which is the same as the customer ID.
1173
+
1174
+
1175
+ - - -
1176
+ """
1177
+ return pulumi.get(self, "instance")
1178
+
1179
+ @property
1180
+ @pulumi.getter
1181
+ def location(self) -> pulumi.Output[str]:
1182
+ """
1183
+ The location of the resource. This is the geographical region where the Chronicle instance resides, such as "us" or "europe-west2".
1184
+ """
1185
+ return pulumi.get(self, "location")
1186
+
1187
+ @property
1188
+ @pulumi.getter
1189
+ def metadata(self) -> pulumi.Output[Mapping[str, str]]:
1190
+ """
1191
+ Output only. Additional metadata specified in the meta section of text.
1192
+ Populated in FULL view.
1193
+ """
1194
+ return pulumi.get(self, "metadata")
1195
+
1196
+ @property
1197
+ @pulumi.getter
1198
+ def name(self) -> pulumi.Output[str]:
1199
+ """
1200
+ Full resource name for the rule. This unique identifier is generated using values provided for the URL parameters.
1201
+ Format:
1202
+ projects/{project}/locations/{location}/instances/{instance}/rules/{rule}
1203
+ """
1204
+ return pulumi.get(self, "name")
1205
+
1206
+ @property
1207
+ @pulumi.getter(name="nearRealTimeLiveRuleEligible")
1208
+ def near_real_time_live_rule_eligible(self) -> pulumi.Output[bool]:
1209
+ """
1210
+ Output only. Indicate the rule can run in near real time live rule.
1211
+ If this is true, the rule uses the near real time live rule when the run
1212
+ frequency is set to LIVE.
1213
+ """
1214
+ return pulumi.get(self, "near_real_time_live_rule_eligible")
1215
+
1216
+ @property
1217
+ @pulumi.getter
1218
+ def project(self) -> pulumi.Output[str]:
1219
+ """
1220
+ The ID of the project in which the resource belongs.
1221
+ If it is not provided, the provider project is used.
1222
+ """
1223
+ return pulumi.get(self, "project")
1224
+
1225
+ @property
1226
+ @pulumi.getter(name="referenceLists")
1227
+ def reference_lists(self) -> pulumi.Output[Sequence[str]]:
1228
+ """
1229
+ Output only. Resource names of the reference lists used in this rule.
1230
+ Populated in FULL view.
1231
+ """
1232
+ return pulumi.get(self, "reference_lists")
1233
+
1234
+ @property
1235
+ @pulumi.getter(name="revisionCreateTime")
1236
+ def revision_create_time(self) -> pulumi.Output[str]:
1237
+ """
1238
+ Output only. The timestamp of when the rule revision was created.
1239
+ Populated in FULL, REVISION_METADATA_ONLY views.
1240
+ """
1241
+ return pulumi.get(self, "revision_create_time")
1242
+
1243
+ @property
1244
+ @pulumi.getter(name="revisionId")
1245
+ def revision_id(self) -> pulumi.Output[str]:
1246
+ """
1247
+ Output only. The revision ID of the rule.
1248
+ A new revision is created whenever the rule text is changed in any way.
1249
+ Format: v_{10 digits}_{9 digits}
1250
+ Populated in REVISION_METADATA_ONLY view and FULL view.
1251
+ """
1252
+ return pulumi.get(self, "revision_id")
1253
+
1254
+ @property
1255
+ @pulumi.getter(name="ruleId")
1256
+ def rule_id(self) -> pulumi.Output[str]:
1257
+ """
1258
+ Rule Id is the ID of the Rule.
1259
+ """
1260
+ return pulumi.get(self, "rule_id")
1261
+
1262
+ @property
1263
+ @pulumi.getter
1264
+ def scope(self) -> pulumi.Output[Optional[str]]:
1265
+ """
1266
+ Resource name of the DataAccessScope bound to this rule.
1267
+ Populated in BASIC view and FULL view.
1268
+ If reference lists are used in the rule, validations will be performed
1269
+ against this scope to ensure that the reference lists are compatible with
1270
+ both the user's and the rule's scopes.
1271
+ The scope should be in the format:
1272
+ "projects/{project}/locations/{location}/instances/{instance}/dataAccessScopes/{scope}".
1273
+ """
1274
+ return pulumi.get(self, "scope")
1275
+
1276
+ @property
1277
+ @pulumi.getter
1278
+ def severities(self) -> pulumi.Output[Sequence['outputs.RuleSeverity']]:
1279
+ """
1280
+ (Output)
1281
+ Output only. The severity of a rule's compilation diagnostic.
1282
+ Possible values:
1283
+ SEVERITY_UNSPECIFIED
1284
+ WARNING
1285
+ ERROR
1286
+ """
1287
+ return pulumi.get(self, "severities")
1288
+
1289
+ @property
1290
+ @pulumi.getter
1291
+ def text(self) -> pulumi.Output[Optional[str]]:
1292
+ """
1293
+ The YARA-L content of the rule.
1294
+ Populated in FULL view.
1295
+ """
1296
+ return pulumi.get(self, "text")
1297
+
1298
+ @property
1299
+ @pulumi.getter
1300
+ def type(self) -> pulumi.Output[str]:
1301
+ """
1302
+ Possible values:
1303
+ RULE_TYPE_UNSPECIFIED
1304
+ SINGLE_EVENT
1305
+ MULTI_EVENT
1306
+ """
1307
+ return pulumi.get(self, "type")
1308
+