Many resources are needed to download a project. Please understand that we have to compensate our server costs. Thank you in advance. Project price only 1 $
You can buy this project and download/modify it how often you want.
@file:Suppress("NAME_SHADOWING", "DEPRECATION")
package com.pulumi.aws.fsx.kotlin
import com.pulumi.aws.fsx.kotlin.outputs.LustreFileSystemLogConfiguration
import com.pulumi.aws.fsx.kotlin.outputs.LustreFileSystemMetadataConfiguration
import com.pulumi.aws.fsx.kotlin.outputs.LustreFileSystemRootSquashConfiguration
import com.pulumi.core.Output
import com.pulumi.kotlin.KotlinCustomResource
import com.pulumi.kotlin.PulumiTagMarker
import com.pulumi.kotlin.ResourceMapper
import com.pulumi.kotlin.options.CustomResourceOptions
import com.pulumi.kotlin.options.CustomResourceOptionsBuilder
import com.pulumi.resources.Resource
import kotlin.Boolean
import kotlin.Deprecated
import kotlin.Int
import kotlin.String
import kotlin.Suppress
import kotlin.Unit
import kotlin.collections.List
import kotlin.collections.Map
import com.pulumi.aws.fsx.kotlin.outputs.LustreFileSystemLogConfiguration.Companion.toKotlin as lustreFileSystemLogConfigurationToKotlin
import com.pulumi.aws.fsx.kotlin.outputs.LustreFileSystemMetadataConfiguration.Companion.toKotlin as lustreFileSystemMetadataConfigurationToKotlin
import com.pulumi.aws.fsx.kotlin.outputs.LustreFileSystemRootSquashConfiguration.Companion.toKotlin as lustreFileSystemRootSquashConfigurationToKotlin
/**
* Builder for [LustreFileSystem].
*/
@PulumiTagMarker
public class LustreFileSystemResourceBuilder internal constructor() {
public var name: String? = null
public var args: LustreFileSystemArgs = LustreFileSystemArgs()
public var opts: CustomResourceOptions = CustomResourceOptions()
/**
* @param name The _unique_ name of the resulting resource.
*/
public fun name(`value`: String) {
this.name = value
}
/**
* @param block The arguments to use to populate this resource's properties.
*/
public suspend fun args(block: suspend LustreFileSystemArgsBuilder.() -> Unit) {
val builder = LustreFileSystemArgsBuilder()
block(builder)
this.args = builder.build()
}
/**
* @param block A bag of options that control this resource's behavior.
*/
public suspend fun opts(block: suspend CustomResourceOptionsBuilder.() -> Unit) {
this.opts = com.pulumi.kotlin.options.CustomResourceOptions.opts(block)
}
internal fun build(): LustreFileSystem {
val builtJavaResource = com.pulumi.aws.fsx.LustreFileSystem(
this.name,
this.args.toJava(),
this.opts.toJava(),
)
return LustreFileSystem(builtJavaResource)
}
}
/**
* Manages a FSx Lustre File System. See the [FSx Lustre Guide](https://docs.aws.amazon.com/fsx/latest/LustreGuide/what-is.html) for more information.
* > **NOTE:** `auto_import_policy`, `export_path`, `import_path` and `imported_file_chunk_size` are not supported with the `PERSISTENT_2` deployment type. Use `aws.fsx.DataRepositoryAssociation` instead.
* ## Example Usage
*
* ```typescript
* import * as pulumi from "@pulumi/pulumi";
* import * as aws from "@pulumi/aws";
* const example = new aws.fsx.LustreFileSystem("example", {
* importPath: `s3://${exampleAwsS3Bucket.bucket}`,
* storageCapacity: 1200,
* subnetIds: exampleAwsSubnet.id,
* });
* ```
* ```python
* import pulumi
* import pulumi_aws as aws
* example = aws.fsx.LustreFileSystem("example",
* import_path=f"s3://{example_aws_s3_bucket['bucket']}",
* storage_capacity=1200,
* subnet_ids=example_aws_subnet["id"])
* ```
* ```csharp
* using System.Collections.Generic;
* using System.Linq;
* using Pulumi;
* using Aws = Pulumi.Aws;
* return await Deployment.RunAsync(() =>
* {
* var example = new Aws.Fsx.LustreFileSystem("example", new()
* {
* ImportPath = $"s3://{exampleAwsS3Bucket.Bucket}",
* StorageCapacity = 1200,
* SubnetIds = exampleAwsSubnet.Id,
* });
* });
* ```
* ```go
* package main
* import (
* "fmt"
* "github.com/pulumi/pulumi-aws/sdk/v6/go/aws/fsx"
* "github.com/pulumi/pulumi/sdk/v3/go/pulumi"
* )
* func main() {
* pulumi.Run(func(ctx *pulumi.Context) error {
* _, err := fsx.NewLustreFileSystem(ctx, "example", &fsx.LustreFileSystemArgs{
* ImportPath: pulumi.Sprintf("s3://%v", exampleAwsS3Bucket.Bucket),
* StorageCapacity: pulumi.Int(1200),
* SubnetIds: pulumi.Any(exampleAwsSubnet.Id),
* })
* if err != nil {
* return err
* }
* return nil
* })
* }
* ```
* ```java
* package generated_program;
* import com.pulumi.Context;
* import com.pulumi.Pulumi;
* import com.pulumi.core.Output;
* import com.pulumi.aws.fsx.LustreFileSystem;
* import com.pulumi.aws.fsx.LustreFileSystemArgs;
* import java.util.List;
* import java.util.ArrayList;
* import java.util.Map;
* import java.io.File;
* import java.nio.file.Files;
* import java.nio.file.Paths;
* public class App {
* public static void main(String[] args) {
* Pulumi.run(App::stack);
* }
* public static void stack(Context ctx) {
* var example = new LustreFileSystem("example", LustreFileSystemArgs.builder()
* .importPath(String.format("s3://%s", exampleAwsS3Bucket.bucket()))
* .storageCapacity(1200)
* .subnetIds(exampleAwsSubnet.id())
* .build());
* }
* }
* ```
* ```yaml
* resources:
* example:
* type: aws:fsx:LustreFileSystem
* properties:
* importPath: s3://${exampleAwsS3Bucket.bucket}
* storageCapacity: 1200
* subnetIds: ${exampleAwsSubnet.id}
* ```
*
* ## Import
* Using `pulumi import`, import FSx File Systems using the `id`. For example:
* ```sh
* $ pulumi import aws:fsx/lustreFileSystem:LustreFileSystem example fs-543ab12b1ca672f33
* ```
* Certain resource arguments, like `security_group_ids`, do not have a FSx API method for reading the information after creation. If the argument is set in the Pulumi program on an imported resource, Pulumi will always show a difference. To workaround this behavior, either omit the argument from the Pulumi program or use `ignore_changes` to hide the difference. For example:
*/
public class LustreFileSystem internal constructor(
override val javaResource: com.pulumi.aws.fsx.LustreFileSystem,
) : KotlinCustomResource(javaResource, LustreFileSystemMapper) {
/**
* Amazon Resource Name of the file system.
*/
public val arn: Output
get() = javaResource.arn().applyValue({ args0 -> args0 })
/**
* How Amazon FSx keeps your file and directory listings up to date as you add or modify objects in your linked S3 bucket. see [Auto Import Data Repo](https://docs.aws.amazon.com/fsx/latest/LustreGuide/autoimport-data-repo.html) for more details. Only supported on `PERSISTENT_1` deployment types.
*/
public val autoImportPolicy: Output
get() = javaResource.autoImportPolicy().applyValue({ args0 -> args0 })
/**
* The number of days to retain automatic backups. Setting this to 0 disables automatic backups. You can retain automatic backups for a maximum of 90 days. only valid for `PERSISTENT_1` and `PERSISTENT_2` deployment_type.
*/
public val automaticBackupRetentionDays: Output
get() = javaResource.automaticBackupRetentionDays().applyValue({ args0 -> args0 })
/**
* The ID of the source backup to create the filesystem from.
*/
public val backupId: Output?
get() = javaResource.backupId().applyValue({ args0 -> args0.map({ args0 -> args0 }).orElse(null) })
/**
* A boolean flag indicating whether tags for the file system should be copied to backups. Applicable for `PERSISTENT_1` and `PERSISTENT_2` deployment_type. The default value is false.
*/
public val copyTagsToBackups: Output?
get() = javaResource.copyTagsToBackups().applyValue({ args0 ->
args0.map({ args0 ->
args0
}).orElse(null)
})
/**
* A recurring daily time, in the format HH:MM. HH is the zero-padded hour of the day (0-23), and MM is the zero-padded minute of the hour. For example, 05:00 specifies 5 AM daily. only valid for `PERSISTENT_1` and `PERSISTENT_2` deployment_type. Requires `automatic_backup_retention_days` to be set.
*/
public val dailyAutomaticBackupStartTime: Output
get() = javaResource.dailyAutomaticBackupStartTime().applyValue({ args0 -> args0 })
/**
* Sets the data compression configuration for the file system. Valid values are `LZ4` and `NONE`. Default value is `NONE`. Unsetting this value reverts the compression type back to `NONE`.
*/
public val dataCompressionType: Output?
get() = javaResource.dataCompressionType().applyValue({ args0 ->
args0.map({ args0 ->
args0
}).orElse(null)
})
/**
* The filesystem deployment type. One of: `SCRATCH_1`, `SCRATCH_2`, `PERSISTENT_1`, `PERSISTENT_2`.
*/
public val deploymentType: Output?
get() = javaResource.deploymentType().applyValue({ args0 ->
args0.map({ args0 ->
args0
}).orElse(null)
})
/**
* DNS name for the file system, e.g., `fs-12345678.fsx.us-west-2.amazonaws.com`
*/
public val dnsName: Output
get() = javaResource.dnsName().applyValue({ args0 -> args0 })
/**
* The type of drive cache used by `PERSISTENT_1` filesystems that are provisioned with `HDD` storage_type. Required for `HDD` storage_type, set to either `READ` or `NONE`.
*/
public val driveCacheType: Output?
get() = javaResource.driveCacheType().applyValue({ args0 ->
args0.map({ args0 ->
args0
}).orElse(null)
})
/**
* S3 URI (with optional prefix) where the root of your Amazon FSx file system is exported. Can only be specified with `import_path` argument and the path must use the same Amazon S3 bucket as specified in `import_path`. Set equal to `import_path` to overwrite files on export. Defaults to `s3://{IMPORT BUCKET}/FSxLustre{CREATION TIMESTAMP}`. Only supported on `PERSISTENT_1` deployment types.
*/
public val exportPath: Output
get() = javaResource.exportPath().applyValue({ args0 -> args0 })
/**
* Sets the Lustre version for the file system that you're creating. Valid values are 2.10 for `SCRATCH_1`, `SCRATCH_2` and `PERSISTENT_1` deployment types. Valid values for 2.12 include all deployment types.
*/
public val fileSystemTypeVersion: Output
get() = javaResource.fileSystemTypeVersion().applyValue({ args0 -> args0 })
/**
* A map of tags to apply to the file system's final backup.
* **Note:** If the filesystem uses a Scratch deployment type, final backup during delete will always be skipped and this argument will not be used even when set.
*/
public val finalBackupTags: Output