import * as pulumi from "@pulumi/pulumi";
/**
 * Creates and manages Scaleway Flexible IP Mac Addresses.
 * For more information, see the [API documentation](https://www.scaleway.com/en/developers/api/elastic-metal-flexible-ip/).
 *
 * ## Example Usage
 *
 * ### Basic
 *
 * ```typescript
 * import * as pulumi from "@pulumi/pulumi";
 * import * as scaleway from "@pulumiverse/scaleway";
 *
 * const main = new scaleway.elasticmetal.Ip("main", {});
 * const mainIpMacAddress = new scaleway.elasticmetal.IpMacAddress("main", {
 *     flexibleIpId: main.id,
 *     type: "kvm",
 * });
 * ```
 *
 * ### Duplicate on many other flexible IPs
 *
 * ```typescript
 * import * as pulumi from "@pulumi/pulumi";
 * import * as scaleway from "@pulumi/scaleway";
 * import * as scaleway from "@pulumiverse/scaleway";
 *
 * const myOffer = scaleway.elasticmetal.getOffer({
 *     name: "EM-B112X-SSD",
 * });
 * const base = new scaleway.elasticmetal.Server("base", {
 *     name: "TestAccScalewayBaremetalServer_WithoutInstallConfig",
 *     offer: myOffer.then(myOffer => myOffer.offerId),
 *     installConfigAfterward: true,
 * });
 * const ip01 = new scaleway.elasticmetal.Ip("ip01", {serverId: base.id});
 * const ip02 = new scaleway.elasticmetal.Ip("ip02", {serverId: base.id});
 * const ip03 = new scaleway.elasticmetal.Ip("ip03", {serverId: base.id});
 * const main = new scaleway.elasticmetal.IpMacAddress("main", {
 *     flexibleIpId: ip01.id,
 *     type: "kvm",
 *     flexibleIpIdsToDuplicates: [
 *         ip02.id,
 *         ip03.id,
 *     ],
 * });
 * ```
 *
 * ## Import
 *
 * Flexible IP Mac Addresses can be imported using the `{zone}/{id}`, e.g.
 *
 * bash
 *
 * ```sh
 * $ pulumi import scaleway:elasticmetal/ipMacAddress:IpMacAddress main fr-par-1/11111111-1111-1111-1111-111111111111
 * ```
 */
export declare class IpMacAddress extends pulumi.CustomResource {
    /**
     * Get an existing IpMacAddress 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?: IpMacAddressState, opts?: pulumi.CustomResourceOptions): IpMacAddress;
    /**
     * Returns true if the given object is an instance of IpMacAddress.  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 IpMacAddress;
    /**
     * The Virtual MAC address.
     */
    readonly address: pulumi.Output<string>;
    /**
     * The date at which the Virtual Mac Address was created (RFC 3339 format).
     */
    readonly createdAt: pulumi.Output<string>;
    /**
     * The ID of the flexible IP for which to generate a virtual MAC.
     */
    readonly flexibleIpId: pulumi.Output<string>;
    /**
     * The IDs of the flexible IPs on which to duplicate the virtual MAC.
     * > **Important:** The flexible IPs need to be attached to the same server for the operation to work.
     */
    readonly flexibleIpIdsToDuplicates: pulumi.Output<string[] | undefined>;
    /**
     * The Virtual MAC status.
     */
    readonly status: pulumi.Output<string>;
    /**
     * The type of the virtual MAC.
     */
    readonly type: pulumi.Output<string>;
    /**
     * The date at which the Virtual Mac Address was last updated (RFC 3339 format).
     */
    readonly updatedAt: pulumi.Output<string>;
    /**
     * The zone of the Virtual Mac Address.
     */
    readonly zone: pulumi.Output<string>;
    /**
     * Create a IpMacAddress 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: IpMacAddressArgs, opts?: pulumi.CustomResourceOptions);
}
/**
 * Input properties used for looking up and filtering IpMacAddress resources.
 */
export interface IpMacAddressState {
    /**
     * The Virtual MAC address.
     */
    address?: pulumi.Input<string>;
    /**
     * The date at which the Virtual Mac Address was created (RFC 3339 format).
     */
    createdAt?: pulumi.Input<string>;
    /**
     * The ID of the flexible IP for which to generate a virtual MAC.
     */
    flexibleIpId?: pulumi.Input<string>;
    /**
     * The IDs of the flexible IPs on which to duplicate the virtual MAC.
     * > **Important:** The flexible IPs need to be attached to the same server for the operation to work.
     */
    flexibleIpIdsToDuplicates?: pulumi.Input<pulumi.Input<string>[]>;
    /**
     * The Virtual MAC status.
     */
    status?: pulumi.Input<string>;
    /**
     * The type of the virtual MAC.
     */
    type?: pulumi.Input<string>;
    /**
     * The date at which the Virtual Mac Address was last updated (RFC 3339 format).
     */
    updatedAt?: pulumi.Input<string>;
    /**
     * The zone of the Virtual Mac Address.
     */
    zone?: pulumi.Input<string>;
}
/**
 * The set of arguments for constructing a IpMacAddress resource.
 */
export interface IpMacAddressArgs {
    /**
     * The ID of the flexible IP for which to generate a virtual MAC.
     */
    flexibleIpId: pulumi.Input<string>;
    /**
     * The IDs of the flexible IPs on which to duplicate the virtual MAC.
     * > **Important:** The flexible IPs need to be attached to the same server for the operation to work.
     */
    flexibleIpIdsToDuplicates?: pulumi.Input<pulumi.Input<string>[]>;
    /**
     * The type of the virtual MAC.
     */
    type: pulumi.Input<string>;
    /**
     * The zone of the Virtual Mac Address.
     */
    zone?: pulumi.Input<string>;
}
