@opusdns/api 0.199.0 → 0.201.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,185 @@ components:
306
306
  - type
307
307
  title: ContactAttributeDefinition
308
308
  type: object
309
+ ContactAttributeLinkDetail:
310
+ properties:
311
+ attributes:
312
+ additionalProperties:
313
+ type: string
314
+ description: The attributes from the linked set
315
+ propertyNames:
316
+ $ref: '#/components/schemas/RegistryHandleAttributeType'
317
+ title: Attributes
318
+ type: object
319
+ contact_attribute_set_id:
320
+ description: The attribute set linked to the contact
321
+ examples:
322
+ - contact_attribute_set_01h45ytscbebyvny4gc8cr8ma2
323
+ format: typeid
324
+ pattern: ^contact_attribute_set_[0-7][0-9a-hjkmnpq-tv-z]{25}$
325
+ title: Contact Attribute Set Id
326
+ type: string
327
+ x-typeid-prefix: contact_attribute_set
328
+ label:
329
+ description: The label of the linked attribute set
330
+ title: Label
331
+ type: string
332
+ tld:
333
+ description: The TLD this link applies to
334
+ title: Tld
335
+ type: string
336
+ required:
337
+ - contact_attribute_set_id
338
+ - label
339
+ - tld
340
+ - attributes
341
+ title: ContactAttributeLinkDetail
342
+ type: object
343
+ ContactAttributeLinkResponse:
344
+ properties:
345
+ contact_attribute_link_id:
346
+ description: The unique identifier of the link
347
+ examples:
348
+ - contact_attribute_link_01h45ytscbebyvny4gc8cr8ma2
349
+ format: typeid
350
+ pattern: ^contact_attribute_link_[0-7][0-9a-hjkmnpq-tv-z]{25}$
351
+ title: Contact Attribute Link Id
352
+ type: string
353
+ x-typeid-prefix: contact_attribute_link
354
+ contact_attribute_set_id:
355
+ description: The attribute set linked to the contact
356
+ examples:
357
+ - contact_attribute_set_01h45ytscbebyvny4gc8cr8ma2
358
+ format: typeid
359
+ pattern: ^contact_attribute_set_[0-7][0-9a-hjkmnpq-tv-z]{25}$
360
+ title: Contact Attribute Set Id
361
+ type: string
362
+ x-typeid-prefix: contact_attribute_set
363
+ contact_id:
364
+ description: The contact this link belongs to
365
+ examples:
366
+ - contact_01h45ytscbebyvny4gc8cr8ma2
367
+ format: typeid
368
+ pattern: ^contact_[0-7][0-9a-hjkmnpq-tv-z]{25}$
369
+ title: Contact Id
370
+ type: string
371
+ x-typeid-prefix: contact
372
+ created_on:
373
+ description: The date/time the entry was created on
374
+ format: date-time
375
+ title: Created On
376
+ type: string
377
+ tld:
378
+ description: The TLD this link applies to
379
+ title: Tld
380
+ type: string
381
+ required:
382
+ - contact_attribute_link_id
383
+ - contact_id
384
+ - contact_attribute_set_id
385
+ - tld
386
+ - created_on
387
+ title: ContactAttributeLinkResponse
388
+ type: object
389
+ ContactAttributeSetCreate:
390
+ properties:
391
+ attributes:
392
+ additionalProperties:
393
+ type: string
394
+ description: Key-value map of contact attributes for this set
395
+ propertyNames:
396
+ $ref: '#/components/schemas/RegistryHandleAttributeType'
397
+ title: Attributes
398
+ type: object
399
+ label:
400
+ description: A human-readable label explaining the purpose of this attribute
401
+ set
402
+ maxLength: 255
403
+ minLength: 1
404
+ title: Label
405
+ type: string
406
+ tld:
407
+ description: The TLD this attribute set applies to (e.g. 'de', '.de', 'DE')
408
+ title: Tld
409
+ type: string
410
+ required:
411
+ - label
412
+ - attributes
413
+ - tld
414
+ title: ContactAttributeSetCreate
415
+ type: object
416
+ ContactAttributeSetResponse:
417
+ properties:
418
+ attributes:
419
+ additionalProperties:
420
+ type: string
421
+ description: Key-value map of contact attributes for this set
422
+ propertyNames:
423
+ $ref: '#/components/schemas/RegistryHandleAttributeType'
424
+ title: Attributes
425
+ type: object
426
+ contact_attribute_set_id:
427
+ description: The unique identifier of the attribute set
428
+ examples:
429
+ - contact_attribute_set_01h45ytscbebyvny4gc8cr8ma2
430
+ format: typeid
431
+ pattern: ^contact_attribute_set_[0-7][0-9a-hjkmnpq-tv-z]{25}$
432
+ title: Contact Attribute Set Id
433
+ type: string
434
+ x-typeid-prefix: contact_attribute_set
435
+ created_on:
436
+ description: The date/time the entry was created on
437
+ format: date-time
438
+ title: Created On
439
+ type: string
440
+ label:
441
+ description: A human-readable label explaining the purpose of this attribute
442
+ set
443
+ maxLength: 255
444
+ minLength: 1
445
+ title: Label
446
+ type: string
447
+ organization_id:
448
+ description: The organization that owns this attribute set
449
+ examples:
450
+ - organization_01h45ytscbebyvny4gc8cr8ma2
451
+ format: typeid
452
+ pattern: ^organization_[0-7][0-9a-hjkmnpq-tv-z]{25}$
453
+ title: Organization Id
454
+ type: string
455
+ x-typeid-prefix: organization
456
+ tld:
457
+ description: The TLD this attribute set applies to
458
+ title: Tld
459
+ type: string
460
+ updated_on:
461
+ description: The date/time the entry was last updated on
462
+ format: date-time
463
+ title: Updated On
464
+ type: string
465
+ required:
466
+ - label
467
+ - attributes
468
+ - contact_attribute_set_id
469
+ - organization_id
470
+ - tld
471
+ - created_on
472
+ - updated_on
473
+ title: ContactAttributeSetResponse
474
+ type: object
475
+ ContactAttributeSetUpdate:
476
+ properties:
477
+ label:
478
+ anyOf:
479
+ - maxLength: 255
480
+ minLength: 1
481
+ type: string
482
+ - type: 'null'
483
+ description: A human-readable label explaining the purpose of this attribute
484
+ set
485
+ title: Label
486
+ title: ContactAttributeSetUpdate
487
+ type: object
309
488
  ContactConfigBase:
310
489
  properties:
311
490
  max:
@@ -417,6 +596,132 @@ components:
417
596
  - disclose
418
597
  title: ContactCreate
419
598
  type: object
599
+ ContactDetailResponse:
600
+ properties:
601
+ attribute_sets:
602
+ description: Linked attribute sets for this contact
603
+ items:
604
+ $ref: '#/components/schemas/ContactAttributeLinkDetail'
605
+ title: Attribute Sets
606
+ type: array
607
+ city:
608
+ description: The city of the contact
609
+ minLength: 1
610
+ title: City
611
+ type: string
612
+ contact_id:
613
+ examples:
614
+ - contact_01h45ytscbebyvny4gc8cr8ma2
615
+ format: typeid
616
+ pattern: ^contact_[0-7][0-9a-hjkmnpq-tv-z]{25}$
617
+ title: Contact Id
618
+ type: string
619
+ x-typeid-prefix: contact
620
+ country:
621
+ description: The country of the contact
622
+ pattern: ^\w{2}$
623
+ title: Country
624
+ type: string
625
+ created_on:
626
+ description: The date/time the entry was created on
627
+ format: date-time
628
+ title: Created On
629
+ type: string
630
+ deleted_on:
631
+ anyOf:
632
+ - format: date-time
633
+ type: string
634
+ - type: 'null'
635
+ description: The date/time the entry was deleted on
636
+ title: Deleted On
637
+ disclose:
638
+ description: Whether the contact details should be disclosed. The Disclose
639
+ function may not work with all TLDs. Some registries still display the
640
+ data in Whois if, for example, the organization field is filled in.
641
+ title: Disclose
642
+ type: boolean
643
+ email:
644
+ description: The email of the contact
645
+ format: email
646
+ title: Email
647
+ type: string
648
+ fax:
649
+ anyOf:
650
+ - format: phone
651
+ type: string
652
+ - type: 'null'
653
+ description: The contacts's fax number
654
+ title: Fax
655
+ first_name:
656
+ description: The first name of the contact
657
+ minLength: 1
658
+ title: First Name
659
+ type: string
660
+ last_name:
661
+ description: The last name of the contact
662
+ minLength: 1
663
+ title: Last Name
664
+ type: string
665
+ org:
666
+ anyOf:
667
+ - minLength: 1
668
+ type: string
669
+ - type: 'null'
670
+ description: The organization of the contact
671
+ title: Org
672
+ organization_id:
673
+ default: None
674
+ description: The organization that owns the domain
675
+ examples:
676
+ - organization_01h45ytscbebyvny4gc8cr8ma2
677
+ format: typeid
678
+ pattern: ^organization_[0-7][0-9a-hjkmnpq-tv-z]{25}$
679
+ title: Organization Id
680
+ type: string
681
+ x-typeid-prefix: organization
682
+ phone:
683
+ description: The contact's phone number
684
+ examples:
685
+ - '+1.2125552368'
686
+ format: phone
687
+ title: Phone
688
+ type: string
689
+ postal_code:
690
+ description: The postal code of the contact
691
+ minLength: 1
692
+ title: Postal Code
693
+ type: string
694
+ state:
695
+ anyOf:
696
+ - minLength: 1
697
+ type: string
698
+ - type: 'null'
699
+ description: The state of the contact
700
+ title: State
701
+ street:
702
+ description: The address of the contact
703
+ minLength: 1
704
+ title: Street
705
+ type: string
706
+ title:
707
+ anyOf:
708
+ - minLength: 1
709
+ type: string
710
+ - type: 'null'
711
+ description: The title of the contact
712
+ title: Title
713
+ required:
714
+ - first_name
715
+ - last_name
716
+ - email
717
+ - phone
718
+ - street
719
+ - city
720
+ - postal_code
721
+ - country
722
+ - disclose
723
+ title: ContactDetailResponse
724
+ type: object
420
725
  ContactHandle:
421
726
  properties:
422
727
  attributes:
@@ -4788,19 +5093,33 @@ components:
4788
5093
  - pagination
4789
5094
  title: Pagination[BillingTransactionResponse]
4790
5095
  type: object
4791
- Pagination_ContactSchema_:
5096
+ Pagination_ContactAttributeSetResponse_:
5097
+ properties:
5098
+ pagination:
5099
+ $ref: '#/components/schemas/PaginationMetadata'
5100
+ results:
5101
+ items:
5102
+ $ref: '#/components/schemas/ContactAttributeSetResponse'
5103
+ title: Results
5104
+ type: array
5105
+ required:
5106
+ - results
5107
+ - pagination
5108
+ title: Pagination[ContactAttributeSetResponse]
5109
+ type: object
5110
+ Pagination_ContactDetailResponse_:
4792
5111
  properties:
4793
5112
  pagination:
4794
5113
  $ref: '#/components/schemas/PaginationMetadata'
4795
5114
  results:
4796
5115
  items:
4797
- $ref: '#/components/schemas/ContactSchema'
5116
+ $ref: '#/components/schemas/ContactDetailResponse'
4798
5117
  title: Results
4799
5118
  type: array
4800
5119
  required:
4801
5120
  - results
4802
5121
  - pagination
4803
- title: Pagination[ContactSchema]
5122
+ title: Pagination[ContactDetailResponse]
4804
5123
  type: object
4805
5124
  Pagination_DnsZoneResponse_:
4806
5125
  properties:
@@ -7031,7 +7350,7 @@ info:
7031
7350
  '
7032
7351
  summary: OpusDNS - your gateway to a seamless domain management experience.
7033
7352
  title: OpusDNS API
7034
- version: 2026-02-20-105000
7353
+ version: 2026-02-24-090615
7035
7354
  x-logo:
7036
7355
  altText: OpusDNS API Reference
7037
7356
  url: https://d24lr4zqs1tgqh.cloudfront.net/c9505a20-5ae1-406c-b060-d392569caebf.jpg
@@ -7937,7 +8256,7 @@ paths:
7937
8256
  content:
7938
8257
  application/json:
7939
8258
  schema:
7940
- $ref: '#/components/schemas/Pagination_ContactSchema_'
8259
+ $ref: '#/components/schemas/Pagination_ContactDetailResponse_'
7941
8260
  description: Successful Response
7942
8261
  '422':
7943
8262
  content:
@@ -7979,6 +8298,252 @@ paths:
7979
8298
  summary: Create a contact
7980
8299
  tags:
7981
8300
  - contact
8301
+ /v1/contacts/attribute-sets:
8302
+ get:
8303
+ operationId: list_attribute_sets_v1_contacts_attribute_sets_get
8304
+ parameters:
8305
+ - description: Filter by TLD (e.g. 'de', '.de', 'DE')
8306
+ in: query
8307
+ name: tld
8308
+ required: false
8309
+ schema:
8310
+ anyOf:
8311
+ - type: string
8312
+ - type: 'null'
8313
+ description: Filter by TLD (e.g. 'de', '.de', 'DE')
8314
+ title: Tld
8315
+ - in: query
8316
+ name: page
8317
+ required: false
8318
+ schema:
8319
+ default: 1
8320
+ minimum: 1
8321
+ title: Page
8322
+ type: integer
8323
+ - in: query
8324
+ name: page_size
8325
+ required: false
8326
+ schema:
8327
+ default: 10
8328
+ maximum: 1000
8329
+ minimum: 1
8330
+ title: Page Size
8331
+ type: integer
8332
+ responses:
8333
+ '200':
8334
+ content:
8335
+ application/json:
8336
+ schema:
8337
+ $ref: '#/components/schemas/Pagination_ContactAttributeSetResponse_'
8338
+ description: Successful Response
8339
+ '422':
8340
+ content:
8341
+ application/problem+json:
8342
+ schema:
8343
+ $ref: '#/components/schemas/HTTPValidationError'
8344
+ description: Validation Error
8345
+ security:
8346
+ - OAuth2PasswordBearer: []
8347
+ - APIKeyHeader: []
8348
+ summary: List contact attribute sets
8349
+ tags:
8350
+ - contact
8351
+ post:
8352
+ operationId: create_attribute_set_v1_contacts_attribute_sets_post
8353
+ requestBody:
8354
+ content:
8355
+ application/json:
8356
+ schema:
8357
+ $ref: '#/components/schemas/ContactAttributeSetCreate'
8358
+ required: true
8359
+ responses:
8360
+ '201':
8361
+ content:
8362
+ application/json:
8363
+ schema:
8364
+ $ref: '#/components/schemas/ContactAttributeSetResponse'
8365
+ description: Successful Response
8366
+ '409':
8367
+ content:
8368
+ application/problem+json:
8369
+ example:
8370
+ code: ERROR_CONTACT_ATTRIBUTE_SET_LABEL_ALREADY_EXISTS
8371
+ detail: A contact attribute set with label 'Additional error context.'
8372
+ already exists
8373
+ label: Additional error context.
8374
+ status: 409
8375
+ title: Contact Attribute Set Error
8376
+ type: contact-attribute-set-label-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: Create a contact attribute set
8390
+ tags:
8391
+ - contact
8392
+ /v1/contacts/attribute-sets/{contact_attribute_set_id}:
8393
+ delete:
8394
+ operationId: delete_attribute_set_v1_contacts_attribute_sets__contact_attribute_set_id__delete
8395
+ parameters:
8396
+ - in: path
8397
+ name: contact_attribute_set_id
8398
+ required: true
8399
+ schema:
8400
+ examples:
8401
+ - contact_attribute_set_01h45ytscbebyvny4gc8cr8ma2
8402
+ format: typeid
8403
+ pattern: ^contact_attribute_set_[0-7][0-9a-hjkmnpq-tv-z]{25}$
8404
+ title: Contact Attribute Set Id
8405
+ type: string
8406
+ x-typeid-prefix: contact_attribute_set
8407
+ responses:
8408
+ '204':
8409
+ description: Successful Response
8410
+ '404':
8411
+ content:
8412
+ application/problem+json:
8413
+ example:
8414
+ code: ERROR_CONTACT_ATTRIBUTE_SET_NOT_FOUND
8415
+ contact_attribute_set_id: Additional error context.
8416
+ detail: Contact attribute set not found
8417
+ status: 404
8418
+ title: Contact Attribute Set Error
8419
+ type: contact-attribute-set-not-found
8420
+ schema:
8421
+ $ref: '#/components/schemas/Problem'
8422
+ description: Not Found
8423
+ '422':
8424
+ content:
8425
+ application/problem+json:
8426
+ schema:
8427
+ $ref: '#/components/schemas/HTTPValidationError'
8428
+ description: Validation Error
8429
+ security:
8430
+ - OAuth2PasswordBearer: []
8431
+ - APIKeyHeader: []
8432
+ summary: Delete a contact attribute set
8433
+ tags:
8434
+ - contact
8435
+ get:
8436
+ operationId: get_attribute_set_v1_contacts_attribute_sets__contact_attribute_set_id__get
8437
+ parameters:
8438
+ - in: path
8439
+ name: contact_attribute_set_id
8440
+ required: true
8441
+ schema:
8442
+ examples:
8443
+ - contact_attribute_set_01h45ytscbebyvny4gc8cr8ma2
8444
+ format: typeid
8445
+ pattern: ^contact_attribute_set_[0-7][0-9a-hjkmnpq-tv-z]{25}$
8446
+ title: Contact Attribute Set Id
8447
+ type: string
8448
+ x-typeid-prefix: contact_attribute_set
8449
+ responses:
8450
+ '200':
8451
+ content:
8452
+ application/json:
8453
+ schema:
8454
+ $ref: '#/components/schemas/ContactAttributeSetResponse'
8455
+ description: Successful Response
8456
+ '404':
8457
+ content:
8458
+ application/problem+json:
8459
+ example:
8460
+ code: ERROR_CONTACT_ATTRIBUTE_SET_NOT_FOUND
8461
+ contact_attribute_set_id: Additional error context.
8462
+ detail: Contact attribute set not found
8463
+ status: 404
8464
+ title: Contact Attribute Set Error
8465
+ type: contact-attribute-set-not-found
8466
+ schema:
8467
+ $ref: '#/components/schemas/Problem'
8468
+ description: Not Found
8469
+ '422':
8470
+ content:
8471
+ application/problem+json:
8472
+ schema:
8473
+ $ref: '#/components/schemas/HTTPValidationError'
8474
+ description: Validation Error
8475
+ security:
8476
+ - OAuth2PasswordBearer: []
8477
+ - APIKeyHeader: []
8478
+ summary: Retrieve a contact attribute set
8479
+ tags:
8480
+ - contact
8481
+ patch:
8482
+ operationId: update_attribute_set_v1_contacts_attribute_sets__contact_attribute_set_id__patch
8483
+ parameters:
8484
+ - in: path
8485
+ name: contact_attribute_set_id
8486
+ required: true
8487
+ schema:
8488
+ examples:
8489
+ - contact_attribute_set_01h45ytscbebyvny4gc8cr8ma2
8490
+ format: typeid
8491
+ pattern: ^contact_attribute_set_[0-7][0-9a-hjkmnpq-tv-z]{25}$
8492
+ title: Contact Attribute Set Id
8493
+ type: string
8494
+ x-typeid-prefix: contact_attribute_set
8495
+ requestBody:
8496
+ content:
8497
+ application/json:
8498
+ schema:
8499
+ $ref: '#/components/schemas/ContactAttributeSetUpdate'
8500
+ required: true
8501
+ responses:
8502
+ '200':
8503
+ content:
8504
+ application/json:
8505
+ schema:
8506
+ $ref: '#/components/schemas/ContactAttributeSetResponse'
8507
+ description: Successful Response
8508
+ '404':
8509
+ content:
8510
+ application/problem+json:
8511
+ example:
8512
+ code: ERROR_CONTACT_ATTRIBUTE_SET_NOT_FOUND
8513
+ contact_attribute_set_id: Additional error context.
8514
+ detail: Contact attribute set not found
8515
+ status: 404
8516
+ title: Contact Attribute Set Error
8517
+ type: contact-attribute-set-not-found
8518
+ schema:
8519
+ $ref: '#/components/schemas/Problem'
8520
+ description: Not Found
8521
+ '409':
8522
+ content:
8523
+ application/problem+json:
8524
+ example:
8525
+ code: ERROR_CONTACT_ATTRIBUTE_SET_LABEL_ALREADY_EXISTS
8526
+ detail: A contact attribute set with label 'Additional error context.'
8527
+ already exists
8528
+ label: Additional error context.
8529
+ status: 409
8530
+ title: Contact Attribute Set Error
8531
+ type: contact-attribute-set-label-already-exists
8532
+ schema:
8533
+ $ref: '#/components/schemas/Problem'
8534
+ description: Conflict
8535
+ '422':
8536
+ content:
8537
+ application/problem+json:
8538
+ schema:
8539
+ $ref: '#/components/schemas/HTTPValidationError'
8540
+ description: Validation Error
8541
+ security:
8542
+ - OAuth2PasswordBearer: []
8543
+ - APIKeyHeader: []
8544
+ summary: Update a contact attribute set
8545
+ tags:
8546
+ - contact
7982
8547
  /v1/contacts/verification:
7983
8548
  get:
7984
8549
  operationId: get_verification_by_token_v1_contacts_verification_get
@@ -8174,7 +8739,6 @@ paths:
8174
8739
  tags:
8175
8740
  - contact
8176
8741
  get:
8177
- description: Retrieves a contact object
8178
8742
  operationId: get_contact_v1_contacts__contact_id__get
8179
8743
  parameters:
8180
8744
  - in: path
@@ -8193,7 +8757,7 @@ paths:
8193
8757
  content:
8194
8758
  application/json:
8195
8759
  schema:
8196
- $ref: '#/components/schemas/ContactSchema'
8760
+ $ref: '#/components/schemas/ContactDetailResponse'
8197
8761
  description: Successful Response
8198
8762
  '404':
8199
8763
  content:
@@ -8220,6 +8784,89 @@ paths:
8220
8784
  summary: Retrieve a contact
8221
8785
  tags:
8222
8786
  - contact
8787
+ /v1/contacts/{contact_id}/link/{contact_attribute_set_id}:
8788
+ patch:
8789
+ operationId: create_attribute_link_v1_contacts__contact_id__link__contact_attribute_set_id__patch
8790
+ parameters:
8791
+ - in: path
8792
+ name: contact_id
8793
+ required: true
8794
+ schema:
8795
+ examples:
8796
+ - contact_01h45ytscbebyvny4gc8cr8ma2
8797
+ format: typeid
8798
+ pattern: ^contact_[0-7][0-9a-hjkmnpq-tv-z]{25}$
8799
+ title: Contact Id
8800
+ type: string
8801
+ x-typeid-prefix: contact
8802
+ - in: path
8803
+ name: contact_attribute_set_id
8804
+ required: true
8805
+ schema:
8806
+ examples:
8807
+ - contact_attribute_set_01h45ytscbebyvny4gc8cr8ma2
8808
+ format: typeid
8809
+ pattern: ^contact_attribute_set_[0-7][0-9a-hjkmnpq-tv-z]{25}$
8810
+ title: Contact Attribute Set Id
8811
+ type: string
8812
+ x-typeid-prefix: contact_attribute_set
8813
+ responses:
8814
+ '200':
8815
+ content:
8816
+ application/json:
8817
+ schema:
8818
+ $ref: '#/components/schemas/ContactAttributeLinkResponse'
8819
+ description: Successful Response
8820
+ '404':
8821
+ content:
8822
+ application/problem+json:
8823
+ examples:
8824
+ Contact Attribute Set Error:
8825
+ value:
8826
+ code: ERROR_CONTACT_ATTRIBUTE_SET_NOT_FOUND
8827
+ contact_attribute_set_id: Additional error context.
8828
+ detail: Contact attribute set not found
8829
+ status: 404
8830
+ title: Contact Attribute Set Error
8831
+ type: contact-attribute-set-not-found
8832
+ Contact Management Error:
8833
+ value:
8834
+ code: ERROR_CONTACT_NOT_FOUND
8835
+ contact_id: Additional error context.
8836
+ detail: Contact not found
8837
+ status: 404
8838
+ title: Contact Management Error
8839
+ type: contact-not-found
8840
+ schema:
8841
+ $ref: '#/components/schemas/Problem'
8842
+ description: Not Found
8843
+ '409':
8844
+ content:
8845
+ application/problem+json:
8846
+ example:
8847
+ code: ERROR_CONTACT_ATTRIBUTE_LINK_ALREADY_EXISTS
8848
+ contact_id: Additional error context.
8849
+ detail: A contact attribute link already exists for this contact and
8850
+ TLD
8851
+ status: 409
8852
+ title: Contact Attribute Set Error
8853
+ tld: ''
8854
+ type: contact-attribute-link-already-exists
8855
+ schema:
8856
+ $ref: '#/components/schemas/Problem'
8857
+ description: Conflict
8858
+ '422':
8859
+ content:
8860
+ application/problem+json:
8861
+ schema:
8862
+ $ref: '#/components/schemas/HTTPValidationError'
8863
+ description: Validation Error
8864
+ security:
8865
+ - OAuth2PasswordBearer: []
8866
+ - APIKeyHeader: []
8867
+ summary: Link a contact to a contact attribute set
8868
+ tags:
8869
+ - contact
8223
8870
  /v1/contacts/{contact_id}/verification:
8224
8871
  delete:
8225
8872
  operationId: cancel_verification_v1_contacts__contact_id__verification_delete