@pierskarsenbarg/sdm
Version:
A Pulumi package for creating and managing StrongDM cloud resources.
246 lines (245 loc) • 7.01 kB
TypeScript
import * as pulumi from "@pulumi/pulumi";
import * as outputs from "./types/output";
/**
* Accounts are users that have access to strongDM. The types of accounts are:
* 1. **Users:** humans who are authenticated through username and password or SSO.
* 2. **Service Accounts:** machines that are authenticated using a service token.
* 3. **Tokens** are access keys with permissions that can be used for authentication.
* ## Example Usage
*
* ```typescript
* import * as pulumi from "@pulumi/pulumi";
* import * as sdm from "@pierskarsenbarg/sdm";
*
* const user_queries = sdm.getAccount({
* email: "*@strongdm.com",
* tags: {
* env: "dev",
* region: "us-west",
* },
* type: "user",
* });
* const api_key_queries = sdm.getAccount({
* name: "*-dev",
* type: "api",
* });
* const admin_token_queries = sdm.getAccount({
* name: "*-prod",
* type: "admin-token",
* });
* ```
*/
export declare function getAccount(args?: GetAccountArgs, opts?: pulumi.InvokeOptions): Promise<GetAccountResult>;
/**
* A collection of arguments for invoking getAccount.
*/
export interface GetAccountArgs {
/**
* Corresponds to the type of token, e.g. api or admin-token.
*/
accountType?: string;
/**
* The User's email address. Must be unique.
*/
email?: string;
/**
* External ID is an alternative unique ID this user is represented by within an external service.
*/
externalId?: string;
/**
* The User's first name.
*/
firstName?: string;
/**
* Unique identifier of the User.
*/
id?: string;
/**
* The User's last name.
*/
lastName?: string;
/**
* Manager ID is the ID of the user's manager. This field is empty when the user has no manager.
*/
managerId?: string;
/**
* Unique human-readable name of the Token.
*/
name?: string;
/**
* PermissionLevel is the user's permission level e.g. admin, DBA, user.
*/
permissionLevel?: string;
/**
* Permissions assigned to the token, e.g. role:create.
*/
permissions?: string;
/**
* Reserved for future use. Always false for tokens.
*/
suspended?: boolean;
/**
* Tags is a map of key, value pairs.
*/
tags?: {
[key: string]: string;
};
/**
* a filter to select all items of a certain subtype. See the [filter documentation](https://www.strongdm.com/docs/cli/filters/) for more information.
*/
type?: string;
}
/**
* A collection of values returned by getAccount.
*/
export interface GetAccountResult {
/**
* Corresponds to the type of token, e.g. api or admin-token.
*/
readonly accountType?: string;
/**
* A single element list containing a map, where each key lists one of the following objects:
* * service:
*/
readonly accounts: outputs.GetAccountAccount[];
/**
* The User's email address. Must be unique.
*/
readonly email?: string;
/**
* External ID is an alternative unique ID this user is represented by within an external service.
*/
readonly externalId?: string;
/**
* The User's first name.
*/
readonly firstName?: string;
/**
* Unique identifier of the User.
*/
readonly id?: string;
/**
* a list of strings of ids of data sources that match the given arguments.
*/
readonly ids: string[];
/**
* The User's last name.
*/
readonly lastName?: string;
/**
* Manager ID is the ID of the user's manager. This field is empty when the user has no manager.
*/
readonly managerId?: string;
/**
* Unique human-readable name of the Token.
*/
readonly name?: string;
/**
* PermissionLevel is the user's permission level e.g. admin, DBA, user.
*/
readonly permissionLevel?: string;
/**
* Permissions assigned to the token, e.g. role:create.
*/
readonly permissions?: string;
/**
* Suspended is a read only field for the User's suspended state.
*/
readonly suspended?: boolean;
/**
* Tags is a map of key, value pairs.
*/
readonly tags?: {
[key: string]: string;
};
readonly type?: string;
}
/**
* Accounts are users that have access to strongDM. The types of accounts are:
* 1. **Users:** humans who are authenticated through username and password or SSO.
* 2. **Service Accounts:** machines that are authenticated using a service token.
* 3. **Tokens** are access keys with permissions that can be used for authentication.
* ## Example Usage
*
* ```typescript
* import * as pulumi from "@pulumi/pulumi";
* import * as sdm from "@pierskarsenbarg/sdm";
*
* const user_queries = sdm.getAccount({
* email: "*@strongdm.com",
* tags: {
* env: "dev",
* region: "us-west",
* },
* type: "user",
* });
* const api_key_queries = sdm.getAccount({
* name: "*-dev",
* type: "api",
* });
* const admin_token_queries = sdm.getAccount({
* name: "*-prod",
* type: "admin-token",
* });
* ```
*/
export declare function getAccountOutput(args?: GetAccountOutputArgs, opts?: pulumi.InvokeOutputOptions): pulumi.Output<GetAccountResult>;
/**
* A collection of arguments for invoking getAccount.
*/
export interface GetAccountOutputArgs {
/**
* Corresponds to the type of token, e.g. api or admin-token.
*/
accountType?: pulumi.Input<string>;
/**
* The User's email address. Must be unique.
*/
email?: pulumi.Input<string>;
/**
* External ID is an alternative unique ID this user is represented by within an external service.
*/
externalId?: pulumi.Input<string>;
/**
* The User's first name.
*/
firstName?: pulumi.Input<string>;
/**
* Unique identifier of the User.
*/
id?: pulumi.Input<string>;
/**
* The User's last name.
*/
lastName?: pulumi.Input<string>;
/**
* Manager ID is the ID of the user's manager. This field is empty when the user has no manager.
*/
managerId?: pulumi.Input<string>;
/**
* Unique human-readable name of the Token.
*/
name?: pulumi.Input<string>;
/**
* PermissionLevel is the user's permission level e.g. admin, DBA, user.
*/
permissionLevel?: pulumi.Input<string>;
/**
* Permissions assigned to the token, e.g. role:create.
*/
permissions?: pulumi.Input<string>;
/**
* Reserved for future use. Always false for tokens.
*/
suspended?: pulumi.Input<boolean>;
/**
* Tags is a map of key, value pairs.
*/
tags?: pulumi.Input<{
[key: string]: pulumi.Input<string>;
}>;
/**
* a filter to select all items of a certain subtype. See the [filter documentation](https://www.strongdm.com/docs/cli/filters/) for more information.
*/
type?: pulumi.Input<string>;
}