1+ {
2+ "Resources" : {
3+ "Bucket83908E77" : {
4+ "Type" : " AWS::S3::Bucket" ,
5+ "Properties" : {
6+ "Tags" : [
7+ {
8+ "Key" : " aws-cdk:auto-delete-objects" ,
9+ "Value" : " true"
10+ }
11+ ]
12+ },
13+ "UpdateReplacePolicy" : " Delete" ,
14+ "DeletionPolicy" : " Delete"
15+ },
16+ "BucketPolicyE9A3008A" : {
17+ "Type" : " AWS::S3::BucketPolicy" ,
18+ "Properties" : {
19+ "Bucket" : {
20+ "Ref" : " Bucket83908E77"
21+ },
22+ "PolicyDocument" : {
23+ "Statement" : [
24+ {
25+ "Action" : [
26+ " s3:DeleteObject*" ,
27+ " s3:GetBucket*" ,
28+ " s3:List*" ,
29+ " s3:PutBucketPolicy"
30+ ],
31+ "Effect" : " Allow" ,
32+ "Principal" : {
33+ "AWS" : {
34+ "Fn::GetAtt" : [
35+ " CustomS3AutoDeleteObjectsCustomResourceProviderRole3B1BD092" ,
36+ " Arn"
37+ ]
38+ }
39+ },
40+ "Resource" : [
41+ {
42+ "Fn::GetAtt" : [
43+ " Bucket83908E77" ,
44+ " Arn"
45+ ]
46+ },
47+ {
48+ "Fn::Join" : [
49+ " " ,
50+ [
51+ {
52+ "Fn::GetAtt" : [
53+ " Bucket83908E77" ,
54+ " Arn"
55+ ]
56+ },
57+ " /*"
58+ ]
59+ ]
60+ }
61+ ]
62+ }
63+ ],
64+ "Version" : " 2012-10-17"
65+ }
66+ }
67+ },
68+ "BucketAutoDeleteObjectsCustomResourceBAFD23C2" : {
69+ "Type" : " Custom::S3AutoDeleteObjects" ,
70+ "Properties" : {
71+ "ServiceToken" : {
72+ "Fn::GetAtt" : [
73+ " CustomS3AutoDeleteObjectsCustomResourceProviderHandler9D90184F" ,
74+ " Arn"
75+ ]
76+ },
77+ "BucketName" : {
78+ "Ref" : " Bucket83908E77"
79+ }
80+ },
81+ "DependsOn" : [
82+ " BucketPolicyE9A3008A"
83+ ],
84+ "UpdateReplacePolicy" : " Delete" ,
85+ "DeletionPolicy" : " Delete"
86+ },
87+ "CustomS3AutoDeleteObjectsCustomResourceProviderRole3B1BD092" : {
88+ "Type" : " AWS::IAM::Role" ,
89+ "Properties" : {
90+ "AssumeRolePolicyDocument" : {
91+ "Version" : " 2012-10-17" ,
92+ "Statement" : [
93+ {
94+ "Action" : " sts:AssumeRole" ,
95+ "Effect" : " Allow" ,
96+ "Principal" : {
97+ "Service" : " lambda.amazonaws.com"
98+ }
99+ }
100+ ]
101+ },
102+ "ManagedPolicyArns" : [
103+ {
104+ "Fn::Sub" : " arn:${AWS::Partition}:iam::aws:policy/service-role/AWSLambdaBasicExecutionRole"
105+ }
106+ ]
107+ }
108+ },
109+ "CustomS3AutoDeleteObjectsCustomResourceProviderHandler9D90184F" : {
110+ "Type" : " AWS::Lambda::Function" ,
111+ "Properties" : {
112+ "Code" : {
113+ "S3Bucket" : {
114+ "Fn::Sub" : " cdk-hnb659fds-assets-${AWS::AccountId}-us-east-2"
115+ },
116+ "S3Key" : " 44e9c4d7a5d3fd2d677e1a7e416b2b56f6b0104bd5eff9cac5557b4c65a9dc61.zip"
117+ },
118+ "Timeout" : 900 ,
119+ "MemorySize" : 128 ,
120+ "Handler" : " index.handler" ,
121+ "Role" : {
122+ "Fn::GetAtt" : [
123+ " CustomS3AutoDeleteObjectsCustomResourceProviderRole3B1BD092" ,
124+ " Arn"
125+ ]
126+ },
127+ "Runtime" : " nodejs22.x" ,
128+ "Description" : {
129+ "Fn::Join" : [
130+ " " ,
131+ [
132+ " Lambda function for auto-deleting objects in " ,
133+ {
134+ "Ref" : " Bucket83908E77"
135+ },
136+ " S3 bucket."
137+ ]
138+ ]
139+ }
140+ },
141+ "DependsOn" : [
142+ " CustomS3AutoDeleteObjectsCustomResourceProviderRole3B1BD092"
143+ ]
144+ },
145+ "DeliveryStreamS3DestinationRoleD96B8345" : {
146+ "Type" : " AWS::IAM::Role" ,
147+ "Properties" : {
148+ "AssumeRolePolicyDocument" : {
149+ "Statement" : [
150+ {
151+ "Action" : " sts:AssumeRole" ,
152+ "Effect" : " Allow" ,
153+ "Principal" : {
154+ "Service" : " firehose.amazonaws.com"
155+ }
156+ }
157+ ],
158+ "Version" : " 2012-10-17"
159+ }
160+ }
161+ },
162+ "DeliveryStreamS3DestinationRoleDefaultPolicyF652AD65" : {
163+ "Type" : " AWS::IAM::Policy" ,
164+ "Properties" : {
165+ "PolicyDocument" : {
166+ "Statement" : [
167+ {
168+ "Action" : [
169+ " s3:Abort*" ,
170+ " s3:DeleteObject*" ,
171+ " s3:GetBucket*" ,
172+ " s3:GetObject*" ,
173+ " s3:List*" ,
174+ " s3:PutObject" ,
175+ " s3:PutObjectLegalHold" ,
176+ " s3:PutObjectRetention" ,
177+ " s3:PutObjectTagging" ,
178+ " s3:PutObjectVersionTagging"
179+ ],
180+ "Effect" : " Allow" ,
181+ "Resource" : [
182+ {
183+ "Fn::GetAtt" : [
184+ " Bucket83908E77" ,
185+ " Arn"
186+ ]
187+ },
188+ {
189+ "Fn::Join" : [
190+ " " ,
191+ [
192+ {
193+ "Fn::GetAtt" : [
194+ " Bucket83908E77" ,
195+ " Arn"
196+ ]
197+ },
198+ " /*"
199+ ]
200+ ]
201+ }
202+ ]
203+ }
204+ ],
205+ "Version" : " 2012-10-17"
206+ },
207+ "PolicyName" : " DeliveryStreamS3DestinationRoleDefaultPolicyF652AD65" ,
208+ "Roles" : [
209+ {
210+ "Ref" : " DeliveryStreamS3DestinationRoleD96B8345"
211+ }
212+ ]
213+ }
214+ },
215+ "DeliveryStream58CF96DB" : {
216+ "Type" : " AWS::KinesisFirehose::DeliveryStream" ,
217+ "Properties" : {
218+ "DeliveryStreamType" : " DirectPut" ,
219+ "ExtendedS3DestinationConfiguration" : {
220+ "BucketARN" : {
221+ "Fn::GetAtt" : [
222+ " Bucket83908E77" ,
223+ " Arn"
224+ ]
225+ },
226+ "BufferingHints" : {
227+ "IntervalInSeconds" : 30 ,
228+ "SizeInMBs" : 5
229+ },
230+ "RoleARN" : {
231+ "Fn::GetAtt" : [
232+ " DeliveryStreamS3DestinationRoleD96B8345" ,
233+ " Arn"
234+ ]
235+ }
236+ }
237+ },
238+ "DependsOn" : [
239+ " DeliveryStreamS3DestinationRoleDefaultPolicyF652AD65"
240+ ]
241+ },
242+ "DeliveryStreamTopicSubscriptionRole4964AFE6" : {
243+ "Type" : " AWS::IAM::Role" ,
244+ "Properties" : {
245+ "AssumeRolePolicyDocument" : {
246+ "Statement" : [
247+ {
248+ "Action" : " sts:AssumeRole" ,
249+ "Effect" : " Allow" ,
250+ "Principal" : {
251+ "Service" : " sns.amazonaws.com"
252+ }
253+ }
254+ ],
255+ "Version" : " 2012-10-17"
256+ }
257+ }
258+ },
259+ "DeliveryStreamTopicSubscriptionRoleDefaultPolicy7B1E3A87" : {
260+ "Type" : " AWS::IAM::Policy" ,
261+ "Properties" : {
262+ "PolicyDocument" : {
263+ "Statement" : [
264+ {
265+ "Action" : [
266+ " firehose:DescribeDeliveryStream" ,
267+ " firehose:ListDeliveryStreams" ,
268+ " firehose:ListTagsForDeliveryStream" ,
269+ " firehose:PutRecord" ,
270+ " firehose:PutRecordBatch"
271+ ],
272+ "Effect" : " Allow" ,
273+ "Resource" : {
274+ "Fn::GetAtt" : [
275+ " DeliveryStream58CF96DB" ,
276+ " Arn"
277+ ]
278+ }
279+ }
280+ ],
281+ "Version" : " 2012-10-17"
282+ },
283+ "PolicyName" : " DeliveryStreamTopicSubscriptionRoleDefaultPolicy7B1E3A87" ,
284+ "Roles" : [
285+ {
286+ "Ref" : " DeliveryStreamTopicSubscriptionRole4964AFE6"
287+ }
288+ ]
289+ }
290+ },
291+ "DeliveryStreamawscdksnsfirehosetopicstackMyTopic20B70ED07AAF6F8C" : {
292+ "Type" : " AWS::SNS::Subscription" ,
293+ "Properties" : {
294+ "Endpoint" : {
295+ "Fn::GetAtt" : [
296+ " DeliveryStream58CF96DB" ,
297+ " Arn"
298+ ]
299+ },
300+ "Protocol" : " firehose" ,
301+ "Region" : " us-east-1" ,
302+ "SubscriptionRoleArn" : {
303+ "Fn::GetAtt" : [
304+ " DeliveryStreamTopicSubscriptionRole4964AFE6" ,
305+ " Arn"
306+ ]
307+ },
308+ "TopicArn" : {
309+ "Fn::Join" : [
310+ " " ,
311+ [
312+ " arn:aws:sns:us-east-1:" ,
313+ {
314+ "Ref" : " AWS::AccountId"
315+ },
316+ " :sns-firehose-integ-topic"
317+ ]
318+ ]
319+ }
320+ }
321+ }
322+ },
323+ "Parameters" : {
324+ "BootstrapVersion" : {
325+ "Type" : " AWS::SSM::Parameter::Value<String>" ,
326+ "Default" : " /cdk-bootstrap/hnb659fds/version" ,
327+ "Description" : " Version of the CDK Bootstrap resources in this environment, automatically retrieved from SSM Parameter Store. [cdk:skip]"
328+ }
329+ },
330+ "Rules" : {
331+ "CheckBootstrapVersion" : {
332+ "Assertions" : [
333+ {
334+ "Assert" : {
335+ "Fn::Not" : [
336+ {
337+ "Fn::Contains" : [
338+ [
339+ " 1" ,
340+ " 2" ,
341+ " 3" ,
342+ " 4" ,
343+ " 5"
344+ ],
345+ {
346+ "Ref" : " BootstrapVersion"
347+ }
348+ ]
349+ }
350+ ]
351+ },
352+ "AssertDescription" : " CDK bootstrap stack version 6 required. Please run 'cdk bootstrap' with a recent version of the CDK CLI."
353+ }
354+ ]
355+ }
356+ }
357+ }
0 commit comments