aws-cdk-lib 2.175.1__py3-none-any.whl → 2.177.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.
Potentially problematic release.
This version of aws-cdk-lib might be problematic. Click here for more details.
- aws_cdk/__init__.py +26 -7
- aws_cdk/_jsii/__init__.py +1 -1
- aws_cdk/_jsii/{aws-cdk-lib@2.175.1.jsii.tgz → aws-cdk-lib@2.177.0.jsii.tgz} +0 -0
- aws_cdk/aws_apigatewayv2_integrations/__init__.py +161 -9
- aws_cdk/aws_appconfig/__init__.py +106 -24
- aws_cdk/aws_appsync/__init__.py +4 -3
- aws_cdk/aws_backup/__init__.py +18 -84
- aws_cdk/aws_batch/__init__.py +4 -2
- aws_cdk/aws_bedrock/__init__.py +5395 -2508
- aws_cdk/aws_cleanrooms/__init__.py +77 -34
- aws_cdk/aws_cloudformation/__init__.py +4 -2
- aws_cdk/aws_cloudfront/__init__.py +12 -2
- aws_cdk/aws_cloudfront/experimental/__init__.py +1 -1
- aws_cdk/aws_cloudfront_origins/__init__.py +33 -2
- aws_cdk/aws_cloudwatch/__init__.py +53 -49
- aws_cdk/aws_codebuild/__init__.py +36 -0
- aws_cdk/aws_codepipeline/__init__.py +35 -0
- aws_cdk/aws_cognito/__init__.py +285 -253
- aws_cdk/aws_customerprofiles/__init__.py +1060 -0
- aws_cdk/aws_datazone/__init__.py +195 -125
- aws_cdk/aws_docdb/__init__.py +29 -9
- aws_cdk/aws_dynamodb/__init__.py +77 -58
- aws_cdk/aws_ec2/__init__.py +16 -11
- aws_cdk/aws_ecs/__init__.py +127 -43
- aws_cdk/aws_efs/__init__.py +5 -5
- aws_cdk/aws_eks/__init__.py +24 -3
- aws_cdk/aws_elasticloadbalancingv2/__init__.py +41 -5
- aws_cdk/aws_emrserverless/__init__.py +86 -0
- aws_cdk/aws_fms/__init__.py +42 -0
- aws_cdk/aws_gamelift/__init__.py +8 -10
- aws_cdk/aws_healthlake/__init__.py +36 -40
- aws_cdk/aws_iam/__init__.py +8 -0
- aws_cdk/aws_imagebuilder/__init__.py +62 -48
- aws_cdk/aws_lambda/__init__.py +21 -8
- aws_cdk/aws_lambda_event_sources/__init__.py +9 -9
- aws_cdk/aws_lex/__init__.py +105 -0
- aws_cdk/aws_logs/__init__.py +59 -59
- aws_cdk/aws_mediaconvert/__init__.py +7 -3
- aws_cdk/aws_notifications/__init__.py +1390 -0
- aws_cdk/aws_notificationscontacts/__init__.py +593 -0
- aws_cdk/aws_organizations/__init__.py +5 -9
- aws_cdk/aws_rds/__init__.py +99 -30
- aws_cdk/aws_redshift/__init__.py +9 -5
- aws_cdk/aws_resiliencehub/__init__.py +41 -0
- aws_cdk/aws_route53/__init__.py +4 -4
- aws_cdk/aws_route53_targets/__init__.py +15 -15
- aws_cdk/aws_s3/__init__.py +794 -5
- aws_cdk/aws_s3_notifications/__init__.py +5 -5
- aws_cdk/aws_s3tables/__init__.py +2 -2
- aws_cdk/aws_ses/__init__.py +25 -4
- aws_cdk/aws_sns/__init__.py +39 -0
- aws_cdk/aws_ssm/__init__.py +14 -7
- aws_cdk/aws_ssmquicksetup/__init__.py +84 -84
- aws_cdk/aws_sso/__init__.py +9 -5
- aws_cdk/aws_synthetics/__init__.py +105 -32
- aws_cdk/cloud_assembly_schema/__init__.py +63 -4
- aws_cdk/cx_api/__init__.py +69 -8
- {aws_cdk_lib-2.175.1.dist-info → aws_cdk_lib-2.177.0.dist-info}/METADATA +3 -3
- {aws_cdk_lib-2.175.1.dist-info → aws_cdk_lib-2.177.0.dist-info}/RECORD +63 -62
- aws_cdk/aws_iot1click/__init__.py +0 -1193
- {aws_cdk_lib-2.175.1.dist-info → aws_cdk_lib-2.177.0.dist-info}/LICENSE +0 -0
- {aws_cdk_lib-2.175.1.dist-info → aws_cdk_lib-2.177.0.dist-info}/NOTICE +0 -0
- {aws_cdk_lib-2.175.1.dist-info → aws_cdk_lib-2.177.0.dist-info}/WHEEL +0 -0
- {aws_cdk_lib-2.175.1.dist-info → aws_cdk_lib-2.177.0.dist-info}/top_level.txt +0 -0
aws_cdk/aws_s3/__init__.py
CHANGED
|
@@ -891,6 +891,110 @@ s3.Bucket(self, "Bucket2",
|
|
|
891
891
|
object_lock_default_retention=s3.ObjectLockRetention.compliance(Duration.days(365))
|
|
892
892
|
)
|
|
893
893
|
```
|
|
894
|
+
|
|
895
|
+
## Replicating Objects
|
|
896
|
+
|
|
897
|
+
You can use [replicating objects](https://docs.aws.amazon.com/AmazonS3/latest/userguide/replication.html) to enable automatic, asynchronous copying of objects across Amazon S3 buckets.
|
|
898
|
+
Buckets that are configured for object replication can be owned by the same AWS account or by different accounts.
|
|
899
|
+
You can replicate objects to a single destination bucket or to multiple destination buckets.
|
|
900
|
+
The destination buckets can be in different AWS Regions or within the same Region as the source bucket.
|
|
901
|
+
|
|
902
|
+
To replicate objects to a destination bucket, you can specify the `replicationRules` property:
|
|
903
|
+
|
|
904
|
+
```python
|
|
905
|
+
# destination_bucket1: s3.IBucket
|
|
906
|
+
# destination_bucket2: s3.IBucket
|
|
907
|
+
# kms_key: kms.IKey
|
|
908
|
+
|
|
909
|
+
|
|
910
|
+
source_bucket = s3.Bucket(self, "SourceBucket",
|
|
911
|
+
# Versioning must be enabled on both the source and destination bucket
|
|
912
|
+
versioned=True,
|
|
913
|
+
replication_rules=[s3.ReplicationRule(
|
|
914
|
+
# The destination bucket for the replication rule.
|
|
915
|
+
destination=destination_bucket1,
|
|
916
|
+
# The priority of the rule.
|
|
917
|
+
# Amazon S3 will attempt to replicate objects according to all replication rules.
|
|
918
|
+
# However, if there are two or more rules with the same destination bucket, then objects will be replicated according to the rule with the highest priority.
|
|
919
|
+
# The higher the number, the higher the priority.
|
|
920
|
+
# It is essential to specify priority explicitly when the replication configuration has multiple rules.
|
|
921
|
+
priority=1
|
|
922
|
+
), s3.ReplicationRule(
|
|
923
|
+
destination=destination_bucket2,
|
|
924
|
+
priority=2,
|
|
925
|
+
# Whether to specify S3 Replication Time Control (S3 RTC).
|
|
926
|
+
# S3 RTC replicates most objects that you upload to Amazon S3 in seconds,
|
|
927
|
+
# and 99.99 percent of those objects within specified time.
|
|
928
|
+
replication_time_control=s3.ReplicationTimeValue.FIFTEEN_MINUTES,
|
|
929
|
+
# Whether to enable replication metrics about S3 RTC.
|
|
930
|
+
# If set, metrics will be output to indicate whether replication by S3 RTC took longer than the configured time.
|
|
931
|
+
metrics=s3.ReplicationTimeValue.FIFTEEN_MINUTES,
|
|
932
|
+
# The kms key to use for the destination bucket.
|
|
933
|
+
kms_key=kms_key,
|
|
934
|
+
# The storage class to use for the destination bucket.
|
|
935
|
+
storage_class=s3.StorageClass.INFREQUENT_ACCESS,
|
|
936
|
+
# Whether to replicate objects with SSE-KMS encryption.
|
|
937
|
+
sse_kms_encrypted_objects=False,
|
|
938
|
+
# Whether to replicate modifications on replicas.
|
|
939
|
+
replica_modifications=True,
|
|
940
|
+
# Whether to replicate delete markers.
|
|
941
|
+
# This property cannot be enabled if the replication rule has a tag filter.
|
|
942
|
+
delete_marker_replication=False,
|
|
943
|
+
# The ID of the rule.
|
|
944
|
+
id="full-settings-rule",
|
|
945
|
+
# The object filter for the rule.
|
|
946
|
+
filter=s3.Filter(
|
|
947
|
+
# The prefix filter for the rule.
|
|
948
|
+
prefix="prefix",
|
|
949
|
+
# The tag filter for the rule.
|
|
950
|
+
tags=[s3.Tag(
|
|
951
|
+
key="tagKey",
|
|
952
|
+
value="tagValue"
|
|
953
|
+
)
|
|
954
|
+
]
|
|
955
|
+
)
|
|
956
|
+
)
|
|
957
|
+
]
|
|
958
|
+
)
|
|
959
|
+
```
|
|
960
|
+
|
|
961
|
+
### Cross Account Replication
|
|
962
|
+
|
|
963
|
+
You can also set a destination bucket from a different account as the replication destination.
|
|
964
|
+
|
|
965
|
+
In this case, the bucket policy for the destination bucket is required, to configure it through CDK use `addReplicationPolicy()` method to add bucket policy on destination bucket.
|
|
966
|
+
In a cross-account scenario, where the source and destination buckets are owned by different AWS accounts, you can use a KMS key to encrypt object replicas. However, the KMS key owner must grant the source bucket owner permission to use the KMS key.
|
|
967
|
+
For more information, please refer to https://docs.aws.amazon.com/AmazonS3/latest/userguide/replication-walkthrough-2.html .
|
|
968
|
+
|
|
969
|
+
> **NOTE:** AWS managed keys don't allow cross-account use, and therefore can't be used to perform cross-account replication.
|
|
970
|
+
|
|
971
|
+
If you need to ovveride the bucket ownership to destination account pass the account value to the method to provide permissions to override bucket owner.
|
|
972
|
+
`addReplicationPolicy(bucket.replicationRoleArn, true, '11111111111')`;
|
|
973
|
+
|
|
974
|
+
However, if the destination bucket is a referenced bucket, CDK cannot set the bucket policy,
|
|
975
|
+
so you will need to [configure the necessary bucket policy](https://docs.aws.amazon.com/AmazonS3/latest/userguide/replication-walkthrough-2.html) separately.
|
|
976
|
+
|
|
977
|
+
```python
|
|
978
|
+
# The destination bucket in a different account.
|
|
979
|
+
# destination_bucket: s3.IBucket
|
|
980
|
+
|
|
981
|
+
|
|
982
|
+
source_bucket = s3.Bucket(self, "SourceBucket",
|
|
983
|
+
versioned=True,
|
|
984
|
+
replication_rules=[s3.ReplicationRule(
|
|
985
|
+
destination=destination_bucket,
|
|
986
|
+
priority=1,
|
|
987
|
+
# Whether to want to change replica ownership to the AWS account that owns the destination bucket.
|
|
988
|
+
# The replicas are owned by same AWS account that owns the source object by default.
|
|
989
|
+
access_control_transition=True
|
|
990
|
+
)
|
|
991
|
+
]
|
|
992
|
+
)
|
|
993
|
+
|
|
994
|
+
# Add permissions to the destination after replication role is created
|
|
995
|
+
if source_bucket.replication_role_arn:
|
|
996
|
+
destination_bucket.add_replication_policy(source_bucket.replication_role_arn, True, "111111111111")
|
|
997
|
+
```
|
|
894
998
|
'''
|
|
895
999
|
from pkgutil import extend_path
|
|
896
1000
|
__path__ = extend_path(__path__, __name__)
|
|
@@ -1926,6 +2030,7 @@ class BucketPolicyProps:
|
|
|
1926
2030
|
"object_ownership": "objectOwnership",
|
|
1927
2031
|
"public_read_access": "publicReadAccess",
|
|
1928
2032
|
"removal_policy": "removalPolicy",
|
|
2033
|
+
"replication_rules": "replicationRules",
|
|
1929
2034
|
"server_access_logs_bucket": "serverAccessLogsBucket",
|
|
1930
2035
|
"server_access_logs_prefix": "serverAccessLogsPrefix",
|
|
1931
2036
|
"target_object_key_format": "targetObjectKeyFormat",
|
|
@@ -1964,6 +2069,7 @@ class BucketProps:
|
|
|
1964
2069
|
object_ownership: typing.Optional["ObjectOwnership"] = None,
|
|
1965
2070
|
public_read_access: typing.Optional[builtins.bool] = None,
|
|
1966
2071
|
removal_policy: typing.Optional[_RemovalPolicy_9f93c814] = None,
|
|
2072
|
+
replication_rules: typing.Optional[typing.Sequence[typing.Union["ReplicationRule", typing.Dict[builtins.str, typing.Any]]]] = None,
|
|
1967
2073
|
server_access_logs_bucket: typing.Optional["IBucket"] = None,
|
|
1968
2074
|
server_access_logs_prefix: typing.Optional[builtins.str] = None,
|
|
1969
2075
|
target_object_key_format: typing.Optional["TargetObjectKeyFormat"] = None,
|
|
@@ -1986,7 +2092,7 @@ class BucketProps:
|
|
|
1986
2092
|
:param encryption_key: External KMS key to use for bucket encryption. The ``encryption`` property must be either not specified or set to ``KMS`` or ``DSSE``. An error will be emitted if ``encryption`` is set to ``UNENCRYPTED`` or ``S3_MANAGED``. Default: - If ``encryption`` is set to ``KMS`` and this property is undefined, a new KMS key will be created and associated with this bucket.
|
|
1987
2093
|
:param enforce_ssl: Enforces SSL for requests. S3.5 of the AWS Foundational Security Best Practices Regarding S3. Default: false
|
|
1988
2094
|
:param event_bridge_enabled: Whether this bucket should send notifications to Amazon EventBridge or not. Default: false
|
|
1989
|
-
:param intelligent_tiering_configurations:
|
|
2095
|
+
:param intelligent_tiering_configurations: Intelligent Tiering Configurations. Default: No Intelligent Tiiering Configurations.
|
|
1990
2096
|
:param inventories: The inventory configuration of the bucket. Default: - No inventory configuration
|
|
1991
2097
|
:param lifecycle_rules: Rules that define how Amazon S3 manages objects during their lifetime. Default: - No lifecycle rules.
|
|
1992
2098
|
:param metrics: The metrics configuration of this bucket. Default: - No metrics configuration.
|
|
@@ -1998,6 +2104,7 @@ class BucketProps:
|
|
|
1998
2104
|
:param object_ownership: The objectOwnership of the bucket. Default: - No ObjectOwnership configuration. By default, Amazon S3 sets Object Ownership to ``Bucket owner enforced``. This means ACLs are disabled and the bucket owner will own every object.
|
|
1999
2105
|
:param public_read_access: Grants public read access to all objects in the bucket. Similar to calling ``bucket.grantPublicAccess()`` Default: false
|
|
2000
2106
|
:param removal_policy: Policy to apply when the bucket is removed from this stack. Default: - The bucket will be orphaned.
|
|
2107
|
+
:param replication_rules: A container for one or more replication rules. Default: - No replication
|
|
2001
2108
|
:param server_access_logs_bucket: Destination bucket for the server access logs. Default: - If "serverAccessLogsPrefix" undefined - access logs disabled, otherwise - log to current bucket.
|
|
2002
2109
|
:param server_access_logs_prefix: Optional log file prefix to use for the bucket's access logs. If defined without "serverAccessLogsBucket", enables access logs to current bucket with this prefix. Default: - No log file prefix
|
|
2003
2110
|
:param target_object_key_format: Optional key format for log objects. Default: - the default key format is: [DestinationPrefix][YYYY]-[MM]-[DD]-[hh]-[mm]-[ss]-[UniqueString]
|
|
@@ -2055,6 +2162,7 @@ class BucketProps:
|
|
|
2055
2162
|
check_type(argname="argument object_ownership", value=object_ownership, expected_type=type_hints["object_ownership"])
|
|
2056
2163
|
check_type(argname="argument public_read_access", value=public_read_access, expected_type=type_hints["public_read_access"])
|
|
2057
2164
|
check_type(argname="argument removal_policy", value=removal_policy, expected_type=type_hints["removal_policy"])
|
|
2165
|
+
check_type(argname="argument replication_rules", value=replication_rules, expected_type=type_hints["replication_rules"])
|
|
2058
2166
|
check_type(argname="argument server_access_logs_bucket", value=server_access_logs_bucket, expected_type=type_hints["server_access_logs_bucket"])
|
|
2059
2167
|
check_type(argname="argument server_access_logs_prefix", value=server_access_logs_prefix, expected_type=type_hints["server_access_logs_prefix"])
|
|
2060
2168
|
check_type(argname="argument target_object_key_format", value=target_object_key_format, expected_type=type_hints["target_object_key_format"])
|
|
@@ -2110,6 +2218,8 @@ class BucketProps:
|
|
|
2110
2218
|
self._values["public_read_access"] = public_read_access
|
|
2111
2219
|
if removal_policy is not None:
|
|
2112
2220
|
self._values["removal_policy"] = removal_policy
|
|
2221
|
+
if replication_rules is not None:
|
|
2222
|
+
self._values["replication_rules"] = replication_rules
|
|
2113
2223
|
if server_access_logs_bucket is not None:
|
|
2114
2224
|
self._values["server_access_logs_bucket"] = server_access_logs_bucket
|
|
2115
2225
|
if server_access_logs_prefix is not None:
|
|
@@ -2265,7 +2375,7 @@ class BucketProps:
|
|
|
2265
2375
|
def intelligent_tiering_configurations(
|
|
2266
2376
|
self,
|
|
2267
2377
|
) -> typing.Optional[typing.List["IntelligentTieringConfiguration"]]:
|
|
2268
|
-
'''
|
|
2378
|
+
'''Intelligent Tiering Configurations.
|
|
2269
2379
|
|
|
2270
2380
|
:default: No Intelligent Tiiering Configurations.
|
|
2271
2381
|
|
|
@@ -2400,6 +2510,15 @@ class BucketProps:
|
|
|
2400
2510
|
result = self._values.get("removal_policy")
|
|
2401
2511
|
return typing.cast(typing.Optional[_RemovalPolicy_9f93c814], result)
|
|
2402
2512
|
|
|
2513
|
+
@builtins.property
|
|
2514
|
+
def replication_rules(self) -> typing.Optional[typing.List["ReplicationRule"]]:
|
|
2515
|
+
'''A container for one or more replication rules.
|
|
2516
|
+
|
|
2517
|
+
:default: - No replication
|
|
2518
|
+
'''
|
|
2519
|
+
result = self._values.get("replication_rules")
|
|
2520
|
+
return typing.cast(typing.Optional[typing.List["ReplicationRule"]], result)
|
|
2521
|
+
|
|
2403
2522
|
@builtins.property
|
|
2404
2523
|
def server_access_logs_bucket(self) -> typing.Optional["IBucket"]:
|
|
2405
2524
|
'''Destination bucket for the server access logs.
|
|
@@ -10231,7 +10350,7 @@ class CfnBucket(
|
|
|
10231
10350
|
|
|
10232
10351
|
:param storage_class: The storage class to which you want the object to transition.
|
|
10233
10352
|
:param transition_date: Indicates when objects are transitioned to the specified storage class. The date value must be in ISO 8601 format. The time is always midnight UTC.
|
|
10234
|
-
:param transition_in_days: Indicates the number of days after creation when objects are transitioned to the specified storage class.
|
|
10353
|
+
:param transition_in_days: Indicates the number of days after creation when objects are transitioned to the specified storage class. If the specified storage class is ``INTELLIGENT_TIERING`` , ``GLACIER_IR`` , ``GLACIER`` , or ``DEEP_ARCHIVE`` , valid values are ``0`` or positive integers. If the specified storage class is ``STANDARD_IA`` or ``ONEZONE_IA`` , valid values are positive integers greater than ``30`` . Be aware that some storage classes have a minimum storage duration and that you're charged for transitioning objects before their minimum storage duration. For more information, see `Constraints and considerations for transitions <https://docs.aws.amazon.com/AmazonS3/latest/userguide/lifecycle-transition-general-considerations.html#lifecycle-configuration-constraints>`_ in the *Amazon S3 User Guide* .
|
|
10235
10354
|
|
|
10236
10355
|
:see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3-bucket-transition.html
|
|
10237
10356
|
:exampleMetadata: fixture=_generated
|
|
@@ -10290,7 +10409,7 @@ class CfnBucket(
|
|
|
10290
10409
|
def transition_in_days(self) -> typing.Optional[jsii.Number]:
|
|
10291
10410
|
'''Indicates the number of days after creation when objects are transitioned to the specified storage class.
|
|
10292
10411
|
|
|
10293
|
-
|
|
10412
|
+
If the specified storage class is ``INTELLIGENT_TIERING`` , ``GLACIER_IR`` , ``GLACIER`` , or ``DEEP_ARCHIVE`` , valid values are ``0`` or positive integers. If the specified storage class is ``STANDARD_IA`` or ``ONEZONE_IA`` , valid values are positive integers greater than ``30`` . Be aware that some storage classes have a minimum storage duration and that you're charged for transitioning objects before their minimum storage duration. For more information, see `Constraints and considerations for transitions <https://docs.aws.amazon.com/AmazonS3/latest/userguide/lifecycle-transition-general-considerations.html#lifecycle-configuration-constraints>`_ in the *Amazon S3 User Guide* .
|
|
10294
10413
|
|
|
10295
10414
|
:see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3-bucket-transition.html#cfn-s3-bucket-transition-transitionindays
|
|
10296
10415
|
'''
|
|
@@ -15360,6 +15479,124 @@ class EventType(enum.Enum):
|
|
|
15360
15479
|
'''
|
|
15361
15480
|
|
|
15362
15481
|
|
|
15482
|
+
@jsii.data_type(
|
|
15483
|
+
jsii_type="aws-cdk-lib.aws_s3.Filter",
|
|
15484
|
+
jsii_struct_bases=[],
|
|
15485
|
+
name_mapping={"prefix": "prefix", "tags": "tags"},
|
|
15486
|
+
)
|
|
15487
|
+
class Filter:
|
|
15488
|
+
def __init__(
|
|
15489
|
+
self,
|
|
15490
|
+
*,
|
|
15491
|
+
prefix: typing.Optional[builtins.str] = None,
|
|
15492
|
+
tags: typing.Optional[typing.Sequence[typing.Union["Tag", typing.Dict[builtins.str, typing.Any]]]] = None,
|
|
15493
|
+
) -> None:
|
|
15494
|
+
'''A filter that identifies the subset of objects to which the replication rule applies.
|
|
15495
|
+
|
|
15496
|
+
:param prefix: An object key name prefix that identifies the object or objects to which the rule applies. Default: - applies to all objects
|
|
15497
|
+
:param tags: The tag array used for tag filters. The rule applies only to objects that have the tag in this set. Default: - applies to all objects
|
|
15498
|
+
|
|
15499
|
+
:exampleMetadata: infused
|
|
15500
|
+
|
|
15501
|
+
Example::
|
|
15502
|
+
|
|
15503
|
+
# destination_bucket1: s3.IBucket
|
|
15504
|
+
# destination_bucket2: s3.IBucket
|
|
15505
|
+
# kms_key: kms.IKey
|
|
15506
|
+
|
|
15507
|
+
|
|
15508
|
+
source_bucket = s3.Bucket(self, "SourceBucket",
|
|
15509
|
+
# Versioning must be enabled on both the source and destination bucket
|
|
15510
|
+
versioned=True,
|
|
15511
|
+
replication_rules=[s3.ReplicationRule(
|
|
15512
|
+
# The destination bucket for the replication rule.
|
|
15513
|
+
destination=destination_bucket1,
|
|
15514
|
+
# The priority of the rule.
|
|
15515
|
+
# Amazon S3 will attempt to replicate objects according to all replication rules.
|
|
15516
|
+
# However, if there are two or more rules with the same destination bucket, then objects will be replicated according to the rule with the highest priority.
|
|
15517
|
+
# The higher the number, the higher the priority.
|
|
15518
|
+
# It is essential to specify priority explicitly when the replication configuration has multiple rules.
|
|
15519
|
+
priority=1
|
|
15520
|
+
), s3.ReplicationRule(
|
|
15521
|
+
destination=destination_bucket2,
|
|
15522
|
+
priority=2,
|
|
15523
|
+
# Whether to specify S3 Replication Time Control (S3 RTC).
|
|
15524
|
+
# S3 RTC replicates most objects that you upload to Amazon S3 in seconds,
|
|
15525
|
+
# and 99.99 percent of those objects within specified time.
|
|
15526
|
+
replication_time_control=s3.ReplicationTimeValue.FIFTEEN_MINUTES,
|
|
15527
|
+
# Whether to enable replication metrics about S3 RTC.
|
|
15528
|
+
# If set, metrics will be output to indicate whether replication by S3 RTC took longer than the configured time.
|
|
15529
|
+
metrics=s3.ReplicationTimeValue.FIFTEEN_MINUTES,
|
|
15530
|
+
# The kms key to use for the destination bucket.
|
|
15531
|
+
kms_key=kms_key,
|
|
15532
|
+
# The storage class to use for the destination bucket.
|
|
15533
|
+
storage_class=s3.StorageClass.INFREQUENT_ACCESS,
|
|
15534
|
+
# Whether to replicate objects with SSE-KMS encryption.
|
|
15535
|
+
sse_kms_encrypted_objects=False,
|
|
15536
|
+
# Whether to replicate modifications on replicas.
|
|
15537
|
+
replica_modifications=True,
|
|
15538
|
+
# Whether to replicate delete markers.
|
|
15539
|
+
# This property cannot be enabled if the replication rule has a tag filter.
|
|
15540
|
+
delete_marker_replication=False,
|
|
15541
|
+
# The ID of the rule.
|
|
15542
|
+
id="full-settings-rule",
|
|
15543
|
+
# The object filter for the rule.
|
|
15544
|
+
filter=s3.Filter(
|
|
15545
|
+
# The prefix filter for the rule.
|
|
15546
|
+
prefix="prefix",
|
|
15547
|
+
# The tag filter for the rule.
|
|
15548
|
+
tags=[s3.Tag(
|
|
15549
|
+
key="tagKey",
|
|
15550
|
+
value="tagValue"
|
|
15551
|
+
)
|
|
15552
|
+
]
|
|
15553
|
+
)
|
|
15554
|
+
)
|
|
15555
|
+
]
|
|
15556
|
+
)
|
|
15557
|
+
'''
|
|
15558
|
+
if __debug__:
|
|
15559
|
+
type_hints = typing.get_type_hints(_typecheckingstub__ff4b8a813f6812ab1464fced92fa61b97e151767705973ce994c0970fde139df)
|
|
15560
|
+
check_type(argname="argument prefix", value=prefix, expected_type=type_hints["prefix"])
|
|
15561
|
+
check_type(argname="argument tags", value=tags, expected_type=type_hints["tags"])
|
|
15562
|
+
self._values: typing.Dict[builtins.str, typing.Any] = {}
|
|
15563
|
+
if prefix is not None:
|
|
15564
|
+
self._values["prefix"] = prefix
|
|
15565
|
+
if tags is not None:
|
|
15566
|
+
self._values["tags"] = tags
|
|
15567
|
+
|
|
15568
|
+
@builtins.property
|
|
15569
|
+
def prefix(self) -> typing.Optional[builtins.str]:
|
|
15570
|
+
'''An object key name prefix that identifies the object or objects to which the rule applies.
|
|
15571
|
+
|
|
15572
|
+
:default: - applies to all objects
|
|
15573
|
+
'''
|
|
15574
|
+
result = self._values.get("prefix")
|
|
15575
|
+
return typing.cast(typing.Optional[builtins.str], result)
|
|
15576
|
+
|
|
15577
|
+
@builtins.property
|
|
15578
|
+
def tags(self) -> typing.Optional[typing.List["Tag"]]:
|
|
15579
|
+
'''The tag array used for tag filters.
|
|
15580
|
+
|
|
15581
|
+
The rule applies only to objects that have the tag in this set.
|
|
15582
|
+
|
|
15583
|
+
:default: - applies to all objects
|
|
15584
|
+
'''
|
|
15585
|
+
result = self._values.get("tags")
|
|
15586
|
+
return typing.cast(typing.Optional[typing.List["Tag"]], result)
|
|
15587
|
+
|
|
15588
|
+
def __eq__(self, rhs: typing.Any) -> builtins.bool:
|
|
15589
|
+
return isinstance(rhs, self.__class__) and rhs._values == self._values
|
|
15590
|
+
|
|
15591
|
+
def __ne__(self, rhs: typing.Any) -> builtins.bool:
|
|
15592
|
+
return not (rhs == self)
|
|
15593
|
+
|
|
15594
|
+
def __repr__(self) -> str:
|
|
15595
|
+
return "Filter(%s)" % ", ".join(
|
|
15596
|
+
k + "=" + repr(v) for k, v in self._values.items()
|
|
15597
|
+
)
|
|
15598
|
+
|
|
15599
|
+
|
|
15363
15600
|
@jsii.enum(jsii_type="aws-cdk-lib.aws_s3.HttpMethods")
|
|
15364
15601
|
class HttpMethods(enum.Enum):
|
|
15365
15602
|
'''All http request methods.'''
|
|
@@ -15467,6 +15704,16 @@ class IBucket(_IResource_c80c4260, typing_extensions.Protocol):
|
|
|
15467
15704
|
def policy(self, value: typing.Optional[BucketPolicy]) -> None:
|
|
15468
15705
|
...
|
|
15469
15706
|
|
|
15707
|
+
@builtins.property
|
|
15708
|
+
@jsii.member(jsii_name="replicationRoleArn")
|
|
15709
|
+
def replication_role_arn(self) -> typing.Optional[builtins.str]:
|
|
15710
|
+
'''Role used to set up permissions on this bucket for replication.'''
|
|
15711
|
+
...
|
|
15712
|
+
|
|
15713
|
+
@replication_role_arn.setter
|
|
15714
|
+
def replication_role_arn(self, value: typing.Optional[builtins.str]) -> None:
|
|
15715
|
+
...
|
|
15716
|
+
|
|
15470
15717
|
@jsii.member(jsii_name="addEventNotification")
|
|
15471
15718
|
def add_event_notification(
|
|
15472
15719
|
self,
|
|
@@ -15523,6 +15770,25 @@ class IBucket(_IResource_c80c4260, typing_extensions.Protocol):
|
|
|
15523
15770
|
'''
|
|
15524
15771
|
...
|
|
15525
15772
|
|
|
15773
|
+
@jsii.member(jsii_name="addReplicationPolicy")
|
|
15774
|
+
def add_replication_policy(
|
|
15775
|
+
self,
|
|
15776
|
+
role_arn: builtins.str,
|
|
15777
|
+
access_control_transition: typing.Optional[builtins.bool] = None,
|
|
15778
|
+
account: typing.Optional[builtins.str] = None,
|
|
15779
|
+
) -> None:
|
|
15780
|
+
'''Function to add required permissions to the destination bucket for cross account replication.
|
|
15781
|
+
|
|
15782
|
+
These permissions will be added as a resource based policy on the bucket.
|
|
15783
|
+
|
|
15784
|
+
:param role_arn: -
|
|
15785
|
+
:param access_control_transition: -
|
|
15786
|
+
:param account: -
|
|
15787
|
+
|
|
15788
|
+
:see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3-bucket-accesscontroltranslation.html
|
|
15789
|
+
'''
|
|
15790
|
+
...
|
|
15791
|
+
|
|
15526
15792
|
@jsii.member(jsii_name="addToResourcePolicy")
|
|
15527
15793
|
def add_to_resource_policy(
|
|
15528
15794
|
self,
|
|
@@ -15982,6 +16248,19 @@ class _IBucketProxy(
|
|
|
15982
16248
|
check_type(argname="argument value", value=value, expected_type=type_hints["value"])
|
|
15983
16249
|
jsii.set(self, "policy", value) # pyright: ignore[reportArgumentType]
|
|
15984
16250
|
|
|
16251
|
+
@builtins.property
|
|
16252
|
+
@jsii.member(jsii_name="replicationRoleArn")
|
|
16253
|
+
def replication_role_arn(self) -> typing.Optional[builtins.str]:
|
|
16254
|
+
'''Role used to set up permissions on this bucket for replication.'''
|
|
16255
|
+
return typing.cast(typing.Optional[builtins.str], jsii.get(self, "replicationRoleArn"))
|
|
16256
|
+
|
|
16257
|
+
@replication_role_arn.setter
|
|
16258
|
+
def replication_role_arn(self, value: typing.Optional[builtins.str]) -> None:
|
|
16259
|
+
if __debug__:
|
|
16260
|
+
type_hints = typing.get_type_hints(_typecheckingstub__45b20ede572212a5391ce58bc0693933ac9d1bc950c6cafac24d9b7d29ad1405)
|
|
16261
|
+
check_type(argname="argument value", value=value, expected_type=type_hints["value"])
|
|
16262
|
+
jsii.set(self, "replicationRoleArn", value) # pyright: ignore[reportArgumentType]
|
|
16263
|
+
|
|
15985
16264
|
@jsii.member(jsii_name="addEventNotification")
|
|
15986
16265
|
def add_event_notification(
|
|
15987
16266
|
self,
|
|
@@ -16051,6 +16330,30 @@ class _IBucketProxy(
|
|
|
16051
16330
|
check_type(argname="argument filters", value=filters, expected_type=typing.Tuple[type_hints["filters"], ...]) # pyright: ignore [reportGeneralTypeIssues]
|
|
16052
16331
|
return typing.cast(None, jsii.invoke(self, "addObjectRemovedNotification", [dest, *filters]))
|
|
16053
16332
|
|
|
16333
|
+
@jsii.member(jsii_name="addReplicationPolicy")
|
|
16334
|
+
def add_replication_policy(
|
|
16335
|
+
self,
|
|
16336
|
+
role_arn: builtins.str,
|
|
16337
|
+
access_control_transition: typing.Optional[builtins.bool] = None,
|
|
16338
|
+
account: typing.Optional[builtins.str] = None,
|
|
16339
|
+
) -> None:
|
|
16340
|
+
'''Function to add required permissions to the destination bucket for cross account replication.
|
|
16341
|
+
|
|
16342
|
+
These permissions will be added as a resource based policy on the bucket.
|
|
16343
|
+
|
|
16344
|
+
:param role_arn: -
|
|
16345
|
+
:param access_control_transition: -
|
|
16346
|
+
:param account: -
|
|
16347
|
+
|
|
16348
|
+
:see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3-bucket-accesscontroltranslation.html
|
|
16349
|
+
'''
|
|
16350
|
+
if __debug__:
|
|
16351
|
+
type_hints = typing.get_type_hints(_typecheckingstub__6c2e7fc14ca3997ce00436db7203d2e5669fde630c0dd481f20a6192f12706c7)
|
|
16352
|
+
check_type(argname="argument role_arn", value=role_arn, expected_type=type_hints["role_arn"])
|
|
16353
|
+
check_type(argname="argument access_control_transition", value=access_control_transition, expected_type=type_hints["access_control_transition"])
|
|
16354
|
+
check_type(argname="argument account", value=account, expected_type=type_hints["account"])
|
|
16355
|
+
return typing.cast(None, jsii.invoke(self, "addReplicationPolicy", [role_arn, access_control_transition, account]))
|
|
16356
|
+
|
|
16054
16357
|
@jsii.member(jsii_name="addToResourcePolicy")
|
|
16055
16358
|
def add_to_resource_policy(
|
|
16056
16359
|
self,
|
|
@@ -18098,6 +18401,362 @@ class ReplaceKey(metaclass=jsii.JSIIMeta, jsii_type="aws-cdk-lib.aws_s3.ReplaceK
|
|
|
18098
18401
|
return typing.cast(typing.Optional[builtins.str], jsii.get(self, "withKey"))
|
|
18099
18402
|
|
|
18100
18403
|
|
|
18404
|
+
@jsii.data_type(
|
|
18405
|
+
jsii_type="aws-cdk-lib.aws_s3.ReplicationRule",
|
|
18406
|
+
jsii_struct_bases=[],
|
|
18407
|
+
name_mapping={
|
|
18408
|
+
"destination": "destination",
|
|
18409
|
+
"access_control_transition": "accessControlTransition",
|
|
18410
|
+
"delete_marker_replication": "deleteMarkerReplication",
|
|
18411
|
+
"filter": "filter",
|
|
18412
|
+
"id": "id",
|
|
18413
|
+
"kms_key": "kmsKey",
|
|
18414
|
+
"metrics": "metrics",
|
|
18415
|
+
"priority": "priority",
|
|
18416
|
+
"replica_modifications": "replicaModifications",
|
|
18417
|
+
"replication_time_control": "replicationTimeControl",
|
|
18418
|
+
"sse_kms_encrypted_objects": "sseKmsEncryptedObjects",
|
|
18419
|
+
"storage_class": "storageClass",
|
|
18420
|
+
},
|
|
18421
|
+
)
|
|
18422
|
+
class ReplicationRule:
|
|
18423
|
+
def __init__(
|
|
18424
|
+
self,
|
|
18425
|
+
*,
|
|
18426
|
+
destination: IBucket,
|
|
18427
|
+
access_control_transition: typing.Optional[builtins.bool] = None,
|
|
18428
|
+
delete_marker_replication: typing.Optional[builtins.bool] = None,
|
|
18429
|
+
filter: typing.Optional[typing.Union[Filter, typing.Dict[builtins.str, typing.Any]]] = None,
|
|
18430
|
+
id: typing.Optional[builtins.str] = None,
|
|
18431
|
+
kms_key: typing.Optional[_IKey_5f11635f] = None,
|
|
18432
|
+
metrics: typing.Optional["ReplicationTimeValue"] = None,
|
|
18433
|
+
priority: typing.Optional[jsii.Number] = None,
|
|
18434
|
+
replica_modifications: typing.Optional[builtins.bool] = None,
|
|
18435
|
+
replication_time_control: typing.Optional["ReplicationTimeValue"] = None,
|
|
18436
|
+
sse_kms_encrypted_objects: typing.Optional[builtins.bool] = None,
|
|
18437
|
+
storage_class: typing.Optional["StorageClass"] = None,
|
|
18438
|
+
) -> None:
|
|
18439
|
+
'''Specifies which Amazon S3 objects to replicate and where to store the replicas.
|
|
18440
|
+
|
|
18441
|
+
:param destination: The destination bucket for the replicated objects. The destination can be either in the same AWS account or a cross account. If you want to configure cross-account replication, the destination bucket must have a policy that allows the source bucket to replicate objects to it.
|
|
18442
|
+
:param access_control_transition: Whether to want to change replica ownership to the AWS account that owns the destination bucket. This can only be specified if the source bucket and the destination bucket are not in the same AWS account. Default: - The replicas are owned by same AWS account that owns the source object
|
|
18443
|
+
:param delete_marker_replication: Specifies whether Amazon S3 replicates delete markers. Default: - delete markers in source bucket is not replicated to destination bucket
|
|
18444
|
+
:param filter: A filter that identifies the subset of objects to which the replication rule applies. Default: - applies to all objects
|
|
18445
|
+
:param id: A unique identifier for the rule. The maximum value is 255 characters. Default: - auto generated random ID
|
|
18446
|
+
:param kms_key: The customer managed AWS KMS key stored in AWS Key Management Service (KMS) for the destination bucket. Amazon S3 uses this key to encrypt replica objects. Amazon S3 only supports symmetric encryption KMS keys. Default: - Amazon S3 uses the AWS managed KMS key for encryption
|
|
18447
|
+
:param metrics: A container specifying replication metrics-related settings enabling replication metrics and events. When a value is set, metrics will be output to indicate whether the replication took longer than the specified time. Default: - Replication metrics are not enabled
|
|
18448
|
+
:param priority: The priority indicates which rule has precedence whenever two or more replication rules conflict. Amazon S3 will attempt to replicate objects according to all replication rules. However, if there are two or more rules with the same destination bucket, then objects will be replicated according to the rule with the highest priority. The higher the number, the higher the priority. It is essential to specify priority explicitly when the replication configuration has multiple rules. Default: 0
|
|
18449
|
+
:param replica_modifications: Specifies whether Amazon S3 replicates modifications on replicas. Default: false
|
|
18450
|
+
:param replication_time_control: Specifying S3 Replication Time Control (S3 RTC), including whether S3 RTC is enabled and the time when all objects and operations on objects must be replicated. Default: - S3 Replication Time Control is not enabled
|
|
18451
|
+
:param sse_kms_encrypted_objects: Specifies whether Amazon S3 replicates objects created with server-side encryption using an AWS KMS key stored in AWS Key Management Service. Default: false
|
|
18452
|
+
:param storage_class: The storage class to use when replicating objects, such as S3 Standard or reduced redundancy. Default: - The storage class of the source object
|
|
18453
|
+
|
|
18454
|
+
:exampleMetadata: fixture=_generated
|
|
18455
|
+
|
|
18456
|
+
Example::
|
|
18457
|
+
|
|
18458
|
+
# The code below shows an example of how to instantiate this type.
|
|
18459
|
+
# The values are placeholders you should change.
|
|
18460
|
+
from aws_cdk import aws_kms as kms
|
|
18461
|
+
from aws_cdk import aws_s3 as s3
|
|
18462
|
+
|
|
18463
|
+
# bucket: s3.Bucket
|
|
18464
|
+
# key: kms.Key
|
|
18465
|
+
# replication_time_value: s3.ReplicationTimeValue
|
|
18466
|
+
# storage_class: s3.StorageClass
|
|
18467
|
+
|
|
18468
|
+
replication_rule = s3.ReplicationRule(
|
|
18469
|
+
destination=bucket,
|
|
18470
|
+
|
|
18471
|
+
# the properties below are optional
|
|
18472
|
+
access_control_transition=False,
|
|
18473
|
+
delete_marker_replication=False,
|
|
18474
|
+
filter=s3.Filter(
|
|
18475
|
+
prefix="prefix",
|
|
18476
|
+
tags=[s3.Tag(
|
|
18477
|
+
key="key",
|
|
18478
|
+
value="value"
|
|
18479
|
+
)]
|
|
18480
|
+
),
|
|
18481
|
+
id="id",
|
|
18482
|
+
kms_key=key,
|
|
18483
|
+
metrics=replication_time_value,
|
|
18484
|
+
priority=123,
|
|
18485
|
+
replica_modifications=False,
|
|
18486
|
+
replication_time_control=replication_time_value,
|
|
18487
|
+
sse_kms_encrypted_objects=False,
|
|
18488
|
+
storage_class=storage_class
|
|
18489
|
+
)
|
|
18490
|
+
'''
|
|
18491
|
+
if isinstance(filter, dict):
|
|
18492
|
+
filter = Filter(**filter)
|
|
18493
|
+
if __debug__:
|
|
18494
|
+
type_hints = typing.get_type_hints(_typecheckingstub__2eb99af4044ffb625b707ac7ff5de3796f00ec1217ed24e21f6c240e90e846f0)
|
|
18495
|
+
check_type(argname="argument destination", value=destination, expected_type=type_hints["destination"])
|
|
18496
|
+
check_type(argname="argument access_control_transition", value=access_control_transition, expected_type=type_hints["access_control_transition"])
|
|
18497
|
+
check_type(argname="argument delete_marker_replication", value=delete_marker_replication, expected_type=type_hints["delete_marker_replication"])
|
|
18498
|
+
check_type(argname="argument filter", value=filter, expected_type=type_hints["filter"])
|
|
18499
|
+
check_type(argname="argument id", value=id, expected_type=type_hints["id"])
|
|
18500
|
+
check_type(argname="argument kms_key", value=kms_key, expected_type=type_hints["kms_key"])
|
|
18501
|
+
check_type(argname="argument metrics", value=metrics, expected_type=type_hints["metrics"])
|
|
18502
|
+
check_type(argname="argument priority", value=priority, expected_type=type_hints["priority"])
|
|
18503
|
+
check_type(argname="argument replica_modifications", value=replica_modifications, expected_type=type_hints["replica_modifications"])
|
|
18504
|
+
check_type(argname="argument replication_time_control", value=replication_time_control, expected_type=type_hints["replication_time_control"])
|
|
18505
|
+
check_type(argname="argument sse_kms_encrypted_objects", value=sse_kms_encrypted_objects, expected_type=type_hints["sse_kms_encrypted_objects"])
|
|
18506
|
+
check_type(argname="argument storage_class", value=storage_class, expected_type=type_hints["storage_class"])
|
|
18507
|
+
self._values: typing.Dict[builtins.str, typing.Any] = {
|
|
18508
|
+
"destination": destination,
|
|
18509
|
+
}
|
|
18510
|
+
if access_control_transition is not None:
|
|
18511
|
+
self._values["access_control_transition"] = access_control_transition
|
|
18512
|
+
if delete_marker_replication is not None:
|
|
18513
|
+
self._values["delete_marker_replication"] = delete_marker_replication
|
|
18514
|
+
if filter is not None:
|
|
18515
|
+
self._values["filter"] = filter
|
|
18516
|
+
if id is not None:
|
|
18517
|
+
self._values["id"] = id
|
|
18518
|
+
if kms_key is not None:
|
|
18519
|
+
self._values["kms_key"] = kms_key
|
|
18520
|
+
if metrics is not None:
|
|
18521
|
+
self._values["metrics"] = metrics
|
|
18522
|
+
if priority is not None:
|
|
18523
|
+
self._values["priority"] = priority
|
|
18524
|
+
if replica_modifications is not None:
|
|
18525
|
+
self._values["replica_modifications"] = replica_modifications
|
|
18526
|
+
if replication_time_control is not None:
|
|
18527
|
+
self._values["replication_time_control"] = replication_time_control
|
|
18528
|
+
if sse_kms_encrypted_objects is not None:
|
|
18529
|
+
self._values["sse_kms_encrypted_objects"] = sse_kms_encrypted_objects
|
|
18530
|
+
if storage_class is not None:
|
|
18531
|
+
self._values["storage_class"] = storage_class
|
|
18532
|
+
|
|
18533
|
+
@builtins.property
|
|
18534
|
+
def destination(self) -> IBucket:
|
|
18535
|
+
'''The destination bucket for the replicated objects.
|
|
18536
|
+
|
|
18537
|
+
The destination can be either in the same AWS account or a cross account.
|
|
18538
|
+
|
|
18539
|
+
If you want to configure cross-account replication,
|
|
18540
|
+
the destination bucket must have a policy that allows the source bucket to replicate objects to it.
|
|
18541
|
+
|
|
18542
|
+
:see: https://docs.aws.amazon.com/AmazonS3/latest/userguide/replication-walkthrough-2.html
|
|
18543
|
+
'''
|
|
18544
|
+
result = self._values.get("destination")
|
|
18545
|
+
assert result is not None, "Required property 'destination' is missing"
|
|
18546
|
+
return typing.cast(IBucket, result)
|
|
18547
|
+
|
|
18548
|
+
@builtins.property
|
|
18549
|
+
def access_control_transition(self) -> typing.Optional[builtins.bool]:
|
|
18550
|
+
'''Whether to want to change replica ownership to the AWS account that owns the destination bucket.
|
|
18551
|
+
|
|
18552
|
+
This can only be specified if the source bucket and the destination bucket are not in the same AWS account.
|
|
18553
|
+
|
|
18554
|
+
:default: - The replicas are owned by same AWS account that owns the source object
|
|
18555
|
+
'''
|
|
18556
|
+
result = self._values.get("access_control_transition")
|
|
18557
|
+
return typing.cast(typing.Optional[builtins.bool], result)
|
|
18558
|
+
|
|
18559
|
+
@builtins.property
|
|
18560
|
+
def delete_marker_replication(self) -> typing.Optional[builtins.bool]:
|
|
18561
|
+
'''Specifies whether Amazon S3 replicates delete markers.
|
|
18562
|
+
|
|
18563
|
+
:default: - delete markers in source bucket is not replicated to destination bucket
|
|
18564
|
+
|
|
18565
|
+
:see: https://docs.aws.amazon.com/AmazonS3/latest/userguide/delete-marker-replication.html
|
|
18566
|
+
'''
|
|
18567
|
+
result = self._values.get("delete_marker_replication")
|
|
18568
|
+
return typing.cast(typing.Optional[builtins.bool], result)
|
|
18569
|
+
|
|
18570
|
+
@builtins.property
|
|
18571
|
+
def filter(self) -> typing.Optional[Filter]:
|
|
18572
|
+
'''A filter that identifies the subset of objects to which the replication rule applies.
|
|
18573
|
+
|
|
18574
|
+
:default: - applies to all objects
|
|
18575
|
+
'''
|
|
18576
|
+
result = self._values.get("filter")
|
|
18577
|
+
return typing.cast(typing.Optional[Filter], result)
|
|
18578
|
+
|
|
18579
|
+
@builtins.property
|
|
18580
|
+
def id(self) -> typing.Optional[builtins.str]:
|
|
18581
|
+
'''A unique identifier for the rule.
|
|
18582
|
+
|
|
18583
|
+
The maximum value is 255 characters.
|
|
18584
|
+
|
|
18585
|
+
:default: - auto generated random ID
|
|
18586
|
+
'''
|
|
18587
|
+
result = self._values.get("id")
|
|
18588
|
+
return typing.cast(typing.Optional[builtins.str], result)
|
|
18589
|
+
|
|
18590
|
+
@builtins.property
|
|
18591
|
+
def kms_key(self) -> typing.Optional[_IKey_5f11635f]:
|
|
18592
|
+
'''The customer managed AWS KMS key stored in AWS Key Management Service (KMS) for the destination bucket.
|
|
18593
|
+
|
|
18594
|
+
Amazon S3 uses this key to encrypt replica objects.
|
|
18595
|
+
|
|
18596
|
+
Amazon S3 only supports symmetric encryption KMS keys.
|
|
18597
|
+
|
|
18598
|
+
:default: - Amazon S3 uses the AWS managed KMS key for encryption
|
|
18599
|
+
|
|
18600
|
+
:see: https://docs.aws.amazon.com/kms/latest/developerguide/symmetric-asymmetric.html
|
|
18601
|
+
'''
|
|
18602
|
+
result = self._values.get("kms_key")
|
|
18603
|
+
return typing.cast(typing.Optional[_IKey_5f11635f], result)
|
|
18604
|
+
|
|
18605
|
+
@builtins.property
|
|
18606
|
+
def metrics(self) -> typing.Optional["ReplicationTimeValue"]:
|
|
18607
|
+
'''A container specifying replication metrics-related settings enabling replication metrics and events.
|
|
18608
|
+
|
|
18609
|
+
When a value is set, metrics will be output to indicate whether the replication took longer than the specified time.
|
|
18610
|
+
|
|
18611
|
+
:default: - Replication metrics are not enabled
|
|
18612
|
+
'''
|
|
18613
|
+
result = self._values.get("metrics")
|
|
18614
|
+
return typing.cast(typing.Optional["ReplicationTimeValue"], result)
|
|
18615
|
+
|
|
18616
|
+
@builtins.property
|
|
18617
|
+
def priority(self) -> typing.Optional[jsii.Number]:
|
|
18618
|
+
'''The priority indicates which rule has precedence whenever two or more replication rules conflict.
|
|
18619
|
+
|
|
18620
|
+
Amazon S3 will attempt to replicate objects according to all replication rules.
|
|
18621
|
+
However, if there are two or more rules with the same destination bucket,
|
|
18622
|
+
then objects will be replicated according to the rule with the highest priority.
|
|
18623
|
+
|
|
18624
|
+
The higher the number, the higher the priority.
|
|
18625
|
+
|
|
18626
|
+
It is essential to specify priority explicitly when the replication configuration has multiple rules.
|
|
18627
|
+
|
|
18628
|
+
:default: 0
|
|
18629
|
+
'''
|
|
18630
|
+
result = self._values.get("priority")
|
|
18631
|
+
return typing.cast(typing.Optional[jsii.Number], result)
|
|
18632
|
+
|
|
18633
|
+
@builtins.property
|
|
18634
|
+
def replica_modifications(self) -> typing.Optional[builtins.bool]:
|
|
18635
|
+
'''Specifies whether Amazon S3 replicates modifications on replicas.
|
|
18636
|
+
|
|
18637
|
+
:default: false
|
|
18638
|
+
'''
|
|
18639
|
+
result = self._values.get("replica_modifications")
|
|
18640
|
+
return typing.cast(typing.Optional[builtins.bool], result)
|
|
18641
|
+
|
|
18642
|
+
@builtins.property
|
|
18643
|
+
def replication_time_control(self) -> typing.Optional["ReplicationTimeValue"]:
|
|
18644
|
+
'''Specifying S3 Replication Time Control (S3 RTC), including whether S3 RTC is enabled and the time when all objects and operations on objects must be replicated.
|
|
18645
|
+
|
|
18646
|
+
:default: - S3 Replication Time Control is not enabled
|
|
18647
|
+
'''
|
|
18648
|
+
result = self._values.get("replication_time_control")
|
|
18649
|
+
return typing.cast(typing.Optional["ReplicationTimeValue"], result)
|
|
18650
|
+
|
|
18651
|
+
@builtins.property
|
|
18652
|
+
def sse_kms_encrypted_objects(self) -> typing.Optional[builtins.bool]:
|
|
18653
|
+
'''Specifies whether Amazon S3 replicates objects created with server-side encryption using an AWS KMS key stored in AWS Key Management Service.
|
|
18654
|
+
|
|
18655
|
+
:default: false
|
|
18656
|
+
'''
|
|
18657
|
+
result = self._values.get("sse_kms_encrypted_objects")
|
|
18658
|
+
return typing.cast(typing.Optional[builtins.bool], result)
|
|
18659
|
+
|
|
18660
|
+
@builtins.property
|
|
18661
|
+
def storage_class(self) -> typing.Optional["StorageClass"]:
|
|
18662
|
+
'''The storage class to use when replicating objects, such as S3 Standard or reduced redundancy.
|
|
18663
|
+
|
|
18664
|
+
:default: - The storage class of the source object
|
|
18665
|
+
'''
|
|
18666
|
+
result = self._values.get("storage_class")
|
|
18667
|
+
return typing.cast(typing.Optional["StorageClass"], result)
|
|
18668
|
+
|
|
18669
|
+
def __eq__(self, rhs: typing.Any) -> builtins.bool:
|
|
18670
|
+
return isinstance(rhs, self.__class__) and rhs._values == self._values
|
|
18671
|
+
|
|
18672
|
+
def __ne__(self, rhs: typing.Any) -> builtins.bool:
|
|
18673
|
+
return not (rhs == self)
|
|
18674
|
+
|
|
18675
|
+
def __repr__(self) -> str:
|
|
18676
|
+
return "ReplicationRule(%s)" % ", ".join(
|
|
18677
|
+
k + "=" + repr(v) for k, v in self._values.items()
|
|
18678
|
+
)
|
|
18679
|
+
|
|
18680
|
+
|
|
18681
|
+
class ReplicationTimeValue(
|
|
18682
|
+
metaclass=jsii.JSIIMeta,
|
|
18683
|
+
jsii_type="aws-cdk-lib.aws_s3.ReplicationTimeValue",
|
|
18684
|
+
):
|
|
18685
|
+
'''The replication time value used for S3 Replication Time Control (S3 RTC).
|
|
18686
|
+
|
|
18687
|
+
:exampleMetadata: infused
|
|
18688
|
+
|
|
18689
|
+
Example::
|
|
18690
|
+
|
|
18691
|
+
# destination_bucket1: s3.IBucket
|
|
18692
|
+
# destination_bucket2: s3.IBucket
|
|
18693
|
+
# kms_key: kms.IKey
|
|
18694
|
+
|
|
18695
|
+
|
|
18696
|
+
source_bucket = s3.Bucket(self, "SourceBucket",
|
|
18697
|
+
# Versioning must be enabled on both the source and destination bucket
|
|
18698
|
+
versioned=True,
|
|
18699
|
+
replication_rules=[s3.ReplicationRule(
|
|
18700
|
+
# The destination bucket for the replication rule.
|
|
18701
|
+
destination=destination_bucket1,
|
|
18702
|
+
# The priority of the rule.
|
|
18703
|
+
# Amazon S3 will attempt to replicate objects according to all replication rules.
|
|
18704
|
+
# However, if there are two or more rules with the same destination bucket, then objects will be replicated according to the rule with the highest priority.
|
|
18705
|
+
# The higher the number, the higher the priority.
|
|
18706
|
+
# It is essential to specify priority explicitly when the replication configuration has multiple rules.
|
|
18707
|
+
priority=1
|
|
18708
|
+
), s3.ReplicationRule(
|
|
18709
|
+
destination=destination_bucket2,
|
|
18710
|
+
priority=2,
|
|
18711
|
+
# Whether to specify S3 Replication Time Control (S3 RTC).
|
|
18712
|
+
# S3 RTC replicates most objects that you upload to Amazon S3 in seconds,
|
|
18713
|
+
# and 99.99 percent of those objects within specified time.
|
|
18714
|
+
replication_time_control=s3.ReplicationTimeValue.FIFTEEN_MINUTES,
|
|
18715
|
+
# Whether to enable replication metrics about S3 RTC.
|
|
18716
|
+
# If set, metrics will be output to indicate whether replication by S3 RTC took longer than the configured time.
|
|
18717
|
+
metrics=s3.ReplicationTimeValue.FIFTEEN_MINUTES,
|
|
18718
|
+
# The kms key to use for the destination bucket.
|
|
18719
|
+
kms_key=kms_key,
|
|
18720
|
+
# The storage class to use for the destination bucket.
|
|
18721
|
+
storage_class=s3.StorageClass.INFREQUENT_ACCESS,
|
|
18722
|
+
# Whether to replicate objects with SSE-KMS encryption.
|
|
18723
|
+
sse_kms_encrypted_objects=False,
|
|
18724
|
+
# Whether to replicate modifications on replicas.
|
|
18725
|
+
replica_modifications=True,
|
|
18726
|
+
# Whether to replicate delete markers.
|
|
18727
|
+
# This property cannot be enabled if the replication rule has a tag filter.
|
|
18728
|
+
delete_marker_replication=False,
|
|
18729
|
+
# The ID of the rule.
|
|
18730
|
+
id="full-settings-rule",
|
|
18731
|
+
# The object filter for the rule.
|
|
18732
|
+
filter=s3.Filter(
|
|
18733
|
+
# The prefix filter for the rule.
|
|
18734
|
+
prefix="prefix",
|
|
18735
|
+
# The tag filter for the rule.
|
|
18736
|
+
tags=[s3.Tag(
|
|
18737
|
+
key="tagKey",
|
|
18738
|
+
value="tagValue"
|
|
18739
|
+
)
|
|
18740
|
+
]
|
|
18741
|
+
)
|
|
18742
|
+
)
|
|
18743
|
+
]
|
|
18744
|
+
)
|
|
18745
|
+
'''
|
|
18746
|
+
|
|
18747
|
+
@jsii.python.classproperty
|
|
18748
|
+
@jsii.member(jsii_name="FIFTEEN_MINUTES")
|
|
18749
|
+
def FIFTEEN_MINUTES(cls) -> "ReplicationTimeValue":
|
|
18750
|
+
'''Fifteen minutes.'''
|
|
18751
|
+
return typing.cast("ReplicationTimeValue", jsii.sget(cls, "FIFTEEN_MINUTES"))
|
|
18752
|
+
|
|
18753
|
+
@builtins.property
|
|
18754
|
+
@jsii.member(jsii_name="minutes")
|
|
18755
|
+
def minutes(self) -> jsii.Number:
|
|
18756
|
+
'''the time in minutes.'''
|
|
18757
|
+
return typing.cast(jsii.Number, jsii.get(self, "minutes"))
|
|
18758
|
+
|
|
18759
|
+
|
|
18101
18760
|
@jsii.data_type(
|
|
18102
18761
|
jsii_type="aws-cdk-lib.aws_s3.RoutingRule",
|
|
18103
18762
|
jsii_struct_bases=[],
|
|
@@ -18916,6 +19575,30 @@ class BucketBase(
|
|
|
18916
19575
|
check_type(argname="argument filters", value=filters, expected_type=typing.Tuple[type_hints["filters"], ...]) # pyright: ignore [reportGeneralTypeIssues]
|
|
18917
19576
|
return typing.cast(None, jsii.invoke(self, "addObjectRemovedNotification", [dest, *filters]))
|
|
18918
19577
|
|
|
19578
|
+
@jsii.member(jsii_name="addReplicationPolicy")
|
|
19579
|
+
def add_replication_policy(
|
|
19580
|
+
self,
|
|
19581
|
+
role_arn: builtins.str,
|
|
19582
|
+
access_control_transition: typing.Optional[builtins.bool] = None,
|
|
19583
|
+
account: typing.Optional[builtins.str] = None,
|
|
19584
|
+
) -> None:
|
|
19585
|
+
'''Function to add required permissions to the destination bucket for cross account replication.
|
|
19586
|
+
|
|
19587
|
+
These permissions will be added as a resource based policy on the bucket
|
|
19588
|
+
|
|
19589
|
+
:param role_arn: -
|
|
19590
|
+
:param access_control_transition: -
|
|
19591
|
+
:param account: -
|
|
19592
|
+
|
|
19593
|
+
:see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3-bucket-accesscontroltranslation.html
|
|
19594
|
+
'''
|
|
19595
|
+
if __debug__:
|
|
19596
|
+
type_hints = typing.get_type_hints(_typecheckingstub__2baf8c6982c06606b5434f658a8175f6838f55345a6d423d335af89dfa1728cd)
|
|
19597
|
+
check_type(argname="argument role_arn", value=role_arn, expected_type=type_hints["role_arn"])
|
|
19598
|
+
check_type(argname="argument access_control_transition", value=access_control_transition, expected_type=type_hints["access_control_transition"])
|
|
19599
|
+
check_type(argname="argument account", value=account, expected_type=type_hints["account"])
|
|
19600
|
+
return typing.cast(None, jsii.invoke(self, "addReplicationPolicy", [role_arn, access_control_transition, account]))
|
|
19601
|
+
|
|
18919
19602
|
@jsii.member(jsii_name="addToResourcePolicy")
|
|
18920
19603
|
def add_to_resource_policy(
|
|
18921
19604
|
self,
|
|
@@ -19515,6 +20198,18 @@ class BucketBase(
|
|
|
19515
20198
|
def policy(self, value: typing.Optional[BucketPolicy]) -> None:
|
|
19516
20199
|
...
|
|
19517
20200
|
|
|
20201
|
+
@builtins.property
|
|
20202
|
+
@jsii.member(jsii_name="replicationRoleArn")
|
|
20203
|
+
@abc.abstractmethod
|
|
20204
|
+
def replication_role_arn(self) -> typing.Optional[builtins.str]:
|
|
20205
|
+
'''Role used to set up permissions on this bucket for replication.'''
|
|
20206
|
+
...
|
|
20207
|
+
|
|
20208
|
+
@replication_role_arn.setter
|
|
20209
|
+
@abc.abstractmethod
|
|
20210
|
+
def replication_role_arn(self, value: typing.Optional[builtins.str]) -> None:
|
|
20211
|
+
...
|
|
20212
|
+
|
|
19518
20213
|
|
|
19519
20214
|
class _BucketBaseProxy(
|
|
19520
20215
|
BucketBase,
|
|
@@ -19617,6 +20312,19 @@ class _BucketBaseProxy(
|
|
|
19617
20312
|
check_type(argname="argument value", value=value, expected_type=type_hints["value"])
|
|
19618
20313
|
jsii.set(self, "policy", value) # pyright: ignore[reportArgumentType]
|
|
19619
20314
|
|
|
20315
|
+
@builtins.property
|
|
20316
|
+
@jsii.member(jsii_name="replicationRoleArn")
|
|
20317
|
+
def replication_role_arn(self) -> typing.Optional[builtins.str]:
|
|
20318
|
+
'''Role used to set up permissions on this bucket for replication.'''
|
|
20319
|
+
return typing.cast(typing.Optional[builtins.str], jsii.get(self, "replicationRoleArn"))
|
|
20320
|
+
|
|
20321
|
+
@replication_role_arn.setter
|
|
20322
|
+
def replication_role_arn(self, value: typing.Optional[builtins.str]) -> None:
|
|
20323
|
+
if __debug__:
|
|
20324
|
+
type_hints = typing.get_type_hints(_typecheckingstub__0f4abefa77a469d6581b7fbd2e412d7d2f099dc365ac4138047e78313165885b)
|
|
20325
|
+
check_type(argname="argument value", value=value, expected_type=type_hints["value"])
|
|
20326
|
+
jsii.set(self, "replicationRoleArn", value) # pyright: ignore[reportArgumentType]
|
|
20327
|
+
|
|
19620
20328
|
# Adding a "__jsii_proxy_class__(): typing.Type" function to the abstract class
|
|
19621
20329
|
typing.cast(typing.Any, BucketBase).__jsii_proxy_class__ = lambda : _BucketBaseProxy
|
|
19622
20330
|
|
|
@@ -19672,6 +20380,7 @@ class Bucket(
|
|
|
19672
20380
|
object_ownership: typing.Optional[ObjectOwnership] = None,
|
|
19673
20381
|
public_read_access: typing.Optional[builtins.bool] = None,
|
|
19674
20382
|
removal_policy: typing.Optional[_RemovalPolicy_9f93c814] = None,
|
|
20383
|
+
replication_rules: typing.Optional[typing.Sequence[typing.Union[ReplicationRule, typing.Dict[builtins.str, typing.Any]]]] = None,
|
|
19675
20384
|
server_access_logs_bucket: typing.Optional[IBucket] = None,
|
|
19676
20385
|
server_access_logs_prefix: typing.Optional[builtins.str] = None,
|
|
19677
20386
|
target_object_key_format: typing.Optional[TargetObjectKeyFormat] = None,
|
|
@@ -19696,7 +20405,7 @@ class Bucket(
|
|
|
19696
20405
|
:param encryption_key: External KMS key to use for bucket encryption. The ``encryption`` property must be either not specified or set to ``KMS`` or ``DSSE``. An error will be emitted if ``encryption`` is set to ``UNENCRYPTED`` or ``S3_MANAGED``. Default: - If ``encryption`` is set to ``KMS`` and this property is undefined, a new KMS key will be created and associated with this bucket.
|
|
19697
20406
|
:param enforce_ssl: Enforces SSL for requests. S3.5 of the AWS Foundational Security Best Practices Regarding S3. Default: false
|
|
19698
20407
|
:param event_bridge_enabled: Whether this bucket should send notifications to Amazon EventBridge or not. Default: false
|
|
19699
|
-
:param intelligent_tiering_configurations:
|
|
20408
|
+
:param intelligent_tiering_configurations: Intelligent Tiering Configurations. Default: No Intelligent Tiiering Configurations.
|
|
19700
20409
|
:param inventories: The inventory configuration of the bucket. Default: - No inventory configuration
|
|
19701
20410
|
:param lifecycle_rules: Rules that define how Amazon S3 manages objects during their lifetime. Default: - No lifecycle rules.
|
|
19702
20411
|
:param metrics: The metrics configuration of this bucket. Default: - No metrics configuration.
|
|
@@ -19708,6 +20417,7 @@ class Bucket(
|
|
|
19708
20417
|
:param object_ownership: The objectOwnership of the bucket. Default: - No ObjectOwnership configuration. By default, Amazon S3 sets Object Ownership to ``Bucket owner enforced``. This means ACLs are disabled and the bucket owner will own every object.
|
|
19709
20418
|
:param public_read_access: Grants public read access to all objects in the bucket. Similar to calling ``bucket.grantPublicAccess()`` Default: false
|
|
19710
20419
|
:param removal_policy: Policy to apply when the bucket is removed from this stack. Default: - The bucket will be orphaned.
|
|
20420
|
+
:param replication_rules: A container for one or more replication rules. Default: - No replication
|
|
19711
20421
|
:param server_access_logs_bucket: Destination bucket for the server access logs. Default: - If "serverAccessLogsPrefix" undefined - access logs disabled, otherwise - log to current bucket.
|
|
19712
20422
|
:param server_access_logs_prefix: Optional log file prefix to use for the bucket's access logs. If defined without "serverAccessLogsBucket", enables access logs to current bucket with this prefix. Default: - No log file prefix
|
|
19713
20423
|
:param target_object_key_format: Optional key format for log objects. Default: - the default key format is: [DestinationPrefix][YYYY]-[MM]-[DD]-[hh]-[mm]-[ss]-[UniqueString]
|
|
@@ -19746,6 +20456,7 @@ class Bucket(
|
|
|
19746
20456
|
object_ownership=object_ownership,
|
|
19747
20457
|
public_read_access=public_read_access,
|
|
19748
20458
|
removal_policy=removal_policy,
|
|
20459
|
+
replication_rules=replication_rules,
|
|
19749
20460
|
server_access_logs_bucket=server_access_logs_bucket,
|
|
19750
20461
|
server_access_logs_prefix=server_access_logs_prefix,
|
|
19751
20462
|
target_object_key_format=target_object_key_format,
|
|
@@ -20126,6 +20837,19 @@ class Bucket(
|
|
|
20126
20837
|
check_type(argname="argument value", value=value, expected_type=type_hints["value"])
|
|
20127
20838
|
jsii.set(self, "policy", value) # pyright: ignore[reportArgumentType]
|
|
20128
20839
|
|
|
20840
|
+
@builtins.property
|
|
20841
|
+
@jsii.member(jsii_name="replicationRoleArn")
|
|
20842
|
+
def replication_role_arn(self) -> typing.Optional[builtins.str]:
|
|
20843
|
+
'''Role used to set up permissions on this bucket for replication.'''
|
|
20844
|
+
return typing.cast(typing.Optional[builtins.str], jsii.get(self, "replicationRoleArn"))
|
|
20845
|
+
|
|
20846
|
+
@replication_role_arn.setter
|
|
20847
|
+
def replication_role_arn(self, value: typing.Optional[builtins.str]) -> None:
|
|
20848
|
+
if __debug__:
|
|
20849
|
+
type_hints = typing.get_type_hints(_typecheckingstub__3cb691a849de33681a4f0021424f266609c2785cf8cbf5306c98726a6230a9e2)
|
|
20850
|
+
check_type(argname="argument value", value=value, expected_type=type_hints["value"])
|
|
20851
|
+
jsii.set(self, "replicationRoleArn", value) # pyright: ignore[reportArgumentType]
|
|
20852
|
+
|
|
20129
20853
|
|
|
20130
20854
|
__all__ = [
|
|
20131
20855
|
"BlockPublicAccess",
|
|
@@ -20163,6 +20887,7 @@ __all__ = [
|
|
|
20163
20887
|
"CfnStorageLensProps",
|
|
20164
20888
|
"CorsRule",
|
|
20165
20889
|
"EventType",
|
|
20890
|
+
"Filter",
|
|
20166
20891
|
"HttpMethods",
|
|
20167
20892
|
"IBucket",
|
|
20168
20893
|
"IBucketNotificationDestination",
|
|
@@ -20184,6 +20909,8 @@ __all__ = [
|
|
|
20184
20909
|
"RedirectProtocol",
|
|
20185
20910
|
"RedirectTarget",
|
|
20186
20911
|
"ReplaceKey",
|
|
20912
|
+
"ReplicationRule",
|
|
20913
|
+
"ReplicationTimeValue",
|
|
20187
20914
|
"RoutingRule",
|
|
20188
20915
|
"RoutingRuleCondition",
|
|
20189
20916
|
"StorageClass",
|
|
@@ -20321,6 +21048,7 @@ def _typecheckingstub__f2ff878f2dca3dd037442155369c2fcc7bd194425c0967a7fd7bfa576
|
|
|
20321
21048
|
object_ownership: typing.Optional[ObjectOwnership] = None,
|
|
20322
21049
|
public_read_access: typing.Optional[builtins.bool] = None,
|
|
20323
21050
|
removal_policy: typing.Optional[_RemovalPolicy_9f93c814] = None,
|
|
21051
|
+
replication_rules: typing.Optional[typing.Sequence[typing.Union[ReplicationRule, typing.Dict[builtins.str, typing.Any]]]] = None,
|
|
20324
21052
|
server_access_logs_bucket: typing.Optional[IBucket] = None,
|
|
20325
21053
|
server_access_logs_prefix: typing.Optional[builtins.str] = None,
|
|
20326
21054
|
target_object_key_format: typing.Optional[TargetObjectKeyFormat] = None,
|
|
@@ -21781,12 +22509,26 @@ def _typecheckingstub__beafb715fedc4fd96130b462f30e56792d8aa655173f4d4fa2e8dcd77
|
|
|
21781
22509
|
"""Type checking stubs"""
|
|
21782
22510
|
pass
|
|
21783
22511
|
|
|
22512
|
+
def _typecheckingstub__ff4b8a813f6812ab1464fced92fa61b97e151767705973ce994c0970fde139df(
|
|
22513
|
+
*,
|
|
22514
|
+
prefix: typing.Optional[builtins.str] = None,
|
|
22515
|
+
tags: typing.Optional[typing.Sequence[typing.Union[Tag, typing.Dict[builtins.str, typing.Any]]]] = None,
|
|
22516
|
+
) -> None:
|
|
22517
|
+
"""Type checking stubs"""
|
|
22518
|
+
pass
|
|
22519
|
+
|
|
21784
22520
|
def _typecheckingstub__eee382ff86c17d46379012dcccee86976ea92e15cb6d63c3e3f4e853c058ac53(
|
|
21785
22521
|
value: typing.Optional[BucketPolicy],
|
|
21786
22522
|
) -> None:
|
|
21787
22523
|
"""Type checking stubs"""
|
|
21788
22524
|
pass
|
|
21789
22525
|
|
|
22526
|
+
def _typecheckingstub__45b20ede572212a5391ce58bc0693933ac9d1bc950c6cafac24d9b7d29ad1405(
|
|
22527
|
+
value: typing.Optional[builtins.str],
|
|
22528
|
+
) -> None:
|
|
22529
|
+
"""Type checking stubs"""
|
|
22530
|
+
pass
|
|
22531
|
+
|
|
21790
22532
|
def _typecheckingstub__168148771b23de203b7e69eb1dbaf2f881de4c7cc276b7648b26fd4a3eddbcf0(
|
|
21791
22533
|
event: EventType,
|
|
21792
22534
|
dest: IBucketNotificationDestination,
|
|
@@ -21809,6 +22551,14 @@ def _typecheckingstub__4910aa7bbd431cf72fd4b6ab066e8ea5996c68d10a0bccf26fab5d478
|
|
|
21809
22551
|
"""Type checking stubs"""
|
|
21810
22552
|
pass
|
|
21811
22553
|
|
|
22554
|
+
def _typecheckingstub__6c2e7fc14ca3997ce00436db7203d2e5669fde630c0dd481f20a6192f12706c7(
|
|
22555
|
+
role_arn: builtins.str,
|
|
22556
|
+
access_control_transition: typing.Optional[builtins.bool] = None,
|
|
22557
|
+
account: typing.Optional[builtins.str] = None,
|
|
22558
|
+
) -> None:
|
|
22559
|
+
"""Type checking stubs"""
|
|
22560
|
+
pass
|
|
22561
|
+
|
|
21812
22562
|
def _typecheckingstub__53d6461d1a4f06eb11f149b8578ad4a818c59103b2c6b4af84212b71aed4c24b(
|
|
21813
22563
|
permission: _PolicyStatement_0fe33853,
|
|
21814
22564
|
) -> None:
|
|
@@ -22069,6 +22819,24 @@ def _typecheckingstub__080e6df7f96363149eb8dfbb9c1dcddefe96fd0ba7c0bb0e46fdbcf1b
|
|
|
22069
22819
|
"""Type checking stubs"""
|
|
22070
22820
|
pass
|
|
22071
22821
|
|
|
22822
|
+
def _typecheckingstub__2eb99af4044ffb625b707ac7ff5de3796f00ec1217ed24e21f6c240e90e846f0(
|
|
22823
|
+
*,
|
|
22824
|
+
destination: IBucket,
|
|
22825
|
+
access_control_transition: typing.Optional[builtins.bool] = None,
|
|
22826
|
+
delete_marker_replication: typing.Optional[builtins.bool] = None,
|
|
22827
|
+
filter: typing.Optional[typing.Union[Filter, typing.Dict[builtins.str, typing.Any]]] = None,
|
|
22828
|
+
id: typing.Optional[builtins.str] = None,
|
|
22829
|
+
kms_key: typing.Optional[_IKey_5f11635f] = None,
|
|
22830
|
+
metrics: typing.Optional[ReplicationTimeValue] = None,
|
|
22831
|
+
priority: typing.Optional[jsii.Number] = None,
|
|
22832
|
+
replica_modifications: typing.Optional[builtins.bool] = None,
|
|
22833
|
+
replication_time_control: typing.Optional[ReplicationTimeValue] = None,
|
|
22834
|
+
sse_kms_encrypted_objects: typing.Optional[builtins.bool] = None,
|
|
22835
|
+
storage_class: typing.Optional[StorageClass] = None,
|
|
22836
|
+
) -> None:
|
|
22837
|
+
"""Type checking stubs"""
|
|
22838
|
+
pass
|
|
22839
|
+
|
|
22072
22840
|
def _typecheckingstub__a8752d303f1211901bb201082ccfac00227de7385764f326153a028696cc3c69(
|
|
22073
22841
|
*,
|
|
22074
22842
|
condition: typing.Optional[typing.Union[RoutingRuleCondition, typing.Dict[builtins.str, typing.Any]]] = None,
|
|
@@ -22165,6 +22933,14 @@ def _typecheckingstub__8f64f0928c3476db108d977ca1410bedef163a53d2b6d451e140ea634
|
|
|
22165
22933
|
"""Type checking stubs"""
|
|
22166
22934
|
pass
|
|
22167
22935
|
|
|
22936
|
+
def _typecheckingstub__2baf8c6982c06606b5434f658a8175f6838f55345a6d423d335af89dfa1728cd(
|
|
22937
|
+
role_arn: builtins.str,
|
|
22938
|
+
access_control_transition: typing.Optional[builtins.bool] = None,
|
|
22939
|
+
account: typing.Optional[builtins.str] = None,
|
|
22940
|
+
) -> None:
|
|
22941
|
+
"""Type checking stubs"""
|
|
22942
|
+
pass
|
|
22943
|
+
|
|
22168
22944
|
def _typecheckingstub__9fb30c6ad4f147f97466d3202c95d1247eaa1236b9e36d84d77037fde8af5fb9(
|
|
22169
22945
|
permission: _PolicyStatement_0fe33853,
|
|
22170
22946
|
) -> None:
|
|
@@ -22330,6 +23106,12 @@ def _typecheckingstub__1d54fb5dd19da2dbb943d620662efadde1df29be901c2f95b3ae6d389
|
|
|
22330
23106
|
"""Type checking stubs"""
|
|
22331
23107
|
pass
|
|
22332
23108
|
|
|
23109
|
+
def _typecheckingstub__0f4abefa77a469d6581b7fbd2e412d7d2f099dc365ac4138047e78313165885b(
|
|
23110
|
+
value: typing.Optional[builtins.str],
|
|
23111
|
+
) -> None:
|
|
23112
|
+
"""Type checking stubs"""
|
|
23113
|
+
pass
|
|
23114
|
+
|
|
22333
23115
|
def _typecheckingstub__25f24cbf29544d9c579e765350a7b51ec4ec81bc2cc07a21660738a1e6bc81fe(
|
|
22334
23116
|
scope: _constructs_77d1e7e8.Construct,
|
|
22335
23117
|
id: builtins.str,
|
|
@@ -22356,6 +23138,7 @@ def _typecheckingstub__25f24cbf29544d9c579e765350a7b51ec4ec81bc2cc07a21660738a1e
|
|
|
22356
23138
|
object_ownership: typing.Optional[ObjectOwnership] = None,
|
|
22357
23139
|
public_read_access: typing.Optional[builtins.bool] = None,
|
|
22358
23140
|
removal_policy: typing.Optional[_RemovalPolicy_9f93c814] = None,
|
|
23141
|
+
replication_rules: typing.Optional[typing.Sequence[typing.Union[ReplicationRule, typing.Dict[builtins.str, typing.Any]]]] = None,
|
|
22359
23142
|
server_access_logs_bucket: typing.Optional[IBucket] = None,
|
|
22360
23143
|
server_access_logs_prefix: typing.Optional[builtins.str] = None,
|
|
22361
23144
|
target_object_key_format: typing.Optional[TargetObjectKeyFormat] = None,
|
|
@@ -22436,3 +23219,9 @@ def _typecheckingstub__afd8c4da1d866abcdc76879948bb11bd5a21a374e5ebf1e4445208dec
|
|
|
22436
23219
|
) -> None:
|
|
22437
23220
|
"""Type checking stubs"""
|
|
22438
23221
|
pass
|
|
23222
|
+
|
|
23223
|
+
def _typecheckingstub__3cb691a849de33681a4f0021424f266609c2785cf8cbf5306c98726a6230a9e2(
|
|
23224
|
+
value: typing.Optional[builtins.str],
|
|
23225
|
+
) -> None:
|
|
23226
|
+
"""Type checking stubs"""
|
|
23227
|
+
pass
|