// *** WARNING: this file was generated by test. ***
// *** Do not edit by hand unless you're certain you know what you are doing! ***

import * as pulumi from "@pulumi/pulumi";
import * as utilities from "./utilities";

// Export members:
export * from "./provider";
export * from "./resource";
export * from "./resourceInput";

// Export enums:
export * from "./types/enums";

// Export sub-modules:
import * as types from "./types";

export {
    types,
};

// Import resources to register:
import { Resource } from "./resource";
import { ResourceInput } from "./resourceInput";

const _module = {
    version: utilities.getVersion(),
    construct: (name: string, type: string, urn: string): pulumi.Resource => {
        switch (type) {
            case "example::Resource":
                return new Resource(name, <any>undefined, { urn })
            case "example::ResourceInput":
                return new ResourceInput(name, <any>undefined, { urn })
            default:
                throw new Error(`unknown resource type ${type}`);
        }
    },
};
pulumi.runtime.registerResourceModule("example", "", _module)

import { Provider } from "./provider";

pulumi.runtime.registerResourcePackage("example", {
    version: utilities.getVersion(),
    constructProvider: (name: string, type: string, urn: string): pulumi.ProviderResource => {
        if (type !== "pulumi:providers:example") {
            throw new Error(`unknown provider type ${type}`);
        }
        return new Provider(name, <any>undefined, { urn });
    },
});
