@opusdns/api 0.199.0 → 0.200.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
@@ -306,6 +306,210 @@ components:
306
306
  - type
307
307
  title: ContactAttributeDefinition
308
308
  type: object
309
+ ContactAttributeLinkCreate:
310
+ properties:
311
+ contact_attribute_set_id:
312
+ description: The attribute set to link to the contact
313
+ examples:
314
+ - contact_attribute_set_01h45ytscbebyvny4gc8cr8ma2
315
+ format: typeid
316
+ pattern: ^contact_attribute_set_[0-7][0-9a-hjkmnpq-tv-z]{25}$
317
+ title: Contact Attribute Set Id
318
+ type: string
319
+ x-typeid-prefix: contact_attribute_set
320
+ contact_id:
321
+ description: The contact to link
322
+ examples:
323
+ - contact_01h45ytscbebyvny4gc8cr8ma2
324
+ format: typeid
325
+ pattern: ^contact_[0-7][0-9a-hjkmnpq-tv-z]{25}$
326
+ title: Contact Id
327
+ type: string
328
+ x-typeid-prefix: contact
329
+ required:
330
+ - contact_id
331
+ - contact_attribute_set_id
332
+ title: ContactAttributeLinkCreate
333
+ type: object
334
+ ContactAttributeLinkDetail:
335
+ properties:
336
+ attributes:
337
+ additionalProperties:
338
+ type: string
339
+ description: The attributes from the linked set
340
+ propertyNames:
341
+ $ref: '#/components/schemas/RegistryHandleAttributeType'
342
+ title: Attributes
343
+ type: object
344
+ contact_attribute_set_id:
345
+ description: The attribute set linked to the contact
346
+ examples:
347
+ - contact_attribute_set_01h45ytscbebyvny4gc8cr8ma2
348
+ format: typeid
349
+ pattern: ^contact_attribute_set_[0-7][0-9a-hjkmnpq-tv-z]{25}$
350
+ title: Contact Attribute Set Id
351
+ type: string
352
+ x-typeid-prefix: contact_attribute_set
353
+ label:
354
+ description: The label of the linked attribute set
355
+ title: Label
356
+ type: string
357
+ tld:
358
+ description: The TLD this link applies to
359
+ title: Tld
360
+ type: string
361
+ required:
362
+ - contact_attribute_set_id
363
+ - label
364
+ - tld
365
+ - attributes
366
+ title: ContactAttributeLinkDetail
367
+ type: object
368
+ ContactAttributeLinkResponse:
369
+ properties:
370
+ contact_attribute_link_id:
371
+ description: The unique identifier of the link
372
+ examples:
373
+ - contact_attribute_link_01h45ytscbebyvny4gc8cr8ma2
374
+ format: typeid
375
+ pattern: ^contact_attribute_link_[0-7][0-9a-hjkmnpq-tv-z]{25}$
376
+ title: Contact Attribute Link Id
377
+ type: string
378
+ x-typeid-prefix: contact_attribute_link
379
+ contact_attribute_set_id:
380
+ description: The attribute set linked to the contact
381
+ examples:
382
+ - contact_attribute_set_01h45ytscbebyvny4gc8cr8ma2
383
+ format: typeid
384
+ pattern: ^contact_attribute_set_[0-7][0-9a-hjkmnpq-tv-z]{25}$
385
+ title: Contact Attribute Set Id
386
+ type: string
387
+ x-typeid-prefix: contact_attribute_set
388
+ contact_id:
389
+ description: The contact this link belongs to
390
+ examples:
391
+ - contact_01h45ytscbebyvny4gc8cr8ma2
392
+ format: typeid
393
+ pattern: ^contact_[0-7][0-9a-hjkmnpq-tv-z]{25}$
394
+ title: Contact Id
395
+ type: string
396
+ x-typeid-prefix: contact
397
+ created_on:
398
+ description: The date/time the entry was created on
399
+ format: date-time
400
+ title: Created On
401
+ type: string
402
+ tld:
403
+ description: The TLD this link applies to
404
+ title: Tld
405
+ type: string
406
+ required:
407
+ - contact_attribute_link_id
408
+ - contact_id
409
+ - contact_attribute_set_id
410
+ - tld
411
+ - created_on
412
+ title: ContactAttributeLinkResponse
413
+ type: object
414
+ ContactAttributeSetCreate:
415
+ properties:
416
+ attributes:
417
+ additionalProperties:
418
+ type: string
419
+ description: Key-value map of contact attributes for this set
420
+ propertyNames:
421
+ $ref: '#/components/schemas/RegistryHandleAttributeType'
422
+ title: Attributes
423
+ type: object
424
+ label:
425
+ description: A human-readable label explaining the purpose of this attribute
426
+ set
427
+ maxLength: 255
428
+ minLength: 1
429
+ title: Label
430
+ type: string
431
+ tld:
432
+ description: The TLD this attribute set applies to (e.g. 'de', '.de', 'DE')
433
+ title: Tld
434
+ type: string
435
+ required:
436
+ - label
437
+ - attributes
438
+ - tld
439
+ title: ContactAttributeSetCreate
440
+ type: object
441
+ ContactAttributeSetResponse:
442
+ properties:
443
+ attributes:
444
+ additionalProperties:
445
+ type: string
446
+ description: Key-value map of contact attributes for this set
447
+ propertyNames:
448
+ $ref: '#/components/schemas/RegistryHandleAttributeType'
449
+ title: Attributes
450
+ type: object
451
+ contact_attribute_set_id:
452
+ description: The unique identifier of the attribute set
453
+ examples:
454
+ - contact_attribute_set_01h45ytscbebyvny4gc8cr8ma2
455
+ format: typeid
456
+ pattern: ^contact_attribute_set_[0-7][0-9a-hjkmnpq-tv-z]{25}$
457
+ title: Contact Attribute Set Id
458
+ type: string
459
+ x-typeid-prefix: contact_attribute_set
460
+ created_on:
461
+ description: The date/time the entry was created on
462
+ format: date-time
463
+ title: Created On
464
+ type: string
465
+ label:
466
+ description: A human-readable label explaining the purpose of this attribute
467
+ set
468
+ maxLength: 255
469
+ minLength: 1
470
+ title: Label
471
+ type: string
472
+ organization_id:
473
+ description: The organization that owns this attribute set
474
+ examples:
475
+ - organization_01h45ytscbebyvny4gc8cr8ma2
476
+ format: typeid
477
+ pattern: ^organization_[0-7][0-9a-hjkmnpq-tv-z]{25}$
478
+ title: Organization Id
479
+ type: string
480
+ x-typeid-prefix: organization
481
+ tld:
482
+ description: The TLD this attribute set applies to
483
+ title: Tld
484
+ type: string
485
+ updated_on:
486
+ description: The date/time the entry was last updated on
487
+ format: date-time
488
+ title: Updated On
489
+ type: string
490
+ required:
491
+ - label
492
+ - attributes
493
+ - contact_attribute_set_id
494
+ - organization_id
495
+ - tld
496
+ - created_on
497
+ - updated_on
498
+ title: ContactAttributeSetResponse
499
+ type: object
500
+ ContactAttributeSetUpdate:
501
+ properties:
502
+ label:
503
+ anyOf:
504
+ - maxLength: 255
505
+ minLength: 1
506
+ type: string
507
+ - type: 'null'
508
+ description: A human-readable label explaining the purpose of this attribute
509
+ set
510
+ title: Label
511
+ title: ContactAttributeSetUpdate
512
+ type: object
309
513
  ContactConfigBase:
310
514
  properties:
311
515
  max:
@@ -417,6 +621,132 @@ components:
417
621
  - disclose
418
622
  title: ContactCreate
419
623
  type: object
624
+ ContactDetailResponse:
625
+ properties:
626
+ attribute_sets:
627
+ description: Linked attribute sets for this contact
628
+ items:
629
+ $ref: '#/components/schemas/ContactAttributeLinkDetail'
630
+ title: Attribute Sets
631
+ type: array
632
+ city:
633
+ description: The city of the contact
634
+ minLength: 1
635
+ title: City
636
+ type: string
637
+ contact_id:
638
+ examples:
639
+ - contact_01h45ytscbebyvny4gc8cr8ma2
640
+ format: typeid
641
+ pattern: ^contact_[0-7][0-9a-hjkmnpq-tv-z]{25}$
642
+ title: Contact Id
643
+ type: string
644
+ x-typeid-prefix: contact
645
+ country:
646
+ description: The country of the contact
647
+ pattern: ^\w{2}$
648
+ title: Country
649
+ type: string
650
+ created_on:
651
+ description: The date/time the entry was created on
652
+ format: date-time
653
+ title: Created On
654
+ type: string
655
+ deleted_on:
656
+ anyOf:
657
+ - format: date-time
658
+ type: string
659
+ - type: 'null'
660
+ description: The date/time the entry was deleted on
661
+ title: Deleted On
662
+ disclose:
663
+ description: Whether the contact details should be disclosed. The Disclose
664
+ function may not work with all TLDs. Some registries still display the
665
+ data in Whois if, for example, the organization field is filled in.
666
+ title: Disclose
667
+ type: boolean
668
+ email:
669
+ description: The email of the contact
670
+ format: email
671
+ title: Email
672
+ type: string
673
+ fax:
674
+ anyOf:
675
+ - format: phone
676
+ type: string
677
+ - type: 'null'
678
+ description: The contacts's fax number
679
+ title: Fax
680
+ first_name:
681
+ description: The first name of the contact
682
+ minLength: 1
683
+ title: First Name
684
+ type: string
685
+ last_name:
686
+ description: The last name of the contact
687
+ minLength: 1
688
+ title: Last Name
689
+ type: string
690
+ org:
691
+ anyOf:
692
+ - minLength: 1
693
+ type: string
694
+ - type: 'null'
695
+ description: The organization of the contact
696
+ title: Org
697
+ organization_id:
698
+ default: None
699
+ description: The organization that owns the domain
700
+ examples:
701
+ - organization_01h45ytscbebyvny4gc8cr8ma2
702
+ format: typeid
703
+ pattern: ^organization_[0-7][0-9a-hjkmnpq-tv-z]{25}$
704
+ title: Organization Id
705
+ type: string
706
+ x-typeid-prefix: organization
707
+ phone:
708
+ description: The contact's phone number
709
+ examples:
710
+ - '+1.2125552368'
711
+ format: phone
712
+ title: Phone
713
+ type: string
714
+ postal_code:
715
+ description: The postal code of the contact
716
+ minLength: 1
717
+ title: Postal Code
718
+ type: string
719
+ state:
720
+ anyOf:
721
+ - minLength: 1
722
+ type: string
723
+ - type: 'null'
724
+ description: The state of the contact
725
+ title: State
726
+ street:
727
+ description: The address of the contact
728
+ minLength: 1
729
+ title: Street
730
+ type: string
731
+ title:
732
+ anyOf:
733
+ - minLength: 1
734
+ type: string
735
+ - type: 'null'
736
+ description: The title of the contact
737
+ title: Title
738
+ required:
739
+ - first_name
740
+ - last_name
741
+ - email
742
+ - phone
743
+ - street
744
+ - city
745
+ - postal_code
746
+ - country
747
+ - disclose
748
+ title: ContactDetailResponse
749
+ type: object
420
750
  ContactHandle:
421
751
  properties:
422
752
  attributes:
@@ -4788,6 +5118,20 @@ components:
4788
5118
  - pagination
4789
5119
  title: Pagination[BillingTransactionResponse]
4790
5120
  type: object
5121
+ Pagination_ContactAttributeSetResponse_:
5122
+ properties:
5123
+ pagination:
5124
+ $ref: '#/components/schemas/PaginationMetadata'
5125
+ results:
5126
+ items:
5127
+ $ref: '#/components/schemas/ContactAttributeSetResponse'
5128
+ title: Results
5129
+ type: array
5130
+ required:
5131
+ - results
5132
+ - pagination
5133
+ title: Pagination[ContactAttributeSetResponse]
5134
+ type: object
4791
5135
  Pagination_ContactSchema_:
4792
5136
  properties:
4793
5137
  pagination:
@@ -7031,7 +7375,7 @@ info:
7031
7375
  '
7032
7376
  summary: OpusDNS - your gateway to a seamless domain management experience.
7033
7377
  title: OpusDNS API
7034
- version: 2026-02-20-105000
7378
+ version: 2026-02-23-085935
7035
7379
  x-logo:
7036
7380
  altText: OpusDNS API Reference
7037
7381
  url: https://d24lr4zqs1tgqh.cloudfront.net/c9505a20-5ae1-406c-b060-d392569caebf.jpg
@@ -7979,6 +8323,290 @@ paths:
7979
8323
  summary: Create a contact
7980
8324
  tags:
7981
8325
  - contact
8326
+ /v1/contacts/attribute-links:
8327
+ post:
8328
+ operationId: create_attribute_link_v1_contacts_attribute_links_post
8329
+ requestBody:
8330
+ content:
8331
+ application/json:
8332
+ schema:
8333
+ $ref: '#/components/schemas/ContactAttributeLinkCreate'
8334
+ required: true
8335
+ responses:
8336
+ '201':
8337
+ content:
8338
+ application/json:
8339
+ schema:
8340
+ $ref: '#/components/schemas/ContactAttributeLinkResponse'
8341
+ description: Successful Response
8342
+ '404':
8343
+ content:
8344
+ application/problem+json:
8345
+ examples:
8346
+ Contact Attribute Set Error:
8347
+ value:
8348
+ code: ERROR_CONTACT_ATTRIBUTE_SET_NOT_FOUND
8349
+ contact_attribute_set_id: Additional error context.
8350
+ detail: Contact attribute set not found
8351
+ status: 404
8352
+ title: Contact Attribute Set Error
8353
+ type: contact-attribute-set-not-found
8354
+ Contact Management Error:
8355
+ value:
8356
+ code: ERROR_CONTACT_NOT_FOUND
8357
+ contact_id: Additional error context.
8358
+ detail: Contact not found
8359
+ status: 404
8360
+ title: Contact Management Error
8361
+ type: contact-not-found
8362
+ schema:
8363
+ $ref: '#/components/schemas/Problem'
8364
+ description: Not Found
8365
+ '409':
8366
+ content:
8367
+ application/problem+json:
8368
+ example:
8369
+ code: ERROR_CONTACT_ATTRIBUTE_LINK_ALREADY_EXISTS
8370
+ contact_id: Additional error context.
8371
+ detail: A contact attribute link already exists for this contact and
8372
+ TLD
8373
+ status: 409
8374
+ title: Contact Attribute Set Error
8375
+ tld: ''
8376
+ type: contact-attribute-link-already-exists
8377
+ schema:
8378
+ $ref: '#/components/schemas/Problem'
8379
+ description: Conflict
8380
+ '422':
8381
+ content:
8382
+ application/problem+json:
8383
+ schema:
8384
+ $ref: '#/components/schemas/HTTPValidationError'
8385
+ description: Validation Error
8386
+ security:
8387
+ - OAuth2PasswordBearer: []
8388
+ - APIKeyHeader: []
8389
+ summary: Link a contact to a contact attribute set
8390
+ tags:
8391
+ - contact
8392
+ /v1/contacts/attribute-sets:
8393
+ get:
8394
+ operationId: list_attribute_sets_v1_contacts_attribute_sets_get
8395
+ parameters:
8396
+ - description: Filter by TLD (e.g. 'de', '.de', 'DE')
8397
+ in: query
8398
+ name: tld
8399
+ required: false
8400
+ schema:
8401
+ anyOf:
8402
+ - type: string
8403
+ - type: 'null'
8404
+ description: Filter by TLD (e.g. 'de', '.de', 'DE')
8405
+ title: Tld
8406
+ - in: query
8407
+ name: page
8408
+ required: false
8409
+ schema:
8410
+ default: 1
8411
+ minimum: 1
8412
+ title: Page
8413
+ type: integer
8414
+ - in: query
8415
+ name: page_size
8416
+ required: false
8417
+ schema:
8418
+ default: 10
8419
+ maximum: 1000
8420
+ minimum: 1
8421
+ title: Page Size
8422
+ type: integer
8423
+ responses:
8424
+ '200':
8425
+ content:
8426
+ application/json:
8427
+ schema:
8428
+ $ref: '#/components/schemas/Pagination_ContactAttributeSetResponse_'
8429
+ description: Successful Response
8430
+ '422':
8431
+ content:
8432
+ application/problem+json:
8433
+ schema:
8434
+ $ref: '#/components/schemas/HTTPValidationError'
8435
+ description: Validation Error
8436
+ security:
8437
+ - OAuth2PasswordBearer: []
8438
+ - APIKeyHeader: []
8439
+ summary: List contact attribute sets
8440
+ tags:
8441
+ - contact
8442
+ post:
8443
+ operationId: create_attribute_set_v1_contacts_attribute_sets_post
8444
+ requestBody:
8445
+ content:
8446
+ application/json:
8447
+ schema:
8448
+ $ref: '#/components/schemas/ContactAttributeSetCreate'
8449
+ required: true
8450
+ responses:
8451
+ '201':
8452
+ content:
8453
+ application/json:
8454
+ schema:
8455
+ $ref: '#/components/schemas/ContactAttributeSetResponse'
8456
+ description: Successful Response
8457
+ '422':
8458
+ content:
8459
+ application/problem+json:
8460
+ schema:
8461
+ $ref: '#/components/schemas/HTTPValidationError'
8462
+ description: Validation Error
8463
+ security:
8464
+ - OAuth2PasswordBearer: []
8465
+ - APIKeyHeader: []
8466
+ summary: Create a contact attribute set
8467
+ tags:
8468
+ - contact
8469
+ /v1/contacts/attribute-sets/{contact_attribute_set_id}:
8470
+ delete:
8471
+ operationId: delete_attribute_set_v1_contacts_attribute_sets__contact_attribute_set_id__delete
8472
+ parameters:
8473
+ - in: path
8474
+ name: contact_attribute_set_id
8475
+ required: true
8476
+ schema:
8477
+ examples:
8478
+ - contact_attribute_set_01h45ytscbebyvny4gc8cr8ma2
8479
+ format: typeid
8480
+ pattern: ^contact_attribute_set_[0-7][0-9a-hjkmnpq-tv-z]{25}$
8481
+ title: Contact Attribute Set Id
8482
+ type: string
8483
+ x-typeid-prefix: contact_attribute_set
8484
+ responses:
8485
+ '204':
8486
+ description: Successful Response
8487
+ '404':
8488
+ content:
8489
+ application/problem+json:
8490
+ example:
8491
+ code: ERROR_CONTACT_ATTRIBUTE_SET_NOT_FOUND
8492
+ contact_attribute_set_id: Additional error context.
8493
+ detail: Contact attribute set not found
8494
+ status: 404
8495
+ title: Contact Attribute Set Error
8496
+ type: contact-attribute-set-not-found
8497
+ schema:
8498
+ $ref: '#/components/schemas/Problem'
8499
+ description: Not Found
8500
+ '422':
8501
+ content:
8502
+ application/problem+json:
8503
+ schema:
8504
+ $ref: '#/components/schemas/HTTPValidationError'
8505
+ description: Validation Error
8506
+ security:
8507
+ - OAuth2PasswordBearer: []
8508
+ - APIKeyHeader: []
8509
+ summary: Delete a contact attribute set
8510
+ tags:
8511
+ - contact
8512
+ get:
8513
+ operationId: get_attribute_set_v1_contacts_attribute_sets__contact_attribute_set_id__get
8514
+ parameters:
8515
+ - in: path
8516
+ name: contact_attribute_set_id
8517
+ required: true
8518
+ schema:
8519
+ examples:
8520
+ - contact_attribute_set_01h45ytscbebyvny4gc8cr8ma2
8521
+ format: typeid
8522
+ pattern: ^contact_attribute_set_[0-7][0-9a-hjkmnpq-tv-z]{25}$
8523
+ title: Contact Attribute Set Id
8524
+ type: string
8525
+ x-typeid-prefix: contact_attribute_set
8526
+ responses:
8527
+ '200':
8528
+ content:
8529
+ application/json:
8530
+ schema:
8531
+ $ref: '#/components/schemas/ContactAttributeSetResponse'
8532
+ description: Successful Response
8533
+ '404':
8534
+ content:
8535
+ application/problem+json:
8536
+ example:
8537
+ code: ERROR_CONTACT_ATTRIBUTE_SET_NOT_FOUND
8538
+ contact_attribute_set_id: Additional error context.
8539
+ detail: Contact attribute set not found
8540
+ status: 404
8541
+ title: Contact Attribute Set Error
8542
+ type: contact-attribute-set-not-found
8543
+ schema:
8544
+ $ref: '#/components/schemas/Problem'
8545
+ description: Not Found
8546
+ '422':
8547
+ content:
8548
+ application/problem+json:
8549
+ schema:
8550
+ $ref: '#/components/schemas/HTTPValidationError'
8551
+ description: Validation Error
8552
+ security:
8553
+ - OAuth2PasswordBearer: []
8554
+ - APIKeyHeader: []
8555
+ summary: Retrieve a contact attribute set
8556
+ tags:
8557
+ - contact
8558
+ patch:
8559
+ operationId: update_attribute_set_v1_contacts_attribute_sets__contact_attribute_set_id__patch
8560
+ parameters:
8561
+ - in: path
8562
+ name: contact_attribute_set_id
8563
+ required: true
8564
+ schema:
8565
+ examples:
8566
+ - contact_attribute_set_01h45ytscbebyvny4gc8cr8ma2
8567
+ format: typeid
8568
+ pattern: ^contact_attribute_set_[0-7][0-9a-hjkmnpq-tv-z]{25}$
8569
+ title: Contact Attribute Set Id
8570
+ type: string
8571
+ x-typeid-prefix: contact_attribute_set
8572
+ requestBody:
8573
+ content:
8574
+ application/json:
8575
+ schema:
8576
+ $ref: '#/components/schemas/ContactAttributeSetUpdate'
8577
+ required: true
8578
+ responses:
8579
+ '200':
8580
+ content:
8581
+ application/json:
8582
+ schema:
8583
+ $ref: '#/components/schemas/ContactAttributeSetResponse'
8584
+ description: Successful Response
8585
+ '404':
8586
+ content:
8587
+ application/problem+json:
8588
+ example:
8589
+ code: ERROR_CONTACT_ATTRIBUTE_SET_NOT_FOUND
8590
+ contact_attribute_set_id: Additional error context.
8591
+ detail: Contact attribute set not found
8592
+ status: 404
8593
+ title: Contact Attribute Set Error
8594
+ type: contact-attribute-set-not-found
8595
+ schema:
8596
+ $ref: '#/components/schemas/Problem'
8597
+ description: Not Found
8598
+ '422':
8599
+ content:
8600
+ application/problem+json:
8601
+ schema:
8602
+ $ref: '#/components/schemas/HTTPValidationError'
8603
+ description: Validation Error
8604
+ security:
8605
+ - OAuth2PasswordBearer: []
8606
+ - APIKeyHeader: []
8607
+ summary: Update a contact attribute set
8608
+ tags:
8609
+ - contact
7982
8610
  /v1/contacts/verification:
7983
8611
  get:
7984
8612
  operationId: get_verification_by_token_v1_contacts_verification_get
@@ -8174,7 +8802,6 @@ paths:
8174
8802
  tags:
8175
8803
  - contact
8176
8804
  get:
8177
- description: Retrieves a contact object
8178
8805
  operationId: get_contact_v1_contacts__contact_id__get
8179
8806
  parameters:
8180
8807
  - in: path
@@ -8193,7 +8820,7 @@ paths:
8193
8820
  content:
8194
8821
  application/json:
8195
8822
  schema:
8196
- $ref: '#/components/schemas/ContactSchema'
8823
+ $ref: '#/components/schemas/ContactDetailResponse'
8197
8824
  description: Successful Response
8198
8825
  '404':
8199
8826
  content: