import * as pulumi from "@pulumi/pulumi";
import { output as outputs } from "../types";
/**
 * Use this data source to filter ER attachments within HuaweiCloud.
 *
 * ## Example Usage
 *
 * ```typescript
 * import * as pulumi from "@pulumi/pulumi";
 * import * as huaweicloud from "@pulumi/huaweicloud";
 *
 * const config = new pulumi.Config();
 * const instanceId = config.requireObject("instanceId");
 * const test = huaweicloud.Er.getAttachments({
 *     instanceId: instanceId,
 *     tags: {
 *         foo: "bar",
 *     },
 * });
 * ```
 */
export declare function getAttachments(args: GetAttachmentsArgs, opts?: pulumi.InvokeOptions): Promise<GetAttachmentsResult>;
/**
 * A collection of arguments for invoking getAttachments.
 */
export interface GetAttachmentsArgs {
    /**
     * Specifies the specified attachment ID used to query.
     */
    attachmentId?: string;
    /**
     * Specifies the ER instance ID to which the attachment belongs.
     */
    instanceId: string;
    /**
     * Specifies the name used to filter the attachments.
     */
    name?: string;
    /**
     * Specifies the region where the ER attachments are located.
     * If omitted, the provider-level region will be used.
     */
    region?: string;
    /**
     * Specifies the associated resource ID used to filter the attachments.
     */
    resourceId?: string;
    /**
     * Specifies the status used to filter the attachments.
     * The valid values are as follows:
     * + **available**
     * + **failed**
     * + **pending_acceptance**
     * + **rejected**
     */
    status?: string;
    /**
     * The key/value pairs used to filter the attachments.
     */
    tags?: {
        [key: string]: string;
    };
    /**
     * Specifies the resource type to be filtered.
     * The valid values are as follows:
     * + **vpc**: Virtual private cloud.
     * + **vpn**: VPN gateway.
     * + **vgw**: Virtual gateway of cloud private line.
     * + **peering**: Peering connection, through the cloud connection (CC) to load ERs in different regions to create a
     * peering connection.
     */
    type?: string;
}
/**
 * A collection of values returned by getAttachments.
 */
export interface GetAttachmentsResult {
    readonly attachmentId?: string;
    /**
     * All attachments that match the filter parameters.
     * The object structure is documented below.
     */
    readonly attachments: outputs.Er.GetAttachmentsAttachment[];
    /**
     * The provider-assigned unique ID for this managed resource.
     */
    readonly id: string;
    readonly instanceId: string;
    /**
     * The attachment name.
     */
    readonly name?: string;
    readonly region?: string;
    /**
     * The associated resource ID.
     */
    readonly resourceId?: string;
    /**
     * The current status of the attachment.
     */
    readonly status?: string;
    /**
     * The key/value pairs to associate with the attachment.
     */
    readonly tags?: {
        [key: string]: string;
    };
    /**
     * The attachment type.
     */
    readonly type?: string;
}
export declare function getAttachmentsOutput(args: GetAttachmentsOutputArgs, opts?: pulumi.InvokeOptions): pulumi.Output<GetAttachmentsResult>;
/**
 * A collection of arguments for invoking getAttachments.
 */
export interface GetAttachmentsOutputArgs {
    /**
     * Specifies the specified attachment ID used to query.
     */
    attachmentId?: pulumi.Input<string>;
    /**
     * Specifies the ER instance ID to which the attachment belongs.
     */
    instanceId: pulumi.Input<string>;
    /**
     * Specifies the name used to filter the attachments.
     */
    name?: pulumi.Input<string>;
    /**
     * Specifies the region where the ER attachments are located.
     * If omitted, the provider-level region will be used.
     */
    region?: pulumi.Input<string>;
    /**
     * Specifies the associated resource ID used to filter the attachments.
     */
    resourceId?: pulumi.Input<string>;
    /**
     * Specifies the status used to filter the attachments.
     * The valid values are as follows:
     * + **available**
     * + **failed**
     * + **pending_acceptance**
     * + **rejected**
     */
    status?: pulumi.Input<string>;
    /**
     * The key/value pairs used to filter the attachments.
     */
    tags?: pulumi.Input<{
        [key: string]: pulumi.Input<string>;
    }>;
    /**
     * Specifies the resource type to be filtered.
     * The valid values are as follows:
     * + **vpc**: Virtual private cloud.
     * + **vpn**: VPN gateway.
     * + **vgw**: Virtual gateway of cloud private line.
     * + **peering**: Peering connection, through the cloud connection (CC) to load ERs in different regions to create a
     * peering connection.
     */
    type?: pulumi.Input<string>;
}
