aws.route53.create_record
Create or upsert a Route 53 DNS record (UPSERT — idempotent)
Create or upsert a DNS record in an Amazon Route 53 hosted zone.
Uses the UPSERT action so the operation is idempotent — running it twice with the same inputs produces the same result.
Inputs:
- hosted_zone_id: Route 53 hosted zone ID (required), e.g. Z1234567890ABC.
- record_name: Fully-qualified DNS name, e.g. api.example.com (required).
- record_type: A | AAAA | CNAME | TXT | MX | NS | etc. (required).
- record_value: Record value(s) — a single string or a list of strings (required).
- ttl: TTL in seconds (optional, default: 300).
- comment: Change batch comment (optional).
- connection_uuid: Cloud connection UUID for AWS credentials (required).
Outputs (terminal state_data):
- change_id: str — Route 53 change ID
- status: str — PENDING | INSYNC
Compensation: Use aws.route53.delete_record to remove the record. Plugin required: context.get_plugin("aws") must expose .route53_client().
Overview
| Property | Value |
|---|---|
| Workflow type | Atomic |
| Library | Base-aws |
| Version | 1.0 |
Input Schema
| Field | Type | Required | Default | Description |
|---|---|---|---|---|
hosted_zone_id | string | Yes | — | Route 53 hosted zone ID |
record_name | string | Yes | — | Fully-qualified DNS record name |
record_type | string | Yes | — | DNS record type: A, AAAA, CNAME, TXT, MX, etc. |
record_value | json | Yes | — | Value string or list of value strings |
ttl | integer | No | — | TTL in seconds (default: 300) |
comment | string | No | — | Change batch comment |
connection_uuid | uuid | Yes | — | Cloud connection UUID for AWS credentials |
Output Schema
| Field | Type | Required | Default | Description |
|---|---|---|---|---|
change_id | string | No | — | — |
status | string | No | — | — |
comment | string | No | — | — |
connection_uuid | uuid | No | — | — |
hosted_zone_id | string | No | — | — |
record_name | string | No | — | — |
record_type | string | No | — | — |
record_value | json | No | — | — |
ttl | integer | No | — | — |
failure_reason | string | No | — | — |
failure_type | string | No | — | — |
failed_action | string | No | — | — |
failed_at_state | string | No | — | — |
failed_step | string | No | — | — |
failed_layer | string | No | — | — |
error | string | No | — | — |
error_type | string | No | — | — |
States
| State | Initial | Terminal | Success | Auto-advance | Description |
|---|---|---|---|---|---|
pending | Yes | No | — | execute | — |
completed | No | Yes | Yes | — | — |
failed | No | Yes | No | — | — |
State Diagram
Transitions
| From | Action | To | Description |
|---|---|---|---|
pending | execute | completed | — |
* (any state) | fail | failed | — |
API Usage
bash
POST /api/workflows/start
Content-Type: application/json
{
"workflow_type": "aws.route53.create_record",
"initial_data": {
"hosted_zone_id": "value",
"record_name": "value",
"record_type": "value",
"record_value": "value"
}
}