import * as pulumi from "@pulumi/pulumi";
import * as inputs from "../types/input";
import * as outputs from "../types/output";
/**
 * This data source provides the list of Private Ips in Oracle Cloud Infrastructure Core service.
 *
 * Lists the [PrivateIp](https://docs.cloud.oracle.com/iaas/api/#/en/iaas/latest/PrivateIp/) objects based
 * on one of these filters:
 *
 *   - Subnet [OCID](https://docs.cloud.oracle.com/iaas/Content/General/Concepts/identifiers.htm).
 *   - VNIC [OCID](https://docs.cloud.oracle.com/iaas/Content/General/Concepts/identifiers.htm).
 *   - Both private IP address and subnet OCID: This lets
 *       you get a `privateIP` object based on its private IP
 *       address (for example, 10.0.3.3) and not its [OCID](https://docs.cloud.oracle.com/iaas/Content/General/Concepts/identifiers.htm). For comparison,
 *       [GetPrivateIp](https://docs.cloud.oracle.com/iaas/api/#/en/iaas/latest/PrivateIp/GetPrivateIp)
 *       requires the [OCID](https://docs.cloud.oracle.com/iaas/Content/General/Concepts/identifiers.htm).
 *
 * If you're listing all the private IPs associated with a given subnet
 * or VNIC, the response includes both primary and secondary private IPs.
 *
 * If you are an Oracle Cloud VMware Solution customer and have VLANs
 * in your VCN, you can filter the list by VLAN [OCID](https://docs.cloud.oracle.com/iaas/Content/General/Concepts/identifiers.htm). See [Vlan](https://docs.cloud.oracle.com/iaas/api/#/en/iaas/latest/Vlan).
 *
 * ## Example Usage
 *
 * ```typescript
 * import * as pulumi from "@pulumi/pulumi";
 * import * as oci from "@pulumi/oci";
 *
 * // Filter on Subnet OCID
 * const testPrivateIpsBySubnet = oci.core.getPrivateIps({
 *     subnetId: privateIpSubnetId,
 * });
 * ```
 * ```typescript
 * import * as pulumi from "@pulumi/pulumi";
 * import * as oci from "@pulumi/oci";
 *
 * // Filter on VNIC OCID
 * const testPrivateIpsByVnic = oci.core.getPrivateIps({
 *     vnicId: testVnic.id,
 * });
 * ```
 * ```typescript
 * import * as pulumi from "@pulumi/pulumi";
 * import * as oci from "@pulumi/oci";
 *
 * // Filter on private IP address and Subnet OCID
 * const testPrivateIpsByIpAddress = oci.core.getPrivateIps({
 *     ipAddress: privateIpIpAddress,
 *     ipState: privateIpIpState,
 *     lifetime: privateIpLifetime,
 *     subnetId: testSubnet.id,
 *     vlanId: testVlan.id,
 *     vnicId: testVnicAttachment.id,
 * });
 * ```
 */
export declare function getPrivateIps(args?: GetPrivateIpsArgs, opts?: pulumi.InvokeOptions): Promise<GetPrivateIpsResult>;
/**
 * A collection of arguments for invoking getPrivateIps.
 */
export interface GetPrivateIpsArgs {
    filters?: inputs.Core.GetPrivateIpsFilter[];
    /**
     * An IP address. This could be either IPv4 or IPv6, depending on the resource. Example: `10.0.3.3`
     */
    ipAddress?: string;
    /**
     * State of the IP address. If an IP address is assigned to a VNIC it is ASSIGNED otherwise AVAILABLE
     */
    ipState?: string;
    /**
     * Lifetime of the IP address. There are two types of IPs:
     * * Ephemeral
     * * Reserved
     */
    lifetime?: string;
    /**
     * The [OCID](https://docs.cloud.oracle.com/iaas/Content/General/Concepts/identifiers.htm) of the subnet.
     */
    subnetId?: string;
    /**
     * The [OCID](https://docs.cloud.oracle.com/iaas/Content/General/Concepts/identifiers.htm) of the VLAN.
     */
    vlanId?: string;
    /**
     * The OCID of the VNIC.
     */
    vnicId?: string;
}
/**
 * A collection of values returned by getPrivateIps.
 */
export interface GetPrivateIpsResult {
    readonly filters?: outputs.Core.GetPrivateIpsFilter[];
    /**
     * The provider-assigned unique ID for this managed resource.
     */
    readonly id: string;
    /**
     * The private IP address of the `privateIp` object. The address is within the CIDR of the VNIC's subnet.
     */
    readonly ipAddress?: string;
    /**
     * State of the IP address. If an IP address is assigned to a VNIC it is ASSIGNED, otherwise it is AVAILABLE.
     */
    readonly ipState?: string;
    /**
     * Lifetime of the IP address. There are two types of IPv6 IPs:
     * * Ephemeral
     * * Reserved
     */
    readonly lifetime?: string;
    /**
     * The list of private_ips.
     */
    readonly privateIps: outputs.Core.GetPrivateIpsPrivateIp[];
    /**
     * The [OCID](https://docs.cloud.oracle.com/iaas/Content/General/Concepts/identifiers.htm) of the subnet the VNIC is in.
     */
    readonly subnetId?: string;
    /**
     * Applicable only if the `PrivateIp` object is being used with a VLAN as part of the Oracle Cloud VMware Solution. The `vlanId` is the [OCID](https://docs.cloud.oracle.com/iaas/Content/General/Concepts/identifiers.htm) of the VLAN. See [Vlan](https://docs.cloud.oracle.com/iaas/api/#/en/iaas/latest/Vlan).
     */
    readonly vlanId?: string;
    /**
     * The [OCID](https://docs.cloud.oracle.com/iaas/Content/General/Concepts/identifiers.htm) of the VNIC the private IP is assigned to. The VNIC and private IP must be in the same subnet. However, if the `PrivateIp` object is being used with a VLAN as part of the Oracle Cloud VMware Solution, the `vnicId` is null.
     */
    readonly vnicId?: string;
}
/**
 * This data source provides the list of Private Ips in Oracle Cloud Infrastructure Core service.
 *
 * Lists the [PrivateIp](https://docs.cloud.oracle.com/iaas/api/#/en/iaas/latest/PrivateIp/) objects based
 * on one of these filters:
 *
 *   - Subnet [OCID](https://docs.cloud.oracle.com/iaas/Content/General/Concepts/identifiers.htm).
 *   - VNIC [OCID](https://docs.cloud.oracle.com/iaas/Content/General/Concepts/identifiers.htm).
 *   - Both private IP address and subnet OCID: This lets
 *       you get a `privateIP` object based on its private IP
 *       address (for example, 10.0.3.3) and not its [OCID](https://docs.cloud.oracle.com/iaas/Content/General/Concepts/identifiers.htm). For comparison,
 *       [GetPrivateIp](https://docs.cloud.oracle.com/iaas/api/#/en/iaas/latest/PrivateIp/GetPrivateIp)
 *       requires the [OCID](https://docs.cloud.oracle.com/iaas/Content/General/Concepts/identifiers.htm).
 *
 * If you're listing all the private IPs associated with a given subnet
 * or VNIC, the response includes both primary and secondary private IPs.
 *
 * If you are an Oracle Cloud VMware Solution customer and have VLANs
 * in your VCN, you can filter the list by VLAN [OCID](https://docs.cloud.oracle.com/iaas/Content/General/Concepts/identifiers.htm). See [Vlan](https://docs.cloud.oracle.com/iaas/api/#/en/iaas/latest/Vlan).
 *
 * ## Example Usage
 *
 * ```typescript
 * import * as pulumi from "@pulumi/pulumi";
 * import * as oci from "@pulumi/oci";
 *
 * // Filter on Subnet OCID
 * const testPrivateIpsBySubnet = oci.core.getPrivateIps({
 *     subnetId: privateIpSubnetId,
 * });
 * ```
 * ```typescript
 * import * as pulumi from "@pulumi/pulumi";
 * import * as oci from "@pulumi/oci";
 *
 * // Filter on VNIC OCID
 * const testPrivateIpsByVnic = oci.core.getPrivateIps({
 *     vnicId: testVnic.id,
 * });
 * ```
 * ```typescript
 * import * as pulumi from "@pulumi/pulumi";
 * import * as oci from "@pulumi/oci";
 *
 * // Filter on private IP address and Subnet OCID
 * const testPrivateIpsByIpAddress = oci.core.getPrivateIps({
 *     ipAddress: privateIpIpAddress,
 *     ipState: privateIpIpState,
 *     lifetime: privateIpLifetime,
 *     subnetId: testSubnet.id,
 *     vlanId: testVlan.id,
 *     vnicId: testVnicAttachment.id,
 * });
 * ```
 */
export declare function getPrivateIpsOutput(args?: GetPrivateIpsOutputArgs, opts?: pulumi.InvokeOutputOptions): pulumi.Output<GetPrivateIpsResult>;
/**
 * A collection of arguments for invoking getPrivateIps.
 */
export interface GetPrivateIpsOutputArgs {
    filters?: pulumi.Input<pulumi.Input<inputs.Core.GetPrivateIpsFilterArgs>[] | undefined>;
    /**
     * An IP address. This could be either IPv4 or IPv6, depending on the resource. Example: `10.0.3.3`
     */
    ipAddress?: pulumi.Input<string | undefined>;
    /**
     * State of the IP address. If an IP address is assigned to a VNIC it is ASSIGNED otherwise AVAILABLE
     */
    ipState?: pulumi.Input<string | undefined>;
    /**
     * Lifetime of the IP address. There are two types of IPs:
     * * Ephemeral
     * * Reserved
     */
    lifetime?: pulumi.Input<string | undefined>;
    /**
     * The [OCID](https://docs.cloud.oracle.com/iaas/Content/General/Concepts/identifiers.htm) of the subnet.
     */
    subnetId?: pulumi.Input<string | undefined>;
    /**
     * The [OCID](https://docs.cloud.oracle.com/iaas/Content/General/Concepts/identifiers.htm) of the VLAN.
     */
    vlanId?: pulumi.Input<string | undefined>;
    /**
     * The OCID of the VNIC.
     */
    vnicId?: pulumi.Input<string | undefined>;
}
//# sourceMappingURL=getPrivateIps.d.ts.map