import * as outputs from "../types/output";
export interface GetTagsFilter {
    name: string;
    value: string;
}
export interface GetTagsTag {
    color?: string;
    description?: string;
    name: string;
    slug: string;
    tagId: number;
}
export declare namespace dcim {
    interface CableATermination {
        objectId: number;
        objectType: string;
    }
    interface CableBTermination {
        objectId: number;
        objectType: string;
    }
    interface GetDeviceInterfacesFilter {
        name: string;
        value: string;
    }
    interface GetDeviceInterfacesInterface {
        description: string;
        deviceId: number;
        enabled: boolean;
        id: number;
        macAddress: string;
        mode: {
            [key: string]: string;
        };
        mtu: number;
        name: string;
        tagIds: number[];
        taggedVlans: outputs.dcim.GetDeviceInterfacesInterfaceTaggedVlan[];
        untaggedVlans: outputs.dcim.GetDeviceInterfacesInterfaceUntaggedVlan[];
    }
    interface GetDeviceInterfacesInterfaceTaggedVlan {
        id: number;
        name: string;
        vid: number;
    }
    interface GetDeviceInterfacesInterfaceUntaggedVlan {
        id: number;
        name: string;
        vid: number;
    }
    interface GetDevicesDevice {
        assetTag: string;
        clusterId: number;
        comments: string;
        configContext: string;
        customFields: {
            [key: string]: string;
        };
        description: string;
        deviceId: number;
        deviceTypeId: number;
        localContextData: string;
        locationId: number;
        manufacturerId: number;
        model: string;
        name: string;
        platformId: number;
        primaryIpv4: string;
        primaryIpv6: string;
        rackFace: string;
        rackId: number;
        rackPosition: number;
        roleId: number;
        serial: string;
        siteId: number;
        status: string;
        tags: string[];
        tenantId: number;
    }
    interface GetDevicesFilter {
        name: string;
        value: string;
    }
    interface GetLocationsFilter {
        /**
         * The name of the field to filter on. Supported fields are: .
         */
        name: string;
        /**
         * The value to pass to the specified filter.
         */
        value: string;
    }
    interface GetLocationsLocation {
        description: string;
        id: string;
        name?: string;
        parentId: number;
        siteId: number;
        slug?: string;
        status: string;
        tenantId: number;
    }
    interface GetRacksFilter {
        name: string;
        value: string;
    }
    interface GetRacksRack {
        assetTag: string;
        comments: string;
        customFields: {
            [key: string]: string;
        };
        descUnits: boolean;
        description: string;
        facilityId: string;
        id: number;
        locationId: number;
        maxWeight: number;
        mountingDepth: number;
        name: string;
        outerDepth: number;
        outerUnit: string;
        outerWidth: number;
        roleId: number;
        serial: string;
        siteId: number;
        status: string;
        tags: string[];
        tenantId: number;
        typeId: number;
        uHeight: number;
        weight: number;
        weightUnit: string;
        width: number;
    }
    interface GetRegionFilter {
        /**
         * The ID of this resource.
         */
        id?: number;
        name?: string;
        slug?: string;
    }
}
export declare namespace ipam {
    interface GetAsnsAsn {
        asn: number;
        id: number;
        rirId: number;
        tags: string[];
    }
    interface GetAsnsFilter {
        name: string;
        value: string;
    }
    interface GetAvailablePrefixPrefixesAvailable {
        family: number;
        prefix: string;
        vrfId: number;
    }
    interface GetIpAddressesFilter {
        name: string;
        value: string;
    }
    interface GetIpAddressesIpAddress {
        addressFamily: string;
        created: string;
        customFields: {
            [key: string]: string;
        };
        description: string;
        dnsName: string;
        id: number;
        ipAddress: string;
        lastUpdated: string;
        role: string;
        status: string;
        tags: outputs.ipam.GetIpAddressesIpAddressTag[];
        tenants: outputs.ipam.GetIpAddressesIpAddressTenant[];
    }
    interface GetIpAddressesIpAddressTag {
        display: string;
        id: number;
        name: string;
        slug: string;
    }
    interface GetIpAddressesIpAddressTenant {
        id: number;
        name: string;
        slug: string;
    }
    interface GetPrefixesFilter {
        /**
         * The name of the field to filter on. Supported fields are: `prefix`, `contains`, `vlanVid`, `vrfId`, `vlanId`, `status`, `tenantId`, `siteId`, & `tag`.
         */
        name: string;
        /**
         * The value to pass to the specified filter.
         */
        value: string;
    }
    interface GetPrefixesPrefix {
        description: string;
        id: number;
        prefix: string;
        siteId: number;
        status: string;
        tags: string[];
        tenantId: number;
        vlanId: number;
        vlanVid: number;
        vrfId: number;
    }
    interface GetVlansFilter {
        name: string;
        value: string;
    }
    interface GetVlansVlan {
        description: string;
        groupId: number;
        name: string;
        role: number;
        site: number;
        status: string;
        tagIds: number[];
        tenant: number;
        vid: number;
    }
    interface GetVrfsFilter {
        name: string;
        value: string;
    }
    interface GetVrfsVrf {
        description: string;
        id: number;
        name: string;
        rd: string;
        tenant: number;
    }
    interface IpAddressNatOutsideAddress {
        addressFamily: number;
        id: number;
        ipAddress: string;
    }
}
export declare namespace tenancy {
    interface GetTenantsFilter {
        name: string;
        value: string;
    }
    interface GetTenantsTenant {
        circuitCount: number;
        clusterCount: number;
        comments: string;
        created: string;
        customFields: {
            [key: string]: string;
        };
        description: string;
        deviceCount: number;
        id: number;
        ipAddressCount: number;
        lastUpdated: string;
        name: string;
        prefixCount: number;
        rackCount: number;
        siteCount: number;
        slug: string;
        tenantGroups: outputs.tenancy.GetTenantsTenantTenantGroup[];
        vlanCount: number;
        vmCount: number;
        vrfCount: number;
    }
    interface GetTenantsTenantTenantGroup {
        id: number;
        name: string;
        slug: string;
        tenantCount: number;
    }
}
export declare namespace virt {
    interface GetInterfacesFilter {
        name: string;
        value: string;
    }
    interface GetInterfacesInterface {
        description: string;
        enabled: boolean;
        id: number;
        macAddress: string;
        mode: {
            [key: string]: string;
        };
        mtu: number;
        name: string;
        tagIds: number[];
        taggedVlans: outputs.virt.GetInterfacesInterfaceTaggedVlan[];
        untaggedVlans: outputs.virt.GetInterfacesInterfaceUntaggedVlan[];
        vmId: number;
    }
    interface GetInterfacesInterfaceTaggedVlan {
        id: number;
        name: string;
        vid: number;
    }
    interface GetInterfacesInterfaceUntaggedVlan {
        id: number;
        name: string;
        vid: number;
    }
    interface GetVirtualMachinesFilter {
        name: string;
        value: string;
    }
    interface GetVirtualMachinesVm {
        clusterId: number;
        comments: string;
        configContext: string;
        customFields: {
            [key: string]: string;
        };
        description: string;
        deviceId: number;
        deviceName: string;
        diskSizeMb: number;
        localContextData: string;
        memoryMb: number;
        name: string;
        platformId: number;
        platformSlug: string;
        primaryIp: string;
        primaryIp4: string;
        primaryIp6: string;
        roleId: number;
        siteId: number;
        status: string;
        tagIds: number[];
        tenantId: number;
        vcpus: number;
        vmId: number;
    }
}
