import * as pulumi from "@pulumi/pulumi"; import * as inputs from "../types/input"; import * as outputs from "../types/output"; /** * User credentials for a Cloud Firestore with MongoDB compatibility database. * The resource is owned by the database and is deleted along with the database. * * To get more information about UserCreds, see: * * * [API documentation](https://cloud.google.com/firestore/docs/reference/rest/v1/projects.databases.userCreds) * * How-to Guides * * [Authenticate and connect to a database](https://cloud.google.com/firestore/mongodb-compatibility/docs/connect) * * ## Example Usage * * ### Firestore User Creds Basic * * ```typescript * import * as pulumi from "@pulumi/pulumi"; * import * as gcp from "@pulumi/gcp"; * * const database = new gcp.firestore.Database("database", { * project: "my-project-name", * name: "database-id-mongodb-compatible", * locationId: "nam5", * type: "FIRESTORE_NATIVE", * databaseEdition: "ENTERPRISE", * deleteProtectionState: "DELETE_PROTECTION_DISABLED", * deletionPolicy: "DELETE", * }); * const my_user_creds = new gcp.firestore.UserCreds("my-user-creds", { * project: "my-project-name", * database: database.name, * name: "my-username", * }); * ``` * ### Firestore User Creds With Secret Manager * * ```typescript * import * as pulumi from "@pulumi/pulumi"; * import * as gcp from "@pulumi/gcp"; * * const database = new gcp.firestore.Database("database", { * project: "my-project-name", * name: "database-id-mongodb-compatible", * locationId: "nam5", * type: "FIRESTORE_NATIVE", * databaseEdition: "ENTERPRISE", * deleteProtectionState: "DELETE_PROTECTION_DISABLED", * deletionPolicy: "DELETE", * }); * const my_user_creds = new gcp.firestore.UserCreds("my-user-creds", { * project: "my-project-name", * database: database.name, * name: "my-username", * }); * const my_fs_user_creds_secret = new gcp.secretmanager.Secret("my-fs-user-creds-secret", { * project: "my-project-name", * secretId: "my-fs-user-creds-secret", * replication: { * auto: {}, * }, * }); * const my_fs_user_creds_secret_version = new gcp.secretmanager.SecretVersion("my-fs-user-creds-secret-version", { * secret: my_fs_user_creds_secret.id, * secretData: my_user_creds.securePassword, * }); * ``` * * ## Import * * UserCreds can be imported using any of these accepted formats: * * * `projects/{{project}}/databases/{{database}}/userCreds/{{name}}` * * `{{project}}/{{database}}/{{name}}` * * `{{database}}/{{name}}` * * When using the `pulumi import` command, UserCreds can be imported using one of the formats above. For example: * * ```sh * $ pulumi import gcp:firestore/userCreds:UserCreds default projects/{{project}}/databases/{{database}}/userCreds/{{name}} * $ pulumi import gcp:firestore/userCreds:UserCreds default {{project}}/{{database}}/{{name}} * $ pulumi import gcp:firestore/userCreds:UserCreds default {{database}}/{{name}} * ``` */ export declare class UserCreds extends pulumi.CustomResource { /** * Get an existing UserCreds 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: string, id: pulumi.Input, state?: UserCredsState, opts?: pulumi.CustomResourceOptions): UserCreds; /** * Returns true if the given object is an instance of UserCreds. This is designed to work even * when multiple copies of the Pulumi SDK have been loaded into the same process. */ static isInstance(obj: any): obj is UserCreds; /** * The timestamp at which these user creds were created. */ readonly createTime: pulumi.Output; /** * The Firestore database ID. */ readonly database: pulumi.Output; /** * The ID to use for the user creds, which will become the final component * of the user cred's resource name. * This value should be 4-63 characters. Valid characters are /[a-z][0-9]-/ * with first character a letter and the last a letter or a number. Must not * be UUID-like /[0-9a-f]{8}(-[0-9a-f]{4}){3}-[0-9a-f]{12}/. */ readonly name: pulumi.Output; /** * The ID of the project in which the resource belongs. * If it is not provided, the provider project is used. */ readonly project: pulumi.Output; /** * Describes the Resource Identity principal. * Structure is documented below. */ readonly resourceIdentities: pulumi.Output; /** * The plaintext server-generated password for the user creds. * **Note**: This property is sensitive and will not be displayed in the plan. */ readonly securePassword: pulumi.Output; /** * The state of the user creds. */ readonly state: pulumi.Output; /** * The timestamp at which these user creds were updated. */ readonly updateTime: pulumi.Output; /** * Create a UserCreds resource with the given unique name, arguments, and options. * * @param name The _unique_ name of the resource. * @param args The arguments to use to populate this resource's properties. * @param opts A bag of options that control this resource's behavior. */ constructor(name: string, args: UserCredsArgs, opts?: pulumi.CustomResourceOptions); } /** * Input properties used for looking up and filtering UserCreds resources. */ export interface UserCredsState { /** * The timestamp at which these user creds were created. */ createTime?: pulumi.Input; /** * The Firestore database ID. */ database?: pulumi.Input; /** * The ID to use for the user creds, which will become the final component * of the user cred's resource name. * This value should be 4-63 characters. Valid characters are /[a-z][0-9]-/ * with first character a letter and the last a letter or a number. Must not * be UUID-like /[0-9a-f]{8}(-[0-9a-f]{4}){3}-[0-9a-f]{12}/. */ name?: pulumi.Input; /** * The ID of the project in which the resource belongs. * If it is not provided, the provider project is used. */ project?: pulumi.Input; /** * Describes the Resource Identity principal. * Structure is documented below. */ resourceIdentities?: pulumi.Input[]>; /** * The plaintext server-generated password for the user creds. * **Note**: This property is sensitive and will not be displayed in the plan. */ securePassword?: pulumi.Input; /** * The state of the user creds. */ state?: pulumi.Input; /** * The timestamp at which these user creds were updated. */ updateTime?: pulumi.Input; } /** * The set of arguments for constructing a UserCreds resource. */ export interface UserCredsArgs { /** * The Firestore database ID. */ database: pulumi.Input; /** * The ID to use for the user creds, which will become the final component * of the user cred's resource name. * This value should be 4-63 characters. Valid characters are /[a-z][0-9]-/ * with first character a letter and the last a letter or a number. Must not * be UUID-like /[0-9a-f]{8}(-[0-9a-f]{4}){3}-[0-9a-f]{12}/. */ name?: pulumi.Input; /** * The ID of the project in which the resource belongs. * If it is not provided, the provider project is used. */ project?: pulumi.Input; }