import * as pulumi from "@pulumi/pulumi";
/**
 * This resource provides the Stream resource in Oracle Cloud Infrastructure Streaming service.
 * Api doc link for the resource: https://docs.oracle.com/iaas/api/#/en/
 *
 * Example terraform configs related to the resource : https://github.com/oracle/terraform-provider-oci/tree/master/examples/streaming
 *
 * Starts the provisioning of a new stream.
 * The stream will be created in the given compartment id or stream pool id, depending on which parameter is specified.
 * Compartment id and stream pool id cannot be specified at the same time.
 * To track the progress of the provisioning, you can periodically call [GetStream](https://docs.cloud.oracle.com/iaas/api/#/en/streaming/20180418/Stream/GetStream).
 * In the response, the `lifecycleState` parameter of the [Stream](https://docs.cloud.oracle.com/iaas/api/#/en/streaming/20180418/Stream/) object tells you its current state.
 *
 * ## Example Usage
 *
 * ```typescript
 * import * as pulumi from "@pulumi/pulumi";
 * import * as oci from "@pulumi/oci";
 *
 * const testStream = new oci.streaming.Stream("test_stream", {
 *     name: streamName,
 *     partitions: Number(streamPartitions),
 *     compartmentId: compartmentId,
 *     definedTags: streamDefinedTags,
 *     freeformTags: {
 *         Department: "Finance",
 *     },
 *     retentionInHours: Number(streamRetentionInHours),
 *     streamPoolId: testStreamPool.id,
 * });
 * ```
 *
 * ## Import
 *
 * Streams can be imported using the `id`, e.g.
 *
 * ```sh
 * $ pulumi import oci:Streaming/stream:Stream test_stream "id"
 * ```
 */
export declare class Stream extends pulumi.CustomResource {
    /**
     * Get an existing Stream 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 state Any extra arguments used during the lookup.
     * @param opts Optional settings to control the behavior of the CustomResource.
     */
    static get(name: string, id: pulumi.Input<pulumi.ID>, state?: StreamState, opts?: pulumi.CustomResourceOptions): Stream;
    /**
     * Returns true if the given object is an instance of Stream.  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 Stream;
    /**
     * (Updatable) The OCID of the compartment that contains the stream.
     */
    readonly compartmentId: pulumi.Output<string>;
    /**
     * (Updatable) Defined tags for this resource. Each key is predefined and scoped to a namespace. For more information, see [Resource Tags](https://docs.cloud.oracle.com/iaas/Content/General/Concepts/resourcetags.htm).  Example: `{"Operations.CostCenter": "42"}`
     */
    readonly definedTags: pulumi.Output<{
        [key: string]: string;
    }>;
    /**
     * (Updatable) Free-form tags for this resource. Each tag is a simple key-value pair that is applied with no predefined name, type, or namespace. Exists for cross-compatibility only. For more information, see [Resource Tags](https://docs.cloud.oracle.com/iaas/Content/General/Concepts/resourcetags.htm).  Example: `{"Department": "Finance"}`
     */
    readonly freeformTags: pulumi.Output<{
        [key: string]: string;
    }>;
    /**
     * Any additional details about the current state of the stream.
     */
    readonly lifecycleStateDetails: pulumi.Output<string>;
    /**
     * The endpoint to use when creating the StreamClient to consume or publish messages in the stream. If the associated stream pool is private, the endpoint is also private and can only be accessed from inside the stream pool's associated subnet.
     */
    readonly messagesEndpoint: pulumi.Output<string>;
    /**
     * The name of the stream. Avoid entering confidential information.  Example: `TelemetryEvents`
     */
    readonly name: pulumi.Output<string>;
    /**
     * The number of partitions in the stream.
     */
    readonly partitions: pulumi.Output<number>;
    /**
     * The retention period of the stream, in hours. Accepted values are between 24 and 168 (7 days). If not specified, the stream will have a retention period of 24 hours.
     */
    readonly retentionInHours: pulumi.Output<number>;
    /**
     * The current state of the stream.
     */
    readonly state: pulumi.Output<string>;
    /**
     * (Updatable) The OCID of the stream pool that contains the stream.
     *
     *
     * ** IMPORTANT **
     * Any change to a property that does not support update will force the destruction and recreation of the resource with the new property values
     */
    readonly streamPoolId: pulumi.Output<string>;
    /**
     * The date and time the stream was created, expressed in in [RFC 3339](https://tools.ietf.org/rfc/rfc3339) timestamp format.  Example: `2018-04-20T00:00:07.405Z`
     */
    readonly timeCreated: pulumi.Output<string>;
    /**
     * Create a Stream 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: StreamArgs, opts?: pulumi.CustomResourceOptions);
}
/**
 * Input properties used for looking up and filtering Stream resources.
 */
export interface StreamState {
    /**
     * (Updatable) The OCID of the compartment that contains the stream.
     */
    compartmentId?: pulumi.Input<string | undefined>;
    /**
     * (Updatable) Defined tags for this resource. Each key is predefined and scoped to a namespace. For more information, see [Resource Tags](https://docs.cloud.oracle.com/iaas/Content/General/Concepts/resourcetags.htm).  Example: `{"Operations.CostCenter": "42"}`
     */
    definedTags?: pulumi.Input<{
        [key: string]: pulumi.Input<string>;
    } | undefined>;
    /**
     * (Updatable) Free-form tags for this resource. Each tag is a simple key-value pair that is applied with no predefined name, type, or namespace. Exists for cross-compatibility only. For more information, see [Resource Tags](https://docs.cloud.oracle.com/iaas/Content/General/Concepts/resourcetags.htm).  Example: `{"Department": "Finance"}`
     */
    freeformTags?: pulumi.Input<{
        [key: string]: pulumi.Input<string>;
    } | undefined>;
    /**
     * Any additional details about the current state of the stream.
     */
    lifecycleStateDetails?: pulumi.Input<string | undefined>;
    /**
     * The endpoint to use when creating the StreamClient to consume or publish messages in the stream. If the associated stream pool is private, the endpoint is also private and can only be accessed from inside the stream pool's associated subnet.
     */
    messagesEndpoint?: pulumi.Input<string | undefined>;
    /**
     * The name of the stream. Avoid entering confidential information.  Example: `TelemetryEvents`
     */
    name?: pulumi.Input<string | undefined>;
    /**
     * The number of partitions in the stream.
     */
    partitions?: pulumi.Input<number | undefined>;
    /**
     * The retention period of the stream, in hours. Accepted values are between 24 and 168 (7 days). If not specified, the stream will have a retention period of 24 hours.
     */
    retentionInHours?: pulumi.Input<number | undefined>;
    /**
     * The current state of the stream.
     */
    state?: pulumi.Input<string | undefined>;
    /**
     * (Updatable) The OCID of the stream pool that contains the stream.
     *
     *
     * ** IMPORTANT **
     * Any change to a property that does not support update will force the destruction and recreation of the resource with the new property values
     */
    streamPoolId?: pulumi.Input<string | undefined>;
    /**
     * The date and time the stream was created, expressed in in [RFC 3339](https://tools.ietf.org/rfc/rfc3339) timestamp format.  Example: `2018-04-20T00:00:07.405Z`
     */
    timeCreated?: pulumi.Input<string | undefined>;
}
/**
 * The set of arguments for constructing a Stream resource.
 */
export interface StreamArgs {
    /**
     * (Updatable) The OCID of the compartment that contains the stream.
     */
    compartmentId?: pulumi.Input<string | undefined>;
    /**
     * (Updatable) Defined tags for this resource. Each key is predefined and scoped to a namespace. For more information, see [Resource Tags](https://docs.cloud.oracle.com/iaas/Content/General/Concepts/resourcetags.htm).  Example: `{"Operations.CostCenter": "42"}`
     */
    definedTags?: pulumi.Input<{
        [key: string]: pulumi.Input<string>;
    } | undefined>;
    /**
     * (Updatable) Free-form tags for this resource. Each tag is a simple key-value pair that is applied with no predefined name, type, or namespace. Exists for cross-compatibility only. For more information, see [Resource Tags](https://docs.cloud.oracle.com/iaas/Content/General/Concepts/resourcetags.htm).  Example: `{"Department": "Finance"}`
     */
    freeformTags?: pulumi.Input<{
        [key: string]: pulumi.Input<string>;
    } | undefined>;
    /**
     * The name of the stream. Avoid entering confidential information.  Example: `TelemetryEvents`
     */
    name?: pulumi.Input<string | undefined>;
    /**
     * The number of partitions in the stream.
     */
    partitions: pulumi.Input<number>;
    /**
     * The retention period of the stream, in hours. Accepted values are between 24 and 168 (7 days). If not specified, the stream will have a retention period of 24 hours.
     */
    retentionInHours?: pulumi.Input<number | undefined>;
    /**
     * (Updatable) The OCID of the stream pool that contains the stream.
     *
     *
     * ** IMPORTANT **
     * Any change to a property that does not support update will force the destruction and recreation of the resource with the new property values
     */
    streamPoolId?: pulumi.Input<string | undefined>;
}
//# sourceMappingURL=stream.d.ts.map