/** * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved. * * Licensed under the Apache License, Version 2.0 (the "License"). You may not use this file except in compliance * with the License. A copy of the License is located at * * http://www.apache.org/licenses/LICENSE-2.0 * * or in the 'license' file accompanying this file. This file is distributed on an 'AS IS' BASIS, WITHOUT WARRANTIES * OR CONDITIONS OF ANY KIND, express or implied. See the License for the specific language governing permissions * and limitations under the License. */ import * as s3 from 'aws-cdk-lib/aws-s3'; import { Construct } from 'constructs'; import * as iam from 'aws-cdk-lib/aws-iam'; import * as kms from 'aws-cdk-lib/aws-kms'; import * as sns from 'aws-cdk-lib/aws-sns'; export interface TextractProps { readonly asyncJobs?: boolean; readonly existingSourceBucketObj?: s3.IBucket; readonly sourceBucketProps?: s3.BucketProps; readonly existingDestinationBucketObj?: s3.IBucket; readonly destinationBucketProps?: s3.BucketProps; readonly useSameBucket?: boolean; readonly createCustomerManagedOutputBucket?: boolean; readonly sourceLoggingBucketProps?: s3.BucketProps; readonly destinationLoggingBucketProps?: s3.BucketProps; readonly logSourceS3AccessLogs?: boolean; readonly logDestinationS3AccessLogs?: boolean; readonly sourceBucketEnvironmentVariableName?: string; readonly destinationBucketEnvironmentVariableName?: string; readonly dataAccessRoleArnEnvironmentVariableName?: string; readonly snsNotificationTopicArnEnvironmentVariableName?: string; readonly existingNotificationTopicObj?: sns.Topic; readonly existingNotificationTopicEncryptionKey?: kms.Key; readonly notificationTopicProps?: sns.TopicProps; readonly enableNotificationTopicEncryptionWithCustomerManagedKey?: boolean; readonly notificationTopicEncryptionKey?: kms.Key; readonly notificationTopicEncryptionKeyProps?: kms.KeyProps; } export interface TextractBucketDetails { readonly bucket?: s3.Bucket; readonly bucketInterface: s3.IBucket; readonly loggingBucket?: s3.Bucket; } export interface TextractConfiguration { readonly textractRole?: iam.Role; readonly lambdaIamActionsRequired: string[]; readonly sourceBucket?: TextractBucketDetails; readonly destinationBucket?: TextractBucketDetails; readonly snsNotificationTopic?: sns.Topic; readonly notificationTopicEncryptionKey?: kms.Key; } export declare function ConfigureTextractSupport(scope: Construct, id: string, props: TextractProps): TextractConfiguration; export declare function CheckTextractProps(props: TextractProps): void; export interface TextractSnsProps { readonly notificationTopicProps?: sns.TopicProps; readonly existingNotificationTopicObj?: sns.Topic; readonly existingNotificationTopicObject?: sns.Topic; readonly notificationTopicEncryptionKey?: kms.Key; readonly notificationTopicEncryptionKeyProps?: kms.KeyProps; } export declare function CheckTextractSnsProps(propsObject: TextractSnsProps | any): void;