UNPKG

1.43 kBTypeScriptView Raw
1import { Handler } from "../handler";
2
3export type S3Handler = Handler<S3Event, void>;
4
5/**
6 * S3Create event
7 * https://docs.aws.amazon.com/AmazonS3/latest/dev/notification-content-structure.html
8 */
9
10export interface S3EventRecordGlacierRestoreEventData {
11 lifecycleRestorationExpiryTime: string;
12 lifecycleRestoreStorageClass: string;
13}
14
15export interface S3EventRecordGlacierEventData {
16 restoreEventData: S3EventRecordGlacierRestoreEventData;
17}
18
19export interface S3EventRecord {
20 eventVersion: string;
21 eventSource: string;
22 awsRegion: string;
23 eventTime: string;
24 eventName: string;
25 userIdentity: {
26 principalId: string;
27 };
28 requestParameters: {
29 sourceIPAddress: string;
30 };
31 responseElements: {
32 'x-amz-request-id': string;
33 'x-amz-id-2': string;
34 };
35 s3: {
36 s3SchemaVersion: string;
37 configurationId: string;
38 bucket: {
39 name: string;
40 ownerIdentity: {
41 principalId: string;
42 };
43 arn: string;
44 };
45 object: {
46 key: string;
47 size: number;
48 eTag: string;
49 versionId?: string | undefined;
50 sequencer: string;
51 };
52 };
53 glacierEventData?: S3EventRecordGlacierEventData | undefined;
54}
55
56export interface S3Event {
57 Records: S3EventRecord[];
58}
59
60export type S3CreateEvent = S3Event; // old name