import * as pulumi from "@pulumi/pulumi";
import * as inputs from "../types/input";
import * as outputs from "../types/output";
/**
 * Settings resource defines the properties, applied directly to the resource or inherited through the hierarchy, to enable consistent, federated use of PAM.
 *
 * To get more information about Settings, see:
 *
 * * [API documentation](https://cloud.google.com/iam/docs/reference/pam/rest/v1beta/folders.locations/updateSettings)
 * * How-to Guides
 *     * [Configure Privileged Access Manager settings](https://cloud.google.com/iam/docs/pam-configure-settings)
 *     * [Official Documentation](https://cloud.google.com/iam/docs/pam-overview)
 *
 * ## Example Usage
 *
 * ### Privileged Access Manager Settings Basic
 *
 * ```typescript
 * import * as pulumi from "@pulumi/pulumi";
 * import * as gcp from "@pulumi/gcp";
 *
 * const project = new gcp.organizations.Project("project", {
 *     name: "your-project-name",
 *     projectId: "your-project-id",
 *     orgId: "1234567",
 * });
 * const settings = new gcp.privilegedaccessmanager.Settings("settings", {
 *     location: "global",
 *     parent: pulumi.interpolate`projects/${project.projectId}`,
 *     serviceAccountApproverSettings: {
 *         enabled: false,
 *     },
 *     emailNotificationSettings: {
 *         customNotificationBehavior: {
 *             requesterNotifications: {
 *                 entitlementAssigned: "DISABLED",
 *                 grantActivated: "DISABLED",
 *                 grantDenied: "ENABLED",
 *                 grantExpired: "DISABLED",
 *                 grantEnded: "DISABLED",
 *                 grantRevoked: "DISABLED",
 *                 grantExternallyModified: "DISABLED",
 *                 grantActivationFailed: "DISABLED",
 *             },
 *         },
 *     },
 * }, {
 *     dependsOn: [wait90s],
 * });
 * ```
 *
 * ## Import
 *
 * Settings can be imported using any of these accepted formats:
 *
 * * `{{parent}}/locations/{{location}}/settings`
 *
 * When using the `pulumi import` command, Settings can be imported using one of the formats above. For example:
 *
 * ```sh
 * $ pulumi import gcp:privilegedaccessmanager/settings:Settings default {{parent}}/locations/{{location}}/settings
 * ```
 */
export declare class Settings extends pulumi.CustomResource {
    /**
     * Get an existing Settings 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<pulumi.ID>, state?: SettingsState, opts?: pulumi.CustomResourceOptions): Settings;
    /**
     * Returns true if the given object is an instance of Settings.  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 Settings;
    /**
     * Create timestamp. Uses RFC 3339, where generated output will always be Z-normalized and use 0, 3, 6 or 9 fractional digits. Offsets other than "Z" are also accepted.
     * Examples: "2014-10-02T15:01:23Z", "2014-10-02T15:01:23.045123456Z" or "2014-10-02T15:01:23+05:30".
     */
    readonly createTime: pulumi.Output<string>;
    /**
     * EmailNotificationSettings defines node-wide email notification preferences for various PAM events.
     * Structure is documented below.
     */
    readonly emailNotificationSettings: pulumi.Output<outputs.privilegedaccessmanager.SettingsEmailNotificationSettings | undefined>;
    /**
     * Fingerprint for optimistic concurrency returned in the response of GetSettings. Must be provided in the requests to UpdateSettings. If the value provided does not match the value known to the server, ABORTED will be thrown, and the client should retry the read-modify-write cycle.
     */
    readonly etag: pulumi.Output<string>;
    /**
     * The region of the PAM settings resource.
     */
    readonly location: pulumi.Output<string>;
    /**
     * Name of the settings resource. Possible formats:
     * projects/{project-id|project-number}/locations/{location}/settings folders/{folder-number}/locations/{location}/settings organizations/{organization-number}/locations/{location}/settings
     */
    readonly name: pulumi.Output<string>;
    /**
     * Format: projects/{project-id|project-number} or organizations/{organization-number} or folders/{folder-number}
     */
    readonly parent: pulumi.Output<string>;
    /**
     * This controls the node-level settings for allowing service accounts as approvers.
     * Structure is documented below.
     */
    readonly serviceAccountApproverSettings: pulumi.Output<outputs.privilegedaccessmanager.SettingsServiceAccountApproverSettings | undefined>;
    /**
     * Update timestamp. Uses RFC 3339, where generated output will always be Z-normalized and use 0, 3, 6 or 9 fractional digits. Offsets other than "Z" are also accepted.
     * Examples: "2014-10-02T15:01:23Z", "2014-10-02T15:01:23.045123456Z" or "2014-10-02T15:01:23+05:30".
     */
    readonly updateTime: pulumi.Output<string>;
    /**
     * Create a Settings 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: SettingsArgs, opts?: pulumi.CustomResourceOptions);
}
/**
 * Input properties used for looking up and filtering Settings resources.
 */
export interface SettingsState {
    /**
     * Create timestamp. Uses RFC 3339, where generated output will always be Z-normalized and use 0, 3, 6 or 9 fractional digits. Offsets other than "Z" are also accepted.
     * Examples: "2014-10-02T15:01:23Z", "2014-10-02T15:01:23.045123456Z" or "2014-10-02T15:01:23+05:30".
     */
    createTime?: pulumi.Input<string>;
    /**
     * EmailNotificationSettings defines node-wide email notification preferences for various PAM events.
     * Structure is documented below.
     */
    emailNotificationSettings?: pulumi.Input<inputs.privilegedaccessmanager.SettingsEmailNotificationSettings>;
    /**
     * Fingerprint for optimistic concurrency returned in the response of GetSettings. Must be provided in the requests to UpdateSettings. If the value provided does not match the value known to the server, ABORTED will be thrown, and the client should retry the read-modify-write cycle.
     */
    etag?: pulumi.Input<string>;
    /**
     * The region of the PAM settings resource.
     */
    location?: pulumi.Input<string>;
    /**
     * Name of the settings resource. Possible formats:
     * projects/{project-id|project-number}/locations/{location}/settings folders/{folder-number}/locations/{location}/settings organizations/{organization-number}/locations/{location}/settings
     */
    name?: pulumi.Input<string>;
    /**
     * Format: projects/{project-id|project-number} or organizations/{organization-number} or folders/{folder-number}
     */
    parent?: pulumi.Input<string>;
    /**
     * This controls the node-level settings for allowing service accounts as approvers.
     * Structure is documented below.
     */
    serviceAccountApproverSettings?: pulumi.Input<inputs.privilegedaccessmanager.SettingsServiceAccountApproverSettings>;
    /**
     * Update timestamp. Uses RFC 3339, where generated output will always be Z-normalized and use 0, 3, 6 or 9 fractional digits. Offsets other than "Z" are also accepted.
     * Examples: "2014-10-02T15:01:23Z", "2014-10-02T15:01:23.045123456Z" or "2014-10-02T15:01:23+05:30".
     */
    updateTime?: pulumi.Input<string>;
}
/**
 * The set of arguments for constructing a Settings resource.
 */
export interface SettingsArgs {
    /**
     * EmailNotificationSettings defines node-wide email notification preferences for various PAM events.
     * Structure is documented below.
     */
    emailNotificationSettings?: pulumi.Input<inputs.privilegedaccessmanager.SettingsEmailNotificationSettings>;
    /**
     * The region of the PAM settings resource.
     */
    location: pulumi.Input<string>;
    /**
     * Format: projects/{project-id|project-number} or organizations/{organization-number} or folders/{folder-number}
     */
    parent: pulumi.Input<string>;
    /**
     * This controls the node-level settings for allowing service accounts as approvers.
     * Structure is documented below.
     */
    serviceAccountApproverSettings?: pulumi.Input<inputs.privilegedaccessmanager.SettingsServiceAccountApproverSettings>;
}
