"use strict";
// *** WARNING: this file was generated by pulumi-language-nodejs. ***
// *** Do not edit by hand unless you're certain you know what you are doing! ***
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
    if (k2 === undefined) k2 = k;
    var desc = Object.getOwnPropertyDescriptor(m, k);
    if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
      desc = { enumerable: true, get: function() { return m[k]; } };
    }
    Object.defineProperty(o, k2, desc);
}) : (function(o, m, k, k2) {
    if (k2 === undefined) k2 = k;
    o[k2] = m[k];
}));
var __exportStar = (this && this.__exportStar) || function(m, exports) {
    for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
};
Object.defineProperty(exports, "__esModule", { value: true });
exports.VirtualMfaDevice = exports.UserPolicy = exports.User = exports.ServiceLinkedRole = exports.ServerCertificate = exports.SamlProvider = exports.RolePolicy = exports.Role = exports.OidcProvider = exports.ManagedPolicy = exports.InstanceProfile = exports.GroupPolicy = exports.Group = exports.getVirtualMfaDeviceOutput = exports.getVirtualMfaDevice = exports.getUserPolicyOutput = exports.getUserPolicy = exports.getUserOutput = exports.getUser = exports.getServiceLinkedRoleOutput = exports.getServiceLinkedRole = exports.getServerCertificateOutput = exports.getServerCertificate = exports.getSamlProviderOutput = exports.getSamlProvider = exports.getRolePolicyOutput = exports.getRolePolicy = exports.getRoleOutput = exports.getRole = exports.getOidcProviderOutput = exports.getOidcProvider = exports.getManagedPolicyOutput = exports.getManagedPolicy = exports.getInstanceProfileOutput = exports.getInstanceProfile = exports.getGroupPolicyOutput = exports.getGroupPolicy = exports.getGroupOutput = exports.getGroup = void 0;
const pulumi = require("@pulumi/pulumi");
const utilities = require("../utilities");
exports.getGroup = null;
exports.getGroupOutput = null;
utilities.lazyLoad(exports, ["getGroup", "getGroupOutput"], () => require("./getGroup"));
exports.getGroupPolicy = null;
exports.getGroupPolicyOutput = null;
utilities.lazyLoad(exports, ["getGroupPolicy", "getGroupPolicyOutput"], () => require("./getGroupPolicy"));
exports.getInstanceProfile = null;
exports.getInstanceProfileOutput = null;
utilities.lazyLoad(exports, ["getInstanceProfile", "getInstanceProfileOutput"], () => require("./getInstanceProfile"));
exports.getManagedPolicy = null;
exports.getManagedPolicyOutput = null;
utilities.lazyLoad(exports, ["getManagedPolicy", "getManagedPolicyOutput"], () => require("./getManagedPolicy"));
exports.getOidcProvider = null;
exports.getOidcProviderOutput = null;
utilities.lazyLoad(exports, ["getOidcProvider", "getOidcProviderOutput"], () => require("./getOidcProvider"));
exports.getRole = null;
exports.getRoleOutput = null;
utilities.lazyLoad(exports, ["getRole", "getRoleOutput"], () => require("./getRole"));
exports.getRolePolicy = null;
exports.getRolePolicyOutput = null;
utilities.lazyLoad(exports, ["getRolePolicy", "getRolePolicyOutput"], () => require("./getRolePolicy"));
exports.getSamlProvider = null;
exports.getSamlProviderOutput = null;
utilities.lazyLoad(exports, ["getSamlProvider", "getSamlProviderOutput"], () => require("./getSamlProvider"));
exports.getServerCertificate = null;
exports.getServerCertificateOutput = null;
utilities.lazyLoad(exports, ["getServerCertificate", "getServerCertificateOutput"], () => require("./getServerCertificate"));
exports.getServiceLinkedRole = null;
exports.getServiceLinkedRoleOutput = null;
utilities.lazyLoad(exports, ["getServiceLinkedRole", "getServiceLinkedRoleOutput"], () => require("./getServiceLinkedRole"));
exports.getUser = null;
exports.getUserOutput = null;
utilities.lazyLoad(exports, ["getUser", "getUserOutput"], () => require("./getUser"));
exports.getUserPolicy = null;
exports.getUserPolicyOutput = null;
utilities.lazyLoad(exports, ["getUserPolicy", "getUserPolicyOutput"], () => require("./getUserPolicy"));
exports.getVirtualMfaDevice = null;
exports.getVirtualMfaDeviceOutput = null;
utilities.lazyLoad(exports, ["getVirtualMfaDevice", "getVirtualMfaDeviceOutput"], () => require("./getVirtualMfaDevice"));
exports.Group = null;
utilities.lazyLoad(exports, ["Group"], () => require("./group"));
exports.GroupPolicy = null;
utilities.lazyLoad(exports, ["GroupPolicy"], () => require("./groupPolicy"));
exports.InstanceProfile = null;
utilities.lazyLoad(exports, ["InstanceProfile"], () => require("./instanceProfile"));
exports.ManagedPolicy = null;
utilities.lazyLoad(exports, ["ManagedPolicy"], () => require("./managedPolicy"));
exports.OidcProvider = null;
utilities.lazyLoad(exports, ["OidcProvider"], () => require("./oidcProvider"));
exports.Role = null;
utilities.lazyLoad(exports, ["Role"], () => require("./role"));
exports.RolePolicy = null;
utilities.lazyLoad(exports, ["RolePolicy"], () => require("./rolePolicy"));
exports.SamlProvider = null;
utilities.lazyLoad(exports, ["SamlProvider"], () => require("./samlProvider"));
exports.ServerCertificate = null;
utilities.lazyLoad(exports, ["ServerCertificate"], () => require("./serverCertificate"));
exports.ServiceLinkedRole = null;
utilities.lazyLoad(exports, ["ServiceLinkedRole"], () => require("./serviceLinkedRole"));
exports.User = null;
utilities.lazyLoad(exports, ["User"], () => require("./user"));
exports.UserPolicy = null;
utilities.lazyLoad(exports, ["UserPolicy"], () => require("./userPolicy"));
exports.VirtualMfaDevice = null;
utilities.lazyLoad(exports, ["VirtualMfaDevice"], () => require("./virtualMfaDevice"));
// Export enums:
__exportStar(require("../types/enums/iam"), exports);
const _module = {
    version: utilities.getVersion(),
    construct: (name, type, urn) => {
        switch (type) {
            case "aws-native:iam:Group":
                return new exports.Group(name, undefined, { urn });
            case "aws-native:iam:GroupPolicy":
                return new exports.GroupPolicy(name, undefined, { urn });
            case "aws-native:iam:InstanceProfile":
                return new exports.InstanceProfile(name, undefined, { urn });
            case "aws-native:iam:ManagedPolicy":
                return new exports.ManagedPolicy(name, undefined, { urn });
            case "aws-native:iam:OidcProvider":
                return new exports.OidcProvider(name, undefined, { urn });
            case "aws-native:iam:Role":
                return new exports.Role(name, undefined, { urn });
            case "aws-native:iam:RolePolicy":
                return new exports.RolePolicy(name, undefined, { urn });
            case "aws-native:iam:SamlProvider":
                return new exports.SamlProvider(name, undefined, { urn });
            case "aws-native:iam:ServerCertificate":
                return new exports.ServerCertificate(name, undefined, { urn });
            case "aws-native:iam:ServiceLinkedRole":
                return new exports.ServiceLinkedRole(name, undefined, { urn });
            case "aws-native:iam:User":
                return new exports.User(name, undefined, { urn });
            case "aws-native:iam:UserPolicy":
                return new exports.UserPolicy(name, undefined, { urn });
            case "aws-native:iam:VirtualMfaDevice":
                return new exports.VirtualMfaDevice(name, undefined, { urn });
            default:
                throw new Error(`unknown resource type ${type}`);
        }
    },
};
pulumi.runtime.registerResourceModule("aws-native", "iam", _module);
//# sourceMappingURL=index.js.map