file-system resource¶
Source: internal/service/efs/file_system_rsrc.go:102
Example usage:
imports: {
aws-efs: 'github.com/cloudboss/unobin-library-aws//service/efs'
}
resources: {
example: aws-efs.file-system {
# Set input fields here.
}
}
Inputs¶
availability-zone-name
optional(string)
encrypted
optional(boolean)
kms-key-id
optional(string)
performance-mode
optional(string)
throughput-mode
optional(string)
provisioned-throughput-in-mibps
optional(number)
lifecycle-policies
optional(list(object))
optional(
list(
object({
transition-to-ia: optional(string)
transition-to-archive: optional(string)
transition-to-primary-storage-class: optional(string)
})
)
)
backup-policy
optional(object)
optional(
object({
status: string
})
)
file-system-policy
optional(string)
file-system-protection
optional(object)
optional(
object({
replication-overwrite-protection: string
})
)
bypass-policy-lockout-safety-check
optional(boolean)
replication-configuration
optional(object)
optional(
object({
destinations: list(
object({
region: optional(string)
availability-zone-name: optional(string)
kms-key-id: optional(string)
file-system-id: optional(string)
role-arn: optional(string)
})
)
})
)
tags
optional(map(string))
Input Constraints¶
Kms key id rules
kms-key-id requires encrypted to be true.
Rule logic
- When
input.kms-key-id != null- Require
input.encrypted == true
Performance mode rules
performance-mode must be generalPurpose or maxIO.
Rule logic
- When
input.performance-mode != null- Require
input.performance-mode == 'generalPurpose'
|| input.performance-mode == 'maxIO'
Throughput mode rules
throughput-mode must be bursting, provisioned, or elastic.
Rule logic
- When
input.throughput-mode != null- Require
input.throughput-mode == 'bursting'
|| input.throughput-mode == 'provisioned'
|| input.throughput-mode == 'elastic'
provisioned throughput requires provisioned-throughput-in-mibps.
Rule logic
- When
input.throughput-mode == 'provisioned'- Require
input.provisioned-throughput-in-mibps != null
Provisioned throughput in mibps rules
provisioned-throughput-in-mibps requires provisioned throughput-mode.
Rule logic
- When
input.provisioned-throughput-in-mibps != null- Require
input.throughput-mode == 'provisioned'
Lifecycle policies rules
lifecycle-policies holds at most 3 entries.
Rule logic
- Require
@core.length(input.lifecycle-policies ?? []) <= 3
Exactly one of lifecycle-policies[*].transition-to-ia, lifecycle-policies[*].transition-to-archive, or lifecycle-policies[*].transition-to-primary-storage-class.
Backup policy rules
backup-policy status must be ENABLED or DISABLED.
Rule logic
- When
input.backup-policy != null- Require
input.backup-policy.status == 'ENABLED'
|| input.backup-policy.status == 'DISABLED'
File system protection rules
file-system-protection must be ENABLED or DISABLED.
Rule logic
- When
input.file-system-protection != null- Require
input.file-system-protection.replication-overwrite-protection == 'ENABLED'
|| input.file-system-protection.replication-overwrite-protection == 'DISABLED'
Replication configuration rules
replication-configuration must have exactly one destination.
Rule logic
- When
input.replication-configuration != null- Require
(input.replication-configuration.destinations == null || @core.length(input.replication-configuration.destinations) >= 1)
&& @core.length(input.replication-configuration.destinations ?? []) <= 1
At least one of replication-configuration.destinations[*].region or replication-configuration.destinations[*].availability-zone-name.
Outputs¶
file-system-id
string
arn
string
availability-zone-id
string
availability-zone-name
string
dns-name
string
owner-id
string
name
string
number-of-mount-targets
integer
size-in-bytes
object
object({
value: integer
timestamp: string
value-in-archive: integer
value-in-ia: integer
value-in-standard: integer
})
encrypted
boolean
kms-key-id
string
performance-mode
string
provisioned-throughput-in-mibps
number
throughput-mode
string
lifecycle-policies
list(object)
list(
object({
transition-to-ia: optional(string)
transition-to-archive: optional(string)
transition-to-primary-storage-class: optional(string)
})
)
backup-policy
optional(object)
optional(
object({
status: string
})
)
file-system-policy
optional(string)
file-system-protection
optional(object)
optional(
object({
replication-overwrite-protection: string
})
)
replication-configuration
optional(object)
optional(
object({
destinations: list(
object({
file-system-id: string
region: string
owner-id: string
role-arn: string
status: string
status-message: string
})
)
})
)
tags
map(string)