@opusdns/api 1.25.0 → 1.27.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
@@ -432,6 +432,17 @@ components:
432
432
  - claims_notices
433
433
  title: ClaimsNoticesResponse
434
434
  type: object
435
+ ClearVanityNameserverSetDefaultRes:
436
+ properties:
437
+ cleared:
438
+ description: True if an ACTIVE default was unset; False on an idempotent
439
+ no-op (org had no default).
440
+ title: Cleared
441
+ type: boolean
442
+ required:
443
+ - cleared
444
+ title: ClearVanityNameserverSetDefaultRes
445
+ type: object
435
446
  CommandError:
436
447
  properties:
437
448
  code:
@@ -2368,6 +2379,16 @@ components:
2368
2379
  - rdata
2369
2380
  title: DnsRecordCreate
2370
2381
  type: object
2382
+ DnsRecordDTO:
2383
+ properties:
2384
+ rdata:
2385
+ description: The record data (e.g., IP address, domain name)
2386
+ title: Rdata
2387
+ type: string
2388
+ required:
2389
+ - rdata
2390
+ title: DnsRecordDTO
2391
+ type: object
2371
2392
  DnsRecordPatchOp:
2372
2393
  properties:
2373
2394
  op:
@@ -2420,6 +2441,31 @@ components:
2420
2441
  - records
2421
2442
  title: DnsRrsetCreate
2422
2443
  type: object
2444
+ DnsRrsetDTO:
2445
+ properties:
2446
+ name:
2447
+ description: The RRset name (e.g., '@', 'www')
2448
+ title: Name
2449
+ type: string
2450
+ records:
2451
+ description: List of records in this RRset
2452
+ items:
2453
+ $ref: '#/components/schemas/DnsRecordDTO'
2454
+ title: Records
2455
+ type: array
2456
+ ttl:
2457
+ description: Time to live in seconds
2458
+ title: Ttl
2459
+ type: integer
2460
+ type:
2461
+ $ref: '#/components/schemas/DnsRrsetType'
2462
+ description: The RRset type
2463
+ required:
2464
+ - name
2465
+ - type
2466
+ - ttl
2467
+ title: DnsRrsetDTO
2468
+ type: object
2423
2469
  DnsRrsetPatch:
2424
2470
  properties:
2425
2471
  name:
@@ -2729,6 +2775,52 @@ components:
2729
2775
  - zone_name
2730
2776
  title: DnsZoneCreateWorkerResult
2731
2777
  type: object
2778
+ DnsZoneDTO:
2779
+ properties:
2780
+ created_on:
2781
+ anyOf:
2782
+ - format: date-time
2783
+ type: string
2784
+ - type: 'null'
2785
+ description: Zone creation timestamp
2786
+ title: Created On
2787
+ dnssec_status:
2788
+ $ref: '#/components/schemas/DnssecStatus'
2789
+ default: disabled
2790
+ description: DNSSEC status
2791
+ name:
2792
+ description: The zone name (e.g., 'example.com')
2793
+ title: Name
2794
+ type: string
2795
+ rrsets:
2796
+ description: List of RRsets in the zone
2797
+ items:
2798
+ $ref: '#/components/schemas/DnsRrsetDTO'
2799
+ title: Rrsets
2800
+ type: array
2801
+ updated_on:
2802
+ anyOf:
2803
+ - format: date-time
2804
+ type: string
2805
+ - type: 'null'
2806
+ description: Zone last update timestamp
2807
+ title: Updated On
2808
+ vanity_nameserver_set_id:
2809
+ anyOf:
2810
+ - examples:
2811
+ - vns_01h45ytscbebyvny4gc8cr8ma2
2812
+ format: typeid
2813
+ pattern: ^vns_[0-7][0-9a-hjkmnpq-tv-z]{25}$
2814
+ type: string
2815
+ x-typeid-prefix: vns
2816
+ - type: 'null'
2817
+ description: Vanity NS set branding this zone's apex, or null for system
2818
+ default NS
2819
+ title: Vanity Nameserver Set Id
2820
+ required:
2821
+ - name
2822
+ title: DnsZoneDTO
2823
+ type: object
2732
2824
  DnsZonePatchRecordsBulkCommand:
2733
2825
  properties:
2734
2826
  command:
@@ -3146,6 +3238,15 @@ components:
3146
3238
  - zone
3147
3239
  title: DnsZoneUpdateWorkerPayload
3148
3240
  type: object
3241
+ DnsZoneVanitySetUpdateRes:
3242
+ properties:
3243
+ zone:
3244
+ $ref: '#/components/schemas/DnsZoneDTO'
3245
+ description: The zone after restamping
3246
+ required:
3247
+ - zone
3248
+ title: DnsZoneVanitySetUpdateRes
3249
+ type: object
3149
3250
  DnssecAlgorithm:
3150
3251
  enum:
3151
3252
  - 1
@@ -7994,6 +8095,36 @@ components:
7994
8095
  - confirmation
7995
8096
  title: LegalRequirementType
7996
8097
  type: string
8098
+ ListVanityNameserverSetsRes:
8099
+ properties:
8100
+ pagination:
8101
+ $ref: '#/components/schemas/PaginationMetadataDTO'
8102
+ description: Pagination metadata
8103
+ results:
8104
+ description: Sets owned by the org, newest first; includes non-ACTIVE rows
8105
+ items:
8106
+ $ref: '#/components/schemas/VanityNameserverSetSummaryDTO'
8107
+ title: Results
8108
+ type: array
8109
+ required:
8110
+ - pagination
8111
+ title: ListVanityNameserverSetsRes
8112
+ type: object
8113
+ ListZonesReferencingSetRes:
8114
+ properties:
8115
+ pagination:
8116
+ $ref: '#/components/schemas/PaginationMetadataDTO'
8117
+ description: Pagination metadata
8118
+ results:
8119
+ description: Zones whose apex is branded by the set, ordered by zone name
8120
+ items:
8121
+ $ref: '#/components/schemas/DnsZoneDTO'
8122
+ title: Results
8123
+ type: array
8124
+ required:
8125
+ - pagination
8126
+ title: ListZonesReferencingSetRes
8127
+ type: object
7997
8128
  LocalPresenceBase:
7998
8129
  properties:
7999
8130
  eligible_countries:
@@ -9250,6 +9381,41 @@ components:
9250
9381
  - has_previous_page
9251
9382
  title: PaginationMetadata
9252
9383
  type: object
9384
+ PaginationMetadataDTO:
9385
+ properties:
9386
+ current_page:
9387
+ description: Current page number
9388
+ title: Current Page
9389
+ type: integer
9390
+ has_next_page:
9391
+ description: Whether there is a next page
9392
+ title: Has Next Page
9393
+ type: boolean
9394
+ has_previous_page:
9395
+ description: Whether there is a previous page
9396
+ title: Has Previous Page
9397
+ type: boolean
9398
+ page_size:
9399
+ description: Items per page
9400
+ title: Page Size
9401
+ type: integer
9402
+ total_items:
9403
+ description: Total number of items
9404
+ title: Total Items
9405
+ type: integer
9406
+ total_pages:
9407
+ description: Total number of pages
9408
+ title: Total Pages
9409
+ type: integer
9410
+ required:
9411
+ - total_pages
9412
+ - total_items
9413
+ - current_page
9414
+ - page_size
9415
+ - has_next_page
9416
+ - has_previous_page
9417
+ title: PaginationMetadataDTO
9418
+ type: object
9253
9419
  Pagination_BillingTransactionResponse_:
9254
9420
  properties:
9255
9421
  pagination:
@@ -10858,6 +11024,16 @@ components:
10858
11024
  type: boolean
10859
11025
  title: RgpOperations
10860
11026
  type: object
11027
+ SetVanityNameserverSetDefaultRes:
11028
+ properties:
11029
+ vanity_nameserver_set:
11030
+ $ref: '#/components/schemas/VanityNameserverSetDTO'
11031
+ description: The set that is now the org's default (or unchanged set on
11032
+ a no-op 200).
11033
+ required:
11034
+ - vanity_nameserver_set
11035
+ title: SetVanityNameserverSetDefaultRes
11036
+ type: object
10861
11037
  SldLength:
10862
11038
  properties:
10863
11039
  max:
@@ -12437,107 +12613,422 @@ components:
12437
12613
  - type
12438
12614
  title: ValidationError
12439
12615
  type: object
12440
- VerificationClaimType:
12441
- enum:
12442
- - name
12443
- - address
12444
- - email
12445
- - phone
12446
- title: VerificationClaimType
12447
- type: string
12448
- VerificationDeadline:
12616
+ VanityNameserverDTO:
12449
12617
  properties:
12450
- date:
12451
- format: date-time
12452
- title: Date
12618
+ hostname:
12619
+ description: Fully-qualified hostname of the vanity nameserver
12620
+ title: Hostname
12453
12621
  type: string
12454
- type:
12455
- $ref: '#/components/schemas/VerificationDeadlineType'
12622
+ position:
12623
+ description: Ordering within the set; lowest position becomes SOA MNAME
12624
+ minimum: 0.0
12625
+ title: Position
12626
+ type: integer
12456
12627
  required:
12457
- - type
12458
- - date
12459
- title: VerificationDeadline
12628
+ - hostname
12629
+ - position
12630
+ title: VanityNameserverDTO
12460
12631
  type: object
12461
- VerificationDeadlineType:
12462
- enum:
12463
- - dedelegation
12464
- - deletion
12465
- title: VerificationDeadlineType
12466
- type: string
12467
- VerificationRegistrantDetails:
12632
+ VanityNameserverSetCreate:
12633
+ description: 'Public create request body. The owning org comes from auth context,
12634
+ and the
12635
+
12636
+ anycast IPs are allocated server-side from `VanityNameserversConfig`, so neither
12637
+ is
12638
+
12639
+ accepted here.'
12468
12640
  properties:
12469
- contact_id:
12470
- title: Contact Id
12471
- type: string
12472
- email:
12473
- title: Email
12474
- type: string
12641
+ hostnames:
12642
+ description: Fully-qualified vanity NS hostnames, ordered by intended position.
12643
+ items:
12644
+ type: string
12645
+ minItems: 1
12646
+ title: Hostnames
12647
+ type: array
12475
12648
  name:
12649
+ description: Human-readable name for the set
12650
+ maxLength: 255
12651
+ minLength: 1
12476
12652
  title: Name
12477
12653
  type: string
12654
+ parent_domain_name:
12655
+ description: Apex domain of the vanity NS zone; all hostnames must be subdomains.
12656
+ title: Parent Domain Name
12657
+ type: string
12658
+ soa_rname:
12659
+ description: SOA RNAME stamped verbatim into the vanity NS zone
12660
+ maxLength: 255
12661
+ minLength: 1
12662
+ title: Soa Rname
12663
+ type: string
12478
12664
  required:
12479
- - contact_id
12480
12665
  - name
12481
- - email
12482
- title: VerificationRegistrantDetails
12666
+ - parent_domain_name
12667
+ - soa_rname
12668
+ - hostnames
12669
+ title: VanityNameserverSetCreate
12483
12670
  type: object
12484
- VerificationResponse:
12671
+ VanityNameserverSetDTO:
12485
12672
  properties:
12486
- claims:
12487
- description: Verification claims
12673
+ name:
12674
+ description: Human-readable name for the vanity NS set
12675
+ title: Name
12676
+ type: string
12677
+ nameservers:
12678
+ description: Nameservers in the set, ordered by position
12488
12679
  items:
12489
- $ref: '#/components/schemas/VerificationClaimType'
12490
- title: Claims
12680
+ $ref: '#/components/schemas/VanityNameserverDTO'
12681
+ title: Nameservers
12491
12682
  type: array
12492
- deadlines:
12493
- description: Verification deadlines
12683
+ parent_domain_name:
12684
+ description: Parent domain used as the apex of the vanity NS zone
12685
+ title: Parent Domain Name
12686
+ type: string
12687
+ set_id:
12688
+ description: Stable identifier for the vanity NS set
12689
+ examples:
12690
+ - vns_01h45ytscbebyvny4gc8cr8ma2
12691
+ format: typeid
12692
+ pattern: ^vns_[0-7][0-9a-hjkmnpq-tv-z]{25}$
12693
+ title: Set Id
12694
+ type: string
12695
+ x-typeid-prefix: vns
12696
+ soa_rname:
12697
+ description: SOA RNAME used verbatim when creating vanity-branded zones
12698
+ title: Soa Rname
12699
+ type: string
12700
+ required:
12701
+ - set_id
12702
+ - name
12703
+ - parent_domain_name
12704
+ - soa_rname
12705
+ title: VanityNameserverSetDTO
12706
+ type: object
12707
+ VanityNameserverSetStatusDTO:
12708
+ description: "Wire mirror of `VanityNameserverSetStatus` \u2014 local so dns_client\
12709
+ \ doesn't\npull schema imports."
12710
+ enum:
12711
+ - provisioning
12712
+ - active
12713
+ - suspended
12714
+ - failed
12715
+ - deleting
12716
+ title: VanityNameserverSetStatusDTO
12717
+ type: string
12718
+ VanityNameserverSetSummaryDTO:
12719
+ description: 'Status-aware variant of `VanityNameserverSetDTO` for list/get
12720
+ endpoints.
12721
+
12722
+ `VanityNameserverSetDTO` stays the brandable-only read shape (always ACTIVE).'
12723
+ properties:
12724
+ is_default:
12725
+ description: Whether this is the org's default vanity NS set
12726
+ title: Is Default
12727
+ type: boolean
12728
+ name:
12729
+ description: Human-readable name for the vanity NS set
12730
+ title: Name
12731
+ type: string
12732
+ nameservers:
12733
+ description: Nameservers in the set, ordered by position
12494
12734
  items:
12495
- $ref: '#/components/schemas/VerificationDeadline'
12496
- title: Deadlines
12735
+ $ref: '#/components/schemas/VanityNameserverDTO'
12736
+ title: Nameservers
12497
12737
  type: array
12738
+ organization_id:
12739
+ description: Owning organization
12740
+ examples:
12741
+ - organization_01h45ytscbebyvny4gc8cr8ma2
12742
+ format: typeid
12743
+ pattern: ^organization_[0-7][0-9a-hjkmnpq-tv-z]{25}$
12744
+ title: Organization Id
12745
+ type: string
12746
+ x-typeid-prefix: organization
12747
+ parent_domain_name:
12748
+ description: Parent domain used as the apex of the vanity NS zone
12749
+ title: Parent Domain Name
12750
+ type: string
12751
+ set_id:
12752
+ description: Stable identifier for the vanity NS set
12753
+ examples:
12754
+ - vns_01h45ytscbebyvny4gc8cr8ma2
12755
+ format: typeid
12756
+ pattern: ^vns_[0-7][0-9a-hjkmnpq-tv-z]{25}$
12757
+ title: Set Id
12758
+ type: string
12759
+ x-typeid-prefix: vns
12760
+ soa_rname:
12761
+ description: SOA RNAME used verbatim when creating vanity-branded zones
12762
+ title: Soa Rname
12763
+ type: string
12764
+ status:
12765
+ $ref: '#/components/schemas/VanityNameserverSetStatusDTO'
12766
+ description: Lifecycle status of the set
12498
12767
  required:
12499
- - claims
12500
- title: VerificationResponse
12768
+ - set_id
12769
+ - organization_id
12770
+ - name
12771
+ - parent_domain_name
12772
+ - soa_rname
12773
+ - status
12774
+ - is_default
12775
+ title: VanityNameserverSetSummaryDTO
12501
12776
  type: object
12502
- VerificationType:
12777
+ VanityNsCheckConfidence:
12503
12778
  enum:
12504
- - api
12505
- - email
12506
- title: VerificationType
12779
+ - authoritative
12780
+ - best_effort
12781
+ title: VanityNsCheckConfidence
12507
12782
  type: string
12508
- VisitsByKeyBucket:
12783
+ VanityNsCheckPublicReq:
12784
+ description: 'Public `/check` request body. The owning org comes from auth context,
12785
+ so only
12786
+
12787
+ the set identifier is accepted here.'
12509
12788
  properties:
12510
- key:
12511
- title: Key
12789
+ set_id:
12790
+ description: The vanity NS set to diagnose
12791
+ examples:
12792
+ - vns_01h45ytscbebyvny4gc8cr8ma2
12793
+ format: typeid
12794
+ pattern: ^vns_[0-7][0-9a-hjkmnpq-tv-z]{25}$
12795
+ title: Set Id
12512
12796
  type: string
12513
- total:
12514
- title: Total
12515
- type: integer
12516
- unique:
12517
- title: Unique
12518
- type: integer
12797
+ x-typeid-prefix: vns
12519
12798
  required:
12520
- - key
12521
- - total
12522
- - unique
12523
- title: VisitsByKeyBucket
12799
+ - set_id
12800
+ title: VanityNsCheckPublicReq
12524
12801
  type: object
12525
- WhoisBase:
12802
+ VanityNsCheckRes:
12526
12803
  properties:
12527
- whois_server:
12528
- anyOf:
12529
- - type: string
12530
- - type: 'null'
12531
- description: WHOIS server
12532
- title: Whois Server
12533
- title: WhoisBase
12534
- type: object
12535
- ZoneIncludeField:
12536
- enum:
12537
- - tags
12538
- title: ZoneIncludeField
12539
- type: string
12540
- ZoneSortField:
12804
+ checks:
12805
+ description: Individual diagnostic checks
12806
+ items:
12807
+ $ref: '#/components/schemas/VanityNsCheckResultDTO'
12808
+ title: Checks
12809
+ type: array
12810
+ parent_domain_name:
12811
+ description: Parent domain of the set's vanity NS hostnames
12812
+ title: Parent Domain Name
12813
+ type: string
12814
+ set_id:
12815
+ description: The diagnosed set
12816
+ examples:
12817
+ - vns_01h45ytscbebyvny4gc8cr8ma2
12818
+ format: typeid
12819
+ pattern: ^vns_[0-7][0-9a-hjkmnpq-tv-z]{25}$
12820
+ title: Set Id
12821
+ type: string
12822
+ x-typeid-prefix: vns
12823
+ status:
12824
+ $ref: '#/components/schemas/VanityNameserverSetStatusDTO'
12825
+ description: Lifecycle status of the set at check time
12826
+ summary:
12827
+ $ref: '#/components/schemas/VanityNsCheckSummaryDTO'
12828
+ description: Synthesized overall verdict
12829
+ required:
12830
+ - set_id
12831
+ - parent_domain_name
12832
+ - status
12833
+ - summary
12834
+ title: VanityNsCheckRes
12835
+ type: object
12836
+ VanityNsCheckResultDTO:
12837
+ properties:
12838
+ confidence:
12839
+ $ref: '#/components/schemas/VanityNsCheckConfidence'
12840
+ description: How authoritative the observation is
12841
+ detail:
12842
+ description: Customer-facing explanation of the result
12843
+ title: Detail
12844
+ type: string
12845
+ id:
12846
+ description: Stable identifier for the individual check
12847
+ title: Id
12848
+ type: string
12849
+ label:
12850
+ description: Human-readable check name
12851
+ title: Label
12852
+ type: string
12853
+ observed:
12854
+ anyOf:
12855
+ - additionalProperties: true
12856
+ type: object
12857
+ - type: 'null'
12858
+ description: Structured observation (e.g. addresses seen, mismatches) for
12859
+ the customer
12860
+ title: Observed
12861
+ remediation:
12862
+ anyOf:
12863
+ - type: string
12864
+ - type: 'null'
12865
+ description: Suggested next step when the check did not pass
12866
+ title: Remediation
12867
+ severity:
12868
+ $ref: '#/components/schemas/VanityNsCheckSeverity'
12869
+ description: How much this check matters to the overall verdict
12870
+ source:
12871
+ $ref: '#/components/schemas/VanityNsCheckSource'
12872
+ description: Where the observation came from
12873
+ status:
12874
+ $ref: '#/components/schemas/VanityNsCheckStatus'
12875
+ description: Per-check verdict
12876
+ required:
12877
+ - id
12878
+ - label
12879
+ - status
12880
+ - severity
12881
+ - source
12882
+ - confidence
12883
+ - detail
12884
+ title: VanityNsCheckResultDTO
12885
+ type: object
12886
+ VanityNsCheckSeverity:
12887
+ enum:
12888
+ - required
12889
+ - recommended
12890
+ - optional
12891
+ title: VanityNsCheckSeverity
12892
+ type: string
12893
+ VanityNsCheckSource:
12894
+ enum:
12895
+ - public_dns
12896
+ - authoritative_dns
12897
+ - registry_epp
12898
+ title: VanityNsCheckSource
12899
+ type: string
12900
+ VanityNsCheckStatus:
12901
+ enum:
12902
+ - pass
12903
+ - fail
12904
+ - warn
12905
+ - info
12906
+ title: VanityNsCheckStatus
12907
+ type: string
12908
+ VanityNsCheckSummaryDTO:
12909
+ properties:
12910
+ detail:
12911
+ description: Customer-facing summary of the overall verdict
12912
+ title: Detail
12913
+ type: string
12914
+ state:
12915
+ $ref: '#/components/schemas/VanityNsCheckSummaryState'
12916
+ description: Overall verdict synthesized from the checks
12917
+ required:
12918
+ - state
12919
+ - detail
12920
+ title: VanityNsCheckSummaryDTO
12921
+ type: object
12922
+ VanityNsCheckSummaryState:
12923
+ description: Top-level verdict synthesized from the individual checks.
12924
+ enum:
12925
+ - ready
12926
+ - propagating
12927
+ - action_required
12928
+ - degraded
12929
+ title: VanityNsCheckSummaryState
12930
+ type: string
12931
+ VerificationClaimType:
12932
+ enum:
12933
+ - name
12934
+ - address
12935
+ - email
12936
+ - phone
12937
+ title: VerificationClaimType
12938
+ type: string
12939
+ VerificationDeadline:
12940
+ properties:
12941
+ date:
12942
+ format: date-time
12943
+ title: Date
12944
+ type: string
12945
+ type:
12946
+ $ref: '#/components/schemas/VerificationDeadlineType'
12947
+ required:
12948
+ - type
12949
+ - date
12950
+ title: VerificationDeadline
12951
+ type: object
12952
+ VerificationDeadlineType:
12953
+ enum:
12954
+ - dedelegation
12955
+ - deletion
12956
+ title: VerificationDeadlineType
12957
+ type: string
12958
+ VerificationRegistrantDetails:
12959
+ properties:
12960
+ contact_id:
12961
+ title: Contact Id
12962
+ type: string
12963
+ email:
12964
+ title: Email
12965
+ type: string
12966
+ name:
12967
+ title: Name
12968
+ type: string
12969
+ required:
12970
+ - contact_id
12971
+ - name
12972
+ - email
12973
+ title: VerificationRegistrantDetails
12974
+ type: object
12975
+ VerificationResponse:
12976
+ properties:
12977
+ claims:
12978
+ description: Verification claims
12979
+ items:
12980
+ $ref: '#/components/schemas/VerificationClaimType'
12981
+ title: Claims
12982
+ type: array
12983
+ deadlines:
12984
+ description: Verification deadlines
12985
+ items:
12986
+ $ref: '#/components/schemas/VerificationDeadline'
12987
+ title: Deadlines
12988
+ type: array
12989
+ required:
12990
+ - claims
12991
+ title: VerificationResponse
12992
+ type: object
12993
+ VerificationType:
12994
+ enum:
12995
+ - api
12996
+ - email
12997
+ title: VerificationType
12998
+ type: string
12999
+ VisitsByKeyBucket:
13000
+ properties:
13001
+ key:
13002
+ title: Key
13003
+ type: string
13004
+ total:
13005
+ title: Total
13006
+ type: integer
13007
+ unique:
13008
+ title: Unique
13009
+ type: integer
13010
+ required:
13011
+ - key
13012
+ - total
13013
+ - unique
13014
+ title: VisitsByKeyBucket
13015
+ type: object
13016
+ WhoisBase:
13017
+ properties:
13018
+ whois_server:
13019
+ anyOf:
13020
+ - type: string
13021
+ - type: 'null'
13022
+ description: WHOIS server
13023
+ title: Whois Server
13024
+ title: WhoisBase
13025
+ type: object
13026
+ ZoneIncludeField:
13027
+ enum:
13028
+ - tags
13029
+ title: ZoneIncludeField
13030
+ type: string
13031
+ ZoneSortField:
12541
13032
  enum:
12542
13033
  - name
12543
13034
  - created_on
@@ -12545,6 +13036,23 @@ components:
12545
13036
  - dnssec_status
12546
13037
  title: ZoneSortField
12547
13038
  type: string
13039
+ ZoneVanitySetUpdate:
13040
+ description: Public request body for assigning/clearing a zone's vanity NS branding.
13041
+ properties:
13042
+ vanity_nameserver_set_id:
13043
+ anyOf:
13044
+ - examples:
13045
+ - vns_01h45ytscbebyvny4gc8cr8ma2
13046
+ format: typeid
13047
+ pattern: ^vns_[0-7][0-9a-hjkmnpq-tv-z]{25}$
13048
+ type: string
13049
+ x-typeid-prefix: vns
13050
+ - type: 'null'
13051
+ description: Vanity NS set to brand the zone's apex NS + SOA with, or null
13052
+ to unassign and restamp the apex back to OpusDNS system defaults.
13053
+ title: Vanity Nameserver Set Id
13054
+ title: ZoneVanitySetUpdate
13055
+ type: object
12548
13056
  api__domain__tld_specific__be__models__RequestAuthcodeResponse:
12549
13057
  properties:
12550
13058
  detail:
@@ -12735,7 +13243,7 @@ info:
12735
13243
  \n\n"
12736
13244
  summary: OpusDNS - your gateway to a seamless domain management experience.
12737
13245
  title: OpusDNS API
12738
- version: 2026-06-22-103725
13246
+ version: 2026-06-22-124913
12739
13247
  x-logo:
12740
13248
  altText: OpusDNS API Reference
12741
13249
  url: https://d24lr4zqs1tgqh.cloudfront.net/c9505a20-5ae1-406c-b060-d392569caebf.jpg
@@ -17563,6 +18071,58 @@ paths:
17563
18071
  - dns
17564
18072
  x-required-permissions:
17565
18073
  - dns:manage
18074
+ /v1/dns/{zone_name}/vanity-set:
18075
+ patch:
18076
+ operationId: update_zone_vanity_set_v1_dns__zone_name__vanity_set_patch
18077
+ parameters:
18078
+ - description: DNS zone name (trailing dot optional)
18079
+ in: path
18080
+ name: zone_name
18081
+ required: true
18082
+ schema:
18083
+ description: DNS zone name (trailing dot optional)
18084
+ title: Zone Name
18085
+ type: string
18086
+ requestBody:
18087
+ content:
18088
+ application/json:
18089
+ schema:
18090
+ $ref: '#/components/schemas/ZoneVanitySetUpdate'
18091
+ required: true
18092
+ responses:
18093
+ '200':
18094
+ content:
18095
+ application/json:
18096
+ schema:
18097
+ $ref: '#/components/schemas/DnsZoneVanitySetUpdateRes'
18098
+ description: Successful Response
18099
+ '400':
18100
+ content:
18101
+ application/problem+json:
18102
+ example:
18103
+ code: ERROR_DNS
18104
+ detail: Additional error context.
18105
+ status: 400
18106
+ title: DNS Error
18107
+ type: dns
18108
+ schema:
18109
+ $ref: '#/components/schemas/Problem'
18110
+ description: Bad Request
18111
+ '422':
18112
+ content:
18113
+ application/problem+json:
18114
+ schema:
18115
+ $ref: '#/components/schemas/HTTPValidationError'
18116
+ description: Validation Error
18117
+ security:
18118
+ - OAuth2PasswordBearer: []
18119
+ - APIKeyHeader: []
18120
+ summary: Assign or clear a zone's vanity nameserver set
18121
+ tags:
18122
+ - dns
18123
+ x-required-permissions:
18124
+ - dns:manage
18125
+ - vanity_ns:manage
17566
18126
  /v1/domain-forwards:
17567
18127
  get:
17568
18128
  description: Retrieves a paginated list of domain forwards by hostname for the
@@ -27754,6 +28314,450 @@ paths:
27754
28314
  summary: Set user role
27755
28315
  tags:
27756
28316
  - user
28317
+ /v1/vanity-nameserver-sets:
28318
+ get:
28319
+ operationId: list_vanity_nameserver_sets_v1_vanity_nameserver_sets_get
28320
+ parameters:
28321
+ - in: query
28322
+ name: page
28323
+ required: false
28324
+ schema:
28325
+ default: 1
28326
+ minimum: 1
28327
+ title: Page
28328
+ type: integer
28329
+ - in: query
28330
+ name: page_size
28331
+ required: false
28332
+ schema:
28333
+ default: 10
28334
+ maximum: 1000
28335
+ minimum: 1
28336
+ title: Page Size
28337
+ type: integer
28338
+ responses:
28339
+ '200':
28340
+ content:
28341
+ application/json:
28342
+ schema:
28343
+ $ref: '#/components/schemas/ListVanityNameserverSetsRes'
28344
+ description: Successful Response
28345
+ '422':
28346
+ content:
28347
+ application/problem+json:
28348
+ schema:
28349
+ $ref: '#/components/schemas/HTTPValidationError'
28350
+ description: Validation Error
28351
+ security:
28352
+ - OAuth2PasswordBearer: []
28353
+ - APIKeyHeader: []
28354
+ summary: List vanity nameserver sets
28355
+ tags:
28356
+ - nameserver
28357
+ x-required-permissions:
28358
+ - vanity_ns:read
28359
+ post:
28360
+ operationId: create_vanity_nameserver_set_v1_vanity_nameserver_sets_post
28361
+ requestBody:
28362
+ content:
28363
+ application/json:
28364
+ examples:
28365
+ three_nameservers:
28366
+ description: A set with three branded hostnames under a different
28367
+ parent domain.
28368
+ summary: Three-nameserver set
28369
+ value:
28370
+ hostnames:
28371
+ - ns1.acme.example
28372
+ - ns2.acme.example
28373
+ - ns3.acme.example
28374
+ name: Acme nameservers
28375
+ parent_domain_name: acme.example
28376
+ soa_rname: hostmaster.acme.example
28377
+ two_nameservers:
28378
+ description: Create a vanity NS set with two branded hostnames under
28379
+ example.com.
28380
+ summary: Two-nameserver set
28381
+ value:
28382
+ hostnames:
28383
+ - ns1.example.com
28384
+ - ns2.example.com
28385
+ name: Example brand nameservers
28386
+ parent_domain_name: example.com
28387
+ soa_rname: hostmaster.example.com
28388
+ schema:
28389
+ $ref: '#/components/schemas/VanityNameserverSetCreate'
28390
+ required: true
28391
+ responses:
28392
+ '202':
28393
+ content:
28394
+ application/json:
28395
+ examples:
28396
+ provisioning:
28397
+ description: The set is accepted and activates once its prerequisites
28398
+ check out.
28399
+ summary: Newly created set (provisioning)
28400
+ value:
28401
+ is_default: false
28402
+ name: Example brand nameservers
28403
+ nameservers:
28404
+ - hostname: ns1.example.com
28405
+ position: 0
28406
+ - hostname: ns2.example.com
28407
+ position: 1
28408
+ organization_id: organization_01kvn2kr34e9ts01z1330tkvfx
28409
+ parent_domain_name: example.com
28410
+ set_id: vns_01kvn2kr1qep2bd7e60tt65fxn
28411
+ soa_rname: hostmaster.example.com
28412
+ status: provisioning
28413
+ schema:
28414
+ $ref: '#/components/schemas/VanityNameserverSetSummaryDTO'
28415
+ description: The set was accepted and is provisioning asynchronously.
28416
+ '422':
28417
+ content:
28418
+ application/problem+json:
28419
+ schema:
28420
+ $ref: '#/components/schemas/HTTPValidationError'
28421
+ description: Validation Error
28422
+ security:
28423
+ - OAuth2PasswordBearer: []
28424
+ - APIKeyHeader: []
28425
+ summary: Create a vanity nameserver set
28426
+ tags:
28427
+ - nameserver
28428
+ x-required-permissions:
28429
+ - vanity_ns:manage
28430
+ /v1/vanity-nameserver-sets/check:
28431
+ post:
28432
+ operationId: check_vanity_nameserver_set_v1_vanity_nameserver_sets_check_post
28433
+ requestBody:
28434
+ content:
28435
+ application/json:
28436
+ examples:
28437
+ by_set_id:
28438
+ description: Run the read-only diagnostic for a vanity NS set by its
28439
+ set_id.
28440
+ summary: Diagnose a set
28441
+ value:
28442
+ set_id: vns_01kvn2kr1qep2bd7e60tt65fxn
28443
+ schema:
28444
+ $ref: '#/components/schemas/VanityNsCheckPublicReq'
28445
+ required: true
28446
+ responses:
28447
+ '200':
28448
+ content:
28449
+ application/json:
28450
+ examples:
28451
+ action_required:
28452
+ description: An externally-registered parent domain whose nameserver
28453
+ A/AAAA records are not yet in place.
28454
+ summary: "Action required \u2014 records not yet published"
28455
+ value:
28456
+ checks:
28457
+ - confidence: authoritative
28458
+ detail: Vanity NS hostnames are not yet resolving to the assigned
28459
+ anycast addresses.
28460
+ id: ns_a_records
28461
+ label: Nameserver A/AAAA records
28462
+ observed:
28463
+ required_records:
28464
+ A:
28465
+ - 192.174.68.145
28466
+ - 176.97.158.145
28467
+ AAAA:
28468
+ - 2001:67c:1bc::145
28469
+ - 2001:67c:10b8::145
28470
+ remediation: Publish A (and AAAA) records for each nameserver
28471
+ hostname pointing at the addresses in required_records.
28472
+ severity: required
28473
+ source: public_dns
28474
+ status: fail
28475
+ parent_domain_name: example.com
28476
+ set_id: vns_01kvn2kr1qep2bd7e60tt65fxn
28477
+ status: provisioning
28478
+ summary:
28479
+ detail: Nameserver A/AAAA records are not yet published for
28480
+ ns1.example.com, ns2.example.com.
28481
+ state: action_required
28482
+ ready:
28483
+ description: The vanity nameservers resolve and glue is in place.
28484
+ summary: "Ready \u2014 all checks pass"
28485
+ value:
28486
+ checks:
28487
+ - confidence: authoritative
28488
+ detail: All nameserver hostnames resolve to the assigned anycast
28489
+ addresses.
28490
+ id: ns_a_records
28491
+ label: Nameserver A/AAAA records
28492
+ observed:
28493
+ required_records:
28494
+ A:
28495
+ - 192.174.68.145
28496
+ - 176.97.158.145
28497
+ AAAA:
28498
+ - 2001:67c:1bc::145
28499
+ - 2001:67c:10b8::145
28500
+ severity: required
28501
+ source: public_dns
28502
+ status: pass
28503
+ - confidence: authoritative
28504
+ detail: Every nameserver is registered as a host object at the
28505
+ registry.
28506
+ id: registry_glue_registered
28507
+ label: Glue registered at registry
28508
+ severity: recommended
28509
+ source: registry_epp
28510
+ status: pass
28511
+ - confidence: best_effort
28512
+ detail: The parent zone publishes glue for every nameserver.
28513
+ id: registry_glue_visible
28514
+ label: Glue visible in parent zone
28515
+ severity: recommended
28516
+ source: authoritative_dns
28517
+ status: pass
28518
+ parent_domain_name: example.com
28519
+ set_id: vns_01kvn2kr1qep2bd7e60tt65fxn
28520
+ status: active
28521
+ summary:
28522
+ detail: All required checks passed; the vanity nameservers are
28523
+ live.
28524
+ state: ready
28525
+ schema:
28526
+ $ref: '#/components/schemas/VanityNsCheckRes'
28527
+ description: Diagnostic report for the set.
28528
+ '422':
28529
+ content:
28530
+ application/problem+json:
28531
+ schema:
28532
+ $ref: '#/components/schemas/HTTPValidationError'
28533
+ description: Validation Error
28534
+ security:
28535
+ - OAuth2PasswordBearer: []
28536
+ - APIKeyHeader: []
28537
+ summary: Run a read-only diagnostic on a vanity nameserver set
28538
+ tags:
28539
+ - nameserver
28540
+ x-required-permissions:
28541
+ - vanity_ns:read
28542
+ /v1/vanity-nameserver-sets/default:
28543
+ delete:
28544
+ operationId: clear_vanity_nameserver_set_default_v1_vanity_nameserver_sets_default_delete
28545
+ responses:
28546
+ '200':
28547
+ content:
28548
+ application/json:
28549
+ schema:
28550
+ $ref: '#/components/schemas/ClearVanityNameserverSetDefaultRes'
28551
+ description: Successful Response
28552
+ '422':
28553
+ content:
28554
+ application/problem+json:
28555
+ schema:
28556
+ $ref: '#/components/schemas/HTTPValidationError'
28557
+ description: Validation Error
28558
+ security:
28559
+ - OAuth2PasswordBearer: []
28560
+ - APIKeyHeader: []
28561
+ summary: Unset the organization's default vanity nameserver set
28562
+ tags:
28563
+ - nameserver
28564
+ x-required-permissions:
28565
+ - vanity_ns:manage
28566
+ /v1/vanity-nameserver-sets/{set_id}:
28567
+ delete:
28568
+ operationId: delete_vanity_nameserver_set_v1_vanity_nameserver_sets__set_id__delete
28569
+ parameters:
28570
+ - in: path
28571
+ name: set_id
28572
+ required: true
28573
+ schema:
28574
+ examples:
28575
+ - vns_01h45ytscbebyvny4gc8cr8ma2
28576
+ format: typeid
28577
+ pattern: ^vns_[0-7][0-9a-hjkmnpq-tv-z]{25}$
28578
+ title: Set Id
28579
+ type: string
28580
+ x-typeid-prefix: vns
28581
+ responses:
28582
+ '202':
28583
+ content:
28584
+ application/json:
28585
+ schema: {}
28586
+ description: Successful Response
28587
+ '422':
28588
+ content:
28589
+ application/problem+json:
28590
+ schema:
28591
+ $ref: '#/components/schemas/HTTPValidationError'
28592
+ description: Validation Error
28593
+ security:
28594
+ - OAuth2PasswordBearer: []
28595
+ - APIKeyHeader: []
28596
+ summary: Delete a vanity nameserver set
28597
+ tags:
28598
+ - nameserver
28599
+ x-required-permissions:
28600
+ - vanity_ns:manage
28601
+ get:
28602
+ operationId: get_vanity_nameserver_set_v1_vanity_nameserver_sets__set_id__get
28603
+ parameters:
28604
+ - in: path
28605
+ name: set_id
28606
+ required: true
28607
+ schema:
28608
+ examples:
28609
+ - vns_01h45ytscbebyvny4gc8cr8ma2
28610
+ format: typeid
28611
+ pattern: ^vns_[0-7][0-9a-hjkmnpq-tv-z]{25}$
28612
+ title: Set Id
28613
+ type: string
28614
+ x-typeid-prefix: vns
28615
+ responses:
28616
+ '200':
28617
+ content:
28618
+ application/json:
28619
+ schema:
28620
+ $ref: '#/components/schemas/VanityNameserverSetSummaryDTO'
28621
+ description: Successful Response
28622
+ '422':
28623
+ content:
28624
+ application/problem+json:
28625
+ schema:
28626
+ $ref: '#/components/schemas/HTTPValidationError'
28627
+ description: Validation Error
28628
+ security:
28629
+ - OAuth2PasswordBearer: []
28630
+ - APIKeyHeader: []
28631
+ summary: Get a vanity nameserver set
28632
+ tags:
28633
+ - nameserver
28634
+ x-required-permissions:
28635
+ - vanity_ns:read
28636
+ /v1/vanity-nameserver-sets/{set_id}/default:
28637
+ patch:
28638
+ operationId: set_vanity_nameserver_set_default_v1_vanity_nameserver_sets__set_id__default_patch
28639
+ parameters:
28640
+ - in: path
28641
+ name: set_id
28642
+ required: true
28643
+ schema:
28644
+ examples:
28645
+ - vns_01h45ytscbebyvny4gc8cr8ma2
28646
+ format: typeid
28647
+ pattern: ^vns_[0-7][0-9a-hjkmnpq-tv-z]{25}$
28648
+ title: Set Id
28649
+ type: string
28650
+ x-typeid-prefix: vns
28651
+ responses:
28652
+ '200':
28653
+ content:
28654
+ application/json:
28655
+ schema:
28656
+ $ref: '#/components/schemas/SetVanityNameserverSetDefaultRes'
28657
+ description: Successful Response
28658
+ '422':
28659
+ content:
28660
+ application/problem+json:
28661
+ schema:
28662
+ $ref: '#/components/schemas/HTTPValidationError'
28663
+ description: Validation Error
28664
+ security:
28665
+ - OAuth2PasswordBearer: []
28666
+ - APIKeyHeader: []
28667
+ summary: Set a vanity nameserver set as the org default
28668
+ tags:
28669
+ - nameserver
28670
+ x-required-permissions:
28671
+ - vanity_ns:manage
28672
+ /v1/vanity-nameserver-sets/{set_id}/restore:
28673
+ post:
28674
+ operationId: restore_vanity_nameserver_set_v1_vanity_nameserver_sets__set_id__restore_post
28675
+ parameters:
28676
+ - in: path
28677
+ name: set_id
28678
+ required: true
28679
+ schema:
28680
+ examples:
28681
+ - vns_01h45ytscbebyvny4gc8cr8ma2
28682
+ format: typeid
28683
+ pattern: ^vns_[0-7][0-9a-hjkmnpq-tv-z]{25}$
28684
+ title: Set Id
28685
+ type: string
28686
+ x-typeid-prefix: vns
28687
+ responses:
28688
+ '200':
28689
+ content:
28690
+ application/json:
28691
+ schema:
28692
+ $ref: '#/components/schemas/VanityNameserverSetSummaryDTO'
28693
+ description: Successful Response
28694
+ '422':
28695
+ content:
28696
+ application/problem+json:
28697
+ schema:
28698
+ $ref: '#/components/schemas/HTTPValidationError'
28699
+ description: Validation Error
28700
+ security:
28701
+ - OAuth2PasswordBearer: []
28702
+ - APIKeyHeader: []
28703
+ summary: Restore a suspended vanity nameserver set
28704
+ tags:
28705
+ - nameserver
28706
+ x-required-permissions:
28707
+ - vanity_ns:manage
28708
+ /v1/vanity-nameserver-sets/{set_id}/zones:
28709
+ get:
28710
+ operationId: list_zones_referencing_vanity_nameserver_set_v1_vanity_nameserver_sets__set_id__zones_get
28711
+ parameters:
28712
+ - in: path
28713
+ name: set_id
28714
+ required: true
28715
+ schema:
28716
+ examples:
28717
+ - vns_01h45ytscbebyvny4gc8cr8ma2
28718
+ format: typeid
28719
+ pattern: ^vns_[0-7][0-9a-hjkmnpq-tv-z]{25}$
28720
+ title: Set Id
28721
+ type: string
28722
+ x-typeid-prefix: vns
28723
+ - in: query
28724
+ name: page
28725
+ required: false
28726
+ schema:
28727
+ default: 1
28728
+ minimum: 1
28729
+ title: Page
28730
+ type: integer
28731
+ - in: query
28732
+ name: page_size
28733
+ required: false
28734
+ schema:
28735
+ default: 10
28736
+ maximum: 1000
28737
+ minimum: 1
28738
+ title: Page Size
28739
+ type: integer
28740
+ responses:
28741
+ '200':
28742
+ content:
28743
+ application/json:
28744
+ schema:
28745
+ $ref: '#/components/schemas/ListZonesReferencingSetRes'
28746
+ description: Successful Response
28747
+ '422':
28748
+ content:
28749
+ application/problem+json:
28750
+ schema:
28751
+ $ref: '#/components/schemas/HTTPValidationError'
28752
+ description: Validation Error
28753
+ security:
28754
+ - OAuth2PasswordBearer: []
28755
+ - APIKeyHeader: []
28756
+ summary: List DNS zones referencing a vanity nameserver set
28757
+ tags:
28758
+ - nameserver
28759
+ x-required-permissions:
28760
+ - vanity_ns:read
27757
28761
  servers:
27758
28762
  - description: Production environment
27759
28763
  url: https://api.opusdns.com
@@ -28266,6 +29270,7 @@ x-tagGroups:
28266
29270
  - name: Services
28267
29271
  tags:
28268
29272
  - dns
29273
+ - nameserver
28269
29274
  - email_forward
28270
29275
  - domain_forward
28271
29276
  - parking