import * as pulumi from "@pulumi/pulumi";
import * as inputs from "../types/input";
import * as outputs from "../types/output";
import * as enums from "../types/enums";
/**
 * Definition of AWS::Pipes::Pipe Resource Type
 *
 * ## Example Usage
 * ### Example
 *
 * ```typescript
 * import * as pulumi from "@pulumi/pulumi";
 * import * as aws_native from "@pulumi/aws-native";
 *
 * const testPipe = new aws_native.pipes.Pipe("testPipe", {
 *     name: "PipeCfnExample",
 *     roleArn: "arn:aws:iam::123456789123:role/Pipe-Dev-All-Targets-Dummy-Execution-Role",
 *     source: "arn:aws:sqs:us-east-1:123456789123:pipeDemoSource",
 *     enrichment: "arn:aws:execute-api:us-east-1:123456789123:53eo2i89p9/*&#47;POST/pets",
 *     target: "arn:aws:states:us-east-1:123456789123:stateMachine:PipeTargetStateMachine",
 * });
 *
 * ```
 * ### Example
 *
 * ```typescript
 * import * as pulumi from "@pulumi/pulumi";
 * import * as aws_native from "@pulumi/aws-native";
 *
 * const testPipe = new aws_native.pipes.Pipe("testPipe", {
 *     name: "PipeCfnExample",
 *     roleArn: "arn:aws:iam::123456789123:role/Pipe-Dev-All-Targets-Dummy-Execution-Role",
 *     source: "arn:aws:sqs:us-east-1:123456789123:pipeDemoSource",
 *     enrichment: "arn:aws:execute-api:us-east-1:123456789123:53eo2i89p9/*&#47;POST/pets",
 *     target: "arn:aws:states:us-east-1:123456789123:stateMachine:PipeTargetStateMachine",
 * });
 *
 * ```
 */
export declare class Pipe extends pulumi.CustomResource {
    /**
     * Get an existing Pipe resource's state with the given name, ID, and optional extra
     * properties used to qualify the lookup.
     *
     * @param name The _unique_ name of the resulting resource.
     * @param id The _unique_ provider ID of the resource to lookup.
     * @param opts Optional settings to control the behavior of the CustomResource.
     */
    static get(name: string, id: pulumi.Input<pulumi.ID>, opts?: pulumi.CustomResourceOptions): Pipe;
    /**
     * Returns true if the given object is an instance of Pipe.  This is designed to work even
     * when multiple copies of the Pulumi SDK have been loaded into the same process.
     */
    static isInstance(obj: any): obj is Pipe;
    /**
     * The ARN of the pipe.
     */
    readonly arn: pulumi.Output<string>;
    /**
     * The time the pipe was created.
     */
    readonly creationTime: pulumi.Output<string>;
    /**
     * The state the pipe is in.
     */
    readonly currentState: pulumi.Output<enums.pipes.PipeState>;
    /**
     * A description of the pipe.
     */
    readonly description: pulumi.Output<string | undefined>;
    /**
     * The state the pipe should be in.
     */
    readonly desiredState: pulumi.Output<enums.pipes.PipeRequestedPipeState | undefined>;
    /**
     * The ARN of the enrichment resource.
     */
    readonly enrichment: pulumi.Output<string | undefined>;
    /**
     * The parameters required to set up enrichment on your pipe.
     */
    readonly enrichmentParameters: pulumi.Output<outputs.pipes.PipeEnrichmentParameters | undefined>;
    /**
     * The identifier of the AWS  customer managed key for EventBridge to use, if you choose to use a customer managed key to encrypt pipe data. The identifier can be the key Amazon Resource Name (ARN), KeyId, key alias, or key alias ARN.
     *
     * To update a pipe that is using the default AWS owned key to use a customer managed key instead, or update a pipe that is using a customer managed key to use a different customer managed key, specify a customer managed key identifier.
     *
     * To update a pipe that is using a customer managed key to use the default AWS owned key , specify an empty string.
     *
     * For more information, see [Managing keys](https://docs.aws.amazon.com/kms/latest/developerguide/getting-started.html) in the *AWS Key Management Service Developer Guide* .
     */
    readonly kmsKeyIdentifier: pulumi.Output<string | undefined>;
    /**
     * When the pipe was last updated, in [ISO-8601 format](https://docs.aws.amazon.com/https://www.w3.org/TR/NOTE-datetime) (YYYY-MM-DDThh:mm:ss.sTZD).
     */
    readonly lastModifiedTime: pulumi.Output<string>;
    /**
     * The logging configuration settings for the pipe.
     */
    readonly logConfiguration: pulumi.Output<outputs.pipes.PipeLogConfiguration | undefined>;
    /**
     * The name of the pipe.
     */
    readonly name: pulumi.Output<string | undefined>;
    /**
     * The ARN of the role that allows the pipe to send data to the target.
     */
    readonly roleArn: pulumi.Output<string>;
    /**
     * The ARN of the source resource.
     */
    readonly source: pulumi.Output<string>;
    /**
     * The parameters required to set up a source for your pipe.
     */
    readonly sourceParameters: pulumi.Output<outputs.pipes.PipeSourceParameters | undefined>;
    /**
     * The reason the pipe is in its current state.
     */
    readonly stateReason: pulumi.Output<string>;
    /**
     * The list of key-value pairs to associate with the pipe.
     */
    readonly tags: pulumi.Output<{
        [key: string]: string;
    } | undefined>;
    /**
     * The ARN of the target resource.
     */
    readonly target: pulumi.Output<string>;
    /**
     * The parameters required to set up a target for your pipe.
     *
     * For more information about pipe target parameters, including how to use dynamic path parameters, see [Target parameters](https://docs.aws.amazon.com/eventbridge/latest/userguide/eb-pipes-event-target.html) in the *Amazon EventBridge User Guide* .
     */
    readonly targetParameters: pulumi.Output<outputs.pipes.PipeTargetParameters | undefined>;
    /**
     * Create a Pipe resource with the given unique name, arguments, and options.
     *
     * @param name The _unique_ name of the resource.
     * @param args The arguments to use to populate this resource's properties.
     * @param opts A bag of options that control this resource's behavior.
     */
    constructor(name: string, args: PipeArgs, opts?: pulumi.CustomResourceOptions);
}
/**
 * The set of arguments for constructing a Pipe resource.
 */
export interface PipeArgs {
    /**
     * A description of the pipe.
     */
    description?: pulumi.Input<string>;
    /**
     * The state the pipe should be in.
     */
    desiredState?: pulumi.Input<enums.pipes.PipeRequestedPipeState>;
    /**
     * The ARN of the enrichment resource.
     */
    enrichment?: pulumi.Input<string>;
    /**
     * The parameters required to set up enrichment on your pipe.
     */
    enrichmentParameters?: pulumi.Input<inputs.pipes.PipeEnrichmentParametersArgs>;
    /**
     * The identifier of the AWS  customer managed key for EventBridge to use, if you choose to use a customer managed key to encrypt pipe data. The identifier can be the key Amazon Resource Name (ARN), KeyId, key alias, or key alias ARN.
     *
     * To update a pipe that is using the default AWS owned key to use a customer managed key instead, or update a pipe that is using a customer managed key to use a different customer managed key, specify a customer managed key identifier.
     *
     * To update a pipe that is using a customer managed key to use the default AWS owned key , specify an empty string.
     *
     * For more information, see [Managing keys](https://docs.aws.amazon.com/kms/latest/developerguide/getting-started.html) in the *AWS Key Management Service Developer Guide* .
     */
    kmsKeyIdentifier?: pulumi.Input<string>;
    /**
     * The logging configuration settings for the pipe.
     */
    logConfiguration?: pulumi.Input<inputs.pipes.PipeLogConfigurationArgs>;
    /**
     * The name of the pipe.
     */
    name?: pulumi.Input<string>;
    /**
     * The ARN of the role that allows the pipe to send data to the target.
     */
    roleArn: pulumi.Input<string>;
    /**
     * The ARN of the source resource.
     */
    source: pulumi.Input<string>;
    /**
     * The parameters required to set up a source for your pipe.
     */
    sourceParameters?: pulumi.Input<inputs.pipes.PipeSourceParametersArgs>;
    /**
     * The list of key-value pairs to associate with the pipe.
     */
    tags?: pulumi.Input<{
        [key: string]: pulumi.Input<string>;
    }>;
    /**
     * The ARN of the target resource.
     */
    target: pulumi.Input<string>;
    /**
     * The parameters required to set up a target for your pipe.
     *
     * For more information about pipe target parameters, including how to use dynamic path parameters, see [Target parameters](https://docs.aws.amazon.com/eventbridge/latest/userguide/eb-pipes-event-target.html) in the *Amazon EventBridge User Guide* .
     */
    targetParameters?: pulumi.Input<inputs.pipes.PipeTargetParametersArgs>;
}
