import * as pulumi from "@pulumi/pulumi";
import * as inputs from "../types/input";
import * as outputs from "../types/output";
import * as enums from "../types/enums";
/**
 * Resource Type definition for AWS::IVS::Channel
 *
 * ## Example Usage
 * ### Example
 *
 * ```typescript
 * import * as pulumi from "@pulumi/pulumi";
 * import * as aws_native from "@pulumi/aws-native";
 *
 * const channel = new aws_native.ivs.Channel("channel", {
 *     name: "MyChannel",
 *     tags: [{
 *         key: "MyKey",
 *         value: "MyValue",
 *     }],
 *     insecureIngest: true,
 * });
 * const streamKey = new aws_native.ivs.StreamKey("streamKey", {
 *     channelArn: channel.id,
 *     tags: [{
 *         key: "MyKey",
 *         value: "MyValue",
 *     }],
 * });
 * export const channelArn = channel.id;
 * export const channelIngestEndpoint = channel.ingestEndpoint;
 * export const channelPlaybackUrl = channel.playbackUrl;
 * export const streamKeyArn = streamKey.id;
 *
 * ```
 * ### Example
 *
 * ```typescript
 * import * as pulumi from "@pulumi/pulumi";
 * import * as aws_native from "@pulumi/aws-native";
 *
 * const channel = new aws_native.ivs.Channel("channel", {
 *     name: "MyChannel",
 *     tags: [{
 *         key: "MyKey",
 *         value: "MyValue",
 *     }],
 *     insecureIngest: true,
 * });
 * const streamKey = new aws_native.ivs.StreamKey("streamKey", {
 *     channelArn: channel.id,
 *     tags: [{
 *         key: "MyKey",
 *         value: "MyValue",
 *     }],
 * });
 * export const channelArn = channel.id;
 * export const channelIngestEndpoint = channel.ingestEndpoint;
 * export const channelPlaybackUrl = channel.playbackUrl;
 * export const streamKeyArn = streamKey.id;
 *
 * ```
 */
export declare class Channel extends pulumi.CustomResource {
    /**
     * Get an existing Channel 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): Channel;
    /**
     * Returns true if the given object is an instance of Channel.  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 Channel;
    /**
     * Channel ARN is automatically generated on creation and assigned as the unique identifier.
     */
    readonly arn: pulumi.Output<string>;
    /**
     * Whether the channel is authorized.
     */
    readonly authorized: pulumi.Output<boolean | undefined>;
    /**
     * Indicates which content-packaging format is used (MPEG-TS or fMP4). If multitrackInputConfiguration is specified and enabled is true, then containerFormat is required and must be set to FRAGMENTED_MP4. Otherwise, containerFormat may be set to TS or FRAGMENTED_MP4. Default: TS.
     */
    readonly containerFormat: pulumi.Output<enums.ivs.ChannelContainerFormat | undefined>;
    /**
     * Channel ingest endpoint, part of the definition of an ingest server, used when you set up streaming software.
     */
    readonly ingestEndpoint: pulumi.Output<string>;
    /**
     * Whether the channel allows insecure ingest.
     */
    readonly insecureIngest: pulumi.Output<boolean | undefined>;
    /**
     * Channel latency mode.
     */
    readonly latencyMode: pulumi.Output<enums.ivs.ChannelLatencyMode | undefined>;
    /**
     * Object specifying multitrack input configuration. Default: no multitrack input configuration is specified.
     */
    readonly multitrackInputConfiguration: pulumi.Output<outputs.ivs.ChannelMultitrackInputConfiguration | undefined>;
    /**
     * Channel
     */
    readonly name: pulumi.Output<string | undefined>;
    /**
     * Channel Playback URL.
     */
    readonly playbackUrl: pulumi.Output<string>;
    /**
     * Optional transcode preset for the channel. This is selectable only for ADVANCED_HD and ADVANCED_SD channel types. For those channel types, the default preset is HIGHER_BANDWIDTH_DELIVERY. For other channel types (BASIC and STANDARD), preset is the empty string ("").
     */
    readonly preset: pulumi.Output<enums.ivs.ChannelPreset | undefined>;
    /**
     * Recording Configuration ARN. A value other than an empty string indicates that recording is enabled. Default: "" (recording is disabled).
     */
    readonly recordingConfigurationArn: pulumi.Output<string | undefined>;
    /**
     * A list of key-value pairs that contain metadata for the asset model.
     */
    readonly tags: pulumi.Output<outputs.Tag[] | undefined>;
    /**
     * Channel type, which determines the allowable resolution and bitrate. If you exceed the allowable resolution or bitrate, the stream probably will disconnect immediately.
     */
    readonly type: pulumi.Output<enums.ivs.ChannelType | undefined>;
    /**
     * Create a Channel 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?: ChannelArgs, opts?: pulumi.CustomResourceOptions);
}
/**
 * The set of arguments for constructing a Channel resource.
 */
export interface ChannelArgs {
    /**
     * Whether the channel is authorized.
     */
    authorized?: pulumi.Input<boolean>;
    /**
     * Indicates which content-packaging format is used (MPEG-TS or fMP4). If multitrackInputConfiguration is specified and enabled is true, then containerFormat is required and must be set to FRAGMENTED_MP4. Otherwise, containerFormat may be set to TS or FRAGMENTED_MP4. Default: TS.
     */
    containerFormat?: pulumi.Input<enums.ivs.ChannelContainerFormat>;
    /**
     * Whether the channel allows insecure ingest.
     */
    insecureIngest?: pulumi.Input<boolean>;
    /**
     * Channel latency mode.
     */
    latencyMode?: pulumi.Input<enums.ivs.ChannelLatencyMode>;
    /**
     * Object specifying multitrack input configuration. Default: no multitrack input configuration is specified.
     */
    multitrackInputConfiguration?: pulumi.Input<inputs.ivs.ChannelMultitrackInputConfigurationArgs>;
    /**
     * Channel
     */
    name?: pulumi.Input<string>;
    /**
     * Optional transcode preset for the channel. This is selectable only for ADVANCED_HD and ADVANCED_SD channel types. For those channel types, the default preset is HIGHER_BANDWIDTH_DELIVERY. For other channel types (BASIC and STANDARD), preset is the empty string ("").
     */
    preset?: pulumi.Input<enums.ivs.ChannelPreset>;
    /**
     * Recording Configuration ARN. A value other than an empty string indicates that recording is enabled. Default: "" (recording is disabled).
     */
    recordingConfigurationArn?: pulumi.Input<string>;
    /**
     * A list of key-value pairs that contain metadata for the asset model.
     */
    tags?: pulumi.Input<pulumi.Input<inputs.TagArgs>[]>;
    /**
     * Channel type, which determines the allowable resolution and bitrate. If you exceed the allowable resolution or bitrate, the stream probably will disconnect immediately.
     */
    type?: pulumi.Input<enums.ivs.ChannelType>;
}
