import * as pulumi from "@pulumi/pulumi";
import * as inputs from "./types/input";
import * as outputs from "./types/output";
/**
 * Manages allocation of reserved IPv4 address in a region and optionally assigning the reserved address to a Linode instance.
 *
 * For more information, see the corresponding [API documentation](https://techdocs.akamai.com/linode-api/reference/post-allocate-ip).
 *
 * ## Example Usage
 *
 * ```typescript
 * import * as pulumi from "@pulumi/pulumi";
 * import * as linode from "@pulumi/linode";
 *
 * const testIp = new linode.NetworkingIp("test_ip", {
 *     type: "ipv4",
 *     linodeId: 12345,
 *     "public": true,
 * });
 * ```
 *
 * ## Import
 *
 * IP addresses can be imported using the IP address ID, e.g.
 *
 * ```sh
 * $ pulumi import linode:index/networkingIp:NetworkingIp example_ip 172.104.30.209
 * ```
 */
export declare class NetworkingIp extends pulumi.CustomResource {
    /**
     * Get an existing NetworkingIp 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?: NetworkingIpState, opts?: pulumi.CustomResourceOptions): NetworkingIp;
    /**
     * Returns true if the given object is an instance of NetworkingIp.  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 NetworkingIp;
    /**
     * The IPv4 address that is configured as a 1:1 NAT for this VPC interface.
     */
    readonly address: pulumi.Output<string>;
    /**
     * The default gateway for this address.
     */
    readonly gateway: pulumi.Output<string>;
    /**
     * The ID of the Linode to which the IP address will be assigned. Updating this field on an ephemeral IP will trigger a recreation. Conflicts with `region`.
     */
    readonly linodeId: pulumi.Output<number>;
    /**
     * The number of bits set in the subnet mask.
     */
    readonly prefix: pulumi.Output<number>;
    /**
     * Whether the IP address is public. Defaults to true.
     */
    readonly public: pulumi.Output<boolean>;
    /**
     * The reverse DNS assigned to this address. For public IPv4 addresses, this will be set to a default value provided by Linode if not explicitly set.
     */
    readonly rdns: pulumi.Output<string>;
    /**
     * The region for the reserved IPv4 address. Required when reserved is true and linodeId is not set.
     */
    readonly region: pulumi.Output<string>;
    /**
     * Whether the IPv4 address should be reserved.
     */
    readonly reserved: pulumi.Output<boolean>;
    /**
     * The mask that separates host bits from network bits for this address.
     */
    readonly subnetMask: pulumi.Output<string>;
    /**
     * The type of IP address. (ipv4, ipv6, etc.)
     */
    readonly type: pulumi.Output<string>;
    /**
     * Contains information about the NAT 1:1 mapping of a public IP address to a VPC subnet.
     */
    readonly vpcNat11: pulumi.Output<outputs.NetworkingIpVpcNat11>;
    /**
     * Create a NetworkingIp 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?: NetworkingIpArgs, opts?: pulumi.CustomResourceOptions);
}
/**
 * Input properties used for looking up and filtering NetworkingIp resources.
 */
export interface NetworkingIpState {
    /**
     * The IPv4 address that is configured as a 1:1 NAT for this VPC interface.
     */
    address?: pulumi.Input<string>;
    /**
     * The default gateway for this address.
     */
    gateway?: pulumi.Input<string>;
    /**
     * The ID of the Linode to which the IP address will be assigned. Updating this field on an ephemeral IP will trigger a recreation. Conflicts with `region`.
     */
    linodeId?: pulumi.Input<number>;
    /**
     * The number of bits set in the subnet mask.
     */
    prefix?: pulumi.Input<number>;
    /**
     * Whether the IP address is public. Defaults to true.
     */
    public?: pulumi.Input<boolean>;
    /**
     * The reverse DNS assigned to this address. For public IPv4 addresses, this will be set to a default value provided by Linode if not explicitly set.
     */
    rdns?: pulumi.Input<string>;
    /**
     * The region for the reserved IPv4 address. Required when reserved is true and linodeId is not set.
     */
    region?: pulumi.Input<string>;
    /**
     * Whether the IPv4 address should be reserved.
     */
    reserved?: pulumi.Input<boolean>;
    /**
     * The mask that separates host bits from network bits for this address.
     */
    subnetMask?: pulumi.Input<string>;
    /**
     * The type of IP address. (ipv4, ipv6, etc.)
     */
    type?: pulumi.Input<string>;
    /**
     * Contains information about the NAT 1:1 mapping of a public IP address to a VPC subnet.
     */
    vpcNat11?: pulumi.Input<inputs.NetworkingIpVpcNat11>;
}
/**
 * The set of arguments for constructing a NetworkingIp resource.
 */
export interface NetworkingIpArgs {
    /**
     * The ID of the Linode to which the IP address will be assigned. Updating this field on an ephemeral IP will trigger a recreation. Conflicts with `region`.
     */
    linodeId?: pulumi.Input<number>;
    /**
     * Whether the IP address is public. Defaults to true.
     */
    public?: pulumi.Input<boolean>;
    /**
     * The region for the reserved IPv4 address. Required when reserved is true and linodeId is not set.
     */
    region?: pulumi.Input<string>;
    /**
     * Whether the IPv4 address should be reserved.
     */
    reserved?: pulumi.Input<boolean>;
    /**
     * The type of IP address. (ipv4, ipv6, etc.)
     */
    type?: pulumi.Input<string>;
}
