aws-delivlib 13.5.2 → 13.5.6

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.
@@ -239,7 +239,7 @@
239
239
  }
240
240
  }
241
241
  },
242
- "865d91d34dedec5eb45b0722f5824b703f942f0f64dfae80f79edef0a9ac1537": {
242
+ "cd95209784fee90dcf2c073a3e9064bbdd77647e26fedc020a17885c3b8b1902": {
243
243
  "source": {
244
244
  "path": "delivlib-test.template.json",
245
245
  "packaging": "file"
@@ -247,7 +247,7 @@
247
247
  "destinations": {
248
248
  "712950704752-us-east-1": {
249
249
  "bucketName": "cdk-hnb659fds-assets-712950704752-us-east-1",
250
- "objectKey": "865d91d34dedec5eb45b0722f5824b703f942f0f64dfae80f79edef0a9ac1537.json",
250
+ "objectKey": "cd95209784fee90dcf2c073a3e9064bbdd77647e26fedc020a17885c3b8b1902.json",
251
251
  "region": "us-east-1",
252
252
  "assumeRoleArn": "arn:${AWS::Partition}:iam::712950704752:role/cdk-hnb659fds-file-publishing-role-712950704752-us-east-1"
253
253
  }
@@ -6664,6 +6664,19 @@
6664
6664
  "aws:cdk:path": "delivlib-test/CodeCommitPipeline/AutoBuild/GitHubCodeBuildLogsSAR"
6665
6665
  }
6666
6666
  },
6667
+ "CodeCommitPipelineChangeControllerCalendar94B1DEA8": {
6668
+ "Type": "AWS::S3::Bucket",
6669
+ "Properties": {
6670
+ "VersioningConfiguration": {
6671
+ "Status": "Enabled"
6672
+ }
6673
+ },
6674
+ "UpdateReplacePolicy": "Delete",
6675
+ "DeletionPolicy": "Delete",
6676
+ "Metadata": {
6677
+ "aws:cdk:path": "delivlib-test/CodeCommitPipeline/ChangeController/Calendar/Resource"
6678
+ }
6679
+ },
6667
6680
  "CodeCommitPipelineChangeControllerCalendarNotifications1AFBE6E9": {
6668
6681
  "Type": "Custom::S3BucketNotifications",
6669
6682
  "Properties": {
@@ -6710,19 +6723,6 @@
6710
6723
  "aws:cdk:path": "delivlib-test/CodeCommitPipeline/ChangeController/Calendar/Notifications/Resource"
6711
6724
  }
6712
6725
  },
6713
- "CodeCommitPipelineChangeControllerCalendar94B1DEA8": {
6714
- "Type": "AWS::S3::Bucket",
6715
- "Properties": {
6716
- "VersioningConfiguration": {
6717
- "Status": "Enabled"
6718
- }
6719
- },
6720
- "UpdateReplacePolicy": "Delete",
6721
- "DeletionPolicy": "Delete",
6722
- "Metadata": {
6723
- "aws:cdk:path": "delivlib-test/CodeCommitPipeline/ChangeController/Calendar/Resource"
6724
- }
6725
- },
6726
6726
  "CodeCommitPipelineChangeControllerCalendarAllowBucketNotificationsTodelivlibtestCodeCommitPipelineChangeControllerFunction83CC56EB3330DA3F": {
6727
6727
  "Type": "AWS::Lambda::Permission",
6728
6728
  "Properties": {
@@ -7661,7 +7661,7 @@
7661
7661
  "Properties": {
7662
7662
  "Description": "AWS CloudFormation handler for \"Custom::S3BucketNotifications\" resources (@aws-cdk/aws-s3)",
7663
7663
  "Code": {
7664
- "ZipFile": "import boto3 # type: ignore\nimport json\nimport logging\nimport urllib.request\n\ns3 = boto3.client(\"s3\")\n\nEVENTBRIDGE_CONFIGURATION = 'EventBridgeConfiguration'\n\nCONFIGURATION_TYPES = [\"TopicConfigurations\", \"QueueConfigurations\", \"LambdaFunctionConfigurations\"]\n\ndef handler(event: dict, context):\n response_status = \"SUCCESS\"\n error_message = \"\"\n try:\n props = event[\"ResourceProperties\"]\n bucket = props[\"BucketName\"]\n notification_configuration = props[\"NotificationConfiguration\"]\n request_type = event[\"RequestType\"]\n managed = props.get('Managed', 'true').lower() == 'true'\n stack_id = event['StackId']\n\n if managed:\n config = handle_managed(request_type, notification_configuration)\n else:\n config = handle_unmanaged(bucket, stack_id, request_type, notification_configuration)\n\n put_bucket_notification_configuration(bucket, config)\n except Exception as e:\n logging.exception(\"Failed to put bucket notification configuration\")\n response_status = \"FAILED\"\n error_message = f\"Error: {str(e)}. \"\n finally:\n submit_response(event, context, response_status, error_message)\n\n\ndef handle_managed(request_type, notification_configuration):\n if request_type == 'Delete':\n return {}\n return notification_configuration\n\n\ndef handle_unmanaged(bucket, stack_id, request_type, notification_configuration):\n\n # find external notifications\n external_notifications = find_external_notifications(bucket, stack_id)\n\n # if delete, that's all we need\n if request_type == 'Delete':\n return external_notifications\n\n def with_id(notification):\n notification['Id'] = f\"{stack_id}-{hash(json.dumps(notification, sort_keys=True))}\"\n return notification\n\n # otherwise, merge external with incoming config and augment with id\n notifications = {}\n for t in CONFIGURATION_TYPES:\n external = external_notifications.get(t, [])\n incoming = [with_id(n) for n in notification_configuration.get(t, [])]\n notifications[t] = external + incoming\n\n # EventBridge configuration is a special case because it's just an empty object if it exists\n if EVENTBRIDGE_CONFIGURATION in notification_configuration:\n notifications[EVENTBRIDGE_CONFIGURATION] = notification_configuration[EVENTBRIDGE_CONFIGURATION]\n elif EVENTBRIDGE_CONFIGURATION in external_notifications:\n notifications[EVENTBRIDGE_CONFIGURATION] = external_notifications[EVENTBRIDGE_CONFIGURATION]\n\n return notifications\n\n\ndef find_external_notifications(bucket, stack_id):\n existing_notifications = get_bucket_notification_configuration(bucket)\n external_notifications = {}\n for t in CONFIGURATION_TYPES:\n # if the notification was created by us, we know what id to expect\n # so we can filter by it.\n external_notifications[t] = [n for n in existing_notifications.get(t, []) if not n['Id'].startswith(f\"{stack_id}-\")]\n\n # always treat EventBridge configuration as an external config if it already exists\n # as there is no way to determine whether it's managed by us or not\n if EVENTBRIDGE_CONFIGURATION in existing_notifications:\n external_notifications[EVENTBRIDGE_CONFIGURATION] = existing_notifications[EVENTBRIDGE_CONFIGURATION]\n\n return external_notifications\n\n\ndef get_bucket_notification_configuration(bucket):\n return s3.get_bucket_notification_configuration(Bucket=bucket)\n\n\ndef put_bucket_notification_configuration(bucket, notification_configuration):\n s3.put_bucket_notification_configuration(Bucket=bucket, NotificationConfiguration=notification_configuration)\n\n\ndef submit_response(event: dict, context, response_status: str, error_message: str):\n response_body = json.dumps(\n {\n \"Status\": response_status,\n \"Reason\": f\"{error_message}See the details in CloudWatch Log Stream: {context.log_stream_name}\",\n \"PhysicalResourceId\": event.get(\"PhysicalResourceId\") or event[\"LogicalResourceId\"],\n \"StackId\": event[\"StackId\"],\n \"RequestId\": event[\"RequestId\"],\n \"LogicalResourceId\": event[\"LogicalResourceId\"],\n \"NoEcho\": False,\n }\n ).encode(\"utf-8\")\n headers = {\"content-type\": \"\", \"content-length\": str(len(response_body))}\n try:\n req = urllib.request.Request(url=event[\"ResponseURL\"], headers=headers, data=response_body, method=\"PUT\")\n with urllib.request.urlopen(req) as response:\n print(response.read().decode(\"utf-8\"))\n print(\"Status code: \" + response.reason)\n except Exception as e:\n print(\"send(..) failed executing request.urlopen(..): \" + str(e))\n"
7664
+ "ZipFile": "import boto3 # type: ignore\nimport json\nimport logging\nimport urllib.request\n\ns3 = boto3.client(\"s3\")\n\nCONFIGURATION_TYPES = [\"TopicConfigurations\", \"QueueConfigurations\", \"LambdaFunctionConfigurations\"]\n\ndef handler(event: dict, context):\n response_status = \"SUCCESS\"\n error_message = \"\"\n try:\n props = event[\"ResourceProperties\"]\n bucket = props[\"BucketName\"]\n notification_configuration = props[\"NotificationConfiguration\"]\n request_type = event[\"RequestType\"]\n managed = props.get('Managed', 'true').lower() == 'true'\n stack_id = event['StackId']\n\n if managed:\n config = handle_managed(request_type, notification_configuration)\n else:\n config = handle_unmanaged(bucket, stack_id, request_type, notification_configuration)\n\n put_bucket_notification_configuration(bucket, config)\n except Exception as e:\n logging.exception(\"Failed to put bucket notification configuration\")\n response_status = \"FAILED\"\n error_message = f\"Error: {str(e)}. \"\n finally:\n submit_response(event, context, response_status, error_message)\n\n\ndef handle_managed(request_type, notification_configuration):\n if request_type == 'Delete':\n return {}\n return notification_configuration\n\n\ndef handle_unmanaged(bucket, stack_id, request_type, notification_configuration):\n\n # find external notifications\n external_notifications = find_external_notifications(bucket, stack_id)\n\n # if delete, that's all we need\n if request_type == 'Delete':\n return external_notifications\n\n def with_id(notification):\n notification['Id'] = f\"{stack_id}-{hash(json.dumps(notification, sort_keys=True))}\"\n return notification\n\n # otherwise, merge external with incoming config and augment with id\n notifications = {}\n for t in CONFIGURATION_TYPES:\n external = external_notifications.get(t, [])\n incoming = [with_id(n) for n in notification_configuration.get(t, [])]\n notifications[t] = external + incoming\n return notifications\n\n\ndef find_external_notifications(bucket, stack_id):\n existing_notifications = get_bucket_notification_configuration(bucket)\n external_notifications = {}\n for t in CONFIGURATION_TYPES:\n # if the notification was created by us, we know what id to expect\n # so we can filter by it.\n external_notifications[t] = [n for n in existing_notifications.get(t, []) if not n['Id'].startswith(f\"{stack_id}-\")]\n\n return external_notifications\n\n\ndef get_bucket_notification_configuration(bucket):\n return s3.get_bucket_notification_configuration(Bucket=bucket)\n\n\ndef put_bucket_notification_configuration(bucket, notification_configuration):\n s3.put_bucket_notification_configuration(Bucket=bucket, NotificationConfiguration=notification_configuration)\n\n\ndef submit_response(event: dict, context, response_status: str, error_message: str):\n response_body = json.dumps(\n {\n \"Status\": response_status,\n \"Reason\": f\"{error_message}See the details in CloudWatch Log Stream: {context.log_stream_name}\",\n \"PhysicalResourceId\": event.get(\"PhysicalResourceId\") or event[\"LogicalResourceId\"],\n \"StackId\": event[\"StackId\"],\n \"RequestId\": event[\"RequestId\"],\n \"LogicalResourceId\": event[\"LogicalResourceId\"],\n \"NoEcho\": False,\n }\n ).encode(\"utf-8\")\n headers = {\"content-type\": \"\", \"content-length\": str(len(response_body))}\n try:\n req = urllib.request.Request(url=event[\"ResponseURL\"], headers=headers, data=response_body, method=\"PUT\")\n with urllib.request.urlopen(req) as response:\n print(response.read().decode(\"utf-8\"))\n print(\"Status code: \" + response.reason)\n except Exception as e:\n print(\"send(..) failed executing request.urlopen(..): \" + str(e))\n"
7665
7665
  },
7666
7666
  "Handler": "index.handler",
7667
7667
  "Role": {
@@ -23,7 +23,7 @@
23
23
  "validateOnSynth": false,
24
24
  "assumeRoleArn": "arn:${AWS::Partition}:iam::712950704752:role/cdk-hnb659fds-deploy-role-712950704752-us-east-1",
25
25
  "cloudFormationExecutionRoleArn": "arn:${AWS::Partition}:iam::712950704752:role/cdk-hnb659fds-cfn-exec-role-712950704752-us-east-1",
26
- "stackTemplateAssetObjectUrl": "s3://cdk-hnb659fds-assets-712950704752-us-east-1/865d91d34dedec5eb45b0722f5824b703f942f0f64dfae80f79edef0a9ac1537.json",
26
+ "stackTemplateAssetObjectUrl": "s3://cdk-hnb659fds-assets-712950704752-us-east-1/cd95209784fee90dcf2c073a3e9064bbdd77647e26fedc020a17885c3b8b1902.json",
27
27
  "requiresBootstrapStackVersion": 6,
28
28
  "bootstrapStackVersionSsmParameter": "/cdk-bootstrap/hnb659fds/version",
29
29
  "additionalDependencies": [
@@ -82,7 +82,7 @@
82
82
  "type": "aws:cdk:logicalId",
83
83
  "data": "CodeCommitPipelineBuildPipelineArtifactsBucketED2813B3",
84
84
  "trace": [
85
- "new Bucket (/home/runner/work/aws-delivlib/aws-delivlib/node_modules/monocdk/lib/aws-s3/lib/bucket.js:633:26)",
85
+ "new Bucket (/home/runner/work/aws-delivlib/aws-delivlib/node_modules/monocdk/lib/aws-s3/lib/bucket.js:634:26)",
86
86
  "new Pipeline (/home/runner/work/aws-delivlib/aws-delivlib/node_modules/monocdk/lib/aws-codepipeline/lib/pipeline.js:213:27)",
87
87
  "new Pipeline (/home/runner/work/aws-delivlib/aws-delivlib/lib/pipeline.js:50:25)",
88
88
  "new TestStack (/home/runner/work/aws-delivlib/aws-delivlib/lib/__tests__/test-stack.js:43:26)",
@@ -102,8 +102,8 @@
102
102
  "data": "CodeCommitPipelineBuildPipelineArtifactsBucketPolicy97EF6204",
103
103
  "trace": [
104
104
  "new BucketPolicy (/home/runner/work/aws-delivlib/aws-delivlib/node_modules/monocdk/lib/aws-s3/lib/bucket-policy.js:45:25)",
105
- "Bucket.addToResourcePolicy (/home/runner/work/aws-delivlib/aws-delivlib/node_modules/monocdk/lib/aws-s3/lib/bucket.js:155:27)",
106
- "Bucket.enforceSSLStatement (/home/runner/work/aws-delivlib/aws-delivlib/node_modules/monocdk/lib/aws-s3/lib/bucket.js:868:14)",
105
+ "Bucket.addToResourcePolicy (/home/runner/work/aws-delivlib/aws-delivlib/node_modules/monocdk/lib/aws-s3/lib/bucket.js:152:27)",
106
+ "Bucket.enforceSSLStatement (/home/runner/work/aws-delivlib/aws-delivlib/node_modules/monocdk/lib/aws-s3/lib/bucket.js:866:14)",
107
107
  "new Bucket (/home/runner/work/aws-delivlib/aws-delivlib/node_modules/monocdk/lib/aws-s3/lib/bucket.js:670:18)",
108
108
  "new Pipeline (/home/runner/work/aws-delivlib/aws-delivlib/node_modules/monocdk/lib/aws-codepipeline/lib/pipeline.js:213:27)",
109
109
  "new Pipeline (/home/runner/work/aws-delivlib/aws-delivlib/lib/pipeline.js:50:25)",
@@ -147,7 +147,7 @@
147
147
  "Function.addToPrincipal (/home/runner/work/aws-delivlib/aws-delivlib/node_modules/monocdk/lib/aws-iam/lib/grant.js:93:65)",
148
148
  "Function.addToPrincipalOrResource (/home/runner/work/aws-delivlib/aws-delivlib/node_modules/monocdk/lib/aws-iam/lib/grant.js:47:30)",
149
149
  "Bucket.grant (/home/runner/work/aws-delivlib/aws-delivlib/node_modules/monocdk/lib/aws-s3/lib/bucket.js:486:31)",
150
- "Bucket.grantReadWrite (/home/runner/work/aws-delivlib/aws-delivlib/node_modules/monocdk/lib/aws-s3/lib/bucket.js:366:21)",
150
+ "Bucket.grantReadWrite (/home/runner/work/aws-delivlib/aws-delivlib/node_modules/monocdk/lib/aws-s3/lib/bucket.js:363:21)",
151
151
  "new Pipeline (/home/runner/work/aws-delivlib/aws-delivlib/node_modules/monocdk/lib/aws-codepipeline/lib/pipeline.js:237:29)",
152
152
  "new Pipeline (/home/runner/work/aws-delivlib/aws-delivlib/lib/pipeline.js:50:25)",
153
153
  "new TestStack (/home/runner/work/aws-delivlib/aws-delivlib/lib/__tests__/test-stack.js:43:26)",
@@ -2398,16 +2398,13 @@
2398
2398
  ]
2399
2399
  }
2400
2400
  ],
2401
- "/delivlib-test/CodeCommitPipeline/ChangeController/Calendar/Notifications/Resource": [
2401
+ "/delivlib-test/CodeCommitPipeline/ChangeController/Calendar/Resource": [
2402
2402
  {
2403
2403
  "type": "aws:cdk:logicalId",
2404
- "data": "CodeCommitPipelineChangeControllerCalendarNotifications1AFBE6E9",
2404
+ "data": "CodeCommitPipelineChangeControllerCalendar94B1DEA8",
2405
2405
  "trace": [
2406
- "BucketNotifications.createResourceOnce (/home/runner/work/aws-delivlib/aws-delivlib/node_modules/monocdk/lib/aws-s3/lib/notifications-resource/notifications-resource.js:101:29)",
2407
- "BucketNotifications.addNotification (/home/runner/work/aws-delivlib/aws-delivlib/node_modules/monocdk/lib/aws-s3/lib/notifications-resource/notifications-resource.js:45:31)",
2408
- "Bucket.addEventNotification (/home/runner/work/aws-delivlib/aws-delivlib/node_modules/monocdk/lib/aws-s3/lib/bucket.js:424:28)",
2409
- "Bucket.addObjectCreatedNotification (/home/runner/work/aws-delivlib/aws-delivlib/node_modules/monocdk/lib/aws-s3/lib/bucket.js:439:21)",
2410
- "new ChangeController (/home/runner/work/aws-delivlib/aws-delivlib/lib/change-controller.js:62:23)",
2406
+ "new Bucket (/home/runner/work/aws-delivlib/aws-delivlib/node_modules/monocdk/lib/aws-s3/lib/bucket.js:634:26)",
2407
+ "new ChangeController (/home/runner/work/aws-delivlib/aws-delivlib/lib/change-controller.js:36:47)",
2411
2408
  "Pipeline.addChangeControl (/home/runner/work/aws-delivlib/aws-delivlib/lib/pipeline.js:154:16)",
2412
2409
  "new TestStack (/home/runner/work/aws-delivlib/aws-delivlib/lib/__tests__/test-stack.js:181:18)",
2413
2410
  "Object.<anonymous> (/home/runner/work/aws-delivlib/aws-delivlib/lib/__tests__/integ.delivlib.js:29:1)",
@@ -2420,13 +2417,18 @@
2420
2417
  ]
2421
2418
  }
2422
2419
  ],
2423
- "/delivlib-test/CodeCommitPipeline/ChangeController/Calendar/Resource": [
2420
+ "/delivlib-test/CodeCommitPipeline/ChangeController/Calendar/Notifications/Resource": [
2424
2421
  {
2425
2422
  "type": "aws:cdk:logicalId",
2426
- "data": "CodeCommitPipelineChangeControllerCalendar94B1DEA8",
2423
+ "data": "CodeCommitPipelineChangeControllerCalendarNotifications1AFBE6E9",
2427
2424
  "trace": [
2428
- "new Bucket (/home/runner/work/aws-delivlib/aws-delivlib/node_modules/monocdk/lib/aws-s3/lib/bucket.js:633:26)",
2429
- "new ChangeController (/home/runner/work/aws-delivlib/aws-delivlib/lib/change-controller.js:36:47)",
2425
+ "BucketNotifications.createResourceOnce (/home/runner/work/aws-delivlib/aws-delivlib/node_modules/monocdk/lib/aws-s3/lib/notifications-resource/notifications-resource.js:98:29)",
2426
+ "BucketNotifications.addNotification (/home/runner/work/aws-delivlib/aws-delivlib/node_modules/monocdk/lib/aws-s3/lib/notifications-resource/notifications-resource.js:45:31)",
2427
+ "/home/runner/work/aws-delivlib/aws-delivlib/node_modules/monocdk/lib/aws-s3/lib/bucket.js:421:63",
2428
+ "Bucket.withNotifications (/home/runner/work/aws-delivlib/aws-delivlib/node_modules/monocdk/lib/aws-s3/lib/bucket.js:430:9)",
2429
+ "Bucket.addEventNotification (/home/runner/work/aws-delivlib/aws-delivlib/node_modules/monocdk/lib/aws-s3/lib/bucket.js:421:14)",
2430
+ "Bucket.addObjectCreatedNotification (/home/runner/work/aws-delivlib/aws-delivlib/node_modules/monocdk/lib/aws-s3/lib/bucket.js:445:21)",
2431
+ "new ChangeController (/home/runner/work/aws-delivlib/aws-delivlib/lib/change-controller.js:62:23)",
2430
2432
  "Pipeline.addChangeControl (/home/runner/work/aws-delivlib/aws-delivlib/lib/pipeline.js:154:16)",
2431
2433
  "new TestStack (/home/runner/work/aws-delivlib/aws-delivlib/lib/__tests__/test-stack.js:181:18)",
2432
2434
  "Object.<anonymous> (/home/runner/work/aws-delivlib/aws-delivlib/lib/__tests__/integ.delivlib.js:29:1)",
@@ -2447,8 +2449,10 @@
2447
2449
  "NodejsFunction.addPermission (/home/runner/work/aws-delivlib/aws-delivlib/node_modules/monocdk/lib/aws-lambda/lib/function-base.js:44:9)",
2448
2450
  "LambdaDestination.bind (/home/runner/work/aws-delivlib/aws-delivlib/node_modules/monocdk/lib/aws-s3-notifications/lib/lambda.js:44:21)",
2449
2451
  "BucketNotifications.addNotification (/home/runner/work/aws-delivlib/aws-delivlib/node_modules/monocdk/lib/aws-s3/lib/notifications-resource/notifications-resource.js:48:36)",
2450
- "Bucket.addEventNotification (/home/runner/work/aws-delivlib/aws-delivlib/node_modules/monocdk/lib/aws-s3/lib/bucket.js:424:28)",
2451
- "Bucket.addObjectCreatedNotification (/home/runner/work/aws-delivlib/aws-delivlib/node_modules/monocdk/lib/aws-s3/lib/bucket.js:439:21)",
2452
+ "/home/runner/work/aws-delivlib/aws-delivlib/node_modules/monocdk/lib/aws-s3/lib/bucket.js:421:63",
2453
+ "Bucket.withNotifications (/home/runner/work/aws-delivlib/aws-delivlib/node_modules/monocdk/lib/aws-s3/lib/bucket.js:430:9)",
2454
+ "Bucket.addEventNotification (/home/runner/work/aws-delivlib/aws-delivlib/node_modules/monocdk/lib/aws-s3/lib/bucket.js:421:14)",
2455
+ "Bucket.addObjectCreatedNotification (/home/runner/work/aws-delivlib/aws-delivlib/node_modules/monocdk/lib/aws-s3/lib/bucket.js:445:21)",
2452
2456
  "new ChangeController (/home/runner/work/aws-delivlib/aws-delivlib/lib/change-controller.js:62:23)",
2453
2457
  "Pipeline.addChangeControl (/home/runner/work/aws-delivlib/aws-delivlib/lib/pipeline.js:154:16)",
2454
2458
  "new TestStack (/home/runner/work/aws-delivlib/aws-delivlib/lib/__tests__/test-stack.js:181:18)",
@@ -3024,12 +3028,14 @@
3024
3028
  "data": "BucketNotificationsHandler050a0587b7544547bf325f094a3db834RoleB6FB88EC",
3025
3029
  "trace": [
3026
3030
  "new Role (/home/runner/work/aws-delivlib/aws-delivlib/node_modules/monocdk/lib/aws-iam/lib/role.js:75:22)",
3027
- "new NotificationsResourceHandler (/home/runner/work/aws-delivlib/aws-delivlib/node_modules/monocdk/lib/aws-s3/lib/notifications-resource/notifications-resource-handler.js:31:21)",
3028
- "Function.singleton (/home/runner/work/aws-delivlib/aws-delivlib/node_modules/monocdk/lib/aws-s3/lib/notifications-resource/notifications-resource-handler.js:79:22)",
3029
- "BucketNotifications.createResourceOnce (/home/runner/work/aws-delivlib/aws-delivlib/node_modules/monocdk/lib/aws-s3/lib/notifications-resource/notifications-resource.js:93:91)",
3031
+ "new NotificationsResourceHandler (/home/runner/work/aws-delivlib/aws-delivlib/node_modules/monocdk/lib/aws-s3/lib/notifications-resource/notifications-resource-handler.js:35:72)",
3032
+ "Function.singleton (/home/runner/work/aws-delivlib/aws-delivlib/node_modules/monocdk/lib/aws-s3/lib/notifications-resource/notifications-resource-handler.js:85:22)",
3033
+ "BucketNotifications.createResourceOnce (/home/runner/work/aws-delivlib/aws-delivlib/node_modules/monocdk/lib/aws-s3/lib/notifications-resource/notifications-resource.js:88:91)",
3030
3034
  "BucketNotifications.addNotification (/home/runner/work/aws-delivlib/aws-delivlib/node_modules/monocdk/lib/aws-s3/lib/notifications-resource/notifications-resource.js:45:31)",
3031
- "Bucket.addEventNotification (/home/runner/work/aws-delivlib/aws-delivlib/node_modules/monocdk/lib/aws-s3/lib/bucket.js:424:28)",
3032
- "Bucket.addObjectCreatedNotification (/home/runner/work/aws-delivlib/aws-delivlib/node_modules/monocdk/lib/aws-s3/lib/bucket.js:439:21)",
3035
+ "/home/runner/work/aws-delivlib/aws-delivlib/node_modules/monocdk/lib/aws-s3/lib/bucket.js:421:63",
3036
+ "Bucket.withNotifications (/home/runner/work/aws-delivlib/aws-delivlib/node_modules/monocdk/lib/aws-s3/lib/bucket.js:430:9)",
3037
+ "Bucket.addEventNotification (/home/runner/work/aws-delivlib/aws-delivlib/node_modules/monocdk/lib/aws-s3/lib/bucket.js:421:14)",
3038
+ "Bucket.addObjectCreatedNotification (/home/runner/work/aws-delivlib/aws-delivlib/node_modules/monocdk/lib/aws-s3/lib/bucket.js:445:21)",
3033
3039
  "new ChangeController (/home/runner/work/aws-delivlib/aws-delivlib/lib/change-controller.js:62:23)",
3034
3040
  "Pipeline.addChangeControl (/home/runner/work/aws-delivlib/aws-delivlib/lib/pipeline.js:154:16)",
3035
3041
  "new TestStack (/home/runner/work/aws-delivlib/aws-delivlib/lib/__tests__/test-stack.js:181:18)",
@@ -3050,13 +3056,14 @@
3050
3056
  "trace": [
3051
3057
  "new Policy (/home/runner/work/aws-delivlib/aws-delivlib/node_modules/monocdk/lib/aws-iam/lib/policy.js:58:26)",
3052
3058
  "Role.addToPrincipalPolicy (/home/runner/work/aws-delivlib/aws-delivlib/node_modules/monocdk/lib/aws-iam/lib/role.js:214:34)",
3053
- "Role.addToPolicy (/home/runner/work/aws-delivlib/aws-delivlib/node_modules/monocdk/lib/aws-iam/lib/role.js:227:21)",
3054
- "new NotificationsResourceHandler (/home/runner/work/aws-delivlib/aws-delivlib/node_modules/monocdk/lib/aws-s3/lib/notifications-resource/notifications-resource-handler.js:37:19)",
3055
- "Function.singleton (/home/runner/work/aws-delivlib/aws-delivlib/node_modules/monocdk/lib/aws-s3/lib/notifications-resource/notifications-resource-handler.js:79:22)",
3056
- "BucketNotifications.createResourceOnce (/home/runner/work/aws-delivlib/aws-delivlib/node_modules/monocdk/lib/aws-s3/lib/notifications-resource/notifications-resource.js:93:91)",
3059
+ "new NotificationsResourceHandler (/home/runner/work/aws-delivlib/aws-delivlib/node_modules/monocdk/lib/aws-s3/lib/notifications-resource/notifications-resource-handler.js:39:19)",
3060
+ "Function.singleton (/home/runner/work/aws-delivlib/aws-delivlib/node_modules/monocdk/lib/aws-s3/lib/notifications-resource/notifications-resource-handler.js:85:22)",
3061
+ "BucketNotifications.createResourceOnce (/home/runner/work/aws-delivlib/aws-delivlib/node_modules/monocdk/lib/aws-s3/lib/notifications-resource/notifications-resource.js:88:91)",
3057
3062
  "BucketNotifications.addNotification (/home/runner/work/aws-delivlib/aws-delivlib/node_modules/monocdk/lib/aws-s3/lib/notifications-resource/notifications-resource.js:45:31)",
3058
- "Bucket.addEventNotification (/home/runner/work/aws-delivlib/aws-delivlib/node_modules/monocdk/lib/aws-s3/lib/bucket.js:424:28)",
3059
- "Bucket.addObjectCreatedNotification (/home/runner/work/aws-delivlib/aws-delivlib/node_modules/monocdk/lib/aws-s3/lib/bucket.js:439:21)",
3063
+ "/home/runner/work/aws-delivlib/aws-delivlib/node_modules/monocdk/lib/aws-s3/lib/bucket.js:421:63",
3064
+ "Bucket.withNotifications (/home/runner/work/aws-delivlib/aws-delivlib/node_modules/monocdk/lib/aws-s3/lib/bucket.js:430:9)",
3065
+ "Bucket.addEventNotification (/home/runner/work/aws-delivlib/aws-delivlib/node_modules/monocdk/lib/aws-s3/lib/bucket.js:421:14)",
3066
+ "Bucket.addObjectCreatedNotification (/home/runner/work/aws-delivlib/aws-delivlib/node_modules/monocdk/lib/aws-s3/lib/bucket.js:445:21)",
3060
3067
  "new ChangeController (/home/runner/work/aws-delivlib/aws-delivlib/lib/change-controller.js:62:23)",
3061
3068
  "Pipeline.addChangeControl (/home/runner/work/aws-delivlib/aws-delivlib/lib/pipeline.js:154:16)",
3062
3069
  "new TestStack (/home/runner/work/aws-delivlib/aws-delivlib/lib/__tests__/test-stack.js:181:18)",
@@ -3075,12 +3082,14 @@
3075
3082
  "type": "aws:cdk:logicalId",
3076
3083
  "data": "BucketNotificationsHandler050a0587b7544547bf325f094a3db8347ECC3691",
3077
3084
  "trace": [
3078
- "new NotificationsResourceHandler (/home/runner/work/aws-delivlib/aws-delivlib/node_modules/monocdk/lib/aws-s3/lib/notifications-resource/notifications-resource-handler.js:53:26)",
3079
- "Function.singleton (/home/runner/work/aws-delivlib/aws-delivlib/node_modules/monocdk/lib/aws-s3/lib/notifications-resource/notifications-resource-handler.js:79:22)",
3080
- "BucketNotifications.createResourceOnce (/home/runner/work/aws-delivlib/aws-delivlib/node_modules/monocdk/lib/aws-s3/lib/notifications-resource/notifications-resource.js:93:91)",
3085
+ "new NotificationsResourceHandler (/home/runner/work/aws-delivlib/aws-delivlib/node_modules/monocdk/lib/aws-s3/lib/notifications-resource/notifications-resource-handler.js:59:26)",
3086
+ "Function.singleton (/home/runner/work/aws-delivlib/aws-delivlib/node_modules/monocdk/lib/aws-s3/lib/notifications-resource/notifications-resource-handler.js:85:22)",
3087
+ "BucketNotifications.createResourceOnce (/home/runner/work/aws-delivlib/aws-delivlib/node_modules/monocdk/lib/aws-s3/lib/notifications-resource/notifications-resource.js:88:91)",
3081
3088
  "BucketNotifications.addNotification (/home/runner/work/aws-delivlib/aws-delivlib/node_modules/monocdk/lib/aws-s3/lib/notifications-resource/notifications-resource.js:45:31)",
3082
- "Bucket.addEventNotification (/home/runner/work/aws-delivlib/aws-delivlib/node_modules/monocdk/lib/aws-s3/lib/bucket.js:424:28)",
3083
- "Bucket.addObjectCreatedNotification (/home/runner/work/aws-delivlib/aws-delivlib/node_modules/monocdk/lib/aws-s3/lib/bucket.js:439:21)",
3089
+ "/home/runner/work/aws-delivlib/aws-delivlib/node_modules/monocdk/lib/aws-s3/lib/bucket.js:421:63",
3090
+ "Bucket.withNotifications (/home/runner/work/aws-delivlib/aws-delivlib/node_modules/monocdk/lib/aws-s3/lib/bucket.js:430:9)",
3091
+ "Bucket.addEventNotification (/home/runner/work/aws-delivlib/aws-delivlib/node_modules/monocdk/lib/aws-s3/lib/bucket.js:421:14)",
3092
+ "Bucket.addObjectCreatedNotification (/home/runner/work/aws-delivlib/aws-delivlib/node_modules/monocdk/lib/aws-s3/lib/bucket.js:445:21)",
3084
3093
  "new ChangeController (/home/runner/work/aws-delivlib/aws-delivlib/lib/change-controller.js:62:23)",
3085
3094
  "Pipeline.addChangeControl (/home/runner/work/aws-delivlib/aws-delivlib/lib/pipeline.js:154:16)",
3086
3095
  "new TestStack (/home/runner/work/aws-delivlib/aws-delivlib/lib/__tests__/test-stack.js:181:18)",