import { TypeId } from "typeid-js";
export interface paths {
"/v1/ai-concierge/contexts/{context_id}": {
parameters: {
query?: never;
header?: never;
path?: never;
cookie?: never;
};
/** Get a context entry */
get: operations["get_context_v1_ai_concierge_contexts__context_id__get"];
put?: never;
post?: never;
delete?: never;
options?: never;
head?: never;
patch?: never;
trace?: never;
};
"/v1/ai-concierge/conversations": {
parameters: {
query?: never;
header?: never;
path?: never;
cookie?: never;
};
/**
* List AI Concierge conversations
* @description List the authenticated organization's AI Concierge conversations.
*/
get: operations["list_conversations_v1_ai_concierge_conversations_get"];
put?: never;
/** Create an AI Concierge conversation */
post: operations["create_conversation_v1_ai_concierge_conversations_post"];
delete?: never;
options?: never;
head?: never;
patch?: never;
trace?: never;
};
"/v1/ai-concierge/conversations/{conversation_id}": {
parameters: {
query?: never;
header?: never;
path?: never;
cookie?: never;
};
/** Get a conversation */
get: operations["get_conversation_v1_ai_concierge_conversations__conversation_id__get"];
put?: never;
post?: never;
/**
* Delete a conversation
* @description Permanently delete a conversation, its messages, and any attached contexts.
*/
delete: operations["delete_conversation_v1_ai_concierge_conversations__conversation_id__delete"];
options?: never;
head?: never;
/**
* Update a conversation
* @description Update conversation title or metadata. Supports optimistic concurrency via `If-Match`.
*/
patch: operations["patch_conversation_v1_ai_concierge_conversations__conversation_id__patch"];
trace?: never;
};
"/v1/ai-concierge/conversations/{conversation_id}/contexts": {
parameters: {
query?: never;
header?: never;
path?: never;
cookie?: never;
};
/** List contexts attached to a conversation */
get: operations["list_contexts_v1_ai_concierge_conversations__conversation_id__contexts_get"];
put?: never;
/** Attach a context to a conversation */
post: operations["create_context_v1_ai_concierge_conversations__conversation_id__contexts_post"];
delete?: never;
options?: never;
head?: never;
patch?: never;
trace?: never;
};
"/v1/ai-concierge/conversations/{conversation_id}/messages": {
parameters: {
query?: never;
header?: never;
path?: never;
cookie?: never;
};
/** List messages in a conversation */
get: operations["list_messages_v1_ai_concierge_conversations__conversation_id__messages_get"];
put?: never;
/** Append a message to a conversation */
post: operations["create_message_v1_ai_concierge_conversations__conversation_id__messages_post"];
delete?: never;
options?: never;
head?: never;
patch?: never;
trace?: never;
};
"/v1/ai-concierge/conversations/{conversation_id}/messages/{message_id}": {
parameters: {
query?: never;
header?: never;
path?: never;
cookie?: never;
};
/** Get a message */
get: operations["get_message_v1_ai_concierge_conversations__conversation_id__messages__message_id__get"];
put?: never;
post?: never;
delete?: never;
options?: never;
head?: never;
patch?: never;
trace?: never;
};
"/v1/ai-concierge/memory/facts": {
parameters: {
query?: never;
header?: never;
path?: never;
cookie?: never;
};
/**
* List long-term memory facts
* @description List long-term, organization-scoped memory facts available to the AI Concierge.
*/
get: operations["list_memory_facts_v1_ai_concierge_memory_facts_get"];
put?: never;
/** Create a long-term memory fact */
post: operations["create_memory_fact_v1_ai_concierge_memory_facts_post"];
delete?: never;
options?: never;
head?: never;
patch?: never;
trace?: never;
};
"/v1/ai-concierge/memory/facts/{fact_id}": {
parameters: {
query?: never;
header?: never;
path?: never;
cookie?: never;
};
get?: never;
put?: never;
post?: never;
/** Delete a long-term memory fact */
delete: operations["delete_memory_fact_v1_ai_concierge_memory_facts__fact_id__delete"];
options?: never;
head?: never;
/** Update a long-term memory fact */
patch: operations["patch_memory_fact_v1_ai_concierge_memory_facts__fact_id__patch"];
trace?: never;
};
"/v1/archive/email-forward-logs/aliases/{email_forward_alias_id}": {
parameters: {
query?: never;
header?: never;
path?: never;
cookie?: never;
};
/**
* Retrieve email forward logs by alias
* @description Retrieves a paginated list of email forward logs for a specific email forward alias. Only returns logs created after the email forward was created.
*/
get: operations["get_email_forward_logs_by_alias_v1_archive_email_forward_logs_aliases__email_forward_alias_id__get"];
put?: never;
post?: never;
delete?: never;
options?: never;
head?: never;
patch?: never;
trace?: never;
};
"/v1/archive/email-forward-logs/{email_forward_id}": {
parameters: {
query?: never;
header?: never;
path?: never;
cookie?: never;
};
/**
* Retrieve email forward logs
* @description Retrieves a paginated list of email forward logs for a specific email forward. Only returns logs created after the email forward was created.
*/
get: operations["get_email_forward_logs_v1_archive_email_forward_logs__email_forward_id__get"];
put?: never;
post?: never;
delete?: never;
options?: never;
head?: never;
patch?: never;
trace?: never;
};
"/v1/archive/object-logs": {
parameters: {
query?: never;
header?: never;
path?: never;
cookie?: never;
};
/**
* Retrieve all object history
* @description Retrieve all paginated audit logs with optional filtering and sorting
*/
get: operations["get_object_logs_v1_archive_object_logs_get"];
put?: never;
post?: never;
delete?: never;
options?: never;
head?: never;
patch?: never;
trace?: never;
};
"/v1/archive/object-logs/{object_id}": {
parameters: {
query?: never;
header?: never;
path?: never;
cookie?: never;
};
/**
* Retrieve object history
* @description Retrieve paginated audit logs for a specific object with optional filtering and sorting
*/
get: operations["get_object_logs_by_object_id_v1_archive_object_logs__object_id__get"];
put?: never;
post?: never;
delete?: never;
options?: never;
head?: never;
patch?: never;
trace?: never;
};
"/v1/archive/request-history": {
parameters: {
query?: never;
header?: never;
path?: never;
cookie?: never;
};
/**
* Retrieve request history logs
* @description Retrieves a paginated list of request history logs
*/
get: operations["get_request_history_v1_archive_request_history_get"];
put?: never;
post?: never;
delete?: never;
options?: never;
head?: never;
patch?: never;
trace?: never;
};
"/v1/auth/client_credentials/introspect": {
parameters: {
query?: never;
header?: never;
path?: never;
cookie?: never;
};
/**
* Introspect the current API key
* @description Returns the stored record for the API key (or organization token) used to authenticate the request, including its organization. Requires API-key or organization-token authentication; user tokens are rejected.
*/
get: operations["introspect_client_credential_v1_auth_client_credentials_introspect_get"];
put?: never;
post?: never;
delete?: never;
options?: never;
head?: never;
patch?: never;
trace?: never;
};
"/v1/auth/signup": {
parameters: {
query?: never;
header?: never;
path?: never;
cookie?: never;
};
get?: never;
put?: never;
/** Signup */
post: operations["signup_v1_auth_signup_post"];
delete?: never;
options?: never;
head?: never;
patch?: never;
trace?: never;
};
"/v1/auth/token": {
parameters: {
query?: never;
header?: never;
path?: never;
cookie?: never;
};
get?: never;
put?: never;
/** Issue Organization Token */
post: operations["issue_organization_token_v1_auth_token_post"];
delete?: never;
options?: never;
head?: never;
patch?: never;
trace?: never;
};
"/v1/availability": {
parameters: {
query?: never;
header?: never;
path?: never;
cookie?: never;
};
/**
* Check domain availability
* @description Check the availability of one or more domains. Invalid domains are reported per domain (status 'error' with error details) instead of failing the whole request.
*/
get: operations["bulk_availability_v1_availability_get"];
put?: never;
post?: never;
delete?: never;
options?: never;
head?: never;
patch?: never;
trace?: never;
};
"/v1/availability/stream": {
parameters: {
query?: never;
header?: never;
path?: never;
cookie?: never;
};
/**
* Stream domain availability results
* @deprecated
* @description Stream domain availability results using Server-Sent Events (SSE) until the `done` event is received.
*/
get: operations["stream_availability_v1_availability_stream_get"];
put?: never;
/**
* Stream domain availability results
* @description Stream domain availability results using Server-Sent Events (SSE) until the `done` event is received.
*/
post: operations["stream_availability_post_v1_availability_stream_post"];
delete?: never;
options?: never;
head?: never;
patch?: never;
trace?: never;
};
"/v1/contacts": {
parameters: {
query?: never;
header?: never;
path?: never;
cookie?: never;
};
/**
* List all contacts
* @description Retrieves a paginated list of all contacts
*/
get: operations["get_contacts_v1_contacts_get"];
put?: never;
/**
* Create a contact
* @description Create a new contact object to use for domain registration
*/
post: operations["create_contact_v1_contacts_post"];
delete?: never;
options?: never;
head?: never;
patch?: never;
trace?: never;
};
"/v1/contacts/attribute-sets": {
parameters: {
query?: never;
header?: never;
path?: never;
cookie?: never;
};
/** List contact attribute sets */
get: operations["list_attribute_sets_v1_contacts_attribute_sets_get"];
put?: never;
/** Create a contact attribute set */
post: operations["create_attribute_set_v1_contacts_attribute_sets_post"];
delete?: never;
options?: never;
head?: never;
patch?: never;
trace?: never;
};
"/v1/contacts/attribute-sets/{contact_attribute_set_id}": {
parameters: {
query?: never;
header?: never;
path?: never;
cookie?: never;
};
/** Retrieve a contact attribute set */
get: operations["get_attribute_set_v1_contacts_attribute_sets__contact_attribute_set_id__get"];
put?: never;
post?: never;
/** Delete a contact attribute set */
delete: operations["delete_attribute_set_v1_contacts_attribute_sets__contact_attribute_set_id__delete"];
options?: never;
head?: never;
/** Update a contact attribute set */
patch: operations["update_attribute_set_v1_contacts_attribute_sets__contact_attribute_set_id__patch"];
trace?: never;
};
"/v1/contacts/verification": {
parameters: {
query?: never;
header?: never;
path?: never;
cookie?: never;
};
/** Retrieve contact verification by token */
get: operations["get_verification_by_token_v1_contacts_verification_get"];
/** Complete contact verification with token */
put: operations["update_verification_by_token_v1_contacts_verification_put"];
post?: never;
delete?: never;
options?: never;
head?: never;
patch?: never;
trace?: never;
};
"/v1/contacts/verify": {
parameters: {
query?: never;
header?: never;
path?: never;
cookie?: never;
};
/** Email Verify Contact */
get: operations["email_verify_contact_v1_contacts_verify_get"];
put?: never;
post?: never;
delete?: never;
options?: never;
head?: never;
patch?: never;
trace?: never;
};
"/v1/contacts/{contact_id}": {
parameters: {
query?: never;
header?: never;
path?: never;
cookie?: never;
};
/** Retrieve a contact */
get: operations["get_contact_v1_contacts__contact_id__get"];
put?: never;
post?: never;
/**
* Delete a contact
* @description Deletes a contact object; only possible if the contact is not in use
*/
delete: operations["delete_contact_v1_contacts__contact_id__delete"];
options?: never;
head?: never;
patch?: never;
trace?: never;
};
"/v1/contacts/{contact_id}/link/{contact_attribute_set_id}": {
parameters: {
query?: never;
header?: never;
path?: never;
cookie?: never;
};
get?: never;
put?: never;
post?: never;
delete?: never;
options?: never;
head?: never;
/** Link a contact to a contact attribute set */
patch: operations["create_attribute_link_v1_contacts__contact_id__link__contact_attribute_set_id__patch"];
trace?: never;
};
"/v1/contacts/{contact_id}/verification": {
parameters: {
query?: never;
header?: never;
path?: never;
cookie?: never;
};
/** Retrieve contact verification by contact ID */
get: operations["get_verification_status_v1_contacts__contact_id__verification_get"];
/** Complete contact verification by contact ID */
put: operations["update_verification_v1_contacts__contact_id__verification_put"];
/** Start contact verification */
post: operations["start_contact_verification_v1_contacts__contact_id__verification_post"];
/** Delete contact verification */
delete: operations["cancel_verification_v1_contacts__contact_id__verification_delete"];
options?: never;
head?: never;
patch?: never;
trace?: never;
};
"/v1/contacts/{contact_id}/verifications": {
parameters: {
query?: never;
header?: never;
path?: never;
cookie?: never;
};
/**
* Get contact verification status
* @description Retrieve the current verification state for a contact from the contact-verification service.
*/
get: operations["get_contact_verification_status_v1_contacts__contact_id__verifications_get"];
put?: never;
post?: never;
delete?: never;
options?: never;
head?: never;
patch?: never;
trace?: never;
};
"/v1/contacts/{contact_id}/verifications/attest": {
parameters: {
query?: never;
header?: never;
path?: never;
cookie?: never;
};
get?: never;
put?: never;
/**
* Attest a contact verification
* @description Submit one or more contact-verification attestations. Returns the per-claim verification state.
*/
post: operations["attest_contact_verification_v1_contacts__contact_id__verifications_attest_post"];
delete?: never;
options?: never;
head?: never;
patch?: never;
trace?: never;
};
"/v1/dns": {
parameters: {
query?: never;
header?: never;
path?: never;
cookie?: never;
};
/** List Zones */
get: operations["list_zones_v1_dns_get"];
put?: never;
/** Create Zone */
post: operations["create_zone_v1_dns_post"];
delete?: never;
options?: never;
head?: never;
patch?: never;
trace?: never;
};
"/v1/dns/domain-forwards": {
parameters: {
query?: never;
header?: never;
path?: never;
cookie?: never;
};
/**
* List domain forwards by zone
* @description Retrieves a paginated list of domain forwards grouped by DNS zones.
*/
get: operations["list_domain_forwards_by_zone_v1_dns_domain_forwards_get"];
put?: never;
post?: never;
delete?: never;
options?: never;
head?: never;
patch?: never;
trace?: never;
};
"/v1/dns/email-forwards": {
parameters: {
query?: never;
header?: never;
path?: never;
cookie?: never;
};
/**
* List email forwards by zone
* @description Retrieves a paginated list of email forwards grouped by DNS zones.
*/
get: operations["list_email_forwards_by_zone_v1_dns_email_forwards_get"];
put?: never;
post?: never;
delete?: never;
options?: never;
head?: never;
patch?: never;
trace?: never;
};
"/v1/dns/summary": {
parameters: {
query?: never;
header?: never;
path?: never;
cookie?: never;
};
/** Get Zones Summary */
get: operations["get_zones_summary_v1_dns_summary_get"];
put?: never;
post?: never;
delete?: never;
options?: never;
head?: never;
patch?: never;
trace?: never;
};
"/v1/dns/{zone_name}": {
parameters: {
query?: never;
header?: never;
path?: never;
cookie?: never;
};
/** Get Zone */
get: operations["get_zone_v1_dns__zone_name__get"];
put?: never;
post?: never;
/** Delete Zone */
delete: operations["delete_zone_v1_dns__zone_name__delete"];
options?: never;
head?: never;
patch?: never;
trace?: never;
};
"/v1/dns/{zone_name}/dnssec/disable": {
parameters: {
query?: never;
header?: never;
path?: never;
cookie?: never;
};
get?: never;
put?: never;
/** Disable Dnssec */
post: operations["disable_dnssec_v1_dns__zone_name__dnssec_disable_post"];
delete?: never;
options?: never;
head?: never;
patch?: never;
trace?: never;
};
"/v1/dns/{zone_name}/dnssec/enable": {
parameters: {
query?: never;
header?: never;
path?: never;
cookie?: never;
};
get?: never;
put?: never;
/** Enable Dnssec */
post: operations["enable_dnssec_v1_dns__zone_name__dnssec_enable_post"];
delete?: never;
options?: never;
head?: never;
patch?: never;
trace?: never;
};
"/v1/dns/{zone_name}/domain-forwards": {
parameters: {
query?: never;
header?: never;
path?: never;
cookie?: never;
};
/**
* List domain forwards for a zone
* @description Retrieves all domain forwards configured for the specified DNS zone, including subdomains.
*/
get: operations["list_zone_domain_forwards_v1_dns__zone_name__domain_forwards_get"];
put?: never;
post?: never;
delete?: never;
options?: never;
head?: never;
patch?: never;
trace?: never;
};
"/v1/dns/{zone_name}/email-forwards": {
parameters: {
query?: never;
header?: never;
path?: never;
cookie?: never;
};
/**
* List email forwards for a zone
* @description Retrieves all email forwards configured for the specified DNS zone, including subdomains and all aliases.
*/
get: operations["list_zone_email_forwards_v1_dns__zone_name__email_forwards_get"];
put?: never;
post?: never;
delete?: never;
options?: never;
head?: never;
patch?: never;
trace?: never;
};
"/v1/dns/{zone_name}/records": {
parameters: {
query?: never;
header?: never;
path?: never;
cookie?: never;
};
get?: never;
put?: never;
post?: never;
delete?: never;
options?: never;
head?: never;
/** Patch Zone Records */
patch: operations["patch_zone_records_v1_dns__zone_name__records_patch"];
trace?: never;
};
"/v1/dns/{zone_name}/rrsets": {
parameters: {
query?: never;
header?: never;
path?: never;
cookie?: never;
};
get?: never;
/** Update Zone Rrsets */
put: operations["update_zone_rrsets_v1_dns__zone_name__rrsets_put"];
post?: never;
delete?: never;
options?: never;
head?: never;
/** Patch Zone Rrsets */
patch: operations["patch_zone_rrsets_v1_dns__zone_name__rrsets_patch"];
trace?: never;
};
"/v1/dns/{zone_name}/vanity-set": {
parameters: {
query?: never;
header?: never;
path?: never;
cookie?: never;
};
get?: never;
put?: never;
post?: never;
delete?: never;
options?: never;
head?: never;
/** Assign or clear a zone's vanity nameserver set */
patch: operations["update_zone_vanity_set_v1_dns__zone_name__vanity_set_patch"];
trace?: never;
};
"/v1/domain-forwards": {
parameters: {
query?: never;
header?: never;
path?: never;
cookie?: never;
};
/**
* List domain forwards
* @description Retrieves a paginated list of domain forwards by hostname for the organization
*/
get: operations["list_domain_forwards_v1_domain_forwards_get"];
put?: never;
/**
* Create a domain forward
* @description Creates a new domain forward configuration. Wildcard forwards can be created by using *.hostname (e.g., *.example.com).
*/
post: operations["create_domain_forward_v2_v1_domain_forwards_post"];
delete?: never;
options?: never;
head?: never;
/**
* Patch domain forward redirects
* @description Applies patch operations to update or remove redirects across hostnames and protocols. Raises an error if the domain forward or domain forward set does not exist.
*/
patch: operations["patch_redirects_v1_domain_forwards_patch"];
trace?: never;
};
"/v1/domain-forwards/metrics": {
parameters: {
query?: never;
header?: never;
path?: never;
cookie?: never;
};
/**
* Get domain forward metrics
* @description Retrieves overall metrics for domain forwards including total and unique visit counts.
*/
get: operations["metrics_v1_domain_forwards_metrics_get"];
put?: never;
post?: never;
delete?: never;
options?: never;
head?: never;
patch?: never;
trace?: never;
};
"/v1/domain-forwards/metrics/browser": {
parameters: {
query?: never;
header?: never;
path?: never;
cookie?: never;
};
/**
* Get browser statistics
* @description Retrieves visitor traffic broken down by browser type (Chrome, Safari, Firefox, etc.) with total and unique visit counts.
*/
get: operations["browser_stats_v1_domain_forwards_metrics_browser_get"];
put?: never;
post?: never;
delete?: never;
options?: never;
head?: never;
patch?: never;
trace?: never;
};
"/v1/domain-forwards/metrics/geo": {
parameters: {
query?: never;
header?: never;
path?: never;
cookie?: never;
};
/**
* Get geographic statistics
* @description Retrieves visitor traffic broken down by geographic location (country code) with visit counts.
*/
get: operations["geo_stats_v1_domain_forwards_metrics_geo_get"];
put?: never;
post?: never;
delete?: never;
options?: never;
head?: never;
patch?: never;
trace?: never;
};
"/v1/domain-forwards/metrics/platform": {
parameters: {
query?: never;
header?: never;
path?: never;
cookie?: never;
};
/**
* Get platform statistics
* @description Retrieves visitor traffic broken down by platform (Windows, Macintosh, iOS, Android, Linux) with total and unique visit counts.
*/
get: operations["platform_stats_v1_domain_forwards_metrics_platform_get"];
put?: never;
post?: never;
delete?: never;
options?: never;
head?: never;
patch?: never;
trace?: never;
};
"/v1/domain-forwards/metrics/referrer": {
parameters: {
query?: never;
header?: never;
path?: never;
cookie?: never;
};
/**
* Get referrer statistics
* @description Retrieves visitor referral sources (where traffic came from) with total and unique visit counts.
*/
get: operations["referrer_stats_v1_domain_forwards_metrics_referrer_get"];
put?: never;
post?: never;
delete?: never;
options?: never;
head?: never;
patch?: never;
trace?: never;
};
"/v1/domain-forwards/metrics/status-code": {
parameters: {
query?: never;
header?: never;
path?: never;
cookie?: never;
};
/**
* Get HTTP status code statistics
* @description Retrieves distribution of HTTP redirect status codes (301, 302, 307, 308) used across forwards.
*/
get: operations["status_code_stats_v1_domain_forwards_metrics_status_code_get"];
put?: never;
post?: never;
delete?: never;
options?: never;
head?: never;
patch?: never;
trace?: never;
};
"/v1/domain-forwards/metrics/time-series": {
parameters: {
query?: never;
header?: never;
path?: never;
cookie?: never;
};
/**
* Get domain forward time series metrics
* @description Retrieves visit counts bucketed by time intervals (hourly, daily) for the specified time range.
*/
get: operations["time_series_v1_domain_forwards_metrics_time_series_get"];
put?: never;
post?: never;
delete?: never;
options?: never;
head?: never;
patch?: never;
trace?: never;
};
"/v1/domain-forwards/metrics/user-agent": {
parameters: {
query?: never;
header?: never;
path?: never;
cookie?: never;
};
/**
* Get user agent statistics
* @description Retrieves visitor traffic broken down by user agent string with total and unique visit counts.
*/
get: operations["user_agent_stats_v1_domain_forwards_metrics_user_agent_get"];
put?: never;
post?: never;
delete?: never;
options?: never;
head?: never;
patch?: never;
trace?: never;
};
"/v1/domain-forwards/metrics/visits-by-key": {
parameters: {
query?: never;
header?: never;
path?: never;
cookie?: never;
};
/**
* Get visits grouped by key
* @description Retrieves visit metrics grouped by a specified key (url, fqdn, domain, forward, or rule) with total and unique visit counts.
*/
get: operations["visits_by_key_v1_domain_forwards_metrics_visits_by_key_get"];
put?: never;
post?: never;
delete?: never;
options?: never;
head?: never;
patch?: never;
trace?: never;
};
"/v1/domain-forwards/{hostname}": {
parameters: {
query?: never;
header?: never;
path?: never;
cookie?: never;
};
/**
* Get a domain forward
* @description Retrieves the domain forward configuration for the specified hostname
*/
get: operations["get_domain_forward_v1_domain_forwards__hostname__get"];
put?: never;
/**
* Create domain forward set
* @description Creates a new domain forward set for a specific protocol (HTTP or HTTPS). Raises an error if the set already exists.
*/
post: operations["create_domain_forward_set_v1_domain_forwards__hostname__post"];
/**
* Delete a domain forward
* @description Deletes the domain forward configuration for the specified hostname
*/
delete: operations["delete_domain_forward_v1_domain_forwards__hostname__delete"];
options?: never;
head?: never;
patch?: never;
trace?: never;
};
"/v1/domain-forwards/{hostname}/disable": {
parameters: {
query?: never;
header?: never;
path?: never;
cookie?: never;
};
get?: never;
put?: never;
post?: never;
delete?: never;
options?: never;
head?: never;
/**
* Disable domain forward
* @description Disables domain forwarding by removing DNS records. The domain forward configuration is preserved but disabled.
*/
patch: operations["disable_domain_forward_v1_domain_forwards__hostname__disable_patch"];
trace?: never;
};
"/v1/domain-forwards/{hostname}/enable": {
parameters: {
query?: never;
header?: never;
path?: never;
cookie?: never;
};
get?: never;
put?: never;
post?: never;
delete?: never;
options?: never;
head?: never;
/**
* Enable domain forward
* @description Enables domain forwarding by creating necessary DNS records
*/
patch: operations["enable_domain_forward_v1_domain_forwards__hostname__enable_patch"];
trace?: never;
};
"/v1/domain-forwards/{hostname}/{protocol}": {
parameters: {
query?: never;
header?: never;
path?: never;
cookie?: never;
};
/**
* Get domain forward set
* @description Retrieves all redirects for a specific protocol (HTTP or HTTPS) for the specified hostname
*/
get: operations["get_domain_forward_set_v1_domain_forwards__hostname___protocol__get"];
/**
* Update domain forward set
* @description Updates an existing domain forward set for a specific protocol (HTTP or HTTPS). All existing redirects for this protocol are replaced with the provided redirects. Raises an error if the set does not exist.
*/
put: operations["update_domain_forward_set_v1_domain_forwards__hostname___protocol__put"];
post?: never;
/**
* Delete domain forward set
* @description Deletes a domain forward set for a specific protocol (HTTP or HTTPS).
*/
delete: operations["delete_domain_forward_set_v1_domain_forwards__hostname___protocol__delete"];
options?: never;
head?: never;
patch?: never;
trace?: never;
};
"/v1/domain-search/suggest": {
parameters: {
query?: never;
header?: never;
path?: never;
cookie?: never;
};
/**
* Suggest domains
* @description Get a list of domain suggestions based on a search query.
*
* Suggestions are generated and ranked by relevance rather than enumerated from a fixed list, so the
* results depend on the shape of `query`:
*
* - **Keyword or phrase** (e.g. `bluewidgets`) — every result is a generated name, and its `available`
* flag is best-effort.
* - **Full domain name** (e.g. `bluewidgets.de`) — the queried domain is always returned as the first
* result, with availability checked directly against the registry.
*
* Use a full domain name, or `GET /v1/availability`, whenever you need a definitive answer about a
* specific domain.
*/
get: operations["suggest_v1_domain_search_suggest_get"];
put?: never;
post?: never;
delete?: never;
options?: never;
head?: never;
patch?: never;
trace?: never;
};
"/v1/domains": {
parameters: {
query?: never;
header?: never;
path?: never;
cookie?: never;
};
/**
* List all domains
* @description Retrieves a paginated list of all active domains.
*/
get: operations["get_domains_v1_domains_get"];
put?: never;
/**
* Create a domain
* @description Registers a new domain.
*
* - **Premium domains** - when the registry classifies the domain as premium, an `expected_price` must be supplied to confirm the non-standard price returned by the availability check. See the [Premium domains](/products/domains/premium) guide for background on how premium domains are priced and registered.
* - **Trademark claims (TMCH)** - when the TLD is in its claims phase and the domain matches a trademark in the Trademark Clearinghouse, a `claims_notice_acceptance_hash` must be supplied to acknowledge the corresponding claims notice. See the [Trademarked domains](/products/domains/trademarked-domains) guide for the full workflow.
*/
post: operations["create_domain_v1_domains_post"];
delete?: never;
options?: never;
head?: never;
patch?: never;
trace?: never;
};
"/v1/domains/check": {
parameters: {
query?: never;
header?: never;
path?: never;
cookie?: never;
};
/**
* Check domain availability and registration metadata
* @description Performs a real-time check against the authoritative registry for each domain and returns availability plus any registry-specific metadata needed to register it.
*
* For each domain the response includes:
* - **Availability** - whether the domain can be registered, and the registry's reason if not.
* - **Premium status and pricing** - whether the domain is classified as premium by the registry, and if so, the price per action (create / renew / transfer / restore). See the [Premium domains](/products/domains/premium) guide for background on how premium domains are priced and registered.
* - **Trademark claims (TMCH)** - when the TLD is in its claims phase and the domain matches a trademark in the Trademark Clearinghouse, a `claims_key` is returned. See the [Trademarked domains](/products/domains/trademarked-domains) guide for the full workflow.
*
* Domains are queried in parallel, grouped by registry connection. Availability and metadata reflect the registry's state at the moment of the call and are not cached.
*/
get: operations["epp_check_domain_v1_domains_check_get"];
put?: never;
post?: never;
delete?: never;
options?: never;
head?: never;
patch?: never;
trace?: never;
};
"/v1/domains/claims-notices": {
parameters: {
query?: never;
header?: never;
path?: never;
cookie?: never;
};
get?: never;
put?: never;
/**
* Retrieve claims notices from claim keys
* @description Retrieves the trademark claims notice for a `claims_key` returned during a domain availability check. The response contains a `claims_notice_acceptance_hash` to acknowledge the notice when registering the domain, a ready-to-display `rendered_html`, and the structured fields needed to render a custom notice. See the [Trademarked domains](/products/domains/trademarked-domains) guide for the full workflow.
*/
post: operations["get_claims_notices_v1_domains_claims_notices_post"];
delete?: never;
options?: never;
head?: never;
patch?: never;
trace?: never;
};
"/v1/domains/statistics": {
parameters: {
query?: never;
header?: never;
path?: never;
cookie?: never;
};
/**
* Get domain statistics
* @description Counts the domains that moved in or out of your organization's portfolio in a window of whole days, bucketed by the requested granularity: creates (new registrations), inbound transfers, deletes, outbound transfers, renewals and restores, plus `net` (created and transferred in, minus deleted and transferred out).
*
* Counts cover your organization and its sub-organizations, like the domain summary; `breakdown=organization` shows how they divide between them. A create is counted on the day OpusDNS took the order and a transfer on the day it completed, so domains that have since been deleted still appear in the window they were acquired in. Imported domains count as creates on the day they were imported. Renewals and restores are counted once per day a domain was renewed or restored, so a domain renewed in two different months counts in both. Domains held at a connected external registrar are not included.
*
* Every bucket the window touches is present, so the series can be charted as is. A bucket marked `partial` reaches outside the window and covers only part of its span.
*
* These counts are read from the domain event log, which begins later than the domains themselves. `data_available_from` reports the oldest event it holds: a window reaching further back is empty before that instant rather than genuinely zero.
*/
get: operations["get_domain_statistics_v1_domains_statistics_get"];
put?: never;
post?: never;
delete?: never;
options?: never;
head?: never;
patch?: never;
trace?: never;
};
"/v1/domains/summary": {
parameters: {
query?: never;
header?: never;
path?: never;
cookie?: never;
};
/**
* Get domain summary
* @description Retrieves a summary of domains including counts by status, TLD, and expiration timeframes
*/
get: operations["get_domain_summary_v1_domains_summary_get"];
put?: never;
post?: never;
delete?: never;
options?: never;
head?: never;
patch?: never;
trace?: never;
};
"/v1/domains/tld-specific/at/{domain_reference}/withdraw": {
parameters: {
query?: never;
header?: never;
path?: never;
cookie?: never;
};
get?: never;
put?: never;
/** Withdraw a nic.at domain */
post: operations["withdraw_domain_v1_domains_tld_specific_at__domain_reference__withdraw_post"];
delete?: never;
options?: never;
head?: never;
patch?: never;
trace?: never;
};
"/v1/domains/tld-specific/be/{domain_reference}/auth_code/request": {
parameters: {
query?: never;
header?: never;
path?: never;
cookie?: never;
};
get?: never;
put?: never;
/** Requests your auth code directly from DNS Belgium (registry) */
post: operations["request_auth_code_v1_domains_tld_specific_be__domain_reference__auth_code_request_post"];
delete?: never;
options?: never;
head?: never;
patch?: never;
trace?: never;
};
"/v1/domains/tld-specific/cymru/{domain_reference}/auth_code/request": {
parameters: {
query?: never;
header?: never;
path?: never;
cookie?: never;
};
get?: never;
put?: never;
/**
* Generates a fresh auth code at Nominet (.cymru)
* @description Nominet expires a Transfer Authorisation Code after 14 days or on use in a transfer, and enforces complexity requirements on it. This endpoint mints a compliant code, sets it through a `domain:update` and returns it, invalidating any previous one. It is the only way to change a `.cymru` auth code.
*/
post: operations["request_auth_code_v1_domains_tld_specific_cymru__domain_reference__auth_code_request_post"];
delete?: never;
options?: never;
head?: never;
patch?: never;
trace?: never;
};
"/v1/domains/tld-specific/cz/{domain_reference}/auth_code/request": {
parameters: {
query?: never;
header?: never;
path?: never;
cookie?: never;
};
get?: never;
put?: never;
/** Requests your auth code directly from CZ.NIC (registry) */
post: operations["request_auth_code_v1_domains_tld_specific_cz__domain_reference__auth_code_request_post"];
delete?: never;
options?: never;
head?: never;
patch?: never;
trace?: never;
};
"/v1/domains/tld-specific/de/{domain_reference}/transit": {
parameters: {
query?: never;
header?: never;
path?: never;
cookie?: never;
};
get?: never;
put?: never;
/** Transit a DENIC domain */
post: operations["transit_domain_v1_domains_tld_specific_de__domain_reference__transit_post"];
delete?: never;
options?: never;
head?: never;
patch?: never;
trace?: never;
};
"/v1/domains/tld-specific/dk/{domain_reference}/auth_code/request": {
parameters: {
query?: never;
header?: never;
path?: never;
cookie?: never;
};
get?: never;
put?: never;
/** Requests your auth code directly from Punktum dk (registry) */
post: operations["request_auth_code_v1_domains_tld_specific_dk__domain_reference__auth_code_request_post"];
delete?: never;
options?: never;
head?: never;
patch?: never;
trace?: never;
};
"/v1/domains/tld-specific/eu/{domain_reference}/auth_code/request": {
parameters: {
query?: never;
header?: never;
path?: never;
cookie?: never;
};
get?: never;
put?: never;
/** Requests your auth code directly from EURid (registry) */
post: operations["request_auth_code_v1_domains_tld_specific_eu__domain_reference__auth_code_request_post"];
delete?: never;
options?: never;
head?: never;
patch?: never;
trace?: never;
};
"/v1/domains/tld-specific/lt/{domain_reference}/auth_code/request": {
parameters: {
query?: never;
header?: never;
path?: never;
cookie?: never;
};
get?: never;
put?: never;
/** Requests your auth code directly from DOMREG (registry) */
post: operations["request_auth_code_v1_domains_tld_specific_lt__domain_reference__auth_code_request_post"];
delete?: never;
options?: never;
head?: never;
patch?: never;
trace?: never;
};
"/v1/domains/tld-specific/no/applicant-declaration": {
parameters: {
query?: never;
header?: never;
path?: never;
cookie?: never;
};
/** Retrieve the .no applicant declaration by token */
get: operations["get_norid_declaration_by_token_v1_domains_tld_specific_no_applicant_declaration_get"];
/**
* Sign the .no applicant declaration with token
* @description Records the applicant declaration signature (`acceptName` + `acceptDate`) and queues the actual registration at Norid.
*/
put: operations["confirm_norid_declaration_by_token_v1_domains_tld_specific_no_applicant_declaration_put"];
post?: never;
delete?: never;
options?: never;
head?: never;
patch?: never;
trace?: never;
};
"/v1/domains/tld-specific/no/{domain_reference}/applicant-declaration": {
parameters: {
query?: never;
header?: never;
path?: never;
cookie?: never;
};
get?: never;
put?: never;
/**
* Submit the .no applicant declaration on behalf of the subscriber
* @description Records the applicant declaration signature collected by the registrar (e.g. via Norid's own signing tool) and queues the actual registration at Norid, without the registrant email round-trip.
*/
post: operations["submit_norid_declaration_v1_domains_tld_specific_no__domain_reference__applicant_declaration_post"];
delete?: never;
options?: never;
head?: never;
patch?: never;
trace?: never;
};
"/v1/domains/tld-specific/no/{domain_reference}/resend-declaration-email": {
parameters: {
query?: never;
header?: never;
path?: never;
cookie?: never;
};
get?: never;
put?: never;
/** Resend the .no applicant declaration email to the registrant */
post: operations["resend_norid_declaration_email_v1_domains_tld_specific_no__domain_reference__resend_declaration_email_post"];
delete?: never;
options?: never;
head?: never;
patch?: never;
trace?: never;
};
"/v1/domains/tld-specific/nu/{domain_reference}/auth_code/request": {
parameters: {
query?: never;
header?: never;
path?: never;
cookie?: never;
};
get?: never;
put?: never;
/**
* Generates a fresh auth code at Internetstiftelsen (.nu)
* @description `.nu` auth codes are owned by the registry: registrars can only send the literal `auto`, and the generated code is returned in the `iis:updData` extension of a `domain:update`. This endpoint runs that update and stores the fresh code, invalidating any previous one.
*/
post: operations["request_auth_code_v1_domains_tld_specific_nu__domain_reference__auth_code_request_post"];
delete?: never;
options?: never;
head?: never;
patch?: never;
trace?: never;
};
"/v1/domains/tld-specific/se/{domain_reference}/auth_code/request": {
parameters: {
query?: never;
header?: never;
path?: never;
cookie?: never;
};
get?: never;
put?: never;
/**
* Generates a fresh auth code at Internetstiftelsen (.se)
* @description `.se` auth codes are owned by the registry: registrars can only send the literal `auto`, and the generated code is returned in the `iis:updData` extension of a `domain:update`. This endpoint runs that update and stores the fresh code, invalidating any previous one.
*/
post: operations["request_auth_code_v1_domains_tld_specific_se__domain_reference__auth_code_request_post"];
delete?: never;
options?: never;
head?: never;
patch?: never;
trace?: never;
};
"/v1/domains/tld-specific/wales/{domain_reference}/auth_code/request": {
parameters: {
query?: never;
header?: never;
path?: never;
cookie?: never;
};
get?: never;
put?: never;
/**
* Generates a fresh auth code at Nominet (.wales)
* @description Nominet expires a Transfer Authorisation Code after 14 days or on use in a transfer, and enforces complexity requirements on it. This endpoint mints a compliant code, sets it through a `domain:update` and returns it, invalidating any previous one. It is the only way to change a `.wales` auth code.
*/
post: operations["request_auth_code_v1_domains_tld_specific_wales__domain_reference__auth_code_request_post"];
delete?: never;
options?: never;
head?: never;
patch?: never;
trace?: never;
};
"/v1/domains/transfer": {
parameters: {
query?: never;
header?: never;
path?: never;
cookie?: never;
};
get?: never;
put?: never;
/**
* Transfer a domain
* @description Start the transfer process for a domain
* The domain will be in state `pending_transfer` until the transfer is completed.
* This process can take up to 5 days, until the transfer is approved
*/
post: operations["transfer_domain_v1_domains_transfer_post"];
delete?: never;
options?: never;
head?: never;
patch?: never;
trace?: never;
};
"/v1/domains/{domain_reference}": {
parameters: {
query?: never;
header?: never;
path?: never;
cookie?: never;
};
/**
* Retrieve a domain
* @description Retrieves a single active domain by either its name or id.
*/
get: operations["get_domain_v1_domains__domain_reference__get"];
put?: never;
post?: never;
/**
* Delete a domain
* @description Initiates the deletion process for a domain. The domain will be marked for deletion
* and will enter a redemption period during which it may be restored.
*/
delete: operations["delete_domain_v1_domains__domain_reference__delete"];
options?: never;
head?: never;
/**
* Update a domain
* @description Updates various attributes of an existing domain. Only the fields provided in the request
* will be updated; all other fields will remain unchanged.
* Providing `clientTransferProhibited` as a status will set the `transfer_lock` property.
* `transfer_lock` is read-only and cannot be set here: send it in the request body and it is
* ignored, leaving the lock unchanged. Use `status_changes` to release a lock before a
* transfer out, for example
* `{"status_changes": {"remove": ["clientTransferProhibited"]}}`.
*/
patch: operations["update_domain_v1_domains__domain_reference__patch"];
trace?: never;
};
"/v1/domains/{domain_reference}/dnssec": {
parameters: {
query?: never;
header?: never;
path?: never;
cookie?: never;
};
/**
* Retrieve DNSSEC data
* @description Fetches all DNSSEC records associated with the specified domain.
*/
get: operations["get_dnssec_v1_domains__domain_reference__dnssec_get"];
/**
* Update DNSSEC data
* @description Replaces all existing DNSSEC records for the domain with the provided records.
*/
put: operations["create_or_update_dnssec_v1_domains__domain_reference__dnssec_put"];
post?: never;
/**
* Delete DNSSEC data
* @description Removes all DNSSEC data for a domain
*/
delete: operations["delete_dnssec_v1_domains__domain_reference__dnssec_delete"];
options?: never;
head?: never;
patch?: never;
trace?: never;
};
"/v1/domains/{domain_reference}/dnssec/disable": {
parameters: {
query?: never;
header?: never;
path?: never;
cookie?: never;
};
get?: never;
put?: never;
/** Disable DNSSEC for domains using our nameservers */
post: operations["disable_and_unpublish_dnssec_records_v1_domains__domain_reference__dnssec_disable_post"];
delete?: never;
options?: never;
head?: never;
patch?: never;
trace?: never;
};
"/v1/domains/{domain_reference}/dnssec/enable": {
parameters: {
query?: never;
header?: never;
path?: never;
cookie?: never;
};
get?: never;
put?: never;
/** Enable DNSSEC for domains using our nameservers */
post: operations["enable_and_publish_dnssec_records_v1_domains__domain_reference__dnssec_enable_post"];
delete?: never;
options?: never;
head?: never;
patch?: never;
trace?: never;
};
"/v1/domains/{domain_reference}/renew": {
parameters: {
query?: never;
header?: never;
path?: never;
cookie?: never;
};
get?: never;
put?: never;
/**
* Renew a domain
* @description Extends the registration period of an existing domain. The renewal period is added
* to the current expiration date of the domain.
*/
post: operations["renew_domain_v1_domains__domain_reference__renew_post"];
delete?: never;
options?: never;
head?: never;
patch?: never;
trace?: never;
};
"/v1/domains/{domain_reference}/restore": {
parameters: {
query?: never;
header?: never;
path?: never;
cookie?: never;
};
get?: never;
put?: never;
/** Restore an eligible domain (during redemption period) */
post: operations["restore_domain_v1_domains__domain_reference__restore_post"];
delete?: never;
options?: never;
head?: never;
patch?: never;
trace?: never;
};
"/v1/domains/{domain_reference}/transfer": {
parameters: {
query?: never;
header?: never;
path?: never;
cookie?: never;
};
get?: never;
put?: never;
post?: never;
/**
* Cancel a domain transfer
* @description This will cancel the in-progress domain transfer and delete the domain object
*/
delete: operations["cancel_domain_transfer_v1_domains__domain_reference__transfer_delete"];
options?: never;
head?: never;
patch?: never;
trace?: never;
};
"/v1/domains/{domain_reference}/transfer/outbound": {
parameters: {
query?: never;
header?: never;
path?: never;
cookie?: never;
};
get?: never;
put?: never;
/** Approve or reject an outbound domain transfer */
post: operations["resolve_outbound_transfer_v1_domains__domain_reference__transfer_outbound_post"];
delete?: never;
options?: never;
head?: never;
patch?: never;
trace?: never;
};
"/v1/email-forwards": {
parameters: {
query?: never;
header?: never;
path?: never;
cookie?: never;
};
/**
* List all email forwards
* @description Retrieves a paginated list of all email forwards for the organization.
*/
get: operations["list_email_forwards_v1_email_forwards_get"];
put?: never;
/**
* Create email forward configuration
* @description Creates an email forward configuration with optional aliases. Can be created enabled or disabled (default: disabled). Includes created_on and updated_on timestamps.
*/
post: operations["create_email_forward_v1_email_forwards_post"];
delete?: never;
options?: never;
head?: never;
patch?: never;
trace?: never;
};
"/v1/email-forwards/{email_forward_id}": {
parameters: {
query?: never;
header?: never;
path?: never;
cookie?: never;
};
/**
* Get email forward configuration
* @description Retrieves the email forward configuration for the specified email forward including all aliases
*/
get: operations["get_email_forward_v1_email_forwards__email_forward_id__get"];
put?: never;
post?: never;
/**
* Delete email forward configuration
* @description Permanently deletes the email forward configuration including all aliases. If enabled, automatically disables first (removes DNS records and unregisters from the email forwarding provider).
*/
delete: operations["delete_email_forward_v1_email_forwards__email_forward_id__delete"];
options?: never;
head?: never;
patch?: never;
trace?: never;
};
"/v1/email-forwards/{email_forward_id}/aliases": {
parameters: {
query?: never;
header?: never;
path?: never;
cookie?: never;
};
get?: never;
put?: never;
/**
* Create email forward alias
* @description Creates a new email forward alias for the specified email forward. Use '*' as the alias name to configure a catch-all alias that forwards all unmatched emails for the domain.
*/
post: operations["create_email_forward_alias_v1_email_forwards__email_forward_id__aliases_post"];
delete?: never;
options?: never;
head?: never;
patch?: never;
trace?: never;
};
"/v1/email-forwards/{email_forward_id}/aliases/{alias_id}": {
parameters: {
query?: never;
header?: never;
path?: never;
cookie?: never;
};
get?: never;
/**
* Update email forward alias
* @description Updates the forward_to address for a specific email forward alias specified by email_forward_alias_id
*/
put: operations["update_email_forward_alias_v1_email_forwards__email_forward_id__aliases__alias_id__put"];
post?: never;
/**
* Delete email forward alias
* @description Deletes a specific email forward alias specified by email_forward_alias_id for the specified email forward
*/
delete: operations["delete_email_forward_alias_v1_email_forwards__email_forward_id__aliases__alias_id__delete"];
options?: never;
head?: never;
patch?: never;
trace?: never;
};
"/v1/email-forwards/{email_forward_id}/disable": {
parameters: {
query?: never;
header?: never;
path?: never;
cookie?: never;
};
get?: never;
put?: never;
post?: never;
delete?: never;
options?: never;
head?: never;
/**
* Disable email forwarding
* @description Disables email forwarding by removing MX and SPF DNS records and unregistering the domain from the email forwarding provider. The email forward configuration is preserved but disabled.
*/
patch: operations["disable_email_forward_v1_email_forwards__email_forward_id__disable_patch"];
trace?: never;
};
"/v1/email-forwards/{email_forward_id}/enable": {
parameters: {
query?: never;
header?: never;
path?: never;
cookie?: never;
};
get?: never;
put?: never;
post?: never;
delete?: never;
options?: never;
head?: never;
/**
* Enable email forwarding
* @description Enables email forwarding by creating necessary MX and SPF DNS records and registering the domain with the email forwarding provider.
*/
patch: operations["enable_email_forward_v1_email_forwards__email_forward_id__enable_patch"];
trace?: never;
};
"/v1/email-forwards/{email_forward_id}/metrics": {
parameters: {
query?: never;
header?: never;
path?: never;
cookie?: never;
};
/**
* Retrieve email forward metrics
* @description Retrieves metrics and statistics for a specific email forward, including delivery rates and status counts.
*/
get: operations["get_email_forward_metrics_v1_email_forwards__email_forward_id__metrics_get"];
put?: never;
post?: never;
delete?: never;
options?: never;
head?: never;
patch?: never;
trace?: never;
};
"/v1/events": {
parameters: {
query?: never;
header?: never;
path?: never;
cookie?: never;
};
/**
* Get pending events
* @description Retrieves a paginated list of events for the organization
*/
get: operations["get_events_v1_events_get"];
put?: never;
post?: never;
delete?: never;
options?: never;
head?: never;
patch?: never;
trace?: never;
};
"/v1/events/{event_id}": {
parameters: {
query?: never;
header?: never;
path?: never;
cookie?: never;
};
/**
* Get event
* @description Get an event by its ID
*/
get: operations["get_event_v1_events__event_id__get"];
put?: never;
post?: never;
delete?: never;
options?: never;
head?: never;
/**
* Acknowledge event
* @description Acknowledge an event
*/
patch: operations["acknowledge_event_v1_events__event_id__patch"];
trace?: never;
};
"/v1/hosts": {
parameters: {
query?: never;
header?: never;
path?: never;
cookie?: never;
};
get?: never;
put?: never;
/**
* Create a Host Object
* @description Create a new host object
*/
post: operations["create_host_v1_hosts_post"];
delete?: never;
options?: never;
head?: never;
patch?: never;
trace?: never;
};
"/v1/hosts/{host_reference}": {
parameters: {
query?: never;
header?: never;
path?: never;
cookie?: never;
};
/**
* Retrieve a Host Object
* @description Retrieves a host object by either its ID or hostname
*/
get: operations["get_host_v1_hosts__host_reference__get"];
/**
* Update a Host Object
* @description Updates the IP addresses of a host object, referenced by either its ID or hostname
*/
put: operations["update_host_v1_hosts__host_reference__put"];
post?: never;
/**
* Delete a Host Object
* @description Deletes a host object; only possible if the host is not in use
*/
delete: operations["delete_host_v1_hosts__host_reference__delete"];
options?: never;
head?: never;
patch?: never;
trace?: never;
};
"/v1/job/{job_id}": {
parameters: {
query?: never;
header?: never;
path?: never;
cookie?: never;
};
/** Get individual job details */
get: operations["get_job_v1_job__job_id__get"];
put?: never;
post?: never;
/** Delete (cancel) a queued job */
delete: operations["delete_job_v1_job__job_id__delete"];
options?: never;
head?: never;
patch?: never;
trace?: never;
};
"/v1/job/{job_id}/pause": {
parameters: {
query?: never;
header?: never;
path?: never;
cookie?: never;
};
get?: never;
put?: never;
/** Pause a job */
post: operations["pause_job_v1_job__job_id__pause_post"];
delete?: never;
options?: never;
head?: never;
patch?: never;
trace?: never;
};
"/v1/job/{job_id}/resume": {
parameters: {
query?: never;
header?: never;
path?: never;
cookie?: never;
};
get?: never;
put?: never;
/** Resume a paused job */
post: operations["resume_job_v1_job__job_id__resume_post"];
delete?: never;
options?: never;
head?: never;
patch?: never;
trace?: never;
};
"/v1/job/{job_id}/retry": {
parameters: {
query?: never;
header?: never;
path?: never;
cookie?: never;
};
get?: never;
put?: never;
/** Retry a failed or dead-lettered job */
post: operations["retry_job_v1_job__job_id__retry_post"];
delete?: never;
options?: never;
head?: never;
patch?: never;
trace?: never;
};
"/v1/jobs": {
parameters: {
query?: never;
header?: never;
path?: never;
cookie?: never;
};
/** List batches for organization */
get: operations["list_batches_v1_jobs_get"];
put?: never;
/** Create a batch of commands for async execution */
post: operations["create_batch_v1_jobs_post"];
delete?: never;
options?: never;
head?: never;
patch?: never;
trace?: never;
};
"/v1/jobs/{batch_id}": {
parameters: {
query?: never;
header?: never;
path?: never;
cookie?: never;
};
/** Get batch details and execution status */
get: operations["get_batch_v1_jobs__batch_id__get"];
put?: never;
post?: never;
/** Delete (cancel) all queued jobs in a batch */
delete: operations["delete_batch_v1_jobs__batch_id__delete"];
options?: never;
head?: never;
patch?: never;
trace?: never;
};
"/v1/jobs/{batch_id}/jobs": {
parameters: {
query?: never;
header?: never;
path?: never;
cookie?: never;
};
/** Get individual jobs within a batch */
get: operations["get_batch_jobs_v1_jobs__batch_id__jobs_get"];
put?: never;
post?: never;
delete?: never;
options?: never;
head?: never;
patch?: never;
trace?: never;
};
"/v1/jobs/{batch_id}/pause": {
parameters: {
query?: never;
header?: never;
path?: never;
cookie?: never;
};
get?: never;
put?: never;
/** Pause all eligible jobs in a batch */
post: operations["pause_batch_v1_jobs__batch_id__pause_post"];
delete?: never;
options?: never;
head?: never;
patch?: never;
trace?: never;
};
"/v1/jobs/{batch_id}/resume": {
parameters: {
query?: never;
header?: never;
path?: never;
cookie?: never;
};
get?: never;
put?: never;
/** Resume all paused jobs in a batch */
post: operations["resume_batch_v1_jobs__batch_id__resume_post"];
delete?: never;
options?: never;
head?: never;
patch?: never;
trace?: never;
};
"/v1/jobs/{batch_id}/retry": {
parameters: {
query?: never;
header?: never;
path?: never;
cookie?: never;
};
get?: never;
put?: never;
/** Retry failed and dead-lettered jobs in a batch */
post: operations["retry_batch_v1_jobs__batch_id__retry_post"];
delete?: never;
options?: never;
head?: never;
patch?: never;
trace?: never;
};
"/v1/organizations": {
parameters: {
query?: never;
header?: never;
path?: never;
cookie?: never;
};
/**
* List all organizations
* @description Retrieves a paginated list of organizations under the current organization
*/
get: operations["list_organizations_v1_organizations_get"];
put?: never;
/**
* Create an organization
* @description Create a new organization under the current organization
*/
post: operations["create_organization_v1_organizations_post"];
delete?: never;
options?: never;
head?: never;
patch?: never;
trace?: never;
};
"/v1/organizations/attributes": {
parameters: {
query?: never;
header?: never;
path?: never;
cookie?: never;
};
/**
* List organization attributes
* @description Retrieves a list of organization attributes for the current organization
*/
get: operations["get_current_organization_attributes_v1_organizations_attributes_get"];
put?: never;
post?: never;
delete?: never;
options?: never;
head?: never;
/**
* Update organization attributes
* @description Updates one or more organization attributes for the current organization
*/
patch: operations["update_current_organization_attributes_v1_organizations_attributes_patch"];
trace?: never;
};
"/v1/organizations/ip-restrictions": {
parameters: {
query?: never;
header?: never;
path?: never;
cookie?: never;
};
/**
* List IP restrictions
* @description List all IP restrictions for the organization.
*
* Returns a list of all IP restrictions configured for your organization.
* Single IP addresses are returned with CIDR notation (/32 for IPv4, /128 for IPv6).
*/
get: operations["list_ip_restrictions_v1_organizations_ip_restrictions_get"];
put?: never;
/**
* Create an IP restriction
* @description Create a new IP restriction for the organization.
*
* Accepts either a single IP address or a CIDR network range.
* Individual IP addresses are stored and returned with CIDR notation (/32 for IPv4, /128 for IPv6).
*/
post: operations["create_ip_restriction_v1_organizations_ip_restrictions_post"];
delete?: never;
options?: never;
head?: never;
patch?: never;
trace?: never;
};
"/v1/organizations/ip-restrictions/{ip_restriction_id}": {
parameters: {
query?: never;
header?: never;
path?: never;
cookie?: never;
};
/**
* Get an IP restriction
* @description Get a specific IP restriction by ID.
*
* Returns the details of a specific IP restriction if it exists and belongs to your organization.
* Single IP addresses are returned with CIDR notation (/32 for IPv4, /128 for IPv6).
*/
get: operations["get_ip_restriction_v1_organizations_ip_restrictions__ip_restriction_id__get"];
put?: never;
post?: never;
/**
* Delete an IP restriction
* @description Delete an IP restriction.
*
* Permanently removes the specified IP restriction from your organization.
*/
delete: operations["delete_ip_restriction_v1_organizations_ip_restrictions__ip_restriction_id__delete"];
options?: never;
head?: never;
/**
* Update an IP restriction
* @description Update an existing IP restriction.
*
* You can update the IP network range or the last usage timestamp.
* Individual IP addresses are stored and returned with CIDR notation (/32 for IPv4, /128 for IPv6).
*/
patch: operations["update_ip_restriction_v1_organizations_ip_restrictions__ip_restriction_id__patch"];
trace?: never;
};
"/v1/organizations/product-waitlist": {
parameters: {
query?: never;
header?: never;
path?: never;
cookie?: never;
};
/**
* List product waitlists
* @description Lists the waitlisted products your organization has been invited to, or that you have already applied for, with where your own application stands on each. Any other product is omitted entirely. An API key sees the invited products but has no application of its own: `status` is null and `can_apply` is false.
*/
get: operations["list_product_waitlists_v1_organizations_product_waitlist_get"];
put?: never;
post?: never;
delete?: never;
options?: never;
head?: never;
patch?: never;
trace?: never;
};
"/v1/organizations/product-waitlist/{product}/apply": {
parameters: {
query?: never;
header?: never;
path?: never;
cookie?: never;
};
get?: never;
put?: never;
/**
* Apply for a product waitlist
* @description Applies you for a product's waitlist, optionally saying what you would use the product for. Any member of an invited organization may apply. The application is recorded as `pending` until OpusDNS decides on it. One application per user per product: a second apply is refused, and a rejection is reconsidered by OpusDNS rather than by applying again. A colleague's application does not stand in for yours, nor block it.
*/
post: operations["apply_for_product_waitlist_v1_organizations_product_waitlist__product__apply_post"];
delete?: never;
options?: never;
head?: never;
patch?: never;
trace?: never;
};
"/v1/organizations/role-permissions": {
parameters: {
query?: never;
header?: never;
path?: never;
cookie?: never;
};
/**
* List grantable role permissions
* @description Retrieves the catalog of `resource:scope` permissions a custom role may grant
*/
get: operations["list_role_permissions_v1_organizations_role_permissions_get"];
put?: never;
post?: never;
delete?: never;
options?: never;
head?: never;
patch?: never;
trace?: never;
};
"/v1/organizations/roles": {
parameters: {
query?: never;
header?: never;
path?: never;
cookie?: never;
};
/**
* List roles
* @description Retrieves all roles assignable in the current organization: the built-in roles plus the organization's custom roles
*/
get: operations["list_roles_v1_organizations_roles_get"];
put?: never;
/**
* Create a custom role
* @description Creates an organization-owned custom role granting the requested permissions. The escalation-bearing admin/owner permissions cannot be granted.
*/
post: operations["create_role_v1_organizations_roles_post"];
delete?: never;
options?: never;
head?: never;
patch?: never;
trace?: never;
};
"/v1/organizations/roles/{label}": {
parameters: {
query?: never;
header?: never;
path?: never;
cookie?: never;
};
/**
* Get a role
* @description Retrieves a single role (built-in or custom) by its name
*/
get: operations["get_role_v1_organizations_roles__label__get"];
put?: never;
post?: never;
/**
* Delete a custom role
* @description Deletes a custom role. Refused while the role is still assigned to any subject, and for built-in roles.
*/
delete: operations["delete_role_v1_organizations_roles__label__delete"];
options?: never;
head?: never;
/**
* Update a custom role
* @description Updates a custom role's name, description and/or permission set. Permission changes apply to every subject holding the role instantly. Built-in roles are immutable.
*/
patch: operations["update_role_v1_organizations_roles__label__patch"];
trace?: never;
};
"/v1/organizations/users": {
parameters: {
query?: never;
header?: never;
path?: never;
cookie?: never;
};
/**
* List all users
* @description Retrieves a paginated list of users under the current organization
*/
get: operations["list_users_v1_organizations_users_get"];
put?: never;
post?: never;
delete?: never;
options?: never;
head?: never;
patch?: never;
trace?: never;
};
"/v1/organizations/{organization_id}": {
parameters: {
query?: never;
header?: never;
path?: never;
cookie?: never;
};
/**
* Get organization details
* @description Retrieves details for a specific organization
*/
get: operations["get_organization_v1_organizations__organization_id__get"];
put?: never;
post?: never;
/**
* Delete an organization
* @description Permanently deletes an organization
*/
delete: operations["delete_organization_v1_organizations__organization_id__delete"];
options?: never;
head?: never;
/**
* Update an organization
* @description Updates details for a specific organization
*/
patch: operations["update_organization_v1_organizations__organization_id__patch"];
trace?: never;
};
"/v1/organizations/{organization_id}/attributes": {
parameters: {
query?: never;
header?: never;
path?: never;
cookie?: never;
};
/**
* List organization attributes
* @description Retrieves a list of organization attributes for the specified organization
*/
get: operations["get_organization_attributes_v1_organizations__organization_id__attributes_get"];
put?: never;
post?: never;
delete?: never;
options?: never;
head?: never;
/**
* Update organization attributes
* @description Updates one or more organization attributes for the specified organization
*/
patch: operations["update_organization_attributes_v1_organizations__organization_id__attributes_patch"];
trace?: never;
};
"/v1/organizations/{organization_id}/billing/invoices": {
parameters: {
query?: never;
header?: never;
path?: never;
cookie?: never;
};
/**
* List all invoices for the organization
* @description Retrieves a paginated list of all invoices for the organization
*/
get: operations["list_invoices_v1_organizations__organization_id__billing_invoices_get"];
put?: never;
post?: never;
delete?: never;
options?: never;
head?: never;
patch?: never;
trace?: never;
};
"/v1/organizations/{organization_id}/billing/receipts": {
parameters: {
query?: never;
header?: never;
path?: never;
cookie?: never;
};
/**
* List all payment receipts for the organization
* @description Retrieves a paginated list of all payment receipts for the organization
*/
get: operations["list_receipts_v1_organizations__organization_id__billing_receipts_get"];
put?: never;
post?: never;
delete?: never;
options?: never;
head?: never;
patch?: never;
trace?: never;
};
"/v1/organizations/{organization_id}/pricing/product-type/{product_type}": {
parameters: {
query?: never;
header?: never;
path?: never;
cookie?: never;
};
/**
* List product prices
* @description Retrieves pricing data for a specific product type. If a product action/class are specified, only prices for those are returned, if any.
*/
get: operations["get_pricing_plans_v1_organizations__organization_id__pricing_product_type__product_type__get"];
put?: never;
post?: never;
delete?: never;
options?: never;
head?: never;
patch?: never;
trace?: never;
};
"/v1/organizations/{organization_id}/transactions": {
parameters: {
query?: never;
header?: never;
path?: never;
cookie?: never;
};
/**
* List all transactions
* @description Retrieves a paginated list of transactions for an organization
*/
get: operations["get_transactions_v1_organizations__organization_id__transactions_get"];
put?: never;
post?: never;
delete?: never;
options?: never;
head?: never;
patch?: never;
trace?: never;
};
"/v1/organizations/{organization_id}/transactions/{transaction_id}": {
parameters: {
query?: never;
header?: never;
path?: never;
cookie?: never;
};
/**
* Get a specific transaction
* @description Retrieves details for a specific transaction for an organization
*/
get: operations["get_transaction_v1_organizations__organization_id__transactions__transaction_id__get"];
put?: never;
post?: never;
delete?: never;
options?: never;
head?: never;
patch?: never;
trace?: never;
};
"/v1/organizations/{organization_id}/usage/{product}": {
parameters: {
query?: never;
header?: never;
path?: never;
cookie?: never;
};
/**
* Usage over time
* @description Retrieves the organization's usage of a metered product as a time series, bucketed by the requested granularity and grouped per sub-metric. Reports usage quantities only.
*/
get: operations["get_usage_series_v1_organizations__organization_id__usage__product__get"];
put?: never;
post?: never;
delete?: never;
options?: never;
head?: never;
patch?: never;
trace?: never;
};
"/v1/organizations/{organization_id}/usage/{product}/summary": {
parameters: {
query?: never;
header?: never;
path?: never;
cookie?: never;
};
/**
* Usage summary
* @description Retrieves the organization's total usage of a metered product over a date range, grouped per sub-metric. Reports usage quantities only.
*/
get: operations["get_usage_summary_v1_organizations__organization_id__usage__product__summary_get"];
put?: never;
post?: never;
delete?: never;
options?: never;
head?: never;
patch?: never;
trace?: never;
};
"/v1/parking": {
parameters: {
query?: never;
header?: never;
path?: never;
cookie?: never;
};
/**
* List parking entries
* @description Retrieves a paginated list of parking entries for the organization
*/
get: operations["list_parking_v1_parking_get"];
put?: never;
post?: never;
delete?: never;
options?: never;
head?: never;
patch?: never;
trace?: never;
};
"/v1/parking/metrics": {
parameters: {
query?: never;
header?: never;
path?: never;
cookie?: never;
};
/**
* Get total metrics for all parking entries
* @description Retrieves aggregated metrics for all parking entries of the organization.
*/
get: operations["get_total_parking_metrics_v1_parking_metrics_get"];
put?: never;
post?: never;
delete?: never;
options?: never;
head?: never;
patch?: never;
trace?: never;
};
"/v1/parking/signup": {
parameters: {
query?: never;
header?: never;
path?: never;
cookie?: never;
};
get?: never;
put?: never;
/**
* Sign up for parking
* @description Accept the parking agreement to enable parking features for your organization.
*/
post: operations["signup_for_parking_v1_parking_signup_post"];
delete?: never;
options?: never;
head?: never;
patch?: never;
trace?: never;
};
"/v1/parking/signup/status": {
parameters: {
query?: never;
header?: never;
path?: never;
cookie?: never;
};
/**
* Get parking signup status
* @description Check if your organization has accepted the parking agreement.
*/
get: operations["get_parking_signup_status_v1_parking_signup_status_get"];
put?: never;
post?: never;
delete?: never;
options?: never;
head?: never;
patch?: never;
trace?: never;
};
"/v1/parking/{parking_reference}/metrics": {
parameters: {
query?: never;
header?: never;
path?: never;
cookie?: never;
};
/**
* Get metrics for a parking entry
* @description Retrieves metrics for a specific parking entry by ID or domain name.
*/
get: operations["get_parking_metrics_v1_parking__parking_reference__metrics_get"];
put?: never;
post?: never;
delete?: never;
options?: never;
head?: never;
patch?: never;
trace?: never;
};
"/v1/reports": {
parameters: {
query?: never;
header?: never;
path?: never;
cookie?: never;
};
/** List Reports */
get: operations["list_reports_v1_reports_get"];
put?: never;
/** Create Report */
post: operations["create_report_v1_reports_post"];
delete?: never;
options?: never;
head?: never;
patch?: never;
trace?: never;
};
"/v1/reports/{report_id}": {
parameters: {
query?: never;
header?: never;
path?: never;
cookie?: never;
};
/** Get Report */
get: operations["get_report_v1_reports__report_id__get"];
put?: never;
post?: never;
delete?: never;
options?: never;
head?: never;
patch?: never;
trace?: never;
};
"/v1/reports/{report_id}/download": {
parameters: {
query?: never;
header?: never;
path?: never;
cookie?: never;
};
/** Download Report */
get: operations["download_report_v1_reports__report_id__download_get"];
put?: never;
post?: never;
delete?: never;
options?: never;
head?: never;
patch?: never;
trace?: never;
};
"/v1/tags": {
parameters: {
query?: never;
header?: never;
path?: never;
cookie?: never;
};
/**
* List tags
* @description Retrieves a paginated list of tags
*/
get: operations["list_tags_v1_tags_get"];
put?: never;
/**
* Create a tag
* @description Create a new tag
*/
post: operations["create_tag_v1_tags_post"];
delete?: never;
options?: never;
head?: never;
patch?: never;
trace?: never;
};
"/v1/tags/objects": {
parameters: {
query?: never;
header?: never;
path?: never;
cookie?: never;
};
get?: never;
put?: never;
/**
* Bulk tag or untag objects
* @description Add, remove, or replace tags on multiple objects at once. 'replace' is mutually exclusive with 'add' and 'remove'.
*/
post: operations["bulk_update_object_tags_v1_tags_objects_post"];
delete?: never;
options?: never;
head?: never;
patch?: never;
trace?: never;
};
"/v1/tags/{tag_id}": {
parameters: {
query?: never;
header?: never;
path?: never;
cookie?: never;
};
/**
* Get a tag
* @description Retrieve a single tag by its ID
*/
get: operations["get_tag_v1_tags__tag_id__get"];
put?: never;
post?: never;
/**
* Delete a tag
* @description Delete a tag
*/
delete: operations["delete_tag_v1_tags__tag_id__delete"];
options?: never;
head?: never;
/**
* Update a tag
* @description Update a tag's label, description, or color
*/
patch: operations["update_tag_v1_tags__tag_id__patch"];
trace?: never;
};
"/v1/tags/{tag_id}/objects": {
parameters: {
query?: never;
header?: never;
path?: never;
cookie?: never;
};
get?: never;
put?: never;
/**
* Tag or untag objects
* @description Add or remove objects from a tag. Objects are matched by the tag's type (e.g. a DOMAIN tag only accepts domain IDs).
*/
post: operations["update_tag_objects_v1_tags__tag_id__objects_post"];
delete?: never;
options?: never;
head?: never;
patch?: never;
trace?: never;
};
"/v1/tlds/": {
parameters: {
query?: never;
header?: never;
path?: never;
cookie?: never;
};
/**
* Get list of Specifications for all TLDs we support
* @description Retrieves a list of TLD Specifications we have support for
*/
get: operations["get_tld_specifications_v1_tlds__get"];
put?: never;
post?: never;
delete?: never;
options?: never;
head?: never;
patch?: never;
trace?: never;
};
"/v1/tlds/portfolio": {
parameters: {
query?: never;
header?: never;
path?: never;
cookie?: never;
};
/**
* Get the list of TLDs we support
* @description Retrieves a list of TLDs we have support for
*/
get: operations["get_tld_portfolio_v1_tlds_portfolio_get"];
put?: never;
post?: never;
delete?: never;
options?: never;
head?: never;
patch?: never;
trace?: never;
};
"/v1/tlds/{tld}": {
parameters: {
query?: never;
header?: never;
path?: never;
cookie?: never;
};
/**
* Get the TLD specification
* @description Retrieves the TLD specification for a given TLD
*/
get: operations["get_tld_spec_v1_tlds__tld__get"];
put?: never;
post?: never;
delete?: never;
options?: never;
head?: never;
patch?: never;
trace?: never;
};
"/v1/users": {
parameters: {
query?: never;
header?: never;
path?: never;
cookie?: never;
};
get?: never;
put?: never;
/**
* Create a user
* @description Create a new user
*/
post: operations["create_user_v1_users_post"];
delete?: never;
options?: never;
head?: never;
patch?: never;
trace?: never;
};
"/v1/users/me": {
parameters: {
query?: never;
header?: never;
path?: never;
cookie?: never;
};
/**
* Get current user
* @description Get the current user
*/
get: operations["get_current_user_v1_users_me_get"];
put?: never;
post?: never;
delete?: never;
options?: never;
head?: never;
patch?: never;
trace?: never;
};
"/v1/users/{user_id}": {
parameters: {
query?: never;
header?: never;
path?: never;
cookie?: never;
};
/**
* Get a user
* @description Get a user by ID
*/
get: operations["get_user_v1_users__user_id__get"];
put?: never;
post?: never;
/**
* Delete a user
* @description Delete a user by ID
*/
delete: operations["delete_user_v1_users__user_id__delete"];
options?: never;
head?: never;
/**
* Update a user
* @description Update a user by ID
*/
patch: operations["update_user_v1_users__user_id__patch"];
trace?: never;
};
"/v1/users/{user_id}/permissions": {
parameters: {
query?: never;
header?: never;
path?: never;
cookie?: never;
};
/**
* Get user permissions
* @description Get the permissions for a user
*/
get: operations["get_user_permissions_v1_users__user_id__permissions_get"];
put?: never;
post?: never;
delete?: never;
options?: never;
head?: never;
patch?: never;
trace?: never;
};
"/v1/users/{user_id}/role": {
parameters: {
query?: never;
header?: never;
path?: never;
cookie?: never;
};
/**
* Get user role
* @description Get the role for a user
*/
get: operations["get_role_v1_users__user_id__role_get"];
/**
* Set user role
* @description Set the role for a user, replacing any existing role. Accepts a built-in role name or the label of a custom role owned by the user's organization
*/
put: operations["set_user_role_v1_users__user_id__role_put"];
post?: never;
delete?: never;
options?: never;
head?: never;
patch?: never;
trace?: never;
};
"/v1/vanity-nameserver-sets": {
parameters: {
query?: never;
header?: never;
path?: never;
cookie?: never;
};
/** List vanity nameserver sets */
get: operations["list_vanity_nameserver_sets_v1_vanity_nameserver_sets_get"];
put?: never;
/** Create a vanity nameserver set */
post: operations["create_vanity_nameserver_set_v1_vanity_nameserver_sets_post"];
delete?: never;
options?: never;
head?: never;
patch?: never;
trace?: never;
};
"/v1/vanity-nameserver-sets/check": {
parameters: {
query?: never;
header?: never;
path?: never;
cookie?: never;
};
get?: never;
put?: never;
/** Run a read-only diagnostic on a vanity nameserver set */
post: operations["check_vanity_nameserver_set_v1_vanity_nameserver_sets_check_post"];
delete?: never;
options?: never;
head?: never;
patch?: never;
trace?: never;
};
"/v1/vanity-nameserver-sets/default": {
parameters: {
query?: never;
header?: never;
path?: never;
cookie?: never;
};
get?: never;
put?: never;
post?: never;
/** Unset the organization's default vanity nameserver set */
delete: operations["clear_vanity_nameserver_set_default_v1_vanity_nameserver_sets_default_delete"];
options?: never;
head?: never;
patch?: never;
trace?: never;
};
"/v1/vanity-nameserver-sets/{set_id}": {
parameters: {
query?: never;
header?: never;
path?: never;
cookie?: never;
};
/** Get a vanity nameserver set */
get: operations["get_vanity_nameserver_set_v1_vanity_nameserver_sets__set_id__get"];
put?: never;
post?: never;
/** Delete a vanity nameserver set */
delete: operations["delete_vanity_nameserver_set_v1_vanity_nameserver_sets__set_id__delete"];
options?: never;
head?: never;
/** Set the vanity nameserver set's renewal mode (expire = cancel at period end, renew = un-cancel) */
patch: operations["set_vanity_nameserver_set_renewal_mode_v1_vanity_nameserver_sets__set_id__patch"];
trace?: never;
};
"/v1/vanity-nameserver-sets/{set_id}/default": {
parameters: {
query?: never;
header?: never;
path?: never;
cookie?: never;
};
get?: never;
put?: never;
post?: never;
delete?: never;
options?: never;
head?: never;
/** Set a vanity nameserver set as the org default */
patch: operations["set_vanity_nameserver_set_default_v1_vanity_nameserver_sets__set_id__default_patch"];
trace?: never;
};
"/v1/vanity-nameserver-sets/{set_id}/restore": {
parameters: {
query?: never;
header?: never;
path?: never;
cookie?: never;
};
get?: never;
put?: never;
/** Restore a suspended vanity nameserver set */
post: operations["restore_vanity_nameserver_set_v1_vanity_nameserver_sets__set_id__restore_post"];
delete?: never;
options?: never;
head?: never;
patch?: never;
trace?: never;
};
"/v1/vanity-nameserver-sets/{set_id}/retry": {
parameters: {
query?: never;
header?: never;
path?: never;
cookie?: never;
};
get?: never;
put?: never;
/** Retry activation for a failed vanity nameserver set */
post: operations["retry_vanity_nameserver_set_v1_vanity_nameserver_sets__set_id__retry_post"];
delete?: never;
options?: never;
head?: never;
patch?: never;
trace?: never;
};
"/v1/vanity-nameserver-sets/{set_id}/zones": {
parameters: {
query?: never;
header?: never;
path?: never;
cookie?: never;
};
/** List DNS zones referencing a vanity nameserver set */
get: operations["list_zones_referencing_vanity_nameserver_set_v1_vanity_nameserver_sets__set_id__zones_get"];
put?: never;
post?: never;
delete?: never;
options?: never;
head?: never;
patch?: never;
trace?: never;
};
"/v1/whitelabel-branding": {
parameters: {
query?: never;
header?: never;
path?: never;
cookie?: never;
};
/** Get the organization's whitelabel branding config */
get: operations["get_whitelabel_branding_v1_whitelabel_branding_get"];
put?: never;
/** Buy the organization's whitelabel branding (base or plus tier) */
post: operations["create_whitelabel_branding_v1_whitelabel_branding_post"];
delete?: never;
options?: never;
head?: never;
/** Change the organization's whitelabel branding config (relabel / enable / renewal mode) */
patch: operations["patch_whitelabel_branding_v1_whitelabel_branding_patch"];
trace?: never;
};
"/v1/whitelabel-branding/assets": {
parameters: {
query?: never;
header?: never;
path?: never;
cookie?: never;
};
/** List uploaded branding assets */
get: operations["list_whitelabel_assets_v1_whitelabel_branding_assets_get"];
put?: never;
/** Upload a branding asset */
post: operations["upload_whitelabel_asset_v1_whitelabel_branding_assets_post"];
delete?: never;
options?: never;
head?: never;
patch?: never;
trace?: never;
};
"/v1/whitelabel-branding/assets/{asset_id}": {
parameters: {
query?: never;
header?: never;
path?: never;
cookie?: never;
};
get?: never;
put?: never;
post?: never;
/** Delete an uploaded branding asset */
delete: operations["delete_whitelabel_asset_v1_whitelabel_branding_assets__asset_id__delete"];
options?: never;
head?: never;
patch?: never;
trace?: never;
};
"/v1/whitelabel-branding/document": {
parameters: {
query?: never;
header?: never;
path?: never;
cookie?: never;
};
/** Get the stored branding document */
get: operations["get_whitelabel_document_v1_whitelabel_branding_document_get"];
/** Upsert the branding document */
put: operations["put_whitelabel_document_v1_whitelabel_branding_document_put"];
/** Upsert the branding document */
post: operations["put_whitelabel_document_v1_whitelabel_branding_document_post"];
delete?: never;
options?: never;
head?: never;
patch?: never;
trace?: never;
};
"/v1/whitelabel-branding/email/preview": {
parameters: {
query?: never;
header?: never;
path?: never;
cookie?: never;
};
get?: never;
put?: never;
/** Preview a transactional email template with a draft branding document */
post: operations["preview_whitelabel_email_v1_whitelabel_branding_email_preview_post"];
delete?: never;
options?: never;
head?: never;
patch?: never;
trace?: never;
};
"/v1/whitelabel-branding/email/templates": {
parameters: {
query?: never;
header?: never;
path?: never;
cookie?: never;
};
/** List the editable transactional email templates and their content blocks */
get: operations["list_whitelabel_email_templates_v1_whitelabel_branding_email_templates_get"];
put?: never;
post?: never;
delete?: never;
options?: never;
head?: never;
patch?: never;
trace?: never;
};
"/v1/whitelabel-branding/recheck": {
parameters: {
query?: never;
header?: never;
path?: never;
cookie?: never;
};
get?: never;
put?: never;
/** Re-run onboarding for the organization's whitelabel branding config */
post: operations["recheck_whitelabel_branding_v1_whitelabel_branding_recheck_post"];
delete?: never;
options?: never;
head?: never;
patch?: never;
trace?: never;
};
"/v1/whitelabel-branding/restore": {
parameters: {
query?: never;
header?: never;
path?: never;
cookie?: never;
};
get?: never;
put?: never;
/** Restore a terminated whitelabel (re-enable and reprovision from the preserved state) */
post: operations["restore_whitelabel_branding_v1_whitelabel_branding_restore_post"];
delete?: never;
options?: never;
head?: never;
patch?: never;
trace?: never;
};
"/v1/whitelabel-branding/tier": {
parameters: {
query?: never;
header?: never;
path?: never;
cookie?: never;
};
get?: never;
put?: never;
/** Upgrade the whitelabel to the plus tier (served on the customer's own domain) */
post: operations["upgrade_whitelabel_to_plus_v1_whitelabel_branding_tier_post"];
delete?: never;
options?: never;
head?: never;
patch?: never;
trace?: never;
};
}
export type webhooks = Record;
export interface components {
schemas: {
/** AggregationResult */
AggregationResult: {
/** Field */
field?: string | null;
/** Name */
name: string;
/** Other Count */
other_count?: number | null;
/** Rows */
rows?: components["schemas"]["AggregationRow"][] | null;
/** Type */
type: string;
/** Value */
value?: number | null;
/** Values */
values?: {
[key: string]: number;
} | null;
};
/** AggregationRow */
AggregationRow: {
/** Count */
count: number;
/** Key */
key: string;
};
/** AggregationsContext */
AggregationsContext: {
/**
* Context Id
* Format: typeid
* @example ctx_01h45ytscbebyvny4gc8cr8ma2
*/
context_id: TypeId<"ctx">;
/**
* Conversation Id
* Format: typeid
* @example conv_01h45ytscbebyvny4gc8cr8ma2
*/
conversation_id: TypeId<"conv">;
/**
* Created At
* Format: date-time
*/
created_at: Date;
/**
* @description discriminator enum property added by openapi-typescript
* @enum {string}
*/
kind: "aggregations";
/**
* Organization Id
* Format: typeid
* @example organization_01h45ytscbebyvny4gc8cr8ma2
*/
organization_id: TypeId<"organization">;
payload: components["schemas"]["AggregationsContextPayload"];
/** User Id */
user_id: string;
};
/** AggregationsContextCreate */
AggregationsContextCreate: {
/**
* @description discriminator enum property added by openapi-typescript
* @enum {string}
*/
kind: "aggregations";
payload: components["schemas"]["AggregationsContextPayload"];
};
/** AggregationsContextPayload */
AggregationsContextPayload: {
/** Aggregations */
aggregations: components["schemas"]["AggregationResult"][];
/** Question */
question: string;
/** Total */
total?: number | null;
};
/**
* AgreementType
* @enum {string}
*/
AgreementType: "terms_and_conditions" | "master_service_agreement" | "acting_as_trader" | "parking_agreement";
/** AiInferenceUsageBucket */
AiInferenceUsageBucket: {
/** Groups */
groups: components["schemas"]["AiInferenceUsageGroup"][];
/**
* Period Start
* Format: date
*/
period_start: string;
};
/**
* AiInferenceUsageGroup
* @description Public per-model AI inference usage. Deliberately excludes billing-gateway's
* internal COGS fields (cost_amount, per-million rates, has_rate).
*/
AiInferenceUsageGroup: {
/** Cache Read Tokens */
cache_read_tokens: number;
/** Cache Write Tokens */
cache_write_tokens: number;
/** Input Tokens */
input_tokens: number;
/** Model */
model: string;
/** Output Tokens */
output_tokens: number;
/** Request Count */
request_count: number;
};
/** AiInferenceUsageSeriesResponse */
AiInferenceUsageSeriesResponse: {
/** Buckets */
buckets: components["schemas"]["AiInferenceUsageBucket"][];
/**
* End Date
* Format: date
*/
end_date: string;
granularity: components["schemas"]["UsageGranularity"];
/**
* Product
* @default ai_inference
* @constant
*/
product: "ai_inference";
/**
* Start Date
* Format: date
*/
start_date: string;
};
/** AiInferenceUsageSummaryResponse */
AiInferenceUsageSummaryResponse: {
/**
* End Date
* Format: date
*/
end_date: string;
/** Groups */
groups: components["schemas"]["AiInferenceUsageGroup"][];
/**
* Product
* @default ai_inference
* @constant
*/
product: "ai_inference";
/**
* Start Date
* Format: date
*/
start_date: string;
};
/**
* AllocationMethodType
* @enum {string}
*/
AllocationMethodType: "fcfs" | "auction" | "lottery";
/** AllowedNumberOfNameserverBase */
AllowedNumberOfNameserverBase: {
/**
* Max
* @description Maximum number of nameserver per domain name
*/
max: number;
/**
* Min
* @description Minimum number of nameserver per domain name
*/
min: number;
};
/**
* AssignablePublicRole
* @enum {string}
*/
AssignablePublicRole: "admin" | "viewer" | "domain_manager" | "dns_manager" | "billing_manager";
/** AttributeCondition */
AttributeCondition: {
/** @description The attribute key to evaluate */
field: components["schemas"]["RegistryHandleAttributeType"];
/** @description The comparison operator */
operator: components["schemas"]["ConditionOperator"];
/**
* Value
* @description The value(s) to compare against
*/
value: string | string[];
};
/**
* AttributeType
* @enum {string}
*/
AttributeType: "enum" | "string" | "boolean" | "datetime" | "integer" | "country_code" | "uri_template";
/**
* Auth
* @description Pre-login OAuth bootstrap. The SPA resolves this document by hostname before login and uses
* `client_id` (the org's `wl-` Keycloak client) + `authority` (the OIDC issuer on
* the customer's auth host) to start the flow; absent, it falls back to the default dashboard client.
*
* System-owned: written only by onboarding (via branding-service's set-auth endpoint), never by a
* customer document write - branding-service preserves this block across customer upserts.
*/
Auth: {
/** Authority */
authority?: string | null;
/** Client Id */
client_id?: string | null;
};
/**
* BatchSortField
* @enum {string}
*/
BatchSortField: "created_on" | "started_at" | "finished_at";
/**
* BatchStatus
* @enum {string}
*/
BatchStatus: "pending" | "complete";
/** BillingMetadata */
BillingMetadata: {
/**
* Billing Model
* @description Payment terms for the organization.
*/
billing_model?: string | null;
/**
* Credit Limit
* @description Credit limit for the organization.
*/
credit_limit?: number | null;
/**
* Customer Number
* @description Customer account number for the organization.
*/
customer_number?: number | null;
};
/**
* BillingMode
* @enum {string}
*/
BillingMode: "consolidated" | "independent";
/**
* BillingTransactionAction
* @enum {string}
*/
BillingTransactionAction: "create" | "transfer" | "import" | "renew" | "restore" | "trade" | "application" | "service_fee" | "upgrade_fee" | "wallet_top_up";
/**
* BillingTransactionProductType
* @enum {string}
*/
BillingTransactionProductType: "domain" | "zones" | "email_forward" | "domain_forward" | "account_wallet" | "vanity_nameserver" | "whitelabel_branding" | "whitelabel_branding_plus" | "ras_domain_lifecycle" | "ams_domain_lifecycle";
/** BillingTransactionResponse */
BillingTransactionResponse: {
/** @description The action performed in the transaction */
action: components["schemas"]["BillingTransactionAction"];
/**
* Amount
* @description The amount of the transaction including VAT
*/
amount: string;
/**
* Billing Transaction Id
* Format: typeid
* @example billing_transaction_01h45ytscbebyvny4gc8cr8ma2
*/
billing_transaction_id?: TypeId<"billing_transaction">;
/**
* Completed On
* @description The date/time the transaction completed
*/
completed_on?: Date | null;
/**
* Created On
* Format: date-time
* @description The date/time the transaction was created
*/
created_on?: Date;
/** @description The currency of the transaction */
currency?: components["schemas"]["Currency"];
/**
* Price
* @description The price of the product without sales tax
*/
price: string;
/**
* Product Reference
* @description The reference of the product
*/
product_reference: string | null;
/** @description The type of product */
product_type: components["schemas"]["BillingTransactionProductType"];
/**
* @description The status of the transaction
* @default pending
*/
status: components["schemas"]["BillingTransactionStatus"];
/**
* Tax Amount
* @description The tax amount of the transaction
*/
tax_amount: string;
/**
* Tax Rate
* @description The tax rate of the transaction
*/
tax_rate: string;
/**
* Unit
* @description The unit for `volume` (e.g. 'y' for years when renewing a domain); null when not applicable
*/
unit?: string | null;
/**
* Updated On
* Format: date-time
* @description The date/time the transaction was updated
*/
updated_on?: Date;
/**
* Volume
* @description The quantity the transaction covers, expressed in `unit` (e.g. 1 for a one-year domain renewal)
*/
volume: string;
};
/**
* BillingTransactionSortField
* @enum {string}
*/
BillingTransactionSortField: "product_type" | "action" | "status" | "created_on" | "completed_on";
/**
* BillingTransactionStatus
* @enum {string}
*/
BillingTransactionStatus: "pending" | "succeeded" | "failed" | "canceled";
/** Body_upload_whitelabel_asset_v1_whitelabel_branding_assets_post */
Body_upload_whitelabel_asset_v1_whitelabel_branding_assets_post: {
/**
* File
* @description Asset file (image/font)
*/
file: string;
};
/** Brand */
Brand: {
logo?: components["schemas"]["Logo"] | null;
/** Name */
name?: string | null;
};
/** BrandingAsset */
BrandingAsset: {
/**
* Asset Id
* @description Opaque handle used to delete or reference the asset
*/
asset_id: string;
/**
* Asset Url
* @description Public URL of the asset
*/
asset_url: string;
/**
* Content Type
* @description MIME type of the asset
*/
content_type?: string | null;
/**
* Size Bytes
* @description Asset size in bytes
*/
size_bytes: number;
/**
* Updated On
* Format: date-time
* @description Last-modified timestamp
*/
updated_on: Date;
};
/** BrandingDocument */
BrandingDocument: {
auth?: components["schemas"]["Auth"] | null;
brand?: components["schemas"]["Brand"] | null;
content?: components["schemas"]["Content"] | null;
theme?: components["schemas"]["Theme"] | null;
/**
* Version
* @default 1
*/
version: number;
};
/** BrowserStatsBucket */
BrowserStatsBucket: {
/** Key */
key: string;
/** Total */
total: number;
/** Unique */
unique: number;
};
/** BulkObjectTagChanges */
BulkObjectTagChanges: {
/**
* Add
* @description Tag IDs to add to the objects.
*/
add?: TypeId<"tag">[];
/**
* Objects
* @description Object references to operate on. TypeIDs and resource names may be mixed.
*/
objects: string[];
/**
* Remove
* @description Tag IDs to remove from the objects.
*/
remove?: TypeId<"tag">[];
/**
* Replace
* @description Tag IDs to set as the complete tag set for the objects, replacing any existing tags. Mutually exclusive with 'add' and 'remove'. An empty list removes all tags.
*/
replace?: TypeId<"tag">[] | null;
/** @description The object/tag type (e.g. DOMAIN, CONTACT, ZONE) */
type: components["schemas"]["TagType"];
};
/** ClaimsNotice */
ClaimsNotice: {
/**
* Claims
* @description List of trademark claims
*/
claims?: components["schemas"]["TmClaim"][];
/**
* Claims Key
* @description The claims key used to retrieve this claims notice
*/
claims_key: string;
/**
* Claims Notice Acceptance Hash
* @description Hash to accept the claims notice
*/
claims_notice_acceptance_hash: string;
/**
* Label
* @description Domain name label covered by this claims notice
*/
label: string;
/**
* Notice Footer
* @description Claims notice form footer text
* @default
*/
notice_footer: string;
/**
* Notice Footer Url
* @description Claims notice form footer URL
* @default
*/
notice_footer_url: string;
/**
* Notice Intro
* @description Introductory text for the claims notice
* @default
*/
notice_intro: string;
/**
* Notice Not Exact Match Intro
* @description Introductory text for the non-exact match section
* @default
*/
notice_not_exact_match_intro: string;
/**
* Notice Title
* @description Title for the claims notice
* @default
*/
notice_title: string;
/**
* Rendered Html
* @description The rendered trademark claims notice HTML
* @default
*/
rendered_html: string;
};
/** ClaimsNoticesRequest */
ClaimsNoticesRequest: {
/**
* Claims Keys
* @description List of claims keys to retrieve claims notices for, for the time being limited to one claims key
*/
claims_keys: string[];
};
/** ClaimsNoticesResponse */
ClaimsNoticesResponse: {
/** Claims Notices */
claims_notices: components["schemas"]["ClaimsNotice"][];
};
/** ClearVanityNameserverSetDefaultRes */
ClearVanityNameserverSetDefaultRes: {
/**
* Cleared
* @description True if an ACTIVE default was unset; False on an idempotent no-op (org had no default).
*/
cleared: boolean;
};
/** CommandError */
CommandError: {
/**
* Code
* @description Stable semantic error code for known failure modes (e.g. 'ERROR_BATCH_EMPTY'); null for ad-hoc failures. Matches the 'code' field in top-level error responses.
*/
code?: string | null;
/**
* Error
* @description Error message
*/
error: string;
/**
* Index
* @description Index of the failed command in the request
*/
index: number;
/**
* Instance Index
* @description Index within the bulk command's instances[] for per-instance failures
*/
instance_index?: number | null;
/**
* Resource Key
* @description Resource identifier (zone name, domain name, contact email) for per-instance failures
*/
resource_key?: string | null;
/**
* Type
* @description RFC 9457 problem type identifier derived from the exception class (e.g. 'value', 'batch-empty'). Matches the 'type' field in top-level error responses.
*/
type?: string | null;
};
/** Communication */
Communication: {
/**
* Timedelta
* @description The Timedeltas of when to send a verification notice of the Communication Channel [+0D, +4D, +12D, +15D, +27D]
*/
timedelta: string[];
/**
* Type
* @description Which Communication channel is used for the Verification [email]
*/
type: string;
};
/**
* ComplianceStatus
* @enum {string}
*/
ComplianceStatus: "preparing" | "pending" | "approved" | "disapproved" | "expired";
/**
* ConditionOperator
* @enum {string}
*/
ConditionOperator: "equals" | "not_equals" | "in" | "not_in";
/** ContactAttestReq */
ContactAttestReq: {
/** Attestations */
attestations: components["schemas"]["ContactAttestVerificationReq"][];
};
/** ContactAttestRes */
ContactAttestRes: {
/** Verifications */
verifications: components["schemas"]["ContactVerificationStatus"][];
};
/** ContactAttestVerificationReq */
ContactAttestVerificationReq: {
/** Attestation Reference */
attestation_reference: string;
claim: components["schemas"]["ContactVerificationClaim"];
eid?: components["schemas"]["ContactVerificationEidInformation"] | null;
method: components["schemas"]["ContactVerificationMethod"];
proof: components["schemas"]["ContactVerificationProof"];
};
/**
* ContactAttributeDefinition
* @description Definition of a possible attribute for a TLD.
*/
ContactAttributeDefinition: {
/**
* Conditions
* @description Conditions that must ALL be true for this attribute to be active. None means always active.
*/
conditions?: components["schemas"]["AttributeCondition"][] | null;
/**
* Contact Roles
* @description Contact roles this attribute applies to. None means all roles.
*/
contact_roles?: components["schemas"]["DomainContactType"][] | null;
/** @description Unique identifier for the attribute */
key: components["schemas"]["RegistryHandleAttributeType"];
/**
* Required
* @description Whether this attribute is required when its conditions are met
* @default false
*/
required: boolean;
/** @description Type of the attribute (e.g., 'enum', 'string', 'boolean') */
type: components["schemas"]["AttributeType"];
/**
* Values
* @description Allowed values for enum types
*/
values?: string[] | null;
};
/** ContactAttributeLinkDetail */
ContactAttributeLinkDetail: {
/**
* Attributes
* @description The attributes from the linked set
*/
attributes: {
[key: string]: string;
};
/**
* Contact Attribute Set Id
* Format: typeid
* @description The attribute set linked to the contact
* @example contact_attribute_set_01h45ytscbebyvny4gc8cr8ma2
*/
contact_attribute_set_id: TypeId<"contact_attribute_set">;
/**
* Label
* @description The label of the linked attribute set
*/
label: string;
/**
* Tld
* @description The TLD this link applies to
*/
tld: string;
};
/** ContactAttributeLinkResponse */
ContactAttributeLinkResponse: {
/**
* Contact Attribute Link Id
* Format: typeid
* @description The unique identifier of the link
* @example contact_attribute_link_01h45ytscbebyvny4gc8cr8ma2
*/
contact_attribute_link_id: TypeId<"contact_attribute_link">;
/**
* Contact Attribute Set Id
* Format: typeid
* @description The attribute set linked to the contact
* @example contact_attribute_set_01h45ytscbebyvny4gc8cr8ma2
*/
contact_attribute_set_id: TypeId<"contact_attribute_set">;
/**
* Contact Id
* Format: typeid
* @description The contact this link belongs to
* @example contact_01h45ytscbebyvny4gc8cr8ma2
*/
contact_id: TypeId<"contact">;
/**
* Created On
* Format: date-time
* @description The date/time the entry was created on
*/
created_on: Date;
/**
* Tld
* @description The TLD this link applies to
*/
tld: string;
};
/** ContactAttributeSetCreate */
ContactAttributeSetCreate: {
/**
* Attributes
* @description Key-value map of contact attributes for this set
*/
attributes: {
[key: string]: string;
};
/**
* Label
* @description A human-readable label explaining the purpose of this attribute set
*/
label: string;
/**
* Tld
* @description The TLD this attribute set applies to (e.g. 'de', '.de', 'DE')
*/
tld: string;
};
/** ContactAttributeSetResponse */
ContactAttributeSetResponse: {
/**
* Attributes
* @description Key-value map of contact attributes for this set
*/
attributes: {
[key: string]: string;
};
/**
* Contact Attribute Set Id
* Format: typeid
* @description The unique identifier of the attribute set
* @example contact_attribute_set_01h45ytscbebyvny4gc8cr8ma2
*/
contact_attribute_set_id: TypeId<"contact_attribute_set">;
/**
* Created On
* Format: date-time
* @description The date/time the entry was created on
*/
created_on: Date;
/**
* Label
* @description A human-readable label explaining the purpose of this attribute set
*/
label: string;
/**
* Linked Contacts
* @description Number of contacts linked to this attribute set
* @default 0
*/
linked_contacts: number;
/**
* Organization Id
* Format: typeid
* @description The organization that owns this attribute set
* @example organization_01h45ytscbebyvny4gc8cr8ma2
*/
organization_id: TypeId<"organization">;
/**
* Tld
* @description The TLD this attribute set applies to
*/
tld: string;
/**
* Updated On
* Format: date-time
* @description The date/time the entry was last updated on
*/
updated_on: Date;
};
/**
* ContactAttributeSetSortField
* @enum {string}
*/
ContactAttributeSetSortField: "label" | "tld" | "created_on" | "updated_on";
/** ContactAttributeSetUpdate */
ContactAttributeSetUpdate: {
/**
* Label
* @description A human-readable label explaining the purpose of this attribute set
*/
label?: string | null;
};
/** ContactConfigBase */
ContactConfigBase: {
/**
* Max
* @description Maximum contacts per domain name
*/
max: number;
/**
* Min
* @description Minimum contacts per domain name
*/
min: number;
/** @description The type of contact */
type: components["schemas"]["DomainContactType"];
};
/** ContactCreate */
ContactCreate: {
/**
* City
* @description The city of the contact
*/
city: string;
/**
* Country
* @description The country of the contact (ISO 3166-1 alpha-2, plus XK for Kosovo)
*/
country: string;
/**
* Disclose
* @description Whether the contact details should be disclosed. The Disclose function may not work with all TLDs. Some registries still display the data in Whois if, for example, the organization field is filled in.
*/
disclose: boolean;
/**
* Email
* Format: email
* @description Contact email address (as submitted)
*/
email: string;
/**
* Fax
* @description The contacts's fax number
*/
fax?: string | null;
/**
* First Name
* @description The first name of the contact
*/
first_name: string;
/**
* Last Name
* @description The last name of the contact
*/
last_name: string;
/**
* Org
* @description The organization of the contact
*/
org?: string | null;
/**
* Phone
* Format: phone
* @description The contact's phone number
* @example +1.2125552368
*/
phone: string;
/**
* Postal Code
* @description The postal code of the contact
*/
postal_code: string;
/**
* State
* @description The state of the contact
*/
state?: string | null;
/**
* Street
* @description The address of the contact
*/
street: string;
/**
* Title
* @description The title of the contact
*/
title?: string | null;
};
/** ContactCreateBulkCommand */
ContactCreateBulkCommand: {
/**
* @description discriminator enum property added by openapi-typescript
* @enum {string}
*/
command: "contact_create_bulk";
/**
* Idempotency Key
* @description Idempotency key for this bulk command
*/
idempotency_key?: string | null;
/** @description Bulk contact creation payload */
payload: components["schemas"]["ContactCreateBulkPayload"];
/**
* Version
* @description Command version
* @default v1
*/
version: string;
};
/** ContactCreateBulkInstance */
ContactCreateBulkInstance: {
/**
* City
* @description City
*/
city: string;
/**
* Country
* @description Override country for this contact
*/
country?: string | null;
/**
* Disclose
* @description Override disclose setting for this contact
*/
disclose?: boolean | null;
/**
* Email
* Format: email
* @description Email address of the contact
*/
email: string;
/**
* Fax
* @description Fax number in international format
*/
fax?: string | null;
/**
* First Name
* @description First name of the contact
*/
first_name: string;
/**
* Last Name
* @description Last name of the contact
*/
last_name: string;
/**
* Org
* @description Override organization for this contact
*/
org?: string | null;
/**
* Phone
* Format: phone
* @description Phone number in international format
*/
phone: string;
/**
* Postal Code
* @description Postal code
*/
postal_code: string;
/**
* State
* @description Override state for this contact
*/
state?: string | null;
/**
* Street
* @description Street address
*/
street: string;
/**
* Title
* @description Override title for this contact
*/
title?: string | null;
};
/** ContactCreateBulkPayload */
ContactCreateBulkPayload: {
/**
* Instances
* @description List of contacts to create (1-1000)
*/
instances: components["schemas"]["ContactCreateBulkInstance"][];
/** @description Shared settings for all contacts */
template: components["schemas"]["ContactCreateBulkTemplate"];
};
/** ContactCreateBulkTemplate */
ContactCreateBulkTemplate: {
/**
* Country
* @description The country of the contacts (ISO 3166-1 alpha-2, plus XK for Kosovo)
*/
country: string;
/**
* Disclose
* @description Whether contact details should be disclosed in WHOIS
*/
disclose: boolean;
/**
* Org
* @description Organization name
*/
org?: string | null;
/**
* State
* @description State/province
*/
state?: string | null;
/**
* Title
* @description Contact title
*/
title?: string | null;
};
/** ContactCreateCommand */
ContactCreateCommand: {
/**
* @description discriminator enum property added by openapi-typescript
* @enum {string}
*/
command: "contact_create";
/**
* Idempotency Key
* @description Idempotency key for this command
*/
idempotency_key?: string | null;
/** @description Contact creation payload */
payload: components["schemas"]["ContactCreatePayloadData"];
/**
* Version
* @description Command version
* @default v1
*/
version: string;
};
/** ContactCreatePayloadData */
ContactCreatePayloadData: {
/**
* City
* @description The city of the contact
*/
city: string;
/**
* Country
* @description The country of the contact (ISO 3166-1 alpha-2, plus XK for Kosovo)
*/
country: string;
/**
* Disclose
* @description Whether the contact details should be disclosed. The Disclose function may not work with all TLDs. Some registries still display the data in Whois if, for example, the organization field is filled in.
*/
disclose: boolean;
/**
* Email
* Format: email
* @description Contact email address (as submitted)
*/
email: string;
/**
* Fax
* @description The contacts's fax number
*/
fax?: string | null;
/**
* First Name
* @description The first name of the contact
*/
first_name: string;
/**
* Last Name
* @description The last name of the contact
*/
last_name: string;
/**
* Org
* @description The organization of the contact
*/
org?: string | null;
/**
* Phone
* Format: phone
* @description The contact's phone number
* @example +1.2125552368
*/
phone: string;
/**
* Postal Code
* @description The postal code of the contact
*/
postal_code: string;
/**
* State
* @description The state of the contact
*/
state?: string | null;
/**
* Street
* @description The address of the contact
*/
street: string;
/**
* Title
* @description The title of the contact
*/
title?: string | null;
};
/** ContactCreateWorkerPayload */
ContactCreateWorkerPayload: {
contact: components["schemas"]["ContactCreatePayloadData"];
/** Operation */
operation: string;
/**
* @description discriminator enum property added by openapi-typescript
* @enum {string}
*/
type: "contact_create" | "contact_create_bulk";
};
/** ContactCreateWorkerResult */
ContactCreateWorkerResult: {
/** Contact Id */
contact_id: string;
/**
* @description discriminator enum property added by openapi-typescript
* @enum {string}
*/
type: "contact_create" | "contact_create_bulk";
};
/** ContactHandle */
ContactHandle: {
/**
* Attributes
* @description Additional attributes related to the contact
*/
attributes?: {
[key: string]: string;
} | null;
/**
* Contact Id
* Format: typeid
* @description The contact id of the contact
* @example contact_01h45ytscbebyvny4gc8cr8ma2
*/
contact_id: TypeId<"contact">;
};
/** @description The contacts of the domain */
ContactIdList: {
[key: string]: TypeId<"contact">;
};
/**
* ContactIncludeField
* @enum {string}
*/
ContactIncludeField: "tags";
/** ContactResponse */
ContactResponse: {
/**
* Attribute Sets
* @description Linked attribute sets for this contact
*/
attribute_sets?: components["schemas"]["ContactAttributeLinkDetail"][];
/**
* City
* @description The city of the contact
*/
city: string;
/**
* Contact Id
* Format: typeid
* @example contact_01h45ytscbebyvny4gc8cr8ma2
*/
contact_id?: TypeId<"contact">;
/**
* Country
* @description The country of the contact (ISO 3166-1 alpha-2, plus XK for Kosovo)
*/
country: string;
/**
* Created On
* Format: date-time
* @description The date/time the entry was created on
*/
created_on?: Date;
/**
* Disclose
* @description Whether the contact details should be disclosed. The Disclose function may not work with all TLDs. Some registries still display the data in Whois if, for example, the organization field is filled in.
*/
disclose: boolean;
/**
* Email
* Format: email
* @description Contact email address (as submitted)
*/
email: string;
/**
* Fax
* @description The contacts's fax number
*/
fax?: string | null;
/**
* First Name
* @description The first name of the contact
*/
first_name: string;
/**
* Last Name
* @description The last name of the contact
*/
last_name: string;
/**
* Org
* @description The organization of the contact
*/
org?: string | null;
/**
* Organization Id
* Format: typeid
* @description The organization that owns the domain
* @default None
* @example organization_01h45ytscbebyvny4gc8cr8ma2
*/
organization_id: TypeId<"organization">;
/**
* Phone
* Format: phone
* @description The contact's phone number
* @example +1.2125552368
*/
phone: string;
/**
* Postal Code
* @description The postal code of the contact
*/
postal_code: string;
/**
* State
* @description The state of the contact
*/
state?: string | null;
/**
* Status Tags
* @description Status tags assigned to this contact. Only included when ?include=tags is specified.
*/
status_tags?: components["schemas"]["StatusTagResponse"][] | null;
/**
* Street
* @description The address of the contact
*/
street: string;
/**
* Tags
* @description Tags assigned to this contact
*/
tags?: components["schemas"]["TagEnrichedResponse"][] | null;
/**
* Title
* @description The title of the contact
*/
title?: string | null;
};
/**
* ContactSortField
* @enum {string}
*/
ContactSortField: "first_name" | "last_name" | "email" | "created_on";
/**
* ContactType
* @enum {string}
*/
ContactType: "owner" | "agent" | "third party";
/** ContactVerificationApiResponse */
ContactVerificationApiResponse: {
/**
* Canceled On
* @description The date the verification was cancelled
*/
canceled_on?: Date | null;
/**
* Contact Id
* Format: typeid
* @description The contact that is being verified
* @default None
* @example contact_01h45ytscbebyvny4gc8cr8ma2
*/
contact_id: TypeId<"contact">;
/**
* Contact Verification Id
* Format: typeid
* @example contact_verification_01h45ytscbebyvny4gc8cr8ma2
*/
contact_verification_id?: TypeId<"contact_verification">;
/**
* Created On
* Format: date-time
* @description The date/time the entry was created on
*/
created_on?: Date;
/**
* @description Current status of the email verification
* @default pending
*/
status: components["schemas"]["EmailVerificationStatus"];
/**
* Token
* @description The token to verify the email address
*/
token: string;
/** @description The type of verification: 'api' for retrieving token via API, 'email' for retrieving via email */
type: components["schemas"]["VerificationType"];
/**
* Updated On
* Format: date-time
* @description The date/time the entry was last updated on
*/
updated_on?: Date;
/**
* Verified On
* @description The date the verification was verified
*/
verified_on?: Date | null;
};
/**
* ContactVerificationClaim
* @enum {string}
*/
ContactVerificationClaim: "NAME" | "ADDRESS" | "EMAIL" | "PHONE" | "LEGAL_ENTITY";
/** ContactVerificationEidInformation */
ContactVerificationEidInformation: {
/** Eid Scheme */
eid_scheme: string;
level_of_assurance: components["schemas"]["LevelOfAssurance"];
};
/** ContactVerificationEmailResponse */
ContactVerificationEmailResponse: {
/**
* Canceled On
* @description The date the verification was cancelled
*/
canceled_on?: Date | null;
/**
* Contact Id
* Format: typeid
* @description The contact that is being verified
* @default None
* @example contact_01h45ytscbebyvny4gc8cr8ma2
*/
contact_id: TypeId<"contact">;
/**
* Contact Verification Id
* Format: typeid
* @example contact_verification_01h45ytscbebyvny4gc8cr8ma2
*/
contact_verification_id?: TypeId<"contact_verification">;
/**
* Created On
* Format: date-time
* @description The date/time the entry was created on
*/
created_on?: Date;
/**
* @description Current status of the email verification
* @default pending
*/
status: components["schemas"]["EmailVerificationStatus"];
/** @description The type of verification: 'api' for retrieving token via API, 'email' for retrieving via email */
type: components["schemas"]["VerificationType"];
/**
* Updated On
* Format: date-time
* @description The date/time the entry was last updated on
*/
updated_on?: Date;
/**
* Verified On
* @description The date the verification was verified
*/
verified_on?: Date | null;
};
/**
* ContactVerificationMethod
* @enum {string}
*/
ContactVerificationMethod: "AUTH" | "VDIG" | "ELECTRONIC_DOCUMENT" | "PHYSICAL_DOCUMENT" | "BVR" | "PVR" | "DATA" | "REACHABILITY";
/**
* ContactVerificationProof
* @enum {string}
*/
ContactVerificationProof: "IDCARD" | "PASSPORT" | "POPULATION_REGISTER" | "RESIDENCE_PERMIT" | "PROOF_OF_ARRIVAL" | "DRIVERS_LICENCE" | "COMPANY_REGISTER" | "COMPANY_STATEMENT" | "BANK_ACCOUNT" | "ONLINE_PAYMENT_ACCOUNT" | "UTILITY_ACCOUNT" | "BANK_STATEMENT" | "TAX_STATEMENT" | "WRITTEN_ATTESTATION" | "DIGITAL_ATTESTATION" | "POSTAL_VER_TRANSACTION_LOG" | "EMAIL_VER_TRANSACTION_LOG" | "PHONE_VER_TRANSACTION_LOG" | "ADDRESS_DATABASE";
/** ContactVerificationResponse */
ContactVerificationResponse: {
/**
* Canceled On
* @description The date the verification was cancelled
*/
canceled_on?: Date | null;
/**
* Contact Id
* Format: typeid
* @description The contact that is being verified
* @default None
* @example contact_01h45ytscbebyvny4gc8cr8ma2
*/
contact_id: TypeId<"contact">;
/**
* Contact Verification Id
* Format: typeid
* @example contact_verification_01h45ytscbebyvny4gc8cr8ma2
*/
contact_verification_id?: TypeId<"contact_verification">;
/**
* Created On
* Format: date-time
* @description The date/time the entry was created on
*/
created_on?: Date;
/**
* @description Current status of the email verification
* @default pending
*/
status: components["schemas"]["EmailVerificationStatus"];
/** @description The type of verification: 'api' for retrieving token via API, 'email' for retrieving via email */
type: components["schemas"]["VerificationType"];
/**
* Updated On
* Format: date-time
* @description The date/time the entry was last updated on
*/
updated_on?: Date;
/**
* Verified On
* @description The date the verification was verified
*/
verified_on?: Date | null;
};
/**
* ContactVerificationState
* @enum {string}
*/
ContactVerificationState: "UNVERIFIED" | "VERIFIED" | "IN_PROGRESS" | "EXPIRED";
/** ContactVerificationStatus */
ContactVerificationStatus: {
/** Attestation Reference */
attestation_reference?: string | null;
claim: components["schemas"]["ContactVerificationClaim"];
eid?: components["schemas"]["ContactVerificationEidInformation"] | null;
/** Expires On */
expires_on?: Date | null;
method?: components["schemas"]["ContactVerificationMethod"] | null;
proof?: components["schemas"]["ContactVerificationProof"] | null;
state: components["schemas"]["ContactVerificationState"];
/** Verified On */
verified_on?: Date | null;
};
/** ContactsBase */
ContactsBase: {
/**
* Authinfo Required
* @description Whether the registry requires authinfo for contact creation
*/
authinfo_required?: boolean | null;
/**
* Authinfo Supported
* @description Whether the registry supports authinfo for contact creation
* @default true
*/
authinfo_supported: boolean;
/**
* Is Thick
* @description Whether the registry supports thick contacts
*/
is_thick?: boolean | null;
/**
* Possible Attributes
* @description List of possible attributes that can be set for this TLD
*/
possible_attributes?: components["schemas"]["ContactAttributeDefinition"][];
/**
* Privacy Proxy
* @description Whether a privacy service is allowed
*/
privacy_proxy?: boolean | null;
/** @description Whether the registrant can change through update or trade */
registrant_change?: components["schemas"]["RegistrantChangeType"] | null;
/**
* Support Check
* @description Whether the registry supports contact checks
*/
support_check?: boolean | null;
/**
* Support Client Contact Id
* @description Whether the registry supports client defined contact ID
*/
support_client_contact_id?: boolean | null;
/**
* Support Transfer
* @description Whether the registry supports contact transfer
*/
support_transfer?: boolean | null;
/**
* Supported Postal Types
* @description Supported postal address types
*/
supported_postal_types?: components["schemas"]["PostalAddressType"][] | null;
/**
* Supported Roles
* @description Supported contact roles
*/
supported_roles?: components["schemas"]["ContactConfigBase"][] | null;
/**
* Transfer Supported Roles
* @description Supported contact roles for transfer operations. Falls back to supported_roles if not specified.
*/
transfer_supported_roles?: components["schemas"]["ContactConfigBase"][] | null;
/**
* Update Supported Roles
* @description Supported contact roles for update operations. Falls back to supported_roles if not specified.
*/
update_supported_roles?: components["schemas"]["ContactConfigBase"][] | null;
};
/** ContactsContext */
ContactsContext: {
/**
* Context Id
* Format: typeid
* @example ctx_01h45ytscbebyvny4gc8cr8ma2
*/
context_id: TypeId<"ctx">;
/**
* Conversation Id
* Format: typeid
* @example conv_01h45ytscbebyvny4gc8cr8ma2
*/
conversation_id: TypeId<"conv">;
/**
* Created At
* Format: date-time
*/
created_at: Date;
/**
* @description discriminator enum property added by openapi-typescript
* @enum {string}
*/
kind: "contacts";
/**
* Organization Id
* Format: typeid
* @example organization_01h45ytscbebyvny4gc8cr8ma2
*/
organization_id: TypeId<"organization">;
payload: components["schemas"]["ContextPayload_RegistrarContact_"];
/** User Id */
user_id: string;
};
/** ContactsContextCreate */
ContactsContextCreate: {
/**
* @description discriminator enum property added by openapi-typescript
* @enum {string}
*/
kind: "contacts";
payload: components["schemas"]["ContextPayload_RegistrarContact_"];
};
/** Content */
Content: {
/** Email Blocks */
email_blocks?: Record | null;
footer?: components["schemas"]["Footer"] | null;
legal?: components["schemas"]["Legal"] | null;
/** Signature */
signature?: string | null;
support?: components["schemas"]["Support"] | null;
};
/** ContextListResponse */
ContextListResponse: {
pagination: components["schemas"]["PaginationMetadata"];
/** Results */
results: (components["schemas"]["ZonesContext"] | components["schemas"]["ContactsContext"] | components["schemas"]["DomainsContext"] | components["schemas"]["DomainForwardsContext"] | components["schemas"]["EmailForwardsContext"] | components["schemas"]["DomainRecommendationsContext"] | components["schemas"]["AggregationsContext"])[];
};
/** ContextMeta */
ContextMeta: {
/** Processing Time Ms */
processing_time_ms?: number | null;
/** Total */
total?: number | null;
};
/** ContextPayload[DomainForward] */
ContextPayload_DomainForward_: {
meta?: components["schemas"]["ContextMeta"] | null;
pagination?: components["schemas"]["PaginationMetadata"] | null;
/** Results */
results: components["schemas"]["DomainForward"][];
};
/** ContextPayload[DomainSearchSuggestionWithPrice] */
ContextPayload_DomainSearchSuggestionWithPrice_: {
meta?: components["schemas"]["ContextMeta"] | null;
pagination?: components["schemas"]["PaginationMetadata"] | null;
/** Results */
results: components["schemas"]["DomainSearchSuggestionWithPrice"][];
};
/** ContextPayload[EmailForwardResponse] */
ContextPayload_EmailForwardResponse_: {
meta?: components["schemas"]["ContextMeta"] | null;
pagination?: components["schemas"]["PaginationMetadata"] | null;
/** Results */
results: components["schemas"]["EmailForwardResponse"][];
};
/** ContextPayload[RegistrarContact] */
ContextPayload_RegistrarContact_: {
meta?: components["schemas"]["ContextMeta"] | null;
pagination?: components["schemas"]["PaginationMetadata"] | null;
/** Results */
results: components["schemas"]["RegistrarContact"][];
};
/** ContextPayload[RegistrarDomain] */
ContextPayload_RegistrarDomain_: {
meta?: components["schemas"]["ContextMeta"] | null;
pagination?: components["schemas"]["PaginationMetadata"] | null;
/** Results */
results: components["schemas"]["RegistrarDomain"][];
};
/** ContextPayload[RegistrarZone] */
ContextPayload_RegistrarZone_: {
meta?: components["schemas"]["ContextMeta"] | null;
pagination?: components["schemas"]["PaginationMetadata"] | null;
/** Results */
results: components["schemas"]["RegistrarZone"][];
};
/** Conversation */
Conversation: {
/**
* Conversation Id
* Format: typeid
* @example conv_01h45ytscbebyvny4gc8cr8ma2
*/
conversation_id: TypeId<"conv">;
/**
* Created At
* Format: date-time
*/
created_at: Date;
/** Last Message At */
last_message_at?: Date | null;
/**
* Message Count
* @default 0
*/
message_count: number;
/** Metadata */
metadata?: {
[key: string]: unknown;
};
/**
* Organization Id
* Format: typeid
* @example organization_01h45ytscbebyvny4gc8cr8ma2
*/
organization_id: TypeId<"organization">;
/**
* Summary
* @description Optional rolling summary maintained by the memory service.
*/
summary?: string | null;
/**
* Title
* @description Human-readable conversation title.
*/
title?: string | null;
/**
* Updated At
* Format: date-time
*/
updated_at: Date;
/** User Id */
user_id: string;
};
/** ConversationCreateRequest */
ConversationCreateRequest: {
/** Metadata */
metadata?: {
[key: string]: unknown;
};
/** Title */
title?: string | null;
};
/** ConversationListResponse */
ConversationListResponse: {
pagination: components["schemas"]["PaginationMetadata"];
/** Results */
results: components["schemas"]["Conversation"][];
};
/** ConversationPatchRequest */
ConversationPatchRequest: {
/** Metadata */
metadata?: {
[key: string]: unknown;
} | null;
/** Title */
title?: string | null;
};
/** CreateJobBatchResponse */
CreateJobBatchResponse: {
/**
* Batch Id
* Format: typeid
* @description TypeID identifying this batch
* @example batch_01h45ytscbebyvny4gc8cr8ma2
*/
batch_id: TypeId<"batch">;
/**
* Duplicates
* @description Per-command details for duplicates, including pointers to the existing jobs/batches
*/
duplicates?: components["schemas"]["DuplicateCommand"][];
/**
* Errors
* @description Details of failed commands
*/
errors?: components["schemas"]["CommandError"][];
/**
* Jobs Created
* @description Number of jobs successfully created
*/
jobs_created: number;
/**
* Jobs Duplicated
* @description Number of commands skipped because their idempotency_key matched a previously-submitted job
* @default 0
*/
jobs_duplicated: number;
/**
* Jobs Failed
* @description Number of jobs that failed to create
*/
jobs_failed: number;
/**
* Status Url
* @description URL to check batch status. May 404 if jobs_created is 0 — see duplicates[].existing_batch_id for prior batches.
*/
status_url: string;
/**
* Total Commands
* @description Total commands in the batch
*/
total_commands: number;
};
/** CreateReportReq */
CreateReportReq: {
/** Registrar Credential Id */
registrar_credential_id?: TypeId<"registrar_credential"> | null;
/** @default domain_inventory */
report_type: components["schemas"]["ReportType"];
};
/**
* Currency
* @enum {string}
*/
Currency: "USD" | "EUR";
/**
* CustomRoleCreate
* @description Request body for creating a custom role.
*/
CustomRoleCreate: {
/**
* Description
* @description Description of the custom role.
*/
description?: string | null;
/**
* Name
* @description Display name of the custom role as provided by the user (e.g. 'Support Staff').
*/
name: string;
/**
* Permissions
* @description Permissions the role grants, as `resource:scope` (e.g. `domains:read`). The escalation-bearing admin/owner permissions cannot be granted.
*/
permissions: components["schemas"]["PublicPermission"][];
};
CustomRoleLabel: string;
/**
* CustomRoleUpdate
* @description Request body for updating a custom role. Omitted fields are left unchanged; `permissions`
* is a full replacement set when provided.
*/
CustomRoleUpdate: {
/**
* Description
* @description New description.
*/
description?: string | null;
/**
* Name
* @description New display name.
*/
name?: string | null;
/**
* Permissions
* @description Full replacement set of `resource:scope` permissions the role grants.
*/
permissions?: components["schemas"]["PublicPermission"][] | null;
};
/**
* DeletePolicyType
* @enum {string}
*/
DeletePolicyType: "immediate" | "expiration";
/**
* DnsChangeAction
* @enum {string}
*/
DnsChangeAction: "create_zone" | "delete_zone" | "create_record" | "delete_record" | "enable_dnssec" | "disable_dnssec";
/** DnsChangeResponse */
DnsChangeResponse: {
action: components["schemas"]["DnsChangeAction"];
/** Record Data */
record_data: string | null;
/** Rrset Name */
rrset_name: string | null;
rrset_type: components["schemas"]["DnsRrsetType"] | null;
/** Ttl */
ttl: number | null;
};
/** DnsChangesResponse */
DnsChangesResponse: {
/** Changes */
changes: components["schemas"]["DnsChangeResponse"][];
/** Changeset Id */
changeset_id: string | null;
dnssec_registry_publish?: components["schemas"]["DnssecRegistryPublishOutcome"] | null;
/** Num Changes */
num_changes: number;
/** Zone Name */
zone_name: string;
};
/** DnsConfigurationBase */
DnsConfigurationBase: {
allowed_number_of_nameserver: components["schemas"]["AllowedNumberOfNameserverBase"];
/**
* Czds Available
* @description Whether the zone is available in CZDS
*/
czds_available?: boolean | null;
/**
* Dnssec Allowed
* @description Whether the registry supports DNSSEC
*/
dnssec_allowed: boolean;
/**
* Dnssec Mandatory
* @description Whether DNSSEC is mandatory for a domain name
*/
dnssec_mandatory?: boolean | null;
/** @description DNSSEC mode */
dnssec_mode?: components["schemas"]["DnssecModeType"] | null;
/**
* Dnssec Submit Digest Types
* @description Which DS digest types we submit to the registry for zones we host, in order of preference: the first listed type the zone has a DS record for is submitted, later entries are fallbacks. Absent means submit every digest type the zone publishes. This is our submission policy, not the set of digest types the registry accepts.
*/
dnssec_submit_digest_types?: number[] | null;
/**
* Host Objects
* @description Whether the registry supports host objects or use attributes
*/
host_objects: boolean;
/**
* Host Parent Check Tlds
* @description TLDs that require parent-host checks (ns1.example.com => example.com)
*/
host_parent_check_tlds?: string[] | null;
/**
* Registry Nameserver Check
* @description Whether the registry checks the nameserver configuration
*/
registry_nameserver_check: boolean;
/**
* Registry Root Nameserver Update
* @description Number of hours until the root zone is updated, 0 = real-time
*/
registry_root_nameserver_update: number;
};
/**
* DnsProtectedReason
* @enum {string}
*/
DnsProtectedReason: "SYSTEM_MANAGED_SOA" | "SYSTEM_MANAGED_NS" | "EMAIL_FORWARD" | "DOMAIN_FORWARD" | "WHITELABEL" | "GENERIC";
/** DnsRecordCreate */
DnsRecordCreate: {
/** Rdata */
rdata: string;
};
/** DnsRecordDTO */
DnsRecordDTO: {
/**
* Rdata
* @description The record data (e.g., IP address, domain name)
*/
rdata: string;
};
/** DnsRecordPatchOp */
DnsRecordPatchOp: {
op: components["schemas"]["PatchOp"];
record: components["schemas"]["DnsRrsetWithOneRecordPatch"];
};
/** DnsRecordResponse */
DnsRecordResponse: {
/**
* Protected
* @description Whether the record is protected
* @default false
*/
protected: boolean;
/** @description Reason why the record is protected */
protected_reason?: components["schemas"]["DnsProtectedReason"] | null;
/** Rdata */
rdata: string;
};
/** DnsRrsetCreate */
DnsRrsetCreate: {
/** Name */
name: string;
/** Records */
records: components["schemas"]["DnsRecordCreate"][];
/** Ttl */
ttl: number;
type: components["schemas"]["DnsRrsetType"];
};
/** DnsRrsetDTO */
DnsRrsetDTO: {
/**
* Name
* @description The RRset name (e.g., '@', 'www')
*/
name: string;
/**
* Records
* @description List of records in this RRset
*/
records?: components["schemas"]["DnsRecordDTO"][];
/**
* Ttl
* @description Time to live in seconds
*/
ttl: number;
/** @description The RRset type */
type: components["schemas"]["DnsRrsetType"];
};
/** DnsRrsetPatch */
DnsRrsetPatch: {
/** Name */
name: string;
/** Records */
records: components["schemas"]["DnsRecordCreate"][];
/** Ttl */
ttl: number;
type: components["schemas"]["DnsRrsetType"];
};
/** DnsRrsetPatchOp */
DnsRrsetPatchOp: {
op: components["schemas"]["PatchOp"];
rrset: components["schemas"]["DnsRrsetPatch"];
};
/** DnsRrsetResponse */
DnsRrsetResponse: {
/** Name */
name: string;
/**
* Protected
* @description Whether the RRset is protected
* @default false
*/
protected: boolean;
/** @description Reason why the RRset is protected */
protected_reason?: components["schemas"]["DnsProtectedReason"] | null;
/** Records */
records?: components["schemas"]["DnsRecordResponse"][];
/** Ttl */
ttl: number;
type: components["schemas"]["DnsRrsetType"];
};
/**
* DnsRrsetType
* @enum {string}
*/
DnsRrsetType: "A" | "AAAA" | "ALIAS" | "CAA" | "CNAME" | "DNSKEY" | "DS" | "MX" | "NS" | "PTR" | "TXT" | "SOA" | "SRV" | "TLSA" | "SMIMEA" | "URI" | "HTTPS" | "SVCB" | "NAPTR" | "SSHFP" | "CERT";
/** DnsRrsetWithOneRecordPatch */
DnsRrsetWithOneRecordPatch: {
/** Name */
name: string;
/** Rdata */
rdata: string;
/** Ttl */
ttl: number;
type: components["schemas"]["DnsRrsetType"];
};
/** DnsZoneCreate */
DnsZoneCreate: {
/** @default disabled */
dnssec_status: components["schemas"]["DnssecStatus"];
/** Name */
name: string;
/** Rrsets */
rrsets?: components["schemas"]["DnsRrsetCreate"][];
/**
* Vanity Nameserver Set Id
* @description Optional vanity NS set to brand this zone's apex NS + SOA with. When omitted, the org's default ACTIVE set (if any) is used; when no default exists the system default NS is used.
*/
vanity_nameserver_set_id?: TypeId<"vns"> | null;
};
/** DnsZoneCreateBulkCommand */
DnsZoneCreateBulkCommand: {
/**
* @description discriminator enum property added by openapi-typescript
* @enum {string}
*/
command: "dns_zone_create_bulk";
/**
* Idempotency Key
* @description Idempotency key for this bulk command
*/
idempotency_key?: string | null;
/** @description Bulk DNS zone creation payload */
payload: components["schemas"]["DnsZoneCreateBulkPayload"];
/**
* Version
* @description Command version
* @default v1
*/
version: string;
};
/** DnsZoneCreateBulkInstance */
DnsZoneCreateBulkInstance: {
/** @description Override DNSSEC status for this zone */
dnssec_status?: components["schemas"]["DnssecStatus"] | null;
/**
* Name
* @description The DNS zone name (e.g., example.com)
*/
name: string;
/**
* Rrsets
* @description Override RRsets for this zone
*/
rrsets?: components["schemas"]["DnsRrsetCreate"][] | null;
};
/** DnsZoneCreateBulkPayload */
DnsZoneCreateBulkPayload: {
/**
* Instances
* @description List of zones to create (1-1000)
*/
instances: components["schemas"]["DnsZoneCreateBulkInstance"][];
/** @description Shared RRsets for all zones */
template: components["schemas"]["DnsZoneCreateBulkTemplate"];
};
/** DnsZoneCreateBulkTemplate */
DnsZoneCreateBulkTemplate: {
/**
* @description DNSSEC status for all zones
* @default disabled
*/
dnssec_status: components["schemas"]["DnssecStatus"];
/**
* Rrsets
* @description DNS record sets to create
*/
rrsets?: components["schemas"]["DnsRrsetCreate"][];
};
/** DnsZoneCreateCommand */
DnsZoneCreateCommand: {
/**
* @description discriminator enum property added by openapi-typescript
* @enum {string}
*/
command: "dns_zone_create";
/**
* Idempotency Key
* @description Idempotency key for this command
*/
idempotency_key?: string | null;
/** @description DNS zone creation payload */
payload: components["schemas"]["DnsZoneCreatePayloadData"];
/**
* Version
* @description Command version
* @default v1
*/
version: string;
};
/** DnsZoneCreatePayloadData */
DnsZoneCreatePayloadData: {
/** @default disabled */
dnssec_status: components["schemas"]["DnssecStatus"];
/** Name */
name: string;
/** Rrsets */
rrsets?: components["schemas"]["DnsRrsetCreate"][];
/**
* Vanity Nameserver Set Id
* @description Optional vanity NS set to brand this zone's apex NS + SOA with. When omitted, the org's default ACTIVE set (if any) is used; when no default exists the system default NS is used.
*/
vanity_nameserver_set_id?: TypeId<"vns"> | null;
};
/** DnsZoneCreateWorkerPayload */
DnsZoneCreateWorkerPayload: {
/** Operation */
operation: string;
/**
* @description discriminator enum property added by openapi-typescript
* @enum {string}
*/
type: "dns_zone_create" | "dns_zone_create_bulk";
zone: components["schemas"]["DnsZoneCreatePayloadData"];
};
/** DnsZoneCreateWorkerResult */
DnsZoneCreateWorkerResult: {
/**
* @description discriminator enum property added by openapi-typescript
* @enum {string}
*/
type: "dns_zone_create" | "dns_zone_create_bulk";
/** Zone Name */
zone_name: string;
};
/** DnsZoneDTO */
DnsZoneDTO: {
/**
* Created On
* @description Zone creation timestamp
*/
created_on?: Date | null;
/**
* @description DNSSEC status
* @default disabled
*/
dnssec_status: components["schemas"]["DnssecStatus"];
/**
* Name
* @description The zone name (e.g., 'example.com')
*/
name: string;
/**
* Rrsets
* @description List of RRsets in the zone
*/
rrsets?: components["schemas"]["DnsRrsetDTO"][];
/**
* Updated On
* @description Zone last update timestamp
*/
updated_on?: Date | null;
/**
* Vanity Nameserver Set Id
* @description Vanity NS set branding this zone's apex, or null for system default NS
*/
vanity_nameserver_set_id?: TypeId<"vns"> | null;
};
/** DnsZonePatchRecordsBulkCommand */
DnsZonePatchRecordsBulkCommand: {
/**
* @description discriminator enum property added by openapi-typescript
* @enum {string}
*/
command: "dns_zone_patch_records_bulk";
/**
* Idempotency Key
* @description Idempotency key for this command
*/
idempotency_key?: string | null;
/** @description DNS zone patch records bulk payload */
payload: components["schemas"]["DnsZonePatchRecordsBulkPayload"];
/**
* Version
* @description Command version
* @default v1
*/
version: string;
};
/** DnsZonePatchRecordsBulkInstance */
DnsZonePatchRecordsBulkInstance: {
/** Ops */
ops: components["schemas"]["DnsRecordPatchOp"][];
/**
* Zone Name
* @description DNS zone name to patch
*/
zone_name: string;
};
/** DnsZonePatchRecordsBulkPayload */
DnsZonePatchRecordsBulkPayload: {
/** Instances */
instances: components["schemas"]["DnsZonePatchRecordsBulkInstance"][];
};
/** DnsZonePatchRecordsWorkerPayload */
DnsZonePatchRecordsWorkerPayload: {
/** Operation */
operation: string;
/**
* @description discriminator enum property added by openapi-typescript
* @enum {string}
*/
type: "dns_zone_patch_records_bulk";
zone: components["schemas"]["DnsZonePatchRecordsBulkInstance"];
};
/** DnsZonePatchRrsetsBulkCommand */
DnsZonePatchRrsetsBulkCommand: {
/**
* @description discriminator enum property added by openapi-typescript
* @enum {string}
*/
command: "dns_zone_patch_rrsets_bulk";
/**
* Idempotency Key
* @description Idempotency key for this command
*/
idempotency_key?: string | null;
/** @description DNS zone patch rrsets bulk payload */
payload: components["schemas"]["DnsZonePatchRrsetsBulkPayload"];
/**
* Version
* @description Command version
* @default v1
*/
version: string;
};
/** DnsZonePatchRrsetsBulkInstance */
DnsZonePatchRrsetsBulkInstance: {
/** Ops */
ops: components["schemas"]["DnsRrsetPatchOp"][];
/**
* Zone Name
* @description DNS zone name to patch
*/
zone_name: string;
};
/** DnsZonePatchRrsetsBulkPayload */
DnsZonePatchRrsetsBulkPayload: {
/** Instances */
instances: components["schemas"]["DnsZonePatchRrsetsBulkInstance"][];
};
/** DnsZonePatchRrsetsWorkerPayload */
DnsZonePatchRrsetsWorkerPayload: {
/** Operation */
operation: string;
/**
* @description discriminator enum property added by openapi-typescript
* @enum {string}
*/
type: "dns_zone_patch_rrsets_bulk";
zone: components["schemas"]["DnsZonePatchRrsetsBulkInstance"];
};
/** DnsZoneRecordsPatchOps */
DnsZoneRecordsPatchOps: {
/** Ops */
ops: components["schemas"]["DnsRecordPatchOp"][];
};
/** DnsZoneResponse */
DnsZoneResponse: {
/**
* Created On
* Format: date-time
* @description The date/time the entry was created on
*/
created_on?: Date;
/**
* Dns Zone Id
* Format: typeid
* @description The unique identifier of the zone
* @example zone_01h45ytscbebyvny4gc8cr8ma2
*/
dns_zone_id: TypeId<"zone">;
/** @default disabled */
dnssec_status: components["schemas"]["DnssecStatus"];
domain_parts?: components["schemas"]["DomainNameParts"];
/** Name */
name: string;
/** Rrsets */
rrsets?: components["schemas"]["DnsRrsetResponse"][];
/**
* Tags
* @description Tags assigned to this zone. Only included when ?include=tags is specified.
*/
tags?: components["schemas"]["TagEnrichedResponse"][] | null;
/**
* Updated On
* Format: date-time
* @description The date/time the entry was last updated on
*/
updated_on?: Date;
/**
* Vanity Nameserver Set Id
* @description Vanity NS set whose apex NS + SOA brand this zone, or null when the zone uses the system default nameservers.
*/
vanity_nameserver_set_id?: TypeId<"vns"> | null;
};
/** DnsZoneRestampVanityNsBulkCommand */
DnsZoneRestampVanityNsBulkCommand: {
/**
* @description discriminator enum property added by openapi-typescript
* @enum {string}
*/
command: "dns_zone_restamp_vanity_ns_bulk";
/**
* Idempotency Key
* @description Idempotency key for this bulk command
*/
idempotency_key?: string | null;
/** @description Bulk DNS zone vanity NS restamp payload */
payload: components["schemas"]["DnsZoneRestampVanityNsBulkPayload"];
/**
* Version
* @description Command version
* @default v1
*/
version: string;
};
/** DnsZoneRestampVanityNsBulkInstance */
DnsZoneRestampVanityNsBulkInstance: {
/**
* Name
* @description The DNS zone name to restamp (e.g., example.com)
*/
name: string;
/**
* Vanity Nameserver Set Id
* @description Override the template's set for this zone: a set id to brand with, or null to unbrand this zone to system defaults. Omit the field entirely to inherit the template's value.
*/
vanity_nameserver_set_id?: TypeId<"vns"> | null;
};
/** DnsZoneRestampVanityNsBulkPayload */
DnsZoneRestampVanityNsBulkPayload: {
/**
* Instances
* @description List of zones to restamp (1-1000)
*/
instances: components["schemas"]["DnsZoneRestampVanityNsBulkInstance"][];
/** @description Shared vanity NS set for all zones */
template: components["schemas"]["DnsZoneRestampVanityNsBulkTemplate"];
};
/** DnsZoneRestampVanityNsBulkTemplate */
DnsZoneRestampVanityNsBulkTemplate: {
/**
* Vanity Nameserver Set Id
* @description Vanity NS set to restamp every zone's apex NS + SOA with, or null to unbrand all zones back to OpusDNS system default nameservers. An instance may override this.
*/
vanity_nameserver_set_id?: TypeId<"vns"> | null;
};
/** DnsZoneRestampVanityNsWorkerPayload */
DnsZoneRestampVanityNsWorkerPayload: {
/** Operation */
operation: string;
/**
* @description discriminator enum property added by openapi-typescript
* @enum {string}
*/
type: "dns_zone_restamp_vanity_ns_bulk";
zone: components["schemas"]["DnsZoneRestampVanityNsBulkInstance"];
};
/** DnsZoneRrsetsCreate */
DnsZoneRrsetsCreate: {
/** Rrsets */
rrsets?: components["schemas"]["DnsRrsetCreate"][];
};
/** DnsZoneRrsetsPatchOps */
DnsZoneRrsetsPatchOps: {
/** Ops */
ops: components["schemas"]["DnsRrsetPatchOp"][];
};
/** DnsZoneSummary */
DnsZoneSummary: {
/**
* Total Zones
* @description Total number of DNS zones
*/
total_zones: number;
/**
* Zones By Dnssec
* @description Count of zones by DNSSEC status
*/
zones_by_dnssec?: {
[key: string]: number;
};
};
/** DnsZoneUpdateBulkCommand */
DnsZoneUpdateBulkCommand: {
/**
* @description discriminator enum property added by openapi-typescript
* @enum {string}
*/
command: "dns_zone_update_bulk";
/**
* Idempotency Key
* @description Idempotency key for this bulk command
*/
idempotency_key?: string | null;
/** @description Bulk DNS zone update payload */
payload: components["schemas"]["DnsZoneUpdateBulkPayload"];
/**
* Version
* @description Command version
* @default v1
*/
version: string;
};
/** DnsZoneUpdateBulkInstance */
DnsZoneUpdateBulkInstance: {
/** @description Override DNSSEC status for this zone */
dnssec_status?: components["schemas"]["DnssecStatus"] | null;
/**
* Name
* @description The DNS zone name (e.g., example.com)
*/
name: string;
/**
* Rrsets
* @description Override RRsets for this zone. Omit to inherit the template (or leave records unchanged if the template also omits rrsets). Provide an empty list to delete all records.
*/
rrsets?: components["schemas"]["DnsRrsetCreate"][] | null;
};
/** DnsZoneUpdateBulkPayload */
DnsZoneUpdateBulkPayload: {
/**
* Instances
* @description List of zones to update (1-1000)
*/
instances: components["schemas"]["DnsZoneUpdateBulkInstance"][];
/** @description Shared RRsets for all zones */
template: components["schemas"]["DnsZoneUpdateBulkTemplate"];
};
/** DnsZoneUpdateBulkTemplate */
DnsZoneUpdateBulkTemplate: {
/** @description DNSSEC status for all zones */
dnssec_status?: components["schemas"]["DnssecStatus"] | null;
/**
* Rrsets
* @description DNS record sets to apply to every zone. Omit to leave each zone's RRsets unchanged (useful for bulk DNSSEC toggles). Provide an empty list to delete all records.
*/
rrsets?: components["schemas"]["DnsRrsetCreate"][] | null;
};
/** DnsZoneUpdateCommand */
DnsZoneUpdateCommand: {
/**
* @description discriminator enum property added by openapi-typescript
* @enum {string}
*/
command: "dns_zone_update";
/**
* Idempotency Key
* @description Idempotency key for this command
*/
idempotency_key?: string | null;
/** @description DNS zone update payload */
payload: components["schemas"]["DnsZoneUpdatePayloadData"];
/**
* Version
* @description Command version
* @default v1
*/
version: string;
};
/** DnsZoneUpdatePayloadData */
DnsZoneUpdatePayloadData: {
dnssec_status?: components["schemas"]["DnssecStatus"] | null;
/** Name */
name: string;
/** Rrsets */
rrsets?: components["schemas"]["DnsRrsetCreate"][];
/**
* Vanity Nameserver Set Id
* @description Optional vanity NS set to brand this zone's apex NS + SOA with. When omitted, the org's default ACTIVE set (if any) is used; when no default exists the system default NS is used.
*/
vanity_nameserver_set_id?: TypeId<"vns"> | null;
};
/** DnsZoneUpdateWorkerPayload */
DnsZoneUpdateWorkerPayload: {
/** Operation */
operation: string;
/**
* @description discriminator enum property added by openapi-typescript
* @enum {string}
*/
type: "dns_zone_update" | "dns_zone_update_bulk";
zone: components["schemas"]["DnsZoneUpdatePayloadData"];
};
/** DnsZoneVanitySetUpdateRes */
DnsZoneVanitySetUpdateRes: {
/** @description The zone after restamping */
zone: components["schemas"]["DnsZoneDTO"];
};
/**
* DnssecAlgorithm
* @enum {integer}
*/
DnssecAlgorithm: 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 10 | 12 | 13 | 14 | 15 | 16 | 17 | 23;
/**
* DnssecDigestType
* @enum {integer}
*/
DnssecDigestType: 1 | 2 | 3 | 4 | 5 | 6;
/**
* DnssecModeType
* @enum {string}
*/
DnssecModeType: "DS" | "DNSKEY";
/**
* DnssecRecordType
* @enum {string}
*/
DnssecRecordType: "ds_data" | "key_data";
/**
* DnssecRegistryPublishOutcome
* @description Fate of the DS/DNSKEY submission that follows signing a zone.
*
* DEFERRED means the zone is signed but the parent holds no DS yet: the registry
* rejected the submission because the public nameservers had not served the new key
* material yet, and a background job is retrying. A signed zone with no DS at the
* parent resolves as unsigned, so the intermediate state is safe.
*
* WITHDRAWN means the zone stopped being signed while the DS was in flight, so the DS
* was taken back off the parent: the enablement did not take effect. It is kept apart
* from SKIPPED because SKIPPED also covers "there was nothing to submit", and a caller
* must not render an enablement that was undone as a success.
*
* FAILED means the zone is signed and nothing is working towards a DS. Only the zone
* create path can report it, because that is the one caller that cannot propagate the
* error. Null means the response makes no statement about a registry DS submission.
* @enum {string}
*/
DnssecRegistryPublishOutcome: "published" | "deferred" | "skipped" | "withdrawn" | "failed";
/**
* DnssecStatus
* @enum {string}
*/
DnssecStatus: "enabled" | "disabled";
/**
* DomainAttributeKey
* @enum {string}
*/
DomainAttributeKey: "auto_renew_period" | "music_registrant_attestation" | "nic_it_compliance_confirmation" | "travel_industry_acknowledgement" | "verification_required" | "de_general_request_contact" | "de_abuse_contact" | "nor_id_applicant_version" | "nor_id_applicant_accept_name" | "nor_id_applicant_accept_date" | "nor_id_declaration" | "nor_id_declaration_token" | "punktum_dk_terms_acceptance" | "punktum_dk_tracking_no" | "internet_ee_registrant_agreement" | "promotion" | "promotion_eligibility" | "domain_contact_attributes" | "registry_reseller_id";
/** DomainAvailability */
DomainAvailability: {
/** Domain */
domain: string;
/** @description Error details when status is 'error', e.g. why a domain is invalid */
error?: components["schemas"]["DomainAvailabilityError"] | null;
status: components["schemas"]["DomainAvailabilityStatus"];
};
/** DomainAvailabilityError */
DomainAvailabilityError: {
/**
* Message
* @description Human-readable error message
*/
message: string;
/**
* Type
* @description Error type identifier, e.g. validation_error or check_error
*/
type: string;
};
/** DomainAvailabilityMeta */
DomainAvailabilityMeta: {
/** Processing Time Ms */
processing_time_ms: number;
/** Total */
total: number;
};
/** DomainAvailabilityRequest */
DomainAvailabilityRequest: {
/** Domains */
domains: string[];
};
/**
* DomainAvailabilityStatus
* @enum {string}
*/
DomainAvailabilityStatus: "available" | "unavailable" | "market_available" | "tmch_claim" | "error" | "unknown";
/** DomainCheckResponse */
DomainCheckResponse: {
/** Results */
results: components["schemas"]["common__models__domain__domain__DomainAvailabilityResponse"][];
};
/**
* DomainClientStatus
* @enum {string}
*/
DomainClientStatus: "clientTransferProhibited" | "clientUpdateProhibited" | "clientDeleteProhibited" | "clientRenewProhibited" | "clientHold";
/** @description The contacts of the domain */
DomainContactHandles: {
[key: string]: components["schemas"]["ContactHandle"][];
};
/** DomainContactResponse */
DomainContactResponse: {
/**
* Attributes
* @description Registry-specific attributes supplied inline for this contact in this role. Omitted when the contact was submitted without inline attributes; attributes taken from a linked contact attribute set are not reported here.
*/
attributes?: {
[key: string]: string;
} | null;
/**
* Contact Id
* Format: typeid
* @description The contact id of the contact
* @example contact_01h45ytscbebyvny4gc8cr8ma2
*/
contact_id: TypeId<"contact">;
/** @description The type of contact */
contact_type: components["schemas"]["DomainContactType"];
};
/**
* DomainContactType
* @enum {string}
*/
DomainContactType: "registrant" | "admin" | "tech" | "billing";
/** DomainCreate */
DomainCreate: {
/**
* Attributes
* @description Additional attributes of the domain, keyed by attribute name. Values are strings.
*
* Customer-settable keys:
*
* - `auto_renew_period`: `monthly` or `yearly`. All TLDs on create, transfer-in and update. Selects the
* period of the next renewal; the current expiry date does not move. On transfer-in without `period` it also sets the
* period added by the transfer. Omitted on create or transfer-in, it follows the term being bought: a one-month
* `period` renews monthly and anything else yearly, except a longer month-unit term, which leaves it unset: the next
* renewal then charges the term that was bought where the TLD still renews for that term, and the product's default
* billing period otherwise. Supplying `monthly` where the TLD sells no one-month renewal is rejected on create,
* transfer-in and update; a `monthly` stored before that rule applied is ignored at renewal.
* - `music_registrant_attestation`: `true`. `.music` registration.
* - `nic_it_compliance_confirmation`: `true`. `.it` registration and transfer.
* - `travel_industry_acknowledgement`: `true`. `.travel` registration.
* - `internet_ee_registrant_agreement`: `true`. `.ee` registration.
* - `punktum_dk_terms_acceptance`: `true`. `.dk` registration and registrant change.
* - `de_general_request_contact`, `de_abuse_contact`: id of a contact whose `.de` attribute set has `DE_CONTACT_TYPE` =
* `REQUEST`. `.de` only.
*
* Boolean keys also accept `1` and `yes`.
*
* Written by the platform and rejected if supplied: `verification_required`, `promotion`, `promotion_eligibility`,
* `nor_id_declaration`, `nor_id_declaration_token`, `punktum_dk_tracking_no`, `domain_contact_attributes`,
* `registry_reseller_id`. They are never returned under `attributes`; inline contact attributes surface on the matching
* `contacts` entry instead.
*
* Derived from the signed `.no` applicant declaration and ignored if supplied on create: `nor_id_applicant_version`,
* `nor_id_applicant_accept_name`, `nor_id_applicant_accept_date`.
*
* On update, every registry stores the supplied attributes, and the update is not sent to the registry unless they
* store; a registry that rejects the change stores nothing. An empty value removes the stored attribute, except for
* `auto_renew_period`, whose only accepted values are `monthly` and `yearly`. `.dk` also reads
* `punktum_dk_terms_acceptance` to confirm a registrant change. An update cannot change what the registrant accepted at
* registration, so these are rejected on update: `music_registrant_attestation`, `nic_it_compliance_confirmation`,
* `travel_industry_acknowledgement`, `internet_ee_registrant_agreement` and the three `nor_id_applicant_*` keys.
* `punktum_dk_terms_acceptance` stays settable for a registrant change but cannot be removed with an empty value.
*
* @example {
* "auto_renew_period": "monthly"
* }
*/
attributes?: {
[key: string]: string;
} | null;
/**
* Auth Code
* @description The auth code used for the domain
*/
auth_code?: string | null;
/**
* The accept_hash of the related claims notice
* @description During the claims phase domain names that match a trademark registered in the Trademark Clearinghouse require an acceptance by the registrant.
*/
claims_notice_acceptance_hash?: string | null;
/**
* Contacts
* @description The contacts of the domain
*/
contacts: components["schemas"]["DomainContactHandles"] | components["schemas"]["ContactIdList"];
/**
* Create Zone
* @description Create a zone for the domain on OpusDNS nameserver infrastructure
* @default false
*/
create_zone: boolean;
/**
* Expected Price
* @description Expected price for premium domain confirmation
*/
expected_price?: components["schemas"]["StrictMoneyDecimal"] | null;
/**
* Name
* @description The domain to be created
*/
name: string;
/**
* Nameservers
* @description The name servers for the domain
*/
nameservers?: components["schemas"]["Nameserver"][] | null;
/** @description The registration period of the domain */
period: components["schemas"]["DomainPeriod"];
/** @description The renewal mode of the domain */
renewal_mode: components["schemas"]["RenewalMode"];
};
/** DomainCreateBulkCommand */
DomainCreateBulkCommand: {
/**
* @description discriminator enum property added by openapi-typescript
* @enum {string}
*/
command: "domain_create_bulk";
/**
* Idempotency Key
* @description Idempotency key for this bulk command
*/
idempotency_key?: string | null;
/** @description Bulk domain creation payload */
payload: components["schemas"]["DomainCreateBulkPayload"];
/**
* Version
* @description Command version
* @default v1
*/
version: string;
};
/** DomainCreateBulkInstance */
DomainCreateBulkInstance: {
/**
* Attributes
* @description Override attributes for this domain.
*
* Additional attributes of the domain, keyed by attribute name. Values are strings.
*
* Customer-settable keys:
*
* - `auto_renew_period`: `monthly` or `yearly`. All TLDs on create, transfer-in and update. Selects the
* period of the next renewal; the current expiry date does not move. On transfer-in without `period` it also sets the
* period added by the transfer. Omitted on create or transfer-in, it follows the term being bought: a one-month
* `period` renews monthly and anything else yearly, except a longer month-unit term, which leaves it unset: the next
* renewal then charges the term that was bought where the TLD still renews for that term, and the product's default
* billing period otherwise. Supplying `monthly` where the TLD sells no one-month renewal is rejected on create,
* transfer-in and update; a `monthly` stored before that rule applied is ignored at renewal.
* - `music_registrant_attestation`: `true`. `.music` registration.
* - `nic_it_compliance_confirmation`: `true`. `.it` registration and transfer.
* - `travel_industry_acknowledgement`: `true`. `.travel` registration.
* - `internet_ee_registrant_agreement`: `true`. `.ee` registration.
* - `punktum_dk_terms_acceptance`: `true`. `.dk` registration and registrant change.
* - `de_general_request_contact`, `de_abuse_contact`: id of a contact whose `.de` attribute set has `DE_CONTACT_TYPE` =
* `REQUEST`. `.de` only.
*
* Boolean keys also accept `1` and `yes`.
*
* Written by the platform and rejected if supplied: `verification_required`, `promotion`, `promotion_eligibility`,
* `nor_id_declaration`, `nor_id_declaration_token`, `punktum_dk_tracking_no`, `domain_contact_attributes`,
* `registry_reseller_id`. They are never returned under `attributes`; inline contact attributes surface on the matching
* `contacts` entry instead.
*
* Derived from the signed `.no` applicant declaration and ignored if supplied on create: `nor_id_applicant_version`,
* `nor_id_applicant_accept_name`, `nor_id_applicant_accept_date`.
*
* On update, every registry stores the supplied attributes, and the update is not sent to the registry unless they
* store; a registry that rejects the change stores nothing. An empty value removes the stored attribute, except for
* `auto_renew_period`, whose only accepted values are `monthly` and `yearly`. `.dk` also reads
* `punktum_dk_terms_acceptance` to confirm a registrant change. An update cannot change what the registrant accepted at
* registration, so these are rejected on update: `music_registrant_attestation`, `nic_it_compliance_confirmation`,
* `travel_industry_acknowledgement`, `internet_ee_registrant_agreement` and the three `nor_id_applicant_*` keys.
* `punktum_dk_terms_acceptance` stays settable for a registrant change but cannot be removed with an empty value.
*
*/
attributes?: {
[key: string]: string;
} | null;
/**
* Auth Code
* @description Override auth code for this domain
*/
auth_code?: string | null;
/** @description Override contacts for this domain */
contacts?: components["schemas"]["DomainContactHandles"] | null;
/**
* Create Zone
* @description Override create_zone for this domain
*/
create_zone?: boolean | null;
/** @description Expected price for premium domain confirmation. Required only for premium domains; must be set per-instance because each premium domain has its own price. */
expected_price?: components["schemas"]["StrictMoneyDecimal"] | null;
/**
* Name
* @description The domain to be created
*/
name: string;
/**
* Nameservers
* @description Override nameservers for this domain
*/
nameservers?: components["schemas"]["Nameserver"][] | null;
/** @description Override registration period for this domain */
period?: components["schemas"]["DomainPeriod"] | null;
/** @description Override renewal mode for this domain */
renewal_mode?: components["schemas"]["RenewalMode"] | null;
};
/** DomainCreateBulkPayload */
DomainCreateBulkPayload: {
/**
* Instances
* @description List of domains to create (1-1000)
*/
instances: components["schemas"]["DomainCreateBulkInstance"][];
/** @description Shared settings for all domains */
template: components["schemas"]["DomainCreateBulkTemplate"];
};
/** DomainCreateBulkTemplate */
DomainCreateBulkTemplate: {
/**
* Attributes
* @description Additional attributes of the domain, keyed by attribute name. Values are strings.
*
* Customer-settable keys:
*
* - `auto_renew_period`: `monthly` or `yearly`. All TLDs on create, transfer-in and update. Selects the
* period of the next renewal; the current expiry date does not move. On transfer-in without `period` it also sets the
* period added by the transfer. Omitted on create or transfer-in, it follows the term being bought: a one-month
* `period` renews monthly and anything else yearly, except a longer month-unit term, which leaves it unset: the next
* renewal then charges the term that was bought where the TLD still renews for that term, and the product's default
* billing period otherwise. Supplying `monthly` where the TLD sells no one-month renewal is rejected on create,
* transfer-in and update; a `monthly` stored before that rule applied is ignored at renewal.
* - `music_registrant_attestation`: `true`. `.music` registration.
* - `nic_it_compliance_confirmation`: `true`. `.it` registration and transfer.
* - `travel_industry_acknowledgement`: `true`. `.travel` registration.
* - `internet_ee_registrant_agreement`: `true`. `.ee` registration.
* - `punktum_dk_terms_acceptance`: `true`. `.dk` registration and registrant change.
* - `de_general_request_contact`, `de_abuse_contact`: id of a contact whose `.de` attribute set has `DE_CONTACT_TYPE` =
* `REQUEST`. `.de` only.
*
* Boolean keys also accept `1` and `yes`.
*
* Written by the platform and rejected if supplied: `verification_required`, `promotion`, `promotion_eligibility`,
* `nor_id_declaration`, `nor_id_declaration_token`, `punktum_dk_tracking_no`, `domain_contact_attributes`,
* `registry_reseller_id`. They are never returned under `attributes`; inline contact attributes surface on the matching
* `contacts` entry instead.
*
* Derived from the signed `.no` applicant declaration and ignored if supplied on create: `nor_id_applicant_version`,
* `nor_id_applicant_accept_name`, `nor_id_applicant_accept_date`.
*
* On update, every registry stores the supplied attributes, and the update is not sent to the registry unless they
* store; a registry that rejects the change stores nothing. An empty value removes the stored attribute, except for
* `auto_renew_period`, whose only accepted values are `monthly` and `yearly`. `.dk` also reads
* `punktum_dk_terms_acceptance` to confirm a registrant change. An update cannot change what the registrant accepted at
* registration, so these are rejected on update: `music_registrant_attestation`, `nic_it_compliance_confirmation`,
* `travel_industry_acknowledgement`, `internet_ee_registrant_agreement` and the three `nor_id_applicant_*` keys.
* `punktum_dk_terms_acceptance` stays settable for a registrant change but cannot be removed with an empty value.
*
*/
attributes?: {
[key: string]: string;
} | null;
/**
* Auth Code
* @description The auth code used for the domain
*/
auth_code?: string | null;
contacts: components["schemas"]["DomainContactHandles"];
/**
* Create Zone
* @description Create a zone on OpusDNS nameserver infrastructure
* @default false
*/
create_zone: boolean;
/**
* Nameservers
* @description The name servers for the domain
*/
nameservers?: components["schemas"]["Nameserver"][] | null;
/** @description The registration period of the domain */
period: components["schemas"]["DomainPeriod"];
/** @description The renewal mode of the domain */
renewal_mode: components["schemas"]["RenewalMode"];
};
/** DomainCreateCommand */
DomainCreateCommand: {
/**
* @description discriminator enum property added by openapi-typescript
* @enum {string}
*/
command: "domain_create";
/**
* Idempotency Key
* @description Idempotency key for this command
*/
idempotency_key?: string | null;
/** @description Domain creation payload */
payload: components["schemas"]["DomainCreatePayloadData"];
/**
* Version
* @description Command version
* @default v1
*/
version: string;
};
/** DomainCreatePayloadData */
DomainCreatePayloadData: {
/**
* Attributes
* @description Additional attributes of the domain, keyed by attribute name. Values are strings.
*
* Customer-settable keys:
*
* - `auto_renew_period`: `monthly` or `yearly`. All TLDs on create, transfer-in and update. Selects the
* period of the next renewal; the current expiry date does not move. On transfer-in without `period` it also sets the
* period added by the transfer. Omitted on create or transfer-in, it follows the term being bought: a one-month
* `period` renews monthly and anything else yearly, except a longer month-unit term, which leaves it unset: the next
* renewal then charges the term that was bought where the TLD still renews for that term, and the product's default
* billing period otherwise. Supplying `monthly` where the TLD sells no one-month renewal is rejected on create,
* transfer-in and update; a `monthly` stored before that rule applied is ignored at renewal.
* - `music_registrant_attestation`: `true`. `.music` registration.
* - `nic_it_compliance_confirmation`: `true`. `.it` registration and transfer.
* - `travel_industry_acknowledgement`: `true`. `.travel` registration.
* - `internet_ee_registrant_agreement`: `true`. `.ee` registration.
* - `punktum_dk_terms_acceptance`: `true`. `.dk` registration and registrant change.
* - `de_general_request_contact`, `de_abuse_contact`: id of a contact whose `.de` attribute set has `DE_CONTACT_TYPE` =
* `REQUEST`. `.de` only.
*
* Boolean keys also accept `1` and `yes`.
*
* Written by the platform and rejected if supplied: `verification_required`, `promotion`, `promotion_eligibility`,
* `nor_id_declaration`, `nor_id_declaration_token`, `punktum_dk_tracking_no`, `domain_contact_attributes`,
* `registry_reseller_id`. They are never returned under `attributes`; inline contact attributes surface on the matching
* `contacts` entry instead.
*
* Derived from the signed `.no` applicant declaration and ignored if supplied on create: `nor_id_applicant_version`,
* `nor_id_applicant_accept_name`, `nor_id_applicant_accept_date`.
*
* On update, every registry stores the supplied attributes, and the update is not sent to the registry unless they
* store; a registry that rejects the change stores nothing. An empty value removes the stored attribute, except for
* `auto_renew_period`, whose only accepted values are `monthly` and `yearly`. `.dk` also reads
* `punktum_dk_terms_acceptance` to confirm a registrant change. An update cannot change what the registrant accepted at
* registration, so these are rejected on update: `music_registrant_attestation`, `nic_it_compliance_confirmation`,
* `travel_industry_acknowledgement`, `internet_ee_registrant_agreement` and the three `nor_id_applicant_*` keys.
* `punktum_dk_terms_acceptance` stays settable for a registrant change but cannot be removed with an empty value.
*
* @example {
* "auto_renew_period": "monthly"
* }
*/
attributes?: {
[key: string]: string;
} | null;
/**
* Auth Code
* @description The auth code used for the domain
*/
auth_code?: string | null;
/**
* The accept_hash of the related claims notice
* @description During the claims phase domain names that match a trademark registered in the Trademark Clearinghouse require an acceptance by the registrant.
*/
claims_notice_acceptance_hash?: string | null;
/**
* Contacts
* @description The contacts of the domain
*/
contacts: components["schemas"]["DomainContactHandles"] | components["schemas"]["ContactIdList"];
/**
* Create Zone
* @description Create a zone for the domain on OpusDNS nameserver infrastructure
* @default false
*/
create_zone: boolean;
/**
* Expected Price
* @description Expected price for premium domain confirmation
*/
expected_price?: components["schemas"]["StrictMoneyDecimal"] | null;
/**
* Name
* @description The domain to be created
*/
name: string;
/**
* Nameservers
* @description The name servers for the domain
*/
nameservers?: components["schemas"]["Nameserver"][] | null;
/** @description The registration period of the domain */
period: components["schemas"]["DomainPeriod"];
/** @description The renewal mode of the domain */
renewal_mode: components["schemas"]["RenewalMode"];
};
/** DomainCreateWorkerPayload */
DomainCreateWorkerPayload: {
domain: components["schemas"]["DomainCreatePayloadData"];
/** Operation */
operation: string;
/**
* @description discriminator enum property added by openapi-typescript
* @enum {string}
*/
type: "domain_create" | "domain_create_bulk";
};
/** DomainCreateWorkerResult */
DomainCreateWorkerResult: {
/** Domain Id */
domain_id: string;
/**
* @description discriminator enum property added by openapi-typescript
* @enum {string}
*/
type: "domain_create" | "domain_create_bulk";
};
/** DomainDnssecDataCreate */
DomainDnssecDataCreate: {
/** @description DNSSEC algorithm used */
algorithm: components["schemas"]["DnssecAlgorithm"];
/**
* Digest
* @description Digest value for DS records
*/
digest?: string | null;
/** @description Digest type for DS records */
digest_type?: components["schemas"]["DnssecDigestType"] | null;
/**
* Flags
* @description DNSKEY flags for key records
*/
flags?: number | null;
/**
* Key Tag
* @description Key tag for DS records
*/
key_tag?: number | null;
/**
* Protocol
* @description Protocol field for key records (typically 3)
*/
protocol?: number | null;
/**
* Public Key
* @description Base64-encoded public key for key records
*/
public_key?: string | null;
/** @description Type of DNSSEC record (DS or Key) */
record_type: components["schemas"]["DnssecRecordType"];
};
/** DomainDnssecDataResponse */
DomainDnssecDataResponse: {
/** @description DNSSEC algorithm used */
algorithm: components["schemas"]["DnssecAlgorithm"];
/**
* Created On
* Format: date-time
* @description The date/time the entry was created on
*/
created_on?: Date;
/**
* Digest
* @description Digest value for DS records
*/
digest?: string | null;
/** @description Digest type for DS records */
digest_type?: components["schemas"]["DnssecDigestType"] | null;
/**
* Domain Dnssec Data Id
* Format: typeid
* @example domain_dnssec_01h45ytscbebyvny4gc8cr8ma2
*/
domain_dnssec_data_id?: TypeId<"domain_dnssec">;
/**
* Domain Id
* Format: typeid
* @description The domain this DNSSEC record belongs to
* @default None
* @example domain_01h45ytscbebyvny4gc8cr8ma2
*/
domain_id: TypeId<"domain">;
/**
* Flags
* @description DNSKEY flags for key records
*/
flags?: number | null;
/**
* Key Tag
* @description Key tag for DS records
*/
key_tag?: number | null;
/**
* Protocol
* @description Protocol field for key records (typically 3)
*/
protocol?: number | null;
/**
* Public Key
* @description Base64-encoded public key for key records
*/
public_key?: string | null;
/** @description Type of DNSSEC record (DS or Key) */
record_type: components["schemas"]["DnssecRecordType"];
/**
* Updated On
* Format: date-time
* @description The date/time the entry was last updated on
*/
updated_on?: Date;
};
/** DomainForward */
DomainForward: {
/**
* Created On
* Format: date-time
*/
created_on: Date;
/**
* Domain Forward Id
* Format: typeid
* @example domain_forward_01h45ytscbebyvny4gc8cr8ma2
*/
domain_forward_id: TypeId<"domain_forward">;
/** Enabled */
enabled: boolean;
/** Hostname */
hostname: string;
http?: components["schemas"]["DomainForwardProtocolSetResponse"] | null;
https?: components["schemas"]["DomainForwardProtocolSetResponse"] | null;
/** Parking Id */
parking_id?: TypeId<"parking"> | null;
/**
* Updated On
* Format: date-time
*/
updated_on: Date;
};
/** DomainForwardBrowserStatsResponse */
DomainForwardBrowserStatsResponse: {
/** Results */
results: components["schemas"]["BrowserStatsBucket"][];
};
/** DomainForwardCreateBulkCommand */
DomainForwardCreateBulkCommand: {
/**
* @description discriminator enum property added by openapi-typescript
* @enum {string}
*/
command: "domain_forward_create_bulk";
/**
* Idempotency Key
* @description Idempotency key for this bulk command
*/
idempotency_key?: string | null;
/** @description Bulk domain forward create payload */
payload: components["schemas"]["DomainForwardCreateBulkPayload"];
/**
* Version
* @description Command version
* @default v1
*/
version: string;
};
/** DomainForwardCreateBulkInstance */
DomainForwardCreateBulkInstance: {
/**
* Enabled
* @description Override enabled setting for this hostname
*/
enabled?: boolean | null;
/**
* Hostname
* @description Hostname to create forward for
*/
hostname: string;
/** @description Override HTTP redirects */
http?: components["schemas"]["DomainForwardProtocolSetRequest"] | null;
/** @description Override HTTPS redirects */
https?: components["schemas"]["DomainForwardProtocolSetRequest"] | null;
};
/** DomainForwardCreateBulkPayload */
DomainForwardCreateBulkPayload: {
/**
* Instances
* @description List of domain forwards to create (1-1000)
*/
instances: components["schemas"]["DomainForwardCreateBulkInstance"][];
/** @description Shared settings for all domain forwards */
template: components["schemas"]["DomainForwardCreateBulkTemplate"];
};
/** DomainForwardCreateBulkTemplate */
DomainForwardCreateBulkTemplate: {
/**
* Auto Create Zone
* @description Create apex DNS zone automatically when missing
* @default false
*/
auto_create_zone: boolean;
/**
* Enabled
* @description Whether domain forward should be enabled
* @default false
*/
enabled: boolean;
/** @description HTTP redirect definitions */
http?: components["schemas"]["DomainForwardProtocolSetRequest"] | null;
/** @description HTTPS redirect definitions */
https?: components["schemas"]["DomainForwardProtocolSetRequest"] | null;
};
/** DomainForwardCreateRequest */
DomainForwardCreateRequest: {
/**
* Enabled
* @default false
*/
enabled: boolean;
/** Hostname */
hostname: string;
http?: components["schemas"]["DomainForwardProtocolSetRequest"] | null;
https?: components["schemas"]["DomainForwardProtocolSetRequest"] | null;
};
/** DomainForwardDeleteBulkCommand */
DomainForwardDeleteBulkCommand: {
/**
* @description discriminator enum property added by openapi-typescript
* @enum {string}
*/
command: "domain_forward_delete_bulk";
/**
* Idempotency Key
* @description Idempotency key for this bulk command
*/
idempotency_key?: string | null;
/** @description Bulk domain forward delete payload */
payload: components["schemas"]["DomainForwardDeleteBulkPayload"];
/**
* Version
* @description Command version
* @default v1
*/
version: string;
};
/** DomainForwardDeleteBulkInstance */
DomainForwardDeleteBulkInstance: {
/**
* Hostname
* @description Hostname to delete forwarding for
*/
hostname: string;
};
/** DomainForwardDeleteBulkPayload */
DomainForwardDeleteBulkPayload: {
/**
* Instances
* @description List of hostnames to delete forwarding for (1-1000)
*/
instances: components["schemas"]["DomainForwardDeleteBulkInstance"][];
};
/** DomainForwardDisableBulkCommand */
DomainForwardDisableBulkCommand: {
/**
* @description discriminator enum property added by openapi-typescript
* @enum {string}
*/
command: "domain_forward_disable_bulk";
/**
* Idempotency Key
* @description Idempotency key for this bulk command
*/
idempotency_key?: string | null;
/** @description Bulk domain forward disable payload */
payload: components["schemas"]["DomainForwardDisableBulkPayload"];
/**
* Version
* @description Command version
* @default v1
*/
version: string;
};
/** DomainForwardDisableBulkInstance */
DomainForwardDisableBulkInstance: {
/**
* Hostname
* @description Hostname to disable forwarding for
*/
hostname: string;
};
/** DomainForwardDisableBulkPayload */
DomainForwardDisableBulkPayload: {
/**
* Instances
* @description List of hostnames to disable forwarding for (1-1000)
*/
instances: components["schemas"]["DomainForwardDisableBulkInstance"][];
};
/** DomainForwardEnableBulkCommand */
DomainForwardEnableBulkCommand: {
/**
* @description discriminator enum property added by openapi-typescript
* @enum {string}
*/
command: "domain_forward_enable_bulk";
/**
* Idempotency Key
* @description Idempotency key for this bulk command
*/
idempotency_key?: string | null;
/** @description Bulk domain forward enable payload */
payload: components["schemas"]["DomainForwardEnableBulkPayload"];
/**
* Version
* @description Command version
* @default v1
*/
version: string;
};
/** DomainForwardEnableBulkInstance */
DomainForwardEnableBulkInstance: {
/**
* Hostname
* @description Hostname to enable forwarding for
*/
hostname: string;
};
/** DomainForwardEnableBulkPayload */
DomainForwardEnableBulkPayload: {
/**
* Instances
* @description List of hostnames to enable forwarding for (1-1000)
*/
instances: components["schemas"]["DomainForwardEnableBulkInstance"][];
};
/** DomainForwardGeoStatsResponse */
DomainForwardGeoStatsResponse: {
/** Results */
results: components["schemas"]["GeoStatsBucket"][];
};
/** DomainForwardMetricsResponse */
DomainForwardMetricsResponse: {
/** Configured Forwards */
configured_forwards: number;
/** Invoked Forwards */
invoked_forwards: number;
/** Total Visits */
total_visits: number;
/** Unique Visits */
unique_visits: number;
};
/** DomainForwardMetricsTimeSeriesResponse */
DomainForwardMetricsTimeSeriesResponse: {
/** Results */
results: components["schemas"]["TimeSeriesBucket"][];
};
/** DomainForwardPatchOp */
DomainForwardPatchOp: {
op: components["schemas"]["PatchOp"];
/** Redirect */
redirect: components["schemas"]["HttpRedirectUpsert"] | components["schemas"]["HttpRedirectRemove"];
};
/** DomainForwardPatchOps */
DomainForwardPatchOps: {
/** Ops */
ops: components["schemas"]["DomainForwardPatchOp"][];
};
/** DomainForwardPlatformStatsResponse */
DomainForwardPlatformStatsResponse: {
/** Results */
results: components["schemas"]["PlatformStatsBucket"][];
};
/** DomainForwardProtocolSetRequest */
DomainForwardProtocolSetRequest: {
/** Redirects */
redirects: components["schemas"]["HttpRedirectRequest"][];
};
/** DomainForwardProtocolSetResponse */
DomainForwardProtocolSetResponse: {
/**
* Created On
* Format: date-time
*/
created_on: Date;
/** Redirects */
redirects: components["schemas"]["HttpRedirectListResponse"][];
/**
* Updated On
* Format: date-time
*/
updated_on: Date;
};
/** DomainForwardReferrerStatsResponse */
DomainForwardReferrerStatsResponse: {
/** Results */
results: components["schemas"]["ReferrerStatsBucket"][];
};
/** DomainForwardSetCreateRequest */
DomainForwardSetCreateRequest: {
protocol: components["schemas"]["HttpProtocol"];
/** Redirects */
redirects: components["schemas"]["HttpRedirectRequest"][];
};
/** DomainForwardSetRequest */
DomainForwardSetRequest: {
/** Redirects */
redirects: components["schemas"]["HttpRedirectRequest"][];
};
/** DomainForwardSetResponse */
DomainForwardSetResponse: {
/**
* Created On
* Format: date-time
*/
created_on: Date;
/** Hostname */
hostname: string;
protocol: components["schemas"]["HttpProtocol"];
/** Redirects */
redirects: components["schemas"]["HttpRedirectListResponse"][];
/**
* Updated On
* Format: date-time
*/
updated_on: Date;
};
/**
* DomainForwardSortField
* @enum {string}
*/
DomainForwardSortField: "hostname" | "enabled" | "created_on" | "updated_on";
/** DomainForwardStatusCodeStatsResponse */
DomainForwardStatusCodeStatsResponse: {
/** Results */
results: components["schemas"]["StatusCodeStatsBucket"][];
};
/** DomainForwardUpdateBulkCommand */
DomainForwardUpdateBulkCommand: {
/**
* @description discriminator enum property added by openapi-typescript
* @enum {string}
*/
command: "domain_forward_update_bulk";
/**
* Idempotency Key
* @description Idempotency key for this bulk command
*/
idempotency_key?: string | null;
/** @description Bulk domain forward update payload */
payload: components["schemas"]["DomainForwardUpdateBulkPayload"];
/**
* Version
* @description Command version
* @default v1
*/
version: string;
};
/** DomainForwardUpdateBulkInstance */
DomainForwardUpdateBulkInstance: {
/**
* Enabled
* @description Override enabled setting for this hostname
*/
enabled?: boolean | null;
/**
* Hostname
* @description Hostname to update forward for
*/
hostname: string;
/** @description Override HTTP redirects */
http?: components["schemas"]["DomainForwardProtocolSetRequest"] | null;
/** @description Override HTTPS redirects */
https?: components["schemas"]["DomainForwardProtocolSetRequest"] | null;
};
/** DomainForwardUpdateBulkPayload */
DomainForwardUpdateBulkPayload: {
/**
* Instances
* @description List of domain forwards to update (1-1000)
*/
instances: components["schemas"]["DomainForwardUpdateBulkInstance"][];
/** @description Shared settings for all domain forwards */
template: components["schemas"]["DomainForwardUpdateBulkTemplate"];
};
/** DomainForwardUpdateBulkTemplate */
DomainForwardUpdateBulkTemplate: {
/**
* Enabled
* @description Whether domain forward should be enabled
*/
enabled: boolean;
/** @description HTTP redirect definitions */
http?: components["schemas"]["DomainForwardProtocolSetRequest"] | null;
/** @description HTTPS redirect definitions */
https?: components["schemas"]["DomainForwardProtocolSetRequest"] | null;
};
/** DomainForwardUserAgentStatsResponse */
DomainForwardUserAgentStatsResponse: {
/** Results */
results: components["schemas"]["UserAgentStatsBucket"][];
};
/** DomainForwardVisitsByKeyResponse */
DomainForwardVisitsByKeyResponse: {
/** Results */
results: components["schemas"]["VisitsByKeyBucket"][];
};
/** DomainForwardZone */
DomainForwardZone: {
/** Domain Forwards */
domain_forwards: components["schemas"]["DomainForward"][];
/**
* Zone Id
* Format: typeid
* @example zone_01h45ytscbebyvny4gc8cr8ma2
*/
zone_id: TypeId<"zone">;
/** Zone Name */
zone_name: string;
};
/**
* DomainForwardZoneSortField
* @enum {string}
*/
DomainForwardZoneSortField: "name" | "created_on" | "updated_on";
/** DomainForwardsContext */
DomainForwardsContext: {
/**
* Context Id
* Format: typeid
* @example ctx_01h45ytscbebyvny4gc8cr8ma2
*/
context_id: TypeId<"ctx">;
/**
* Conversation Id
* Format: typeid
* @example conv_01h45ytscbebyvny4gc8cr8ma2
*/
conversation_id: TypeId<"conv">;
/**
* Created At
* Format: date-time
*/
created_at: Date;
/**
* @description discriminator enum property added by openapi-typescript
* @enum {string}
*/
kind: "domain_forwards";
/**
* Organization Id
* Format: typeid
* @example organization_01h45ytscbebyvny4gc8cr8ma2
*/
organization_id: TypeId<"organization">;
payload: components["schemas"]["ContextPayload_DomainForward_"];
/** User Id */
user_id: string;
};
/** DomainForwardsContextCreate */
DomainForwardsContextCreate: {
/**
* @description discriminator enum property added by openapi-typescript
* @enum {string}
*/
kind: "domain_forwards";
payload: components["schemas"]["ContextPayload_DomainForward_"];
};
/** DomainHostResponse */
DomainHostResponse: {
/**
* Host Id
* Format: typeid
* @description The host id of the host
* @example host_01h45ytscbebyvny4gc8cr8ma2
*/
host_id: TypeId<"host">;
};
/**
* DomainIncludeField
* @enum {string}
*/
DomainIncludeField: "tags" | "renewal_price" | "connected_account";
/** DomainLifecycleBase */
DomainLifecycleBase: {
/**
* Add Grace Period
* @description Add grace period in days after registration in ISO 8601 format (e.g., 5D, 3D)
*/
add_grace_period?: string | null;
/**
* Auto Renew Before Expiration
* @description Time before expiration to auto-renew a domain in ISO 8601 format (e.g., 5D, -7D)
*/
auto_renew_before_expiration?: string | null;
/** @description Default period for transfer if no transfer_renewal_period is specified */
default_transfer_renewal_period: components["schemas"]["PeriodStr"];
/**
* Delete Before Expiration
* @description Time before expiration to delete a domain in ISO 8601 format (e.g., 5D, -7D)
*/
delete_before_expiration?: string | null;
/**
* Delete Policy
* @description How a domain can be deleted
*/
delete_policy?: components["schemas"]["DeletePolicyType"][] | null;
/**
* Explicit Renew
* @description Whether an explicit renewal is possible
*/
explicit_renew?: boolean | null;
/**
* Grace Period
* @description Grace period after expiration in ISO 8601 format (e.g., 5D, -7D)
* @example P5D
* @example P30D
*/
grace_period?: string | null;
/**
* Pending Delete
* @description Pending delete period in ISO 8601 format (e.g., 5D, 10D) after redemption_period
*/
pending_delete?: string | null;
/**
* Redemption Period
* @description Redemption period for domain recovery after grace period in ISO 8601 format (e.g., 5D, -7D)
*/
redemption_period?: string | null;
/** @description List of allowed registration periods (e.g., '1y' or ['1y', '2y', '5y']) */
registration_periods?: components["schemas"]["PeriodList"];
/**
* Registry Auto Renew
* @description Does the registry enforce auto-renewal
*/
registry_auto_renew?: boolean | null;
/** @description List of allowed renewal periods (e.g., '1y' or ['1y', '2y', '5y']) */
renewal_periods?: components["schemas"]["PeriodList"];
/**
* Restore Triggers Renewal
* @description After a restore, renew the domain so its term matches the subscription. True for RGP registries, whose redemption restore does not extend the domain. False where the restore already leaves a valid term - e.g. NASK/.pl, where restore removes clientRenewProhibited or renews+reactivates, and a redundant renew is rejected (one renewal per billing period).
* @default true
*/
restore_triggers_renewal: boolean;
/** @description RGP operations supported by the registry */
rgp_operations?: components["schemas"]["RgpOperations"] | null;
/**
* Sync After Operations
* @description Operations that trigger a sync with the registry
*/
sync_after_operations?: components["schemas"]["SyncOperationType"][] | null;
/**
* Transfer Grace Period
* @description Transfer grace period after a transfer in ISO 8601 format (e.g., 5D, 3D)
*/
transfer_grace_period?: string | null;
/** @description List of allowed transfer renewal periods (eg. '1y') */
transfer_renewal_periods?: components["schemas"]["PeriodList"];
};
/**
* DomainListIncludeField
* @description Includes a list endpoint offers.
*
* Deliberately narrower than `DomainIncludeField`: resolving a renewal price
* costs a registry check plus a billing call per premium domain, which a page
* of results would multiply into a registry rate-limit problem.
*
* Both the public list route and the internal domains-service list request
* implement every member.
* @enum {string}
*/
DomainListIncludeField: "tags" | "connected_account";
/** DomainNameParts */
DomainNameParts: {
/**
* Domain
* @example example
*/
domain?: string | null;
/**
* Subdomain
* @example foo
*/
subdomain?: string | null;
/**
* Suffix
* @example com
*/
suffix?: string | null;
};
/** DomainPeriod */
DomainPeriod: {
/** @description The unit of the period */
unit: components["schemas"]["PeriodUnit"];
/**
* Value
* @description Amount of time in the unit
*/
value: number;
};
/** DomainRecommendationsContext */
DomainRecommendationsContext: {
/**
* Context Id
* Format: typeid
* @example ctx_01h45ytscbebyvny4gc8cr8ma2
*/
context_id: TypeId<"ctx">;
/**
* Conversation Id
* Format: typeid
* @example conv_01h45ytscbebyvny4gc8cr8ma2
*/
conversation_id: TypeId<"conv">;
/**
* Created At
* Format: date-time
*/
created_at: Date;
/**
* @description discriminator enum property added by openapi-typescript
* @enum {string}
*/
kind: "domain_recommendations";
/**
* Organization Id
* Format: typeid
* @example organization_01h45ytscbebyvny4gc8cr8ma2
*/
organization_id: TypeId<"organization">;
payload: components["schemas"]["ContextPayload_DomainSearchSuggestionWithPrice_"];
/** User Id */
user_id: string;
};
/** DomainRecommendationsContextCreate */
DomainRecommendationsContextCreate: {
/**
* @description discriminator enum property added by openapi-typescript
* @enum {string}
*/
kind: "domain_recommendations";
payload: components["schemas"]["ContextPayload_DomainSearchSuggestionWithPrice_"];
};
/** DomainRegistrarCredentialResponse */
DomainRegistrarCredentialResponse: {
/**
* Name
* @description Human-readable name for this credential
*/
name: string;
/** @description The registrar this credential is for */
registrar: components["schemas"]["Registrar"];
/**
* Registrar Credential Id
* Format: typeid
* @description Unique identifier for this credential
* @example registrar_credential_01h45ytscbebyvny4gc8cr8ma2
*/
registrar_credential_id: TypeId<"registrar_credential">;
/**
* @description Kind of connected account. `ras`: a registrar credential managed under `/v1/connect/registrars`. (enum property replaced by openapi-typescript)
* @enum {string}
*/
type: "ras";
};
/** DomainRenewRequest */
DomainRenewRequest: {
/**
* Current Expiry Date
* Format: date-time
* @description Current expiration date of the domain for validation
*/
current_expiry_date: Date;
/**
* Expected Price
* @description Expected price for premium domain confirmation
*/
expected_price?: components["schemas"]["StrictMoneyDecimal"] | null;
/** @description How long to extend the domain registration */
period: components["schemas"]["DomainPeriod"];
};
/** DomainRenewResponse */
DomainRenewResponse: {
/**
* Name
* @description The domain name that was renewed
*/
name: string;
/**
* New Expiry Date
* Format: date-time
* @description New expiration date after renewal
*/
new_expiry_date: Date;
/** @description The period by which the domain was extended */
period_extended: components["schemas"]["DomainPeriod"];
};
/** DomainRenewalDetails */
DomainRenewalDetails: {
/**
* @description discriminator enum property added by openapi-typescript
* @enum {string}
*/
detail_type: "domain_renewal";
/**
* Expires On
* Format: date-time
*/
expires_on: Date;
};
/** DomainRenewalPriceResponse */
DomainRenewalPriceResponse: {
/**
* Currency
* @description ISO 4217 currency code
* @example EUR
*/
currency: string;
/**
* Is Premium
* @description True when the price came from the registry's premium classification for renew rather than from the organization's standard TLD pricing
*/
is_premium: boolean;
/** @description Period the price covers */
period: components["schemas"]["DomainPeriod"];
/**
* Price
* @description Renewal price for the period below, in the organization's billing currency, taxes excluded
* @example 43.50
*/
price: string;
};
/** DomainResponse */
DomainResponse: {
/**
* Auth Code
* @description The auth code for the domain
*/
auth_code?: string | null;
/**
* Auth Code Expires On
* @description When the auth code expires
*/
auth_code_expires_on?: Date | null;
/**
* Canceled On
* @description When the domain was deleted
*/
canceled_on?: Date | null;
/**
* Connected Account
* @description The connected account this domain is synced from. Null unless `include=connected_account` is requested, and null even then for natively registered domains, for domains on operator-managed registry accounts, and when the connected account was deleted.
*/
connected_account?: components["schemas"]["DomainRegistrarCredentialResponse"] | null;
/**
* Contacts
* @description The contacts of the domain
*/
contacts?: components["schemas"]["DomainContactResponse"][];
/**
* Created On
* Format: date-time
* @description The date/time the entry was created on
*/
created_on?: Date;
/**
* Deleted On
* @description When the domain will be deleted
*/
deleted_on?: Date | null;
/**
* Domain Id
* Format: typeid
* @example domain_01h45ytscbebyvny4gc8cr8ma2
*/
domain_id?: TypeId<"domain">;
/**
* Expires On
* @description When the domain expires
*/
expires_on?: Date | null;
/**
* Hosts
* @description The subordinate hosts of the domain
*/
hosts?: components["schemas"]["DomainHostResponse"][];
/**
* Is Premium
* @description Whether the registry prices this domain at a premium class for the action it was bought under. Not purchase provenance: a renewal-time check that affirmatively quotes renew as standard corrects the flag, so it tracks the registry's current classification. Registries classify each action separately, so a domain premium only to restore is not premium here.
* @default false
*/
is_premium: boolean;
/**
* Name
* @description The domain name
* @example example.com
*/
name: string;
/**
* Nameservers
* @description The nameservers of the domain
*/
nameservers?: components["schemas"]["Nameserver"][];
/**
* Owner Id
* Format: typeid
* @description The organization that owns the domain
* @default None
* @example organization_01h45ytscbebyvny4gc8cr8ma2
*/
owner_id: TypeId<"organization">;
/**
* Read Only
* @description Whether the domain is read-only in OpusDNS. When `true`, the domain is listed in your portfolio but cannot be managed — for example while it awaits a migration, is locked for legal reasons, or is managed at an external registrar. The flag is set and removed by OpusDNS; it cannot be changed through the API.
* @default false
*/
read_only: boolean;
/**
* Registered On
* @description When the domain was registered
*/
registered_on?: Date | null;
/**
* Registry Account Id
* Format: typeid
* @default None
* @example registry_account_01h45ytscbebyvny4gc8cr8ma2
*/
registry_account_id: TypeId<"registry_account">;
/**
* Registry Statuses
* @description All the domain statuses
*/
registry_statuses?: string[];
/** @description The renewal mode of the domain */
renewal_mode?: components["schemas"]["RenewalMode"];
/**
* Renewal Period
* @description Renewal period of the domain as an ISO 8601 duration (e.g. 'P1M', 'P1Y'). Null when the domain is not set to renew (renewal mode 'expire') or has no active subscription.
*/
renewal_period?: string | null;
/** @description Price this organization pays to renew this domain for one year. Only included when ?include=renewal_price is specified. */
renewal_price?: components["schemas"]["DomainRenewalPriceResponse"] | null;
/**
* Roid
* @description The registry object id of the domain
* @example D123456789-EXAMPLE-TEST
*/
roid: string;
/**
* Sld
* @description The second level domain
* @example example
*/
sld: string;
/**
* Status Tags
* @description Status tags assigned to this domain. Null unless `include=tags` is requested.
*/
status_tags?: components["schemas"]["StatusTagResponse"][] | null;
/**
* Tags
* @description User tags assigned to this domain. Null unless `include=tags` is requested.
*/
tags?: components["schemas"]["TagEnrichedResponse"][] | null;
/**
* Tld
* @description The top level domain of the domain
* @example com
*/
tld: string;
/**
* Transfer Lock
* @description Whether the domain is locked for transfer
* @default false
*/
transfer_lock: boolean;
/**
* Transferred On
* @description When the domain was last transferred to us
*/
transferred_on?: Date | null;
/**
* Updated On
* Format: date-time
* @description The date/time the entry was last updated on
*/
updated_on?: Date;
/** @description Verification data for this domain, including pending claims and deadlines. */
verification_required?: components["schemas"]["VerificationResponse"] | null;
};
/** DomainRestoreRequest */
DomainRestoreRequest: {
/**
* Additional Info
* @description Additional information to include in the restore operation
*/
additional_info?: string | null;
/**
* Expected Price
* @description Expected price for premium domain confirmation
*/
expected_price?: components["schemas"]["StrictMoneyDecimal"] | null;
/**
* Reason
* @description Reason for restoring the domain
*/
reason?: string | null;
};
/** DomainRestoreResponse */
DomainRestoreResponse: {
/**
* Domain Id
* Format: typeid
* @description The ID of the restored domain
* @example domain_01h45ytscbebyvny4gc8cr8ma2
*/
domain_id: TypeId<"domain">;
/**
* Name
* @description The name of the restored domain
*/
name: string;
/**
* Restored At
* Format: date-time
* @description When the domain restore operation was completed
*/
restored_at: Date;
};
/** DomainSearchMeta */
DomainSearchMeta: {
/** Processing Time Ms */
processing_time_ms: number;
/** Total */
total: number;
};
/** DomainSearchResponse */
DomainSearchResponse: {
meta: components["schemas"]["DomainSearchMeta"];
/** Results */
results: components["schemas"]["DomainSearchSuggestionWithPrice"][];
};
/** DomainSearchSuggestionPriceData */
DomainSearchSuggestionPriceData: {
/** Amount */
amount: string | null;
/** Currency */
currency: string;
period: components["schemas"]["DomainPeriod"];
};
/** DomainSearchSuggestionWithPrice */
DomainSearchSuggestionWithPrice: {
/** Available */
available: boolean;
/** Domain */
domain: string;
/** Premium */
premium: boolean;
price: components["schemas"]["DomainSearchSuggestionPriceData"];
renewal_price?: components["schemas"]["DomainSearchSuggestionPriceData"] | null;
};
/**
* DomainSortField
* @enum {string}
*/
DomainSortField: "name" | "created_on" | "updated_on" | "expires_on" | "registered_on" | "transferred_on";
/**
* DomainStatisticsBreakdown
* @enum {string}
*/
DomainStatisticsBreakdown: "none" | "organization" | "tld";
/** DomainStatisticsBreakdownRowResponse */
DomainStatisticsBreakdownRowResponse: {
/** Create */
create: number;
/** Delete */
delete: number;
/**
* Key
* @description Organization id, or the TLD without the leading dot
*/
key: string;
/**
* Label
* @description Organization name; absent for TLD rows
*/
label: string | null;
/**
* Net
* @description Created plus transferred in, minus deleted and transferred out
*/
net: number;
/** Renew */
renew: number;
/** Restore */
restore: number;
/**
* Total
* @description Created plus transferred
*/
total: number;
/** Transfer */
transfer: number;
/** Transfer Out */
transfer_out: number;
};
/** DomainStatisticsBucketResponse */
DomainStatisticsBucketResponse: {
/**
* Create
* @description Domains created in this bucket
*/
create: number;
/**
* Delete
* @description Domains deleted in this bucket
*/
delete: number;
/**
* Net
* @description Created plus transferred in, minus deleted and transferred out
*/
net: number;
/**
* Partial
* @description The bucket reaches outside the requested window, so its counts cover only part of its span and must not be read as a rise or fall against its neighbours
*/
partial: boolean;
/**
* Period Start
* Format: date
* @description First day of the bucket (UTC)
*/
period_start: string;
/**
* Renew
* @description Domain renewals in this bucket
*/
renew: number;
/**
* Restore
* @description Domains restored in this bucket
*/
restore: number;
/**
* Transfer
* @description Domains transferred in during this bucket
*/
transfer: number;
/**
* Transfer Out
* @description Domains transferred away during this bucket
*/
transfer_out: number;
};
/** DomainStatisticsResponse */
DomainStatisticsResponse: {
/**
* Breakdown
* @description Top organizations or TLDs by acquisitions in the window; empty unless requested
*/
breakdown: components["schemas"]["DomainStatisticsBreakdownRowResponse"][];
/**
* Buckets
* @description One entry per bucket the window touches, oldest first, including empty buckets
*/
buckets: components["schemas"]["DomainStatisticsBucketResponse"][];
/**
* Data Available From
* @description Oldest day these statistics can report on. They are read from the domain event log, which starts later than the domains themselves, so a window reaching further back is empty before this instant rather than zero.
*/
data_available_from: Date | null;
/**
* End Date
* Format: date
* @description Last day of the window, inclusive
*/
end_date: string;
/** @description Time-bucket size of the series */
granularity: components["schemas"]["UsageGranularity"];
/**
* Organization Id
* Format: typeid
* @description The organization the counts are scoped to
* @example organization_01h45ytscbebyvny4gc8cr8ma2
*/
organization_id: TypeId<"organization">;
/**
* Start Date
* Format: date
* @description First day of the window, inclusive
*/
start_date: string;
totals: components["schemas"]["DomainStatisticsTotalsResponse"];
};
/** DomainStatisticsTotalsResponse */
DomainStatisticsTotalsResponse: {
/**
* Create
* @description Domains created (newly registered) in the window
*/
create: number;
/**
* Delete
* @description Domains deleted in the window
*/
delete: number;
/**
* Net
* @description Created plus transferred in, minus deleted and transferred out
*/
net: number;
/**
* Renew
* @description Domains renewed in the window, counted once per day a domain was renewed
*/
renew: number;
/**
* Restore
* @description Domains restored from redemption in the window
*/
restore: number;
/**
* Total
* @description Created plus transferred
*/
total: number;
/**
* Transfer
* @description Domains transferred to OpusDNS in the window
*/
transfer: number;
/**
* Transfer Out
* @description Domains transferred away from OpusDNS in the window
*/
transfer_out: number;
};
/**
* DomainStatus
* @enum {string}
*/
DomainStatus: "ok" | "serverTransferProhibited" | "serverUpdateProhibited" | "serverDeleteProhibited" | "serverRenewProhibited" | "serverRestoreProhibited" | "serverHold" | "transferPeriod" | "renewPeriod" | "redemptionPeriod" | "pendingUpdate" | "pendingTransfer" | "pendingRestore" | "pendingRenew" | "pendingDelete" | "pendingCreate" | "inactive" | "autoRenewPeriod" | "addPeriod" | "deleted" | "clientTransferProhibited" | "clientUpdateProhibited" | "clientDeleteProhibited" | "clientRenewProhibited" | "clientHold" | "free" | "connect" | "failed" | "invalid";
/** DomainStatusResponse */
DomainStatusResponse: {
/**
* Status
* @description The status of the domain
*/
status: string;
};
/** DomainStatusesBase */
DomainStatusesBase: {
/**
* Default
* @description The default status for an active domain with no restrictions
*/
default: string[];
/**
* Status Mapping
* @description Mapping of registry-specific statuses to their equivalent default ones, if any
*/
status_mapping?: {
[key: string]: components["schemas"]["DomainStatus"][];
} | null;
/**
* Supported Statuses
* @description Supported domain statuses
*/
supported_statuses: string[];
};
/** DomainSummaryData */
DomainSummaryData: {
/**
* By Organization
* @description Domain counts by organization name (name: count)
*/
by_organization: {
[key: string]: number;
};
/**
* By Status
* @description Domain counts by status (status: count)
*/
by_status: {
[key: string]: number;
};
/**
* By Status Tag
* @description Domain counts by status tag (status_tag: count), only status tags with at least one domain
*/
by_status_tag: {
[key: string]: number;
};
/**
* By Tld
* @description Domain counts by TLD (tld: count)
*/
by_tld: {
[key: string]: number;
};
/** @description Domains expiring soon */
expiring_soon: components["schemas"]["DomainsExpiringSoon"];
/**
* Total Count
* @description Total number of domains including sub-organizations
*/
total_count: number;
};
/** DomainSummaryResponse */
DomainSummaryResponse: {
/** @description Domain summary data */
domains: components["schemas"]["DomainSummaryData"];
/**
* Organization Id
* Format: typeid
* @description The organization ID
* @example organization_01h45ytscbebyvny4gc8cr8ma2
*/
organization_id: TypeId<"organization">;
};
/** DomainTransferBulkCommand */
DomainTransferBulkCommand: {
/**
* @description discriminator enum property added by openapi-typescript
* @enum {string}
*/
command: "domain_transfer_bulk";
/**
* Idempotency Key
* @description Idempotency key for this bulk command
*/
idempotency_key?: string | null;
/** @description Bulk domain transfer payload */
payload: components["schemas"]["DomainTransferBulkPayload"];
/**
* Version
* @description Command version
* @default v1
*/
version: string;
};
/** DomainTransferBulkInstance */
DomainTransferBulkInstance: {
/**
* Attributes
* @description Override attributes for this domain.
*
* Additional attributes of the domain, keyed by attribute name. Values are strings.
*
* Customer-settable keys:
*
* - `auto_renew_period`: `monthly` or `yearly`. All TLDs on create, transfer-in and update. Selects the
* period of the next renewal; the current expiry date does not move. On transfer-in without `period` it also sets the
* period added by the transfer. Omitted on create or transfer-in, it follows the term being bought: a one-month
* `period` renews monthly and anything else yearly, except a longer month-unit term, which leaves it unset: the next
* renewal then charges the term that was bought where the TLD still renews for that term, and the product's default
* billing period otherwise. Supplying `monthly` where the TLD sells no one-month renewal is rejected on create,
* transfer-in and update; a `monthly` stored before that rule applied is ignored at renewal.
* - `music_registrant_attestation`: `true`. `.music` registration.
* - `nic_it_compliance_confirmation`: `true`. `.it` registration and transfer.
* - `travel_industry_acknowledgement`: `true`. `.travel` registration.
* - `internet_ee_registrant_agreement`: `true`. `.ee` registration.
* - `punktum_dk_terms_acceptance`: `true`. `.dk` registration and registrant change.
* - `de_general_request_contact`, `de_abuse_contact`: id of a contact whose `.de` attribute set has `DE_CONTACT_TYPE` =
* `REQUEST`. `.de` only.
*
* Boolean keys also accept `1` and `yes`.
*
* Written by the platform and rejected if supplied: `verification_required`, `promotion`, `promotion_eligibility`,
* `nor_id_declaration`, `nor_id_declaration_token`, `punktum_dk_tracking_no`, `domain_contact_attributes`,
* `registry_reseller_id`. They are never returned under `attributes`; inline contact attributes surface on the matching
* `contacts` entry instead.
*
* Derived from the signed `.no` applicant declaration and ignored if supplied on create: `nor_id_applicant_version`,
* `nor_id_applicant_accept_name`, `nor_id_applicant_accept_date`.
*
* On update, every registry stores the supplied attributes, and the update is not sent to the registry unless they
* store; a registry that rejects the change stores nothing. An empty value removes the stored attribute, except for
* `auto_renew_period`, whose only accepted values are `monthly` and `yearly`. `.dk` also reads
* `punktum_dk_terms_acceptance` to confirm a registrant change. An update cannot change what the registrant accepted at
* registration, so these are rejected on update: `music_registrant_attestation`, `nic_it_compliance_confirmation`,
* `travel_industry_acknowledgement`, `internet_ee_registrant_agreement` and the three `nor_id_applicant_*` keys.
* `punktum_dk_terms_acceptance` stays settable for a registrant change but cannot be removed with an empty value.
*
*/
attributes?: {
[key: string]: string;
} | null;
/**
* Auth Code
* @description The auth code for this domain (required by some TLDs)
*/
auth_code?: string | null;
/** @description Override contacts for this domain */
contacts?: components["schemas"]["DomainContactHandles"] | null;
/**
* Create Zone
* @description Override create_zone for this domain
*/
create_zone?: boolean | null;
/** @description Expected price for premium domain confirmation. Required only for premium domains; must be set per-instance because each premium domain has its own price. */
expected_price?: components["schemas"]["StrictMoneyDecimal"] | null;
/**
* Name
* @description The domain to transfer
*/
name: string;
/**
* Nameservers
* @description Override nameservers for this domain
*/
nameservers?: components["schemas"]["Nameserver"][] | null;
/** @description Override period for this domain */
period?: components["schemas"]["DomainPeriod"] | null;
/** @description Override renewal mode for this domain */
renewal_mode?: components["schemas"]["RenewalMode"] | null;
};
/** DomainTransferBulkPayload */
DomainTransferBulkPayload: {
/**
* Instances
* @description List of domains to transfer (1-1000)
*/
instances: components["schemas"]["DomainTransferBulkInstance"][];
/** @description Shared settings for all domains */
template: components["schemas"]["DomainTransferBulkTemplate"];
};
/** DomainTransferBulkTemplate */
DomainTransferBulkTemplate: {
/**
* Attributes
* @description Additional attributes of the domain, keyed by attribute name. Values are strings.
*
* Customer-settable keys:
*
* - `auto_renew_period`: `monthly` or `yearly`. All TLDs on create, transfer-in and update. Selects the
* period of the next renewal; the current expiry date does not move. On transfer-in without `period` it also sets the
* period added by the transfer. Omitted on create or transfer-in, it follows the term being bought: a one-month
* `period` renews monthly and anything else yearly, except a longer month-unit term, which leaves it unset: the next
* renewal then charges the term that was bought where the TLD still renews for that term, and the product's default
* billing period otherwise. Supplying `monthly` where the TLD sells no one-month renewal is rejected on create,
* transfer-in and update; a `monthly` stored before that rule applied is ignored at renewal.
* - `music_registrant_attestation`: `true`. `.music` registration.
* - `nic_it_compliance_confirmation`: `true`. `.it` registration and transfer.
* - `travel_industry_acknowledgement`: `true`. `.travel` registration.
* - `internet_ee_registrant_agreement`: `true`. `.ee` registration.
* - `punktum_dk_terms_acceptance`: `true`. `.dk` registration and registrant change.
* - `de_general_request_contact`, `de_abuse_contact`: id of a contact whose `.de` attribute set has `DE_CONTACT_TYPE` =
* `REQUEST`. `.de` only.
*
* Boolean keys also accept `1` and `yes`.
*
* Written by the platform and rejected if supplied: `verification_required`, `promotion`, `promotion_eligibility`,
* `nor_id_declaration`, `nor_id_declaration_token`, `punktum_dk_tracking_no`, `domain_contact_attributes`,
* `registry_reseller_id`. They are never returned under `attributes`; inline contact attributes surface on the matching
* `contacts` entry instead.
*
* Derived from the signed `.no` applicant declaration and ignored if supplied on create: `nor_id_applicant_version`,
* `nor_id_applicant_accept_name`, `nor_id_applicant_accept_date`.
*
* On update, every registry stores the supplied attributes, and the update is not sent to the registry unless they
* store; a registry that rejects the change stores nothing. An empty value removes the stored attribute, except for
* `auto_renew_period`, whose only accepted values are `monthly` and `yearly`. `.dk` also reads
* `punktum_dk_terms_acceptance` to confirm a registrant change. An update cannot change what the registrant accepted at
* registration, so these are rejected on update: `music_registrant_attestation`, `nic_it_compliance_confirmation`,
* `travel_industry_acknowledgement`, `internet_ee_registrant_agreement` and the three `nor_id_applicant_*` keys.
* `punktum_dk_terms_acceptance` stays settable for a registrant change but cannot be removed with an empty value.
*
*/
attributes?: {
[key: string]: string;
} | null;
/** @description The contacts of the domain. Optional for transfers when all supported contact roles have a minimum of 0 in the TLD specification. */
contacts?: components["schemas"]["DomainContactHandles"];
/**
* Create Zone
* @description Create a zone on OpusDNS nameserver infrastructure
* @default false
*/
create_zone: boolean;
/**
* Nameservers
* @description The name servers for the domain
*/
nameservers?: components["schemas"]["Nameserver"][] | null;
/** @description Additional registration period to add upon transfer completion */
period?: components["schemas"]["DomainPeriod"] | null;
/** @description The renewal mode of the domain */
renewal_mode: components["schemas"]["RenewalMode"];
};
/** DomainTransferCommand */
DomainTransferCommand: {
/**
* @description discriminator enum property added by openapi-typescript
* @enum {string}
*/
command: "domain_transfer";
/**
* Idempotency Key
* @description Idempotency key for this command
*/
idempotency_key?: string | null;
/** @description Domain transfer payload */
payload: components["schemas"]["DomainTransferPayloadData"];
/**
* Version
* @description Command version
* @default v1
*/
version: string;
};
/** DomainTransferIn */
DomainTransferIn: {
/**
* Attributes
* @description Additional attributes of the domain, keyed by attribute name. Values are strings.
*
* Customer-settable keys:
*
* - `auto_renew_period`: `monthly` or `yearly`. All TLDs on create, transfer-in and update. Selects the
* period of the next renewal; the current expiry date does not move. On transfer-in without `period` it also sets the
* period added by the transfer. Omitted on create or transfer-in, it follows the term being bought: a one-month
* `period` renews monthly and anything else yearly, except a longer month-unit term, which leaves it unset: the next
* renewal then charges the term that was bought where the TLD still renews for that term, and the product's default
* billing period otherwise. Supplying `monthly` where the TLD sells no one-month renewal is rejected on create,
* transfer-in and update; a `monthly` stored before that rule applied is ignored at renewal.
* - `music_registrant_attestation`: `true`. `.music` registration.
* - `nic_it_compliance_confirmation`: `true`. `.it` registration and transfer.
* - `travel_industry_acknowledgement`: `true`. `.travel` registration.
* - `internet_ee_registrant_agreement`: `true`. `.ee` registration.
* - `punktum_dk_terms_acceptance`: `true`. `.dk` registration and registrant change.
* - `de_general_request_contact`, `de_abuse_contact`: id of a contact whose `.de` attribute set has `DE_CONTACT_TYPE` =
* `REQUEST`. `.de` only.
*
* Boolean keys also accept `1` and `yes`.
*
* Written by the platform and rejected if supplied: `verification_required`, `promotion`, `promotion_eligibility`,
* `nor_id_declaration`, `nor_id_declaration_token`, `punktum_dk_tracking_no`, `domain_contact_attributes`,
* `registry_reseller_id`. They are never returned under `attributes`; inline contact attributes surface on the matching
* `contacts` entry instead.
*
* Derived from the signed `.no` applicant declaration and ignored if supplied on create: `nor_id_applicant_version`,
* `nor_id_applicant_accept_name`, `nor_id_applicant_accept_date`.
*
* On update, every registry stores the supplied attributes, and the update is not sent to the registry unless they
* store; a registry that rejects the change stores nothing. An empty value removes the stored attribute, except for
* `auto_renew_period`, whose only accepted values are `monthly` and `yearly`. `.dk` also reads
* `punktum_dk_terms_acceptance` to confirm a registrant change. An update cannot change what the registrant accepted at
* registration, so these are rejected on update: `music_registrant_attestation`, `nic_it_compliance_confirmation`,
* `travel_industry_acknowledgement`, `internet_ee_registrant_agreement` and the three `nor_id_applicant_*` keys.
* `punktum_dk_terms_acceptance` stays settable for a registrant change but cannot be removed with an empty value.
*
* @example {
* "auto_renew_period": "monthly"
* }
*/
attributes?: {
[key: string]: string;
} | null;
/**
* Auth Code
* @description The auth code for the domain
*/
auth_code?: string | null;
/**
* Contacts
* @description The contacts of the domain. Optional for transfers when all supported contact roles have a minimum of 0 in the TLD specification.
*/
contacts?: components["schemas"]["DomainContactHandles"] | components["schemas"]["ContactIdList"];
/**
* Create Zone
* @description Create a zone for the domain on OpusDNS nameserver infrastructure
* @default false
*/
create_zone: boolean;
/**
* Expected Price
* @description Expected price for premium domain confirmation
*/
expected_price?: components["schemas"]["StrictMoneyDecimal"] | null;
/**
* Name
* @description The domain to be created
*/
name: string;
/**
* Nameservers
* @description The name servers for the domain
*/
nameservers?: components["schemas"]["Nameserver"][] | null;
/** @description Additional registration period to add to the domain upon transfer completion. If omitted, the registry default policy will be applied. */
period?: components["schemas"]["DomainPeriod"] | null;
/** @description The renewal mode of the domain */
renewal_mode: components["schemas"]["RenewalMode"];
};
/** DomainTransferPayloadData */
DomainTransferPayloadData: {
/**
* Attributes
* @description Additional attributes of the domain, keyed by attribute name. Values are strings.
*
* Customer-settable keys:
*
* - `auto_renew_period`: `monthly` or `yearly`. All TLDs on create, transfer-in and update. Selects the
* period of the next renewal; the current expiry date does not move. On transfer-in without `period` it also sets the
* period added by the transfer. Omitted on create or transfer-in, it follows the term being bought: a one-month
* `period` renews monthly and anything else yearly, except a longer month-unit term, which leaves it unset: the next
* renewal then charges the term that was bought where the TLD still renews for that term, and the product's default
* billing period otherwise. Supplying `monthly` where the TLD sells no one-month renewal is rejected on create,
* transfer-in and update; a `monthly` stored before that rule applied is ignored at renewal.
* - `music_registrant_attestation`: `true`. `.music` registration.
* - `nic_it_compliance_confirmation`: `true`. `.it` registration and transfer.
* - `travel_industry_acknowledgement`: `true`. `.travel` registration.
* - `internet_ee_registrant_agreement`: `true`. `.ee` registration.
* - `punktum_dk_terms_acceptance`: `true`. `.dk` registration and registrant change.
* - `de_general_request_contact`, `de_abuse_contact`: id of a contact whose `.de` attribute set has `DE_CONTACT_TYPE` =
* `REQUEST`. `.de` only.
*
* Boolean keys also accept `1` and `yes`.
*
* Written by the platform and rejected if supplied: `verification_required`, `promotion`, `promotion_eligibility`,
* `nor_id_declaration`, `nor_id_declaration_token`, `punktum_dk_tracking_no`, `domain_contact_attributes`,
* `registry_reseller_id`. They are never returned under `attributes`; inline contact attributes surface on the matching
* `contacts` entry instead.
*
* Derived from the signed `.no` applicant declaration and ignored if supplied on create: `nor_id_applicant_version`,
* `nor_id_applicant_accept_name`, `nor_id_applicant_accept_date`.
*
* On update, every registry stores the supplied attributes, and the update is not sent to the registry unless they
* store; a registry that rejects the change stores nothing. An empty value removes the stored attribute, except for
* `auto_renew_period`, whose only accepted values are `monthly` and `yearly`. `.dk` also reads
* `punktum_dk_terms_acceptance` to confirm a registrant change. An update cannot change what the registrant accepted at
* registration, so these are rejected on update: `music_registrant_attestation`, `nic_it_compliance_confirmation`,
* `travel_industry_acknowledgement`, `internet_ee_registrant_agreement` and the three `nor_id_applicant_*` keys.
* `punktum_dk_terms_acceptance` stays settable for a registrant change but cannot be removed with an empty value.
*
* @example {
* "auto_renew_period": "monthly"
* }
*/
attributes?: {
[key: string]: string;
} | null;
/**
* Auth Code
* @description The auth code for the domain
*/
auth_code?: string | null;
/**
* Contacts
* @description The contacts of the domain. Optional for transfers when all supported contact roles have a minimum of 0 in the TLD specification.
*/
contacts?: components["schemas"]["DomainContactHandles"] | components["schemas"]["ContactIdList"];
/**
* Create Zone
* @description Create a zone for the domain on OpusDNS nameserver infrastructure
* @default false
*/
create_zone: boolean;
/**
* Expected Price
* @description Expected price for premium domain confirmation
*/
expected_price?: components["schemas"]["StrictMoneyDecimal"] | null;
/**
* Name
* @description The domain to be created
*/
name: string;
/**
* Nameservers
* @description The name servers for the domain
*/
nameservers?: components["schemas"]["Nameserver"][] | null;
/** @description Additional registration period to add to the domain upon transfer completion. If omitted, the registry default policy will be applied. */
period?: components["schemas"]["DomainPeriod"] | null;
/** @description The renewal mode of the domain */
renewal_mode: components["schemas"]["RenewalMode"];
};
/** DomainTransferWorkerPayload */
DomainTransferWorkerPayload: {
domain: components["schemas"]["DomainTransferPayloadData"];
/** Operation */
operation: string;
/**
* @description discriminator enum property added by openapi-typescript
* @enum {string}
*/
type: "domain_transfer" | "domain_transfer_bulk";
};
/** DomainTransitRequest */
DomainTransitRequest: {
/**
* Disconnect
* @description Disconnect the domain from current nameserver and update to DENIC nameserver
*/
disconnect: boolean;
};
/** DomainTransitResponse */
DomainTransitResponse: {
/**
* Name
* @description The domain name that was transited
*/
name: string;
/**
* Success
* @description Whether the transit operation was successful
*/
success: boolean;
};
/** DomainUpdate */
DomainUpdate: {
/**
* Attributes
* @description Additional attributes of the domain, keyed by attribute name. Values are strings.
*
* Customer-settable keys:
*
* - `auto_renew_period`: `monthly` or `yearly`. All TLDs on create, transfer-in and update. Selects the
* period of the next renewal; the current expiry date does not move. On transfer-in without `period` it also sets the
* period added by the transfer. Omitted on create or transfer-in, it follows the term being bought: a one-month
* `period` renews monthly and anything else yearly, except a longer month-unit term, which leaves it unset: the next
* renewal then charges the term that was bought where the TLD still renews for that term, and the product's default
* billing period otherwise. Supplying `monthly` where the TLD sells no one-month renewal is rejected on create,
* transfer-in and update; a `monthly` stored before that rule applied is ignored at renewal.
* - `music_registrant_attestation`: `true`. `.music` registration.
* - `nic_it_compliance_confirmation`: `true`. `.it` registration and transfer.
* - `travel_industry_acknowledgement`: `true`. `.travel` registration.
* - `internet_ee_registrant_agreement`: `true`. `.ee` registration.
* - `punktum_dk_terms_acceptance`: `true`. `.dk` registration and registrant change.
* - `de_general_request_contact`, `de_abuse_contact`: id of a contact whose `.de` attribute set has `DE_CONTACT_TYPE` =
* `REQUEST`. `.de` only.
*
* Boolean keys also accept `1` and `yes`.
*
* Written by the platform and rejected if supplied: `verification_required`, `promotion`, `promotion_eligibility`,
* `nor_id_declaration`, `nor_id_declaration_token`, `punktum_dk_tracking_no`, `domain_contact_attributes`,
* `registry_reseller_id`. They are never returned under `attributes`; inline contact attributes surface on the matching
* `contacts` entry instead.
*
* Derived from the signed `.no` applicant declaration and ignored if supplied on create: `nor_id_applicant_version`,
* `nor_id_applicant_accept_name`, `nor_id_applicant_accept_date`.
*
* On update, every registry stores the supplied attributes, and the update is not sent to the registry unless they
* store; a registry that rejects the change stores nothing. An empty value removes the stored attribute, except for
* `auto_renew_period`, whose only accepted values are `monthly` and `yearly`. `.dk` also reads
* `punktum_dk_terms_acceptance` to confirm a registrant change. An update cannot change what the registrant accepted at
* registration, so these are rejected on update: `music_registrant_attestation`, `nic_it_compliance_confirmation`,
* `travel_industry_acknowledgement`, `internet_ee_registrant_agreement` and the three `nor_id_applicant_*` keys.
* `punktum_dk_terms_acceptance` stays settable for a registrant change but cannot be removed with an empty value.
*
* @example {
* "auto_renew_period": "monthly"
* }
*/
attributes?: {
[key: string]: string;
} | null;
/**
* Auth Code
* @description The new auth code for the domain
*/
auth_code?: string | null;
/**
* Contacts
* @description The new contacts of the domain
* @example {
* "admin": "contact_01h45ytscbebyvny4gc8cr8ma2",
* "billing": "contact_01h45ytscbebyvny4gc8cr8ma2",
* "registrant": "contact_01h45ytscbebyvny4gc8cr8ma2",
* "tech": "contact_01h45ytscbebyvny4gc8cr8ma2"
* }
*/
contacts?: components["schemas"]["DomainContactHandles"] | components["schemas"]["ContactIdList"] | null;
/**
* Nameservers
* @description The new name servers for the domain
*/
nameservers?: components["schemas"]["Nameserver"][] | null;
/** @description The new renewal mode of the domain */
renewal_mode?: components["schemas"]["RenewalMode"] | null;
/** @description Statuses to add or remove relative to current state */
status_changes?: components["schemas"]["StatusChanges"] | null;
/**
* Statuses
* @description The new statuses of the domain
*/
statuses?: components["schemas"]["DomainClientStatus"][] | null;
};
/** DomainUpdateBulkCommand */
DomainUpdateBulkCommand: {
/**
* @description discriminator enum property added by openapi-typescript
* @enum {string}
*/
command: "domain_update_bulk";
/**
* Idempotency Key
* @description Idempotency key for this bulk command
*/
idempotency_key?: string | null;
/** @description Bulk domain update payload */
payload: components["schemas"]["DomainUpdateBulkPayload"];
/**
* Version
* @description Command version
* @default v1
*/
version: string;
};
/** DomainUpdateBulkInstance */
DomainUpdateBulkInstance: {
/**
* Attributes
* @description Override attributes for this domain.
*
* Additional attributes of the domain, keyed by attribute name. Values are strings.
*
* Customer-settable keys:
*
* - `auto_renew_period`: `monthly` or `yearly`. All TLDs on create, transfer-in and update. Selects the
* period of the next renewal; the current expiry date does not move. On transfer-in without `period` it also sets the
* period added by the transfer. Omitted on create or transfer-in, it follows the term being bought: a one-month
* `period` renews monthly and anything else yearly, except a longer month-unit term, which leaves it unset: the next
* renewal then charges the term that was bought where the TLD still renews for that term, and the product's default
* billing period otherwise. Supplying `monthly` where the TLD sells no one-month renewal is rejected on create,
* transfer-in and update; a `monthly` stored before that rule applied is ignored at renewal.
* - `music_registrant_attestation`: `true`. `.music` registration.
* - `nic_it_compliance_confirmation`: `true`. `.it` registration and transfer.
* - `travel_industry_acknowledgement`: `true`. `.travel` registration.
* - `internet_ee_registrant_agreement`: `true`. `.ee` registration.
* - `punktum_dk_terms_acceptance`: `true`. `.dk` registration and registrant change.
* - `de_general_request_contact`, `de_abuse_contact`: id of a contact whose `.de` attribute set has `DE_CONTACT_TYPE` =
* `REQUEST`. `.de` only.
*
* Boolean keys also accept `1` and `yes`.
*
* Written by the platform and rejected if supplied: `verification_required`, `promotion`, `promotion_eligibility`,
* `nor_id_declaration`, `nor_id_declaration_token`, `punktum_dk_tracking_no`, `domain_contact_attributes`,
* `registry_reseller_id`. They are never returned under `attributes`; inline contact attributes surface on the matching
* `contacts` entry instead.
*
* Derived from the signed `.no` applicant declaration and ignored if supplied on create: `nor_id_applicant_version`,
* `nor_id_applicant_accept_name`, `nor_id_applicant_accept_date`.
*
* On update, every registry stores the supplied attributes, and the update is not sent to the registry unless they
* store; a registry that rejects the change stores nothing. An empty value removes the stored attribute, except for
* `auto_renew_period`, whose only accepted values are `monthly` and `yearly`. `.dk` also reads
* `punktum_dk_terms_acceptance` to confirm a registrant change. An update cannot change what the registrant accepted at
* registration, so these are rejected on update: `music_registrant_attestation`, `nic_it_compliance_confirmation`,
* `travel_industry_acknowledgement`, `internet_ee_registrant_agreement` and the three `nor_id_applicant_*` keys.
* `punktum_dk_terms_acceptance` stays settable for a registrant change but cannot be removed with an empty value.
*
*/
attributes?: {
[key: string]: string;
} | null;
/**
* Auth Code
* @description Override auth code for this domain
*/
auth_code?: string | null;
/** @description Override contacts for this domain */
contacts?: components["schemas"]["DomainContactHandles"] | null;
/**
* Domain Id
* @description The domain ID to update
*/
domain_id?: string | null;
/**
* Name
* @description The domain name to update
*/
name?: string | null;
/**
* Nameservers
* @description Override nameservers for this domain
*/
nameservers?: components["schemas"]["Nameserver"][] | null;
/** @description Override renewal mode for this domain */
renewal_mode?: components["schemas"]["RenewalMode"] | null;
/** @description Override status changes for this domain */
status_changes?: components["schemas"]["StatusChanges"] | null;
/**
* Statuses
* @description Override statuses for this domain
*/
statuses?: components["schemas"]["DomainClientStatus"][] | null;
};
/** DomainUpdateBulkPayload */
DomainUpdateBulkPayload: {
/**
* Instances
* @description List of domains to update (1-1000)
*/
instances: components["schemas"]["DomainUpdateBulkInstance"][];
/** @description Shared settings for all domain updates */
template: components["schemas"]["DomainUpdateBulkTemplate"];
};
/** DomainUpdateBulkTemplate */
DomainUpdateBulkTemplate: {
/**
* Attributes
* @description Additional attributes of the domain, keyed by attribute name. Values are strings.
*
* Customer-settable keys:
*
* - `auto_renew_period`: `monthly` or `yearly`. All TLDs on create, transfer-in and update. Selects the
* period of the next renewal; the current expiry date does not move. On transfer-in without `period` it also sets the
* period added by the transfer. Omitted on create or transfer-in, it follows the term being bought: a one-month
* `period` renews monthly and anything else yearly, except a longer month-unit term, which leaves it unset: the next
* renewal then charges the term that was bought where the TLD still renews for that term, and the product's default
* billing period otherwise. Supplying `monthly` where the TLD sells no one-month renewal is rejected on create,
* transfer-in and update; a `monthly` stored before that rule applied is ignored at renewal.
* - `music_registrant_attestation`: `true`. `.music` registration.
* - `nic_it_compliance_confirmation`: `true`. `.it` registration and transfer.
* - `travel_industry_acknowledgement`: `true`. `.travel` registration.
* - `internet_ee_registrant_agreement`: `true`. `.ee` registration.
* - `punktum_dk_terms_acceptance`: `true`. `.dk` registration and registrant change.
* - `de_general_request_contact`, `de_abuse_contact`: id of a contact whose `.de` attribute set has `DE_CONTACT_TYPE` =
* `REQUEST`. `.de` only.
*
* Boolean keys also accept `1` and `yes`.
*
* Written by the platform and rejected if supplied: `verification_required`, `promotion`, `promotion_eligibility`,
* `nor_id_declaration`, `nor_id_declaration_token`, `punktum_dk_tracking_no`, `domain_contact_attributes`,
* `registry_reseller_id`. They are never returned under `attributes`; inline contact attributes surface on the matching
* `contacts` entry instead.
*
* Derived from the signed `.no` applicant declaration and ignored if supplied on create: `nor_id_applicant_version`,
* `nor_id_applicant_accept_name`, `nor_id_applicant_accept_date`.
*
* On update, every registry stores the supplied attributes, and the update is not sent to the registry unless they
* store; a registry that rejects the change stores nothing. An empty value removes the stored attribute, except for
* `auto_renew_period`, whose only accepted values are `monthly` and `yearly`. `.dk` also reads
* `punktum_dk_terms_acceptance` to confirm a registrant change. An update cannot change what the registrant accepted at
* registration, so these are rejected on update: `music_registrant_attestation`, `nic_it_compliance_confirmation`,
* `travel_industry_acknowledgement`, `internet_ee_registrant_agreement` and the three `nor_id_applicant_*` keys.
* `punktum_dk_terms_acceptance` stays settable for a registrant change but cannot be removed with an empty value.
*
*/
attributes?: {
[key: string]: string;
} | null;
/** @description The new contacts of the domain */
contacts?: components["schemas"]["DomainContactHandles"] | null;
/**
* Nameservers
* @description The new name servers for the domain
*/
nameservers?: components["schemas"]["Nameserver"][] | null;
/** @description The new renewal mode of the domain */
renewal_mode?: components["schemas"]["RenewalMode"] | null;
/** @description Statuses to add or remove relative to current state */
status_changes?: components["schemas"]["StatusChanges"] | null;
/**
* Statuses
* @description The new statuses of the domain
*/
statuses?: components["schemas"]["DomainClientStatus"][] | null;
};
/** DomainUpdateCommand */
DomainUpdateCommand: {
/**
* @description discriminator enum property added by openapi-typescript
* @enum {string}
*/
command: "domain_update";
/**
* Idempotency Key
* @description Idempotency key for this command
*/
idempotency_key?: string | null;
/** @description Domain update payload */
payload: components["schemas"]["DomainUpdatePayloadData"];
/**
* Version
* @description Command version
* @default v1
*/
version: string;
};
/** DomainUpdatePayloadData */
DomainUpdatePayloadData: {
/**
* Attributes
* @description Additional attributes of the domain, keyed by attribute name. Values are strings.
*
* Customer-settable keys:
*
* - `auto_renew_period`: `monthly` or `yearly`. All TLDs on create, transfer-in and update. Selects the
* period of the next renewal; the current expiry date does not move. On transfer-in without `period` it also sets the
* period added by the transfer. Omitted on create or transfer-in, it follows the term being bought: a one-month
* `period` renews monthly and anything else yearly, except a longer month-unit term, which leaves it unset: the next
* renewal then charges the term that was bought where the TLD still renews for that term, and the product's default
* billing period otherwise. Supplying `monthly` where the TLD sells no one-month renewal is rejected on create,
* transfer-in and update; a `monthly` stored before that rule applied is ignored at renewal.
* - `music_registrant_attestation`: `true`. `.music` registration.
* - `nic_it_compliance_confirmation`: `true`. `.it` registration and transfer.
* - `travel_industry_acknowledgement`: `true`. `.travel` registration.
* - `internet_ee_registrant_agreement`: `true`. `.ee` registration.
* - `punktum_dk_terms_acceptance`: `true`. `.dk` registration and registrant change.
* - `de_general_request_contact`, `de_abuse_contact`: id of a contact whose `.de` attribute set has `DE_CONTACT_TYPE` =
* `REQUEST`. `.de` only.
*
* Boolean keys also accept `1` and `yes`.
*
* Written by the platform and rejected if supplied: `verification_required`, `promotion`, `promotion_eligibility`,
* `nor_id_declaration`, `nor_id_declaration_token`, `punktum_dk_tracking_no`, `domain_contact_attributes`,
* `registry_reseller_id`. They are never returned under `attributes`; inline contact attributes surface on the matching
* `contacts` entry instead.
*
* Derived from the signed `.no` applicant declaration and ignored if supplied on create: `nor_id_applicant_version`,
* `nor_id_applicant_accept_name`, `nor_id_applicant_accept_date`.
*
* On update, every registry stores the supplied attributes, and the update is not sent to the registry unless they
* store; a registry that rejects the change stores nothing. An empty value removes the stored attribute, except for
* `auto_renew_period`, whose only accepted values are `monthly` and `yearly`. `.dk` also reads
* `punktum_dk_terms_acceptance` to confirm a registrant change. An update cannot change what the registrant accepted at
* registration, so these are rejected on update: `music_registrant_attestation`, `nic_it_compliance_confirmation`,
* `travel_industry_acknowledgement`, `internet_ee_registrant_agreement` and the three `nor_id_applicant_*` keys.
* `punktum_dk_terms_acceptance` stays settable for a registrant change but cannot be removed with an empty value.
*
* @example {
* "auto_renew_period": "monthly"
* }
*/
attributes?: {
[key: string]: string;
} | null;
/**
* Auth Code
* @description The new auth code for the domain
*/
auth_code?: string | null;
/**
* Contacts
* @description The new contacts of the domain
* @example {
* "admin": "contact_01h45ytscbebyvny4gc8cr8ma2",
* "billing": "contact_01h45ytscbebyvny4gc8cr8ma2",
* "registrant": "contact_01h45ytscbebyvny4gc8cr8ma2",
* "tech": "contact_01h45ytscbebyvny4gc8cr8ma2"
* }
*/
contacts?: components["schemas"]["DomainContactHandles"] | components["schemas"]["ContactIdList"] | null;
/**
* Domain Id
* @description Domain ID to update
*/
domain_id: string;
/**
* Nameservers
* @description The new name servers for the domain
*/
nameservers?: components["schemas"]["Nameserver"][] | null;
/** @description The new renewal mode of the domain */
renewal_mode?: components["schemas"]["RenewalMode"] | null;
/** @description Statuses to add or remove relative to current state */
status_changes?: components["schemas"]["StatusChanges"] | null;
/**
* Statuses
* @description The new statuses of the domain
*/
statuses?: components["schemas"]["DomainClientStatus"][] | null;
};
/** DomainUpdateWorkerPayload */
DomainUpdateWorkerPayload: {
domain: components["schemas"]["DomainUpdatePayloadData"];
/** Operation */
operation: string;
/**
* @description discriminator enum property added by openapi-typescript
* @enum {string}
*/
type: "domain_update" | "domain_update_bulk";
};
/** DomainVerificationDetails */
DomainVerificationDetails: {
/**
* @description discriminator enum property added by openapi-typescript
* @enum {string}
*/
detail_type: "domain_verification";
/** Domain Id */
domain_id: string;
/** Registrants */
registrants?: components["schemas"]["VerificationRegistrantDetails"][];
/** Verification Claims */
verification_claims?: components["schemas"]["VerificationClaimType"][];
/** Verification Deadlines */
verification_deadlines?: components["schemas"]["VerificationDeadline"][];
};
/** DomainWithdrawRequest */
DomainWithdrawRequest: {
/**
* Zone Delete
* @description Informs the registry whether the zone for that domain has been already deleted - as took from the docs: "(...) the registrar informs the registry that he has stopped the nameservice for the specified domain"
*/
zone_delete: boolean;
};
/** DomainWithdrawResponse */
DomainWithdrawResponse: {
/**
* Detail
* @description Why the withdraw did not succeed
*/
detail?: string | null;
/**
* Name
* @description The domain name that was withdrawn
*/
name: string;
/**
* Success
* @description Whether the withdraw operation was successful
*/
success: boolean;
};
/** DomainsContext */
DomainsContext: {
/**
* Context Id
* Format: typeid
* @example ctx_01h45ytscbebyvny4gc8cr8ma2
*/
context_id: TypeId<"ctx">;
/**
* Conversation Id
* Format: typeid
* @example conv_01h45ytscbebyvny4gc8cr8ma2
*/
conversation_id: TypeId<"conv">;
/**
* Created At
* Format: date-time
*/
created_at: Date;
/**
* @description discriminator enum property added by openapi-typescript
* @enum {string}
*/
kind: "domains";
/**
* Organization Id
* Format: typeid
* @example organization_01h45ytscbebyvny4gc8cr8ma2
*/
organization_id: TypeId<"organization">;
payload: components["schemas"]["ContextPayload_RegistrarDomain_"];
/** User Id */
user_id: string;
};
/** DomainsContextCreate */
DomainsContextCreate: {
/**
* @description discriminator enum property added by openapi-typescript
* @enum {string}
*/
kind: "domains";
payload: components["schemas"]["ContextPayload_RegistrarDomain_"];
};
/** DomainsExpiringSoon */
DomainsExpiringSoon: {
/**
* Next 30 Days
* @description Number of domains expiring in the next 30 days
*/
next_30_days: number;
/**
* Next 60 Days
* @description Number of domains expiring in the next 60 days
*/
next_60_days: number;
/**
* Next 90 Days
* @description Number of domains expiring in the next 90 days
*/
next_90_days: number;
};
/** DuplicateCommand */
DuplicateCommand: {
/**
* Existing Batch Id
* @description batch_id of the batch the existing job belongs to. Use this with /v1/jobs/{batch_id} to check status — the batch_id returned at the top level of this response will 404 if no new jobs were created.
*/
existing_batch_id?: TypeId<"batch"> | null;
/**
* Existing Job Id
* Format: typeid
* @description ID of the previously-created job whose idempotency_key matched this command
* @example job_01h45ytscbebyvny4gc8cr8ma2
*/
existing_job_id: TypeId<"job">;
/**
* Index
* @description Index of the duplicate command in the request
*/
index: number;
/**
* Instance Index
* @description Index within a bulk command's instances[] for per-instance duplicates
*/
instance_index?: number | null;
/**
* Resource Key
* @description Resource identifier (zone name, domain name, contact email) for this duplicate
*/
resource_key?: string | null;
};
/** EmailForwardAlias */
EmailForwardAlias: {
/** Alias */
alias: string;
/**
* Email Forward Alias Id
* Format: typeid
* @example email_forward_alias_01h45ytscbebyvny4gc8cr8ma2
*/
email_forward_alias_id: TypeId<"email_forward_alias">;
/** Forward To */
forward_to: string[];
};
/** EmailForwardAliasCreate */
EmailForwardAliasCreate: {
/** Alias */
alias: string;
/** Forward To */
forward_to: string[];
};
/** EmailForwardAliasMetrics */
EmailForwardAliasMetrics: {
/**
* Alias
* @description Email alias address
*/
alias: string;
/**
* By Status
* @description Log counts grouped by status
*/
by_status: {
[key: string]: number;
};
/**
* Total Logs
* @description Total number of logs for this alias
*/
total_logs: number;
};
/** EmailForwardAliasUpdate */
EmailForwardAliasUpdate: {
/** Forward To */
forward_to: string[];
};
/** EmailForwardCreate */
EmailForwardCreate: {
/**
* Aliases
* @default []
*/
aliases: components["schemas"]["EmailForwardAliasCreate"][];
/**
* Enabled
* @default false
*/
enabled: boolean;
/** Hostname */
hostname: string;
};
/** EmailForwardCreateBulkCommand */
EmailForwardCreateBulkCommand: {
/**
* @description discriminator enum property added by openapi-typescript
* @enum {string}
*/
command: "email_forward_create_bulk";
/**
* Idempotency Key
* @description Idempotency key for this bulk command
*/
idempotency_key?: string | null;
/** @description Bulk email forward create payload */
payload: components["schemas"]["EmailForwardCreateBulkPayload"];
/**
* Version
* @description Command version
* @default v1
*/
version: string;
};
/** EmailForwardCreateBulkInstance */
EmailForwardCreateBulkInstance: {
/**
* Aliases
* @description Override aliases
*/
aliases?: components["schemas"]["EmailForwardAliasCreate"][] | null;
/**
* Enabled
* @description Override enabled setting for this hostname
*/
enabled?: boolean | null;
/**
* Hostname
* @description Hostname to create email forwarding for
*/
hostname: string;
};
/** EmailForwardCreateBulkPayload */
EmailForwardCreateBulkPayload: {
/**
* Instances
* @description List of email forwards to create (1-1000)
*/
instances: components["schemas"]["EmailForwardCreateBulkInstance"][];
/** @description Shared settings for all email forwards */
template: components["schemas"]["EmailForwardCreateBulkTemplate"];
};
/** EmailForwardCreateBulkTemplate */
EmailForwardCreateBulkTemplate: {
/**
* Aliases
* @description Aliases to create
*/
aliases?: components["schemas"]["EmailForwardAliasCreate"][];
/**
* Auto Create Zone
* @description Create apex DNS zone automatically when missing
* @default false
*/
auto_create_zone: boolean;
/**
* Enabled
* @description Whether email forwarding should be enabled
* @default false
*/
enabled: boolean;
};
/** EmailForwardDeleteBulkCommand */
EmailForwardDeleteBulkCommand: {
/**
* @description discriminator enum property added by openapi-typescript
* @enum {string}
*/
command: "email_forward_delete_bulk";
/**
* Idempotency Key
* @description Idempotency key for this bulk command
*/
idempotency_key?: string | null;
/** @description Bulk email forward delete payload */
payload: components["schemas"]["EmailForwardDeleteBulkPayload"];
/**
* Version
* @description Command version
* @default v1
*/
version: string;
};
/** EmailForwardDeleteBulkInstance */
EmailForwardDeleteBulkInstance: {
/**
* Email Forward Id
* @description Email forward ID to target
*/
email_forward_id?: TypeId<"email_forward"> | null;
/**
* Hostname
* @description Hostname to target
*/
hostname?: string | null;
};
/** EmailForwardDeleteBulkPayload */
EmailForwardDeleteBulkPayload: {
/**
* Instances
* @description List of email forwards to delete (1-1000)
*/
instances: components["schemas"]["EmailForwardDeleteBulkInstance"][];
};
/** EmailForwardDisableBulkCommand */
EmailForwardDisableBulkCommand: {
/**
* @description discriminator enum property added by openapi-typescript
* @enum {string}
*/
command: "email_forward_disable_bulk";
/**
* Idempotency Key
* @description Idempotency key for this bulk command
*/
idempotency_key?: string | null;
/** @description Bulk email forward disable payload */
payload: components["schemas"]["EmailForwardDisableBulkPayload"];
/**
* Version
* @description Command version
* @default v1
*/
version: string;
};
/** EmailForwardDisableBulkInstance */
EmailForwardDisableBulkInstance: {
/**
* Email Forward Id
* @description Email forward ID to target
*/
email_forward_id?: TypeId<"email_forward"> | null;
/**
* Hostname
* @description Hostname to target
*/
hostname?: string | null;
};
/** EmailForwardDisableBulkPayload */
EmailForwardDisableBulkPayload: {
/**
* Instances
* @description List of email forwards to disable (1-1000)
*/
instances: components["schemas"]["EmailForwardDisableBulkInstance"][];
};
/** EmailForwardEnableBulkCommand */
EmailForwardEnableBulkCommand: {
/**
* @description discriminator enum property added by openapi-typescript
* @enum {string}
*/
command: "email_forward_enable_bulk";
/**
* Idempotency Key
* @description Idempotency key for this bulk command
*/
idempotency_key?: string | null;
/** @description Bulk email forward enable payload */
payload: components["schemas"]["EmailForwardEnableBulkPayload"];
/**
* Version
* @description Command version
* @default v1
*/
version: string;
};
/** EmailForwardEnableBulkInstance */
EmailForwardEnableBulkInstance: {
/**
* Email Forward Id
* @description Email forward ID to target
*/
email_forward_id?: TypeId<"email_forward"> | null;
/**
* Hostname
* @description Hostname to target
*/
hostname?: string | null;
};
/** EmailForwardEnableBulkPayload */
EmailForwardEnableBulkPayload: {
/**
* Instances
* @description List of email forwards to enable (1-1000)
*/
instances: components["schemas"]["EmailForwardEnableBulkInstance"][];
};
/** EmailForwardLog */
EmailForwardLog: {
/**
* Created On
* Format: date-time
* @description Timestamp when email was received by ImprovMX
*/
created_on: Date;
/**
* Domain
* @description Domain name
*/
domain: string;
/**
* Events
* @description List of processing events
*/
events?: components["schemas"]["EmailForwardLogEvent"][];
/** @description Final status of the email (QUEUED, DELIVERED, REFUSED, SOFT-BOUNCE, HARD-BOUNCE) */
final_status: components["schemas"]["EmailForwardLogStatus"];
/**
* Forward Email
* @description Forward destination email address
*/
forward_email: string;
/**
* Forward Name
* @description Forward destination name
*/
forward_name?: string | null;
/**
* Hostname
* @description Hostname that received the email
*/
hostname: string;
/**
* Log Id
* @description Unique ID of the log from ImprovMX
*/
log_id: string;
/**
* Message Id
* @description Email message ID
*/
message_id: string;
/**
* Recipient Email
* @description Recipient email address (the alias)
*/
recipient_email: string;
/**
* Recipient Name
* @description Recipient name
*/
recipient_name?: string | null;
/**
* Sender Email
* @description Sender email address
*/
sender_email: string;
/**
* Sender Name
* @description Sender name
*/
sender_name?: string | null;
/**
* Subject
* @description Email subject
*/
subject: string;
/**
* Synced On
* Format: date-time
* @description Timestamp when record was synced to ClickHouse
*/
synced_on: Date;
/**
* Transport
* @description Transport method (mx or smtp)
*/
transport: string;
};
/** EmailForwardLogEvent */
EmailForwardLogEvent: {
/**
* Code
* @description Event status code
*/
code: number;
/**
* Created
* Format: date-time
* @description Timestamp when the event occurred
*/
created: Date;
/**
* Id
* @description Event ID
*/
id: string;
/**
* Local
* @description ImprovMX server that processed the event
*/
local: string;
/**
* Message
* @description Event message
*/
message: string;
/**
* Server
* @description Server that processed the event
*/
server: string;
/**
* Status
* @description Event status (QUEUED, DELIVERED, REFUSED, SOFT-BOUNCE, HARD-BOUNCE)
*/
status: string;
};
/**
* EmailForwardLogSortField
* @enum {string}
*/
EmailForwardLogSortField: "log_id" | "sender_email" | "recipient_email" | "forward_email" | "final_status" | "created_on" | "synced_on";
/**
* EmailForwardLogStatus
* @enum {string}
*/
EmailForwardLogStatus: "UNKNOWN" | "QUEUED" | "DELIVERED" | "REFUSED" | "SOFT-BOUNCE" | "HARD-BOUNCE";
/** EmailForwardMetrics */
EmailForwardMetrics: {
/**
* Alias Count
* @description Number of aliases
*/
alias_count?: number | null;
/**
* By Alias
* @description Metrics breakdown per alias
*/
by_alias?: components["schemas"]["EmailForwardAliasMetrics"][] | null;
/**
* By Status
* @description Log counts grouped by status (QUEUED, DELIVERED, REFUSED, SOFT-BOUNCE, HARD-BOUNCE)
*/
by_status: {
[key: string]: number;
};
/** @description Applied filters */
filters: components["schemas"]["EmailForwardMetricsFilters"];
/** @description Rate percentages for each status */
rates: components["schemas"]["EmailForwardMetricsRates"];
/**
* Total Logs
* @description Total number of email forward logs
*/
total_logs: number;
};
/** EmailForwardMetricsFilters */
EmailForwardMetricsFilters: {
/**
* Domain
* @description Domain name
*/
domain: string;
/**
* End Time
* @description End time filter (RFC3339)
*/
end_time?: string | null;
/**
* Include Aliases
* @description Whether alias breakdown is included
*/
include_aliases?: boolean | null;
/**
* Start Time
* @description Start time filter (RFC3339)
*/
start_time?: string | null;
};
/** EmailForwardMetricsRates */
EmailForwardMetricsRates: {
/**
* Bounce Rate
* @description Bounce rate percentage
*/
bounce_rate: number;
/**
* Delivery Rate
* @description Delivery rate percentage
*/
delivery_rate: number;
/**
* Queued Rate
* @description Queued rate percentage
*/
queued_rate: number;
/**
* Refused Rate
* @description Refused rate percentage
*/
refused_rate: number;
};
/** EmailForwardResponse */
EmailForwardResponse: {
/** Aliases */
aliases: components["schemas"]["EmailForwardAlias"][];
/**
* Created On
* Format: date-time
*/
created_on: Date;
/**
* Email Forward Id
* Format: typeid
* @example email_forward_01h45ytscbebyvny4gc8cr8ma2
*/
email_forward_id: TypeId<"email_forward">;
/** Enabled */
enabled: boolean;
/** Hostname */
hostname: string;
/**
* Updated On
* Format: date-time
*/
updated_on: Date;
};
/**
* EmailForwardSortField
* @enum {string}
*/
EmailForwardSortField: "hostname" | "enabled" | "created_on" | "updated_on";
/** EmailForwardUpdateBulkCommand */
EmailForwardUpdateBulkCommand: {
/**
* @description discriminator enum property added by openapi-typescript
* @enum {string}
*/
command: "email_forward_update_bulk";
/**
* Idempotency Key
* @description Idempotency key for this bulk command
*/
idempotency_key?: string | null;
/** @description Bulk email forward update payload */
payload: components["schemas"]["EmailForwardUpdateBulkPayload"];
/**
* Version
* @description Command version
* @default v1
*/
version: string;
};
/** EmailForwardUpdateBulkInstance */
EmailForwardUpdateBulkInstance: {
/**
* Aliases
* @description Override aliases (replace-all)
*/
aliases?: components["schemas"]["EmailForwardAliasCreate"][] | null;
/**
* Email Forward Id
* @description Email forward ID to target
*/
email_forward_id?: TypeId<"email_forward"> | null;
/**
* Enabled
* @description Override enabled setting
*/
enabled?: boolean | null;
/**
* Hostname
* @description Hostname to target
*/
hostname?: string | null;
};
/** EmailForwardUpdateBulkPayload */
EmailForwardUpdateBulkPayload: {
/**
* Instances
* @description List of email forwards to update (1-1000)
*/
instances: components["schemas"]["EmailForwardUpdateBulkInstance"][];
/** @description Shared settings for all email forwards */
template: components["schemas"]["EmailForwardUpdateBulkTemplate"];
};
/** EmailForwardUpdateBulkTemplate */
EmailForwardUpdateBulkTemplate: {
/**
* Aliases
* @description Aliases to set (replace-all)
*/
aliases?: components["schemas"]["EmailForwardAliasCreate"][] | null;
/**
* Enabled
* @description Whether email forwarding should be enabled
*/
enabled: boolean;
};
/** EmailForwardZone */
EmailForwardZone: {
/** Email Forwards */
email_forwards: components["schemas"]["EmailForwardResponse"][];
/**
* Zone Id
* Format: typeid
* @example zone_01h45ytscbebyvny4gc8cr8ma2
*/
zone_id: TypeId<"zone">;
/** Zone Name */
zone_name: string;
};
/**
* EmailForwardZoneSortField
* @enum {string}
*/
EmailForwardZoneSortField: "name" | "created_on" | "updated_on";
/** EmailForwardsContext */
EmailForwardsContext: {
/**
* Context Id
* Format: typeid
* @example ctx_01h45ytscbebyvny4gc8cr8ma2
*/
context_id: TypeId<"ctx">;
/**
* Conversation Id
* Format: typeid
* @example conv_01h45ytscbebyvny4gc8cr8ma2
*/
conversation_id: TypeId<"conv">;
/**
* Created At
* Format: date-time
*/
created_at: Date;
/**
* @description discriminator enum property added by openapi-typescript
* @enum {string}
*/
kind: "email_forwards";
/**
* Organization Id
* Format: typeid
* @example organization_01h45ytscbebyvny4gc8cr8ma2
*/
organization_id: TypeId<"organization">;
payload: components["schemas"]["ContextPayload_EmailForwardResponse_"];
/** User Id */
user_id: string;
};
/** EmailForwardsContextCreate */
EmailForwardsContextCreate: {
/**
* @description discriminator enum property added by openapi-typescript
* @enum {string}
*/
kind: "email_forwards";
payload: components["schemas"]["ContextPayload_EmailForwardResponse_"];
};
/** EmailVerificationPolicy */
EmailVerificationPolicy: {
communication: components["schemas"]["Communication"];
/**
* Contact Roles
* @description For which type of Contacts this verification needs to be done
*/
contact_roles: components["schemas"]["DomainContactType"][];
/**
* Enabled
* @description Whether this Verification is enabled
*/
enabled: boolean;
/**
* Suspension Delay
* @description After how many Days should the domain be suspended
*/
suspension_delay: string;
/**
* Suspension On Failure
* @description Should the Domain be suspended if the verification was not successfull
*/
suspension_on_failure: boolean;
/**
* Trigger
* @description The operations that will trigger this verification
*/
trigger: string[];
validity_period: components["schemas"]["PeriodStr"] | null;
/** Verification Method */
verification_method: string;
};
/**
* EmailVerificationStatus
* @enum {string}
*/
EmailVerificationStatus: "verified" | "pending" | "canceled";
/** EventData */
EventData: {
/** Details */
details?: (components["schemas"]["DomainRenewalDetails"] | components["schemas"]["DomainVerificationDetails"]) | null;
error?: components["schemas"]["EventError"] | null;
/** Message */
message: string;
/** @default 1.0 */
version: components["schemas"]["EventVersion"];
};
/** EventError */
EventError: {
/** Code */
code: string;
/** Detail */
detail: string;
};
/**
* EventObjectType
* @enum {string}
*/
EventObjectType: "DOMAIN" | "CONTACT" | "HOST" | "ACCOUNT" | "VANITY_NS_SET" | "RAW" | "UNKNOWN";
/** EventResponse */
EventResponse: {
/**
* Acknowledged On
* @description When the event was acknowledged
*/
acknowledged_on?: Date | null;
/**
* Created On
* Format: date-time
* @description When the event was created
*/
created_on: Date;
event_data: components["schemas"]["EventData"];
/**
* Event Id
* Format: typeid
* @example event_01h45ytscbebyvny4gc8cr8ma2
*/
event_id?: TypeId<"event">;
/**
* Object Id
* @description The id of the object that the event is about
*/
object_id?: string | null;
/**
* @description The type of object that the event is about
* @default RAW
*/
object_type: components["schemas"]["EventObjectType"];
/** @description The specific type/result of operation (considering the type property), more detailed (e.g., 'NOTIFICATION' with the 'DOMAIN_MODIFICATION' class) */
subtype?: components["schemas"]["EventSubtype"] | null;
/** @description The type of the event - indicates the kind of operation occurring (e.g., 'ACCOUNT_CREATE', 'DOMAIN_MODIFICATION') */
type?: components["schemas"]["EventType"] | null;
};
/**
* EventSortField
* @enum {string}
*/
EventSortField: "object_id" | "created_on";
/**
* EventSubtype
* @enum {string}
*/
EventSubtype: "NOTIFICATION" | "SUCCESS" | "FAILURE" | "CANCELED";
/**
* EventType
* @enum {string}
*/
EventType: "REGISTRATION" | "RENEWAL" | "MODIFICATION" | "DELETION" | "INBOUND_TRANSFER" | "OUTBOUND_TRANSFER" | "TRANSIT" | "WITHDRAW" | "VERIFICATION" | "BALANCE" | "VANITY_NS_PROVISION" | "VANITY_NS_SUSPENSION" | "VANITY_NS_RESTORATION" | "VANITY_NS_TERMINATION" | "CLONE";
/**
* EventVersion
* @enum {string}
*/
EventVersion: "1.0";
/**
* ExecutingEntity
* @enum {string}
*/
ExecutingEntity: "user" | "organization" | "system";
/** Footer */
Footer: {
/** Legal Entity */
legal_entity?: string | null;
/** Lines */
lines?: string[] | null;
/** Vat Id */
vat_id?: string | null;
};
/** GeneralAvailabilityBase */
GeneralAvailabilityBase: {
/**
* Start Date
* Format: date-time
* @description Start date of general availability
*/
start_date: Date;
};
/** GeoStatsBucket */
GeoStatsBucket: {
/** Key */
key: string;
/** Total */
total: number;
};
/** GetPricesResponse */
GetPricesResponse: {
/**
* Prices
* @description List of prices
*/
prices: components["schemas"]["PriceInfo"][];
};
/**
* HTTPMethod
* @description HTTP methods and descriptions
*
* Methods from the following RFCs are all observed:
*
* * RFC 9110: HTTP Semantics, obsoletes 7231, which obsoleted 2616
* * RFC 5789: PATCH Method for HTTP
* @enum {string}
*/
HTTPMethod: "CONNECT" | "DELETE" | "GET" | "HEAD" | "OPTIONS" | "PATCH" | "POST" | "PUT" | "TRACE";
/** RequestValidationError */
HTTPValidationError: {
errors: components["schemas"]["ValidationError"][];
/** Status code */
status: number;
/** Problem title */
title: string;
/** Problem type */
type: string;
};
/**
* HolderEntitlement
* @enum {string}
*/
HolderEntitlement: "owner" | "assignee" | "licensee";
/** HostCreate */
HostCreate: {
/**
* Hostname
* @description Hostname of the host object
* @example ns1.example.com
*/
hostname: string;
/**
* Ip Addresses
* @description List of IP addresses for the host object
* @example [
* "192.0.2.53",
* "2001:db8::53"
* ]
*/
ip_addresses: string[];
};
/** HostIpSchema */
HostIpSchema: {
/**
* Address
* Format: ipvanyaddress
* @description IP address of the host object
*/
address: string;
/**
* Created On
* Format: date-time
* @description The date/time the entry was created on
*/
created_on?: Date;
/**
* Host Id
* Format: typeid
* @default None
* @example host_01h45ytscbebyvny4gc8cr8ma2
*/
host_id: TypeId<"host">;
/**
* Host Ip Id
* Format: typeid
* @example host_ip_01h45ytscbebyvny4gc8cr8ma2
*/
host_ip_id?: TypeId<"host_ip">;
/** @description IP address type */
type: components["schemas"]["IPAddressType"];
/**
* Updated On
* Format: date-time
* @description The date/time the entry was last updated on
*/
updated_on?: Date;
};
/** HostResponse */
HostResponse: {
/**
* Created On
* Format: date-time
* @description Timestamp when the host was created
*/
created_on: Date;
/**
* Host Id
* Format: typeid
* @description Unique identifier of the host object
* @example host_01h45ytscbebyvny4gc8cr8ma2
*/
host_id: TypeId<"host">;
/**
* Hostname
* @description Hostname of the host object
* @example ns1.example.com
*/
hostname: string;
/**
* Ip Addresses
* @description The ip addresses of the Host Object
*/
ip_addresses?: string[];
/**
* Updated On
* Format: date-time
* @description Timestamp when the host was last updated
*/
updated_on: Date;
};
/** HostSchema */
HostSchema: {
/**
* Created On
* Format: date-time
* @description The date/time the entry was created on
*/
created_on?: Date;
/**
* Domain Id
* Format: typeid
* @description The domain that the host object belongs to
* @default None
* @example domain_01h45ytscbebyvny4gc8cr8ma2
*/
domain_id: TypeId<"domain">;
/**
* Host Id
* Format: typeid
* @example host_01h45ytscbebyvny4gc8cr8ma2
*/
host_id?: TypeId<"host">;
/**
* Hostname
* @description Hostname of the host object
*/
hostname: string;
/**
* Registry Account Id
* @description The registry account that the host object belongs to
*/
registry_account_id?: TypeId<"registry_account"> | null;
/**
* @description Status of the host object
* @default inactive
*/
status: components["schemas"]["HostStatus"];
/**
* Updated On
* Format: date-time
* @description The date/time the entry was last updated on
*/
updated_on?: Date;
};
/**
* HostStatus
* @enum {string}
*/
HostStatus: "requested_create" | "pending_create" | "active" | "inactive" | "pending_delete";
/** HostUpdate */
HostUpdate: {
/**
* Ip Addresses
* @description List of IP addresses for the host object
* @example [
* "192.0.2.53",
* "2001:db8::53"
* ]
*/
ip_addresses: string[];
};
/**
* HttpProtocol
* @enum {string}
*/
HttpProtocol: "http" | "https";
/** HttpRedirectListResponse */
HttpRedirectListResponse: {
/**
* Protected
* @default false
*/
protected: boolean;
redirect_code: components["schemas"]["RedirectCode"];
/** Request Hostname */
request_hostname: string;
/** Request Path */
request_path: string;
request_protocol: components["schemas"]["HttpProtocol"];
/** Request Subdomain */
request_subdomain?: string | null;
/** Target Hostname */
target_hostname: string;
/** Target Path */
target_path: string;
target_protocol: components["schemas"]["HttpProtocol"];
};
/** HttpRedirectRemove */
HttpRedirectRemove: {
/** Request Hostname */
request_hostname: string;
/** Request Path */
request_path: string;
request_protocol: components["schemas"]["HttpProtocol"];
/** Request Subdomain */
request_subdomain?: string | null;
};
/** HttpRedirectRequest */
HttpRedirectRequest: {
redirect_code: components["schemas"]["RedirectCode"];
/** Request Path */
request_path: string;
/** Target Hostname */
target_hostname: string;
/** Target Path */
target_path: string;
target_protocol: components["schemas"]["HttpProtocol"];
};
/** HttpRedirectUpsert */
HttpRedirectUpsert: {
redirect_code: components["schemas"]["RedirectCode"];
/** Request Hostname */
request_hostname: string;
/** Request Path */
request_path: string;
request_protocol: components["schemas"]["HttpProtocol"];
/** Request Subdomain */
request_subdomain?: string | null;
/** Target Hostname */
target_hostname: string;
/** Target Path */
target_path: string;
target_protocol: components["schemas"]["HttpProtocol"];
};
/**
* IPAddressType
* @enum {string}
*/
IPAddressType: "v4" | "v6";
/**
* IdentityVerificationPolicy
* @description A registry that requires the contact to have been identity-verified before it accepts it.
*
* The vocabulary is the contact-verification service's, because that service is what the claims
* are checked against. What a registry accepts as evidence is a policy of its own and does not
* follow from the claim: `.dk` wants a photo ID for `NAME`, while a registry happy with a written
* attestation would leave `accepted_proofs` out.
*/
IdentityVerificationPolicy: {
/**
* Contact Roles
* @description For which type of Contacts this verification needs to be done
*/
contact_roles: components["schemas"]["DomainContactType"][];
/**
* Enabled
* @description Whether this Verification is enabled
*/
enabled: boolean;
/**
* Required Claims
* @description The claims that must be verified before a contact can be used on this TLD
*/
required_claims: components["schemas"]["RequiredClaim"][];
/**
* Suspension Delay
* @description After how many Days should the domain be suspended
*/
suspension_delay: string;
/**
* Suspension On Failure
* @description Should the Domain be suspended if the verification was not successfull
*/
suspension_on_failure: boolean;
/**
* Trigger
* @description The operations that will trigger this verification
*/
trigger: string[];
validity_period: components["schemas"]["PeriodStr"] | null;
};
/** IdnBase */
IdnBase: {
/**
* Idn Capable
* @description IDN allowed
*/
idn_capable: boolean;
/**
* Idn Tables
* @description Allowed IDN characters, file with the IDN codes
*/
idn_tables?: string[] | null;
};
/**
* InvoiceDocumentType
* @description Customer-facing document class. Orthogonal to `InvoiceResponseType`: prepaid-credit invoices are receipts,
* everything else billable is an invoice. Documents billing classifies as neither are never returned.
* @enum {string}
*/
InvoiceDocumentType: "invoice" | "receipt";
/** InvoiceResponse */
InvoiceResponse: {
/**
* Amount
* @description Total invoice amount
*/
amount: string;
/** @description Invoice currency */
currency: components["schemas"]["Currency"];
/** @description Customer-facing document class */
document_type: components["schemas"]["InvoiceDocumentType"];
/**
* External Id
* @description Lago ID (external) for this invoice
*/
external_id: string;
/**
* Fees Amount
* @description Fees amount
*/
fees_amount: string;
/**
* File Url
* @description URL to invoice PDF file
*/
file_url: string | null;
/** @description Invoice type */
invoice_type: components["schemas"]["InvoiceResponseType"];
/**
* Issuing Date
* Format: date-time
* @description Invoice issuing date
*/
issuing_date: Date;
/**
* Number
* @description Invoice number
*/
number: string;
/**
* Payment Due Date
* Format: date-time
* @description Payment due date
*/
payment_due_date: Date;
/**
* Payment Overdue
* @description Whether payment is overdue
*/
payment_overdue: boolean;
/** @description Payment status */
payment_status: components["schemas"]["InvoiceResponsePaymentStatus"];
/** @description Invoice status */
status: components["schemas"]["InvoiceResponseStatus"];
/**
* Taxes Amount
* @description Taxes amount
*/
taxes_amount: string;
};
/**
* InvoiceResponsePaymentStatus
* @enum {string}
*/
InvoiceResponsePaymentStatus: "pending" | "failed" | "succeeded";
/**
* InvoiceResponseStatus
* @enum {string}
*/
InvoiceResponseStatus: "draft" | "finalized" | "failed" | "pending" | "voided";
/**
* InvoiceResponseType
* @enum {string}
*/
InvoiceResponseType: "subscription" | "add_on" | "credit" | "one_off" | "advance_charges" | "progressive_billing";
/**
* IpRestrictionCreate
* @description Create an IP restriction for an organization.
*
* Accepts either a single IP address or a CIDR network range.
* Individual IP addresses are stored and returned with CIDR notation (/32 for IPv4, /128 for IPv6).
*/
IpRestrictionCreate: {
/**
* Ip Network
* Format: ipvanynetwork
* @description IP address or CIDR network range. Individual IPs can be specified without CIDR notation.
* @example 192.0.2.1
* @example 192.0.2.0/24
* @example 2001:db8::1
* @example 2001:db8::/32
*/
ip_network: string;
/**
* Organization Id
* Format: typeid
* @example organization_01h45ytscbebyvny4gc8cr8ma2
*/
organization_id?: TypeId<"organization">;
};
/** IpRestrictionResponse */
IpRestrictionResponse: {
/**
* Created On
* Format: date-time
*/
created_on: Date;
/**
* Ip Network
* Format: ipvanynetwork
* @description IP address or CIDR network range. Single IPs are returned with /32 (IPv4) or /128 (IPv6) notation.
* @example 192.0.2.1/32
* @example 192.0.2.0/24
* @example 2001:db8::1/128
* @example 2001:db8::/32
*/
ip_network: string;
/** Ip Restriction Id */
ip_restriction_id: number;
/** Last Used On */
last_used_on?: Date | null;
/**
* Organization Id
* Format: typeid
* @example organization_01h45ytscbebyvny4gc8cr8ma2
*/
organization_id: TypeId<"organization">;
};
/**
* IpRestrictionUpdate
* @description Update an existing IP restriction.
*
* You can update the IP network range or the last usage timestamp.
*/
IpRestrictionUpdate: {
/**
* Ip Network
* @description IP address or CIDR network range to replace the existing restriction.
* @example 192.0.2.1
* @example 192.0.2.0/24
* @example 2001:db8::1
* @example 2001:db8::/32
*/
ip_network?: string | null;
/**
* Last Used On
* @description Timestamp of the last usage.
*/
last_used_on?: Date | null;
};
/** JobBatchMetadataResponse */
JobBatchMetadataResponse: {
/**
* Batch Id
* Format: typeid
* @description TypeID identifying this batch
* @example batch_01h45ytscbebyvny4gc8cr8ma2
*/
batch_id: TypeId<"batch">;
/**
* Created On
* Format: date-time
* @description Timestamp when the batch was created (UTC)
*/
created_on: Date;
/**
* Finished At
* @description Timestamp when the last job finished (UTC)
*/
finished_at?: Date | null;
/** @description Number of jobs in each status */
job_counts: components["schemas"]["JobCountsByStatus"];
/**
* Label
* @description Human-readable label for this batch
*/
label?: string | null;
/**
* Started At
* @description Timestamp when the first job started (UTC)
*/
started_at?: Date | null;
/** @description Batch status: pending (jobs still processing) or complete (all done) */
status: components["schemas"]["BatchStatus"];
/**
* Total Jobs
* @description Total number of jobs in this batch
*/
total_jobs: number;
};
/** JobBatchRequest */
JobBatchRequest: {
/**
* Commands
* @description List of commands to execute
*/
commands: (components["schemas"]["DomainCreateCommand"] | components["schemas"]["DomainUpdateCommand"] | components["schemas"]["DomainTransferCommand"] | components["schemas"]["DnsZoneCreateCommand"] | components["schemas"]["DnsZoneUpdateCommand"] | components["schemas"]["DomainCreateBulkCommand"] | components["schemas"]["DomainTransferBulkCommand"] | components["schemas"]["DomainUpdateBulkCommand"] | components["schemas"]["DnsZoneCreateBulkCommand"] | components["schemas"]["DnsZoneUpdateBulkCommand"] | components["schemas"]["DnsZonePatchRrsetsBulkCommand"] | components["schemas"]["DnsZonePatchRecordsBulkCommand"] | components["schemas"]["DnsZoneRestampVanityNsBulkCommand"] | components["schemas"]["ContactCreateBulkCommand"] | components["schemas"]["ContactCreateCommand"] | components["schemas"]["ParkingCreateBulkCommand"] | components["schemas"]["ParkingEnableBulkCommand"] | components["schemas"]["ParkingDisableBulkCommand"] | components["schemas"]["ParkingDeleteBulkCommand"] | components["schemas"]["EmailForwardCreateBulkCommand"] | components["schemas"]["EmailForwardEnableBulkCommand"] | components["schemas"]["EmailForwardDisableBulkCommand"] | components["schemas"]["EmailForwardDeleteBulkCommand"] | components["schemas"]["EmailForwardUpdateBulkCommand"] | components["schemas"]["DomainForwardCreateBulkCommand"] | components["schemas"]["DomainForwardUpdateBulkCommand"] | components["schemas"]["DomainForwardEnableBulkCommand"] | components["schemas"]["DomainForwardDisableBulkCommand"] | components["schemas"]["DomainForwardDeleteBulkCommand"])[];
/**
* Label
* @description Human-readable label for this batch
*/
label?: string | null;
/**
* Not Before
* @description Earliest time jobs can execute (UTC). If not provided, jobs run immediately.
*/
not_before?: Date | null;
/**
* Paused
* @description If true, jobs are created in paused state and must be explicitly resumed
* @default false
*/
paused: boolean;
};
/** JobBatchRetryResponse */
JobBatchRetryResponse: {
/**
* Batch Id
* Format: typeid
* @description TypeID identifying this batch
* @example batch_01h45ytscbebyvny4gc8cr8ma2
*/
batch_id: TypeId<"batch">;
/**
* Blocked Count
* @description Number of retried jobs held behind the topic rate limit or backlog (BLOCKED)
* @default 0
*/
blocked_count: number;
/**
* Queued Count
* @description Number of retried jobs dispatched immediately (QUEUED)
* @default 0
*/
queued_count: number;
/**
* Retried Count
* @description Number of FAILED/DEAD_LETTER jobs reset for retry
*/
retried_count: number;
};
/** JobBatchStatusResponse */
JobBatchStatusResponse: {
/**
* Batch Id
* Format: typeid
* @description TypeID identifying this batch. All jobs in a batch share the same batch_id, while each job has its own unique job_id.
* @example batch_01h45ytscbebyvny4gc8cr8ma2
*/
batch_id: TypeId<"batch">;
/**
* Blocked
* @description Number of jobs waiting for eligibility (scheduled, serial blocked, or no tokens)
* @default 0
*/
blocked: number;
/**
* Canceled
* @description Number of jobs that were canceled
*/
canceled: number;
/**
* Dead Letter
* @description Number of jobs that permanently failed after exhausting retries
*/
dead_letter: number;
/**
* Failed
* @description Number of jobs that failed execution
*/
failed: number;
/**
* Label
* @description Human-readable label for this batch
*/
label?: string | null;
/**
* Paused
* @description Number of jobs in paused state
* @default 0
*/
paused: number;
/**
* Progress Percentage
* @description Percentage of jobs in a terminal state (succeeded, failed, canceled, or dead_letter), 0-100
*/
progress_percentage: number;
/**
* Queued
* @description Number of jobs awaiting processing
*/
queued: number;
/**
* Running
* @description Number of jobs currently being executed
*/
running: number;
/**
* Succeeded
* @description Number of jobs that completed successfully
*/
succeeded: number;
/**
* Total
* @description Total number of jobs in the batch
*/
total: number;
};
/** JobCountsByStatus */
JobCountsByStatus: {
/**
* Blocked
* @default 0
*/
blocked: number;
/**
* Canceled
* @default 0
*/
canceled: number;
/**
* Dead Letter
* @default 0
*/
dead_letter: number;
/**
* Failed
* @default 0
*/
failed: number;
/**
* Paused
* @default 0
*/
paused: number;
/**
* Queued
* @default 0
*/
queued: number;
/**
* Running
* @default 0
*/
running: number;
/**
* Succeeded
* @default 0
*/
succeeded: number;
};
/** JobResponse */
JobResponse: {
/**
* Attempts
* @description Number of execution attempts made for this job
*/
attempts: number;
/**
* Command
* @description Command name (e.g., 'domain_create', 'dns_zone_update')
*/
command?: string | null;
/**
* Created On
* Format: date-time
* @description Timestamp when the job was created (UTC)
*/
created_on: Date;
/**
* Display
* @description Human-readable description of this job
*/
display?: string | null;
/**
* Domain Name
* @description Domain name associated with this job
*/
domain_name?: string | null;
/**
* Error Class
* @description Error type if the job failed (e.g., ValidationError, TimeoutError)
*/
error_class?: string | null;
/**
* Error Code
* @description Stable semantic error code propagated verbatim from the failing upstream service (e.g. 'ERROR_DOMAIN_TRANSFER_INVALID_AUTH_CODE'). Suitable for i18n / per-error UI branching. Null when the job did not fail or the upstream error did not carry a code.
*/
error_code?: string | null;
/**
* Error Details
* @description Full upstream problem-details payload (RFC 9457) preserved verbatim — e.g. type/title/status/code/detail plus service-specific extras like domain_name, reason. Null when the failure didn't originate from a typed upstream response.
*/
error_details?: {
[key: string]: unknown;
} | null;
/**
* Error Message
* @description Detailed error message if the job failed
*/
error_message?: string | null;
/**
* Finished At
* @description Timestamp when job execution completed (UTC)
*/
finished_at?: Date | null;
/**
* Job Id
* Format: typeid
* @description Unique identifier for this individual job
* @example job_01h45ytscbebyvny4gc8cr8ma2
*/
job_id: TypeId<"job">;
/**
* Operation
* @description Operation type (e.g., 'create', 'update', 'transfer')
*/
operation?: string | null;
/**
* Paused At
* @description Timestamp when job was paused (UTC)
*/
paused_at?: Date | null;
/**
* Payload
* @description The original request payload for this job
*/
payload?: (components["schemas"]["DomainCreateWorkerPayload"] | components["schemas"]["DomainUpdateWorkerPayload"] | components["schemas"]["DomainTransferWorkerPayload"] | components["schemas"]["DnsZoneCreateWorkerPayload"] | components["schemas"]["DnsZoneUpdateWorkerPayload"] | components["schemas"]["DnsZonePatchRrsetsWorkerPayload"] | components["schemas"]["DnsZonePatchRecordsWorkerPayload"] | components["schemas"]["DnsZoneRestampVanityNsWorkerPayload"] | components["schemas"]["ContactCreateWorkerPayload"] | components["schemas"]["ParkingCreateWorkerPayload"] | components["schemas"]["ParkingEnableWorkerPayload"] | components["schemas"]["ParkingDisableWorkerPayload"] | components["schemas"]["ParkingDeleteWorkerPayload"]) | {
[key: string]: unknown;
} | null;
/**
* Resource Key
* @description Resource identifier for this job
*/
resource_key?: string | null;
/**
* Result
* @description Structured result data from successful job execution (e.g. created entity IDs). Typed when the worker emits a known `type` discriminator; raw dict otherwise.
*/
result?: (components["schemas"]["ContactCreateWorkerResult"] | components["schemas"]["DomainCreateWorkerResult"] | components["schemas"]["DnsZoneCreateWorkerResult"]) | {
[key: string]: unknown;
} | null;
/**
* Started At
* @description Timestamp when job execution began (UTC)
*/
started_at?: Date | null;
/** @description Current job status: blocked, queued, paused, running, succeeded, failed, canceled, or dead_letter */
status: components["schemas"]["JobStatus"];
};
/**
* JobStatus
* @enum {string}
*/
JobStatus: "blocked" | "queued" | "paused" | "running" | "succeeded" | "failed" | "canceled" | "dead_letter";
JsonValue: unknown;
/** LaunchPhaseBase */
LaunchPhaseBase: {
/** @description Allocation method */
allocation?: components["schemas"]["AllocationMethodType"] | null;
/**
* End Date
* @description End date of the phase
*/
end_date?: Date | null;
/**
* Smd Required
* @description Whether an SMD file is required for participation
*/
smd_required?: boolean | null;
/**
* Start Date
* @description Start date of the phase
*/
start_date?: Date | null;
/**
* Supported
* @description Whether this phase is supported
*/
supported: boolean;
/** @description Type of launch phase */
type: components["schemas"]["LaunchPhaseType"];
};
/**
* LaunchPhaseType
* @enum {string}
*/
LaunchPhaseType: "sunrise" | "landrush" | "eap";
/** LaunchPhasesBase */
LaunchPhasesBase: {
general_availability: components["schemas"]["GeneralAvailabilityBase"];
/**
* Phases
* @default []
*/
phases: components["schemas"]["LaunchPhaseBase"][];
trademark_claims?: components["schemas"]["TrademarkClaimsBase"] | null;
};
/** Legal */
Legal: {
/** Privacy Url */
privacy_url?: string | null;
/** Terms Url */
terms_url?: string | null;
};
/** LegalRequirementBase */
LegalRequirementBase: {
/**
* Key
* @description Unique identifier for the legal requirement
*/
key: string;
/**
* Operations
* @description Operations this requirement applies to
*/
operations: components["schemas"]["LegalRequirementOperationType"][];
/** @description Whether this is an informational notice or requires explicit confirmation */
type: components["schemas"]["LegalRequirementType"];
/**
* Url
* @description Link to the legal document
*/
url?: string | null;
};
/**
* LegalRequirementOperationType
* @enum {string}
*/
LegalRequirementOperationType: "registration" | "transfer" | "renewal" | "registrant_change";
/**
* LegalRequirementType
* @enum {string}
*/
LegalRequirementType: "notice" | "confirmation";
/**
* LevelOfAssurance
* @enum {string}
*/
LevelOfAssurance: "HIGH" | "LOW" | "SUBSTANTIAL";
/** ListBrandingAssetsResponse */
ListBrandingAssetsResponse: {
/**
* Assets
* @description Uploaded assets, most recent first
*/
assets?: components["schemas"]["BrandingAsset"][];
};
/** ListVanityNameserverSetsRes */
ListVanityNameserverSetsRes: {
/** @description Pagination metadata */
pagination: components["schemas"]["PaginationMetadataDTO"];
/**
* Results
* @description Sets owned by the org, newest first; includes non-ACTIVE rows
*/
results?: components["schemas"]["VanityNameserverSetSummaryDTO"][];
};
/** ListZonesReferencingSetRes */
ListZonesReferencingSetRes: {
/** @description Pagination metadata */
pagination: components["schemas"]["PaginationMetadataDTO"];
/**
* Results
* @description Zones whose apex is branded by the set, ordered by zone name
*/
results?: components["schemas"]["DnsZoneDTO"][];
};
/** LocalPresenceBase */
LocalPresenceBase: {
/**
* Eligible Countries
* @description ISO 3166-1 Alpha-2 country code
*/
eligible_countries?: string[] | null;
/** Exemptions */
exemptions?: components["schemas"]["AttributeCondition"][] | null;
/**
* Required
* @description Whether a local presence is required to register and maintain a domain name
*/
required: boolean;
/**
* Requirement
* @description Type of local presence requirement
*/
requirement?: components["schemas"]["LocalPresenceRequirementType"][] | null;
/**
* Type
* @description Who must meet the requirement
*/
type?: components["schemas"]["DomainContactType"][] | null;
};
/**
* LocalPresenceRequirementType
* @enum {string}
*/
LocalPresenceRequirementType: "physical_address" | "business_entity";
/** Logo */
Logo: {
/** Dark */
dark?: string | null;
/** Favicon */
favicon?: string | null;
/** Icon */
icon?: string | null;
/** Light */
light?: string | null;
};
/**
* MailTemplate
* @description One editable transactional email template in the catalog.
*/
MailTemplate: {
/**
* Blocks
* @description Org-editable content blocks
*/
blocks?: {
[key: string]: components["schemas"]["MailTemplateBlock"];
};
/**
* @description Template category for grouping in the editor
* @default unknown
*/
category: components["schemas"]["MailTemplateCategory"];
/**
* Label
* @description Human-readable template name for display
* @default
*/
label: string;
/**
* Locales
* @description Supported locales, first is the fallback
*/
locales?: string[];
/**
* Subject
* @description Subject line per locale
*/
subject?: {
[key: string]: string;
};
/**
* Variables
* @description Per-send variables
*/
variables?: {
[key: string]: components["schemas"]["MailTemplateVariable"];
};
/**
* Version
* @description Template revision (major.minor)
* @default
*/
version: string;
};
/** MailTemplateBlock */
MailTemplateBlock: {
/**
* Default
* @description Default copy per locale
*/
default?: {
[key: string]: string;
};
/**
* Label
* @description Human-readable field name for the editor
* @default
*/
label: string;
/**
* Max Len
* @description Maximum override text length
* @default 0
*/
max_len: number;
/**
* Multiline
* @description Render the editor field as a textarea
* @default false
*/
multiline: boolean;
};
/**
* MailTemplateCatalogRes
* @description The editable-template catalog keyed by template name.
*/
MailTemplateCatalogRes: {
[key: string]: components["schemas"]["MailTemplate"];
};
/**
* MailTemplateCategory
* @description Category a template is grouped under in the editor. An unrecognised value decodes to `unknown`.
* @enum {string}
*/
MailTemplateCategory: "organization" | "billing" | "user_account" | "icann_policy" | "tld_specific" | "unknown";
/** MailTemplateVariable */
MailTemplateVariable: {
/**
* Required
* @default false
*/
required: boolean;
/**
* Sample
* @description Sample value shown in previews
* @default
*/
sample: string;
/**
* Type
* @description Value type driving render-time escaping (text or url)
* @default text
*/
type: string;
};
/** MemoryFact */
MemoryFact: {
/**
* Created At
* Format: date-time
*/
created_at: Date;
/** Expires At */
expires_at?: Date | null;
/**
* Fact Id
* Format: typeid
* @example fact_01h45ytscbebyvny4gc8cr8ma2
*/
fact_id: TypeId<"fact">;
/** Key */
key: string;
kind: components["schemas"]["MemoryFactKind"];
/**
* Organization Id
* Format: typeid
* @example organization_01h45ytscbebyvny4gc8cr8ma2
*/
organization_id: TypeId<"organization">;
/**
* Updated At
* Format: date-time
*/
updated_at: Date;
/** Value */
value?: {
[key: string]: unknown;
};
};
/** MemoryFactCreateRequest */
MemoryFactCreateRequest: {
/** Key */
key: string;
kind: components["schemas"]["MemoryFactKind"];
/**
* Ttl Seconds
* @description Optional TTL; if set, the fact expires after this many seconds.
*/
ttl_seconds?: number | null;
/** Value */
value?: {
[key: string]: unknown;
};
};
/**
* MemoryFactKind
* @enum {string}
*/
MemoryFactKind: "preference" | "note" | "other";
/** MemoryFactListResponse */
MemoryFactListResponse: {
/** Next Cursor */
next_cursor?: string | null;
/** Results */
results: components["schemas"]["MemoryFact"][];
};
/** MemoryFactPatchRequest */
MemoryFactPatchRequest: {
/** Ttl Seconds */
ttl_seconds?: number | null;
/** Value */
value?: {
[key: string]: unknown;
} | null;
};
/** Message */
Message: {
/** Content */
content: string;
/**
* Conversation Id
* Format: typeid
* @example conv_01h45ytscbebyvny4gc8cr8ma2
*/
conversation_id: TypeId<"conv">;
/**
* Created At
* Format: date-time
*/
created_at: Date;
/**
* Message Id
* Format: typeid
* @example msg_01h45ytscbebyvny4gc8cr8ma2
*/
message_id: TypeId<"msg">;
/** Metadata */
metadata?: {
[key: string]: unknown;
};
role: components["schemas"]["MessageRole"];
};
/** MessageCreateRequest */
MessageCreateRequest: {
/** Content */
content: string;
/** Metadata */
metadata?: {
[key: string]: unknown;
};
/**
* N8N History Id
* @description Optional reference to the originating n8n_chat_histories row.
*/
n8n_history_id?: number | null;
role: components["schemas"]["MessageRole"];
};
/** MessageListResponse */
MessageListResponse: {
/** @description Omitted when the `recent` query parameter is used. */
pagination?: components["schemas"]["PaginationMetadata"] | null;
/** Results */
results: components["schemas"]["Message"][];
};
/**
* MessageRole
* @enum {string}
*/
MessageRole: "user" | "assistant" | "system" | "tool";
/**
* MetricsGrouping
* @enum {string}
*/
MetricsGrouping: "url" | "fqdn" | "domain" | "forward" | "rule";
/** Nameserver */
Nameserver: {
/**
* Hostname
* @description The name server of the domain
* @example ns1.example.com
*/
hostname: string;
/**
* Ip Addresses
* @description The ip addresses of the name server
* @example [
* "0.0.0.0",
* "127.0.0.1"
* ]
* @example [
* "2001:db8::1",
* "2001:db8::2"
* ]
*/
ip_addresses?: string[];
};
/**
* NizzaClaim
* @enum {string}
*/
NizzaClaim: "EMAIL" | "PHONE" | "ADDRESS" | "NAME" | "LEGAL_ENTITY";
/**
* NizzaVerificationProof
* @enum {string}
*/
NizzaVerificationProof: "IDCARD" | "PASSPORT" | "POPULATION_REGISTER" | "RESIDENCE_PERMIT" | "PROOF_OF_ARRIVAL" | "DRIVERS_LICENCE" | "COMPANY_REGISTER" | "COMPANY_STATEMENT" | "BANK_ACCOUNT" | "ONLINE_PAYMENT_ACCOUNT" | "UTILITY_ACCOUNT" | "BANK_STATEMENT" | "TAX_STATEMENT" | "WRITTEN_ATTESTATION" | "DIGITAL_ATTESTATION" | "POSTAL_VER_TRANSACTION_LOG" | "EMAIL_VER_TRANSACTION_LOG" | "PHONE_VER_TRANSACTION_LOG" | "ADDRESS_DATABASE";
/** NorIdDeclarationConfirmRequest */
NorIdDeclarationConfirmRequest: {
/**
* Accept Name
* @description The full name of the person signing the applicant declaration. For private individuals this is the subscriber personally; for organizations it must be an authorized representative.
*/
accept_name: string;
};
/** NorIdDeclarationResponse */
NorIdDeclarationResponse: {
/**
* Declaration Contract Text
* @description The fixed Norwegian declaration contract text
*/
declaration_contract_text: string;
/**
* Declaration Header
* @description The fixed Norwegian declaration header
*/
declaration_header: string;
/**
* Declaration Introduction
* @description The fixed Norwegian declaration introduction
*/
declaration_introduction: string;
/**
* Declaration Version
* @description The applicant declaration text version
*/
declaration_version: string;
/**
* Domain Name
* @description The domain name the declaration applies to
*/
domain_name: string;
/**
* Expires On
* Format: date-time
* @description When the unconfirmed create request expires
*/
expires_on: Date;
/**
* Identity Type
* @description The subscriber identity type
*/
identity_type?: string | null;
/**
* Identity Value
* @description The subscriber identity (organization number or Person-ID)
*/
identity_value?: string | null;
/**
* Organization Id
* Format: typeid
* @description The organization that owns the domain; used to brand the page
* @example organization_01h45ytscbebyvny4gc8cr8ma2
*/
organization_id: TypeId<"organization">;
/** @description The declaration status */
status: components["schemas"]["NorIdDeclarationStatus"];
/**
* Subscriber Name
* @description The domain name subscriber (registrant)
*/
subscriber_name: string;
};
/**
* NorIdDeclarationStatus
* @enum {string}
*/
NorIdDeclarationStatus: "pending" | "confirmed" | "completed" | "expired" | "failed";
/** NorIdResellerDeclarationRequest */
NorIdResellerDeclarationRequest: {
/**
* Accept Date
* @description UTC timestamp of the declaration signature. Only provide it when the declaration was signed out-of-band (e.g. via Norid's own tool); defaults to the submission time.
*/
accept_date?: Date | null;
/**
* Accept Name
* @description The full name of the person signing the applicant declaration. For private individuals this is the subscriber personally; for organizations it must be an authorized representative.
*/
accept_name: string;
};
/**
* ObjectEventType
* @enum {string}
*/
ObjectEventType: "CREATED" | "UPDATED" | "DELETED" | "IMPORTED" | "SYNCED_AFTER_IMPORT" | "TRANSFER_STARTED" | "TRANSFER_COMPLETED" | "TRANSFER_OUT_STARTED" | "TRANSFER_OUT_COMPLETED" | "RENEWED" | "RESTORED" | "BILLING_TRANSACTION_RESERVED" | "BILLING_TRANSACTION_SUCCEEDED" | "BILLING_TRANSACTION_FAILED" | "BILLING_TRANSACTION_CANCELLED";
/** ObjectLog */
ObjectLog: {
/** @description Action performed */
action: components["schemas"]["ObjectEventType"];
/**
* Created On
* Format: date-time
* @description Timestamp when the log was created
*/
created_on: Date;
/**
* Details
* @description Changes made to the object
*/
details?: {
[key: string]: unknown;
} | null;
/**
* Object Id
* @description ID of the object
*/
object_id: string;
/**
* Object Log Id
* @description Unique ID of the log
*/
object_log_id: string;
/**
* Object Type
* @description Type of the object
*/
object_type: string;
/**
* Performed By Id
* @description ID of the actor who performed the action
*/
performed_by_id?: string | null;
/** @description Type of the actor who performed the action */
performed_by_type?: components["schemas"]["ExecutingEntity"] | null;
/**
* Server Request Id
* @description Server request ID
*/
server_request_id?: string | null;
};
/**
* ObjectLogSortField
* @enum {string}
*/
ObjectLogSortField: "object_log_id" | "object_id" | "object_type" | "action" | "created_on" | "server_request_id" | "performed_by_type" | "performed_by_id";
/** ObjectTagChanges */
ObjectTagChanges: {
/**
* Add
* @description Object TypeIDs or resource names to tag. TypeIDs and names may be mixed.
*/
add?: string[];
/**
* Remove
* @description Object TypeIDs or resource names to untag. TypeIDs and names may be mixed.
*/
remove?: string[];
};
/** ObjectTagChangesResponse */
ObjectTagChangesResponse: {
/**
* Added
* @description Number of objects tagged
*/
added: number;
/**
* Removed
* @description Number of objects untagged
*/
removed: number;
/**
* Unresolved
* @description References that could not be resolved
*/
unresolved?: string[];
};
/** Organization */
Organization: {
/**
* Address 1
* @description First line of the organization's address.
*/
address_1?: string | null;
/**
* Address 2
* @description Second line of the organization's address.
*/
address_2?: string | null;
/** Attributes */
attributes?: components["schemas"]["OrganizationAttribute"][];
/**
* @description Whether the organization is billed on its own account (INDEPENDENT) or rolled up to its parent (CONSOLIDATED).
* @default consolidated
*/
billing_mode: components["schemas"]["BillingMode"];
/**
* Business Number
* @description Government issued business identifier for the organization issued.
*/
business_number?: string | null;
/**
* City
* @description City of the organization's address.
*/
city?: string | null;
/**
* Country Code
* @description ISO 3166-1 alpha-2 country code, plus XK (Kosovo).
*/
country_code?: string | null;
/**
* Created On
* Format: date-time
* @description The date/time the entry was created on
*/
created_on?: Date;
/** @description The currency used by the organization. */
currency?: components["schemas"]["Currency"] | null;
/**
* Default Locale
* @description Default locale for the organization.
*/
default_locale?: string | null;
/**
* Deleted On
* @description The date/time the entry was deleted on
*/
deleted_on?: Date | null;
/**
* Keycloak Organization Id
* @description Keycloak organization id
*/
keycloak_organization_id?: string | null;
/**
* Name
* @description Name of the organization.
*/
name: string;
/**
* Organization Id
* Format: typeid
* @description Unique identifier for the organization.
* @example organization_01h45ytscbebyvny4gc8cr8ma2
*/
organization_id?: TypeId<"organization">;
/**
* Parent Organization Id
* @description ID of the parent organization.
*/
parent_organization_id?: TypeId<"organization"> | null;
/**
* Postal Code
* @description Postal code of the organization's address.
*/
postal_code?: string | null;
/**
* State
* @description State or province of the organization's address.
*/
state?: string | null;
/**
* @description Status of the organization.
* @default active
*/
status: components["schemas"]["OrganizationStatus"];
/**
* Tax Id
* @description Tax ID of the organization.
*/
tax_id?: string | null;
/**
* Tax Id Type
* @description Type of tax ID for the organization.
*/
tax_id_type?: string | null;
/**
* Tax Rate
* @description Tax rate for the organization.
*/
tax_rate?: string | null;
/** Users */
users?: components["schemas"]["User"][];
};
/** OrganizationAttribute */
OrganizationAttribute: {
/**
* Created On
* Format: date-time
* @description The date/time the entry was created on
*/
created_on?: Date;
/**
* Key
* @description Key of the attribute.
*/
key: string;
/** Organization Attribute Id */
organization_attribute_id: number;
/**
* Private
* @description When true, the attribute is private and not visible to users.
* @default false
*/
private: boolean;
/**
* Protected
* @description When true, the attribute is protected and cannot be modified by users.
* @default false
*/
protected: boolean;
/**
* Updated On
* Format: date-time
* @description The date/time the entry was last updated on
*/
updated_on?: Date;
/** @description Value of the attribute. */
value?: components["schemas"]["JsonValue"] | null;
};
/** OrganizationAttributeCreate */
OrganizationAttributeCreate: {
/**
* Key
* @description Key of the attribute.
*/
key: string;
/**
* Private
* @description When true, the attribute is private and not visible to users.
* @default false
*/
private: boolean;
/**
* Protected
* @description When true, the attribute is protected and cannot be modified by users.
* @default false
*/
protected: boolean;
/** @description Value of the attribute. */
value?: components["schemas"]["JsonValue"] | null;
};
/** OrganizationAttributeResponse */
OrganizationAttributeResponse: {
/**
* Created On
* Format: date-time
* @description The date/time the entry was created on
*/
created_on?: Date;
/**
* Key
* @description Key of the attribute.
*/
key: string;
/** Organization Attribute Id */
organization_attribute_id: number;
/**
* Protected
* @description When true, the attribute is protected and cannot be modified by users.
* @default false
*/
protected: boolean;
/**
* Updated On
* Format: date-time
* @description The date/time the entry was last updated on
*/
updated_on?: Date;
/** @description Value of the attribute. */
value?: components["schemas"]["JsonValue"] | null;
};
/** OrganizationAttributeUpdate */
OrganizationAttributeUpdate: {
/**
* Key
* @description Key of the attribute.
*/
key: string;
/**
* Private
* @description When true, the attribute is private and not visible to users.
* @default false
*/
private: boolean;
/**
* Protected
* @description When true, the attribute is protected and cannot be modified by users.
* @default false
*/
protected: boolean;
/** @description Value of the attribute. */
value?: components["schemas"]["JsonValue"] | null;
};
/** OrganizationCreate */
OrganizationCreate: {
/**
* Address 1
* @description First line of the organization's address.
*/
address_1?: string | null;
/**
* Address 2
* @description Second line of the organization's address.
*/
address_2?: string | null;
/**
* Attributes
* @description List of attributes for the organization.
*/
attributes?: components["schemas"]["OrganizationAttributeCreate"][];
/**
* @description Whether the organization is billed on its own account (INDEPENDENT) or rolled up to its parent (CONSOLIDATED). INDEPENDENT is only permitted for eligible sub-organizations. Cannot be changed after creation.
* @default consolidated
*/
billing_mode: components["schemas"]["BillingMode"];
/**
* Business Number
* @description Government issued business identifier for the organization issued.
*/
business_number?: string | null;
/**
* City
* @description City of the organization's address.
*/
city?: string | null;
/**
* Country Code
* @description ISO 3166-1 alpha-2 country code, plus XK (Kosovo).
*/
country_code?: string | null;
/** @description The currency used by the organization. */
currency?: components["schemas"]["Currency"] | null;
/**
* Default Locale
* @description Default locale for the organization.
*/
default_locale?: string | null;
/**
* Name
* @description Name of the organization.
*/
name: string;
/**
* Parent Organization Id
* @description ID of the parent organization.
*/
parent_organization_id?: TypeId<"organization"> | null;
/**
* Postal Code
* @description Postal code of the organization's address.
*/
postal_code?: string | null;
/**
* State
* @description State or province of the organization's address.
*/
state?: string | null;
/**
* Tax Id
* @description Tax ID of the organization.
*/
tax_id?: string | null;
/**
* Tax Id Type
* @description Type of tax ID for the organization.
*/
tax_id_type?: string | null;
/**
* Tax Rate
* @description Tax rate for the organization.
*/
tax_rate?: number | string | null;
/**
* Users
* @description List of users that needs to be created with the organization.
*/
users?: components["schemas"]["UserCreate"][];
};
/** OrganizationCredential */
OrganizationCredential: {
/**
* Api Key Description
* @description Description of the organization credential.
*/
api_key_description?: string | null;
/**
* Api Key Id
* Format: typeid
* @description Unique identifier of the organization credential.
* @example api_key_01h45ytscbebyvny4gc8cr8ma2
*/
api_key_id: TypeId<"api_key">;
/**
* Api Key Name
* @description Name of the organization credential. Only a-z, A-Z, 0-9, underscore, and hyphen are allowed.
*/
api_key_name?: string | null;
/**
* Created On
* Format: date-time
* @description The date/time the entry was created on
*/
created_on?: Date;
/**
* Deleted On
* @description The date/time the entry was deleted on
*/
deleted_on?: Date | null;
/**
* Expires At
* @description The date and time the credential expiration.
*/
expires_at?: Date | null;
/**
* Last Used On
* @description The date/time the entry was last used on
*/
last_used_on?: Date | null;
/**
* Organization Id
* Format: typeid
* @default None
* @example organization_01h45ytscbebyvny4gc8cr8ma2
*/
organization_id: TypeId<"organization">;
/** Role */
role?: components["schemas"]["PublicRole"] | components["schemas"]["CustomRoleLabel"] | null;
/** @description The status of the organization credential. */
readonly status: components["schemas"]["OrganizationCredentialStatus"];
};
/**
* OrganizationCredentialStatus
* @enum {string}
*/
OrganizationCredentialStatus: "active" | "expired" | "revoked";
/**
* OrganizationSortField
* @enum {string}
*/
OrganizationSortField: "created_on" | "name" | "country_code";
/**
* OrganizationStatus
* @enum {string}
*/
OrganizationStatus: "active" | "inactive";
/** OrganizationTokenResponse */
OrganizationTokenResponse: {
/**
* Access Token
* @example eyJhbGciOiJSUzI1NiJ9.eyJpc3MiOiJodHRwczovL2FwaS5vcHVzZG5zLmNvbSJ9.signature
*/
access_token: string;
/**
* Expires In
* @example 3600
*/
expires_in: number;
/**
* Token Type
* @default Bearer
* @example Bearer
*/
token_type: string;
};
/** OrganizationUpdate */
OrganizationUpdate: {
/**
* Address 1
* @description First line of the organization's address.
*/
address_1?: string | null;
/**
* Address 2
* @description Second line of the organization's address.
*/
address_2?: string | null;
/**
* Business Number
* @description Government issued business identifier for the organization issued.
*/
business_number?: string | null;
/**
* City
* @description City of the organization's address.
*/
city?: string | null;
/** Country Code */
country_code?: string | null;
/**
* Default Locale
* @description Default locale for the organization.
*/
default_locale?: string | null;
/**
* Name
* @description Name of the organization.
*/
name?: string | null;
/**
* Postal Code
* @description Postal code of the organization's address.
*/
postal_code?: string | null;
/**
* State
* @description State or province of the organization's address.
*/
state?: string | null;
/**
* Tax Id
* @description Tax ID of the organization.
*/
tax_id?: string | null;
/**
* Tax Id Type
* @description Type of tax ID for the organization.
*/
tax_id_type?: string | null;
/**
* Tax Rate
* @description Tax rate for the organization.
*/
tax_rate?: number | string | null;
};
/** OrganizationWithBillingData */
OrganizationWithBillingData: {
/** Account Balance */
account_balance?: string | null;
/**
* Address 1
* @description First line of the organization's address.
*/
address_1?: string | null;
/**
* Address 2
* @description Second line of the organization's address.
*/
address_2?: string | null;
/** Attributes */
attributes?: components["schemas"]["OrganizationAttribute"][];
billing_metadata?: components["schemas"]["BillingMetadata"];
/**
* @description Whether the organization is billed on its own account (INDEPENDENT) or rolled up to its parent (CONSOLIDATED).
* @default consolidated
*/
billing_mode: components["schemas"]["BillingMode"];
/**
* Business Number
* @description Government issued business identifier for the organization issued.
*/
business_number?: string | null;
/**
* City
* @description City of the organization's address.
*/
city?: string | null;
/**
* Country Code
* @description ISO 3166-1 alpha-2 country code, plus XK (Kosovo).
*/
country_code?: string | null;
/**
* Created On
* Format: date-time
* @description The date/time the entry was created on
*/
created_on?: Date;
/** @description The currency used by the organization. */
currency?: components["schemas"]["Currency"] | null;
/**
* Default Locale
* @description Default locale for the organization.
*/
default_locale?: string | null;
/**
* Deleted On
* @description The date/time the entry was deleted on
*/
deleted_on?: Date | null;
/**
* Keycloak Organization Id
* @description Keycloak organization id
*/
keycloak_organization_id?: string | null;
/**
* Name
* @description Name of the organization.
*/
name: string;
/**
* Organization Id
* Format: typeid
* @description Unique identifier for the organization.
* @example organization_01h45ytscbebyvny4gc8cr8ma2
*/
organization_id?: TypeId<"organization">;
/**
* Parent Organization Id
* @description ID of the parent organization.
*/
parent_organization_id?: TypeId<"organization"> | null;
/**
* Postal Code
* @description Postal code of the organization's address.
*/
postal_code?: string | null;
/**
* State
* @description State or province of the organization's address.
*/
state?: string | null;
/**
* @description Status of the organization.
* @default active
*/
status: components["schemas"]["OrganizationStatus"];
/**
* Tax Id
* @description Tax ID of the organization.
*/
tax_id?: string | null;
/**
* Tax Id Type
* @description Type of tax ID for the organization.
*/
tax_id_type?: string | null;
/**
* Tax Rate
* @description Tax rate for the organization.
*/
tax_rate?: string | null;
/** Users */
users?: components["schemas"]["User"][];
};
/**
* OutboundTransferAction
* @enum {string}
*/
OutboundTransferAction: "approve" | "reject";
/** OutboundTransferRequest */
OutboundTransferRequest: {
/** @description Whether to approve or reject the pending outbound transfer */
action: components["schemas"]["OutboundTransferAction"];
};
/** OutboundTransferResponse */
OutboundTransferResponse: {
/** @description The action that was applied to the outbound transfer */
action: components["schemas"]["OutboundTransferAction"];
/**
* Domain Id
* Format: typeid
* @description The ID of the domain whose outbound transfer was resolved
* @example domain_01h45ytscbebyvny4gc8cr8ma2
*/
domain_id: TypeId<"domain">;
/**
* Domain Name
* @description The name of the domain whose outbound transfer was resolved
*/
domain_name: string;
};
/** PageResponse[EmailForwardLog] */
PageResponse_EmailForwardLog_: {
pagination: components["schemas"]["PaginationMetadata"];
/** Results */
results: components["schemas"]["EmailForwardLog"][];
};
/** PageResponse[JobBatchMetadataResponse] */
PageResponse_JobBatchMetadataResponse_: {
pagination: components["schemas"]["PaginationMetadata"];
/** Results */
results: components["schemas"]["JobBatchMetadataResponse"][];
};
/** PageResponse[JobResponse] */
PageResponse_JobResponse_: {
pagination: components["schemas"]["PaginationMetadata"];
/** Results */
results: components["schemas"]["JobResponse"][];
};
/** PageResponse[ObjectLog] */
PageResponse_ObjectLog_: {
pagination: components["schemas"]["PaginationMetadata"];
/** Results */
results: components["schemas"]["ObjectLog"][];
};
/** PageResponse[ParkingResponse] */
PageResponse_ParkingResponse_: {
pagination: components["schemas"]["PaginationMetadata"];
/** Results */
results: components["schemas"]["ParkingResponse"][];
};
/** PageResponse[RequestHistory] */
PageResponse_RequestHistory_: {
pagination: components["schemas"]["PaginationMetadata"];
/** Results */
results: components["schemas"]["RequestHistory"][];
};
/** PaginationMetadata */
PaginationMetadata: {
/** Current Page */
current_page: number;
/** Has Next Page */
has_next_page: boolean;
/** Has Previous Page */
has_previous_page: boolean;
/** Page Size */
page_size: number;
/** Total Items */
total_items: number;
/** Total Pages */
total_pages: number;
};
/** PaginationMetadataDTO */
PaginationMetadataDTO: {
/**
* Current Page
* @description Current page number
*/
current_page: number;
/**
* Has Next Page
* @description Whether there is a next page
*/
has_next_page: boolean;
/**
* Has Previous Page
* @description Whether there is a previous page
*/
has_previous_page: boolean;
/**
* Page Size
* @description Items per page
*/
page_size: number;
/**
* Total Items
* @description Total number of items
*/
total_items: number;
/**
* Total Pages
* @description Total number of pages
*/
total_pages: number;
};
/** Pagination[BillingTransactionResponse] */
Pagination_BillingTransactionResponse_: {
pagination: components["schemas"]["PaginationMetadata"];
/** Results */
results: components["schemas"]["BillingTransactionResponse"][];
};
/** Pagination[ContactAttributeSetResponse] */
Pagination_ContactAttributeSetResponse_: {
pagination: components["schemas"]["PaginationMetadata"];
/** Results */
results: components["schemas"]["ContactAttributeSetResponse"][];
};
/** Pagination[ContactResponse] */
Pagination_ContactResponse_: {
pagination: components["schemas"]["PaginationMetadata"];
/** Results */
results: components["schemas"]["ContactResponse"][];
};
/** Pagination[DnsZoneResponse] */
Pagination_DnsZoneResponse_: {
pagination: components["schemas"]["PaginationMetadata"];
/** Results */
results: components["schemas"]["DnsZoneResponse"][];
};
/** Pagination[DomainForwardZone] */
Pagination_DomainForwardZone_: {
pagination: components["schemas"]["PaginationMetadata"];
/** Results */
results: components["schemas"]["DomainForwardZone"][];
};
/** Pagination[DomainForward] */
Pagination_DomainForward_: {
pagination: components["schemas"]["PaginationMetadata"];
/** Results */
results: components["schemas"]["DomainForward"][];
};
/** Pagination[DomainResponse] */
Pagination_DomainResponse_: {
pagination: components["schemas"]["PaginationMetadata"];
/** Results */
results: components["schemas"]["DomainResponse"][];
};
/** Pagination[EmailForwardResponse] */
Pagination_EmailForwardResponse_: {
pagination: components["schemas"]["PaginationMetadata"];
/** Results */
results: components["schemas"]["EmailForwardResponse"][];
};
/** Pagination[EmailForwardZone] */
Pagination_EmailForwardZone_: {
pagination: components["schemas"]["PaginationMetadata"];
/** Results */
results: components["schemas"]["EmailForwardZone"][];
};
/** Pagination[EventResponse] */
Pagination_EventResponse_: {
pagination: components["schemas"]["PaginationMetadata"];
/** Results */
results: components["schemas"]["EventResponse"][];
};
/** Pagination[InvoiceResponse] */
Pagination_InvoiceResponse_: {
pagination: components["schemas"]["PaginationMetadata"];
/** Results */
results: components["schemas"]["InvoiceResponse"][];
};
/** Pagination[Organization] */
Pagination_Organization_: {
pagination: components["schemas"]["PaginationMetadata"];
/** Results */
results: components["schemas"]["Organization"][];
};
/** Pagination[TagResponse] */
Pagination_TagResponse_: {
pagination: components["schemas"]["PaginationMetadata"];
/** Results */
results: components["schemas"]["TagResponse"][];
};
/** Pagination[UserPublicWithRole] */
Pagination_UserPublicWithRole_: {
pagination: components["schemas"]["PaginationMetadata"];
/** Results */
results: components["schemas"]["UserPublicWithRole"][];
};
/** Palette */
Palette: {
/** Accent */
accent?: string | null;
/** Accent Foreground */
accent_foreground?: string | null;
/** Background */
background?: string | null;
/** Body */
body?: string | null;
/** Body Foreground */
body_foreground?: string | null;
/** Border */
border?: string | null;
/** Card */
card?: string | null;
/** Card Foreground */
card_foreground?: string | null;
/** Chart Colors */
chart_colors?: string[] | null;
/** Danger */
danger?: string | null;
/** Foreground */
foreground?: string | null;
/** Info */
info?: string | null;
/** Input */
input?: string | null;
/** Link */
link?: string | null;
/** Muted */
muted?: string | null;
/** Muted Foreground */
muted_foreground?: string | null;
/** Primary */
primary?: string | null;
/** Primary Foreground */
primary_foreground?: string | null;
/** Secondary */
secondary?: string | null;
/** Secondary Foreground */
secondary_foreground?: string | null;
/** Sidebar */
sidebar?: string | null;
/** Sidebar Accent */
sidebar_accent?: string | null;
/** Sidebar Accent Foreground */
sidebar_accent_foreground?: string | null;
/** Sidebar Border */
sidebar_border?: string | null;
/** Sidebar Foreground */
sidebar_foreground?: string | null;
/** Success */
success?: string | null;
/** Table */
table?: string | null;
/** Table Header */
table_header?: string | null;
/** Table Row */
table_row?: string | null;
/** Table Row Interactive */
table_row_interactive?: string | null;
/** Tag Colors */
tag_colors?: string[] | null;
/** Warning */
warning?: string | null;
};
/** ParkingActionPayloadData */
ParkingActionPayloadData: {
/** Parking Reference */
parking_reference: string;
};
/**
* ParkingAgreementAcceptance
* @description Parking agreement acceptance details.
*/
ParkingAgreementAcceptance: {
/**
* Accepted
* @description Whether the agreement has been accepted
*/
accepted: boolean;
/**
* Url
* Format: uri
* @description URL where the parking agreement can be found
*/
url: string;
/**
* Version
* @description Version of the parking agreement being accepted
*/
version: string;
};
/** ParkingCreateBulkCommand */
ParkingCreateBulkCommand: {
/**
* @description discriminator enum property added by openapi-typescript
* @enum {string}
*/
command: "parking_create_bulk";
/**
* Idempotency Key
* @description Idempotency key for this bulk command
*/
idempotency_key?: string | null;
/** @description Bulk parking creation payload */
payload: components["schemas"]["ParkingCreateBulkPayload"];
/**
* Version
* @description Command version
* @default v1
*/
version: string;
};
/** ParkingCreateBulkInstance */
ParkingCreateBulkInstance: {
/**
* Domain
* @description The domain name for the parking ad
*/
domain: string;
/**
* Enabled
* @description Override enabled setting for this domain
*/
enabled?: boolean | null;
};
/** ParkingCreateBulkPayload */
ParkingCreateBulkPayload: {
/**
* Instances
* @description List of parking entries to create (1-1000)
*/
instances: components["schemas"]["ParkingCreateBulkInstance"][];
/** @description Shared settings for all parking entries */
template: components["schemas"]["ParkingCreateBulkTemplate"];
};
/** ParkingCreateBulkTemplate */
ParkingCreateBulkTemplate: {
/**
* Enabled
* @description Whether to enable parking immediately after creation
* @default false
*/
enabled: boolean;
};
/** ParkingCreatePayloadData */
ParkingCreatePayloadData: {
/** Domain */
domain: string;
/**
* Enabled
* @default false
*/
enabled: boolean;
};
/** ParkingCreateWorkerPayload */
ParkingCreateWorkerPayload: {
/** Operation */
operation: string;
parking: components["schemas"]["ParkingCreatePayloadData"];
/**
* @description discriminator enum property added by openapi-typescript
* @enum {string}
*/
type: "parking_create_bulk";
};
/** ParkingDeleteBulkCommand */
ParkingDeleteBulkCommand: {
/**
* @description discriminator enum property added by openapi-typescript
* @enum {string}
*/
command: "parking_delete_bulk";
/**
* Idempotency Key
* @description Idempotency key for this bulk command
*/
idempotency_key?: string | null;
/** @description Bulk parking delete payload */
payload: components["schemas"]["ParkingDeleteBulkPayload"];
/**
* Version
* @description Command version
* @default v1
*/
version: string;
};
/** ParkingDeleteBulkInstance */
ParkingDeleteBulkInstance: {
/**
* Parking Reference
* @description The parking ID or domain name of the entry to delete
*/
parking_reference: TypeId<"parking"> | string;
};
/** ParkingDeleteBulkPayload */
ParkingDeleteBulkPayload: {
/**
* Instances
* @description List of parking entries to delete (1-1000)
*/
instances: components["schemas"]["ParkingDeleteBulkInstance"][];
};
/** ParkingDeleteWorkerPayload */
ParkingDeleteWorkerPayload: {
/** Operation */
operation: string;
parking: components["schemas"]["ParkingActionPayloadData"];
/**
* @description discriminator enum property added by openapi-typescript
* @enum {string}
*/
type: "parking_delete_bulk";
};
/** ParkingDisableBulkCommand */
ParkingDisableBulkCommand: {
/**
* @description discriminator enum property added by openapi-typescript
* @enum {string}
*/
command: "parking_disable_bulk";
/**
* Idempotency Key
* @description Idempotency key for this bulk command
*/
idempotency_key?: string | null;
/** @description Bulk parking disable payload */
payload: components["schemas"]["ParkingDisableBulkPayload"];
/**
* Version
* @description Command version
* @default v1
*/
version: string;
};
/** ParkingDisableBulkInstance */
ParkingDisableBulkInstance: {
/**
* Parking Reference
* @description The parking ID or domain name of the entry to disable
*/
parking_reference: TypeId<"parking"> | string;
};
/** ParkingDisableBulkPayload */
ParkingDisableBulkPayload: {
/**
* Instances
* @description List of parking entries to disable (1-1000)
*/
instances: components["schemas"]["ParkingDisableBulkInstance"][];
};
/** ParkingDisableWorkerPayload */
ParkingDisableWorkerPayload: {
/** Operation */
operation: string;
parking: components["schemas"]["ParkingActionPayloadData"];
/**
* @description discriminator enum property added by openapi-typescript
* @enum {string}
*/
type: "parking_disable_bulk";
};
/** ParkingEnableBulkCommand */
ParkingEnableBulkCommand: {
/**
* @description discriminator enum property added by openapi-typescript
* @enum {string}
*/
command: "parking_enable_bulk";
/**
* Idempotency Key
* @description Idempotency key for this bulk command
*/
idempotency_key?: string | null;
/** @description Bulk parking enable payload */
payload: components["schemas"]["ParkingEnableBulkPayload"];
/**
* Version
* @description Command version
* @default v1
*/
version: string;
};
/** ParkingEnableBulkInstance */
ParkingEnableBulkInstance: {
/**
* Parking Reference
* @description The parking ID or domain name of the entry to enable
*/
parking_reference: TypeId<"parking"> | string;
};
/** ParkingEnableBulkPayload */
ParkingEnableBulkPayload: {
/**
* Instances
* @description List of parking entries to enable (1-1000)
*/
instances: components["schemas"]["ParkingEnableBulkInstance"][];
};
/** ParkingEnableWorkerPayload */
ParkingEnableWorkerPayload: {
/** Operation */
operation: string;
parking: components["schemas"]["ParkingActionPayloadData"];
/**
* @description discriminator enum property added by openapi-typescript
* @enum {string}
*/
type: "parking_enable_bulk";
};
/** ParkingMetricsResponse */
ParkingMetricsResponse: {
/** @description Metrics for the parking entry */
metrics: components["schemas"]["ParkingStatistics"];
/**
* Renewal Cost
* @description Yearly renewal cost for the parked domain
*/
renewal_cost: string;
/** @description Currency code for renewal cost (e.g., USD, EUR) */
renewal_cost_currency: components["schemas"]["Currency"];
/**
* Revenue Progress
* @description Revenue progress percentage towards covering renewal cost
*/
revenue_progress: string;
};
/** ParkingResponse */
ParkingResponse: {
/** @description The compliance status of the parking ad */
compliance_status?: components["schemas"]["ComplianceStatus"] | null;
/**
* Content Language
* @description The primary language code for the ad content
*/
content_language?: string | null;
/**
* Content Url
* @description The content URL for approved parking ads
*/
content_url?: string | null;
/**
* Created On
* Format: date-time
* @description When the parking entry was created
*/
created_on: Date;
/**
* Domain
* @description The domain name for the parking ad
*/
domain: string;
/**
* Enabled
* @description Whether parking is enabled
*/
enabled: boolean;
/**
* Note
* @description Additional notes about the parking ad
*/
note?: string | null;
/**
* Parking Id
* Format: typeid
* @description Unique identifier for the parking entry
* @example parking_01h45ytscbebyvny4gc8cr8ma2
*/
parking_id: TypeId<"parking">;
/**
* Updated On
* Format: date-time
* @description When the parking entry was last updated
*/
updated_on: Date;
};
/**
* ParkingSignupRequest
* @description Request to sign up for parking (accept parking agreement).
*/
ParkingSignupRequest: {
/** @description Parking agreement acceptance */
agreement: components["schemas"]["ParkingAgreementAcceptance"];
};
/**
* ParkingSignupResponse
* @description Response after parking signup.
*/
ParkingSignupResponse: {
/**
* Agreement Stored
* @description Whether the agreement acceptance was stored
*/
agreement_stored: boolean;
/**
* Success
* @description Whether the signup was successful
*/
success: boolean;
};
/**
* ParkingSignupStatusResponse
* @description Response for checking parking signup status.
*/
ParkingSignupStatusResponse: {
/**
* Accepted At
* @description When the agreement was accepted
*/
accepted_at?: Date | null;
/**
* Agreement Version
* @description Version of the accepted agreement
*/
agreement_version?: string | null;
/**
* Has Accepted Agreement
* @description Whether the organization has accepted the parking agreement
*/
has_accepted_agreement: boolean;
};
/**
* ParkingSortField
* @enum {string}
*/
ParkingSortField: "domain" | "created_on" | "updated_on";
/** ParkingStatistics */
ParkingStatistics: {
/**
* Conversions
* @description Number of conversions
*/
conversions: number;
/**
* Revenue
* @description Total revenue
*/
revenue: string;
/** @description Currency code for revenue (e.g., USD, EUR) */
revenue_currency: components["schemas"]["Currency"];
/**
* Rpc
* @description Revenue per click
*/
rpc: string;
/**
* Rpm
* @description Revenue per mille (thousand views)
*/
rpm: string;
/**
* Views
* @description Number of views
*/
views: number;
};
/** ParkingTotalMetricsResponse */
ParkingTotalMetricsResponse: {
/**
* Total Count
* @description Total number of parking entries
*/
total_count: number;
/** @description Aggregated metrics for all parking entries */
total_metrics: components["schemas"]["ParkingStatistics"];
};
/**
* PatchOp
* @enum {string}
*/
PatchOp: "upsert" | "remove";
/** Period */
Period: {
/** @description The unit of the period */
unit: components["schemas"]["PeriodUnit"];
/**
* Value
* @description Amount of time in the unit
*/
value: number;
};
PeriodList: components["schemas"]["Period"][] | null;
PeriodStr: components["schemas"]["Period"] | null;
/**
* PeriodUnit
* @enum {string}
*/
PeriodUnit: "y" | "m" | "d";
/** PlatformStatsBucket */
PlatformStatsBucket: {
/** Key */
key: string;
/** Total */
total: number;
/** Unique */
unique: number;
};
/**
* PostTransferRequirements
* @enum {string}
*/
PostTransferRequirements: "update_contacts" | "tld_specific";
/**
* PostalAddressType
* @enum {string}
*/
PostalAddressType: "loc" | "int";
/**
* PremiumAffectsType
* @enum {string}
*/
PremiumAffectsType: "registration" | "delete" | "renewal" | "update" | "transfer" | "restore" | "custom";
/** PremiumDomainsBase */
PremiumDomainsBase: {
/**
* Affects
* @description What operations are affected by premium status
*/
affects?: components["schemas"]["PremiumAffectsType"][] | null;
/** @description Source of premium domain information */
source?: components["schemas"]["PremiumSourceType"] | null;
/**
* Supported
* @description Whether the registry has premium domains
*/
supported: boolean;
};
/**
* PremiumPriceEntryRes
* @description A single premium price entry for a specific action
*/
PremiumPriceEntryRes: {
/**
* Action
* @description The action (e.g., create, renew, transfer)
*/
action: string;
/**
* Currency
* @description Currency of the price
*/
currency: string;
/**
* Price
* @description Customer-facing price after markup
*/
price: string;
};
/** PremiumPricingAction */
PremiumPricingAction: {
/**
* Action
* @description The action this price applies to (e.g., create, renew, transfer)
* @example create
*/
action: string;
/**
* Currency
* @description ISO 4217 currency code
* @example EUR
*/
currency: string;
/**
* Price
* @description Price for the action
* @example 625.00
*/
price: string;
};
/**
* PremiumPricingRes
* @description Premium pricing details for a domain
*/
PremiumPricingRes: {
/**
* Prices
* @description Premium prices per action
*/
prices: components["schemas"]["PremiumPriceEntryRes"][];
};
/** PremiumPricingResponse */
PremiumPricingResponse: {
/**
* Prices
* @description Premium prices per action
*/
prices: components["schemas"]["PremiumPricingAction"][];
};
/**
* PremiumSourceType
* @enum {string}
*/
PremiumSourceType: "EPP" | "API" | "CSV" | "manual";
/** PreviewMailReq */
PreviewMailReq: {
/** @description Draft branding document to render the preview with; omit to preview with the default OpusDNS branding. Only the fields the template uses are applied, the rest are ignored. */
branding_document?: components["schemas"]["BrandingDocument"] | null;
/**
* Language Code
* @description Locale to render in (e.g. en); falls back to the template's default
*/
language_code: string;
/**
* Template Name
* @description Template to render, as listed by the template catalog
*/
template_name: string;
};
/** PreviewMailRes */
PreviewMailRes: {
/** Html */
html: string;
/** Subject */
subject: string;
/** Text */
text: string;
};
/** PriceInfo */
PriceInfo: {
/** Currency */
currency: string;
/** @description Pricing period (e.g., 1 year, 2 months) */
period?: components["schemas"]["PricingPeriod"] | null;
/** Price */
price: string;
/** Product Action */
product_action?: string | null;
/** Product Class */
product_class?: string | null;
/** Product Type */
product_type: string;
};
/** PricingPeriod */
PricingPeriod: {
/** @description The unit of the period */
unit: components["schemas"]["PeriodUnit"];
/**
* Value
* @description Amount of time in the unit
*/
value: number;
};
/** Problem */
Problem: {
/** Problem detail */
detail?: string | null;
/** Status code */
status: number;
/** Problem title */
title: string;
/** Problem type */
type: string;
};
/** ProductCreateRes */
ProductCreateRes: {
/**
* Product Name
* @description The product name
*/
product_name: string;
/**
* Subscribable Id
* @description The created resource ID
*/
subscribable_id: string;
/**
* Subscription Id
* Format: typeid
* @description The created subscription ID
* @example subscription_01h45ytscbebyvny4gc8cr8ma2
*/
subscription_id: TypeId<"subscription">;
};
/**
* Protocol
* @enum {string}
*/
Protocol: "http" | "https";
/** PublicAuthRequestForm */
PublicAuthRequestForm: {
/**
* Client Id
* Format: typeid
* @description The organization ID associated with the credentials.
* @example organization_01h45ytscbebyvny4gc8cr8ma2
*/
client_id: TypeId<"organization">;
/**
* Client Secret
* @description Your client secret.
* @example TLKI8chiHU1s123VUgEAMLZDvX6cVW
*/
client_secret: string;
/**
* Grant Type
* @description The grant type for the authentication request (should always be 'client_credentials').
* @example client_credentials
*/
grant_type: string;
};
/**
* @example domains:read
* @example domains:manage
* @example domains:delete
*/
PublicPermission: string;
/** PublicPermissionSet */
PublicPermissionSet: {
/** Permissions */
permissions?: components["schemas"]["PublicPermission"][];
};
/** PublicReportListRes */
PublicReportListRes: {
pagination: components["schemas"]["PaginationMetadata"];
/** Results */
results: components["schemas"]["PublicReportRes"][];
};
/** PublicReportRes */
PublicReportRes: {
/**
* Created On
* Format: date-time
*/
created_on: Date;
/** File Size Bytes */
file_size_bytes?: number | null;
/** Generated On */
generated_on?: Date | null;
/**
* Organization Id
* Format: typeid
* @example organization_01h45ytscbebyvny4gc8cr8ma2
*/
organization_id: TypeId<"organization">;
/** Record Count */
record_count?: number | null;
/**
* Report Id
* Format: typeid
* @example report_01h45ytscbebyvny4gc8cr8ma2
*/
report_id: TypeId<"report">;
report_type: components["schemas"]["ReportType"];
status: components["schemas"]["ReportStatus"];
trigger_type: components["schemas"]["ReportTriggerType"];
/**
* Updated On
* Format: date-time
*/
updated_on: Date;
};
/**
* PublicResource
* @enum {string}
*/
PublicResource: "organization" | "domains" | "domain_auth_codes" | "contacts" | "dns" | "hosts" | "email_forwards" | "domain_forwards" | "parking" | "events" | "jobs" | "billing" | "users" | "api_keys" | "registrar_credentials" | "tags" | "audit_logs" | "vanity_ns" | "whitelabel_branding" | "ai_concierge" | "ai_concierge_waitlist";
/**
* PublicRole
* @enum {string}
*/
PublicRole: "owner" | "admin" | "viewer" | "domain_manager" | "dns_manager" | "billing_manager";
/** PublicRoleAssignment */
PublicRoleAssignment: {
/** Role */
role?: components["schemas"]["PublicRole"] | components["schemas"]["CustomRoleLabel"] | null;
};
/** PublicRoleAssignmentRequest */
PublicRoleAssignmentRequest: {
/** Role */
role?: components["schemas"]["AssignablePublicRole"] | components["schemas"]["CustomRoleLabel"] | null;
};
/**
* PublicRoleDefinition
* @description A role as listed/read through the public API — built-in or custom.
*/
PublicRoleDefinition: {
/**
* Built In
* @description Built-in roles are immutable; custom roles are organization-owned.
*/
built_in: boolean;
/**
* Created On
* @description Creation time (custom roles only).
*/
created_on?: Date | null;
/**
* Description
* @description Description of the role.
*/
description?: string | null;
/** @description Per-organization unique identifier (snake_case, e.g. 'support_staff'). Used as the URL path parameter. */
label: components["schemas"]["CustomRoleLabel"];
/**
* Name
* @description Display name of the role (e.g. 'Support Staff').
*/
name: string;
/**
* Permissions
* @description Permissions the role grants, as `resource:scope` strings.
*/
permissions: components["schemas"]["PublicPermission"][];
/**
* Updated On
* @description Last update time (custom roles only).
*/
updated_on?: Date | null;
};
/**
* PublicScope
* @enum {string}
*/
PublicScope: "read" | "manage" | "delete";
/** RdapBase */
RdapBase: {
/**
* Rdap Server
* @description RDAP server URL
*/
rdap_server?: string | null;
};
/**
* RedirectCode
* @enum {integer}
*/
RedirectCode: 301 | 302 | 307 | 308;
/** ReferrerStatsBucket */
ReferrerStatsBucket: {
/** Key */
key: string;
/** Total */
total: number;
/** Unique */
unique: number;
};
/**
* RegistrantChangeType
* @enum {string}
*/
RegistrantChangeType: "update" | "trade";
/**
* Registrar
* @enum {string}
*/
Registrar: "INTERNETX" | "MONIKER" | "DOMAIN_BESTELLSYSTEM" | "CENTRALNIC" | "NICMANAGER" | "OPUSDNS" | "ENOM" | "OPENSRS" | "NIC_DIRECT";
/** RegistrarContact */
RegistrarContact: {
/** City */
city?: string | null;
/** Country */
country?: string | null;
/** Email */
email?: string | null;
/** Fax */
fax?: string | null;
/** First Name */
first_name?: string | null;
/**
* Id
* @description Contact ID (required for OpusDNS-native contacts, may be null for registrar-sourced)
*/
id?: string | null;
/** Last Name */
last_name?: string | null;
/** Org */
org?: string | null;
/** Phone */
phone?: string | null;
/** Postal Code */
postal_code?: string | null;
/** State */
state?: string | null;
/** Street */
street?: string | null;
/** Title */
title?: string | null;
};
/** RegistrarDomain */
RegistrarDomain: {
/**
* Contacts
* @default {}
*/
contacts: {
[key: string]: components["schemas"]["RegistrarContact"];
};
/**
* Contacts Dedup
* @default []
*/
contacts_dedup: components["schemas"]["RegistrarContact"][];
/** Expiry Date */
expiry_date?: string | null;
/** Name */
name: string;
/**
* Nameservers
* @default []
*/
nameservers: components["schemas"]["RegistrarNameserver"][];
/** Registrar */
registrar?: string | null;
/** Statuses */
statuses?: string[];
zone?: components["schemas"]["RegistrarZone"] | null;
};
/** RegistrarNameserver */
RegistrarNameserver: {
/**
* Hostname
* @default
*/
hostname: string;
/**
* Ip Addresses
* @default []
*/
ip_addresses: string[];
};
/** RegistrarRRSet */
RegistrarRRSet: {
/** Name */
name: string;
/** Priority */
priority?: number | null;
/**
* Record
* @default []
*/
record: components["schemas"]["RegistrarRecord"][];
/** Ttl */
ttl: number;
/** Type */
type: string;
};
/** RegistrarRecord */
RegistrarRecord: {
/** Rdata */
rdata: string;
};
/** RegistrarZone */
RegistrarZone: {
/** Name */
name: string;
/**
* Rrsets
* @default []
*/
rrsets: components["schemas"]["RegistrarRRSet"][];
};
/**
* RegistryHandleAttributeType
* @description Registry handle attribute types for type-safe attribute key access.
* @enum {string}
*/
RegistryHandleAttributeType: "at-ext-contact:type" | "DE_CONTACT_TYPE" | "DE_GENERAL_REQUEST_URI_TEMPLATE" | "DE_ABUSE_URI_TEMPLATE" | "dnsbe:type" | "eurid:type" | "AFNIC_CONTACT_TYPE" | "AFNIC_PP_FIRST_NAME" | "AFNIC_PM_LEGAL_STATUS" | "AFNIC_PM_SIREN" | "AFNIC_PM_VAT" | "AFNIC_PM_TRADEMARK" | "AFNIC_PM_ASSOC_WALDEC" | "AFNIC_PM_ASSOC_PUBL_DATE" | "AFNIC_PM_ASSOC_PUBL_ANNOUNCE" | "AFNIC_PM_ASSOC_PUBL_PAGE" | "AFNIC_PM_ASSOC_DECL" | "AFNIC_PM_DUNS" | "AFNIC_PM_LOCAL" | "AFNIC_ID_STATUS" | "AFNIC_REACHABLE_MEDIA" | "AFNIC_REACHABLE_STATUS" | "AFNIC_RESTRICTED_PUBLICATION" | "ROTLD_CONTACT_TYPE" | "ROTLD_CNP_FISCAL_CODE" | "ROTLD_ID_NUMBER" | "ROTLD_REGISTRATION_NUMBER" | "ROTLD_DOMAIN_NAME" | "NOMINET_CONTACT_TYPE" | "NOMINET_CO_NO" | "NOMINET_TRAD_NAME" | "CIRA_CPR" | "SIDN_LEGAL_FORM" | "SIDN_LEGAL_REG_NO" | "SIDN_REGISTRANT_TYPE" | "SIDN_REGISTRATION_NUMBER" | "US_NEXUS_CATEGORY" | "US_NEXUS_COUNTRY_CODE" | "US_APP_PURPOSE" | "NIC_IT_ENTITY_TYPE" | "NIC_IT_REG_CODE" | "CZ_NIC_IDENT_TYPE" | "CZ_NIC_IDENT_VALUE" | "CZ_NIC_VAT" | "CZ_NIC_NOTIFY_EMAIL" | "DNS_LU_CONTACT_ROLE" | "SK_NIC_LEGAL_FORM" | "SK_NIC_IDENT_VALUE" | "NIC_LV_REG_NR" | "NIC_LV_VAT_NR" | "DOMREG_LT_CONTACT_ROLE" | "DOMREG_LT_ORG_CODE" | "NOR_ID_CONTACT_TYPE" | "NOR_ID_IDENTITY_TYPE" | "NOR_ID_IDENTITY_VALUE" | "REGISTRY_SE_ORG_NO" | "REGISTRY_SE_VAT_NO" | "DNS_PT_VAT" | "DNS_PT_MOBILE" | "DNS_PT_NIS2_VALIDATED_ON" | "PUNKTUM_DK_USER_TYPE" | "PUNKTUM_DK_CVR" | "PUNKTUM_DK_PNUMBER" | "PUNKTUM_DK_EAN" | "PUNKTUM_DK_SECONDARY_EMAIL" | "PUNKTUM_DK_MOBILEPHONE" | "PUNKTUM_DK_SOLE_PROPRIETORSHIP" | "PUNKTUM_DK_CONTACT_VERIFIED" | "INTERNET_EE_IDENT_TYPE" | "INTERNET_EE_IDENT_CC" | "INTERNET_EE_IDENT_VALUE";
/** RegistryLockBase */
RegistryLockBase: {
/**
* Prevents
* @description What operations are prevented by registry lock
*/
prevents?: string[] | null;
/**
* Removal Process
* @description Process for unlocking the domain
*/
removal_process?: string | null;
/**
* Requires Manual Request
* @description Whether a manual request is required
*/
requires_manual_request?: boolean | null;
/**
* Supported
* @description Whether the registry provides a Registry Lock feature
*/
supported: boolean;
};
/**
* RegistryServiceBackend
* @enum {string}
*/
RegistryServiceBackend: "afnic" | "centralnic" | "cira" | "switch" | "nicat" | "verisign" | "pir" | "gmo" | "google" | "denic" | "identity_digital" | "godaddy" | "dns_belgium" | "eurid" | "rotld" | "nominet_uk" | "radix" | "sidn" | "sidn_hello" | "tucows" | "dot_ua" | "nic_it" | "dns_lu" | "restena_lu" | "cz_nic" | "ras_manual" | "ras_external" | "register_si" | "sk_nic" | "dot_blog" | "nic_lv" | "domreg_lt" | "nor_id" | "website_ws" | "dns_pt" | "punktum_dk" | "nic_mexico" | "internet_ee" | "channel_isles" | "registry_se" | "nask" | "dns_belgium_gtld" | "nominet_dragon" | "red_es" | "internet_nz" | "zacr" | "traficom" | "ie_registry" | "nic_im" | "cn_nic" | "forth" | "dns_hr" | "nixi" | "is_nic" | "sg_nic" | "ke_nic" | "tld_box" | "ryce" | "cocca" | "amazon" | "tango";
/**
* RenewalMode
* @enum {string}
*/
RenewalMode: "renew" | "expire";
/**
* RenewalModeDTO
* @description Wire mirror of the domain `RenewalMode` vocabulary — local so dns_client doesn't
* pull schema imports. The subscription itself has no renewal_mode column; api-nameserver
* derives this from whether a renewal is scheduled.
* @enum {string}
*/
RenewalModeDTO: "renew" | "expire";
/**
* ReportStatus
* @enum {string}
*/
ReportStatus: "pending" | "generating" | "completed" | "failed" | "empty";
/**
* ReportTriggerType
* @enum {string}
*/
ReportTriggerType: "on_demand" | "scheduled";
/**
* ReportType
* @enum {string}
*/
ReportType: "domain_inventory" | "dns_zone_summary" | "dns_zone_records" | "domain_forwards" | "expiring_domains" | "email_forwards" | "registrar_portfolio_pdf" | "billing_transactions" | "billing_transactions_monthly" | "suborg_billing_transactions_monthly" | "agp_deletions";
/** RequestHistory */
RequestHistory: {
/**
* Client Ip
* Format: ipvanyaddress
* @description Client IP address
*/
client_ip: string;
/**
* Duration
* @description Request duration in milliseconds
*/
duration: number;
/** @description HTTP method */
method: components["schemas"]["HTTPMethod"];
/**
* Path
* @description Request path
*/
path: string;
/**
* Performed By Id
* @description ID of the actor who performed the request
*/
performed_by_id?: string | null;
/** @description Type of the actor who performed the request */
performed_by_type?: components["schemas"]["ExecutingEntity"] | null;
/**
* Request Body
* @description Request body
*/
request_body?: {
[key: string]: unknown;
} | unknown[] | null;
/**
* Request Completed At
* Format: date-time
* @description Timestamp when the request completed
*/
request_completed_at: Date;
/**
* Request Started At
* Format: date-time
* @description Timestamp when the request started
*/
request_started_at: Date;
/**
* Response Body
* @description Response body
*/
response_body?: {
[key: string]: unknown;
} | unknown[] | null;
/**
* Server Request Id
* @description Unique ID of the request
*/
server_request_id: string;
/**
* Status Code
* @description HTTP status code
*/
status_code: number;
};
/**
* RequestHistorySortField
* @enum {string}
*/
RequestHistorySortField: "method" | "path" | "status_code" | "duration" | "server_request_id" | "performed_by_type" | "performed_by_id" | "created_on" | "request_started_at" | "request_completed_at";
/** RequiredClaim */
RequiredClaim: {
/**
* Accepted Proofs
* @description The evidence the registry accepts for this claim; any proof is accepted when omitted
*/
accepted_proofs?: components["schemas"]["NizzaVerificationProof"][] | null;
/** @description Which contact claim the registry requires to have been verified */
claim: components["schemas"]["NizzaClaim"];
};
/** ReservedDomainsBase */
ReservedDomainsBase: {
/** @description Source of reserved domain information */
source?: components["schemas"]["ReservedSourceType"] | null;
/**
* Supported
* @description Registry provides a reserved list
*/
supported: boolean;
/**
* Url
* @description Link to reserved list
*/
url?: string | null;
};
/**
* ReservedSourceType
* @enum {string}
*/
ReservedSourceType: "API" | "CSV" | "manual";
/** RgpOperations */
RgpOperations: {
/**
* Report
* @description Whether registry supports RGP restore report
* @default true
*/
report: boolean;
/**
* Request
* @description Whether registry supports RGP restore request
* @default true
*/
request: boolean;
};
/** SetRenewalModeReq */
SetRenewalModeReq: {
/** @description expire cancels the set at period end (serves out the term), renew un-cancels (resumes auto-renew) */
renewal_mode: components["schemas"]["RenewalModeDTO"];
};
/** SetVanityNameserverSetDefaultRes */
SetVanityNameserverSetDefaultRes: {
/** @description The set that is now the org's default (or unchanged set on a no-op 200). */
vanity_nameserver_set: components["schemas"]["VanityNameserverSetDTO"];
};
/** SignupCreate */
SignupCreate: {
/**
* Agreements
* @description User agreement acceptances.
*/
agreements?: components["schemas"]["UserAgreementAcceptance"][] | null;
/** @description Organization signup. */
organization: components["schemas"]["OrganizationCreate"];
/** @description Terms of service acceptance (legacy). */
terms_of_service?: components["schemas"]["TermsOfServiceAccept"] | null;
/** @description User signup to platform. */
user: components["schemas"]["UserCreate"];
};
/** SignupResponse */
SignupResponse: {
organization: components["schemas"]["Organization"];
user: components["schemas"]["User"];
};
/** SldLength */
SldLength: {
/**
* Max
* @description Maximum length of a domain name
*/
max: number;
/**
* Min
* @description Minimum length of a domain name
*/
min: number;
};
/**
* SortOrder
* @enum {string}
*/
SortOrder: "asc" | "desc";
/** StatusChanges */
StatusChanges: {
/**
* Add
* @description Statuses to add to the domain
*/
add?: components["schemas"]["DomainClientStatus"][];
/**
* Remove
* @description Statuses to remove from the domain
*/
remove?: components["schemas"]["DomainClientStatus"][];
};
/** StatusCodeStatsBucket */
StatusCodeStatsBucket: {
/** Key */
key: string;
/** Total */
total: number;
};
/** StatusTagResponse */
StatusTagResponse: {
/** @description The color of the tag */
color: components["schemas"]["TagColor"];
/**
* Description
* @description Additional information about this status tag
*/
description?: string | null;
/**
* Label
* @description The label of the tag
*/
label: string;
/** @description The status tag type identifier */
tag_type: components["schemas"]["StatusTagType"];
};
/**
* StatusTagType
* @enum {string}
*/
StatusTagType: "VERIFICATION_REQUIRED" | "CREATE_REQUESTED" | "INBOUND_TRANSFER_PENDING" | "OUTBOUND_TRANSFER_PENDING" | "EXTERNAL" | "IMPORT_REQUESTED" | "IMPORT_PENDING" | "DNSSEC_PENDING";
/** @example 12.50 */
StrictMoneyDecimal: string;
/** Support */
Support: {
/** Email */
email?: string | null;
/** Help Center Url */
help_center_url?: string | null;
/** Status Url */
status_url?: string | null;
/** Url */
url?: string | null;
};
/**
* SyncOperationType
* @enum {string}
*/
SyncOperationType: "registration" | "renewal" | "transfer";
/**
* TLDType
* @enum {string}
*/
TLDType: "gTLD" | "ccTLD";
/**
* TagColor
* @enum {string}
*/
TagColor: "color-1" | "color-2" | "color-3" | "color-4" | "color-5" | "color-6" | "color-7" | "color-8" | "color-9" | "color-10";
/** TagCreate */
TagCreate: {
/**
* @description The color of the tag
* @default color-1
*/
color: components["schemas"]["TagColor"] | null;
/**
* Description
* @description Optional description of the tag
*/
description?: string | null;
/**
* Label
* @description A human-readable label for the tag
*/
label: string;
/** @description Which category a tag applies to, cannot be changed once created */
type: components["schemas"]["TagType"];
};
/** TagEnrichedResponse */
TagEnrichedResponse: {
/** @description The color of the tag */
color: components["schemas"]["TagColor"];
/**
* Label
* @description The label of the tag
*/
label: string;
/**
* Tag Id
* Format: typeid
* @description The unique identifier of the tag
* @example tag_01h45ytscbebyvny4gc8cr8ma2
*/
tag_id: TypeId<"tag">;
};
/**
* TagFilterMode
* @enum {string}
*/
TagFilterMode: "match_any" | "match_all" | "match_none";
/** TagResponse */
TagResponse: {
/** @description The color of the tag */
color: components["schemas"]["TagColor"];
/**
* Created On
* Format: date-time
* @description The date/time the tag was created on
*/
created_on: Date;
/**
* Description
* @description Optional description of the tag
*/
description?: string | null;
/**
* Label
* @description The label of the tag
*/
label: string;
/**
* Object Count
* @description Number of objects tagged with this tag
* @default 0
*/
object_count: number;
/**
* Tag Id
* Format: typeid
* @description The unique identifier of the tag
* @example tag_01h45ytscbebyvny4gc8cr8ma2
*/
tag_id: TypeId<"tag">;
/** @description Which category a tag applies to, cannot be changed once created */
type: components["schemas"]["TagType"];
/**
* Updated On
* Format: date-time
* @description The date/time the tag was last updated on
*/
updated_on: Date;
};
/**
* TagSortField
* @enum {string}
*/
TagSortField: "label" | "created_on" | "updated_on";
/**
* TagType
* @enum {string}
*/
TagType: "DOMAIN" | "CONTACT" | "ZONE";
/** TagUpdate */
TagUpdate: {
/** @description The color of the tag */
color?: components["schemas"]["TagColor"] | null;
/**
* Description
* @description Optional description of the tag
*/
description?: string | null;
/**
* Label
* @description A human-readable label for the tag
*/
label?: string | null;
};
/** TermsOfServiceAccept */
TermsOfServiceAccept: {
/**
* Accepted
* @description The organization accepts Terms of Service.
*/
accepted: boolean;
};
/** Theme */
Theme: {
dark?: components["schemas"]["Palette"] | null;
/** Font Family */
font_family?: string | null;
/** Font Url */
font_url?: string | null;
light?: components["schemas"]["Palette"] | null;
/** Radius */
radius?: string | null;
};
/**
* TimeRange
* @enum {string}
*/
TimeRange: "1h" | "1d" | "7d" | "30d" | "1y";
/** TimeSeriesBucket */
TimeSeriesBucket: {
/**
* Timestamp
* Format: date-time
*/
timestamp: Date;
/** Total */
total: number;
};
/** TldBase */
TldBase: {
/**
* Name
* @description The TLD being configured
*/
name: string;
/**
* Third Level Structure
* @description Name of the third levels (name and overrides)
* @default []
*/
third_level_structure: string[];
/** @description The type of the TLD (e.g., gTLD, ccTLD) */
type: components["schemas"]["TLDType"];
};
/** TldResponseShort */
TldResponseShort: {
/**
* Tld
* @example com
* @example org
* @example net
*/
tld: string;
/**
* @example gTLD
* @example ccTLD
*/
type: components["schemas"]["TLDType"];
};
/** TldSpecificationResponse */
TldSpecificationResponse: {
/** @description Character limits for domain names */
characters: components["schemas"]["SldLength"];
/** @description Contacts configuration */
contacts?: components["schemas"]["ContactsBase"] | null;
/** @description DNS configuration */
dns_configuration: components["schemas"]["DnsConfigurationBase"];
/** @description Domain lifecycle configuration */
domain_lifecycle: components["schemas"]["DomainLifecycleBase"];
/** @description Domain statuses configuration */
domain_statuses: components["schemas"]["DomainStatusesBase"];
/** @description IDN configuration */
idn: components["schemas"]["IdnBase"];
/** @description Launch phases configuration */
launch_phases?: components["schemas"]["LaunchPhasesBase"] | null;
/**
* Legal Requirements
* @description Legal requirements that must be met for this TLD
*/
legal_requirements?: components["schemas"]["LegalRequirementBase"][];
/** @description Local presence requirements */
local_presence?: components["schemas"]["LocalPresenceBase"] | null;
/**
* Parking Enabled
* @description Whether parking is enabled for this TLD
* @default false
*/
parking_enabled: boolean;
/** @description Premium domains configuration */
premium_domains?: components["schemas"]["PremiumDomainsBase"] | null;
/** @description RDAP configuration */
rdap?: components["schemas"]["RdapBase"] | null;
/** @description Registry lock configuration */
registry_lock?: components["schemas"]["RegistryLockBase"] | null;
/** @description Reserved domains configuration */
reserved_domains?: components["schemas"]["ReservedDomainsBase"] | null;
/**
* Tlds
* @description List of TLDs being configured
*/
tlds: components["schemas"]["TldBase"][];
/** @description Transfer policies configuration */
transfer_policies: components["schemas"]["TransferPoliciesBase"];
/**
* Verification Policies
* @description Verification Policy Configuration
*/
verification_policies?: {
[key: string]: components["schemas"]["VerificationPolicy"];
} | null;
/** @description WHOIS configuration */
whois?: components["schemas"]["WhoisBase"] | null;
};
/**
* TmAddr
* @description Address information (addrType in RFC 9361)
*/
TmAddr: {
/**
* Cc
* @description ISO 3166-2 two-character country code
*/
cc: string;
/** City */
city: string;
/** Pc */
pc?: string | null;
/** Sp */
sp?: string | null;
/** Street */
street: string[];
};
/**
* TmClaim
* @description A single trademark claim within a notice (claimType in RFC 9361)
*/
TmClaim: {
/**
* Class Descs
* @description Nice Classification descriptions
*/
class_descs?: components["schemas"]["TmClassDesc"][];
/**
* Contacts
* @description Zero or more contacts/representatives
*/
contacts?: components["schemas"]["TmContact"][];
/**
* Goods And Services
* @description Full description of goods and services
*/
goods_and_services: string;
/**
* Holders
* @description One or more holders of the mark
*/
holders: components["schemas"]["TmHolder"][];
/** @description Jurisdiction where the mark is protected */
jur_desc: components["schemas"]["TmJurDesc"];
/**
* Mark Name
* @description Mark text string
*/
mark_name: string;
/** @description Present if claim added by non-exact match rule */
not_exact_match?: components["schemas"]["TmNotExactMatch"] | null;
};
/**
* TmClassDesc
* @description Nice Classification description (classDescType in RFC 9361)
*/
TmClassDesc: {
/**
* Class Num
* @description Nice Classification class number
*/
class_num: number;
/**
* Description
* @description Description of the class in English
*/
description: string;
};
/**
* TmContact
* @description Contact / representative of the mark (contactType in RFC 9361)
*/
TmContact: {
addr: components["schemas"]["TmAddr"];
/** Email */
email: string;
/** Fax */
fax?: string | null;
/** Name */
name: string;
/** Org */
org?: string | null;
type: components["schemas"]["ContactType"];
/** Voice */
voice: string;
};
/**
* TmCourt
* @description Court resolution reference (courtType in RFC 9361)
*/
TmCourt: {
/**
* Cc
* @description ISO 3166-2 jurisdiction country code
*/
cc: string;
/**
* Court Name
* @description Name of the court
*/
court_name: string;
/**
* Ref Num
* @description Reference number of the court resolution
*/
ref_num: string;
/**
* Region
* @description Region(s) within the jurisdiction
*/
region?: string[];
};
/**
* TmHolder
* @description Holder of the mark (holderType in RFC 9361). name or org must be set.
*/
TmHolder: {
addr: components["schemas"]["TmAddr"];
/** Email */
email?: string | null;
entitlement: components["schemas"]["HolderEntitlement"];
/** Fax */
fax?: string | null;
/** Name */
name?: string | null;
/** Org */
org?: string | null;
/** Voice */
voice?: string | null;
};
/**
* TmJurDesc
* @description Jurisdiction description (jurDescType in RFC 9361)
*/
TmJurDesc: {
/**
* Description
* @description Name of jurisdiction in English
*/
description: string;
/**
* Jur Cc
* @description WIPO ST.3 two-character jurisdiction code
*/
jur_cc: string;
};
/**
* TmNotExactMatch
* @description Signals claim was added by non-exact match rules (noExactMatchType in RFC 9361)
*/
TmNotExactMatch: {
/** Court */
court?: components["schemas"]["TmCourt"][];
/**
* Intro
* @description Introductory text for the non-exact match section
* @default This domain name label has previously been found to be used or registered abusively against the following trademarks according to the referenced decisions:
*/
intro: string;
/** Udrp */
udrp?: components["schemas"]["TmUdrp"][];
};
/**
* TmUdrp
* @description UDRP case reference (udrpType in RFC 9361)
*/
TmUdrp: {
/**
* Case No
* @description UDRP case number
*/
case_no: string;
/**
* Udrp Provider
* @description Name of the UDRP provider
*/
udrp_provider: string;
};
/** TrademarkClaimsBase */
TrademarkClaimsBase: {
/**
* End Date
* @description End date of trademark claims
*/
end_date?: Date | null;
/**
* Start Date
* @description Start date of trademark claims
*/
start_date?: Date | null;
/**
* Supported
* @description Whether trademark claims are supported
*/
supported: boolean;
/**
* Tmch Required
* @description If true, claim notifications are mandatory within the timeframe
*/
tmch_required?: boolean | null;
};
/**
* TransferAckType
* @enum {string}
*/
TransferAckType: "none" | "registrar" | "registrant" | "both";
/** TransferLockPolicyBase */
TransferLockPolicyBase: {
/**
* Supported By Registrar
* @description Whether the registrar supports transfer locks
*/
supported_by_registrar: boolean;
/**
* Supported By Registry
* @description Whether the registry supports transfer locks
*/
supported_by_registry: boolean;
};
/** TransferPoliciesBase */
TransferPoliciesBase: {
/**
* Authinfo Max Length
* @description Maximum length of the auth info
*/
authinfo_max_length?: number | null;
/**
* Authinfo Min Length
* @description Minimum length of the auth info
*/
authinfo_min_length?: number | null;
/**
* Authinfo Pattern
* @description Regex pattern for validating auth info
*/
authinfo_pattern?: string | null;
/**
* Authinfo Required
* @description Whether an auth info is required for transfers
*/
authinfo_required: boolean;
/**
* Authinfo Set By Registrar
* @description Whether the registrar can set the auth info, or whether the registry controls it
* @default true
*/
authinfo_set_by_registrar: boolean;
/**
* Authinfo Time Limited
* @description Whether an auth info has a time limit
*/
authinfo_time_limited?: boolean | null;
/**
* Authinfo Validity Period
* @description Validity period of the auth info (e.g., '5D' for 5 days)
*/
authinfo_validity_period?: string | null;
/**
* Contacts In Transfer Command
* @description Whether the registry takes the domain contacts on the transfer command itself
* @default false
*/
contacts_in_transfer_command: boolean;
/**
* Info Contact Authinfo
* @description Whether querying a foreign contact with authinfo is possible
*/
info_contact_authinfo?: boolean | null;
/**
* Info Domain Authinfo
* @description Whether querying a foreign domain with authinfo is possible
*/
info_domain_authinfo?: boolean | null;
/**
* Post Transfer Requirements
* @description Post-transfer requirements: lists the behaviors, as in ['update_contacts', 'set_transfer_lock'] or [ 'tld_specific' ] for specific behavior
*/
post_transfer_requirements?: components["schemas"]["PostTransferRequirements"][] | null;
/** @description Whether a transfer can be approved */
transfer_ack?: components["schemas"]["TransferAckType"] | null;
/**
* Transfer Email Required
* @description Whether an email confirmation is required to perform the transfer
*/
transfer_email_required?: boolean | null;
/** @description Transfer lock policy */
transfer_lock_policy: components["schemas"]["TransferLockPolicyBase"];
/** @description Whether a transfer can be denied */
transfer_nack?: components["schemas"]["TransferAckType"] | null;
/**
* Transfer Renewal Period
* @description If transfer_renews_domain is true, the renewal period (e.g., '1Y' for 1 year)
*/
transfer_renewal_period?: string | null;
/**
* Transfer Renews Domain
* @description Whether a transfer triggers a domain renewal
*/
transfer_renews_domain?: boolean | null;
/**
* Transfer Time
* @description Time duration of transfers in ISO 8601 format (e.g., 5D, -7D) according to the policy, 0 = real-time
*/
transfer_time?: string | null;
};
/**
* UsageGranularity
* @enum {string}
*/
UsageGranularity: "day" | "week" | "month";
/**
* UsageProduct
* @enum {string}
*/
UsageProduct: "ai_inference";
/** User */
User: {
/**
* Created On
* Format: date-time
* @description The date/time the entry was created on
*/
created_on?: Date;
/**
* Email
* Format: email
* @description The user's email address
*/
email: string;
/**
* First Name
* @description The user's first name
*/
first_name: string;
/**
* Keycloak User Id
* @description Keycloak user id
*/
keycloak_user_id?: string | null;
/**
* Last Name
* @description The user's last name
*/
last_name: string;
/**
* Locale
* @example en_US
*/
locale: string;
/**
* Organization Id
* Format: typeid
* @description The user's organization id
* @default None
* @example organization_01h45ytscbebyvny4gc8cr8ma2
*/
organization_id: TypeId<"organization">;
/**
* Phone
* @description The user's phone number
* @example +1.2125552368
*/
phone?: string | null;
/**
* Updated On
* Format: date-time
* @description The date/time the entry was last updated on
*/
updated_on?: Date;
/**
* User Id
* Format: typeid
* @example user_01h45ytscbebyvny4gc8cr8ma2
*/
user_id?: TypeId<"user">;
/**
* Username
* @description The user's unique username
*/
username: string;
};
/** UserAgentStatsBucket */
UserAgentStatsBucket: {
/** Key */
key: string;
/** Total */
total: number;
/** Unique */
unique: number;
};
/** UserAgreementAcceptance */
UserAgreementAcceptance: {
/**
* Accepted
* @description Whether the agreement has been accepted.
*/
accepted: boolean;
/** @description Type of agreement being accepted. */
type: components["schemas"]["AgreementType"];
/**
* Url
* @description URL where the agreement can be found.
*/
url?: string | null;
/**
* Version
* @description Version of the agreement being accepted.
*/
version?: string | null;
};
/** UserAttributeBase */
UserAttributeBase: {
/**
* Key
* @description Key of the attribute.
*/
key: string;
/** @description Value of the attribute. */
value?: components["schemas"]["JsonValue"] | null;
};
/** UserAttributeResponse */
UserAttributeResponse: {
/**
* Key
* @description Key of the attribute.
*/
key: string;
/** @description Value of the attribute. */
value?: components["schemas"]["JsonValue"] | null;
};
/** UserCreate */
UserCreate: {
/**
* Email
* Format: email
* @description The user's email address
*/
email: string;
/**
* First Name
* @description The user's first name
*/
first_name: string;
/**
* Last Name
* @description The user's last name
*/
last_name: string;
/**
* Locale
* @example en_US
*/
locale: string;
/**
* Password
* @description Plaintext password for hashing during creation
*/
password?: string | null;
/**
* Phone
* @description The user's phone number
* @example +1.2125552368
*/
phone?: string | null;
/**
* User Attributes
* @description User attributes
*/
user_attributes?: components["schemas"]["UserAttributeBase"][] | null;
/**
* Username
* @description The user's unique username
*/
username: string;
};
/** UserOrganizationMeta */
UserOrganizationMeta: {
/** @description Currency used by the user's organization. */
currency?: components["schemas"]["Currency"] | null;
/**
* Parent Organization Id
* @description ID of the parent organization, if any.
*/
parent_organization_id?: TypeId<"organization"> | null;
};
/** UserProfile */
UserProfile: {
/**
* Created On
* Format: date-time
* @description The date/time the entry was created on
*/
created_on?: Date;
/**
* Email
* Format: email
* @description The user's email address
*/
email: string;
/**
* First Name
* @description The user's first name
*/
first_name: string;
/**
* Last Name
* @description The user's last name
*/
last_name: string;
/**
* Locale
* @example en_US
*/
locale: string;
organization?: components["schemas"]["UserOrganizationMeta"] | null;
/**
* Organization Id
* Format: typeid
* @description The user's organization id
* @default None
* @example organization_01h45ytscbebyvny4gc8cr8ma2
*/
organization_id: TypeId<"organization">;
/** Permissions */
permissions?: components["schemas"]["PublicPermission"][] | null;
/**
* Phone
* @description The user's phone number
* @example +1.2125552368
*/
phone?: string | null;
/** Role */
role?: components["schemas"]["PublicRole"] | components["schemas"]["CustomRoleLabel"] | null;
/**
* Updated On
* Format: date-time
* @description The date/time the entry was last updated on
*/
updated_on?: Date;
/**
* User Attributes
* @description All of the user attributes
* @example {
* "array": [
* 1,
* 2,
* 3
* ],
* "bool": true,
* "number": 1,
* "string": "value2"
* }
*/
user_attributes?: {
[key: string]: components["schemas"]["JsonValue"];
};
/**
* User Id
* Format: typeid
* @example user_01h45ytscbebyvny4gc8cr8ma2
*/
user_id?: TypeId<"user">;
/**
* Username
* @description The user's unique username
*/
username: string;
};
/** UserPublic */
UserPublic: {
/**
* Created On
* Format: date-time
* @description The date/time the entry was created on
*/
created_on?: Date;
/**
* Email
* Format: email
* @description The user's email address
*/
email: string;
/**
* First Name
* @description The user's first name
*/
first_name: string;
/**
* Last Name
* @description The user's last name
*/
last_name: string;
/**
* Locale
* @example en_US
*/
locale: string;
/**
* Organization Id
* Format: typeid
* @description The user's organization id
* @default None
* @example organization_01h45ytscbebyvny4gc8cr8ma2
*/
organization_id: TypeId<"organization">;
/**
* Phone
* @description The user's phone number
* @example +1.2125552368
*/
phone?: string | null;
/**
* Updated On
* Format: date-time
* @description The date/time the entry was last updated on
*/
updated_on?: Date;
/**
* User Id
* Format: typeid
* @example user_01h45ytscbebyvny4gc8cr8ma2
*/
user_id?: TypeId<"user">;
/**
* Username
* @description The user's unique username
*/
username: string;
};
/** UserPublicWithAttributes */
UserPublicWithAttributes: {
/**
* Created On
* Format: date-time
* @description The date/time the entry was created on
*/
created_on?: Date;
/**
* Email
* Format: email
* @description The user's email address
*/
email: string;
/**
* First Name
* @description The user's first name
*/
first_name: string;
/**
* Last Name
* @description The user's last name
*/
last_name: string;
/**
* Locale
* @example en_US
*/
locale: string;
/**
* Organization Id
* Format: typeid
* @description The user's organization id
* @default None
* @example organization_01h45ytscbebyvny4gc8cr8ma2
*/
organization_id: TypeId<"organization">;
/**
* Phone
* @description The user's phone number
* @example +1.2125552368
*/
phone?: string | null;
/**
* Updated On
* Format: date-time
* @description The date/time the entry was last updated on
*/
updated_on?: Date;
/**
* User Attributes
* @description All of the user attributes
* @example {
* "array": [
* 1,
* 2,
* 3
* ],
* "bool": true,
* "number": 1,
* "string": "value2"
* }
*/
user_attributes?: {
[key: string]: components["schemas"]["JsonValue"];
};
/**
* User Id
* Format: typeid
* @example user_01h45ytscbebyvny4gc8cr8ma2
*/
user_id?: TypeId<"user">;
/**
* Username
* @description The user's unique username
*/
username: string;
};
/** UserPublicWithRole */
UserPublicWithRole: {
/**
* Created On
* Format: date-time
* @description The date/time the entry was created on
*/
created_on?: Date;
/**
* Email
* Format: email
* @description The user's email address
*/
email: string;
/**
* First Name
* @description The user's first name
*/
first_name: string;
/**
* Last Name
* @description The user's last name
*/
last_name: string;
/**
* Locale
* @example en_US
*/
locale: string;
/**
* Organization Id
* Format: typeid
* @description The user's organization id
* @default None
* @example organization_01h45ytscbebyvny4gc8cr8ma2
*/
organization_id: TypeId<"organization">;
/**
* Phone
* @description The user's phone number
* @example +1.2125552368
*/
phone?: string | null;
/** Role */
role?: components["schemas"]["PublicRole"] | components["schemas"]["CustomRoleLabel"] | null;
/**
* Updated On
* Format: date-time
* @description The date/time the entry was last updated on
*/
updated_on?: Date;
/**
* User Id
* Format: typeid
* @example user_01h45ytscbebyvny4gc8cr8ma2
*/
user_id?: TypeId<"user">;
/**
* Username
* @description The user's unique username
*/
username: string;
};
/**
* UserSortField
* @enum {string}
*/
UserSortField: "created_on" | "username" | "email";
/** UserTokenResponse */
UserTokenResponse: {
/**
* Access Token
* @example eyJhbGciOiJSUzI1NiJ9.eyJpc3MiOiJodHRwczovL2FwaS5vcHVzZG5zLmNvbSJ9.signature
*/
access_token: string;
/**
* Expires In
* @example 3600
*/
expires_in: number;
/**
* Refresh Expires In
* @example 86400
*/
refresh_expires_in: number;
/**
* Refresh Token
* @example eyJhbGciOiJSUzI1NiJ9.eyJ0eXBlIjoicmVmcmVzaCJ9.signature
*/
refresh_token: string;
/**
* Token Type
* @default Bearer
* @example Bearer
*/
token_type: string;
};
/** UserUpdate */
UserUpdate: {
/**
* Email
* @description The user's email address
*/
email?: string | null;
/**
* First Name
* @description The user's first name
*/
first_name?: string | null;
/**
* Last Name
* @description The user's last name
*/
last_name?: string | null;
/**
* Locale
* @description The user's locale
*/
locale?: string | null;
/**
* Phone
* @description The user's phone number
*/
phone?: string | null;
/**
* User Attributes
* @description User attributes
*/
user_attributes?: components["schemas"]["UserAttributeBase"][] | null;
/**
* Username
* @description The user's unique username
*/
username?: string | null;
};
/** ValidationError */
ValidationError: {
/** Context */
ctx?: Record;
/** Input */
input?: unknown;
/** Location */
loc: (string | number)[];
/** Message */
msg: string;
/** Error Type */
type: string;
};
/** VanityNameserverDTO */
VanityNameserverDTO: {
/**
* Hostname
* @description Fully-qualified hostname of the vanity nameserver
*/
hostname: string;
/**
* Position
* @description Ordering within the set; lowest position becomes SOA MNAME
*/
position: number;
};
/**
* VanityNameserverSetCreate
* @description Public create request body. The owning org comes from auth context, and the
* anycast IPs are allocated server-side from `VanityNameserversConfig`, so neither is
* accepted here.
*/
VanityNameserverSetCreate: {
/**
* Hostnames
* @description Fully-qualified vanity NS hostnames, ordered by intended position.
*/
hostnames: string[];
/**
* Name
* @description Human-readable name for the set
*/
name: string;
/**
* Parent Domain Name
* @description Apex domain of the vanity NS zone; all hostnames must be subdomains.
*/
parent_domain_name: string;
/**
* Soa Rname
* @description SOA RNAME stamped verbatim into the vanity NS zone
*/
soa_rname: string;
};
/** VanityNameserverSetDTO */
VanityNameserverSetDTO: {
/**
* Name
* @description Human-readable name for the vanity NS set
*/
name: string;
/**
* Nameservers
* @description Nameservers in the set, ordered by position
*/
nameservers?: components["schemas"]["VanityNameserverDTO"][];
/**
* Parent Domain Name
* @description Parent domain used as the apex of the vanity NS zone
*/
parent_domain_name: string;
/**
* Set Id
* Format: typeid
* @description Stable identifier for the vanity NS set
* @example vns_01h45ytscbebyvny4gc8cr8ma2
*/
set_id: TypeId<"vns">;
/**
* Soa Rname
* @description SOA RNAME used verbatim when creating vanity-branded zones
*/
soa_rname: string;
};
/**
* VanityNameserverSetStatusDTO
* @description Wire mirror of `VanityNameserverSetStatus` — local so dns_client doesn't
* pull schema imports.
* @enum {string}
*/
VanityNameserverSetStatusDTO: "provisioning" | "active" | "suspended" | "failed" | "deleting";
/**
* VanityNameserverSetSummaryDTO
* @description Status-aware variant of `VanityNameserverSetDTO` for list/get endpoints.
* `VanityNameserverSetDTO` stays the brandable-only read shape (always ACTIVE).
*/
VanityNameserverSetSummaryDTO: {
/**
* Expires On
* @description When the vanity nameserver set's current service period ends (renews or lapses)
*/
expires_on?: Date | null;
/**
* Grace Period Ends At
* @description When the grace period ends, or null when the set is not in a grace period
*/
grace_period_ends_at?: Date | null;
/**
* Is Default
* @description Whether this is the org's default vanity NS set
*/
is_default: boolean;
/**
* Name
* @description Human-readable name for the vanity NS set
*/
name: string;
/**
* Nameservers
* @description Nameservers in the set, ordered by position
*/
nameservers?: components["schemas"]["VanityNameserverDTO"][];
/**
* Organization Id
* Format: typeid
* @description Owning organization
* @example organization_01h45ytscbebyvny4gc8cr8ma2
*/
organization_id: TypeId<"organization">;
/**
* Parent Domain Name
* @description Parent domain used as the apex of the vanity NS zone
*/
parent_domain_name: string;
/**
* Renew Scheduled At
* @description When the next automatic renewal is scheduled. Null when the set will not renew.
*/
renew_scheduled_at?: Date | null;
/** @description Whether the set is set to renew or expire at the end of the current period */
renewal_mode?: components["schemas"]["RenewalModeDTO"] | null;
/**
* Set Id
* Format: typeid
* @description Stable identifier for the vanity NS set
* @example vns_01h45ytscbebyvny4gc8cr8ma2
*/
set_id: TypeId<"vns">;
/**
* Soa Rname
* @description SOA RNAME used verbatim when creating vanity-branded zones
*/
soa_rname: string;
/** @description Lifecycle status of the set */
status: components["schemas"]["VanityNameserverSetStatusDTO"];
};
/**
* VanityNsCheckConfidence
* @enum {string}
*/
VanityNsCheckConfidence: "authoritative" | "best_effort";
/**
* VanityNsCheckPublicReq
* @description Public `/check` request body. The owning org comes from auth context, so only
* the set identifier is accepted here.
*/
VanityNsCheckPublicReq: {
/**
* Set Id
* Format: typeid
* @description The vanity NS set to diagnose
* @example vns_01h45ytscbebyvny4gc8cr8ma2
*/
set_id: TypeId<"vns">;
};
/** VanityNsCheckRes */
VanityNsCheckRes: {
/**
* Checks
* @description Individual diagnostic checks
*/
checks?: components["schemas"]["VanityNsCheckResultDTO"][];
/**
* Parent Domain Name
* @description Parent domain of the set's vanity NS hostnames
*/
parent_domain_name: string;
/**
* Set Id
* Format: typeid
* @description The diagnosed set
* @example vns_01h45ytscbebyvny4gc8cr8ma2
*/
set_id: TypeId<"vns">;
/** @description Lifecycle status of the set at check time */
status: components["schemas"]["VanityNameserverSetStatusDTO"];
/** @description Synthesized overall verdict */
summary: components["schemas"]["VanityNsCheckSummaryDTO"];
};
/** VanityNsCheckResultDTO */
VanityNsCheckResultDTO: {
/** @description How authoritative the observation is */
confidence: components["schemas"]["VanityNsCheckConfidence"];
/**
* Detail
* @description Customer-facing explanation of the result
*/
detail: string;
/**
* Id
* @description Stable identifier for the individual check
*/
id: string;
/**
* Label
* @description Human-readable check name
*/
label: string;
/**
* Observed
* @description Structured observation (e.g. addresses seen, mismatches) for the customer
*/
observed?: {
[key: string]: unknown;
} | null;
/**
* Remediation
* @description Suggested next step when the check did not pass
*/
remediation?: string | null;
/** @description How much this check matters to the overall verdict */
severity: components["schemas"]["VanityNsCheckSeverity"];
/** @description Where the observation came from */
source: components["schemas"]["VanityNsCheckSource"];
/** @description Per-check verdict */
status: components["schemas"]["VanityNsCheckStatus"];
};
/**
* VanityNsCheckSeverity
* @enum {string}
*/
VanityNsCheckSeverity: "required" | "recommended" | "optional";
/**
* VanityNsCheckSource
* @enum {string}
*/
VanityNsCheckSource: "public_dns" | "authoritative_dns" | "registry_epp";
/**
* VanityNsCheckStatus
* @enum {string}
*/
VanityNsCheckStatus: "pass" | "fail" | "warn" | "info";
/** VanityNsCheckSummaryDTO */
VanityNsCheckSummaryDTO: {
/**
* Detail
* @description Customer-facing summary of the overall verdict
*/
detail: string;
/** @description Overall verdict synthesized from the checks */
state: components["schemas"]["VanityNsCheckSummaryState"];
};
/**
* VanityNsCheckSummaryState
* @description Top-level verdict synthesized from the individual checks.
* @enum {string}
*/
VanityNsCheckSummaryState: "ready" | "propagating" | "action_required" | "degraded";
/**
* VerificationClaimType
* @enum {string}
*/
VerificationClaimType: "name" | "address" | "email" | "phone";
/** VerificationDeadline */
VerificationDeadline: {
/**
* Date
* Format: date-time
*/
date: Date;
type: components["schemas"]["VerificationDeadlineType"];
};
/**
* VerificationDeadlineType
* @enum {string}
*/
VerificationDeadlineType: "dedelegation" | "deletion";
VerificationPolicy: components["schemas"]["EmailVerificationPolicy"] | components["schemas"]["IdentityVerificationPolicy"];
/**
* VerificationPolicyType
* @enum {string}
*/
VerificationPolicyType: "email_verification" | "identity_verification";
/** VerificationRegistrantDetails */
VerificationRegistrantDetails: {
/** Contact Id */
contact_id: string;
/** Email */
email: string;
/** Name */
name: string;
};
/** VerificationResponse */
VerificationResponse: {
/**
* Claims
* @description Verification claims
*/
claims: components["schemas"]["VerificationClaimType"][];
/**
* Deadlines
* @description Verification deadlines
*/
deadlines?: components["schemas"]["VerificationDeadline"][];
};
/**
* VerificationType
* @enum {string}
*/
VerificationType: "api" | "email";
/** VisitsByKeyBucket */
VisitsByKeyBucket: {
/** Key */
key: string;
/** Total */
total: number;
/** Unique */
unique: number;
};
/**
* WaitlistApplyRequest
* @description What you say when applying for a product.
*/
WaitlistApplyRequest: {
/**
* Note
* @description What you would use the product for
* @example We manage 12k domains for agency clients and triage renewals by hand.
*/
note?: string | null;
};
/**
* WaitlistEntryResponse
* @description Your own waitlist application.
*/
WaitlistEntryResponse: {
/**
* Applied On
* Format: date-time
* @description When you applied
*/
applied_on: Date;
/**
* Decided On
* @description When the application was decided; null while it is pending
*/
decided_on?: Date | null;
/** @description Product the application is for */
product: components["schemas"]["WaitlistProduct"];
/** @description Where the application stands */
status: components["schemas"]["WaitlistEntryStatus"];
};
/**
* WaitlistEntryStatus
* @enum {string}
*/
WaitlistEntryStatus: "pending" | "granted" | "rejected";
/**
* WaitlistProduct
* @description A product that is not generally available and is reached through the waitlist.
*
* The member value is the wire form used in URLs and API bodies; the column persists the
* member NAME (StringEnum binds `value.name`), so renaming a member is a data migration.
* @enum {string}
*/
WaitlistProduct: "ai_concierge";
/**
* WaitlistProductListResponse
* @description The waitlisted products you may see.
*/
WaitlistProductListResponse: {
/**
* Products
* @description Waitlisted products you may see
*/
products?: components["schemas"]["WaitlistProductState"][];
};
/**
* WaitlistProductState
* @description A waitlisted product, and where your own application for it stands.
*/
WaitlistProductState: {
/**
* Applied On
* @description When you applied, if you have
*/
applied_on?: Date | null;
/**
* Can Apply
* @description Whether an apply from you would be accepted right now; false for an API key
*/
can_apply: boolean;
/**
* Decided On
* @description When your application was decided, if it was
*/
decided_on?: Date | null;
/**
* Description
* @description What the product does
*/
description: string;
/**
* Display Name
* @description Human-readable product name
*/
display_name: string;
/** @description Product key, used in the apply path */
product: components["schemas"]["WaitlistProduct"];
/** @description Where your application stands; null until you apply, and for an API key */
status?: components["schemas"]["WaitlistEntryStatus"] | null;
};
/**
* WhitelabelBaseCreate
* @description Create the base tier: served on a managed subdomain composed from `label`.
*/
WhitelabelBaseCreate: {
/**
* Label
* @description Managed-subdomain label; composed into app.