aws-cdk-lib 2.195.0__py3-none-any.whl → 2.224.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 +1806 -417
- aws_cdk/_jsii/__init__.py +1 -1
- aws_cdk/_jsii/{aws-cdk-lib@2.195.0.jsii.tgz → aws-cdk-lib@2.224.0.jsii.tgz} +0 -0
- aws_cdk/alexa_ask/__init__.py +12 -2
- aws_cdk/aws_accessanalyzer/__init__.py +323 -6
- aws_cdk/aws_acmpca/__init__.py +53 -10
- aws_cdk/aws_aiops/__init__.py +1019 -0
- aws_cdk/aws_amazonmq/__init__.py +357 -313
- aws_cdk/aws_amplify/__init__.py +173 -17
- aws_cdk/aws_amplifyuibuilder/__init__.py +35 -6
- aws_cdk/aws_apigateway/__init__.py +1245 -215
- aws_cdk/aws_apigatewayv2/__init__.py +3890 -476
- aws_cdk/aws_apigatewayv2_integrations/__init__.py +94 -16
- aws_cdk/aws_appconfig/__init__.py +618 -91
- aws_cdk/aws_appflow/__init__.py +151 -6
- aws_cdk/aws_appintegrations/__init__.py +546 -6
- aws_cdk/aws_applicationautoscaling/__init__.py +75 -10
- aws_cdk/aws_applicationinsights/__init__.py +13 -2
- aws_cdk/aws_applicationsignals/__init__.py +374 -6
- aws_cdk/aws_appmesh/__init__.py +136 -26
- aws_cdk/aws_apprunner/__init__.py +66 -18
- aws_cdk/aws_appstream/__init__.py +309 -55
- aws_cdk/aws_appsync/__init__.py +350 -94
- aws_cdk/aws_apptest/__init__.py +71 -2
- aws_cdk/aws_aps/__init__.py +2188 -94
- aws_cdk/aws_arcregionswitch/__init__.py +5095 -0
- aws_cdk/aws_arczonalshift/__init__.py +39 -12
- aws_cdk/aws_athena/__init__.py +365 -29
- aws_cdk/aws_auditmanager/__init__.py +71 -2
- aws_cdk/aws_autoscaling/__init__.py +165 -60
- aws_cdk/aws_autoscaling_common/__init__.py +3 -0
- aws_cdk/aws_autoscalingplans/__init__.py +13 -2
- aws_cdk/aws_b2bi/__init__.py +1819 -99
- aws_cdk/aws_backup/__init__.py +370 -42
- aws_cdk/aws_backupgateway/__init__.py +13 -2
- aws_cdk/aws_batch/__init__.py +1462 -163
- aws_cdk/aws_bcmdataexports/__init__.py +21 -2
- aws_cdk/aws_bedrock/__init__.py +7867 -727
- aws_cdk/aws_bedrockagentcore/__init__.py +10425 -0
- aws_cdk/aws_billingconductor/__init__.py +197 -11
- aws_cdk/aws_budgets/__init__.py +611 -4
- aws_cdk/aws_cassandra/__init__.py +247 -6
- aws_cdk/aws_ce/__init__.py +35 -6
- aws_cdk/aws_certificatemanager/__init__.py +258 -32
- aws_cdk/aws_chatbot/__init__.py +76 -6
- aws_cdk/aws_cleanrooms/__init__.py +709 -206
- aws_cdk/aws_cleanroomsml/__init__.py +13 -2
- aws_cdk/aws_cloud9/__init__.py +13 -2
- aws_cdk/aws_cloudformation/__init__.py +362 -189
- aws_cdk/aws_cloudfront/__init__.py +2188 -674
- aws_cdk/aws_cloudfront/experimental/__init__.py +114 -16
- aws_cdk/aws_cloudfront_origins/__init__.py +615 -74
- aws_cdk/aws_cloudtrail/__init__.py +311 -21
- aws_cdk/aws_cloudwatch/__init__.py +3093 -1038
- aws_cdk/aws_cloudwatch_actions/__init__.py +75 -1
- aws_cdk/aws_codeartifact/__init__.py +35 -6
- aws_cdk/aws_codebuild/__init__.py +1303 -135
- aws_cdk/aws_codecommit/__init__.py +29 -9
- aws_cdk/aws_codeconnections/__init__.py +13 -2
- aws_cdk/aws_codedeploy/__init__.py +130 -6
- aws_cdk/aws_codeguruprofiler/__init__.py +80 -2
- aws_cdk/aws_codegurureviewer/__init__.py +13 -2
- aws_cdk/aws_codepipeline/__init__.py +177 -71
- aws_cdk/aws_codepipeline_actions/__init__.py +753 -4
- aws_cdk/aws_codestar/__init__.py +13 -2
- aws_cdk/aws_codestarconnections/__init__.py +35 -6
- aws_cdk/aws_codestarnotifications/__init__.py +22 -2
- aws_cdk/aws_cognito/__init__.py +905 -92
- aws_cdk/aws_cognito_identitypool/__init__.py +23 -12
- aws_cdk/aws_comprehend/__init__.py +24 -4
- aws_cdk/aws_config/__init__.py +227 -30
- aws_cdk/aws_connect/__init__.py +2736 -191
- aws_cdk/aws_connectcampaigns/__init__.py +13 -2
- aws_cdk/aws_connectcampaignsv2/__init__.py +268 -6
- aws_cdk/aws_controltower/__init__.py +35 -6
- aws_cdk/aws_cur/__init__.py +100 -4
- aws_cdk/aws_customerprofiles/__init__.py +617 -27
- aws_cdk/aws_databrew/__init__.py +68 -12
- aws_cdk/aws_datapipeline/__init__.py +42 -2
- aws_cdk/aws_datasync/__init__.py +1514 -977
- aws_cdk/aws_datazone/__init__.py +7426 -1763
- aws_cdk/aws_dax/__init__.py +83 -6
- aws_cdk/aws_deadline/__init__.py +511 -36
- aws_cdk/aws_detective/__init__.py +35 -6
- aws_cdk/aws_devicefarm/__init__.py +68 -12
- aws_cdk/aws_devopsguru/__init__.py +37 -6
- aws_cdk/aws_directoryservice/__init__.py +53 -4
- aws_cdk/aws_dlm/__init__.py +13 -2
- aws_cdk/aws_dms/__init__.py +184 -27
- aws_cdk/aws_docdb/__init__.py +350 -49
- aws_cdk/aws_docdbelastic/__init__.py +13 -2
- aws_cdk/aws_dsql/__init__.py +386 -16
- aws_cdk/aws_dynamodb/__init__.py +1479 -170
- aws_cdk/aws_ec2/__init__.py +10465 -1335
- aws_cdk/aws_ecr/__init__.py +637 -43
- aws_cdk/aws_ecr_assets/__init__.py +10 -0
- aws_cdk/aws_ecs/__init__.py +6629 -490
- aws_cdk/aws_ecs_patterns/__init__.py +124 -12
- aws_cdk/aws_efs/__init__.py +276 -24
- aws_cdk/aws_eks/__init__.py +1132 -227
- aws_cdk/aws_elasticache/__init__.py +378 -25
- aws_cdk/aws_elasticbeanstalk/__init__.py +75 -8
- aws_cdk/aws_elasticloadbalancing/__init__.py +22 -2
- aws_cdk/aws_elasticloadbalancingv2/__init__.py +1796 -123
- aws_cdk/aws_elasticsearch/__init__.py +291 -9
- aws_cdk/aws_emr/__init__.py +219 -18
- aws_cdk/aws_emrcontainers/__init__.py +71 -2
- aws_cdk/aws_emrserverless/__init__.py +188 -3
- aws_cdk/aws_entityresolution/__init__.py +585 -58
- aws_cdk/aws_events/__init__.py +1007 -126
- aws_cdk/aws_events_targets/__init__.py +398 -65
- aws_cdk/aws_eventschemas/__init__.py +46 -8
- aws_cdk/aws_evidently/__init__.py +57 -10
- aws_cdk/aws_evs/__init__.py +2244 -0
- aws_cdk/aws_finspace/__init__.py +71 -2
- aws_cdk/aws_fis/__init__.py +26 -4
- aws_cdk/aws_fms/__init__.py +35 -6
- aws_cdk/aws_forecast/__init__.py +24 -4
- aws_cdk/aws_frauddetector/__init__.py +79 -14
- aws_cdk/aws_fsx/__init__.py +1349 -127
- aws_cdk/aws_gamelift/__init__.py +755 -94
- aws_cdk/aws_gameliftstreams/__init__.py +44 -22
- aws_cdk/aws_globalaccelerator/__init__.py +73 -14
- aws_cdk/aws_glue/__init__.py +1455 -378
- aws_cdk/aws_grafana/__init__.py +13 -2
- aws_cdk/aws_greengrass/__init__.py +654 -32
- aws_cdk/aws_greengrassv2/__init__.py +53 -4
- aws_cdk/aws_groundstation/__init__.py +122 -6
- aws_cdk/aws_guardduty/__init__.py +1613 -123
- aws_cdk/aws_healthimaging/__init__.py +71 -2
- aws_cdk/aws_healthlake/__init__.py +42 -2
- aws_cdk/aws_iam/__init__.py +921 -141
- aws_cdk/aws_identitystore/__init__.py +24 -4
- aws_cdk/aws_imagebuilder/__init__.py +1454 -199
- aws_cdk/aws_inspector/__init__.py +44 -6
- aws_cdk/aws_inspectorv2/__init__.py +2285 -243
- aws_cdk/aws_internetmonitor/__init__.py +71 -2
- aws_cdk/aws_invoicing/__init__.py +13 -2
- aws_cdk/aws_iot/__init__.py +1760 -64
- aws_cdk/aws_iotanalytics/__init__.py +162 -8
- aws_cdk/aws_iotcoredeviceadvisor/__init__.py +106 -40
- aws_cdk/aws_iotevents/__init__.py +122 -6
- aws_cdk/aws_iotfleethub/__init__.py +71 -2
- aws_cdk/aws_iotfleetwise/__init__.py +195 -14
- aws_cdk/aws_iotsitewise/__init__.py +1837 -89
- aws_cdk/aws_iotthingsgraph/__init__.py +13 -2
- aws_cdk/aws_iottwinmaker/__init__.py +115 -10
- aws_cdk/aws_iotwireless/__init__.py +649 -22
- aws_cdk/aws_ivs/__init__.py +561 -57
- aws_cdk/aws_ivschat/__init__.py +24 -4
- aws_cdk/aws_kafkaconnect/__init__.py +35 -6
- aws_cdk/aws_kendra/__init__.py +120 -28
- aws_cdk/aws_kendraranking/__init__.py +13 -2
- aws_cdk/aws_kinesis/__init__.py +641 -23
- aws_cdk/aws_kinesisanalytics/__init__.py +467 -96
- aws_cdk/aws_kinesisanalyticsv2/__init__.py +207 -19
- aws_cdk/aws_kinesisfirehose/__init__.py +3087 -295
- aws_cdk/aws_kinesisvideo/__init__.py +24 -4
- aws_cdk/aws_kms/__init__.py +204 -45
- aws_cdk/aws_lakeformation/__init__.py +80 -15
- aws_cdk/aws_lambda/__init__.py +2236 -297
- aws_cdk/aws_lambda_event_sources/__init__.py +638 -1
- aws_cdk/aws_lambda_nodejs/__init__.py +63 -24
- aws_cdk/aws_launchwizard/__init__.py +13 -2
- aws_cdk/aws_lex/__init__.py +2162 -212
- aws_cdk/aws_licensemanager/__init__.py +24 -4
- aws_cdk/aws_lightsail/__init__.py +2958 -1322
- aws_cdk/aws_location/__init__.py +618 -14
- aws_cdk/aws_logs/__init__.py +6014 -923
- aws_cdk/aws_lookoutequipment/__init__.py +13 -2
- aws_cdk/aws_lookoutmetrics/__init__.py +38 -6
- aws_cdk/aws_lookoutvision/__init__.py +71 -2
- aws_cdk/aws_m2/__init__.py +94 -19
- aws_cdk/aws_macie/__init__.py +49 -11
- aws_cdk/aws_managedblockchain/__init__.py +180 -6
- aws_cdk/aws_mediaconnect/__init__.py +101 -18
- aws_cdk/aws_mediaconvert/__init__.py +35 -6
- aws_cdk/aws_medialive/__init__.py +1938 -532
- aws_cdk/aws_mediapackage/__init__.py +59 -12
- aws_cdk/aws_mediapackagev2/__init__.py +1616 -233
- aws_cdk/aws_mediastore/__init__.py +13 -2
- aws_cdk/aws_mediatailor/__init__.py +583 -12
- aws_cdk/aws_memorydb/__init__.py +271 -12
- aws_cdk/aws_mpa/__init__.py +1495 -0
- aws_cdk/aws_msk/__init__.py +108 -22
- aws_cdk/aws_mwaa/__init__.py +121 -9
- aws_cdk/aws_neptune/__init__.py +290 -78
- aws_cdk/aws_neptunegraph/__init__.py +24 -4
- aws_cdk/aws_networkfirewall/__init__.py +1184 -164
- aws_cdk/aws_networkmanager/__init__.py +349 -33
- aws_cdk/aws_nimblestudio/__init__.py +283 -408
- aws_cdk/aws_notifications/__init__.py +317 -12
- aws_cdk/aws_notificationscontacts/__init__.py +13 -2
- aws_cdk/aws_oam/__init__.py +24 -4
- aws_cdk/aws_observabilityadmin/__init__.py +2561 -0
- aws_cdk/aws_odb/__init__.py +5872 -0
- aws_cdk/aws_omics/__init__.py +2967 -162
- aws_cdk/aws_opensearchserverless/__init__.py +312 -37
- aws_cdk/aws_opensearchservice/__init__.py +501 -19
- aws_cdk/aws_opsworks/__init__.py +235 -139
- aws_cdk/aws_opsworkscm/__init__.py +16 -52
- aws_cdk/aws_organizations/__init__.py +70 -10
- aws_cdk/aws_osis/__init__.py +167 -2
- aws_cdk/aws_panorama/__init__.py +181 -9
- aws_cdk/aws_paymentcryptography/__init__.py +24 -4
- aws_cdk/aws_pcaconnectorad/__init__.py +59 -10
- aws_cdk/aws_pcaconnectorscep/__init__.py +24 -4
- aws_cdk/aws_pcs/__init__.py +516 -64
- aws_cdk/aws_personalize/__init__.py +46 -8
- aws_cdk/aws_pinpoint/__init__.py +329 -38
- aws_cdk/aws_pinpointemail/__init__.py +48 -8
- aws_cdk/aws_pipes/__init__.py +12 -2
- aws_cdk/aws_proton/__init__.py +37 -6
- aws_cdk/aws_qbusiness/__init__.py +635 -34
- aws_cdk/aws_qldb/__init__.py +24 -4
- aws_cdk/aws_quicksight/__init__.py +7900 -1160
- aws_cdk/aws_ram/__init__.py +24 -4
- aws_cdk/aws_rbin/__init__.py +12 -2
- aws_cdk/aws_rds/__init__.py +3721 -573
- aws_cdk/aws_redshift/__init__.py +143 -20
- aws_cdk/aws_redshiftserverless/__init__.py +699 -11
- aws_cdk/aws_refactorspaces/__init__.py +64 -14
- aws_cdk/aws_rekognition/__init__.py +93 -6
- aws_cdk/aws_resiliencehub/__init__.py +24 -4
- aws_cdk/aws_resourceexplorer2/__init__.py +35 -6
- aws_cdk/aws_resourcegroups/__init__.py +82 -4
- aws_cdk/aws_robomaker/__init__.py +72 -12
- aws_cdk/aws_rolesanywhere/__init__.py +194 -19
- aws_cdk/aws_route53/__init__.py +3965 -1436
- aws_cdk/aws_route53_targets/__init__.py +3 -0
- aws_cdk/aws_route53profiles/__init__.py +37 -6
- aws_cdk/aws_route53recoverycontrol/__init__.py +46 -8
- aws_cdk/aws_route53recoveryreadiness/__init__.py +104 -8
- aws_cdk/aws_route53resolver/__init__.py +189 -40
- aws_cdk/aws_rtbfabric/__init__.py +3498 -0
- aws_cdk/aws_rum/__init__.py +13 -2
- aws_cdk/aws_s3/__init__.py +1742 -221
- aws_cdk/aws_s3_assets/__init__.py +11 -11
- aws_cdk/aws_s3_deployment/__init__.py +153 -11
- aws_cdk/aws_s3_notifications/__init__.py +7 -7
- aws_cdk/aws_s3express/__init__.py +1053 -6
- aws_cdk/aws_s3objectlambda/__init__.py +68 -16
- aws_cdk/aws_s3outposts/__init__.py +46 -8
- aws_cdk/aws_s3tables/__init__.py +2000 -323
- aws_cdk/aws_s3vectors/__init__.py +1378 -0
- aws_cdk/aws_sagemaker/__init__.py +6848 -373
- aws_cdk/aws_sam/__init__.py +79 -14
- aws_cdk/aws_scheduler/__init__.py +249 -4
- aws_cdk/aws_sdb/__init__.py +12 -2
- aws_cdk/aws_secretsmanager/__init__.py +194 -14
- aws_cdk/aws_securityhub/__init__.py +3121 -176
- aws_cdk/aws_securitylake/__init__.py +46 -8
- aws_cdk/aws_servicecatalog/__init__.py +429 -246
- aws_cdk/aws_servicecatalogappregistry/__init__.py +164 -8
- aws_cdk/aws_servicediscovery/__init__.py +188 -47
- aws_cdk/aws_ses/__init__.py +2265 -369
- aws_cdk/aws_shield/__init__.py +46 -8
- aws_cdk/aws_signer/__init__.py +33 -4
- aws_cdk/aws_simspaceweaver/__init__.py +42 -2
- aws_cdk/aws_smsvoice/__init__.py +4716 -0
- aws_cdk/aws_sns/__init__.py +263 -29
- aws_cdk/aws_sns_subscriptions/__init__.py +265 -2
- aws_cdk/aws_sqs/__init__.py +223 -14
- aws_cdk/aws_ssm/__init__.py +413 -58
- aws_cdk/aws_ssmcontacts/__init__.py +98 -9
- aws_cdk/aws_ssmguiconnect/__init__.py +20 -9
- aws_cdk/aws_ssmincidents/__init__.py +24 -4
- aws_cdk/aws_ssmquicksetup/__init__.py +393 -8
- aws_cdk/aws_sso/__init__.py +70 -12
- aws_cdk/aws_stepfunctions/__init__.py +823 -94
- aws_cdk/aws_stepfunctions_tasks/__init__.py +2323 -150
- aws_cdk/aws_supportapp/__init__.py +39 -6
- aws_cdk/aws_synthetics/__init__.py +1088 -126
- aws_cdk/aws_systemsmanagersap/__init__.py +13 -2
- aws_cdk/aws_timestream/__init__.py +104 -8
- aws_cdk/aws_transfer/__init__.py +784 -87
- aws_cdk/aws_verifiedpermissions/__init__.py +306 -13
- aws_cdk/aws_voiceid/__init__.py +54 -5
- aws_cdk/aws_vpclattice/__init__.py +589 -231
- aws_cdk/aws_waf/__init__.py +79 -14
- aws_cdk/aws_wafregional/__init__.py +123 -22
- aws_cdk/aws_wafv2/__init__.py +1183 -64
- aws_cdk/aws_wisdom/__init__.py +1403 -90
- aws_cdk/aws_workspaces/__init__.py +134 -6
- aws_cdk/aws_workspacesinstances/__init__.py +3940 -0
- aws_cdk/aws_workspacesthinclient/__init__.py +79 -10
- aws_cdk/aws_workspacesweb/__init__.py +1057 -141
- aws_cdk/aws_xray/__init__.py +48 -8
- aws_cdk/cloud_assembly_schema/__init__.py +368 -48
- aws_cdk/custom_resources/__init__.py +58 -12
- aws_cdk/cx_api/__init__.py +125 -21
- aws_cdk/interfaces/__init__.py +739 -0
- aws_cdk/interfaces/alexa_ask/__init__.py +146 -0
- aws_cdk/interfaces/aws_accessanalyzer/__init__.py +146 -0
- aws_cdk/interfaces/aws_acmpca/__init__.py +501 -0
- aws_cdk/interfaces/aws_aiops/__init__.py +146 -0
- aws_cdk/interfaces/aws_amazonmq/__init__.py +386 -0
- aws_cdk/interfaces/aws_amplify/__init__.py +352 -0
- aws_cdk/interfaces/aws_amplifyuibuilder/__init__.py +454 -0
- aws_cdk/interfaces/aws_apigateway/__init__.py +2486 -0
- aws_cdk/interfaces/aws_apigatewayv2/__init__.py +1651 -0
- aws_cdk/interfaces/aws_appconfig/__init__.py +1020 -0
- aws_cdk/interfaces/aws_appflow/__init__.py +404 -0
- aws_cdk/interfaces/aws_appintegrations/__init__.py +396 -0
- aws_cdk/interfaces/aws_applicationautoscaling/__init__.py +307 -0
- aws_cdk/interfaces/aws_applicationinsights/__init__.py +148 -0
- aws_cdk/interfaces/aws_applicationsignals/__init__.py +358 -0
- aws_cdk/interfaces/aws_appmesh/__init__.py +888 -0
- aws_cdk/interfaces/aws_apprunner/__init__.py +564 -0
- aws_cdk/interfaces/aws_appstream/__init__.py +1482 -0
- aws_cdk/interfaces/aws_appsync/__init__.py +1326 -0
- aws_cdk/interfaces/aws_apptest/__init__.py +163 -0
- aws_cdk/interfaces/aws_aps/__init__.py +558 -0
- aws_cdk/interfaces/aws_arcregionswitch/__init__.py +146 -0
- aws_cdk/interfaces/aws_arczonalshift/__init__.py +273 -0
- aws_cdk/interfaces/aws_athena/__init__.py +575 -0
- aws_cdk/interfaces/aws_auditmanager/__init__.py +163 -0
- aws_cdk/interfaces/aws_autoscaling/__init__.py +705 -0
- aws_cdk/interfaces/aws_autoscalingplans/__init__.py +148 -0
- aws_cdk/interfaces/aws_b2bi/__init__.py +524 -0
- aws_cdk/interfaces/aws_backup/__init__.py +955 -0
- aws_cdk/interfaces/aws_backupgateway/__init__.py +146 -0
- aws_cdk/interfaces/aws_batch/__init__.py +681 -0
- aws_cdk/interfaces/aws_bcmdataexports/__init__.py +146 -0
- aws_cdk/interfaces/aws_bedrock/__init__.py +1942 -0
- aws_cdk/interfaces/aws_bedrockagentcore/__init__.py +934 -0
- aws_cdk/interfaces/aws_billing/__init__.py +146 -0
- aws_cdk/interfaces/aws_billingconductor/__init__.py +463 -0
- aws_cdk/interfaces/aws_budgets/__init__.py +261 -0
- aws_cdk/interfaces/aws_cassandra/__init__.py +381 -0
- aws_cdk/interfaces/aws_ce/__init__.py +352 -0
- aws_cdk/interfaces/aws_certificatemanager/__init__.py +251 -0
- aws_cdk/interfaces/aws_chatbot/__init__.py +366 -0
- aws_cdk/interfaces/aws_cleanrooms/__init__.py +1103 -0
- aws_cdk/interfaces/aws_cleanroomsml/__init__.py +148 -0
- aws_cdk/interfaces/aws_cloud9/__init__.py +166 -0
- aws_cdk/interfaces/aws_cloudformation/__init__.py +1919 -0
- aws_cdk/interfaces/aws_cloudfront/__init__.py +1998 -0
- aws_cdk/interfaces/aws_cloudtrail/__init__.py +570 -0
- aws_cdk/interfaces/aws_cloudwatch/__init__.py +733 -0
- aws_cdk/interfaces/aws_codeartifact/__init__.py +352 -0
- aws_cdk/interfaces/aws_codebuild/__init__.py +487 -0
- aws_cdk/interfaces/aws_codecommit/__init__.py +163 -0
- aws_cdk/interfaces/aws_codeconnections/__init__.py +146 -0
- aws_cdk/interfaces/aws_codedeploy/__init__.py +352 -0
- aws_cdk/interfaces/aws_codeguruprofiler/__init__.py +168 -0
- aws_cdk/interfaces/aws_codegurureviewer/__init__.py +148 -0
- aws_cdk/interfaces/aws_codepipeline/__init__.py +388 -0
- aws_cdk/interfaces/aws_codestar/__init__.py +146 -0
- aws_cdk/interfaces/aws_codestarconnections/__init__.py +370 -0
- aws_cdk/interfaces/aws_codestarnotifications/__init__.py +148 -0
- aws_cdk/interfaces/aws_cognito/__init__.py +1929 -0
- aws_cdk/interfaces/aws_comprehend/__init__.py +251 -0
- aws_cdk/interfaces/aws_config/__init__.py +1165 -0
- aws_cdk/interfaces/aws_connect/__init__.py +2949 -0
- aws_cdk/interfaces/aws_connectcampaigns/__init__.py +146 -0
- aws_cdk/interfaces/aws_connectcampaignsv2/__init__.py +146 -0
- aws_cdk/interfaces/aws_controltower/__init__.py +394 -0
- aws_cdk/interfaces/aws_cur/__init__.py +146 -0
- aws_cdk/interfaces/aws_customerprofiles/__init__.py +915 -0
- aws_cdk/interfaces/aws_databrew/__init__.py +661 -0
- aws_cdk/interfaces/aws_datapipeline/__init__.py +146 -0
- aws_cdk/interfaces/aws_datasync/__init__.py +1384 -0
- aws_cdk/interfaces/aws_datazone/__init__.py +2238 -0
- aws_cdk/interfaces/aws_dax/__init__.py +364 -0
- aws_cdk/interfaces/aws_deadline/__init__.py +1303 -0
- aws_cdk/interfaces/aws_detective/__init__.py +364 -0
- aws_cdk/interfaces/aws_devicefarm/__init__.py +663 -0
- aws_cdk/interfaces/aws_devopsguru/__init__.py +362 -0
- aws_cdk/interfaces/aws_directoryservice/__init__.py +251 -0
- aws_cdk/interfaces/aws_dlm/__init__.py +166 -0
- aws_cdk/interfaces/aws_dms/__init__.py +1176 -0
- aws_cdk/interfaces/aws_docdb/__init__.py +560 -0
- aws_cdk/interfaces/aws_docdbelastic/__init__.py +146 -0
- aws_cdk/interfaces/aws_dsql/__init__.py +146 -0
- aws_cdk/interfaces/aws_dynamodb/__init__.py +278 -0
- aws_cdk/interfaces/aws_ec2/__init__.py +11963 -0
- aws_cdk/interfaces/aws_ecr/__init__.py +814 -0
- aws_cdk/interfaces/aws_ecs/__init__.py +845 -0
- aws_cdk/interfaces/aws_efs/__init__.py +392 -0
- aws_cdk/interfaces/aws_eks/__init__.py +948 -0
- aws_cdk/interfaces/aws_elasticache/__init__.py +1108 -0
- aws_cdk/interfaces/aws_elasticbeanstalk/__init__.py +503 -0
- aws_cdk/interfaces/aws_elasticloadbalancing/__init__.py +148 -0
- aws_cdk/interfaces/aws_elasticloadbalancingv2/__init__.py +795 -0
- aws_cdk/interfaces/aws_elasticsearch/__init__.py +158 -0
- aws_cdk/interfaces/aws_emr/__init__.py +913 -0
- aws_cdk/interfaces/aws_emrcontainers/__init__.py +168 -0
- aws_cdk/interfaces/aws_emrserverless/__init__.py +166 -0
- aws_cdk/interfaces/aws_entityresolution/__init__.py +608 -0
- aws_cdk/interfaces/aws_events/__init__.py +872 -0
- aws_cdk/interfaces/aws_eventschemas/__init__.py +455 -0
- aws_cdk/interfaces/aws_evidently/__init__.py +558 -0
- aws_cdk/interfaces/aws_evs/__init__.py +166 -0
- aws_cdk/interfaces/aws_finspace/__init__.py +166 -0
- aws_cdk/interfaces/aws_fis/__init__.py +271 -0
- aws_cdk/interfaces/aws_fms/__init__.py +364 -0
- aws_cdk/interfaces/aws_forecast/__init__.py +249 -0
- aws_cdk/interfaces/aws_frauddetector/__init__.py +764 -0
- aws_cdk/interfaces/aws_fsx/__init__.py +663 -0
- aws_cdk/interfaces/aws_gamelift/__init__.py +1325 -0
- aws_cdk/interfaces/aws_gameliftstreams/__init__.py +249 -0
- aws_cdk/interfaces/aws_globalaccelerator/__init__.py +461 -0
- aws_cdk/interfaces/aws_glue/__init__.py +2377 -0
- aws_cdk/interfaces/aws_grafana/__init__.py +146 -0
- aws_cdk/interfaces/aws_greengrass/__init__.py +1871 -0
- aws_cdk/interfaces/aws_greengrassv2/__init__.py +251 -0
- aws_cdk/interfaces/aws_groundstation/__init__.py +396 -0
- aws_cdk/interfaces/aws_guardduty/__init__.py +1225 -0
- aws_cdk/interfaces/aws_healthimaging/__init__.py +163 -0
- aws_cdk/interfaces/aws_healthlake/__init__.py +146 -0
- aws_cdk/interfaces/aws_iam/__init__.py +1803 -0
- aws_cdk/interfaces/aws_identitystore/__init__.py +288 -0
- aws_cdk/interfaces/aws_imagebuilder/__init__.py +984 -0
- aws_cdk/interfaces/aws_inspector/__init__.py +354 -0
- aws_cdk/interfaces/aws_inspectorv2/__init__.py +467 -0
- aws_cdk/interfaces/aws_internetmonitor/__init__.py +163 -0
- aws_cdk/interfaces/aws_invoicing/__init__.py +146 -0
- aws_cdk/interfaces/aws_iot/__init__.py +3483 -0
- aws_cdk/interfaces/aws_iotanalytics/__init__.py +455 -0
- aws_cdk/interfaces/aws_iotcoredeviceadvisor/__init__.py +168 -0
- aws_cdk/interfaces/aws_iotevents/__init__.py +352 -0
- aws_cdk/interfaces/aws_iotfleethub/__init__.py +166 -0
- aws_cdk/interfaces/aws_iotfleetwise/__init__.py +892 -0
- aws_cdk/interfaces/aws_iotsitewise/__init__.py +1097 -0
- aws_cdk/interfaces/aws_iotthingsgraph/__init__.py +146 -0
- aws_cdk/interfaces/aws_iottwinmaker/__init__.py +711 -0
- aws_cdk/interfaces/aws_iotwireless/__init__.py +1401 -0
- aws_cdk/interfaces/aws_ivs/__init__.py +1075 -0
- aws_cdk/interfaces/aws_ivschat/__init__.py +251 -0
- aws_cdk/interfaces/aws_kafkaconnect/__init__.py +354 -0
- aws_cdk/interfaces/aws_kendra/__init__.py +428 -0
- aws_cdk/interfaces/aws_kendraranking/__init__.py +166 -0
- aws_cdk/interfaces/aws_kinesis/__init__.py +364 -0
- aws_cdk/interfaces/aws_kinesisanalytics/__init__.py +364 -0
- aws_cdk/interfaces/aws_kinesisanalyticsv2/__init__.py +479 -0
- aws_cdk/interfaces/aws_kinesisfirehose/__init__.py +168 -0
- aws_cdk/interfaces/aws_kinesisvideo/__init__.py +283 -0
- aws_cdk/interfaces/aws_kms/__init__.py +376 -0
- aws_cdk/interfaces/aws_lakeformation/__init__.py +860 -0
- aws_cdk/interfaces/aws_lambda/__init__.py +1141 -0
- aws_cdk/interfaces/aws_launchwizard/__init__.py +146 -0
- aws_cdk/interfaces/aws_lex/__init__.py +513 -0
- aws_cdk/interfaces/aws_licensemanager/__init__.py +249 -0
- aws_cdk/interfaces/aws_lightsail/__init__.py +1744 -0
- aws_cdk/interfaces/aws_location/__init__.py +879 -0
- aws_cdk/interfaces/aws_logs/__init__.py +1667 -0
- aws_cdk/interfaces/aws_lookoutequipment/__init__.py +168 -0
- aws_cdk/interfaces/aws_lookoutmetrics/__init__.py +251 -0
- aws_cdk/interfaces/aws_lookoutvision/__init__.py +163 -0
- aws_cdk/interfaces/aws_m2/__init__.py +352 -0
- aws_cdk/interfaces/aws_macie/__init__.py +512 -0
- aws_cdk/interfaces/aws_managedblockchain/__init__.py +381 -0
- aws_cdk/interfaces/aws_mediaconnect/__init__.py +1028 -0
- aws_cdk/interfaces/aws_mediaconvert/__init__.py +396 -0
- aws_cdk/interfaces/aws_medialive/__init__.py +1755 -0
- aws_cdk/interfaces/aws_mediapackage/__init__.py +644 -0
- aws_cdk/interfaces/aws_mediapackagev2/__init__.py +618 -0
- aws_cdk/interfaces/aws_mediastore/__init__.py +146 -0
- aws_cdk/interfaces/aws_mediatailor/__init__.py +788 -0
- aws_cdk/interfaces/aws_memorydb/__init__.py +685 -0
- aws_cdk/interfaces/aws_mpa/__init__.py +249 -0
- aws_cdk/interfaces/aws_msk/__init__.py +764 -0
- aws_cdk/interfaces/aws_mwaa/__init__.py +166 -0
- aws_cdk/interfaces/aws_neptune/__init__.py +663 -0
- aws_cdk/interfaces/aws_neptunegraph/__init__.py +265 -0
- aws_cdk/interfaces/aws_networkfirewall/__init__.py +669 -0
- aws_cdk/interfaces/aws_networkmanager/__init__.py +1832 -0
- aws_cdk/interfaces/aws_nimblestudio/__init__.py +388 -0
- aws_cdk/interfaces/aws_notifications/__init__.py +868 -0
- aws_cdk/interfaces/aws_notificationscontacts/__init__.py +148 -0
- aws_cdk/interfaces/aws_oam/__init__.py +249 -0
- aws_cdk/interfaces/aws_observabilityadmin/__init__.py +362 -0
- aws_cdk/interfaces/aws_odb/__init__.py +562 -0
- aws_cdk/interfaces/aws_omics/__init__.py +838 -0
- aws_cdk/interfaces/aws_opensearchserverless/__init__.py +859 -0
- aws_cdk/interfaces/aws_opensearchservice/__init__.py +283 -0
- aws_cdk/interfaces/aws_opsworks/__init__.py +772 -0
- aws_cdk/interfaces/aws_opsworkscm/__init__.py +146 -0
- aws_cdk/interfaces/aws_organizations/__init__.py +646 -0
- aws_cdk/interfaces/aws_osis/__init__.py +146 -0
- aws_cdk/interfaces/aws_panorama/__init__.py +420 -0
- aws_cdk/interfaces/aws_paymentcryptography/__init__.py +249 -0
- aws_cdk/interfaces/aws_pcaconnectorad/__init__.py +608 -0
- aws_cdk/interfaces/aws_pcaconnectorscep/__init__.py +249 -0
- aws_cdk/interfaces/aws_pcs/__init__.py +352 -0
- aws_cdk/interfaces/aws_personalize/__init__.py +455 -0
- aws_cdk/interfaces/aws_pinpoint/__init__.py +2125 -0
- aws_cdk/interfaces/aws_pinpointemail/__init__.py +467 -0
- aws_cdk/interfaces/aws_pipes/__init__.py +158 -0
- aws_cdk/interfaces/aws_proton/__init__.py +360 -0
- aws_cdk/interfaces/aws_qbusiness/__init__.py +1122 -0
- aws_cdk/interfaces/aws_qldb/__init__.py +283 -0
- aws_cdk/interfaces/aws_quicksight/__init__.py +1566 -0
- aws_cdk/interfaces/aws_ram/__init__.py +249 -0
- aws_cdk/interfaces/aws_rbin/__init__.py +146 -0
- aws_cdk/interfaces/aws_rds/__init__.py +1780 -0
- aws_cdk/interfaces/aws_redshift/__init__.py +1104 -0
- aws_cdk/interfaces/aws_redshiftserverless/__init__.py +356 -0
- aws_cdk/interfaces/aws_refactorspaces/__init__.py +605 -0
- aws_cdk/interfaces/aws_rekognition/__init__.py +406 -0
- aws_cdk/interfaces/aws_resiliencehub/__init__.py +251 -0
- aws_cdk/interfaces/aws_resourceexplorer2/__init__.py +354 -0
- aws_cdk/interfaces/aws_resourcegroups/__init__.py +261 -0
- aws_cdk/interfaces/aws_robomaker/__init__.py +673 -0
- aws_cdk/interfaces/aws_rolesanywhere/__init__.py +384 -0
- aws_cdk/interfaces/aws_route53/__init__.py +804 -0
- aws_cdk/interfaces/aws_route53profiles/__init__.py +368 -0
- aws_cdk/interfaces/aws_route53recoverycontrol/__init__.py +463 -0
- aws_cdk/interfaces/aws_route53recoveryreadiness/__init__.py +535 -0
- aws_cdk/interfaces/aws_route53resolver/__init__.py +1356 -0
- aws_cdk/interfaces/aws_rtbfabric/__init__.py +352 -0
- aws_cdk/interfaces/aws_rum/__init__.py +146 -0
- aws_cdk/interfaces/aws_s3/__init__.py +1171 -0
- aws_cdk/interfaces/aws_s3express/__init__.py +392 -0
- aws_cdk/interfaces/aws_s3objectlambda/__init__.py +271 -0
- aws_cdk/interfaces/aws_s3outposts/__init__.py +455 -0
- aws_cdk/interfaces/aws_s3tables/__init__.py +575 -0
- aws_cdk/interfaces/aws_s3vectors/__init__.py +354 -0
- aws_cdk/interfaces/aws_sagemaker/__init__.py +3797 -0
- aws_cdk/interfaces/aws_sam/__init__.py +603 -0
- aws_cdk/interfaces/aws_scheduler/__init__.py +286 -0
- aws_cdk/interfaces/aws_sdb/__init__.py +146 -0
- aws_cdk/interfaces/aws_secretsmanager/__init__.py +461 -0
- aws_cdk/interfaces/aws_securityhub/__init__.py +1499 -0
- aws_cdk/interfaces/aws_securitylake/__init__.py +474 -0
- aws_cdk/interfaces/aws_servicecatalog/__init__.py +1829 -0
- aws_cdk/interfaces/aws_servicecatalogappregistry/__init__.py +557 -0
- aws_cdk/interfaces/aws_servicediscovery/__init__.py +636 -0
- aws_cdk/interfaces/aws_ses/__init__.py +2018 -0
- aws_cdk/interfaces/aws_shield/__init__.py +455 -0
- aws_cdk/interfaces/aws_signer/__init__.py +266 -0
- aws_cdk/interfaces/aws_simspaceweaver/__init__.py +146 -0
- aws_cdk/interfaces/aws_smsvoice/__init__.py +892 -0
- aws_cdk/interfaces/aws_sns/__init__.py +455 -0
- aws_cdk/interfaces/aws_sqs/__init__.py +364 -0
- aws_cdk/interfaces/aws_ssm/__init__.py +982 -0
- aws_cdk/interfaces/aws_ssmcontacts/__init__.py +455 -0
- aws_cdk/interfaces/aws_ssmguiconnect/__init__.py +146 -0
- aws_cdk/interfaces/aws_ssmincidents/__init__.py +249 -0
- aws_cdk/interfaces/aws_ssmquicksetup/__init__.py +253 -0
- aws_cdk/interfaces/aws_sso/__init__.py +797 -0
- aws_cdk/interfaces/aws_stepfunctions/__init__.py +459 -0
- aws_cdk/interfaces/aws_supportapp/__init__.py +372 -0
- aws_cdk/interfaces/aws_synthetics/__init__.py +249 -0
- aws_cdk/interfaces/aws_systemsmanagersap/__init__.py +148 -0
- aws_cdk/interfaces/aws_timestream/__init__.py +526 -0
- aws_cdk/interfaces/aws_transfer/__init__.py +967 -0
- aws_cdk/interfaces/aws_verifiedpermissions/__init__.py +538 -0
- aws_cdk/interfaces/aws_voiceid/__init__.py +146 -0
- aws_cdk/interfaces/aws_vpclattice/__init__.py +1418 -0
- aws_cdk/interfaces/aws_waf/__init__.py +764 -0
- aws_cdk/interfaces/aws_wafregional/__init__.py +1182 -0
- aws_cdk/interfaces/aws_wafv2/__init__.py +870 -0
- aws_cdk/interfaces/aws_wisdom/__init__.py +1556 -0
- aws_cdk/interfaces/aws_workspaces/__init__.py +352 -0
- aws_cdk/interfaces/aws_workspacesinstances/__init__.py +390 -0
- aws_cdk/interfaces/aws_workspacesthinclient/__init__.py +168 -0
- aws_cdk/interfaces/aws_workspacesweb/__init__.py +1085 -0
- aws_cdk/interfaces/aws_xray/__init__.py +457 -0
- aws_cdk/lambda_layer_awscli/__init__.py +6 -0
- aws_cdk/lambda_layer_node_proxy_agent/__init__.py +6 -0
- aws_cdk/pipelines/__init__.py +202 -52
- aws_cdk/region_info/__init__.py +3 -0
- aws_cdk/triggers/__init__.py +66 -18
- {aws_cdk_lib-2.195.0.dist-info → aws_cdk_lib-2.224.0.dist-info}/METADATA +418 -18
- aws_cdk_lib-2.224.0.dist-info/RECORD +584 -0
- aws_cdk_lib-2.195.0.dist-info/RECORD +0 -304
- {aws_cdk_lib-2.195.0.dist-info → aws_cdk_lib-2.224.0.dist-info}/LICENSE +0 -0
- {aws_cdk_lib-2.195.0.dist-info → aws_cdk_lib-2.224.0.dist-info}/NOTICE +0 -0
- {aws_cdk_lib-2.195.0.dist-info → aws_cdk_lib-2.224.0.dist-info}/WHEEL +0 -0
- {aws_cdk_lib-2.195.0.dist-info → aws_cdk_lib-2.224.0.dist-info}/top_level.txt +0 -0
aws_cdk/aws_s3/__init__.py
CHANGED
|
@@ -152,6 +152,22 @@ bucket.grant_read_write(my_lambda)
|
|
|
152
152
|
Will give the Lambda's execution role permissions to read and write
|
|
153
153
|
from the bucket.
|
|
154
154
|
|
|
155
|
+
### Understanding "grant" Methods
|
|
156
|
+
|
|
157
|
+
The S3 construct library provides several grant methods for the `Bucket` resource, but two of them have a special behavior. This two accept an `objectsKeyPattern` parameter to restrict granted permissions to specific resources:
|
|
158
|
+
|
|
159
|
+
* `grantRead`
|
|
160
|
+
* `grantReadWrite`
|
|
161
|
+
|
|
162
|
+
When examining the synthesized policy, you'll notice it includes both your specified object key patterns and the bucket itself.
|
|
163
|
+
This is by design. Some permissions (like `s3:ListBucket`) apply at the bucket level, while others (like `s3:GetObject`) apply to specific objects.
|
|
164
|
+
|
|
165
|
+
Specifically, the [`s3:ListBucket` action operates on bucket resources](https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazons3.html#amazons3-bucket)
|
|
166
|
+
and requires the bucket ARN to work properly. This might be seen as a bug, giving the impression that more permissions were granted than the ones you intended, but the reality is that the policy does not ignore your `objectsKeyPattern` - object-specific actions like `s3:GetObject`
|
|
167
|
+
will still be limited to the resources defined in your pattern.
|
|
168
|
+
|
|
169
|
+
If you need to restrict the `s3:ListBucket` action to specific paths, you can add a `Condition` to your policy that limits the `objectsKeyPattern` to specific folders. For more details and examples, see the [AWS documentation on bucket policies](https://docs.aws.amazon.com/AmazonS3/latest/userguide/example-bucket-policies.html#example-bucket-policies-folders).
|
|
170
|
+
|
|
155
171
|
## AWS Foundational Security Best Practices
|
|
156
172
|
|
|
157
173
|
### Enforcing SSL
|
|
@@ -183,8 +199,8 @@ To use a bucket in a different stack in the same CDK application, pass the objec
|
|
|
183
199
|
#
|
|
184
200
|
class Producer(Stack):
|
|
185
201
|
|
|
186
|
-
def __init__(self, scope, id, *, description=None, env=None, stackName=None, tags=None, notificationArns=None, synthesizer=None, terminationProtection=None, analyticsReporting=None, crossRegionReferences=None, permissionsBoundary=None, suppressTemplateIndentation=None):
|
|
187
|
-
super().__init__(scope, id, description=description, env=env, stackName=stackName, tags=tags, notificationArns=notificationArns, synthesizer=synthesizer, terminationProtection=terminationProtection, analyticsReporting=analyticsReporting, crossRegionReferences=crossRegionReferences, permissionsBoundary=permissionsBoundary, suppressTemplateIndentation=suppressTemplateIndentation)
|
|
202
|
+
def __init__(self, scope, id, *, description=None, env=None, stackName=None, tags=None, notificationArns=None, synthesizer=None, terminationProtection=None, analyticsReporting=None, crossRegionReferences=None, permissionsBoundary=None, suppressTemplateIndentation=None, propertyInjectors=None):
|
|
203
|
+
super().__init__(scope, id, description=description, env=env, stackName=stackName, tags=tags, notificationArns=notificationArns, synthesizer=synthesizer, terminationProtection=terminationProtection, analyticsReporting=analyticsReporting, crossRegionReferences=crossRegionReferences, permissionsBoundary=permissionsBoundary, suppressTemplateIndentation=suppressTemplateIndentation, propertyInjectors=propertyInjectors)
|
|
188
204
|
|
|
189
205
|
bucket = s3.Bucket(self, "MyBucket",
|
|
190
206
|
removal_policy=cdk.RemovalPolicy.DESTROY
|
|
@@ -195,8 +211,8 @@ class Producer(Stack):
|
|
|
195
211
|
# Stack that consumes the bucket
|
|
196
212
|
#
|
|
197
213
|
class Consumer(Stack):
|
|
198
|
-
def __init__(self, scope, id, *, userBucket, description=None, env=None, stackName=None, tags=None, notificationArns=None, synthesizer=None, terminationProtection=None, analyticsReporting=None, crossRegionReferences=None, permissionsBoundary=None, suppressTemplateIndentation=None):
|
|
199
|
-
super().__init__(scope, id, userBucket=userBucket, description=description, env=env, stackName=stackName, tags=tags, notificationArns=notificationArns, synthesizer=synthesizer, terminationProtection=terminationProtection, analyticsReporting=analyticsReporting, crossRegionReferences=crossRegionReferences, permissionsBoundary=permissionsBoundary, suppressTemplateIndentation=suppressTemplateIndentation)
|
|
214
|
+
def __init__(self, scope, id, *, userBucket, description=None, env=None, stackName=None, tags=None, notificationArns=None, synthesizer=None, terminationProtection=None, analyticsReporting=None, crossRegionReferences=None, permissionsBoundary=None, suppressTemplateIndentation=None, propertyInjectors=None):
|
|
215
|
+
super().__init__(scope, id, userBucket=userBucket, description=description, env=env, stackName=stackName, tags=tags, notificationArns=notificationArns, synthesizer=synthesizer, terminationProtection=terminationProtection, analyticsReporting=analyticsReporting, crossRegionReferences=crossRegionReferences, permissionsBoundary=permissionsBoundary, suppressTemplateIndentation=suppressTemplateIndentation, propertyInjectors=propertyInjectors)
|
|
200
216
|
|
|
201
217
|
user = iam.User(self, "MyUser")
|
|
202
218
|
user_bucket.grant_read_write(user)
|
|
@@ -360,19 +376,19 @@ bucket = s3.Bucket(self, "MyBlockedBucket",
|
|
|
360
376
|
)
|
|
361
377
|
```
|
|
362
378
|
|
|
363
|
-
Block and ignore public ACLs:
|
|
379
|
+
Block and ignore public ACLs (other options remain unblocked):
|
|
364
380
|
|
|
365
381
|
```python
|
|
366
382
|
bucket = s3.Bucket(self, "MyBlockedBucket",
|
|
367
|
-
block_public_access=s3.BlockPublicAccess.
|
|
383
|
+
block_public_access=s3.BlockPublicAccess.BLOCK_ACLS_ONLY
|
|
368
384
|
)
|
|
369
385
|
```
|
|
370
386
|
|
|
371
|
-
Alternatively, specify the settings manually:
|
|
387
|
+
Alternatively, specify the settings manually (unspecified options will remain blocked):
|
|
372
388
|
|
|
373
389
|
```python
|
|
374
390
|
bucket = s3.Bucket(self, "MyBlockedBucket",
|
|
375
|
-
block_public_access=s3.BlockPublicAccess(block_public_policy=
|
|
391
|
+
block_public_access=s3.BlockPublicAccess(block_public_policy=False)
|
|
376
392
|
)
|
|
377
393
|
```
|
|
378
394
|
|
|
@@ -904,12 +920,15 @@ To replicate objects to a destination bucket, you can specify the `replicationRu
|
|
|
904
920
|
# destination_bucket1: s3.IBucket
|
|
905
921
|
# destination_bucket2: s3.IBucket
|
|
906
922
|
# replication_role: iam.IRole
|
|
907
|
-
#
|
|
923
|
+
# encryption_key: kms.IKey
|
|
924
|
+
# destination_encryption_key: kms.IKey
|
|
908
925
|
|
|
909
926
|
|
|
910
927
|
source_bucket = s3.Bucket(self, "SourceBucket",
|
|
911
928
|
# Versioning must be enabled on both the source and destination bucket
|
|
912
929
|
versioned=True,
|
|
930
|
+
# Optional. Specify the KMS key to use for encrypts objects in the source bucket.
|
|
931
|
+
encryption_key=encryption_key,
|
|
913
932
|
# Optional. If not specified, a new role will be created.
|
|
914
933
|
replication_role=replication_role,
|
|
915
934
|
replication_rules=[s3.ReplicationRule(
|
|
@@ -932,7 +951,7 @@ source_bucket = s3.Bucket(self, "SourceBucket",
|
|
|
932
951
|
# If set, metrics will be output to indicate whether replication by S3 RTC took longer than the configured time.
|
|
933
952
|
metrics=s3.ReplicationTimeValue.FIFTEEN_MINUTES,
|
|
934
953
|
# The kms key to use for the destination bucket.
|
|
935
|
-
kms_key=
|
|
954
|
+
kms_key=destination_encryption_key,
|
|
936
955
|
# The storage class to use for the destination bucket.
|
|
937
956
|
storage_class=s3.StorageClass.INFREQUENT_ACCESS,
|
|
938
957
|
# Whether to replicate objects with SSE-KMS encryption.
|
|
@@ -958,6 +977,15 @@ source_bucket = s3.Bucket(self, "SourceBucket",
|
|
|
958
977
|
)
|
|
959
978
|
]
|
|
960
979
|
)
|
|
980
|
+
|
|
981
|
+
# Grant permissions to the replication role.
|
|
982
|
+
# This method is not required if you choose to use an auto-generated replication role or manually grant permissions.
|
|
983
|
+
source_bucket.grant_replication_permission(replication_role,
|
|
984
|
+
# Optional. Specify the KMS key to use for decrypting objects in the source bucket.
|
|
985
|
+
source_decryption_key=encryption_key,
|
|
986
|
+
destinations=[s3.GrantReplicationPermissionDestinationProps(bucket=destination_bucket1), s3.GrantReplicationPermissionDestinationProps(bucket=destination_bucket2, encryption_key=destination_encryption_key)
|
|
987
|
+
]
|
|
988
|
+
)
|
|
961
989
|
```
|
|
962
990
|
|
|
963
991
|
### Cross Account Replication
|
|
@@ -1063,6 +1091,28 @@ from ..aws_iam import (
|
|
|
1063
1091
|
PolicyStatement as _PolicyStatement_0fe33853,
|
|
1064
1092
|
)
|
|
1065
1093
|
from ..aws_kms import IKey as _IKey_5f11635f
|
|
1094
|
+
from ..interfaces.aws_s3 import (
|
|
1095
|
+
AccessGrantReference as _AccessGrantReference_4b0925c1,
|
|
1096
|
+
AccessGrantsInstanceReference as _AccessGrantsInstanceReference_18c061b7,
|
|
1097
|
+
AccessGrantsLocationReference as _AccessGrantsLocationReference_6163b002,
|
|
1098
|
+
AccessPointReference as _AccessPointReference_b9bf9d61,
|
|
1099
|
+
BucketPolicyReference as _BucketPolicyReference_3414f1e3,
|
|
1100
|
+
BucketReference as _BucketReference_502fb39f,
|
|
1101
|
+
IAccessGrantRef as _IAccessGrantRef_0e7c5209,
|
|
1102
|
+
IAccessGrantsInstanceRef as _IAccessGrantsInstanceRef_94e5b823,
|
|
1103
|
+
IAccessGrantsLocationRef as _IAccessGrantsLocationRef_5ae01054,
|
|
1104
|
+
IAccessPointRef as _IAccessPointRef_02282fed,
|
|
1105
|
+
IBucketPolicyRef as _IBucketPolicyRef_8ee2499d,
|
|
1106
|
+
IBucketRef as _IBucketRef_3debe44e,
|
|
1107
|
+
IMultiRegionAccessPointPolicyRef as _IMultiRegionAccessPointPolicyRef_2e4f5aa6,
|
|
1108
|
+
IMultiRegionAccessPointRef as _IMultiRegionAccessPointRef_b814832f,
|
|
1109
|
+
IStorageLensGroupRef as _IStorageLensGroupRef_aa787427,
|
|
1110
|
+
IStorageLensRef as _IStorageLensRef_a99bd868,
|
|
1111
|
+
MultiRegionAccessPointPolicyReference as _MultiRegionAccessPointPolicyReference_f5654e86,
|
|
1112
|
+
MultiRegionAccessPointReference as _MultiRegionAccessPointReference_590848b5,
|
|
1113
|
+
StorageLensGroupReference as _StorageLensGroupReference_c117a5a4,
|
|
1114
|
+
StorageLensReference as _StorageLensReference_cc81afb5,
|
|
1115
|
+
)
|
|
1066
1116
|
|
|
1067
1117
|
|
|
1068
1118
|
class BlockPublicAccess(
|
|
@@ -1074,8 +1124,15 @@ class BlockPublicAccess(
|
|
|
1074
1124
|
|
|
1075
1125
|
Example::
|
|
1076
1126
|
|
|
1077
|
-
|
|
1078
|
-
|
|
1127
|
+
from aws_cdk import RemovalPolicy
|
|
1128
|
+
|
|
1129
|
+
|
|
1130
|
+
s3.Bucket(scope, "Bucket",
|
|
1131
|
+
block_public_access=s3.BlockPublicAccess.BLOCK_ALL,
|
|
1132
|
+
encryption=s3.BucketEncryption.S3_MANAGED,
|
|
1133
|
+
enforce_sSL=True,
|
|
1134
|
+
versioned=True,
|
|
1135
|
+
removal_policy=RemovalPolicy.RETAIN
|
|
1079
1136
|
)
|
|
1080
1137
|
'''
|
|
1081
1138
|
|
|
@@ -1105,11 +1162,26 @@ class BlockPublicAccess(
|
|
|
1105
1162
|
@jsii.python.classproperty
|
|
1106
1163
|
@jsii.member(jsii_name="BLOCK_ACLS")
|
|
1107
1164
|
def BLOCK_ACLS(cls) -> "BlockPublicAccess":
|
|
1165
|
+
'''
|
|
1166
|
+
:deprecated: Use ``BLOCK_ACLS_ONLY`` instead.
|
|
1167
|
+
|
|
1168
|
+
:stability: deprecated
|
|
1169
|
+
'''
|
|
1108
1170
|
return typing.cast("BlockPublicAccess", jsii.sget(cls, "BLOCK_ACLS"))
|
|
1109
1171
|
|
|
1172
|
+
@jsii.python.classproperty
|
|
1173
|
+
@jsii.member(jsii_name="BLOCK_ACLS_ONLY")
|
|
1174
|
+
def BLOCK_ACLS_ONLY(cls) -> "BlockPublicAccess":
|
|
1175
|
+
'''Use this option if you want to only block the ACLs, using this will set blockPublicPolicy and restrictPublicBuckets to false.'''
|
|
1176
|
+
return typing.cast("BlockPublicAccess", jsii.sget(cls, "BLOCK_ACLS_ONLY"))
|
|
1177
|
+
|
|
1110
1178
|
@jsii.python.classproperty
|
|
1111
1179
|
@jsii.member(jsii_name="BLOCK_ALL")
|
|
1112
1180
|
def BLOCK_ALL(cls) -> "BlockPublicAccess":
|
|
1181
|
+
'''Use this option if you want to ensure every public access method is blocked.
|
|
1182
|
+
|
|
1183
|
+
However keep in mind that this is the default state of an S3 bucket, and leaving blockPublicAccess undefined would also work.
|
|
1184
|
+
'''
|
|
1113
1185
|
return typing.cast("BlockPublicAccess", jsii.sget(cls, "BLOCK_ALL"))
|
|
1114
1186
|
|
|
1115
1187
|
@builtins.property
|
|
@@ -1191,7 +1263,7 @@ class BlockPublicAccessOptions:
|
|
|
1191
1263
|
Example::
|
|
1192
1264
|
|
|
1193
1265
|
bucket = s3.Bucket(self, "MyBlockedBucket",
|
|
1194
|
-
block_public_access=s3.BlockPublicAccess(block_public_policy=
|
|
1266
|
+
block_public_access=s3.BlockPublicAccess(block_public_policy=False)
|
|
1195
1267
|
)
|
|
1196
1268
|
'''
|
|
1197
1269
|
if __debug__:
|
|
@@ -1580,16 +1652,17 @@ class BucketEncryption(enum.Enum):
|
|
|
1580
1652
|
|
|
1581
1653
|
Example::
|
|
1582
1654
|
|
|
1583
|
-
|
|
1655
|
+
# application: appconfig.Application
|
|
1584
1656
|
|
|
1585
1657
|
|
|
1586
|
-
|
|
1587
|
-
|
|
1588
|
-
|
|
1589
|
-
|
|
1590
|
-
|
|
1591
|
-
|
|
1592
|
-
|
|
1658
|
+
bucket = s3.Bucket(self, "MyBucket",
|
|
1659
|
+
versioned=True,
|
|
1660
|
+
encryption=s3.BucketEncryption.KMS
|
|
1661
|
+
)
|
|
1662
|
+
|
|
1663
|
+
appconfig.SourcedConfiguration(self, "MySourcedConfiguration",
|
|
1664
|
+
application=application,
|
|
1665
|
+
location=appconfig.ConfigurationSource.from_bucket(bucket, "path/to/file.json")
|
|
1593
1666
|
)
|
|
1594
1667
|
'''
|
|
1595
1668
|
|
|
@@ -1803,6 +1876,7 @@ class BucketNotificationDestinationType(enum.Enum):
|
|
|
1803
1876
|
TOPIC = "TOPIC"
|
|
1804
1877
|
|
|
1805
1878
|
|
|
1879
|
+
@jsii.implements(_IBucketPolicyRef_8ee2499d)
|
|
1806
1880
|
class BucketPolicy(
|
|
1807
1881
|
_Resource_45bc6135,
|
|
1808
1882
|
metaclass=jsii.JSIIMeta,
|
|
@@ -1877,19 +1951,23 @@ class BucketPolicy(
|
|
|
1877
1951
|
id: builtins.str,
|
|
1878
1952
|
*,
|
|
1879
1953
|
bucket: "IBucket",
|
|
1954
|
+
document: typing.Optional[_PolicyDocument_3ac34393] = None,
|
|
1880
1955
|
removal_policy: typing.Optional[_RemovalPolicy_9f93c814] = None,
|
|
1881
1956
|
) -> None:
|
|
1882
1957
|
'''
|
|
1883
1958
|
:param scope: -
|
|
1884
1959
|
:param id: -
|
|
1885
1960
|
:param bucket: The Amazon S3 bucket that the policy applies to.
|
|
1961
|
+
:param document: Policy document to apply to the bucket. Default: - A new empty PolicyDocument will be created.
|
|
1886
1962
|
:param removal_policy: Policy to apply when the policy is removed from this stack. Default: - RemovalPolicy.DESTROY.
|
|
1887
1963
|
'''
|
|
1888
1964
|
if __debug__:
|
|
1889
1965
|
type_hints = typing.get_type_hints(_typecheckingstub__910b3df1208e67cb52dad0b0b8c5feb43c7bddb0ced50eaf6c953477298a840e)
|
|
1890
1966
|
check_type(argname="argument scope", value=scope, expected_type=type_hints["scope"])
|
|
1891
1967
|
check_type(argname="argument id", value=id, expected_type=type_hints["id"])
|
|
1892
|
-
props = BucketPolicyProps(
|
|
1968
|
+
props = BucketPolicyProps(
|
|
1969
|
+
bucket=bucket, document=document, removal_policy=removal_policy
|
|
1970
|
+
)
|
|
1893
1971
|
|
|
1894
1972
|
jsii.create(self.__class__, self, [scope, id, props])
|
|
1895
1973
|
|
|
@@ -1919,12 +1997,24 @@ class BucketPolicy(
|
|
|
1919
1997
|
check_type(argname="argument removal_policy", value=removal_policy, expected_type=type_hints["removal_policy"])
|
|
1920
1998
|
return typing.cast(None, jsii.invoke(self, "applyRemovalPolicy", [removal_policy]))
|
|
1921
1999
|
|
|
2000
|
+
@jsii.python.classproperty
|
|
2001
|
+
@jsii.member(jsii_name="PROPERTY_INJECTION_ID")
|
|
2002
|
+
def PROPERTY_INJECTION_ID(cls) -> builtins.str:
|
|
2003
|
+
'''Uniquely identifies this class.'''
|
|
2004
|
+
return typing.cast(builtins.str, jsii.sget(cls, "PROPERTY_INJECTION_ID"))
|
|
2005
|
+
|
|
1922
2006
|
@builtins.property
|
|
1923
2007
|
@jsii.member(jsii_name="bucket")
|
|
1924
2008
|
def bucket(self) -> "IBucket":
|
|
1925
2009
|
'''The Bucket this Policy applies to.'''
|
|
1926
2010
|
return typing.cast("IBucket", jsii.get(self, "bucket"))
|
|
1927
2011
|
|
|
2012
|
+
@builtins.property
|
|
2013
|
+
@jsii.member(jsii_name="bucketPolicyRef")
|
|
2014
|
+
def bucket_policy_ref(self) -> _BucketPolicyReference_3414f1e3:
|
|
2015
|
+
'''A reference to a BucketPolicy resource.'''
|
|
2016
|
+
return typing.cast(_BucketPolicyReference_3414f1e3, jsii.get(self, "bucketPolicyRef"))
|
|
2017
|
+
|
|
1928
2018
|
@builtins.property
|
|
1929
2019
|
@jsii.member(jsii_name="document")
|
|
1930
2020
|
def document(self) -> _PolicyDocument_3ac34393:
|
|
@@ -1939,17 +2029,23 @@ class BucketPolicy(
|
|
|
1939
2029
|
@jsii.data_type(
|
|
1940
2030
|
jsii_type="aws-cdk-lib.aws_s3.BucketPolicyProps",
|
|
1941
2031
|
jsii_struct_bases=[],
|
|
1942
|
-
name_mapping={
|
|
2032
|
+
name_mapping={
|
|
2033
|
+
"bucket": "bucket",
|
|
2034
|
+
"document": "document",
|
|
2035
|
+
"removal_policy": "removalPolicy",
|
|
2036
|
+
},
|
|
1943
2037
|
)
|
|
1944
2038
|
class BucketPolicyProps:
|
|
1945
2039
|
def __init__(
|
|
1946
2040
|
self,
|
|
1947
2041
|
*,
|
|
1948
2042
|
bucket: "IBucket",
|
|
2043
|
+
document: typing.Optional[_PolicyDocument_3ac34393] = None,
|
|
1949
2044
|
removal_policy: typing.Optional[_RemovalPolicy_9f93c814] = None,
|
|
1950
2045
|
) -> None:
|
|
1951
2046
|
'''
|
|
1952
2047
|
:param bucket: The Amazon S3 bucket that the policy applies to.
|
|
2048
|
+
:param document: Policy document to apply to the bucket. Default: - A new empty PolicyDocument will be created.
|
|
1953
2049
|
:param removal_policy: Policy to apply when the policy is removed from this stack. Default: - RemovalPolicy.DESTROY.
|
|
1954
2050
|
|
|
1955
2051
|
:exampleMetadata: fixture=_generated
|
|
@@ -1959,24 +2055,30 @@ class BucketPolicyProps:
|
|
|
1959
2055
|
# The code below shows an example of how to instantiate this type.
|
|
1960
2056
|
# The values are placeholders you should change.
|
|
1961
2057
|
import aws_cdk as cdk
|
|
2058
|
+
from aws_cdk import aws_iam as iam
|
|
1962
2059
|
from aws_cdk import aws_s3 as s3
|
|
1963
2060
|
|
|
1964
2061
|
# bucket: s3.Bucket
|
|
2062
|
+
# policy_document: iam.PolicyDocument
|
|
1965
2063
|
|
|
1966
2064
|
bucket_policy_props = s3.BucketPolicyProps(
|
|
1967
2065
|
bucket=bucket,
|
|
1968
2066
|
|
|
1969
2067
|
# the properties below are optional
|
|
2068
|
+
document=policy_document,
|
|
1970
2069
|
removal_policy=cdk.RemovalPolicy.DESTROY
|
|
1971
2070
|
)
|
|
1972
2071
|
'''
|
|
1973
2072
|
if __debug__:
|
|
1974
2073
|
type_hints = typing.get_type_hints(_typecheckingstub__4d7b9233434273933326211f004f27c2982fedd89ad904dc86d84c54f0f50ac6)
|
|
1975
2074
|
check_type(argname="argument bucket", value=bucket, expected_type=type_hints["bucket"])
|
|
2075
|
+
check_type(argname="argument document", value=document, expected_type=type_hints["document"])
|
|
1976
2076
|
check_type(argname="argument removal_policy", value=removal_policy, expected_type=type_hints["removal_policy"])
|
|
1977
2077
|
self._values: typing.Dict[builtins.str, typing.Any] = {
|
|
1978
2078
|
"bucket": bucket,
|
|
1979
2079
|
}
|
|
2080
|
+
if document is not None:
|
|
2081
|
+
self._values["document"] = document
|
|
1980
2082
|
if removal_policy is not None:
|
|
1981
2083
|
self._values["removal_policy"] = removal_policy
|
|
1982
2084
|
|
|
@@ -1987,6 +2089,15 @@ class BucketPolicyProps:
|
|
|
1987
2089
|
assert result is not None, "Required property 'bucket' is missing"
|
|
1988
2090
|
return typing.cast("IBucket", result)
|
|
1989
2091
|
|
|
2092
|
+
@builtins.property
|
|
2093
|
+
def document(self) -> typing.Optional[_PolicyDocument_3ac34393]:
|
|
2094
|
+
'''Policy document to apply to the bucket.
|
|
2095
|
+
|
|
2096
|
+
:default: - A new empty PolicyDocument will be created.
|
|
2097
|
+
'''
|
|
2098
|
+
result = self._values.get("document")
|
|
2099
|
+
return typing.cast(typing.Optional[_PolicyDocument_3ac34393], result)
|
|
2100
|
+
|
|
1990
2101
|
@builtins.property
|
|
1991
2102
|
def removal_policy(self) -> typing.Optional[_RemovalPolicy_9f93c814]:
|
|
1992
2103
|
'''Policy to apply when the policy is removed from this stack.
|
|
@@ -2652,7 +2763,7 @@ class BucketProps:
|
|
|
2652
2763
|
)
|
|
2653
2764
|
|
|
2654
2765
|
|
|
2655
|
-
@jsii.implements(_IInspectable_c2943556, _ITaggableV2_4e6798f8)
|
|
2766
|
+
@jsii.implements(_IInspectable_c2943556, _IAccessGrantRef_0e7c5209, _ITaggableV2_4e6798f8)
|
|
2656
2767
|
class CfnAccessGrant(
|
|
2657
2768
|
_CfnResource_9df397a6,
|
|
2658
2769
|
metaclass=jsii.JSIIMeta,
|
|
@@ -2713,7 +2824,8 @@ class CfnAccessGrant(
|
|
|
2713
2824
|
s3_prefix_type: typing.Optional[builtins.str] = None,
|
|
2714
2825
|
tags: typing.Optional[typing.Sequence[typing.Union[_CfnTag_f6864754, typing.Dict[builtins.str, typing.Any]]]] = None,
|
|
2715
2826
|
) -> None:
|
|
2716
|
-
'''
|
|
2827
|
+
'''Create a new ``AWS::S3::AccessGrant``.
|
|
2828
|
+
|
|
2717
2829
|
:param scope: Scope in which this resource is defined.
|
|
2718
2830
|
:param id: Construct identifier for this resource (unique in its scope).
|
|
2719
2831
|
:param access_grants_location_id: The ID of the registered location to which you are granting access. S3 Access Grants assigns this ID when you register the location. S3 Access Grants assigns the ID ``default`` to the default location ``s3://`` and assigns an auto-generated ID to other locations that you register.
|
|
@@ -2770,6 +2882,12 @@ class CfnAccessGrant(
|
|
|
2770
2882
|
'''The CloudFormation resource type name for this resource class.'''
|
|
2771
2883
|
return typing.cast(builtins.str, jsii.sget(cls, "CFN_RESOURCE_TYPE_NAME"))
|
|
2772
2884
|
|
|
2885
|
+
@builtins.property
|
|
2886
|
+
@jsii.member(jsii_name="accessGrantRef")
|
|
2887
|
+
def access_grant_ref(self) -> _AccessGrantReference_4b0925c1:
|
|
2888
|
+
'''A reference to a AccessGrant resource.'''
|
|
2889
|
+
return typing.cast(_AccessGrantReference_4b0925c1, jsii.get(self, "accessGrantRef"))
|
|
2890
|
+
|
|
2773
2891
|
@builtins.property
|
|
2774
2892
|
@jsii.member(jsii_name="attrAccessGrantArn")
|
|
2775
2893
|
def attr_access_grant_arn(self) -> builtins.str:
|
|
@@ -3238,7 +3356,7 @@ class CfnAccessGrantProps:
|
|
|
3238
3356
|
)
|
|
3239
3357
|
|
|
3240
3358
|
|
|
3241
|
-
@jsii.implements(_IInspectable_c2943556, _ITaggableV2_4e6798f8)
|
|
3359
|
+
@jsii.implements(_IInspectable_c2943556, _IAccessGrantsInstanceRef_94e5b823, _ITaggableV2_4e6798f8)
|
|
3242
3360
|
class CfnAccessGrantsInstance(
|
|
3243
3361
|
_CfnResource_9df397a6,
|
|
3244
3362
|
metaclass=jsii.JSIIMeta,
|
|
@@ -3278,7 +3396,8 @@ class CfnAccessGrantsInstance(
|
|
|
3278
3396
|
identity_center_arn: typing.Optional[builtins.str] = None,
|
|
3279
3397
|
tags: typing.Optional[typing.Sequence[typing.Union[_CfnTag_f6864754, typing.Dict[builtins.str, typing.Any]]]] = None,
|
|
3280
3398
|
) -> None:
|
|
3281
|
-
'''
|
|
3399
|
+
'''Create a new ``AWS::S3::AccessGrantsInstance``.
|
|
3400
|
+
|
|
3282
3401
|
:param scope: Scope in which this resource is defined.
|
|
3283
3402
|
:param id: Construct identifier for this resource (unique in its scope).
|
|
3284
3403
|
:param identity_center_arn: If you would like to associate your S3 Access Grants instance with an AWS IAM Identity Center instance, use this field to pass the Amazon Resource Name (ARN) of the AWS IAM Identity Center instance that you are associating with your S3 Access Grants instance. An IAM Identity Center instance is your corporate identity directory that you added to the IAM Identity Center.
|
|
@@ -3324,6 +3443,12 @@ class CfnAccessGrantsInstance(
|
|
|
3324
3443
|
'''The CloudFormation resource type name for this resource class.'''
|
|
3325
3444
|
return typing.cast(builtins.str, jsii.sget(cls, "CFN_RESOURCE_TYPE_NAME"))
|
|
3326
3445
|
|
|
3446
|
+
@builtins.property
|
|
3447
|
+
@jsii.member(jsii_name="accessGrantsInstanceRef")
|
|
3448
|
+
def access_grants_instance_ref(self) -> _AccessGrantsInstanceReference_18c061b7:
|
|
3449
|
+
'''A reference to a AccessGrantsInstance resource.'''
|
|
3450
|
+
return typing.cast(_AccessGrantsInstanceReference_18c061b7, jsii.get(self, "accessGrantsInstanceRef"))
|
|
3451
|
+
|
|
3327
3452
|
@builtins.property
|
|
3328
3453
|
@jsii.member(jsii_name="attrAccessGrantsInstanceArn")
|
|
3329
3454
|
def attr_access_grants_instance_arn(self) -> builtins.str:
|
|
@@ -3460,7 +3585,7 @@ class CfnAccessGrantsInstanceProps:
|
|
|
3460
3585
|
)
|
|
3461
3586
|
|
|
3462
3587
|
|
|
3463
|
-
@jsii.implements(_IInspectable_c2943556, _ITaggableV2_4e6798f8)
|
|
3588
|
+
@jsii.implements(_IInspectable_c2943556, _IAccessGrantsLocationRef_5ae01054, _ITaggableV2_4e6798f8)
|
|
3464
3589
|
class CfnAccessGrantsLocation(
|
|
3465
3590
|
_CfnResource_9df397a6,
|
|
3466
3591
|
metaclass=jsii.JSIIMeta,
|
|
@@ -3492,6 +3617,8 @@ class CfnAccessGrantsLocation(
|
|
|
3492
3617
|
cfn_access_grants_location = s3.CfnAccessGrantsLocation(self, "MyCfnAccessGrantsLocation",
|
|
3493
3618
|
iam_role_arn="iamRoleArn",
|
|
3494
3619
|
location_scope="locationScope",
|
|
3620
|
+
|
|
3621
|
+
# the properties below are optional
|
|
3495
3622
|
tags=[CfnTag(
|
|
3496
3623
|
key="key",
|
|
3497
3624
|
value="value"
|
|
@@ -3504,11 +3631,12 @@ class CfnAccessGrantsLocation(
|
|
|
3504
3631
|
scope: _constructs_77d1e7e8.Construct,
|
|
3505
3632
|
id: builtins.str,
|
|
3506
3633
|
*,
|
|
3507
|
-
iam_role_arn:
|
|
3508
|
-
location_scope:
|
|
3634
|
+
iam_role_arn: builtins.str,
|
|
3635
|
+
location_scope: builtins.str,
|
|
3509
3636
|
tags: typing.Optional[typing.Sequence[typing.Union[_CfnTag_f6864754, typing.Dict[builtins.str, typing.Any]]]] = None,
|
|
3510
3637
|
) -> None:
|
|
3511
|
-
'''
|
|
3638
|
+
'''Create a new ``AWS::S3::AccessGrantsLocation``.
|
|
3639
|
+
|
|
3512
3640
|
:param scope: Scope in which this resource is defined.
|
|
3513
3641
|
:param id: Construct identifier for this resource (unique in its scope).
|
|
3514
3642
|
:param iam_role_arn: The Amazon Resource Name (ARN) of the IAM role for the registered location. S3 Access Grants assumes this role to manage access to the registered location.
|
|
@@ -3555,6 +3683,12 @@ class CfnAccessGrantsLocation(
|
|
|
3555
3683
|
'''The CloudFormation resource type name for this resource class.'''
|
|
3556
3684
|
return typing.cast(builtins.str, jsii.sget(cls, "CFN_RESOURCE_TYPE_NAME"))
|
|
3557
3685
|
|
|
3686
|
+
@builtins.property
|
|
3687
|
+
@jsii.member(jsii_name="accessGrantsLocationRef")
|
|
3688
|
+
def access_grants_location_ref(self) -> _AccessGrantsLocationReference_6163b002:
|
|
3689
|
+
'''A reference to a AccessGrantsLocation resource.'''
|
|
3690
|
+
return typing.cast(_AccessGrantsLocationReference_6163b002, jsii.get(self, "accessGrantsLocationRef"))
|
|
3691
|
+
|
|
3558
3692
|
@builtins.property
|
|
3559
3693
|
@jsii.member(jsii_name="attrAccessGrantsLocationArn")
|
|
3560
3694
|
def attr_access_grants_location_arn(self) -> builtins.str:
|
|
@@ -3588,12 +3722,12 @@ class CfnAccessGrantsLocation(
|
|
|
3588
3722
|
|
|
3589
3723
|
@builtins.property
|
|
3590
3724
|
@jsii.member(jsii_name="iamRoleArn")
|
|
3591
|
-
def iam_role_arn(self) ->
|
|
3725
|
+
def iam_role_arn(self) -> builtins.str:
|
|
3592
3726
|
'''The Amazon Resource Name (ARN) of the IAM role for the registered location.'''
|
|
3593
|
-
return typing.cast(
|
|
3727
|
+
return typing.cast(builtins.str, jsii.get(self, "iamRoleArn"))
|
|
3594
3728
|
|
|
3595
3729
|
@iam_role_arn.setter
|
|
3596
|
-
def iam_role_arn(self, value:
|
|
3730
|
+
def iam_role_arn(self, value: builtins.str) -> None:
|
|
3597
3731
|
if __debug__:
|
|
3598
3732
|
type_hints = typing.get_type_hints(_typecheckingstub__c6ad3ea630d95d457364fa227ccc4159df9b2fe48cab3fd14afc7301612ddce6)
|
|
3599
3733
|
check_type(argname="argument value", value=value, expected_type=type_hints["value"])
|
|
@@ -3601,12 +3735,12 @@ class CfnAccessGrantsLocation(
|
|
|
3601
3735
|
|
|
3602
3736
|
@builtins.property
|
|
3603
3737
|
@jsii.member(jsii_name="locationScope")
|
|
3604
|
-
def location_scope(self) ->
|
|
3738
|
+
def location_scope(self) -> builtins.str:
|
|
3605
3739
|
'''The S3 URI path to the location that you are registering.'''
|
|
3606
|
-
return typing.cast(
|
|
3740
|
+
return typing.cast(builtins.str, jsii.get(self, "locationScope"))
|
|
3607
3741
|
|
|
3608
3742
|
@location_scope.setter
|
|
3609
|
-
def location_scope(self, value:
|
|
3743
|
+
def location_scope(self, value: builtins.str) -> None:
|
|
3610
3744
|
if __debug__:
|
|
3611
3745
|
type_hints = typing.get_type_hints(_typecheckingstub__80f4ecc1c277ca36e62d80157ee09c7e5856bf9bc1e1542588d3449f958c3302)
|
|
3612
3746
|
check_type(argname="argument value", value=value, expected_type=type_hints["value"])
|
|
@@ -3639,8 +3773,8 @@ class CfnAccessGrantsLocationProps:
|
|
|
3639
3773
|
def __init__(
|
|
3640
3774
|
self,
|
|
3641
3775
|
*,
|
|
3642
|
-
iam_role_arn:
|
|
3643
|
-
location_scope:
|
|
3776
|
+
iam_role_arn: builtins.str,
|
|
3777
|
+
location_scope: builtins.str,
|
|
3644
3778
|
tags: typing.Optional[typing.Sequence[typing.Union[_CfnTag_f6864754, typing.Dict[builtins.str, typing.Any]]]] = None,
|
|
3645
3779
|
) -> None:
|
|
3646
3780
|
'''Properties for defining a ``CfnAccessGrantsLocation``.
|
|
@@ -3661,6 +3795,8 @@ class CfnAccessGrantsLocationProps:
|
|
|
3661
3795
|
cfn_access_grants_location_props = s3.CfnAccessGrantsLocationProps(
|
|
3662
3796
|
iam_role_arn="iamRoleArn",
|
|
3663
3797
|
location_scope="locationScope",
|
|
3798
|
+
|
|
3799
|
+
# the properties below are optional
|
|
3664
3800
|
tags=[CfnTag(
|
|
3665
3801
|
key="key",
|
|
3666
3802
|
value="value"
|
|
@@ -3672,16 +3808,15 @@ class CfnAccessGrantsLocationProps:
|
|
|
3672
3808
|
check_type(argname="argument iam_role_arn", value=iam_role_arn, expected_type=type_hints["iam_role_arn"])
|
|
3673
3809
|
check_type(argname="argument location_scope", value=location_scope, expected_type=type_hints["location_scope"])
|
|
3674
3810
|
check_type(argname="argument tags", value=tags, expected_type=type_hints["tags"])
|
|
3675
|
-
self._values: typing.Dict[builtins.str, typing.Any] = {
|
|
3676
|
-
|
|
3677
|
-
|
|
3678
|
-
|
|
3679
|
-
self._values["location_scope"] = location_scope
|
|
3811
|
+
self._values: typing.Dict[builtins.str, typing.Any] = {
|
|
3812
|
+
"iam_role_arn": iam_role_arn,
|
|
3813
|
+
"location_scope": location_scope,
|
|
3814
|
+
}
|
|
3680
3815
|
if tags is not None:
|
|
3681
3816
|
self._values["tags"] = tags
|
|
3682
3817
|
|
|
3683
3818
|
@builtins.property
|
|
3684
|
-
def iam_role_arn(self) ->
|
|
3819
|
+
def iam_role_arn(self) -> builtins.str:
|
|
3685
3820
|
'''The Amazon Resource Name (ARN) of the IAM role for the registered location.
|
|
3686
3821
|
|
|
3687
3822
|
S3 Access Grants assumes this role to manage access to the registered location.
|
|
@@ -3689,10 +3824,11 @@ class CfnAccessGrantsLocationProps:
|
|
|
3689
3824
|
:see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-s3-accessgrantslocation.html#cfn-s3-accessgrantslocation-iamrolearn
|
|
3690
3825
|
'''
|
|
3691
3826
|
result = self._values.get("iam_role_arn")
|
|
3692
|
-
|
|
3827
|
+
assert result is not None, "Required property 'iam_role_arn' is missing"
|
|
3828
|
+
return typing.cast(builtins.str, result)
|
|
3693
3829
|
|
|
3694
3830
|
@builtins.property
|
|
3695
|
-
def location_scope(self) ->
|
|
3831
|
+
def location_scope(self) -> builtins.str:
|
|
3696
3832
|
'''The S3 URI path to the location that you are registering.
|
|
3697
3833
|
|
|
3698
3834
|
The location scope can be the default S3 location ``s3://`` , the S3 path to a bucket, or the S3 path to a bucket and prefix. A prefix in S3 is a string of characters at the beginning of an object key name used to organize the objects that you store in your S3 buckets. For example, object key names that start with the ``engineering/`` prefix or object key names that start with the ``marketing/campaigns/`` prefix.
|
|
@@ -3700,7 +3836,8 @@ class CfnAccessGrantsLocationProps:
|
|
|
3700
3836
|
:see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-s3-accessgrantslocation.html#cfn-s3-accessgrantslocation-locationscope
|
|
3701
3837
|
'''
|
|
3702
3838
|
result = self._values.get("location_scope")
|
|
3703
|
-
|
|
3839
|
+
assert result is not None, "Required property 'location_scope' is missing"
|
|
3840
|
+
return typing.cast(builtins.str, result)
|
|
3704
3841
|
|
|
3705
3842
|
@builtins.property
|
|
3706
3843
|
def tags(self) -> typing.Optional[typing.List[_CfnTag_f6864754]]:
|
|
@@ -3725,7 +3862,7 @@ class CfnAccessGrantsLocationProps:
|
|
|
3725
3862
|
)
|
|
3726
3863
|
|
|
3727
3864
|
|
|
3728
|
-
@jsii.implements(_IInspectable_c2943556)
|
|
3865
|
+
@jsii.implements(_IInspectable_c2943556, _IAccessPointRef_02282fed, _ITaggableV2_4e6798f8)
|
|
3729
3866
|
class CfnAccessPoint(
|
|
3730
3867
|
_CfnResource_9df397a6,
|
|
3731
3868
|
metaclass=jsii.JSIIMeta,
|
|
@@ -3758,6 +3895,10 @@ class CfnAccessPoint(
|
|
|
3758
3895
|
ignore_public_acls=False,
|
|
3759
3896
|
restrict_public_buckets=False
|
|
3760
3897
|
),
|
|
3898
|
+
tags=[CfnTag(
|
|
3899
|
+
key="key",
|
|
3900
|
+
value="value"
|
|
3901
|
+
)],
|
|
3761
3902
|
vpc_configuration=s3.CfnAccessPoint.VpcConfigurationProperty(
|
|
3762
3903
|
vpc_id="vpcId"
|
|
3763
3904
|
)
|
|
@@ -3774,9 +3915,11 @@ class CfnAccessPoint(
|
|
|
3774
3915
|
name: typing.Optional[builtins.str] = None,
|
|
3775
3916
|
policy: typing.Any = None,
|
|
3776
3917
|
public_access_block_configuration: typing.Optional[typing.Union[_IResolvable_da3f097b, typing.Union["CfnAccessPoint.PublicAccessBlockConfigurationProperty", typing.Dict[builtins.str, typing.Any]]]] = None,
|
|
3918
|
+
tags: typing.Optional[typing.Sequence[typing.Union[_CfnTag_f6864754, typing.Dict[builtins.str, typing.Any]]]] = None,
|
|
3777
3919
|
vpc_configuration: typing.Optional[typing.Union[_IResolvable_da3f097b, typing.Union["CfnAccessPoint.VpcConfigurationProperty", typing.Dict[builtins.str, typing.Any]]]] = None,
|
|
3778
3920
|
) -> None:
|
|
3779
|
-
'''
|
|
3921
|
+
'''Create a new ``AWS::S3::AccessPoint``.
|
|
3922
|
+
|
|
3780
3923
|
:param scope: Scope in which this resource is defined.
|
|
3781
3924
|
:param id: Construct identifier for this resource (unique in its scope).
|
|
3782
3925
|
:param bucket: The name of the bucket associated with this access point.
|
|
@@ -3784,6 +3927,7 @@ class CfnAccessPoint(
|
|
|
3784
3927
|
:param name: The name of this access point. If you don't specify a name, AWS CloudFormation generates a unique ID and uses that ID for the access point name.
|
|
3785
3928
|
:param policy: The access point policy associated with this access point.
|
|
3786
3929
|
:param public_access_block_configuration: The PublicAccessBlock configuration that you want to apply to this Amazon S3 bucket. You can enable the configuration options in any combination. For more information about when Amazon S3 considers a bucket or object public, see `The Meaning of "Public" <https://docs.aws.amazon.com/AmazonS3/latest/dev/access-control-block-public-access.html#access-control-block-public-access-policy-status>`_ in the *Amazon S3 User Guide* .
|
|
3930
|
+
:param tags: An array of tags that you can apply to access points. Tags are key-value pairs of metadata used to categorize your access points and control access. For more information, see `Using tags for attribute-based access control (ABAC) <https://docs.aws.amazon.com/AmazonS3/latest/userguide/tagging.html#using-tags-for-abac>`_ .
|
|
3787
3931
|
:param vpc_configuration: The Virtual Private Cloud (VPC) configuration for this access point, if one exists.
|
|
3788
3932
|
'''
|
|
3789
3933
|
if __debug__:
|
|
@@ -3796,11 +3940,54 @@ class CfnAccessPoint(
|
|
|
3796
3940
|
name=name,
|
|
3797
3941
|
policy=policy,
|
|
3798
3942
|
public_access_block_configuration=public_access_block_configuration,
|
|
3943
|
+
tags=tags,
|
|
3799
3944
|
vpc_configuration=vpc_configuration,
|
|
3800
3945
|
)
|
|
3801
3946
|
|
|
3802
3947
|
jsii.create(self.__class__, self, [scope, id, props])
|
|
3803
3948
|
|
|
3949
|
+
@jsii.member(jsii_name="fromAccessPointArn")
|
|
3950
|
+
@builtins.classmethod
|
|
3951
|
+
def from_access_point_arn(
|
|
3952
|
+
cls,
|
|
3953
|
+
scope: _constructs_77d1e7e8.Construct,
|
|
3954
|
+
id: builtins.str,
|
|
3955
|
+
arn: builtins.str,
|
|
3956
|
+
) -> _IAccessPointRef_02282fed:
|
|
3957
|
+
'''Creates a new IAccessPointRef from an ARN.
|
|
3958
|
+
|
|
3959
|
+
:param scope: -
|
|
3960
|
+
:param id: -
|
|
3961
|
+
:param arn: -
|
|
3962
|
+
'''
|
|
3963
|
+
if __debug__:
|
|
3964
|
+
type_hints = typing.get_type_hints(_typecheckingstub__27c1fdb406b539ade70eea36bce09782bba11b354442fee5c5d43c938bfd0aee)
|
|
3965
|
+
check_type(argname="argument scope", value=scope, expected_type=type_hints["scope"])
|
|
3966
|
+
check_type(argname="argument id", value=id, expected_type=type_hints["id"])
|
|
3967
|
+
check_type(argname="argument arn", value=arn, expected_type=type_hints["arn"])
|
|
3968
|
+
return typing.cast(_IAccessPointRef_02282fed, jsii.sinvoke(cls, "fromAccessPointArn", [scope, id, arn]))
|
|
3969
|
+
|
|
3970
|
+
@jsii.member(jsii_name="fromAccessPointName")
|
|
3971
|
+
@builtins.classmethod
|
|
3972
|
+
def from_access_point_name(
|
|
3973
|
+
cls,
|
|
3974
|
+
scope: _constructs_77d1e7e8.Construct,
|
|
3975
|
+
id: builtins.str,
|
|
3976
|
+
access_point_name: builtins.str,
|
|
3977
|
+
) -> _IAccessPointRef_02282fed:
|
|
3978
|
+
'''Creates a new IAccessPointRef from a accessPointName.
|
|
3979
|
+
|
|
3980
|
+
:param scope: -
|
|
3981
|
+
:param id: -
|
|
3982
|
+
:param access_point_name: -
|
|
3983
|
+
'''
|
|
3984
|
+
if __debug__:
|
|
3985
|
+
type_hints = typing.get_type_hints(_typecheckingstub__9af2790fec8caeab2621c276234587e70ab62b4d6d6f7a82947b3b7326f42deb)
|
|
3986
|
+
check_type(argname="argument scope", value=scope, expected_type=type_hints["scope"])
|
|
3987
|
+
check_type(argname="argument id", value=id, expected_type=type_hints["id"])
|
|
3988
|
+
check_type(argname="argument access_point_name", value=access_point_name, expected_type=type_hints["access_point_name"])
|
|
3989
|
+
return typing.cast(_IAccessPointRef_02282fed, jsii.sinvoke(cls, "fromAccessPointName", [scope, id, access_point_name]))
|
|
3990
|
+
|
|
3804
3991
|
@jsii.member(jsii_name="inspect")
|
|
3805
3992
|
def inspect(self, inspector: _TreeInspector_488e0dd5) -> None:
|
|
3806
3993
|
'''Examines the CloudFormation resource and discloses attributes.
|
|
@@ -3831,6 +4018,12 @@ class CfnAccessPoint(
|
|
|
3831
4018
|
'''The CloudFormation resource type name for this resource class.'''
|
|
3832
4019
|
return typing.cast(builtins.str, jsii.sget(cls, "CFN_RESOURCE_TYPE_NAME"))
|
|
3833
4020
|
|
|
4021
|
+
@builtins.property
|
|
4022
|
+
@jsii.member(jsii_name="accessPointRef")
|
|
4023
|
+
def access_point_ref(self) -> _AccessPointReference_b9bf9d61:
|
|
4024
|
+
'''A reference to a AccessPoint resource.'''
|
|
4025
|
+
return typing.cast(_AccessPointReference_b9bf9d61, jsii.get(self, "accessPointRef"))
|
|
4026
|
+
|
|
3834
4027
|
@builtins.property
|
|
3835
4028
|
@jsii.member(jsii_name="attrAlias")
|
|
3836
4029
|
def attr_alias(self) -> builtins.str:
|
|
@@ -3871,6 +4064,12 @@ class CfnAccessPoint(
|
|
|
3871
4064
|
'''
|
|
3872
4065
|
return typing.cast(builtins.str, jsii.get(self, "attrNetworkOrigin"))
|
|
3873
4066
|
|
|
4067
|
+
@builtins.property
|
|
4068
|
+
@jsii.member(jsii_name="cdkTagManager")
|
|
4069
|
+
def cdk_tag_manager(self) -> _TagManager_0a598cb3:
|
|
4070
|
+
'''Tag Manager which manages the tags for this resource.'''
|
|
4071
|
+
return typing.cast(_TagManager_0a598cb3, jsii.get(self, "cdkTagManager"))
|
|
4072
|
+
|
|
3874
4073
|
@builtins.property
|
|
3875
4074
|
@jsii.member(jsii_name="cfnProperties")
|
|
3876
4075
|
def _cfn_properties(self) -> typing.Mapping[builtins.str, typing.Any]:
|
|
@@ -3946,6 +4145,19 @@ class CfnAccessPoint(
|
|
|
3946
4145
|
check_type(argname="argument value", value=value, expected_type=type_hints["value"])
|
|
3947
4146
|
jsii.set(self, "publicAccessBlockConfiguration", value) # pyright: ignore[reportArgumentType]
|
|
3948
4147
|
|
|
4148
|
+
@builtins.property
|
|
4149
|
+
@jsii.member(jsii_name="tags")
|
|
4150
|
+
def tags(self) -> typing.Optional[typing.List[_CfnTag_f6864754]]:
|
|
4151
|
+
'''An array of tags that you can apply to access points.'''
|
|
4152
|
+
return typing.cast(typing.Optional[typing.List[_CfnTag_f6864754]], jsii.get(self, "tags"))
|
|
4153
|
+
|
|
4154
|
+
@tags.setter
|
|
4155
|
+
def tags(self, value: typing.Optional[typing.List[_CfnTag_f6864754]]) -> None:
|
|
4156
|
+
if __debug__:
|
|
4157
|
+
type_hints = typing.get_type_hints(_typecheckingstub__d6c41b842366f80d771c24147e6f4bdb868bf8899c3f03b128339e380a158e19)
|
|
4158
|
+
check_type(argname="argument value", value=value, expected_type=type_hints["value"])
|
|
4159
|
+
jsii.set(self, "tags", value) # pyright: ignore[reportArgumentType]
|
|
4160
|
+
|
|
3949
4161
|
@builtins.property
|
|
3950
4162
|
@jsii.member(jsii_name="vpcConfiguration")
|
|
3951
4163
|
def vpc_configuration(
|
|
@@ -4160,6 +4372,7 @@ class CfnAccessPoint(
|
|
|
4160
4372
|
"name": "name",
|
|
4161
4373
|
"policy": "policy",
|
|
4162
4374
|
"public_access_block_configuration": "publicAccessBlockConfiguration",
|
|
4375
|
+
"tags": "tags",
|
|
4163
4376
|
"vpc_configuration": "vpcConfiguration",
|
|
4164
4377
|
},
|
|
4165
4378
|
)
|
|
@@ -4172,6 +4385,7 @@ class CfnAccessPointProps:
|
|
|
4172
4385
|
name: typing.Optional[builtins.str] = None,
|
|
4173
4386
|
policy: typing.Any = None,
|
|
4174
4387
|
public_access_block_configuration: typing.Optional[typing.Union[_IResolvable_da3f097b, typing.Union[CfnAccessPoint.PublicAccessBlockConfigurationProperty, typing.Dict[builtins.str, typing.Any]]]] = None,
|
|
4388
|
+
tags: typing.Optional[typing.Sequence[typing.Union[_CfnTag_f6864754, typing.Dict[builtins.str, typing.Any]]]] = None,
|
|
4175
4389
|
vpc_configuration: typing.Optional[typing.Union[_IResolvable_da3f097b, typing.Union[CfnAccessPoint.VpcConfigurationProperty, typing.Dict[builtins.str, typing.Any]]]] = None,
|
|
4176
4390
|
) -> None:
|
|
4177
4391
|
'''Properties for defining a ``CfnAccessPoint``.
|
|
@@ -4181,6 +4395,7 @@ class CfnAccessPointProps:
|
|
|
4181
4395
|
:param name: The name of this access point. If you don't specify a name, AWS CloudFormation generates a unique ID and uses that ID for the access point name.
|
|
4182
4396
|
:param policy: The access point policy associated with this access point.
|
|
4183
4397
|
:param public_access_block_configuration: The PublicAccessBlock configuration that you want to apply to this Amazon S3 bucket. You can enable the configuration options in any combination. For more information about when Amazon S3 considers a bucket or object public, see `The Meaning of "Public" <https://docs.aws.amazon.com/AmazonS3/latest/dev/access-control-block-public-access.html#access-control-block-public-access-policy-status>`_ in the *Amazon S3 User Guide* .
|
|
4398
|
+
:param tags: An array of tags that you can apply to access points. Tags are key-value pairs of metadata used to categorize your access points and control access. For more information, see `Using tags for attribute-based access control (ABAC) <https://docs.aws.amazon.com/AmazonS3/latest/userguide/tagging.html#using-tags-for-abac>`_ .
|
|
4184
4399
|
:param vpc_configuration: The Virtual Private Cloud (VPC) configuration for this access point, if one exists.
|
|
4185
4400
|
|
|
4186
4401
|
:see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-s3-accesspoint.html
|
|
@@ -4207,6 +4422,10 @@ class CfnAccessPointProps:
|
|
|
4207
4422
|
ignore_public_acls=False,
|
|
4208
4423
|
restrict_public_buckets=False
|
|
4209
4424
|
),
|
|
4425
|
+
tags=[CfnTag(
|
|
4426
|
+
key="key",
|
|
4427
|
+
value="value"
|
|
4428
|
+
)],
|
|
4210
4429
|
vpc_configuration=s3.CfnAccessPoint.VpcConfigurationProperty(
|
|
4211
4430
|
vpc_id="vpcId"
|
|
4212
4431
|
)
|
|
@@ -4219,6 +4438,7 @@ class CfnAccessPointProps:
|
|
|
4219
4438
|
check_type(argname="argument name", value=name, expected_type=type_hints["name"])
|
|
4220
4439
|
check_type(argname="argument policy", value=policy, expected_type=type_hints["policy"])
|
|
4221
4440
|
check_type(argname="argument public_access_block_configuration", value=public_access_block_configuration, expected_type=type_hints["public_access_block_configuration"])
|
|
4441
|
+
check_type(argname="argument tags", value=tags, expected_type=type_hints["tags"])
|
|
4222
4442
|
check_type(argname="argument vpc_configuration", value=vpc_configuration, expected_type=type_hints["vpc_configuration"])
|
|
4223
4443
|
self._values: typing.Dict[builtins.str, typing.Any] = {
|
|
4224
4444
|
"bucket": bucket,
|
|
@@ -4231,6 +4451,8 @@ class CfnAccessPointProps:
|
|
|
4231
4451
|
self._values["policy"] = policy
|
|
4232
4452
|
if public_access_block_configuration is not None:
|
|
4233
4453
|
self._values["public_access_block_configuration"] = public_access_block_configuration
|
|
4454
|
+
if tags is not None:
|
|
4455
|
+
self._values["tags"] = tags
|
|
4234
4456
|
if vpc_configuration is not None:
|
|
4235
4457
|
self._values["vpc_configuration"] = vpc_configuration
|
|
4236
4458
|
|
|
@@ -4286,6 +4508,17 @@ class CfnAccessPointProps:
|
|
|
4286
4508
|
result = self._values.get("public_access_block_configuration")
|
|
4287
4509
|
return typing.cast(typing.Optional[typing.Union[_IResolvable_da3f097b, CfnAccessPoint.PublicAccessBlockConfigurationProperty]], result)
|
|
4288
4510
|
|
|
4511
|
+
@builtins.property
|
|
4512
|
+
def tags(self) -> typing.Optional[typing.List[_CfnTag_f6864754]]:
|
|
4513
|
+
'''An array of tags that you can apply to access points.
|
|
4514
|
+
|
|
4515
|
+
Tags are key-value pairs of metadata used to categorize your access points and control access. For more information, see `Using tags for attribute-based access control (ABAC) <https://docs.aws.amazon.com/AmazonS3/latest/userguide/tagging.html#using-tags-for-abac>`_ .
|
|
4516
|
+
|
|
4517
|
+
:see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-s3-accesspoint.html#cfn-s3-accesspoint-tags
|
|
4518
|
+
'''
|
|
4519
|
+
result = self._values.get("tags")
|
|
4520
|
+
return typing.cast(typing.Optional[typing.List[_CfnTag_f6864754]], result)
|
|
4521
|
+
|
|
4289
4522
|
@builtins.property
|
|
4290
4523
|
def vpc_configuration(
|
|
4291
4524
|
self,
|
|
@@ -4309,7 +4542,7 @@ class CfnAccessPointProps:
|
|
|
4309
4542
|
)
|
|
4310
4543
|
|
|
4311
4544
|
|
|
4312
|
-
@jsii.implements(_IInspectable_c2943556, _ITaggable_36806126)
|
|
4545
|
+
@jsii.implements(_IInspectable_c2943556, _IBucketRef_3debe44e, _ITaggable_36806126)
|
|
4313
4546
|
class CfnBucket(
|
|
4314
4547
|
_CfnResource_9df397a6,
|
|
4315
4548
|
metaclass=jsii.JSIIMeta,
|
|
@@ -4356,6 +4589,7 @@ class CfnBucket(
|
|
|
4356
4589
|
inventory_configurations: typing.Optional[typing.Union[_IResolvable_da3f097b, typing.Sequence[typing.Union[_IResolvable_da3f097b, typing.Union["CfnBucket.InventoryConfigurationProperty", typing.Dict[builtins.str, typing.Any]]]]]] = None,
|
|
4357
4590
|
lifecycle_configuration: typing.Optional[typing.Union[_IResolvable_da3f097b, typing.Union["CfnBucket.LifecycleConfigurationProperty", typing.Dict[builtins.str, typing.Any]]]] = None,
|
|
4358
4591
|
logging_configuration: typing.Optional[typing.Union[_IResolvable_da3f097b, typing.Union["CfnBucket.LoggingConfigurationProperty", typing.Dict[builtins.str, typing.Any]]]] = None,
|
|
4592
|
+
metadata_configuration: typing.Optional[typing.Union[_IResolvable_da3f097b, typing.Union["CfnBucket.MetadataConfigurationProperty", typing.Dict[builtins.str, typing.Any]]]] = None,
|
|
4359
4593
|
metadata_table_configuration: typing.Optional[typing.Union[_IResolvable_da3f097b, typing.Union["CfnBucket.MetadataTableConfigurationProperty", typing.Dict[builtins.str, typing.Any]]]] = None,
|
|
4360
4594
|
metrics_configurations: typing.Optional[typing.Union[_IResolvable_da3f097b, typing.Sequence[typing.Union[_IResolvable_da3f097b, typing.Union["CfnBucket.MetricsConfigurationProperty", typing.Dict[builtins.str, typing.Any]]]]]] = None,
|
|
4361
4595
|
notification_configuration: typing.Optional[typing.Union[_IResolvable_da3f097b, typing.Union["CfnBucket.NotificationConfigurationProperty", typing.Dict[builtins.str, typing.Any]]]] = None,
|
|
@@ -4368,7 +4602,8 @@ class CfnBucket(
|
|
|
4368
4602
|
versioning_configuration: typing.Optional[typing.Union[_IResolvable_da3f097b, typing.Union["CfnBucket.VersioningConfigurationProperty", typing.Dict[builtins.str, typing.Any]]]] = None,
|
|
4369
4603
|
website_configuration: typing.Optional[typing.Union[_IResolvable_da3f097b, typing.Union["CfnBucket.WebsiteConfigurationProperty", typing.Dict[builtins.str, typing.Any]]]] = None,
|
|
4370
4604
|
) -> None:
|
|
4371
|
-
'''
|
|
4605
|
+
'''Create a new ``AWS::S3::Bucket``.
|
|
4606
|
+
|
|
4372
4607
|
:param scope: Scope in which this resource is defined.
|
|
4373
4608
|
:param id: Construct identifier for this resource (unique in its scope).
|
|
4374
4609
|
:param accelerate_configuration: Configures the transfer acceleration state for an Amazon S3 bucket. For more information, see `Amazon S3 Transfer Acceleration <https://docs.aws.amazon.com/AmazonS3/latest/dev/transfer-acceleration.html>`_ in the *Amazon S3 User Guide* .
|
|
@@ -4378,13 +4613,14 @@ class CfnBucket(
|
|
|
4378
4613
|
:param bucket_name: A name for the bucket. If you don't specify a name, AWS CloudFormation generates a unique ID and uses that ID for the bucket name. The bucket name must contain only lowercase letters, numbers, periods (.), and dashes (-) and must follow `Amazon S3 bucket restrictions and limitations <https://docs.aws.amazon.com/AmazonS3/latest/dev/BucketRestrictions.html>`_ . For more information, see `Rules for naming Amazon S3 buckets <https://docs.aws.amazon.com/AmazonS3/latest/userguide/bucketnamingrules.html>`_ in the *Amazon S3 User Guide* . .. epigraph:: If you specify a name, you can't perform updates that require replacement of this resource. You can perform updates that require no or some interruption. If you need to replace the resource, specify a new name.
|
|
4379
4614
|
:param cors_configuration: Describes the cross-origin access configuration for objects in an Amazon S3 bucket. For more information, see `Enabling Cross-Origin Resource Sharing <https://docs.aws.amazon.com/AmazonS3/latest/dev/cors.html>`_ in the *Amazon S3 User Guide* .
|
|
4380
4615
|
:param intelligent_tiering_configurations: Defines how Amazon S3 handles Intelligent-Tiering storage.
|
|
4381
|
-
:param inventory_configurations: Specifies the
|
|
4616
|
+
:param inventory_configurations: Specifies the S3 Inventory configuration for an Amazon S3 bucket. For more information, see `GET Bucket inventory <https://docs.aws.amazon.com/AmazonS3/latest/API/RESTBucketGETInventoryConfig.html>`_ in the *Amazon S3 API Reference* .
|
|
4382
4617
|
:param lifecycle_configuration: Specifies the lifecycle configuration for objects in an Amazon S3 bucket. For more information, see `Object Lifecycle Management <https://docs.aws.amazon.com/AmazonS3/latest/dev/object-lifecycle-mgmt.html>`_ in the *Amazon S3 User Guide* .
|
|
4383
4618
|
:param logging_configuration: Settings that define where logs are stored.
|
|
4619
|
+
:param metadata_configuration: The S3 Metadata configuration for a general purpose bucket.
|
|
4384
4620
|
:param metadata_table_configuration: The metadata table configuration of an Amazon S3 general purpose bucket.
|
|
4385
4621
|
:param metrics_configurations: Specifies a metrics configuration for the CloudWatch request metrics (specified by the metrics configuration ID) from an Amazon S3 bucket. If you're updating an existing metrics configuration, note that this is a full replacement of the existing metrics configuration. If you don't include the elements you want to keep, they are erased. For more information, see `PutBucketMetricsConfiguration <https://docs.aws.amazon.com/AmazonS3/latest/API/RESTBucketPUTMetricConfiguration.html>`_ .
|
|
4386
4622
|
:param notification_configuration: Configuration that defines how Amazon S3 handles bucket notifications.
|
|
4387
|
-
:param object_lock_configuration: .. epigraph:: This operation is not supported for directory buckets. Places an Object Lock configuration on the specified bucket. The rule specified in the Object Lock configuration will be applied by default to every new object placed in the specified bucket. For more information, see `Locking Objects <https://docs.aws.amazon.com/AmazonS3/latest/dev/object-lock.html>`_ . .. epigraph:: - The ``DefaultRetention`` settings require both a mode and a period. - The ``DefaultRetention`` period can be either ``Days`` or ``Years`` but you must select one. You cannot specify ``Days`` and ``Years`` at the same time. - You can enable Object Lock for new or existing buckets. For more information, see `Configuring Object Lock <https://docs.aws.amazon.com/AmazonS3/latest/userguide/object-lock-configure.html>`_ .
|
|
4623
|
+
:param object_lock_configuration: .. epigraph:: This operation is not supported for directory buckets. Places an Object Lock configuration on the specified bucket. The rule specified in the Object Lock configuration will be applied by default to every new object placed in the specified bucket. For more information, see `Locking Objects <https://docs.aws.amazon.com/AmazonS3/latest/dev/object-lock.html>`_ . .. epigraph:: - The ``DefaultRetention`` settings require both a mode and a period. - The ``DefaultRetention`` period can be either ``Days`` or ``Years`` but you must select one. You cannot specify ``Days`` and ``Years`` at the same time. - You can enable Object Lock for new or existing buckets. For more information, see `Configuring Object Lock <https://docs.aws.amazon.com/AmazonS3/latest/userguide/object-lock-configure.html>`_ . > You must URL encode any signed header values that contain spaces. For example, if your header value is ``my file.txt`` , containing two spaces after ``my`` , you must URL encode this value to ``my%20%20file.txt`` .
|
|
4388
4624
|
:param object_lock_enabled: Indicates whether this bucket has an Object Lock configuration enabled. Enable ``ObjectLockEnabled`` when you apply ``ObjectLockConfiguration`` to a bucket.
|
|
4389
4625
|
:param ownership_controls: Configuration that defines how Amazon S3 handles Object Ownership rules.
|
|
4390
4626
|
:param public_access_block_configuration: Configuration that defines how Amazon S3 handles public access.
|
|
@@ -4408,6 +4644,7 @@ class CfnBucket(
|
|
|
4408
4644
|
inventory_configurations=inventory_configurations,
|
|
4409
4645
|
lifecycle_configuration=lifecycle_configuration,
|
|
4410
4646
|
logging_configuration=logging_configuration,
|
|
4647
|
+
metadata_configuration=metadata_configuration,
|
|
4411
4648
|
metadata_table_configuration=metadata_table_configuration,
|
|
4412
4649
|
metrics_configurations=metrics_configurations,
|
|
4413
4650
|
notification_configuration=notification_configuration,
|
|
@@ -4423,6 +4660,48 @@ class CfnBucket(
|
|
|
4423
4660
|
|
|
4424
4661
|
jsii.create(self.__class__, self, [scope, id, props])
|
|
4425
4662
|
|
|
4663
|
+
@jsii.member(jsii_name="fromBucketArn")
|
|
4664
|
+
@builtins.classmethod
|
|
4665
|
+
def from_bucket_arn(
|
|
4666
|
+
cls,
|
|
4667
|
+
scope: _constructs_77d1e7e8.Construct,
|
|
4668
|
+
id: builtins.str,
|
|
4669
|
+
arn: builtins.str,
|
|
4670
|
+
) -> _IBucketRef_3debe44e:
|
|
4671
|
+
'''Creates a new IBucketRef from an ARN.
|
|
4672
|
+
|
|
4673
|
+
:param scope: -
|
|
4674
|
+
:param id: -
|
|
4675
|
+
:param arn: -
|
|
4676
|
+
'''
|
|
4677
|
+
if __debug__:
|
|
4678
|
+
type_hints = typing.get_type_hints(_typecheckingstub__f218931ccffe0d6407edcfc452f39d64609d0cceec6ea04313fa364cf5a4f3df)
|
|
4679
|
+
check_type(argname="argument scope", value=scope, expected_type=type_hints["scope"])
|
|
4680
|
+
check_type(argname="argument id", value=id, expected_type=type_hints["id"])
|
|
4681
|
+
check_type(argname="argument arn", value=arn, expected_type=type_hints["arn"])
|
|
4682
|
+
return typing.cast(_IBucketRef_3debe44e, jsii.sinvoke(cls, "fromBucketArn", [scope, id, arn]))
|
|
4683
|
+
|
|
4684
|
+
@jsii.member(jsii_name="fromBucketName")
|
|
4685
|
+
@builtins.classmethod
|
|
4686
|
+
def from_bucket_name(
|
|
4687
|
+
cls,
|
|
4688
|
+
scope: _constructs_77d1e7e8.Construct,
|
|
4689
|
+
id: builtins.str,
|
|
4690
|
+
bucket_name: builtins.str,
|
|
4691
|
+
) -> _IBucketRef_3debe44e:
|
|
4692
|
+
'''Creates a new IBucketRef from a bucketName.
|
|
4693
|
+
|
|
4694
|
+
:param scope: -
|
|
4695
|
+
:param id: -
|
|
4696
|
+
:param bucket_name: -
|
|
4697
|
+
'''
|
|
4698
|
+
if __debug__:
|
|
4699
|
+
type_hints = typing.get_type_hints(_typecheckingstub__08ccc75711c8ec0fedd9747e674f732b2653120a392c01413875cc0df08e91fa)
|
|
4700
|
+
check_type(argname="argument scope", value=scope, expected_type=type_hints["scope"])
|
|
4701
|
+
check_type(argname="argument id", value=id, expected_type=type_hints["id"])
|
|
4702
|
+
check_type(argname="argument bucket_name", value=bucket_name, expected_type=type_hints["bucket_name"])
|
|
4703
|
+
return typing.cast(_IBucketRef_3debe44e, jsii.sinvoke(cls, "fromBucketName", [scope, id, bucket_name]))
|
|
4704
|
+
|
|
4426
4705
|
@jsii.member(jsii_name="inspect")
|
|
4427
4706
|
def inspect(self, inspector: _TreeInspector_488e0dd5) -> None:
|
|
4428
4707
|
'''Examines the CloudFormation resource and discloses attributes.
|
|
@@ -4488,6 +4767,59 @@ class CfnBucket(
|
|
|
4488
4767
|
'''
|
|
4489
4768
|
return typing.cast(builtins.str, jsii.get(self, "attrDualStackDomainName"))
|
|
4490
4769
|
|
|
4770
|
+
@builtins.property
|
|
4771
|
+
@jsii.member(jsii_name="attrMetadataConfigurationDestination")
|
|
4772
|
+
def attr_metadata_configuration_destination(self) -> _IResolvable_da3f097b:
|
|
4773
|
+
'''The destination information for the S3 Metadata configuration.
|
|
4774
|
+
|
|
4775
|
+
:cloudformationAttribute: MetadataConfiguration.Destination
|
|
4776
|
+
'''
|
|
4777
|
+
return typing.cast(_IResolvable_da3f097b, jsii.get(self, "attrMetadataConfigurationDestination"))
|
|
4778
|
+
|
|
4779
|
+
@builtins.property
|
|
4780
|
+
@jsii.member(jsii_name="attrMetadataConfigurationInventoryTableConfigurationTableArn")
|
|
4781
|
+
def attr_metadata_configuration_inventory_table_configuration_table_arn(
|
|
4782
|
+
self,
|
|
4783
|
+
) -> builtins.str:
|
|
4784
|
+
'''The Amazon Resource Name (ARN) for the inventory table.
|
|
4785
|
+
|
|
4786
|
+
:cloudformationAttribute: MetadataConfiguration.InventoryTableConfiguration.TableArn
|
|
4787
|
+
'''
|
|
4788
|
+
return typing.cast(builtins.str, jsii.get(self, "attrMetadataConfigurationInventoryTableConfigurationTableArn"))
|
|
4789
|
+
|
|
4790
|
+
@builtins.property
|
|
4791
|
+
@jsii.member(jsii_name="attrMetadataConfigurationInventoryTableConfigurationTableName")
|
|
4792
|
+
def attr_metadata_configuration_inventory_table_configuration_table_name(
|
|
4793
|
+
self,
|
|
4794
|
+
) -> builtins.str:
|
|
4795
|
+
'''The name of the inventory table.
|
|
4796
|
+
|
|
4797
|
+
:cloudformationAttribute: MetadataConfiguration.InventoryTableConfiguration.TableName
|
|
4798
|
+
'''
|
|
4799
|
+
return typing.cast(builtins.str, jsii.get(self, "attrMetadataConfigurationInventoryTableConfigurationTableName"))
|
|
4800
|
+
|
|
4801
|
+
@builtins.property
|
|
4802
|
+
@jsii.member(jsii_name="attrMetadataConfigurationJournalTableConfigurationTableArn")
|
|
4803
|
+
def attr_metadata_configuration_journal_table_configuration_table_arn(
|
|
4804
|
+
self,
|
|
4805
|
+
) -> builtins.str:
|
|
4806
|
+
'''The Amazon Resource Name (ARN) for the journal table.
|
|
4807
|
+
|
|
4808
|
+
:cloudformationAttribute: MetadataConfiguration.JournalTableConfiguration.TableArn
|
|
4809
|
+
'''
|
|
4810
|
+
return typing.cast(builtins.str, jsii.get(self, "attrMetadataConfigurationJournalTableConfigurationTableArn"))
|
|
4811
|
+
|
|
4812
|
+
@builtins.property
|
|
4813
|
+
@jsii.member(jsii_name="attrMetadataConfigurationJournalTableConfigurationTableName")
|
|
4814
|
+
def attr_metadata_configuration_journal_table_configuration_table_name(
|
|
4815
|
+
self,
|
|
4816
|
+
) -> builtins.str:
|
|
4817
|
+
'''The name of the journal table.
|
|
4818
|
+
|
|
4819
|
+
:cloudformationAttribute: MetadataConfiguration.JournalTableConfiguration.TableName
|
|
4820
|
+
'''
|
|
4821
|
+
return typing.cast(builtins.str, jsii.get(self, "attrMetadataConfigurationJournalTableConfigurationTableName"))
|
|
4822
|
+
|
|
4491
4823
|
@builtins.property
|
|
4492
4824
|
@jsii.member(jsii_name="attrMetadataTableConfigurationS3TablesDestinationTableArn")
|
|
4493
4825
|
def attr_metadata_table_configuration_s3_tables_destination_table_arn(
|
|
@@ -4538,6 +4870,12 @@ class CfnBucket(
|
|
|
4538
4870
|
'''
|
|
4539
4871
|
return typing.cast(builtins.str, jsii.get(self, "attrWebsiteUrl"))
|
|
4540
4872
|
|
|
4873
|
+
@builtins.property
|
|
4874
|
+
@jsii.member(jsii_name="bucketRef")
|
|
4875
|
+
def bucket_ref(self) -> _BucketReference_502fb39f:
|
|
4876
|
+
'''A reference to a Bucket resource.'''
|
|
4877
|
+
return typing.cast(_BucketReference_502fb39f, jsii.get(self, "bucketRef"))
|
|
4878
|
+
|
|
4541
4879
|
@builtins.property
|
|
4542
4880
|
@jsii.member(jsii_name="cfnProperties")
|
|
4543
4881
|
def _cfn_properties(self) -> typing.Mapping[builtins.str, typing.Any]:
|
|
@@ -4672,7 +5010,7 @@ class CfnBucket(
|
|
|
4672
5010
|
def inventory_configurations(
|
|
4673
5011
|
self,
|
|
4674
5012
|
) -> typing.Optional[typing.Union[_IResolvable_da3f097b, typing.List[typing.Union[_IResolvable_da3f097b, "CfnBucket.InventoryConfigurationProperty"]]]]:
|
|
4675
|
-
'''Specifies the
|
|
5013
|
+
'''Specifies the S3 Inventory configuration for an Amazon S3 bucket.'''
|
|
4676
5014
|
return typing.cast(typing.Optional[typing.Union[_IResolvable_da3f097b, typing.List[typing.Union[_IResolvable_da3f097b, "CfnBucket.InventoryConfigurationProperty"]]]], jsii.get(self, "inventoryConfigurations"))
|
|
4677
5015
|
|
|
4678
5016
|
@inventory_configurations.setter
|
|
@@ -4721,6 +5059,24 @@ class CfnBucket(
|
|
|
4721
5059
|
check_type(argname="argument value", value=value, expected_type=type_hints["value"])
|
|
4722
5060
|
jsii.set(self, "loggingConfiguration", value) # pyright: ignore[reportArgumentType]
|
|
4723
5061
|
|
|
5062
|
+
@builtins.property
|
|
5063
|
+
@jsii.member(jsii_name="metadataConfiguration")
|
|
5064
|
+
def metadata_configuration(
|
|
5065
|
+
self,
|
|
5066
|
+
) -> typing.Optional[typing.Union[_IResolvable_da3f097b, "CfnBucket.MetadataConfigurationProperty"]]:
|
|
5067
|
+
'''The S3 Metadata configuration for a general purpose bucket.'''
|
|
5068
|
+
return typing.cast(typing.Optional[typing.Union[_IResolvable_da3f097b, "CfnBucket.MetadataConfigurationProperty"]], jsii.get(self, "metadataConfiguration"))
|
|
5069
|
+
|
|
5070
|
+
@metadata_configuration.setter
|
|
5071
|
+
def metadata_configuration(
|
|
5072
|
+
self,
|
|
5073
|
+
value: typing.Optional[typing.Union[_IResolvable_da3f097b, "CfnBucket.MetadataConfigurationProperty"]],
|
|
5074
|
+
) -> None:
|
|
5075
|
+
if __debug__:
|
|
5076
|
+
type_hints = typing.get_type_hints(_typecheckingstub__13b4697762f20bd91e57f93bf2922758e68d9cbc3f74472e7da7f9ce2f7dcdca)
|
|
5077
|
+
check_type(argname="argument value", value=value, expected_type=type_hints["value"])
|
|
5078
|
+
jsii.set(self, "metadataConfiguration", value) # pyright: ignore[reportArgumentType]
|
|
5079
|
+
|
|
4724
5080
|
@builtins.property
|
|
4725
5081
|
@jsii.member(jsii_name="metadataTableConfiguration")
|
|
4726
5082
|
def metadata_table_configuration(
|
|
@@ -5693,7 +6049,7 @@ class CfnBucket(
|
|
|
5693
6049
|
|
|
5694
6050
|
If you are using an earlier version of the replication configuration, Amazon S3 handles replication of delete markers differently. For more information, see `Backward Compatibility <https://docs.aws.amazon.com/AmazonS3/latest/dev/replication-add-config.html#replication-backward-compat-considerations>`_ .
|
|
5695
6051
|
|
|
5696
|
-
:param status: Indicates whether to replicate delete markers.
|
|
6052
|
+
:param status: Indicates whether to replicate delete markers.
|
|
5697
6053
|
|
|
5698
6054
|
:see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3-bucket-deletemarkerreplication.html
|
|
5699
6055
|
:exampleMetadata: fixture=_generated
|
|
@@ -5719,8 +6075,6 @@ class CfnBucket(
|
|
|
5719
6075
|
def status(self) -> typing.Optional[builtins.str]:
|
|
5720
6076
|
'''Indicates whether to replicate delete markers.
|
|
5721
6077
|
|
|
5722
|
-
Disabled by default.
|
|
5723
|
-
|
|
5724
6078
|
:see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3-bucket-deletemarkerreplication.html#cfn-s3-bucket-deletemarkerreplication-status
|
|
5725
6079
|
'''
|
|
5726
6080
|
result = self._values.get("status")
|
|
@@ -6208,7 +6562,7 @@ class CfnBucket(
|
|
|
6208
6562
|
optional_fields: typing.Optional[typing.Sequence[builtins.str]] = None,
|
|
6209
6563
|
prefix: typing.Optional[builtins.str] = None,
|
|
6210
6564
|
) -> None:
|
|
6211
|
-
'''Specifies the
|
|
6565
|
+
'''Specifies the S3 Inventory configuration for an Amazon S3 bucket.
|
|
6212
6566
|
|
|
6213
6567
|
For more information, see `GET Bucket inventory <https://docs.aws.amazon.com/AmazonS3/latest/API/RESTBucketGETInventoryConfig.html>`_ in the *Amazon S3 API Reference* .
|
|
6214
6568
|
|
|
@@ -6355,25 +6709,32 @@ class CfnBucket(
|
|
|
6355
6709
|
)
|
|
6356
6710
|
|
|
6357
6711
|
@jsii.data_type(
|
|
6358
|
-
jsii_type="aws-cdk-lib.aws_s3.CfnBucket.
|
|
6712
|
+
jsii_type="aws-cdk-lib.aws_s3.CfnBucket.InventoryTableConfigurationProperty",
|
|
6359
6713
|
jsii_struct_bases=[],
|
|
6360
|
-
name_mapping={
|
|
6714
|
+
name_mapping={
|
|
6715
|
+
"configuration_state": "configurationState",
|
|
6716
|
+
"encryption_configuration": "encryptionConfiguration",
|
|
6717
|
+
"table_arn": "tableArn",
|
|
6718
|
+
"table_name": "tableName",
|
|
6719
|
+
},
|
|
6361
6720
|
)
|
|
6362
|
-
class
|
|
6721
|
+
class InventoryTableConfigurationProperty:
|
|
6363
6722
|
def __init__(
|
|
6364
6723
|
self,
|
|
6365
6724
|
*,
|
|
6366
|
-
|
|
6367
|
-
|
|
6368
|
-
|
|
6725
|
+
configuration_state: builtins.str,
|
|
6726
|
+
encryption_configuration: typing.Optional[typing.Union[_IResolvable_da3f097b, typing.Union["CfnBucket.MetadataTableEncryptionConfigurationProperty", typing.Dict[builtins.str, typing.Any]]]] = None,
|
|
6727
|
+
table_arn: typing.Optional[builtins.str] = None,
|
|
6728
|
+
table_name: typing.Optional[builtins.str] = None,
|
|
6369
6729
|
) -> None:
|
|
6370
|
-
'''
|
|
6730
|
+
'''The inventory table configuration for an S3 Metadata configuration.
|
|
6371
6731
|
|
|
6372
|
-
:param
|
|
6373
|
-
:param
|
|
6374
|
-
:param
|
|
6732
|
+
:param configuration_state: The configuration state of the inventory table, indicating whether the inventory table is enabled or disabled.
|
|
6733
|
+
:param encryption_configuration: The encryption configuration for the inventory table.
|
|
6734
|
+
:param table_arn: The Amazon Resource Name (ARN) for the inventory table.
|
|
6735
|
+
:param table_name: The name of the inventory table.
|
|
6375
6736
|
|
|
6376
|
-
:see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3-bucket-
|
|
6737
|
+
:see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3-bucket-inventorytableconfiguration.html
|
|
6377
6738
|
:exampleMetadata: fixture=_generated
|
|
6378
6739
|
|
|
6379
6740
|
Example::
|
|
@@ -6382,32 +6743,262 @@ class CfnBucket(
|
|
|
6382
6743
|
# The values are placeholders you should change.
|
|
6383
6744
|
from aws_cdk import aws_s3 as s3
|
|
6384
6745
|
|
|
6385
|
-
|
|
6386
|
-
|
|
6387
|
-
function="function",
|
|
6746
|
+
inventory_table_configuration_property = s3.CfnBucket.InventoryTableConfigurationProperty(
|
|
6747
|
+
configuration_state="configurationState",
|
|
6388
6748
|
|
|
6389
6749
|
# the properties below are optional
|
|
6390
|
-
|
|
6391
|
-
|
|
6392
|
-
|
|
6393
|
-
|
|
6394
|
-
|
|
6395
|
-
|
|
6396
|
-
|
|
6397
|
-
|
|
6750
|
+
encryption_configuration=s3.CfnBucket.MetadataTableEncryptionConfigurationProperty(
|
|
6751
|
+
sse_algorithm="sseAlgorithm",
|
|
6752
|
+
|
|
6753
|
+
# the properties below are optional
|
|
6754
|
+
kms_key_arn="kmsKeyArn"
|
|
6755
|
+
),
|
|
6756
|
+
table_arn="tableArn",
|
|
6757
|
+
table_name="tableName"
|
|
6398
6758
|
)
|
|
6399
6759
|
'''
|
|
6400
6760
|
if __debug__:
|
|
6401
|
-
type_hints = typing.get_type_hints(
|
|
6402
|
-
check_type(argname="argument
|
|
6403
|
-
check_type(argname="argument
|
|
6404
|
-
check_type(argname="argument
|
|
6761
|
+
type_hints = typing.get_type_hints(_typecheckingstub__e3f0960f8776684cd6b2c423b1320b1ffcb2a6165dba0f275451667884000458)
|
|
6762
|
+
check_type(argname="argument configuration_state", value=configuration_state, expected_type=type_hints["configuration_state"])
|
|
6763
|
+
check_type(argname="argument encryption_configuration", value=encryption_configuration, expected_type=type_hints["encryption_configuration"])
|
|
6764
|
+
check_type(argname="argument table_arn", value=table_arn, expected_type=type_hints["table_arn"])
|
|
6765
|
+
check_type(argname="argument table_name", value=table_name, expected_type=type_hints["table_name"])
|
|
6405
6766
|
self._values: typing.Dict[builtins.str, typing.Any] = {
|
|
6406
|
-
"
|
|
6407
|
-
"function": function,
|
|
6767
|
+
"configuration_state": configuration_state,
|
|
6408
6768
|
}
|
|
6409
|
-
if
|
|
6410
|
-
self._values["
|
|
6769
|
+
if encryption_configuration is not None:
|
|
6770
|
+
self._values["encryption_configuration"] = encryption_configuration
|
|
6771
|
+
if table_arn is not None:
|
|
6772
|
+
self._values["table_arn"] = table_arn
|
|
6773
|
+
if table_name is not None:
|
|
6774
|
+
self._values["table_name"] = table_name
|
|
6775
|
+
|
|
6776
|
+
@builtins.property
|
|
6777
|
+
def configuration_state(self) -> builtins.str:
|
|
6778
|
+
'''The configuration state of the inventory table, indicating whether the inventory table is enabled or disabled.
|
|
6779
|
+
|
|
6780
|
+
:see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3-bucket-inventorytableconfiguration.html#cfn-s3-bucket-inventorytableconfiguration-configurationstate
|
|
6781
|
+
'''
|
|
6782
|
+
result = self._values.get("configuration_state")
|
|
6783
|
+
assert result is not None, "Required property 'configuration_state' is missing"
|
|
6784
|
+
return typing.cast(builtins.str, result)
|
|
6785
|
+
|
|
6786
|
+
@builtins.property
|
|
6787
|
+
def encryption_configuration(
|
|
6788
|
+
self,
|
|
6789
|
+
) -> typing.Optional[typing.Union[_IResolvable_da3f097b, "CfnBucket.MetadataTableEncryptionConfigurationProperty"]]:
|
|
6790
|
+
'''The encryption configuration for the inventory table.
|
|
6791
|
+
|
|
6792
|
+
:see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3-bucket-inventorytableconfiguration.html#cfn-s3-bucket-inventorytableconfiguration-encryptionconfiguration
|
|
6793
|
+
'''
|
|
6794
|
+
result = self._values.get("encryption_configuration")
|
|
6795
|
+
return typing.cast(typing.Optional[typing.Union[_IResolvable_da3f097b, "CfnBucket.MetadataTableEncryptionConfigurationProperty"]], result)
|
|
6796
|
+
|
|
6797
|
+
@builtins.property
|
|
6798
|
+
def table_arn(self) -> typing.Optional[builtins.str]:
|
|
6799
|
+
'''The Amazon Resource Name (ARN) for the inventory table.
|
|
6800
|
+
|
|
6801
|
+
:see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3-bucket-inventorytableconfiguration.html#cfn-s3-bucket-inventorytableconfiguration-tablearn
|
|
6802
|
+
'''
|
|
6803
|
+
result = self._values.get("table_arn")
|
|
6804
|
+
return typing.cast(typing.Optional[builtins.str], result)
|
|
6805
|
+
|
|
6806
|
+
@builtins.property
|
|
6807
|
+
def table_name(self) -> typing.Optional[builtins.str]:
|
|
6808
|
+
'''The name of the inventory table.
|
|
6809
|
+
|
|
6810
|
+
:see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3-bucket-inventorytableconfiguration.html#cfn-s3-bucket-inventorytableconfiguration-tablename
|
|
6811
|
+
'''
|
|
6812
|
+
result = self._values.get("table_name")
|
|
6813
|
+
return typing.cast(typing.Optional[builtins.str], result)
|
|
6814
|
+
|
|
6815
|
+
def __eq__(self, rhs: typing.Any) -> builtins.bool:
|
|
6816
|
+
return isinstance(rhs, self.__class__) and rhs._values == self._values
|
|
6817
|
+
|
|
6818
|
+
def __ne__(self, rhs: typing.Any) -> builtins.bool:
|
|
6819
|
+
return not (rhs == self)
|
|
6820
|
+
|
|
6821
|
+
def __repr__(self) -> str:
|
|
6822
|
+
return "InventoryTableConfigurationProperty(%s)" % ", ".join(
|
|
6823
|
+
k + "=" + repr(v) for k, v in self._values.items()
|
|
6824
|
+
)
|
|
6825
|
+
|
|
6826
|
+
@jsii.data_type(
|
|
6827
|
+
jsii_type="aws-cdk-lib.aws_s3.CfnBucket.JournalTableConfigurationProperty",
|
|
6828
|
+
jsii_struct_bases=[],
|
|
6829
|
+
name_mapping={
|
|
6830
|
+
"record_expiration": "recordExpiration",
|
|
6831
|
+
"encryption_configuration": "encryptionConfiguration",
|
|
6832
|
+
"table_arn": "tableArn",
|
|
6833
|
+
"table_name": "tableName",
|
|
6834
|
+
},
|
|
6835
|
+
)
|
|
6836
|
+
class JournalTableConfigurationProperty:
|
|
6837
|
+
def __init__(
|
|
6838
|
+
self,
|
|
6839
|
+
*,
|
|
6840
|
+
record_expiration: typing.Union[_IResolvable_da3f097b, typing.Union["CfnBucket.RecordExpirationProperty", typing.Dict[builtins.str, typing.Any]]],
|
|
6841
|
+
encryption_configuration: typing.Optional[typing.Union[_IResolvable_da3f097b, typing.Union["CfnBucket.MetadataTableEncryptionConfigurationProperty", typing.Dict[builtins.str, typing.Any]]]] = None,
|
|
6842
|
+
table_arn: typing.Optional[builtins.str] = None,
|
|
6843
|
+
table_name: typing.Optional[builtins.str] = None,
|
|
6844
|
+
) -> None:
|
|
6845
|
+
'''The journal table configuration for an S3 Metadata configuration.
|
|
6846
|
+
|
|
6847
|
+
:param record_expiration: The journal table record expiration settings for the journal table.
|
|
6848
|
+
:param encryption_configuration: The encryption configuration for the journal table.
|
|
6849
|
+
:param table_arn: The Amazon Resource Name (ARN) for the journal table.
|
|
6850
|
+
:param table_name: The name of the journal table.
|
|
6851
|
+
|
|
6852
|
+
:see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3-bucket-journaltableconfiguration.html
|
|
6853
|
+
:exampleMetadata: fixture=_generated
|
|
6854
|
+
|
|
6855
|
+
Example::
|
|
6856
|
+
|
|
6857
|
+
# The code below shows an example of how to instantiate this type.
|
|
6858
|
+
# The values are placeholders you should change.
|
|
6859
|
+
from aws_cdk import aws_s3 as s3
|
|
6860
|
+
|
|
6861
|
+
journal_table_configuration_property = s3.CfnBucket.JournalTableConfigurationProperty(
|
|
6862
|
+
record_expiration=s3.CfnBucket.RecordExpirationProperty(
|
|
6863
|
+
expiration="expiration",
|
|
6864
|
+
|
|
6865
|
+
# the properties below are optional
|
|
6866
|
+
days=123
|
|
6867
|
+
),
|
|
6868
|
+
|
|
6869
|
+
# the properties below are optional
|
|
6870
|
+
encryption_configuration=s3.CfnBucket.MetadataTableEncryptionConfigurationProperty(
|
|
6871
|
+
sse_algorithm="sseAlgorithm",
|
|
6872
|
+
|
|
6873
|
+
# the properties below are optional
|
|
6874
|
+
kms_key_arn="kmsKeyArn"
|
|
6875
|
+
),
|
|
6876
|
+
table_arn="tableArn",
|
|
6877
|
+
table_name="tableName"
|
|
6878
|
+
)
|
|
6879
|
+
'''
|
|
6880
|
+
if __debug__:
|
|
6881
|
+
type_hints = typing.get_type_hints(_typecheckingstub__4831e8bf78dc983eaf9b010780417c4e6b808ef19beac1729f89ba7bab53d4d9)
|
|
6882
|
+
check_type(argname="argument record_expiration", value=record_expiration, expected_type=type_hints["record_expiration"])
|
|
6883
|
+
check_type(argname="argument encryption_configuration", value=encryption_configuration, expected_type=type_hints["encryption_configuration"])
|
|
6884
|
+
check_type(argname="argument table_arn", value=table_arn, expected_type=type_hints["table_arn"])
|
|
6885
|
+
check_type(argname="argument table_name", value=table_name, expected_type=type_hints["table_name"])
|
|
6886
|
+
self._values: typing.Dict[builtins.str, typing.Any] = {
|
|
6887
|
+
"record_expiration": record_expiration,
|
|
6888
|
+
}
|
|
6889
|
+
if encryption_configuration is not None:
|
|
6890
|
+
self._values["encryption_configuration"] = encryption_configuration
|
|
6891
|
+
if table_arn is not None:
|
|
6892
|
+
self._values["table_arn"] = table_arn
|
|
6893
|
+
if table_name is not None:
|
|
6894
|
+
self._values["table_name"] = table_name
|
|
6895
|
+
|
|
6896
|
+
@builtins.property
|
|
6897
|
+
def record_expiration(
|
|
6898
|
+
self,
|
|
6899
|
+
) -> typing.Union[_IResolvable_da3f097b, "CfnBucket.RecordExpirationProperty"]:
|
|
6900
|
+
'''The journal table record expiration settings for the journal table.
|
|
6901
|
+
|
|
6902
|
+
:see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3-bucket-journaltableconfiguration.html#cfn-s3-bucket-journaltableconfiguration-recordexpiration
|
|
6903
|
+
'''
|
|
6904
|
+
result = self._values.get("record_expiration")
|
|
6905
|
+
assert result is not None, "Required property 'record_expiration' is missing"
|
|
6906
|
+
return typing.cast(typing.Union[_IResolvable_da3f097b, "CfnBucket.RecordExpirationProperty"], result)
|
|
6907
|
+
|
|
6908
|
+
@builtins.property
|
|
6909
|
+
def encryption_configuration(
|
|
6910
|
+
self,
|
|
6911
|
+
) -> typing.Optional[typing.Union[_IResolvable_da3f097b, "CfnBucket.MetadataTableEncryptionConfigurationProperty"]]:
|
|
6912
|
+
'''The encryption configuration for the journal table.
|
|
6913
|
+
|
|
6914
|
+
:see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3-bucket-journaltableconfiguration.html#cfn-s3-bucket-journaltableconfiguration-encryptionconfiguration
|
|
6915
|
+
'''
|
|
6916
|
+
result = self._values.get("encryption_configuration")
|
|
6917
|
+
return typing.cast(typing.Optional[typing.Union[_IResolvable_da3f097b, "CfnBucket.MetadataTableEncryptionConfigurationProperty"]], result)
|
|
6918
|
+
|
|
6919
|
+
@builtins.property
|
|
6920
|
+
def table_arn(self) -> typing.Optional[builtins.str]:
|
|
6921
|
+
'''The Amazon Resource Name (ARN) for the journal table.
|
|
6922
|
+
|
|
6923
|
+
:see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3-bucket-journaltableconfiguration.html#cfn-s3-bucket-journaltableconfiguration-tablearn
|
|
6924
|
+
'''
|
|
6925
|
+
result = self._values.get("table_arn")
|
|
6926
|
+
return typing.cast(typing.Optional[builtins.str], result)
|
|
6927
|
+
|
|
6928
|
+
@builtins.property
|
|
6929
|
+
def table_name(self) -> typing.Optional[builtins.str]:
|
|
6930
|
+
'''The name of the journal table.
|
|
6931
|
+
|
|
6932
|
+
:see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3-bucket-journaltableconfiguration.html#cfn-s3-bucket-journaltableconfiguration-tablename
|
|
6933
|
+
'''
|
|
6934
|
+
result = self._values.get("table_name")
|
|
6935
|
+
return typing.cast(typing.Optional[builtins.str], result)
|
|
6936
|
+
|
|
6937
|
+
def __eq__(self, rhs: typing.Any) -> builtins.bool:
|
|
6938
|
+
return isinstance(rhs, self.__class__) and rhs._values == self._values
|
|
6939
|
+
|
|
6940
|
+
def __ne__(self, rhs: typing.Any) -> builtins.bool:
|
|
6941
|
+
return not (rhs == self)
|
|
6942
|
+
|
|
6943
|
+
def __repr__(self) -> str:
|
|
6944
|
+
return "JournalTableConfigurationProperty(%s)" % ", ".join(
|
|
6945
|
+
k + "=" + repr(v) for k, v in self._values.items()
|
|
6946
|
+
)
|
|
6947
|
+
|
|
6948
|
+
@jsii.data_type(
|
|
6949
|
+
jsii_type="aws-cdk-lib.aws_s3.CfnBucket.LambdaConfigurationProperty",
|
|
6950
|
+
jsii_struct_bases=[],
|
|
6951
|
+
name_mapping={"event": "event", "function": "function", "filter": "filter"},
|
|
6952
|
+
)
|
|
6953
|
+
class LambdaConfigurationProperty:
|
|
6954
|
+
def __init__(
|
|
6955
|
+
self,
|
|
6956
|
+
*,
|
|
6957
|
+
event: builtins.str,
|
|
6958
|
+
function: builtins.str,
|
|
6959
|
+
filter: typing.Optional[typing.Union[_IResolvable_da3f097b, typing.Union["CfnBucket.NotificationFilterProperty", typing.Dict[builtins.str, typing.Any]]]] = None,
|
|
6960
|
+
) -> None:
|
|
6961
|
+
'''Describes the AWS Lambda functions to invoke and the events for which to invoke them.
|
|
6962
|
+
|
|
6963
|
+
:param event: The Amazon S3 bucket event for which to invoke the AWS Lambda function. For more information, see `Supported Event Types <https://docs.aws.amazon.com/AmazonS3/latest/dev/NotificationHowTo.html>`_ in the *Amazon S3 User Guide* .
|
|
6964
|
+
:param function: The Amazon Resource Name (ARN) of the AWS Lambda function that Amazon S3 invokes when the specified event type occurs.
|
|
6965
|
+
:param filter: The filtering rules that determine which objects invoke the AWS Lambda function. For example, you can create a filter so that only image files with a ``.jpg`` extension invoke the function when they are added to the Amazon S3 bucket.
|
|
6966
|
+
|
|
6967
|
+
:see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3-bucket-lambdaconfiguration.html
|
|
6968
|
+
:exampleMetadata: fixture=_generated
|
|
6969
|
+
|
|
6970
|
+
Example::
|
|
6971
|
+
|
|
6972
|
+
# The code below shows an example of how to instantiate this type.
|
|
6973
|
+
# The values are placeholders you should change.
|
|
6974
|
+
from aws_cdk import aws_s3 as s3
|
|
6975
|
+
|
|
6976
|
+
lambda_configuration_property = s3.CfnBucket.LambdaConfigurationProperty(
|
|
6977
|
+
event="event",
|
|
6978
|
+
function="function",
|
|
6979
|
+
|
|
6980
|
+
# the properties below are optional
|
|
6981
|
+
filter=s3.CfnBucket.NotificationFilterProperty(
|
|
6982
|
+
s3_key=s3.CfnBucket.S3KeyFilterProperty(
|
|
6983
|
+
rules=[s3.CfnBucket.FilterRuleProperty(
|
|
6984
|
+
name="name",
|
|
6985
|
+
value="value"
|
|
6986
|
+
)]
|
|
6987
|
+
)
|
|
6988
|
+
)
|
|
6989
|
+
)
|
|
6990
|
+
'''
|
|
6991
|
+
if __debug__:
|
|
6992
|
+
type_hints = typing.get_type_hints(_typecheckingstub__599ef02853407bceb720424e9874eda7b5e2324f3be8a787939e9d5f9a7d5765)
|
|
6993
|
+
check_type(argname="argument event", value=event, expected_type=type_hints["event"])
|
|
6994
|
+
check_type(argname="argument function", value=function, expected_type=type_hints["function"])
|
|
6995
|
+
check_type(argname="argument filter", value=filter, expected_type=type_hints["filter"])
|
|
6996
|
+
self._values: typing.Dict[builtins.str, typing.Any] = {
|
|
6997
|
+
"event": event,
|
|
6998
|
+
"function": function,
|
|
6999
|
+
}
|
|
7000
|
+
if filter is not None:
|
|
7001
|
+
self._values["filter"] = filter
|
|
6411
7002
|
|
|
6412
7003
|
@builtins.property
|
|
6413
7004
|
def event(self) -> builtins.str:
|
|
@@ -6708,6 +7299,235 @@ class CfnBucket(
|
|
|
6708
7299
|
k + "=" + repr(v) for k, v in self._values.items()
|
|
6709
7300
|
)
|
|
6710
7301
|
|
|
7302
|
+
@jsii.data_type(
|
|
7303
|
+
jsii_type="aws-cdk-lib.aws_s3.CfnBucket.MetadataConfigurationProperty",
|
|
7304
|
+
jsii_struct_bases=[],
|
|
7305
|
+
name_mapping={
|
|
7306
|
+
"journal_table_configuration": "journalTableConfiguration",
|
|
7307
|
+
"destination": "destination",
|
|
7308
|
+
"inventory_table_configuration": "inventoryTableConfiguration",
|
|
7309
|
+
},
|
|
7310
|
+
)
|
|
7311
|
+
class MetadataConfigurationProperty:
|
|
7312
|
+
def __init__(
|
|
7313
|
+
self,
|
|
7314
|
+
*,
|
|
7315
|
+
journal_table_configuration: typing.Union[_IResolvable_da3f097b, typing.Union["CfnBucket.JournalTableConfigurationProperty", typing.Dict[builtins.str, typing.Any]]],
|
|
7316
|
+
destination: typing.Optional[typing.Union[_IResolvable_da3f097b, typing.Union["CfnBucket.MetadataDestinationProperty", typing.Dict[builtins.str, typing.Any]]]] = None,
|
|
7317
|
+
inventory_table_configuration: typing.Optional[typing.Union[_IResolvable_da3f097b, typing.Union["CfnBucket.InventoryTableConfigurationProperty", typing.Dict[builtins.str, typing.Any]]]] = None,
|
|
7318
|
+
) -> None:
|
|
7319
|
+
'''Creates a V2 Amazon S3 Metadata configuration of a general purpose bucket.
|
|
7320
|
+
|
|
7321
|
+
For more information, see `Accelerating data discovery with S3 Metadata <https://docs.aws.amazon.com/AmazonS3/latest/userguide/metadata-tables-overview.html>`_ in the *Amazon S3 User Guide* .
|
|
7322
|
+
|
|
7323
|
+
:param journal_table_configuration: The journal table configuration for a metadata configuration.
|
|
7324
|
+
:param destination: The destination information for the S3 Metadata configuration.
|
|
7325
|
+
:param inventory_table_configuration: The inventory table configuration for a metadata configuration.
|
|
7326
|
+
|
|
7327
|
+
:see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3-bucket-metadataconfiguration.html
|
|
7328
|
+
:exampleMetadata: fixture=_generated
|
|
7329
|
+
|
|
7330
|
+
Example::
|
|
7331
|
+
|
|
7332
|
+
# The code below shows an example of how to instantiate this type.
|
|
7333
|
+
# The values are placeholders you should change.
|
|
7334
|
+
from aws_cdk import aws_s3 as s3
|
|
7335
|
+
|
|
7336
|
+
metadata_configuration_property = s3.CfnBucket.MetadataConfigurationProperty(
|
|
7337
|
+
journal_table_configuration=s3.CfnBucket.JournalTableConfigurationProperty(
|
|
7338
|
+
record_expiration=s3.CfnBucket.RecordExpirationProperty(
|
|
7339
|
+
expiration="expiration",
|
|
7340
|
+
|
|
7341
|
+
# the properties below are optional
|
|
7342
|
+
days=123
|
|
7343
|
+
),
|
|
7344
|
+
|
|
7345
|
+
# the properties below are optional
|
|
7346
|
+
encryption_configuration=s3.CfnBucket.MetadataTableEncryptionConfigurationProperty(
|
|
7347
|
+
sse_algorithm="sseAlgorithm",
|
|
7348
|
+
|
|
7349
|
+
# the properties below are optional
|
|
7350
|
+
kms_key_arn="kmsKeyArn"
|
|
7351
|
+
),
|
|
7352
|
+
table_arn="tableArn",
|
|
7353
|
+
table_name="tableName"
|
|
7354
|
+
),
|
|
7355
|
+
|
|
7356
|
+
# the properties below are optional
|
|
7357
|
+
destination=s3.CfnBucket.MetadataDestinationProperty(
|
|
7358
|
+
table_bucket_type="tableBucketType",
|
|
7359
|
+
|
|
7360
|
+
# the properties below are optional
|
|
7361
|
+
table_bucket_arn="tableBucketArn",
|
|
7362
|
+
table_namespace="tableNamespace"
|
|
7363
|
+
),
|
|
7364
|
+
inventory_table_configuration=s3.CfnBucket.InventoryTableConfigurationProperty(
|
|
7365
|
+
configuration_state="configurationState",
|
|
7366
|
+
|
|
7367
|
+
# the properties below are optional
|
|
7368
|
+
encryption_configuration=s3.CfnBucket.MetadataTableEncryptionConfigurationProperty(
|
|
7369
|
+
sse_algorithm="sseAlgorithm",
|
|
7370
|
+
|
|
7371
|
+
# the properties below are optional
|
|
7372
|
+
kms_key_arn="kmsKeyArn"
|
|
7373
|
+
),
|
|
7374
|
+
table_arn="tableArn",
|
|
7375
|
+
table_name="tableName"
|
|
7376
|
+
)
|
|
7377
|
+
)
|
|
7378
|
+
'''
|
|
7379
|
+
if __debug__:
|
|
7380
|
+
type_hints = typing.get_type_hints(_typecheckingstub__5ba4e02b348fb368852d2eaf89da64d6c5432c39d5f771482cd73c5e29aea1d2)
|
|
7381
|
+
check_type(argname="argument journal_table_configuration", value=journal_table_configuration, expected_type=type_hints["journal_table_configuration"])
|
|
7382
|
+
check_type(argname="argument destination", value=destination, expected_type=type_hints["destination"])
|
|
7383
|
+
check_type(argname="argument inventory_table_configuration", value=inventory_table_configuration, expected_type=type_hints["inventory_table_configuration"])
|
|
7384
|
+
self._values: typing.Dict[builtins.str, typing.Any] = {
|
|
7385
|
+
"journal_table_configuration": journal_table_configuration,
|
|
7386
|
+
}
|
|
7387
|
+
if destination is not None:
|
|
7388
|
+
self._values["destination"] = destination
|
|
7389
|
+
if inventory_table_configuration is not None:
|
|
7390
|
+
self._values["inventory_table_configuration"] = inventory_table_configuration
|
|
7391
|
+
|
|
7392
|
+
@builtins.property
|
|
7393
|
+
def journal_table_configuration(
|
|
7394
|
+
self,
|
|
7395
|
+
) -> typing.Union[_IResolvable_da3f097b, "CfnBucket.JournalTableConfigurationProperty"]:
|
|
7396
|
+
'''The journal table configuration for a metadata configuration.
|
|
7397
|
+
|
|
7398
|
+
:see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3-bucket-metadataconfiguration.html#cfn-s3-bucket-metadataconfiguration-journaltableconfiguration
|
|
7399
|
+
'''
|
|
7400
|
+
result = self._values.get("journal_table_configuration")
|
|
7401
|
+
assert result is not None, "Required property 'journal_table_configuration' is missing"
|
|
7402
|
+
return typing.cast(typing.Union[_IResolvable_da3f097b, "CfnBucket.JournalTableConfigurationProperty"], result)
|
|
7403
|
+
|
|
7404
|
+
@builtins.property
|
|
7405
|
+
def destination(
|
|
7406
|
+
self,
|
|
7407
|
+
) -> typing.Optional[typing.Union[_IResolvable_da3f097b, "CfnBucket.MetadataDestinationProperty"]]:
|
|
7408
|
+
'''The destination information for the S3 Metadata configuration.
|
|
7409
|
+
|
|
7410
|
+
:see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3-bucket-metadataconfiguration.html#cfn-s3-bucket-metadataconfiguration-destination
|
|
7411
|
+
'''
|
|
7412
|
+
result = self._values.get("destination")
|
|
7413
|
+
return typing.cast(typing.Optional[typing.Union[_IResolvable_da3f097b, "CfnBucket.MetadataDestinationProperty"]], result)
|
|
7414
|
+
|
|
7415
|
+
@builtins.property
|
|
7416
|
+
def inventory_table_configuration(
|
|
7417
|
+
self,
|
|
7418
|
+
) -> typing.Optional[typing.Union[_IResolvable_da3f097b, "CfnBucket.InventoryTableConfigurationProperty"]]:
|
|
7419
|
+
'''The inventory table configuration for a metadata configuration.
|
|
7420
|
+
|
|
7421
|
+
:see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3-bucket-metadataconfiguration.html#cfn-s3-bucket-metadataconfiguration-inventorytableconfiguration
|
|
7422
|
+
'''
|
|
7423
|
+
result = self._values.get("inventory_table_configuration")
|
|
7424
|
+
return typing.cast(typing.Optional[typing.Union[_IResolvable_da3f097b, "CfnBucket.InventoryTableConfigurationProperty"]], result)
|
|
7425
|
+
|
|
7426
|
+
def __eq__(self, rhs: typing.Any) -> builtins.bool:
|
|
7427
|
+
return isinstance(rhs, self.__class__) and rhs._values == self._values
|
|
7428
|
+
|
|
7429
|
+
def __ne__(self, rhs: typing.Any) -> builtins.bool:
|
|
7430
|
+
return not (rhs == self)
|
|
7431
|
+
|
|
7432
|
+
def __repr__(self) -> str:
|
|
7433
|
+
return "MetadataConfigurationProperty(%s)" % ", ".join(
|
|
7434
|
+
k + "=" + repr(v) for k, v in self._values.items()
|
|
7435
|
+
)
|
|
7436
|
+
|
|
7437
|
+
@jsii.data_type(
|
|
7438
|
+
jsii_type="aws-cdk-lib.aws_s3.CfnBucket.MetadataDestinationProperty",
|
|
7439
|
+
jsii_struct_bases=[],
|
|
7440
|
+
name_mapping={
|
|
7441
|
+
"table_bucket_type": "tableBucketType",
|
|
7442
|
+
"table_bucket_arn": "tableBucketArn",
|
|
7443
|
+
"table_namespace": "tableNamespace",
|
|
7444
|
+
},
|
|
7445
|
+
)
|
|
7446
|
+
class MetadataDestinationProperty:
|
|
7447
|
+
def __init__(
|
|
7448
|
+
self,
|
|
7449
|
+
*,
|
|
7450
|
+
table_bucket_type: builtins.str,
|
|
7451
|
+
table_bucket_arn: typing.Optional[builtins.str] = None,
|
|
7452
|
+
table_namespace: typing.Optional[builtins.str] = None,
|
|
7453
|
+
) -> None:
|
|
7454
|
+
'''The destination information for the S3 Metadata configuration.
|
|
7455
|
+
|
|
7456
|
+
:param table_bucket_type: The type of the table bucket where the metadata configuration is stored. The ``aws`` value indicates an AWS managed table bucket, and the ``customer`` value indicates a customer-managed table bucket. V2 metadata configurations are stored in AWS managed table buckets, and V1 metadata configurations are stored in customer-managed table buckets.
|
|
7457
|
+
:param table_bucket_arn: The Amazon Resource Name (ARN) of the table bucket where the metadata configuration is stored.
|
|
7458
|
+
:param table_namespace: The namespace in the table bucket where the metadata tables for a metadata configuration are stored.
|
|
7459
|
+
|
|
7460
|
+
:see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3-bucket-metadatadestination.html
|
|
7461
|
+
:exampleMetadata: fixture=_generated
|
|
7462
|
+
|
|
7463
|
+
Example::
|
|
7464
|
+
|
|
7465
|
+
# The code below shows an example of how to instantiate this type.
|
|
7466
|
+
# The values are placeholders you should change.
|
|
7467
|
+
from aws_cdk import aws_s3 as s3
|
|
7468
|
+
|
|
7469
|
+
metadata_destination_property = s3.CfnBucket.MetadataDestinationProperty(
|
|
7470
|
+
table_bucket_type="tableBucketType",
|
|
7471
|
+
|
|
7472
|
+
# the properties below are optional
|
|
7473
|
+
table_bucket_arn="tableBucketArn",
|
|
7474
|
+
table_namespace="tableNamespace"
|
|
7475
|
+
)
|
|
7476
|
+
'''
|
|
7477
|
+
if __debug__:
|
|
7478
|
+
type_hints = typing.get_type_hints(_typecheckingstub__22a357b76c39088e89c9805c6e3fd369bf83472fbcec37ad505b7803d1960e7e)
|
|
7479
|
+
check_type(argname="argument table_bucket_type", value=table_bucket_type, expected_type=type_hints["table_bucket_type"])
|
|
7480
|
+
check_type(argname="argument table_bucket_arn", value=table_bucket_arn, expected_type=type_hints["table_bucket_arn"])
|
|
7481
|
+
check_type(argname="argument table_namespace", value=table_namespace, expected_type=type_hints["table_namespace"])
|
|
7482
|
+
self._values: typing.Dict[builtins.str, typing.Any] = {
|
|
7483
|
+
"table_bucket_type": table_bucket_type,
|
|
7484
|
+
}
|
|
7485
|
+
if table_bucket_arn is not None:
|
|
7486
|
+
self._values["table_bucket_arn"] = table_bucket_arn
|
|
7487
|
+
if table_namespace is not None:
|
|
7488
|
+
self._values["table_namespace"] = table_namespace
|
|
7489
|
+
|
|
7490
|
+
@builtins.property
|
|
7491
|
+
def table_bucket_type(self) -> builtins.str:
|
|
7492
|
+
'''The type of the table bucket where the metadata configuration is stored.
|
|
7493
|
+
|
|
7494
|
+
The ``aws`` value indicates an AWS managed table bucket, and the ``customer`` value indicates a customer-managed table bucket. V2 metadata configurations are stored in AWS managed table buckets, and V1 metadata configurations are stored in customer-managed table buckets.
|
|
7495
|
+
|
|
7496
|
+
:see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3-bucket-metadatadestination.html#cfn-s3-bucket-metadatadestination-tablebuckettype
|
|
7497
|
+
'''
|
|
7498
|
+
result = self._values.get("table_bucket_type")
|
|
7499
|
+
assert result is not None, "Required property 'table_bucket_type' is missing"
|
|
7500
|
+
return typing.cast(builtins.str, result)
|
|
7501
|
+
|
|
7502
|
+
@builtins.property
|
|
7503
|
+
def table_bucket_arn(self) -> typing.Optional[builtins.str]:
|
|
7504
|
+
'''The Amazon Resource Name (ARN) of the table bucket where the metadata configuration is stored.
|
|
7505
|
+
|
|
7506
|
+
:see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3-bucket-metadatadestination.html#cfn-s3-bucket-metadatadestination-tablebucketarn
|
|
7507
|
+
'''
|
|
7508
|
+
result = self._values.get("table_bucket_arn")
|
|
7509
|
+
return typing.cast(typing.Optional[builtins.str], result)
|
|
7510
|
+
|
|
7511
|
+
@builtins.property
|
|
7512
|
+
def table_namespace(self) -> typing.Optional[builtins.str]:
|
|
7513
|
+
'''The namespace in the table bucket where the metadata tables for a metadata configuration are stored.
|
|
7514
|
+
|
|
7515
|
+
:see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3-bucket-metadatadestination.html#cfn-s3-bucket-metadatadestination-tablenamespace
|
|
7516
|
+
'''
|
|
7517
|
+
result = self._values.get("table_namespace")
|
|
7518
|
+
return typing.cast(typing.Optional[builtins.str], result)
|
|
7519
|
+
|
|
7520
|
+
def __eq__(self, rhs: typing.Any) -> builtins.bool:
|
|
7521
|
+
return isinstance(rhs, self.__class__) and rhs._values == self._values
|
|
7522
|
+
|
|
7523
|
+
def __ne__(self, rhs: typing.Any) -> builtins.bool:
|
|
7524
|
+
return not (rhs == self)
|
|
7525
|
+
|
|
7526
|
+
def __repr__(self) -> str:
|
|
7527
|
+
return "MetadataDestinationProperty(%s)" % ", ".join(
|
|
7528
|
+
k + "=" + repr(v) for k, v in self._values.items()
|
|
7529
|
+
)
|
|
7530
|
+
|
|
6711
7531
|
@jsii.data_type(
|
|
6712
7532
|
jsii_type="aws-cdk-lib.aws_s3.CfnBucket.MetadataTableConfigurationProperty",
|
|
6713
7533
|
jsii_struct_bases=[],
|
|
@@ -6719,9 +7539,11 @@ class CfnBucket(
|
|
|
6719
7539
|
*,
|
|
6720
7540
|
s3_tables_destination: typing.Union[_IResolvable_da3f097b, typing.Union["CfnBucket.S3TablesDestinationProperty", typing.Dict[builtins.str, typing.Any]]],
|
|
6721
7541
|
) -> None:
|
|
6722
|
-
'''
|
|
7542
|
+
'''.. epigraph::
|
|
7543
|
+
|
|
7544
|
+
We recommend that you create your S3 Metadata configurations by using the V2 `MetadataConfiguration <https://docs.aws.amazon.com/AWSCloudFormation/latest/TemplateReference/aws-properties-s3-bucket-metadataconfiguration.html>`_ resource type. We no longer recommend using the V1 ``MetadataTableConfiguration`` resource type. > > If you created your S3 Metadata configuration before July 15, 2025, we recommend that you delete and re-create your configuration by using the `MetadataConfiguration <https://docs.aws.amazon.com/AWSCloudFormation/latest/TemplateReference/aws-properties-s3-bucket-metadataconfiguration.html>`_ resource type so that you can expire journal table records and create a live inventory table.
|
|
6723
7545
|
|
|
6724
|
-
For more information, see `Accelerating data discovery with S3 Metadata <https://docs.aws.amazon.com/AmazonS3/latest/userguide/metadata-tables-overview.html>`_
|
|
7546
|
+
Creates a V1 S3 Metadata configuration for a general purpose bucket. For more information, see `Accelerating data discovery with S3 Metadata <https://docs.aws.amazon.com/AmazonS3/latest/userguide/metadata-tables-overview.html>`_ in the *Amazon S3 User Guide* .
|
|
6725
7547
|
|
|
6726
7548
|
:param s3_tables_destination: The destination information for the metadata table configuration. The destination table bucket must be in the same Region and AWS account as the general purpose bucket. The specified metadata table name must be unique within the ``aws_s3_metadata`` namespace in the destination table bucket.
|
|
6727
7549
|
|
|
@@ -6777,6 +7599,83 @@ class CfnBucket(
|
|
|
6777
7599
|
k + "=" + repr(v) for k, v in self._values.items()
|
|
6778
7600
|
)
|
|
6779
7601
|
|
|
7602
|
+
@jsii.data_type(
|
|
7603
|
+
jsii_type="aws-cdk-lib.aws_s3.CfnBucket.MetadataTableEncryptionConfigurationProperty",
|
|
7604
|
+
jsii_struct_bases=[],
|
|
7605
|
+
name_mapping={"sse_algorithm": "sseAlgorithm", "kms_key_arn": "kmsKeyArn"},
|
|
7606
|
+
)
|
|
7607
|
+
class MetadataTableEncryptionConfigurationProperty:
|
|
7608
|
+
def __init__(
|
|
7609
|
+
self,
|
|
7610
|
+
*,
|
|
7611
|
+
sse_algorithm: builtins.str,
|
|
7612
|
+
kms_key_arn: typing.Optional[builtins.str] = None,
|
|
7613
|
+
) -> None:
|
|
7614
|
+
'''The encryption settings for an S3 Metadata journal table or inventory table configuration.
|
|
7615
|
+
|
|
7616
|
+
:param sse_algorithm: The encryption type specified for a metadata table. To specify server-side encryption with AWS Key Management Service ( AWS KMS ) keys (SSE-KMS), use the ``aws:kms`` value. To specify server-side encryption with Amazon S3 managed keys (SSE-S3), use the ``AES256`` value.
|
|
7617
|
+
:param kms_key_arn: If server-side encryption with AWS Key Management Service ( AWS KMS ) keys (SSE-KMS) is specified, you must also specify the KMS key Amazon Resource Name (ARN). You must specify a customer-managed KMS key that's located in the same Region as the general purpose bucket that corresponds to the metadata table configuration.
|
|
7618
|
+
|
|
7619
|
+
:see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3-bucket-metadatatableencryptionconfiguration.html
|
|
7620
|
+
:exampleMetadata: fixture=_generated
|
|
7621
|
+
|
|
7622
|
+
Example::
|
|
7623
|
+
|
|
7624
|
+
# The code below shows an example of how to instantiate this type.
|
|
7625
|
+
# The values are placeholders you should change.
|
|
7626
|
+
from aws_cdk import aws_s3 as s3
|
|
7627
|
+
|
|
7628
|
+
metadata_table_encryption_configuration_property = s3.CfnBucket.MetadataTableEncryptionConfigurationProperty(
|
|
7629
|
+
sse_algorithm="sseAlgorithm",
|
|
7630
|
+
|
|
7631
|
+
# the properties below are optional
|
|
7632
|
+
kms_key_arn="kmsKeyArn"
|
|
7633
|
+
)
|
|
7634
|
+
'''
|
|
7635
|
+
if __debug__:
|
|
7636
|
+
type_hints = typing.get_type_hints(_typecheckingstub__638725ba5e16c7545010085fee3839279059f8036e3a36e81a6da12f68c3c96d)
|
|
7637
|
+
check_type(argname="argument sse_algorithm", value=sse_algorithm, expected_type=type_hints["sse_algorithm"])
|
|
7638
|
+
check_type(argname="argument kms_key_arn", value=kms_key_arn, expected_type=type_hints["kms_key_arn"])
|
|
7639
|
+
self._values: typing.Dict[builtins.str, typing.Any] = {
|
|
7640
|
+
"sse_algorithm": sse_algorithm,
|
|
7641
|
+
}
|
|
7642
|
+
if kms_key_arn is not None:
|
|
7643
|
+
self._values["kms_key_arn"] = kms_key_arn
|
|
7644
|
+
|
|
7645
|
+
@builtins.property
|
|
7646
|
+
def sse_algorithm(self) -> builtins.str:
|
|
7647
|
+
'''The encryption type specified for a metadata table.
|
|
7648
|
+
|
|
7649
|
+
To specify server-side encryption with AWS Key Management Service ( AWS KMS ) keys (SSE-KMS), use the ``aws:kms`` value. To specify server-side encryption with Amazon S3 managed keys (SSE-S3), use the ``AES256`` value.
|
|
7650
|
+
|
|
7651
|
+
:see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3-bucket-metadatatableencryptionconfiguration.html#cfn-s3-bucket-metadatatableencryptionconfiguration-ssealgorithm
|
|
7652
|
+
'''
|
|
7653
|
+
result = self._values.get("sse_algorithm")
|
|
7654
|
+
assert result is not None, "Required property 'sse_algorithm' is missing"
|
|
7655
|
+
return typing.cast(builtins.str, result)
|
|
7656
|
+
|
|
7657
|
+
@builtins.property
|
|
7658
|
+
def kms_key_arn(self) -> typing.Optional[builtins.str]:
|
|
7659
|
+
'''If server-side encryption with AWS Key Management Service ( AWS KMS ) keys (SSE-KMS) is specified, you must also specify the KMS key Amazon Resource Name (ARN).
|
|
7660
|
+
|
|
7661
|
+
You must specify a customer-managed KMS key that's located in the same Region as the general purpose bucket that corresponds to the metadata table configuration.
|
|
7662
|
+
|
|
7663
|
+
:see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3-bucket-metadatatableencryptionconfiguration.html#cfn-s3-bucket-metadatatableencryptionconfiguration-kmskeyarn
|
|
7664
|
+
'''
|
|
7665
|
+
result = self._values.get("kms_key_arn")
|
|
7666
|
+
return typing.cast(typing.Optional[builtins.str], result)
|
|
7667
|
+
|
|
7668
|
+
def __eq__(self, rhs: typing.Any) -> builtins.bool:
|
|
7669
|
+
return isinstance(rhs, self.__class__) and rhs._values == self._values
|
|
7670
|
+
|
|
7671
|
+
def __ne__(self, rhs: typing.Any) -> builtins.bool:
|
|
7672
|
+
return not (rhs == self)
|
|
7673
|
+
|
|
7674
|
+
def __repr__(self) -> str:
|
|
7675
|
+
return "MetadataTableEncryptionConfigurationProperty(%s)" % ", ".join(
|
|
7676
|
+
k + "=" + repr(v) for k, v in self._values.items()
|
|
7677
|
+
)
|
|
7678
|
+
|
|
6780
7679
|
@jsii.data_type(
|
|
6781
7680
|
jsii_type="aws-cdk-lib.aws_s3.CfnBucket.MetricsConfigurationProperty",
|
|
6782
7681
|
jsii_struct_bases=[],
|
|
@@ -7935,12 +8834,87 @@ class CfnBucket(
|
|
|
7935
8834
|
) -> typing.Optional[typing.Union[_IResolvable_da3f097b, "CfnBucket.NotificationFilterProperty"]]:
|
|
7936
8835
|
'''The filtering rules that determine which objects trigger notifications.
|
|
7937
8836
|
|
|
7938
|
-
For example, you can create a filter so that Amazon S3 sends notifications only when image files with a ``.jpg`` extension are added to the bucket. For more information, see `Configuring event notifications using object key name filtering <https://docs.aws.amazon.com/AmazonS3/latest/user-guide/notification-how-to-filtering.html>`_ in the *Amazon S3 User Guide* .
|
|
8837
|
+
For example, you can create a filter so that Amazon S3 sends notifications only when image files with a ``.jpg`` extension are added to the bucket. For more information, see `Configuring event notifications using object key name filtering <https://docs.aws.amazon.com/AmazonS3/latest/user-guide/notification-how-to-filtering.html>`_ in the *Amazon S3 User Guide* .
|
|
8838
|
+
|
|
8839
|
+
:see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3-bucket-queueconfiguration.html#cfn-s3-bucket-queueconfiguration-filter
|
|
8840
|
+
'''
|
|
8841
|
+
result = self._values.get("filter")
|
|
8842
|
+
return typing.cast(typing.Optional[typing.Union[_IResolvable_da3f097b, "CfnBucket.NotificationFilterProperty"]], result)
|
|
8843
|
+
|
|
8844
|
+
def __eq__(self, rhs: typing.Any) -> builtins.bool:
|
|
8845
|
+
return isinstance(rhs, self.__class__) and rhs._values == self._values
|
|
8846
|
+
|
|
8847
|
+
def __ne__(self, rhs: typing.Any) -> builtins.bool:
|
|
8848
|
+
return not (rhs == self)
|
|
8849
|
+
|
|
8850
|
+
def __repr__(self) -> str:
|
|
8851
|
+
return "QueueConfigurationProperty(%s)" % ", ".join(
|
|
8852
|
+
k + "=" + repr(v) for k, v in self._values.items()
|
|
8853
|
+
)
|
|
8854
|
+
|
|
8855
|
+
@jsii.data_type(
|
|
8856
|
+
jsii_type="aws-cdk-lib.aws_s3.CfnBucket.RecordExpirationProperty",
|
|
8857
|
+
jsii_struct_bases=[],
|
|
8858
|
+
name_mapping={"expiration": "expiration", "days": "days"},
|
|
8859
|
+
)
|
|
8860
|
+
class RecordExpirationProperty:
|
|
8861
|
+
def __init__(
|
|
8862
|
+
self,
|
|
8863
|
+
*,
|
|
8864
|
+
expiration: builtins.str,
|
|
8865
|
+
days: typing.Optional[jsii.Number] = None,
|
|
8866
|
+
) -> None:
|
|
8867
|
+
'''The journal table record expiration settings for a journal table in an S3 Metadata configuration.
|
|
8868
|
+
|
|
8869
|
+
:param expiration: Specifies whether journal table record expiration is enabled or disabled.
|
|
8870
|
+
:param days: If you enable journal table record expiration, you can set the number of days to retain your journal table records. Journal table records must be retained for a minimum of 7 days. To set this value, specify any whole number from ``7`` to ``2147483647`` . For example, to retain your journal table records for one year, set this value to ``365`` .
|
|
8871
|
+
|
|
8872
|
+
:see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3-bucket-recordexpiration.html
|
|
8873
|
+
:exampleMetadata: fixture=_generated
|
|
8874
|
+
|
|
8875
|
+
Example::
|
|
8876
|
+
|
|
8877
|
+
# The code below shows an example of how to instantiate this type.
|
|
8878
|
+
# The values are placeholders you should change.
|
|
8879
|
+
from aws_cdk import aws_s3 as s3
|
|
8880
|
+
|
|
8881
|
+
record_expiration_property = s3.CfnBucket.RecordExpirationProperty(
|
|
8882
|
+
expiration="expiration",
|
|
8883
|
+
|
|
8884
|
+
# the properties below are optional
|
|
8885
|
+
days=123
|
|
8886
|
+
)
|
|
8887
|
+
'''
|
|
8888
|
+
if __debug__:
|
|
8889
|
+
type_hints = typing.get_type_hints(_typecheckingstub__ced4e05e0d07a000e813825522beab4af447ff67164c61600ff7eb3b0afab28c)
|
|
8890
|
+
check_type(argname="argument expiration", value=expiration, expected_type=type_hints["expiration"])
|
|
8891
|
+
check_type(argname="argument days", value=days, expected_type=type_hints["days"])
|
|
8892
|
+
self._values: typing.Dict[builtins.str, typing.Any] = {
|
|
8893
|
+
"expiration": expiration,
|
|
8894
|
+
}
|
|
8895
|
+
if days is not None:
|
|
8896
|
+
self._values["days"] = days
|
|
8897
|
+
|
|
8898
|
+
@builtins.property
|
|
8899
|
+
def expiration(self) -> builtins.str:
|
|
8900
|
+
'''Specifies whether journal table record expiration is enabled or disabled.
|
|
8901
|
+
|
|
8902
|
+
:see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3-bucket-recordexpiration.html#cfn-s3-bucket-recordexpiration-expiration
|
|
8903
|
+
'''
|
|
8904
|
+
result = self._values.get("expiration")
|
|
8905
|
+
assert result is not None, "Required property 'expiration' is missing"
|
|
8906
|
+
return typing.cast(builtins.str, result)
|
|
8907
|
+
|
|
8908
|
+
@builtins.property
|
|
8909
|
+
def days(self) -> typing.Optional[jsii.Number]:
|
|
8910
|
+
'''If you enable journal table record expiration, you can set the number of days to retain your journal table records.
|
|
7939
8911
|
|
|
7940
|
-
|
|
8912
|
+
Journal table records must be retained for a minimum of 7 days. To set this value, specify any whole number from ``7`` to ``2147483647`` . For example, to retain your journal table records for one year, set this value to ``365`` .
|
|
8913
|
+
|
|
8914
|
+
:see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3-bucket-recordexpiration.html#cfn-s3-bucket-recordexpiration-days
|
|
7941
8915
|
'''
|
|
7942
|
-
result = self._values.get("
|
|
7943
|
-
return typing.cast(typing.Optional[
|
|
8916
|
+
result = self._values.get("days")
|
|
8917
|
+
return typing.cast(typing.Optional[jsii.Number], result)
|
|
7944
8918
|
|
|
7945
8919
|
def __eq__(self, rhs: typing.Any) -> builtins.bool:
|
|
7946
8920
|
return isinstance(rhs, self.__class__) and rhs._values == self._values
|
|
@@ -7949,7 +8923,7 @@ class CfnBucket(
|
|
|
7949
8923
|
return not (rhs == self)
|
|
7950
8924
|
|
|
7951
8925
|
def __repr__(self) -> str:
|
|
7952
|
-
return "
|
|
8926
|
+
return "RecordExpirationProperty(%s)" % ", ".join(
|
|
7953
8927
|
k + "=" + repr(v) for k, v in self._values.items()
|
|
7954
8928
|
)
|
|
7955
8929
|
|
|
@@ -8390,7 +9364,7 @@ class CfnBucket(
|
|
|
8390
9364
|
:param encryption_configuration: Specifies encryption-related information.
|
|
8391
9365
|
:param metrics: A container specifying replication metrics-related settings enabling replication metrics and events.
|
|
8392
9366
|
:param replication_time: A container 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. Must be specified together with a ``Metrics`` block.
|
|
8393
|
-
:param storage_class: The storage class to use when replicating objects, such as S3 Standard or reduced redundancy. By default, Amazon S3 uses the storage class of the source object to create the object replica. For valid values, see the ``StorageClass`` element of the `PUT Bucket replication <https://docs.aws.amazon.com/AmazonS3/latest/API/RESTBucketPUTreplication.html>`_ action in the *Amazon S3 API Reference* .
|
|
9367
|
+
:param storage_class: The storage class to use when replicating objects, such as S3 Standard or reduced redundancy. By default, Amazon S3 uses the storage class of the source object to create the object replica. For valid values, see the ``StorageClass`` element of the `PUT Bucket replication <https://docs.aws.amazon.com/AmazonS3/latest/API/RESTBucketPUTreplication.html>`_ action in the *Amazon S3 API Reference* . ``FSX_OPENZFS`` is not an accepted value when replicating objects.
|
|
8394
9368
|
|
|
8395
9369
|
:see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3-bucket-replicationdestination.html
|
|
8396
9370
|
:exampleMetadata: fixture=_generated
|
|
@@ -8533,6 +9507,8 @@ class CfnBucket(
|
|
|
8533
9507
|
|
|
8534
9508
|
For valid values, see the ``StorageClass`` element of the `PUT Bucket replication <https://docs.aws.amazon.com/AmazonS3/latest/API/RESTBucketPUTreplication.html>`_ action in the *Amazon S3 API Reference* .
|
|
8535
9509
|
|
|
9510
|
+
``FSX_OPENZFS`` is not an accepted value when replicating objects.
|
|
9511
|
+
|
|
8536
9512
|
:see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3-bucket-replicationdestination.html#cfn-s3-bucket-replicationdestination-storageclass
|
|
8537
9513
|
'''
|
|
8538
9514
|
result = self._values.get("storage_class")
|
|
@@ -9146,7 +10122,7 @@ class CfnBucket(
|
|
|
9146
10122
|
For example, 1. If request is for pages in the ``/docs`` folder, redirect to the ``/documents`` folder. 2. If request results in HTTP error 4xx, redirect request to another host where you might process the error.
|
|
9147
10123
|
|
|
9148
10124
|
:param http_error_code_returned_equals: The HTTP error code when the redirect is applied. In the event of an error, if the error code equals this value, then the specified redirect is applied. Required when parent element ``Condition`` is specified and sibling ``KeyPrefixEquals`` is not specified. If both are specified, then both must be true for the redirect to be applied.
|
|
9149
|
-
:param key_prefix_equals: The object key name prefix when the redirect is applied. For example, to redirect requests for ``ExamplePage.html`` , the key prefix will be ``ExamplePage.html`` . To redirect request for all pages with the prefix ``docs/`` , the key prefix will be
|
|
10125
|
+
:param key_prefix_equals: The object key name prefix when the redirect is applied. For example, to redirect requests for ``ExamplePage.html`` , the key prefix will be ``ExamplePage.html`` . To redirect request for all pages with the prefix ``docs/`` , the key prefix will be ``docs/`` , which identifies all objects in the docs/ folder. Required when the parent element ``Condition`` is specified and sibling ``HttpErrorCodeReturnedEquals`` is not specified. If both conditions are specified, both must be true for the redirect to be applied.
|
|
9150
10126
|
|
|
9151
10127
|
:see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3-bucket-routingrulecondition.html
|
|
9152
10128
|
:exampleMetadata: fixture=_generated
|
|
@@ -9189,7 +10165,7 @@ class CfnBucket(
|
|
|
9189
10165
|
def key_prefix_equals(self) -> typing.Optional[builtins.str]:
|
|
9190
10166
|
'''The object key name prefix when the redirect is applied.
|
|
9191
10167
|
|
|
9192
|
-
For example, to redirect requests for ``ExamplePage.html`` , the key prefix will be ``ExamplePage.html`` . To redirect request for all pages with the prefix ``docs/`` , the key prefix will be
|
|
10168
|
+
For example, to redirect requests for ``ExamplePage.html`` , the key prefix will be ``ExamplePage.html`` . To redirect request for all pages with the prefix ``docs/`` , the key prefix will be ``docs/`` , which identifies all objects in the docs/ folder.
|
|
9193
10169
|
|
|
9194
10170
|
Required when the parent element ``Condition`` is specified and sibling ``HttpErrorCodeReturnedEquals`` is not specified. If both conditions are specified, both must be true for the redirect to be applied.
|
|
9195
10171
|
|
|
@@ -9769,7 +10745,7 @@ class CfnBucket(
|
|
|
9769
10745
|
table_arn: typing.Optional[builtins.str] = None,
|
|
9770
10746
|
table_namespace: typing.Optional[builtins.str] = None,
|
|
9771
10747
|
) -> None:
|
|
9772
|
-
'''The destination information for
|
|
10748
|
+
'''The destination information for a V1 S3 Metadata configuration.
|
|
9773
10749
|
|
|
9774
10750
|
The destination table bucket must be in the same Region and AWS account as the general purpose bucket. The specified metadata table name must be unique within the ``aws_s3_metadata`` namespace in the destination table bucket.
|
|
9775
10751
|
|
|
@@ -10699,9 +11675,12 @@ class CfnBucket(
|
|
|
10699
11675
|
'''Describes the versioning state of an Amazon S3 bucket.
|
|
10700
11676
|
|
|
10701
11677
|
For more information, see `PUT Bucket versioning <https://docs.aws.amazon.com/AmazonS3/latest/API/RESTBucketPUTVersioningStatus.html>`_ in the *Amazon S3 API Reference* .
|
|
10702
|
-
.. epigraph::
|
|
10703
11678
|
|
|
10704
|
-
|
|
11679
|
+
Keep the following timing in mind when enabling, suspending, or transitioning between versioning states:
|
|
11680
|
+
|
|
11681
|
+
- *Enabling versioning* - Changes may take up to 15 minutes to propagate across all AWS regions for full consistency.
|
|
11682
|
+
- *Suspending versioning* - Takes effect immediately with no propagation delay.
|
|
11683
|
+
- *Transitioning between states* - Any change from Suspended to Enabled has a 15-minute delay.
|
|
10705
11684
|
|
|
10706
11685
|
:param status: The versioning state of the bucket. Default: - "Suspended"
|
|
10707
11686
|
|
|
@@ -10881,7 +11860,7 @@ class CfnBucket(
|
|
|
10881
11860
|
)
|
|
10882
11861
|
|
|
10883
11862
|
|
|
10884
|
-
@jsii.implements(_IInspectable_c2943556)
|
|
11863
|
+
@jsii.implements(_IInspectable_c2943556, _IBucketPolicyRef_8ee2499d)
|
|
10885
11864
|
class CfnBucketPolicy(
|
|
10886
11865
|
_CfnResource_9df397a6,
|
|
10887
11866
|
metaclass=jsii.JSIIMeta,
|
|
@@ -10896,7 +11875,7 @@ class CfnBucketPolicy(
|
|
|
10896
11875
|
|
|
10897
11876
|
As a security precaution, the root user of the AWS account that owns a bucket can always use this operation, even if the policy explicitly denies the root user the ability to perform this action.
|
|
10898
11877
|
|
|
10899
|
-
When using the ``AWS::S3::BucketPolicy`` resource, you can create, update, and delete bucket policies for S3 buckets located in
|
|
11878
|
+
When using the ``AWS::S3::BucketPolicy`` resource, you can create, update, and delete bucket policies for S3 buckets located in Regions that are different from the stack's Region. However, the CloudFormation stacks should be deployed in the US East (N. Virginia) or ``us-east-1`` Region. This cross-region bucket policy modification functionality is supported for backward compatibility with existing workflows.
|
|
10900
11879
|
.. epigraph::
|
|
10901
11880
|
|
|
10902
11881
|
If the `DeletionPolicy attribute <https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html>`_ is not specified or set to ``Delete`` , the bucket policy will be removed when the stack is deleted. If set to ``Retain`` , the bucket policy will be preserved even after the stack is deleted.
|
|
@@ -10956,7 +11935,8 @@ class CfnBucketPolicy(
|
|
|
10956
11935
|
bucket: builtins.str,
|
|
10957
11936
|
policy_document: typing.Any,
|
|
10958
11937
|
) -> None:
|
|
10959
|
-
'''
|
|
11938
|
+
'''Create a new ``AWS::S3::BucketPolicy``.
|
|
11939
|
+
|
|
10960
11940
|
:param scope: Scope in which this resource is defined.
|
|
10961
11941
|
:param id: Construct identifier for this resource (unique in its scope).
|
|
10962
11942
|
:param bucket: The name of the Amazon S3 bucket to which the policy applies.
|
|
@@ -11000,6 +11980,12 @@ class CfnBucketPolicy(
|
|
|
11000
11980
|
'''The CloudFormation resource type name for this resource class.'''
|
|
11001
11981
|
return typing.cast(builtins.str, jsii.sget(cls, "CFN_RESOURCE_TYPE_NAME"))
|
|
11002
11982
|
|
|
11983
|
+
@builtins.property
|
|
11984
|
+
@jsii.member(jsii_name="bucketPolicyRef")
|
|
11985
|
+
def bucket_policy_ref(self) -> _BucketPolicyReference_3414f1e3:
|
|
11986
|
+
'''A reference to a BucketPolicy resource.'''
|
|
11987
|
+
return typing.cast(_BucketPolicyReference_3414f1e3, jsii.get(self, "bucketPolicyRef"))
|
|
11988
|
+
|
|
11003
11989
|
@builtins.property
|
|
11004
11990
|
@jsii.member(jsii_name="cfnProperties")
|
|
11005
11991
|
def _cfn_properties(self) -> typing.Mapping[builtins.str, typing.Any]:
|
|
@@ -11137,6 +12123,7 @@ class CfnBucketPolicyProps:
|
|
|
11137
12123
|
"inventory_configurations": "inventoryConfigurations",
|
|
11138
12124
|
"lifecycle_configuration": "lifecycleConfiguration",
|
|
11139
12125
|
"logging_configuration": "loggingConfiguration",
|
|
12126
|
+
"metadata_configuration": "metadataConfiguration",
|
|
11140
12127
|
"metadata_table_configuration": "metadataTableConfiguration",
|
|
11141
12128
|
"metrics_configurations": "metricsConfigurations",
|
|
11142
12129
|
"notification_configuration": "notificationConfiguration",
|
|
@@ -11164,6 +12151,7 @@ class CfnBucketProps:
|
|
|
11164
12151
|
inventory_configurations: typing.Optional[typing.Union[_IResolvable_da3f097b, typing.Sequence[typing.Union[_IResolvable_da3f097b, typing.Union[CfnBucket.InventoryConfigurationProperty, typing.Dict[builtins.str, typing.Any]]]]]] = None,
|
|
11165
12152
|
lifecycle_configuration: typing.Optional[typing.Union[_IResolvable_da3f097b, typing.Union[CfnBucket.LifecycleConfigurationProperty, typing.Dict[builtins.str, typing.Any]]]] = None,
|
|
11166
12153
|
logging_configuration: typing.Optional[typing.Union[_IResolvable_da3f097b, typing.Union[CfnBucket.LoggingConfigurationProperty, typing.Dict[builtins.str, typing.Any]]]] = None,
|
|
12154
|
+
metadata_configuration: typing.Optional[typing.Union[_IResolvable_da3f097b, typing.Union[CfnBucket.MetadataConfigurationProperty, typing.Dict[builtins.str, typing.Any]]]] = None,
|
|
11167
12155
|
metadata_table_configuration: typing.Optional[typing.Union[_IResolvable_da3f097b, typing.Union[CfnBucket.MetadataTableConfigurationProperty, typing.Dict[builtins.str, typing.Any]]]] = None,
|
|
11168
12156
|
metrics_configurations: typing.Optional[typing.Union[_IResolvable_da3f097b, typing.Sequence[typing.Union[_IResolvable_da3f097b, typing.Union[CfnBucket.MetricsConfigurationProperty, typing.Dict[builtins.str, typing.Any]]]]]] = None,
|
|
11169
12157
|
notification_configuration: typing.Optional[typing.Union[_IResolvable_da3f097b, typing.Union[CfnBucket.NotificationConfigurationProperty, typing.Dict[builtins.str, typing.Any]]]] = None,
|
|
@@ -11185,13 +12173,14 @@ class CfnBucketProps:
|
|
|
11185
12173
|
:param bucket_name: A name for the bucket. If you don't specify a name, AWS CloudFormation generates a unique ID and uses that ID for the bucket name. The bucket name must contain only lowercase letters, numbers, periods (.), and dashes (-) and must follow `Amazon S3 bucket restrictions and limitations <https://docs.aws.amazon.com/AmazonS3/latest/dev/BucketRestrictions.html>`_ . For more information, see `Rules for naming Amazon S3 buckets <https://docs.aws.amazon.com/AmazonS3/latest/userguide/bucketnamingrules.html>`_ in the *Amazon S3 User Guide* . .. epigraph:: If you specify a name, you can't perform updates that require replacement of this resource. You can perform updates that require no or some interruption. If you need to replace the resource, specify a new name.
|
|
11186
12174
|
:param cors_configuration: Describes the cross-origin access configuration for objects in an Amazon S3 bucket. For more information, see `Enabling Cross-Origin Resource Sharing <https://docs.aws.amazon.com/AmazonS3/latest/dev/cors.html>`_ in the *Amazon S3 User Guide* .
|
|
11187
12175
|
:param intelligent_tiering_configurations: Defines how Amazon S3 handles Intelligent-Tiering storage.
|
|
11188
|
-
:param inventory_configurations: Specifies the
|
|
12176
|
+
:param inventory_configurations: Specifies the S3 Inventory configuration for an Amazon S3 bucket. For more information, see `GET Bucket inventory <https://docs.aws.amazon.com/AmazonS3/latest/API/RESTBucketGETInventoryConfig.html>`_ in the *Amazon S3 API Reference* .
|
|
11189
12177
|
:param lifecycle_configuration: Specifies the lifecycle configuration for objects in an Amazon S3 bucket. For more information, see `Object Lifecycle Management <https://docs.aws.amazon.com/AmazonS3/latest/dev/object-lifecycle-mgmt.html>`_ in the *Amazon S3 User Guide* .
|
|
11190
12178
|
:param logging_configuration: Settings that define where logs are stored.
|
|
12179
|
+
:param metadata_configuration: The S3 Metadata configuration for a general purpose bucket.
|
|
11191
12180
|
:param metadata_table_configuration: The metadata table configuration of an Amazon S3 general purpose bucket.
|
|
11192
12181
|
:param metrics_configurations: Specifies a metrics configuration for the CloudWatch request metrics (specified by the metrics configuration ID) from an Amazon S3 bucket. If you're updating an existing metrics configuration, note that this is a full replacement of the existing metrics configuration. If you don't include the elements you want to keep, they are erased. For more information, see `PutBucketMetricsConfiguration <https://docs.aws.amazon.com/AmazonS3/latest/API/RESTBucketPUTMetricConfiguration.html>`_ .
|
|
11193
12182
|
:param notification_configuration: Configuration that defines how Amazon S3 handles bucket notifications.
|
|
11194
|
-
:param object_lock_configuration: .. epigraph:: This operation is not supported for directory buckets. Places an Object Lock configuration on the specified bucket. The rule specified in the Object Lock configuration will be applied by default to every new object placed in the specified bucket. For more information, see `Locking Objects <https://docs.aws.amazon.com/AmazonS3/latest/dev/object-lock.html>`_ . .. epigraph:: - The ``DefaultRetention`` settings require both a mode and a period. - The ``DefaultRetention`` period can be either ``Days`` or ``Years`` but you must select one. You cannot specify ``Days`` and ``Years`` at the same time. - You can enable Object Lock for new or existing buckets. For more information, see `Configuring Object Lock <https://docs.aws.amazon.com/AmazonS3/latest/userguide/object-lock-configure.html>`_ .
|
|
12183
|
+
:param object_lock_configuration: .. epigraph:: This operation is not supported for directory buckets. Places an Object Lock configuration on the specified bucket. The rule specified in the Object Lock configuration will be applied by default to every new object placed in the specified bucket. For more information, see `Locking Objects <https://docs.aws.amazon.com/AmazonS3/latest/dev/object-lock.html>`_ . .. epigraph:: - The ``DefaultRetention`` settings require both a mode and a period. - The ``DefaultRetention`` period can be either ``Days`` or ``Years`` but you must select one. You cannot specify ``Days`` and ``Years`` at the same time. - You can enable Object Lock for new or existing buckets. For more information, see `Configuring Object Lock <https://docs.aws.amazon.com/AmazonS3/latest/userguide/object-lock-configure.html>`_ . > You must URL encode any signed header values that contain spaces. For example, if your header value is ``my file.txt`` , containing two spaces after ``my`` , you must URL encode this value to ``my%20%20file.txt`` .
|
|
11195
12184
|
:param object_lock_enabled: Indicates whether this bucket has an Object Lock configuration enabled. Enable ``ObjectLockEnabled`` when you apply ``ObjectLockConfiguration`` to a bucket.
|
|
11196
12185
|
:param ownership_controls: Configuration that defines how Amazon S3 handles Object Ownership rules.
|
|
11197
12186
|
:param public_access_block_configuration: Configuration that defines how Amazon S3 handles public access.
|
|
@@ -11227,6 +12216,7 @@ class CfnBucketProps:
|
|
|
11227
12216
|
check_type(argname="argument inventory_configurations", value=inventory_configurations, expected_type=type_hints["inventory_configurations"])
|
|
11228
12217
|
check_type(argname="argument lifecycle_configuration", value=lifecycle_configuration, expected_type=type_hints["lifecycle_configuration"])
|
|
11229
12218
|
check_type(argname="argument logging_configuration", value=logging_configuration, expected_type=type_hints["logging_configuration"])
|
|
12219
|
+
check_type(argname="argument metadata_configuration", value=metadata_configuration, expected_type=type_hints["metadata_configuration"])
|
|
11230
12220
|
check_type(argname="argument metadata_table_configuration", value=metadata_table_configuration, expected_type=type_hints["metadata_table_configuration"])
|
|
11231
12221
|
check_type(argname="argument metrics_configurations", value=metrics_configurations, expected_type=type_hints["metrics_configurations"])
|
|
11232
12222
|
check_type(argname="argument notification_configuration", value=notification_configuration, expected_type=type_hints["notification_configuration"])
|
|
@@ -11259,6 +12249,8 @@ class CfnBucketProps:
|
|
|
11259
12249
|
self._values["lifecycle_configuration"] = lifecycle_configuration
|
|
11260
12250
|
if logging_configuration is not None:
|
|
11261
12251
|
self._values["logging_configuration"] = logging_configuration
|
|
12252
|
+
if metadata_configuration is not None:
|
|
12253
|
+
self._values["metadata_configuration"] = metadata_configuration
|
|
11262
12254
|
if metadata_table_configuration is not None:
|
|
11263
12255
|
self._values["metadata_table_configuration"] = metadata_table_configuration
|
|
11264
12256
|
if metrics_configurations is not None:
|
|
@@ -11380,7 +12372,7 @@ class CfnBucketProps:
|
|
|
11380
12372
|
def inventory_configurations(
|
|
11381
12373
|
self,
|
|
11382
12374
|
) -> typing.Optional[typing.Union[_IResolvable_da3f097b, typing.List[typing.Union[_IResolvable_da3f097b, CfnBucket.InventoryConfigurationProperty]]]]:
|
|
11383
|
-
'''Specifies the
|
|
12375
|
+
'''Specifies the S3 Inventory configuration for an Amazon S3 bucket.
|
|
11384
12376
|
|
|
11385
12377
|
For more information, see `GET Bucket inventory <https://docs.aws.amazon.com/AmazonS3/latest/API/RESTBucketGETInventoryConfig.html>`_ in the *Amazon S3 API Reference* .
|
|
11386
12378
|
|
|
@@ -11413,6 +12405,17 @@ class CfnBucketProps:
|
|
|
11413
12405
|
result = self._values.get("logging_configuration")
|
|
11414
12406
|
return typing.cast(typing.Optional[typing.Union[_IResolvable_da3f097b, CfnBucket.LoggingConfigurationProperty]], result)
|
|
11415
12407
|
|
|
12408
|
+
@builtins.property
|
|
12409
|
+
def metadata_configuration(
|
|
12410
|
+
self,
|
|
12411
|
+
) -> typing.Optional[typing.Union[_IResolvable_da3f097b, CfnBucket.MetadataConfigurationProperty]]:
|
|
12412
|
+
'''The S3 Metadata configuration for a general purpose bucket.
|
|
12413
|
+
|
|
12414
|
+
:see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-s3-bucket.html#cfn-s3-bucket-metadataconfiguration
|
|
12415
|
+
'''
|
|
12416
|
+
result = self._values.get("metadata_configuration")
|
|
12417
|
+
return typing.cast(typing.Optional[typing.Union[_IResolvable_da3f097b, CfnBucket.MetadataConfigurationProperty]], result)
|
|
12418
|
+
|
|
11416
12419
|
@builtins.property
|
|
11417
12420
|
def metadata_table_configuration(
|
|
11418
12421
|
self,
|
|
@@ -11461,7 +12464,7 @@ class CfnBucketProps:
|
|
|
11461
12464
|
|
|
11462
12465
|
- The ``DefaultRetention`` settings require both a mode and a period.
|
|
11463
12466
|
- The ``DefaultRetention`` period can be either ``Days`` or ``Years`` but you must select one. You cannot specify ``Days`` and ``Years`` at the same time.
|
|
11464
|
-
- You can enable Object Lock for new or existing buckets. For more information, see `Configuring Object Lock <https://docs.aws.amazon.com/AmazonS3/latest/userguide/object-lock-configure.html>`_ .
|
|
12467
|
+
- You can enable Object Lock for new or existing buckets. For more information, see `Configuring Object Lock <https://docs.aws.amazon.com/AmazonS3/latest/userguide/object-lock-configure.html>`_ . > You must URL encode any signed header values that contain spaces. For example, if your header value is ``my file.txt`` , containing two spaces after ``my`` , you must URL encode this value to ``my%20%20file.txt`` .
|
|
11465
12468
|
|
|
11466
12469
|
:see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-s3-bucket.html#cfn-s3-bucket-objectlockconfiguration
|
|
11467
12470
|
'''
|
|
@@ -11568,7 +12571,7 @@ class CfnBucketProps:
|
|
|
11568
12571
|
)
|
|
11569
12572
|
|
|
11570
12573
|
|
|
11571
|
-
@jsii.implements(_IInspectable_c2943556)
|
|
12574
|
+
@jsii.implements(_IInspectable_c2943556, _IMultiRegionAccessPointRef_b814832f)
|
|
11572
12575
|
class CfnMultiRegionAccessPoint(
|
|
11573
12576
|
_CfnResource_9df397a6,
|
|
11574
12577
|
metaclass=jsii.JSIIMeta,
|
|
@@ -11616,7 +12619,8 @@ class CfnMultiRegionAccessPoint(
|
|
|
11616
12619
|
name: typing.Optional[builtins.str] = None,
|
|
11617
12620
|
public_access_block_configuration: typing.Optional[typing.Union[_IResolvable_da3f097b, typing.Union["CfnMultiRegionAccessPoint.PublicAccessBlockConfigurationProperty", typing.Dict[builtins.str, typing.Any]]]] = None,
|
|
11618
12621
|
) -> None:
|
|
11619
|
-
'''
|
|
12622
|
+
'''Create a new ``AWS::S3::MultiRegionAccessPoint``.
|
|
12623
|
+
|
|
11620
12624
|
:param scope: Scope in which this resource is defined.
|
|
11621
12625
|
:param id: Construct identifier for this resource (unique in its scope).
|
|
11622
12626
|
:param regions: A collection of the Regions and buckets associated with the Multi-Region Access Point.
|
|
@@ -11690,6 +12694,14 @@ class CfnMultiRegionAccessPoint(
|
|
|
11690
12694
|
def _cfn_properties(self) -> typing.Mapping[builtins.str, typing.Any]:
|
|
11691
12695
|
return typing.cast(typing.Mapping[builtins.str, typing.Any], jsii.get(self, "cfnProperties"))
|
|
11692
12696
|
|
|
12697
|
+
@builtins.property
|
|
12698
|
+
@jsii.member(jsii_name="multiRegionAccessPointRef")
|
|
12699
|
+
def multi_region_access_point_ref(
|
|
12700
|
+
self,
|
|
12701
|
+
) -> _MultiRegionAccessPointReference_590848b5:
|
|
12702
|
+
'''A reference to a MultiRegionAccessPoint resource.'''
|
|
12703
|
+
return typing.cast(_MultiRegionAccessPointReference_590848b5, jsii.get(self, "multiRegionAccessPointRef"))
|
|
12704
|
+
|
|
11693
12705
|
@builtins.property
|
|
11694
12706
|
@jsii.member(jsii_name="regions")
|
|
11695
12707
|
def regions(
|
|
@@ -11948,7 +12960,7 @@ class CfnMultiRegionAccessPoint(
|
|
|
11948
12960
|
)
|
|
11949
12961
|
|
|
11950
12962
|
|
|
11951
|
-
@jsii.implements(_IInspectable_c2943556)
|
|
12963
|
+
@jsii.implements(_IInspectable_c2943556, _IMultiRegionAccessPointPolicyRef_2e4f5aa6)
|
|
11952
12964
|
class CfnMultiRegionAccessPointPolicy(
|
|
11953
12965
|
_CfnResource_9df397a6,
|
|
11954
12966
|
metaclass=jsii.JSIIMeta,
|
|
@@ -11984,7 +12996,8 @@ class CfnMultiRegionAccessPointPolicy(
|
|
|
11984
12996
|
mrap_name: builtins.str,
|
|
11985
12997
|
policy: typing.Any,
|
|
11986
12998
|
) -> None:
|
|
11987
|
-
'''
|
|
12999
|
+
'''Create a new ``AWS::S3::MultiRegionAccessPointPolicy``.
|
|
13000
|
+
|
|
11988
13001
|
:param scope: Scope in which this resource is defined.
|
|
11989
13002
|
:param id: Construct identifier for this resource (unique in its scope).
|
|
11990
13003
|
:param mrap_name: The name of the Multi-Region Access Point.
|
|
@@ -12053,6 +13066,14 @@ class CfnMultiRegionAccessPointPolicy(
|
|
|
12053
13066
|
def _cfn_properties(self) -> typing.Mapping[builtins.str, typing.Any]:
|
|
12054
13067
|
return typing.cast(typing.Mapping[builtins.str, typing.Any], jsii.get(self, "cfnProperties"))
|
|
12055
13068
|
|
|
13069
|
+
@builtins.property
|
|
13070
|
+
@jsii.member(jsii_name="multiRegionAccessPointPolicyRef")
|
|
13071
|
+
def multi_region_access_point_policy_ref(
|
|
13072
|
+
self,
|
|
13073
|
+
) -> _MultiRegionAccessPointPolicyReference_f5654e86:
|
|
13074
|
+
'''A reference to a MultiRegionAccessPointPolicy resource.'''
|
|
13075
|
+
return typing.cast(_MultiRegionAccessPointPolicyReference_f5654e86, jsii.get(self, "multiRegionAccessPointPolicyRef"))
|
|
13076
|
+
|
|
12056
13077
|
@builtins.property
|
|
12057
13078
|
@jsii.member(jsii_name="mrapName")
|
|
12058
13079
|
def mrap_name(self) -> builtins.str:
|
|
@@ -12312,7 +13333,7 @@ class CfnMultiRegionAccessPointProps:
|
|
|
12312
13333
|
)
|
|
12313
13334
|
|
|
12314
13335
|
|
|
12315
|
-
@jsii.implements(_IInspectable_c2943556, _ITaggable_36806126)
|
|
13336
|
+
@jsii.implements(_IInspectable_c2943556, _IStorageLensRef_a99bd868, _ITaggable_36806126)
|
|
12316
13337
|
class CfnStorageLens(
|
|
12317
13338
|
_CfnResource_9df397a6,
|
|
12318
13339
|
metaclass=jsii.JSIIMeta,
|
|
@@ -12434,7 +13455,8 @@ class CfnStorageLens(
|
|
|
12434
13455
|
storage_lens_configuration: typing.Union[_IResolvable_da3f097b, typing.Union["CfnStorageLens.StorageLensConfigurationProperty", typing.Dict[builtins.str, typing.Any]]],
|
|
12435
13456
|
tags: typing.Optional[typing.Sequence[typing.Union[_CfnTag_f6864754, typing.Dict[builtins.str, typing.Any]]]] = None,
|
|
12436
13457
|
) -> None:
|
|
12437
|
-
'''
|
|
13458
|
+
'''Create a new ``AWS::S3::StorageLens``.
|
|
13459
|
+
|
|
12438
13460
|
:param scope: Scope in which this resource is defined.
|
|
12439
13461
|
:param id: Construct identifier for this resource (unique in its scope).
|
|
12440
13462
|
:param storage_lens_configuration: This resource contains the details Amazon S3 Storage Lens configuration.
|
|
@@ -12496,6 +13518,12 @@ class CfnStorageLens(
|
|
|
12496
13518
|
def _cfn_properties(self) -> typing.Mapping[builtins.str, typing.Any]:
|
|
12497
13519
|
return typing.cast(typing.Mapping[builtins.str, typing.Any], jsii.get(self, "cfnProperties"))
|
|
12498
13520
|
|
|
13521
|
+
@builtins.property
|
|
13522
|
+
@jsii.member(jsii_name="storageLensRef")
|
|
13523
|
+
def storage_lens_ref(self) -> _StorageLensReference_cc81afb5:
|
|
13524
|
+
'''A reference to a StorageLens resource.'''
|
|
13525
|
+
return typing.cast(_StorageLensReference_cc81afb5, jsii.get(self, "storageLensRef"))
|
|
13526
|
+
|
|
12499
13527
|
@builtins.property
|
|
12500
13528
|
@jsii.member(jsii_name="tags")
|
|
12501
13529
|
def tags(self) -> _TagManager_0a598cb3:
|
|
@@ -14303,7 +15331,7 @@ class CfnStorageLens(
|
|
|
14303
15331
|
)
|
|
14304
15332
|
|
|
14305
15333
|
|
|
14306
|
-
@jsii.implements(_IInspectable_c2943556, _ITaggableV2_4e6798f8)
|
|
15334
|
+
@jsii.implements(_IInspectable_c2943556, _IStorageLensGroupRef_aa787427, _ITaggableV2_4e6798f8)
|
|
14307
15335
|
class CfnStorageLensGroup(
|
|
14308
15336
|
_CfnResource_9df397a6,
|
|
14309
15337
|
metaclass=jsii.JSIIMeta,
|
|
@@ -14391,7 +15419,8 @@ class CfnStorageLensGroup(
|
|
|
14391
15419
|
name: builtins.str,
|
|
14392
15420
|
tags: typing.Optional[typing.Sequence[typing.Union[_CfnTag_f6864754, typing.Dict[builtins.str, typing.Any]]]] = None,
|
|
14393
15421
|
) -> None:
|
|
14394
|
-
'''
|
|
15422
|
+
'''Create a new ``AWS::S3::StorageLensGroup``.
|
|
15423
|
+
|
|
14395
15424
|
:param scope: Scope in which this resource is defined.
|
|
14396
15425
|
:param id: Construct identifier for this resource (unique in its scope).
|
|
14397
15426
|
:param filter: This property contains the criteria for the Storage Lens group data that is displayed.
|
|
@@ -14456,6 +15485,12 @@ class CfnStorageLensGroup(
|
|
|
14456
15485
|
def _cfn_properties(self) -> typing.Mapping[builtins.str, typing.Any]:
|
|
14457
15486
|
return typing.cast(typing.Mapping[builtins.str, typing.Any], jsii.get(self, "cfnProperties"))
|
|
14458
15487
|
|
|
15488
|
+
@builtins.property
|
|
15489
|
+
@jsii.member(jsii_name="storageLensGroupRef")
|
|
15490
|
+
def storage_lens_group_ref(self) -> _StorageLensGroupReference_c117a5a4:
|
|
15491
|
+
'''A reference to a StorageLensGroup resource.'''
|
|
15492
|
+
return typing.cast(_StorageLensGroupReference_c117a5a4, jsii.get(self, "storageLensGroupRef"))
|
|
15493
|
+
|
|
14459
15494
|
@builtins.property
|
|
14460
15495
|
@jsii.member(jsii_name="filter")
|
|
14461
15496
|
def filter(
|
|
@@ -15717,71 +16752,281 @@ class EventType(enum.Enum):
|
|
|
15717
16752
|
OBJECT_RESTORE_DELETE = "OBJECT_RESTORE_DELETE"
|
|
15718
16753
|
'''Using restore object event types you can receive notifications for initiation and completion when restoring objects from the S3 Glacier storage class.
|
|
15719
16754
|
|
|
15720
|
-
You use s3:ObjectRestore:Delete to request notification of
|
|
15721
|
-
restoration completion.
|
|
15722
|
-
'''
|
|
15723
|
-
REDUCED_REDUNDANCY_LOST_OBJECT = "REDUCED_REDUNDANCY_LOST_OBJECT"
|
|
15724
|
-
'''You can use this event type to request Amazon S3 to send a notification message when Amazon S3 detects that an object of the RRS storage class is lost.'''
|
|
15725
|
-
REPLICATION_OPERATION_FAILED_REPLICATION = "REPLICATION_OPERATION_FAILED_REPLICATION"
|
|
15726
|
-
'''You receive this notification event when an object that was eligible for replication using Amazon S3 Replication Time Control failed to replicate.'''
|
|
15727
|
-
REPLICATION_OPERATION_MISSED_THRESHOLD = "REPLICATION_OPERATION_MISSED_THRESHOLD"
|
|
15728
|
-
'''You receive this notification event when an object that was eligible for replication using Amazon S3 Replication Time Control exceeded the 15-minute threshold for replication.'''
|
|
15729
|
-
REPLICATION_OPERATION_REPLICATED_AFTER_THRESHOLD = "REPLICATION_OPERATION_REPLICATED_AFTER_THRESHOLD"
|
|
15730
|
-
'''You receive this notification event for an object that was eligible for replication using the Amazon S3 Replication Time Control feature replicated after the 15-minute threshold.'''
|
|
15731
|
-
REPLICATION_OPERATION_NOT_TRACKED = "REPLICATION_OPERATION_NOT_TRACKED"
|
|
15732
|
-
'''You receive this notification event for an object that was eligible for replication using Amazon S3 Replication Time Control but is no longer tracked by replication metrics.'''
|
|
15733
|
-
LIFECYCLE_EXPIRATION = "LIFECYCLE_EXPIRATION"
|
|
15734
|
-
'''By using the LifecycleExpiration event types, you can receive a notification when Amazon S3 deletes an object based on your S3 Lifecycle configuration.'''
|
|
15735
|
-
LIFECYCLE_EXPIRATION_DELETE = "LIFECYCLE_EXPIRATION_DELETE"
|
|
15736
|
-
'''The s3:LifecycleExpiration:Delete event type notifies you when an object in an unversioned bucket is deleted.
|
|
16755
|
+
You use s3:ObjectRestore:Delete to request notification of
|
|
16756
|
+
restoration completion.
|
|
16757
|
+
'''
|
|
16758
|
+
REDUCED_REDUNDANCY_LOST_OBJECT = "REDUCED_REDUNDANCY_LOST_OBJECT"
|
|
16759
|
+
'''You can use this event type to request Amazon S3 to send a notification message when Amazon S3 detects that an object of the RRS storage class is lost.'''
|
|
16760
|
+
REPLICATION_OPERATION_FAILED_REPLICATION = "REPLICATION_OPERATION_FAILED_REPLICATION"
|
|
16761
|
+
'''You receive this notification event when an object that was eligible for replication using Amazon S3 Replication Time Control failed to replicate.'''
|
|
16762
|
+
REPLICATION_OPERATION_MISSED_THRESHOLD = "REPLICATION_OPERATION_MISSED_THRESHOLD"
|
|
16763
|
+
'''You receive this notification event when an object that was eligible for replication using Amazon S3 Replication Time Control exceeded the 15-minute threshold for replication.'''
|
|
16764
|
+
REPLICATION_OPERATION_REPLICATED_AFTER_THRESHOLD = "REPLICATION_OPERATION_REPLICATED_AFTER_THRESHOLD"
|
|
16765
|
+
'''You receive this notification event for an object that was eligible for replication using the Amazon S3 Replication Time Control feature replicated after the 15-minute threshold.'''
|
|
16766
|
+
REPLICATION_OPERATION_NOT_TRACKED = "REPLICATION_OPERATION_NOT_TRACKED"
|
|
16767
|
+
'''You receive this notification event for an object that was eligible for replication using Amazon S3 Replication Time Control but is no longer tracked by replication metrics.'''
|
|
16768
|
+
LIFECYCLE_EXPIRATION = "LIFECYCLE_EXPIRATION"
|
|
16769
|
+
'''By using the LifecycleExpiration event types, you can receive a notification when Amazon S3 deletes an object based on your S3 Lifecycle configuration.'''
|
|
16770
|
+
LIFECYCLE_EXPIRATION_DELETE = "LIFECYCLE_EXPIRATION_DELETE"
|
|
16771
|
+
'''The s3:LifecycleExpiration:Delete event type notifies you when an object in an unversioned bucket is deleted.
|
|
16772
|
+
|
|
16773
|
+
It also notifies you when an object version is permanently deleted by an
|
|
16774
|
+
S3 Lifecycle configuration.
|
|
16775
|
+
'''
|
|
16776
|
+
LIFECYCLE_EXPIRATION_DELETE_MARKER_CREATED = "LIFECYCLE_EXPIRATION_DELETE_MARKER_CREATED"
|
|
16777
|
+
'''The s3:LifecycleExpiration:DeleteMarkerCreated event type notifies you when S3 Lifecycle creates a delete marker when a current version of an object in versioned bucket is deleted.'''
|
|
16778
|
+
LIFECYCLE_TRANSITION = "LIFECYCLE_TRANSITION"
|
|
16779
|
+
'''You receive this notification event when an object is transitioned to another Amazon S3 storage class by an S3 Lifecycle configuration.'''
|
|
16780
|
+
INTELLIGENT_TIERING = "INTELLIGENT_TIERING"
|
|
16781
|
+
'''You receive this notification event when an object within the S3 Intelligent-Tiering storage class moved to the Archive Access tier or Deep Archive Access tier.'''
|
|
16782
|
+
OBJECT_TAGGING = "OBJECT_TAGGING"
|
|
16783
|
+
'''By using the ObjectTagging event types, you can enable notification when an object tag is added or deleted from an object.'''
|
|
16784
|
+
OBJECT_TAGGING_PUT = "OBJECT_TAGGING_PUT"
|
|
16785
|
+
'''The s3:ObjectTagging:Put event type notifies you when a tag is PUT on an object or an existing tag is updated.'''
|
|
16786
|
+
OBJECT_TAGGING_DELETE = "OBJECT_TAGGING_DELETE"
|
|
16787
|
+
'''The s3:ObjectTagging:Delete event type notifies you when a tag is removed from an object.'''
|
|
16788
|
+
OBJECT_ACL_PUT = "OBJECT_ACL_PUT"
|
|
16789
|
+
'''You receive this notification event when an ACL is PUT on an object or when an existing ACL is changed.
|
|
16790
|
+
|
|
16791
|
+
An event is not generated when a request results in no change to an
|
|
16792
|
+
object’s ACL.
|
|
16793
|
+
'''
|
|
16794
|
+
OBJECT_RESTORE = "OBJECT_RESTORE"
|
|
16795
|
+
'''Using restore object event types you can receive notifications for initiation and completion when restoring objects from the S3 Glacier storage class.
|
|
16796
|
+
|
|
16797
|
+
You use s3:ObjectRestore:* to request notification of
|
|
16798
|
+
any restoration event.
|
|
16799
|
+
'''
|
|
16800
|
+
REPLICATION = "REPLICATION"
|
|
16801
|
+
'''You receive this notification event for any object replication event.'''
|
|
16802
|
+
|
|
16803
|
+
|
|
16804
|
+
@jsii.data_type(
|
|
16805
|
+
jsii_type="aws-cdk-lib.aws_s3.Filter",
|
|
16806
|
+
jsii_struct_bases=[],
|
|
16807
|
+
name_mapping={"prefix": "prefix", "tags": "tags"},
|
|
16808
|
+
)
|
|
16809
|
+
class Filter:
|
|
16810
|
+
def __init__(
|
|
16811
|
+
self,
|
|
16812
|
+
*,
|
|
16813
|
+
prefix: typing.Optional[builtins.str] = None,
|
|
16814
|
+
tags: typing.Optional[typing.Sequence[typing.Union["Tag", typing.Dict[builtins.str, typing.Any]]]] = None,
|
|
16815
|
+
) -> None:
|
|
16816
|
+
'''A filter that identifies the subset of objects to which the replication rule applies.
|
|
16817
|
+
|
|
16818
|
+
:param prefix: An object key name prefix that identifies the object or objects to which the rule applies. Default: - applies to all objects
|
|
16819
|
+
: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
|
|
16820
|
+
|
|
16821
|
+
:exampleMetadata: infused
|
|
16822
|
+
|
|
16823
|
+
Example::
|
|
16824
|
+
|
|
16825
|
+
# destination_bucket1: s3.IBucket
|
|
16826
|
+
# destination_bucket2: s3.IBucket
|
|
16827
|
+
# replication_role: iam.IRole
|
|
16828
|
+
# encryption_key: kms.IKey
|
|
16829
|
+
# destination_encryption_key: kms.IKey
|
|
16830
|
+
|
|
16831
|
+
|
|
16832
|
+
source_bucket = s3.Bucket(self, "SourceBucket",
|
|
16833
|
+
# Versioning must be enabled on both the source and destination bucket
|
|
16834
|
+
versioned=True,
|
|
16835
|
+
# Optional. Specify the KMS key to use for encrypts objects in the source bucket.
|
|
16836
|
+
encryption_key=encryption_key,
|
|
16837
|
+
# Optional. If not specified, a new role will be created.
|
|
16838
|
+
replication_role=replication_role,
|
|
16839
|
+
replication_rules=[s3.ReplicationRule(
|
|
16840
|
+
# The destination bucket for the replication rule.
|
|
16841
|
+
destination=destination_bucket1,
|
|
16842
|
+
# The priority of the rule.
|
|
16843
|
+
# Amazon S3 will attempt to replicate objects according to all replication rules.
|
|
16844
|
+
# 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.
|
|
16845
|
+
# The higher the number, the higher the priority.
|
|
16846
|
+
# It is essential to specify priority explicitly when the replication configuration has multiple rules.
|
|
16847
|
+
priority=1
|
|
16848
|
+
), s3.ReplicationRule(
|
|
16849
|
+
destination=destination_bucket2,
|
|
16850
|
+
priority=2,
|
|
16851
|
+
# Whether to specify S3 Replication Time Control (S3 RTC).
|
|
16852
|
+
# S3 RTC replicates most objects that you upload to Amazon S3 in seconds,
|
|
16853
|
+
# and 99.99 percent of those objects within specified time.
|
|
16854
|
+
replication_time_control=s3.ReplicationTimeValue.FIFTEEN_MINUTES,
|
|
16855
|
+
# Whether to enable replication metrics about S3 RTC.
|
|
16856
|
+
# If set, metrics will be output to indicate whether replication by S3 RTC took longer than the configured time.
|
|
16857
|
+
metrics=s3.ReplicationTimeValue.FIFTEEN_MINUTES,
|
|
16858
|
+
# The kms key to use for the destination bucket.
|
|
16859
|
+
kms_key=destination_encryption_key,
|
|
16860
|
+
# The storage class to use for the destination bucket.
|
|
16861
|
+
storage_class=s3.StorageClass.INFREQUENT_ACCESS,
|
|
16862
|
+
# Whether to replicate objects with SSE-KMS encryption.
|
|
16863
|
+
sse_kms_encrypted_objects=False,
|
|
16864
|
+
# Whether to replicate modifications on replicas.
|
|
16865
|
+
replica_modifications=True,
|
|
16866
|
+
# Whether to replicate delete markers.
|
|
16867
|
+
# This property cannot be enabled if the replication rule has a tag filter.
|
|
16868
|
+
delete_marker_replication=False,
|
|
16869
|
+
# The ID of the rule.
|
|
16870
|
+
id="full-settings-rule",
|
|
16871
|
+
# The object filter for the rule.
|
|
16872
|
+
filter=s3.Filter(
|
|
16873
|
+
# The prefix filter for the rule.
|
|
16874
|
+
prefix="prefix",
|
|
16875
|
+
# The tag filter for the rule.
|
|
16876
|
+
tags=[s3.Tag(
|
|
16877
|
+
key="tagKey",
|
|
16878
|
+
value="tagValue"
|
|
16879
|
+
)
|
|
16880
|
+
]
|
|
16881
|
+
)
|
|
16882
|
+
)
|
|
16883
|
+
]
|
|
16884
|
+
)
|
|
16885
|
+
|
|
16886
|
+
# Grant permissions to the replication role.
|
|
16887
|
+
# This method is not required if you choose to use an auto-generated replication role or manually grant permissions.
|
|
16888
|
+
source_bucket.grant_replication_permission(replication_role,
|
|
16889
|
+
# Optional. Specify the KMS key to use for decrypting objects in the source bucket.
|
|
16890
|
+
source_decryption_key=encryption_key,
|
|
16891
|
+
destinations=[s3.GrantReplicationPermissionDestinationProps(bucket=destination_bucket1), s3.GrantReplicationPermissionDestinationProps(bucket=destination_bucket2, encryption_key=destination_encryption_key)
|
|
16892
|
+
]
|
|
16893
|
+
)
|
|
16894
|
+
'''
|
|
16895
|
+
if __debug__:
|
|
16896
|
+
type_hints = typing.get_type_hints(_typecheckingstub__ff4b8a813f6812ab1464fced92fa61b97e151767705973ce994c0970fde139df)
|
|
16897
|
+
check_type(argname="argument prefix", value=prefix, expected_type=type_hints["prefix"])
|
|
16898
|
+
check_type(argname="argument tags", value=tags, expected_type=type_hints["tags"])
|
|
16899
|
+
self._values: typing.Dict[builtins.str, typing.Any] = {}
|
|
16900
|
+
if prefix is not None:
|
|
16901
|
+
self._values["prefix"] = prefix
|
|
16902
|
+
if tags is not None:
|
|
16903
|
+
self._values["tags"] = tags
|
|
16904
|
+
|
|
16905
|
+
@builtins.property
|
|
16906
|
+
def prefix(self) -> typing.Optional[builtins.str]:
|
|
16907
|
+
'''An object key name prefix that identifies the object or objects to which the rule applies.
|
|
16908
|
+
|
|
16909
|
+
:default: - applies to all objects
|
|
16910
|
+
'''
|
|
16911
|
+
result = self._values.get("prefix")
|
|
16912
|
+
return typing.cast(typing.Optional[builtins.str], result)
|
|
16913
|
+
|
|
16914
|
+
@builtins.property
|
|
16915
|
+
def tags(self) -> typing.Optional[typing.List["Tag"]]:
|
|
16916
|
+
'''The tag array used for tag filters.
|
|
16917
|
+
|
|
16918
|
+
The rule applies only to objects that have the tag in this set.
|
|
16919
|
+
|
|
16920
|
+
:default: - applies to all objects
|
|
16921
|
+
'''
|
|
16922
|
+
result = self._values.get("tags")
|
|
16923
|
+
return typing.cast(typing.Optional[typing.List["Tag"]], result)
|
|
16924
|
+
|
|
16925
|
+
def __eq__(self, rhs: typing.Any) -> builtins.bool:
|
|
16926
|
+
return isinstance(rhs, self.__class__) and rhs._values == self._values
|
|
16927
|
+
|
|
16928
|
+
def __ne__(self, rhs: typing.Any) -> builtins.bool:
|
|
16929
|
+
return not (rhs == self)
|
|
16930
|
+
|
|
16931
|
+
def __repr__(self) -> str:
|
|
16932
|
+
return "Filter(%s)" % ", ".join(
|
|
16933
|
+
k + "=" + repr(v) for k, v in self._values.items()
|
|
16934
|
+
)
|
|
16935
|
+
|
|
16936
|
+
|
|
16937
|
+
@jsii.data_type(
|
|
16938
|
+
jsii_type="aws-cdk-lib.aws_s3.GrantReplicationPermissionDestinationProps",
|
|
16939
|
+
jsii_struct_bases=[],
|
|
16940
|
+
name_mapping={"bucket": "bucket", "encryption_key": "encryptionKey"},
|
|
16941
|
+
)
|
|
16942
|
+
class GrantReplicationPermissionDestinationProps:
|
|
16943
|
+
def __init__(
|
|
16944
|
+
self,
|
|
16945
|
+
*,
|
|
16946
|
+
bucket: "IBucket",
|
|
16947
|
+
encryption_key: typing.Optional[_IKey_5f11635f] = None,
|
|
16948
|
+
) -> None:
|
|
16949
|
+
'''The properties for the destination bucket for granting replication permission.
|
|
16950
|
+
|
|
16951
|
+
:param bucket: The destination bucket.
|
|
16952
|
+
:param encryption_key: The KMS key to use for encryption if a destination bucket needs to be encrypted with a customer-managed KMS key. Default: - no KMS key is used for replication.
|
|
16953
|
+
|
|
16954
|
+
:exampleMetadata: fixture=_generated
|
|
16955
|
+
|
|
16956
|
+
Example::
|
|
16957
|
+
|
|
16958
|
+
# The code below shows an example of how to instantiate this type.
|
|
16959
|
+
# The values are placeholders you should change.
|
|
16960
|
+
from aws_cdk import aws_kms as kms
|
|
16961
|
+
from aws_cdk import aws_s3 as s3
|
|
16962
|
+
|
|
16963
|
+
# bucket: s3.Bucket
|
|
16964
|
+
# key: kms.Key
|
|
16965
|
+
|
|
16966
|
+
grant_replication_permission_destination_props = s3.GrantReplicationPermissionDestinationProps(
|
|
16967
|
+
bucket=bucket,
|
|
16968
|
+
|
|
16969
|
+
# the properties below are optional
|
|
16970
|
+
encryption_key=key
|
|
16971
|
+
)
|
|
16972
|
+
'''
|
|
16973
|
+
if __debug__:
|
|
16974
|
+
type_hints = typing.get_type_hints(_typecheckingstub__c28989eb119121ac7809e78ba2038558e14755021078bf7d97f894b34bc3311a)
|
|
16975
|
+
check_type(argname="argument bucket", value=bucket, expected_type=type_hints["bucket"])
|
|
16976
|
+
check_type(argname="argument encryption_key", value=encryption_key, expected_type=type_hints["encryption_key"])
|
|
16977
|
+
self._values: typing.Dict[builtins.str, typing.Any] = {
|
|
16978
|
+
"bucket": bucket,
|
|
16979
|
+
}
|
|
16980
|
+
if encryption_key is not None:
|
|
16981
|
+
self._values["encryption_key"] = encryption_key
|
|
16982
|
+
|
|
16983
|
+
@builtins.property
|
|
16984
|
+
def bucket(self) -> "IBucket":
|
|
16985
|
+
'''The destination bucket.'''
|
|
16986
|
+
result = self._values.get("bucket")
|
|
16987
|
+
assert result is not None, "Required property 'bucket' is missing"
|
|
16988
|
+
return typing.cast("IBucket", result)
|
|
16989
|
+
|
|
16990
|
+
@builtins.property
|
|
16991
|
+
def encryption_key(self) -> typing.Optional[_IKey_5f11635f]:
|
|
16992
|
+
'''The KMS key to use for encryption if a destination bucket needs to be encrypted with a customer-managed KMS key.
|
|
16993
|
+
|
|
16994
|
+
:default: - no KMS key is used for replication.
|
|
16995
|
+
'''
|
|
16996
|
+
result = self._values.get("encryption_key")
|
|
16997
|
+
return typing.cast(typing.Optional[_IKey_5f11635f], result)
|
|
15737
16998
|
|
|
15738
|
-
|
|
15739
|
-
|
|
15740
|
-
'''
|
|
15741
|
-
LIFECYCLE_EXPIRATION_DELETE_MARKER_CREATED = "LIFECYCLE_EXPIRATION_DELETE_MARKER_CREATED"
|
|
15742
|
-
'''The s3:LifecycleExpiration:DeleteMarkerCreated event type notifies you when S3 Lifecycle creates a delete marker when a current version of an object in versioned bucket is deleted.'''
|
|
15743
|
-
LIFECYCLE_TRANSITION = "LIFECYCLE_TRANSITION"
|
|
15744
|
-
'''You receive this notification event when an object is transitioned to another Amazon S3 storage class by an S3 Lifecycle configuration.'''
|
|
15745
|
-
INTELLIGENT_TIERING = "INTELLIGENT_TIERING"
|
|
15746
|
-
'''You receive this notification event when an object within the S3 Intelligent-Tiering storage class moved to the Archive Access tier or Deep Archive Access tier.'''
|
|
15747
|
-
OBJECT_TAGGING = "OBJECT_TAGGING"
|
|
15748
|
-
'''By using the ObjectTagging event types, you can enable notification when an object tag is added or deleted from an object.'''
|
|
15749
|
-
OBJECT_TAGGING_PUT = "OBJECT_TAGGING_PUT"
|
|
15750
|
-
'''The s3:ObjectTagging:Put event type notifies you when a tag is PUT on an object or an existing tag is updated.'''
|
|
15751
|
-
OBJECT_TAGGING_DELETE = "OBJECT_TAGGING_DELETE"
|
|
15752
|
-
'''The s3:ObjectTagging:Delete event type notifies you when a tag is removed from an object.'''
|
|
15753
|
-
OBJECT_ACL_PUT = "OBJECT_ACL_PUT"
|
|
15754
|
-
'''You receive this notification event when an ACL is PUT on an object or when an existing ACL is changed.
|
|
16999
|
+
def __eq__(self, rhs: typing.Any) -> builtins.bool:
|
|
17000
|
+
return isinstance(rhs, self.__class__) and rhs._values == self._values
|
|
15755
17001
|
|
|
15756
|
-
|
|
15757
|
-
|
|
15758
|
-
'''
|
|
15759
|
-
OBJECT_RESTORE = "OBJECT_RESTORE"
|
|
15760
|
-
'''Using restore object event types you can receive notifications for initiation and completion when restoring objects from the S3 Glacier storage class.
|
|
17002
|
+
def __ne__(self, rhs: typing.Any) -> builtins.bool:
|
|
17003
|
+
return not (rhs == self)
|
|
15761
17004
|
|
|
15762
|
-
|
|
15763
|
-
|
|
15764
|
-
|
|
15765
|
-
|
|
15766
|
-
'''You receive this notification event for any object replication event.'''
|
|
17005
|
+
def __repr__(self) -> str:
|
|
17006
|
+
return "GrantReplicationPermissionDestinationProps(%s)" % ", ".join(
|
|
17007
|
+
k + "=" + repr(v) for k, v in self._values.items()
|
|
17008
|
+
)
|
|
15767
17009
|
|
|
15768
17010
|
|
|
15769
17011
|
@jsii.data_type(
|
|
15770
|
-
jsii_type="aws-cdk-lib.aws_s3.
|
|
17012
|
+
jsii_type="aws-cdk-lib.aws_s3.GrantReplicationPermissionProps",
|
|
15771
17013
|
jsii_struct_bases=[],
|
|
15772
|
-
name_mapping={
|
|
17014
|
+
name_mapping={
|
|
17015
|
+
"destinations": "destinations",
|
|
17016
|
+
"source_decryption_key": "sourceDecryptionKey",
|
|
17017
|
+
},
|
|
15773
17018
|
)
|
|
15774
|
-
class
|
|
17019
|
+
class GrantReplicationPermissionProps:
|
|
15775
17020
|
def __init__(
|
|
15776
17021
|
self,
|
|
15777
17022
|
*,
|
|
15778
|
-
|
|
15779
|
-
|
|
17023
|
+
destinations: typing.Sequence[typing.Union[GrantReplicationPermissionDestinationProps, typing.Dict[builtins.str, typing.Any]]],
|
|
17024
|
+
source_decryption_key: typing.Optional[_IKey_5f11635f] = None,
|
|
15780
17025
|
) -> None:
|
|
15781
|
-
'''
|
|
17026
|
+
'''The properties for the destination bucket for granting replication permission.
|
|
15782
17027
|
|
|
15783
|
-
:param
|
|
15784
|
-
:param
|
|
17028
|
+
:param destinations: The destination buckets for replication. Specify the KMS key to use for encryption if a destination bucket needs to be encrypted with a customer-managed KMS key. One or more destination buckets are required if replication configuration is enabled (i.e., ``replicationRole`` is specified). Default: - empty array (valid only if the ``replicationRole`` property is NOT specified)
|
|
17029
|
+
:param source_decryption_key: The KMS key used to decrypt objects in the source bucket for replication. **Required if** the source bucket is encrypted with a customer-managed KMS key. Default: - it's assumed the source bucket is not encrypted with a customer-managed KMS key.
|
|
15785
17030
|
|
|
15786
17031
|
:exampleMetadata: infused
|
|
15787
17032
|
|
|
@@ -15790,12 +17035,15 @@ class Filter:
|
|
|
15790
17035
|
# destination_bucket1: s3.IBucket
|
|
15791
17036
|
# destination_bucket2: s3.IBucket
|
|
15792
17037
|
# replication_role: iam.IRole
|
|
15793
|
-
#
|
|
17038
|
+
# encryption_key: kms.IKey
|
|
17039
|
+
# destination_encryption_key: kms.IKey
|
|
15794
17040
|
|
|
15795
17041
|
|
|
15796
17042
|
source_bucket = s3.Bucket(self, "SourceBucket",
|
|
15797
17043
|
# Versioning must be enabled on both the source and destination bucket
|
|
15798
17044
|
versioned=True,
|
|
17045
|
+
# Optional. Specify the KMS key to use for encrypts objects in the source bucket.
|
|
17046
|
+
encryption_key=encryption_key,
|
|
15799
17047
|
# Optional. If not specified, a new role will be created.
|
|
15800
17048
|
replication_role=replication_role,
|
|
15801
17049
|
replication_rules=[s3.ReplicationRule(
|
|
@@ -15818,7 +17066,7 @@ class Filter:
|
|
|
15818
17066
|
# If set, metrics will be output to indicate whether replication by S3 RTC took longer than the configured time.
|
|
15819
17067
|
metrics=s3.ReplicationTimeValue.FIFTEEN_MINUTES,
|
|
15820
17068
|
# The kms key to use for the destination bucket.
|
|
15821
|
-
kms_key=
|
|
17069
|
+
kms_key=destination_encryption_key,
|
|
15822
17070
|
# The storage class to use for the destination bucket.
|
|
15823
17071
|
storage_class=s3.StorageClass.INFREQUENT_ACCESS,
|
|
15824
17072
|
# Whether to replicate objects with SSE-KMS encryption.
|
|
@@ -15844,36 +17092,49 @@ class Filter:
|
|
|
15844
17092
|
)
|
|
15845
17093
|
]
|
|
15846
17094
|
)
|
|
17095
|
+
|
|
17096
|
+
# Grant permissions to the replication role.
|
|
17097
|
+
# This method is not required if you choose to use an auto-generated replication role or manually grant permissions.
|
|
17098
|
+
source_bucket.grant_replication_permission(replication_role,
|
|
17099
|
+
# Optional. Specify the KMS key to use for decrypting objects in the source bucket.
|
|
17100
|
+
source_decryption_key=encryption_key,
|
|
17101
|
+
destinations=[s3.GrantReplicationPermissionDestinationProps(bucket=destination_bucket1), s3.GrantReplicationPermissionDestinationProps(bucket=destination_bucket2, encryption_key=destination_encryption_key)
|
|
17102
|
+
]
|
|
17103
|
+
)
|
|
15847
17104
|
'''
|
|
15848
17105
|
if __debug__:
|
|
15849
|
-
type_hints = typing.get_type_hints(
|
|
15850
|
-
check_type(argname="argument
|
|
15851
|
-
check_type(argname="argument
|
|
15852
|
-
self._values: typing.Dict[builtins.str, typing.Any] = {
|
|
15853
|
-
|
|
15854
|
-
|
|
15855
|
-
if
|
|
15856
|
-
self._values["
|
|
17106
|
+
type_hints = typing.get_type_hints(_typecheckingstub__892523669f29c26ab296b743291f04387d44edf1630a2288ab68d906f972d8ff)
|
|
17107
|
+
check_type(argname="argument destinations", value=destinations, expected_type=type_hints["destinations"])
|
|
17108
|
+
check_type(argname="argument source_decryption_key", value=source_decryption_key, expected_type=type_hints["source_decryption_key"])
|
|
17109
|
+
self._values: typing.Dict[builtins.str, typing.Any] = {
|
|
17110
|
+
"destinations": destinations,
|
|
17111
|
+
}
|
|
17112
|
+
if source_decryption_key is not None:
|
|
17113
|
+
self._values["source_decryption_key"] = source_decryption_key
|
|
15857
17114
|
|
|
15858
17115
|
@builtins.property
|
|
15859
|
-
def
|
|
15860
|
-
'''
|
|
17116
|
+
def destinations(self) -> typing.List[GrantReplicationPermissionDestinationProps]:
|
|
17117
|
+
'''The destination buckets for replication.
|
|
15861
17118
|
|
|
15862
|
-
|
|
17119
|
+
Specify the KMS key to use for encryption if a destination bucket needs to be encrypted with a customer-managed KMS key.
|
|
17120
|
+
One or more destination buckets are required if replication configuration is enabled (i.e., ``replicationRole`` is specified).
|
|
17121
|
+
|
|
17122
|
+
:default: - empty array (valid only if the ``replicationRole`` property is NOT specified)
|
|
15863
17123
|
'''
|
|
15864
|
-
result = self._values.get("
|
|
15865
|
-
|
|
17124
|
+
result = self._values.get("destinations")
|
|
17125
|
+
assert result is not None, "Required property 'destinations' is missing"
|
|
17126
|
+
return typing.cast(typing.List[GrantReplicationPermissionDestinationProps], result)
|
|
15866
17127
|
|
|
15867
17128
|
@builtins.property
|
|
15868
|
-
def
|
|
15869
|
-
'''The
|
|
17129
|
+
def source_decryption_key(self) -> typing.Optional[_IKey_5f11635f]:
|
|
17130
|
+
'''The KMS key used to decrypt objects in the source bucket for replication.
|
|
15870
17131
|
|
|
15871
|
-
|
|
17132
|
+
**Required if** the source bucket is encrypted with a customer-managed KMS key.
|
|
15872
17133
|
|
|
15873
|
-
:default: -
|
|
17134
|
+
:default: - it's assumed the source bucket is not encrypted with a customer-managed KMS key.
|
|
15874
17135
|
'''
|
|
15875
|
-
result = self._values.get("
|
|
15876
|
-
return typing.cast(typing.Optional[
|
|
17136
|
+
result = self._values.get("source_decryption_key")
|
|
17137
|
+
return typing.cast(typing.Optional[_IKey_5f11635f], result)
|
|
15877
17138
|
|
|
15878
17139
|
def __eq__(self, rhs: typing.Any) -> builtins.bool:
|
|
15879
17140
|
return isinstance(rhs, self.__class__) and rhs._values == self._values
|
|
@@ -15882,7 +17143,7 @@ class Filter:
|
|
|
15882
17143
|
return not (rhs == self)
|
|
15883
17144
|
|
|
15884
17145
|
def __repr__(self) -> str:
|
|
15885
|
-
return "
|
|
17146
|
+
return "GrantReplicationPermissionProps(%s)" % ", ".join(
|
|
15886
17147
|
k + "=" + repr(v) for k, v in self._values.items()
|
|
15887
17148
|
)
|
|
15888
17149
|
|
|
@@ -15904,7 +17165,7 @@ class HttpMethods(enum.Enum):
|
|
|
15904
17165
|
|
|
15905
17166
|
|
|
15906
17167
|
@jsii.interface(jsii_type="aws-cdk-lib.aws_s3.IBucket")
|
|
15907
|
-
class IBucket(_IResource_c80c4260, typing_extensions.Protocol):
|
|
17168
|
+
class IBucket(_IResource_c80c4260, _IBucketRef_3debe44e, typing_extensions.Protocol):
|
|
15908
17169
|
@builtins.property
|
|
15909
17170
|
@jsii.member(jsii_name="bucketArn")
|
|
15910
17171
|
def bucket_arn(self) -> builtins.str:
|
|
@@ -16247,6 +17508,27 @@ class IBucket(_IResource_c80c4260, typing_extensions.Protocol):
|
|
|
16247
17508
|
'''
|
|
16248
17509
|
...
|
|
16249
17510
|
|
|
17511
|
+
@jsii.member(jsii_name="grantReplicationPermission")
|
|
17512
|
+
def grant_replication_permission(
|
|
17513
|
+
self,
|
|
17514
|
+
identity: _IGrantable_71c4f5de,
|
|
17515
|
+
*,
|
|
17516
|
+
destinations: typing.Sequence[typing.Union[GrantReplicationPermissionDestinationProps, typing.Dict[builtins.str, typing.Any]]],
|
|
17517
|
+
source_decryption_key: typing.Optional[_IKey_5f11635f] = None,
|
|
17518
|
+
) -> _Grant_a7ae64f8:
|
|
17519
|
+
'''Allows permissions for replication operation to bucket replication role.
|
|
17520
|
+
|
|
17521
|
+
If an encryption key is used, permission to use the key for
|
|
17522
|
+
encrypt/decrypt will also be granted.
|
|
17523
|
+
|
|
17524
|
+
:param identity: The principal.
|
|
17525
|
+
:param destinations: The destination buckets for replication. Specify the KMS key to use for encryption if a destination bucket needs to be encrypted with a customer-managed KMS key. One or more destination buckets are required if replication configuration is enabled (i.e., ``replicationRole`` is specified). Default: - empty array (valid only if the ``replicationRole`` property is NOT specified)
|
|
17526
|
+
:param source_decryption_key: The KMS key used to decrypt objects in the source bucket for replication. **Required if** the source bucket is encrypted with a customer-managed KMS key. Default: - it's assumed the source bucket is not encrypted with a customer-managed KMS key.
|
|
17527
|
+
|
|
17528
|
+
:return: The ``iam.Grant`` object, which represents the grant of permissions.
|
|
17529
|
+
'''
|
|
17530
|
+
...
|
|
17531
|
+
|
|
16250
17532
|
@jsii.member(jsii_name="grantWrite")
|
|
16251
17533
|
def grant_write(
|
|
16252
17534
|
self,
|
|
@@ -16443,6 +17725,7 @@ class IBucket(_IResource_c80c4260, typing_extensions.Protocol):
|
|
|
16443
17725
|
|
|
16444
17726
|
class _IBucketProxy(
|
|
16445
17727
|
jsii.proxy_for(_IResource_c80c4260), # type: ignore[misc]
|
|
17728
|
+
jsii.proxy_for(_IBucketRef_3debe44e), # type: ignore[misc]
|
|
16446
17729
|
):
|
|
16447
17730
|
__jsii_type__: typing.ClassVar[str] = "aws-cdk-lib.aws_s3.IBucket"
|
|
16448
17731
|
|
|
@@ -16842,6 +18125,34 @@ class _IBucketProxy(
|
|
|
16842
18125
|
check_type(argname="argument objects_key_pattern", value=objects_key_pattern, expected_type=type_hints["objects_key_pattern"])
|
|
16843
18126
|
return typing.cast(_Grant_a7ae64f8, jsii.invoke(self, "grantReadWrite", [identity, objects_key_pattern]))
|
|
16844
18127
|
|
|
18128
|
+
@jsii.member(jsii_name="grantReplicationPermission")
|
|
18129
|
+
def grant_replication_permission(
|
|
18130
|
+
self,
|
|
18131
|
+
identity: _IGrantable_71c4f5de,
|
|
18132
|
+
*,
|
|
18133
|
+
destinations: typing.Sequence[typing.Union[GrantReplicationPermissionDestinationProps, typing.Dict[builtins.str, typing.Any]]],
|
|
18134
|
+
source_decryption_key: typing.Optional[_IKey_5f11635f] = None,
|
|
18135
|
+
) -> _Grant_a7ae64f8:
|
|
18136
|
+
'''Allows permissions for replication operation to bucket replication role.
|
|
18137
|
+
|
|
18138
|
+
If an encryption key is used, permission to use the key for
|
|
18139
|
+
encrypt/decrypt will also be granted.
|
|
18140
|
+
|
|
18141
|
+
:param identity: The principal.
|
|
18142
|
+
:param destinations: The destination buckets for replication. Specify the KMS key to use for encryption if a destination bucket needs to be encrypted with a customer-managed KMS key. One or more destination buckets are required if replication configuration is enabled (i.e., ``replicationRole`` is specified). Default: - empty array (valid only if the ``replicationRole`` property is NOT specified)
|
|
18143
|
+
:param source_decryption_key: The KMS key used to decrypt objects in the source bucket for replication. **Required if** the source bucket is encrypted with a customer-managed KMS key. Default: - it's assumed the source bucket is not encrypted with a customer-managed KMS key.
|
|
18144
|
+
|
|
18145
|
+
:return: The ``iam.Grant`` object, which represents the grant of permissions.
|
|
18146
|
+
'''
|
|
18147
|
+
if __debug__:
|
|
18148
|
+
type_hints = typing.get_type_hints(_typecheckingstub__b2772da13be98dbf89b1d2aec491a21f6a48f84e8d96dacef9ad681c2a3c690a)
|
|
18149
|
+
check_type(argname="argument identity", value=identity, expected_type=type_hints["identity"])
|
|
18150
|
+
props = GrantReplicationPermissionProps(
|
|
18151
|
+
destinations=destinations, source_decryption_key=source_decryption_key
|
|
18152
|
+
)
|
|
18153
|
+
|
|
18154
|
+
return typing.cast(_Grant_a7ae64f8, jsii.invoke(self, "grantReplicationPermission", [identity, props]))
|
|
18155
|
+
|
|
16845
18156
|
@jsii.member(jsii_name="grantWrite")
|
|
16846
18157
|
def grant_write(
|
|
16847
18158
|
self,
|
|
@@ -17104,7 +18415,7 @@ class IBucketNotificationDestination(typing_extensions.Protocol):
|
|
|
17104
18415
|
def bind(
|
|
17105
18416
|
self,
|
|
17106
18417
|
scope: _constructs_77d1e7e8.Construct,
|
|
17107
|
-
bucket:
|
|
18418
|
+
bucket: _IBucketRef_3debe44e,
|
|
17108
18419
|
) -> BucketNotificationDestinationConfig:
|
|
17109
18420
|
'''Registers this resource to receive notifications for the specified bucket.
|
|
17110
18421
|
|
|
@@ -17127,7 +18438,7 @@ class _IBucketNotificationDestinationProxy:
|
|
|
17127
18438
|
def bind(
|
|
17128
18439
|
self,
|
|
17129
18440
|
scope: _constructs_77d1e7e8.Construct,
|
|
17130
|
-
bucket:
|
|
18441
|
+
bucket: _IBucketRef_3debe44e,
|
|
17131
18442
|
) -> BucketNotificationDestinationConfig:
|
|
17132
18443
|
'''Registers this resource to receive notifications for the specified bucket.
|
|
17133
18444
|
|
|
@@ -17686,7 +18997,7 @@ class LifecycleRule:
|
|
|
17686
18997
|
:param id: A unique identifier for this rule. The value cannot be more than 255 characters.
|
|
17687
18998
|
:param noncurrent_version_expiration: Time between when a new version of the object is uploaded to the bucket and when old versions of the object expire. For buckets with versioning enabled (or suspended), specifies the time, in days, between when a new version of the object is uploaded to the bucket and when old versions of the object expire. When object versions expire, Amazon S3 permanently deletes them. If you specify a transition and expiration time, the expiration time must be later than the transition time. The underlying configuration is expressed in whole numbers of days. Providing a Duration that does not represent a whole number of days will result in a runtime or deployment error. Default: - No noncurrent version expiration
|
|
17688
18999
|
:param noncurrent_versions_to_retain: Indicates a maximum number of noncurrent versions to retain. If there are this many more noncurrent versions, Amazon S3 permanently deletes them. Default: - No noncurrent versions to retain
|
|
17689
|
-
:param noncurrent_version_transitions: One or more transition rules that specify when non-current objects transition to a specified storage class. Only for
|
|
19000
|
+
:param noncurrent_version_transitions: One or more transition rules that specify when non-current objects transition to a specified storage class. Only for buckets with versioning enabled (or suspended). If you specify a transition and expiration time, the expiration time must be later than the transition time.
|
|
17690
19001
|
:param object_size_greater_than: Specifies the minimum object size in bytes for this rule to apply to. Objects must be larger than this value in bytes. Default: - No rule
|
|
17691
19002
|
:param object_size_less_than: Specifies the maximum object size in bytes for this rule to apply to. Objects must be smaller than this value in bytes. Default: - No rule
|
|
17692
19003
|
:param prefix: Object key prefix that identifies one or more objects to which this rule applies. Default: - Rule applies to all objects
|
|
@@ -17898,7 +19209,7 @@ class LifecycleRule:
|
|
|
17898
19209
|
) -> typing.Optional[typing.List["NoncurrentVersionTransition"]]:
|
|
17899
19210
|
'''One or more transition rules that specify when non-current objects transition to a specified storage class.
|
|
17900
19211
|
|
|
17901
|
-
Only for
|
|
19212
|
+
Only for buckets with versioning enabled (or suspended).
|
|
17902
19213
|
|
|
17903
19214
|
If you specify a transition and expiration time, the expiration time
|
|
17904
19215
|
must be later than the transition time.
|
|
@@ -17994,26 +19305,43 @@ class Location:
|
|
|
17994
19305
|
:param object_key: The path inside the Bucket where the object is located at.
|
|
17995
19306
|
:param object_version: The S3 object version.
|
|
17996
19307
|
|
|
17997
|
-
:exampleMetadata: infused
|
|
19308
|
+
:exampleMetadata: fixture=default infused
|
|
17998
19309
|
|
|
17999
19310
|
Example::
|
|
18000
19311
|
|
|
18001
|
-
|
|
18002
|
-
|
|
18003
|
-
|
|
18004
|
-
|
|
18005
|
-
|
|
18006
|
-
|
|
18007
|
-
|
|
18008
|
-
|
|
18009
|
-
|
|
18010
|
-
|
|
18011
|
-
|
|
18012
|
-
|
|
19312
|
+
bucket = s3.Bucket(self, "memoryBucket",
|
|
19313
|
+
bucket_name="test-memory",
|
|
19314
|
+
removal_policy=cdk.RemovalPolicy.DESTROY,
|
|
19315
|
+
auto_delete_objects=True
|
|
19316
|
+
)
|
|
19317
|
+
|
|
19318
|
+
topic = sns.Topic(self, "topic")
|
|
19319
|
+
|
|
19320
|
+
# Create a custom semantic memory strategy
|
|
19321
|
+
self_managed_strategy = agentcore.MemoryStrategy.using_self_managed(
|
|
19322
|
+
name="selfManagedStrategy",
|
|
19323
|
+
description="self managed memory strategy",
|
|
19324
|
+
historical_context_window_size=5,
|
|
19325
|
+
invocation_configuration=agentcore.InvocationConfiguration(
|
|
19326
|
+
topic=topic,
|
|
19327
|
+
s3_location=s3.Location(
|
|
19328
|
+
bucket_name=bucket.bucket_name,
|
|
19329
|
+
object_key="memory/"
|
|
18013
19330
|
)
|
|
18014
19331
|
),
|
|
18015
|
-
|
|
18016
|
-
|
|
19332
|
+
trigger_conditions=agentcore.TriggerConditions(
|
|
19333
|
+
message_based_trigger=1,
|
|
19334
|
+
time_based_trigger=cdk.Duration.seconds(10),
|
|
19335
|
+
token_based_trigger=100
|
|
19336
|
+
)
|
|
19337
|
+
)
|
|
19338
|
+
|
|
19339
|
+
# Create memory with custom strategy
|
|
19340
|
+
memory = agentcore.Memory(self, "MyMemory",
|
|
19341
|
+
memory_name="my-custom-memory",
|
|
19342
|
+
description="Memory with custom strategy",
|
|
19343
|
+
expiration_duration=cdk.Duration.days(90),
|
|
19344
|
+
memory_strategies=[self_managed_strategy]
|
|
18017
19345
|
)
|
|
18018
19346
|
'''
|
|
18019
19347
|
if __debug__:
|
|
@@ -18981,12 +20309,15 @@ class ReplicationTimeValue(
|
|
|
18981
20309
|
# destination_bucket1: s3.IBucket
|
|
18982
20310
|
# destination_bucket2: s3.IBucket
|
|
18983
20311
|
# replication_role: iam.IRole
|
|
18984
|
-
#
|
|
20312
|
+
# encryption_key: kms.IKey
|
|
20313
|
+
# destination_encryption_key: kms.IKey
|
|
18985
20314
|
|
|
18986
20315
|
|
|
18987
20316
|
source_bucket = s3.Bucket(self, "SourceBucket",
|
|
18988
20317
|
# Versioning must be enabled on both the source and destination bucket
|
|
18989
20318
|
versioned=True,
|
|
20319
|
+
# Optional. Specify the KMS key to use for encrypts objects in the source bucket.
|
|
20320
|
+
encryption_key=encryption_key,
|
|
18990
20321
|
# Optional. If not specified, a new role will be created.
|
|
18991
20322
|
replication_role=replication_role,
|
|
18992
20323
|
replication_rules=[s3.ReplicationRule(
|
|
@@ -19009,7 +20340,7 @@ class ReplicationTimeValue(
|
|
|
19009
20340
|
# If set, metrics will be output to indicate whether replication by S3 RTC took longer than the configured time.
|
|
19010
20341
|
metrics=s3.ReplicationTimeValue.FIFTEEN_MINUTES,
|
|
19011
20342
|
# The kms key to use for the destination bucket.
|
|
19012
|
-
kms_key=
|
|
20343
|
+
kms_key=destination_encryption_key,
|
|
19013
20344
|
# The storage class to use for the destination bucket.
|
|
19014
20345
|
storage_class=s3.StorageClass.INFREQUENT_ACCESS,
|
|
19015
20346
|
# Whether to replicate objects with SSE-KMS encryption.
|
|
@@ -19035,6 +20366,15 @@ class ReplicationTimeValue(
|
|
|
19035
20366
|
)
|
|
19036
20367
|
]
|
|
19037
20368
|
)
|
|
20369
|
+
|
|
20370
|
+
# Grant permissions to the replication role.
|
|
20371
|
+
# This method is not required if you choose to use an auto-generated replication role or manually grant permissions.
|
|
20372
|
+
source_bucket.grant_replication_permission(replication_role,
|
|
20373
|
+
# Optional. Specify the KMS key to use for decrypting objects in the source bucket.
|
|
20374
|
+
source_decryption_key=encryption_key,
|
|
20375
|
+
destinations=[s3.GrantReplicationPermissionDestinationProps(bucket=destination_bucket1), s3.GrantReplicationPermissionDestinationProps(bucket=destination_bucket2, encryption_key=destination_encryption_key)
|
|
20376
|
+
]
|
|
20377
|
+
)
|
|
19038
20378
|
'''
|
|
19039
20379
|
|
|
19040
20380
|
@jsii.python.classproperty
|
|
@@ -20095,6 +21435,32 @@ class BucketBase(
|
|
|
20095
21435
|
check_type(argname="argument objects_key_pattern", value=objects_key_pattern, expected_type=type_hints["objects_key_pattern"])
|
|
20096
21436
|
return typing.cast(_Grant_a7ae64f8, jsii.invoke(self, "grantReadWrite", [identity, objects_key_pattern]))
|
|
20097
21437
|
|
|
21438
|
+
@jsii.member(jsii_name="grantReplicationPermission")
|
|
21439
|
+
def grant_replication_permission(
|
|
21440
|
+
self,
|
|
21441
|
+
identity: _IGrantable_71c4f5de,
|
|
21442
|
+
*,
|
|
21443
|
+
destinations: typing.Sequence[typing.Union[GrantReplicationPermissionDestinationProps, typing.Dict[builtins.str, typing.Any]]],
|
|
21444
|
+
source_decryption_key: typing.Optional[_IKey_5f11635f] = None,
|
|
21445
|
+
) -> _Grant_a7ae64f8:
|
|
21446
|
+
'''Grant replication permission to a principal. This method allows the principal to perform replication operations on this bucket.
|
|
21447
|
+
|
|
21448
|
+
Note that when calling this function for source or destination buckets that support KMS encryption,
|
|
21449
|
+
you need to specify the KMS key for encryption and the KMS key for decryption, respectively.
|
|
21450
|
+
|
|
21451
|
+
:param identity: The principal to grant replication permission to.
|
|
21452
|
+
:param destinations: The destination buckets for replication. Specify the KMS key to use for encryption if a destination bucket needs to be encrypted with a customer-managed KMS key. One or more destination buckets are required if replication configuration is enabled (i.e., ``replicationRole`` is specified). Default: - empty array (valid only if the ``replicationRole`` property is NOT specified)
|
|
21453
|
+
:param source_decryption_key: The KMS key used to decrypt objects in the source bucket for replication. **Required if** the source bucket is encrypted with a customer-managed KMS key. Default: - it's assumed the source bucket is not encrypted with a customer-managed KMS key.
|
|
21454
|
+
'''
|
|
21455
|
+
if __debug__:
|
|
21456
|
+
type_hints = typing.get_type_hints(_typecheckingstub__ae08375448013fd67c288fc732b4e3bd7135520a849542f49221c12f286f9554)
|
|
21457
|
+
check_type(argname="argument identity", value=identity, expected_type=type_hints["identity"])
|
|
21458
|
+
props = GrantReplicationPermissionProps(
|
|
21459
|
+
destinations=destinations, source_decryption_key=source_decryption_key
|
|
21460
|
+
)
|
|
21461
|
+
|
|
21462
|
+
return typing.cast(_Grant_a7ae64f8, jsii.invoke(self, "grantReplicationPermission", [identity, props]))
|
|
21463
|
+
|
|
20098
21464
|
@jsii.member(jsii_name="grantWrite")
|
|
20099
21465
|
def grant_write(
|
|
20100
21466
|
self,
|
|
@@ -20371,6 +21737,12 @@ class BucketBase(
|
|
|
20371
21737
|
'''The name of the bucket.'''
|
|
20372
21738
|
...
|
|
20373
21739
|
|
|
21740
|
+
@builtins.property
|
|
21741
|
+
@jsii.member(jsii_name="bucketRef")
|
|
21742
|
+
def bucket_ref(self) -> _BucketReference_502fb39f:
|
|
21743
|
+
'''A reference to a Bucket resource.'''
|
|
21744
|
+
return typing.cast(_BucketReference_502fb39f, jsii.get(self, "bucketRef"))
|
|
21745
|
+
|
|
20374
21746
|
@builtins.property
|
|
20375
21747
|
@jsii.member(jsii_name="bucketRegionalDomainName")
|
|
20376
21748
|
@abc.abstractmethod
|
|
@@ -20991,7 +22363,7 @@ class Bucket(
|
|
|
20991
22363
|
:param id: A unique identifier for this rule. The value cannot be more than 255 characters.
|
|
20992
22364
|
:param noncurrent_version_expiration: Time between when a new version of the object is uploaded to the bucket and when old versions of the object expire. For buckets with versioning enabled (or suspended), specifies the time, in days, between when a new version of the object is uploaded to the bucket and when old versions of the object expire. When object versions expire, Amazon S3 permanently deletes them. If you specify a transition and expiration time, the expiration time must be later than the transition time. The underlying configuration is expressed in whole numbers of days. Providing a Duration that does not represent a whole number of days will result in a runtime or deployment error. Default: - No noncurrent version expiration
|
|
20993
22365
|
:param noncurrent_versions_to_retain: Indicates a maximum number of noncurrent versions to retain. If there are this many more noncurrent versions, Amazon S3 permanently deletes them. Default: - No noncurrent versions to retain
|
|
20994
|
-
:param noncurrent_version_transitions: One or more transition rules that specify when non-current objects transition to a specified storage class. Only for
|
|
22366
|
+
:param noncurrent_version_transitions: One or more transition rules that specify when non-current objects transition to a specified storage class. Only for buckets with versioning enabled (or suspended). If you specify a transition and expiration time, the expiration time must be later than the transition time.
|
|
20995
22367
|
:param object_size_greater_than: Specifies the minimum object size in bytes for this rule to apply to. Objects must be larger than this value in bytes. Default: - No rule
|
|
20996
22368
|
:param object_size_less_than: Specifies the maximum object size in bytes for this rule to apply to. Objects must be smaller than this value in bytes. Default: - No rule
|
|
20997
22369
|
:param prefix: Object key prefix that identifies one or more objects to which this rule applies. Default: - Rule applies to all objects
|
|
@@ -21035,6 +22407,12 @@ class Bucket(
|
|
|
21035
22407
|
|
|
21036
22408
|
return typing.cast(None, jsii.invoke(self, "addMetric", [metric]))
|
|
21037
22409
|
|
|
22410
|
+
@jsii.python.classproperty
|
|
22411
|
+
@jsii.member(jsii_name="PROPERTY_INJECTION_ID")
|
|
22412
|
+
def PROPERTY_INJECTION_ID(cls) -> builtins.str:
|
|
22413
|
+
'''Uniquely identifies this class.'''
|
|
22414
|
+
return typing.cast(builtins.str, jsii.sget(cls, "PROPERTY_INJECTION_ID"))
|
|
22415
|
+
|
|
21038
22416
|
@builtins.property
|
|
21039
22417
|
@jsii.member(jsii_name="bucketArn")
|
|
21040
22418
|
def bucket_arn(self) -> builtins.str:
|
|
@@ -21183,6 +22561,8 @@ __all__ = [
|
|
|
21183
22561
|
"CorsRule",
|
|
21184
22562
|
"EventType",
|
|
21185
22563
|
"Filter",
|
|
22564
|
+
"GrantReplicationPermissionDestinationProps",
|
|
22565
|
+
"GrantReplicationPermissionProps",
|
|
21186
22566
|
"HttpMethods",
|
|
21187
22567
|
"IBucket",
|
|
21188
22568
|
"IBucketNotificationDestination",
|
|
@@ -21294,6 +22674,7 @@ def _typecheckingstub__910b3df1208e67cb52dad0b0b8c5feb43c7bddb0ced50eaf6c9534772
|
|
|
21294
22674
|
id: builtins.str,
|
|
21295
22675
|
*,
|
|
21296
22676
|
bucket: IBucket,
|
|
22677
|
+
document: typing.Optional[_PolicyDocument_3ac34393] = None,
|
|
21297
22678
|
removal_policy: typing.Optional[_RemovalPolicy_9f93c814] = None,
|
|
21298
22679
|
) -> None:
|
|
21299
22680
|
"""Type checking stubs"""
|
|
@@ -21314,6 +22695,7 @@ def _typecheckingstub__70ab6602f43f75a64ae8e8349b5d140cdfefe9af2e4d2352ec6279ed1
|
|
|
21314
22695
|
def _typecheckingstub__4d7b9233434273933326211f004f27c2982fedd89ad904dc86d84c54f0f50ac6(
|
|
21315
22696
|
*,
|
|
21316
22697
|
bucket: IBucket,
|
|
22698
|
+
document: typing.Optional[_PolicyDocument_3ac34393] = None,
|
|
21317
22699
|
removal_policy: typing.Optional[_RemovalPolicy_9f93c814] = None,
|
|
21318
22700
|
) -> None:
|
|
21319
22701
|
"""Type checking stubs"""
|
|
@@ -21502,8 +22884,8 @@ def _typecheckingstub__f63f8766c3f622205e3ea04592d9dbd1cdfdf34d2e6b1aca405f1b211
|
|
|
21502
22884
|
scope: _constructs_77d1e7e8.Construct,
|
|
21503
22885
|
id: builtins.str,
|
|
21504
22886
|
*,
|
|
21505
|
-
iam_role_arn:
|
|
21506
|
-
location_scope:
|
|
22887
|
+
iam_role_arn: builtins.str,
|
|
22888
|
+
location_scope: builtins.str,
|
|
21507
22889
|
tags: typing.Optional[typing.Sequence[typing.Union[_CfnTag_f6864754, typing.Dict[builtins.str, typing.Any]]]] = None,
|
|
21508
22890
|
) -> None:
|
|
21509
22891
|
"""Type checking stubs"""
|
|
@@ -21522,13 +22904,13 @@ def _typecheckingstub__41246c53313d09c72689110109c1c02c98b558c613dd50d35f19becfa
|
|
|
21522
22904
|
pass
|
|
21523
22905
|
|
|
21524
22906
|
def _typecheckingstub__c6ad3ea630d95d457364fa227ccc4159df9b2fe48cab3fd14afc7301612ddce6(
|
|
21525
|
-
value:
|
|
22907
|
+
value: builtins.str,
|
|
21526
22908
|
) -> None:
|
|
21527
22909
|
"""Type checking stubs"""
|
|
21528
22910
|
pass
|
|
21529
22911
|
|
|
21530
22912
|
def _typecheckingstub__80f4ecc1c277ca36e62d80157ee09c7e5856bf9bc1e1542588d3449f958c3302(
|
|
21531
|
-
value:
|
|
22913
|
+
value: builtins.str,
|
|
21532
22914
|
) -> None:
|
|
21533
22915
|
"""Type checking stubs"""
|
|
21534
22916
|
pass
|
|
@@ -21541,8 +22923,8 @@ def _typecheckingstub__34ec64e9e3a170eac86359c24d865c728a0273caa8c470380483ea14c
|
|
|
21541
22923
|
|
|
21542
22924
|
def _typecheckingstub__5f891152429263f2b2cdf0641e18212de422d1b020ebb0f7ffbac1e255090f5d(
|
|
21543
22925
|
*,
|
|
21544
|
-
iam_role_arn:
|
|
21545
|
-
location_scope:
|
|
22926
|
+
iam_role_arn: builtins.str,
|
|
22927
|
+
location_scope: builtins.str,
|
|
21546
22928
|
tags: typing.Optional[typing.Sequence[typing.Union[_CfnTag_f6864754, typing.Dict[builtins.str, typing.Any]]]] = None,
|
|
21547
22929
|
) -> None:
|
|
21548
22930
|
"""Type checking stubs"""
|
|
@@ -21557,11 +22939,28 @@ def _typecheckingstub__effa13924691e4b61b906bb0dc0bd5da8dfc4d4cbd167af0fe9491358
|
|
|
21557
22939
|
name: typing.Optional[builtins.str] = None,
|
|
21558
22940
|
policy: typing.Any = None,
|
|
21559
22941
|
public_access_block_configuration: typing.Optional[typing.Union[_IResolvable_da3f097b, typing.Union[CfnAccessPoint.PublicAccessBlockConfigurationProperty, typing.Dict[builtins.str, typing.Any]]]] = None,
|
|
22942
|
+
tags: typing.Optional[typing.Sequence[typing.Union[_CfnTag_f6864754, typing.Dict[builtins.str, typing.Any]]]] = None,
|
|
21560
22943
|
vpc_configuration: typing.Optional[typing.Union[_IResolvable_da3f097b, typing.Union[CfnAccessPoint.VpcConfigurationProperty, typing.Dict[builtins.str, typing.Any]]]] = None,
|
|
21561
22944
|
) -> None:
|
|
21562
22945
|
"""Type checking stubs"""
|
|
21563
22946
|
pass
|
|
21564
22947
|
|
|
22948
|
+
def _typecheckingstub__27c1fdb406b539ade70eea36bce09782bba11b354442fee5c5d43c938bfd0aee(
|
|
22949
|
+
scope: _constructs_77d1e7e8.Construct,
|
|
22950
|
+
id: builtins.str,
|
|
22951
|
+
arn: builtins.str,
|
|
22952
|
+
) -> None:
|
|
22953
|
+
"""Type checking stubs"""
|
|
22954
|
+
pass
|
|
22955
|
+
|
|
22956
|
+
def _typecheckingstub__9af2790fec8caeab2621c276234587e70ab62b4d6d6f7a82947b3b7326f42deb(
|
|
22957
|
+
scope: _constructs_77d1e7e8.Construct,
|
|
22958
|
+
id: builtins.str,
|
|
22959
|
+
access_point_name: builtins.str,
|
|
22960
|
+
) -> None:
|
|
22961
|
+
"""Type checking stubs"""
|
|
22962
|
+
pass
|
|
22963
|
+
|
|
21565
22964
|
def _typecheckingstub__71b3c7d208bf045aac83ee95ce52f903885375649aecea79c502164e94dcdf8a(
|
|
21566
22965
|
inspector: _TreeInspector_488e0dd5,
|
|
21567
22966
|
) -> None:
|
|
@@ -21604,6 +23003,12 @@ def _typecheckingstub__f1674ffbc32679c9e6b98201180481c7cd25fa6b6b1611ce89faf76ad
|
|
|
21604
23003
|
"""Type checking stubs"""
|
|
21605
23004
|
pass
|
|
21606
23005
|
|
|
23006
|
+
def _typecheckingstub__d6c41b842366f80d771c24147e6f4bdb868bf8899c3f03b128339e380a158e19(
|
|
23007
|
+
value: typing.Optional[typing.List[_CfnTag_f6864754]],
|
|
23008
|
+
) -> None:
|
|
23009
|
+
"""Type checking stubs"""
|
|
23010
|
+
pass
|
|
23011
|
+
|
|
21607
23012
|
def _typecheckingstub__a49ee3ddcfdce1bcd8c198e3823a2490c2f4ac82647902a91b701dbc61ab86b8(
|
|
21608
23013
|
value: typing.Optional[typing.Union[_IResolvable_da3f097b, CfnAccessPoint.VpcConfigurationProperty]],
|
|
21609
23014
|
) -> None:
|
|
@@ -21634,6 +23039,7 @@ def _typecheckingstub__78747b8f8c95f80def774b788cce8b1ff46ec71c89a1b755270401066
|
|
|
21634
23039
|
name: typing.Optional[builtins.str] = None,
|
|
21635
23040
|
policy: typing.Any = None,
|
|
21636
23041
|
public_access_block_configuration: typing.Optional[typing.Union[_IResolvable_da3f097b, typing.Union[CfnAccessPoint.PublicAccessBlockConfigurationProperty, typing.Dict[builtins.str, typing.Any]]]] = None,
|
|
23042
|
+
tags: typing.Optional[typing.Sequence[typing.Union[_CfnTag_f6864754, typing.Dict[builtins.str, typing.Any]]]] = None,
|
|
21637
23043
|
vpc_configuration: typing.Optional[typing.Union[_IResolvable_da3f097b, typing.Union[CfnAccessPoint.VpcConfigurationProperty, typing.Dict[builtins.str, typing.Any]]]] = None,
|
|
21638
23044
|
) -> None:
|
|
21639
23045
|
"""Type checking stubs"""
|
|
@@ -21653,6 +23059,7 @@ def _typecheckingstub__0cfa39e37f5fa17b8234ce2f712ef5cf3bf2c262914967924c19a67f6
|
|
|
21653
23059
|
inventory_configurations: typing.Optional[typing.Union[_IResolvable_da3f097b, typing.Sequence[typing.Union[_IResolvable_da3f097b, typing.Union[CfnBucket.InventoryConfigurationProperty, typing.Dict[builtins.str, typing.Any]]]]]] = None,
|
|
21654
23060
|
lifecycle_configuration: typing.Optional[typing.Union[_IResolvable_da3f097b, typing.Union[CfnBucket.LifecycleConfigurationProperty, typing.Dict[builtins.str, typing.Any]]]] = None,
|
|
21655
23061
|
logging_configuration: typing.Optional[typing.Union[_IResolvable_da3f097b, typing.Union[CfnBucket.LoggingConfigurationProperty, typing.Dict[builtins.str, typing.Any]]]] = None,
|
|
23062
|
+
metadata_configuration: typing.Optional[typing.Union[_IResolvable_da3f097b, typing.Union[CfnBucket.MetadataConfigurationProperty, typing.Dict[builtins.str, typing.Any]]]] = None,
|
|
21656
23063
|
metadata_table_configuration: typing.Optional[typing.Union[_IResolvable_da3f097b, typing.Union[CfnBucket.MetadataTableConfigurationProperty, typing.Dict[builtins.str, typing.Any]]]] = None,
|
|
21657
23064
|
metrics_configurations: typing.Optional[typing.Union[_IResolvable_da3f097b, typing.Sequence[typing.Union[_IResolvable_da3f097b, typing.Union[CfnBucket.MetricsConfigurationProperty, typing.Dict[builtins.str, typing.Any]]]]]] = None,
|
|
21658
23065
|
notification_configuration: typing.Optional[typing.Union[_IResolvable_da3f097b, typing.Union[CfnBucket.NotificationConfigurationProperty, typing.Dict[builtins.str, typing.Any]]]] = None,
|
|
@@ -21668,6 +23075,22 @@ def _typecheckingstub__0cfa39e37f5fa17b8234ce2f712ef5cf3bf2c262914967924c19a67f6
|
|
|
21668
23075
|
"""Type checking stubs"""
|
|
21669
23076
|
pass
|
|
21670
23077
|
|
|
23078
|
+
def _typecheckingstub__f218931ccffe0d6407edcfc452f39d64609d0cceec6ea04313fa364cf5a4f3df(
|
|
23079
|
+
scope: _constructs_77d1e7e8.Construct,
|
|
23080
|
+
id: builtins.str,
|
|
23081
|
+
arn: builtins.str,
|
|
23082
|
+
) -> None:
|
|
23083
|
+
"""Type checking stubs"""
|
|
23084
|
+
pass
|
|
23085
|
+
|
|
23086
|
+
def _typecheckingstub__08ccc75711c8ec0fedd9747e674f732b2653120a392c01413875cc0df08e91fa(
|
|
23087
|
+
scope: _constructs_77d1e7e8.Construct,
|
|
23088
|
+
id: builtins.str,
|
|
23089
|
+
bucket_name: builtins.str,
|
|
23090
|
+
) -> None:
|
|
23091
|
+
"""Type checking stubs"""
|
|
23092
|
+
pass
|
|
23093
|
+
|
|
21671
23094
|
def _typecheckingstub__176de3038f1db142ab99b5462bff80dea14e125a51ef31e58c268c52bbbc103e(
|
|
21672
23095
|
inspector: _TreeInspector_488e0dd5,
|
|
21673
23096
|
) -> None:
|
|
@@ -21740,6 +23163,12 @@ def _typecheckingstub__4b77f03fd3b3677eb1438ce6b2a3991e386c73bd8744df53f5e4ba5ea
|
|
|
21740
23163
|
"""Type checking stubs"""
|
|
21741
23164
|
pass
|
|
21742
23165
|
|
|
23166
|
+
def _typecheckingstub__13b4697762f20bd91e57f93bf2922758e68d9cbc3f74472e7da7f9ce2f7dcdca(
|
|
23167
|
+
value: typing.Optional[typing.Union[_IResolvable_da3f097b, CfnBucket.MetadataConfigurationProperty]],
|
|
23168
|
+
) -> None:
|
|
23169
|
+
"""Type checking stubs"""
|
|
23170
|
+
pass
|
|
23171
|
+
|
|
21743
23172
|
def _typecheckingstub__fd29cd03877c191999cfea4d853581d72ddc33cf57cc7d4cba47336d1b9943ec(
|
|
21744
23173
|
value: typing.Optional[typing.Union[_IResolvable_da3f097b, CfnBucket.MetadataTableConfigurationProperty]],
|
|
21745
23174
|
) -> None:
|
|
@@ -21943,6 +23372,26 @@ def _typecheckingstub__cdee89cd1b92609a0e10908dd9212db336cab5c5d1cccdb91cf76efe8
|
|
|
21943
23372
|
"""Type checking stubs"""
|
|
21944
23373
|
pass
|
|
21945
23374
|
|
|
23375
|
+
def _typecheckingstub__e3f0960f8776684cd6b2c423b1320b1ffcb2a6165dba0f275451667884000458(
|
|
23376
|
+
*,
|
|
23377
|
+
configuration_state: builtins.str,
|
|
23378
|
+
encryption_configuration: typing.Optional[typing.Union[_IResolvable_da3f097b, typing.Union[CfnBucket.MetadataTableEncryptionConfigurationProperty, typing.Dict[builtins.str, typing.Any]]]] = None,
|
|
23379
|
+
table_arn: typing.Optional[builtins.str] = None,
|
|
23380
|
+
table_name: typing.Optional[builtins.str] = None,
|
|
23381
|
+
) -> None:
|
|
23382
|
+
"""Type checking stubs"""
|
|
23383
|
+
pass
|
|
23384
|
+
|
|
23385
|
+
def _typecheckingstub__4831e8bf78dc983eaf9b010780417c4e6b808ef19beac1729f89ba7bab53d4d9(
|
|
23386
|
+
*,
|
|
23387
|
+
record_expiration: typing.Union[_IResolvable_da3f097b, typing.Union[CfnBucket.RecordExpirationProperty, typing.Dict[builtins.str, typing.Any]]],
|
|
23388
|
+
encryption_configuration: typing.Optional[typing.Union[_IResolvable_da3f097b, typing.Union[CfnBucket.MetadataTableEncryptionConfigurationProperty, typing.Dict[builtins.str, typing.Any]]]] = None,
|
|
23389
|
+
table_arn: typing.Optional[builtins.str] = None,
|
|
23390
|
+
table_name: typing.Optional[builtins.str] = None,
|
|
23391
|
+
) -> None:
|
|
23392
|
+
"""Type checking stubs"""
|
|
23393
|
+
pass
|
|
23394
|
+
|
|
21946
23395
|
def _typecheckingstub__599ef02853407bceb720424e9874eda7b5e2324f3be8a787939e9d5f9a7d5765(
|
|
21947
23396
|
*,
|
|
21948
23397
|
event: builtins.str,
|
|
@@ -21969,6 +23418,24 @@ def _typecheckingstub__01491815d16a808a2dce4d193703181c42183e3e002a73f20f0f129d4
|
|
|
21969
23418
|
"""Type checking stubs"""
|
|
21970
23419
|
pass
|
|
21971
23420
|
|
|
23421
|
+
def _typecheckingstub__5ba4e02b348fb368852d2eaf89da64d6c5432c39d5f771482cd73c5e29aea1d2(
|
|
23422
|
+
*,
|
|
23423
|
+
journal_table_configuration: typing.Union[_IResolvable_da3f097b, typing.Union[CfnBucket.JournalTableConfigurationProperty, typing.Dict[builtins.str, typing.Any]]],
|
|
23424
|
+
destination: typing.Optional[typing.Union[_IResolvable_da3f097b, typing.Union[CfnBucket.MetadataDestinationProperty, typing.Dict[builtins.str, typing.Any]]]] = None,
|
|
23425
|
+
inventory_table_configuration: typing.Optional[typing.Union[_IResolvable_da3f097b, typing.Union[CfnBucket.InventoryTableConfigurationProperty, typing.Dict[builtins.str, typing.Any]]]] = None,
|
|
23426
|
+
) -> None:
|
|
23427
|
+
"""Type checking stubs"""
|
|
23428
|
+
pass
|
|
23429
|
+
|
|
23430
|
+
def _typecheckingstub__22a357b76c39088e89c9805c6e3fd369bf83472fbcec37ad505b7803d1960e7e(
|
|
23431
|
+
*,
|
|
23432
|
+
table_bucket_type: builtins.str,
|
|
23433
|
+
table_bucket_arn: typing.Optional[builtins.str] = None,
|
|
23434
|
+
table_namespace: typing.Optional[builtins.str] = None,
|
|
23435
|
+
) -> None:
|
|
23436
|
+
"""Type checking stubs"""
|
|
23437
|
+
pass
|
|
23438
|
+
|
|
21972
23439
|
def _typecheckingstub__5ca454da0b88593246b2d389c687410262b1687eb76eddb67e9375ebad28093f(
|
|
21973
23440
|
*,
|
|
21974
23441
|
s3_tables_destination: typing.Union[_IResolvable_da3f097b, typing.Union[CfnBucket.S3TablesDestinationProperty, typing.Dict[builtins.str, typing.Any]]],
|
|
@@ -21976,6 +23443,14 @@ def _typecheckingstub__5ca454da0b88593246b2d389c687410262b1687eb76eddb67e9375eba
|
|
|
21976
23443
|
"""Type checking stubs"""
|
|
21977
23444
|
pass
|
|
21978
23445
|
|
|
23446
|
+
def _typecheckingstub__638725ba5e16c7545010085fee3839279059f8036e3a36e81a6da12f68c3c96d(
|
|
23447
|
+
*,
|
|
23448
|
+
sse_algorithm: builtins.str,
|
|
23449
|
+
kms_key_arn: typing.Optional[builtins.str] = None,
|
|
23450
|
+
) -> None:
|
|
23451
|
+
"""Type checking stubs"""
|
|
23452
|
+
pass
|
|
23453
|
+
|
|
21979
23454
|
def _typecheckingstub__ad42f7d497f9da61528b895926b56b4a48de1121e97039ba589509b4f56b32f7(
|
|
21980
23455
|
*,
|
|
21981
23456
|
id: builtins.str,
|
|
@@ -22083,6 +23558,14 @@ def _typecheckingstub__fa7475a01d5eb0e88eb78519cde0c5de6ace577577dd1b48ec5816cca
|
|
|
22083
23558
|
"""Type checking stubs"""
|
|
22084
23559
|
pass
|
|
22085
23560
|
|
|
23561
|
+
def _typecheckingstub__ced4e05e0d07a000e813825522beab4af447ff67164c61600ff7eb3b0afab28c(
|
|
23562
|
+
*,
|
|
23563
|
+
expiration: builtins.str,
|
|
23564
|
+
days: typing.Optional[jsii.Number] = None,
|
|
23565
|
+
) -> None:
|
|
23566
|
+
"""Type checking stubs"""
|
|
23567
|
+
pass
|
|
23568
|
+
|
|
22086
23569
|
def _typecheckingstub__8aaa5db61b5a90e427f3a57c45b3bd725fb80aeca08f50b45728a5d954ee837f(
|
|
22087
23570
|
*,
|
|
22088
23571
|
host_name: builtins.str,
|
|
@@ -22382,6 +23865,7 @@ def _typecheckingstub__658a4165ec8804b9770871bbb27764713f55dc53e9c9e990dca120e77
|
|
|
22382
23865
|
inventory_configurations: typing.Optional[typing.Union[_IResolvable_da3f097b, typing.Sequence[typing.Union[_IResolvable_da3f097b, typing.Union[CfnBucket.InventoryConfigurationProperty, typing.Dict[builtins.str, typing.Any]]]]]] = None,
|
|
22383
23866
|
lifecycle_configuration: typing.Optional[typing.Union[_IResolvable_da3f097b, typing.Union[CfnBucket.LifecycleConfigurationProperty, typing.Dict[builtins.str, typing.Any]]]] = None,
|
|
22384
23867
|
logging_configuration: typing.Optional[typing.Union[_IResolvable_da3f097b, typing.Union[CfnBucket.LoggingConfigurationProperty, typing.Dict[builtins.str, typing.Any]]]] = None,
|
|
23868
|
+
metadata_configuration: typing.Optional[typing.Union[_IResolvable_da3f097b, typing.Union[CfnBucket.MetadataConfigurationProperty, typing.Dict[builtins.str, typing.Any]]]] = None,
|
|
22385
23869
|
metadata_table_configuration: typing.Optional[typing.Union[_IResolvable_da3f097b, typing.Union[CfnBucket.MetadataTableConfigurationProperty, typing.Dict[builtins.str, typing.Any]]]] = None,
|
|
22386
23870
|
metrics_configurations: typing.Optional[typing.Union[_IResolvable_da3f097b, typing.Sequence[typing.Union[_IResolvable_da3f097b, typing.Union[CfnBucket.MetricsConfigurationProperty, typing.Dict[builtins.str, typing.Any]]]]]] = None,
|
|
22387
23871
|
notification_configuration: typing.Optional[typing.Union[_IResolvable_da3f097b, typing.Union[CfnBucket.NotificationConfigurationProperty, typing.Dict[builtins.str, typing.Any]]]] = None,
|
|
@@ -22838,6 +24322,22 @@ def _typecheckingstub__ff4b8a813f6812ab1464fced92fa61b97e151767705973ce994c0970f
|
|
|
22838
24322
|
"""Type checking stubs"""
|
|
22839
24323
|
pass
|
|
22840
24324
|
|
|
24325
|
+
def _typecheckingstub__c28989eb119121ac7809e78ba2038558e14755021078bf7d97f894b34bc3311a(
|
|
24326
|
+
*,
|
|
24327
|
+
bucket: IBucket,
|
|
24328
|
+
encryption_key: typing.Optional[_IKey_5f11635f] = None,
|
|
24329
|
+
) -> None:
|
|
24330
|
+
"""Type checking stubs"""
|
|
24331
|
+
pass
|
|
24332
|
+
|
|
24333
|
+
def _typecheckingstub__892523669f29c26ab296b743291f04387d44edf1630a2288ab68d906f972d8ff(
|
|
24334
|
+
*,
|
|
24335
|
+
destinations: typing.Sequence[typing.Union[GrantReplicationPermissionDestinationProps, typing.Dict[builtins.str, typing.Any]]],
|
|
24336
|
+
source_decryption_key: typing.Optional[_IKey_5f11635f] = None,
|
|
24337
|
+
) -> None:
|
|
24338
|
+
"""Type checking stubs"""
|
|
24339
|
+
pass
|
|
24340
|
+
|
|
22841
24341
|
def _typecheckingstub__eee382ff86c17d46379012dcccee86976ea92e15cb6d63c3e3f4e853c058ac53(
|
|
22842
24342
|
value: typing.Optional[BucketPolicy],
|
|
22843
24343
|
) -> None:
|
|
@@ -22934,6 +24434,15 @@ def _typecheckingstub__96c877c118f5e8a1b2d7e8d8a3a593f12688f174eaf15ecd7c8198344
|
|
|
22934
24434
|
"""Type checking stubs"""
|
|
22935
24435
|
pass
|
|
22936
24436
|
|
|
24437
|
+
def _typecheckingstub__b2772da13be98dbf89b1d2aec491a21f6a48f84e8d96dacef9ad681c2a3c690a(
|
|
24438
|
+
identity: _IGrantable_71c4f5de,
|
|
24439
|
+
*,
|
|
24440
|
+
destinations: typing.Sequence[typing.Union[GrantReplicationPermissionDestinationProps, typing.Dict[builtins.str, typing.Any]]],
|
|
24441
|
+
source_decryption_key: typing.Optional[_IKey_5f11635f] = None,
|
|
24442
|
+
) -> None:
|
|
24443
|
+
"""Type checking stubs"""
|
|
24444
|
+
pass
|
|
24445
|
+
|
|
22937
24446
|
def _typecheckingstub__d80dff4704f5345b5514fd2dfceb4cf2e1b6f5dbd368505a740522685f4b2404(
|
|
22938
24447
|
identity: _IGrantable_71c4f5de,
|
|
22939
24448
|
objects_key_pattern: typing.Any = None,
|
|
@@ -23011,7 +24520,7 @@ def _typecheckingstub__993ef29805b7b5223d6327faefc00c505108a1497efd501af949abb29
|
|
|
23011
24520
|
|
|
23012
24521
|
def _typecheckingstub__c383a5262868f93c81da67f9058929f12151009bdb49b69a87ed6e62b4fe28a9(
|
|
23013
24522
|
scope: _constructs_77d1e7e8.Construct,
|
|
23014
|
-
bucket:
|
|
24523
|
+
bucket: _IBucketRef_3debe44e,
|
|
23015
24524
|
) -> None:
|
|
23016
24525
|
"""Type checking stubs"""
|
|
23017
24526
|
pass
|
|
@@ -23316,6 +24825,15 @@ def _typecheckingstub__b4fefa6383b8da3c85e674cc7aa9017f54bbafd94b3f086c041a65129
|
|
|
23316
24825
|
"""Type checking stubs"""
|
|
23317
24826
|
pass
|
|
23318
24827
|
|
|
24828
|
+
def _typecheckingstub__ae08375448013fd67c288fc732b4e3bd7135520a849542f49221c12f286f9554(
|
|
24829
|
+
identity: _IGrantable_71c4f5de,
|
|
24830
|
+
*,
|
|
24831
|
+
destinations: typing.Sequence[typing.Union[GrantReplicationPermissionDestinationProps, typing.Dict[builtins.str, typing.Any]]],
|
|
24832
|
+
source_decryption_key: typing.Optional[_IKey_5f11635f] = None,
|
|
24833
|
+
) -> None:
|
|
24834
|
+
"""Type checking stubs"""
|
|
24835
|
+
pass
|
|
24836
|
+
|
|
23319
24837
|
def _typecheckingstub__857aef69f081fcbca7e312228a28a24530a67adbfdf13e38eca13f14153683be(
|
|
23320
24838
|
identity: _IGrantable_71c4f5de,
|
|
23321
24839
|
objects_key_pattern: typing.Any = None,
|
|
@@ -23547,3 +25065,6 @@ def _typecheckingstub__3cb691a849de33681a4f0021424f266609c2785cf8cbf5306c98726a6
|
|
|
23547
25065
|
) -> None:
|
|
23548
25066
|
"""Type checking stubs"""
|
|
23549
25067
|
pass
|
|
25068
|
+
|
|
25069
|
+
for cls in [IBucket, IBucketNotificationDestination]:
|
|
25070
|
+
typing.cast(typing.Any, cls).__protocol_attrs__ = typing.cast(typing.Any, cls).__protocol_attrs__ - set(['__jsii_proxy_class__', '__jsii_type__'])
|