import * as pulumi from "@pulumi/pulumi";
/**
 * Use this data source to get details of the specified IAM **custom policy**.
 *
 * > **NOTE:** You *must* have IAM read privileges to use this data source.
 *
 * ## Example Usage
 *
 * ```typescript
 * import * as pulumi from "@pulumi/pulumi";
 * import * as huaweicloud from "@pulumi/huaweicloud";
 *
 * const policy = pulumi.output(huaweicloud.Iam.getCustomRole({
 *     name: "custom_policy",
 * }));
 * ```
 */
export declare function getCustomRole(args?: GetCustomRoleArgs, opts?: pulumi.InvokeOptions): Promise<GetCustomRoleResult>;
/**
 * A collection of arguments for invoking getCustomRole.
 */
export interface GetCustomRoleArgs {
    /**
     * Specifies the description of the custom policy.
     */
    description?: string;
    /**
     * Specifies the domain the policy belongs to.
     */
    domainId?: string;
    /**
     * Specifies the ID of the custom policy. It's required if `name` is not specified.
     */
    id?: string;
    /**
     * Specifies the name of the custom policy. It's required if `id` is not specified.
     */
    name?: string;
    /**
     * Specifies the number of citations for the custom policy.
     */
    references?: number;
    /**
     * Specifies the display mode of the custom policy. Valid options are as follows:
     * + **AX**: the global service project.
     * + **XA**: region-specific projects.
     */
    type?: string;
}
/**
 * A collection of values returned by getCustomRole.
 */
export interface GetCustomRoleResult {
    /**
     * The catalog of the custom policy. The value is **CUSTOMED**.
     */
    readonly catalog: string;
    readonly description: string;
    readonly domainId: string;
    readonly id: string;
    readonly name: string;
    /**
     * The content of the custom policy in JSON format.
     */
    readonly policy: string;
    readonly references: number;
    readonly type: string;
}
export declare function getCustomRoleOutput(args?: GetCustomRoleOutputArgs, opts?: pulumi.InvokeOptions): pulumi.Output<GetCustomRoleResult>;
/**
 * A collection of arguments for invoking getCustomRole.
 */
export interface GetCustomRoleOutputArgs {
    /**
     * Specifies the description of the custom policy.
     */
    description?: pulumi.Input<string>;
    /**
     * Specifies the domain the policy belongs to.
     */
    domainId?: pulumi.Input<string>;
    /**
     * Specifies the ID of the custom policy. It's required if `name` is not specified.
     */
    id?: pulumi.Input<string>;
    /**
     * Specifies the name of the custom policy. It's required if `id` is not specified.
     */
    name?: pulumi.Input<string>;
    /**
     * Specifies the number of citations for the custom policy.
     */
    references?: pulumi.Input<number>;
    /**
     * Specifies the display mode of the custom policy. Valid options are as follows:
     * + **AX**: the global service project.
     * + **XA**: region-specific projects.
     */
    type?: pulumi.Input<string>;
}
