@opusdns/api 0.232.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 +55 -53
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.232.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
- \ authentication using the `/v1/auth/token` endpoint\n\n## Creating an API key\
9606
- \ in the Dashboard\n\nYou can create API keys from the OpusDNS Dashboard.\n\n\
9607
- - Create a new API key in the dashboard under [API Credentials](https://app.opusdns.com/developer/api-credentials)\n\
9608
- \nStore the generated key securely when it is shown to you.\n## Authentication\
9609
- \ options\n\n### Option 1: `X-Api-Key` header\n\nSend your full OpusDNS API key\
9610
- \ in the `X-Api-Key` header on each request:\n\n```http\nGET /v1/domains HTTP/1.1\n\
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\
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
+ \ 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,13 +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\n"
9652
+ \ and try them out yourself!\n\n#### OpusDNS Go Client\n\nWe offer a client implementation\
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\n"
9653
9655
  summary: OpusDNS - your gateway to a seamless domain management experience.
9654
9656
  title: OpusDNS API
9655
- version: 2026-04-01-081711
9657
+ version: 2026-04-01-093850
9656
9658
  x-logo:
9657
9659
  altText: OpusDNS API Reference
9658
9660
  url: https://d24lr4zqs1tgqh.cloudfront.net/c9505a20-5ae1-406c-b060-d392569caebf.jpg
@@ -21158,13 +21160,13 @@ tags:
21158
21160
  - description: "Endpoints for submitting and tracking batch command execution.\n\n\
21159
21161
  The Jobs API enables asynchronous execution of bulk operations through batches.\
21160
21162
  \ Submit multiple commands in a single request and poll for completion status.\n\
21161
- \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\
21162
21164
  \ |\n|---------|-------------|\n| `domain_create` | Register a new domain |\n\
21163
21165
  | `domain_update` | Modify domain settings (contacts, nameservers, statuses, renewal\
21164
21166
  \ mode) |\n| `domain_transfer` | Initiate an inbound domain transfer |\n| `dns_zone_create`\
21165
21167
  \ | Create a new DNS zone with optional records |\n| `dns_zone_update` | Update\
21166
- \ an existing DNS zone |\n| `contact_create` | Create a new contact |\n\n### Bulk\
21167
- \ 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**\
21168
21170
  \ pattern. The template defines shared settings applied to all items, while each\
21169
21171
  \ instance specifies a target resource and optional per-resource overrides.\n\n\
21170
21172
  | Command | Description |\n|---------|-------------|\n| `domain_create_bulk` |\
@@ -21177,7 +21179,7 @@ tags:
21177
21179
  \ contacts |\n| `parking_create_bulk` | Create parking pages for multiple domains\
21178
21180
  \ |\n| `parking_enable_bulk` | Enable parking on multiple domains |\n| `parking_disable_bulk`\
21179
21181
  \ | Disable parking on multiple domains |\n| `parking_delete_bulk` | Delete parking\
21180
- \ 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\
21181
21183
  \ transitions through states:\n\n1. **blocked** \u2014 Waiting for eligibility\
21182
21184
  \ (scheduled via `not_before`, or awaiting capacity)\n2. **queued** \u2014 Eligible\
21183
21185
  \ and awaiting processing\n3. **paused** \u2014 Paused; must be explicitly resumed\
@@ -21187,26 +21189,26 @@ tags:
21187
21189
  \ before completion\n8. **dead_letter** \u2014 Permanently failed after exhausting\
21188
21190
  \ retries\n\nA batch itself has a `status` field that is either `pending` (jobs\
21189
21191
  \ are still in progress) or `complete` (all jobs have reached a terminal state).\n\
21190
- \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\
21191
21193
  \ of commands\n2. **Poll for status** \u2014 `GET /v1/jobs/{batch_id}` to check\
21192
21194
  \ progress counts and `progress_percentage`\n3. **Review results** \u2014 `GET\
21193
- \ /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\
21194
21196
  \n- **Pause** \u2014 `POST /v1/jobs/{batch_id}/pause` pauses all eligible jobs\
21195
21197
  \ in the batch\n- **Resume** \u2014 `POST /v1/jobs/{batch_id}/resume` resumes\
21196
21198
  \ all paused jobs\n- **Cancel** \u2014 `DELETE /v1/jobs/{batch_id}` cancels all\
21197
21199
  \ pending jobs in the batch\n\nIndividual jobs can also be paused, resumed, or\
21198
- \ 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\
21199
21201
  \ commands** per batch\n- Bulk commands support up to **1,000 instances** per\
21200
- \ 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\
21201
21203
  \ a future time (UTC timestamp). If not provided, processing begins as soon as\
21202
- \ 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\
21203
21205
  \ `idempotency_key` to prevent duplicate execution. If a command with the same\
21204
- \ 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\
21205
21207
  \ Status Updates in Batches\n\nThe `domain_update` and `domain_update_bulk` commands\
21206
21208
  \ support two mutually exclusive approaches for modifying domain statuses. These\
21207
21209
  \ work the same way as the `PATCH /v1/domains/{domain_reference}` endpoint \u2014\
21208
21210
  \ see the [Domain management](#tag/Domain-management) documentation for full details\
21209
- \ 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\
21210
21212
  \nThe `domain_update_bulk` command is particularly useful with `status_changes`\
21211
21213
  \ when you need to apply the same relative status change across many domains.\
21212
21214
  \ Set `status_changes` in the **template** and list the target domains as **instances**.\
@@ -21215,7 +21217,7 @@ tags:
21215
21217
  template\": {\n \"status_changes\": {\n \"add\": [\"clientTransferProhibited\"\
21216
21218
  ]\n }\n },\n \"instances\": [\n { \"name\": \"example.com\" },\n\
21217
21219
  \ { \"name\": \"example.net\" },\n { \"name\": \"example.org\" }\n \
21218
- \ ]\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\
21219
21221
  \ own `statuses` or `status_changes` field, it completely overrides the template's\
21220
21222
  \ status settings for that domain. This lets you apply a default change to most\
21221
21223
  \ domains while handling exceptions individually:\n\n```json\n{\n \"command\"\
@@ -21235,44 +21237,44 @@ tags:
21235
21237
  '
21236
21238
  name: dns
21237
21239
  x-displayName: DNS Management
21238
- - 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\
21239
21241
  \nMost domain endpoints accept a `domain_reference` path parameter. This can be\
21240
21242
  \ either the **domain ID** (e.g., `domain_01jt7deb8mftf8261a54v6m3ey`) or the\
21241
21243
  \ **domain name** (e.g., `example.com`). Both are interchangeable wherever `domain_reference`\
21242
- \ 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\
21243
21245
  \ reflects whether the domain has the `clientTransferProhibited` status. Setting\
21244
21246
  \ or removing `clientTransferProhibited` via the `statuses` or `status_changes`\
21245
21247
  \ fields will automatically update `transfer_lock` accordingly. The `transfer_lock`\
21246
- \ 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\
21247
21249
  \ a domain, you can set `create_zone` to `true` to automatically provision a DNS\
21248
21250
  \ zone on OpusDNS nameserver infrastructure. Zone creation and nameserver assignment\
21249
21251
  \ are handled asynchronously after the domain operation completes, so there may\
21250
21252
  \ be a short delay before the zone is created and nameservers are active.\n\n\
21251
- ## Updating Domain Statuses\n\n`PATCH /v1/domains/{domain_reference}` supports\
21253
+ ### Updating Domain Statuses\n\n`PATCH /v1/domains/{domain_reference}` supports\
21252
21254
  \ two mutually exclusive approaches for modifying client statuses. You **cannot**\
21253
- \ 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\
21254
21256
  \nProvide the **complete list** of client statuses the domain should have. The\
21255
21257
  \ API computes the diff against the current state and adds or removes statuses\
21256
21258
  \ accordingly.\n\n```json\n{\n \"statuses\": [\"clientTransferProhibited\", \"\
21257
21259
  clientDeleteProhibited\"]\n}\n```\n\nUse this when you know exactly which statuses\
21258
21260
  \ the domain should end up with. Any current client statuses not in the list will\
21259
- \ 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\
21260
21262
  \ which statuses to **add** and/or **remove** relative to the domain's current\
21261
21263
  \ state. Statuses not mentioned are left unchanged.\n\n```json\n{\n \"status_changes\"\
21262
21264
  : {\n \"add\": [\"clientTransferProhibited\"],\n \"remove\": [\"clientHold\"\
21263
21265
  ]\n }\n}\n```\n\nUse this when you want to make a targeted change without needing\
21264
21266
  \ to know the domain's full current status set. This is especially useful in bulk\
21265
21267
  \ operations where different domains may have different existing statuses.\n\n\
21266
- ### 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\
21267
21269
  - A status cannot appear in both `add` and `remove`\n- Only client statuses are\
21268
- \ 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\
21269
21271
  \n| Scenario | Recommended approach |\n|----------|---------------------|\n| Setting\
21270
21272
  \ up a domain's statuses for the first time | `statuses` |\n| Locking many domains\
21271
21273
  \ for transfer without touching other statuses | `status_changes` with `add` |\n\
21272
21274
  | Releasing a hold on a specific domain | `status_changes` with `remove` |\n|\
21273
21275
  \ Replacing all statuses as part of a known workflow | `statuses` |\n| Applying\
21274
21276
  \ the same change across a batch of domains with varying existing statuses | `status_changes`\
21275
- \ 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\
21276
21278
  \ domain updates entirely. If the domain has any of the following, the update\
21277
21279
  \ will be rejected:\n\n- `clientUpdateProhibited`\n- `serverUpdateProhibited`\n\
21278
21280
  - `pendingTransfer`\n- `pendingRestore`\n- `pendingDelete`\n- `redemptionPeriod`\n\
@@ -21331,19 +21333,19 @@ tags:
21331
21333
  x-displayName: Users
21332
21334
  - description: "Endpoints for generating and downloading inventory reports.\n\nReports\
21333
21335
  \ provide exportable snapshots of your domain and DNS data. Reports are generated\
21334
- \ 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\
21335
21337
  \ Types\n\n| Type | Description |\n|------|-------------|\n| `domain_inventory`\
21336
21338
  \ | Full inventory of all domains in the organization |\n| `dns_zone_summary`\
21337
21339
  \ | Summary of all DNS zones and their configuration |\n| `dns_zone_records` |\
21338
- \ 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\
21339
21341
  A report transitions through the following statuses:\n\n1. **pending** \u2014\
21340
21342
  \ Report has been queued for generation\n2. **generating** \u2014 Report is being\
21341
21343
  \ built\n3. **completed** \u2014 Report is ready for download\n4. **failed** \u2014\
21342
- \ 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\
21343
21345
  \ /v1/reports` with the desired `report_type`\n2. **Poll for completion** \u2014\
21344
21346
  \ `GET /v1/reports/{report_id}` until `status` is `completed`\n3. **Download**\
21345
21347
  \ \u2014 `GET /v1/reports/{report_id}/download` returns the report as a streamed\
21346
- \ 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`\
21347
21349
  \ streams the report file directly to the client. The report **must** have status\
21348
21350
  \ `completed` before it can be downloaded \u2014 calling this endpoint on a report\
21349
21351
  \ that is still `pending` or `generating` returns `409 Conflict`.\n\n**Response\
@@ -21352,19 +21354,19 @@ tags:
21352
21354
  \ |\n| `Content-Length` | File size in bytes (included when known) |\n\nThe response\
21353
21355
  \ body is streamed in chunks, so clients should read the body incrementally rather\
21354
21356
  \ than buffering it entirely in memory. When `Content-Length` is present, it can\
21355
- \ 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\
21356
21358
  \ |\n|------|-------------|\n| `on_demand` | Manually requested via the API |\n\
21357
- | `scheduled` | Automatically generated on a recurring schedule |\n\n## Rate Limiting\n\
21358
- \nReport creation is rate-limited at two levels:\n\n- **Cooldown** \u2014 After\
21359
- \ creating a report, you must wait **5 minutes** before requesting another report\
21360
- \ of the same type. Requests during the cooldown return `429 Too Many Requests`\
21361
- \ with a `Retry-After` header.\n- **Hourly limit** \u2014 Only **one report per\
21362
- \ type per organization per clock hour** (UTC) can be generated. Duplicate requests\
21363
- \ within the same hour will not produce an additional report.\n\n## Retention\n\
21364
- \nThe **30 most recent reports** of each type are kept per organization. Older\
21365
- \ reports and their associated files are automatically deleted when a new report\
21366
- \ is generated.\n\n## Listing Reports\n\nUse `GET /v1/reports` to list reports\
21367
- \ 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\
21368
21370
  | `report_type` | Filter by report type (repeatable) |\n| `status` | Filter by\
21369
21371
  \ report status (repeatable) |\n| `trigger_type` | Filter by trigger type |\n\
21370
21372
  | `created_after` | Only reports created after this timestamp |\n| `created_before`\