{"openapi":"3.1.0","info":{"title":"EPP Form Builder API","version":"0.1.0","description":"Swagger-compatible OpenAPI contract for the standalone EPP form builder. The API exposes forms, publishing, submissions, and EPP connector acknowledgements."},"servers":[{"url":"/api/epp"}],"tags":[{"name":"Forms","description":"Create, update, and publish form definitions."},{"name":"Events","description":"Read event workspaces and editable event master data."},{"name":"Submissions","description":"Capture public submissions and mapped EPP payloads."},{"name":"Uploads","description":"Create short-lived public upload sessions for file fields."},{"name":"Connectors","description":"Acknowledge queued PDF, calendar, email, approval, backend, scheduling, and report packets."}],"paths":{"/forms":{"get":{"tags":["Forms"],"summary":"List forms","security":[{"EppAdminToken":[]},{"EppBearerToken":[]}],"responses":{"200":{"description":"Forms returned"},"401":{"description":"Admin token missing or invalid","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorBody"}}}},"503":{"description":"Database is not configured or unavailable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorBody"}}}}}},"post":{"tags":["Forms"],"summary":"Create a form from an EPP template","security":[{"EppAdminToken":[]},{"EppBearerToken":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateFormRequest"}}}},"responses":{"201":{"description":"Form created"},"400":{"description":"Request body must be valid JSON","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorBody"}}}},"401":{"description":"Admin token missing or invalid","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorBody"}}}},"409":{"description":"Form slug already exists","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorBody"}}}},"422":{"description":"Request body failed schema validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorBody"}}}},"503":{"description":"Database is not configured or unavailable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorBody"}}}}}}},"/forms/{formId}":{"get":{"tags":["Forms"],"summary":"Get a form","security":[{"EppAdminToken":[]},{"EppBearerToken":[]}],"parameters":[{"$ref":"#/components/parameters/FormId"}],"responses":{"200":{"description":"Form returned"},"400":{"description":"Invalid formId","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorBody"}}}},"401":{"description":"Admin token missing or invalid","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorBody"}}}},"404":{"description":"Form not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorBody"}}}},"503":{"description":"Database is not configured or unavailable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorBody"}}}}}},"patch":{"tags":["Forms"],"summary":"Update a form","security":[{"EppAdminToken":[]},{"EppBearerToken":[]}],"parameters":[{"$ref":"#/components/parameters/FormId"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateFormRequest"}}}},"responses":{"200":{"description":"Form updated"},"400":{"description":"Invalid formId, schema, or related event-data reference","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorBody"}}}},"401":{"description":"Admin token missing or invalid","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorBody"}}}},"404":{"description":"Form not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorBody"}}}},"409":{"description":"Form slug or related unique constraint conflict","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorBody"}}}},"422":{"description":"Invalid request body","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorBody"}}}},"503":{"description":"Database is not configured or unavailable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorBody"}}}}}},"delete":{"tags":["Forms"],"summary":"Delete a form and its submissions, versions, packets, and idempotency keys","security":[{"EppAdminToken":[]},{"EppBearerToken":[]}],"parameters":[{"$ref":"#/components/parameters/FormId"}],"responses":{"200":{"description":"Form deleted"},"400":{"description":"Invalid formId","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorBody"}}}},"401":{"description":"Admin token missing or invalid","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorBody"}}}},"404":{"description":"Form not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorBody"}}}},"503":{"description":"Database is not configured or unavailable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorBody"}}}}}}},"/forms/{formId}/clone":{"post":{"tags":["Forms"],"summary":"Duplicate a form as a JSON-native draft or event import","security":[{"EppAdminToken":[]},{"EppBearerToken":[]}],"parameters":[{"$ref":"#/components/parameters/FormId"}],"requestBody":{"required":false,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CloneFormRequest"}}}},"responses":{"200":{"description":"Form duplicated"},"400":{"description":"Invalid formId or target event","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorBody"}}}},"401":{"description":"Admin token missing or invalid","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorBody"}}}},"404":{"description":"Form not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorBody"}}}},"409":{"description":"Generated clone slug conflicts with an existing form","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorBody"}}}},"503":{"description":"Database is not configured or unavailable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorBody"}}}}}}},"/forms/{formId}/publish":{"post":{"tags":["Forms"],"summary":"Publish a form","security":[{"EppAdminToken":[]},{"EppBearerToken":[]}],"parameters":[{"$ref":"#/components/parameters/FormId"}],"responses":{"200":{"description":"Form published"},"400":{"description":"Invalid formId or form is not publish-ready","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorBody"}}}},"401":{"description":"Admin token missing or invalid","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorBody"}}}},"404":{"description":"Form not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorBody"}}}},"503":{"description":"Database is not configured or unavailable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorBody"}}}}}}},"/forms/{formId}/versions":{"get":{"tags":["Forms"],"summary":"List immutable published versions for a form","security":[{"EppAdminToken":[]},{"EppBearerToken":[]}],"parameters":[{"$ref":"#/components/parameters/FormId"}],"responses":{"200":{"description":"Versions returned"},"400":{"description":"Invalid formId","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorBody"}}}},"401":{"description":"Admin token missing or invalid","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorBody"}}}},"404":{"description":"Form not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorBody"}}}},"503":{"description":"Database is not configured or unavailable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorBody"}}}}}}},"/forms/{formId}/submissions":{"get":{"tags":["Submissions"],"summary":"List submissions for a form","security":[{"EppAdminToken":[]},{"EppBearerToken":[]}],"parameters":[{"$ref":"#/components/parameters/FormId"}],"responses":{"200":{"description":"Submissions returned"},"400":{"description":"Invalid formId","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorBody"}}}},"401":{"description":"Admin token missing or invalid","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorBody"}}}},"503":{"description":"Database is not configured or unavailable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorBody"}}}}}},"post":{"tags":["Submissions"],"summary":"Submit a public response","description":"Public endpoint. Forms whose JSON access policy sets publicTokenRequired must send X-EPP-Public-Token with the form-scoped token from the secure embed URL.","security":[{},{"EppPublicToken":[]}],"parameters":[{"$ref":"#/components/parameters/FormId"},{"$ref":"#/components/parameters/PublicTokenHeader"},{"name":"X-Idempotency-Key","in":"header","required":false,"description":"Optional UUID-shaped key. The first successful response for a given key is cached for 24h; repeats return the same response.","schema":{"type":"string","minLength":8,"maxLength":128}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateSubmissionRequest"}}}},"responses":{"200":{"description":"Idempotent replay of a previous submission"},"201":{"description":"Submission captured and connector packets queued"},"400":{"description":"Invalid formId or idempotency request is still processing","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorBody"}}}},"403":{"description":"Form is inactive (FORM_INACTIVE)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorBody"}}}},"404":{"description":"Form not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorBody"}}}},"409":{"description":"CAPACITY_EXCEEDED, DUPLICATE, or IDEMPOTENCY_CONFLICT","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorBody"}}}},"422":{"description":"VALIDATION_ERROR with fieldErrors[]","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorBody"}}}},"429":{"description":"Public submission rate limit exceeded","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorBody"}}}},"503":{"description":"Database is not configured or unavailable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorBody"}}}}}}},"/forms/{formId}/connector-packets":{"get":{"tags":["Connectors"],"summary":"List connector packets for a form","description":"Admin-only JSON readback for queued connector packets. Public submission POST responses expose only connectorPacketCount.","security":[{"EppAdminToken":[]},{"EppBearerToken":[]}],"parameters":[{"$ref":"#/components/parameters/FormId"},{"name":"submissionId","in":"query","required":false,"description":"Optional repeated submission id filter, e.g. ?submissionId=...&submissionId=...","schema":{"type":"array","items":{"type":"string","format":"uuid"}},"style":"form","explode":true}],"responses":{"200":{"description":"Connector packets returned","content":{"application/json":{"schema":{"type":"object","required":["data"],"properties":{"data":{"type":"array","items":{"$ref":"#/components/schemas/ConnectorPacket"}}}}}}},"400":{"description":"Invalid formId or submissionId","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorBody"}}}},"401":{"description":"Admin token missing or invalid","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorBody"}}}},"503":{"description":"Database is not configured or unavailable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorBody"}}}}}}},"/forms/{formId}/uploads/initiate":{"post":{"tags":["Uploads"],"summary":"Create a public upload session for a published file field","description":"Public endpoint. Token-protected forms must send the same X-EPP-Public-Token used for the public form submission.","security":[{},{"EppPublicToken":[]}],"parameters":[{"$ref":"#/components/parameters/FormId"},{"$ref":"#/components/parameters/PublicTokenHeader"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/InitiateUploadRequest"}}}},"responses":{"200":{"description":"Upload session created"},"400":{"description":"Invalid formId, upload field, file size, or file type","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorBody"}}}},"403":{"description":"Form is inactive (FORM_INACTIVE)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorBody"}}}},"404":{"description":"Form not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorBody"}}}},"422":{"description":"Invalid request body","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorBody"}}}},"503":{"description":"Database or upload storage is not configured or unavailable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorBody"}}}}}}},"/forms/{formId}/uploads/{uploadSessionId}/content":{"put":{"tags":["Uploads"],"summary":"Upload file content through the FormBuilderStudio app proxy","parameters":[{"$ref":"#/components/parameters/FormId"},{"$ref":"#/components/parameters/UploadSessionId"}],"requestBody":{"required":true,"content":{"application/octet-stream":{"schema":{"type":"string","format":"binary"}}}},"responses":{"200":{"description":"Upload session content stored"},"400":{"description":"Upload session is expired, already used, or content mismatched","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorBody"}}}},"404":{"description":"Upload session not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorBody"}}}},"503":{"description":"Database or upload storage is not configured or unavailable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorBody"}}}}}}},"/forms/{formId}/submissions/{submissionId}/files/{fileId}/download":{"get":{"tags":["Uploads"],"summary":"Download an uploaded submission file","security":[{"EppAdminToken":[]},{"EppBearerToken":[]}],"parameters":[{"$ref":"#/components/parameters/FormId"},{"$ref":"#/components/parameters/SubmissionId"},{"$ref":"#/components/parameters/FileId"}],"responses":{"200":{"description":"File content returned as an attachment","content":{"application/octet-stream":{"schema":{"type":"string","format":"binary"}}}},"400":{"description":"Invalid formId, submissionId, fileId, or storage mismatch","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorBody"}}}},"401":{"description":"Admin token missing or invalid","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorBody"}}}},"404":{"description":"File not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorBody"}}}},"503":{"description":"Database or upload storage is not configured or unavailable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorBody"}}}}}}},"/connectors/{packetId}/ack":{"post":{"tags":["Connectors"],"summary":"Acknowledge or fail a connector packet","security":[{"EppAdminToken":[]},{"EppBearerToken":[]}],"parameters":[{"$ref":"#/components/parameters/PacketId"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/AckConnectorRequest"}}}},"responses":{"200":{"description":"Connector packet updated","content":{"application/json":{"schema":{"type":"object","required":["data"],"properties":{"data":{"$ref":"#/components/schemas/ConnectorPacket"}}}}}},"400":{"description":"Invalid packetId","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorBody"}}}},"401":{"description":"Admin token missing or invalid","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorBody"}}}},"404":{"description":"Connector packet not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorBody"}}}},"422":{"description":"Invalid request body","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorBody"}}}},"503":{"description":"Database is not configured or unavailable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorBody"}}}}}}},"/events":{"get":{"tags":["Events"],"summary":"List event workspaces","security":[{"EppAdminToken":[]},{"EppBearerToken":[]}],"responses":{"200":{"description":"Events returned"},"401":{"description":"Admin token missing or invalid","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorBody"}}}},"503":{"description":"Database is not configured or unavailable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorBody"}}}}}}},"/events/{eventId}/data":{"get":{"tags":["Events"],"summary":"Get event master data and mapped records","security":[{"EppAdminToken":[]},{"EppBearerToken":[]}],"parameters":[{"$ref":"#/components/parameters/EventId"}],"responses":{"200":{"description":"Event data returned"},"400":{"description":"Invalid eventId","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorBody"}}}},"401":{"description":"Admin token missing or invalid","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorBody"}}}},"404":{"description":"Event not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorBody"}}}},"503":{"description":"Database is not configured or unavailable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorBody"}}}}}},"patch":{"tags":["Events"],"summary":"Update one event-data record","security":[{"EppAdminToken":[]},{"EppBearerToken":[]}],"parameters":[{"$ref":"#/components/parameters/EventId"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateEventRecordRequest"}}}},"responses":{"200":{"description":"Event-data record updated"},"400":{"description":"Invalid eventId or related event-data reference","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorBody"}}}},"401":{"description":"Admin token missing or invalid","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorBody"}}}},"404":{"description":"Event-data record not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorBody"}}}},"409":{"description":"Event-data unique constraint conflict","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorBody"}}}},"422":{"description":"Invalid request body","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorBody"}}}},"503":{"description":"Database is not configured or unavailable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorBody"}}}}}},"post":{"tags":["Events"],"summary":"Create one event-data record","security":[{"EppAdminToken":[]},{"EppBearerToken":[]}],"parameters":[{"$ref":"#/components/parameters/EventId"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateEventRecordRequest"}}}},"responses":{"201":{"description":"Event-data record created"},"400":{"description":"Invalid eventId or related event-data reference","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorBody"}}}},"401":{"description":"Admin token missing or invalid","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorBody"}}}},"409":{"description":"Event-data unique constraint conflict","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorBody"}}}},"422":{"description":"Invalid request body","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorBody"}}}},"503":{"description":"Database is not configured or unavailable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorBody"}}}}}},"delete":{"tags":["Events"],"summary":"Delete one event-data record","security":[{"EppAdminToken":[]},{"EppBearerToken":[]}],"parameters":[{"$ref":"#/components/parameters/EventId"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/DeleteEventRecordRequest"}}}},"responses":{"200":{"description":"Event-data record deleted"},"400":{"description":"Invalid eventId","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorBody"}}}},"401":{"description":"Admin token missing or invalid","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorBody"}}}},"404":{"description":"Event-data record not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorBody"}}}},"422":{"description":"Invalid request body","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorBody"}}}},"503":{"description":"Database is not configured or unavailable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorBody"}}}}}}}},"components":{"securitySchemes":{"EppAdminToken":{"type":"apiKey","in":"header","name":"x-epp-admin-token"},"EppBearerToken":{"type":"http","scheme":"bearer"},"EppPublicToken":{"type":"apiKey","in":"header","name":"x-epp-public-token","description":"Form-scoped public access token required only when the published JSON access policy sets publicTokenRequired."}},"parameters":{"FormId":{"name":"formId","in":"path","required":true,"schema":{"type":"string","format":"uuid"}},"PacketId":{"name":"packetId","in":"path","required":true,"schema":{"type":"string","format":"uuid"}},"UploadSessionId":{"name":"uploadSessionId","in":"path","required":true,"schema":{"type":"string","format":"uuid"}},"SubmissionId":{"name":"submissionId","in":"path","required":true,"schema":{"type":"string","format":"uuid"}},"FileId":{"name":"fileId","in":"path","required":true,"schema":{"type":"string","format":"uuid"}},"EventId":{"name":"eventId","in":"path","required":true,"schema":{"type":"string","format":"uuid"}},"PublicTokenHeader":{"name":"X-EPP-Public-Token","in":"header","required":false,"description":"Form-scoped public access token from the secure embed URL. Required when the published form has policies.access.publicTokenRequired enabled.","schema":{"type":"string","minLength":16}}},"schemas":{"CreateFormRequest":{"type":"object","properties":{"templateKey":{"type":"string","enum":["blank-form","event-rsvp","forum-registration","meeting-request","sme-request","approval-request","external-appointment","simple-registration","forum-choice","approval-rsvp"]},"eventId":{"type":"string","format":"uuid"},"name":{"type":"string","maxLength":160},"slug":{"type":"string","pattern":"^[a-z0-9]+(?:-[a-z0-9]+)*$"}}},"CloneFormRequest":{"type":"object","additionalProperties":false,"properties":{"eventId":{"type":"string","format":"uuid","nullable":true},"status":{"type":"string","enum":["draft","archived"]}}},"UpdateFormRequest":{"type":"object","additionalProperties":false,"minProperties":1,"properties":{"name":{"type":"string","maxLength":160},"description":{"type":"string","maxLength":1000},"status":{"type":"string","enum":["draft","archived"]},"eventId":{"type":"string","format":"uuid","nullable":true},"schema":{"type":"object","additionalProperties":true}}},"CreateSubmissionRequest":{"type":"object","required":["values"],"properties":{"values":{"type":"object","additionalProperties":true},"idempotencyKey":{"type":"string","minLength":8,"maxLength":128}}},"InitiateUploadRequest":{"type":"object","required":["fieldId","filename","contentType","sizeBytes"],"additionalProperties":false,"properties":{"fieldId":{"type":"string","minLength":1,"maxLength":160},"filename":{"type":"string","minLength":1,"maxLength":255},"contentType":{"type":"string","minLength":1,"maxLength":160},"sizeBytes":{"type":"integer","minimum":1}}},"UpdateEventRecordRequest":{"type":"object","oneOf":[{"$ref":"#/components/schemas/UpdateCompanyRecordRequest"},{"$ref":"#/components/schemas/UpdateContactRecordRequest"},{"$ref":"#/components/schemas/UpdateInternalAttendeeRecordRequest"},{"$ref":"#/components/schemas/UpdateTopicRecordRequest"},{"$ref":"#/components/schemas/UpdateLocationRecordRequest"},{"$ref":"#/components/schemas/UpdateTimeSlotRecordRequest"}]},"CreateEventRecordRequest":{"type":"object","oneOf":[{"$ref":"#/components/schemas/CreateCompanyRecordRequest"},{"$ref":"#/components/schemas/CreateContactRecordRequest"},{"$ref":"#/components/schemas/CreateInternalAttendeeRecordRequest"},{"$ref":"#/components/schemas/CreateTopicRecordRequest"},{"$ref":"#/components/schemas/CreateLocationRecordRequest"},{"$ref":"#/components/schemas/CreateTimeSlotRecordRequest"}]},"DeleteEventRecordRequest":{"type":"object","required":["kind","id"],"properties":{"kind":{"type":"string","enum":["company","contact","internalAttendee","topic","location","timeSlot"]},"id":{"type":"string","format":"uuid"}}},"CreateCompanyRecordRequest":{"type":"object","required":["kind","values"],"properties":{"kind":{"type":"string","enum":["company"]},"values":{"type":"object","required":["name"],"properties":{"name":{"type":"string","minLength":1},"website":{"type":"string"},"tier":{"type":"string"},"notes":{"type":"string"}}}}},"CreateContactRecordRequest":{"type":"object","required":["kind","values"],"properties":{"kind":{"type":"string","enum":["contact"]},"values":{"type":"object","required":["firstName","lastName","email"],"properties":{"companyId":{"type":"string","format":"uuid","nullable":true},"firstName":{"type":"string","minLength":1},"lastName":{"type":"string","minLength":1},"email":{"type":"string","minLength":1},"title":{"type":"string"},"phone":{"type":"string"},"country":{"type":"string"}}}}},"CreateInternalAttendeeRecordRequest":{"type":"object","required":["kind","values"],"properties":{"kind":{"type":"string","enum":["internalAttendee"]},"values":{"type":"object","required":["firstName","lastName","email"],"properties":{"mappedWithId":{"type":"number","nullable":true},"firstName":{"type":"string","minLength":1},"lastName":{"type":"string","minLength":1},"email":{"type":"string","minLength":1},"title":{"type":"string"},"team":{"type":"string"},"isSme":{"type":"boolean","default":false}}}}},"CreateTopicRecordRequest":{"type":"object","required":["kind","values"],"properties":{"kind":{"type":"string","enum":["topic"]},"values":{"type":"object","required":["name"],"properties":{"name":{"type":"string","minLength":1},"description":{"type":"string"},"mappedWithId":{"type":"number","nullable":true}}}}},"CreateLocationRecordRequest":{"type":"object","required":["kind","values"],"properties":{"kind":{"type":"string","enum":["location"]},"values":{"type":"object","required":["name"],"properties":{"mappedWithId":{"type":"number","nullable":true},"name":{"type":"string","minLength":1},"capacity":{"type":"number","minimum":0,"nullable":true},"address":{"type":"string"}}}}},"CreateTimeSlotRecordRequest":{"type":"object","required":["kind","values"],"properties":{"kind":{"type":"string","enum":["timeSlot"]},"values":{"type":"object","required":["label","startsAt","endsAt"],"properties":{"locationId":{"type":"string","format":"uuid","nullable":true},"label":{"type":"string","minLength":1},"startsAt":{"type":"string","format":"date-time"},"endsAt":{"type":"string","format":"date-time"},"capacity":{"type":"number","minimum":0,"nullable":true}}}}},"UpdateCompanyRecordRequest":{"type":"object","required":["kind","id","values"],"properties":{"kind":{"type":"string","enum":["company"]},"id":{"type":"string","format":"uuid"},"values":{"type":"object","additionalProperties":false,"minProperties":1,"properties":{"name":{"type":"string","minLength":1},"website":{"type":"string"},"tier":{"type":"string"},"notes":{"type":"string"},"active":{"type":"boolean"}}}}},"UpdateContactRecordRequest":{"type":"object","required":["kind","id","values"],"properties":{"kind":{"type":"string","enum":["contact"]},"id":{"type":"string","format":"uuid"},"values":{"type":"object","additionalProperties":false,"minProperties":1,"properties":{"mappedWithId":{"type":"number","nullable":true},"firstName":{"type":"string","minLength":1},"lastName":{"type":"string","minLength":1},"email":{"type":"string","minLength":1},"title":{"type":"string"},"phone":{"type":"string"},"country":{"type":"string"},"active":{"type":"boolean"}}}}},"UpdateInternalAttendeeRecordRequest":{"type":"object","required":["kind","id","values"],"properties":{"kind":{"type":"string","enum":["internalAttendee"]},"id":{"type":"string","format":"uuid"},"values":{"type":"object","additionalProperties":false,"minProperties":1,"properties":{"mappedWithId":{"type":"number","nullable":true},"firstName":{"type":"string","minLength":1},"lastName":{"type":"string","minLength":1},"email":{"type":"string","minLength":1},"title":{"type":"string"},"team":{"type":"string"},"isSme":{"type":"boolean"},"active":{"type":"boolean"}}}}},"UpdateTopicRecordRequest":{"type":"object","required":["kind","id","values"],"properties":{"kind":{"type":"string","enum":["topic"]},"id":{"type":"string","format":"uuid"},"values":{"type":"object","additionalProperties":false,"minProperties":1,"properties":{"name":{"type":"string","minLength":1},"description":{"type":"string"},"mappedWithId":{"type":"number","nullable":true},"active":{"type":"boolean"}}}}},"UpdateLocationRecordRequest":{"type":"object","required":["kind","id","values"],"properties":{"kind":{"type":"string","enum":["location"]},"id":{"type":"string","format":"uuid"},"values":{"type":"object","additionalProperties":false,"minProperties":1,"properties":{"mappedWithId":{"type":"number","nullable":true},"name":{"type":"string","minLength":1},"capacity":{"type":"number","minimum":0,"nullable":true},"address":{"type":"string"},"active":{"type":"boolean"}}}}},"UpdateTimeSlotRecordRequest":{"type":"object","required":["kind","id","values"],"properties":{"kind":{"type":"string","enum":["timeSlot"]},"id":{"type":"string","format":"uuid"},"values":{"type":"object","additionalProperties":false,"minProperties":1,"properties":{"locationId":{"type":"string","format":"uuid","nullable":true},"label":{"type":"string","minLength":1},"startsAt":{"type":"string","format":"date-time"},"endsAt":{"type":"string","format":"date-time"},"capacity":{"type":"number","minimum":0,"nullable":true},"active":{"type":"boolean"}}}}},"AckConnectorRequest":{"type":"object","additionalProperties":false,"properties":{"status":{"type":"string","enum":["acked","failed"],"default":"acked"}}},"ConnectorPacket":{"type":"object","required":["id","formId","submissionId","kind","delivery","status","payload","createdAt","ackedAt"],"properties":{"id":{"type":"string","format":"uuid"},"formId":{"type":"string","format":"uuid"},"submissionId":{"type":"string","format":"uuid","nullable":true},"kind":{"type":"string","enum":["approval","pdf","calendar","email","backend","schedule","report"]},"delivery":{"type":"string","enum":["pull","webhook","manual"]},"status":{"type":"string","enum":["queued","acked","failed"]},"payload":{"type":"object","additionalProperties":true},"createdAt":{"type":"string","format":"date-time"},"ackedAt":{"type":"string","format":"date-time","nullable":true}}},"ErrorBody":{"type":"object","required":["success","error"],"properties":{"success":{"type":"boolean","enum":[false]},"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string","enum":["NOT_FOUND","UNAUTHORIZED","BAD_REQUEST","VALIDATION_ERROR","FORM_INACTIVE","CAPACITY_EXCEEDED","DUPLICATE","IDEMPOTENCY_CONFLICT","ADMIN_AUTH_NOT_CONFIGURED","DATABASE_UNAVAILABLE","INTERNAL_ERROR"]},"message":{"type":"string"},"fieldErrors":{"type":"array","items":{"type":"object","required":["fieldId","message"],"properties":{"fieldId":{"type":"string"},"label":{"type":"string"},"message":{"type":"string"}}}}}}}}}}}