state-machine resource¶
Source: internal/service/sfn/state_machine_rsrc.go:53
Example usage:
imports: {
aws-sfn: 'github.com/cloudboss/unobin-library-aws//service/sfn'
}
resources: {
example: aws-sfn.state-machine {
# Set input fields here.
}
}
Inputs¶
name
optional(string)
definition
string
role-arn
string
type
string
default
STANDARD
encryption-configuration
optional(object)
optional(
object({
type: string
kms-key-id: optional(string)
kms-data-key-reuse-period-seconds: optional(integer)
})
)
logging-configuration
optional(object)
optional(
object({
include-execution-data: optional(boolean)
level: optional(string)
log-destination: optional(string)
})
)
tracing-configuration
optional(object)
optional(
object({
enabled: optional(boolean)
})
)
tags
optional(map(string))
Input Constraints¶
Definition rules
definition must not be empty.
Rule logic
- Require
@core.length(input.definition) >= 1
Type rules
type must be STANDARD or EXPRESS.
Rule logic
- Require
input.type == 'STANDARD'
|| input.type == 'EXPRESS'
Tags rules
tags holds at most 50 entries.
Rule logic
- Require
@core.length(input.tags ?? {}) <= 50
Logging configuration rules
logging-configuration level must be ALL, ERROR, FATAL, or OFF.
Rule logic
- When
input.logging-configuration.level != null- Require
input.logging-configuration.level == 'ALL'
|| input.logging-configuration.level == 'ERROR'
|| input.logging-configuration.level == 'FATAL'
|| input.logging-configuration.level == 'OFF'
non-OFF logging requires log-destination.
Rule logic
- When
input.logging-configuration.level != null
&& input.logging-configuration.level != 'OFF'- Require
input.logging-configuration.log-destination != null
Encryption configuration rules
encryption-configuration type must be AWS_OWNED_KEY or CUSTOMER_MANAGED_KMS_KEY.
Rule logic
- When
input.encryption-configuration != null- Require
input.encryption-configuration.type == 'AWS_OWNED_KEY'
|| input.encryption-configuration.type == 'CUSTOMER_MANAGED_KMS_KEY'
customer-managed encryption requires kms-key-id.
Rule logic
- When
input.encryption-configuration.type == 'CUSTOMER_MANAGED_KMS_KEY'- Require
input.encryption-configuration.kms-key-id != null
kms-data-key-reuse-period-seconds must be between 60 and 900.
Rule logic
- When
input.encryption-configuration.kms-data-key-reuse-period-seconds != null- Require
input.encryption-configuration.kms-data-key-reuse-period-seconds >= 60
&& input.encryption-configuration.kms-data-key-reuse-period-seconds <= 900
Outputs¶
arn
string
revision-id
string