@opusdns/api 1.12.0 → 1.14.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 +13 -0
- package/src/helpers/keys.ts +50 -0
- package/src/helpers/requests.d.ts +24 -0
- package/src/helpers/responses.d.ts +34 -0
- package/src/helpers/schemas.d.ts +5 -0
- package/src/openapi.yaml +569 -45
- package/src/schema.d.ts +498 -1
package/src/openapi.yaml
CHANGED
|
@@ -2125,6 +2125,16 @@ components:
|
|
|
2125
2125
|
type: object
|
|
2126
2126
|
CreateReportReq:
|
|
2127
2127
|
properties:
|
|
2128
|
+
registrar_credential_id:
|
|
2129
|
+
anyOf:
|
|
2130
|
+
- examples:
|
|
2131
|
+
- registrar_credential_01h45ytscbebyvny4gc8cr8ma2
|
|
2132
|
+
format: typeid
|
|
2133
|
+
pattern: ^registrar_credential_[0-7][0-9a-hjkmnpq-tv-z]{25}$
|
|
2134
|
+
type: string
|
|
2135
|
+
x-typeid-prefix: registrar_credential
|
|
2136
|
+
- type: 'null'
|
|
2137
|
+
title: Registrar Credential Id
|
|
2128
2138
|
report_type:
|
|
2129
2139
|
$ref: '#/components/schemas/ReportType'
|
|
2130
2140
|
default: domain_inventory
|
|
@@ -6436,6 +6446,113 @@ components:
|
|
|
6436
6446
|
- licensee
|
|
6437
6447
|
title: HolderEntitlement
|
|
6438
6448
|
type: string
|
|
6449
|
+
HostCreate:
|
|
6450
|
+
properties:
|
|
6451
|
+
hostname:
|
|
6452
|
+
description: Hostname of the host object
|
|
6453
|
+
examples:
|
|
6454
|
+
- ns1.example.com
|
|
6455
|
+
title: Hostname
|
|
6456
|
+
type: string
|
|
6457
|
+
ip_addresses:
|
|
6458
|
+
description: List of IP addresses for the host object
|
|
6459
|
+
examples:
|
|
6460
|
+
- - 192.0.2.53
|
|
6461
|
+
- 2001:db8::53
|
|
6462
|
+
items:
|
|
6463
|
+
format: ipvanyaddress
|
|
6464
|
+
type: string
|
|
6465
|
+
minItems: 1
|
|
6466
|
+
title: Ip Addresses
|
|
6467
|
+
type: array
|
|
6468
|
+
required:
|
|
6469
|
+
- hostname
|
|
6470
|
+
- ip_addresses
|
|
6471
|
+
title: HostCreate
|
|
6472
|
+
type: object
|
|
6473
|
+
HostIpSchema:
|
|
6474
|
+
properties:
|
|
6475
|
+
address:
|
|
6476
|
+
description: IP address of the host object
|
|
6477
|
+
format: ipvanyaddress
|
|
6478
|
+
title: Address
|
|
6479
|
+
type: string
|
|
6480
|
+
created_on:
|
|
6481
|
+
description: The date/time the entry was created on
|
|
6482
|
+
format: date-time
|
|
6483
|
+
title: Created On
|
|
6484
|
+
type: string
|
|
6485
|
+
host_id:
|
|
6486
|
+
default: None
|
|
6487
|
+
examples:
|
|
6488
|
+
- host_01h45ytscbebyvny4gc8cr8ma2
|
|
6489
|
+
format: typeid
|
|
6490
|
+
pattern: ^host_[0-7][0-9a-hjkmnpq-tv-z]{25}$
|
|
6491
|
+
title: Host Id
|
|
6492
|
+
type: string
|
|
6493
|
+
x-typeid-prefix: host
|
|
6494
|
+
host_ip_id:
|
|
6495
|
+
examples:
|
|
6496
|
+
- host_ip_01h45ytscbebyvny4gc8cr8ma2
|
|
6497
|
+
format: typeid
|
|
6498
|
+
pattern: ^host_ip_[0-7][0-9a-hjkmnpq-tv-z]{25}$
|
|
6499
|
+
title: Host Ip Id
|
|
6500
|
+
type: string
|
|
6501
|
+
x-typeid-prefix: host_ip
|
|
6502
|
+
type:
|
|
6503
|
+
$ref: '#/components/schemas/IPAddressType'
|
|
6504
|
+
description: IP address type
|
|
6505
|
+
updated_on:
|
|
6506
|
+
description: The date/time the entry was last updated on
|
|
6507
|
+
format: date-time
|
|
6508
|
+
title: Updated On
|
|
6509
|
+
type: string
|
|
6510
|
+
required:
|
|
6511
|
+
- address
|
|
6512
|
+
- type
|
|
6513
|
+
title: HostIpSchema
|
|
6514
|
+
type: object
|
|
6515
|
+
HostResponse:
|
|
6516
|
+
properties:
|
|
6517
|
+
created_on:
|
|
6518
|
+
description: Timestamp when the host was created
|
|
6519
|
+
format: date-time
|
|
6520
|
+
title: Created On
|
|
6521
|
+
type: string
|
|
6522
|
+
host_id:
|
|
6523
|
+
description: Unique identifier of the host object
|
|
6524
|
+
examples:
|
|
6525
|
+
- host_01h45ytscbebyvny4gc8cr8ma2
|
|
6526
|
+
format: typeid
|
|
6527
|
+
pattern: ^host_[0-7][0-9a-hjkmnpq-tv-z]{25}$
|
|
6528
|
+
title: Host Id
|
|
6529
|
+
type: string
|
|
6530
|
+
x-typeid-prefix: host
|
|
6531
|
+
hostname:
|
|
6532
|
+
description: Hostname of the host object
|
|
6533
|
+
examples:
|
|
6534
|
+
- ns1.example.com
|
|
6535
|
+
title: Hostname
|
|
6536
|
+
type: string
|
|
6537
|
+
ip_addresses:
|
|
6538
|
+
description: The ip addresses of the Host Object
|
|
6539
|
+
items:
|
|
6540
|
+
format: ipvanyaddress
|
|
6541
|
+
type: string
|
|
6542
|
+
title: Ip Addresses
|
|
6543
|
+
type: array
|
|
6544
|
+
updated_on:
|
|
6545
|
+
description: Timestamp when the host was last updated
|
|
6546
|
+
format: date-time
|
|
6547
|
+
title: Updated On
|
|
6548
|
+
type: string
|
|
6549
|
+
required:
|
|
6550
|
+
- host_id
|
|
6551
|
+
- hostname
|
|
6552
|
+
- created_on
|
|
6553
|
+
- updated_on
|
|
6554
|
+
title: HostResponse
|
|
6555
|
+
type: object
|
|
6439
6556
|
HostSchema:
|
|
6440
6557
|
properties:
|
|
6441
6558
|
created_on:
|
|
@@ -6498,6 +6615,23 @@ components:
|
|
|
6498
6615
|
- pending_delete
|
|
6499
6616
|
title: HostStatus
|
|
6500
6617
|
type: string
|
|
6618
|
+
HostUpdate:
|
|
6619
|
+
properties:
|
|
6620
|
+
ip_addresses:
|
|
6621
|
+
description: List of IP addresses for the host object
|
|
6622
|
+
examples:
|
|
6623
|
+
- - 192.0.2.53
|
|
6624
|
+
- 2001:db8::53
|
|
6625
|
+
items:
|
|
6626
|
+
format: ipvanyaddress
|
|
6627
|
+
type: string
|
|
6628
|
+
minItems: 1
|
|
6629
|
+
title: Ip Addresses
|
|
6630
|
+
type: array
|
|
6631
|
+
required:
|
|
6632
|
+
- ip_addresses
|
|
6633
|
+
title: HostUpdate
|
|
6634
|
+
type: object
|
|
6501
6635
|
HttpProtocol:
|
|
6502
6636
|
enum:
|
|
6503
6637
|
- http
|
|
@@ -6622,6 +6756,12 @@ components:
|
|
|
6622
6756
|
- request_hostname
|
|
6623
6757
|
title: HttpRedirectUpsert
|
|
6624
6758
|
type: object
|
|
6759
|
+
IPAddressType:
|
|
6760
|
+
enum:
|
|
6761
|
+
- v4
|
|
6762
|
+
- v6
|
|
6763
|
+
title: IPAddressType
|
|
6764
|
+
type: string
|
|
6625
6765
|
IdnBase:
|
|
6626
6766
|
properties:
|
|
6627
6767
|
idn_capable:
|
|
@@ -9989,6 +10129,7 @@ components:
|
|
|
9989
10129
|
- domain_forwards
|
|
9990
10130
|
- expiring_domains
|
|
9991
10131
|
- email_forwards
|
|
10132
|
+
- registrar_portfolio_pdf
|
|
9992
10133
|
- billing_transactions
|
|
9993
10134
|
- billing_transactions_monthly
|
|
9994
10135
|
title: ReportType
|
|
@@ -12001,7 +12142,7 @@ info:
|
|
|
12001
12142
|
\n\n"
|
|
12002
12143
|
summary: OpusDNS - your gateway to a seamless domain management experience.
|
|
12003
12144
|
title: OpusDNS API
|
|
12004
|
-
version: 2026-06-
|
|
12145
|
+
version: 2026-06-12-181220
|
|
12005
12146
|
x-logo:
|
|
12006
12147
|
altText: OpusDNS API Reference
|
|
12007
12148
|
url: https://d24lr4zqs1tgqh.cloudfront.net/c9505a20-5ae1-406c-b060-d392569caebf.jpg
|
|
@@ -21938,6 +22079,346 @@ paths:
|
|
|
21938
22079
|
- event
|
|
21939
22080
|
x-required-permissions:
|
|
21940
22081
|
- events:manage
|
|
22082
|
+
/v1/hosts:
|
|
22083
|
+
post:
|
|
22084
|
+
description: Create a new host object
|
|
22085
|
+
operationId: create_host_v1_hosts_post
|
|
22086
|
+
requestBody:
|
|
22087
|
+
content:
|
|
22088
|
+
application/json:
|
|
22089
|
+
schema:
|
|
22090
|
+
$ref: '#/components/schemas/HostCreate'
|
|
22091
|
+
required: true
|
|
22092
|
+
responses:
|
|
22093
|
+
'201':
|
|
22094
|
+
content:
|
|
22095
|
+
application/json:
|
|
22096
|
+
schema:
|
|
22097
|
+
$ref: '#/components/schemas/HostResponse'
|
|
22098
|
+
description: Successful Response
|
|
22099
|
+
'401':
|
|
22100
|
+
content:
|
|
22101
|
+
application/problem+json:
|
|
22102
|
+
example:
|
|
22103
|
+
code: ERROR_AUTHENTICATION
|
|
22104
|
+
detail: Additional error context.
|
|
22105
|
+
status: 401
|
|
22106
|
+
title: Authentication Error
|
|
22107
|
+
type: authentication
|
|
22108
|
+
schema:
|
|
22109
|
+
$ref: '#/components/schemas/Problem'
|
|
22110
|
+
description: Unauthorized
|
|
22111
|
+
'403':
|
|
22112
|
+
content:
|
|
22113
|
+
application/problem+json:
|
|
22114
|
+
example:
|
|
22115
|
+
code: ERROR_PERMISSION_DENIED
|
|
22116
|
+
detail: Additional error context.
|
|
22117
|
+
status: 403
|
|
22118
|
+
title: Permission Denied
|
|
22119
|
+
type: permission-denied
|
|
22120
|
+
schema:
|
|
22121
|
+
$ref: '#/components/schemas/Problem'
|
|
22122
|
+
description: Forbidden
|
|
22123
|
+
'404':
|
|
22124
|
+
content:
|
|
22125
|
+
application/problem+json:
|
|
22126
|
+
example:
|
|
22127
|
+
code: ERROR_PARENT_DOMAIN_NOT_FOUND
|
|
22128
|
+
detail: Parent domain not found for host 'Additional error context.'
|
|
22129
|
+
hostname: Additional error context.
|
|
22130
|
+
parent_domain: ''
|
|
22131
|
+
status: 404
|
|
22132
|
+
title: Host Management Error
|
|
22133
|
+
type: parent-domain-not-found
|
|
22134
|
+
schema:
|
|
22135
|
+
$ref: '#/components/schemas/Problem'
|
|
22136
|
+
description: Not Found
|
|
22137
|
+
'409':
|
|
22138
|
+
content:
|
|
22139
|
+
application/problem+json:
|
|
22140
|
+
example:
|
|
22141
|
+
code: ERROR_HOST_ALREADY_EXISTS
|
|
22142
|
+
detail: Host already exists
|
|
22143
|
+
hostname: Additional error context.
|
|
22144
|
+
status: 409
|
|
22145
|
+
title: Host Management Error
|
|
22146
|
+
type: host-already-exists
|
|
22147
|
+
schema:
|
|
22148
|
+
$ref: '#/components/schemas/Problem'
|
|
22149
|
+
description: Conflict
|
|
22150
|
+
'422':
|
|
22151
|
+
content:
|
|
22152
|
+
application/problem+json:
|
|
22153
|
+
example:
|
|
22154
|
+
code: ERROR_HOST_OBJECTS_NOT_SUPPORTED
|
|
22155
|
+
detail: Host objects are not supported for this tld
|
|
22156
|
+
status: 422
|
|
22157
|
+
title: Host Management Error
|
|
22158
|
+
tld: Additional error context.
|
|
22159
|
+
type: host-object-not-supported
|
|
22160
|
+
schema:
|
|
22161
|
+
$ref: '#/components/schemas/Problem'
|
|
22162
|
+
description: Unprocessable Content
|
|
22163
|
+
security:
|
|
22164
|
+
- OAuth2PasswordBearer: []
|
|
22165
|
+
- APIKeyHeader: []
|
|
22166
|
+
summary: Create a Host Object
|
|
22167
|
+
tags:
|
|
22168
|
+
- host
|
|
22169
|
+
x-required-permissions:
|
|
22170
|
+
- hosts:manage
|
|
22171
|
+
/v1/hosts/{host_reference}:
|
|
22172
|
+
delete:
|
|
22173
|
+
description: Deletes a host object; only possible if the host is not in use
|
|
22174
|
+
operationId: delete_host_v1_hosts__host_reference__delete
|
|
22175
|
+
parameters:
|
|
22176
|
+
- in: path
|
|
22177
|
+
name: host_reference
|
|
22178
|
+
required: true
|
|
22179
|
+
schema:
|
|
22180
|
+
anyOf:
|
|
22181
|
+
- examples:
|
|
22182
|
+
- host_01h45ytscbebyvny4gc8cr8ma2
|
|
22183
|
+
format: typeid
|
|
22184
|
+
pattern: ^host_[0-7][0-9a-hjkmnpq-tv-z]{25}$
|
|
22185
|
+
type: string
|
|
22186
|
+
x-typeid-prefix: host
|
|
22187
|
+
- type: string
|
|
22188
|
+
title: Host Reference
|
|
22189
|
+
responses:
|
|
22190
|
+
'204':
|
|
22191
|
+
description: Successful Response
|
|
22192
|
+
'401':
|
|
22193
|
+
content:
|
|
22194
|
+
application/problem+json:
|
|
22195
|
+
example:
|
|
22196
|
+
code: ERROR_AUTHENTICATION
|
|
22197
|
+
detail: Additional error context.
|
|
22198
|
+
status: 401
|
|
22199
|
+
title: Authentication Error
|
|
22200
|
+
type: authentication
|
|
22201
|
+
schema:
|
|
22202
|
+
$ref: '#/components/schemas/Problem'
|
|
22203
|
+
description: Unauthorized
|
|
22204
|
+
'403':
|
|
22205
|
+
content:
|
|
22206
|
+
application/problem+json:
|
|
22207
|
+
example:
|
|
22208
|
+
code: ERROR_PERMISSION_DENIED
|
|
22209
|
+
detail: Additional error context.
|
|
22210
|
+
status: 403
|
|
22211
|
+
title: Permission Denied
|
|
22212
|
+
type: permission-denied
|
|
22213
|
+
schema:
|
|
22214
|
+
$ref: '#/components/schemas/Problem'
|
|
22215
|
+
description: Forbidden
|
|
22216
|
+
'404':
|
|
22217
|
+
content:
|
|
22218
|
+
application/problem+json:
|
|
22219
|
+
examples:
|
|
22220
|
+
Host Management Error:
|
|
22221
|
+
value:
|
|
22222
|
+
code: ERROR_PARENT_DOMAIN_NOT_FOUND
|
|
22223
|
+
detail: Parent domain not found for host 'Additional error context.'
|
|
22224
|
+
hostname: Additional error context.
|
|
22225
|
+
parent_domain: ''
|
|
22226
|
+
status: 404
|
|
22227
|
+
title: Host Management Error
|
|
22228
|
+
type: parent-domain-not-found
|
|
22229
|
+
schema:
|
|
22230
|
+
$ref: '#/components/schemas/Problem'
|
|
22231
|
+
description: Not Found
|
|
22232
|
+
'409':
|
|
22233
|
+
content:
|
|
22234
|
+
application/problem+json:
|
|
22235
|
+
example:
|
|
22236
|
+
code: ERROR_HOST_IN_USE
|
|
22237
|
+
detail: Host is linked to one or more domains
|
|
22238
|
+
host_reference: Additional error context.
|
|
22239
|
+
status: 409
|
|
22240
|
+
title: Host Management Error
|
|
22241
|
+
type: host-in-use
|
|
22242
|
+
schema:
|
|
22243
|
+
$ref: '#/components/schemas/Problem'
|
|
22244
|
+
description: Conflict
|
|
22245
|
+
'422':
|
|
22246
|
+
content:
|
|
22247
|
+
application/problem+json:
|
|
22248
|
+
schema:
|
|
22249
|
+
$ref: '#/components/schemas/HTTPValidationError'
|
|
22250
|
+
description: Validation Error
|
|
22251
|
+
security:
|
|
22252
|
+
- OAuth2PasswordBearer: []
|
|
22253
|
+
- APIKeyHeader: []
|
|
22254
|
+
summary: Delete a Host Object
|
|
22255
|
+
tags:
|
|
22256
|
+
- host
|
|
22257
|
+
x-required-permissions:
|
|
22258
|
+
- hosts:delete
|
|
22259
|
+
get:
|
|
22260
|
+
description: Retrieves a host object by either its ID or hostname
|
|
22261
|
+
operationId: get_host_v1_hosts__host_reference__get
|
|
22262
|
+
parameters:
|
|
22263
|
+
- in: path
|
|
22264
|
+
name: host_reference
|
|
22265
|
+
required: true
|
|
22266
|
+
schema:
|
|
22267
|
+
anyOf:
|
|
22268
|
+
- examples:
|
|
22269
|
+
- host_01h45ytscbebyvny4gc8cr8ma2
|
|
22270
|
+
format: typeid
|
|
22271
|
+
pattern: ^host_[0-7][0-9a-hjkmnpq-tv-z]{25}$
|
|
22272
|
+
type: string
|
|
22273
|
+
x-typeid-prefix: host
|
|
22274
|
+
- type: string
|
|
22275
|
+
title: Host Reference
|
|
22276
|
+
responses:
|
|
22277
|
+
'200':
|
|
22278
|
+
content:
|
|
22279
|
+
application/json:
|
|
22280
|
+
schema:
|
|
22281
|
+
$ref: '#/components/schemas/HostResponse'
|
|
22282
|
+
description: Successful Response
|
|
22283
|
+
'401':
|
|
22284
|
+
content:
|
|
22285
|
+
application/problem+json:
|
|
22286
|
+
example:
|
|
22287
|
+
code: ERROR_AUTHENTICATION
|
|
22288
|
+
detail: Additional error context.
|
|
22289
|
+
status: 401
|
|
22290
|
+
title: Authentication Error
|
|
22291
|
+
type: authentication
|
|
22292
|
+
schema:
|
|
22293
|
+
$ref: '#/components/schemas/Problem'
|
|
22294
|
+
description: Unauthorized
|
|
22295
|
+
'403':
|
|
22296
|
+
content:
|
|
22297
|
+
application/problem+json:
|
|
22298
|
+
example:
|
|
22299
|
+
code: ERROR_PERMISSION_DENIED
|
|
22300
|
+
detail: Additional error context.
|
|
22301
|
+
status: 403
|
|
22302
|
+
title: Permission Denied
|
|
22303
|
+
type: permission-denied
|
|
22304
|
+
schema:
|
|
22305
|
+
$ref: '#/components/schemas/Problem'
|
|
22306
|
+
description: Forbidden
|
|
22307
|
+
'404':
|
|
22308
|
+
content:
|
|
22309
|
+
application/problem+json:
|
|
22310
|
+
examples:
|
|
22311
|
+
Host Management Error:
|
|
22312
|
+
value:
|
|
22313
|
+
code: ERROR_PARENT_DOMAIN_NOT_FOUND
|
|
22314
|
+
detail: Parent domain not found for host 'Additional error context.'
|
|
22315
|
+
hostname: Additional error context.
|
|
22316
|
+
parent_domain: ''
|
|
22317
|
+
status: 404
|
|
22318
|
+
title: Host Management Error
|
|
22319
|
+
type: parent-domain-not-found
|
|
22320
|
+
schema:
|
|
22321
|
+
$ref: '#/components/schemas/Problem'
|
|
22322
|
+
description: Not Found
|
|
22323
|
+
'422':
|
|
22324
|
+
content:
|
|
22325
|
+
application/problem+json:
|
|
22326
|
+
schema:
|
|
22327
|
+
$ref: '#/components/schemas/HTTPValidationError'
|
|
22328
|
+
description: Validation Error
|
|
22329
|
+
security:
|
|
22330
|
+
- OAuth2PasswordBearer: []
|
|
22331
|
+
- APIKeyHeader: []
|
|
22332
|
+
summary: Retrieve a Host Object
|
|
22333
|
+
tags:
|
|
22334
|
+
- host
|
|
22335
|
+
x-required-permissions:
|
|
22336
|
+
- hosts:read
|
|
22337
|
+
put:
|
|
22338
|
+
description: Updates the IP addresses of a host object, referenced by either
|
|
22339
|
+
its ID or hostname
|
|
22340
|
+
operationId: update_host_v1_hosts__host_reference__put
|
|
22341
|
+
parameters:
|
|
22342
|
+
- in: path
|
|
22343
|
+
name: host_reference
|
|
22344
|
+
required: true
|
|
22345
|
+
schema:
|
|
22346
|
+
anyOf:
|
|
22347
|
+
- examples:
|
|
22348
|
+
- host_01h45ytscbebyvny4gc8cr8ma2
|
|
22349
|
+
format: typeid
|
|
22350
|
+
pattern: ^host_[0-7][0-9a-hjkmnpq-tv-z]{25}$
|
|
22351
|
+
type: string
|
|
22352
|
+
x-typeid-prefix: host
|
|
22353
|
+
- type: string
|
|
22354
|
+
title: Host Reference
|
|
22355
|
+
requestBody:
|
|
22356
|
+
content:
|
|
22357
|
+
application/json:
|
|
22358
|
+
schema:
|
|
22359
|
+
$ref: '#/components/schemas/HostUpdate'
|
|
22360
|
+
required: true
|
|
22361
|
+
responses:
|
|
22362
|
+
'200':
|
|
22363
|
+
content:
|
|
22364
|
+
application/json:
|
|
22365
|
+
schema:
|
|
22366
|
+
$ref: '#/components/schemas/HostResponse'
|
|
22367
|
+
description: Successful Response
|
|
22368
|
+
'401':
|
|
22369
|
+
content:
|
|
22370
|
+
application/problem+json:
|
|
22371
|
+
example:
|
|
22372
|
+
code: ERROR_AUTHENTICATION
|
|
22373
|
+
detail: Additional error context.
|
|
22374
|
+
status: 401
|
|
22375
|
+
title: Authentication Error
|
|
22376
|
+
type: authentication
|
|
22377
|
+
schema:
|
|
22378
|
+
$ref: '#/components/schemas/Problem'
|
|
22379
|
+
description: Unauthorized
|
|
22380
|
+
'403':
|
|
22381
|
+
content:
|
|
22382
|
+
application/problem+json:
|
|
22383
|
+
example:
|
|
22384
|
+
code: ERROR_PERMISSION_DENIED
|
|
22385
|
+
detail: Additional error context.
|
|
22386
|
+
status: 403
|
|
22387
|
+
title: Permission Denied
|
|
22388
|
+
type: permission-denied
|
|
22389
|
+
schema:
|
|
22390
|
+
$ref: '#/components/schemas/Problem'
|
|
22391
|
+
description: Forbidden
|
|
22392
|
+
'404':
|
|
22393
|
+
content:
|
|
22394
|
+
application/problem+json:
|
|
22395
|
+
examples:
|
|
22396
|
+
Host Management Error:
|
|
22397
|
+
value:
|
|
22398
|
+
code: ERROR_PARENT_DOMAIN_NOT_FOUND
|
|
22399
|
+
detail: Parent domain not found for host 'Additional error context.'
|
|
22400
|
+
hostname: Additional error context.
|
|
22401
|
+
parent_domain: ''
|
|
22402
|
+
status: 404
|
|
22403
|
+
title: Host Management Error
|
|
22404
|
+
type: parent-domain-not-found
|
|
22405
|
+
schema:
|
|
22406
|
+
$ref: '#/components/schemas/Problem'
|
|
22407
|
+
description: Not Found
|
|
22408
|
+
'422':
|
|
22409
|
+
content:
|
|
22410
|
+
application/problem+json:
|
|
22411
|
+
schema:
|
|
22412
|
+
$ref: '#/components/schemas/HTTPValidationError'
|
|
22413
|
+
description: Validation Error
|
|
22414
|
+
security:
|
|
22415
|
+
- OAuth2PasswordBearer: []
|
|
22416
|
+
- APIKeyHeader: []
|
|
22417
|
+
summary: Update a Host Object
|
|
22418
|
+
tags:
|
|
22419
|
+
- host
|
|
22420
|
+
x-required-permissions:
|
|
22421
|
+
- hosts:manage
|
|
21941
22422
|
/v1/job/{job_id}:
|
|
21942
22423
|
delete:
|
|
21943
22424
|
operationId: delete_job_v1_job__job_id__delete
|
|
@@ -26546,6 +27027,31 @@ tags:
|
|
|
26546
27027
|
'
|
|
26547
27028
|
name: domain_search
|
|
26548
27029
|
x-displayName: Domain search
|
|
27030
|
+
- description: "Endpoints for managing host objects (nameserver glue records).\n\n\
|
|
27031
|
+
### What is a host object?\n\nA host object represents a nameserver hostname registered\
|
|
27032
|
+
\ at a registry. When a nameserver hostname is subordinate to a domain in your\
|
|
27033
|
+
\ portfolio (e.g. `ns1.example.com` under `example.com`), the registry requires\
|
|
27034
|
+
\ a host object carrying one or more IP addresses \u2014 commonly known as glue\
|
|
27035
|
+
\ records \u2014 so that resolvers can reach the nameserver even though its address\
|
|
27036
|
+
\ lives inside the zone it serves.\n\nThese endpoints manage **subordinate** host\
|
|
27037
|
+
\ objects: the parent domain of the hostname must be managed in your OpusDNS account.\
|
|
27038
|
+
\ Hostnames whose parent domain is not in your account are rejected with `ERROR_PARENT_DOMAIN_NOT_FOUND`.\
|
|
27039
|
+
\ External nameservers (e.g. your DNS provider's hostnames) do not need host objects\
|
|
27040
|
+
\ \u2014 simply reference them by hostname when setting a domain's nameservers.\n\
|
|
27041
|
+
\n### Referencing a host\n\n`GET`, `PUT` and `DELETE` accept either the host ID\
|
|
27042
|
+
\ (`host_...`) or the hostname as the `{host_reference}` path parameter.\n\n###\
|
|
27043
|
+
\ Lifecycle\n\n- **Create** \u2014 `POST /v1/hosts` with the hostname and at least\
|
|
27044
|
+
\ one IP address. The host object is created at the registry of the parent domain.\
|
|
27045
|
+
\ Creating a host that already exists returns `ERROR_HOST_ALREADY_EXISTS`.\n-\
|
|
27046
|
+
\ **Update** \u2014 `PUT /v1/hosts/{host_reference}` replaces the host's IP addresses\
|
|
27047
|
+
\ with the provided list. If the provided addresses match the current state at\
|
|
27048
|
+
\ the registry, the request succeeds without performing a registry update.\n-\
|
|
27049
|
+
\ **Delete** \u2014 `DELETE /v1/hosts/{host_reference}` removes the host object.\
|
|
27050
|
+
\ A host that is still in use as a nameserver by one or more domains cannot be\
|
|
27051
|
+
\ deleted and returns `ERROR_HOST_IN_USE`.\n\nNot all TLDs use host objects; for\
|
|
27052
|
+
\ TLDs without host object support, creation is rejected with `ERROR_HOST_OBJECTS_NOT_SUPPORTED`.\n"
|
|
27053
|
+
name: host
|
|
27054
|
+
x-displayName: Hosts
|
|
26549
27055
|
- description: 'Endpoints for creating and managing email forwards.
|
|
26550
27056
|
|
|
26551
27057
|
'
|
|
@@ -26594,50 +27100,67 @@ tags:
|
|
|
26594
27100
|
\ | Summary of all DNS zones and their configuration |\n| `dns_zone_records` |\
|
|
26595
27101
|
\ Detailed export of all DNS records across zones |\n| `billing_transactions`\
|
|
26596
27102
|
\ | Billing transactions for the current month to date |\n| `billing_transactions_monthly`\
|
|
26597
|
-
\ | Billing transactions for the previous calendar month |\n
|
|
26598
|
-
\
|
|
26599
|
-
\
|
|
26600
|
-
\
|
|
26601
|
-
\
|
|
26602
|
-
|
|
26603
|
-
\ the
|
|
26604
|
-
\
|
|
26605
|
-
\
|
|
26606
|
-
\
|
|
26607
|
-
\
|
|
26608
|
-
\
|
|
26609
|
-
\
|
|
26610
|
-
\
|
|
26611
|
-
\
|
|
26612
|
-
\
|
|
26613
|
-
\
|
|
26614
|
-
\
|
|
26615
|
-
\
|
|
26616
|
-
\
|
|
26617
|
-
\
|
|
26618
|
-
\
|
|
26619
|
-
\
|
|
26620
|
-
\
|
|
26621
|
-
\
|
|
26622
|
-
\
|
|
26623
|
-
\
|
|
26624
|
-
\
|
|
26625
|
-
\
|
|
26626
|
-
|
|
26627
|
-
\
|
|
26628
|
-
\ \
|
|
26629
|
-
\
|
|
26630
|
-
\
|
|
26631
|
-
\
|
|
26632
|
-
\
|
|
26633
|
-
\
|
|
26634
|
-
\
|
|
26635
|
-
\
|
|
26636
|
-
|
|
26637
|
-
|
|
26638
|
-
\
|
|
26639
|
-
|
|
26640
|
-
\
|
|
27103
|
+
\ | Billing transactions for the previous calendar month |\n| `registrar_portfolio_pdf`\
|
|
27104
|
+
\ | Credential-scoped registrar portfolio report as a PDF inside the ZIP download\
|
|
27105
|
+
\ |\n\n### Billing Transaction Reports\n\nBilling transaction reports export all\
|
|
27106
|
+
\ completed transactions as a CSV with the following columns: `product_reference`,\
|
|
27107
|
+
\ `action`, `period`, `product_type`, `amount`, `currency`, `completed_on`.\n\n\
|
|
27108
|
+
There are two billing report types:\n\n- **`billing_transactions`** \u2014 On-demand\
|
|
27109
|
+
\ report covering the current month to date (1st of the month through the time\
|
|
27110
|
+
\ of the request). Request this via the API like any other report type.\n- **`billing_transactions_monthly`**\
|
|
27111
|
+
\ \u2014 Automatically generated on the 1st of each month at 5 AM UTC, covering\
|
|
27112
|
+
\ the full previous calendar month. These are scheduled reports and do not need\
|
|
27113
|
+
\ to be manually requested.\n\nBoth types maintain their own retention of 30 reports\
|
|
27114
|
+
\ each, so requesting on-demand reports will not displace the monthly archive.\n\
|
|
27115
|
+
\n### Registrar Portfolio PDF Reports\n\nRegistrar portfolio reports are requested\
|
|
27116
|
+
\ with `POST /v1/reports` and require `registrar_credential_id`:\n\n```json\n\
|
|
27117
|
+
{\n \"report_type\": \"registrar_portfolio_pdf\",\n \"registrar_credential_id\"\
|
|
27118
|
+
: \"registrar_credential_...\"\n}\n```\n\nThe report uses registrar data from\
|
|
27119
|
+
\ the registrar-elements OpenSearch index, populated by the scheduled daily registrar\
|
|
27120
|
+
\ syncs. Report generation does not trigger a sync; it uses the most recently\
|
|
27121
|
+
\ synced data as-is. If the credential has no portfolio data yet (for example,\
|
|
27122
|
+
\ a credential created since the last sync), generation fails with an error indicating\
|
|
27123
|
+
\ the credential is too new to report on.\n\nThe downloaded ZIP contains `registrar-portfolio-{report_typeid}.pdf`.\
|
|
27124
|
+
\ Before each PDF generation, the report service loads the organization's current\
|
|
27125
|
+
\ available TLD list from the backend and uses it to mark TLDs in the portfolio\
|
|
27126
|
+
\ as available or unavailable. The first version includes the sections backed\
|
|
27127
|
+
\ by indexed data: portfolio overview, domains/statuses/TLDs/nameservers, TLD\
|
|
27128
|
+
\ availability, expiry summaries, contact validation summary, and DNS record summaries.\
|
|
27129
|
+
\ Additional sections that require new OpenSearch fields will be added explicitly\
|
|
27130
|
+
\ when those fields are indexed.\n\n### Report Lifecycle\n\nA report transitions\
|
|
27131
|
+
\ through the following statuses:\n\n1. **pending** \u2014 Report has been queued\
|
|
27132
|
+
\ for generation\n2. **generating** \u2014 Report is being built\n3. **completed**\
|
|
27133
|
+
\ \u2014 Report is ready for download\n4. **failed** \u2014 Generation failed\n\
|
|
27134
|
+
\n### Usage Pattern\n\n1. **Request a report** \u2014 `POST /v1/reports` with\
|
|
27135
|
+
\ the desired `report_type`\n2. **Poll for completion** \u2014 `GET /v1/reports/{report_id}`\
|
|
27136
|
+
\ until `status` is `completed`\n3. **Download** \u2014 `GET /v1/reports/{report_id}/download`\
|
|
27137
|
+
\ returns the report as a streamed ZIP file\n\n### Downloading Reports\n\n`GET\
|
|
27138
|
+
\ /v1/reports/{report_id}/download` streams the report file directly to the client.\
|
|
27139
|
+
\ The report **must** have status `completed` before it can be downloaded \u2014\
|
|
27140
|
+
\ calling this endpoint on a report that is still `pending` or `generating` returns\
|
|
27141
|
+
\ `409 Conflict`.\n\n**Response details:**\n\n| Header | Value |\n|--------|-------|\n\
|
|
27142
|
+
| `Content-Type` | `application/zip` |\n| `Content-Disposition` | `attachment;\
|
|
27143
|
+
\ filename={report_type}-{report_id}.zip` |\n| `Content-Length` | File size in\
|
|
27144
|
+
\ bytes (included when known) |\n\nThe response body is streamed in chunks, so\
|
|
27145
|
+
\ clients should read the body incrementally rather than buffering it entirely\
|
|
27146
|
+
\ in memory. When `Content-Length` is present, it can be used to display download\
|
|
27147
|
+
\ progress.\n\n### Trigger Types\n\n| Type | Description |\n|------|-------------|\n\
|
|
27148
|
+
| `on_demand` | Manually requested via the API |\n| `scheduled` | Automatically\
|
|
27149
|
+
\ generated on a recurring schedule |\n\n### Rate Limiting\n\nReport creation\
|
|
27150
|
+
\ is rate-limited at two levels:\n\n- **Cooldown** \u2014 After creating a report,\
|
|
27151
|
+
\ you must wait **5 minutes** before requesting another report of the same type.\
|
|
27152
|
+
\ Requests during the cooldown return `429 Too Many Requests` with a `Retry-After`\
|
|
27153
|
+
\ header.\n- **Hourly limit** \u2014 Only **one report per type per organization\
|
|
27154
|
+
\ per clock hour** (UTC) can be generated. Duplicate requests within the same\
|
|
27155
|
+
\ hour will not produce an additional report.\n\n### Retention\n\nThe **30 most\
|
|
27156
|
+
\ recent reports** of each type are kept per organization. Older reports and their\
|
|
27157
|
+
\ associated files are automatically deleted when a new report is generated.\n\
|
|
27158
|
+
\n### Listing Reports\n\nUse `GET /v1/reports` to list reports with optional filters:\n\
|
|
27159
|
+
\n| Parameter | Description |\n|-----------|-------------|\n| `report_type` |\
|
|
27160
|
+
\ Filter by report type (repeatable) |\n| `status` | Filter by report status (repeatable)\
|
|
27161
|
+
\ |\n| `trigger_type` | Filter by trigger type |\n| `created_after` | Only reports\
|
|
27162
|
+
\ created after this timestamp |\n| `created_before` | Only reports created before\
|
|
27163
|
+
\ this timestamp |\n"
|
|
26641
27164
|
name: report
|
|
26642
27165
|
x-displayName: Reports
|
|
26643
27166
|
- description: Endpoints for creating new Tags
|
|
@@ -26654,6 +27177,7 @@ x-tagGroups:
|
|
|
26654
27177
|
- domain
|
|
26655
27178
|
- domain_tld_specific
|
|
26656
27179
|
- tld
|
|
27180
|
+
- host
|
|
26657
27181
|
- contact
|
|
26658
27182
|
- event
|
|
26659
27183
|
- availability
|