@opusdns/api 0.258.0 → 0.260.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/package.json +1 -1
- package/src/helpers/constants.ts +105 -1
- package/src/helpers/keys.ts +814 -0
- package/src/helpers/requests.d.ts +300 -1
- package/src/helpers/responses.d.ts +649 -1
- package/src/helpers/schemas-arrays.d.ts +29 -1
- package/src/helpers/schemas.d.ts +144 -0
- package/src/openapi.yaml +901 -81
- package/src/schema.d.ts +722 -0
package/src/openapi.yaml
CHANGED
|
@@ -259,6 +259,70 @@ components:
|
|
|
259
259
|
- unique
|
|
260
260
|
title: BrowserStatsBucket
|
|
261
261
|
type: object
|
|
262
|
+
BulkObjectTagChanges:
|
|
263
|
+
properties:
|
|
264
|
+
add:
|
|
265
|
+
description: Tag IDs to add to the objects.
|
|
266
|
+
items:
|
|
267
|
+
examples:
|
|
268
|
+
- tag_01h45ytscbebyvny4gc8cr8ma2
|
|
269
|
+
format: typeid
|
|
270
|
+
pattern: ^tag_[0-7][0-9a-hjkmnpq-tv-z]{25}$
|
|
271
|
+
type: string
|
|
272
|
+
x-typeid-prefix: tag
|
|
273
|
+
maxItems: 1000
|
|
274
|
+
title: Add
|
|
275
|
+
type: array
|
|
276
|
+
objects:
|
|
277
|
+
description: Object references to operate on. TypeIDs and resource names
|
|
278
|
+
may be mixed.
|
|
279
|
+
items:
|
|
280
|
+
description: A TypeID (e.g. domain_01h45ytscbebyvny4gc8cr8ma2) or a resource
|
|
281
|
+
name (e.g. example.com)
|
|
282
|
+
examples:
|
|
283
|
+
- domain_01h45ytscbebyvny4gc8cr8ma2
|
|
284
|
+
- example.com
|
|
285
|
+
type: string
|
|
286
|
+
maxItems: 1000
|
|
287
|
+
minItems: 1
|
|
288
|
+
title: Objects
|
|
289
|
+
type: array
|
|
290
|
+
remove:
|
|
291
|
+
description: Tag IDs to remove from the objects.
|
|
292
|
+
items:
|
|
293
|
+
examples:
|
|
294
|
+
- tag_01h45ytscbebyvny4gc8cr8ma2
|
|
295
|
+
format: typeid
|
|
296
|
+
pattern: ^tag_[0-7][0-9a-hjkmnpq-tv-z]{25}$
|
|
297
|
+
type: string
|
|
298
|
+
x-typeid-prefix: tag
|
|
299
|
+
maxItems: 1000
|
|
300
|
+
title: Remove
|
|
301
|
+
type: array
|
|
302
|
+
replace:
|
|
303
|
+
anyOf:
|
|
304
|
+
- items:
|
|
305
|
+
examples:
|
|
306
|
+
- tag_01h45ytscbebyvny4gc8cr8ma2
|
|
307
|
+
format: typeid
|
|
308
|
+
pattern: ^tag_[0-7][0-9a-hjkmnpq-tv-z]{25}$
|
|
309
|
+
type: string
|
|
310
|
+
x-typeid-prefix: tag
|
|
311
|
+
maxItems: 1000
|
|
312
|
+
type: array
|
|
313
|
+
- type: 'null'
|
|
314
|
+
description: Tag IDs to set as the complete tag set for the objects, replacing
|
|
315
|
+
any existing tags. Mutually exclusive with 'add' and 'remove'. An empty
|
|
316
|
+
list removes all tags.
|
|
317
|
+
title: Replace
|
|
318
|
+
type:
|
|
319
|
+
$ref: '#/components/schemas/TagType'
|
|
320
|
+
description: The object/tag type (e.g. DOMAIN, CONTACT, ZONE)
|
|
321
|
+
required:
|
|
322
|
+
- type
|
|
323
|
+
- objects
|
|
324
|
+
title: BulkObjectTagChanges
|
|
325
|
+
type: object
|
|
262
326
|
CommandError:
|
|
263
327
|
properties:
|
|
264
328
|
error:
|
|
@@ -6329,6 +6393,57 @@ components:
|
|
|
6329
6393
|
- performed_by_id
|
|
6330
6394
|
title: ObjectLogSortField
|
|
6331
6395
|
type: string
|
|
6396
|
+
ObjectTagChanges:
|
|
6397
|
+
properties:
|
|
6398
|
+
add:
|
|
6399
|
+
description: Object TypeIDs or resource names to tag. TypeIDs and names
|
|
6400
|
+
may be mixed.
|
|
6401
|
+
items:
|
|
6402
|
+
description: A TypeID (e.g. domain_01h45ytscbebyvny4gc8cr8ma2) or a resource
|
|
6403
|
+
name (e.g. example.com)
|
|
6404
|
+
examples:
|
|
6405
|
+
- domain_01h45ytscbebyvny4gc8cr8ma2
|
|
6406
|
+
- example.com
|
|
6407
|
+
type: string
|
|
6408
|
+
maxItems: 1000
|
|
6409
|
+
title: Add
|
|
6410
|
+
type: array
|
|
6411
|
+
remove:
|
|
6412
|
+
description: Object TypeIDs or resource names to untag. TypeIDs and names
|
|
6413
|
+
may be mixed.
|
|
6414
|
+
items:
|
|
6415
|
+
description: A TypeID (e.g. domain_01h45ytscbebyvny4gc8cr8ma2) or a resource
|
|
6416
|
+
name (e.g. example.com)
|
|
6417
|
+
examples:
|
|
6418
|
+
- domain_01h45ytscbebyvny4gc8cr8ma2
|
|
6419
|
+
- example.com
|
|
6420
|
+
type: string
|
|
6421
|
+
maxItems: 1000
|
|
6422
|
+
title: Remove
|
|
6423
|
+
type: array
|
|
6424
|
+
title: ObjectTagChanges
|
|
6425
|
+
type: object
|
|
6426
|
+
ObjectTagChangesResponse:
|
|
6427
|
+
properties:
|
|
6428
|
+
added:
|
|
6429
|
+
description: Number of objects tagged
|
|
6430
|
+
title: Added
|
|
6431
|
+
type: integer
|
|
6432
|
+
removed:
|
|
6433
|
+
description: Number of objects untagged
|
|
6434
|
+
title: Removed
|
|
6435
|
+
type: integer
|
|
6436
|
+
unresolved:
|
|
6437
|
+
description: References that could not be resolved
|
|
6438
|
+
items:
|
|
6439
|
+
type: string
|
|
6440
|
+
title: Unresolved
|
|
6441
|
+
type: array
|
|
6442
|
+
required:
|
|
6443
|
+
- added
|
|
6444
|
+
- removed
|
|
6445
|
+
title: ObjectTagChangesResponse
|
|
6446
|
+
type: object
|
|
6332
6447
|
Organization:
|
|
6333
6448
|
properties:
|
|
6334
6449
|
address_1:
|
|
@@ -7309,6 +7424,20 @@ components:
|
|
|
7309
7424
|
- pagination
|
|
7310
7425
|
title: Pagination[RequestHistory]
|
|
7311
7426
|
type: object
|
|
7427
|
+
Pagination_TagResponse_:
|
|
7428
|
+
properties:
|
|
7429
|
+
pagination:
|
|
7430
|
+
$ref: '#/components/schemas/PaginationMetadata'
|
|
7431
|
+
results:
|
|
7432
|
+
items:
|
|
7433
|
+
$ref: '#/components/schemas/TagResponse'
|
|
7434
|
+
title: Results
|
|
7435
|
+
type: array
|
|
7436
|
+
required:
|
|
7437
|
+
- results
|
|
7438
|
+
- pagination
|
|
7439
|
+
title: Pagination[TagResponse]
|
|
7440
|
+
type: object
|
|
7312
7441
|
Pagination_UserPublic_:
|
|
7313
7442
|
properties:
|
|
7314
7443
|
pagination:
|
|
@@ -8673,12 +8802,132 @@ components:
|
|
|
8673
8802
|
- color-10
|
|
8674
8803
|
title: TagColor
|
|
8675
8804
|
type: string
|
|
8805
|
+
TagCreate:
|
|
8806
|
+
properties:
|
|
8807
|
+
color:
|
|
8808
|
+
anyOf:
|
|
8809
|
+
- $ref: '#/components/schemas/TagColor'
|
|
8810
|
+
- type: 'null'
|
|
8811
|
+
default: color-1
|
|
8812
|
+
description: The color of the tag
|
|
8813
|
+
description:
|
|
8814
|
+
anyOf:
|
|
8815
|
+
- maxLength: 1024
|
|
8816
|
+
type: string
|
|
8817
|
+
- type: 'null'
|
|
8818
|
+
description: Optional description of the tag
|
|
8819
|
+
title: Description
|
|
8820
|
+
label:
|
|
8821
|
+
description: A human-readable label for the tag
|
|
8822
|
+
maxLength: 50
|
|
8823
|
+
minLength: 1
|
|
8824
|
+
title: Label
|
|
8825
|
+
type: string
|
|
8826
|
+
type:
|
|
8827
|
+
$ref: '#/components/schemas/TagType'
|
|
8828
|
+
description: Which category a tag applies to, cannot be changed once created
|
|
8829
|
+
required:
|
|
8830
|
+
- label
|
|
8831
|
+
- type
|
|
8832
|
+
title: TagCreate
|
|
8833
|
+
type: object
|
|
8676
8834
|
TagFilterMode:
|
|
8677
8835
|
enum:
|
|
8678
8836
|
- match_any
|
|
8679
8837
|
- match_all
|
|
8680
8838
|
title: TagFilterMode
|
|
8681
8839
|
type: string
|
|
8840
|
+
TagResponse:
|
|
8841
|
+
properties:
|
|
8842
|
+
color:
|
|
8843
|
+
$ref: '#/components/schemas/TagColor'
|
|
8844
|
+
description: The color of the tag
|
|
8845
|
+
created_on:
|
|
8846
|
+
description: The date/time the tag was created on
|
|
8847
|
+
format: date-time
|
|
8848
|
+
title: Created On
|
|
8849
|
+
type: string
|
|
8850
|
+
description:
|
|
8851
|
+
anyOf:
|
|
8852
|
+
- maxLength: 1024
|
|
8853
|
+
type: string
|
|
8854
|
+
- type: 'null'
|
|
8855
|
+
description: Optional description of the tag
|
|
8856
|
+
title: Description
|
|
8857
|
+
label:
|
|
8858
|
+
description: The label of the tag
|
|
8859
|
+
minLength: 1
|
|
8860
|
+
title: Label
|
|
8861
|
+
type: string
|
|
8862
|
+
object_count:
|
|
8863
|
+
default: 0
|
|
8864
|
+
description: Number of objects tagged with this tag
|
|
8865
|
+
title: Object Count
|
|
8866
|
+
type: integer
|
|
8867
|
+
tag_id:
|
|
8868
|
+
description: The unique identifier of the tag
|
|
8869
|
+
examples:
|
|
8870
|
+
- tag_01h45ytscbebyvny4gc8cr8ma2
|
|
8871
|
+
format: typeid
|
|
8872
|
+
pattern: ^tag_[0-7][0-9a-hjkmnpq-tv-z]{25}$
|
|
8873
|
+
title: Tag Id
|
|
8874
|
+
type: string
|
|
8875
|
+
x-typeid-prefix: tag
|
|
8876
|
+
type:
|
|
8877
|
+
$ref: '#/components/schemas/TagType'
|
|
8878
|
+
description: Which category a tag applies to, cannot be changed once created
|
|
8879
|
+
updated_on:
|
|
8880
|
+
description: The date/time the tag was last updated on
|
|
8881
|
+
format: date-time
|
|
8882
|
+
title: Updated On
|
|
8883
|
+
type: string
|
|
8884
|
+
required:
|
|
8885
|
+
- tag_id
|
|
8886
|
+
- label
|
|
8887
|
+
- type
|
|
8888
|
+
- color
|
|
8889
|
+
- created_on
|
|
8890
|
+
- updated_on
|
|
8891
|
+
title: TagResponse
|
|
8892
|
+
type: object
|
|
8893
|
+
TagSortField:
|
|
8894
|
+
enum:
|
|
8895
|
+
- label
|
|
8896
|
+
- created_on
|
|
8897
|
+
- updated_on
|
|
8898
|
+
title: TagSortField
|
|
8899
|
+
type: string
|
|
8900
|
+
TagType:
|
|
8901
|
+
enum:
|
|
8902
|
+
- DOMAIN
|
|
8903
|
+
- CONTACT
|
|
8904
|
+
- ZONE
|
|
8905
|
+
title: TagType
|
|
8906
|
+
type: string
|
|
8907
|
+
TagUpdate:
|
|
8908
|
+
properties:
|
|
8909
|
+
color:
|
|
8910
|
+
anyOf:
|
|
8911
|
+
- $ref: '#/components/schemas/TagColor'
|
|
8912
|
+
- type: 'null'
|
|
8913
|
+
description: The color of the tag
|
|
8914
|
+
description:
|
|
8915
|
+
anyOf:
|
|
8916
|
+
- maxLength: 1024
|
|
8917
|
+
type: string
|
|
8918
|
+
- type: 'null'
|
|
8919
|
+
description: Optional description of the tag
|
|
8920
|
+
title: Description
|
|
8921
|
+
label:
|
|
8922
|
+
anyOf:
|
|
8923
|
+
- maxLength: 50
|
|
8924
|
+
minLength: 1
|
|
8925
|
+
type: string
|
|
8926
|
+
- type: 'null'
|
|
8927
|
+
description: A human-readable label for the tag
|
|
8928
|
+
title: Label
|
|
8929
|
+
title: TagUpdate
|
|
8930
|
+
type: object
|
|
8682
8931
|
TimeRange:
|
|
8683
8932
|
enum:
|
|
8684
8933
|
- 1h
|
|
@@ -9869,7 +10118,7 @@ info:
|
|
|
9869
10118
|
\n\n"
|
|
9870
10119
|
summary: OpusDNS - your gateway to a seamless domain management experience.
|
|
9871
10120
|
title: OpusDNS API
|
|
9872
|
-
version: 2026-04-21-
|
|
10121
|
+
version: 2026-04-21-172930
|
|
9873
10122
|
x-logo:
|
|
9874
10123
|
altText: OpusDNS API Reference
|
|
9875
10124
|
url: https://d24lr4zqs1tgqh.cloudfront.net/c9505a20-5ae1-406c-b060-d392569caebf.jpg
|
|
@@ -21111,40 +21360,79 @@ paths:
|
|
|
21111
21360
|
summary: Download Report
|
|
21112
21361
|
tags:
|
|
21113
21362
|
- report
|
|
21114
|
-
/v1/
|
|
21363
|
+
/v1/tags:
|
|
21115
21364
|
get:
|
|
21116
|
-
description: Retrieves a list of
|
|
21117
|
-
operationId:
|
|
21365
|
+
description: Retrieves a paginated list of tags
|
|
21366
|
+
operationId: list_tags_v1_tags_get
|
|
21118
21367
|
parameters:
|
|
21119
21368
|
- in: query
|
|
21120
|
-
name:
|
|
21369
|
+
name: sort_by
|
|
21370
|
+
required: false
|
|
21371
|
+
schema:
|
|
21372
|
+
$ref: '#/components/schemas/TagSortField'
|
|
21373
|
+
default: label
|
|
21374
|
+
- in: query
|
|
21375
|
+
name: sort_order
|
|
21376
|
+
required: false
|
|
21377
|
+
schema:
|
|
21378
|
+
$ref: '#/components/schemas/SortOrder'
|
|
21379
|
+
default: asc
|
|
21380
|
+
- description: Filter by tag types (OR semantics)
|
|
21381
|
+
in: query
|
|
21382
|
+
name: tag_types
|
|
21121
21383
|
required: false
|
|
21122
21384
|
schema:
|
|
21123
21385
|
anyOf:
|
|
21124
|
-
-
|
|
21386
|
+
- items:
|
|
21387
|
+
$ref: '#/components/schemas/TagType'
|
|
21388
|
+
type: array
|
|
21125
21389
|
- type: 'null'
|
|
21126
|
-
|
|
21390
|
+
description: Filter by tag types (OR semantics)
|
|
21391
|
+
title: Tag Types
|
|
21127
21392
|
- in: query
|
|
21128
|
-
name:
|
|
21393
|
+
name: search
|
|
21129
21394
|
required: false
|
|
21130
21395
|
schema:
|
|
21131
21396
|
anyOf:
|
|
21132
21397
|
- type: string
|
|
21133
21398
|
- type: 'null'
|
|
21134
|
-
title:
|
|
21399
|
+
title: Search
|
|
21400
|
+
- in: query
|
|
21401
|
+
name: page
|
|
21402
|
+
required: false
|
|
21403
|
+
schema:
|
|
21404
|
+
default: 1
|
|
21405
|
+
minimum: 1
|
|
21406
|
+
title: Page
|
|
21407
|
+
type: integer
|
|
21408
|
+
- in: query
|
|
21409
|
+
name: page_size
|
|
21410
|
+
required: false
|
|
21411
|
+
schema:
|
|
21412
|
+
default: 10
|
|
21413
|
+
maximum: 1000
|
|
21414
|
+
minimum: 1
|
|
21415
|
+
title: Page Size
|
|
21416
|
+
type: integer
|
|
21135
21417
|
responses:
|
|
21136
21418
|
'200':
|
|
21137
21419
|
content:
|
|
21138
21420
|
application/json:
|
|
21139
21421
|
schema:
|
|
21140
|
-
|
|
21141
|
-
items:
|
|
21142
|
-
additionalProperties: true
|
|
21143
|
-
type: object
|
|
21144
|
-
type: array
|
|
21145
|
-
title: Response Get Tld Specifications V1 Tlds Get
|
|
21146
|
-
type: object
|
|
21422
|
+
$ref: '#/components/schemas/Pagination_TagResponse_'
|
|
21147
21423
|
description: Successful Response
|
|
21424
|
+
'401':
|
|
21425
|
+
content:
|
|
21426
|
+
application/problem+json:
|
|
21427
|
+
example:
|
|
21428
|
+
code: ERROR_AUTHENTICATION
|
|
21429
|
+
detail: Additional error context.
|
|
21430
|
+
status: 401
|
|
21431
|
+
title: Authentication Error
|
|
21432
|
+
type: authentication
|
|
21433
|
+
schema:
|
|
21434
|
+
$ref: '#/components/schemas/Problem'
|
|
21435
|
+
description: Unauthorized
|
|
21148
21436
|
'422':
|
|
21149
21437
|
content:
|
|
21150
21438
|
application/problem+json:
|
|
@@ -21154,22 +21442,449 @@ paths:
|
|
|
21154
21442
|
security:
|
|
21155
21443
|
- OAuth2PasswordBearer: []
|
|
21156
21444
|
- APIKeyHeader: []
|
|
21157
|
-
summary:
|
|
21445
|
+
summary: List tags
|
|
21158
21446
|
tags:
|
|
21159
|
-
-
|
|
21160
|
-
|
|
21161
|
-
|
|
21162
|
-
|
|
21163
|
-
|
|
21447
|
+
- tag
|
|
21448
|
+
post:
|
|
21449
|
+
description: Create a new tag
|
|
21450
|
+
operationId: create_tag_v1_tags_post
|
|
21451
|
+
requestBody:
|
|
21452
|
+
content:
|
|
21453
|
+
application/json:
|
|
21454
|
+
schema:
|
|
21455
|
+
$ref: '#/components/schemas/TagCreate'
|
|
21456
|
+
required: true
|
|
21164
21457
|
responses:
|
|
21165
|
-
'
|
|
21458
|
+
'201':
|
|
21166
21459
|
content:
|
|
21167
21460
|
application/json:
|
|
21168
21461
|
schema:
|
|
21169
|
-
|
|
21170
|
-
|
|
21171
|
-
|
|
21172
|
-
|
|
21462
|
+
$ref: '#/components/schemas/TagResponse'
|
|
21463
|
+
description: Successful Response
|
|
21464
|
+
'401':
|
|
21465
|
+
content:
|
|
21466
|
+
application/problem+json:
|
|
21467
|
+
example:
|
|
21468
|
+
code: ERROR_AUTHENTICATION
|
|
21469
|
+
detail: Additional error context.
|
|
21470
|
+
status: 401
|
|
21471
|
+
title: Authentication Error
|
|
21472
|
+
type: authentication
|
|
21473
|
+
schema:
|
|
21474
|
+
$ref: '#/components/schemas/Problem'
|
|
21475
|
+
description: Unauthorized
|
|
21476
|
+
'409':
|
|
21477
|
+
content:
|
|
21478
|
+
application/problem+json:
|
|
21479
|
+
example:
|
|
21480
|
+
code: ERROR_TAG_LABEL_ALREADY_EXISTS
|
|
21481
|
+
detail: A tag with label 'Additional error context.' already exists
|
|
21482
|
+
label: Additional error context.
|
|
21483
|
+
status: 409
|
|
21484
|
+
title: Tag Management Error
|
|
21485
|
+
type: tag-label-already-exists
|
|
21486
|
+
schema:
|
|
21487
|
+
$ref: '#/components/schemas/Problem'
|
|
21488
|
+
description: Conflict
|
|
21489
|
+
'422':
|
|
21490
|
+
content:
|
|
21491
|
+
application/problem+json:
|
|
21492
|
+
schema:
|
|
21493
|
+
$ref: '#/components/schemas/HTTPValidationError'
|
|
21494
|
+
description: Validation Error
|
|
21495
|
+
security:
|
|
21496
|
+
- OAuth2PasswordBearer: []
|
|
21497
|
+
- APIKeyHeader: []
|
|
21498
|
+
summary: Create a tag
|
|
21499
|
+
tags:
|
|
21500
|
+
- tag
|
|
21501
|
+
/v1/tags/objects:
|
|
21502
|
+
post:
|
|
21503
|
+
description: Add, remove, or replace tags on multiple objects at once. 'replace'
|
|
21504
|
+
is mutually exclusive with 'add' and 'remove'.
|
|
21505
|
+
operationId: bulk_update_object_tags_v1_tags_objects_post
|
|
21506
|
+
requestBody:
|
|
21507
|
+
content:
|
|
21508
|
+
application/json:
|
|
21509
|
+
schema:
|
|
21510
|
+
$ref: '#/components/schemas/BulkObjectTagChanges'
|
|
21511
|
+
required: true
|
|
21512
|
+
responses:
|
|
21513
|
+
'200':
|
|
21514
|
+
content:
|
|
21515
|
+
application/json:
|
|
21516
|
+
schema:
|
|
21517
|
+
$ref: '#/components/schemas/ObjectTagChangesResponse'
|
|
21518
|
+
description: Successful Response
|
|
21519
|
+
'400':
|
|
21520
|
+
content:
|
|
21521
|
+
application/problem+json:
|
|
21522
|
+
example:
|
|
21523
|
+
code: ERROR_ILLEGAL_OBJECT_TYPE_FOR_TAG
|
|
21524
|
+
detail: One or more provided object ids are not valid for this tag
|
|
21525
|
+
object_ids: Additional error context.
|
|
21526
|
+
status: 400
|
|
21527
|
+
title: Tag Management Error
|
|
21528
|
+
type: illegal-object-type-tag
|
|
21529
|
+
schema:
|
|
21530
|
+
$ref: '#/components/schemas/Problem'
|
|
21531
|
+
description: Bad Request
|
|
21532
|
+
'401':
|
|
21533
|
+
content:
|
|
21534
|
+
application/problem+json:
|
|
21535
|
+
example:
|
|
21536
|
+
code: ERROR_AUTHENTICATION
|
|
21537
|
+
detail: Additional error context.
|
|
21538
|
+
status: 401
|
|
21539
|
+
title: Authentication Error
|
|
21540
|
+
type: authentication
|
|
21541
|
+
schema:
|
|
21542
|
+
$ref: '#/components/schemas/Problem'
|
|
21543
|
+
description: Unauthorized
|
|
21544
|
+
'404':
|
|
21545
|
+
content:
|
|
21546
|
+
application/problem+json:
|
|
21547
|
+
example:
|
|
21548
|
+
code: ERROR_TAG_NOT_FOUND
|
|
21549
|
+
detail: Tag not found
|
|
21550
|
+
status: 404
|
|
21551
|
+
tag_id: Additional error context.
|
|
21552
|
+
title: Tag Management Error
|
|
21553
|
+
type: tag-not-found
|
|
21554
|
+
schema:
|
|
21555
|
+
$ref: '#/components/schemas/Problem'
|
|
21556
|
+
description: Not Found
|
|
21557
|
+
'422':
|
|
21558
|
+
content:
|
|
21559
|
+
application/problem+json:
|
|
21560
|
+
schema:
|
|
21561
|
+
$ref: '#/components/schemas/HTTPValidationError'
|
|
21562
|
+
description: Validation Error
|
|
21563
|
+
security:
|
|
21564
|
+
- OAuth2PasswordBearer: []
|
|
21565
|
+
- APIKeyHeader: []
|
|
21566
|
+
summary: Bulk tag or untag objects
|
|
21567
|
+
tags:
|
|
21568
|
+
- tag
|
|
21569
|
+
/v1/tags/{tag_id}:
|
|
21570
|
+
delete:
|
|
21571
|
+
description: Delete a tag
|
|
21572
|
+
operationId: delete_tag_v1_tags__tag_id__delete
|
|
21573
|
+
parameters:
|
|
21574
|
+
- in: path
|
|
21575
|
+
name: tag_id
|
|
21576
|
+
required: true
|
|
21577
|
+
schema:
|
|
21578
|
+
examples:
|
|
21579
|
+
- tag_01h45ytscbebyvny4gc8cr8ma2
|
|
21580
|
+
format: typeid
|
|
21581
|
+
pattern: ^tag_[0-7][0-9a-hjkmnpq-tv-z]{25}$
|
|
21582
|
+
title: Tag Id
|
|
21583
|
+
type: string
|
|
21584
|
+
x-typeid-prefix: tag
|
|
21585
|
+
responses:
|
|
21586
|
+
'204':
|
|
21587
|
+
description: Successful Response
|
|
21588
|
+
'401':
|
|
21589
|
+
content:
|
|
21590
|
+
application/problem+json:
|
|
21591
|
+
example:
|
|
21592
|
+
code: ERROR_AUTHENTICATION
|
|
21593
|
+
detail: Additional error context.
|
|
21594
|
+
status: 401
|
|
21595
|
+
title: Authentication Error
|
|
21596
|
+
type: authentication
|
|
21597
|
+
schema:
|
|
21598
|
+
$ref: '#/components/schemas/Problem'
|
|
21599
|
+
description: Unauthorized
|
|
21600
|
+
'404':
|
|
21601
|
+
content:
|
|
21602
|
+
application/problem+json:
|
|
21603
|
+
example:
|
|
21604
|
+
code: ERROR_TAG_NOT_FOUND
|
|
21605
|
+
detail: Tag not found
|
|
21606
|
+
status: 404
|
|
21607
|
+
tag_id: Additional error context.
|
|
21608
|
+
title: Tag Management Error
|
|
21609
|
+
type: tag-not-found
|
|
21610
|
+
schema:
|
|
21611
|
+
$ref: '#/components/schemas/Problem'
|
|
21612
|
+
description: Not Found
|
|
21613
|
+
'422':
|
|
21614
|
+
content:
|
|
21615
|
+
application/problem+json:
|
|
21616
|
+
schema:
|
|
21617
|
+
$ref: '#/components/schemas/HTTPValidationError'
|
|
21618
|
+
description: Validation Error
|
|
21619
|
+
security:
|
|
21620
|
+
- OAuth2PasswordBearer: []
|
|
21621
|
+
- APIKeyHeader: []
|
|
21622
|
+
summary: Delete a tag
|
|
21623
|
+
tags:
|
|
21624
|
+
- tag
|
|
21625
|
+
get:
|
|
21626
|
+
description: Retrieve a single tag by its ID
|
|
21627
|
+
operationId: get_tag_v1_tags__tag_id__get
|
|
21628
|
+
parameters:
|
|
21629
|
+
- in: path
|
|
21630
|
+
name: tag_id
|
|
21631
|
+
required: true
|
|
21632
|
+
schema:
|
|
21633
|
+
examples:
|
|
21634
|
+
- tag_01h45ytscbebyvny4gc8cr8ma2
|
|
21635
|
+
format: typeid
|
|
21636
|
+
pattern: ^tag_[0-7][0-9a-hjkmnpq-tv-z]{25}$
|
|
21637
|
+
title: Tag Id
|
|
21638
|
+
type: string
|
|
21639
|
+
x-typeid-prefix: tag
|
|
21640
|
+
responses:
|
|
21641
|
+
'200':
|
|
21642
|
+
content:
|
|
21643
|
+
application/json:
|
|
21644
|
+
schema:
|
|
21645
|
+
$ref: '#/components/schemas/TagResponse'
|
|
21646
|
+
description: Successful Response
|
|
21647
|
+
'401':
|
|
21648
|
+
content:
|
|
21649
|
+
application/problem+json:
|
|
21650
|
+
example:
|
|
21651
|
+
code: ERROR_AUTHENTICATION
|
|
21652
|
+
detail: Additional error context.
|
|
21653
|
+
status: 401
|
|
21654
|
+
title: Authentication Error
|
|
21655
|
+
type: authentication
|
|
21656
|
+
schema:
|
|
21657
|
+
$ref: '#/components/schemas/Problem'
|
|
21658
|
+
description: Unauthorized
|
|
21659
|
+
'404':
|
|
21660
|
+
content:
|
|
21661
|
+
application/problem+json:
|
|
21662
|
+
example:
|
|
21663
|
+
code: ERROR_TAG_NOT_FOUND
|
|
21664
|
+
detail: Tag not found
|
|
21665
|
+
status: 404
|
|
21666
|
+
tag_id: Additional error context.
|
|
21667
|
+
title: Tag Management Error
|
|
21668
|
+
type: tag-not-found
|
|
21669
|
+
schema:
|
|
21670
|
+
$ref: '#/components/schemas/Problem'
|
|
21671
|
+
description: Not Found
|
|
21672
|
+
'422':
|
|
21673
|
+
content:
|
|
21674
|
+
application/problem+json:
|
|
21675
|
+
schema:
|
|
21676
|
+
$ref: '#/components/schemas/HTTPValidationError'
|
|
21677
|
+
description: Validation Error
|
|
21678
|
+
security:
|
|
21679
|
+
- OAuth2PasswordBearer: []
|
|
21680
|
+
- APIKeyHeader: []
|
|
21681
|
+
summary: Get a tag
|
|
21682
|
+
tags:
|
|
21683
|
+
- tag
|
|
21684
|
+
patch:
|
|
21685
|
+
description: Update a tag's label, description, or color
|
|
21686
|
+
operationId: update_tag_v1_tags__tag_id__patch
|
|
21687
|
+
parameters:
|
|
21688
|
+
- in: path
|
|
21689
|
+
name: tag_id
|
|
21690
|
+
required: true
|
|
21691
|
+
schema:
|
|
21692
|
+
examples:
|
|
21693
|
+
- tag_01h45ytscbebyvny4gc8cr8ma2
|
|
21694
|
+
format: typeid
|
|
21695
|
+
pattern: ^tag_[0-7][0-9a-hjkmnpq-tv-z]{25}$
|
|
21696
|
+
title: Tag Id
|
|
21697
|
+
type: string
|
|
21698
|
+
x-typeid-prefix: tag
|
|
21699
|
+
requestBody:
|
|
21700
|
+
content:
|
|
21701
|
+
application/json:
|
|
21702
|
+
schema:
|
|
21703
|
+
$ref: '#/components/schemas/TagUpdate'
|
|
21704
|
+
required: true
|
|
21705
|
+
responses:
|
|
21706
|
+
'200':
|
|
21707
|
+
content:
|
|
21708
|
+
application/json:
|
|
21709
|
+
schema:
|
|
21710
|
+
$ref: '#/components/schemas/TagResponse'
|
|
21711
|
+
description: Successful Response
|
|
21712
|
+
'401':
|
|
21713
|
+
content:
|
|
21714
|
+
application/problem+json:
|
|
21715
|
+
example:
|
|
21716
|
+
code: ERROR_AUTHENTICATION
|
|
21717
|
+
detail: Additional error context.
|
|
21718
|
+
status: 401
|
|
21719
|
+
title: Authentication Error
|
|
21720
|
+
type: authentication
|
|
21721
|
+
schema:
|
|
21722
|
+
$ref: '#/components/schemas/Problem'
|
|
21723
|
+
description: Unauthorized
|
|
21724
|
+
'404':
|
|
21725
|
+
content:
|
|
21726
|
+
application/problem+json:
|
|
21727
|
+
example:
|
|
21728
|
+
code: ERROR_TAG_NOT_FOUND
|
|
21729
|
+
detail: Tag not found
|
|
21730
|
+
status: 404
|
|
21731
|
+
tag_id: Additional error context.
|
|
21732
|
+
title: Tag Management Error
|
|
21733
|
+
type: tag-not-found
|
|
21734
|
+
schema:
|
|
21735
|
+
$ref: '#/components/schemas/Problem'
|
|
21736
|
+
description: Not Found
|
|
21737
|
+
'409':
|
|
21738
|
+
content:
|
|
21739
|
+
application/problem+json:
|
|
21740
|
+
example:
|
|
21741
|
+
code: ERROR_TAG_LABEL_ALREADY_EXISTS
|
|
21742
|
+
detail: A tag with label 'Additional error context.' already exists
|
|
21743
|
+
label: Additional error context.
|
|
21744
|
+
status: 409
|
|
21745
|
+
title: Tag Management Error
|
|
21746
|
+
type: tag-label-already-exists
|
|
21747
|
+
schema:
|
|
21748
|
+
$ref: '#/components/schemas/Problem'
|
|
21749
|
+
description: Conflict
|
|
21750
|
+
'422':
|
|
21751
|
+
content:
|
|
21752
|
+
application/problem+json:
|
|
21753
|
+
schema:
|
|
21754
|
+
$ref: '#/components/schemas/HTTPValidationError'
|
|
21755
|
+
description: Validation Error
|
|
21756
|
+
security:
|
|
21757
|
+
- OAuth2PasswordBearer: []
|
|
21758
|
+
- APIKeyHeader: []
|
|
21759
|
+
summary: Update a tag
|
|
21760
|
+
tags:
|
|
21761
|
+
- tag
|
|
21762
|
+
/v1/tags/{tag_id}/objects:
|
|
21763
|
+
post:
|
|
21764
|
+
description: Add or remove objects from a tag. Objects are matched by the tag's
|
|
21765
|
+
type (e.g. a DOMAIN tag only accepts domain IDs).
|
|
21766
|
+
operationId: update_tag_objects_v1_tags__tag_id__objects_post
|
|
21767
|
+
parameters:
|
|
21768
|
+
- in: path
|
|
21769
|
+
name: tag_id
|
|
21770
|
+
required: true
|
|
21771
|
+
schema:
|
|
21772
|
+
examples:
|
|
21773
|
+
- tag_01h45ytscbebyvny4gc8cr8ma2
|
|
21774
|
+
format: typeid
|
|
21775
|
+
pattern: ^tag_[0-7][0-9a-hjkmnpq-tv-z]{25}$
|
|
21776
|
+
title: Tag Id
|
|
21777
|
+
type: string
|
|
21778
|
+
x-typeid-prefix: tag
|
|
21779
|
+
requestBody:
|
|
21780
|
+
content:
|
|
21781
|
+
application/json:
|
|
21782
|
+
schema:
|
|
21783
|
+
$ref: '#/components/schemas/ObjectTagChanges'
|
|
21784
|
+
required: true
|
|
21785
|
+
responses:
|
|
21786
|
+
'200':
|
|
21787
|
+
content:
|
|
21788
|
+
application/json:
|
|
21789
|
+
schema:
|
|
21790
|
+
$ref: '#/components/schemas/ObjectTagChangesResponse'
|
|
21791
|
+
description: Successful Response
|
|
21792
|
+
'401':
|
|
21793
|
+
content:
|
|
21794
|
+
application/problem+json:
|
|
21795
|
+
example:
|
|
21796
|
+
code: ERROR_AUTHENTICATION
|
|
21797
|
+
detail: Additional error context.
|
|
21798
|
+
status: 401
|
|
21799
|
+
title: Authentication Error
|
|
21800
|
+
type: authentication
|
|
21801
|
+
schema:
|
|
21802
|
+
$ref: '#/components/schemas/Problem'
|
|
21803
|
+
description: Unauthorized
|
|
21804
|
+
'404':
|
|
21805
|
+
content:
|
|
21806
|
+
application/problem+json:
|
|
21807
|
+
example:
|
|
21808
|
+
code: ERROR_TAG_NOT_FOUND
|
|
21809
|
+
detail: Tag not found
|
|
21810
|
+
status: 404
|
|
21811
|
+
tag_id: Additional error context.
|
|
21812
|
+
title: Tag Management Error
|
|
21813
|
+
type: tag-not-found
|
|
21814
|
+
schema:
|
|
21815
|
+
$ref: '#/components/schemas/Problem'
|
|
21816
|
+
description: Not Found
|
|
21817
|
+
'422':
|
|
21818
|
+
content:
|
|
21819
|
+
application/problem+json:
|
|
21820
|
+
schema:
|
|
21821
|
+
$ref: '#/components/schemas/HTTPValidationError'
|
|
21822
|
+
description: Validation Error
|
|
21823
|
+
security:
|
|
21824
|
+
- OAuth2PasswordBearer: []
|
|
21825
|
+
- APIKeyHeader: []
|
|
21826
|
+
summary: Tag or untag objects
|
|
21827
|
+
tags:
|
|
21828
|
+
- tag
|
|
21829
|
+
/v1/tlds/:
|
|
21830
|
+
get:
|
|
21831
|
+
description: Retrieves a list of TLD Specifications we have support for
|
|
21832
|
+
operationId: get_tld_specifications_v1_tlds__get
|
|
21833
|
+
parameters:
|
|
21834
|
+
- in: query
|
|
21835
|
+
name: fields
|
|
21836
|
+
required: false
|
|
21837
|
+
schema:
|
|
21838
|
+
anyOf:
|
|
21839
|
+
- type: string
|
|
21840
|
+
- type: 'null'
|
|
21841
|
+
title: Fields
|
|
21842
|
+
- in: query
|
|
21843
|
+
name: tlds
|
|
21844
|
+
required: false
|
|
21845
|
+
schema:
|
|
21846
|
+
anyOf:
|
|
21847
|
+
- type: string
|
|
21848
|
+
- type: 'null'
|
|
21849
|
+
title: Tlds
|
|
21850
|
+
responses:
|
|
21851
|
+
'200':
|
|
21852
|
+
content:
|
|
21853
|
+
application/json:
|
|
21854
|
+
schema:
|
|
21855
|
+
additionalProperties:
|
|
21856
|
+
items:
|
|
21857
|
+
additionalProperties: true
|
|
21858
|
+
type: object
|
|
21859
|
+
type: array
|
|
21860
|
+
title: Response Get Tld Specifications V1 Tlds Get
|
|
21861
|
+
type: object
|
|
21862
|
+
description: Successful Response
|
|
21863
|
+
'422':
|
|
21864
|
+
content:
|
|
21865
|
+
application/problem+json:
|
|
21866
|
+
schema:
|
|
21867
|
+
$ref: '#/components/schemas/HTTPValidationError'
|
|
21868
|
+
description: Validation Error
|
|
21869
|
+
security:
|
|
21870
|
+
- OAuth2PasswordBearer: []
|
|
21871
|
+
- APIKeyHeader: []
|
|
21872
|
+
summary: Get list of Specifications for all TLDs we support
|
|
21873
|
+
tags:
|
|
21874
|
+
- tld
|
|
21875
|
+
/v1/tlds/portfolio:
|
|
21876
|
+
get:
|
|
21877
|
+
description: Retrieves a list of TLDs we have support for
|
|
21878
|
+
operationId: get_tld_portfolio_v1_tlds_portfolio_get
|
|
21879
|
+
responses:
|
|
21880
|
+
'200':
|
|
21881
|
+
content:
|
|
21882
|
+
application/json:
|
|
21883
|
+
schema:
|
|
21884
|
+
items:
|
|
21885
|
+
$ref: '#/components/schemas/TldResponseShort'
|
|
21886
|
+
title: Response Get Tld Portfolio V1 Tlds Portfolio Get
|
|
21887
|
+
type: array
|
|
21173
21888
|
description: Successful Response
|
|
21174
21889
|
'422':
|
|
21175
21890
|
content:
|
|
@@ -21606,58 +22321,112 @@ tags:
|
|
|
21606
22321
|
\ Register multiple domains |\n| `domain_update_bulk` | Update multiple domains\
|
|
21607
22322
|
\ (statuses, nameservers, contacts, renewal mode) |\n| `domain_transfer_bulk`\
|
|
21608
22323
|
\ | Transfer multiple domains |\n| `dns_zone_create_bulk` | Create multiple DNS\
|
|
21609
|
-
\ zones |\n| `dns_zone_update_bulk` |
|
|
21610
|
-
\
|
|
21611
|
-
\
|
|
21612
|
-
\
|
|
21613
|
-
\ |\n| `
|
|
21614
|
-
\
|
|
21615
|
-
\
|
|
21616
|
-
|
|
21617
|
-
\
|
|
21618
|
-
\
|
|
21619
|
-
|
|
21620
|
-
\
|
|
21621
|
-
\
|
|
21622
|
-
\
|
|
21623
|
-
\
|
|
21624
|
-
\
|
|
21625
|
-
\
|
|
21626
|
-
\
|
|
21627
|
-
\
|
|
21628
|
-
\ /v1/jobs/{batch_id}
|
|
21629
|
-
\
|
|
21630
|
-
\
|
|
21631
|
-
\ all
|
|
21632
|
-
\
|
|
21633
|
-
\
|
|
21634
|
-
\
|
|
21635
|
-
\
|
|
21636
|
-
\
|
|
21637
|
-
\ a
|
|
21638
|
-
\
|
|
21639
|
-
\
|
|
21640
|
-
\
|
|
21641
|
-
|
|
21642
|
-
\
|
|
21643
|
-
\
|
|
21644
|
-
\
|
|
21645
|
-
\
|
|
21646
|
-
\
|
|
21647
|
-
\
|
|
21648
|
-
\
|
|
21649
|
-
\
|
|
21650
|
-
|
|
22324
|
+
\ zones |\n| `dns_zone_update_bulk` | Replace rrsets (and zone attributes like\
|
|
22325
|
+
\ DNSSEC) across multiple DNS zones |\n| `dns_zone_patch_rrsets_bulk` | Upsert\
|
|
22326
|
+
\ or remove entire rrsets (by name + type) across multiple zones |\n| `dns_zone_patch_records_bulk`\
|
|
22327
|
+
\ | Upsert or remove individual rdata values across multiple zones |\n| `contact_create_bulk`\
|
|
22328
|
+
\ | Create multiple contacts |\n| `parking_create_bulk` | Create parking pages\
|
|
22329
|
+
\ for multiple domains |\n| `parking_enable_bulk` | Enable parking on multiple\
|
|
22330
|
+
\ domains |\n| `parking_disable_bulk` | Disable parking on multiple domains |\n\
|
|
22331
|
+
| `parking_delete_bulk` | Delete parking pages for multiple domains |\n\n### Batch\
|
|
22332
|
+
\ Lifecycle\n\nEach job within a batch transitions through states:\n\n1. **blocked**\
|
|
22333
|
+
\ \u2014 Waiting for eligibility (scheduled via `not_before`, or awaiting capacity)\n\
|
|
22334
|
+
2. **queued** \u2014 Eligible and awaiting processing\n3. **paused** \u2014 Paused;\
|
|
22335
|
+
\ must be explicitly resumed to continue\n4. **running** \u2014 Currently being\
|
|
22336
|
+
\ executed\n5. **succeeded** \u2014 Completed successfully\n6. **failed** \u2014\
|
|
22337
|
+
\ Execution failed (check `error_class` and `error_message`)\n7. **canceled**\
|
|
22338
|
+
\ \u2014 Job was canceled before completion\n8. **dead_letter** \u2014 Permanently\
|
|
22339
|
+
\ failed after exhausting retries\n\nA batch itself has a `status` field that\
|
|
22340
|
+
\ is either `pending` (jobs are still in progress) or `complete` (all jobs have\
|
|
22341
|
+
\ reached a terminal state).\n\n### Usage Pattern\n\n1. **Submit a batch** \u2014\
|
|
22342
|
+
\ `POST /v1/jobs` with an array of commands\n2. **Poll for status** \u2014 `GET\
|
|
22343
|
+
\ /v1/jobs/{batch_id}` to check progress counts and `progress_percentage`\n3.\
|
|
22344
|
+
\ **Review results** \u2014 `GET /v1/jobs/{batch_id}/jobs` to see individual job\
|
|
22345
|
+
\ outcomes\n\n### Managing Batches\n\n- **Pause** \u2014 `POST /v1/jobs/{batch_id}/pause`\
|
|
22346
|
+
\ pauses all eligible jobs in the batch\n- **Resume** \u2014 `POST /v1/jobs/{batch_id}/resume`\
|
|
22347
|
+
\ resumes all paused jobs\n- **Cancel** \u2014 `DELETE /v1/jobs/{batch_id}` cancels\
|
|
22348
|
+
\ all pending jobs in the batch\n\nIndividual jobs can also be paused, resumed,\
|
|
22349
|
+
\ or canceled via the `/v1/job/{job_id}` endpoints.\n\n### Limits\n\n- Maximum\
|
|
22350
|
+
\ **50,000 commands** per batch\n- Bulk commands support up to **1,000 instances**\
|
|
22351
|
+
\ per command\n\n### Scheduling\n\nUse `not_before` to schedule batch execution\
|
|
22352
|
+
\ for a future time (UTC timestamp). If not provided, processing begins as soon\
|
|
22353
|
+
\ as a worker is available.\n\n### Idempotency\n\nEach command can include an\
|
|
22354
|
+
\ optional `idempotency_key` to prevent duplicate execution. If a command with\
|
|
22355
|
+
\ the same idempotency key has already been processed, it will be skipped.\n\n\
|
|
22356
|
+
### Domain Status Updates in Batches\n\nThe `domain_update` and `domain_update_bulk`\
|
|
22357
|
+
\ commands support two mutually exclusive approaches for modifying domain statuses.\
|
|
22358
|
+
\ These work the same way as the `PATCH /v1/domains/{domain_reference}` endpoint\
|
|
22359
|
+
\ \u2014 see the [Domain management](#tag/Domain-management) documentation for\
|
|
22360
|
+
\ full details on `statuses` vs `status_changes`.\n\n#### Using `status_changes`\
|
|
22361
|
+
\ in bulk templates\n\nThe `domain_update_bulk` command is particularly useful\
|
|
22362
|
+
\ with `status_changes` when you need to apply the same relative status change\
|
|
22363
|
+
\ across many domains. Set `status_changes` in the **template** and list the target\
|
|
22364
|
+
\ domains as **instances**. Each instance identifies a domain by either `name`\
|
|
22365
|
+
\ or `domain_id` (but not both):\n\n```json\n{\n \"command\": \"domain_update_bulk\"\
|
|
22366
|
+
,\n \"payload\": {\n \"template\": {\n \"status_changes\": {\n \
|
|
22367
|
+
\ \"add\": [\"clientTransferProhibited\"]\n }\n },\n \"instances\"\
|
|
22368
|
+
: [\n { \"name\": \"example.com\" },\n { \"name\": \"example.net\" },\n\
|
|
22369
|
+
\ { \"name\": \"example.org\" }\n ]\n }\n}\n```\n\n#### Per-domain overrides\n\
|
|
22370
|
+
\nIf an instance provides its own `statuses` or `status_changes` field, it completely\
|
|
22371
|
+
\ overrides the template's status settings for that domain. This lets you apply\
|
|
22372
|
+
\ a default change to most domains while handling exceptions individually:\n\n\
|
|
22373
|
+
```json\n{\n \"command\": \"domain_update_bulk\",\n \"payload\": {\n \"template\"\
|
|
22374
|
+
: {\n \"status_changes\": {\n \"add\": [\"clientTransferProhibited\"\
|
|
21651
22375
|
]\n }\n },\n \"instances\": [\n { \"name\": \"example.com\" },\n\
|
|
21652
|
-
\ { \"name\": \"
|
|
21653
|
-
\
|
|
21654
|
-
\
|
|
21655
|
-
\
|
|
21656
|
-
\
|
|
21657
|
-
|
|
21658
|
-
|
|
21659
|
-
|
|
21660
|
-
|
|
22376
|
+
\ { \"name\": \"special-case.com\", \"status_changes\": { \"remove\": [\"\
|
|
22377
|
+
clientHold\"] } }\n ]\n }\n}\n```\n\n### DNS Zone Bulk Commands\n\nThe three\
|
|
22378
|
+
\ `dns_zone_*_bulk` commands operate at different levels of granularity. Picking\
|
|
22379
|
+
\ the right one depends on how much of the zone's existing state you want to preserve.\n\
|
|
22380
|
+
\n| Command | Operates on | Use when |\n|---------|-------------|----------|\n\
|
|
22381
|
+
| `dns_zone_update_bulk` | Whole zone | Resetting rrsets (or zone attributes like\
|
|
22382
|
+
\ DNSSEC) across many zones |\n| `dns_zone_patch_rrsets_bulk` | Whole rrsets by\
|
|
22383
|
+
\ `(name, type)` | Replacing *all* records of a given type at a given name |\n\
|
|
22384
|
+
| `dns_zone_patch_records_bulk` | Individual rdata values | Adding or removing\
|
|
22385
|
+
\ a single record without touching siblings |\n\nThese are the bulk equivalents\
|
|
22386
|
+
\ of the single-zone `PUT` and `PATCH` DNS endpoints \u2014 see the [DNS Management](#tag/DNS-Management)\
|
|
22387
|
+
\ documentation for the underlying semantics. The bulk variants accept up to **100\
|
|
22388
|
+
\ ops per instance** for the two patch commands.\n\n#### `dns_zone_update_bulk`\n\
|
|
22389
|
+
\nBulk equivalent of `PUT /v1/dns/{zone_name}/rrsets` plus zone-level attribute\
|
|
22390
|
+
\ updates. For each zone, whatever rrsets you supply become the zone's rrsets\
|
|
22391
|
+
\ \u2014 anything not listed is removed. System-managed record types (SOA, DNSKEY,\
|
|
22392
|
+
\ DS) cannot be set via this command. This is also the command to flip DNSSEC\
|
|
22393
|
+
\ on or off across many zones.\n\nPayload: `template` (shared `rrsets` and `dnssec_status`)\
|
|
22394
|
+
\ + `instances[]` (per-zone overrides).\n\n```json\n{\n \"command\": \"dns_zone_update_bulk\"\
|
|
22395
|
+
,\n \"payload\": {\n \"template\": {\n \"rrsets\": [\n {\"name\"\
|
|
22396
|
+
: \"@\", \"type\": \"A\", \"ttl\": 300, \"records\": [{\"rdata\": \"203.0.113.10\"\
|
|
22397
|
+
}]}\n ],\n \"dnssec_status\": \"enabled\"\n },\n \"instances\"\
|
|
22398
|
+
: [\n { \"name\": \"example.com\" },\n {\n \"name\": \"example.net\"\
|
|
22399
|
+
,\n \"rrsets\": [\n {\"name\": \"@\", \"type\": \"A\", \"ttl\"\
|
|
22400
|
+
: 300, \"records\": [{\"rdata\": \"203.0.113.20\"}]}\n ]\n }\n \
|
|
22401
|
+
\ ]\n }\n}\n```\n\n#### `dns_zone_patch_rrsets_bulk`\n\nBulk equivalent of `PATCH\
|
|
22402
|
+
\ /v1/dns/{zone_name}/rrsets`. Each instance is `{ zone_name, ops[] }`, where\
|
|
22403
|
+
\ each op targets an rrset by `(name, type)`:\n\n- `op: \"upsert\"` \u2014 create\
|
|
22404
|
+
\ or **replace** the rrset with the records you provide. Any prior records for\
|
|
22405
|
+
\ that `(name, type)` are discarded.\n- `op: \"remove\"` \u2014 delete the entire\
|
|
22406
|
+
\ rrset (pass `records: []`).\n\n```json\n{\n \"command\": \"dns_zone_patch_rrsets_bulk\"\
|
|
22407
|
+
,\n \"payload\": {\n \"instances\": [\n {\n \"zone_name\": \"\
|
|
22408
|
+
example.com\",\n \"ops\": [\n {\n \"op\": \"upsert\"\
|
|
22409
|
+
,\n \"rrset\": {\n \"name\": \"www\", \"type\": \"A\"\
|
|
22410
|
+
, \"ttl\": 300,\n \"records\": [\n {\"rdata\": \"\
|
|
22411
|
+
203.0.113.10\"},\n {\"rdata\": \"203.0.113.11\"}\n \
|
|
22412
|
+
\ ]\n }\n },\n {\n \"op\": \"remove\"\
|
|
22413
|
+
,\n \"rrset\": {\"name\": \"old\", \"type\": \"CNAME\", \"ttl\": 300,\
|
|
22414
|
+
\ \"records\": []}\n }\n ]\n }\n ]\n }\n}\n```\n\n####\
|
|
22415
|
+
\ `dns_zone_patch_records_bulk`\n\nBulk equivalent of `PATCH /v1/dns/{zone_name}/records`.\
|
|
22416
|
+
\ Each instance is `{ zone_name, ops[] }`, where each op targets a single `rdata`\
|
|
22417
|
+
\ value inside an rrset. Note the op payload uses a single `rdata` field, not\
|
|
22418
|
+
\ `records[]`.\n\n- `op: \"upsert\"` \u2014 add or update that one rdata value\
|
|
22419
|
+
\ (creates the rrset if it doesn't exist). Sibling records in the rrset are untouched.\n\
|
|
22420
|
+
- `op: \"remove\"` \u2014 remove just that one rdata value. Other records in the\
|
|
22421
|
+
\ rrset remain.\n\n```json\n{\n \"command\": \"dns_zone_patch_records_bulk\"\
|
|
22422
|
+
,\n \"payload\": {\n \"instances\": [\n {\n \"zone_name\": \"\
|
|
22423
|
+
example.com\",\n \"ops\": [\n {\n \"op\": \"upsert\"\
|
|
22424
|
+
,\n \"record\": {\n \"name\": \"@\", \"type\": \"MX\"\
|
|
22425
|
+
, \"ttl\": 300,\n \"rdata\": \"5 new-mail.example.com.\"\n \
|
|
22426
|
+
\ }\n },\n {\n \"op\": \"remove\",\n \
|
|
22427
|
+
\ \"record\": {\n \"name\": \"@\", \"type\": \"MX\", \"ttl\"\
|
|
22428
|
+
: 300,\n \"rdata\": \"10 old-mail.example.com.\"\n }\n\
|
|
22429
|
+
\ }\n ]\n }\n ]\n }\n}\n```\n"
|
|
21661
22430
|
name: jobs
|
|
21662
22431
|
x-displayName: Jobs
|
|
21663
22432
|
- description: 'Endpoints for creating and managing contacts.
|
|
@@ -21665,9 +22434,60 @@ tags:
|
|
|
21665
22434
|
'
|
|
21666
22435
|
name: contact
|
|
21667
22436
|
x-displayName: Contacts
|
|
21668
|
-
- description:
|
|
21669
|
-
|
|
21670
|
-
|
|
22437
|
+
- description: "Endpoints for managing DNS zones and records.\n\n### Zone, RRset,\
|
|
22438
|
+
\ and Record\n\nOpusDNS uses standard DNS terminology, and the distinction matters\
|
|
22439
|
+
\ when choosing which endpoint to call:\n\n- **Zone** \u2014 a DNS zone (e.g.,\
|
|
22440
|
+
\ `example.com`). Contains many rrsets.\n- **RRset (Resource Record Set)** \u2014\
|
|
22441
|
+
\ all records that share the same `(name, type)` tuple within a zone (e.g., the\
|
|
22442
|
+
\ set of all `A` records for `www.example.com`). An rrset is the smallest unit\
|
|
22443
|
+
\ DNS resolvers return in a query response.\n- **Record** \u2014 a single `rdata`\
|
|
22444
|
+
\ value inside an rrset (e.g., `203.0.113.10`). An rrset contains one or more\
|
|
22445
|
+
\ records.\n\nThree different update endpoints let you operate at different levels\
|
|
22446
|
+
\ of granularity:\n\n| Endpoint | Scope | Semantics |\n|----------|-------|-----------|\n\
|
|
22447
|
+
| `PUT /v1/dns/{zone_name}/rrsets` | Whole zone | Replaces all user-managed rrsets\
|
|
22448
|
+
\ in the zone |\n| `PATCH /v1/dns/{zone_name}/rrsets` | RRset-level | Upserts\
|
|
22449
|
+
\ or removes entire rrsets by `(name, type)` |\n| `PATCH /v1/dns/{zone_name}/records`\
|
|
22450
|
+
\ | Record-level | Upserts or removes individual rdata values inside an rrset\
|
|
22451
|
+
\ |\n\n### `PUT /v1/dns/{zone_name}/rrsets` \u2014 Replace all rrsets\n\nSupply\
|
|
22452
|
+
\ the complete set of rrsets the zone should contain. Any existing user-managed\
|
|
22453
|
+
\ rrset **not** in the request is removed. System-managed record types (SOA, DNSKEY,\
|
|
22454
|
+
\ DS) are managed by OpusDNS and cannot be set or removed via this endpoint.\n\
|
|
22455
|
+
\nUse this when you have authoritative, end-state data for a zone and want to\
|
|
22456
|
+
\ reset it to that state.\n\n### `PATCH /v1/dns/{zone_name}/rrsets` \u2014 Upsert\
|
|
22457
|
+
\ or remove whole rrsets\n\nSubmit an `ops[]` array where each op targets an rrset\
|
|
22458
|
+
\ by `(name, type)`:\n\n- `op: \"upsert\"` \u2014 create or **replace** the rrset\
|
|
22459
|
+
\ at `(name, type)` with the records you provide. Any records that previously\
|
|
22460
|
+
\ existed at that `(name, type)` are discarded.\n- `op: \"remove\"` \u2014 delete\
|
|
22461
|
+
\ the entire rrset at `(name, type)` (pass `records: []`).\n\n```json\n{\n \"\
|
|
22462
|
+
ops\": [\n {\n \"op\": \"upsert\",\n \"rrset\": {\n \"name\"\
|
|
22463
|
+
: \"www\",\n \"type\": \"A\",\n \"ttl\": 300,\n \"records\"\
|
|
22464
|
+
: [\n {\"rdata\": \"203.0.113.10\"},\n {\"rdata\": \"203.0.113.11\"\
|
|
22465
|
+
}\n ]\n }\n },\n {\n \"op\": \"remove\",\n \"rrset\"\
|
|
22466
|
+
: {\"name\": \"old\", \"type\": \"CNAME\", \"ttl\": 300, \"records\": []}\n \
|
|
22467
|
+
\ }\n ]\n}\n```\n\nUse this when you want to define the complete set of records\
|
|
22468
|
+
\ for a given `(name, type)` \u2014 e.g., \"`www` should have exactly these two\
|
|
22469
|
+
\ A records\". Any other A records for `www` that currently exist will be removed.\n\
|
|
22470
|
+
\n### `PATCH /v1/dns/{zone_name}/records` \u2014 Upsert or remove individual records\n\
|
|
22471
|
+
\nSubmit an `ops[]` array where each op targets a single `rdata` value inside\
|
|
22472
|
+
\ an rrset. Note the op payload uses a single `rdata` field, not `records[]`.\n\
|
|
22473
|
+
\n- `op: \"upsert\"` \u2014 add or update that one rdata value. The containing\
|
|
22474
|
+
\ rrset is created if it doesn't exist; sibling records in the rrset are left\
|
|
22475
|
+
\ alone.\n- `op: \"remove\"` \u2014 remove just that one rdata value. Other records\
|
|
22476
|
+
\ in the same rrset remain.\n\n```json\n{\n \"ops\": [\n {\n \"op\":\
|
|
22477
|
+
\ \"upsert\",\n \"record\": {\n \"name\": \"@\", \"type\": \"MX\"\
|
|
22478
|
+
, \"ttl\": 300,\n \"rdata\": \"5 new-mail.example.com.\"\n }\n \
|
|
22479
|
+
\ },\n {\n \"op\": \"remove\",\n \"record\": {\n \"name\"\
|
|
22480
|
+
: \"@\", \"type\": \"MX\", \"ttl\": 300,\n \"rdata\": \"10 old-mail.example.com.\"\
|
|
22481
|
+
\n }\n }\n ]\n}\n```\n\nUse this when you need to surgically add or remove\
|
|
22482
|
+
\ an individual record without disturbing sibling records in the same rrset \u2014\
|
|
22483
|
+
\ e.g., \"add one more MX target\", \"rotate one A record IP out of a pool\".\n\
|
|
22484
|
+
\n### Choosing the right endpoint\n\n| Scenario | Endpoint |\n|----------|----------|\n\
|
|
22485
|
+
| Migrating a zone from another provider; want to set it to a known state | `PUT\
|
|
22486
|
+
\ /rrsets` |\n| Replacing *all* records of a given name+type (e.g., the full MX\
|
|
22487
|
+
\ set) | `PATCH /rrsets` with `upsert` |\n| Adding or removing a single record\
|
|
22488
|
+
\ without touching its siblings | `PATCH /records` |\n| Swapping a name from CNAME\
|
|
22489
|
+
\ to A | `PATCH /rrsets` with `remove` + `upsert` |\n\nFor bulk variants that\
|
|
22490
|
+
\ operate across many zones in a single request, see the [Jobs](#tag/Jobs) documentation.\n"
|
|
21671
22491
|
name: dns
|
|
21672
22492
|
x-displayName: DNS Management
|
|
21673
22493
|
- description: "Endpoints for creating and managing domains.\n\n### Domain References\n\
|