import * as pulumi from "@pulumi/pulumi";
/**
 * The scaleway.elasticmetal.getPartitionSchema data source allows you to retrieve a ready-to-use partitioning schema for a BareMetal server. This schema can be used for custom installations with optional swap and extra partitions.
 *
 * This data source simplifies the process of generating valid partitioning configurations, especially useful when dealing with OS and offer compatibility requirements.
 *
 * ## Partitioning Details
 *
 * The partitioning schema generated by the `scaleway.elasticmetal.getPartitionSchema` data source includes a root (`/`) partition that is **20GB** in size by default.
 *
 * If additional storage is required, you can enable the `extraPartition` option to mount extra space on a custom path (e.g., `/data`).
 *
 * ## Example Usage
 *
 * ```typescript
 * import * as pulumi from "@pulumi/pulumi";
 * import * as scaleway from "@pulumi/scaleway";
 *
 * const _default = scaleway.elasticmetal.getPartitionSchema({
 *     offerId: "11111111-1111-1111-1111-111111111111",
 *     osId: "22222222-2222-2222-2222-222222222222",
 *     swap: true,
 *     extraPartition: true,
 *     ext4Mountpoint: "/data",
 * });
 * ```
 */
export declare function getPartitionSchema(args: GetPartitionSchemaArgs, opts?: pulumi.InvokeOptions): Promise<GetPartitionSchemaResult>;
/**
 * A collection of arguments for invoking getPartitionSchema.
 */
export interface GetPartitionSchemaArgs {
    /**
     * The mount point for the extra partition. Must be an absolute path using alphanumeric characters and underscores.
     */
    ext4Mountpoint?: string;
    /**
     * Whether to add an extra ext4 data partition.
     */
    extraPartition?: boolean;
    /**
     * The UUID of the BareMetal offer.
     */
    offerId: string;
    /**
     * The UUID of the OS image.
     */
    osId: string;
    /**
     * Whether to include a swap partition.
     */
    swap?: boolean;
}
/**
 * A collection of values returned by getPartitionSchema.
 */
export interface GetPartitionSchemaResult {
    readonly ext4Mountpoint?: string;
    readonly extraPartition?: boolean;
    /**
     * The provider-assigned unique ID for this managed resource.
     */
    readonly id: string;
    /**
     * — A validated partitioning schema in JSON format that can be directly used for BareMetal server deployment.
     */
    readonly jsonPartition: string;
    readonly offerId: string;
    readonly osId: string;
    readonly swap?: boolean;
}
/**
 * The scaleway.elasticmetal.getPartitionSchema data source allows you to retrieve a ready-to-use partitioning schema for a BareMetal server. This schema can be used for custom installations with optional swap and extra partitions.
 *
 * This data source simplifies the process of generating valid partitioning configurations, especially useful when dealing with OS and offer compatibility requirements.
 *
 * ## Partitioning Details
 *
 * The partitioning schema generated by the `scaleway.elasticmetal.getPartitionSchema` data source includes a root (`/`) partition that is **20GB** in size by default.
 *
 * If additional storage is required, you can enable the `extraPartition` option to mount extra space on a custom path (e.g., `/data`).
 *
 * ## Example Usage
 *
 * ```typescript
 * import * as pulumi from "@pulumi/pulumi";
 * import * as scaleway from "@pulumi/scaleway";
 *
 * const _default = scaleway.elasticmetal.getPartitionSchema({
 *     offerId: "11111111-1111-1111-1111-111111111111",
 *     osId: "22222222-2222-2222-2222-222222222222",
 *     swap: true,
 *     extraPartition: true,
 *     ext4Mountpoint: "/data",
 * });
 * ```
 */
export declare function getPartitionSchemaOutput(args: GetPartitionSchemaOutputArgs, opts?: pulumi.InvokeOutputOptions): pulumi.Output<GetPartitionSchemaResult>;
/**
 * A collection of arguments for invoking getPartitionSchema.
 */
export interface GetPartitionSchemaOutputArgs {
    /**
     * The mount point for the extra partition. Must be an absolute path using alphanumeric characters and underscores.
     */
    ext4Mountpoint?: pulumi.Input<string>;
    /**
     * Whether to add an extra ext4 data partition.
     */
    extraPartition?: pulumi.Input<boolean>;
    /**
     * The UUID of the BareMetal offer.
     */
    offerId: pulumi.Input<string>;
    /**
     * The UUID of the OS image.
     */
    osId: pulumi.Input<string>;
    /**
     * Whether to include a swap partition.
     */
    swap?: pulumi.Input<boolean>;
}
