import * as pulumi from "@pulumi/pulumi";
import * as enums from "../types/enums";
/**
 * A module that has been registered in the CloudFormation registry.
 *
 * ## Example Usage
 * ### Example
 *
 * ```typescript
 * import * as pulumi from "@pulumi/pulumi";
 * import * as aws_native from "@pulumi/aws-native";
 *
 * const moduleVersion1 = new aws_native.cloudformation.ModuleVersion("moduleVersion1", {
 *     moduleName: "My::Sample::Test::MODULE",
 *     modulePackage: "s3://my-sample-moduleversion-bucket/sample-module-package-v1.zip",
 * });
 * const moduleVersion2 = new aws_native.cloudformation.ModuleVersion("moduleVersion2", {
 *     moduleName: "My::Sample::Test::MODULE",
 *     modulePackage: "s3://my-sample-moduleversion-bucket/sample-module-package-v2.zip",
 * }, {
 *     dependsOn: [moduleVersion1],
 * });
 * const moduleDefaultVersion = new aws_native.cloudformation.ModuleDefaultVersion("moduleDefaultVersion", {arn: moduleVersion2.id});
 *
 * ```
 * ### Example
 *
 * ```typescript
 * import * as pulumi from "@pulumi/pulumi";
 * import * as aws_native from "@pulumi/aws-native";
 *
 * const moduleVersion1 = new aws_native.cloudformation.ModuleVersion("moduleVersion1", {
 *     moduleName: "My::Sample::Test::MODULE",
 *     modulePackage: "s3://my-sample-moduleversion-bucket/sample-module-package-v1.zip",
 * });
 * const moduleVersion2 = new aws_native.cloudformation.ModuleVersion("moduleVersion2", {
 *     moduleName: "My::Sample::Test::MODULE",
 *     modulePackage: "s3://my-sample-moduleversion-bucket/sample-module-package-v2.zip",
 * }, {
 *     dependsOn: [moduleVersion1],
 * });
 * const moduleDefaultVersion = new aws_native.cloudformation.ModuleDefaultVersion("moduleDefaultVersion", {arn: moduleVersion2.id});
 *
 * ```
 * ### Example
 *
 * ```typescript
 * import * as pulumi from "@pulumi/pulumi";
 * import * as aws_native from "@pulumi/aws-native";
 *
 * const moduleVersion = new aws_native.cloudformation.ModuleVersion("moduleVersion", {
 *     moduleName: "My::Sample::Test::MODULE",
 *     modulePackage: "s3://my-sample-moduleversion-bucket/sample-module-package-v1.zip",
 * });
 *
 * ```
 * ### Example
 *
 * ```typescript
 * import * as pulumi from "@pulumi/pulumi";
 * import * as aws_native from "@pulumi/aws-native";
 *
 * const moduleVersion = new aws_native.cloudformation.ModuleVersion("moduleVersion", {
 *     moduleName: "My::Sample::Test::MODULE",
 *     modulePackage: "s3://my-sample-moduleversion-bucket/sample-module-package-v1.zip",
 * });
 *
 * ```
 * ### Example
 *
 * ```typescript
 * import * as pulumi from "@pulumi/pulumi";
 * import * as aws_native from "@pulumi/aws-native";
 *
 * const moduleVersion1 = new aws_native.cloudformation.ModuleVersion("moduleVersion1", {
 *     moduleName: "My::Sample::Test::MODULE",
 *     modulePackage: "s3://my-sample-moduleversion-bucket/sample-module-package-v1.zip",
 * });
 * const moduleVersion2 = new aws_native.cloudformation.ModuleVersion("moduleVersion2", {
 *     moduleName: "My::Sample::Test::MODULE",
 *     modulePackage: "s3://my-sample-moduleversion-bucket/sample-module-package-v2.zip",
 * }, {
 *     dependsOn: [moduleVersion1],
 * });
 *
 * ```
 * ### Example
 *
 * ```typescript
 * import * as pulumi from "@pulumi/pulumi";
 * import * as aws_native from "@pulumi/aws-native";
 *
 * const moduleVersion1 = new aws_native.cloudformation.ModuleVersion("moduleVersion1", {
 *     moduleName: "My::Sample::Test::MODULE",
 *     modulePackage: "s3://my-sample-moduleversion-bucket/sample-module-package-v1.zip",
 * });
 * const moduleVersion2 = new aws_native.cloudformation.ModuleVersion("moduleVersion2", {
 *     moduleName: "My::Sample::Test::MODULE",
 *     modulePackage: "s3://my-sample-moduleversion-bucket/sample-module-package-v2.zip",
 * }, {
 *     dependsOn: [moduleVersion1],
 * });
 *
 * ```
 */
export declare class ModuleVersion extends pulumi.CustomResource {
    /**
     * Get an existing ModuleVersion 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): ModuleVersion;
    /**
     * Returns true if the given object is an instance of ModuleVersion.  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 ModuleVersion;
    /**
     * The Amazon Resource Name (ARN) of the module.
     */
    readonly arn: pulumi.Output<string>;
    /**
     * The description of the registered module.
     */
    readonly description: pulumi.Output<string>;
    /**
     * The URL of a page providing detailed documentation for this module.
     */
    readonly documentationUrl: pulumi.Output<string>;
    /**
     * Indicator of whether this module version is the current default version
     */
    readonly isDefaultVersion: pulumi.Output<boolean>;
    /**
     * The name of the module being registered.
     *
     * Recommended module naming pattern: company_or_organization::service::type::MODULE.
     */
    readonly moduleName: pulumi.Output<string>;
    /**
     * The url to the S3 bucket containing the schema and template fragment for the module you want to register.
     */
    readonly modulePackage: pulumi.Output<string>;
    /**
     * The schema defining input parameters to and resources generated by the module.
     */
    readonly schema: pulumi.Output<string>;
    /**
     * The time that the specified module version was registered.
     */
    readonly timeCreated: pulumi.Output<string>;
    /**
     * The version ID of the module represented by this module instance.
     */
    readonly versionId: pulumi.Output<string>;
    /**
     * The scope at which the type is visible and usable in CloudFormation operations.
     *
     * The only allowed value at present is:
     *
     * PRIVATE: The type is only visible and usable within the account in which it is registered. Currently, AWS CloudFormation marks any types you register as PRIVATE.
     */
    readonly visibility: pulumi.Output<enums.cloudformation.ModuleVersionVisibility>;
    /**
     * Create a ModuleVersion 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: ModuleVersionArgs, opts?: pulumi.CustomResourceOptions);
}
/**
 * The set of arguments for constructing a ModuleVersion resource.
 */
export interface ModuleVersionArgs {
    /**
     * The name of the module being registered.
     *
     * Recommended module naming pattern: company_or_organization::service::type::MODULE.
     */
    moduleName: pulumi.Input<string>;
    /**
     * The url to the S3 bucket containing the schema and template fragment for the module you want to register.
     */
    modulePackage: pulumi.Input<string>;
}
