// *** WARNING: this file was generated by the Pulumi SDK Generator. ***
// *** 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 "./artifact";
export * from "./assignment";
export * from "./blueprint";
export * from "./getArtifact";
export * from "./getAssignment";
export * from "./getBlueprint";
export * from "./getPolicyAssignmentArtifact";
export * from "./getPublishedBlueprint";
export * from "./getRoleAssignmentArtifact";
export * from "./getTemplateArtifact";
export * from "./policyAssignmentArtifact";
export * from "./publishedBlueprint";
export * from "./roleAssignmentArtifact";
export * from "./templateArtifact";

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

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

export {
    v20171111preview,
    v20181101preview,
};

// Import resources to register:
import { Artifact } from "./artifact";
import { Assignment } from "./assignment";
import { Blueprint } from "./blueprint";
import { PolicyAssignmentArtifact } from "./policyAssignmentArtifact";
import { PublishedBlueprint } from "./publishedBlueprint";
import { RoleAssignmentArtifact } from "./roleAssignmentArtifact";
import { TemplateArtifact } from "./templateArtifact";

const _module = {
    version: utilities.getVersion(),
    construct: (name: string, type: string, urn: string): pulumi.Resource => {
        switch (type) {
            case "azure-native:blueprint:Artifact":
                return new Artifact(name, <any>undefined, { urn })
            case "azure-native:blueprint:Assignment":
                return new Assignment(name, <any>undefined, { urn })
            case "azure-native:blueprint:Blueprint":
                return new Blueprint(name, <any>undefined, { urn })
            case "azure-native:blueprint:PolicyAssignmentArtifact":
                return new PolicyAssignmentArtifact(name, <any>undefined, { urn })
            case "azure-native:blueprint:PublishedBlueprint":
                return new PublishedBlueprint(name, <any>undefined, { urn })
            case "azure-native:blueprint:RoleAssignmentArtifact":
                return new RoleAssignmentArtifact(name, <any>undefined, { urn })
            case "azure-native:blueprint:TemplateArtifact":
                return new TemplateArtifact(name, <any>undefined, { urn })
            default:
                throw new Error(`unknown resource type ${type}`);
        }
    },
};
pulumi.runtime.registerResourceModule("azure-native", "blueprint", _module)
