pulumi-aws 7.11.1__py3-none-any.whl → 7.12.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.
- pulumi_aws/__init__.py +57 -0
- pulumi_aws/acm/certificate.py +20 -20
- pulumi_aws/acmpca/certificate.py +8 -8
- pulumi_aws/apigateway/account.py +0 -4
- pulumi_aws/appflow/_inputs.py +33 -0
- pulumi_aws/appflow/outputs.py +22 -0
- pulumi_aws/appsync/graph_ql_api.py +84 -0
- pulumi_aws/bedrock/_inputs.py +97 -21
- pulumi_aws/bedrock/agent_agent_alias.py +94 -0
- pulumi_aws/bedrock/agentcore_agent_runtime.py +4 -4
- pulumi_aws/bedrock/agentcore_browser.py +42 -0
- pulumi_aws/bedrock/agentcore_gateway_target.py +217 -7
- pulumi_aws/bedrock/agentcore_memory.py +37 -9
- pulumi_aws/bedrock/agentcore_oauth2_credential_provider.py +38 -0
- pulumi_aws/bedrock/outputs.py +64 -17
- pulumi_aws/cloudfront/_inputs.py +15 -14
- pulumi_aws/cloudfront/distribution.py +28 -0
- pulumi_aws/cloudfront/outputs.py +10 -9
- pulumi_aws/cloudhsmv2/cluster.py +64 -0
- pulumi_aws/cloudwatch/_inputs.py +9 -8
- pulumi_aws/cloudwatch/contributor_managed_insight_rule.py +20 -0
- pulumi_aws/cloudwatch/log_delivery_destination.py +53 -12
- pulumi_aws/cloudwatch/outputs.py +6 -5
- pulumi_aws/codebuild/webhook.py +16 -16
- pulumi_aws/codepipeline/webhook.py +16 -16
- pulumi_aws/connect/_inputs.py +50 -4
- pulumi_aws/connect/outputs.py +95 -4
- pulumi_aws/connect/routing_profile.py +42 -18
- pulumi_aws/datasync/location_fsx_ontap_file_system.py +34 -0
- pulumi_aws/datazone/project.py +24 -0
- pulumi_aws/detective/organization_configuration.py +20 -0
- pulumi_aws/dms/_inputs.py +3 -3
- pulumi_aws/dms/outputs.py +2 -2
- pulumi_aws/ec2/__init__.py +1 -0
- pulumi_aws/ec2/_inputs.py +182 -0
- pulumi_aws/ec2/allowed_images_settings.py +338 -0
- pulumi_aws/ec2/get_coip_pools.py +24 -0
- pulumi_aws/ec2/image_block_public_access.py +48 -1
- pulumi_aws/ec2/outputs.py +167 -0
- pulumi_aws/ec2/security_group.py +6 -6
- pulumi_aws/ec2/serial_console_access.py +50 -3
- pulumi_aws/ec2/vpc_endpoint.py +92 -0
- pulumi_aws/ec2clientvpn/authorization_rule.py +7 -7
- pulumi_aws/ec2clientvpn/route.py +7 -7
- pulumi_aws/ec2transitgateway/instance_connect_endpoint.py +47 -0
- pulumi_aws/ecrpublic/get_images.py +24 -0
- pulumi_aws/ecs/_inputs.py +172 -33
- pulumi_aws/ecs/get_service.py +318 -7
- pulumi_aws/ecs/outputs.py +957 -86
- pulumi_aws/ecs/service.py +76 -0
- pulumi_aws/eks/_inputs.py +195 -5
- pulumi_aws/eks/outputs.py +164 -4
- pulumi_aws/elasticache/_inputs.py +154 -0
- pulumi_aws/elasticache/get_replication_group.py +23 -9
- pulumi_aws/elasticache/outputs.py +204 -0
- pulumi_aws/elasticache/replication_group.py +115 -0
- pulumi_aws/elasticache/reserved_cache_node.py +28 -0
- pulumi_aws/finspace/kx_cluster.py +76 -0
- pulumi_aws/fis/__init__.py +1 -0
- pulumi_aws/fis/target_account_configuration.py +401 -0
- pulumi_aws/glue/job.py +7 -7
- pulumi_aws/guardduty/malware_protection_plan.py +50 -0
- pulumi_aws/guardduty/member_detector_feature.py +42 -0
- pulumi_aws/invoicing/__init__.py +11 -0
- pulumi_aws/invoicing/_inputs.py +128 -0
- pulumi_aws/invoicing/invoice_unit.py +620 -0
- pulumi_aws/invoicing/outputs.py +99 -0
- pulumi_aws/iot/ca_certificate.py +32 -32
- pulumi_aws/iot/get_registration_code.py +8 -8
- pulumi_aws/ivschat/logging_configuration.py +28 -0
- pulumi_aws/kinesis/get_stream.py +15 -1
- pulumi_aws/kinesis/stream.py +47 -0
- pulumi_aws/kms/key.py +7 -7
- pulumi_aws/licensemanager/license_grant.py +36 -0
- pulumi_aws/m2/environment.py +150 -0
- pulumi_aws/networkfirewall/tls_inspection_configuration.py +84 -0
- pulumi_aws/networkflowmonitor/__init__.py +12 -0
- pulumi_aws/networkflowmonitor/_inputs.py +412 -0
- pulumi_aws/networkflowmonitor/monitor.py +568 -0
- pulumi_aws/networkflowmonitor/outputs.py +302 -0
- pulumi_aws/networkflowmonitor/scope.py +443 -0
- pulumi_aws/observabilityadmin/__init__.py +11 -0
- pulumi_aws/observabilityadmin/_inputs.py +506 -0
- pulumi_aws/observabilityadmin/centralization_rule_for_organization.py +637 -0
- pulumi_aws/observabilityadmin/outputs.py +415 -0
- pulumi_aws/opensearch/_inputs.py +92 -133
- pulumi_aws/opensearch/authorize_vpc_endpoint_access.py +4 -4
- pulumi_aws/opensearch/domain.py +60 -0
- pulumi_aws/opensearch/get_domain.py +16 -9
- pulumi_aws/opensearch/outputs.py +131 -2
- pulumi_aws/organizations/get_policies.py +2 -2
- pulumi_aws/organizations/get_policies_for_target.py +2 -2
- pulumi_aws/organizations/get_policy.py +1 -1
- pulumi_aws/organizations/organization.py +7 -7
- pulumi_aws/organizations/policy.py +35 -7
- pulumi_aws/pulumi-plugin.json +1 -1
- pulumi_aws/quicksight/analysis.py +108 -0
- pulumi_aws/quicksight/dashboard.py +110 -0
- pulumi_aws/quicksight/template.py +126 -0
- pulumi_aws/redshift/cluster_snapshot.py +28 -0
- pulumi_aws/redshift/get_cluster.py +52 -0
- pulumi_aws/redshift/snapshot_copy_grant.py +22 -0
- pulumi_aws/route53/profiles_association.py +30 -0
- pulumi_aws/route53/profiles_resource_association.py +34 -0
- pulumi_aws/s3control/multi_region_access_point_policy.py +76 -0
- pulumi_aws/s3tables/table.py +76 -1
- pulumi_aws/s3tables/table_bucket.py +78 -3
- pulumi_aws/sagemaker/_inputs.py +225 -232
- pulumi_aws/sagemaker/endpoint_configuration.py +111 -64
- pulumi_aws/sagemaker/outputs.py +154 -158
- pulumi_aws/ssmincidents/get_response_plan.py +14 -0
- pulumi_aws/ssoadmin/account_assignment.py +4 -4
- pulumi_aws/transfer/profile.py +20 -0
- pulumi_aws/transfer/server.py +7 -0
- pulumi_aws/transfer/ssh_key.py +6 -6
- pulumi_aws/wafv2/rule_group.py +440 -0
- pulumi_aws/workspacesweb/session_logger_association.py +80 -0
- pulumi_aws/workspacesweb/trust_store_association.py +24 -0
- {pulumi_aws-7.11.1.dist-info → pulumi_aws-7.12.0.dist-info}/METADATA +1 -1
- {pulumi_aws-7.11.1.dist-info → pulumi_aws-7.12.0.dist-info}/RECORD +122 -107
- {pulumi_aws-7.11.1.dist-info → pulumi_aws-7.12.0.dist-info}/WHEEL +0 -0
- {pulumi_aws-7.11.1.dist-info → pulumi_aws-7.12.0.dist-info}/top_level.txt +0 -0
|
@@ -172,6 +172,13 @@ def get_response_plan(arn: Optional[_builtins.str] = None,
|
|
|
172
172
|
|
|
173
173
|
### Basic Usage
|
|
174
174
|
|
|
175
|
+
```python
|
|
176
|
+
import pulumi
|
|
177
|
+
import pulumi_aws as aws
|
|
178
|
+
|
|
179
|
+
example = aws.ssmincidents.ResponsePlan("example", arn="exampleARN")
|
|
180
|
+
```
|
|
181
|
+
|
|
175
182
|
|
|
176
183
|
:param _builtins.str arn: The Amazon Resource Name (ARN) of the response plan.
|
|
177
184
|
:param _builtins.str region: Region where this resource will be [managed](https://docs.aws.amazon.com/general/latest/gr/rande.html#regional-endpoints). Defaults to the Region set in the provider configuration.
|
|
@@ -207,6 +214,13 @@ def get_response_plan_output(arn: Optional[pulumi.Input[_builtins.str]] = None,
|
|
|
207
214
|
|
|
208
215
|
### Basic Usage
|
|
209
216
|
|
|
217
|
+
```python
|
|
218
|
+
import pulumi
|
|
219
|
+
import pulumi_aws as aws
|
|
220
|
+
|
|
221
|
+
example = aws.ssmincidents.ResponsePlan("example", arn="exampleARN")
|
|
222
|
+
```
|
|
223
|
+
|
|
210
224
|
|
|
211
225
|
:param _builtins.str arn: The Amazon Resource Name (ARN) of the response plan.
|
|
212
226
|
:param _builtins.str region: Region where this resource will be [managed](https://docs.aws.amazon.com/general/latest/gr/rande.html#regional-endpoints). Defaults to the Region set in the provider configuration.
|
|
@@ -311,7 +311,7 @@ class AccountAssignment(pulumi.CustomResource):
|
|
|
311
311
|
identity_store_id=example.identity_store_ids[0],
|
|
312
312
|
display_name="Admin",
|
|
313
313
|
description="Admin Group")
|
|
314
|
-
|
|
314
|
+
example_account_assignment = aws.ssoadmin.AccountAssignment("example",
|
|
315
315
|
instance_arn=example.arns[0],
|
|
316
316
|
permission_set_arn=example_permission_set.arn,
|
|
317
317
|
principal_id=example_group.group_id,
|
|
@@ -322,7 +322,7 @@ class AccountAssignment(pulumi.CustomResource):
|
|
|
322
322
|
instance_arn=example.arns[0],
|
|
323
323
|
managed_policy_arn="arn:aws:iam::aws:policy/AlexaForBusinessDeviceSetup",
|
|
324
324
|
permission_set_arn=example_permission_set.arn,
|
|
325
|
-
opts = pulumi.ResourceOptions(depends_on=[
|
|
325
|
+
opts = pulumi.ResourceOptions(depends_on=[example_account_assignment]))
|
|
326
326
|
```
|
|
327
327
|
|
|
328
328
|
## Import
|
|
@@ -395,7 +395,7 @@ class AccountAssignment(pulumi.CustomResource):
|
|
|
395
395
|
identity_store_id=example.identity_store_ids[0],
|
|
396
396
|
display_name="Admin",
|
|
397
397
|
description="Admin Group")
|
|
398
|
-
|
|
398
|
+
example_account_assignment = aws.ssoadmin.AccountAssignment("example",
|
|
399
399
|
instance_arn=example.arns[0],
|
|
400
400
|
permission_set_arn=example_permission_set.arn,
|
|
401
401
|
principal_id=example_group.group_id,
|
|
@@ -406,7 +406,7 @@ class AccountAssignment(pulumi.CustomResource):
|
|
|
406
406
|
instance_arn=example.arns[0],
|
|
407
407
|
managed_policy_arn="arn:aws:iam::aws:policy/AlexaForBusinessDeviceSetup",
|
|
408
408
|
permission_set_arn=example_permission_set.arn,
|
|
409
|
-
opts = pulumi.ResourceOptions(depends_on=[
|
|
409
|
+
opts = pulumi.ResourceOptions(depends_on=[example_account_assignment]))
|
|
410
410
|
```
|
|
411
411
|
|
|
412
412
|
## Import
|
pulumi_aws/transfer/profile.py
CHANGED
|
@@ -253,6 +253,16 @@ class Profile(pulumi.CustomResource):
|
|
|
253
253
|
|
|
254
254
|
### Basic
|
|
255
255
|
|
|
256
|
+
```python
|
|
257
|
+
import pulumi
|
|
258
|
+
import pulumi_aws as aws
|
|
259
|
+
|
|
260
|
+
example = aws.transfer.Profile("example",
|
|
261
|
+
as2_id="example",
|
|
262
|
+
certificate_ids=[example_aws_transfer_certificate["certificateId"]],
|
|
263
|
+
usage="LOCAL")
|
|
264
|
+
```
|
|
265
|
+
|
|
256
266
|
## Import
|
|
257
267
|
|
|
258
268
|
Using `pulumi import`, import Transfer AS2 Profile using the `profile_id`. For example:
|
|
@@ -282,6 +292,16 @@ class Profile(pulumi.CustomResource):
|
|
|
282
292
|
|
|
283
293
|
### Basic
|
|
284
294
|
|
|
295
|
+
```python
|
|
296
|
+
import pulumi
|
|
297
|
+
import pulumi_aws as aws
|
|
298
|
+
|
|
299
|
+
example = aws.transfer.Profile("example",
|
|
300
|
+
as2_id="example",
|
|
301
|
+
certificate_ids=[example_aws_transfer_certificate["certificateId"]],
|
|
302
|
+
usage="LOCAL")
|
|
303
|
+
```
|
|
304
|
+
|
|
285
305
|
## Import
|
|
286
306
|
|
|
287
307
|
Using `pulumi import`, import Transfer AS2 Profile using the `profile_id`. For example:
|
pulumi_aws/transfer/server.py
CHANGED
|
@@ -85,6 +85,7 @@ class ServerArgs:
|
|
|
85
85
|
* `TransferSecurityPolicy-Restricted-2020-06`
|
|
86
86
|
* `TransferSecurityPolicy-Restricted-2024-06`
|
|
87
87
|
* `TransferSecurityPolicy-SshAuditCompliant-2025-02`
|
|
88
|
+
* `TransferSecurityPolicy-AS2Restricted-2025-07`
|
|
88
89
|
|
|
89
90
|
See [Security policies for AWS Transfer Family servers](https://docs.aws.amazon.com/transfer/latest/userguide/security-policies.html) for details.
|
|
90
91
|
:param pulumi.Input[_builtins.str] sftp_authentication_methods: For SFTP-enabled servers with an `identity_provider_type` of `API_GATEWAY` or `AWS_LAMBDA`. Valid values are `PASSWORD`, `PUBLIC_KEY`, `PUBLIC_KEY_OR_PASSWORD` and `PUBLIC_KEY_AND_PASSWORD`. Default value is: `PUBLIC_KEY_OR_PASSWORD`.
|
|
@@ -370,6 +371,7 @@ class ServerArgs:
|
|
|
370
371
|
* `TransferSecurityPolicy-Restricted-2020-06`
|
|
371
372
|
* `TransferSecurityPolicy-Restricted-2024-06`
|
|
372
373
|
* `TransferSecurityPolicy-SshAuditCompliant-2025-02`
|
|
374
|
+
* `TransferSecurityPolicy-AS2Restricted-2025-07`
|
|
373
375
|
|
|
374
376
|
See [Security policies for AWS Transfer Family servers](https://docs.aws.amazon.com/transfer/latest/userguide/security-policies.html) for details.
|
|
375
377
|
"""
|
|
@@ -514,6 +516,7 @@ class _ServerState:
|
|
|
514
516
|
* `TransferSecurityPolicy-Restricted-2020-06`
|
|
515
517
|
* `TransferSecurityPolicy-Restricted-2024-06`
|
|
516
518
|
* `TransferSecurityPolicy-SshAuditCompliant-2025-02`
|
|
519
|
+
* `TransferSecurityPolicy-AS2Restricted-2025-07`
|
|
517
520
|
|
|
518
521
|
See [Security policies for AWS Transfer Family servers](https://docs.aws.amazon.com/transfer/latest/userguide/security-policies.html) for details.
|
|
519
522
|
:param pulumi.Input[_builtins.str] sftp_authentication_methods: For SFTP-enabled servers with an `identity_provider_type` of `API_GATEWAY` or `AWS_LAMBDA`. Valid values are `PASSWORD`, `PUBLIC_KEY`, `PUBLIC_KEY_OR_PASSWORD` and `PUBLIC_KEY_AND_PASSWORD`. Default value is: `PUBLIC_KEY_OR_PASSWORD`.
|
|
@@ -844,6 +847,7 @@ class _ServerState:
|
|
|
844
847
|
* `TransferSecurityPolicy-Restricted-2020-06`
|
|
845
848
|
* `TransferSecurityPolicy-Restricted-2024-06`
|
|
846
849
|
* `TransferSecurityPolicy-SshAuditCompliant-2025-02`
|
|
850
|
+
* `TransferSecurityPolicy-AS2Restricted-2025-07`
|
|
847
851
|
|
|
848
852
|
See [Security policies for AWS Transfer Family servers](https://docs.aws.amazon.com/transfer/latest/userguide/security-policies.html) for details.
|
|
849
853
|
"""
|
|
@@ -1121,6 +1125,7 @@ class Server(pulumi.CustomResource):
|
|
|
1121
1125
|
* `TransferSecurityPolicy-Restricted-2020-06`
|
|
1122
1126
|
* `TransferSecurityPolicy-Restricted-2024-06`
|
|
1123
1127
|
* `TransferSecurityPolicy-SshAuditCompliant-2025-02`
|
|
1128
|
+
* `TransferSecurityPolicy-AS2Restricted-2025-07`
|
|
1124
1129
|
|
|
1125
1130
|
See [Security policies for AWS Transfer Family servers](https://docs.aws.amazon.com/transfer/latest/userguide/security-policies.html) for details.
|
|
1126
1131
|
:param pulumi.Input[_builtins.str] sftp_authentication_methods: For SFTP-enabled servers with an `identity_provider_type` of `API_GATEWAY` or `AWS_LAMBDA`. Valid values are `PASSWORD`, `PUBLIC_KEY`, `PUBLIC_KEY_OR_PASSWORD` and `PUBLIC_KEY_AND_PASSWORD`. Default value is: `PUBLIC_KEY_OR_PASSWORD`.
|
|
@@ -1421,6 +1426,7 @@ class Server(pulumi.CustomResource):
|
|
|
1421
1426
|
* `TransferSecurityPolicy-Restricted-2020-06`
|
|
1422
1427
|
* `TransferSecurityPolicy-Restricted-2024-06`
|
|
1423
1428
|
* `TransferSecurityPolicy-SshAuditCompliant-2025-02`
|
|
1429
|
+
* `TransferSecurityPolicy-AS2Restricted-2025-07`
|
|
1424
1430
|
|
|
1425
1431
|
See [Security policies for AWS Transfer Family servers](https://docs.aws.amazon.com/transfer/latest/userguide/security-policies.html) for details.
|
|
1426
1432
|
:param pulumi.Input[_builtins.str] sftp_authentication_methods: For SFTP-enabled servers with an `identity_provider_type` of `API_GATEWAY` or `AWS_LAMBDA`. Valid values are `PASSWORD`, `PUBLIC_KEY`, `PUBLIC_KEY_OR_PASSWORD` and `PUBLIC_KEY_AND_PASSWORD`. Default value is: `PUBLIC_KEY_OR_PASSWORD`.
|
|
@@ -1649,6 +1655,7 @@ class Server(pulumi.CustomResource):
|
|
|
1649
1655
|
* `TransferSecurityPolicy-Restricted-2020-06`
|
|
1650
1656
|
* `TransferSecurityPolicy-Restricted-2024-06`
|
|
1651
1657
|
* `TransferSecurityPolicy-SshAuditCompliant-2025-02`
|
|
1658
|
+
* `TransferSecurityPolicy-AS2Restricted-2025-07`
|
|
1652
1659
|
|
|
1653
1660
|
See [Security policies for AWS Transfer Family servers](https://docs.aws.amazon.com/transfer/latest/userguide/security-policies.html) for details.
|
|
1654
1661
|
"""
|
pulumi_aws/transfer/ssh_key.py
CHANGED
|
@@ -191,8 +191,8 @@ class SshKey(pulumi.CustomResource):
|
|
|
191
191
|
import pulumi_std as std
|
|
192
192
|
import pulumi_tls as tls
|
|
193
193
|
|
|
194
|
-
example_private_key = tls.
|
|
195
|
-
algorithm=RSA,
|
|
194
|
+
example_private_key = tls.PrivateKey("example",
|
|
195
|
+
algorithm="RSA",
|
|
196
196
|
rsa_bits=4096)
|
|
197
197
|
example_server = aws.transfer.Server("example",
|
|
198
198
|
identity_provider_type="SERVICE_MANAGED",
|
|
@@ -220,7 +220,7 @@ class SshKey(pulumi.CustomResource):
|
|
|
220
220
|
example_ssh_key = aws.transfer.SshKey("example",
|
|
221
221
|
server_id=example_server.id,
|
|
222
222
|
user_name=example_user.user_name,
|
|
223
|
-
body=std.
|
|
223
|
+
body=std.trimspace_output(input=example_private_key.public_key_openssh).apply(lambda invoke: invoke.result))
|
|
224
224
|
example = aws.iam.get_policy_document(statements=[{
|
|
225
225
|
"sid": "AllowFullAccesstoS3",
|
|
226
226
|
"effect": "Allow",
|
|
@@ -265,8 +265,8 @@ class SshKey(pulumi.CustomResource):
|
|
|
265
265
|
import pulumi_std as std
|
|
266
266
|
import pulumi_tls as tls
|
|
267
267
|
|
|
268
|
-
example_private_key = tls.
|
|
269
|
-
algorithm=RSA,
|
|
268
|
+
example_private_key = tls.PrivateKey("example",
|
|
269
|
+
algorithm="RSA",
|
|
270
270
|
rsa_bits=4096)
|
|
271
271
|
example_server = aws.transfer.Server("example",
|
|
272
272
|
identity_provider_type="SERVICE_MANAGED",
|
|
@@ -294,7 +294,7 @@ class SshKey(pulumi.CustomResource):
|
|
|
294
294
|
example_ssh_key = aws.transfer.SshKey("example",
|
|
295
295
|
server_id=example_server.id,
|
|
296
296
|
user_name=example_user.user_name,
|
|
297
|
-
body=std.
|
|
297
|
+
body=std.trimspace_output(input=example_private_key.public_key_openssh).apply(lambda invoke: invoke.result))
|
|
298
298
|
example = aws.iam.get_policy_document(statements=[{
|
|
299
299
|
"sid": "AllowFullAccesstoS3",
|
|
300
300
|
"effect": "Allow",
|
pulumi_aws/wafv2/rule_group.py
CHANGED
|
@@ -489,6 +489,226 @@ class RuleGroup(pulumi.CustomResource):
|
|
|
489
489
|
|
|
490
490
|
### Complex
|
|
491
491
|
|
|
492
|
+
```python
|
|
493
|
+
import pulumi
|
|
494
|
+
import pulumi_aws as aws
|
|
495
|
+
|
|
496
|
+
test = aws.wafv2.IpSet("test",
|
|
497
|
+
name="test",
|
|
498
|
+
scope="REGIONAL",
|
|
499
|
+
ip_address_version="IPV4",
|
|
500
|
+
addresses=[
|
|
501
|
+
"1.1.1.1/32",
|
|
502
|
+
"2.2.2.2/32",
|
|
503
|
+
])
|
|
504
|
+
test_regex_pattern_set = aws.wafv2.RegexPatternSet("test",
|
|
505
|
+
name="test",
|
|
506
|
+
scope="REGIONAL",
|
|
507
|
+
regular_expressions=[{
|
|
508
|
+
"regex_string": "one",
|
|
509
|
+
}])
|
|
510
|
+
example = aws.wafv2.RuleGroup("example",
|
|
511
|
+
name="complex-example",
|
|
512
|
+
description="An rule group containing all statements",
|
|
513
|
+
scope="REGIONAL",
|
|
514
|
+
capacity=500,
|
|
515
|
+
rules=[
|
|
516
|
+
{
|
|
517
|
+
"name": "rule-1",
|
|
518
|
+
"priority": 1,
|
|
519
|
+
"action": {
|
|
520
|
+
"block": {},
|
|
521
|
+
},
|
|
522
|
+
"statement": {
|
|
523
|
+
"not_statement": {
|
|
524
|
+
"statements": [{
|
|
525
|
+
"and_statement": {
|
|
526
|
+
"statements": [
|
|
527
|
+
{
|
|
528
|
+
"geo_match_statement": {
|
|
529
|
+
"country_codes": ["US"],
|
|
530
|
+
},
|
|
531
|
+
},
|
|
532
|
+
{
|
|
533
|
+
"byte_match_statement": {
|
|
534
|
+
"positional_constraint": "CONTAINS",
|
|
535
|
+
"search_string": "word",
|
|
536
|
+
"field_to_match": {
|
|
537
|
+
"all_query_arguments": {},
|
|
538
|
+
},
|
|
539
|
+
"text_transformations": [
|
|
540
|
+
{
|
|
541
|
+
"priority": 5,
|
|
542
|
+
"type": "CMD_LINE",
|
|
543
|
+
},
|
|
544
|
+
{
|
|
545
|
+
"priority": 2,
|
|
546
|
+
"type": "LOWERCASE",
|
|
547
|
+
},
|
|
548
|
+
],
|
|
549
|
+
},
|
|
550
|
+
},
|
|
551
|
+
],
|
|
552
|
+
},
|
|
553
|
+
}],
|
|
554
|
+
},
|
|
555
|
+
},
|
|
556
|
+
"visibility_config": {
|
|
557
|
+
"cloudwatch_metrics_enabled": False,
|
|
558
|
+
"metric_name": "rule-1",
|
|
559
|
+
"sampled_requests_enabled": False,
|
|
560
|
+
},
|
|
561
|
+
},
|
|
562
|
+
{
|
|
563
|
+
"name": "rule-2",
|
|
564
|
+
"priority": 2,
|
|
565
|
+
"action": {
|
|
566
|
+
"count": {},
|
|
567
|
+
},
|
|
568
|
+
"statement": {
|
|
569
|
+
"or_statement": {
|
|
570
|
+
"statements": [
|
|
571
|
+
{
|
|
572
|
+
"regex_match_statement": {
|
|
573
|
+
"regex_string": "a-z?",
|
|
574
|
+
"field_to_match": {
|
|
575
|
+
"single_header": {
|
|
576
|
+
"name": "user-agent",
|
|
577
|
+
},
|
|
578
|
+
},
|
|
579
|
+
"text_transformations": [{
|
|
580
|
+
"priority": 6,
|
|
581
|
+
"type": "NONE",
|
|
582
|
+
}],
|
|
583
|
+
},
|
|
584
|
+
},
|
|
585
|
+
{
|
|
586
|
+
"sqli_match_statement": {
|
|
587
|
+
"field_to_match": {
|
|
588
|
+
"body": {},
|
|
589
|
+
},
|
|
590
|
+
"text_transformations": [
|
|
591
|
+
{
|
|
592
|
+
"priority": 5,
|
|
593
|
+
"type": "URL_DECODE",
|
|
594
|
+
},
|
|
595
|
+
{
|
|
596
|
+
"priority": 4,
|
|
597
|
+
"type": "HTML_ENTITY_DECODE",
|
|
598
|
+
},
|
|
599
|
+
{
|
|
600
|
+
"priority": 3,
|
|
601
|
+
"type": "COMPRESS_WHITE_SPACE",
|
|
602
|
+
},
|
|
603
|
+
],
|
|
604
|
+
},
|
|
605
|
+
},
|
|
606
|
+
{
|
|
607
|
+
"xss_match_statement": {
|
|
608
|
+
"field_to_match": {
|
|
609
|
+
"method": {},
|
|
610
|
+
},
|
|
611
|
+
"text_transformations": [{
|
|
612
|
+
"priority": 2,
|
|
613
|
+
"type": "NONE",
|
|
614
|
+
}],
|
|
615
|
+
},
|
|
616
|
+
},
|
|
617
|
+
],
|
|
618
|
+
},
|
|
619
|
+
},
|
|
620
|
+
"visibility_config": {
|
|
621
|
+
"cloudwatch_metrics_enabled": False,
|
|
622
|
+
"metric_name": "rule-2",
|
|
623
|
+
"sampled_requests_enabled": False,
|
|
624
|
+
},
|
|
625
|
+
"captcha_config": {
|
|
626
|
+
"immunity_time_property": {
|
|
627
|
+
"immunity_time": 240,
|
|
628
|
+
},
|
|
629
|
+
},
|
|
630
|
+
},
|
|
631
|
+
{
|
|
632
|
+
"name": "rule-3",
|
|
633
|
+
"priority": 3,
|
|
634
|
+
"action": {
|
|
635
|
+
"block": {},
|
|
636
|
+
},
|
|
637
|
+
"statement": {
|
|
638
|
+
"size_constraint_statement": {
|
|
639
|
+
"comparison_operator": "GT",
|
|
640
|
+
"size": 100,
|
|
641
|
+
"field_to_match": {
|
|
642
|
+
"single_query_argument": {
|
|
643
|
+
"name": "username",
|
|
644
|
+
},
|
|
645
|
+
},
|
|
646
|
+
"text_transformations": [{
|
|
647
|
+
"priority": 5,
|
|
648
|
+
"type": "NONE",
|
|
649
|
+
}],
|
|
650
|
+
},
|
|
651
|
+
},
|
|
652
|
+
"visibility_config": {
|
|
653
|
+
"cloudwatch_metrics_enabled": False,
|
|
654
|
+
"metric_name": "rule-3",
|
|
655
|
+
"sampled_requests_enabled": False,
|
|
656
|
+
},
|
|
657
|
+
},
|
|
658
|
+
{
|
|
659
|
+
"name": "rule-4",
|
|
660
|
+
"priority": 4,
|
|
661
|
+
"action": {
|
|
662
|
+
"block": {},
|
|
663
|
+
},
|
|
664
|
+
"statement": {
|
|
665
|
+
"or_statement": {
|
|
666
|
+
"statements": [
|
|
667
|
+
{
|
|
668
|
+
"ip_set_reference_statement": {
|
|
669
|
+
"arn": test.arn,
|
|
670
|
+
},
|
|
671
|
+
},
|
|
672
|
+
{
|
|
673
|
+
"regex_pattern_set_reference_statement": {
|
|
674
|
+
"arn": test_regex_pattern_set.arn,
|
|
675
|
+
"field_to_match": {
|
|
676
|
+
"single_header": {
|
|
677
|
+
"name": "referer",
|
|
678
|
+
},
|
|
679
|
+
},
|
|
680
|
+
"text_transformations": [{
|
|
681
|
+
"priority": 2,
|
|
682
|
+
"type": "NONE",
|
|
683
|
+
}],
|
|
684
|
+
},
|
|
685
|
+
},
|
|
686
|
+
],
|
|
687
|
+
},
|
|
688
|
+
},
|
|
689
|
+
"visibility_config": {
|
|
690
|
+
"cloudwatch_metrics_enabled": False,
|
|
691
|
+
"metric_name": "rule-4",
|
|
692
|
+
"sampled_requests_enabled": False,
|
|
693
|
+
},
|
|
694
|
+
},
|
|
695
|
+
],
|
|
696
|
+
visibility_config={
|
|
697
|
+
"cloudwatch_metrics_enabled": False,
|
|
698
|
+
"metric_name": "friendly-metric-name",
|
|
699
|
+
"sampled_requests_enabled": False,
|
|
700
|
+
},
|
|
701
|
+
captcha_config=[{
|
|
702
|
+
"immunityTimeProperty": [{
|
|
703
|
+
"immunityTime": 120,
|
|
704
|
+
}],
|
|
705
|
+
}],
|
|
706
|
+
tags={
|
|
707
|
+
"Name": "example-and-statement",
|
|
708
|
+
"Code": "123456",
|
|
709
|
+
})
|
|
710
|
+
```
|
|
711
|
+
|
|
492
712
|
### Using rules_json
|
|
493
713
|
|
|
494
714
|
```python
|
|
@@ -604,6 +824,226 @@ class RuleGroup(pulumi.CustomResource):
|
|
|
604
824
|
|
|
605
825
|
### Complex
|
|
606
826
|
|
|
827
|
+
```python
|
|
828
|
+
import pulumi
|
|
829
|
+
import pulumi_aws as aws
|
|
830
|
+
|
|
831
|
+
test = aws.wafv2.IpSet("test",
|
|
832
|
+
name="test",
|
|
833
|
+
scope="REGIONAL",
|
|
834
|
+
ip_address_version="IPV4",
|
|
835
|
+
addresses=[
|
|
836
|
+
"1.1.1.1/32",
|
|
837
|
+
"2.2.2.2/32",
|
|
838
|
+
])
|
|
839
|
+
test_regex_pattern_set = aws.wafv2.RegexPatternSet("test",
|
|
840
|
+
name="test",
|
|
841
|
+
scope="REGIONAL",
|
|
842
|
+
regular_expressions=[{
|
|
843
|
+
"regex_string": "one",
|
|
844
|
+
}])
|
|
845
|
+
example = aws.wafv2.RuleGroup("example",
|
|
846
|
+
name="complex-example",
|
|
847
|
+
description="An rule group containing all statements",
|
|
848
|
+
scope="REGIONAL",
|
|
849
|
+
capacity=500,
|
|
850
|
+
rules=[
|
|
851
|
+
{
|
|
852
|
+
"name": "rule-1",
|
|
853
|
+
"priority": 1,
|
|
854
|
+
"action": {
|
|
855
|
+
"block": {},
|
|
856
|
+
},
|
|
857
|
+
"statement": {
|
|
858
|
+
"not_statement": {
|
|
859
|
+
"statements": [{
|
|
860
|
+
"and_statement": {
|
|
861
|
+
"statements": [
|
|
862
|
+
{
|
|
863
|
+
"geo_match_statement": {
|
|
864
|
+
"country_codes": ["US"],
|
|
865
|
+
},
|
|
866
|
+
},
|
|
867
|
+
{
|
|
868
|
+
"byte_match_statement": {
|
|
869
|
+
"positional_constraint": "CONTAINS",
|
|
870
|
+
"search_string": "word",
|
|
871
|
+
"field_to_match": {
|
|
872
|
+
"all_query_arguments": {},
|
|
873
|
+
},
|
|
874
|
+
"text_transformations": [
|
|
875
|
+
{
|
|
876
|
+
"priority": 5,
|
|
877
|
+
"type": "CMD_LINE",
|
|
878
|
+
},
|
|
879
|
+
{
|
|
880
|
+
"priority": 2,
|
|
881
|
+
"type": "LOWERCASE",
|
|
882
|
+
},
|
|
883
|
+
],
|
|
884
|
+
},
|
|
885
|
+
},
|
|
886
|
+
],
|
|
887
|
+
},
|
|
888
|
+
}],
|
|
889
|
+
},
|
|
890
|
+
},
|
|
891
|
+
"visibility_config": {
|
|
892
|
+
"cloudwatch_metrics_enabled": False,
|
|
893
|
+
"metric_name": "rule-1",
|
|
894
|
+
"sampled_requests_enabled": False,
|
|
895
|
+
},
|
|
896
|
+
},
|
|
897
|
+
{
|
|
898
|
+
"name": "rule-2",
|
|
899
|
+
"priority": 2,
|
|
900
|
+
"action": {
|
|
901
|
+
"count": {},
|
|
902
|
+
},
|
|
903
|
+
"statement": {
|
|
904
|
+
"or_statement": {
|
|
905
|
+
"statements": [
|
|
906
|
+
{
|
|
907
|
+
"regex_match_statement": {
|
|
908
|
+
"regex_string": "a-z?",
|
|
909
|
+
"field_to_match": {
|
|
910
|
+
"single_header": {
|
|
911
|
+
"name": "user-agent",
|
|
912
|
+
},
|
|
913
|
+
},
|
|
914
|
+
"text_transformations": [{
|
|
915
|
+
"priority": 6,
|
|
916
|
+
"type": "NONE",
|
|
917
|
+
}],
|
|
918
|
+
},
|
|
919
|
+
},
|
|
920
|
+
{
|
|
921
|
+
"sqli_match_statement": {
|
|
922
|
+
"field_to_match": {
|
|
923
|
+
"body": {},
|
|
924
|
+
},
|
|
925
|
+
"text_transformations": [
|
|
926
|
+
{
|
|
927
|
+
"priority": 5,
|
|
928
|
+
"type": "URL_DECODE",
|
|
929
|
+
},
|
|
930
|
+
{
|
|
931
|
+
"priority": 4,
|
|
932
|
+
"type": "HTML_ENTITY_DECODE",
|
|
933
|
+
},
|
|
934
|
+
{
|
|
935
|
+
"priority": 3,
|
|
936
|
+
"type": "COMPRESS_WHITE_SPACE",
|
|
937
|
+
},
|
|
938
|
+
],
|
|
939
|
+
},
|
|
940
|
+
},
|
|
941
|
+
{
|
|
942
|
+
"xss_match_statement": {
|
|
943
|
+
"field_to_match": {
|
|
944
|
+
"method": {},
|
|
945
|
+
},
|
|
946
|
+
"text_transformations": [{
|
|
947
|
+
"priority": 2,
|
|
948
|
+
"type": "NONE",
|
|
949
|
+
}],
|
|
950
|
+
},
|
|
951
|
+
},
|
|
952
|
+
],
|
|
953
|
+
},
|
|
954
|
+
},
|
|
955
|
+
"visibility_config": {
|
|
956
|
+
"cloudwatch_metrics_enabled": False,
|
|
957
|
+
"metric_name": "rule-2",
|
|
958
|
+
"sampled_requests_enabled": False,
|
|
959
|
+
},
|
|
960
|
+
"captcha_config": {
|
|
961
|
+
"immunity_time_property": {
|
|
962
|
+
"immunity_time": 240,
|
|
963
|
+
},
|
|
964
|
+
},
|
|
965
|
+
},
|
|
966
|
+
{
|
|
967
|
+
"name": "rule-3",
|
|
968
|
+
"priority": 3,
|
|
969
|
+
"action": {
|
|
970
|
+
"block": {},
|
|
971
|
+
},
|
|
972
|
+
"statement": {
|
|
973
|
+
"size_constraint_statement": {
|
|
974
|
+
"comparison_operator": "GT",
|
|
975
|
+
"size": 100,
|
|
976
|
+
"field_to_match": {
|
|
977
|
+
"single_query_argument": {
|
|
978
|
+
"name": "username",
|
|
979
|
+
},
|
|
980
|
+
},
|
|
981
|
+
"text_transformations": [{
|
|
982
|
+
"priority": 5,
|
|
983
|
+
"type": "NONE",
|
|
984
|
+
}],
|
|
985
|
+
},
|
|
986
|
+
},
|
|
987
|
+
"visibility_config": {
|
|
988
|
+
"cloudwatch_metrics_enabled": False,
|
|
989
|
+
"metric_name": "rule-3",
|
|
990
|
+
"sampled_requests_enabled": False,
|
|
991
|
+
},
|
|
992
|
+
},
|
|
993
|
+
{
|
|
994
|
+
"name": "rule-4",
|
|
995
|
+
"priority": 4,
|
|
996
|
+
"action": {
|
|
997
|
+
"block": {},
|
|
998
|
+
},
|
|
999
|
+
"statement": {
|
|
1000
|
+
"or_statement": {
|
|
1001
|
+
"statements": [
|
|
1002
|
+
{
|
|
1003
|
+
"ip_set_reference_statement": {
|
|
1004
|
+
"arn": test.arn,
|
|
1005
|
+
},
|
|
1006
|
+
},
|
|
1007
|
+
{
|
|
1008
|
+
"regex_pattern_set_reference_statement": {
|
|
1009
|
+
"arn": test_regex_pattern_set.arn,
|
|
1010
|
+
"field_to_match": {
|
|
1011
|
+
"single_header": {
|
|
1012
|
+
"name": "referer",
|
|
1013
|
+
},
|
|
1014
|
+
},
|
|
1015
|
+
"text_transformations": [{
|
|
1016
|
+
"priority": 2,
|
|
1017
|
+
"type": "NONE",
|
|
1018
|
+
}],
|
|
1019
|
+
},
|
|
1020
|
+
},
|
|
1021
|
+
],
|
|
1022
|
+
},
|
|
1023
|
+
},
|
|
1024
|
+
"visibility_config": {
|
|
1025
|
+
"cloudwatch_metrics_enabled": False,
|
|
1026
|
+
"metric_name": "rule-4",
|
|
1027
|
+
"sampled_requests_enabled": False,
|
|
1028
|
+
},
|
|
1029
|
+
},
|
|
1030
|
+
],
|
|
1031
|
+
visibility_config={
|
|
1032
|
+
"cloudwatch_metrics_enabled": False,
|
|
1033
|
+
"metric_name": "friendly-metric-name",
|
|
1034
|
+
"sampled_requests_enabled": False,
|
|
1035
|
+
},
|
|
1036
|
+
captcha_config=[{
|
|
1037
|
+
"immunityTimeProperty": [{
|
|
1038
|
+
"immunityTime": 120,
|
|
1039
|
+
}],
|
|
1040
|
+
}],
|
|
1041
|
+
tags={
|
|
1042
|
+
"Name": "example-and-statement",
|
|
1043
|
+
"Code": "123456",
|
|
1044
|
+
})
|
|
1045
|
+
```
|
|
1046
|
+
|
|
607
1047
|
### Using rules_json
|
|
608
1048
|
|
|
609
1049
|
```python
|