import iam = require('@aws-cdk/aws-iam');
import cdk = require('@aws-cdk/cdk');
import { cloudformation, RuleArn } from './events.generated';
export interface EventRuleTargetProps {
    /**
     * A unique, user-defined identifier for the target. Acceptable values
     * include alphanumeric characters, periods (.), hyphens (-), and
     * underscores (_).
     */
    id: string;
    /**
     * The Amazon Resource Name (ARN) of the target.
     */
    arn: cdk.Arn;
    /**
     * The Amazon Resource Name (ARN) of the AWS Identity and Access Management
     * (IAM) role to use for this target when the rule is triggered. If one rule
     * triggers multiple targets, you can use a different IAM role for each
     * target.
     */
    roleArn?: iam.RoleArn;
    /**
     * The Amazon ECS task definition and task count to use, if the event target
     * is an Amazon ECS task.
     */
    ecsParameters?: cloudformation.RuleResource.EcsParametersProperty;
    /**
     * Settings that control shard assignment, when the target is a Kinesis
     * stream. If you don't include this parameter, eventId is used as the
     * partition key.
     */
    kinesisParameters?: cloudformation.RuleResource.KinesisParametersProperty;
    /**
     * Parameters used when the rule invokes Amazon EC2 Systems Manager Run
     * Command.
     */
    runCommandParameters?: cloudformation.RuleResource.RunCommandParametersProperty;
}
/**
 * An abstract target for EventRules.
 */
export interface IEventRuleTarget {
    /**
     * Returns the rule target specification.
     * NOTE: Do not use the various `inputXxx` options. They can be set in a call to `addTarget`.
     *
     * @param ruleArn The ARN of the CloudWatch Event Rule that would trigger this target.
     * @param ruleUniqueId A unique ID for this rule. Can be used to implement idempotency.
     */
    asEventRuleTarget(ruleArn: RuleArn, ruleUniqueId: string): EventRuleTargetProps;
}
