@opusdns/api 0.270.0 → 0.272.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.
package/src/openapi.yaml CHANGED
@@ -2345,7 +2345,9 @@ components:
2345
2345
  $ref: '#/components/schemas/DnsRrsetCreate'
2346
2346
  type: array
2347
2347
  - type: 'null'
2348
- description: Override RRsets for this zone
2348
+ description: Override RRsets for this zone. Omit to inherit the template
2349
+ (or leave records unchanged if the template also omits rrsets). Provide
2350
+ an empty list to delete all records.
2349
2351
  title: Rrsets
2350
2352
  required:
2351
2353
  - name
@@ -2377,11 +2379,15 @@ components:
2377
2379
  - type: 'null'
2378
2380
  description: DNSSEC status for all zones
2379
2381
  rrsets:
2380
- description: DNS record sets to update
2381
- items:
2382
- $ref: '#/components/schemas/DnsRrsetCreate'
2382
+ anyOf:
2383
+ - items:
2384
+ $ref: '#/components/schemas/DnsRrsetCreate'
2385
+ type: array
2386
+ - type: 'null'
2387
+ description: DNS record sets to apply to every zone. Omit to leave each
2388
+ zone's RRsets unchanged (useful for bulk DNSSEC toggles). Provide an empty
2389
+ list to delete all records.
2383
2390
  title: Rrsets
2384
- type: array
2385
2391
  title: DnsZoneUpdateBulkTemplate
2386
2392
  type: object
2387
2393
  DnsZoneUpdateCommand:
@@ -10147,7 +10153,7 @@ info:
10147
10153
  \n\n"
10148
10154
  summary: OpusDNS - your gateway to a seamless domain management experience.
10149
10155
  title: OpusDNS API
10150
- version: 2026-04-24-174932
10156
+ version: 2026-04-27-163825
10151
10157
  x-logo:
10152
10158
  altText: OpusDNS API Reference
10153
10159
  url: https://d24lr4zqs1tgqh.cloudfront.net/c9505a20-5ae1-406c-b060-d392569caebf.jpg
@@ -19805,156 +19811,6 @@ paths:
19805
19811
  summary: Update organization attributes
19806
19812
  tags:
19807
19813
  - organization
19808
- /v1/organizations/attributes/{organization_id}:
19809
- get:
19810
- description: Retrieves a list of organization attributes for the specified organization
19811
- operationId: get_attributes_v1_organizations_attributes__organization_id__get
19812
- parameters:
19813
- - in: path
19814
- name: organization_id
19815
- required: true
19816
- schema:
19817
- anyOf:
19818
- - examples:
19819
- - organization_01h45ytscbebyvny4gc8cr8ma2
19820
- format: typeid
19821
- pattern: ^organization_[0-7][0-9a-hjkmnpq-tv-z]{25}$
19822
- type: string
19823
- x-typeid-prefix: organization
19824
- - type: 'null'
19825
- title: Organization Id
19826
- - description: Optional list of attribute keys to filter
19827
- in: query
19828
- name: keys
19829
- required: false
19830
- schema:
19831
- anyOf:
19832
- - items:
19833
- type: string
19834
- type: array
19835
- - type: 'null'
19836
- description: Optional list of attribute keys to filter
19837
- title: Keys
19838
- responses:
19839
- '200':
19840
- content:
19841
- application/json:
19842
- schema:
19843
- items:
19844
- $ref: '#/components/schemas/OrganizationAttributeResponse'
19845
- title: Response Get Attributes V1 Organizations Attributes Organization
19846
- Id Get
19847
- type: array
19848
- description: Successful Response
19849
- '401':
19850
- content:
19851
- application/problem+json:
19852
- example:
19853
- code: ERROR_AUTHENTICATION
19854
- detail: Additional error context.
19855
- status: 401
19856
- title: Authentication Error
19857
- type: authentication
19858
- schema:
19859
- $ref: '#/components/schemas/Problem'
19860
- description: Unauthorized
19861
- '403':
19862
- content:
19863
- application/problem+json:
19864
- example:
19865
- code: ERROR_PERMISSION_DENIED
19866
- detail: Insufficient permissions to perform this action
19867
- status: 403
19868
- title: Permission Denied
19869
- type: permission-denied
19870
- schema:
19871
- $ref: '#/components/schemas/Problem'
19872
- description: Forbidden
19873
- '422':
19874
- content:
19875
- application/problem+json:
19876
- schema:
19877
- $ref: '#/components/schemas/HTTPValidationError'
19878
- description: Validation Error
19879
- security:
19880
- - OAuth2PasswordBearer: []
19881
- - APIKeyHeader: []
19882
- summary: List organization attributes
19883
- tags:
19884
- - organization
19885
- patch:
19886
- description: Updates one or more organization attributes for the specified organization
19887
- operationId: update_attributes_v1_organizations_attributes__organization_id__patch
19888
- parameters:
19889
- - in: path
19890
- name: organization_id
19891
- required: true
19892
- schema:
19893
- anyOf:
19894
- - examples:
19895
- - organization_01h45ytscbebyvny4gc8cr8ma2
19896
- format: typeid
19897
- pattern: ^organization_[0-7][0-9a-hjkmnpq-tv-z]{25}$
19898
- type: string
19899
- x-typeid-prefix: organization
19900
- - type: 'null'
19901
- title: Organization Id
19902
- requestBody:
19903
- content:
19904
- application/json:
19905
- schema:
19906
- items:
19907
- $ref: '#/components/schemas/OrganizationAttributeUpdate'
19908
- title: Attributes
19909
- type: array
19910
- required: true
19911
- responses:
19912
- '200':
19913
- content:
19914
- application/json:
19915
- schema:
19916
- items:
19917
- $ref: '#/components/schemas/OrganizationAttributeResponse'
19918
- title: Response Update Attributes V1 Organizations Attributes Organization
19919
- Id Patch
19920
- type: array
19921
- description: Successful Response
19922
- '401':
19923
- content:
19924
- application/problem+json:
19925
- example:
19926
- code: ERROR_AUTHENTICATION
19927
- detail: Additional error context.
19928
- status: 401
19929
- title: Authentication Error
19930
- type: authentication
19931
- schema:
19932
- $ref: '#/components/schemas/Problem'
19933
- description: Unauthorized
19934
- '403':
19935
- content:
19936
- application/problem+json:
19937
- example:
19938
- code: ERROR_PERMISSION_DENIED
19939
- detail: Insufficient permissions to perform this action
19940
- status: 403
19941
- title: Permission Denied
19942
- type: permission-denied
19943
- schema:
19944
- $ref: '#/components/schemas/Problem'
19945
- description: Forbidden
19946
- '422':
19947
- content:
19948
- application/problem+json:
19949
- schema:
19950
- $ref: '#/components/schemas/HTTPValidationError'
19951
- description: Validation Error
19952
- security:
19953
- - OAuth2PasswordBearer: []
19954
- - APIKeyHeader: []
19955
- summary: Update organization attributes
19956
- tags:
19957
- - organization
19958
19814
  /v1/organizations/ip-restrictions:
19959
19815
  get:
19960
19816
  description: 'List all IP restrictions for the organization.
@@ -20557,6 +20413,156 @@ paths:
20557
20413
  summary: Update an organization
20558
20414
  tags:
20559
20415
  - organization
20416
+ /v1/organizations/{organization_id}/attributes:
20417
+ get:
20418
+ description: Retrieves a list of organization attributes for the specified organization
20419
+ operationId: get_attributes_v1_organizations__organization_id__attributes_get
20420
+ parameters:
20421
+ - in: path
20422
+ name: organization_id
20423
+ required: true
20424
+ schema:
20425
+ anyOf:
20426
+ - examples:
20427
+ - organization_01h45ytscbebyvny4gc8cr8ma2
20428
+ format: typeid
20429
+ pattern: ^organization_[0-7][0-9a-hjkmnpq-tv-z]{25}$
20430
+ type: string
20431
+ x-typeid-prefix: organization
20432
+ - type: 'null'
20433
+ title: Organization Id
20434
+ - description: Optional list of attribute keys to filter
20435
+ in: query
20436
+ name: keys
20437
+ required: false
20438
+ schema:
20439
+ anyOf:
20440
+ - items:
20441
+ type: string
20442
+ type: array
20443
+ - type: 'null'
20444
+ description: Optional list of attribute keys to filter
20445
+ title: Keys
20446
+ responses:
20447
+ '200':
20448
+ content:
20449
+ application/json:
20450
+ schema:
20451
+ items:
20452
+ $ref: '#/components/schemas/OrganizationAttributeResponse'
20453
+ title: Response Get Attributes V1 Organizations Organization Id Attributes
20454
+ Get
20455
+ type: array
20456
+ description: Successful Response
20457
+ '401':
20458
+ content:
20459
+ application/problem+json:
20460
+ example:
20461
+ code: ERROR_AUTHENTICATION
20462
+ detail: Additional error context.
20463
+ status: 401
20464
+ title: Authentication Error
20465
+ type: authentication
20466
+ schema:
20467
+ $ref: '#/components/schemas/Problem'
20468
+ description: Unauthorized
20469
+ '403':
20470
+ content:
20471
+ application/problem+json:
20472
+ example:
20473
+ code: ERROR_PERMISSION_DENIED
20474
+ detail: Insufficient permissions to perform this action
20475
+ status: 403
20476
+ title: Permission Denied
20477
+ type: permission-denied
20478
+ schema:
20479
+ $ref: '#/components/schemas/Problem'
20480
+ description: Forbidden
20481
+ '422':
20482
+ content:
20483
+ application/problem+json:
20484
+ schema:
20485
+ $ref: '#/components/schemas/HTTPValidationError'
20486
+ description: Validation Error
20487
+ security:
20488
+ - OAuth2PasswordBearer: []
20489
+ - APIKeyHeader: []
20490
+ summary: List organization attributes
20491
+ tags:
20492
+ - organization
20493
+ patch:
20494
+ description: Updates one or more organization attributes for the specified organization
20495
+ operationId: update_attributes_v1_organizations__organization_id__attributes_patch
20496
+ parameters:
20497
+ - in: path
20498
+ name: organization_id
20499
+ required: true
20500
+ schema:
20501
+ anyOf:
20502
+ - examples:
20503
+ - organization_01h45ytscbebyvny4gc8cr8ma2
20504
+ format: typeid
20505
+ pattern: ^organization_[0-7][0-9a-hjkmnpq-tv-z]{25}$
20506
+ type: string
20507
+ x-typeid-prefix: organization
20508
+ - type: 'null'
20509
+ title: Organization Id
20510
+ requestBody:
20511
+ content:
20512
+ application/json:
20513
+ schema:
20514
+ items:
20515
+ $ref: '#/components/schemas/OrganizationAttributeUpdate'
20516
+ title: Attributes
20517
+ type: array
20518
+ required: true
20519
+ responses:
20520
+ '200':
20521
+ content:
20522
+ application/json:
20523
+ schema:
20524
+ items:
20525
+ $ref: '#/components/schemas/OrganizationAttributeResponse'
20526
+ title: Response Update Attributes V1 Organizations Organization Id Attributes
20527
+ Patch
20528
+ type: array
20529
+ description: Successful Response
20530
+ '401':
20531
+ content:
20532
+ application/problem+json:
20533
+ example:
20534
+ code: ERROR_AUTHENTICATION
20535
+ detail: Additional error context.
20536
+ status: 401
20537
+ title: Authentication Error
20538
+ type: authentication
20539
+ schema:
20540
+ $ref: '#/components/schemas/Problem'
20541
+ description: Unauthorized
20542
+ '403':
20543
+ content:
20544
+ application/problem+json:
20545
+ example:
20546
+ code: ERROR_PERMISSION_DENIED
20547
+ detail: Insufficient permissions to perform this action
20548
+ status: 403
20549
+ title: Permission Denied
20550
+ type: permission-denied
20551
+ schema:
20552
+ $ref: '#/components/schemas/Problem'
20553
+ description: Forbidden
20554
+ '422':
20555
+ content:
20556
+ application/problem+json:
20557
+ schema:
20558
+ $ref: '#/components/schemas/HTTPValidationError'
20559
+ description: Validation Error
20560
+ security:
20561
+ - OAuth2PasswordBearer: []
20562
+ - APIKeyHeader: []
20563
+ summary: Update organization attributes
20564
+ tags:
20565
+ - organization
20560
20566
  /v1/organizations/{organization_id}/billing/invoices:
20561
20567
  get:
20562
20568
  description: Retrieves a paginated list of all invoices for the organization
@@ -22474,7 +22480,12 @@ tags:
22474
22480
  \ updates. For each zone, whatever rrsets you supply become the zone's rrsets\
22475
22481
  \ \u2014 anything not listed is removed. System-managed record types (SOA, DNSKEY,\
22476
22482
  \ DS) cannot be set via this command. This is also the command to flip DNSSEC\
22477
- \ on or off across many zones.\n\nPayload: `template` (shared `rrsets` and `dnssec_status`)\
22483
+ \ on or off across many zones.\n\nBoth `rrsets` and `dnssec_status` are partial-update\
22484
+ \ fields:\n\n| Value | Meaning |\n| --- | --- |\n| omitted (in both template and\
22485
+ \ instance) | leave that field unchanged on the zone |\n| `[]` (rrsets only) |\
22486
+ \ delete all records |\n| `[...]` / a status value | replace |\n\nAn instance\
22487
+ \ with neither `rrsets` nor `dnssec_status` (after the template is merged in)\
22488
+ \ is rejected as a no-op.\n\nPayload: `template` (shared `rrsets` and `dnssec_status`)\
22478
22489
  \ + `instances[]` (per-zone overrides).\n\n```json\n{\n \"command\": \"dns_zone_update_bulk\"\
22479
22490
  ,\n \"payload\": {\n \"template\": {\n \"rrsets\": [\n {\"name\"\
22480
22491
  : \"@\", \"type\": \"A\", \"ttl\": 300, \"records\": [{\"rdata\": \"203.0.113.10\"\
@@ -22482,35 +22493,39 @@ tags:
22482
22493
  : [\n { \"name\": \"example.com\" },\n {\n \"name\": \"example.net\"\
22483
22494
  ,\n \"rrsets\": [\n {\"name\": \"@\", \"type\": \"A\", \"ttl\"\
22484
22495
  : 300, \"records\": [{\"rdata\": \"203.0.113.20\"}]}\n ]\n }\n \
22485
- \ ]\n }\n}\n```\n\n#### `dns_zone_patch_rrsets_bulk`\n\nBulk equivalent of `PATCH\
22486
- \ /v1/dns/{zone_name}/rrsets`. Each instance is `{ zone_name, ops[] }`, where\
22487
- \ each op targets an rrset by `(name, type)`:\n\n- `op: \"upsert\"` \u2014 create\
22488
- \ or **replace** the rrset with the records you provide. Any prior records for\
22489
- \ that `(name, type)` are discarded.\n- `op: \"remove\"` \u2014 delete the entire\
22490
- \ rrset (pass `records: []`).\n\n```json\n{\n \"command\": \"dns_zone_patch_rrsets_bulk\"\
22491
- ,\n \"payload\": {\n \"instances\": [\n {\n \"zone_name\": \"\
22492
- example.com\",\n \"ops\": [\n {\n \"op\": \"upsert\"\
22493
- ,\n \"rrset\": {\n \"name\": \"www\", \"type\": \"A\"\
22494
- , \"ttl\": 300,\n \"records\": [\n {\"rdata\": \"\
22495
- 203.0.113.10\"},\n {\"rdata\": \"203.0.113.11\"}\n \
22496
- \ ]\n }\n },\n {\n \"op\": \"remove\"\
22497
- ,\n \"rrset\": {\"name\": \"old\", \"type\": \"CNAME\", \"ttl\": 300,\
22498
- \ \"records\": []}\n }\n ]\n }\n ]\n }\n}\n```\n\n####\
22499
- \ `dns_zone_patch_records_bulk`\n\nBulk equivalent of `PATCH /v1/dns/{zone_name}/records`.\
22500
- \ Each instance is `{ zone_name, ops[] }`, where each op targets a single `rdata`\
22501
- \ value inside an rrset. Note the op payload uses a single `rdata` field, not\
22502
- \ `records[]`.\n\n- `op: \"upsert\"` \u2014 add or update that one rdata value\
22503
- \ (creates the rrset if it doesn't exist). Sibling records in the rrset are untouched.\n\
22504
- - `op: \"remove\"` \u2014 remove just that one rdata value. Other records in the\
22505
- \ rrset remain.\n\n```json\n{\n \"command\": \"dns_zone_patch_records_bulk\"\
22506
- ,\n \"payload\": {\n \"instances\": [\n {\n \"zone_name\": \"\
22507
- example.com\",\n \"ops\": [\n {\n \"op\": \"upsert\"\
22508
- ,\n \"record\": {\n \"name\": \"@\", \"type\": \"MX\"\
22509
- , \"ttl\": 300,\n \"rdata\": \"5 new-mail.example.com.\"\n \
22510
- \ }\n },\n {\n \"op\": \"remove\",\n \
22511
- \ \"record\": {\n \"name\": \"@\", \"type\": \"MX\", \"ttl\"\
22512
- : 300,\n \"rdata\": \"10 old-mail.example.com.\"\n }\n\
22513
- \ }\n ]\n }\n ]\n }\n}\n```\n"
22496
+ \ ]\n }\n}\n```\n\nBulk-toggle DNSSEC across many zones without touching their\
22497
+ \ records \u2014 omit `rrsets` everywhere:\n\n```json\n{\n \"command\": \"dns_zone_update_bulk\"\
22498
+ ,\n \"payload\": {\n \"template\": { \"dnssec_status\": \"enabled\" },\n \
22499
+ \ \"instances\": [\n { \"name\": \"example.com\" },\n { \"name\":\
22500
+ \ \"example.net\" },\n { \"name\": \"example.org\" }\n ]\n }\n}\n```\n\
22501
+ \n#### `dns_zone_patch_rrsets_bulk`\n\nBulk equivalent of `PATCH /v1/dns/{zone_name}/rrsets`.\
22502
+ \ Each instance is `{ zone_name, ops[] }`, where each op targets an rrset by `(name,\
22503
+ \ type)`:\n\n- `op: \"upsert\"` \u2014 create or **replace** the rrset with the\
22504
+ \ records you provide. Any prior records for that `(name, type)` are discarded.\n\
22505
+ - `op: \"remove\"` \u2014 delete the entire rrset (pass `records: []`).\n\n```json\n\
22506
+ {\n \"command\": \"dns_zone_patch_rrsets_bulk\",\n \"payload\": {\n \"instances\"\
22507
+ : [\n {\n \"zone_name\": \"example.com\",\n \"ops\": [\n \
22508
+ \ {\n \"op\": \"upsert\",\n \"rrset\": {\n \
22509
+ \ \"name\": \"www\", \"type\": \"A\", \"ttl\": 300,\n \"records\"\
22510
+ : [\n {\"rdata\": \"203.0.113.10\"},\n {\"rdata\"\
22511
+ : \"203.0.113.11\"}\n ]\n }\n },\n {\n\
22512
+ \ \"op\": \"remove\",\n \"rrset\": {\"name\": \"old\", \"\
22513
+ type\": \"CNAME\", \"ttl\": 300, \"records\": []}\n }\n ]\n \
22514
+ \ }\n ]\n }\n}\n```\n\n#### `dns_zone_patch_records_bulk`\n\nBulk equivalent\
22515
+ \ of `PATCH /v1/dns/{zone_name}/records`. Each instance is `{ zone_name, ops[]\
22516
+ \ }`, where each op targets a single `rdata` value inside an rrset. Note the op\
22517
+ \ payload uses a single `rdata` field, not `records[]`.\n\n- `op: \"upsert\"`\
22518
+ \ \u2014 add or update that one rdata value (creates the rrset if it doesn't exist).\
22519
+ \ Sibling records in the rrset are untouched.\n- `op: \"remove\"` \u2014 remove\
22520
+ \ just that one rdata value. Other records in the rrset remain.\n\n```json\n{\n\
22521
+ \ \"command\": \"dns_zone_patch_records_bulk\",\n \"payload\": {\n \"instances\"\
22522
+ : [\n {\n \"zone_name\": \"example.com\",\n \"ops\": [\n \
22523
+ \ {\n \"op\": \"upsert\",\n \"record\": {\n \
22524
+ \ \"name\": \"@\", \"type\": \"MX\", \"ttl\": 300,\n \"rdata\"\
22525
+ : \"5 new-mail.example.com.\"\n }\n },\n {\n \
22526
+ \ \"op\": \"remove\",\n \"record\": {\n \"name\"\
22527
+ : \"@\", \"type\": \"MX\", \"ttl\": 300,\n \"rdata\": \"10 old-mail.example.com.\"\
22528
+ \n }\n }\n ]\n }\n ]\n }\n}\n```\n"
22514
22529
  name: jobs
22515
22530
  x-displayName: Jobs
22516
22531
  - description: 'Endpoints for creating and managing contacts.