import * as pulumi from "@pulumi/pulumi";
/**
 * From the [official documentation](https://docs.netbox.dev/en/stable/features/virtualization/#interfaces):
 *
 * > Virtual machine interfaces behave similarly to device interfaces, and can be assigned to VRFs, and may have IP addresses, VLANs, and services attached to them. However, given their virtual nature, they lack properties pertaining to physical attributes. For example, VM interfaces do not have a physical type and cannot have cables attached to them.
 */
export declare class Interface extends pulumi.CustomResource {
    /**
     * Get an existing Interface 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?: InterfaceState, opts?: pulumi.CustomResourceOptions): Interface;
    /**
     * Returns true if the given object is an instance of Interface.  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 Interface;
    readonly description: pulumi.Output<string | undefined>;
    /**
     * Defaults to `true`.
     */
    readonly enabled: pulumi.Output<boolean | undefined>;
    readonly macAddress: pulumi.Output<string | undefined>;
    /**
     * Valid values are `access`, `tagged` and `tagged-all`.
     */
    readonly mode: pulumi.Output<string | undefined>;
    readonly mtu: pulumi.Output<number | undefined>;
    readonly name: pulumi.Output<string>;
    readonly taggedVlans: pulumi.Output<number[] | undefined>;
    readonly tags: pulumi.Output<string[] | undefined>;
    /**
     * @deprecated This attribute is not supported by netbox any longer. It will be removed in future versions of this provider.
     */
    readonly type: pulumi.Output<string | undefined>;
    readonly untaggedVlan: pulumi.Output<number | undefined>;
    readonly virtualMachineId: pulumi.Output<number>;
    /**
     * Create a Interface 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: InterfaceArgs, opts?: pulumi.CustomResourceOptions);
}
/**
 * Input properties used for looking up and filtering Interface resources.
 */
export interface InterfaceState {
    description?: pulumi.Input<string>;
    /**
     * Defaults to `true`.
     */
    enabled?: pulumi.Input<boolean>;
    macAddress?: pulumi.Input<string>;
    /**
     * Valid values are `access`, `tagged` and `tagged-all`.
     */
    mode?: pulumi.Input<string>;
    mtu?: pulumi.Input<number>;
    name?: pulumi.Input<string>;
    taggedVlans?: pulumi.Input<pulumi.Input<number>[]>;
    tags?: pulumi.Input<pulumi.Input<string>[]>;
    /**
     * @deprecated This attribute is not supported by netbox any longer. It will be removed in future versions of this provider.
     */
    type?: pulumi.Input<string>;
    untaggedVlan?: pulumi.Input<number>;
    virtualMachineId?: pulumi.Input<number>;
}
/**
 * The set of arguments for constructing a Interface resource.
 */
export interface InterfaceArgs {
    description?: pulumi.Input<string>;
    /**
     * Defaults to `true`.
     */
    enabled?: pulumi.Input<boolean>;
    macAddress?: pulumi.Input<string>;
    /**
     * Valid values are `access`, `tagged` and `tagged-all`.
     */
    mode?: pulumi.Input<string>;
    mtu?: pulumi.Input<number>;
    name?: pulumi.Input<string>;
    taggedVlans?: pulumi.Input<pulumi.Input<number>[]>;
    tags?: pulumi.Input<pulumi.Input<string>[]>;
    /**
     * @deprecated This attribute is not supported by netbox any longer. It will be removed in future versions of this provider.
     */
    type?: pulumi.Input<string>;
    untaggedVlan?: pulumi.Input<number>;
    virtualMachineId: pulumi.Input<number>;
}
