UNPKG

@pulumi/linode

Version:

A Pulumi package for creating and managing linode cloud resources.

6,592 lines 211 kB
import * as pulumi from "@pulumi/pulumi";
import * as inputs from "../types/input";
export interface DatabaseMysqlUpdates {
    /**
     * The day to perform maintenance.
     */
    dayOfWeek: pulumi.Input<string>;
    /**
     * The maximum maintenance window time in hours.
     */
    duration: pulumi.Input<number>;
    /**
     * Whether maintenance occurs on a weekly or monthly basis.
     */
    frequency: pulumi.Input<string>;
    /**
     * The hour to begin maintenance based in UTC time.
     */
    hourOfDay: pulumi.Input<number>;
    /**
     * The week of the month to perform monthly frequency updates. Required for monthly frequency updates.
     */
    weekOfMonth?: pulumi.Input<number>;
}
export interface DatabaseMysqlV2PendingUpdate {
    deadline: pulumi.Input<string>;
    description: pulumi.Input<string>;
    plannedFor: pulumi.Input<string>;
}
export interface DatabaseMysqlV2Timeouts {
    /**
     * A string that can be [parsed as a duration](https://pkg.go.dev/time#ParseDuration) consisting of numbers and unit suffixes, such as "30s" or "2h45m". Valid time units are "s" (seconds), "m" (minutes), "h" (hours).
     */
    create?: pulumi.Input<string>;
    /**
     * A string that can be [parsed as a duration](https://pkg.go.dev/time#ParseDuration) consisting of numbers and unit suffixes, such as "30s" or "2h45m". Valid time units are "s" (seconds), "m" (minutes), "h" (hours). Setting a timeout for a Delete operation is only applicable if changes are saved into state before the destroy operation occurs.
     */
    delete?: pulumi.Input<string>;
    /**
     * A string that can be [parsed as a duration](https://pkg.go.dev/time#ParseDuration) consisting of numbers and unit suffixes, such as "30s" or "2h45m". Valid time units are "s" (seconds), "m" (minutes), "h" (hours).
     */
    update?: pulumi.Input<string>;
}
export interface DatabaseMysqlV2Updates {
    dayOfWeek: pulumi.Input<number>;
    duration: pulumi.Input<number>;
    frequency: pulumi.Input<string>;
    hourOfDay: pulumi.Input<number>;
}
export interface DatabasePostgresqlUpdates {
    /**
     * The day to perform maintenance.
     */
    dayOfWeek: pulumi.Input<string>;
    /**
     * The maximum maintenance window time in hours.
     */
    duration: pulumi.Input<number>;
    /**
     * Whether maintenance occurs on a weekly or monthly basis.
     */
    frequency: pulumi.Input<string>;
    /**
     * The hour to begin maintenance based in UTC time.
     */
    hourOfDay: pulumi.Input<number>;
    /**
     * The week of the month to perform monthly frequency updates. Required for monthly frequency updates.
     */
    weekOfMonth?: pulumi.Input<number>;
}
export interface DatabasePostgresqlV2PendingUpdate {
    deadline: pulumi.Input<string>;
    description: pulumi.Input<string>;
    plannedFor: pulumi.Input<string>;
}
export interface DatabasePostgresqlV2Timeouts {
    /**
     * A string that can be [parsed as a duration](https://pkg.go.dev/time#ParseDuration) consisting of numbers and unit suffixes, such as "30s" or "2h45m". Valid time units are "s" (seconds), "m" (minutes), "h" (hours).
     */
    create?: pulumi.Input<string>;
    /**
     * A string that can be [parsed as a duration](https://pkg.go.dev/time#ParseDuration) consisting of numbers and unit suffixes, such as "30s" or "2h45m". Valid time units are "s" (seconds), "m" (minutes), "h" (hours). Setting a timeout for a Delete operation is only applicable if changes are saved into state before the destroy operation occurs.
     */
    delete?: pulumi.Input<string>;
    /**
     * A string that can be [parsed as a duration](https://pkg.go.dev/time#ParseDuration) consisting of numbers and unit suffixes, such as "30s" or "2h45m". Valid time units are "s" (seconds), "m" (minutes), "h" (hours).
     */
    update?: pulumi.Input<string>;
}
export interface DatabasePostgresqlV2Updates {
    dayOfWeek: pulumi.Input<number>;
    duration: pulumi.Input<number>;
    frequency: pulumi.Input<string>;
    hourOfDay: pulumi.Input<number>;
}
export interface FirewallDevice {
    /**
     * The ID of the underlying entity this device references (i.e. the Linode's ID).
     */
    entityId: pulumi.Input<number>;
    /**
     * The ID of the Firewall Device.
     */
    id: pulumi.Input<number>;
    /**
     * This Firewall's unique label.
     */
    label: pulumi.Input<string>;
    /**
     * The type of Firewall Device.
     */
    type: pulumi.Input<string>;
    /**
     * The URL of the underlying entity this device references.
     */
    url: pulumi.Input<string>;
}
export interface FirewallInbound {
    /**
     * Controls whether traffic is accepted or dropped by this rule (`ACCEPT`, `DROP`). Overrides the Firewall’s inboundPolicy if this is an inbound rule, or the outboundPolicy if this is an outbound rule.
     */
    action: pulumi.Input<string>;
    /**
     * Used to describe this rule. For display purposes only.
     */
    description?: pulumi.Input<string>;
    /**
     * A list of IPv4 addresses or networks. Must be in IP/mask (CIDR) format.
     */
    ipv4s?: pulumi.Input<pulumi.Input<string>[]>;
    /**
     * A list of IPv6 addresses or networks. Must be in IP/mask (CIDR) format.
     */
    ipv6s?: pulumi.Input<pulumi.Input<string>[]>;
    /**
     * Used to identify this rule. For display purposes only.
     */
    label: pulumi.Input<string>;
    /**
     * A string representation of ports and/or port ranges (i.e. "443" or "80-90, 91").
     */
    ports?: pulumi.Input<string>;
    /**
     * The network protocol this rule controls. (`TCP`, `UDP`, `ICMP`)
     */
    protocol: pulumi.Input<string>;
}
export interface FirewallOutbound {
    /**
     * Controls whether traffic is accepted or dropped by this rule. Overrides the Firewall's inboundPolicy if this is an inbound rule, or the outboundPolicy if this is an outbound rule.
     */
    action: pulumi.Input<string>;
    /**
     * Used to describe this rule. For display purposes only.
     */
    description?: pulumi.Input<string>;
    /**
     * A list of CIDR blocks or 0.0.0.0/0 (to allow all) this rule applies to.
     */
    ipv4s?: pulumi.Input<pulumi.Input<string>[]>;
    /**
     * A list of IPv6 addresses or networks this rule applies to.
     */
    ipv6s?: pulumi.Input<pulumi.Input<string>[]>;
    /**
     * This Firewall's unique label.
     */
    label: pulumi.Input<string>;
    /**
     * A string representation of ports and/or port ranges (i.e. "443" or "80-90, 91").
     */
    ports?: pulumi.Input<string>;
    /**
     * The network protocol this rule controls.
     */
    protocol: pulumi.Input<string>;
}
export interface GetAccountAvailabilitiesAvailability {
    /**
     * A set of services which are available for the given region.
     */
    availables?: string[];
    /**
     * The region this availability entry refers to.
     */
    region: string;
    /**
     * A set of services that are unavailable for the given region.
     */
    unavailables?: string[];
}
export interface GetAccountAvailabilitiesAvailabilityArgs {
    /**
     * A set of services which are available for the given region.
     */
    availables?: pulumi.Input<pulumi.Input<string>[]>;
    /**
     * The region this availability entry refers to.
     */
    region: pulumi.Input<string>;
    /**
     * A set of services that are unavailable for the given region.
     */
    unavailables?: pulumi.Input<pulumi.Input<string>[]>;
}
export interface GetAccountAvailabilitiesFilter {
    /**
     * The method to match the field by. (`exact`, `regex`, `substring`; default `exact`)
     */
    matchBy?: string;
    /**
     * The name of the field to filter by. See the Filterable Fields section for a complete list of filterable fields.
     */
    name: string;
    /**
     * A list of values for the filter to allow. These values should all be in string form.
     */
    values: string[];
}
export interface GetAccountAvailabilitiesFilterArgs {
    /**
     * The method to match the field by. (`exact`, `regex`, `substring`; default `exact`)
     */
    matchBy?: pulumi.Input<string>;
    /**
     * The name of the field to filter by. See the Filterable Fields section for a complete list of filterable fields.
     */
    name: pulumi.Input<string>;
    /**
     * A list of values for the filter to allow. These values should all be in string form.
     */
    values: pulumi.Input<pulumi.Input<string>[]>;
}
export interface GetAccountLoginsFilter {
    /**
     * The method to match the field by. (`exact`, `regex`, `substring`; default `exact`)
     */
    matchBy?: string;
    /**
     * The name of the field to filter by. See the Filterable Fields section for a complete list of filterable fields.
     */
    name: string;
    /**
     * A list of values for the filter to allow. These values should all be in string form.
     */
    values: string[];
}
export interface GetAccountLoginsFilterArgs {
    /**
     * The method to match the field by. (`exact`, `regex`, `substring`; default `exact`)
     */
    matchBy?: pulumi.Input<string>;
    /**
     * The name of the field to filter by. See the Filterable Fields section for a complete list of filterable fields.
     */
    name: pulumi.Input<string>;
    /**
     * A list of values for the filter to allow. These values should all be in string form.
     */
    values: pulumi.Input<pulumi.Input<string>[]>;
}
export interface GetAccountLoginsLogin {
    /**
     * When the login was initiated.
     */
    datetime?: string;
    /**
     * The unique ID of this login object.
     */
    id: number;
    /**
     * The remote IP address that requested the login.
     */
    ip?: string;
    /**
     * True if the User that was logged into was a restricted User, false otherwise.
     */
    restricted?: boolean;
    /**
     * Whether the login attempt succeeded or failed.
     */
    status?: string;
    /**
     * The username of the User that was logged into.
     */
    username?: string;
}
export interface GetAccountLoginsLoginArgs {
    /**
     * When the login was initiated.
     */
    datetime?: pulumi.Input<string>;
    /**
     * The unique ID of this login object.
     */
    id: pulumi.Input<number>;
    /**
     * The remote IP address that requested the login.
     */
    ip?: pulumi.Input<string>;
    /**
     * True if the User that was logged into was a restricted User, false otherwise.
     */
    restricted?: pulumi.Input<boolean>;
    /**
     * Whether the login attempt succeeded or failed.
     */
    status?: pulumi.Input<string>;
    /**
     * The username of the User that was logged into.
     */
    username?: pulumi.Input<string>;
}
export interface GetChildAccountsChildAccount {
    /**
     * When this account was first activated
     */
    activeSince?: string;
    /**
     * First line of this Account's billing address.
     */
    address1?: string;
    /**
     * Second line of this Account's billing address.
     */
    address2?: string;
    /**
     * This Account's balance, in US dollars.
     */
    balance?: number;
    /**
     * A set containing all the capabilities of this Account.
     */
    capabilities?: string[];
    /**
     * The city for this Account's billing address.
     */
    city?: string;
    /**
     * The company name associated with this Account.
     */
    company?: string;
    /**
     * The two-letter country code of this Account's billing address.
     */
    country?: string;
    /**
     * The email address for this Account, for account management communications, and may be used for other communications as configured.
     */
    email?: string;
    /**
     * The unique ID of this Account.
     */
    euuid?: string;
    /**
     * The first name of the person associated with this Account.
     */
    firstName?: string;
    /**
     * The Email of the Account.
     */
    id?: string;
    /**
     * The last name of the person associated with this Account.
     */
    lastName?: string;
    /**
     * The phone number associated with this Account.
     */
    phone?: string;
    /**
     * If billing address is in the United States, this is the State portion of the Account's billing address. If the address is outside the US, this is the Province associated with the Account's billing address.
     */
    state?: string;
    /**
     * The zip code of this Account's billing address.
     */
    zip?: string;
}
export interface GetChildAccountsChildAccountArgs {
    /**
     * When this account was first activated
     */
    activeSince?: pulumi.Input<string>;
    /**
     * First line of this Account's billing address.
     */
    address1?: pulumi.Input<string>;
    /**
     * Second line of this Account's billing address.
     */
    address2?: pulumi.Input<string>;
    /**
     * This Account's balance, in US dollars.
     */
    balance?: pulumi.Input<number>;
    /**
     * A set containing all the capabilities of this Account.
     */
    capabilities?: pulumi.Input<pulumi.Input<string>[]>;
    /**
     * The city for this Account's billing address.
     */
    city?: pulumi.Input<string>;
    /**
     * The company name associated with this Account.
     */
    company?: pulumi.Input<string>;
    /**
     * The two-letter country code of this Account's billing address.
     */
    country?: pulumi.Input<string>;
    /**
     * The email address for this Account, for account management communications, and may be used for other communications as configured.
     */
    email?: pulumi.Input<string>;
    /**
     * The unique ID of this Account.
     */
    euuid?: pulumi.Input<string>;
    /**
     * The first name of the person associated with this Account.
     */
    firstName?: pulumi.Input<string>;
    /**
     * The Email of the Account.
     */
    id?: pulumi.Input<string>;
    /**
     * The last name of the person associated with this Account.
     */
    lastName?: pulumi.Input<string>;
    /**
     * The phone number associated with this Account.
     */
    phone?: pulumi.Input<string>;
    /**
     * If billing address is in the United States, this is the State portion of the Account's billing address. If the address is outside the US, this is the Province associated with the Account's billing address.
     */
    state?: pulumi.Input<string>;
    /**
     * The zip code of this Account's billing address.
     */
    zip?: pulumi.Input<string>;
}
export interface GetChildAccountsFilter {
    /**
     * The method to match the field by. (`exact`, `regex`, `substring`; default `exact`)
     */
    matchBy?: string;
    /**
     * The name of the field to filter by. See the Filterable Fields section for a complete list of filterable fields.
     */
    name: string;
    /**
     * A list of values for the filter to allow. These values should all be in string form.
     */
    values: string[];
}
export interface GetChildAccountsFilterArgs {
    /**
     * The method to match the field by. (`exact`, `regex`, `substring`; default `exact`)
     */
    matchBy?: pulumi.Input<string>;
    /**
     * The name of the field to filter by. See the Filterable Fields section for a complete list of filterable fields.
     */
    name: pulumi.Input<string>;
    /**
     * A list of values for the filter to allow. These values should all be in string form.
     */
    values: pulumi.Input<pulumi.Input<string>[]>;
}
export interface GetDatabaseBackupsBackup {
    /**
     * A time value given in a combined date and time format that represents when the database backup was created.
     */
    created?: string;
    /**
     * The ID of the database backup object.
     */
    id?: number;
    /**
     * The database backup’s label, for display purposes only.
     */
    label?: string;
    /**
     * The type of database backup, determined by how the backup was created.
     */
    type?: string;
}
export interface GetDatabaseBackupsBackupArgs {
    /**
     * A time value given in a combined date and time format that represents when the database backup was created.
     */
    created?: pulumi.Input<string>;
    /**
     * The ID of the database backup object.
     */
    id?: pulumi.Input<number>;
    /**
     * The database backup’s label, for display purposes only.
     */
    label?: pulumi.Input<string>;
    /**
     * The type of database backup, determined by how the backup was created.
     */
    type?: pulumi.Input<string>;
}
export interface GetDatabaseBackupsFilter {
    /**
     * The method to match the field by. (`exact`, `regex`, `substring`; default `exact`)
     */
    matchBy?: string;
    /**
     * The name of the field to filter by.
     */
    name: string;
    /**
     * A list of values for the filter to allow. These values should all be in string form.
     */
    values: string[];
}
export interface GetDatabaseBackupsFilterArgs {
    /**
     * The method to match the field by. (`exact`, `regex`, `substring`; default `exact`)
     */
    matchBy?: pulumi.Input<string>;
    /**
     * The name of the field to filter by.
     */
    name: pulumi.Input<string>;
    /**
     * A list of values for the filter to allow. These values should all be in string form.
     */
    values: pulumi.Input<pulumi.Input<string>[]>;
}
export interface GetDatabaseEnginesEngine {
    /**
     * The Managed Database engine type.
     */
    engine?: string;
    /**
     * The Managed Database engine ID in engine/version format.
     */
    id?: string;
    /**
     * The Managed Database engine version.
     */
    version?: string;
}
export interface GetDatabaseEnginesEngineArgs {
    /**
     * The Managed Database engine type.
     */
    engine?: pulumi.Input<string>;
    /**
     * The Managed Database engine ID in engine/version format.
     */
    id?: pulumi.Input<string>;
    /**
     * The Managed Database engine version.
     */
    version?: pulumi.Input<string>;
}
export interface GetDatabaseEnginesFilter {
    /**
     * The method to match the field by. (`exact`, `regex`, `substring`; default `exact`)
     */
    matchBy?: string;
    /**
     * The name of the field to filter by.
     */
    name: string;
    /**
     * A list of values for the filter to allow. These values should all be in string form.
     */
    values: string[];
}
export interface GetDatabaseEnginesFilterArgs {
    /**
     * The method to match the field by. (`exact`, `regex`, `substring`; default `exact`)
     */
    matchBy?: pulumi.Input<string>;
    /**
     * The name of the field to filter by.
     */
    name: pulumi.Input<string>;
    /**
     * A list of values for the filter to allow. These values should all be in string form.
     */
    values: pulumi.Input<pulumi.Input<string>[]>;
}
export interface GetDatabaseMysqlBackupsFilter {
    /**
     * The method to match the field by. (`exact`, `regex`, `substring`; default `exact`)
     */
    matchBy?: string;
    /**
     * The name of the field to filter by.
     */
    name: string;
    /**
     * A list of values for the filter to allow. These values should all be in string form.
     */
    values: string[];
}
export interface GetDatabaseMysqlBackupsFilterArgs {
    /**
     * The method to match the field by. (`exact`, `regex`, `substring`; default `exact`)
     */
    matchBy?: pulumi.Input<string>;
    /**
     * The name of the field to filter by.
     */
    name: pulumi.Input<string>;
    /**
     * A list of values for the filter to allow. These values should all be in string form.
     */
    values: pulumi.Input<pulumi.Input<string>[]>;
}
export interface GetDatabasesDatabase {
    /**
     * A list of IP addresses that can access the Managed Database.
     */
    allowLists?: string[];
    /**
     * The number of Linode Instance nodes deployed to the Managed Database.
     */
    clusterSize?: number;
    /**
     * When this Managed Database was created.
     */
    created?: string;
    /**
     * Whether the Managed Databases is encrypted.
     */
    encrypted?: boolean;
    /**
     * The Managed Database engine.
     */
    engine?: string;
    /**
     * The primary host for the Managed Database.
     */
    hostPrimary?: string;
    /**
     * The secondary/private network host for the Managed Database.
     */
    hostSecondary?: string;
    /**
     * The ID of the Managed Database.
     */
    id?: number;
    /**
     * he API route for the database instance.
     */
    instanceUri?: string;
    /**
     * A unique, user-defined string referring to the Managed Database.
     */
    label?: string;
    /**
     * The region to use for the Managed Database.
     */
    region?: string;
    /**
     * The replication method used for the Managed Database.
     */
    replicationType?: string;
    /**
     * Whether to require SSL credentials to establish a connection to the Managed Database.
     */
    sslConnection?: boolean;
    /**
     * The operating status of the Managed Database.
     */
    status?: string;
    /**
     * The Linode Instance type used for the nodes of the  Managed Database instance.
     */
    type?: string;
    /**
     * When this Managed Database was last updated.
     */
    updated?: string;
    /**
     * The Managed Database engine version.
     */
    version?: string;
}
export interface GetDatabasesDatabaseArgs {
    /**
     * A list of IP addresses that can access the Managed Database.
     */
    allowLists?: pulumi.Input<pulumi.Input<string>[]>;
    /**
     * The number of Linode Instance nodes deployed to the Managed Database.
     */
    clusterSize?: pulumi.Input<number>;
    /**
     * When this Managed Database was created.
     */
    created?: pulumi.Input<string>;
    /**
     * Whether the Managed Databases is encrypted.
     */
    encrypted?: pulumi.Input<boolean>;
    /**
     * The Managed Database engine.
     */
    engine?: pulumi.Input<string>;
    /**
     * The primary host for the Managed Database.
     */
    hostPrimary?: pulumi.Input<string>;
    /**
     * The secondary/private network host for the Managed Database.
     */
    hostSecondary?: pulumi.Input<string>;
    /**
     * The ID of the Managed Database.
     */
    id?: pulumi.Input<number>;
    /**
     * he API route for the database instance.
     */
    instanceUri?: pulumi.Input<string>;
    /**
     * A unique, user-defined string referring to the Managed Database.
     */
    label?: pulumi.Input<string>;
    /**
     * The region to use for the Managed Database.
     */
    region?: pulumi.Input<string>;
    /**
     * The replication method used for the Managed Database.
     */
    replicationType?: pulumi.Input<string>;
    /**
     * Whether to require SSL credentials to establish a connection to the Managed Database.
     */
    sslConnection?: pulumi.Input<boolean>;
    /**
     * The operating status of the Managed Database.
     */
    status?: pulumi.Input<string>;
    /**
     * The Linode Instance type used for the nodes of the  Managed Database instance.
     */
    type?: pulumi.Input<string>;
    /**
     * When this Managed Database was last updated.
     */
    updated?: pulumi.Input<string>;
    /**
     * The Managed Database engine version.
     */
    version?: pulumi.Input<string>;
}
export interface GetDatabasesFilter {
    /**
     * The method to match the field by. (`exact`, `regex`, `substring`; default `exact`)
     */
    matchBy?: string;
    /**
     * The name of the field to filter by.
     */
    name: string;
    /**
     * A list of values for the filter to allow. These values should all be in string form.
     */
    values: string[];
}
export interface GetDatabasesFilterArgs {
    /**
     * The method to match the field by. (`exact`, `regex`, `substring`; default `exact`)
     */
    matchBy?: pulumi.Input<string>;
    /**
     * The name of the field to filter by.
     */
    name: pulumi.Input<string>;
    /**
     * A list of values for the filter to allow. These values should all be in string form.
     */
    values: pulumi.Input<pulumi.Input<string>[]>;
}
export interface GetDomainsDomain {
    /**
     * The list of IPs that may perform a zone transfer for this Domain.
     */
    axfrIps?: string[];
    /**
     * A description for this Domain.
     */
    description?: string;
    /**
     * The domain this Domain represents. These must be unique in our system; you cannot have two Domains representing the same domain
     */
    domain?: string;
    /**
     * The amount of time in seconds that may pass before this Domain is no longer authoritative.
     */
    expireSec?: number;
    /**
     * The group this Domain belongs to.
     */
    group?: string;
    /**
     * The unique ID of this Domain.
     */
    id?: number;
    /**
     * The IP addresses representing the master DNS for this Domain.
     */
    masterIps?: string[];
    /**
     * The amount of time in seconds before this Domain should be refreshed.
     */
    refreshSec?: number;
    /**
     * The interval, in seconds, at which a failed refresh should be retried.
     */
    retrySec?: number;
    /**
     * Start of Authority email address.
     */
    soaEmail?: string;
    /**
     * Used to control whether this Domain is currently being rendered. (`disabled`, `active`)
     */
    status?: string;
    /**
     * An array of tags applied to this object. Tags are case-insensitive and are for organizational purposes only.
     */
    tags?: string[];
    /**
     * 'Time to Live'-the amount of time in seconds that this Domain's records may be cached by resolvers or other domain servers.
     */
    ttlSec?: number;
    /**
     * If this Domain represents the authoritative source of information for the domain it describes, or if it is a read-only copy of a master (also called a slave) (`master`, `slave`)
     */
    type?: string;
}
export interface GetDomainsDomainArgs {
    /**
     * The list of IPs that may perform a zone transfer for this Domain.
     */
    axfrIps?: pulumi.Input<pulumi.Input<string>[]>;
    /**
     * A description for this Domain.
     */
    description?: pulumi.Input<string>;
    /**
     * The domain this Domain represents. These must be unique in our system; you cannot have two Domains representing the same domain
     */
    domain?: pulumi.Input<string>;
    /**
     * The amount of time in seconds that may pass before this Domain is no longer authoritative.
     */
    expireSec?: pulumi.Input<number>;
    /**
     * The group this Domain belongs to.
     */
    group?: pulumi.Input<string>;
    /**
     * The unique ID of this Domain.
     */
    id?: pulumi.Input<number>;
    /**
     * The IP addresses representing the master DNS for this Domain.
     */
    masterIps?: pulumi.Input<pulumi.Input<string>[]>;
    /**
     * The amount of time in seconds before this Domain should be refreshed.
     */
    refreshSec?: pulumi.Input<number>;
    /**
     * The interval, in seconds, at which a failed refresh should be retried.
     */
    retrySec?: pulumi.Input<number>;
    /**
     * Start of Authority email address.
     */
    soaEmail?: pulumi.Input<string>;
    /**
     * Used to control whether this Domain is currently being rendered. (`disabled`, `active`)
     */
    status?: pulumi.Input<string>;
    /**
     * An array of tags applied to this object. Tags are case-insensitive and are for organizational purposes only.
     */
    tags?: pulumi.Input<pulumi.Input<string>[]>;
    /**
     * 'Time to Live'-the amount of time in seconds that this Domain's records may be cached by resolvers or other domain servers.
     */
    ttlSec?: pulumi.Input<number>;
    /**
     * If this Domain represents the authoritative source of information for the domain it describes, or if it is a read-only copy of a master (also called a slave) (`master`, `slave`)
     */
    type?: pulumi.Input<string>;
}
export interface GetDomainsFilter {
    /**
     * The method to match the field by. (`exact`, `regex`, `substring`; default `exact`)
     */
    matchBy?: string;
    /**
     * The name of the field to filter by. See the Filterable Fields section for a complete list of filterable fields.
     */
    name: string;
    /**
     * A list of values for the filter to allow. These values should all be in string form.
     */
    values: string[];
}
export interface GetDomainsFilterArgs {
    /**
     * The method to match the field by. (`exact`, `regex`, `substring`; default `exact`)
     */
    matchBy?: pulumi.Input<string>;
    /**
     * The name of the field to filter by. See the Filterable Fields section for a complete list of filterable fields.
     */
    name: pulumi.Input<string>;
    /**
     * A list of values for the filter to allow. These values should all be in string form.
     */
    values: pulumi.Input<pulumi.Input<string>[]>;
}
export interface GetFirewallsFilter {
    /**
     * The method to match the field by. (`exact`, `regex`, `substring`; default `exact`)
     */
    matchBy?: string;
    /**
     * The name of the field to filter by. See the Filterable Fields section for a complete list of filterable fields.
     */
    name: string;
    /**
     * A list of values for the filter to allow. These values should all be in string form.
     */
    values: string[];
}
export interface GetFirewallsFilterArgs {
    /**
     * The method to match the field by. (`exact`, `regex`, `substring`; default `exact`)
     */
    matchBy?: pulumi.Input<string>;
    /**
     * The name of the field to filter by. See the Filterable Fields section for a complete list of filterable fields.
     */
    name: pulumi.Input<string>;
    /**
     * A list of values for the filter to allow. These values should all be in string form.
     */
    values: pulumi.Input<pulumi.Input<string>[]>;
}
export interface GetFirewallsFirewall {
    /**
     * When this firewall was created.
     */
    created?: string;
    /**
     * The devices associated with this firewall.
     */
    devices?: inputs.GetFirewallsFirewallDevice[];
    /**
     * If true, the Firewall is inactive.
     */
    disabled?: boolean;
    /**
     * The unique ID assigned to this Firewall.
     */
    id?: number;
    /**
     * The default behavior for inbound traffic.
     */
    inboundPolicy?: string;
    /**
     * A set of firewall rules that specify what inbound network traffic is allowed.
     */
    inbounds?: inputs.GetFirewallsFirewallInbound[];
    /**
     * The label for the Firewall. For display purposes only. If no label is provided, a default will be assigned.
     */
    label?: string;
    /**
     * The IDs of Linodes this firewall is applied to.
     */
    linodes?: number[];
    /**
     * The IDs of NodeBalancers assigned to this Firewall..
     */
    nodebalancers?: number[];
    /**
     * The default behavior for outbound traffic.
     */
    outboundPolicy?: string;
    /**
     * A set of firewall rules that specify what outbound network traffic is allowed.
     */
    outbounds?: inputs.GetFirewallsFirewallOutbound[];
    /**
     * The status of the firewall.
     */
    status?: string;
    /**
     * An array of tags applied to this object. Tags are case-insensitive and are for organizational purposes only.
     */
    tags?: string[];
    /**
     * When this firewall was last updated.
     */
    updated?: string;
}
export interface GetFirewallsFirewallArgs {
    /**
     * When this firewall was created.
     */
    created?: pulumi.Input<string>;
    /**
     * The devices associated with this firewall.
     */
    devices?: pulumi.Input<pulumi.Input<inputs.GetFirewallsFirewallDeviceArgs>[]>;
    /**
     * If true, the Firewall is inactive.
     */
    disabled?: pulumi.Input<boolean>;
    /**
     * The unique ID assigned to this Firewall.
     */
    id?: pulumi.Input<number>;
    /**
     * The default behavior for inbound traffic.
     */
    inboundPolicy?: pulumi.Input<string>;
    /**
     * A set of firewall rules that specify what inbound network traffic is allowed.
     */
    inbounds?: pulumi.Input<pulumi.Input<inputs.GetFirewallsFirewallInboundArgs>[]>;
    /**
     * The label for the Firewall. For display purposes only. If no label is provided, a default will be assigned.
     */
    label?: pulumi.Input<string>;
    /**
     * The IDs of Linodes this firewall is applied to.
     */
    linodes?: pulumi.Input<pulumi.Input<number>[]>;
    /**
     * The IDs of NodeBalancers assigned to this Firewall..
     */
    nodebalancers?: pulumi.Input<pulumi.Input<number>[]>;
    /**
     * The default behavior for outbound traffic.
     */
    outboundPolicy?: pulumi.Input<string>;
    /**
     * A set of firewall rules that specify what outbound network traffic is allowed.
     */
    outbounds?: pulumi.Input<pulumi.Input<inputs.GetFirewallsFirewallOutboundArgs>[]>;
    /**
     * The status of the firewall.
     */
    status?: pulumi.Input<string>;
    /**
     * An array of tags applied to this object. Tags are case-insensitive and are for organizational purposes only.
     */
    tags?: pulumi.Input<pulumi.Input<string>[]>;
    /**
     * When this firewall was last updated.
     */
    updated?: pulumi.Input<string>;
}
export interface GetFirewallsFirewallDevice {
    /**
     * The ID of the underlying entity this device references (i.e. the Linode's ID).
     */
    entityId?: number;
    /**
     * The unique ID assigned to this Firewall.
     */
    id?: number;
    /**
     * The label for the Firewall. For display purposes only. If no label is provided, a default will be assigned.
     */
    label?: string;
    /**
     * The type of Firewall Device.
     */
    type?: string;
    /**
     * The URL of the underlying entity this device references.
     */
    url?: string;
}
export interface GetFirewallsFirewallDeviceArgs {
    /**
     * The ID of the underlying entity this device references (i.e. the Linode's ID).
     */
    entityId?: pulumi.Input<number>;
    /**
     * The unique ID assigned to this Firewall.
     */
    id?: pulumi.Input<number>;
    /**
     * The label for the Firewall. For display purposes only. If no label is provided, a default will be assigned.
     */
    label?: pulumi.Input<string>;
    /**
     * The type of Firewall Device.
     */
    type?: pulumi.Input<string>;
    /**
     * The URL of the underlying entity this device references.
     */
    url?: pulumi.Input<string>;
}
export interface GetFirewallsFirewallInbound {
    /**
     * Controls whether traffic is accepted or dropped by this rule (ACCEPT, DROP).
     */
    action?: string;
    /**
     * A list of IPv4 addresses or networks in IP/mask format.
     */
    ipv4s?: string[];
    /**
     * A list of IPv6 addresses or networks in IP/mask format.
     */
    ipv6s?: string[];
    /**
     * The label for the Firewall. For display purposes only. If no label is provided, a default will be assigned.
     */
    label?: string;
    /**
     * A string representation of ports and/or port ranges (i.e. "443" or "80-90, 91").
     */
    ports?: string;
    /**
     * The network protocol this rule controls. (TCP, UDP, ICMP)
     */
    protocol?: string;
}
export interface GetFirewallsFirewallInboundArgs {
    /**
     * Controls whether traffic is accepted or dropped by this rule (ACCEPT, DROP).
     */
    action?: pulumi.Input<string>;
    /**
     * A list of IPv4 addresses or networks in IP/mask format.
     */
    ipv4s?: pulumi.Input<pulumi.Input<string>[]>;
    /**
     * A list of IPv6 addresses or networks in IP/mask format.
     */
    ipv6s?: pulumi.Input<pulumi.Input<string>[]>;
    /**
     * The label for the Firewall. For display purposes only. If no label is provided, a default will be assigned.
     */
    label?: pulumi.Input<string>;
    /**
     * A string representation of ports and/or port ranges (i.e. "443" or "80-90, 91").
     */
    ports?: pulumi.Input<string>;
    /**
     * The network protocol this rule controls. (TCP, UDP, ICMP)
     */
    protocol?: pulumi.Input<string>;
}
export interface GetFirewallsFirewallOutbound {
    /**
     * Controls whether traffic is accepted or dropped by this rule (ACCEPT, DROP).
     */
    action?: string;
    /**
     * A list of IPv4 addresses or networks in IP/mask format.
     */
    ipv4s?: string[];
    /**
     * A list of IPv6 addresses or networks in IP/mask format.
     */
    ipv6s?: string[];
    /**
     * The label for the Firewall. For display purposes only. If no label is provided, a default will be assigned.
     */
    label?: string;
    /**
     * A string representation of ports and/or port ranges (i.e. "443" or "80-90, 91").
     */
    ports?: string;
    /**
     * The network protocol this rule controls. (TCP, UDP, ICMP)
     */
    protocol?: string;
}
export interface GetFirewallsFirewallOutboundArgs {
    /**
     * Controls whether traffic is accepted or dropped by this rule (ACCEPT, DROP).
     */
    action?: pulumi.Input<string>;
    /**
     * A list of IPv4 addresses or networks in IP/mask format.
     */
    ipv4s?: pulumi.Input<pulumi.Input<string>[]>;
    /**
     * A list of IPv6 addresses or networks in IP/mask format.
     */
    ipv6s?: pulumi.Input<pulumi.Input<string>[]>;
    /**
     * The label for the Firewall. For display purposes only. If no label is provided, a default will be assigned.
     */
    label?: pulumi.Input<string>;
    /**
     * A string representation of ports and/or port ranges (i.e. "443" or "80-90, 91").
     */
    ports?: pulumi.Input<string>;
    /**
     * The network protocol this rule controls. (TCP, UDP, ICMP)
     */
    protocol?: pulumi.Input<string>;
}
export interface GetImageReplication {
    /**
     * The region of an image replica.
     */
    region?: string;
    /**
     * The status of an image replica.
     */
    status?: string;
}
export interface GetImageReplicationArgs {
    /**
     * The region of an image replica.
     */
    region?: pulumi.Input<string>;
    /**
     * The status of an image replica.
     */
    status?: pulumi.Input<string>;
}
export interface GetImagesFilter {
    /**
     * The method to match the field by. (`exact`, `regex`, `substring`; default `exact`)
     */
    matchBy?: string;
    /**
     * The name of the field to filter by. See the Filterable Fields section for a complete list of filterable fields.
     */
    name: string;
    /**
     * A list of values for the filter to allow. These values should all be in string form.
     */
    values: string[];
}
export interface GetImagesFilterArgs {
    /**
     * The method to match the field by. (`exact`, `regex`, `substring`; default `exact`)
     */
    matchBy?: pulumi.Input<string>;
    /**
     * The name of the field to filter by. See the Filterable Fields section for a complete list of filterable fields.
     */
    name: pulumi.Input<string>;
    /**
     * A list of values for the filter to allow. These values should all be in string form.
     */
    values: pulumi.Input<pulumi.Input<string>[]>;
}
export interface GetImagesImage {
    /**
     * The capabilities of this Image.
     */
    capabilities?: string[];
    /**
     * When this Image was created.
     */
    created?: string;
    /**
     * The name of the User who created this Image, or "linode" for official Images.
     */
    createdBy?: string;
    /**
     * Whether or not this Image is deprecated. Will only be true for deprecated public Images.
     */
    deprecated?: boolean;
    /**
     * A detailed description of this Image.
     */
    description?: string;
    /**
     * Only Images created automatically (from a deleted Linode; type=automatic) will expire.
     */
    expiry?: string;
    /**
     * The unique ID of this Image.  The ID of private images begin with `private/` followed by the numeric identifier of the private image, for example `private/12345`.
     */
    id: string;
    /**
     * True if the Image is public.
     */
    isPublic?: boolean;
    /**
     * A short description of the Image.
     */
    label?: string;
    /**
     * A list of image replication regions and corresponding status.
     */
    replications?: inputs.GetImagesImageReplication[];
    /**
     * The minimum size this Image needs to deploy. Size is in MB. example: 2500
     */
    size?: number;
    /**
     * The status of an image replica.
     */
    status?: string;
    /**
     * A list of customized tags.
     */
    tags?: string[];
    /**
     * The total size of the image in all available regions.
     */
    totalSize?: number;
    /**
     * How the Image was created. Manual Images can be created at any time. "Automatic" Images are created automatically from a deleted Linode. (`manual`, `automatic`)
     */
    type?: string;
    /**
     * The upstream distribution vendor. `None` for private Images.
     */
    vendor?: string;
}
export interface GetImagesImageArgs {
    /**
     * The capabilities of this Image.
     */
    capabilities?: pulumi.Input<pulumi.Input<string>[]>;
    /**
     * When this Image was created.
     */
    created?: pulumi.Input<string>;
    /**
     * The name of the User who created this Image, or "linode" for official Images.
     */
    createdBy?: pulumi.Input<string>;
    /**
     * Whether or not this Image is deprecated. Will only be true for deprecated public Images.
     */
    deprecated?: pulumi.Input<boolean>;
    /**
     * A detailed description of this Image.
     */
    description?: pulumi.Input<string>;
    /**
     * Only Images created automatically (from a deleted Linode; type=automatic) will expire.
     */
    expiry?: pulumi.Input<string>;
    /**
     * The unique ID of this Image.  The ID of private images begin with `private/` followed by the numeric identifier of the private image, for example `private/12345`.
     */
    id: pulumi.Input<string>;
    /**
     * True if the Image is public.
     */
    isPublic?: pulumi.Input<boolean>;
    /**
     * A short description of the Image.
     */
    label?: pulumi.Input<string>;
    /**
     * A list of image replication regions and corresponding status.
     */
    replications?: pulumi.Input<pulumi.Input<inputs.GetImagesImageReplicationArgs>[]>;
    /**
     * The minimum size this Image needs to deploy. Size is in MB. example: 2500
     */
    size?: pulumi.Input<number>;
    /**
     * The status of an image replica.
     */
    status?: pulumi.Input<string>;
    /**
     * A list of customized tags.
     */
    tags?: pulumi.Input<pulumi.Input<string>[]>;
    /**
     * The total size of the image in all available regions.
     */
    totalSize?: pulumi.Input<number>;
    /**
     * How the Image was created. Manual Images can be created at any time. "Automatic" Images are created automatically from a deleted Linode. (`manual`, `automatic`)
     */
    type?: pulumi.Input<string>;
    /**
     * The upstream distribution vendor. `None` for private Images.
     */
    vendor?: pulumi.Input<string>;
}
export interface GetImagesImageReplication {
    /**
     * The region of an image replica.
     */
    region?: string;
    /**
     * The status of an image replica.
     */
    status?: string;
}
export interface GetImagesImageReplicationArgs {
    /**
     * The region of an image replica.
     */
    region?: pulumi.Input<string>;
    /**
     * The status of an image replica.
     */
    status?: pulumi.Input<string>;
}
export interface GetInstanceTypesFilter {
    /**
     * The method to match the field by. (`exact`, `regex`, `substring`; default `exact`)
     */
    matchBy?: string;
    /**
     * The name of the field to filter by. See the Filterable Fields section for a complete list of filterable fields.
     */
    name: string;
    /**
     * A list of values for the filter to allow. These values should all be in string form.
     */
    values: string[];
}
export interface GetInstanceTypesFilterArgs {
    /**
     * The method to match the field by. (`exact`, `regex`, `substring`; default `exact`)
     */
    matchBy?: pulumi.Input<string>;
    /**
     * The name of the field to filter by. See the Filterable Fields section for a complete list of filterable fields.
     */
    name: pulumi.Input<string>;
    /**
     * A list of values for the filter to allow. These values should all be in string form.
     */
    values: pulumi.Input<pulumi.Input<string>[]>;
}
export interface GetInstanceTypesType {
    /**
     * The number of VPUs this Linode Type offers.
     */
    acceleratedDevices?: number;
    /**
     * Information about the optional Backup service offered for Linodes.
     */
    addons?: inputs.GetInstanceTypesTypeAddon[];
    /**
     * The class of the Linode Type. See all classes [here](https://techdocs.akamai.com/linode-api/reference/get-linode-types).
     */
    class?: string;
    /**
     * The Disk size, in MB, of the Linode Type.
     */
    disk?: number;
    /**
     * The ID representing the Linode Type.
     */
    id: string;
    /**
     * The Linode Type's label is for display purposes only.
     */
    label?: string;
    /**
     * The amount of RAM included in this Linode Type.
     */
    memory?: number;
    /**
     * The Mbits outbound bandwidth allocation.
     */
    networkOut?: number;
    /**
     * Cost in US dollars, broken down into hourly and monthly charges.
     */
    prices?: inputs.GetInstanceTypesTypePrice[];
    /**
     * A list of region-specific prices for this plan.
     */
    regionPrices?: inputs.GetInstanceTypesTypeRegionPrice[];
    /**
     * The monthly outbound transfer amount, in MB.
     */
    transfer?: number;
    /**
     * The number of VCPU cores this Linode Type offers.
     */
    vcpus?: number;
}
export interface GetInstanceTypesTypeArgs {
    /**
     * The number of VPUs this Linode Type offers.
     */
    acceleratedDevices?: pulumi.Input<number>;
    /**
     * Information about the optional Backup service offered for Linodes.
     */
    addons?: pulumi.Input<pulumi.Input<inputs.GetInstanceTypesTypeAddonArgs>[]>;
    /**
     * The class of the Linode Type. See all classes [here](https://techdocs.akamai.com/linode-api/reference/get-linode-types).
     */
    class?: pulumi.Input<string>;
    /**
     * The Disk size, in MB, of the Linode Type.
     */
    disk?: pulumi.Input<number>;
    /**
     * The ID representing the Linode Type.
     */
    id: pulumi.Input<string>;
    /**
     * The Linode Type's label is for display purposes only.
     */
    label?: pulumi.Input<string>;
    /**
     * The amount of RAM included in this Linode Type.
     */
    memory?: pulumi.Input<number>;
    /**
     * The Mbits outbound bandwidth allocation.
     */
    networkOut?: pulumi.Input<number>;
    /**
     * Cost in US dollars, broken down into hourly and monthly charges.
     */
    prices?: pulumi.Input<pulumi.Input<inputs.GetInstanceTypesTypePriceArgs>[]>;
    /**
     * A list of region-specific prices for this plan.
     */
    regionPrices?: pulumi.Input<pulumi.Input<inputs.GetInstanceTypesTypeRegionPriceArgs>[]>;
    /**
     * The monthly outbound transfer amount, in MB.
     */
    transfer?: pulumi.Input<number>;
    /**
     * The number of VCPU cores this Linode Type offers.
     */
    vcpus?: pulumi.Input<number>;
}
export interface GetInstanceTypesTypeAddon {
    backups: inputs.GetInstanceTypesTypeAddonBackup[];
}
export interface GetInstanceTypesTypeAddonArgs {
    backups: pulumi.Input<pulumi.Input<inputs.GetInstanceTypesTypeAddonBackupArgs>[]>;
}
export interface GetInstanceTypesTypeAddonBackup {
    prices: inputs.GetInstanceTypesTypeAddonBackupPrice[];
    regionPrices: inputs.GetInstanceTypesTypeAddonBackupRegionPrice[];
}
export interface GetInstanceTypesTypeAddonBackupArgs {
    prices: pulumi.Input<pulumi.Input<inputs.GetInstanceTypesTypeAddonBackupPriceArgs>[]>;
    regionPrices: pulumi.Input<pulumi.Input<inputs.GetInstanceTypesTypeAddonBackupRegionPriceArgs>[]>;
}
export interface GetInstanceTypesTypeAddonBackupPrice {
    /**
     * The cost (in US dollars) per hour to add Backups service.
     */
    hourly: number;
    /**
     * The cost (in US dollars) per month to add Backups service.
     */
    monthly: number;
}
export interface GetInstanceTypesTypeAddonBackupPriceArgs {
    /**
     * The cost (in US dollars) per hour to add Backups service.
     */
    hourly: pulumi.Input<number>;
    /**
     * The cost (in US dollars) per month to add Backups service.
     */
    monthly: pulumi.Input<number>;
}
export interface GetInstanceTypesTypeAddonBackupRegionPrice {
    hourly: number;
    /**
     * The ID representing the Linode Type.
     */
    id: string;
    monthly: number;
}
export interface GetInstanceTypesTypeAddonBackupRegionPriceArgs {
    hourly: pulumi.Input<number>;
    /**
     * The ID representing the Linode Type.
     */
    id: pulumi.Input<string>;
    monthly: pulumi.Input<number>;
}
export interface GetInstanceTypesTypePrice {
    /**
     * Cost (in US dollars) per hour.
     */
    hourly: number;
    /**
     * Cost (in US dollars) per month.
     */
    monthly: number;
}
export interface GetInstanceTypesTypePriceArgs {
    /**
     * Cost (in US dollars) per hour.
     */
    hourly: pulumi.Input<number>;
    /**
     * Cost (in US dollars) per month.
     */
    monthly: pulumi.Input<number>;
}
export interface GetInstanceTypesTypeRegionPrice {
    hourly: number;
    /**
     * The ID representing the Linode Type.
     */
    id: string;
    monthly: number;
}
export interface GetInstanceTypesTypeRegionPriceArgs {
    hourly: pulumi.Input<number>;
    /**
     * The ID representing the Linode Type.
     */
    id: pulumi.Input<string>;
    monthly: pulumi.Input<number>;
}
export interface GetInstancesFilter {
    /**
     * The method to match the field by. (`exact`, `regex`, `substring`; default `exact`)
     */
    matchBy?: string;
    /**
     * The name of the field to filter by. See the Filterable Fields section for a list of filterable fields.
     */
    name: string;
    /**
     * A list of values for the filter to allow. These values should all be in string form.
     */
    values: string[];
}
export interface GetInstancesFilterArgs {
    /**
     * The method to match the field by. (`exact`, `regex`, `substring`; default `exact`)
     */
    matchBy?: pulumi.Input<string>;
    /**
     * The name of the field to filter by. See the Filterable Fields section for a list of filterable fields.
     */
    name: pulumi.Input<string>;
    /**
     * A list of values for the filter to allow. These values should all be in string form.
     */
    values: pulumi.Input<pulumi.Input<string>[]>;
}
export interface GetIpv6RangesFilter {
    /**
     * The method to match the field by. (`exact`, `regex`, `substring`; default `exact`)
     */
    matchBy?: string;
    /**
     * The name of the field to filter by. See the Filterable Fields section for a complete list of filterable fields.
     */
    name: string;
    /**
     * A list of values for the filter to allow. These values should all be in string form.
     */
    values: string[];
}
export interface GetIpv6RangesFilterArgs {
    /**
     * The method to match the field by. (`exact`, `regex`, `substring`; default `exact`)
     */
    matchBy?: pulumi.Input<string>;
    /**
     * The name of the field to filter by. See the Filterable Fields section for a complete list of filterable fields.
     */
    name: pulumi.Input<string>;
    /**
     * A list of values for the filter to allow. These values should all be in string form.
     */
    values: pulumi.Input<pulumi.Input<string>[]>;
}
export interface GetIpv6RangesRange {
    /**
     * The prefix length of the address, denoting how many addresses can be assigned from this range.
     */
    prefix?: number;
    /**
     * The IPv6 address of this range.
     */
    range?: string;
    /**
     * The region for this range of IPv6 addresses.
     */
    region?: string;
    /**
     * The IPv6 SLAAC address.
     */
    routeTarget?: string;
}
export interface GetIpv6RangesRangeArgs {
    /**
     * The prefix length of the address, denoting how many addresses can be assigned from this range.
     */
    prefix?: pulumi.Input<number>;
    /**
     * The IPv6 address of this range.
     */
    range?: pulumi.Input<string>;
    /**
     * The region for this range of IPv6 addresses.
     */
    region?: pulumi.Input<string>;
    /**
     * The IPv6 SLAAC address.
     */
    routeTarget?: pulumi.Input<string>;
}
export interface GetKernelsFilter {
    /**
     * The method to match the field by. (`exact`, `regex`, `substring`; default `exact`)
     */
    matchBy?: string;
    /**
     * The name of the field to filter by. See the Filterable Fields section for a complete list of filterable fields.
     */
    name: string;
    /**
     * A list of values for the filter to allow. These values should all be in string form.
     */
    values: string[];
}
export interface GetKernelsFilterArgs {
    /**
     * The method to match the field by. (`exact`, `regex`, `substring`; default `exact`)
     */
    matchBy?: pulumi.Input<string>;
    /**
     * The name of the field to filter by. See the Filterable Fields section for a complete list of filterable fields.
     */
    name: pulumi.Input<string>;
    /**
     * A list of values for the filter to allow. These values should all be in string form.
     */
    values: pulumi.Input<pulumi.Input<string>[]>;
}
export interface GetKernelsKernel {
    /**
     * The architecture of this Kernel.
     */
    architecture?: string;
    /**
     * The date on which this Kernel was built.
     */
    built?: string;
    /**
     * Whether or not this Kernel is deprecated.
     */
    deprecated?: boolean;
    /**
     * The unique ID of this Kernel.
     */
    id: string;
    /**
     * If this Kernel is suitable for KVM Linodes.
     */
    kvm?: boolean;
    /**
     * The friendly name of this Kernel.
     */
    label?: string;
    /**
     * If this Kernel is suitable for paravirtualized operations.
     */
    pvops?: boolean;
    /**
     * Linux Kernel version
     */
    version?: string;
    /**
     * If this Kernel is suitable for Xen Linodes.
     */
    xen?: boolean;
}
export interface GetKernelsKernelArgs {
    /**
     * The architecture of this Kernel.
     */
    architecture?: pulumi.Input<string>;
    /**
     * The date on which this Kernel was built.
     */
    built?: pulumi.Input<string>;
    /**
     * Whether or not this Kernel is deprecated.
     */
    deprecated?: pulumi.Input<boolean>;
    /**
     * The unique ID of this Kernel.
     */
    id: pulumi.Input<string>;
    /**
     * If this Kernel is suitable for KVM Linodes.
     */
    kvm?: pulumi.Input<boolean>;
    /**
     * The friendly name of this Kernel.
     */
    label?: pulumi.Input<string>;
    /**
     * If this Kernel is suitable for paravirtualized operations.
     */
    pvops?: pulumi.Input<boolean>;
    /**
     * Linux Kernel version
     */
    version?: pulumi.Input<string>;
    /**
     * If this Kernel is suitable for Xen Linodes.
     */
    xen?: pulumi.Input<boolean>;
}
export interface GetLkeClusterControlPlane {
    /**
     * The ACL configuration for an LKE cluster's control plane.
     */
    acls?: inputs.GetLkeClusterControlPlaneAcl[];
    /**
     * Whether High Availability is enabled for the cluster Control Plane.
     */
    highAvailability?: boolean;
}
export interface GetLkeClusterControlPlaneArgs {
    /**
     * The ACL configuration for an LKE cluster's control plane.
     */
    acls?: pulumi.Input<pulumi.Input<inputs.GetLkeClusterControlPlaneAclArgs>[]>;
    /**
     * Whether High Availability is enabled for the cluster Control Plane.
     */
    highAvailability?: pulumi.Input<boolean>;
}
export interface GetLkeClusterControlPlaneAcl {
    /**
     * A list of ip addresses to allow.
     */
    addresses?: inputs.GetLkeClusterControlPlaneAclAddress[];
    /**
     * The default policy. A value of true means a default policy of DENY. A value of false means a default policy of ALLOW.
     */
    enabled?: boolean;
}
export interface GetLkeClusterControlPlaneAclArgs {
    /**
     * A list of ip addresses to allow.
     */
    addresses?: pulumi.Input<pulumi.Input<inputs.GetLkeClusterControlPlaneAclAddressArgs>[]>;
    /**
     * The default policy. A value of true means a default policy of DENY. A value of false means a default policy of ALLOW.
     */
    enabled?: pulumi.Input<boolean>;
}
export interface GetLkeClusterControlPlaneAclAddress {
    /**
     * A set of individual ipv4 addresses or CIDRs to ALLOW.
     */
    ipv4s?: string[];
    /**
     * A set of individual ipv6 addresses or CIDRs to ALLOW.
     */
    ipv6s?: string[];
}
export interface GetLkeClusterControlPlaneAclAddressArgs {
    /**
     * A set of individual ipv4 addresses or CIDRs to ALLOW.
     */
    ipv4s?: pulumi.Input<pulumi.Input<string>[]>;
    /**
     * A set of individual ipv6 addresses or CIDRs to ALLOW.
     */
    ipv6s?: pulumi.Input<pulumi.Input<string>[]>;
}
export interface GetLkeClusterPool {
    /**
     * The configuration options for the autoscaler. This field only contains an autoscaler configuration if autoscaling is enabled on this cluster.
     */
    autoscalers?: inputs.GetLkeClusterPoolAutoscaler[];
    /**
     * The number of nodes in the Node Pool.
     */
    count?: number;
    /**
     * The disk encryption policy for nodes in this pool.
     */
    diskEncryption?: string;
    /**
     * This Node Pool’s custom disk layout.
     */
    disks?: inputs.GetLkeClusterPoolDisk[];
    /**
     * The LKE Cluster's ID.
     */
    id?: number;
    /**
     * Key-value pairs added as labels to nodes in the node pool. Labels help classify your nodes and to easily select subsets of objects.
     */
    labels?: {
        [key: string]: string;
    };
    /**
     * The nodes in the Node Pool.
     */
    nodes?: inputs.GetLkeClusterPoolNode[];
    /**
     * An array of tags applied to this object. Tags are case-insensitive and are for organizational purposes only.
     */
    tags?: string[];
    /**
     * Kubernetes taints to add to node pool nodes. Taints help control how pods are scheduled onto nodes, specifically allowing them to repel certain pods.
     */
    taints?: inputs.GetLkeClusterPoolTaint[];
    /**
     * The linode type for all of the nodes in the Node Pool. See all node types [here](https://api.linode.com/v4/linode/types).
     */
    type?: string;
}
export interface GetLkeClusterPoolArgs {
    /**
     * The configuration options for the autoscaler. This field only contains an autoscaler configuration if autoscaling is enabled on this cluster.
     */
    autoscalers?: pulumi.Input<pulumi.Input<inputs.GetLkeClusterPoolAutoscalerArgs>[]>;
    /**
     * The number of nodes in the Node Pool.
     */
    count?: pulumi.Input<number>;
    /**
     * The disk encryption policy for nodes in this pool.
     */
    diskEncryption?: pulumi.Input<string>;
    /**
     * This Node Pool’s custom disk layout.
     */
    disks?: pulumi.Input<pulumi.Input<inputs.GetLkeClusterPoolDiskArgs>[]>;
    /**
     * The LKE Cluster's ID.
     */
    id?: pulumi.Input<number>;
    /**
     * Key-value pairs added as labels to nodes in the node pool. Labels help classify your nodes and to easily select subsets of objects.
     */
    labels?: pulumi.Input<{
        [key: string]: pulumi.Input<string>;
    }>;
    /**
     * The nodes in the Node Pool.
     */
    nodes?: pulumi.Input<pulumi.Input<inputs.GetLkeClusterPoolNodeArgs>[]>;
    /**
     * An array of tags applied to this object. Tags are case-insensitive and are for organizational purposes only.
     */
    tags?: pulumi.Input<pulumi.Input<string>[]>;
    /**
     * Kubernetes taints to add to node pool nodes. Taints help control how pods are scheduled onto nodes, specifically allowing them to repel certain pods.
     */
    taints?: pulumi.Input<pulumi.Input<inputs.GetLkeClusterPoolTaintArgs>[]>;
    /**
     * The linode type for all of the nodes in the Node Pool. See all node types [here](https://api.linode.com/v4/linode/types).
     */
    type?: pulumi.Input<string>;
}
export interface GetLkeClusterPoolAutoscaler {
    /**
     * The default policy. A value of true means a default policy of DENY. A value of false means a default policy of ALLOW.
     */
    enabled?: boolean;
    /**
     * The maximum number of nodes to autoscale to.
     */
    max?: number;
    /**
     * The minimum number of nodes to autoscale to.
     */
    min?: number;
}
export interface GetLkeClusterPoolAutoscalerArgs {
    /**
     * The default policy. A value of true means a default policy of DENY. A value of false means a default policy of ALLOW.
     */
    enabled?: pulumi.Input<boolean>;
    /**
     * The maximum number of nodes to autoscale to.
     */
    max?: pulumi.Input<number>;
    /**
     * The minimum number of nodes to autoscale to.
     */
    min?: pulumi.Input<number>;
}
export interface GetLkeClusterPoolDisk {
    /**
     * The size of this custom disk partition in MB.
     */
    size?: number;
    /**
     * The linode type for all of the nodes in the Node Pool. See all node types [here](https://api.linode.com/v4/linode/types).
     */
    type?: string;
}
export interface GetLkeClusterPoolDiskArgs {
    /**
     * The size of this custom disk partition in MB.
     */
    size?: pulumi.Input<number>;
    /**
     * The linode type for all of the nodes in the Node Pool. See all node types [here](https://api.linode.com/v4/linode/types).
     */
    type?: pulumi.Input<string>;
}
export interface GetLkeClusterPoolNode {
    /**
     * The LKE Cluster's ID.
     */
    id?: string;
    /**
     * The ID of the underlying Linode instance.
     */
    instanceId?: number;
    /**
     * The status of the node. (`ready`, `notReady`)
     */
    status?: string;
}
export interface GetLkeClusterPoolNodeArgs {
    /**
     * The LKE Cluster's ID.
     */
    id?: pulumi.Input<string>;
    /**
     * The ID of the underlying Linode instance.
     */
    instanceId?: pulumi.Input<number>;
    /**
     * The status of the node. (`ready`, `notReady`)
     */
    status?: pulumi.Input<string>;
}
export interface GetLkeClusterPoolTaint {
    /**
     * The Kubernetes taint effect. The accepted values are `NoSchedule`, `PreferNoSchedule` and `NoExecute`. For the descriptions of these values, see [Kubernetes Taints and Tolerations](https://kubernetes.io/docs/concepts/scheduling-eviction/taint-and-toleration/).
     */
    effect: string;
    /**
     * The Kubernetes taint key.
     */
    key: string;
    /**
     * The Kubernetes taint value.
     */
    value: string;
}
export interface GetLkeClusterPoolTaintArgs {
    /**
     * The Kubernetes taint effect. The accepted values are `NoSchedule`, `PreferNoSchedule` and `NoExecute`. For the descriptions of these values, see [Kubernetes Taints and Tolerations](https://kubernetes.io/docs/concepts/scheduling-eviction/taint-and-toleration/).
     */
    effect: pulumi.Input<string>;
    /**
     * The Kubernetes taint key.
     */
    key: pulumi.Input<string>;
    /**
     * The Kubernetes taint value.
     */
    value: pulumi.Input<string>;
}
export interface GetLkeClustersFilter {
    /**
     * The method to match the field by. (`exact`, `regex`, `substring`; default `exact`)
     */
    matchBy?: string;
    /**
     * The name of the field to filter by. See the Filterable Fields section for a complete list of filterable fields.
     */
    name: string;
    /**
     * A list of values for the filter to allow. These values should all be in string form.
     */
    values: string[];
}
export interface GetLkeClustersFilterArgs {
    /**
     * The method to match the field by. (`exact`, `regex`, `substring`; default `exact`)
     */
    matchBy?: pulumi.Input<string>;
    /**
     * The name of the field to filter by. See the Filterable Fields section for a complete list of filterable fields.
     */
    name: pulumi.Input<string>;
    /**
     * A list of values for the filter to allow. These values should all be in string form.
     */
    values: pulumi.Input<pulumi.Input<string>[]>;
}
export interface GetLkeClustersLkeCluster {
    /**
     * Defines settings for the Kubernetes Control Plane.
     */
    controlPlane?: inputs.GetLkeClustersLkeClusterControlPlane;
    /**
     * When this Kubernetes cluster was created.
     */
    created?: string;
    /**
     * The LKE Cluster's ID.
     */
    id?: number;
    /**
     * The Kubernetes version for this Kubernetes cluster in the format of `major.minor` (e.g. `1.17`).
     */
    k8sVersion?: string;
    /**
     * The unique label for the cluster.
     */
    label?: string;
    /**
     * This Kubernetes cluster's location.
     */
    region?: string;
    /**
     * The status of the cluster.
     */
    status?: string;
    /**
     * An array of tags applied to this object. Tags are case-insensitive and are for organizational purposes only.
     */
    tags?: string[];
    /**
     * The desired Kubernetes tier. (**Note: v4beta only and may not currently be available to all users.**)
     */
    tier?: string;
    /**
     * When this Kubernetes cluster was updated.
     */
    updated?: string;
}
export interface GetLkeClustersLkeClusterArgs {
    /**
     * Defines settings for the Kubernetes Control Plane.
     */
    controlPlane?: pulumi.Input<inputs.GetLkeClustersLkeClusterControlPlaneArgs>;
    /**
     * When this Kubernetes cluster was created.
     */
    created?: pulumi.Input<string>;
    /**
     * The LKE Cluster's ID.
     */
    id?: pulumi.Input<number>;
    /**
     * The Kubernetes version for this Kubernetes cluster in the format of `major.minor` (e.g. `1.17`).
     */
    k8sVersion?: pulumi.Input<string>;
    /**
     * The unique label for the cluster.
     */
    label?: pulumi.Input<string>;
    /**
     * This Kubernetes cluster's location.
     */
    region?: pulumi.Input<string>;
    /**
     * The status of the cluster.
     */
    status?: pulumi.Input<string>;
    /**
     * An array of tags applied to this object. Tags are case-insensitive and are for organizational purposes only.
     */
    tags?: pulumi.Input<pulumi.Input<string>[]>;
    /**
     * The desired Kubernetes tier. (**Note: v4beta only and may not currently be available to all users.**)
     */
    tier?: pulumi.Input<string>;
    /**
     * When this Kubernetes cluster was updated.
     */
    updated?: pulumi.Input<string>;
}
export interface GetLkeClustersLkeClusterControlPlane {
    /**
     * Whether High Availability is enabled for the cluster Control Plane.
     */
    highAvailability?: boolean;
}
export interface GetLkeClustersLkeClusterControlPlaneArgs {
    /**
     * Whether High Availability is enabled for the cluster Control Plane.
     */
    highAvailability?: pulumi.Input<boolean>;
}
export interface GetLkeTypesFilter {
    /**
     * The method to match the field by. (`exact`, `regex`, `substring`; default `exact`)
     */
    matchBy?: string;
    /**
     * The name of the field to filter by. See the Filterable Fields section for a complete list of filterable fields.
     */
    name: string;
    /**
     * A list of values for the filter to allow. These values should all be in string form.
     */
    values: string[];
}
export interface GetLkeTypesFilterArgs {
    /**
     * The method to match the field by. (`exact`, `regex`, `substring`; default `exact`)
     */
    matchBy?: pulumi.Input<string>;
    /**
     * The name of the field to filter by. See the Filterable Fields section for a complete list of filterable fields.
     */
    name: pulumi.Input<string>;
    /**
     * A list of values for the filter to allow. These values should all be in string form.
     */
    values: pulumi.Input<pulumi.Input<string>[]>;
}
export interface GetLkeTypesType {
    /**
     * The ID representing the Kubernetes type.
     */
    id: string;
    /**
     * The Kubernetes type label is for display purposes only.
     */
    label?: string;
    /**
     * Cost in US dollars, broken down into hourly and monthly charges.
     */
    prices?: inputs.GetLkeTypesTypePrice[];
    /**
     * A list of region-specific prices for this LKE Type.
     */
    regionPrices?: inputs.GetLkeTypesTypeRegionPrice[];
    /**
     * The monthly outbound transfer amount, in MB.
     */
    transfer?: number;
}
export interface GetLkeTypesTypeArgs {
    /**
     * The ID representing the Kubernetes type.
     */
    id: pulumi.Input<string>;
    /**
     * The Kubernetes type label is for display purposes only.
     */
    label?: pulumi.Input<string>;
    /**
     * Cost in US dollars, broken down into hourly and monthly charges.
     */
    prices?: pulumi.Input<pulumi.Input<inputs.GetLkeTypesTypePriceArgs>[]>;
    /**
     * A list of region-specific prices for this LKE Type.
     */
    regionPrices?: pulumi.Input<pulumi.Input<inputs.GetLkeTypesTypeRegionPriceArgs>[]>;
    /**
     * The monthly outbound transfer amount, in MB.
     */
    transfer?: pulumi.Input<number>;
}
export interface GetLkeTypesTypePrice {
    /**
     * Cost (in US dollars) per hour.
     */
    hourly: number;
    /**
     * Cost (in US dollars) per month.
     */
    monthly: number;
}
export interface GetLkeTypesTypePriceArgs {
    /**
     * Cost (in US dollars) per hour.
     */
    hourly: pulumi.Input<number>;
    /**
     * Cost (in US dollars) per month.
     */
    monthly: pulumi.Input<number>;
}
export interface GetLkeTypesTypeRegionPrice {
    hourly: number;
    /**
     * The ID representing the Kubernetes type.
     */
    id: string;
    monthly: number;
}
export interface GetLkeTypesTypeRegionPriceArgs {
    hourly: pulumi.Input<number>;
    /**
     * The ID representing the Kubernetes type.
     */
    id: pulumi.Input<string>;
    monthly: pulumi.Input<number>;
}
export interface GetLkeVersionsVersion {
    /**
     * The Kubernetes version numbers available for deployment to a Kubernetes cluster in the format of [major].[minor], and the latest supported patch version.
     */
    id: string;
    /**
     * The tier (`standard` or `enterprise`) of Linode LKE Versions to fetch.
     */
    tier?: string;
}
export interface GetLkeVersionsVersionArgs {
    /**
     * The Kubernetes version numbers available for deployment to a Kubernetes cluster in the format of [major].[minor], and the latest supported patch version.
     */
    id: pulumi.Input<string>;
    /**
     * The tier (`standard` or `enterprise`) of Linode LKE Versions to fetch.
     */
    tier?: pulumi.Input<string>;
}
export interface GetNbTypesFilter {
    /**
     * The type of comparison to use for this filter.
     */
    matchBy?: string;
    /**
     * The name of the attribute to filter on.
     */
    name: string;
    /**
     * The value(s) to be used in the filter.
     */
    values: string[];
}
export interface GetNbTypesFilterArgs {
    /**
     * The type of comparison to use for this filter.
     */
    matchBy?: pulumi.Input<string>;
    /**
     * The name of the attribute to filter on.
     */
    name: pulumi.Input<string>;
    /**
     * The value(s) to be used in the filter.
     */
    values: pulumi.Input<pulumi.Input<string>[]>;
}
export interface GetNbTypesType {
    /**
     * The unique ID assigned to this Node Balancer Type.
     */
    id: string;
    /**
     * The Node Balancer Type's label.
     */
    label?: string;
    /**
     * Cost in US dollars, broken down into hourly and monthly charges.
     */
    prices?: inputs.GetNbTypesTypePrice[];
    /**
     * A list of region-specific prices for this Node Balancer Type.
     */
    regionPrices?: inputs.GetNbTypesTypeRegionPrice[];
    /**
     * The monthly outbound transfer amount, in MB.
     */
    transfer?: number;
}
export interface GetNbTypesTypeArgs {
    /**
     * The unique ID assigned to this Node Balancer Type.
     */
    id: pulumi.Input<string>;
    /**
     * The Node Balancer Type's label.
     */
    label?: pulumi.Input<string>;
    /**
     * Cost in US dollars, broken down into hourly and monthly charges.
     */
    prices?: pulumi.Input<pulumi.Input<inputs.GetNbTypesTypePriceArgs>[]>;
    /**
     * A list of region-specific prices for this Node Balancer Type.
     */
    regionPrices?: pulumi.Input<pulumi.Input<inputs.GetNbTypesTypeRegionPriceArgs>[]>;
    /**
     * The monthly outbound transfer amount, in MB.
     */
    transfer?: pulumi.Input<number>;
}
export interface GetNbTypesTypePrice {
    hourly: number;
    monthly: number;
}
export interface GetNbTypesTypePriceArgs {
    hourly: pulumi.Input<number>;
    monthly: pulumi.Input<number>;
}
export interface GetNbTypesTypeRegionPrice {
    hourly: number;
    id: string;
    monthly: number;
}
export interface GetNbTypesTypeRegionPriceArgs {
    hourly: pulumi.Input<number>;
    id: pulumi.Input<string>;
    monthly: pulumi.Input<number>;
}
export interface GetNetworkTransferPricesFilter {
    /**
     * The method to match the field by. (`exact`, `regex`, `substring`; default `exact`)
     */
    matchBy?: string;
    /**
     * The name of the field to filter by. See the Filterable Fields section for a complete list of filterable fields.
     */
    name: string;
    /**
     * A list of values for the filter to allow. These values should all be in string form.
     */
    values: string[];
}
export interface GetNetworkTransferPricesFilterArgs {
    /**
     * The method to match the field by. (`exact`, `regex`, `substring`; default `exact`)
     */
    matchBy?: pulumi.Input<string>;
    /**
     * The name of the field to filter by. See the Filterable Fields section for a complete list of filterable fields.
     */
    name: pulumi.Input<string>;
    /**
     * A list of values for the filter to allow. These values should all be in string form.
     */
    values: pulumi.Input<pulumi.Input<string>[]>;
}
export interface GetNetworkTransferPricesType {
    /**
     * The ID representing the Network Transfer Price.
     */
    id: string;
    /**
     * The Network Transfer Price label is for display purposes only.
     */
    label?: string;
    /**
     * Cost in US dollars, broken down into hourly and monthly charges.
     */
    prices?: inputs.GetNetworkTransferPricesTypePrice[];
    /**
     * A list of region-specific prices for this Network Transfer Price.
     */
    regionPrices?: inputs.GetNetworkTransferPricesTypeRegionPrice[];
    /**
     * The monthly outbound transfer amount, in MB.
     */
    transfer?: number;
}
export interface GetNetworkTransferPricesTypeArgs {
    /**
     * The ID representing the Network Transfer Price.
     */
    id: pulumi.Input<string>;
    /**
     * The Network Transfer Price label is for display purposes only.
     */
    label?: pulumi.Input<string>;
    /**
     * Cost in US dollars, broken down into hourly and monthly charges.
     */
    prices?: pulumi.Input<pulumi.Input<inputs.GetNetworkTransferPricesTypePriceArgs>[]>;
    /**
     * A list of region-specific prices for this Network Transfer Price.
     */
    regionPrices?: pulumi.Input<pulumi.Input<inputs.GetNetworkTransferPricesTypeRegionPriceArgs>[]>;
    /**
     * The monthly outbound transfer amount, in MB.
     */
    transfer?: pulumi.Input<number>;
}
export interface GetNetworkTransferPricesTypePrice {
    /**
     * Cost (in US dollars) per hour.
     */
    hourly: number;
    /**
     * Cost (in US dollars) per month.
     */
    monthly: number;
}
export interface GetNetworkTransferPricesTypePriceArgs {
    /**
     * Cost (in US dollars) per hour.
     */
    hourly: pulumi.Input<number>;
    /**
     * Cost (in US dollars) per month.
     */
    monthly: pulumi.Input<number>;
}
export interface GetNetworkTransferPricesTypeRegionPrice {
    hourly: number;
    /**
     * The ID representing the Network Transfer Price.
     */
    id: string;
    monthly: number;
}
export interface GetNetworkTransferPricesTypeRegionPriceArgs {
    hourly: pulumi.Input<number>;
    /**
     * The ID representing the Network Transfer Price.
     */
    id: pulumi.Input<string>;
    monthly: pulumi.Input<number>;
}
export interface GetNetworkingIpsFilter {
    /**
     * The method to match the field by. (`exact`, `regex`, `substring`; default `exact`)
     */
    matchBy?: string;
    /**
     * The name of the field to filter by. See the Filterable Fields section for a complete list of filterable fields.
     */
    name: string;
    /**
     * A list of values for the filter to allow. These values should all be in string form.
     */
    values: string[];
}
export interface GetNetworkingIpsFilterArgs {
    /**
     * The method to match the field by. (`exact`, `regex`, `substring`; default `exact`)
     */
    matchBy?: pulumi.Input<string>;
    /**
     * The name of the field to filter by. See the Filterable Fields section for a complete list of filterable fields.
     */
    name: pulumi.Input<string>;
    /**
     * A list of values for the filter to allow. These values should all be in string form.
     */
    values: pulumi.Input<pulumi.Input<string>[]>;
}
export interface GetNetworkingIpsIpAddress {
    /**
     * The IPv4 address that is configured as a 1:1 NAT for this VPC interface.
     */
    address?: string;
    /**
     * The default gateway for this address.
     */
    gateway?: string;
    /**
     * The ID of the Linode this address currently belongs to.
     */
    linodeId?: number;
    /**
     * The number of bits set in the subnet mask.
     */
    prefix?: number;
    /**
     * Whether this is a public or private IP address.
     */
    public?: 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?: string;
    /**
     * The Region this IP address resides in. See all regions [here](https://api.linode.com/v4/regions).
     */
    region?: string;
    /**
     * Whether this IP address is a reserved IP.
     */
    reserved?: boolean;
    /**
     * The mask that separates host bits from network bits for this address.
     */
    subnetMask?: string;
    /**
     * The type of address this is (ipv4, ipv6, ipv6/pool, ipv6/range).
     */
    type?: string;
    /**
     * Contains information about the NAT 1:1 mapping of a public IP address to a VPC subnet.
     */
    vpcNat11?: inputs.GetNetworkingIpsIpAddressVpcNat11;
}
export interface GetNetworkingIpsIpAddressArgs {
    /**
     * 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 this address currently belongs to.
     */
    linodeId?: pulumi.Input<number>;
    /**
     * The number of bits set in the subnet mask.
     */
    prefix?: pulumi.Input<number>;
    /**
     * Whether this is a public or private IP address.
     */
    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 this IP address resides in. See all regions [here](https://api.linode.com/v4/regions).
     */
    region?: pulumi.Input<string>;
    /**
     * Whether this IP address is a reserved IP.
     */
    reserved?: pulumi.Input<boolean>;
    /**
     * The mask that separates host bits from network bits for this address.
     */
    subnetMask?: pulumi.Input<string>;
    /**
     * The type of address this is (ipv4, ipv6, ipv6/pool, ipv6/range).
     */
    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.GetNetworkingIpsIpAddressVpcNat11Args>;
}
export interface GetNetworkingIpsIpAddressVpcNat11 {
    /**
     * The IPv4 address that is configured as a 1:1 NAT for this VPC interface.
     */
    address: string;
    /**
     * The `id` of the VPC Subnet for this Interface.
     */
    subnetId: number;
    /**
     * The `id` of the VPC configured for this Interface.
     */
    vpcId: number;
}
export interface GetNetworkingIpsIpAddressVpcNat11Args {
    /**
     * The IPv4 address that is configured as a 1:1 NAT for this VPC interface.
     */
    address: pulumi.Input<string>;
    /**
     * The `id` of the VPC Subnet for this Interface.
     */
    subnetId: pulumi.Input<number>;
    /**
     * The `id` of the VPC configured for this Interface.
     */
    vpcId: pulumi.Input<number>;
}
export interface GetNodeBalancerFirewall {
    /**
     * When this firewall was created.
     */
    created?: string;
    /**
     * The NodeBalancer's ID.
     */
    id?: number;
    /**
     * The default behavior for inbound traffic. (`ACCEPT`, `DROP`)
     */
    inboundPolicy?: string;
    /**
     * A set of firewall rules that specify what inbound network traffic is allowed.
     */
    inbounds?: inputs.GetNodeBalancerFirewallInbound[];
    /**
     * Used to identify this rule. For display purposes only.
     */
    label?: string;
    /**
     * The default behavior for outbound traffic. (`ACCEPT`, `DROP`)
     */
    outboundPolicy?: string;
    /**
     * A set of firewall rules that specify what outbound network traffic is allowed.
     */
    outbounds?: inputs.GetNodeBalancerFirewallOutbound[];
    /**
     * The status of the firewall. (`enabled`, `disabled`, `deleted`)
     */
    status?: string;
    /**
     * The tags applied to the firewall. Tags are case-insensitive and are for organizational purposes only.
     */
    tags?: string[];
    /**
     * When this firewall was last updated.
     */
    updated?: string;
}
export interface GetNodeBalancerFirewallArgs {
    /**
     * When this firewall was created.
     */
    created?: pulumi.Input<string>;
    /**
     * The NodeBalancer's ID.
     */
    id?: pulumi.Input<number>;
    /**
     * The default behavior for inbound traffic. (`ACCEPT`, `DROP`)
     */
    inboundPolicy?: pulumi.Input<string>;
    /**
     * A set of firewall rules that specify what inbound network traffic is allowed.
     */
    inbounds?: pulumi.Input<pulumi.Input<inputs.GetNodeBalancerFirewallInboundArgs>[]>;
    /**
     * Used to identify this rule. For display purposes only.
     */
    label?: pulumi.Input<string>;
    /**
     * The default behavior for outbound traffic. (`ACCEPT`, `DROP`)
     */
    outboundPolicy?: pulumi.Input<string>;
    /**
     * A set of firewall rules that specify what outbound network traffic is allowed.
     */
    outbounds?: pulumi.Input<pulumi.Input<inputs.GetNodeBalancerFirewallOutboundArgs>[]>;
    /**
     * The status of the firewall. (`enabled`, `disabled`, `deleted`)
     */
    status?: pulumi.Input<string>;
    /**
     * The tags applied to the firewall. Tags are case-insensitive and are for organizational purposes only.
     */
    tags?: pulumi.Input<pulumi.Input<string>[]>;
    /**
     * When this firewall was last updated.
     */
    updated?: pulumi.Input<string>;
}
export interface GetNodeBalancerFirewallInbound {
    /**
     * Controls whether traffic is accepted or dropped by this rule. Overrides the Firewall’s inboundPolicy if this is an inbound rule, or the outboundPolicy if this is an outbound rule.
     */
    action?: string;
    /**
     * A list of IPv4 addresses or networks. Must be in IP/mask format.
     */
    ipv4s?: string[];
    /**
     * A list of IPv6 addresses or networks. Must be in IP/mask format.
     */
    ipv6s?: string[];
    /**
     * Used to identify this rule. For display purposes only.
     */
    label?: string;
    /**
     * A string representation of ports and/or port ranges (i.e. "443" or "80-90, 91").
     */
    ports?: string;
    /**
     * The network protocol this rule controls. (`TCP`, `UDP`, `ICMP`)
     */
    protocol?: string;
}
export interface GetNodeBalancerFirewallInboundArgs {
    /**
     * Controls whether traffic is accepted or dropped by this rule. Overrides the Firewall’s inboundPolicy if this is an inbound rule, or the outboundPolicy if this is an outbound rule.
     */
    action?: pulumi.Input<string>;
    /**
     * A list of IPv4 addresses or networks. Must be in IP/mask format.
     */
    ipv4s?: pulumi.Input<pulumi.Input<string>[]>;
    /**
     * A list of IPv6 addresses or networks. Must be in IP/mask format.
     */
    ipv6s?: pulumi.Input<pulumi.Input<string>[]>;
    /**
     * Used to identify this rule. For display purposes only.
     */
    label?: pulumi.Input<string>;
    /**
     * A string representation of ports and/or port ranges (i.e. "443" or "80-90, 91").
     */
    ports?: pulumi.Input<string>;
    /**
     * The network protocol this rule controls. (`TCP`, `UDP`, `ICMP`)
     */
    protocol?: pulumi.Input<string>;
}
export interface GetNodeBalancerFirewallOutbound {
    /**
     * Controls whether traffic is accepted or dropped by this rule. Overrides the Firewall’s inboundPolicy if this is an inbound rule, or the outboundPolicy if this is an outbound rule.
     */
    action?: string;
    /**
     * A list of IPv4 addresses or networks. Must be in IP/mask format.
     */
    ipv4s?: string[];
    /**
     * A list of IPv6 addresses or networks. Must be in IP/mask format.
     */
    ipv6s?: string[];
    /**
     * Used to identify this rule. For display purposes only.
     */
    label?: string;
    /**
     * A string representation of ports and/or port ranges (i.e. "443" or "80-90, 91").
     */
    ports?: string;
    /**
     * The network protocol this rule controls. (`TCP`, `UDP`, `ICMP`)
     */
    protocol?: string;
}
export interface GetNodeBalancerFirewallOutboundArgs {
    /**
     * Controls whether traffic is accepted or dropped by this rule. Overrides the Firewall’s inboundPolicy if this is an inbound rule, or the outboundPolicy if this is an outbound rule.
     */
    action?: pulumi.Input<string>;
    /**
     * A list of IPv4 addresses or networks. Must be in IP/mask format.
     */
    ipv4s?: pulumi.Input<pulumi.Input<string>[]>;
    /**
     * A list of IPv6 addresses or networks. Must be in IP/mask format.
     */
    ipv6s?: pulumi.Input<pulumi.Input<string>[]>;
    /**
     * Used to identify this rule. For display purposes only.
     */
    label?: pulumi.Input<string>;
    /**
     * A string representation of ports and/or port ranges (i.e. "443" or "80-90, 91").
     */
    ports?: pulumi.Input<string>;
    /**
     * The network protocol this rule controls. (`TCP`, `UDP`, `ICMP`)
     */
    protocol?: pulumi.Input<string>;
}
export interface GetNodebalancerConfigsFilter {
    /**
     * The method to match the field by. (`exact`, `regex`, `substring`; default `exact`)
     */
    matchBy?: string;
    /**
     * The name of the field to filter by. See the Filterable Fields section for a complete list of filterable fields.
     */
    name: string;
    /**
     * A list of values for the filter to allow. These values should all be in string form.
     */
    values: string[];
}
export interface GetNodebalancerConfigsFilterArgs {
    /**
     * The method to match the field by. (`exact`, `regex`, `substring`; default `exact`)
     */
    matchBy?: pulumi.Input<string>;
    /**
     * The name of the field to filter by. See the Filterable Fields section for a complete list of filterable fields.
     */
    name: pulumi.Input<string>;
    /**
     * A list of values for the filter to allow. These values should all be in string form.
     */
    values: pulumi.Input<pulumi.Input<string>[]>;
}
export interface GetNodebalancerConfigsNodebalancerConfig {
    /**
     * What algorithm this NodeBalancer should use for routing traffic to backends (`roundrobin`, `leastconn`, `source`)
     */
    algorithm?: string;
    /**
     * The type of check to perform against backends to ensure they are serving requests. This is used to determine if backends are up or down. If none no check is performed. connection requires only a connection to the backend to succeed. http and httpBody rely on the backend serving HTTP, and that the response returned matches what is expected. (`none`, `connection`, `http`, `httpBody`)
     */
    check?: string;
    /**
     * How many times to attempt a check before considering a backend to be down. (1-30)
     */
    checkAttempts?: number;
    /**
     * This value must be present in the response body of the check in order for it to pass. If this value is not present in the response body of a check request, the backend is considered to be down
     */
    checkBody?: string;
    /**
     * How often, in seconds, to check that backends are up and serving requests.
     */
    checkInterval?: number;
    /**
     * If true, any response from this backend with a 5xx status code will be enough for it to be considered unhealthy and taken out of rotation.
     */
    checkPassive?: boolean;
    /**
     * The URL path to check on each backend. If the backend does not respond to this request it is considered to be down.
     */
    checkPath?: string;
    /**
     * How long, in seconds, to wait for a check attempt before considering it failed. (1-30)
     */
    checkTimeout?: number;
    /**
     * What ciphers to use for SSL connections served by this NodeBalancer. `legacy` is considered insecure and should only be used if necessary. (`recommended`, `legacy`)
     */
    cipherSuite?: string;
    /**
     * The config's ID.
     */
    id: number;
    /**
     * A structure containing information about the health of the backends for this port. This information is updated periodically as checks are performed against backends.
     */
    nodeStatuses?: inputs.GetNodebalancerConfigsNodebalancerConfigNodeStatus[];
    /**
     * The ID of the NodeBalancer to access.
     *
     * * `filter` - (Optional) A set of filters used to select Linode NodeBalancers that meet certain requirements.
     */
    nodebalancerId: number;
    /**
     * The TCP port this Config is for.
     */
    port?: number;
    /**
     * The protocol this port is configured to serve. If this is set to https you must include an sslCert and an ssl_key. (`http`, `https`, `tcp`) (Defaults to `http`)
     */
    protocol?: string;
    /**
     * The version of ProxyProtocol to use for the underlying NodeBalancer. This requires protocol to be `tcp`. (`none`, `v1`, and `v2`) (Defaults to `none`)
     */
    proxyProtocol?: string;
    /**
     * The read-only common name automatically derived from the SSL certificate assigned to this NodeBalancerConfig. Please refer to this field to verify that the appropriate certificate is assigned to your NodeBalancerConfig.
     */
    sslCommonname?: string;
    /**
     * The read-only fingerprint automatically derived from the SSL certificate assigned to this NodeBalancerConfig. Please refer to this field to verify that the appropriate certificate is assigned to your NodeBalancerConfig.
     */
    sslFingerprint?: string;
    /**
     * Controls how session stickiness is handled on this port. (`none`, `table`, `httpCookie`)
     */
    stickiness?: string;
}
export interface GetNodebalancerConfigsNodebalancerConfigArgs {
    /**
     * What algorithm this NodeBalancer should use for routing traffic to backends (`roundrobin`, `leastconn`, `source`)
     */
    algorithm?: pulumi.Input<string>;
    /**
     * The type of check to perform against backends to ensure they are serving requests. This is used to determine if backends are up or down. If none no check is performed. connection requires only a connection to the backend to succeed. http and httpBody rely on the backend serving HTTP, and that the response returned matches what is expected. (`none`, `connection`, `http`, `httpBody`)
     */
    check?: pulumi.Input<string>;
    /**
     * How many times to attempt a check before considering a backend to be down. (1-30)
     */
    checkAttempts?: pulumi.Input<number>;
    /**
     * This value must be present in the response body of the check in order for it to pass. If this value is not present in the response body of a check request, the backend is considered to be down
     */
    checkBody?: pulumi.Input<string>;
    /**
     * How often, in seconds, to check that backends are up and serving requests.
     */
    checkInterval?: pulumi.Input<number>;
    /**
     * If true, any response from this backend with a 5xx status code will be enough for it to be considered unhealthy and taken out of rotation.
     */
    checkPassive?: pulumi.Input<boolean>;
    /**
     * The URL path to check on each backend. If the backend does not respond to this request it is considered to be down.
     */
    checkPath?: pulumi.Input<string>;
    /**
     * How long, in seconds, to wait for a check attempt before considering it failed. (1-30)
     */
    checkTimeout?: pulumi.Input<number>;
    /**
     * What ciphers to use for SSL connections served by this NodeBalancer. `legacy` is considered insecure and should only be used if necessary. (`recommended`, `legacy`)
     */
    cipherSuite?: pulumi.Input<string>;
    /**
     * The config's ID.
     */
    id: pulumi.Input<number>;
    /**
     * A structure containing information about the health of the backends for this port. This information is updated periodically as checks are performed against backends.
     */
    nodeStatuses?: pulumi.Input<pulumi.Input<inputs.GetNodebalancerConfigsNodebalancerConfigNodeStatusArgs>[]>;
    /**
     * The ID of the NodeBalancer to access.
     *
     * * `filter` - (Optional) A set of filters used to select Linode NodeBalancers that meet certain requirements.
     */
    nodebalancerId: pulumi.Input<number>;
    /**
     * The TCP port this Config is for.
     */
    port?: pulumi.Input<number>;
    /**
     * The protocol this port is configured to serve. If this is set to https you must include an sslCert and an ssl_key. (`http`, `https`, `tcp`) (Defaults to `http`)
     */
    protocol?: pulumi.Input<string>;
    /**
     * The version of ProxyProtocol to use for the underlying NodeBalancer. This requires protocol to be `tcp`. (`none`, `v1`, and `v2`) (Defaults to `none`)
     */
    proxyProtocol?: pulumi.Input<string>;
    /**
     * The read-only common name automatically derived from the SSL certificate assigned to this NodeBalancerConfig. Please refer to this field to verify that the appropriate certificate is assigned to your NodeBalancerConfig.
     */
    sslCommonname?: pulumi.Input<string>;
    /**
     * The read-only fingerprint automatically derived from the SSL certificate assigned to this NodeBalancerConfig. Please refer to this field to verify that the appropriate certificate is assigned to your NodeBalancerConfig.
     */
    sslFingerprint?: pulumi.Input<string>;
    /**
     * Controls how session stickiness is handled on this port. (`none`, `table`, `httpCookie`)
     */
    stickiness?: pulumi.Input<string>;
}
export interface GetNodebalancerConfigsNodebalancerConfigNodeStatus {
    /**
     * The number of backends considered to be 'DOWN' and unhealthy. These are not in rotation, and not serving requests.
     */
    down: number;
    /**
     * The number of backends considered to be 'UP' and healthy, and that are serving requests.
     */
    up: number;
}
export interface GetNodebalancerConfigsNodebalancerConfigNodeStatusArgs {
    /**
     * The number of backends considered to be 'DOWN' and unhealthy. These are not in rotation, and not serving requests.
     */
    down: pulumi.Input<number>;
    /**
     * The number of backends considered to be 'UP' and healthy, and that are serving requests.
     */
    up: pulumi.Input<number>;
}
export interface GetNodebalancersFilter {
    /**
     * The method to match the field by. (`exact`, `regex`, `substring`; default `exact`)
     */
    matchBy?: string;
    /**
     * The name of the field to filter by. See the Filterable Fields section for a complete list of filterable fields.
     */
    name: string;
    /**
     * A list of values for the filter to allow. These values should all be in string form.
     */
    values: string[];
}
export interface GetNodebalancersFilterArgs {
    /**
     * The method to match the field by. (`exact`, `regex`, `substring`; default `exact`)
     */
    matchBy?: pulumi.Input<string>;
    /**
     * The name of the field to filter by. See the Filterable Fields section for a complete list of filterable fields.
     */
    name: pulumi.Input<string>;
    /**
     * A list of values for the filter to allow. These values should all be in string form.
     */
    values: pulumi.Input<pulumi.Input<string>[]>;
}
export interface GetNodebalancersNodebalancer {
    /**
     * Throttle connections per second (0-20)
     */
    clientConnThrottle?: number;
    /**
     * When this Linode NodeBalancer was created
     */
    created?: string;
    /**
     * This NodeBalancer's hostname, ending with .ip.linodeusercontent.com
     */
    hostname?: string;
    /**
     * The Linode NodeBalancer's unique ID
     */
    id: number;
    /**
     * The Public IPv4 Address of this NodeBalancer
     */
    ipv4?: string;
    /**
     * The Public IPv6 Address of this NodeBalancer
     */
    ipv6?: string;
    /**
     * The label of the Linode NodeBalancer
     */
    label?: string;
    /**
     * The Region where this Linode NodeBalancer is located. NodeBalancers only support backends in the same Region.
     */
    region?: string;
    /**
     * A list of tags applied to this object. Tags are case-insensitive and are for organizational purposes only.
     */
    tags?: string[];
    /**
     * Information about the amount of transfer this NodeBalancer has had so far this month.
     */
    transfers?: inputs.GetNodebalancersNodebalancerTransfer[];
    /**
     * When this Linode NodeBalancer was last updated
     */
    updated?: string;
}
export interface GetNodebalancersNodebalancerArgs {
    /**
     * Throttle connections per second (0-20)
     */
    clientConnThrottle?: pulumi.Input<number>;
    /**
     * When this Linode NodeBalancer was created
     */
    created?: pulumi.Input<string>;
    /**
     * This NodeBalancer's hostname, ending with .ip.linodeusercontent.com
     */
    hostname?: pulumi.Input<string>;
    /**
     * The Linode NodeBalancer's unique ID
     */
    id: pulumi.Input<number>;
    /**
     * The Public IPv4 Address of this NodeBalancer
     */
    ipv4?: pulumi.Input<string>;
    /**
     * The Public IPv6 Address of this NodeBalancer
     */
    ipv6?: pulumi.Input<string>;
    /**
     * The label of the Linode NodeBalancer
     */
    label?: pulumi.Input<string>;
    /**
     * The Region where this Linode NodeBalancer is located. NodeBalancers only support backends in the same Region.
     */
    region?: pulumi.Input<string>;
    /**
     * A list of tags applied to this object. Tags are case-insensitive and are for organizational purposes only.
     */
    tags?: pulumi.Input<pulumi.Input<string>[]>;
    /**
     * Information about the amount of transfer this NodeBalancer has had so far this month.
     */
    transfers?: pulumi.Input<pulumi.Input<inputs.GetNodebalancersNodebalancerTransferArgs>[]>;
    /**
     * When this Linode NodeBalancer was last updated
     */
    updated?: pulumi.Input<string>;
}
export interface GetNodebalancersNodebalancerTransfer {
    /**
     * The total transfer, in MB, used by this NodeBalancer for the current month
     */
    in: number;
    /**
     * The total inbound transfer, in MB, used for this NodeBalancer for the current month
     */
    out: number;
    /**
     * The total outbound transfer, in MB, used for this NodeBalancer for the current month
     */
    total: number;
}
export interface GetNodebalancersNodebalancerTransferArgs {
    /**
     * The total transfer, in MB, used by this NodeBalancer for the current month
     */
    in: pulumi.Input<number>;
    /**
     * The total inbound transfer, in MB, used for this NodeBalancer for the current month
     */
    out: pulumi.Input<number>;
    /**
     * The total outbound transfer, in MB, used for this NodeBalancer for the current month
     */
    total: pulumi.Input<number>;
}
export interface GetObjectStorageEndpointsEndpoint {
    /**
     * The type of `s3Endpoint` available to the active `user`. See [Endpoint types](https://techdocs.akamai.com/cloud-computing/docs/object-storage#endpoint-type) for more information.
     */
    endpointType?: string;
    /**
     * The Akamai cloud computing region, represented by its slug value. The [list regions](https://techdocs.akamai.com/linode-api/reference/get-regions) API is available to see all regions available.
     */
    region?: string;
    /**
     * Your s3 endpoint URL, based on the `endpointType` and `region`. Output as null if you haven't assigned an endpoint for your user in this region with the specific endpoint type.
     */
    s3Endpoint?: string;
}
export interface GetObjectStorageEndpointsEndpointArgs {
    /**
     * The type of `s3Endpoint` available to the active `user`. See [Endpoint types](https://techdocs.akamai.com/cloud-computing/docs/object-storage#endpoint-type) for more information.
     */
    endpointType?: pulumi.Input<string>;
    /**
     * The Akamai cloud computing region, represented by its slug value. The [list regions](https://techdocs.akamai.com/linode-api/reference/get-regions) API is available to see all regions available.
     */
    region?: pulumi.Input<string>;
    /**
     * Your s3 endpoint URL, based on the `endpointType` and `region`. Output as null if you haven't assigned an endpoint for your user in this region with the specific endpoint type.
     */
    s3Endpoint?: pulumi.Input<string>;
}
export interface GetObjectStorageEndpointsFilter {
    /**
     * The method to match the field by. (`exact`, `regex`, `substring`; default `exact`)
     */
    matchBy?: string;
    /**
     * The name of the field to filter by. See the Filterable Fields section for a complete list of filterable fields.
     */
    name: string;
    /**
     * A list of values for the filter to allow. These values should all be in string form.
     */
    values: string[];
}
export interface GetObjectStorageEndpointsFilterArgs {
    /**
     * The method to match the field by. (`exact`, `regex`, `substring`; default `exact`)
     */
    matchBy?: pulumi.Input<string>;
    /**
     * The name of the field to filter by. See the Filterable Fields section for a complete list of filterable fields.
     */
    name: pulumi.Input<string>;
    /**
     * A list of values for the filter to allow. These values should all be in string form.
     */
    values: pulumi.Input<pulumi.Input<string>[]>;
}
export interface GetPlacementGroupMember {
    /**
     * Whether this Linode is currently compliant with the group's placement group type.
     */
    isCompliant?: boolean;
    /**
     * The ID of the Linode.
     */
    linodeId?: number;
}
export interface GetPlacementGroupMemberArgs {
    /**
     * Whether this Linode is currently compliant with the group's placement group type.
     */
    isCompliant?: pulumi.Input<boolean>;
    /**
     * The ID of the Linode.
     */
    linodeId?: pulumi.Input<number>;
}
export interface GetPlacementGroupMigrations {
    /**
     * A list of the Linodes the system is migrating into the placement group.
     */
    inbounds?: inputs.GetPlacementGroupMigrationsInbound[];
    /**
     * A list of the Linodes the system is migrating out of the placement group.
     */
    outbounds?: inputs.GetPlacementGroupMigrationsOutbound[];
}
export interface GetPlacementGroupMigrationsArgs {
    /**
     * A list of the Linodes the system is migrating into the placement group.
     */
    inbounds?: pulumi.Input<pulumi.Input<inputs.GetPlacementGroupMigrationsInboundArgs>[]>;
    /**
     * A list of the Linodes the system is migrating out of the placement group.
     */
    outbounds?: pulumi.Input<pulumi.Input<inputs.GetPlacementGroupMigrationsOutboundArgs>[]>;
}
export interface GetPlacementGroupMigrationsInbound {
    /**
     * The ID of the Linode.
     */
    linodeId: number;
}
export interface GetPlacementGroupMigrationsInboundArgs {
    /**
     * The ID of the Linode.
     */
    linodeId: pulumi.Input<number>;
}
export interface GetPlacementGroupMigrationsOutbound {
    /**
     * The ID of the Linode.
     */
    linodeId: number;
}
export interface GetPlacementGroupMigrationsOutboundArgs {
    /**
     * The ID of the Linode.
     */
    linodeId: pulumi.Input<number>;
}
export interface GetPlacementGroupsFilter {
    /**
     * The method to match the field by. (`exact`, `regex`, `substring`; default `exact`)
     */
    matchBy?: string;
    /**
     * The name of the field to filter by. See the Filterable Fields section for a complete list of filterable fields.
     */
    name: string;
    /**
     * A list of values for the filter to allow. These values should all be in string form.
     */
    values: string[];
}
export interface GetPlacementGroupsFilterArgs {
    /**
     * The method to match the field by. (`exact`, `regex`, `substring`; default `exact`)
     */
    matchBy?: pulumi.Input<string>;
    /**
     * The name of the field to filter by. See the Filterable Fields section for a complete list of filterable fields.
     */
    name: pulumi.Input<string>;
    /**
     * A list of values for the filter to allow. These values should all be in string form.
     */
    values: pulumi.Input<pulumi.Input<string>[]>;
}
export interface GetPlacementGroupsPlacementGroup {
    /**
     * The ID of the placement group.
     */
    id: number;
    /**
     * Whether this Linode is currently compliant with the group's placement group type.
     */
    isCompliant?: boolean;
    /**
     * The label of the Placement Group. This field can only contain ASCII letters, digits and dashes.
     */
    label?: string;
    /**
     * A set of Linodes currently assigned to this Placement Group.
     */
    members?: inputs.GetPlacementGroupsPlacementGroupMember[];
    /**
     * Any Linodes that are being migrated to or from the placement group.
     */
    migrations?: inputs.GetPlacementGroupsPlacementGroupMigrations;
    /**
     * Whether Linodes must be able to become compliant during assignment. (Default `strict`)
     */
    placementGroupPolicy?: string;
    /**
     * The placement group type to use when placing Linodes in this group.
     */
    placementGroupType?: string;
    /**
     * The region of the Placement Group.
     */
    region?: string;
}
export interface GetPlacementGroupsPlacementGroupArgs {
    /**
     * The ID of the placement group.
     */
    id: pulumi.Input<number>;
    /**
     * Whether this Linode is currently compliant with the group's placement group type.
     */
    isCompliant?: pulumi.Input<boolean>;
    /**
     * The label of the Placement Group. This field can only contain ASCII letters, digits and dashes.
     */
    label?: pulumi.Input<string>;
    /**
     * A set of Linodes currently assigned to this Placement Group.
     */
    members?: pulumi.Input<pulumi.Input<inputs.GetPlacementGroupsPlacementGroupMemberArgs>[]>;
    /**
     * Any Linodes that are being migrated to or from the placement group.
     */
    migrations?: pulumi.Input<inputs.GetPlacementGroupsPlacementGroupMigrationsArgs>;
    /**
     * Whether Linodes must be able to become compliant during assignment. (Default `strict`)
     */
    placementGroupPolicy?: pulumi.Input<string>;
    /**
     * The placement group type to use when placing Linodes in this group.
     */
    placementGroupType?: pulumi.Input<string>;
    /**
     * The region of the Placement Group.
     */
    region?: pulumi.Input<string>;
}
export interface GetPlacementGroupsPlacementGroupMember {
    /**
     * Whether this Linode is currently compliant with the group's placement group type.
     */
    isCompliant?: boolean;
    /**
     * The unique identifier for the Linode being migrated out of the placement group.
     */
    linodeId?: number;
}
export interface GetPlacementGroupsPlacementGroupMemberArgs {
    /**
     * Whether this Linode is currently compliant with the group's placement group type.
     */
    isCompliant?: pulumi.Input<boolean>;
    /**
     * The unique identifier for the Linode being migrated out of the placement group.
     */
    linodeId?: pulumi.Input<number>;
}
export interface GetPlacementGroupsPlacementGroupMigrations {
    /**
     * A list of the Linodes the system is migrating into the placement group.
     */
    inbounds?: inputs.GetPlacementGroupsPlacementGroupMigrationsInbound[];
    /**
     * A list of the Linodes the system is migrating out of the placement group.
     */
    outbounds?: inputs.GetPlacementGroupsPlacementGroupMigrationsOutbound[];
}
export interface GetPlacementGroupsPlacementGroupMigrationsArgs {
    /**
     * A list of the Linodes the system is migrating into the placement group.
     */
    inbounds?: pulumi.Input<pulumi.Input<inputs.GetPlacementGroupsPlacementGroupMigrationsInboundArgs>[]>;
    /**
     * A list of the Linodes the system is migrating out of the placement group.
     */
    outbounds?: pulumi.Input<pulumi.Input<inputs.GetPlacementGroupsPlacementGroupMigrationsOutboundArgs>[]>;
}
export interface GetPlacementGroupsPlacementGroupMigrationsInbound {
    /**
     * The unique identifier for the Linode being migrated out of the placement group.
     */
    linodeId: number;
}
export interface GetPlacementGroupsPlacementGroupMigrationsInboundArgs {
    /**
     * The unique identifier for the Linode being migrated out of the placement group.
     */
    linodeId: pulumi.Input<number>;
}
export interface GetPlacementGroupsPlacementGroupMigrationsOutbound {
    /**
     * The unique identifier for the Linode being migrated out of the placement group.
     */
    linodeId: number;
}
export interface GetPlacementGroupsPlacementGroupMigrationsOutboundArgs {
    /**
     * The unique identifier for the Linode being migrated out of the placement group.
     */
    linodeId: pulumi.Input<number>;
}
export interface GetRegionResolver {
    /**
     * The IPv4 addresses for this region’s DNS resolvers, separated by commas.
     */
    ipv4?: string;
    /**
     * The IPv6 addresses for this region’s DNS resolvers, separated by commas.
     */
    ipv6?: string;
}
export interface GetRegionResolverArgs {
    /**
     * The IPv4 addresses for this region’s DNS resolvers, separated by commas.
     */
    ipv4?: pulumi.Input<string>;
    /**
     * The IPv6 addresses for this region’s DNS resolvers, separated by commas.
     */
    ipv6?: pulumi.Input<string>;
}
export interface GetRegionsFilter {
    /**
     * The method to match the field by. (`exact`, `regex`, `substring`; default `exact`)
     */
    matchBy?: string;
    /**
     * The name of the field to filter by. See the Filterable Fields section for a complete list of filterable fields.
     */
    name: string;
    /**
     * A list of values for the filter to allow. These values should all be in string form.
     */
    values: string[];
}
export interface GetRegionsFilterArgs {
    /**
     * The method to match the field by. (`exact`, `regex`, `substring`; default `exact`)
     */
    matchBy?: pulumi.Input<string>;
    /**
     * The name of the field to filter by. See the Filterable Fields section for a complete list of filterable fields.
     */
    name: pulumi.Input<string>;
    /**
     * A list of values for the filter to allow. These values should all be in string form.
     */
    values: pulumi.Input<pulumi.Input<string>[]>;
}
export interface GetRegionsRegion {
    /**
     * A list of capabilities of this region.
     */
    capabilities?: string[];
    /**
     * The country the region resides in.
     */
    country?: string;
    /**
     * The unique ID of this Region.
     */
    id: string;
    /**
     * Detailed location information for this Region, including city, state or region, and country.
     */
    label?: string;
    /**
     * Information about placement groups limits for this region.
     */
    placementGroupLimits?: inputs.GetRegionsRegionPlacementGroupLimit[];
    resolvers?: inputs.GetRegionsRegionResolver[];
    /**
     * The type of this region.
     */
    siteType?: string;
    /**
     * This region’s current operational status (ok or outage).
     */
    status?: string;
}
export interface GetRegionsRegionArgs {
    /**
     * A list of capabilities of this region.
     */
    capabilities?: pulumi.Input<pulumi.Input<string>[]>;
    /**
     * The country the region resides in.
     */
    country?: pulumi.Input<string>;
    /**
     * The unique ID of this Region.
     */
    id: pulumi.Input<string>;
    /**
     * Detailed location information for this Region, including city, state or region, and country.
     */
    label?: pulumi.Input<string>;
    /**
     * Information about placement groups limits for this region.
     */
    placementGroupLimits?: pulumi.Input<pulumi.Input<inputs.GetRegionsRegionPlacementGroupLimitArgs>[]>;
    resolvers?: pulumi.Input<pulumi.Input<inputs.GetRegionsRegionResolverArgs>[]>;
    /**
     * The type of this region.
     */
    siteType?: pulumi.Input<string>;
    /**
     * This region’s current operational status (ok or outage).
     */
    status?: pulumi.Input<string>;
}
export interface GetRegionsRegionPlacementGroupLimit {
    /**
     * The maximum number of Linodes allowed to be assigned to a placement group in this region.
     */
    maximumLinodesPerPg: number;
    /**
     * The maximum number of placement groups allowed for the current user in this region.
     */
    maximumPgsPerCustomer: number;
}
export interface GetRegionsRegionPlacementGroupLimitArgs {
    /**
     * The maximum number of Linodes allowed to be assigned to a placement group in this region.
     */
    maximumLinodesPerPg: pulumi.Input<number>;
    /**
     * The maximum number of placement groups allowed for the current user in this region.
     */
    maximumPgsPerCustomer: pulumi.Input<number>;
}
export interface GetRegionsRegionResolver {
    /**
     * The IPv4 addresses for this region’s DNS resolvers, separated by commas.
     */
    ipv4?: string;
    /**
     * The IPv6 addresses for this region’s DNS resolvers, separated by commas.
     */
    ipv6?: string;
}
export interface GetRegionsRegionResolverArgs {
    /**
     * The IPv4 addresses for this region’s DNS resolvers, separated by commas.
     */
    ipv4?: pulumi.Input<string>;
    /**
     * The IPv6 addresses for this region’s DNS resolvers, separated by commas.
     */
    ipv6?: pulumi.Input<string>;
}
export interface GetSshkeysFilter {
    /**
     * The method to match the field by. (`exact`, `regex`, `substring`; default `exact`)
     */
    matchBy?: string;
    /**
     * The name of the field to filter by. See the Filterable Fields section for a complete list of filterable fields.
     */
    name: string;
    /**
     * A list of values for the filter to allow. These values should all be in string form.
     */
    values: string[];
}
export interface GetSshkeysFilterArgs {
    /**
     * The method to match the field by. (`exact`, `regex`, `substring`; default `exact`)
     */
    matchBy?: pulumi.Input<string>;
    /**
     * The name of the field to filter by. See the Filterable Fields section for a complete list of filterable fields.
     */
    name: pulumi.Input<string>;
    /**
     * A list of values for the filter to allow. These values should all be in string form.
     */
    values: pulumi.Input<pulumi.Input<string>[]>;
}
export interface GetSshkeysSshkey {
    /**
     * The date this key was added.
     */
    created?: string;
    /**
     * The ID of the SSH Key.
     */
    id?: string;
    /**
     * The label of the SSH Key.
     */
    label: string;
    /**
     * The public SSH Key, which is used to authenticate to the root user of the Linodes you deploy.
     */
    sshKey?: string;
}
export interface GetSshkeysSshkeyArgs {
    /**
     * The date this key was added.
     */
    created?: pulumi.Input<string>;
    /**
     * The ID of the SSH Key.
     */
    id?: pulumi.Input<string>;
    /**
     * The label of the SSH Key.
     */
    label: pulumi.Input<string>;
    /**
     * The public SSH Key, which is used to authenticate to the root user of the Linodes you deploy.
     */
    sshKey?: pulumi.Input<string>;
}
export interface GetStackScriptsFilter {
    /**
     * The method to match the field by. (`exact`, `regex`, `substring`; default `exact`)
     */
    matchBy?: string;
    /**
     * The name of the field to filter by. See the Filterable Fields section for a complete list of filterable fields.
     */
    name: string;
    /**
     * A list of values for the filter to allow. These values should all be in string form.
     */
    values: string[];
}
export interface GetStackScriptsFilterArgs {
    /**
     * The method to match the field by. (`exact`, `regex`, `substring`; default `exact`)
     */
    matchBy?: pulumi.Input<string>;
    /**
     * The name of the field to filter by. See the Filterable Fields section for a complete list of filterable fields.
     */
    name: pulumi.Input<string>;
    /**
     * A list of values for the filter to allow. These values should all be in string form.
     */
    values: pulumi.Input<pulumi.Input<string>[]>;
}
export interface GetStackScriptsStackscript {
    /**
     * The date this StackScript was created.
     */
    created?: string;
    /**
     * Count of currently active, deployed Linodes created from this StackScript.
     */
    deploymentsActive?: number;
    /**
     * The total number of times this StackScript has been deployed.
     */
    deploymentsTotal?: number;
    /**
     * A description for the StackScript.
     */
    description?: string;
    /**
     * The unique ID of the StackScript.
     */
    id: string;
    /**
     * An array of Image IDs representing the Images that this StackScript is compatible for deploying with.
     */
    images?: string[];
    /**
     * This determines whether other users can use your StackScript. Once a StackScript is made public, it cannot be made private.
     */
    isPublic?: boolean;
    /**
     * A human-readable label for the field that will serve as the input prompt for entering the value during deployment.
     */
    label?: string;
    /**
     * This field allows you to add notes for the set of revisions made to this StackScript.
     */
    revNote?: string;
    /**
     * The script to execute when provisioning a new Linode with this StackScript.
     */
    script?: string;
    /**
     * The date this StackScript was updated.
     */
    updated?: string;
    /**
     * This is a list of fields defined with a special syntax inside this StackScript that allow for supplying customized parameters during deployment.
     */
    userDefinedFields?: inputs.GetStackScriptsStackscriptUserDefinedField[];
    /**
     * The Gravatar ID for the User who created the StackScript.
     */
    userGravatarId?: string;
    /**
     * The User who created the StackScript.
     */
    username?: string;
}
export interface GetStackScriptsStackscriptArgs {
    /**
     * The date this StackScript was created.
     */
    created?: pulumi.Input<string>;
    /**
     * Count of currently active, deployed Linodes created from this StackScript.
     */
    deploymentsActive?: pulumi.Input<number>;
    /**
     * The total number of times this StackScript has been deployed.
     */
    deploymentsTotal?: pulumi.Input<number>;
    /**
     * A description for the StackScript.
     */
    description?: pulumi.Input<string>;
    /**
     * The unique ID of the StackScript.
     */
    id: pulumi.Input<string>;
    /**
     * An array of Image IDs representing the Images that this StackScript is compatible for deploying with.
     */
    images?: pulumi.Input<pulumi.Input<string>[]>;
    /**
     * This determines whether other users can use your StackScript. Once a StackScript is made public, it cannot be made private.
     */
    isPublic?: pulumi.Input<boolean>;
    /**
     * A human-readable label for the field that will serve as the input prompt for entering the value during deployment.
     */
    label?: pulumi.Input<string>;
    /**
     * This field allows you to add notes for the set of revisions made to this StackScript.
     */
    revNote?: pulumi.Input<string>;
    /**
     * The script to execute when provisioning a new Linode with this StackScript.
     */
    script?: pulumi.Input<string>;
    /**
     * The date this StackScript was updated.
     */
    updated?: pulumi.Input<string>;
    /**
     * This is a list of fields defined with a special syntax inside this StackScript that allow for supplying customized parameters during deployment.
     */
    userDefinedFields?: pulumi.Input<pulumi.Input<inputs.GetStackScriptsStackscriptUserDefinedFieldArgs>[]>;
    /**
     * The Gravatar ID for the User who created the StackScript.
     */
    userGravatarId?: pulumi.Input<string>;
    /**
     * The User who created the StackScript.
     */
    username?: pulumi.Input<string>;
}
export interface GetStackScriptsStackscriptUserDefinedField {
    /**
     * The default value. If not specified, this value will be used.
     */
    default: string;
    /**
     * An example value for the field.
     */
    example: string;
    /**
     * A human-readable label for the field that will serve as the input prompt for entering the value during deployment.
     */
    label: string;
    /**
     * A list of acceptable values for the field in any quantity, combination or order.
     */
    manyOf: string;
    /**
     * The name of the field.
     */
    name: string;
    /**
     * A list of acceptable single values for the field.
     */
    oneOf: string;
}
export interface GetStackScriptsStackscriptUserDefinedFieldArgs {
    /**
     * The default value. If not specified, this value will be used.
     */
    default: pulumi.Input<string>;
    /**
     * An example value for the field.
     */
    example: pulumi.Input<string>;
    /**
     * A human-readable label for the field that will serve as the input prompt for entering the value during deployment.
     */
    label: pulumi.Input<string>;
    /**
     * A list of acceptable values for the field in any quantity, combination or order.
     */
    manyOf: pulumi.Input<string>;
    /**
     * The name of the field.
     */
    name: pulumi.Input<string>;
    /**
     * A list of acceptable single values for the field.
     */
    oneOf: pulumi.Input<string>;
}
export interface GetUserDatabaseGrant {
    /**
     * The ID of entity this grant applies to.
     */
    id: number;
    /**
     * The current label of the entity this grant applies to, for display purposes.
     */
    label: string;
    /**
     * The level of access this User has to this entity. If null, this User has no access. (`readOnly`, `readWrite`)
     */
    permissions: string;
}
export interface GetUserDatabaseGrantArgs {
    /**
     * The ID of entity this grant applies to.
     */
    id: pulumi.Input<number>;
    /**
     * The current label of the entity this grant applies to, for display purposes.
     */
    label: pulumi.Input<string>;
    /**
     * The level of access this User has to this entity. If null, this User has no access. (`readOnly`, `readWrite`)
     */
    permissions: pulumi.Input<string>;
}
export interface GetUserDomainGrant {
    /**
     * The ID of entity this grant applies to.
     */
    id: number;
    /**
     * The current label of the entity this grant applies to, for display purposes.
     */
    label: string;
    /**
     * The level of access this User has to this entity. If null, this User has no access. (`readOnly`, `readWrite`)
     */
    permissions: string;
}
export interface GetUserDomainGrantArgs {
    /**
     * The ID of entity this grant applies to.
     */
    id: pulumi.Input<number>;
    /**
     * The current label of the entity this grant applies to, for display purposes.
     */
    label: pulumi.Input<string>;
    /**
     * The level of access this User has to this entity. If null, this User has no access. (`readOnly`, `readWrite`)
     */
    permissions: pulumi.Input<string>;
}
export interface GetUserFirewallGrant {
    /**
     * The ID of entity this grant applies to.
     */
    id: number;
    /**
     * The current label of the entity this grant applies to, for display purposes.
     */
    label: string;
    /**
     * The level of access this User has to this entity. If null, this User has no access. (`readOnly`, `readWrite`)
     */
    permissions: string;
}
export interface GetUserFirewallGrantArgs {
    /**
     * The ID of entity this grant applies to.
     */
    id: pulumi.Input<number>;
    /**
     * The current label of the entity this grant applies to, for display purposes.
     */
    label: pulumi.Input<string>;
    /**
     * The level of access this User has to this entity. If null, this User has no access. (`readOnly`, `readWrite`)
     */
    permissions: pulumi.Input<string>;
}
export interface GetUserImageGrant {
    /**
     * The ID of entity this grant applies to.
     */
    id: number;
    /**
     * The current label of the entity this grant applies to, for display purposes.
     */
    label: string;
    /**
     * The level of access this User has to this entity. If null, this User has no access. (`readOnly`, `readWrite`)
     */
    permissions: string;
}
export interface GetUserImageGrantArgs {
    /**
     * The ID of entity this grant applies to.
     */
    id: pulumi.Input<number>;
    /**
     * The current label of the entity this grant applies to, for display purposes.
     */
    label: pulumi.Input<string>;
    /**
     * The level of access this User has to this entity. If null, this User has no access. (`readOnly`, `readWrite`)
     */
    permissions: pulumi.Input<string>;
}
export interface GetUserLinodeGrant {
    /**
     * The ID of entity this grant applies to.
     */
    id: number;
    /**
     * The current label of the entity this grant applies to, for display purposes.
     */
    label: string;
    /**
     * The level of access this User has to this entity. If null, this User has no access. (`readOnly`, `readWrite`)
     */
    permissions: string;
}
export interface GetUserLinodeGrantArgs {
    /**
     * The ID of entity this grant applies to.
     */
    id: pulumi.Input<number>;
    /**
     * The current label of the entity this grant applies to, for display purposes.
     */
    label: pulumi.Input<string>;
    /**
     * The level of access this User has to this entity. If null, this User has no access. (`readOnly`, `readWrite`)
     */
    permissions: pulumi.Input<string>;
}
export interface GetUserLongviewGrant {
    /**
     * The ID of entity this grant applies to.
     */
    id: number;
    /**
     * The current label of the entity this grant applies to, for display purposes.
     */
    label: string;
    /**
     * The level of access this User has to this entity. If null, this User has no access. (`readOnly`, `readWrite`)
     */
    permissions: string;
}
export interface GetUserLongviewGrantArgs {
    /**
     * The ID of entity this grant applies to.
     */
    id: pulumi.Input<number>;
    /**
     * The current label of the entity this grant applies to, for display purposes.
     */
    label: pulumi.Input<string>;
    /**
     * The level of access this User has to this entity. If null, this User has no access. (`readOnly`, `readWrite`)
     */
    permissions: pulumi.Input<string>;
}
export interface GetUserNodebalancerGrant {
    /**
     * The ID of entity this grant applies to.
     */
    id: number;
    /**
     * The current label of the entity this grant applies to, for display purposes.
     */
    label: string;
    /**
     * The level of access this User has to this entity. If null, this User has no access. (`readOnly`, `readWrite`)
     */
    permissions: string;
}
export interface GetUserNodebalancerGrantArgs {
    /**
     * The ID of entity this grant applies to.
     */
    id: pulumi.Input<number>;
    /**
     * The current label of the entity this grant applies to, for display purposes.
     */
    label: pulumi.Input<string>;
    /**
     * The level of access this User has to this entity. If null, this User has no access. (`readOnly`, `readWrite`)
     */
    permissions: pulumi.Input<string>;
}
export interface GetUserPlacementGroupGrant {
    /**
     * The ID of entity this grant applies to.
     */
    id: number;
    /**
     * The current label of the entity this grant applies to, for display purposes.
     */
    label: string;
    /**
     * The level of access this User has to this entity. If null, this User has no access. (`readOnly`, `readWrite`)
     */
    permissions: string;
}
export interface GetUserPlacementGroupGrantArgs {
    /**
     * The ID of entity this grant applies to.
     */
    id: pulumi.Input<number>;
    /**
     * The current label of the entity this grant applies to, for display purposes.
     */
    label: pulumi.Input<string>;
    /**
     * The level of access this User has to this entity. If null, this User has no access. (`readOnly`, `readWrite`)
     */
    permissions: pulumi.Input<string>;
}
export interface GetUserStackscriptGrant {
    /**
     * The ID of entity this grant applies to.
     */
    id: number;
    /**
     * The current label of the entity this grant applies to, for display purposes.
     */
    label: string;
    /**
     * The level of access this User has to this entity. If null, this User has no access. (`readOnly`, `readWrite`)
     */
    permissions: string;
}
export interface GetUserStackscriptGrantArgs {
    /**
     * The ID of entity this grant applies to.
     */
    id: pulumi.Input<number>;
    /**
     * The current label of the entity this grant applies to, for display purposes.
     */
    label: pulumi.Input<string>;
    /**
     * The level of access this User has to this entity. If null, this User has no access. (`readOnly`, `readWrite`)
     */
    permissions: pulumi.Input<string>;
}
export interface GetUserVolumeGrant {
    /**
     * The ID of entity this grant applies to.
     */
    id: number;
    /**
     * The current label of the entity this grant applies to, for display purposes.
     */
    label: string;
    /**
     * The level of access this User has to this entity. If null, this User has no access. (`readOnly`, `readWrite`)
     */
    permissions: string;
}
export interface GetUserVolumeGrantArgs {
    /**
     * The ID of entity this grant applies to.
     */
    id: pulumi.Input<number>;
    /**
     * The current label of the entity this grant applies to, for display purposes.
     */
    label: pulumi.Input<string>;
    /**
     * The level of access this User has to this entity. If null, this User has no access. (`readOnly`, `readWrite`)
     */
    permissions: pulumi.Input<string>;
}
export interface GetUserVpcGrant {
    /**
     * The ID of entity this grant applies to.
     */
    id: number;
    /**
     * The current label of the entity this grant applies to, for display purposes.
     */
    label: string;
    /**
     * The level of access this User has to this entity. If null, this User has no access. (`readOnly`, `readWrite`)
     */
    permissions: string;
}
export interface GetUserVpcGrantArgs {
    /**
     * The ID of entity this grant applies to.
     */
    id: pulumi.Input<number>;
    /**
     * The current label of the entity this grant applies to, for display purposes.
     */
    label: pulumi.Input<string>;
    /**
     * The level of access this User has to this entity. If null, this User has no access. (`readOnly`, `readWrite`)
     */
    permissions: pulumi.Input<string>;
}
export interface GetUsersFilter {
    /**
     * The method to match the field by. (`exact`, `regex`, `substring`; default `exact`)
     */
    matchBy?: string;
    /**
     * The name of the field to filter by. See the Filterable Fields section for a complete list of filterable fields.
     */
    name: string;
    /**
     * A list of values for the filter to allow. These values should all be in string form.
     */
    values: string[];
}
export interface GetUsersFilterArgs {
    /**
     * The method to match the field by. (`exact`, `regex`, `substring`; default `exact`)
     */
    matchBy?: pulumi.Input<string>;
    /**
     * The name of the field to filter by. See the Filterable Fields section for a complete list of filterable fields.
     */
    name: pulumi.Input<string>;
    /**
     * A list of values for the filter to allow. These values should all be in string form.
     */
    values: pulumi.Input<pulumi.Input<string>[]>;
}
export interface GetUsersUser {
    /**
     * A set containing all of the user's active grants.
     */
    databaseGrants?: inputs.GetUsersUserDatabaseGrant[];
    /**
     * A set containing all of the user's active grants.
     */
    domainGrants?: inputs.GetUsersUserDomainGrant[];
    /**
     * The email address for this User, for account management communications, and may be used for other communications as configured.
     */
    email?: string;
    /**
     * A set containing all of the user's active grants.
     */
    firewallGrants?: inputs.GetUsersUserFirewallGrant[];
    /**
     * A structure containing the Account-level grants a User has.
     */
    globalGrants?: inputs.GetUsersUserGlobalGrant[];
    /**
     * The ID of entity this grant applies to.
     */
    id?: string;
    /**
     * A set containing all of the user's active grants.
     */
    imageGrants?: inputs.GetUsersUserImageGrant[];
    /**
     * A set containing all of the user's active grants.
     */
    linodeGrants?: inputs.GetUsersUserLinodeGrant[];
    /**
     * A set containing all of the user's active grants.
     */
    longviewGrants?: inputs.GetUsersUserLongviewGrant[];
    /**
     * A set containing all of the user's active grants.
     */
    nodebalancerGrants?: inputs.GetUsersUserNodebalancerGrant[];
    /**
     * The date and time when this User’s current password was created. User passwords are first created during the Account sign-up process, and updated using the Reset Password webpage. null if this User has not created a password yet.
     */
    passwordCreated?: string;
    /**
     * A set containing all of the user's active grants.
     */
    placementGroupGrants?: inputs.GetUsersUserPlacementGroupGrant[];
    /**
     * If true, this User must be granted access to perform actions or access entities on this Account.
     */
    restricted?: boolean;
    /**
     * A list of SSH Key labels added by this User. These are the keys that will be deployed if this User is included in the authorizedUsers field of a create Linode, rebuild Linode, or create Disk request.
     */
    sshKeys?: string[];
    /**
     * A set containing all of the user's active grants.
     */
    stackscriptGrants?: inputs.GetUsersUserStackscriptGrant[];
    /**
     * A boolean value indicating if the User has Two Factor Authentication (TFA) enabled.
     */
    tfaEnabled?: boolean;
    /**
     * The type of this user.
     */
    userType?: string;
    /**
     * This User's username. This is used for logging in, and may also be displayed alongside actions the User performs (for example, in Events or public StackScripts).
     */
    username: string;
    /**
     * The phone number verified for this User Profile with the Phone Number Verify command. null if this User Profile has no verified phone number.
     */
    verifiedPhoneNumber?: string;
    /**
     * A set containing all of the user's active grants.
     */
    volumeGrants?: inputs.GetUsersUserVolumeGrant[];
    /**
     * A set containing all of the user's active grants.
     */
    vpcGrants?: inputs.GetUsersUserVpcGrant[];
}
export interface GetUsersUserArgs {
    /**
     * A set containing all of the user's active grants.
     */
    databaseGrants?: pulumi.Input<pulumi.Input<inputs.GetUsersUserDatabaseGrantArgs>[]>;
    /**
     * A set containing all of the user's active grants.
     */
    domainGrants?: pulumi.Input<pulumi.Input<inputs.GetUsersUserDomainGrantArgs>[]>;
    /**
     * The email address for this User, for account management communications, and may be used for other communications as configured.
     */
    email?: pulumi.Input<string>;
    /**
     * A set containing all of the user's active grants.
     */
    firewallGrants?: pulumi.Input<pulumi.Input<inputs.GetUsersUserFirewallGrantArgs>[]>;
    /**
     * A structure containing the Account-level grants a User has.
     */
    globalGrants?: pulumi.Input<pulumi.Input<inputs.GetUsersUserGlobalGrantArgs>[]>;
    /**
     * The ID of entity this grant applies to.
     */
    id?: pulumi.Input<string>;
    /**
     * A set containing all of the user's active grants.
     */
    imageGrants?: pulumi.Input<pulumi.Input<inputs.GetUsersUserImageGrantArgs>[]>;
    /**
     * A set containing all of the user's active grants.
     */
    linodeGrants?: pulumi.Input<pulumi.Input<inputs.GetUsersUserLinodeGrantArgs>[]>;
    /**
     * A set containing all of the user's active grants.
     */
    longviewGrants?: pulumi.Input<pulumi.Input<inputs.GetUsersUserLongviewGrantArgs>[]>;
    /**
     * A set containing all of the user's active grants.
     */
    nodebalancerGrants?: pulumi.Input<pulumi.Input<inputs.GetUsersUserNodebalancerGrantArgs>[]>;
    /**
     * The date and time when this User’s current password was created. User passwords are first created during the Account sign-up process, and updated using the Reset Password webpage. null if this User has not created a password yet.
     */
    passwordCreated?: pulumi.Input<string>;
    /**
     * A set containing all of the user's active grants.
     */
    placementGroupGrants?: pulumi.Input<pulumi.Input<inputs.GetUsersUserPlacementGroupGrantArgs>[]>;
    /**
     * If true, this User must be granted access to perform actions or access entities on this Account.
     */
    restricted?: pulumi.Input<boolean>;
    /**
     * A list of SSH Key labels added by this User. These are the keys that will be deployed if this User is included in the authorizedUsers field of a create Linode, rebuild Linode, or create Disk request.
     */
    sshKeys?: pulumi.Input<pulumi.Input<string>[]>;
    /**
     * A set containing all of the user's active grants.
     */
    stackscriptGrants?: pulumi.Input<pulumi.Input<inputs.GetUsersUserStackscriptGrantArgs>[]>;
    /**
     * A boolean value indicating if the User has Two Factor Authentication (TFA) enabled.
     */
    tfaEnabled?: pulumi.Input<boolean>;
    /**
     * The type of this user.
     */
    userType?: pulumi.Input<string>;
    /**
     * This User's username. This is used for logging in, and may also be displayed alongside actions the User performs (for example, in Events or public StackScripts).
     */
    username: pulumi.Input<string>;
    /**
     * The phone number verified for this User Profile with the Phone Number Verify command. null if this User Profile has no verified phone number.
     */
    verifiedPhoneNumber?: pulumi.Input<string>;
    /**
     * A set containing all of the user's active grants.
     */
    volumeGrants?: pulumi.Input<pulumi.Input<inputs.GetUsersUserVolumeGrantArgs>[]>;
    /**
     * A set containing all of the user's active grants.
     */
    vpcGrants?: pulumi.Input<pulumi.Input<inputs.GetUsersUserVpcGrantArgs>[]>;
}
export interface GetUsersUserDatabaseGrant {
    /**
     * The ID of entity this grant applies to.
     */
    id: number;
    /**
     * The current label of the entity this grant applies to, for display purposes.
     */
    label: string;
    /**
     * The level of access this User has to this entity. If null, this User has no access.
     */
    permissions: string;
}
export interface GetUsersUserDatabaseGrantArgs {
    /**
     * The ID of entity this grant applies to.
     */
    id: pulumi.Input<number>;
    /**
     * The current label of the entity this grant applies to, for display purposes.
     */
    label: pulumi.Input<string>;
    /**
     * The level of access this User has to this entity. If null, this User has no access.
     */
    permissions: pulumi.Input<string>;
}
export interface GetUsersUserDomainGrant {
    /**
     * The ID of entity this grant applies to.
     */
    id: number;
    /**
     * The current label of the entity this grant applies to, for display purposes.
     */
    label: string;
    /**
     * The level of access this User has to this entity. If null, this User has no access.
     */
    permissions: string;
}
export interface GetUsersUserDomainGrantArgs {
    /**
     * The ID of entity this grant applies to.
     */
    id: pulumi.Input<number>;
    /**
     * The current label of the entity this grant applies to, for display purposes.
     */
    label: pulumi.Input<string>;
    /**
     * The level of access this User has to this entity. If null, this User has no access.
     */
    permissions: pulumi.Input<string>;
}
export interface GetUsersUserFirewallGrant {
    /**
     * The ID of entity this grant applies to.
     */
    id: number;
    /**
     * The current label of the entity this grant applies to, for display purposes.
     */
    label: string;
    /**
     * The level of access this User has to this entity. If null, this User has no access.
     */
    permissions: string;
}
export interface GetUsersUserFirewallGrantArgs {
    /**
     * The ID of entity this grant applies to.
     */
    id: pulumi.Input<number>;
    /**
     * The current label of the entity this grant applies to, for display purposes.
     */
    label: pulumi.Input<string>;
    /**
     * The level of access this User has to this entity. If null, this User has no access.
     */
    permissions: pulumi.Input<string>;
}
export interface GetUsersUserGlobalGrant {
    /**
     * The level of access this User has to Account-level actions, like billing information. A restricted User will never be able to manage users. (`readOnly`, `readWrite`)
     */
    accountAccess: string;
    /**
     * If true, this User may add Managed Databases.
     */
    addDatabases: boolean;
    /**
     * If true, this User may add Domains.
     */
    addDomains: boolean;
    /**
     * If true, this User may add Firewalls.
     */
    addFirewalls: boolean;
    /**
     * If true, this User may add Images.
     */
    addImages: boolean;
    /**
     * If true, this User may create Linodes.
     */
    addLinodes: boolean;
    /**
     * If true, this User may create Longview clients and view the current plan.
     */
    addLongview: boolean;
    /**
     * If true, this User may add NodeBalancers.
     */
    addNodebalancers: boolean;
    /**
     * If true, this User may add Placement Groups.
     */
    addPlacementGroups: boolean;
    addStackscripts: boolean;
    /**
     * If true, this User may add Volumes.
     */
    addVolumes: boolean;
    /**
     * If true, this User may add Virtual Private Clouds (VPCs).
     */
    addVpcs: boolean;
    /**
     * If true, this User may cancel the entire Account.
     */
    cancelAccount: boolean;
    /**
     * If true, this User may manage the Account’s Longview subscription.
     */
    longviewSubscription: boolean;
}
export interface GetUsersUserGlobalGrantArgs {
    /**
     * The level of access this User has to Account-level actions, like billing information. A restricted User will never be able to manage users. (`readOnly`, `readWrite`)
     */
    accountAccess: pulumi.Input<string>;
    /**
     * If true, this User may add Managed Databases.
     */
    addDatabases: pulumi.Input<boolean>;
    /**
     * If true, this User may add Domains.
     */
    addDomains: pulumi.Input<boolean>;
    /**
     * If true, this User may add Firewalls.
     */
    addFirewalls: pulumi.Input<boolean>;
    /**
     * If true, this User may add Images.
     */
    addImages: pulumi.Input<boolean>;
    /**
     * If true, this User may create Linodes.
     */
    addLinodes: pulumi.Input<boolean>;
    /**
     * If true, this User may create Longview clients and view the current plan.
     */
    addLongview: pulumi.Input<boolean>;
    /**
     * If true, this User may add NodeBalancers.
     */
    addNodebalancers: pulumi.Input<boolean>;
    /**
     * If true, this User may add Placement Groups.
     */
    addPlacementGroups: pulumi.Input<boolean>;
    addStackscripts: pulumi.Input<boolean>;
    /**
     * If true, this User may add Volumes.
     */
    addVolumes: pulumi.Input<boolean>;
    /**
     * If true, this User may add Virtual Private Clouds (VPCs).
     */
    addVpcs: pulumi.Input<boolean>;
    /**
     * If true, this User may cancel the entire Account.
     */
    cancelAccount: pulumi.Input<boolean>;
    /**
     * If true, this User may manage the Account’s Longview subscription.
     */
    longviewSubscription: pulumi.Input<boolean>;
}
export interface GetUsersUserImageGrant {
    /**
     * The ID of entity this grant applies to.
     */
    id: number;
    /**
     * The current label of the entity this grant applies to, for display purposes.
     */
    label: string;
    /**
     * The level of access this User has to this entity. If null, this User has no access.
     */
    permissions: string;
}
export interface GetUsersUserImageGrantArgs {
    /**
     * The ID of entity this grant applies to.
     */
    id: pulumi.Input<number>;
    /**
     * The current label of the entity this grant applies to, for display purposes.
     */
    label: pulumi.Input<string>;
    /**
     * The level of access this User has to this entity. If null, this User has no access.
     */
    permissions: pulumi.Input<string>;
}
export interface GetUsersUserLinodeGrant {
    /**
     * The ID of entity this grant applies to.
     */
    id: number;
    /**
     * The current label of the entity this grant applies to, for display purposes.
     */
    label: string;
    /**
     * The level of access this User has to this entity. If null, this User has no access.
     */
    permissions: string;
}
export interface GetUsersUserLinodeGrantArgs {
    /**
     * The ID of entity this grant applies to.
     */
    id: pulumi.Input<number>;
    /**
     * The current label of the entity this grant applies to, for display purposes.
     */
    label: pulumi.Input<string>;
    /**
     * The level of access this User has to this entity. If null, this User has no access.
     */
    permissions: pulumi.Input<string>;
}
export interface GetUsersUserLongviewGrant {
    /**
     * The ID of entity this grant applies to.
     */
    id: number;
    /**
     * The current label of the entity this grant applies to, for display purposes.
     */
    label: string;
    /**
     * The level of access this User has to this entity. If null, this User has no access.
     */
    permissions: string;
}
export interface GetUsersUserLongviewGrantArgs {
    /**
     * The ID of entity this grant applies to.
     */
    id: pulumi.Input<number>;
    /**
     * The current label of the entity this grant applies to, for display purposes.
     */
    label: pulumi.Input<string>;
    /**
     * The level of access this User has to this entity. If null, this User has no access.
     */
    permissions: pulumi.Input<string>;
}
export interface GetUsersUserNodebalancerGrant {
    /**
     * The ID of entity this grant applies to.
     */
    id: number;
    /**
     * The current label of the entity this grant applies to, for display purposes.
     */
    label: string;
    /**
     * The level of access this User has to this entity. If null, this User has no access.
     */
    permissions: string;
}
export interface GetUsersUserNodebalancerGrantArgs {
    /**
     * The ID of entity this grant applies to.
     */
    id: pulumi.Input<number>;
    /**
     * The current label of the entity this grant applies to, for display purposes.
     */
    label: pulumi.Input<string>;
    /**
     * The level of access this User has to this entity. If null, this User has no access.
     */
    permissions: pulumi.Input<string>;
}
export interface GetUsersUserPlacementGroupGrant {
    /**
     * The ID of entity this grant applies to.
     */
    id: number;
    /**
     * The current label of the entity this grant applies to, for display purposes.
     */
    label: string;
    /**
     * The level of access this User has to this entity. If null, this User has no access.
     */
    permissions: string;
}
export interface GetUsersUserPlacementGroupGrantArgs {
    /**
     * The ID of entity this grant applies to.
     */
    id: pulumi.Input<number>;
    /**
     * The current label of the entity this grant applies to, for display purposes.
     */
    label: pulumi.Input<string>;
    /**
     * The level of access this User has to this entity. If null, this User has no access.
     */
    permissions: pulumi.Input<string>;
}
export interface GetUsersUserStackscriptGrant {
    /**
     * The ID of entity this grant applies to.
     */
    id: number;
    /**
     * The current label of the entity this grant applies to, for display purposes.
     */
    label: string;
    /**
     * The level of access this User has to this entity. If null, this User has no access.
     */
    permissions: string;
}
export interface GetUsersUserStackscriptGrantArgs {
    /**
     * The ID of entity this grant applies to.
     */
    id: pulumi.Input<number>;
    /**
     * The current label of the entity this grant applies to, for display purposes.
     */
    label: pulumi.Input<string>;
    /**
     * The level of access this User has to this entity. If null, this User has no access.
     */
    permissions: pulumi.Input<string>;
}
export interface GetUsersUserVolumeGrant {
    /**
     * The ID of entity this grant applies to.
     */
    id: number;
    /**
     * The current label of the entity this grant applies to, for display purposes.
     */
    label: string;
    /**
     * The level of access this User has to this entity. If null, this User has no access.
     */
    permissions: string;
}
export interface GetUsersUserVolumeGrantArgs {
    /**
     * The ID of entity this grant applies to.
     */
    id: pulumi.Input<number>;
    /**
     * The current label of the entity this grant applies to, for display purposes.
     */
    label: pulumi.Input<string>;
    /**
     * The level of access this User has to this entity. If null, this User has no access.
     */
    permissions: pulumi.Input<string>;
}
export interface GetUsersUserVpcGrant {
    /**
     * The ID of entity this grant applies to.
     */
    id: number;
    /**
     * The current label of the entity this grant applies to, for display purposes.
     */
    label: string;
    /**
     * The level of access this User has to this entity. If null, this User has no access.
     */
    permissions: string;
}
export interface GetUsersUserVpcGrantArgs {
    /**
     * The ID of entity this grant applies to.
     */
    id: pulumi.Input<number>;
    /**
     * The current label of the entity this grant applies to, for display purposes.
     */
    label: pulumi.Input<string>;
    /**
     * The level of access this User has to this entity. If null, this User has no access.
     */
    permissions: pulumi.Input<string>;
}
export interface GetVlansFilter {
    /**
     * The method to match the field by. (`exact`, `regex`, `substring`; default `exact`)
     */
    matchBy?: string;
    /**
     * The name of the field to filter by. See the Filterable Fields section for a complete list of filterable fields.
     */
    name: string;
    /**
     * A list of values for the filter to allow. These values should all be in string form.
     */
    values: string[];
}
export interface GetVlansFilterArgs {
    /**
     * The method to match the field by. (`exact`, `regex`, `substring`; default `exact`)
     */
    matchBy?: pulumi.Input<string>;
    /**
     * The name of the field to filter by. See the Filterable Fields section for a complete list of filterable fields.
     */
    name: pulumi.Input<string>;
    /**
     * A list of values for the filter to allow. These values should all be in string form.
     */
    values: pulumi.Input<pulumi.Input<string>[]>;
}
export interface GetVlansVlan {
    /**
     * When the VLAN was created.
     */
    created?: string;
    /**
     * The unique label of the VLAN.
     */
    label?: string;
    /**
     * The running Linodes currently attached to the VLAN.
     */
    linodes?: number[];
    /**
     * The region the VLAN is located in. See all regions [here](https://api.linode.com/v4/regions).
     */
    region?: string;
}
export interface GetVlansVlanArgs {
    /**
     * When the VLAN was created.
     */
    created?: pulumi.Input<string>;
    /**
     * The unique label of the VLAN.
     */
    label?: pulumi.Input<string>;
    /**
     * The running Linodes currently attached to the VLAN.
     */
    linodes?: pulumi.Input<pulumi.Input<number>[]>;
    /**
     * The region the VLAN is located in. See all regions [here](https://api.linode.com/v4/regions).
     */
    region?: pulumi.Input<string>;
}
export interface GetVolumeTypesFilter {
    /**
     * The method to match the field by. (`exact`, `regex`, `substring`; default `exact`)
     */
    matchBy?: string;
    /**
     * The name of the field to filter by. See the Filterable Fields section for a complete list of filterable fields.
     */
    name: string;
    /**
     * A list of values for the filter to allow. These values should all be in string form.
     */
    values: string[];
}
export interface GetVolumeTypesFilterArgs {
    /**
     * The method to match the field by. (`exact`, `regex`, `substring`; default `exact`)
     */
    matchBy?: pulumi.Input<string>;
    /**
     * The name of the field to filter by. See the Filterable Fields section for a complete list of filterable fields.
     */
    name: pulumi.Input<string>;
    /**
     * A list of values for the filter to allow. These values should all be in string form.
     */
    values: pulumi.Input<pulumi.Input<string>[]>;
}
export interface GetVolumeTypesType {
    /**
     * The ID representing the Volume type.
     */
    id: string;
    /**
     * The Volume type label is for display purposes only.
     */
    label?: string;
    /**
     * Cost in US dollars, broken down into hourly and monthly charges.
     */
    prices?: inputs.GetVolumeTypesTypePrice[];
    /**
     * A list of region-specific prices for this Volume Type.
     */
    regionPrices?: inputs.GetVolumeTypesTypeRegionPrice[];
    /**
     * The monthly outbound transfer amount, in MB.
     */
    transfer?: number;
}
export interface GetVolumeTypesTypeArgs {
    /**
     * The ID representing the Volume type.
     */
    id: pulumi.Input<string>;
    /**
     * The Volume type label is for display purposes only.
     */
    label?: pulumi.Input<string>;
    /**
     * Cost in US dollars, broken down into hourly and monthly charges.
     */
    prices?: pulumi.Input<pulumi.Input<inputs.GetVolumeTypesTypePriceArgs>[]>;
    /**
     * A list of region-specific prices for this Volume Type.
     */
    regionPrices?: pulumi.Input<pulumi.Input<inputs.GetVolumeTypesTypeRegionPriceArgs>[]>;
    /**
     * The monthly outbound transfer amount, in MB.
     */
    transfer?: pulumi.Input<number>;
}
export interface GetVolumeTypesTypePrice {
    /**
     * Cost (in US dollars) per hour.
     */
    hourly: number;
    /**
     * Cost (in US dollars) per month.
     */
    monthly: number;
}
export interface GetVolumeTypesTypePriceArgs {
    /**
     * Cost (in US dollars) per hour.
     */
    hourly: pulumi.Input<number>;
    /**
     * Cost (in US dollars) per month.
     */
    monthly: pulumi.Input<number>;
}
export interface GetVolumeTypesTypeRegionPrice {
    hourly: number;
    /**
     * The ID representing the Volume type.
     */
    id: string;
    monthly: number;
}
export interface GetVolumeTypesTypeRegionPriceArgs {
    hourly: pulumi.Input<number>;
    /**
     * The ID representing the Volume type.
     */
    id: pulumi.Input<string>;
    monthly: pulumi.Input<number>;
}
export interface GetVolumesFilter {
    /**
     * The method to match the field by. (`exact`, `regex`, `substring`; default `exact`)
     */
    matchBy?: string;
    /**
     * The name of the field to filter by. See the Filterable Fields section for a complete list of filterable fields.
     */
    name: string;
    /**
     * A list of values for the filter to allow. These values should all be in string form.
     */
    values: string[];
}
export interface GetVolumesFilterArgs {
    /**
     * The method to match the field by. (`exact`, `regex`, `substring`; default `exact`)
     */
    matchBy?: pulumi.Input<string>;
    /**
     * The name of the field to filter by. See the Filterable Fields section for a complete list of filterable fields.
     */
    name: pulumi.Input<string>;
    /**
     * A list of values for the filter to allow. These values should all be in string form.
     */
    values: pulumi.Input<pulumi.Input<string>[]>;
}
export interface GetVolumesVolume {
    /**
     * When this Volume was created.
     */
    created?: string;
    /**
     * Whether Block Storage Disk Encryption is enabled or disabled on this Volume. Note: Block Storage Disk Encryption is not currently available to all users.
     */
    encryption?: string;
    /**
     * The full filesystem path for the Volume based on the Volume's label. Path is /dev/disk/by-id/scsi-0LinodeVolume + Volume label.
     */
    filesystemPath?: string;
    /**
     * The unique ID of this Volume.
     */
    id: number;
    /**
     * This Volume's label is for display purposes only.
     */
    label?: string;
    /**
     * If a Volume is attached to a specific Linode, the ID of that Linode will be displayed here. If the Volume is unattached, this value will be null.
     */
    linodeId?: number;
    /**
     * The datacenter in which this Volume is located. See all regions [here](https://api.linode.com/v4/regions).
     */
    region?: string;
    /**
     * The Volume's size, in GiB.
     */
    size?: number;
    /**
     * The current status of the Volume. (`creating`, `active`, `resizing`, `contactSupport`)
     */
    status?: string;
    /**
     * An array of tags applied to this object. Tags are case-insensitive and are for organizational purposes only.
     */
    tags?: string[];
    /**
     * When this Volume was last updated.
     */
    updated?: string;
}
export interface GetVolumesVolumeArgs {
    /**
     * When this Volume was created.
     */
    created?: pulumi.Input<string>;
    /**
     * Whether Block Storage Disk Encryption is enabled or disabled on this Volume. Note: Block Storage Disk Encryption is not currently available to all users.
     */
    encryption?: pulumi.Input<string>;
    /**
     * The full filesystem path for the Volume based on the Volume's label. Path is /dev/disk/by-id/scsi-0LinodeVolume + Volume label.
     */
    filesystemPath?: pulumi.Input<string>;
    /**
     * The unique ID of this Volume.
     */
    id: pulumi.Input<number>;
    /**
     * This Volume's label is for display purposes only.
     */
    label?: pulumi.Input<string>;
    /**
     * If a Volume is attached to a specific Linode, the ID of that Linode will be displayed here. If the Volume is unattached, this value will be null.
     */
    linodeId?: pulumi.Input<number>;
    /**
     * The datacenter in which this Volume is located. See all regions [here](https://api.linode.com/v4/regions).
     */
    region?: pulumi.Input<string>;
    /**
     * The Volume's size, in GiB.
     */
    size?: pulumi.Input<number>;
    /**
     * The current status of the Volume. (`creating`, `active`, `resizing`, `contactSupport`)
     */
    status?: pulumi.Input<string>;
    /**
     * An array of tags applied to this object. Tags are case-insensitive and are for organizational purposes only.
     */
    tags?: pulumi.Input<pulumi.Input<string>[]>;
    /**
     * When this Volume was last updated.
     */
    updated?: pulumi.Input<string>;
}
export interface GetVpcIpsFilter {
    /**
     * The method to match the field by. (`exact`, `regex`, `substring`; default `exact`)
     */
    matchBy?: string;
    /**
     * The name of the field to filter by. See the Filterable Fields section for a complete list of filterable fields.
     */
    name: string;
    /**
     * A list of values for the filter to allow. These values should all be in string form.
     */
    values: string[];
}
export interface GetVpcIpsFilterArgs {
    /**
     * The method to match the field by. (`exact`, `regex`, `substring`; default `exact`)
     */
    matchBy?: pulumi.Input<string>;
    /**
     * The name of the field to filter by. See the Filterable Fields section for a complete list of filterable fields.
     */
    name: pulumi.Input<string>;
    /**
     * A list of values for the filter to allow. These values should all be in string form.
     */
    values: pulumi.Input<pulumi.Input<string>[]>;
}
export interface GetVpcIpsVpcIp {
    /**
     * True if the VPC interface is in use, meaning that the Linode was powered on using the configId to which the interface belongs. Otherwise false.
     */
    active?: boolean;
    /**
     * An IPv4 address configured for this VPC interface. These follow the RFC 1918 private address format. Null if an address_range.
     */
    address?: string;
    /**
     * A range of IPv4 addresses configured for this VPC interface. Null if a single address.
     */
    addressRange?: string;
    /**
     * The globally general entity identifier for the Linode configuration profile where the VPC is included.
     */
    configId?: number;
    /**
     * The default gateway for the VPC subnet that the IP or IP range belongs to.
     */
    gateway?: string;
    /**
     * The globally general API entity identifier for the Linode interface.
     */
    interfaceId?: number;
    /**
     * The identifier for the Linode the VPC interface currently belongs to.
     */
    linodeId?: number;
    /**
     * The public IP address used for NAT 1:1 with the VPC. This is empty if NAT 1:1 isn't used.
     */
    nat11?: string;
    /**
     * The number of bits set in the subnet mask.
     */
    prefix?: number;
    /**
     * The region of the VPC.
     */
    region?: string;
    /**
     * The id of the VPC Subnet for this interface.
     */
    subnetId?: number;
    /**
     * The mask that separates host bits from network bits for the address or address_range.
     */
    subnetMask?: string;
    /**
     * The id of the parent VPC for the list of VPC IPs.
     *
     * * `filter` - (Optional) A set of filters used to select Linode VPC IPs that meet certain requirements.
     */
    vpcId?: number;
}
export interface GetVpcIpsVpcIpArgs {
    /**
     * True if the VPC interface is in use, meaning that the Linode was powered on using the configId to which the interface belongs. Otherwise false.
     */
    active?: pulumi.Input<boolean>;
    /**
     * An IPv4 address configured for this VPC interface. These follow the RFC 1918 private address format. Null if an address_range.
     */
    address?: pulumi.Input<string>;
    /**
     * A range of IPv4 addresses configured for this VPC interface. Null if a single address.
     */
    addressRange?: pulumi.Input<string>;
    /**
     * The globally general entity identifier for the Linode configuration profile where the VPC is included.
     */
    configId?: pulumi.Input<number>;
    /**
     * The default gateway for the VPC subnet that the IP or IP range belongs to.
     */
    gateway?: pulumi.Input<string>;
    /**
     * The globally general API entity identifier for the Linode interface.
     */
    interfaceId?: pulumi.Input<number>;
    /**
     * The identifier for the Linode the VPC interface currently belongs to.
     */
    linodeId?: pulumi.Input<number>;
    /**
     * The public IP address used for NAT 1:1 with the VPC. This is empty if NAT 1:1 isn't used.
     */
    nat11?: pulumi.Input<string>;
    /**
     * The number of bits set in the subnet mask.
     */
    prefix?: pulumi.Input<number>;
    /**
     * The region of the VPC.
     */
    region?: pulumi.Input<string>;
    /**
     * The id of the VPC Subnet for this interface.
     */
    subnetId?: pulumi.Input<number>;
    /**
     * The mask that separates host bits from network bits for the address or address_range.
     */
    subnetMask?: pulumi.Input<string>;
    /**
     * The id of the parent VPC for the list of VPC IPs.
     *
     * * `filter` - (Optional) A set of filters used to select Linode VPC IPs that meet certain requirements.
     */
    vpcId?: pulumi.Input<number>;
}
export interface GetVpcSubnetsFilter {
    /**
     * The method to match the field by. (`exact`, `regex`, `substring`; default `exact`)
     */
    matchBy?: string;
    /**
     * The name of the field to filter by. See the Filterable Fields section for a complete list of filterable fields.
     */
    name: string;
    /**
     * A list of values for the filter to allow. These values should all be in string form.
     */
    values: string[];
}
export interface GetVpcSubnetsFilterArgs {
    /**
     * The method to match the field by. (`exact`, `regex`, `substring`; default `exact`)
     */
    matchBy?: pulumi.Input<string>;
    /**
     * The name of the field to filter by. See the Filterable Fields section for a complete list of filterable fields.
     */
    name: pulumi.Input<string>;
    /**
     * A list of values for the filter to allow. These values should all be in string form.
     */
    values: pulumi.Input<pulumi.Input<string>[]>;
}
export interface GetVpcSubnetsVpcSubnet {
    /**
     * The date and time when the VPC Subnet was created.
     */
    created?: string;
    /**
     * The unique id of the VPC subnet.
     */
    id?: number;
    /**
     * The IPv4 range of this subnet in CIDR format.
     */
    ipv4?: string;
    /**
     * The label of the VPC subnet.
     */
    label?: string;
    /**
     * A list of Linode IDs that added to this subnet.
     */
    linodes?: inputs.GetVpcSubnetsVpcSubnetLinode[];
    /**
     * The date and time when the VPC Subnet was last updated.
     */
    updated?: string;
}
export interface GetVpcSubnetsVpcSubnetArgs {
    /**
     * The date and time when the VPC Subnet was created.
     */
    created?: pulumi.Input<string>;
    /**
     * The unique id of the VPC subnet.
     */
    id?: pulumi.Input<number>;
    /**
     * The IPv4 range of this subnet in CIDR format.
     */
    ipv4?: pulumi.Input<string>;
    /**
     * The label of the VPC subnet.
     */
    label?: pulumi.Input<string>;
    /**
     * A list of Linode IDs that added to this subnet.
     */
    linodes?: pulumi.Input<pulumi.Input<inputs.GetVpcSubnetsVpcSubnetLinodeArgs>[]>;
    /**
     * The date and time when the VPC Subnet was last updated.
     */
    updated?: pulumi.Input<string>;
}
export interface GetVpcSubnetsVpcSubnetLinode {
    /**
     * The unique id of the VPC subnet.
     */
    id: number;
    interfaces: inputs.GetVpcSubnetsVpcSubnetLinodeInterface[];
}
export interface GetVpcSubnetsVpcSubnetLinodeArgs {
    /**
     * The unique id of the VPC subnet.
     */
    id: pulumi.Input<number>;
    interfaces: pulumi.Input<pulumi.Input<inputs.GetVpcSubnetsVpcSubnetLinodeInterfaceArgs>[]>;
}
export interface GetVpcSubnetsVpcSubnetLinodeInterface {
    active: boolean;
    /**
     * The unique id of the VPC subnet.
     */
    id: number;
}
export interface GetVpcSubnetsVpcSubnetLinodeInterfaceArgs {
    active: pulumi.Input<boolean>;
    /**
     * The unique id of the VPC subnet.
     */
    id: pulumi.Input<number>;
}
export interface GetVpcsFilter {
    /**
     * The method to match the field by. (`exact`, `regex`, `substring`; default `exact`)
     */
    matchBy?: string;
    /**
     * The name of the field to filter by. See the Filterable Fields section for a complete list of filterable fields.
     */
    name: string;
    /**
     * A list of values for the filter to allow. These values should all be in string form.
     */
    values: string[];
}
export interface GetVpcsFilterArgs {
    /**
     * The method to match the field by. (`exact`, `regex`, `substring`; default `exact`)
     */
    matchBy?: pulumi.Input<string>;
    /**
     * The name of the field to filter by. See the Filterable Fields section for a complete list of filterable fields.
     */
    name: pulumi.Input<string>;
    /**
     * A list of values for the filter to allow. These values should all be in string form.
     */
    values: pulumi.Input<pulumi.Input<string>[]>;
}
export interface GetVpcsVpc {
    /**
     * The date and time when the VPC was created.
     */
    created?: string;
    /**
     * The user-defined description of this VPC.
     */
    description?: string;
    /**
     * The unique id of this VPC.
     */
    id: string;
    /**
     * The label of the VPC.
     */
    label?: string;
    /**
     * The region where the VPC is deployed.
     */
    region?: string;
    /**
     * The date and time when the VPC was last updated.
     */
    updated?: string;
}
export interface GetVpcsVpcArgs {
    /**
     * The date and time when the VPC was created.
     */
    created?: pulumi.Input<string>;
    /**
     * The user-defined description of this VPC.
     */
    description?: pulumi.Input<string>;
    /**
     * The unique id of this VPC.
     */
    id: pulumi.Input<string>;
    /**
     * The label of the VPC.
     */
    label?: pulumi.Input<string>;
    /**
     * The region where the VPC is deployed.
     */
    region?: pulumi.Input<string>;
    /**
     * The date and time when the VPC was last updated.
     */
    updated?: pulumi.Input<string>;
}
export interface ImageReplication {
    /**
     * The region of the image. See all regions [here](https://techdocs.akamai.com/linode-api/reference/get-regions).
     */
    region: pulumi.Input<string>;
    /**
     * The status of an image replica.
     */
    status: pulumi.Input<string>;
}
export interface ImageTimeouts {
    /**
     * Used when creating the instance image (until the instance is available)
     */
    create?: pulumi.Input<string>;
}
export interface InstanceAlerts {
    /**
     * The percentage of CPU usage required to trigger an alert. If the average CPU usage over two hours exceeds this value, we'll send you an alert. If this is set to 0, the alert is disabled.
     */
    cpu?: pulumi.Input<number>;
    /**
     * The amount of disk IO operation per second required to trigger an alert. If the average disk IO over two hours exceeds this value, we'll send you an alert. If set to 0, this alert is disabled.
     */
    io?: pulumi.Input<number>;
    /**
     * The amount of incoming traffic, in Mbit/s, required to trigger an alert. If the average incoming traffic over two hours exceeds this value, we'll send you an alert. If this is set to 0 (zero), the alert is disabled.
     */
    networkIn?: pulumi.Input<number>;
    /**
     * The amount of outbound traffic, in Mbit/s, required to trigger an alert. If the average outbound traffic over two hours exceeds this value, we'll send you an alert. If this is set to 0 (zero), the alert is disabled.
     */
    networkOut?: pulumi.Input<number>;
    /**
     * The percentage of network transfer that may be used before an alert is triggered. When this value is exceeded, we'll alert you. If this is set to 0 (zero), the alert is disabled.
     */
    transferQuota?: pulumi.Input<number>;
}
export interface InstanceBackups {
    /**
     * Whether this Backup is available for restoration.
     */
    available?: pulumi.Input<boolean>;
    /**
     * If this Linode has the Backup service enabled.
     */
    enabled?: pulumi.Input<boolean>;
    schedule?: pulumi.Input<inputs.InstanceBackupsSchedule>;
}
export interface InstanceBackupsSchedule {
    /**
     * The day of the week that your Linode's weekly Backup is taken. If not set manually, a day will be chosen for you. Backups are taken every day, but backups taken on this day are preferred when selecting backups to retain for a longer period.  If not set manually, then when backups are initially enabled, this may come back as "Scheduling" until the day is automatically selected.
     */
    day?: pulumi.Input<string>;
    /**
     * The window ('W0'-'W22') in which your backups will be taken, in UTC. A backups window is a two-hour span of time in which the backup may occur. For example, 'W10' indicates that your backups should be taken between 10:00 and 12:00. If you do not choose a backup window, one will be selected for you automatically.  If not set manually, when backups are initially enabled this may come back as Scheduling until the window is automatically selected.
     */
    window?: pulumi.Input<string>;
}
export interface InstanceConfig {
    /**
     * Optional field for arbitrary User comments on this Config.
     */
    comments?: pulumi.Input<string>;
    /**
     * Device sda-sdh can be either a Disk or Volume identified by diskLabel or volume_id. Only one type per slot allowed.
     */
    devices?: pulumi.Input<inputs.InstanceConfigDevices>;
    /**
     * Helpers enabled when booting to this Linode Config.
     */
    helpers?: pulumi.Input<inputs.InstanceConfigHelpers>;
    /**
     * The ID of the Placement Group.
     */
    id?: pulumi.Input<number>;
    /**
     * An array of Network Interfaces for this Linode’s Configuration Profile.
     */
    interfaces?: pulumi.Input<pulumi.Input<inputs.InstanceConfigInterface>[]>;
    /**
     * A Kernel ID to boot a Linode with. Default is based on image choice. (examples: linode/latest-64bit, linode/grub2, linode/direct-disk)
     */
    kernel?: pulumi.Input<string>;
    /**
     * The Linode's label is for display purposes only. If no label is provided for a Linode, a default will be assigned.
     */
    label: pulumi.Input<string>;
    /**
     * Defaults to the total RAM of the Linode
     */
    memoryLimit?: pulumi.Input<number>;
    /**
     * The root device to boot. The corresponding disk must be attached.
     */
    rootDevice?: pulumi.Input<string>;
    /**
     * Defines the state of your Linode after booting. Defaults to default.
     */
    runLevel?: pulumi.Input<string>;
    /**
     * Controls the virtualization mode. Defaults to paravirt.
     */
    virtMode?: pulumi.Input<string>;
}
export interface InstanceConfigDevice {
    /**
     * The Disk ID to map to this disk slot
     */
    deviceName: pulumi.Input<string>;
    /**
     * The Disk ID to map to this disk slot
     */
    diskId?: pulumi.Input<number>;
    /**
     * The Block Storage volume ID to map to this disk slot
     */
    volumeId?: pulumi.Input<number>;
}
export interface InstanceConfigDevices {
    /**
     * ... `sdh` - (Optional) The SDA-SDH slots, represent the Linux block device nodes for the first 8 disks attached to the Linode.  Each device must be suplied sequentially.  The device can be either a Disk or a Volume identified by `diskId` or `volumeId`. Only one disk identifier is permitted per slot. Devices mapped from `sde` through `sdh` are unavailable in `"fullvirt"` `virtMode`.
     */
    sda?: pulumi.Input<inputs.InstanceConfigDevicesSda>;
    /**
     * Device can be either a Disk or Volume identified by diskId or volume_id. Only one type per slot allowed.
     */
    sdb?: pulumi.Input<inputs.InstanceConfigDevicesSdb>;
    /**
     * Device can be either a Disk or Volume identified by diskId or volume_id. Only one type per slot allowed.
     */
    sdc?: pulumi.Input<inputs.InstanceConfigDevicesSdc>;
    /**
     * Device can be either a Disk or Volume identified by diskId or volume_id. Only one type per slot allowed.
     */
    sdd?: pulumi.Input<inputs.InstanceConfigDevicesSdd>;
    /**
     * Device can be either a Disk or Volume identified by diskId or volume_id. Only one type per slot allowed.
     */
    sde?: pulumi.Input<inputs.InstanceConfigDevicesSde>;
    /**
     * Device can be either a Disk or Volume identified by diskId or volume_id. Only one type per slot allowed.
     */
    sdf?: pulumi.Input<inputs.InstanceConfigDevicesSdf>;
    /**
     * Device can be either a Disk or Volume identified by diskId or volume_id. Only one type per slot allowed.
     */
    sdg?: pulumi.Input<inputs.InstanceConfigDevicesSdg>;
    /**
     * Device can be either a Disk or Volume identified by diskId or volume_id. Only one type per slot allowed.
     */
    sdh?: pulumi.Input<inputs.InstanceConfigDevicesSdh>;
}
export interface InstanceConfigDevicesSda {
    /**
     * The Disk ID to map to this `device` slot
     */
    diskId?: pulumi.Input<number>;
    /**
     * The Volume ID to map to this `device` slot.
     */
    volumeId?: pulumi.Input<number>;
}
export interface InstanceConfigDevicesSdb {
    /**
     * The Disk ID to map to this disk slot
     */
    diskId?: pulumi.Input<number>;
    /**
     * The Block Storage volume ID to map to this disk slot
     */
    volumeId?: pulumi.Input<number>;
}
export interface InstanceConfigDevicesSdc {
    /**
     * The Disk ID to map to this disk slot
     */
    diskId?: pulumi.Input<number>;
    /**
     * The Block Storage volume ID to map to this disk slot
     */
    volumeId?: pulumi.Input<number>;
}
export interface InstanceConfigDevicesSdd {
    /**
     * The Disk ID to map to this disk slot
     */
    diskId?: pulumi.Input<number>;
    /**
     * The Block Storage volume ID to map to this disk slot
     */
    volumeId?: pulumi.Input<number>;
}
export interface InstanceConfigDevicesSde {
    /**
     * The Disk ID to map to this disk slot
     */
    diskId?: pulumi.Input<number>;
    /**
     * The Block Storage volume ID to map to this disk slot
     */
    volumeId?: pulumi.Input<number>;
}
export interface InstanceConfigDevicesSdf {
    /**
     * The Disk ID to map to this disk slot
     */
    diskId?: pulumi.Input<number>;
    /**
     * The Block Storage volume ID to map to this disk slot
     */
    volumeId?: pulumi.Input<number>;
}
export interface InstanceConfigDevicesSdg {
    /**
     * The Disk ID to map to this disk slot
     */
    diskId?: pulumi.Input<number>;
    /**
     * The Block Storage volume ID to map to this disk slot
     */
    volumeId?: pulumi.Input<number>;
}
export interface InstanceConfigDevicesSdh {
    /**
     * The Disk ID to map to this disk slot
     */
    diskId?: pulumi.Input<number>;
    /**
     * The Block Storage volume ID to map to this disk slot
     */
    volumeId?: pulumi.Input<number>;
}
export interface InstanceConfigHelper {
    /**
     * Populates the /dev directory early during boot without udev. (default `true`)
     */
    devtmpfsAutomount?: pulumi.Input<boolean>;
    /**
     * Helps maintain correct inittab/upstart console device. (default `true`)
     */
    distro?: pulumi.Input<boolean>;
    /**
     * Creates a modules dependency file for the Kernel you run. (default `true`)
     */
    modulesDep?: pulumi.Input<boolean>;
    /**
     * Automatically configures static networking. (default `true`)
     */
    network?: pulumi.Input<boolean>;
    /**
     * Disables updatedb cron job to avoid disk thrashing. (default `true`)
     */
    updatedbDisabled?: pulumi.Input<boolean>;
}
export interface InstanceConfigHelpers {
    /**
     * Populates the /dev directory early during boot without udev. Defaults to false.
     */
    devtmpfsAutomount?: pulumi.Input<boolean>;
    /**
     * Controls the behavior of the Linode Config's Distribution Helper setting.
     */
    distro?: pulumi.Input<boolean>;
    /**
     * Creates a modules dependency file for the Kernel you run.
     */
    modulesDep?: pulumi.Input<boolean>;
    /**
     * Controls the behavior of the Linode Config's Network Helper setting, used to automatically configure additional IP addresses assigned to this instance.
     */
    network?: pulumi.Input<boolean>;
    /**
     * Disables updatedb cron job to avoid disk thrashing.
     */
    updatedbDisabled?: pulumi.Input<boolean>;
}
export interface InstanceConfigInterface {
    /**
     * Whether this interface is currently booted and active.
     */
    active?: pulumi.Input<boolean>;
    /**
     * The ID of the interface.
     */
    id?: pulumi.Input<number>;
    /**
     * IPv4 CIDR VPC Subnet ranges that are routed to this Interface. IPv6 ranges are also available to select participants in the Beta program.
     */
    ipRanges?: pulumi.Input<pulumi.Input<string>[]>;
    /**
     * This Network Interface’s private IP address in Classless Inter-Domain Routing (CIDR) notation. (e.g. `10.0.0.1/24`) This field is only allowed for interfaces with the `vlan` purpose.
     */
    ipamAddress?: pulumi.Input<string>;
    /**
     * The IPv4 configuration of the VPC interface.This attribute is only allowed for VPC interfaces.
     */
    ipv4?: pulumi.Input<inputs.InstanceConfigInterfaceIpv4>;
    /**
     * The name of the VLAN to join. This field is only allowed and required for interfaces with the `vlan` purpose.
     */
    label?: pulumi.Input<string>;
    /**
     * Whether the interface is the primary interface that should have the default route for this Linode. This field is only allowed for interfaces with the `public` or `vpc` purpose.
     *
     * * `ipv4` - (Optional) The IPv4 configuration of the VPC interface. This field is currently only allowed for interfaces with the `vpc` purpose.
     *
     * The following computed attribute is available in a VPC interface:
     */
    primary?: pulumi.Input<boolean>;
    /**
     * The type of interface. (`public`, `vlan`, `vpc`)
     */
    purpose: pulumi.Input<string>;
    /**
     * The name of the VPC Subnet to join. This field is only allowed and required for interfaces with the `vpc` purpose.
     */
    subnetId?: pulumi.Input<number>;
    /**
     * The ID of VPC which this interface is attached to.
     */
    vpcId?: pulumi.Input<number>;
}
export interface InstanceConfigInterfaceIpv4 {
    /**
     * The public IP that will be used for the one-to-one NAT purpose. If this is `any`, the public IPv4 address assigned to this Linode is used on this interface and will be 1:1 NATted with the VPC IPv4 address.
     */
    nat11?: pulumi.Input<string>;
    /**
     * The IP from the VPC subnet to use for this interface. A random address will be assigned if this is not specified in a VPC interface.
     */
    vpc?: pulumi.Input<string>;
}
export interface InstanceDisk {
    /**
     * A list of SSH public keys to deploy for the root user on the newly created Linode. Only accepted if 'image' is provided.
     */
    authorizedKeys?: pulumi.Input<pulumi.Input<string>[]>;
    /**
     * A list of Linode usernames. If the usernames have associated SSH keys, the keys will be appended to the `root` user's `~/.ssh/authorized_keys` file automatically. Only accepted if 'image' is provided.
     */
    authorizedUsers?: pulumi.Input<pulumi.Input<string>[]>;
    /**
     * The Disk filesystem can be one of: raw, swap, ext3, ext4, initrd (max 32mb)
     */
    filesystem?: pulumi.Input<string>;
    /**
     * The ID of the Placement Group.
     */
    id?: pulumi.Input<number>;
    /**
     * An Image ID to deploy the Disk from. Official Linode Images start with linode/, while your Images start with private/.
     */
    image?: pulumi.Input<string>;
    /**
     * The Linode's label is for display purposes only. If no label is provided for a Linode, a default will be assigned.
     */
    label: pulumi.Input<string>;
    /**
     * If true, this Disk is read-only.
     */
    readOnly?: pulumi.Input<boolean>;
    /**
     * The password that will be initialially assigned to the 'root' user account.
     */
    rootPass?: pulumi.Input<string>;
    /**
     * The size of the Disk in MB.
     */
    size: pulumi.Input<number>;
    /**
     * An object containing responses to any User Defined Fields present in the StackScript being deployed to this Linode. Only accepted if 'stackscript_id' is given. The required values depend on the StackScript being deployed.
     */
    stackscriptData?: pulumi.Input<{
        [key: string]: pulumi.Input<string>;
    }>;
    /**
     * The StackScript to deploy to the newly created Linode. If provided, 'image' must also be provided, and must be an Image that is compatible with this StackScript.
     */
    stackscriptId?: pulumi.Input<number>;
}
export interface InstanceDiskTimeouts {
    /**
     * A string that can be [parsed as a duration](https://pkg.go.dev/time#ParseDuration) consisting of numbers and unit suffixes, such as "30s" or "2h45m". Valid time units are "s" (seconds), "m" (minutes), "h" (hours).
     */
    create?: pulumi.Input<string>;
    /**
     * A string that can be [parsed as a duration](https://pkg.go.dev/time#ParseDuration) consisting of numbers and unit suffixes, such as "30s" or "2h45m". Valid time units are "s" (seconds), "m" (minutes), "h" (hours). Setting a timeout for a Delete operation is only applicable if changes are saved into state before the destroy operation occurs.
     */
    delete?: pulumi.Input<string>;
    /**
     * A string that can be [parsed as a duration](https://pkg.go.dev/time#ParseDuration) consisting of numbers and unit suffixes, such as "30s" or "2h45m". Valid time units are "s" (seconds), "m" (minutes), "h" (hours).
     */
    update?: pulumi.Input<string>;
}
export interface InstanceInterface {
    /**
     * Whether this interface is currently booted and active.
     */
    active?: pulumi.Input<boolean>;
    /**
     * The ID of the Placement Group.
     */
    id?: pulumi.Input<number>;
    /**
     * IPv4 CIDR VPC Subnet ranges that are routed to this Interface. IPv6 ranges are also available to select participants in the Beta program.
     */
    ipRanges?: pulumi.Input<pulumi.Input<string>[]>;
    /**
     * This Network Interface’s private IP address in Classless Inter-Domain Routing (CIDR) notation. (e.g. `10.0.0.1/24`) This field is only allowed for interfaces with the `vlan` purpose.
     */
    ipamAddress?: pulumi.Input<string>;
    /**
     * A set of reserved IPv4 addresses to assign to this Linode on creation.
     *
     * * **NOTE: IP reservation is not currently available to all users.**
     */
    ipv4?: pulumi.Input<inputs.InstanceInterfaceIpv4>;
    /**
     * The name of the VLAN to join. This field is only allowed and required for interfaces with the `vlan` purpose.
     */
    label?: pulumi.Input<string>;
    /**
     * Whether the interface is the primary interface that should have the default route for this Linode. This field is only allowed for interfaces with the `public` or `vpc` purpose.
     *
     * * `ipv4` - (Optional) The IPv4 configuration of the VPC interface. This field is currently only allowed for interfaces with the `vpc` purpose.
     *
     * The following computed attribute is available in a VPC interface:
     */
    primary?: pulumi.Input<boolean>;
    /**
     * The type of interface. (`public`, `vlan`, `vpc`)
     */
    purpose: pulumi.Input<string>;
    /**
     * The name of the VPC Subnet to join. This field is only allowed and required for interfaces with the `vpc` purpose.
     */
    subnetId?: pulumi.Input<number>;
    /**
     * The ID of VPC which this interface is attached to.
     */
    vpcId?: pulumi.Input<number>;
}
export interface InstanceInterfaceIpv4 {
    /**
     * The public IP that will be used for the one-to-one NAT purpose. If this is `any`, the public IPv4 address assigned to this Linode is used on this interface and will be 1:1 NATted with the VPC IPv4 address.
     */
    nat11?: pulumi.Input<string>;
    /**
     * The IP from the VPC subnet to use for this interface. A random address will be assigned if this is not specified in a VPC interface.
     */
    vpc?: pulumi.Input<string>;
}
export interface InstanceIpVpcNat11 {
    /**
     * The resulting IPv4 address.
     */
    address: pulumi.Input<string>;
    subnetId: pulumi.Input<number>;
    vpcId: pulumi.Input<number>;
}
export interface InstanceMetadata {
    /**
     * The base64-encoded user-defined data exposed to this instance through the Linode Metadata service. Refer to the base64encode(...) function for information on encoding content for this field.
     */
    userData?: pulumi.Input<string>;
}
export interface InstancePlacementGroup {
    compliantOnly?: pulumi.Input<boolean>;
    /**
     * The ID of the Placement Group.
     */
    id: pulumi.Input<number>;
    /**
     * The Linode's label is for display purposes only. If no label is provided for a Linode, a default will be assigned.
     */
    label?: pulumi.Input<string>;
    /**
     * Whether the Placement Group enforces strict compliance.
     */
    placementGroupPolicy?: pulumi.Input<string>;
    /**
     * The placement group type enforced by the Placement Group.
     */
    placementGroupType?: pulumi.Input<string>;
}
export interface InstanceSpecs {
    /**
     * The number of VPUs this Linode has access to.
     */
    acceleratedDevices?: pulumi.Input<number>;
    /**
     * The amount of storage space, in GB. this Linode has access to. A typical Linode will divide this space between a primary disk with an image deployed to it, and a swap disk, usually 512 MB. This is the default configuration created when deploying a Linode with an image through POST /linode/instances.
     */
    disk?: pulumi.Input<number>;
    /**
     * The number of GPUs this Linode has access to.
     */
    gpus?: pulumi.Input<number>;
    /**
     * The amount of RAM, in MB, this Linode has access to. Typically a Linode will choose to boot with all of its available RAM, but this can be configured in a Config profile.
     */
    memory?: pulumi.Input<number>;
    /**
     * The amount of network transfer this Linode is allotted each month.
     */
    transfer?: pulumi.Input<number>;
    /**
     * The number of vcpus this Linode has access to. Typically a Linode will choose to boot with all of its available vcpus, but this can be configured in a Config Profile.
     */
    vcpus?: pulumi.Input<number>;
}
export interface LkeClusterControlPlane {
    /**
     * Defines the ACL configuration for an LKE cluster's control plane.
     */
    acl?: pulumi.Input<inputs.LkeClusterControlPlaneAcl>;
    /**
     * Defines whether High Availability is enabled for the cluster Control Plane. This is an **irreversible** change.
     *
     * * `acl` - (Optional) Defines the ACL configuration for an LKE cluster's control plane.
     */
    highAvailability?: pulumi.Input<boolean>;
}
export interface LkeClusterControlPlaneAcl {
    /**
     * A list of ip addresses to allow.
     */
    addresses?: pulumi.Input<pulumi.Input<inputs.LkeClusterControlPlaneAclAddress>[]>;
    /**
     * Defines default policy. A value of true results in a default policy of DENY. A value of false results in default policy of ALLOW, and has the same effect as delete the ACL configuration.
     *
     * * `addresses` - (Optional) A list of ip addresses to allow.
     */
    enabled?: pulumi.Input<boolean>;
}
export interface LkeClusterControlPlaneAclAddress {
    /**
     * A set of individual ipv4 addresses or CIDRs to ALLOW.
     */
    ipv4s?: pulumi.Input<pulumi.Input<string>[]>;
    /**
     * A set of individual ipv6 addresses or CIDRs to ALLOW.
     */
    ipv6s?: pulumi.Input<pulumi.Input<string>[]>;
}
export interface LkeClusterPool {
    /**
     * When specified, the number of nodes autoscales within the defined minimum and maximum values.
     */
    autoscaler?: pulumi.Input<inputs.LkeClusterPoolAutoscaler>;
    /**
     * The number of nodes in the Node Pool. If undefined with an autoscaler the initial node count will equal the autoscaler minimum.
     *
     * * `autoscaler` - (Optional) If defined, an autoscaler will be enabled with the given configuration.
     */
    count?: pulumi.Input<number>;
    /**
     * The disk encryption policy for nodes in this pool.
     */
    diskEncryption?: pulumi.Input<string>;
    /**
     * The ID of the node.
     */
    id?: pulumi.Input<number>;
    /**
     * Key-value pairs added as labels to nodes in the node pool. Labels help classify your nodes and to easily select subsets of objects.
     */
    labels?: pulumi.Input<{
        [key: string]: pulumi.Input<string>;
    }>;
    /**
     * The nodes in the node pool.
     */
    nodes?: pulumi.Input<pulumi.Input<inputs.LkeClusterPoolNode>[]>;
    /**
     * An array of tags applied to the Kubernetes cluster. Tags are case-insensitive and are for organizational purposes only.
     */
    tags?: pulumi.Input<pulumi.Input<string>[]>;
    /**
     * Kubernetes taints to add to node pool nodes. Taints help control how pods are scheduled onto nodes, specifically allowing them to repel certain pods.
     */
    taints?: pulumi.Input<pulumi.Input<inputs.LkeClusterPoolTaint>[]>;
    /**
     * A Linode Type for all of the nodes in the Node Pool. See all node types [here](https://api.linode.com/v4/linode/types).
     */
    type: pulumi.Input<string>;
}
export interface LkeClusterPoolAutoscaler {
    /**
     * The maximum number of nodes to autoscale to.
     */
    max: pulumi.Input<number>;
    /**
     * The minimum number of nodes to autoscale to.
     */
    min: pulumi.Input<number>;
}
export interface LkeClusterPoolNode {
    /**
     * The ID of the node.
     */
    id?: pulumi.Input<string>;
    /**
     * The ID of the underlying Linode instance.
     */
    instanceId?: pulumi.Input<number>;
    /**
     * The status of the node. (`ready`, `notReady`)
     */
    status?: pulumi.Input<string>;
}
export interface LkeClusterPoolTaint {
    /**
     * The Kubernetes taint effect.
     */
    effect: pulumi.Input<string>;
    /**
     * The Kubernetes taint key.
     */
    key: pulumi.Input<string>;
    /**
     * The Kubernetes taint value.
     */
    value: pulumi.Input<string>;
}
export interface LkeNodePoolAutoscaler {
    /**
     * The maximum number of nodes to autoscale to.
     */
    max?: pulumi.Input<number>;
    /**
     * The minimum number of nodes to autoscale to.
     */
    min?: pulumi.Input<number>;
}
export interface LkeNodePoolNode {
    /**
     * The ID of the node.
     */
    id: pulumi.Input<string>;
    /**
     * The ID of the underlying Linode instance.
     */
    instanceId: pulumi.Input<number>;
    /**
     * The status of the node. (`ready`, `notReady`)
     */
    status: pulumi.Input<string>;
}
export interface LkeNodePoolTaint {
    /**
     * The Kubernetes taint effect. Accepted values are `NoSchedule`, `PreferNoSchedule`, and `NoExecute`. For the descriptions of these values, see [Kubernetes Taints and Tolerations](https://kubernetes.io/docs/concepts/scheduling-eviction/taint-and-toleration/).
     */
    effect: pulumi.Input<string>;
    /**
     * The Kubernetes taint key.
     */
    key: pulumi.Input<string>;
    /**
     * The Kubernetes taint value.
     */
    value: pulumi.Input<string>;
}
export interface NetworkingIpAssignmentAssignment {
    /**
     * The IPv4 address or IPv6 range to assign.
     */
    address: pulumi.Input<string>;
    /**
     * The ID of the Linode to which the IP address will be assigned.
     */
    linodeId: pulumi.Input<number>;
}
export interface NetworkingIpVpcNat11 {
    /**
     * The IPv4 address that is configured as a 1:1 NAT for this VPC interface.
     */
    address: pulumi.Input<string>;
    /**
     * The `id` of the VPC Subnet for this Interface.
     */
    subnetId: pulumi.Input<number>;
    /**
     * The `id` of the VPC configured for this Interface.
     */
    vpcId: pulumi.Input<number>;
}
export interface NodeBalancerConfigNodeStatus {
    /**
     * The number of backends considered to be 'DOWN' and unhealthy. These are not in rotation, and not serving requests.
     */
    down: pulumi.Input<number>;
    /**
     * The number of backends considered to be 'UP' and healthy, and that are serving requests.
     */
    up: pulumi.Input<number>;
}
export interface NodeBalancerFirewall {
    /**
     * When this firewall was created.
     */
    created: pulumi.Input<string>;
    /**
     * (Required) The Firewall's ID.
     */
    id: pulumi.Input<number>;
    /**
     * The default behavior for inbound traffic. (`ACCEPT`, `DROP`)
     */
    inboundPolicy: pulumi.Input<string>;
    inbounds: pulumi.Input<pulumi.Input<inputs.NodeBalancerFirewallInbound>[]>;
    /**
     * The label of the Linode NodeBalancer
     */
    label: pulumi.Input<string>;
    /**
     * The default behavior for outbound traffic. (`ACCEPT`, `DROP`)
     */
    outboundPolicy: pulumi.Input<string>;
    outbounds: pulumi.Input<pulumi.Input<inputs.NodeBalancerFirewallOutbound>[]>;
    /**
     * The status of the firewall. (`enabled`, `disabled`, `deleted`)
     */
    status: pulumi.Input<string>;
    /**
     * A list of tags applied to this object. Tags are case-insensitive and are for organizational purposes only.
     */
    tags: pulumi.Input<pulumi.Input<string>[]>;
    /**
     * When this firewall was last updated.
     */
    updated: pulumi.Input<string>;
}
export interface NodeBalancerFirewallInbound {
    /**
     * Controls whether traffic is accepted or dropped by this rule. Overrides the Firewall’s inboundPolicy if this is an inbound rule, or the outboundPolicy if this is an outbound rule.
     */
    action: pulumi.Input<string>;
    description: pulumi.Input<string>;
    /**
     * A list of IPv4 addresses or networks. Must be in IP/mask format.
     */
    ipv4s: pulumi.Input<pulumi.Input<string>[]>;
    /**
     * A list of IPv6 addresses or networks. Must be in IP/mask format.
     */
    ipv6s: pulumi.Input<pulumi.Input<string>[]>;
    /**
     * The label of the Linode NodeBalancer
     */
    label: pulumi.Input<string>;
    /**
     * A string representation of ports and/or port ranges (i.e. "443" or "80-90, 91").
     */
    ports: pulumi.Input<string>;
    /**
     * The network protocol this rule controls. (`TCP`, `UDP`, `ICMP`)
     */
    protocol: pulumi.Input<string>;
}
export interface NodeBalancerFirewallOutbound {
    /**
     * Controls whether traffic is accepted or dropped by this rule. Overrides the Firewall’s inboundPolicy if this is an inbound rule, or the outboundPolicy if this is an outbound rule.
     */
    action: pulumi.Input<string>;
    description: pulumi.Input<string>;
    /**
     * A list of IPv4 addresses or networks. Must be in IP/mask format.
     */
    ipv4s: pulumi.Input<pulumi.Input<string>[]>;
    /**
     * A list of IPv6 addresses or networks. Must be in IP/mask format.
     */
    ipv6s: pulumi.Input<pulumi.Input<string>[]>;
    /**
     * The label of the Linode NodeBalancer
     */
    label: pulumi.Input<string>;
    /**
     * A string representation of ports and/or port ranges (i.e. "443" or "80-90, 91").
     */
    ports: pulumi.Input<string>;
    /**
     * The network protocol this rule controls. (`TCP`, `UDP`, `ICMP`)
     */
    protocol: pulumi.Input<string>;
}
export interface NodeBalancerTransfer {
    /**
     * The total transfer, in MB, used by this NodeBalancer for the current month
     */
    in: pulumi.Input<number>;
    /**
     * The total inbound transfer, in MB, used for this NodeBalancer for the current month
     */
    out: pulumi.Input<number>;
    /**
     * The total outbound transfer, in MB, used for this NodeBalancer for the current month
     */
    total: pulumi.Input<number>;
}
export interface ObjectStorageBucketCert {
    /**
     * The Base64 encoded and PEM formatted SSL certificate.
     */
    certificate: pulumi.Input<string>;
    /**
     * The private key associated with the TLS/SSL certificate.
     */
    privateKey: pulumi.Input<string>;
}
export interface ObjectStorageBucketLifecycleRule {
    /**
     * Specifies the number of days after initiating a multipart upload when the multipart upload must be completed.
     *
     * * `expiration` - (Optional) Specifies a period in the object's expire.
     *
     * * `noncurrentVersionExpiration` - (Optional) Specifies when non-current object versions expire.
     */
    abortIncompleteMultipartUploadDays?: pulumi.Input<number>;
    /**
     * Specifies whether the lifecycle rule is active.
     */
    enabled: pulumi.Input<boolean>;
    /**
     * Specifies a period in the object's expire.
     */
    expiration?: pulumi.Input<inputs.ObjectStorageBucketLifecycleRuleExpiration>;
    /**
     * The unique identifier for the rule.
     */
    id?: pulumi.Input<string>;
    /**
     * Specifies when non-current object versions expire.
     */
    noncurrentVersionExpiration?: pulumi.Input<inputs.ObjectStorageBucketLifecycleRuleNoncurrentVersionExpiration>;
    /**
     * The object key prefix identifying one or more objects to which the rule applies.
     */
    prefix?: pulumi.Input<string>;
}
export interface ObjectStorageBucketLifecycleRuleExpiration {
    /**
     * Specifies the date after which you want the corresponding action to take effect.
     */
    date?: pulumi.Input<string>;
    /**
     * Specifies the number of days after object creation when the specific rule action takes effect.
     */
    days?: pulumi.Input<number>;
    /**
     * On a versioned bucket (versioning-enabled or versioning-suspended bucket), you can add this element in the lifecycle configuration to direct Linode Object Storage to delete expired object delete markers. This cannot be specified with Days or Date in a Lifecycle Expiration Policy.
     */
    expiredObjectDeleteMarker?: pulumi.Input<boolean>;
}
export interface ObjectStorageBucketLifecycleRuleNoncurrentVersionExpiration {
    /**
     * Specifies the number of days non-current object versions expire.
     */
    days: pulumi.Input<number>;
}
export interface ObjectStorageKeyBucketAccess {
    /**
     * The unique label of the bucket to which the key will grant limited access.
     */
    bucketName: pulumi.Input<string>;
    /**
     * The Object Storage cluster where the bucket resides. Deprecated in favor of `region`.
     *
     * @deprecated The `cluster` attribute in a `bucketAccess` block has been deprecated in favor of `region` attribute. A cluster value can be converted to a region value by removing -x at the end, for example, a cluster value `us-mia-1` can be converted to region value `us-mia`
     */
    cluster?: pulumi.Input<string>;
    /**
     * This Limited Access Key’s permissions for the selected bucket. *Changing `permissions` forces the creation of a new Object Storage Key.* (`readWrite`, `readOnly`)
     */
    permissions: pulumi.Input<string>;
    /**
     * The region where the bucket resides.
     */
    region?: pulumi.Input<string>;
}
export interface ObjectStorageKeyRegionsDetail {
    /**
     * The type of `s3Endpoint` available to the user in this region. See [Endpoint types](https://techdocs.akamai.com/cloud-computing/docs/object-storage#endpoint-type) for more information.
     */
    endpointType: pulumi.Input<string>;
    /**
     * The ID of the region.
     */
    id: pulumi.Input<string>;
    /**
     * The S3-compatible hostname you can use to access the Object Storage buckets in this region.
     */
    s3Endpoint: pulumi.Input<string>;
}
export interface PlacementGroupMember {
    /**
     * Whether this Linode is currently compliant with the group's placement group type.
     */
    isCompliant: pulumi.Input<boolean>;
    /**
     * The ID of the Linode.
     */
    linodeId: pulumi.Input<number>;
}
export interface RdnsTimeouts {
    /**
     * A string that can be [parsed as a duration](https://pkg.go.dev/time#ParseDuration) consisting of numbers and unit suffixes, such as "30s" or "2h45m". Valid time units are "s" (seconds), "m" (minutes), "h" (hours).
     */
    create?: pulumi.Input<string>;
    /**
     * A string that can be [parsed as a duration](https://pkg.go.dev/time#ParseDuration) consisting of numbers and unit suffixes, such as "30s" or "2h45m". Valid time units are "s" (seconds), "m" (minutes), "h" (hours).
     */
    update?: pulumi.Input<string>;
}
export interface ReservedIpAssignmentVpcNat11 {
    address: pulumi.Input<string>;
    subnetId: pulumi.Input<number>;
    vpcId: pulumi.Input<number>;
}
export interface StackScriptUserDefinedField {
    /**
     * The default value. If not specified, this value will be used.
     */
    default: pulumi.Input<string>;
    /**
     * An example value for the field.
     */
    example: pulumi.Input<string>;
    /**
     * The StackScript's label is for display purposes only.
     */
    label: pulumi.Input<string>;
    /**
     * A list of acceptable values for the field in any quantity, combination or order.
     */
    manyOf: pulumi.Input<string>;
    /**
     * The name of the field.
     */
    name: pulumi.Input<string>;
    /**
     * A list of acceptable single values for the field.
     */
    oneOf: pulumi.Input<string>;
}
export interface UserDomainGrant {
    /**
     * The ID of the entity this grant applies to.
     */
    id: pulumi.Input<number>;
    /**
     * The level of access this User has to this entity. If null, this User has no access.
     */
    permissions: pulumi.Input<string>;
}
export interface UserFirewallGrant {
    /**
     * The ID of the entity this grant applies to.
     */
    id: pulumi.Input<number>;
    /**
     * The level of access this User has to this entity. If null, this User has no access.
     */
    permissions: pulumi.Input<string>;
}
export interface UserGlobalGrants {
    /**
     * The level of access this User has to Account-level actions, like billing information. A restricted User will never be able to manage users.
     */
    accountAccess?: pulumi.Input<string>;
    /**
     * If true, this User may add Databases.
     */
    addDatabases?: pulumi.Input<boolean>;
    /**
     * If true, this User may add Domains.
     */
    addDomains?: pulumi.Input<boolean>;
    /**
     * If true, this User may add Firewalls.
     */
    addFirewalls?: pulumi.Input<boolean>;
    /**
     * If true, this User may add Images.
     */
    addImages?: pulumi.Input<boolean>;
    /**
     * If true, this User may create Linodes.
     */
    addLinodes?: pulumi.Input<boolean>;
    /**
     * If true, this User may create Longview clients and view the current plan.
     */
    addLongview?: pulumi.Input<boolean>;
    /**
     * If true, this User may add NodeBalancers.
     */
    addNodebalancers?: pulumi.Input<boolean>;
    /**
     * If true, this User may add Placement Groups.
     */
    addPlacementGroups?: pulumi.Input<boolean>;
    /**
     * If true, this User may add StackScripts.
     */
    addStackscripts?: pulumi.Input<boolean>;
    /**
     * If true, this User may add Volumes.
     */
    addVolumes?: pulumi.Input<boolean>;
    /**
     * If true, this User may add Virtual Private Clouds (VPCs).
     */
    addVpcs?: pulumi.Input<boolean>;
    /**
     * If true, this User may cancel the entire Account.
     */
    cancelAccount?: pulumi.Input<boolean>;
    /**
     * If true, this User may manage the Account’s Longview subscription.
     */
    longviewSubscription?: pulumi.Input<boolean>;
}
export interface UserImageGrant {
    /**
     * The ID of the entity this grant applies to.
     */
    id: pulumi.Input<number>;
    /**
     * The level of access this User has to this entity. If null, this User has no access.
     */
    permissions: pulumi.Input<string>;
}
export interface UserLinodeGrant {
    /**
     * The ID of the entity this grant applies to.
     */
    id: pulumi.Input<number>;
    /**
     * The level of access this User has to this entity. If null, this User has no access.
     */
    permissions: pulumi.Input<string>;
}
export interface UserLongviewGrant {
    /**
     * The ID of the entity this grant applies to.
     */
    id: pulumi.Input<number>;
    /**
     * The level of access this User has to this entity. If null, this User has no access.
     */
    permissions: pulumi.Input<string>;
}
export interface UserNodebalancerGrant {
    /**
     * The ID of the entity this grant applies to.
     */
    id: pulumi.Input<number>;
    /**
     * The level of access this User has to this entity. If null, this User has no access.
     */
    permissions: pulumi.Input<string>;
}
export interface UserPlacementGroupGrant {
    /**
     * The ID of the entity this grant applies to.
     */
    id: pulumi.Input<number>;
    /**
     * The level of access this User has to this entity. If null, this User has no access.
     */
    permissions: pulumi.Input<string>;
}
export interface UserStackscriptGrant {
    /**
     * The ID of the entity this grant applies to.
     */
    id: pulumi.Input<number>;
    /**
     * The level of access this User has to this entity. If null, this User has no access.
     */
    permissions: pulumi.Input<string>;
}
export interface UserVolumeGrant {
    /**
     * The ID of the entity this grant applies to.
     */
    id: pulumi.Input<number>;
    /**
     * The level of access this User has to this entity. If null, this User has no access.
     */
    permissions: pulumi.Input<string>;
}
export interface UserVpcGrant {
    /**
     * The ID of the entity this grant applies to.
     */
    id: pulumi.Input<number>;
    /**
     * The level of access this User has to this entity. If null, this User has no access.
     */
    permissions: pulumi.Input<string>;
}
export interface VolumeTimeouts {
    /**
     * Used when creating the volume (until the volume is reaches the initial `active` state)
     */
    create?: pulumi.Input<string>;
    /**
     * Used when deleting the volume
     */
    delete?: pulumi.Input<string>;
    /**
     * Used when updating the volume when necessary during update - e.g. when resizing the volume
     */
    update?: pulumi.Input<string>;
}
export interface VpcSubnetLinode {
    /**
     * The ID of the VPC Subnet.
     */
    id: pulumi.Input<number>;
    interfaces: pulumi.Input<pulumi.Input<inputs.VpcSubnetLinodeInterface>[]>;
}
export interface VpcSubnetLinodeInterface {
    active: pulumi.Input<boolean>;
    /**
     * The ID of the VPC Subnet.
     */
    id: pulumi.Input<number>;
}