@opusdns/api 0.233.0 → 0.234.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (2) hide show
  1. package/package.json +1 -1
  2. package/src/openapi.yaml +52 -52
package/package.json CHANGED
@@ -3,7 +3,7 @@
3
3
  "@opusdns/api-spec-ts-generator": "^0.19.0"
4
4
  },
5
5
  "name": "@opusdns/api",
6
- "version": "0.233.0",
6
+ "version": "0.234.0",
7
7
  "description": "TypeScript types for the OpusDNS OpenAPI specification",
8
8
  "main": "./src/index.ts",
9
9
  "module": "./src/index.ts",
package/src/openapi.yaml CHANGED
@@ -9600,19 +9600,19 @@ components:
9600
9600
  tokenUrl: token
9601
9601
  type: oauth2
9602
9602
  info:
9603
- description: "# Authentication\n\nOpusDNS supports API authentication in two ways:\n\
9603
+ description: "## Authentication\n\nOpusDNS supports API authentication in two ways:\n\
9604
9604
  \n- Direct API key authentication using the `X-Api-Key` header\n- OAuth token\
9605
9605
  \ authentication using the `/v1/auth/token` [endpoint](https://developers.opusdns.com/#tag/authentication/POST/v1/auth/token)\n\
9606
- \n## Creating an API key in the Dashboard\n\n+ Create a new API key from the OpusDNS\
9607
- \ Dashboard under [API Credentials](https://app.opusdns.com/developer/api-credentials)\n\
9608
- + Store the generated key securely when it is shown to you.\n\n## Using the API\
9609
- \ key\n\n### Option 1: `X-Api-Key` header\n\nSend your full OpusDNS API key in\
9606
+ \n### Creating an API key in the Dashboard\n\n+ Create a new API key from the\
9607
+ \ OpusDNS Dashboard under [API Credentials](https://app.opusdns.com/developer/api-credentials)\n\
9608
+ + Store the generated key securely when it is shown to you.\n\n### Using the API\
9609
+ \ key\n\n#### Option 1: `X-Api-Key` header\n\nSend your full OpusDNS API key in\
9610
9610
  \ the `X-Api-Key` header on each request:\n\n```http\nGET /v1/domains HTTP/1.1\n\
9611
9611
  Host: sandbox.opusdns.com\nX-Api-Key: opk_your_full_api_key_here\n```\n\nThis\
9612
- \ is the most direct way to authenticate.\n\n### Option 2: OAuth token flow\n\n\
9613
- OpusDNS also supports retrieving a bearer token from the token endpoint:\n\n```http\n\
9614
- POST /v1/auth/token HTTP/1.1\nHost: sandbox.opusdns.com\nContent-Type: application/x-www-form-urlencoded\n\
9615
- \ngrant_type=client_credentials&client_id=organization_...&client_secret=...\n\
9612
+ \ is the most direct way to authenticate.\n\n#### Option 2: OAuth token flow\n\
9613
+ \nOpusDNS also supports retrieving a bearer token from the token endpoint:\n\n\
9614
+ ```http\nPOST /v1/auth/token HTTP/1.1\nHost: sandbox.opusdns.com\nContent-Type:\
9615
+ \ application/x-www-form-urlencoded\n\ngrant_type=client_credentials&client_id=organization_...&client_secret=...\n\
9616
9616
  ```\n\nSuccessful responses return a bearer token and expiry:\n\n```json\n{\n\
9617
9617
  \ \"access_token\": \"eyJ...\",\n \"token_type\": \"Bearer\",\n \"expires_in\"\
9618
9618
  : 3600\n}\n```\n\nYou can then use that token on subsequent requests:\n\n```http\n\
@@ -9620,7 +9620,7 @@ info:
9620
9620
  ```\n\nYou can use this method when:\n\n- Your platform prefers standard OAuth-style\
9621
9621
  \ bearer tokens\n- You want short-lived access tokens instead of sending the API\
9622
9622
  \ key on every request\n- Your HTTP tooling already expects `Authorization: Bearer\
9623
- \ ...`\n\n\n\n\n# Resource IDs\n\nThe API uses extensively [Type IDs](https://github.com/jetify-com/typeid):\
9623
+ \ ...`\n\n\n\n\n## Resource IDs\n\nThe API uses extensively [Type IDs](https://github.com/jetify-com/typeid):\
9624
9624
  \ type-safe, K-sortable, globally unique identifier inspired by Stripe IDs. They\
9625
9625
  \ can be easily identified with a format like `prefix_01jxe1nzrmf78scaqbkjx0va0f`.\
9626
9626
  \ The `prefix` gives context to the ID - some examples include `user`, `organization`,\
@@ -9636,7 +9636,7 @@ info:
9636
9636
  \ available for many languages to make handling Type IDs easier](https://github.com/jetify-com/typeid?tab=readme-ov-file#official-implementations-by-jetify).\
9637
9637
  \ We're using them ourselves on the backend to quickly catch mistakes like passing\
9638
9638
  \ the wrong Type ID (passing a user ID like `user_01jxe1z8atfxpabknqbzhkvr3s`\
9639
- \ where a domain ID `domain_01jxe1zw90f1t8vgpyfns8qwk1` was expected).\n\n\n#\
9639
+ \ where a domain ID `domain_01jxe1zw90f1t8vgpyfns8qwk1` was expected).\n\n\n##\
9640
9640
  \ Sandbox Environment\n\nWe provide a free sandbox environment where you can test\
9641
9641
  \ and make sure your integration with OpusDNS runs smoothly. The sandbox is completely\
9642
9642
  \ isolated, meaning all domains, configurations, and actions inside this environment\
@@ -9646,15 +9646,15 @@ info:
9646
9646
  \ there.\n\nThis sandbox provides a separate dashboard at [app.sandbox.opusdns.com](https://app.sandbox.opusdns.com).\n\
9647
9647
  \nThe sandbox API Base URL is `https://sandbox.opusdns.com`.\n\nIf you have any\
9648
9648
  \ questions about the API or run into issues, please open a ticket at support@opusdns.com.\
9649
- \ We are happy to help!\n\n# Open-source SDKs and libraries\n\nWe're constantly\
9649
+ \ We are happy to help!\n\n## Open-source SDKs and libraries\n\nWe're constantly\
9650
9650
  \ building new features and services from SDKs and plugins to other exciting tools.\
9651
9651
  \ Check out [our GitHub](https://github.com/OpusDNS/) to see the latest developments\
9652
- \ and try them out yourself!\n\n### OpusDNS Go Client\n\nWe offer a client implementation\
9652
+ \ and try them out yourself!\n\n#### OpusDNS Go Client\n\nWe offer a client implementation\
9653
9653
  \ for go that supports all the features of our API. \nCheck out the client [here](https://github.com/OpusDNS/opusdns-go-client)!\n\
9654
- \n"
9654
+ \n\n"
9655
9655
  summary: OpusDNS - your gateway to a seamless domain management experience.
9656
9656
  title: OpusDNS API
9657
- version: 2026-04-01-083726
9657
+ version: 2026-04-01-093850
9658
9658
  x-logo:
9659
9659
  altText: OpusDNS API Reference
9660
9660
  url: https://d24lr4zqs1tgqh.cloudfront.net/c9505a20-5ae1-406c-b060-d392569caebf.jpg
@@ -21160,13 +21160,13 @@ tags:
21160
21160
  - description: "Endpoints for submitting and tracking batch command execution.\n\n\
21161
21161
  The Jobs API enables asynchronous execution of bulk operations through batches.\
21162
21162
  \ Submit multiple commands in a single request and poll for completion status.\n\
21163
- \n## Supported Commands\n\n### Single-resource commands\n\n| Command | Description\
21163
+ \n### Supported Commands\n\n#### Single-resource commands\n\n| Command | Description\
21164
21164
  \ |\n|---------|-------------|\n| `domain_create` | Register a new domain |\n\
21165
21165
  | `domain_update` | Modify domain settings (contacts, nameservers, statuses, renewal\
21166
21166
  \ mode) |\n| `domain_transfer` | Initiate an inbound domain transfer |\n| `dns_zone_create`\
21167
21167
  \ | Create a new DNS zone with optional records |\n| `dns_zone_update` | Update\
21168
- \ an existing DNS zone |\n| `contact_create` | Create a new contact |\n\n### Bulk\
21169
- \ commands (template + instances)\n\nBulk commands use a **template + instances**\
21168
+ \ an existing DNS zone |\n| `contact_create` | Create a new contact |\n\n####\
21169
+ \ Bulk commands (template + instances)\n\nBulk commands use a **template + instances**\
21170
21170
  \ pattern. The template defines shared settings applied to all items, while each\
21171
21171
  \ instance specifies a target resource and optional per-resource overrides.\n\n\
21172
21172
  | Command | Description |\n|---------|-------------|\n| `domain_create_bulk` |\
@@ -21179,7 +21179,7 @@ tags:
21179
21179
  \ contacts |\n| `parking_create_bulk` | Create parking pages for multiple domains\
21180
21180
  \ |\n| `parking_enable_bulk` | Enable parking on multiple domains |\n| `parking_disable_bulk`\
21181
21181
  \ | Disable parking on multiple domains |\n| `parking_delete_bulk` | Delete parking\
21182
- \ pages for multiple domains |\n\n## Batch Lifecycle\n\nEach job within a batch\
21182
+ \ pages for multiple domains |\n\n### Batch Lifecycle\n\nEach job within a batch\
21183
21183
  \ transitions through states:\n\n1. **blocked** \u2014 Waiting for eligibility\
21184
21184
  \ (scheduled via `not_before`, or awaiting capacity)\n2. **queued** \u2014 Eligible\
21185
21185
  \ and awaiting processing\n3. **paused** \u2014 Paused; must be explicitly resumed\
@@ -21189,26 +21189,26 @@ tags:
21189
21189
  \ before completion\n8. **dead_letter** \u2014 Permanently failed after exhausting\
21190
21190
  \ retries\n\nA batch itself has a `status` field that is either `pending` (jobs\
21191
21191
  \ are still in progress) or `complete` (all jobs have reached a terminal state).\n\
21192
- \n## Usage Pattern\n\n1. **Submit a batch** \u2014 `POST /v1/jobs` with an array\
21192
+ \n### Usage Pattern\n\n1. **Submit a batch** \u2014 `POST /v1/jobs` with an array\
21193
21193
  \ of commands\n2. **Poll for status** \u2014 `GET /v1/jobs/{batch_id}` to check\
21194
21194
  \ progress counts and `progress_percentage`\n3. **Review results** \u2014 `GET\
21195
- \ /v1/jobs/{batch_id}/jobs` to see individual job outcomes\n\n## Managing Batches\n\
21195
+ \ /v1/jobs/{batch_id}/jobs` to see individual job outcomes\n\n### Managing Batches\n\
21196
21196
  \n- **Pause** \u2014 `POST /v1/jobs/{batch_id}/pause` pauses all eligible jobs\
21197
21197
  \ in the batch\n- **Resume** \u2014 `POST /v1/jobs/{batch_id}/resume` resumes\
21198
21198
  \ all paused jobs\n- **Cancel** \u2014 `DELETE /v1/jobs/{batch_id}` cancels all\
21199
21199
  \ pending jobs in the batch\n\nIndividual jobs can also be paused, resumed, or\
21200
- \ canceled via the `/v1/job/{job_id}` endpoints.\n\n## Limits\n\n- Maximum **50,000\
21200
+ \ canceled via the `/v1/job/{job_id}` endpoints.\n\n### Limits\n\n- Maximum **50,000\
21201
21201
  \ commands** per batch\n- Bulk commands support up to **1,000 instances** per\
21202
- \ command\n\n## Scheduling\n\nUse `not_before` to schedule batch execution for\
21202
+ \ command\n\n### Scheduling\n\nUse `not_before` to schedule batch execution for\
21203
21203
  \ a future time (UTC timestamp). If not provided, processing begins as soon as\
21204
- \ a worker is available.\n\n## Idempotency\n\nEach command can include an optional\
21204
+ \ a worker is available.\n\n### Idempotency\n\nEach command can include an optional\
21205
21205
  \ `idempotency_key` to prevent duplicate execution. If a command with the same\
21206
- \ idempotency key has already been processed, it will be skipped.\n\n## Domain\
21206
+ \ idempotency key has already been processed, it will be skipped.\n\n### Domain\
21207
21207
  \ Status Updates in Batches\n\nThe `domain_update` and `domain_update_bulk` commands\
21208
21208
  \ support two mutually exclusive approaches for modifying domain statuses. These\
21209
21209
  \ work the same way as the `PATCH /v1/domains/{domain_reference}` endpoint \u2014\
21210
21210
  \ see the [Domain management](#tag/Domain-management) documentation for full details\
21211
- \ on `statuses` vs `status_changes`.\n\n### Using `status_changes` in bulk templates\n\
21211
+ \ on `statuses` vs `status_changes`.\n\n#### Using `status_changes` in bulk templates\n\
21212
21212
  \nThe `domain_update_bulk` command is particularly useful with `status_changes`\
21213
21213
  \ when you need to apply the same relative status change across many domains.\
21214
21214
  \ Set `status_changes` in the **template** and list the target domains as **instances**.\
@@ -21217,7 +21217,7 @@ tags:
21217
21217
  template\": {\n \"status_changes\": {\n \"add\": [\"clientTransferProhibited\"\
21218
21218
  ]\n }\n },\n \"instances\": [\n { \"name\": \"example.com\" },\n\
21219
21219
  \ { \"name\": \"example.net\" },\n { \"name\": \"example.org\" }\n \
21220
- \ ]\n }\n}\n```\n\n### Per-domain overrides\n\nIf an instance provides its\
21220
+ \ ]\n }\n}\n```\n\n#### Per-domain overrides\n\nIf an instance provides its\
21221
21221
  \ own `statuses` or `status_changes` field, it completely overrides the template's\
21222
21222
  \ status settings for that domain. This lets you apply a default change to most\
21223
21223
  \ domains while handling exceptions individually:\n\n```json\n{\n \"command\"\
@@ -21237,44 +21237,44 @@ tags:
21237
21237
  '
21238
21238
  name: dns
21239
21239
  x-displayName: DNS Management
21240
- - description: "Endpoints for creating and managing domains.\n\n## Domain References\n\
21240
+ - description: "Endpoints for creating and managing domains.\n\n### Domain References\n\
21241
21241
  \nMost domain endpoints accept a `domain_reference` path parameter. This can be\
21242
21242
  \ either the **domain ID** (e.g., `domain_01jt7deb8mftf8261a54v6m3ey`) or the\
21243
21243
  \ **domain name** (e.g., `example.com`). Both are interchangeable wherever `domain_reference`\
21244
- \ appears.\n\n## Transfer Lock\n\nThe `transfer_lock` field on a domain response\
21244
+ \ appears.\n\n### Transfer Lock\n\nThe `transfer_lock` field on a domain response\
21245
21245
  \ reflects whether the domain has the `clientTransferProhibited` status. Setting\
21246
21246
  \ or removing `clientTransferProhibited` via the `statuses` or `status_changes`\
21247
21247
  \ fields will automatically update `transfer_lock` accordingly. The `transfer_lock`\
21248
- \ field itself is read-only.\n\n## DNS Zone Creation\n\nWhen creating or transferring\
21248
+ \ field itself is read-only.\n\n### DNS Zone Creation\n\nWhen creating or transferring\
21249
21249
  \ a domain, you can set `create_zone` to `true` to automatically provision a DNS\
21250
21250
  \ zone on OpusDNS nameserver infrastructure. Zone creation and nameserver assignment\
21251
21251
  \ are handled asynchronously after the domain operation completes, so there may\
21252
21252
  \ be a short delay before the zone is created and nameservers are active.\n\n\
21253
- ## Updating Domain Statuses\n\n`PATCH /v1/domains/{domain_reference}` supports\
21253
+ ### Updating Domain Statuses\n\n`PATCH /v1/domains/{domain_reference}` supports\
21254
21254
  \ two mutually exclusive approaches for modifying client statuses. You **cannot**\
21255
- \ use both in the same request.\n\n### Option 1: `statuses` (absolute / declarative)\n\
21255
+ \ use both in the same request.\n\n#### Option 1: `statuses` (absolute / declarative)\n\
21256
21256
  \nProvide the **complete list** of client statuses the domain should have. The\
21257
21257
  \ API computes the diff against the current state and adds or removes statuses\
21258
21258
  \ accordingly.\n\n```json\n{\n \"statuses\": [\"clientTransferProhibited\", \"\
21259
21259
  clientDeleteProhibited\"]\n}\n```\n\nUse this when you know exactly which statuses\
21260
21260
  \ the domain should end up with. Any current client statuses not in the list will\
21261
- \ be removed.\n\n### Option 2: `status_changes` (relative / delta)\n\nSpecify\
21261
+ \ be removed.\n\n#### Option 2: `status_changes` (relative / delta)\n\nSpecify\
21262
21262
  \ which statuses to **add** and/or **remove** relative to the domain's current\
21263
21263
  \ state. Statuses not mentioned are left unchanged.\n\n```json\n{\n \"status_changes\"\
21264
21264
  : {\n \"add\": [\"clientTransferProhibited\"],\n \"remove\": [\"clientHold\"\
21265
21265
  ]\n }\n}\n```\n\nUse this when you want to make a targeted change without needing\
21266
21266
  \ to know the domain's full current status set. This is especially useful in bulk\
21267
21267
  \ operations where different domains may have different existing statuses.\n\n\
21268
- ### Validation rules\n\n- At least one of `add` or `remove` must contain a value\n\
21268
+ #### Validation rules\n\n- At least one of `add` or `remove` must contain a value\n\
21269
21269
  - A status cannot appear in both `add` and `remove`\n- Only client statuses are\
21270
- \ accepted \u2014 server statuses cannot be modified\n\n### When to use which\n\
21270
+ \ accepted \u2014 server statuses cannot be modified\n\n#### When to use which\n\
21271
21271
  \n| Scenario | Recommended approach |\n|----------|---------------------|\n| Setting\
21272
21272
  \ up a domain's statuses for the first time | `statuses` |\n| Locking many domains\
21273
21273
  \ for transfer without touching other statuses | `status_changes` with `add` |\n\
21274
21274
  | Releasing a hold on a specific domain | `status_changes` with `remove` |\n|\
21275
21275
  \ Replacing all statuses as part of a known workflow | `statuses` |\n| Applying\
21276
21276
  \ the same change across a batch of domains with varying existing statuses | `status_changes`\
21277
- \ via `domain_update_bulk` |\n\n### Blocking statuses\n\nSome statuses prevent\
21277
+ \ via `domain_update_bulk` |\n\n#### Blocking statuses\n\nSome statuses prevent\
21278
21278
  \ domain updates entirely. If the domain has any of the following, the update\
21279
21279
  \ will be rejected:\n\n- `clientUpdateProhibited`\n- `serverUpdateProhibited`\n\
21280
21280
  - `pendingTransfer`\n- `pendingRestore`\n- `pendingDelete`\n- `redemptionPeriod`\n\
@@ -21333,19 +21333,19 @@ tags:
21333
21333
  x-displayName: Users
21334
21334
  - description: "Endpoints for generating and downloading inventory reports.\n\nReports\
21335
21335
  \ provide exportable snapshots of your domain and DNS data. Reports are generated\
21336
- \ asynchronously and can be downloaded as ZIP files once complete.\n\n## Report\
21336
+ \ asynchronously and can be downloaded as ZIP files once complete.\n\n### Report\
21337
21337
  \ Types\n\n| Type | Description |\n|------|-------------|\n| `domain_inventory`\
21338
21338
  \ | Full inventory of all domains in the organization |\n| `dns_zone_summary`\
21339
21339
  \ | Summary of all DNS zones and their configuration |\n| `dns_zone_records` |\
21340
- \ Detailed export of all DNS records across zones |\n\n## Report Lifecycle\n\n\
21340
+ \ Detailed export of all DNS records across zones |\n\n### Report Lifecycle\n\n\
21341
21341
  A report transitions through the following statuses:\n\n1. **pending** \u2014\
21342
21342
  \ Report has been queued for generation\n2. **generating** \u2014 Report is being\
21343
21343
  \ built\n3. **completed** \u2014 Report is ready for download\n4. **failed** \u2014\
21344
- \ Generation failed\n\n## Usage Pattern\n\n1. **Request a report** \u2014 `POST\
21344
+ \ Generation failed\n\n### Usage Pattern\n\n1. **Request a report** \u2014 `POST\
21345
21345
  \ /v1/reports` with the desired `report_type`\n2. **Poll for completion** \u2014\
21346
21346
  \ `GET /v1/reports/{report_id}` until `status` is `completed`\n3. **Download**\
21347
21347
  \ \u2014 `GET /v1/reports/{report_id}/download` returns the report as a streamed\
21348
- \ ZIP file\n\n## Downloading Reports\n\n`GET /v1/reports/{report_id}/download`\
21348
+ \ ZIP file\n\n### Downloading Reports\n\n`GET /v1/reports/{report_id}/download`\
21349
21349
  \ streams the report file directly to the client. The report **must** have status\
21350
21350
  \ `completed` before it can be downloaded \u2014 calling this endpoint on a report\
21351
21351
  \ that is still `pending` or `generating` returns `409 Conflict`.\n\n**Response\
@@ -21354,19 +21354,19 @@ tags:
21354
21354
  \ |\n| `Content-Length` | File size in bytes (included when known) |\n\nThe response\
21355
21355
  \ body is streamed in chunks, so clients should read the body incrementally rather\
21356
21356
  \ than buffering it entirely in memory. When `Content-Length` is present, it can\
21357
- \ be used to display download progress.\n\n## Trigger Types\n\n| Type | Description\
21357
+ \ be used to display download progress.\n\n### Trigger Types\n\n| Type | Description\
21358
21358
  \ |\n|------|-------------|\n| `on_demand` | Manually requested via the API |\n\
21359
- | `scheduled` | Automatically generated on a recurring schedule |\n\n## Rate Limiting\n\
21360
- \nReport creation is rate-limited at two levels:\n\n- **Cooldown** \u2014 After\
21361
- \ creating a report, you must wait **5 minutes** before requesting another report\
21362
- \ of the same type. Requests during the cooldown return `429 Too Many Requests`\
21363
- \ with a `Retry-After` header.\n- **Hourly limit** \u2014 Only **one report per\
21364
- \ type per organization per clock hour** (UTC) can be generated. Duplicate requests\
21365
- \ within the same hour will not produce an additional report.\n\n## Retention\n\
21366
- \nThe **30 most recent reports** of each type are kept per organization. Older\
21367
- \ reports and their associated files are automatically deleted when a new report\
21368
- \ is generated.\n\n## Listing Reports\n\nUse `GET /v1/reports` to list reports\
21369
- \ with optional filters:\n\n| Parameter | Description |\n|-----------|-------------|\n\
21359
+ | `scheduled` | Automatically generated on a recurring schedule |\n\n### Rate\
21360
+ \ Limiting\n\nReport creation is rate-limited at two levels:\n\n- **Cooldown**\
21361
+ \ \u2014 After creating a report, you must wait **5 minutes** before requesting\
21362
+ \ another report of the same type. Requests during the cooldown return `429 Too\
21363
+ \ Many Requests` with a `Retry-After` header.\n- **Hourly limit** \u2014 Only\
21364
+ \ **one report per type per organization per clock hour** (UTC) can be generated.\
21365
+ \ Duplicate requests within the same hour will not produce an additional report.\n\
21366
+ \n### Retention\n\nThe **30 most recent reports** of each type are kept per organization.\
21367
+ \ Older reports and their associated files are automatically deleted when a new\
21368
+ \ report is generated.\n\n### Listing Reports\n\nUse `GET /v1/reports` to list\
21369
+ \ reports with optional filters:\n\n| Parameter | Description |\n|-----------|-------------|\n\
21370
21370
  | `report_type` | Filter by report type (repeatable) |\n| `status` | Filter by\
21371
21371
  \ report status (repeatable) |\n| `trigger_type` | Filter by trigger type |\n\
21372
21372
  | `created_after` | Only reports created after this timestamp |\n| `created_before`\