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.awsnative.efs.kotlin
import com.pulumi.awsnative.efs.kotlin.outputs.FileSystemBackupPolicy
import com.pulumi.awsnative.efs.kotlin.outputs.FileSystemLifecyclePolicy
import com.pulumi.awsnative.efs.kotlin.outputs.FileSystemProtection
import com.pulumi.awsnative.efs.kotlin.outputs.FileSystemReplicationConfiguration
import com.pulumi.awsnative.kotlin.outputs.Tag
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.Any
import kotlin.Boolean
import kotlin.Double
import kotlin.String
import kotlin.Suppress
import kotlin.Unit
import kotlin.collections.List
import com.pulumi.awsnative.efs.kotlin.outputs.FileSystemBackupPolicy.Companion.toKotlin as fileSystemBackupPolicyToKotlin
import com.pulumi.awsnative.efs.kotlin.outputs.FileSystemLifecyclePolicy.Companion.toKotlin as fileSystemLifecyclePolicyToKotlin
import com.pulumi.awsnative.efs.kotlin.outputs.FileSystemProtection.Companion.toKotlin as fileSystemProtectionToKotlin
import com.pulumi.awsnative.efs.kotlin.outputs.FileSystemReplicationConfiguration.Companion.toKotlin as fileSystemReplicationConfigurationToKotlin
import com.pulumi.awsnative.kotlin.outputs.Tag.Companion.toKotlin as tagToKotlin
/**
* Builder for [FileSystem].
*/
@PulumiTagMarker
public class FileSystemResourceBuilder internal constructor() {
public var name: String? = null
public var args: FileSystemArgs = FileSystemArgs()
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 FileSystemArgsBuilder.() -> Unit) {
val builder = FileSystemArgsBuilder()
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(): FileSystem {
val builtJavaResource = com.pulumi.awsnative.efs.FileSystem(
this.name,
this.args.toJava(),
this.opts.toJava(),
)
return FileSystem(builtJavaResource)
}
}
/**
* The ``AWS::EFS::FileSystem`` resource creates a new, empty file system in EFSlong (EFS). You must create a mount target ([AWS::EFS::MountTarget](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-efs-mounttarget.html)) to mount your EFS file system on an EC2 or other AWS cloud compute resource.
*/
public class FileSystem internal constructor(
override val javaResource: com.pulumi.awsnative.efs.FileSystem,
) : KotlinCustomResource(javaResource, FileSystemMapper) {
/**
* The Amazon Resource Name (ARN) of the EFS file system.
* Example: `arn:aws:elasticfilesystem:us-west-2:1111333322228888:file-system/fs-0123456789abcdef8`
*/
public val arn: Output
get() = javaResource.arn().applyValue({ args0 -> args0 })
/**
* For One Zone file systems, specify the AWS Availability Zone in which to create the file system. Use the format ``us-east-1a`` to specify the Availability Zone. For more information about One Zone file systems, see [EFS file system types](https://docs.aws.amazon.com/efs/latest/ug/availability-durability.html#file-system-type) in the *Amazon EFS User Guide*.
* One Zone file systems are not available in all Availability Zones in AWS-Regions where Amazon EFS is available.
*/
public val availabilityZoneName: Output?
get() = javaResource.availabilityZoneName().applyValue({ args0 ->
args0.map({ args0 ->
args0
}).orElse(null)
})
/**
* Use the ``BackupPolicy`` to turn automatic backups on or off for the file system.
*/
public val backupPolicy: Output?
get() = javaResource.backupPolicy().applyValue({ args0 ->
args0.map({ args0 ->
args0.let({ args0 ->
fileSystemBackupPolicyToKotlin(args0)
})
}).orElse(null)
})
/**
* (Optional) A boolean that specifies whether or not to bypass the ``FileSystemPolicy`` lockout safety check. The lockout safety check determines whether the policy in the request will lock out, or prevent, the IAM principal that is making the request from making future ``PutFileSystemPolicy`` requests on this file system. Set ``BypassPolicyLockoutSafetyCheck`` to ``True`` only when you intend to prevent the IAM principal that is making the request from making subsequent ``PutFileSystemPolicy`` requests on this file system. The default value is ``False``.
*/
public val bypassPolicyLockoutSafetyCheck: Output?
get() = javaResource.bypassPolicyLockoutSafetyCheck().applyValue({ args0 ->
args0.map({ args0 ->
args0
}).orElse(null)
})
/**
* A Boolean value that, if true, creates an encrypted file system. When creating an encrypted file system, you have the option of specifying a KmsKeyId for an existing kms-key-long. If you don't specify a kms-key, then the default kms-key for EFS, ``/aws/elasticfilesystem``, is used to protect the encrypted file system.
*/
public val encrypted: Output?
get() = javaResource.encrypted().applyValue({ args0 -> args0.map({ args0 -> args0 }).orElse(null) })
/**
* The ID of the EFS file system. For example: `fs-abcdef0123456789a`
*/
public val fileSystemId: Output
get() = javaResource.fileSystemId().applyValue({ args0 -> args0 })
/**
* The ``FileSystemPolicy`` for the EFS file system. A file system policy is an IAM resource policy used to control NFS access to an EFS file system. For more information, see [Using to control NFS access to Amazon EFS](https://docs.aws.amazon.com/efs/latest/ug/iam-access-control-nfs-efs.html) in the *Amazon EFS User Guide*.
* Search the [CloudFormation User Guide](https://docs.aws.amazon.com/cloudformation/) for `AWS::EFS::FileSystem` for more information about the expected schema for this property.
*/
public val fileSystemPolicy: Output?
get() = javaResource.fileSystemPolicy().applyValue({ args0 ->
args0.map({ args0 ->
args0
}).orElse(null)
})
/**
* Describes the protection on the file system.
*/
public val fileSystemProtection: Output?
get() = javaResource.fileSystemProtection().applyValue({ args0 ->
args0.map({ args0 ->
args0.let({ args0 -> fileSystemProtectionToKotlin(args0) })
}).orElse(null)
})
/**
* Use to create one or more tags associated with the file system. Each tag is a user-defined key-value pair. Name your file system on creation by including a ``"Key":"Name","Value":"{value}"`` key-value pair. Each key must be unique. For more information, see [Tagging resources](https://docs.aws.amazon.com/general/latest/gr/aws_tagging.html) in the *General Reference Guide*.
*/
public val fileSystemTags: Output>?
get() = javaResource.fileSystemTags().applyValue({ args0 ->
args0.map({ args0 ->
args0.map({ args0 -> args0.let({ args0 -> tagToKotlin(args0) }) })
}).orElse(null)
})
/**
* The ID of the kms-key-long to be used to protect the encrypted file system. This parameter is only required if you want to use a nondefault kms-key. If this parameter is not specified, the default kms-key for EFS is used. This ID can be in one of the following formats:
* + Key ID - A unique identifier of the key, for example ``1234abcd-12ab-34cd-56ef-1234567890ab``.
* + ARN - An Amazon Resource Name (ARN) for the key, for example ``arn:aws:kms:us-west-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab``.
* + Key alias - A previously created display name for a key, for example ``alias/projectKey1``.
* + Key alias ARN - An ARN for a key alias, for example ``arn:aws:kms:us-west-2:444455556666:alias/projectKey1``.
* If ``KmsKeyId`` is specified, the ``Encrypted`` parameter must be set to true.
*/
public val kmsKeyId: Output?
get() = javaResource.kmsKeyId().applyValue({ args0 -> args0.map({ args0 -> args0 }).orElse(null) })
/**
* An array of ``LifecyclePolicy`` objects that define the file system's ``LifecycleConfiguration`` object. A ``LifecycleConfiguration`` object informs Lifecycle management of the following:
* + When to move files in the file system from primary storage to IA storage.
* + When to move files in the file system from primary storage or IA storage to Archive storage.
* + When to move files that are in IA or Archive storage to primary storage.
* EFS requires that each ``LifecyclePolicy`` object have only a single transition. This means that in a request body, ``LifecyclePolicies`` needs to be structured as an array of ``LifecyclePolicy`` objects, one object for each transition, ``TransitionToIA``, ``TransitionToArchive`` ``TransitionToPrimaryStorageClass``. See the example requests in the following section for more information.
*/
public val lifecyclePolicies: Output>?
get() = javaResource.lifecyclePolicies().applyValue({ args0 ->
args0.map({ args0 ->
args0.map({ args0 ->
args0.let({ args0 ->
fileSystemLifecyclePolicyToKotlin(args0)
})
})
}).orElse(null)
})
/**
* The performance mode of the file system. We recommend ``generalPurpose`` performance mode for all file systems. File systems using the ``maxIO`` performance mode can scale to higher levels of aggregate throughput and operations per second with a tradeoff of slightly higher latencies for most file operations. The performance mode can't be changed after the file system has been created. The ``maxIO`` mode is not supported on One Zone file systems.
* Due to the higher per-operation latencies with Max I/O, we recommend using General Purpose performance mode for all file systems.
* Default is ``generalPurpose``.
*/
public val performanceMode: Output?
get() = javaResource.performanceMode().applyValue({ args0 ->
args0.map({ args0 ->
args0
}).orElse(null)
})
/**
* The throughput, measured in mebibytes per second (MiBps), that you want to provision for a file system that you're creating. Required if ``ThroughputMode`` is set to ``provisioned``. Valid values are 1-3414 MiBps, with the upper limit depending on Region. To increase this limit, contact SUP. For more information, see [Amazon EFS quotas that you can increase](https://docs.aws.amazon.com/efs/latest/ug/limits.html#soft-limits) in the *Amazon EFS User Guide*.
*/
public val provisionedThroughputInMibps: Output?
get() = javaResource.provisionedThroughputInMibps().applyValue({ args0 ->
args0.map({ args0 ->
args0
}).orElse(null)
})
/**
* Describes the replication configuration for a specific file system.
*/
public val replicationConfiguration: Output?
get() = javaResource.replicationConfiguration().applyValue({ args0 ->
args0.map({ args0 ->
args0.let({ args0 -> fileSystemReplicationConfigurationToKotlin(args0) })
}).orElse(null)
})
/**
* Specifies the throughput mode for the file system. The mode can be ``bursting``, ``provisioned``, or ``elastic``. If you set ``ThroughputMode`` to ``provisioned``, you must also set a value for ``ProvisionedThroughputInMibps``. After you create the file system, you can decrease your file system's Provisioned throughput or change between the throughput modes, with certain time restrictions. For more information, see [Specifying throughput with provisioned mode](https://docs.aws.amazon.com/efs/latest/ug/performance.html#provisioned-throughput) in the *Amazon EFS User Guide*.
* Default is ``bursting``.
*/
public val throughputMode: Output?
get() = javaResource.throughputMode().applyValue({ args0 ->
args0.map({ args0 ->
args0
}).orElse(null)
})
}
public object FileSystemMapper : ResourceMapper {
override fun supportsMappingOfType(javaResource: Resource): Boolean =
com.pulumi.awsnative.efs.FileSystem::class == javaResource::class
override fun map(javaResource: Resource): FileSystem = FileSystem(
javaResource as
com.pulumi.awsnative.efs.FileSystem,
)
}
/**
* @see [FileSystem].
* @param name The _unique_ name of the resulting resource.
* @param block Builder for [FileSystem].
*/
public suspend fun fileSystem(name: String, block: suspend FileSystemResourceBuilder.() -> Unit): FileSystem {
val builder = FileSystemResourceBuilder()
builder.name(name)
block(builder)
return builder.build()
}
/**
* @see [FileSystem].
* @param name The _unique_ name of the resulting resource.
*/
public fun fileSystem(name: String): FileSystem {
val builder = FileSystemResourceBuilder()
builder.name(name)
return builder.build()
}