import type { Input } from '@pulumi/pulumi'; import type { iam } from '@pulumi/aws'; export type SimpleIamRolePolicyConfig = CustomPolicyConfig | DynamoDbPolicyConfig | TimestreamPolicyConfig | S3PolicyConfig | CognitoPolicyConfig | WebsocketPolicyConfig | ExecuteLambdaConfig | SnsPolicyConfig | EventBridgeConfig; interface CustomPolicyConfig { type: 'custom'; name: string; statements: iam.PolicyStatement[]; } interface DynamoDbPolicyConfig { type: 'dynamodb'; level: 'full-access'; name: string; tableArn: Input; } interface TimestreamPolicyConfig { type: 'timestream'; level: 'full-access'; name: string; dbArn: Input; tableArn: Input; } interface S3PolicyConfig { type: 's3'; level: 'full-access'; name: string; bucketArn: Input; } interface CognitoPolicyConfig { type: 'cognito'; level: 'full-access'; name: string; userPoolArn: Input; } interface WebsocketPolicyConfig { type: 'websocket'; level: 'full-access'; name: string; apiArn: '*'; } interface SnsPolicyConfig { type: 'sns'; level: 'publish-message'; name: string; snsTopicArn: Input; } interface ExecuteLambdaConfig { type: 'execute-lambda'; name: string; lambdaArn: Input; } interface EventBridgeConfig { type: 'event-bridge'; level: 'enable-disable-rule'; name: string; ruleArn: Input; } export {};