Add write (POST) endpoints #5

Open
opened 2026-05-16 10:02:13 +02:00 by heiko · 1 comment
Owner

Plan 8: Write (POST) endpoints

Prerequisites

  • Plan 6b (HTTP method in YAML) — required, all these need POST
  • Plan 6a (type rename) — nice-to-have

Endpoints

contact-create / contact-modify / contact-delete

contact-create has many required fields (name/fname+lname, email, address-1,
city, postal-code, country, phone) plus TLD-specific optional fields.
See doc/DMAPI-ext.txt "contact-create" section for full list.

contact-modify: same fields as contact-create but only handle is required.
contact-delete: params: handle (string, required)

ns-create (alias: host-create) / ns-modify / ns-delete

ns-create: host (string, required), ip (string — can repeat, unclear if
the current param model supports multi-value)
ns-modify: host (string, required), ip (string)
ns-delete: host (string, required)

Note: multi-value ip param needs investigation. The Joker API may accept
ip=1.2.3.4&ip=5.6.7.8. url.Values supports this natively — check whether
the current queryValues() uses Add or Set.

domain-register

Required: domain, period (months!), status (="production"), owner-c,
billing-c, admin-c, tech-c, ns-list (colon-delimited)
Optional: autorenew (bool), language (string), registrar-tag, privacy (basic|pro)

domain-renew

Required: domain, period (months)
Optional: expiration-date (YYYY-MM-DD)

domain-delete

Required: domain

domain-redeem

Required: domain

domain-owner-change

Required: domain, owner-c (new owner contact handle)

domain-lock / domain-unlock

Required: domain

domain-set-property

Required: domain, property (string), value (string)

dns-zone-put

Required: domain, zone (the zone file content)
This is the odd one out: the zone content is potentially large.
Check whether Joker accepts it as a query param or needs a POST body.
If body, the current request.go needs extension.

grants-invite

Required: domain, email, role (owner|admin|billing|tech)

grants-revoke

Required: domain, email

After adding

Run go generate ./... and commit api.yaml + api.go together.

# Plan 8: Write (POST) endpoints ## Prerequisites - Plan 6b (HTTP method in YAML) — required, all these need POST - Plan 6a (type rename) — nice-to-have ## Endpoints ### contact-create / contact-modify / contact-delete contact-create has many required fields (name/fname+lname, email, address-1, city, postal-code, country, phone) plus TLD-specific optional fields. See `doc/DMAPI-ext.txt` "contact-create" section for full list. contact-modify: same fields as contact-create but only `handle` is required. contact-delete: params: handle (string, required) ### ns-create (alias: host-create) / ns-modify / ns-delete ns-create: host (string, required), ip (string — can repeat, unclear if the current param model supports multi-value) ns-modify: host (string, required), ip (string) ns-delete: host (string, required) Note: multi-value `ip` param needs investigation. The Joker API may accept `ip=1.2.3.4&ip=5.6.7.8`. `url.Values` supports this natively — check whether the current `queryValues()` uses `Add` or `Set`. ### domain-register Required: domain, period (months!), status (="production"), owner-c, billing-c, admin-c, tech-c, ns-list (colon-delimited) Optional: autorenew (bool), language (string), registrar-tag, privacy (basic|pro) ### domain-renew Required: domain, period (months) Optional: expiration-date (YYYY-MM-DD) ### domain-delete Required: domain ### domain-redeem Required: domain ### domain-owner-change Required: domain, owner-c (new owner contact handle) ### domain-lock / domain-unlock Required: domain ### domain-set-property Required: domain, property (string), value (string) ### dns-zone-put Required: domain, zone (the zone file content) This is the odd one out: the zone content is potentially large. Check whether Joker accepts it as a query param or needs a POST body. If body, the current request.go needs extension. ### grants-invite Required: domain, email, role (owner|admin|billing|tech) ### grants-revoke Required: domain, email ## After adding Run `go generate ./...` and commit `api.yaml` + `api.go` together.
Author
Owner

AI attribution comment added per repository instruction for this open issue.\n\n(co)authored by ai:gpt-5-codex

AI attribution comment added per repository instruction for this open issue.\n\n(co)authored by ai:gpt-5-codex
Sign in to join this conversation.
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
IUS/joker-dmapi-client#5
No description provided.