1import type * as lambda from "aws-lambda";
2
3export type S3Record = lambda.S3EventRecord;
4export type S3Event = lambda.S3Event;
5
6/**
7 * S3 event types that can trigger notifications.
8 */
9export type S3EventType =
10 // Object Created Events
11 | "s3:ObjectCreated:*"
12 | "s3:ObjectCreated:Put"
13 | "s3:ObjectCreated:Post"
14 | "s3:ObjectCreated:Copy"
15 | "s3:ObjectCreated:CompleteMultipartUpload"
16 // Object Removed Events
17 | "s3:ObjectRemoved:*"
18 | "s3:ObjectRemoved:Delete"
19 | "s3:ObjectRemoved:DeleteMarkerCreated"
20 // Object Restore Events
21 | "s3:ObjectRestore:*"
22 | "s3:ObjectRestore:Post"
23 | "s3:ObjectRestore:Completed"
24 | "s3:ObjectRestore:Delete"
25 // Replication Events
26 | "s3:Replication:*"
27 | "s3:Replication:OperationFailedReplication"
28 | "s3:Replication:OperationNotTracked"
29 | "s3:Replication:OperationMissedThreshold"
30 | "s3:Replication:OperationReplicatedAfterThreshold"
31 // Lifecycle Events
32 | "s3:LifecycleExpiration:*"
33 | "s3:LifecycleExpiration:Delete"
34 | "s3:LifecycleExpiration:DeleteMarkerCreated"
35 | "s3:LifecycleTransition"
36 // Intelligent Tiering
37 | "s3:IntelligentTiering"
38 // Object Tagging
39 | "s3:ObjectTagging:*"
40 | "s3:ObjectTagging:Put"
41 | "s3:ObjectTagging:Delete"
42 // Object ACL
43 | "s3:ObjectAcl:Put";