UNPKG

@pulumi/ns1

Version:

A Pulumi package for creating and managing ns1 cloud resources.

179 lines 9.41 kB
"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! *** Object.defineProperty(exports, "__esModule", { value: true }); exports.User = void 0; const pulumi = require("@pulumi/pulumi"); const utilities = require("./utilities"); /** * Provides a NS1 User resource. Creating a user sends an invitation email to the * user's email address. This can be used to create, modify, and delete users. * The credentials used must have the `manageUsers` permission set. * * ## Example Usage * * ```typescript * import * as pulumi from "@pulumi/pulumi"; * import * as ns1 from "@pulumi/ns1"; * * const example = new ns1.Team("example", { * name: "Example team", * ipWhitelists: [ * "1.1.1.1", * "2.2.2.2", * ], * dnsViewZones: false, * accountManageUsers: false, * }); * const exampleUser = new ns1.User("example", { * name: "Example User", * username: "example_user", * email: "user@example.com", * teams: [example.id], * notify: { * billing: "false", * }, * }); * ``` * * ## Permissions * * A user will inherit permissions from the teams they are assigned to. * If a user is assigned to a team and also has individual permissions set on the user, the individual permissions * will be overridden by the inherited team permissions. * In a future release, setting permissions on a user that is part of a team will be explicitly disabled. * * When a user is removed from all teams completely, they will inherit whatever permissions they had previously. * If a user is removed from all their teams, it will probably be necessary to run `pulumi up` a second time * to update the users permissions from their old team permissions to new user-specific permissions. * * See [this NS1 Help Center article](https://help.ns1.com/hc/en-us/articles/360024409034-Managing-user-permissions) for an overview of user permission settings. * * ## NS1 Documentation * * [User Api Docs](https://ns1.com/api#user) * * [Managing user permissions](https://help.ns1.com/hc/en-us/articles/360024409034-Managing-user-permissions) * * ## Import * * ```sh * $ pulumi import ns1:index/user:User <name> <username>` * ``` */ class User extends pulumi.CustomResource { /** * Get an existing User 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 state Any extra arguments used during the lookup. * @param opts Optional settings to control the behavior of the CustomResource. */ static get(name, id, state, opts) { return new User(name, state, { ...opts, id: id }); } /** * Returns true if the given object is an instance of User. This is designed to work even * when multiple copies of the Pulumi SDK have been loaded into the same process. */ static isInstance(obj) { if (obj === undefined || obj === null) { return false; } return obj['__pulumiType'] === User.__pulumiType; } constructor(name, argsOrState, opts) { let resourceInputs = {}; opts = opts || {}; if (opts.id) { const state = argsOrState; resourceInputs["accountManageAccountSettings"] = state?.accountManageAccountSettings; resourceInputs["accountManageApikeys"] = state?.accountManageApikeys; resourceInputs["accountManageIpWhitelist"] = state?.accountManageIpWhitelist; resourceInputs["accountManagePaymentMethods"] = state?.accountManagePaymentMethods; resourceInputs["accountManagePlan"] = state?.accountManagePlan; resourceInputs["accountManageTeams"] = state?.accountManageTeams; resourceInputs["accountManageUsers"] = state?.accountManageUsers; resourceInputs["accountViewActivityLog"] = state?.accountViewActivityLog; resourceInputs["accountViewInvoices"] = state?.accountViewInvoices; resourceInputs["dataManageDatafeeds"] = state?.dataManageDatafeeds; resourceInputs["dataManageDatasources"] = state?.dataManageDatasources; resourceInputs["dataPushToDatafeeds"] = state?.dataPushToDatafeeds; resourceInputs["dnsManageZones"] = state?.dnsManageZones; resourceInputs["dnsRecordsAllows"] = state?.dnsRecordsAllows; resourceInputs["dnsRecordsDenies"] = state?.dnsRecordsDenies; resourceInputs["dnsViewZones"] = state?.dnsViewZones; resourceInputs["dnsZonesAllowByDefault"] = state?.dnsZonesAllowByDefault; resourceInputs["dnsZonesAllows"] = state?.dnsZonesAllows; resourceInputs["dnsZonesDenies"] = state?.dnsZonesDenies; resourceInputs["email"] = state?.email; resourceInputs["ipWhitelistStrict"] = state?.ipWhitelistStrict; resourceInputs["ipWhitelists"] = state?.ipWhitelists; resourceInputs["monitoringCreateJobs"] = state?.monitoringCreateJobs; resourceInputs["monitoringDeleteJobs"] = state?.monitoringDeleteJobs; resourceInputs["monitoringManageJobs"] = state?.monitoringManageJobs; resourceInputs["monitoringManageLists"] = state?.monitoringManageLists; resourceInputs["monitoringUpdateJobs"] = state?.monitoringUpdateJobs; resourceInputs["monitoringViewJobs"] = state?.monitoringViewJobs; resourceInputs["name"] = state?.name; resourceInputs["notify"] = state?.notify; resourceInputs["redirectsManageRedirects"] = state?.redirectsManageRedirects; resourceInputs["securityManageActiveDirectory"] = state?.securityManageActiveDirectory; resourceInputs["securityManageGlobal2fa"] = state?.securityManageGlobal2fa; resourceInputs["teams"] = state?.teams; resourceInputs["username"] = state?.username; } else { const args = argsOrState; if (args?.email === undefined && !opts.urn) { throw new Error("Missing required property 'email'"); } if (args?.username === undefined && !opts.urn) { throw new Error("Missing required property 'username'"); } resourceInputs["accountManageAccountSettings"] = args?.accountManageAccountSettings; resourceInputs["accountManageApikeys"] = args?.accountManageApikeys; resourceInputs["accountManageIpWhitelist"] = args?.accountManageIpWhitelist; resourceInputs["accountManagePaymentMethods"] = args?.accountManagePaymentMethods; resourceInputs["accountManagePlan"] = args?.accountManagePlan; resourceInputs["accountManageTeams"] = args?.accountManageTeams; resourceInputs["accountManageUsers"] = args?.accountManageUsers; resourceInputs["accountViewActivityLog"] = args?.accountViewActivityLog; resourceInputs["accountViewInvoices"] = args?.accountViewInvoices; resourceInputs["dataManageDatafeeds"] = args?.dataManageDatafeeds; resourceInputs["dataManageDatasources"] = args?.dataManageDatasources; resourceInputs["dataPushToDatafeeds"] = args?.dataPushToDatafeeds; resourceInputs["dnsManageZones"] = args?.dnsManageZones; resourceInputs["dnsRecordsAllows"] = args?.dnsRecordsAllows; resourceInputs["dnsRecordsDenies"] = args?.dnsRecordsDenies; resourceInputs["dnsViewZones"] = args?.dnsViewZones; resourceInputs["dnsZonesAllowByDefault"] = args?.dnsZonesAllowByDefault; resourceInputs["dnsZonesAllows"] = args?.dnsZonesAllows; resourceInputs["dnsZonesDenies"] = args?.dnsZonesDenies; resourceInputs["email"] = args?.email; resourceInputs["ipWhitelistStrict"] = args?.ipWhitelistStrict; resourceInputs["ipWhitelists"] = args?.ipWhitelists; resourceInputs["monitoringCreateJobs"] = args?.monitoringCreateJobs; resourceInputs["monitoringDeleteJobs"] = args?.monitoringDeleteJobs; resourceInputs["monitoringManageJobs"] = args?.monitoringManageJobs; resourceInputs["monitoringManageLists"] = args?.monitoringManageLists; resourceInputs["monitoringUpdateJobs"] = args?.monitoringUpdateJobs; resourceInputs["monitoringViewJobs"] = args?.monitoringViewJobs; resourceInputs["name"] = args?.name; resourceInputs["notify"] = args?.notify; resourceInputs["redirectsManageRedirects"] = args?.redirectsManageRedirects; resourceInputs["securityManageActiveDirectory"] = args?.securityManageActiveDirectory; resourceInputs["securityManageGlobal2fa"] = args?.securityManageGlobal2fa; resourceInputs["teams"] = args?.teams; resourceInputs["username"] = args?.username; } opts = pulumi.mergeOptions(utilities.resourceOptsDefaults(), opts); super(User.__pulumiType, name, resourceInputs, opts); } } exports.User = User; /** @internal */ User.__pulumiType = 'ns1:index/user:User'; //# sourceMappingURL=user.js.map