import * as pulumi from "@pulumi/pulumi"; /** * Manage lease count quotas which enforce the number of leases that can be created. * A lease count quota can be created at the root level or defined on a namespace or mount by * specifying a path when creating the quota. * * See [Vault's Documentation](https://www.vaultproject.io/docs/enterprise/lease-count-quotas) for more * information. * * **Note** this feature is available only with Vault Enterprise. * * ## Example Usage * * ```typescript * import * as pulumi from "@pulumi/pulumi"; * import * as vault from "@pulumi/vault"; * * const global = new vault.QuotaLeaseCount("global", { * name: "global", * path: "", * maxLeases: 100, * }); * ``` * * ## Import * * Lease count quotas can be imported using their names * * ```sh * $ pulumi import vault:index/quotaLeaseCount:QuotaLeaseCount global global * ``` */ export declare class QuotaLeaseCount extends pulumi.CustomResource { /** * Get an existing QuotaLeaseCount 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?: QuotaLeaseCountState, opts?: pulumi.CustomResourceOptions): QuotaLeaseCount; /** * Returns true if the given object is an instance of QuotaLeaseCount. 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 QuotaLeaseCount; /** * If set to `true` on a quota where path is set to a namespace, the same quota will be cumulatively applied to all child namespace. The inheritable parameter cannot be set to `true` if the path does not specify a namespace. Only the quotas associated with the root namespace are inheritable by default. Requires Vault 1.15+. */ readonly inheritable: pulumi.Output; /** * The maximum number of leases to be allowed by the quota * rule. The `maxLeases` must be positive. */ readonly maxLeases: pulumi.Output; /** * Name of the rate limit quota */ readonly name: pulumi.Output; /** * The namespace to provision the resource in. * The value should not contain leading or trailing forward slashes. * The `namespace` is always relative to the provider's configured namespace. * *Available only for Vault Enterprise*. */ readonly namespace: pulumi.Output; /** * Path of the mount or namespace to apply the quota. A blank path configures a * global rate limit quota. For example `namespace1/` adds a quota to a full namespace, * `namespace1/auth/userpass` adds a `quota` to `userpass` in `namespace1`. * Updating this field on an existing quota can have "moving" effects. For example, updating * `auth/userpass` to `namespace1/auth/userpass` moves this quota from being a global mount quota to * a namespace specific mount quota. **Note, namespaces are supported in Enterprise only.** */ readonly path: pulumi.Output; /** * If set on a quota where `path` is set to an auth mount with a concept of roles (such as /auth/approle/), this will make the quota restrict login requests to that mount that are made with the specified role. */ readonly role: pulumi.Output; /** * Create a QuotaLeaseCount 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: QuotaLeaseCountArgs, opts?: pulumi.CustomResourceOptions); } /** * Input properties used for looking up and filtering QuotaLeaseCount resources. */ export interface QuotaLeaseCountState { /** * If set to `true` on a quota where path is set to a namespace, the same quota will be cumulatively applied to all child namespace. The inheritable parameter cannot be set to `true` if the path does not specify a namespace. Only the quotas associated with the root namespace are inheritable by default. Requires Vault 1.15+. */ inheritable?: pulumi.Input; /** * The maximum number of leases to be allowed by the quota * rule. The `maxLeases` must be positive. */ maxLeases?: pulumi.Input; /** * Name of the rate limit quota */ name?: pulumi.Input; /** * The namespace to provision the resource in. * The value should not contain leading or trailing forward slashes. * The `namespace` is always relative to the provider's configured namespace. * *Available only for Vault Enterprise*. */ namespace?: pulumi.Input; /** * Path of the mount or namespace to apply the quota. A blank path configures a * global rate limit quota. For example `namespace1/` adds a quota to a full namespace, * `namespace1/auth/userpass` adds a `quota` to `userpass` in `namespace1`. * Updating this field on an existing quota can have "moving" effects. For example, updating * `auth/userpass` to `namespace1/auth/userpass` moves this quota from being a global mount quota to * a namespace specific mount quota. **Note, namespaces are supported in Enterprise only.** */ path?: pulumi.Input; /** * If set on a quota where `path` is set to an auth mount with a concept of roles (such as /auth/approle/), this will make the quota restrict login requests to that mount that are made with the specified role. */ role?: pulumi.Input; } /** * The set of arguments for constructing a QuotaLeaseCount resource. */ export interface QuotaLeaseCountArgs { /** * If set to `true` on a quota where path is set to a namespace, the same quota will be cumulatively applied to all child namespace. The inheritable parameter cannot be set to `true` if the path does not specify a namespace. Only the quotas associated with the root namespace are inheritable by default. Requires Vault 1.15+. */ inheritable?: pulumi.Input; /** * The maximum number of leases to be allowed by the quota * rule. The `maxLeases` must be positive. */ maxLeases: pulumi.Input; /** * Name of the rate limit quota */ name?: pulumi.Input; /** * The namespace to provision the resource in. * The value should not contain leading or trailing forward slashes. * The `namespace` is always relative to the provider's configured namespace. * *Available only for Vault Enterprise*. */ namespace?: pulumi.Input; /** * Path of the mount or namespace to apply the quota. A blank path configures a * global rate limit quota. For example `namespace1/` adds a quota to a full namespace, * `namespace1/auth/userpass` adds a `quota` to `userpass` in `namespace1`. * Updating this field on an existing quota can have "moving" effects. For example, updating * `auth/userpass` to `namespace1/auth/userpass` moves this quota from being a global mount quota to * a namespace specific mount quota. **Note, namespaces are supported in Enterprise only.** */ path?: pulumi.Input; /** * If set on a quota where `path` is set to an auth mount with a concept of roles (such as /auth/approle/), this will make the quota restrict login requests to that mount that are made with the specified role. */ role?: pulumi.Input; }