import * as pulumi from "@pulumi/pulumi";
import * as inputs from "../types/input";
import * as outputs from "../types/output";
/**
 * Generates an IAM policy document that may be referenced by and applied to
 * other Google Cloud Platform IAM resources, such as the `gcp.projects.IAMPolicy` resource.
 *
 * **Note:** Please review the documentation of the resource that you will be using the datasource with. Some resources such as `gcp.projects.IAMPolicy` and others have limitations in their API methods which are noted on their respective page.
 */
export declare function getIAMPolicy(args?: GetIAMPolicyArgs, opts?: pulumi.InvokeOptions): Promise<GetIAMPolicyResult>;
/**
 * A collection of arguments for invoking getIAMPolicy.
 */
export interface GetIAMPolicyArgs {
    /**
     * A nested configuration block that defines logging additional configuration for your project. This field is only supported on `gcp.projects.IAMPolicy`, `gcp.folder.IAMPolicy` and `gcp.organizations.IAMPolicy`.
     */
    auditConfigs?: inputs.organizations.GetIAMPolicyAuditConfig[];
    /**
     * A nested configuration block (described below)
     * defining a binding to be included in the policy document. Multiple
     * `binding` arguments are supported.
     *
     * Each document configuration must have one or more `binding` blocks, which
     * each accept the following arguments:
     */
    bindings?: inputs.organizations.GetIAMPolicyBinding[];
}
/**
 * A collection of values returned by getIAMPolicy.
 */
export interface GetIAMPolicyResult {
    readonly auditConfigs?: outputs.organizations.GetIAMPolicyAuditConfig[];
    readonly bindings?: outputs.organizations.GetIAMPolicyBinding[];
    /**
     * The provider-assigned unique ID for this managed resource.
     */
    readonly id: string;
    /**
     * The above bindings serialized in a format suitable for
     * referencing from a resource that supports IAM.
     */
    readonly policyData: string;
}
/**
 * Generates an IAM policy document that may be referenced by and applied to
 * other Google Cloud Platform IAM resources, such as the `gcp.projects.IAMPolicy` resource.
 *
 * **Note:** Please review the documentation of the resource that you will be using the datasource with. Some resources such as `gcp.projects.IAMPolicy` and others have limitations in their API methods which are noted on their respective page.
 */
export declare function getIAMPolicyOutput(args?: GetIAMPolicyOutputArgs, opts?: pulumi.InvokeOutputOptions): pulumi.Output<GetIAMPolicyResult>;
/**
 * A collection of arguments for invoking getIAMPolicy.
 */
export interface GetIAMPolicyOutputArgs {
    /**
     * A nested configuration block that defines logging additional configuration for your project. This field is only supported on `gcp.projects.IAMPolicy`, `gcp.folder.IAMPolicy` and `gcp.organizations.IAMPolicy`.
     */
    auditConfigs?: pulumi.Input<pulumi.Input<inputs.organizations.GetIAMPolicyAuditConfigArgs>[] | undefined>;
    /**
     * A nested configuration block (described below)
     * defining a binding to be included in the policy document. Multiple
     * `binding` arguments are supported.
     *
     * Each document configuration must have one or more `binding` blocks, which
     * each accept the following arguments:
     */
    bindings?: pulumi.Input<pulumi.Input<inputs.organizations.GetIAMPolicyBindingArgs>[] | undefined>;
}
//# sourceMappingURL=getIAMPolicy.d.ts.map