@pulumi/ns1
Version:
A Pulumi package for creating and managing ns1 cloud resources.
179 lines • 9.41 kB
JavaScript
;
// *** 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